diff --git a/patches/0001-components-search.patch b/0000-COMPONENTS-search.patch similarity index 78% rename from patches/0001-components-search.patch rename to 0000-COMPONENTS-search.patch index c1eeb51b..2b551477 100644 --- a/patches/0001-components-search.patch +++ b/0000-COMPONENTS-search.patch @@ -12,955 +12,7 @@ Subject: [PATCH] components-search 5 files changed, 148 insertions(+), 135 deletions(-) create mode 100644 components/feature/search/src/main/assets/searchplugins/leosearch.xml -diff --git a/components/feature/search/src/main/assets/search/list.json b/components/feature/search/src/main/assets/search/list.json -index b2bb3d4698..f6cac8a884 100644 ---- a/components/feature/search/src/main/assets/search/list.json -+++ b/components/feature/search/src/main/assets/search/list.json -@@ -1,9 +1,9 @@ - { - "default": { -- "searchDefault": "Google", -- "searchOrder": ["Google", "Bing"], -+ "searchDefault": "LeOSearch", -+ "searchOrder": ["LeOSearch"], - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia" -+ "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "regionOverrides": { -@@ -15,249 +15,249 @@ - "ach": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia" -+ "leosearch", "ddg", "wikipedia" - ] - } - }, - "an": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-es","wikipedia-an" -+ "leosearch", "ddg", "ebay-es","wikipedia-an" - ] - } - }, - "ar": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ar" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-ar" - ] - } - }, - "as": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-as" -+ "leosearch", "amazon-in", "ddg", "wikipedia-as" - ] - } - }, - "ast": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "ebay-es", "wikipedia-ast" -+ "leosearch", "amazondotcom", "ddg", "ebay-es", "wikipedia-ast" - ] - } - }, - "az": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "azerdict", "wikipedia-az" -+ "leosearch", "amazondotcom", "ddg", "azerdict", "wikipedia-az" - ] - } - }, - "be": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-be" -+ "leosearch", "ddg", "wikipedia-be" - ] - }, - "BY": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "KZ": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "RU": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "TR": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - } - }, - "bg": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "pazaruvaj", "wikipedia-bg" -+ "leosearch", "ddg", "pazaruvaj", "wikipedia-bg" - ] - } - }, - "bn": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bn" -+ "leosearch", "ddg", "wikipedia-bn" - ] - } - }, - "bn-BD": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bn" -+ "leosearch", "ddg", "wikipedia-bn" - ] - } - }, - "bn-IN": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-bn" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-bn" - ] - } - }, - "br": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-br" -+ "leosearch", "ddg", "wikipedia-br" - ] - } - }, - "bs": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bs" -+ "leosearch", "ddg", "wikipedia-bs" - ] - } - }, - "ca": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-es", "wikipedia-ca" -+ "leosearch", "ddg", "ebay-es", "wikipedia-ca" - ] - } - }, - "cak": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "cs": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz" -+ "leosearch", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz" - ] - } - }, - "cy": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "ebay-co-uk", "wikipedia-cy" -+ "leosearch", "amazon-co-uk", "ddg", "ebay-co-uk", "wikipedia-cy" - ] - } - }, - "da": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "amazon-co-uk", "bing", "ddg", "wikipedia-da" -+ "google-b-m", "amazon-co-uk", "leosearch", "ddg", "wikipedia-da" - ] - } - }, - "de": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de" -+ "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de" - ] - } - }, - "de-AT": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at" -+ "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at" - ] - } - }, - "dsb": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de" -+ "leosearch", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de" - ] - } - }, - "el": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-el" -+ "leosearch", "ddg", "wikipedia-el" - ] - } - }, - "en-AU": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-au", "ddg", "wikipedia", "ebay-au" -+ "leosearch", "amazon-au", "ddg", "wikipedia", "ebay-au" - ] - } - }, - "en-CA": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-ca", "ddg", "wikipedia", "ebay-ca" -+ "leosearch", "amazon-ca", "ddg", "wikipedia", "ebay-ca" - ] - } - }, - "en-IE": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie" -+ "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie" - ] - } - }, - "en-GB": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk" -+ "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk" - ] - }, - "BY": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "KZ": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "RU": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "TR": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - } - }, - "en-US": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "ebay", "wikipedia" -+ "leosearch", "amazondotcom", "ddg", "ebay", "wikipedia" - ] - }, - "BY": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "KZ": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "RU": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "TR": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia" -+ "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - } - }, -@@ -271,7 +271,7 @@ - "eo": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-eo" -+ "leosearch", "ddg", "wikipedia-eo" - ] - } - }, -@@ -285,21 +285,21 @@ - "es-CL": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "mercadolibre-cl", "wikipedia-es" -+ "leosearch", "ddg", "mercadolibre-cl", "wikipedia-es" - ] - } - }, - "es-ES": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-es", "amazon-es", "ebay-es" -+ "leosearch", "ddg", "wikipedia-es", "amazon-es", "ebay-es" - ] - } - }, - "es-MX": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es" -+ "leosearch", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es" - ] - } - }, -@@ -313,63 +313,63 @@ - "eu": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-es", "wikipedia-eu" -+ "leosearch", "ddg", "ebay-es", "wikipedia-eu" - ] - } - }, - "fa": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-fa" -+ "leosearch", "ddg", "wikipedia-fa" - ] - } - }, - "ff": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-fr", "ddg", "wikipedia-fr" -+ "leosearch", "amazon-fr", "ddg", "wikipedia-fr" - ] - } - }, - "fi": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "amazondotcom", "bing", "ddg", "wikipedia-fi" -+ "google-b-m", "amazondotcom", "leosearch", "ddg", "wikipedia-fi" - ] - } - }, - "fr-BE": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "qwant", "wikipedia-fr", "ebay-befr" -+ "leosearch", "ddg", "qwant", "wikipedia-fr", "ebay-befr" - ] - } - }, - "fr-CA": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca" -+ "leosearch", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca" - ] - } - }, - "fr-FR": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr" -+ "leosearch", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr" - ] - } - }, - "fr": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-fr", "qwant", "wikipedia-fr" -+ "leosearch", "ddg", "ebay-fr", "qwant", "wikipedia-fr" - ] - } - }, - "fy-NL": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-nl", "wikipedia-fy-NL" -+ "leosearch", "ddg", "ebay-nl", "wikipedia-fy-NL" - ] - } - }, -@@ -383,56 +383,56 @@ - "gd": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-co-uk", "faclair-beag", "wikipedia-gd" -+ "leosearch", "ddg", "ebay-co-uk", "faclair-beag", "wikipedia-gd" - ] - } - }, - "gl": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "ebay-es", "wikipedia-gl" -+ "leosearch", "amazondotcom", "ddg", "ebay-es", "wikipedia-gl" - ] - } - }, - "gn": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-gn" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-gn" - ] - } - }, - "gu-IN": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-gu" -+ "leosearch", "amazon-in", "ddg", "wikipedia-gu" - ] - } - }, - "he": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-he" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-he" - ] - } - }, - "hi-IN": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-hi" -+ "leosearch", "amazon-in", "ddg", "wikipedia-hi" - ] - } - }, - "hr": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "wikipedia-hr" -+ "leosearch", "amazon-co-uk", "ddg", "wikipedia-hr" - ] - } - }, - "hsb": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de" -+ "leosearch", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de" - ] - } - }, -@@ -446,97 +446,97 @@ - "hy-AM": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-hy-AM" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-hy-AM" - ] - } - }, - "ia": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ia" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-ia" - ] - } - }, - "id": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-id" -+ "leosearch", "ddg", "wikipedia-id" - ] - } - }, - "is": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-is" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-is" - ] - } - }, - "it": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-it", "amazon-it", "ebay-it" -+ "leosearch", "ddg", "wikipedia-it", "amazon-it", "ebay-it" - ] - } - }, - "ja": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "amazon-jp", "bing", "ddg", "rakuten", "wikipedia-ja", "yahoo-jp", "yahoo-jp-auctions" -+ "google-b-m", "amazon-jp", "leosearch", "ddg", "rakuten", "wikipedia-ja", "yahoo-jp", "yahoo-jp-auctions" - ] - } - }, - "ka": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ka" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-ka" - ] - } - }, - "kab": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-kab" -+ "leosearch", "ddg", "wikipedia-kab" - ] - } - }, - "kk": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-kk" -+ "leosearch", "ddg", "wikipedia-kk" - ] - }, - "KZ": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "BY": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "RU": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "TR": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk" -+ "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - } - }, - "km": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-km" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-km" - ] - } - }, - "kn": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn" -+ "leosearch", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn" - ] - } - }, -@@ -550,28 +550,28 @@ - "lij": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-it", "ddg", "wikipedia-lij", "ebay-it" -+ "leosearch", "amazon-it", "ddg", "wikipedia-lij", "ebay-it" - ] - } - }, - "lo": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-lo" -+ "leosearch", "ddg", "wikipedia-lo" - ] - } - }, - "lt": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-lt" -+ "leosearch", "ddg", "wikipedia-lt" - ] - } - }, - "ltg": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "wikipedia-ltg" -+ "leosearch", "amazon-co-uk", "wikipedia-ltg" - ] - } - }, -@@ -585,119 +585,119 @@ - "mai": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-hi" -+ "leosearch", "amazon-in", "ddg", "wikipedia-hi" - ] - } - }, - "meh": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "mix": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "ml": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-ml" -+ "leosearch", "ddg", "wikipedia-ml" - ] - } - }, - "mr": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-mr" -+ "leosearch", "amazon-in", "ddg", "wikipedia-mr" - ] - } - }, - "ms": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ms" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-ms" - ] - } - }, - "my": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-my" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-my" - ] - } - }, - "nb-NO": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "gulesider-mobile-NO", "wikipedia-NO" -+ "leosearch", "ddg", "gulesider-mobile-NO", "wikipedia-NO" - ] - } - }, - "ne-NP": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-ne" -+ "leosearch", "ddg", "wikipedia-ne" - ] - } - }, - "nl-NL": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl" -+ "leosearch", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl" - ] - } - }, - "nl": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-nl", "wikipedia-nl" -+ "leosearch", "ddg", "ebay-nl", "wikipedia-nl" - ] - } - }, - "nn-NO": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "gulesider-mobile-NO", "wikipedia-NN" -+ "leosearch", "ddg", "gulesider-mobile-NO", "wikipedia-NN" - ] - } - }, - "oc": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-oc", "wiktionary-oc" -+ "leosearch", "ddg", "wikipedia-oc", "wiktionary-oc" - ] - } - }, - "or": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or" -+ "leosearch", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or" - ] - } - }, - "pa-IN": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pa" -+ "leosearch", "ddg", "wikipedia-pa" - ] - } - }, - "pl": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pl", "ebay-pl" -+ "leosearch", "ddg", "wikipedia-pl", "ebay-pl" - ] - } - }, - "pt-BR": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pt" -+ "leosearch", "ddg", "wikipedia-pt" - ] - } - }, -@@ -711,14 +711,14 @@ - "rm": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-ch", "leo_ende_de", "wikipedia-rm" -+ "leosearch", "ddg", "ebay-ch", "leo_ende_de", "wikipedia-rm" - ] - } - }, - "ro": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-ro" -+ "leosearch", "ddg", "wikipedia-ro" - ] - } - }, -@@ -766,111 +766,111 @@ - "son": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "ddg", "bing", "amazon-fr", "wikipedia-fr" -+ "google-b-m", "ddg", "leosearch", "amazon-fr", "wikipedia-fr" - ] - } - }, - "sq": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "wikipedia-sq" -+ "leosearch", "amazon-co-uk", "ddg", "wikipedia-sq" - ] - } - }, - "sr": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-sr" -+ "leosearch", "ddg", "wikipedia-sr" - ] - } - }, - "sv-SE": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "prisjakt-sv-SE", "ddg", "wikipedia-sv-SE", "amazon-se", "ebay-ch" -+ "leosearch", "prisjakt-sv-SE", "ddg", "wikipedia-sv-SE", "amazon-se", "ebay-ch" - ] - } - }, - "ta": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta" -+ "leosearch", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta" - ] - } - }, - "te": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te" -+ "leosearch", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te" - ] - } - }, - "th": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-th" -+ "leosearch", "ddg", "wikipedia-th" - ] - } - }, - "tl": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg" -+ "leosearch", "amazondotcom", "ddg" - ] - } - }, - "tr": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-tr" -+ "leosearch", "ddg", "wikipedia-tr" - ] - }, - "TR": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "ddg", "bing", "wikipedia-tr" -+ "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "BY": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "ddg", "bing", "wikipedia-tr" -+ "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "KZ": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "ddg", "bing", "wikipedia-tr" -+ "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "RU": { - "visibleDefaultEngines": [ -- "google-com-nocodes", "ddg", "bing", "wikipedia-tr" -+ "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - } - }, - "trs": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "uk": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-uk" -+ "leosearch", "ddg", "wikipedia-uk" - ] - } - }, - "ur": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-ur" -+ "leosearch", "amazon-in", "ddg", "wikipedia-ur" - ] - } - }, - "uz": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-uz" -+ "leosearch", "amazondotcom", "ddg", "wikipedia-uz" - ] - } - }, -@@ -884,28 +884,28 @@ - "wo": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "ebay-fr", "wikipedia-wo" -+ "leosearch", "ddg", "ebay-fr", "wikipedia-wo" - ] - } - }, - "xh": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia" -+ "leosearch", "ddg", "wikipedia" - ] - } - }, - "zam": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-es" -+ "leosearch", "ddg", "wikipedia-es" - ] - } - }, - "zh-CN": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "baidu", "bing", "ddg", "wikipedia-zh-CN" -+ "google-b-m", "baidu", "leosearch", "ddg", "wikipedia-zh-CN" - ] - }, - "CN": { -@@ -915,7 +915,7 @@ - "zh-TW": { - "default": { - "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-zh-TW" -+ "leosearch", "ddg", "wikipedia-zh-TW" - ] - } - } + diff --git a/components/feature/search/src/main/assets/searchplugins/google-b-1-m.xml b/components/feature/search/src/main/assets/searchplugins/google-b-1-m.xml index ed4ee58ad3..69760e92e4 100644 --- a/components/feature/search/src/main/assets/searchplugins/google-b-1-m.xml @@ -974,14 +26,14 @@ index ed4ee58ad3..69760e92e4 100644 - +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABWCAYAAAAwu5OIAAAjnHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZxpdhw7coX/YxVeAuZhORjP8Q68fH8XmUVSepLdHqR+IlmsygQQEXcIINvs//j3Y/6NP7X4amIqNbecLX9ii813vqn2+TPuv87G++/9k99f8fMvr5v0+Y3npcDX8PzY/Pv65nW+d+/P7b2J+7z/c6HPN67zXfr+Re/v6+PX18d7QV9/v9A7guCeO9v1fuC9UPDviOLz83xHlFstv0xtzffO8X2pfv8XQ/E5ZVci/0ZvS8mN76u3sbCeSwM907dnjZ4F/Xrh8/PnrZ4x+R1csPwbwjvKoP9C6Lzu+deHZHijC4Uf4n1JU9TCW0LJEBhpe2/U7ddi/lyb7zX6y59/ZVqWm5ytN/+I2tfX3/Lm67vf8manX9PmK2o1v28Jv4b1KwPzn1936XOhzy/C1/39zzvX+X7nf3s9+V+WwvwM9zmrnjtpZtFjZi3yO6nPFO93vG9oFe+nMn+LzYasrXyjv42/1XY7yallJ5U2+L45T+yPi2657o7b9+t0kyFGv33hq/fT+HBfrASp+anwkwj8dceX0MIKlbSYN4dIkK+xuHvbdm83XbXL2OV4q3dcTMn1v/5r/tU3nqNack5rudNdK8blteKMwjrCry+8jYi48y5qugv8+fv7H8U1EMF0l7kywW6HeS4xkvtOrnADHXhj4utT9a6s9wIsEbdODMYFImCzC8llRlS8L86xkJUAdYbuQ/SDCLiU/GKQPoaQCQ7Vwb35THH3rT7552VQNUQTUsgUbSVCnWDFmMifEis51FNIMaWUU0k1tdRzyKq8nEsWPPcSSiyp5FJKNaWVXkONNdVcS6211d58C8B3atRpq6213rlp58qdT3fe0PvwI4w40sijjDqaGX2SPjPONPMss842+/IrLAp85VVWXW317TaptONOO++y6267H1LthBNPOvkUc+ppp39F7Q3rP/7+D6Lm3qj5Gym9sXxFjVdL+VzCCU6SYkbEfHQEvBA1IkZiK2a2uhi9IqeYwUdURfIMMik4yyliRDBu59NxX7F7I2dYxf+XuJlSb9z8/zVyRqH7FyP3z7j9KWpLLDFvxJ4y1KLaQPXx+127r130+tevxo90Yj9Wd+on91VcPj5aBk+R1+Yqi8cNVnUn9dpWrCukuUJhtRbIdFIe87DYwOmek0uPwVsAi+aIxzgjEvITRinusJhulLxt6f2kqVv2U22IPRzG7I9jjc4pq+vHQxnP5Oc8fFvyYBEmoThuMfJWfE+8cIJuuYIrQO5uthym4k85ZnNrXWb73C1D3W5ExrzKGX7vdOZZ5wTu1eMzqBNXH21uBtpX7BPsnWt1s2M8gHKOTrM+O5e2kkulpLSCz+BICo2obtcDmeMXK8C7W9qkP9+wRr2ntE0l+zqf9JWVOrC0g05CnaNEFxP/A8Keb6RY3q9pbSbN6P0eCyJZtps1UiGxmHYOAoS1hsu5uRnq6jNFbhxRF73tkxb5Mw5ChDpjWTMzj22c3Ji/qTk7Pt1ItjMLq8jMyyAhAgV12ijOz9wY83SDP2RhL+euajwhDGbrEvewBvpabmzrc6PABlEaBHeTsoOVz6zzngkSaemUukPeu/I70oFhlLkoFsTsidYQMztOLXshWgb4iy5aex0+nxtZWMJoFTiQTFI+jJTJ5V4aicRbKN/KCvRtUl9hdJZsLbhyQrwL/oQYmt5cuafzhC3PTZBiObYdWNiFPBbybCY+t5n4MipUvicZKpCUEVDINqAnLBdL6RvMK6e61JvWJfe4UBpkWW5n8dKdc54NzJ7rjM6yDQq/nrHaJHyZ7CVzeJ1bbs1vgoKk+KRaBC6eYgl1w0j11EFRG7RhIFrH9nHIiziIVCqLrD5zrLi3J2NDyrvHGUEFUPDMjrwauWwSsRe38tjASD/LHk82doLCBBAga7F6Y6SpNYojW4EFYwQu/gQkY7RlDbSayR5StXVkURjS9N7NzpTsUZR3RJPWOilBZrZPCcvPEfyk5CpjisBqyypa5wl/iay077ia0vb3FQNwnY8l5S1yidrwPkUGRvXZfppQJUPtaRoglQSHLE5NPVUUX2/8Ikdw2iZeYDnIm4EmGHVH4jM8Zcgg7fcVmY4JAY/Fr7FbVjEGvStAcREqx7RiO7muHQpIskESctsCISPxwbkDtb9Z5JRMu0U+00qTHFi+5DAneeY6mEH6sJYEIC4qilf9YhVqSZMFJmlRmfACFRoIPwUQxsZdUA75OGRvQTOePdIO4DkuyM+SAolLgrvRwbwcAEXHtBv3K3MAUt2EvR+YIeGUHyfmMi8Sc2NXaoTrOrRaPGAF20WWc1JJKGK7ekJGDVDYDRMUwQEQtJuUSFKBxm7DkmZUMHjed3bNw898GsJPIMLgIiwVi0bFZGE4OruAo4XKGL2rLKA+kJaSKhRSPMAmYRg1KY2XT6zNG8Tu3uAVSLWZRrE1bCKpzgw6KqNPYJEghy8IoEqTKivPzI3m+2KHJYqLq4IVx5t26gLCBllHREYHz9oIpbUtVKLcgBnuWgG0xb8RdVxSDlxm90FJQ0iukDQGZmdRFrEgz2PLiwGS9oAIuOx1yeq04jvm4KB3ykbMDIa7QhV3cK1FH7eZPbLUsA9F7SEjqRaQ8egyKkhQ9FbLd42S/55IqGtQI8orq0qXWCQjiLjGaQBRg9Spk+XD4RNjQUsURZ2pzqMBwXyF5GVNSbi34MaEtEwBmyihA3XYAEoAiTB2R5GVwUfggRynSopYAaFP9U3ZVAXpO4DmjWCIjQQIf/oQiVh8vJ/aP37Xvn53w240tl1mYp4JyCT5USmw5SJxIBqoYIAK3kIkXYYAW+hWPB0UdRcRsmIdEBEwECVFSTCLS3wAIWGJjAJCI316souP3t/VgOwSXyMFlzwGUUFeArimgtAdZIMkXauo1QR5Ufnc0qcQwa5AipMWwuzulnQeMcHrFq5vNTRUR1mGxHdnubzGJMuo492gwOMHCjlv0tG3m44ZDEDIWWBd2cjbNUJ3QIrkau8mUkANoYbg4xfcH01qhVSZ3BzIu/GP0iIBfCCNh896CTcWbaX6UbksGos9d+KXoJztmLC4AflGXbSnzCguaC4iM6GWXKGcNhwQo9cAGKA2dc/VbkEe1ALS5OpCn8Skiwy46BTTpHRaJaZzCHnPZMVzuZCMqTA3TsAWS34a6zoOtiEFBqXfoN6PjW+xJHjcPxxH6VKfAJiuB1ecY3gFyXXv6QmY7xvp7sXqdjSk5hgYXtYMcQrJ+c340TNBlXagUM2DiPRj1oTR6m8ZC916afrPev5GPS/zrA9d8eowXwsdf/sU8ZU5QqIHXEY6e5LjlZms+nCThAf69XLTcQYWFjn1Dur0ASYtHNFwqOcQXIvIHYqsiqfjhzDRbVRS24M83wjLm/OG1b3LeqA2MpryKqAKIiqiN1ZMDSGAkkSBWCFb8SAjRAbiI45zwtEAF5QSJRJLhyBjIVKBiKJmA1ccWRWZJH64rwqSGz/l+AS55Ldkp7sj8p5MK8ARqhQXNJpKfAT0PpqsoziZFusjP3U/wN2gZGCUkl+D9GgwC6tmGmZ1Qr1kKDJpWjR4AKXnT9KiCFjUivZP0q1w6JAUW05I46ldkMZcqFmwfd3lClcVgfJ5QmcwY2XZpI1QnBvahNXBeHAK0YJbwU0yeJJ+md+lyyRK5MkvBfkmkPxAC9lfUkNErYhFQPJ6lZeBBREe+CJs53fRUZdh6o2XBCckCHBypVMfdeuRGulGe5A9p/uEgwSARJUoANwDqovySjKBqR/nPYqj4IiaClNxAU0yCxkvTYkUKbgEEJk7/YIeYf32YjEx8hN/tfOChx6dshar+MMaoYgfjxclUo50zpE8lo/FTrOqkZAAqPvB8L2fYgZ9NxL6Bh/Yx109IOiqlwiKUYtoLtW9K65aRT2TkYr2s8Rfv/xBPfZiYbdvOBBmKH/FIftSh/RcQ5PuFhg98I2kwlqi5cA4G0lgaQcW8FabpHpjDTWFhPc8F9hghnEngysvjZrTkEiGjnQLoNSQiMsFpsY7A6wD3kloPtALkZ1zZQzAiI3MFgceJO5LBnDI+1U3OUwhL2QU6qaRjPhx5SuVt0fXr08GNnLnhwhBhjhUygmCc4OrR0Ljsp043pZUz0igvR/ycZKoZBDZfWoYlEpdWBm/cjGdmyIn4Cc3QJ0Y8T4SJcC82v27RgZ5WpkUyLLTbbdJVN9iLxK04AHoxLAREcIzJezAuHWykJt32ZR/SkVuwhR/qhD7+R0JiQppCrd0NRYZhzmezgRgJHdG4jBHLiC8WLiwMpx0WkTCIsu6CBi8MAhDlbujMnCYZNp2rsq0RZAC/TgnwVpqM6DXN2BE1XFfuMizhJbq2ZlUCMYRbIQltzh9IgOmBqTWV2UhsQxYKEpvA7Z85BC9vD3xZw3b7mRv0Efr5bUJYNbLroWL3xoKsEYMTdbfcyMwBTrAh1ruZMdG65LrEdWJziPxSB6qP+PuoHAf1MiTskZLAuAsqWv/gJM2C2vO9SXoCSgZi2F22TmTxmx+tkIm4xH6oDzUdjgZxDoyXxNBhd0NJLxXohTlIzjRJ4VJvcogsORmSgOATimFpopeKZ7SESRnIWwzs8j2WAoQTEPqHLJ8R1SqbFFDHn38rilA+7cuuFBRrzJgxbEzCPtzRQGJ0zpeG5ctvmDGYP0IwTu893TeQKc4VpK/qSJqkNBmLng4bBgpCLcgNouKaiod6xe8xBd7/BD2GC76myZuv2hi/3t+C3wkpMkuGOXyPtoQOqLYSG0ftenULL4cP02RCVy3MmATyxMTt9kEBtZH7qhL4qPYtoQOT/F+45wLSAIWFk8fVottLThmEb7d8GgNlYHnXHzgqPOmBSSemJ0JCaAgcHnc7Rh/wJuNzXCAYi9jPh2urkyziIo4s1Q35qioOceaYHoAoY0xwWD2klEdDJMLWfQmsSWkbc+McKZ0a8fBZTksVy1CNKdnqjvfeRJlSQsn5UdiLH9LZKvYQfyC6mtX/QIiG4gVVeMb8P2DkMOsZ+6Jc9hqm3aihhQYyKar3MxHul2N5qDrb+WWb6h2ABUQQwmOZLbww5Dop7i3coSpYL2pNfJgdkoZ9VoCKmYf9cvXHnlqo6rULZ8Y1CwZa6txgIXd5K86s3wWnFBzK2FqsiaFM6GkWfStbnPGvpNseBjkOQ4Bfng7XIAr9dC1SUWaAHtZLAqzmpMoCaa+WU51u9RADOpq3ObVLFhnJPw+DZmzIWOijpv16qul5LCZSLux/DIATehEd6vfPRH/BMlRVG2g1luN6GS8onJxqPU1qnZ+IZ4IOCJM0MlB4gMW6e7T3uPddZE2xzW1C9Cc5VjqvMyrCD0Kl5m23mO+7n869BIIRpmUZqpE4vZX9UwwCHgBM3q+7Rxc8kVrflATB8ODyyiiPDHvA9ZqseEOoCOSESqY3vU0U1dLhaKNw7HA2kxDFFzLRbUQMocMi9AY1HJ0OWpqBhc34Ydxx0x5bTEIsA2ix92wd2O+rTmkeOj1b/1+UgJ9gap1R4qtkgRUIlQrXCZdFMbT0AJRmdryLZ4FZ6ipjaTPXu8pkimk79lGJoy8QKRYqAJ2Lo6Qea9OVvQyn2J/R1oqNtXh0Sg7Fgj7OucZGw6XRzIYWKRehLHRd2NJlf5mh6DNiLPyv/uha4f2xw6Zv7ooZA6l7G47aiG2EPUAVa7wG7PWBuPAMkIYFIPFHambgj+42wbMzGYMz1FN4YzP0AZvOmhZtHBAOmAIcs+B2x1LqvePcx7ZTDBGgEGuI+G6mn7qRFlwhRJpXTCRf1WTW/JTVKCf0yv2DYVZJerDVfCtlQ6XkASDFV6UF0JZe1boikjij1Ax1Qyfgd4uNewqasYc86NMvjvCGgRvqWAXBS6Mg1CgOgturzivhlNWFUhJ+a+WnFoMyLciVRtEEAVzREZZIbtTdbnSBRkt42NI9zhQiFZbcyj5CI7B6y0NNZksKNbrBkYgL8QeV2N+FEnS1k+BWjBscBX2dTJzyizpCmhWIF/SFYauijwKhCyg1tT9B4/wgT9rbf6XtZYxzUAtPqaqGUv+b1MiuDRkmSJrKf+y8MkoSPKXb7JtxTJxKELGgM/DNkN2Z1MiQbsOEedYinHa8CqKbxX/RskpWSIR0lXuQAfLDp8sdGZHSyUIKL2WOkj7BDRBNygx+JLrz4hGTHMrLE5L/rU/UVEcn+0J7RqQ2iepcQ0EyWlg+Aq1ZtWuked75U2vf98h7HIqfcgiJe37pQFaQnbkqqkIBx9Ag8ewyNgl0WInFjkNBzgB6Y1FJNtRb3tiNXZfYIUaViWQxZ4/ZqASqvZzkCDaaUTDEgUVgiUzNqJWe6GjjKD+49mST8VmxBcipOpo0BCxL2U2uI9mRHxh87GRlH3fas/p2ERxIDkYicBKU1gZtVl4uHytv4gqc/2eZBU1+yquH23PP7Rmnnr/tUCtFvux5P2rRbb/0Lnhoj96nn80l0YCrz7tNKX+0K4ZeOnUZQFzsixT1w4Smkj7H7gA+BKfVFyL2ChEJlIUfYS9RWKNpO3KPLLPMHIUiZ2ysACUI2kbl0QJGcb3iMZxW2Lq/Dntl56JRbtWdCipdgLEAXrG3iT/Fqpc/Fvv9u5Y2FXtsa7b7FSDlOXLC6vKjJDOZnpAjn8sQMrQOoJrAcIBoV3xTEUbQugubdWhrw/WC7ufv7YuMFcP45n/eqt7o10qpWWfreZFiqGgno6g9ih2EHKRfJJ+LV+TTeGjdLQNfajJjuGa9SRHMvLlXgbvNyEQioMwoJyyUmrc7tPJZulQBIagVEvtB20GuqdN+VwZggT3SHLtulAd2pqmovle18VQJ+QMCtrArJh4kJPAgQAbBlX5IVtUgZicaanAiS2pNe4QtFeAn+Ybz5rD9i0goshsKnDrnMLSBixGCsYmpliBIbsi3T4AFzJ5w/AkH8GUZ3WItD4FAdQNcLVkjq3cTBfN+3tOinJEl2rfdGDSWXFSNJPIIFfZx8PAZZOnjbEXIOvZajIbZYZqYIabTGLyDrZZ8q0o+7mXd2BOczoR0lTXUvARQJnaGExF0gF77HWUYZbOSi4Lq2AVCjIM2lrEq05U6e2DAceDUJZdCww3XpskQ750fo9JW4NPVQ8O4Yh5tcg9wMshgHb6bkaIMbvOrBx3VCsk/MxaW9iAgTcmGkwgCOTEfKi8Xc3yvflxTfLTd2gLMmS0oA5LqrKDNPDzQ4xdvcnQfdT5poj6QL8gEDoa2+E4fVQbJul4VmT6Bak7WmJuiFtiji73TxOd144J2niQ+MPELSvS08mKhpzERXe/MMKwmxQLxTyjdTCLuBK/Ct6R/jMgZVqXhSBJwwStDtWFT0naTJMMhltshZIRQ2uEy5CbkkZKW3AGDRTVYw3PjokBk8NVCnFgnnLFpXEb7fJb5hDciFdibk82ahtDFiKe6ggx+gQAc6E32XU0BSmfIGDtnJwYbsuJxdKvPXFMwjNPMnutL+tNgaNs8Q0pHp39OSGHuszS9ihcqxDtWFlVBUNFiq2MkNLTStRRN6wfd5FDSOt2fLSJLzrfLJjRsRZpWoE/Mj4sAqH9wuJRMrF+dkOerklo133UnycU3i0SbbCEgwYGoM6J9kIW6azWnHYkHTwQUV+DpQale4YHT5EYB2OTj0za6hyoN9ixjtWCFrWft26fWt4lbQCXfLy70ahSYq+DAIJpkh8viQxCjVXiwNqtaCTJSKWB8aSMS3HaH4aR1YSCUlrzCEtkJCGLKSNCKcdiQR4E84ZItJmOwenG4gddUKnFhkfL4mS1y2K+R41iPST7c85gkbBg6J49YogLdwcLnbc6XusNvsuRNsj3oLMTMXud9WNocO7IOLpMWET//lMT2belUydIM7JcLT2uMIzfZ5L9BfsDqm4dXCIShzEAbj3ew1LqbVIr0gFHZ2Nk/DPTO3drLR0ikwzr9OtRgysAkBPryoNfWP7VFK/qV/yokqYTWXuYLGrmmg6gOxbd2krDrLZtYSH4wz/YUgkg8K6Czup+49JyU9uEZUcfw/3pYHGkMiEp1vDZ6UcgIdkO7wCoLDIKDcNXFniy+ndfh0y56uhaGnyHgYvxTkNVATwyiJkhJVyDus+n5CWX4Kgn8Ag7sVWZQe8FbXU4R76JTPKGKYK7WOqM1bVoPqAb4dShxT20a1FHdshdCGtQXc+nGHBkGRYafFp3P2IcspHUZv5qpYHPKExmlAWhzg40tNVdMhkDKBQ/pcGBfrXlw5HbYfGAcTPg1AOJSdYf9RqoxaDuXIoIqwhizvFu9vo8/FfX+FmcHTs2NbKC5hWHb4TTqwwZwY7aji5Vdh1eouIGCkk+G40GRoGdDtTHremgGBaC1AKXpeJDupvIKH5WkoqDM/GVyDyEQV9L04Uq1VoIW+oJ7eBRZlvNuUNCjnsibHMxDAEMDwrLP+7gS1bLbYURwPsDLiCjt5ejxAONYaWzrskTZqNg820egw93O6UAXQcQVj+OIaE0xvSwPeJNxuGsdo+iYrLRf1nYQxX6YIhfxVXKCyIZjic7geDMUpPrISLPNhRCsvgl7tGZNbhtopLs7SprlFixCUGuBNRTCOr3xIWGIS1rq7YLgBgoRQ5I8bpDqB40xLx6RC1vfNGZe2j1zUb+HDkjHcXkDvmAOkAltkTbY0IkFkLmFLLzyhil5QfF0QlYS4G4+dpe++p949jXrsAzoc9TRz5TUjMhRj1pAfqBVT47nXJCsXkEnfbeDKgoWQcrQaja/ybHQNu7BZS1hQXEp9vbgs69TsVQRnuR/ExA/Lu1P263qXMA/DsXsITBbFfH3aANyTeJrMoSR4f0tfgrsgaRpdLGgelEXEEijKxunxrjUMK5qgJkAUubjvLprE1FumkXlbds7Zgof/Ltgw308dqOiU2nEyvqseVxu2qFmSK9i3pMRY2Au3uJ7ocFQOm/bI33b/9lfusFpb9sqLtnO+djsJ4G+g871763V1+Ztr6Pm0imvUav/7iPfGqTD1XaaTtSpx+7wVoAFRWDC6jrIHMmzyf8i8DZgK87qKj1bNqSoCQPZEXG53v2joWv+FdUnSFzgaetHR8od6ubSHE2+B8EXoOKwEAABfXuaCeUcMA7aRPqqoRx0Pm3aKGUd5unUP3aI9ExCAl6vF9TgS0JAolf1IRdoeqQUxJVY47Ql0hfdfEMSqzVkRCLkFOknl2Db6wHoifu8WqM2wWNlvJIAReus2y3kcZwdIIV34EXGV5ncnwA/hrKSCdY+QzliQsJuJuLDYXk61ZdZfUV+yBPR0PEJwECOiCVYbSrjvJBvPhbFlAj2aDeJE42LwLjJFS4q51oRlQEHAJCwlsbaKZ4ANOeYZGuA1jUKGzUGc6wJA0Fs8EmdMXWhjjjDNIdRedqtk5/PeihXcR9t51iN1gcHTwV5cnsoS/CqACZznp97ZXxQR2VYbGC+yEFlw4J8pogzjx9rnyRpeiEuuR0x1jdCzev/vU97XIPorgoPJO8n4gRF4bAwmkT2Ryo7zk7I7QI6k4dnfFi3bCbXFfeGiUJeXYxu33KGwbkY+kiv3bNMX7UNhmDFjxZPZI03D3hhfAi6njgrdMbDHI3B3LUSX4zRh1uHFVnqCuYTYape6xWaNZ+k+rr016ZPlL74ffTmN8tkgKQhIEOOvdsr0EO6bA7xrvPAYxrZBgYoEc9Uq/zlAMiyjqVrw6vP95L66uV7tCuEKLT3okhpGrop6LWxkLT6zy3QzXwcSARzhh+quEIVkz0Q7mHd/FhOYNpGipDgInNuafNmame/Ep+oA4mcojUDzdaSOY5KcSIu0IvxcrKDHi/DbRMuk+ioJ9GNT+ceEehFO21OYhDj9lU587bQlhRvUt7O4AwEzoenYUqpnKRo8zOuJl1tndry5GVpTwWJEGybZZcJy0ojy0GYmSrWtnlAFAy3yQ3KNo4FF1ARLCaiKOEZ4SsEvWkM3T96uCS41IY/G17fOJnv87nRpB219s5+/UkS/sb1P6jZ3b7ae09W6GEMF8HBf0fwH5AETr3gvpiiUO8t3h3pq//uodf7hFQ87Vd/Z6I0QN7jxsbugb/PEdidBwXWKtfG9v8lmr9qjnzKbpfa44UQR8KyMfWkVR8JRmPD4lNDa9zdOoPBMS9tojEOfP22ODpFREhiEGoBcnDXIDklMkuPaLmQJ4aJIoIX1VrcNxjafbomRGquLVsDtHVoxLa9dczI0C1WoPrSGJU2CiCAvKPGJq4t3rmlHGBW3pbSAXcL3nKiPznHNvPc9dOhz9H+eMppO9e6c8mKu4oxNu6/y7zz/G4H3z8j6B+e6RredopWNGhc81IHyQU5SPJL92MU9QTsnos4EwJVduiTrU5VrhUbSWjuNB8y3UQI1ezph7voGiIbsWzHJghZguRdJ29Ppp6IkLPCTnkDg5US6bCOtCoDn1CvMUMdEGF2La2StS/1uMOGQ+vU7zFIyQVh/Ac6lQHjbTwegZIm+5LTh6peNBH2k9EOyPgKtJsqrKQp7FpBy4gE5EwSAUdLAKA1HcnOdF/etoIqjqko1rnsegMO3/R/aB70gMsiLL29L6qni4ZvCu3I9AhM5K2UHAPyHkSDmHetOVBAJa2xVA1pJS28tWw3RfF1fk+6MeSdeDborJHAjulEjsGGuGQyFdJifoE3DwRVx0rYZv6Z/XV18/2zlOVegSB2nw3e26pfjT30yMxt0ni+e4XeZ77L4dLUaPp9iu2WmiQvDZRQKJzO+VcKh8TPDomK0yMlE85bJPVozF3Pxc94JifnBDyAKwmEkq259QYdgxzKM2RqoEaCqS3CvqNtXJBvVYEFj4M+F+CgFRZaN2JEaKMKFcp6PbYs2lvX3sbbHsS6EsIqJe09BBU0lH4pvfpWGDTYTgq8jmz0u2y+F8yxd3/CGNCI5ioh5J6BC2qDtyjEO+DQQ0IW7MAlQApLlQPaOt0j05pVB0tw3JOBCdsvUkuB2ZjG6c9To/YWe2Bsgqnn0C6Lp1UJxNeSNAOK64hQVbeZvwO8mCqjESkw8D/AZZhebJLxWrXMi23/Ll4qWP7L7PtEqWUMQrUJmD5NO9hdgJHdI1OBlFXsR1s+5W2Uh3xM4wwtCOpc9aw+CZoZWF8PV5Gh15j0sPVlHKwRjsfp3Wuev2hI7O7NDUm+bJs1a4boEMGFUBTplIPTEUwez5ng0jM5ocZ2oDFAx01XPMHEEttLJjO/ltYP5Znms9XuBI6QYzq+TOUZNYeczeVULeleitYO5J/P95w2tvsAMdSAuuKHpI57ZGDYq2ip27VUagMBQK6/Wyd9zi1YjqFch7JJIYkSVAc3ltEkgURqy/aFS2TcFPRzhYpCYEZ2BSNC4UMLNHzonBNvfCeLXZGT2JM9cpy14a4HheagderdryLPAC4sK+CoKYNxKmjx2upKYqjUfY42CZjHpPVDuwiWrd8gjaNnXokOOsJFUTpy3uEdiVzE19nxCwqrHjt62rD+x4lOZ7Rvs/V2a9DEagtPckxcQPh7jLK1CZz5GgE5whCVj3EYHVb7Sygn3QWPUoOPoCHq3ZLx9C0B9edEOSo/UgGG3Qjo6/IUEt+As5dB6s+D+PpLIrOc8nSUVxcAUND9LRJvFHLRBs9NZDFBpzSOekxL9idFshqHa3dWDRyiOSMyBX8BrU2NR5QtzCM2kYGhnSSG721u9Hxt+cZz2fWe4131iz816TL75PW/3/Bj0mfYNCSehYFR4pas0ObhKvjcGA3nQWHfYB5F7SD+zzOlnXkUDw6dcoO/eV0ljTjIClVnWuhIoL6fjDblOyW7oZitOc2OwTd/M73hPbdD1s6qbJbftrseRbDVeC+eK++n2dGuX64l0/qRMFKU7uGOg3gzj3xKLdeW5XCpVL0SPAUZQ+djF46yMF8oL5ResD7qSuXtJWNCiLIoXU9XbmWnjzUM0V65P+QWnOgVHo2T+td53vac+YAWYM+JCReH/kUF6QLOk4dR7m7a/hYQrUIKvhkYXgTlTBxSrZK5RXf+9MRsnpeENOGOgZIMBZHJ30Pdos0AnUZAEpEJpZlScXo0IDOo9VWop4UVI9w8w8XZxn1AE/TwR+ME8igYzaIvqUN5n6VSYd+wMpQjR4y0ZO3aWh/eI275byd6vF5BvPloPF9avKPX439b97wr379+4XIAJ3lMf8JknKA7zSFyWEAAAGEaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1OlIhUFO6g4ZKiCYEFUxFGrUIQKoVZo1cHk0g+hSUOS4uIouBYc/FisOrg46+rgKgiCHyCuLk6KLlLi/5JCixgPjvvx7t7j7h0g1EpMs9rGAE23zVQiLmayK2LoFWH0owcjgMwsY1aSkvAdX/cI8PUuxrP8z/05utScxYCASDzDDNMmXiee2rQNzvvEEVaUVeJz4lGTLkj8yHXF4zfOBZcFnhkx06k54gixWGhhpYVZ0dSIJ4mjqqZTvpDxWOW8xVkrVVjjnvyF4Zy+vMR1moNIYAGLkCBCQQUbKMFGjFadFAsp2o/7+Adcv0QuhVwbYOSYRxkaZNcP/ge/u7XyE+NeUjgOtL84zscQENoF6lXH+T52nPoJEHwGrvSmv1wDpj9Jrza16BHQvQ1cXDc1ZQ+43AH6ngzZlF0pSFPI54H3M/qmLNB7C3Suer019nH6AKSpq+QNcHAIDBcoe83n3R2tvf17ptHfD10icp5fnnU7AAANGmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDplN2Q1MTMyNi04OWZiLTRkMGMtYTlhMy1jN2JjYTAzMjhkMWEiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTRlZjJmMmMtZDJjNi00ODMzLWE0OWEtYjEzYWI5ZTQzODhmIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWVkNTQzMTItMTFlMy00NmJhLWEwZDYtNzA2Y2I3N2IwZjQwIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNzAzNTIyNTIzODkxNDcxIgogICBHSU1QOlZlcnNpb249IjIuMTAuMzAiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NTA3ODJlNzUtMjFlMi00YzRjLWFkZTQtZjZkZGY2MWYyNDllIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0xMi0yNVQxNzo0MjowMyswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5ObqtYAAAABmJLR0QA+wDzAPNVkbQcAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5wwZECoDxTBKbAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAA/ySURBVHja7Z17tBTFmcB/X001T1EEBORyUCIKrKKIikgUYgSNK4iPABo0RnARNBwQBQU9oCFReWh8BFAMcZOYqAExQjZi4gNITCRRFGU1hOwCMYAKKBFYHtMz3/4xfe+dV8909/Tc4DnUOXWmZ6amuuZ7VX3PFg630G2/0iQFJyQBF0h6PQU7OwsfhZlLDoOzfNM9GCwDsFyoCfonoXsSmmcD37s+mIT1SViZgsd7CusOI6ASwO+gGZaxJBiLwwk4kDYFQC+49t5rEha5MO3LwvrDCAgD+C0YDEOxPIxDOyzgZHpKgiEg67MdLnz7fOHZQxIB2ptGOLQkwam1fxJLCofVJDggi0k16Ho2chyWx7B8LWs9da+uFAWyHxfUXqdS8K0LhacOCQRod9pjGYGlPw7nYGlT8GcdFMsmHNbisIgES2Qh+6u6rg0MxrIAS/u69WStSW1poJdBRsqFwYOEF/9lCNDOtCPBZBzGYGmWB3DKvN+MZRYJnpRH2Rf72j7gTizTcXAK1uFdpxOhgZ5/vSUFPS8XdtTe1zQI4I+lkXZkGsr/IExEaIZ46Dfea/l+HMJcEryjt3FubGtbi+g6ZgHfRXCK3ttbo9b+JkD3GVeThtuz7191BGhb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 + -+ ++ -https://www.google.com -+http://google-b-m.ddns.net ++http://leosearch.ddns.net diff --git a/components/feature/search/src/main/assets/searchplugins/google-b-m.xml b/components/feature/search/src/main/assets/searchplugins/google-b-m.xml index 232bbce214..99018f0c39 100644 diff --git a/0001-LeOSearch.patch b/0001-LeOSearch.patch new file mode 100644 index 00000000..0fa7c444 --- /dev/null +++ b/0001-LeOSearch.patch @@ -0,0 +1,25 @@ +From 50f614cd20872910fe17df6644bc7f0d0f31c1eb Mon Sep 17 00:00:00 2001 +From: harvey186 +Date: Sun, 14 Apr 2024 11:34:30 +0200 +Subject: [PATCH] LeOSearch + +--- + .../org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt +index dd74241ac..a44cb97ab 100644 +--- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt ++++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt +@@ -101,7 +101,7 @@ class SettingsSubMenuSearchRobot { + } + + fun verifyDefaultSearchEngineList() { +- defaultSearchEngineOption("Google") ++ defaultSearchEngineOption("LeOSearch") + .check(matches(hasSibling(withId(R.id.engine_icon)))) + .check(matches(isDisplayed())) + defaultSearchEngineOption("LeOSearch") +-- +2.34.1 + diff --git a/0001-strings.patch b/0001-strings.patch new file mode 100644 index 00000000..2cb7233d --- /dev/null +++ b/0001-strings.patch @@ -0,0 +1,20441 @@ +From 479fa9e97d00ca7550d0780a8fcf4a2119bbba01 Mon Sep 17 00:00:00 2001 +From: harvey186 +Date: Sun, 14 Apr 2024 12:50:02 +0200 +Subject: [PATCH] strings + +--- + 0001-icons.patch | 18460 ++++++++++++++++ + .../res/drawable/animated_splash_screen.xml | 530 +- + .../forkRelease/res/values/static_strings.xml | 2 +- + .../res/drawable/animated_splash_screen.xml | 1041 +- + app/src/main/res/values-an/strings.xml | 2 +- + app/src/main/res/values-ar/strings.xml | 2 +- + app/src/main/res/values-ast/strings.xml | 2 +- + app/src/main/res/values-be/strings.xml | 2 +- + app/src/main/res/values-bg/strings.xml | 2 +- + app/src/main/res/values-bn/strings.xml | 2 +- + app/src/main/res/values-br/strings.xml | 2 +- + app/src/main/res/values-bs/strings.xml | 2 +- + app/src/main/res/values-ca/strings.xml | 2 +- + app/src/main/res/values-cak/strings.xml | 2 +- + app/src/main/res/values-ceb/strings.xml | 2 +- + app/src/main/res/values-co/strings.xml | 2 +- + app/src/main/res/values-cs/strings.xml | 2 +- + app/src/main/res/values-cy/strings.xml | 2 +- + app/src/main/res/values-da/strings.xml | 2 +- + app/src/main/res/values-de/strings.xml | 2 +- + app/src/main/res/values-dsb/strings.xml | 2 +- + app/src/main/res/values-el/strings.xml | 2 +- + app/src/main/res/values-en-rCA/strings.xml | 2 +- + app/src/main/res/values-en-rGB/strings.xml | 2 +- + app/src/main/res/values-eo/strings.xml | 2 +- + app/src/main/res/values-es-rAR/strings.xml | 2 +- + app/src/main/res/values-es-rCL/strings.xml | 2 +- + app/src/main/res/values-es-rES/strings.xml | 2 +- + app/src/main/res/values-es/strings.xml | 2 +- + app/src/main/res/values/strings.xml | 2 +- + 30 files changed, 18507 insertions(+), 1578 deletions(-) + create mode 100644 0001-icons.patch + +diff --git a/0001-icons.patch b/0001-icons.patch +new file mode 100644 +index 000000000..701cce64e +--- /dev/null ++++ b/0001-icons.patch +@@ -0,0 +1,18460 @@ ++From 3387f629235baa52c4e5959e19495dedac366bb4 Mon Sep 17 00:00:00 2001 ++From: harvey186 ++Date: Sun, 14 Apr 2024 12:10:18 +0200 ++Subject: [PATCH] icons ++ ++--- ++ app/src/forkDebug/ic_launcher-playstore.png | Bin 0 -> 183105 bytes ++ .../res/drawable/ic_launcher_background.xml | 78 ++++++++++++++++++ ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 ++ ++ .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 ++ ++ .../forkDebug/res/mipmap-hdpi/ic_launcher.png | Bin 3568 -> 0 bytes ++ .../res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 5248 bytes ++ .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 8186 bytes ++ .../res/mipmap-hdpi/ic_launcher_round.png | Bin 5056 -> 0 bytes ++ .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 6944 bytes ++ .../forkDebug/res/mipmap-mdpi/ic_launcher.png | Bin 2389 -> 0 bytes ++ .../res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 2936 bytes ++ .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 4640 bytes ++ .../res/mipmap-mdpi/ic_launcher_round.png | Bin 3021 -> 0 bytes ++ .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 3906 bytes ++ .../res/mipmap-xhdpi/ic_launcher.png | Bin 5316 -> 0 bytes ++ .../res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 7488 bytes ++ .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 12116 bytes ++ .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 7356 -> 0 bytes ++ .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 10184 bytes ++ .../res/mipmap-xxhdpi/ic_launcher.png | Bin 8598 -> 0 bytes ++ .../res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 12956 bytes ++ .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 21452 bytes ++ .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 11810 -> 0 bytes ++ .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 17540 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 12023 -> 0 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 18880 bytes ++ .../ic_launcher_foreground.webp | Bin 0 -> 33494 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 17007 -> 0 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 25660 bytes ++ app/src/forkRelease/ic_launcher-playstore.png | Bin 0 -> 183105 bytes ++ .../res/drawable/ic_launcher_background.xml | 78 ++++++++++++++++++ ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 ++ ++ .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 +- ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 6322 -> 0 bytes ++ .../res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 5248 bytes ++ .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 8186 bytes ++ .../res/mipmap-hdpi/ic_launcher_round.png | Bin 6322 -> 0 bytes ++ .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 6944 bytes ++ .../res/mipmap-mdpi/ic_launcher.png | Bin 3788 -> 0 bytes ++ .../res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 2936 bytes ++ .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 4640 bytes ++ .../res/mipmap-mdpi/ic_launcher_round.png | Bin 3788 -> 0 bytes ++ .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 3906 bytes ++ .../res/mipmap-xhdpi/ic_launcher.png | Bin 8993 -> 0 bytes ++ .../res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 7488 bytes ++ .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 12116 bytes ++ .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 8993 -> 0 bytes ++ .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 10184 bytes ++ .../res/mipmap-xxhdpi/ic_launcher.png | Bin 13986 -> 0 bytes ++ .../res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 12956 bytes ++ .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 21452 bytes ++ .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 13986 -> 0 bytes ++ .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 17540 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 19846 -> 0 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 18880 bytes ++ .../ic_launcher_foreground.webp | Bin 0 -> 33494 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 19846 -> 0 bytes ++ .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 25660 bytes ++ 58 files changed, 173 insertions(+), 3 deletions(-) ++ create mode 100644 app/src/forkDebug/ic_launcher-playstore.png ++ create mode 100644 app/src/forkDebug/res/drawable/ic_launcher_background.xml ++ create mode 100644 app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher.xml ++ create mode 100644 app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher_round.xml ++ delete mode 100644 app/src/forkDebug/res/mipmap-hdpi/ic_launcher.png ++ create mode 100644 app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp ++ create mode 100644 app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-mdpi/ic_launcher.png ++ create mode 100644 app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp ++ create mode 100644 app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.webp ++ create mode 100644 app/src/forkRelease/ic_launcher-playstore.png ++ create mode 100644 app/src/forkRelease/res/drawable/ic_launcher_background.xml ++ create mode 100644 app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher.xml ++ delete mode 100644 app/src/forkRelease/res/mipmap-hdpi/ic_launcher.png ++ create mode 100644 app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp ++ create mode 100644 app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-mdpi/ic_launcher.png ++ create mode 100644 app/src/forkRelease/res/mipmap-mdpi/ic_launcher.webp ++ create mode 100644 app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.webp ++ create mode 100644 app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp ++ delete mode 100644 app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.png ++ create mode 100644 app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.webp ++ ++diff --git a/app/src/forkDebug/ic_launcher-playstore.png b/app/src/forkDebug/ic_launcher-playstore.png ++new file mode 100644 ++index 0000000000000000000000000000000000000000..e9968a5ca60d775df5817a4eb973855c360b3ef0 ++GIT binary patch ++literal 183105 ++zcmdRV^+Qwd8}`{4-6$<#QBs1^FjNplrIC;n0YMsR*hUKosFVmYM5UFIklFwdX_b`P ++zXz7s~tls(gzV9FL{ah8idFJjie-CoAMe20z$J6n*Uh&A-#{d4Tzm6&XQsTwzfyoHo ++z`t>D_bFyG8IC_jbo-_iguRcbLxq8@mhuWBR>-c!6f#_OF-gyRI52SI ++zbf|;FtejS)Y^2UxYC+X9%8h+To8S;>+^&j`CU!>k4bEbw4YoH<4qaoTR^74g^X@Xm ++zbm0F6aD=Soik#kkSR3pu$eADKDSKc0W!?i#C{G#k%JcKDivOr(<%Cqa3VizX_{&?@ ++zHzM9$YLbGf!SRld^HyA?yP8;F_hf|HL}BJKJZq_|n1t22wbv`NY0d}!MZbvPot%{@ ++zZPn)yZL8R?BvstBdGR0Ns@G4{c8;ZW4*_19(>j|~OuFz4#?Y=N#^E(iIG`w+ ++zfD-H8lH8qf-@5fktwCV{)5-?tr8KW5?B0BnelP>irzlYdnbfFTb)kcj^XZ*p2XnDI ++z%Zx0I=lzc<3CH_K$-9gmJ>B1yhl`XHJL+cs+ ++z5myidae@^KW7&SU0}CMIEPTdeqA ++zMIE#biW9EcEgnlu8%FdX_hNV;Tt>3vnB?y5uC3`-S$)~@Q<&k4p>xMgJ5O7UG+|Z) ++zp|@a^cMjF)d3vhma!5Zymyzzj(-6XHGAly) ++z3pYBRHtW-S3#88<2?J-HjY5rsBmc?+OgT<1EbV*+^uy7s^IuK9TyUY-B(~vU+>(k` ++zJ>765>~C%r@|ZFY>&AuM^*WF9>Zh_j0THvLyQ~wYQHw`*UT}_>XT~`D)?{Kqjldak ++zMO}2@#rDL{p_Ov6l94$<7ll48L^Z-B;=7of#jD4_-v%(o|HF}K4_2oII@q6DvpIs6 ++zIX>>CqhAOUFAR1ez*}}ENpP^-8SgN2Otgt{o=r~;0%nl5lTOrTZ??Xm$IOi(8i@}>vrsk ++z^w^pKNEWs4-b`RI%Ay?7ONs593cbsF1+Mb$n5(@BJPdNUV6L%&;-5eHilkNPBUftFs}2n=tM77jZ*j ++z12--AeMdc2P>58lAaVX>G!x6`FYJqUM;1<72{rL$MwkHp-bjQ`kgx<{@FQD@ug ++z#dPv0IQTp;4*}*gANlx9KuQ+$j=$bOhElZ-0tt|^YWX~zovP}9tHcgBIk#Sp`xLk{4>5&Uk<2Eo) ++zb^EPEUP8Dm6*)h@^Gz3#8-3s$d#|ZY;2x#)Y5+DF`P_`a)4V8=bfo+7CvRrBQOBad ++z?&gOo4s|PS``Mi?OG1KfS#nm}?aEZ)Z?>rWl|dEXZ0o@7XWH*>j@^lJJY5#^>7)L%rx6B1VL20&oRiLw8!wgnqW> ++z-b~?+7N)d&*Pw`TCDiQso&LfhR<;;65MA_+^-hP!v&kdFo9A*C+Eu(f@||v?cN{{U ++ze%8F`j(0XcCnE4KXQnY8(R~WbgX9FW#WRt1KQ*hn3Nmtfi~>1J*jz3&ApcOh-@e^~ ++zvHm`>II)P!55AezlpYPcWb|VN+*)CktPO9NG>3DowitgCR5r`!Gkn-OrL9IqrZgdE ++zrMLN`x?`Zx&$8-;I+$W(ydZQ;Ol%Mc(MSBnnzINf ++z9b|OXPV96L#i#D)h=RnUvuE9fw4!&YMl;(U`sYd_KBfMNMemsW(ADMV^89ztj?SRX ++zsE@;8$N6szJ`PJLZss9x<$p`K>`7Dz>euNSoyj7*;tAC`t;*iWy3z-F)Z+W ++z`J&{_a(|$t^a>}0XZXMtA(AzYaY1;yZT1rb46kJHTrnxkS=xy6SPNS&E(@VE?xe_ ++zU@rx)3C+UbIXjp(s8pyC;Ck(L%6IM2kfL*8x$=LaqalzFKvk1{XgV$cv9v1o{iap}W;6a% ++z5VDr+<0rfDFdXizSkNyW5mw-NbZtMxax2jZGk)bNO8isxw1_4|N%!o*L?FgIp+i0f ++z1y(!d4S$I=rlEaH6E$eay)hsVS$$s~K9j4x?BPD}#CLLdR`HjJ--_ASMzZHx#JbrU ++z{6y<3b;j}0tsLe(U83Ocs(IV5RoQ2wE?xZSC~d`%iQo@hraVkzlRuSpcKO`it+wSo ++ziwgCxq;ER_&EPf<;3Ttv^W^(Y>Gio7c>sqe=&1cP+{dR*f|~adHZkU#c@`F ++ze==kGNVZ9r58vGApKC26-K9431SOo>;68P=J8Qr2s3uBydNoA_82K7 ++z2Dx(^5${y8;3{65jD0Wked{<4LxeGiU#2%fzFu%w9IT2to5HF6GjFAT?#k6J0ng+9 ++z?YX4Y*@0#F*38VM&9MrF##N(@`ACYP?`m&_SdNZ2CPVW<)VYvGipj~s5t`$?D^sLN ++zO3iQ7(e>!hMf>r-|`Q` ++z(1O4GpRxH88rYyq!h)vmuZV_Sx!XThMrQFw#~ozcrtebM2t1Q>dN|YA2)O`@T3#I* ++z#-r8;U}RJG-t?%qK`Gm{0kzvTMK9a4QAZu8R32Qc<2%nM9FKw~q<5_zt1MU9{orLN ++zp~v)VMRKOZIOkb5P+NSyu*7~nV7QZu>Tq0Jv&mBw$F}1_R&?YM#%LHSc6g5|-BjV0 ++zYu7vLO8OQahMql;nc90@yug1d=VuJ-dsS}**EjcMk7iV#SNQpFxf4Z>=juuNE|UQ{ ++zW&WRE_png7NN`nw>#IZ_CW~ixLn79>DCUJRP#jt`Rma``_RQl0nAc8x?G8PToUWe| ++zS}9yGtq$c;&(L=>IoZPHXOv1XbMvVMfX>|iAZbGWjrnxp!oH6rj ++z6a2O0&&L4Y4AI}H+X{kD_27ag`@Cz8&dF?2ZQx`KK#&uxe5hpcDdQbcF5CH{*ehq( ++zotFlj&DRUmR@fjwNnih4+kRG&sUIna3NN@BXQiqv!b}`KsTkfAC1tgm;{(G`6nCZa ++zIcq`7jVH&rpT^5|Zs(UOlu!DHRqZ?m#lk#2$6B+??ro&)^XVx)KecN!Z4(w&5@0K$ ++zgZVm1-S=zJY)==>_i;b&Qndr&ob$%;c2Y@qMDteov&FFf>JP!emM^X{!8cIntEUV0 ++z$zR20#3a%)JQ9YePxc3SR2*r|uK9ZtSXRvd$rTw ++z6hALB_R6YH<>iFo(|FFzmlu&4jfNaKA$PPDcCx~+%_$tmJeMaoMOsjNjtPkVrT%cq ++zz9nVPzVF8U5vURrX1R6v+NwLvU4Xv6X_awFN+K{osE+P@drNQ=)s8gIzZ=041NL3k ++zi%hSYZ+SS5xFca)N1BR(%8E73_a)8yf#FEhNz*O-fJ@vVc)-FBe*bJ!UTTy`B8JS{ ++zqj-YD_mH;)zlD+M{RZ3@BWwl&5%pj?#`U6WG(AXexfiob)&dkn(ylxEc#aZ?yw6)W%O0xV}>$|=_rl7*s&qBSo ++zT8D(!&xPHwUpQ{T;m5jh`%CA8-b5CrWu;q+2qwbMd$u4u=k+hwJ_rpS$f`byoYJWQeceSlmYu9e@}STZk`wpCm~s@5HT ++z;3Z*#Ka*Dw6Gi5Mqiz86?LlNYECEz2d ++z=Gf&itt^bFO&kN4!Z~lt%WEGE`$T|U-Fm1KyjrV}BYxfY+4MaS(WOm}Dq7BwQ({RU ++zW|zhAH^p~1{Jn*#mIDvEO1!EpcF8h`DF$I%kRF3dK^c?@?WL7VAS(o&0`a5&epbnp(e~{1Q(3azSmk4Y@klt2(GduotB_ ++zabyMG9OoTiuhn<1O052=n4e9sa%b!u&zbsh_mJa9ql}=+mra^tF*ZLieLd^W;-TcSKZE@RW ++ztihqtMmG5?-K<|cK69A$=Xa{i7L_0L>=>ATrT>Y-Tz)?7B`EyDPMg|N)-c13;y;;!H8ZaLNBAK@sMFlqj^)29`G}cSezWyi4o|VV ++zOO4CBr77!cGW`6S<>E#`E^m-HSN%gwkn;+?dNLXN@G`3$80lf#D9F6wxzPFeKwWJW>a?^Ns15 ++zmEGLnpG4xT;pr|B+N_Sb+&CSiBja9)vfh8CZ;maK&hD76M-?u`rM2}|&!Qw(ah&IG ++zMeF%NH*JeYl?x>c?%^sBYC)5D$)&1;wJ-~(x%>#P)dzMm2`Pe9&x(*TOR_nM5}H;D}Gqx@~KtJjj_2p5UF}_I+bJ3 ++zqS3iE$tn7pcngW_#@~=m(JVf*S1-s^J*%85Aj`zx<7^Xq@7=E!HmkQd)gv5g)8J ++z^hVu2-7~Gvr$8S^H191y;OVgndrrP@?lCcCu%x6WmWnb*miKmUduxzSIP0D-*6MXs ++z(z$)WX-1%E{$<_`b!q6WHYv;%UsiPE%gHGi?m8Vz)IM`;9-Ipz$)F{O1eer!k8~y=7MU1{5{$3nEvhU5A^dSNV;r ++zyk`$$7g`5~OSUi`9v#}1Qr~-)$2>BqwV@>q>T|+77ZP_W<*+OMM5&6g#Zd%SO<4PFa?$(# ++zmz-n4dUA+toU5N~+z7ki>FmRV+J#*qwa*V2qtS8=j#7O>d<>2Anb+Z;z|c!v9NeTo ++zF4_l*lk9bN3~Am&na9%0cy0lwz^Lb;q|n}B&N>hqq;vV%;qE6Ic|d(T^nWA!#Zpzi ++zsLdvSx~Hz?n%|kKTu;+uScvj% ++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 ++zJZ|7AQm(w;!c@}u)R1 ++zt``LeA|Ks}P10i{Ss%CQNkb)}UM;bZZq{Uo_vd+M0jO<$f^h0w4@Iof6s;q2j?xUK ++zzS(&|OOG~s{wy=QmCUvd_3Z+sK`SlGc`K1ReUI0+Gxmgia3}U`%!K`;V>0-)Aqh#K ++zhq1>b!#;msO}+G68E-i~ch%-|T3jDg_?oV}O^N&q_VoZX{F#?o)wM&oY}on(G`v=C ++zED{1-DmyhxQ-5t`rh_a*(PGi-ssP2>%tGmG9|Os|6ef%_URi)iQJJtvM%*fh ++z#DGSE2_gtg^m<74f-f4%K=8E{_w0x?&EN)}6D>!jbm0PE#J)s|CtFp*YR-x3Bk*rI ++zrb+cHCdtZyk47Xu-wfp;5+B6Xdcd-;?7^bQ14JY%)= ++zRJ?dCL~_iSlNXxEuBOvl76YAv_0)BQR*6nF>`xsQ4=$IuZ&x+6xjV>2eJW@FDaPp)3W_jv!fSek32Tbv? ++z%hWw&#VUmPmBK)zSy@8(e;>=E75e7^lx(y@3>|5EhY12u?a*+!QR+i9eB8nmNj~TK ++zW4P#Zu6TJrzR2jwq{Im}$ZE>O>nD~J-@_aUw+0&l ++z;>Xn)!na1Z?slZoRh{6$58qagM^0gy_ZQ7)murrFvcF#E;$otUnH^w>tAj|fj89k2 ++zUVhHs)($ETlW}Jan>Y>cE8HG_cW=7=kq1tp%g8Z0phisam1$*W1fr(!!LXmjN?c0YEKvHG*Iu0zEdT-Vg0q ++zcoL6GOwNH~O~~Le+P5SIMuJEwW$CV|KcKCoKPrKSt7D;y2BwQ}uB*YVrRm&&7PY?g ++z0T=M}rua`VNH^73Kg*r##c?h*NyUVLFYKmIIpun}RffT<2|LBf_VtgT`*^XPJN8X` ++zI>b&w>^S?;v(eb`o?g|;vLxoAAg0*@U)vB!2iq(5AEu?lAbYWB< ++z*o7%emSp=`n@%u19%;bKv6C*Ux22nhF~NPy-#W8(^=fgqGe|1E6A2dS*IH{_UF$=b ++zXG{*0R9olNbgA?Z0oC~(mE)JUq7*Fus^WfKO5Zxa(oxVIXj7hFX_8fVRG~XN0g!~n ++znFQG2AT08E4|^yZF8#K=lbGo-0!2UO3!*fzj_ni|5c}dOxp*Y8T(6 ++zlbAoPbAPw${yl(fz7@0{DMi`fVwwTr(qpOTgvUG~^cmjMGllgVx~;nN$G; ++zC6`lwR>yYqBNJGoHN^?bPPk>-(DTuhr3IVq ++z9S57OtOlC}dpwZNnKqJ<7=B?pPVbXK%6rRNq+rYGOSnj#9_wFZtvk1pK-*>YXI4=A ++zU1B|GK;ZNDV;#X&Vnx&J@XC7O0K)~Ipl^;Z&H0%;M~*^hNs!6(CizVKsV|yF13lLB ++z$h`+}pK8)BWp?Z8PzpfDsKU6g5#_WCM#slY8f!sO1p?or9e{-rBK4O`6;*=OLcZs? ++zA2CvW;tz`x$~r64)e~-0 ++z?ny^TeMc}xAKirjRtra6+ZtC{ut;$mPv*$1rP4@U46_C5))fG1Nz2g7<6_0c5dFhb ++zBn$GI3oZCcPja^fe1Vo%FADEQ-&x4s5k}9gr}Mt!sH(;UJh1j?ay+adaHMJP{QS ++zIB9?nU9%mly1v`Bgo`k}y{0P#VXL}xwu ++zV@=;1ts;90<~A?-2#meR ++z7fvSzf!AB6k-0&#Ez3s~fOQ0xQ2-99YB##Ms&@}|b5zy%ysj>Q8+9r2iM(ZD#Q<)q ++z0zZKqeXP_~goY|X&3wLkh2fHD<>5p7UB6q1uISe9e%$ZVu{U0aeXDpItTjFpRP$6n!m1U_LzF^RF~ztemsK_r{?y ++zgp>nNY-&M2F{Q5n)Wt9WsturM43pqOUR$H+9xBg@@g09GA*%Le>%-0xl#7qNRcC3$ ++zQbrj0P0lN$49_Dw{%^3-m)irdFoR51f~Ef?kY_^8D>z-x ++z2BO6?wSoy?(3V>7yjEljPz+`+mWPX(GGc?jKG4q+{aY1P9g-GAY5?GJr4+uNq;)WX ++z6HGDyQ=nq!J&nwz_l#Vm!@~ll{hvyzmrt#R4O{gM+CRuk@w%vPB$mn{@xdFuHgB1Y ++zq2Pzz=sMZX(naGmcBM9G(|j%eqKO(g1j$_d#e>*m3s8#+_Eesqe;w>{!u}J^Ac>jG ++zM17Grr?iarVCI^B(I41H{88#DP*kKH7l9B4bD|M0nRKw%O3V+# ++zxxW;vAX=5Z2T@qDWB^u9Sp%pn2q*HpFUEovk~^9sWR4V4wsJW1l$`dCn~lpPST7=8HB6H06D8UdrQa ++zId=>qjX+G6n4Ea8-v-{n+!|eD*Bkq^iPZiw2d&{{Lf9Fa^1`6xNXUa+j*AJoMZK} ++zpEBz;Z}WN&vwIraRk#-f`9A;M ++zt=N*_8;6NFV`IEKjeXz=1e_#c?JU7&sfUIDsH+2T>Sz_=5VkiiVmjNBx`ZQ?3Cq ++z(XR#={GK_vD}y8DM+i^L!@%16>YB9;p~j)o5YVzQmt}ofX%|2VOg|lTI*5V}1t ++zwyBdVEX_;FLz8ofTa0toREGNdD&gfAIhq&oQmp4BcfDlY7&#(VN;z1kytO3XJw8RD ++zA%e+aU?tR?##aZ`%}5;QKMqqLH^!AzP(tQ?`&Y`5IQVTAOSlG2KmEsGw6HCO@nb{Y ++zkwnlKQE{1HRu%^irYJgs%g*V;74IU3L%yKtdqqPn4x_gxk~K~=Ot1R2{La!W=LP=m ++zk`~-`vqE?*KhdG@AxQu*m!)dxu`Ifg!Z_W&?`*(>cwA;jT7+e20GG{7Bso@?_uUK}d|0YWY=?#lP( ++z=YMyw*S()zAX9p8`m;4aeW(?kn}9DSO+6d>@#x`V+7gAzlf;#HgF+Bt3lr#J8Q}8wop*cFN ++zSeg@769MN&BiV61bYqT8G=z=7aaIuRF=hV|KQm0DL#&+g6z86H=+1ZS8iOoHy3iJc ++z_RH#Ks0H~h{uE_eYH#{1;l>y;dz-Uk2Tbw-{wGwg(S&N@$+8Xv{11M`KqRXhWCak( ++zeOA`9kG*Iv2FgTm#N4oGDJV*7wHpON!d84w3B}TBIc&?C9%>|OaDa68NA$-!w)!B4 ++z!Lf-Vf-$J@A{o(mbWwY$%w6)tH7D*zf-FO0S3vXkPOW6l7W(`J_b6_62J5}hUJ8o4 ++zk@&ztA$Tr~eeXV~Ud?{;3aY`SX1>YIe&`(&$89I5VKJPIW^sFWvl!Xk9HiLJ-@{tX ++ze+WNK^JUaL!a4)ke27>{961wZy)lteANlpkVBV^RZ=0*;`J0mgVffeiqf;-kd*oj% ++zK4@o#TNrr;<>v=-%vW`wIBj0+xu1MhL$}j5N=OyL8AxX#pbVVq>Oqgn9ol?32f+(Z ++zx)OAZ3JF~`uwvrcT|6yZ6=yjKniZt(2p$Cd433uamrE&X7H}}m7@#ntp&){!+rniu ++zloK}$Ce=yK?;vqIAh@OoY2KQK+Hut2WD@Pb5nNY6>x$qfRO<1aKBA0e=#$>zjJ ++zQoT$&z5BI8ce>6n1d5p;xy_vg&naCJVFCki;(ax&?_np3k;D&BF!tv?)xd~LRWW-v ++z0TWjA>-g*1Q(M#vq01RPc?+*gxy;|uapLbN8kpc{_Vw(QL_mv ++z%I;Hr-nDgWX`pb@7h+Vpn~i}ZQ*fL4>ooH^P@6EV?ACN-AogeIlEUL ++zvf&ioDtI3I7TpI({q9{Ls_Tfp9GE0YM{xnDzA(tGcPD`WJmcpuEgwj^G|<8Dj!`oS ++zIL?1G%l=m(dRXAx`V&H;3B{$5gaVNyXH%lUB&+L(RdfVZ5NSnDhqNrAhE ++zpeOZ!C{gqLox;H`eNn>SHvxnrYc+}s2WP{=`Ctm$C^o!UEV18*a|#|$KatJju){UZ ++zBY5)?1f<%<2%(P&jQRX-zLhFhC8>E7(~Qt9ecn^QaS;Lu!3Ib82AQDZ74gfyWD?Dx ++zs^cr*>db_)x)+kZimDpDq0GI0GLQ ++zyx)Zm7M_+i;$wZrS+RX-ndQsPhN*j>mI?zb^|n5iyL(SxnV-Cz1!bkEl$ishIUN6d ++z28eRT*A|KC45@pHQZ1oDh{qx+ca63k@@X+~B!zT8rO^{vcgBwm4fU=mWi}x%0@SL) ++z6IA><5+G0&S!p()7Me=7Fm;hk3E$;MaF$cgBB;Wp6kdQT5d*!8Pc$bo(PYcPKf%pR ++zBL(;S1mBN8i~$&bITVDeid#TJ#MsB6Y`C3SM+;0RzUu=Nv|j ++z5mW=(s03i&lZs?`OYu+lcP`zmQYe2UV*2s#Rc~Ea>?H&HG`GjhM;u4Z+*RI ++zN%l|HEqW-M%F|(f&z6HX-UJw{tIG$KE4=i~TDg;@B=!Sz5t&1mGJBS>l+TRYudJx= ++zEHFvFZ0HS7>Q%BdJXfxx3ui&V>CjX#IL3Du&lB2Oh*o%?;b{Fg=TEP~UHpjpIIY03 ++zgumD}-ofkuq$4qeIL(hfi{`+k(>#0#7J6C-f)mr|$DdW!V`m_VA@H#$D2{a$YbLcG ++zlN3&TVv0&VRj*OG%}HbVJsO46@C@34sw;=K{ousmlSzd~rvR##ju4I-o>;09>a ++zDJ;%<`US!*!C5#6xwU&J95+Kyig2Ne3i ++zs8~JAGMRFrLbyO7976H2zBl@dF-3!K`Us$|F##Hz3gzAxO;h_9zV=~q20eiW_iN%N ++zGY?SbUzYM#iUl+dUezJFJw(~S#JPfbX5Z=}sAYKsVaX2)Q*_vzjOtKlOM@>x)u ++zZK;Ykh!mzYehu)mG1ELkjlZLMB|ILGHtwav8?*Jp}x6la4f=`;q{WCKf&z(UWKt ++z?bw4c2Pk6z3N+@M$cq2Kf6QA7<2$C8hQ}bs$WMz;x}HK)NK8~NQhzscgcGL;py+Y# ++za(-jq!qUR&f9}wY!8?45rsjkD)r;N?C&&~Vv!22EDv1EGdsUn`fJ ++z*d3;1sy_mLMN}*T?7%9g!0!gV7C(2y*kBCe(=lI9*6EjF`-VSg59IFe?{VDgemF>LuH36R ++z&OyBp5N6zMu4~bzV^Ice>OB@f%^#vVkFN2Z`}Zts4X2mvN-+3F3efv ++zK0dfbYeEWw&?fnci+(%_i)77^y?Cr+qfzC>JKx^u3m&gCk3)SvnwzZogVc{poJ9*wpqSnWn7&g@fWO(qYK}w{wf8x1Hmm7AQt) ++zv>!lY&rt~kOumpRQ-}fKb8wk>H_h^+MKVqa0pBkGpjslRf`pbK ++z_0YMpBAEu>Ag)V9f8s3&U{HT*447_iLaijh@a@G2^2MGMAqF^qIdz(^NC(~EZVnMk ++zOwr)NR_Rt{lzmOXTDh|?bR`>}z0#uvO$c5=`&Xeyt<078;(9B+tvtW}Hp>)y ++zsNB0ywB>Iv2soh-TXBVIigtEhJrnQcX7x>8#_V5Ji$A^u;Wv)xPcnG#{ij+=fa7Pq ++z!4!qO@)6@#Ey+sRcL#LJ;3(^*3lw;C2t$>lE?5ELG)OhKueYQF8xEsb-p ++zUah2_3NTq_H)}abH$xpwo0Uvyo7F!uP&c`n<5?~njcP%2Q0%!qSmUSIfyWhw&JU*c ++zFZmN~E$tY#9dvgc8*~pBuRlY`J{W`iO^4t#)w##Sba>!Y7F-Vi3#mJYGTBY3B4n6N ++z_9{T2tfWqV8iaFGEJziP_SMOV_B)9SAwY<*42FT=Ek&`@g^yn`-RX!hriYa1`pbWB ++z=PB%HH$UVTP9YYOIDrFW02k4P?84N6D5q%;BQBC?glq|Cf)$_Kz$LE1VvuVTzx@A0 ++z)0c-s^}heljIl(vtl1+=sk9?BN~My0jhNzH%90SW%^4(>qD@+8w1_NO3dwSYNF__z ++z*BOKmGqTJuXU_ROeZJT4kFMsbtEuTZ_kF*%`x%gYltBa<9QlMspaKty3oi~09A3{p ++zR&nqLXIIwOiRJzcr&r0@G&uX)vLW08cg`n4~(l{qPQdB=%VI$CPD_17OZZkXC ++zxs!-mY>=mx>@Ua==fR(hf+fV)gOoH ++zr#XF4q1?T9b2iN>Kj&B0=Hq@YE)Kqswz!l?*OuAng`LNh(#`DL(~GnMIk4g0U(CkO ++zqb^ThD1ZEXyV^1k5?YtM^5LPm(Z=GjnU05EM$X%nGRIq_w%@86(H)KY(uY603z7ki ++z-dX+?zwb;CltI)T0DFMmMRVsbYif>WKV)=AOg8b}m7a>8au|5FvoU;_G7uuP_Dh68 ++z<#tyk)pCbCmy8X2Bq=AS)k0`04zrqX9LhH_$*xL)(Gm+O-xEl6kc8~?$-H|Rg??Wi ++zPhT>&*wetU9A$ly5>fdjDCDs|y0bj+6UP~7d?J4E-UrxYDr9Sp;dS$dgRS?dG0EG4 ++z(`du(P5NLO!vSVPGzsW6Zw*#9nvdSPOj2I`aDrp8q>INCnd*W7`NGBmY{H_iwfxfj ++zM*9ScY}a_Sy)_O=V2y-1+9f@|J+ws$}NH$)_#;En|+fjObewfy#w ++z&#TB@tq{h{mvTM>GO7KN)5sA|XkPG!AXH9jsemG!Fo#_{RB=G!k_ ++zy{DDp@-z3%y-yx`#;d>jLylL)-2hUGB5%6j?EKk^hL?ABfl4`@&na-)tz>mXYwsxs ++zd!Oc+pUatb7MgB(y&i$GJ@kAr_f%ewzOF6~dlcO?YtOkQ(RVRfC;64l66=+Fqw9DUzvw}Kn(ZB> ++zamjRdIsL?GQYfSRoYVX>eZA_7Y`ggghw<^<&Ym`cY+Fa&=BYeo0<~FM_HvWYP_da> ++zTmEk|NS84KpIe*K;M(HU=EQHrBLX9ZQpC$dF0F2MO)o0ME+TRbkJsL`I&SRoeJZ^r ++zpZC(?(VVR?^ypuAumflyG=p(12Zw$MdJ!^V-q*T3xoD6yN?ucjHEncl;r?)DoVeWS ++zPerLghdd=nl#E=9{c_IYcyn=cSUL-muU5E75@bT0+FWBhYKk1eSI_QES?aij_OR_*a!ICpj@4` ++zg1u$t4JH@_k@f0#80z#QVWwdcNr)V?lPcat+b7K!TJz#B9+F`j;xN-()HDx$DXoG- ++zzFy;|JYU^PC$a48L88L7d)^t_sfSiib2&KJ(>aFgdT(o;Bv5h1Y&J`UfFMBy=l+XL ++zgFd4_Zj0bt4y+h_f)AP(W9zC#5$fS9jmCD^eJNawI5!ml?uPK|_oCAE-awl`OJW*s ++z5cwdCr;lm>dUPOcw&P>jyCTztuSkW-w!P_Lw=6@VPuh=Z;h^x^#})g}ozwOHp`t6@ ++za(`ny)pIQ|pn13TK#<~Y{j-Werw39yhyuaC3XPsnYR`8prGvz#-FWF&hVw39Py%jJ$Pa8(zVVvJ6!VA*%>NM ++z%QkP^SBY=(@&r40;nS}++pQEjT?lBd<0Ppon!{?c*pJ?4da7NOIBXBM${{a(zq7K6ofV_2AA~hEARN=n;;)k@6?H>m1qsw)9L8Y>45r7A8mP=L ++zj$`QT8=!ls=TTA?9G47a;6#I_RXnQbguPzDX**#mbV!LwQe$I&A9IVIBTbm*bQA5= ++zQnTdSC%cE8$+45UhH!Xidyy0|W?PMsqQ> ++z?eru1rROiW8;A?S!lQa`Zr+(^f~b-;5Q3|DPTFN8VMLm!vft_0r<{@;t>Pw@-UY;L ++z8MV;1X6b1+k%J$Eok<#gll0U&wPiZsNuOlXOJnuP$1{`X9_Jg@Ef_xW&&c>4bzpmO ++z{sCO3x35;tzR(RD_UgoM-?#gbrrU90d_O9ugFb@c6S~Z{R`Ag;KVSsk$jGlHa^duaPB*Sk ++zNZj<6A^dwQr|ir~1{N>KHqe=wkCs9r^Ng!&4uQC2Ar3uF$IMKZ1>@th*+z6AJzP8> ++z#=xOK(R%}2SJ-|p@L^Jxc8&j!zY4Go;{IZ4-!K_EOagpli@jONti%$-r!-d?lHYSB ++zKED?6>Llc%jbtr59HN^dw`Y2ny_OWtG#Pi=$O(Ij!_wIosF=4NYE6Y?nYQ-8fFMFq ++z-)L-K;5_JZ)ze!h7K0p@eB-gbo9y^gnaH63^S4ExDW}HsR$Q+~O*+IpvpN)3bF_1Z ++z9S^L`Y;OTfS(HtZfK-_fo ++ziTwC^W1W$opJq%!qDGd@-ugRxdS4zEv8FV5p;v1To3~#PTBdBPPe04uxG;aCc8g{c ++z?Adyurzjge@Yn~Ci*RC6XIW$7!Je0NI2e1J4S;HH~9c?>zC=!^Y6@h*=|NG)v<YzUnjM(9+o}!8+Sl>4N+MXG!NcvgjF~n=$D>T>k_1`u-Z8MJ8%A>ai6LO1X ++zF5`I2VkD61$uz@b(bBTFa0r};U4trs=Jch{@BU?nd>q#GQ?8=T)qg%}?3ZSkA(J7; ++z=|T(?h(hh0oW+t4sS7J7ndyZ}qs!yN)f9Q|_#1T~e&hJ3a?$^CS8Jvzr)oWM3~8tU ++zjG@#i^!gv8AzSvYaoaA~&Xik4tzGlma)g0yo|dL#+qgeIc*>-vC9E2x44l=yxsU5% ++zpHs&mB0U6j6P_jGc4j9qdw ++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 ++z>0@&()Kt6rlvd?ss90=WBY}2`~ ++zE>*G4S17&d)+yPsnf}Uzu_fVXQYrb$fWV@b9?s^|w5>3j<48n4r>xbP?<>EugC;(^ ++zk;SXKx*wCY(C|X$P!DAp|`64OuJ`RidSJI(9*Afs>Dtzgz2<0%k(_Di4P9fAQ%a2O8XXnSf5uzN=+-nK?yyMQYa-J&p ++zEWcpr^wmTGlE(`HrX!fnn#|5qJ1Z^crKWC@U7r*t%SQDaMB3eRTz~ ++zH^)9e*DH>+PmqQ@jP>M+DEl6rJP^$#d&CnoEb(`;abFy8zw~f_WpUCo>GOu}7w&*H ++z(;#gyu+Q?}ZFx_LgKj!!ek}^P!)TJ1_{(dr_u&U~efW4pSV|Gblr(0A-FQzbt`km6 ++z3DTQoaXt39jMa_dw$jDdoY%`xXM;r8Rd{6J#jVM8%CA{dCi1TxR*^}Z1%86zFS ++zmRnC>kS@klxQw-V%fBKr+YE!WDdj5HJ)SictsUKqUrm~4>4RN)-qi(;SkivC03q}p ++z71L#gDAocCUPbhXZ~nMJ!N+j;(hNwd%OiZx62gXZ=D(%Y;H1h3}FYvK2~` ++zh>}lR=f|1p>+-OB{M^;$cjj-^HE2{)DW%3EZOin@FRNj=1Y4ISH|Wi*jY(`&!fR;fk@7O9o2ega^648@oR?8 ++z{b-fLRldD=`=QgcE`2rkluoF&$r&iTepBV87c}j@H_9TOGCb85S+}D(*sT@T`a}pZ ++zi&0HpYq0ZrP#=!HZLlrh?R4Oq+Tyn^TFWKX5eDt*x0k@>Bz?cfqt5b!*#_?&su*!3 ++zKfWJ$(kp(@d2vO?5CY)LWqMn1h ++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 ++zq9nH|qkr9hg7OIZeMyJ}NO48s7cM ++zFr2u2YqM#WZ6Kz7ytHh*szT&J!#5mcRsdB9_HN)ZZ5^3~h@OhTBup2<-cGw3l9{4J>!<;`hY+Rf6tg%!P;1cGkMtC@l8R>y{B ++zM1EO`LR;VBG|FF#7(E)8JAF=Zhv1)$blZ{L!>Lc&Pj3=__7iOAzjesc7e}7b-SAxA ++z=@y`T6zj6&ggEcplM*de-oLIWLC(2!~{mR<0lv ++z_wQiI{!bk8r;YgmnWaDY3T`4$8SgB>!A ++za3-D?>NXbXmbzG^!BCU^E?s>7$CK&O?!SS7Q|;^4YHafAPtTnCn<4b*!4V|l*Lyi% ++z^ak_Nfqg@%ACBfoI;35^5IQ*>^3bZ&yKw8ssK)wK?pW>D#2&KR47o-vl;%HdaD8D1 ++z=0U|46!}@3Cd|YU*5|(%p4+C8Qn$*P@HJU@q<(9YQpG_H)zibDAE6QnEj%rz`uACI ++z@getPS0ctqjU=st#OC!~tZppFSbzWjrM)k6l{s&Ih25--(} ++zk1F(!F(rjp3KdI$Kos0v2GK?m8X9x$`0^a!mTh~7neq$()gE`7m3 ++zJy)Fsefpmw<^P|GoX9 ++zd*9MMmjC+jNZ$Bh|IcNI0KP%`*Z=n7km#vzj{6#4Nu_XmcIc>b$Qk?@PNb@io{h)K ++z{f#-*Nz`hvplYLdkI7y ++zp%dS{QfU#Io<-LEbKl3hf#q@cE41(ZhtYh+&0gl;Md=jr;&*#QR^{dm?=0f)lJ*lJ ++zsy>~SP()DFS8;z22JUzjxob6%kqcCerb57n&v;%0W~RRmsb?;t8yH=!tE$}mlaPXb ++z8KR0T+5AJ#MYh`P{DvPn0Bdz$FCb@2Ydh!zJFBSlTO7O<$o^z7Z$asUll%N_ ++zI1&hIwF&jCY~w$--W71*+}*Q3_nBmAwz-JudaWz7y)pT<2Ku^p@0^!uOH>+n+bIt} ++ztKvsbe>Vkm1?;P_xKyw|?c*-m@tRBn&!M1Twrj3Mmdk^4E76W^(%)H(_TtCqq&xi^ ++z$W`Ugqt6T=;n5++W_Evk*@P;#V ++zl;{nYAWsKw`(B;wsVMJDB6#EA^-RVyBPpi(SGZ00Z9O+y05o=JK_6Ed^k`=+xT`Nw ++z{%CfhZ~YHG0X8W#I9d~8;80?F{G!gDwhjA*{+fYxGV_{`rwe;}3X}iZc6@dq){K4_ ++z-Cg~0X_3>|_KKEy=q^4bT)@hAo>zBB-f28>OJu&3&Vx61x8}$pT}%L(_HWpJk$>>4 ++zEb{mFho$@4zi?CGj-J0gC8$p!--mBML+bfv3)GK)Z!3uDZ@o(L ++zsOVbtY=)D{g7^;}7cyCgbJvD-+eRw6k;eT_^W)*=bKm+-=WSjNQKs)x4^ZX?f%w81 ++zG-yGKKiqOZ@YGm!mdN=(TsdOGfu73kzR&|(9V~m7zzJU=J7Pn`WWR$){NdT>r#pYw ++zCo1O!I;qTKl;8%KI(+vlW$+LwRP;{_(6m~<{*vxHac+{1kXDcSi0ylL-rs7*I~K=N ++z3<~4b4^Rha18yu$QL2d^@gfn>sHR@oApfVTC%(NqC|k_}IrHY(FrG9^u04qNIx?yD%y7^q+}!&AhVQ@nR0pou-J!Gxqqrtx6tnnEoH&-HbWQ@q?2*0kv~Ik?lxOv8=d@{5@hs}JhO??$Qdm8q-T2M ++z8a8?9JvMC~Yi;-L;Vt#aQ@5d_g9TTP8d+ld8p3fH*c<8pai)r-&sM*v&2IM31VsuA ++zrg#8*##`SGsh5EU`ft>7yKY5v8@MWzCkFi=;kRIcuDX<7N=cK7I${=D_P ++z$&4$>f@Vi^%1)ufK|3lkI$=hjc ++zjJKhR;t$N3I0mdKR^)}es!pR~)32(;@#w^>TAvSmWw6aAN>VvLOjO%-f6*v)cjcY) ++zIFN|;eMc`6%2Rsdm%IPW^CkV+{VMUK)TBKlKAV1qu45bC$@9HiN+PbteyE|+!n%3a ++zVK`+=JZU~wB~;(;-L4Xa-YHSaay=lSzAU~q;oku*N2lM4Bp<|y9)x}`S!eZT9T75fMwVW ++zbvF6t61cP4630Kbw~N>NIx;r!V}!{vbaU%sxHcsqZ1~8-#eMlA*GWAUWx0y@iTrzi ++zyXCmT*SaAktTvNZv<7{It$iWEwVf;>j~*WjejQ8)w@DSvs6OjZ|B$9)^)|aRUluui ++zo*!1xcLax{;*K3U;Iy7eN?$a+vD-}TcdAyPWYfSi%|x>8W>N~R@JH+>F)hFhQ~kCBgTXYaC_E$s-#VpYk}uS1?|nWP(w{RO*c+)=-e_pZhM ++z3{H7JcqK>#vwt;HM}I3|t_&y;^r!K^-Job}SZ6#Abu^5kpKI>jdf ++zDLV1lk|mhJrB3C#?nsS4_bkMQTasj}b%E(L-*@^dOlK7U0YE`skaA|{FfgnQHvLl= ++z#>Sbcw0;HP%>7RaS`sY;pn9qZ>q@23|y ++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 ++z`xg87sKZD42z(Ui!gd^waGRoybOn#)3||U@ ++z$iu7`#VOe2+u2#{7>+rnehZdEvBbXnnERE_f(dc;U$hIu*C#c3bAcFCuCBO3`d&yi4Nsih=6bhTAbM^kR`5QUeK ++zsv5`iDON+3K8FuxkkRmcS6Fh&PnmEG{SwTv$#hwZQ1HC?;4~DkJPvV$jw#OaOH2NLYDU)c;M1rxvQ$paWsNY`2K_ks9%yr+B=^mi=NOmW- ++z7EkIXw3FlpwcMGi+D>Cx(x$hItPHXwR41>E3CCldymkjvn!T<&y9z{kM9R>18ej2l ++zcDkIk#KV%d&YZvR#CjcSn{wJr{sle0szRXf5sDHJIh-iK(TtT?34#oH+5W>`J;gg9 ++zE0vVPzij$9@hxUxz*ge>$b}F5cAGW=oR(B77fcbcR{v~mm*T+#fpv-6%GPLiHMBK< ++zzb9EH{S|xh^8_W(Q)cQY2g19VPR!v5k)%Mi72o|(Kmr=EDO8Lj^%O@F&wbJ63AM7( ++z%bdyF0ZqONe>EtOr-IDZJYPjm0kpsC?5)$P4Ly|K?z@nI)vIsO95cwQNp=xa`6)IX ++zw5j@(mWY6l6Ze}>Y6V*7F?%;43;*YzaYScMS&81xUpnH)D(T5CGdrldLNvmvTm~XUiStLIP)m ++zrcS0*zKq}ffRh0a?%$d2yh6bJb$r^3BsjYhJ@Sx4zlT>FVpV6eTY+SME!+LY%+Jw3 ++zYo?x^^P?5M4_JrW(?dV(p$r_~fBUJ>)(O=HE>hRrUWnfl#k?euX5^WbKWFDoK8v#Q ++zd)c?1w7&`Ce3_Sn1D?25&+AsJJc!hnzG2kQ!3Z;9okt+~3Tc)mEdIX;bxW#E$aGly ++z9@{syLVf~ntdJoV=M;0xauack2GvD!FgGcOwy~n8LnTh{p0EpDQyJyPV?nL0yiT)w=IAQ0kLJi0$exKIo$RRrl*i&HR0bAYp7CN?0P@>5UMFz ++zsY;++50m`6!-$*yXC7?0$xSIJ(e2Ydvp*PAC=d1n=r|SuW@xq;UU~}10F(cpo@2NJ ++z$1J8oejAX`cJG$!EvQk$MePA!2hbytqFIp7?wZ85q#Q*fl+U%X=3w$ ++zlhw~v&_`MJ@CpA8bO!=g;Ono`%+|tZ^hgjYqd2fbHyS<|JjzN}Z6p_sz($O^c3l`F ++z%`)W(w9i*u>-%nXX#$w#8JmjMeWPC6URaYB)>S3qj!D({=WD5b<_}d&Ws}$J&I+3x ++zxE3KCfA3tVg)b(`*Ti-$<_c@gc<{aX2~A#A+O5^w7t2ly6<$HQGobxUa(Hk8?p3># ++zm=HF{i0&rB98oQ<34C<6dYjOAI*N5-P7jYP%5UI1#o=8kK_sS=zlmsVe%&8mEuI&< ++z-;nor%7N|UX0q3Bn`xW$9NbG6eY}{z#BDuf$nEALp}2V8@&|^}dAi+ZmA@U=rC$D- ++z6X2onAN)j1?UM-A#?m ++zq*&I_LF`Pz%&VEqnVg>2m+030mnix#0JnDph!4`i&iwk8cqcL|4L#X4x)+ZuNdrb> ++z`ZMF=15Ar~?5GmoZpZAvdz;5h#264Jh@V4@ZDg!tJr@AzFI(-zNwYr)59=`Mg!O{q ++z-R(>Vj0imjhV!kaGd%Cooj6HL-CV$sMFi;(hc?wsGqJ%#J5cjKfBUXgni^kp(7Aru ++zxJ!WJy5Q;Mp_bgu%pZ+^C{n7KbcE?YX0N2R@24wLeSL2$qggkmZaiw0*-v$x@>p-iKX8l=IbSn_4?1? ++z;u#_I&KN98Dym4R!58TP_LL ++zGWmW`|NEM=Yz*ptN0^QK4lv~LAcNh}+*oH`kKa@+E@Y!}3!G?48mk|zA1m-3#lB55 ++zU!Dit5s)ubf0|naz$>(RJd^%_x#YOJ%w`yE>%r4x&q}GGfo)-g<)fTE%*sRIfo+3b ++z)Be{pm3cHW%W4A3Gu9Nl5-Qm8MzIOUB}a#gpdMzc9U|J;MHgNMP?<>R{Tk<<;(%7V ++z*Wn1(4{8Hz{9`e!p{X04`Q7gRAn)>ECa0$IWy?#s@|h93m&B3{{t9aS;{9wmgPcF` ++z25Uwz$REwg`mH5X6B0;w;$~@v^}wGUd^-%ds<@XlVqd_QbH#UzHk4H&9@}zJ!tF$# ++zpx3>R=^lT`x3pCo^7u0H6MC~#T)@evH(X(ZqN=LB@5BB1EWE3{v$gY!eK+MF|BbzR ++zn{x}@rZ~e#wMsZ-)%W(sWTpvq_g$dc>nb&XwB$;TBl>YrA6B&7ar|rEiV;n3sKJJZU4Ej*e5q_{!Jj3kBUCU?8IJa)du3E ++zYbJb>aHsDBEnSXcoCC3`d@Vg~%}9&^*YRUc*r^Iz+fO#rnqQck!|C ++z(tm7bNxI|8|4!oOV77^wk`916K!zxQzE@8t{^h-j}mgWob|xp ++z;$r5}9Jk|;l`WL&%2v=PtGyn%%#08bG1D$Oub=7q+jYUps^CLE6KRm*pS|{#wq+`h ++z5i=en$jm<6j?>(Fft?*kv70Qt&6r0r763XtZche9iiC_pV)szGL_|MvnBrl)e3>^K ++zvaURrw{Bd|3{6V@BIq|Di7Yj)SSF4jh|=W@r-&P#tnf?Y-`bzhBSeQbZSq!1npw5i ++zf`_*4yrt-|Rc2v3r3$2mzt(wLL&!Z8g)3LMDC*Hqw0SQ}n|pE|In+=t{rm?#H#GMY ++z$DX^MkCaiDI1Ubs+gd%9b3a@00;PD$m;sGz%o3sh4f+ ++z(ok!k$-rbg1);Sf-9F%+No@0OEstO}zC^}go#a8b09f^7u`@X{g;X&MAaxikc~4G1puv=@;e6nORg%*orL`L1w95Rtw#&P6v0zZp2JDVUQKTX ++z`yG}X$2D8wiv#KxqCn?CoWtTjqa!DF;VMOvUbcX9#*7m46HffRtRg3IH*7QFH==}y ++z)-1UB^|8|^(#Ikdd+b%sK9bLh9p{JdsYC_YM01fH`%86>$;5daZE{1(=~PukOeh{6 ++zyf<+C(TwCU>YNNQ`B|qkv+@i}^8@;jSFZ|X9KM|>!t`f6UCPk9w>3q!p)KcTXMEuw ++z43}NNP|kfIy3O3+KuUTGogho^*-BE7LMJ9ox39(KE$JJKBmutxsV3L}hsOKvH(Ibm ++z`l{I~N|X2$(Z7h?46ac)$6k%WWNs1Oo3r;BdQXKYkPj#LED!tjUUx-x?Yai%+HvUE ++z3;%&!*Gm~ZaZT!e&bl&BWQVN8M^n7yYMgeCIg?Nfe;qd!0UiRNKpd{WmH9DPb(vtbEV`FYjf-j0 ++z#ps6G7Bx7dM^i@An@g*MtE>e#v^qes2+Rh9Fx(fwszx3H>&SMT2ZsJjcl*ugJbk1X ++z-B?P##KK~RsEVeJKm|pHPz4TQKfu2CKu2gV(*Uam*qKwxGJhmdy13>Fd-|zfGuyRes@WC#s4!C}2QKZtar}D?>`+M7MZcS1eIzF`n{gYaoS)R^! ++zIu9fWN^%^4No_C=%+g*@Aw7>pu53{y%r=|aLqFC;v?X4&EGq|@F5^*MOR3#RKbrGt ++z&-JesjP?C+iO@S2l(OHq;2JFqPO{vyKB=QZ-OqrOXEtwQ+_+~)40Swwk*b#F ++z8PGnh%n;|>} ++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 ++z_Si$8G>6{Do`jivSqw~ ++zSE9+4OSVAsO+Q{7ST|$AP7R?e*lPek4GcH)r3)|ypb>a-E8!(6325(1r(v0I3?dAl ++zSK1JEbgPA#GNLk^akCFSgm%_kj|&9#D}=J(_Z{i4DvvO#I=N10-sV~M^}TrHik&B)Pw ++z+$XOs${-sjht@kaJm9ljaLh!luCA_zF ++zi;uFI*Lw2y=l5F_7r5iYYjDTy&J0h~G;Lhz?M;s2nSybz_|w5C$%Toy*A3^_yTbd9 ++z82mV9I&ilJ>6df>HT6LOWn+14xqA1s&XuX(*oAJpCJ(4KF-Q1f8zztTnAY?r4 ++z(O<}KeeEmnslf(o;MPLvdt<{L3a3kjPX|{G<%gk$<;$7X+@&7Wh*~-IM8vh75jj9lJR2eq@?jXx;z3hZ!ns_JS%q~HLS82=k_O{WUK87i`=YM_g9e6gN5 ++zQv7H>uh81i-0?1p#!25ynBhSF>I&h+zU89eI$cT>8naEm)W;rtvibb@szEF`dg`i! ++zCkH!r>pLQZt4WQ?>-cbSv*vGPr01?qRHO&rUH-wPpzD_8tY#)(-twB^PwXsH^)eR5 ++zde2L7JhgAAHn}O}HW$ftA;^N#OZ$V|xV-y;bj*aGxp6&bUK?;O3hmc0@Pqy!)&qDl ++z@X&Wso(pWmLsQefsT=z ++z@?QF+JF>zbNGPk*az~NXfDFpd0s2SLX0*=d5h}47=weaLrNaM395iCQ2(CoIX3(Fs ++zI$UcuuhptYQa)ACdva?fp509dD5?R~pdb^GPp*CJ4)@bT+kkox>^eb6x*f|v*`9TV ++zYkp^@l7l(pc!DUqSW5b|FdEV35ENN3=)a&}M=t^!g~jj)uL0kkC?E_O#QPe~b!juT ++z?aCG2jeqWp_wiF~g?BC44l5r1W+ZduMlSQ|Vygyy{zy6Ijp;f`v$pm=tBW@yW}iM| ++z>@QML60+an{9nvowpY6Jx+ezztM;<_S|_?lKDj ++zZ`tuu&9J`78U))A7KLr4GI}Qd%OsjEj09+f?emJIvz>fhFUfqQBs=U=@CeNudDtsh ++zLpS199S;34LIelGG8=X_OoftuEaI{TZ@^BNfP=~^Rj9*YV1d+PbXd@)*upk;A%P3Ew8OGuLEkB1kyY$7zQHE ++zEPKl(oI#Fcs?k}Ni_=NW`!1|{bEVC3-crK|^y>zV!cZ-NsH+K^3CNThKGE~h$m4<; ++zT?;W*Gy@{aV{bDN?vhxGn7vApG>a3DhQAT<{$}4zHLqA*V;;w-eJ9=p+0SF3VUiZ>M*zY!RT&WnXQ{Z_L8(zH80162x@UZk#(dEKSE|`l)$1yA?&;SCL=kE4v ++z)8(s%U^B5QR(s(yMU`~;4K|P^BlaUvF9Kx1?58A?eiQ^(vBRq*LGweOZ?~H|uL=zI ++zKB8AuqOj`1u}ALKSyLVTr^h^JUNRt?=7{6yZ`+L9+nMH$8)#FH4RAzp-l|sMspdYB ++z%BYY-W^~bqM@2H_zS{6a3>$N-+;Y#pi-#*c=30kd?0?s1L&A-{Dij~Xy;*zTT6l*14-9U5<2#L^n>1R7Mn3#|$9j3O!*1@6i ++zu**n3Z*V{f-|PiQ{7PQktGs&Iyv7WiTB*9=mYU+a;he?LJk}sp2yc|s$U!$m2dCZ` ++z2peq>O~4&kN_E%7R4#e|oJf@XG-Ec0>}Q~7<+5k+t+g-lGn=?Ro8=@MKwIJO!G ++z0==*xVGIzi2Cr(rXj^t5viyK?>F&0}>0{;HS4VH&BDK8)!Ljs@83fG5?@<5Q ++z_X6y1=KwC2fsM-4f>-j1aK|%m?ppVj{u($u_Sbd)+Z{4t2brHtU2BdQ-cMYp7y3cG<7@3+K{q?Kk8Ml`Ek42q ++z-+C{b55j_73br*!5MDh!F?wqUuT3O7i2VD?!x0cmLy+u=tEy>+iU}m>Vuc#0{gbwh{G(H1z`@hZ$8H5onP__g& ++zG^WWcf%KsUi_Bczr@D<)X^_SyWD%Not~(meMwA$9z#7_vCqa^Kjd1herz`a`@8-|b ++zC&Rc{*8z?V#@p`Js^N)l0LnzO3Z2Vp(?P*2!v}tZ-ySk#IiM1dFshWm6vB&W)V}{V~aSfJ2>0N}< ++zQp9Z{W-7ALwToWwcZT^I{uI ++z-6xB`znGMr_i+YdwNPs(P5Inp6Q|BS5m_(R4gI(~)E%^M9jz+k>{<-$M=Cu=xuqA7 ++zLd^CvS&L2iL?zGE{jh>6si?K@-tJN5UJqrwm*2en2Us^|p8$KONm4I?nu}j-$ ++zEEkdtGacuQ-@ekT<=UX7S|W{&bfjx1MM*x!S$C4u8n_g{ihjVoQ;R&|_D$g|y`R*o ++zqc{}Yi4=GD8*T$@h=Y;NnpibXMD?}fQqjeq>u$y ++zrlE*tL^W@K*^HeT`gRM2k$@_6*C349436G3{515#9vo}nXfFTGNP`dI1>$9kiv2;b ++zuDOQ&&wto4(0A;mhTDTz4SCL(qsr|%YF7N6F_shFd&!* ++zjMqf49F#HfUm_8^bjHu3ZELOSQU_4krlQ$CI^@|=Vxv1~5@mq2pe4iQ$RF^9L%rVP ++zzf-hy=Er214QLJ4h~D`?_}KVY1^Rfi ++zd%<($`9vkvw_3r~{}~v&|Gc_&U+7Otw}|I!`?`)=rnu&I>6I8CQQMU&>|8U4d2U0#ux^+((9AW ++zf+?`=8E%tjN;DAJA0IDr_T$Gl0ZzkTiZzzL?)hascA?nAuI=!drFX~q`IYwYJWqVa ++zDI&5j{+W^G>vx|D!YzZxcCqL$O@WV1%`Y<;*djBXfgFV(TigBQ_d8PoJ|aif*H>@* ++z+lIAH4PB1#J3Vm3zfkwJF?pf=rY>`~|8sZgOXE;xIv0I@6xVjxXJZp@?tr~{oFEw# ++zcPz)iAcYLE0Q8}J;NE+E)c}jRG5nXlf@0nOFZi>A3p@C?g*Xe18>?mhv15x35R50Q ++zykUC)`#g5Os02TY>sWQf4vDT6HWM*$x93Bdc_4AXt%Mv-A@CCnl&38x7cg+wc5sav ++zP!g3^E`zJ?9HnD_QFnWlGba^Dsp;t^YoZi!X*%6y>onX ++zTsB7ul0T*bE}vl)x9t9iB#w?CG;@?-$e_tD5^5edq7HCiAJETy4G2G-ty@@A;h)L{ ++z%Tm3d`g>sNwVSp3Us(1`#pzUySW%L{*#iBM3AS(udmv89dC%D>oK}h1^t+!MFI5js ++zu}DFWs}92*FJqN5TC+JA77-De8C?NRXM>N*__Qqe*+;l_-}|Z7bWxX-Q=?t8w3E@^ ++zkv`|&sG?hQAY-+k0|`4lV!KWeLn9ySt5riiH-=qwycz2$$RR3fAMjepKId2PBkbTM ++z5j;qs1U&%-sqJ`B(9f#6Fjz)mOkC#cYLq@oxYnfmi ++z_tL=@ML7a;mT)>(w-nx2d@zL-Hxt-%zL2aWK0$+uhpxqL61Yh!&To_Q@%e!oe63?}5Q-#=Rj2*AAs% ++z-`yf*TgAXF<^yx5mo1AQNcRaYpEE-E`_0&ElBVs&AAw<5E5sU}9mWC%{kXFiOYs2*xnpT3~ZjJqP`%XhsN8 ++z@^6>){o~P-L?)Q5JYV^{m#O(S2HRgUq?Nq}N;#;kH$$4a-yV4Yi~-F)65MM(Nj-qj ++zAmE*L@GSXJ*oYhj{2;)$0UT8@7kRwU(w1v(3bL+#TmCJ5?mlCkOw*x6*5RPbskb|8 ++z%l*L9+PbDyUc3L_rxNCs33HCkmL ++z=TqI^8XWkbbotQ3*NL~ieqCnnJ+OO8M#f(BLUQdE7acqG`i}ke>s_rMVYWbTx>~gg ++z=h^;*FEv=#IzDn*1SGGT+&xAlLd(pujzy4%2DrQaY6s6JX9U1;u ++zKCG`iN#?<;HUT#Q*^;9a)U_N7;1Ql@$6NrvlUWS>^l7zlk}?mXuKvtvlCs=9v^E7C ++z?1Lu#H-5HKEsj_xRi}SDpoCIr!J@7cuMrL0UJShrse|jc#KOtKQaNFrJ_#qW4$ZK{ ++z<1kJVa$v$>1U+1;`GSwdYx6Ay{T%K(6$^L!0IIKjU@E1f77)y5tM)LYpGz+YDF@-G ++z%nX$nUF1($c2q+vsMc7K5QKXh$lTPkI=J^U&9{`=dT3LhC1friM(#*d#eLk=xQ8>9W1how5aWgf{=TodG`e ++zef@jdx~v`D%_iO7)}Fr15nC0}@QJsH*Xne#iG#JZ>-ve%Y4-^P$~5^RhT3&Suz-AnV`BejmOUQ}!QggcANbKX`O)Jzq-SUFPyVu(!GU1V@1xC$o@B ++zvRz#S+n%+nt*brB=TR{nDep&7cVRRZfBj%SM1@xk)q@q!M@(;ly|*F9vYxOmd3>FM ++zf};t-DFanQ{#ZQR&7vFIY4mBkW46>Ec^|xsJA8;bFU17&)r!X64De6_bnH(-Ir9X) ++zk=!+lOAKk{K?Wop5E2zSu*01a-e(hftjs%UA$FL$5R;)>QnNBVY@<;-u|GP?FkO%~ ++zU|Hzc>U7Q&^6qTz)s1f>6^vF@HDuCKk=7AA{l=j ++z6EYHBMX|y^I*bnF>kP{4+W(Ujh~o*(p$~$^5=uylg(C{NDx0Cp3P7URWUbs5$u8p ++zsl8I-Qc_a+VAVUd`bdBd!Qh-t5s%-!*v-2S)1=V?`z=4Y5wJhxNQ56We}G@{JEH?| ++zlWwpvQgqm<3&@Ho*7FM>i5V~B0O0W1sb_c@7od~x0xt2SSezs9c*i13u7lIOAoO!g ++zcgQTUml1;iW8<--&dUr*g&(CibwlmJT0m?8pa?9oU0u7@t4Zp+^1Wd5O$2T>dLtf6633RBY_|S^>W&TPN{} ++zp5^$6Rryd=Jl*a~QSdB?tezni>~1ngs&f2ajQTU{@#vSMG#@uQ?S-er1oEx^#}sCY ++z5r@F2OggRfWe>ysA5Ao4{(PMpd_M)f*0)rM?Z%u7{+9 ++z+tFG>%C17}HtH?g{=`;w4>)2G#)Yx(yW8NUgTnO2bq{ED?IfWO;1mEt-KD~IW~iy8 ++zF$=5JTm95Dcg2NOZ`4WbQP=#G^J={lutooxFUDH*w4P83K?UyJaT3PhU54r@<~&DZ ++zU!(9zZD?!>Y5{bUAxyeUdZP#WIrxdim0{ID+GhK_j2gV=!OwhQ&r(s&1}FCn*meJE ++zD*J;@Duz!px=&(5f{_Q9rWba1{g@#j?i{88R&wPB45eMLl}`iQ^kOrdqR`7|R0V-! ++zbO3USRlq^g!L3=p!7H;u#^MA8a(srjZS_3 ++zy?OPDb$E3e2Nb_^u2vvp+%#nB<#(U|`dRJl31> ++zme?&lbLxZu6I{KRZX*MLK`Kcy1@#c*6mR3G7v*QPz%*AyeE-H!&S0<3IH#` ++zI^{@6Z{W)JBbnFC0Yw;FKZK3;#}fYu*=|Bs)d6wY?T?iqKyCl+K&T<4u7d5tHtg*> ++z*vvGs3t&%J^*{zKG8Gpb6gEO+Gp5fc ++zVD@}AMTd_d^fhj&?zO8=g3X4q+s1G{oN3!nK_z~Aj;$Zz ++z!wQdxQLOP26p)8_Q}7)R)>m;}Qnxo6Tj-CCn2tp%D)VBaWI(nsu2YU6xi#MjT6spQ ++zHkDMM;s_=Ac;+u4^3VKs_z4!dw2i+H^QXaj2Oz1U^-;Pe)d(ASG0-M3C@?*+CUEq1 ++zh2rDkiC^~CMoa7!3#^KCX*xg}Xzcp~^Gl^=VD@}n$KEA(?ZPXa>)<4rhaK!xDcNP^ ++z2C#m!A&5`$`bq2)5V2uf2geUw2X>r>>!ZZ3-M30RMct)S@0k7z2p{_Yk#ybhRQ><| ++z4qNsI$x2ocT6VcDDGd$TTqP-6vcf%Ak|ZgTB3%us?45Zpiexpf?cT_!Yh3%f_uPAa ++z@B97zHcKbQkubWm$?5^3EIha@bvG_~g ++zsvTe|o=+N%`yoQG&+m)*!Om8X1?U3sjDlg`e8_-W`$Tlya7t&?W>)CcUfP3=^J}8S ++z2b=e7ML$>(SGsmY%x0GUE!!YaSfAE= ++zEmm}}P{r~p_h9+ghBRw!=z^>0eidFz^d)YG03{Qo!*E{{4w2vaOkc?Zcl}bI+7-Jo ++z>iqAL8wsOvvZ%b>wtm$$prDwix{~kT?84g|vDxap2=blcwV?uX7OCf14I$^-HD=#H ++zA3pB;fxHC0^>#U8ePPTi65VKN-h09lRQPJV_`>DMeY=pz4!%uPs^%p)^pKxhSgBQG ++z-O+8XGCcmTpsZh{!5Ye!UWSntir@k5Mc*-+9+x9VCPFH_^uqq%r0wf|g?Q2Z4Xw0H ++zcpu!jZc3fbtmJ)IFZeUx&N;sb-HD{!Wv*$1@EHRI7x15og?DVGl1)VFMm7p4u5}BM ++zVlv9E;@%Yb681fQBo4jG{ab7Q-t-vd+r<;Mji}b!29FyaSNSKGZi|c_+hojMrD*w_(P(gI~U+yr1gD>(6Lki9>>Xm8CNf$A8{|hbUwzIvK^peaU0F ++zQ*iP|1t>UU?MY{FZSmyyoJIqeF5Q{AzPu4EIq_Fw)9~p#(uRMM)z}A<9&D-nn1ZLQ ++zwavdE?ctd%uT_hL+yq|t7rn~l2V3dl4_opQo9>ZSmg}9~EwsNdvNsio)$j<2m01;x ++zMdNAT>^`$rl-aYd7Z~Rsd2H=IT_=;+^iSsf@yKbv-WAD)1;)rN+k9Nfa@Qfe&koVpUlDtkR}`fafwHjRmnnhwGVA=mHBcatujEM( ++z)YzCNQ^Em6H5r(-6`8p5mkaurIHN2<_*$FMw5d0&r0@K>eevM}r+#HyS{{M_E*(N- ++zt!3q1JnN^_sknJ%IPGhyGC7y_1bhgn0t|Q&ijB|?F%MA+5q-QKR1vQDboPep=<~?h ++z9uH*)zlt~BS(XMn>du_@p6CxwqF-k>)Cr1LKi}zfBvFA1-!xF+^hJs>h2W8jZ-ZQy ++z&o%|?#>T7aCx6^=;415}d@lEToNpC1(4DBM+J>GEDwfL}St&#Ieb_+io?rzUc9(=C ++z@f1w6yS3}njz<`@kut4a9?a(5XUa0kxdCN#!1x34n!;Y^q&;`srN0F ++z4<_VL&3Lo)PN0Nz8)hXO&^S|#=<07Gi%o(gc9(?ymBK5qd*O0;JKK^tWov0S_|7xv$O ++z@8h=`pS}C~Ro<&Nukr=<|9y1dcbJtC{&zZh+)f8&;b#$TJAU0HgZg*o-*$#S{(=PP ++zllOq?zRm82b2))53kEbO`!62XL6x|~^7Cl8HxXe6|HUOyBJkX)`+T~F)HpOm^tYAD*Ci0fu{qc$1X5sHPsF1_!?%1h-oP ++zn=hu#87*Bj$*8L=et9vmHgw8R&Y{#ba%st=``w-*cBZZBrebzthul)dL#`=xy=30| ++zb6Z=wK*NdQt4osx%2p)j<{l!kVbPHfqL7_-MwO ++z=mG?V-Xj2@Tud0ODgssJ>Fo?7FqyL9Klt0FCe}0FStcX@yb*H}04Ph2cR^>c+7eI8 ++zCa*f=5oTk(fZ-j8%eP&BbiFd>9Y8B(0>t3=?IN(n@p7IPDDx%a@Q?(M#fC96W#1%i ++z(voG(mz@Q#q`16Z;3`50;$o0c>Ru+K_ak31{?fBFm^9^!w_bBJx3V>QYk$Ctx+M> ++zkQ8ewNdO1_{Ce>_(1CwTUDO7x(nCRAu4_Y!tDj7}pUb{w?(Vjdh(@1%*ZMvzao~=* ++zK_d$1^P>SODi!$LYjBSXJxtkE^rzYGh}v|)GV=T}Jh6r-N$OT!x=0@A7K`}Le%Fq! ++z;froPitX&7-$5Y9WcI@&{1@%m&6%r4DCm@+N0f(@zTu>%iipI)TZQ<9i&BIahYhz? ++zitIdiQiYGmy}YFdnr7`=qTU?W))DT(3qV)^ZnA@K`8OG;9Qnn;c$<-ZMCHW}{MMi# ++zK=Lfi@!ksM&QIt6$2LeXT4yM&%-9+UK);lhzYJn$lY{|M2=*6#`P8GH>72iyl6?QC ++zq|(M_zs*6L!!}2NkA?AeTYxMpOe^fLAVKwl>QyO1jv#)~(M5;Zo`V1D>a-|jRuScs ++z$z-XIE#^9bjKd5`F&_Ns7QZ0_HWgl)!u^HzB1H80E5+Uc%c;U31y&y#vLcwg#q}65 ++zIcbQpgIkLu)o6T88<9}}JCu)_;A+4J&=_9>fj|@WAp7a^BY4~k#*l4!U~)6)`S2}{ ++z+Q_vLetR&Unz{tOO2sg3Tn7B>k1puKM`**KBwFF5L7@~R2m|O!&?-!!5-YkMTMhZ= ++zgm#<6ZPc_XC|_>4+%0tasD!`}V8n&3f{FZ8Zke;I(OA{N!MYfnt>m;7^* ++z2xqjg$Zad>!nmj{k5am|JpO~tHEaO#wN|@L6t$}C$<4ZHD ++zV&!0i(HbMX@tZ+(hU9d;t<>_5_wv&<@;6NO71;7_$V)-LRQAGsRcFBy46a)EwcbvO$4UwWY ++zNFru12T$%)N>daKTS--cfWDUSw;XLMod>hCBlDyUcfUZX1NKj7%J%QaL ++z&LIYlgj&7{W;GS{>~T$-h9fGfkPEA;Z}qY*HGPHrkH~JGyK*wi{G;pob@nc&Dxa{h ++zmBCHnr#xz0s)bCXpzOU-Nm+OAt}JF`Ora1*@lb1OXgdWNBn!GBv>SU&d4EZDCi40J6=Wn6&0_sS}L ++zt<7jphuuEbL=gy%!ylC!T&|qeFGahxyE1~_O{V0bet?RH8k9q()9Qi{kH!$*7yWCB-N|F ++zhk)5B=V(~&87DB)Foq7Pe4QVk$y4eP0z-OYLQX+mbg=2zyLgecAe!kEpT{XDSgXLv ++zXXm6|uEQ88CBtxXycqx_3-4n87p8^}e8&HZ7C=Af_Y6-ZZC~Sr@Gb!X=DXN`Gm5NO ++zAINKhz~85)yL!|Q;@eUu66wOrlJxrBcYbs!=svdmbyFU>+)TM(Y_d?lRrKvu-f5!V ++z&+%*T>`8Uk+4xdF#q;IqeMOIp;tWoph-B*D64z2sSINnYk0KWp&g2B#m?38g&}}5) ++ztz)t&t(SH^J?|<@q)oliK)V%>OH7(*E17)|&J-#{lnWsXCYa6@M=#k@RvJ=ly;0_@ ++z0HiS)&;!9HFSVn)R|H{c-#An(KIDG ++z9u1!ZGZa2f?T;l+3Fj?=ZK^~*D*!f4JiTNv?yTs(3c#|$AZ8CB+j!K0~?J*V6c)yEUf|*|8ZaRABW+P}2{; ++zRO~pUuEyaBz=@U&M1@I~VX5C;nMc7vLNFdfAn=S=f3M^c(rMAu<=Gqm8yi=W21xo^ ++z>84>^_uWob51-UH#`1y}%6QVe1F3Fco1y ++zCA8uvfDG&&ZUD@tUn~F2;-f59Fj#xH+xSRl3YecR^&7GP0!{mhPp3>6!D)h>;WhMy ++zOy7WypMA6UYIt2OlI*`OzhA~c>R#phYwqbCD)vrc)p<&#=B|;s3frAL#&xsKIXh8o ++z);t_+pmUu(-x7RDM_a*-UXX^ ++zs>PVz8#gB=Z6)z2Rhai`fxUAxVeukW?^l~kUsbiqxE)m ++zzK9I6!ht^+H?)OGy83WMkur}WTZ*#w->Zg<{cN5^L>qo!EYx}S*Z(qMOXd|IGU_r6@TjH844{=qQX|Mce}P!u&uf ++zOKv$3R69lXkBsxrsd%Q#X`Ut>xpXWP`NSZhmwLUpny#*l ++zt3=$$m%)o=$zB!5QSI9C--lM%As}edmU}}RKL`5vAOR?dJ9tjw^k+c2E}vSyFF?pM ++zwGDkVH=U!;m0^V)zJ6&8R3m*dKOfp#3mh8^mbHeBFRp;;ExcL6zii`R@ ++zBhA7SZ+%aYwPsmAcKxNYXtN6i((WRQi=s-K!c2W?xbjQn4Gc((mD<9BP;hOF8LoH5 ++zj5%lAJ&=xH=uh4p5_wl(?A?R$`~V^@48MA6muo*T?L`y{`D}fFxu(B#fUM}}|K($4-juzGkBg^$ ++z!u=axtu_~La3uY@zWP{jdK2w>a7(=Xxr#u*=c{FtEtSENm_XjN@#KAZoZA9)ov;hO ++zA{y(P42I?-u<8LuCN-Ph_RFwHH`j6E2b6Z1Q_`XKrp%L1vc#k*Ez{HY%cy-%>KQn+~R4ZnkTi#OL-m?NQ+6jwbI+h{?TKB ++zdYu=~2B@2Y1kk#ce0^?mi7S!80j{bu-@h&L(dG;5j#3UtVm3> ++zjII=7hQ{1T6IuRZ##q`(QKyW5dV=fy6(Md#YaaL!18-2rRY=nD3G)$@nISBUMI%KU ++z5kJ7p6q1XhCP0#OAUC}bcISW)J}@G<8-J)MqtU&Djt{7Ef&e|N%7R4UL@d%5hln4B ++zx{zb0n#iqeg}qaR(w$EbGt-B+=$5i^L9CJgzs$i$RtLngkqQ9C!+(%OHsI+ZJ$j%sGu+857xm*q>nQS^rE%z;vI7ABpg|ObK^s ++z`;X<*#2}%cXII9rfoLJ$ONmz*&DGv6mn!3mP*6&GWjkE+IsXSTiIVI(lJ}o6VqC?v ++zGn3H7JDX==3BJ{JF5QZL+W35L4mU8tmLf~PDBlp`c>3DDqfttg_v9|}`LxpUBEHdH ++z;S*puG`_|IOe?{*89)8VQan%ZHK3)c4ir@~cu|r{%QQ>r ++zkJs`n_~c(ULgcM)1ho>DuxV@f6YD|L&&R!)HH5~Oh2&)Gt9K4Y=Pw_Q)?*soT>-Qf ++zhHSL1AG-*gKze~(+xj}!cPsk)mj1`e>#gIj10(fm5{lHhX1zwY;wu9>T|})Cgmeomegb@p}Ozd ++zUSV<{N$Vn|{Naie3dSm=$`T{iYa`|a;2=*f&Ww{=+_VDu^5qD+MM$*%O(@HnPI4EC ++zBe!IYjHqY8OHR-xrk$o$gt&ihc2L9vl-tZ?e@8#^FfePDLFk(MP3X!IfTL?Ww1jB= ++zeNKoQ9k28lG*Z_9SqUf_a=;2-zhg&FjaW0~vn(KUJ9PAHU;r!d$7NH%i)?ICWq2F2BjPMJbevh~{8ApT8?8 ++zgoV$teUfjWU8n+EYvk#)Q{50H+H?j9mmEAQ`Ff7sXTL;B!;WlVpk=2Kle@xD`mS=Baz-em_m(oSR>;5!ugqAApV;Yqt<>GAYgaYSdl)byCcaC+ ++z*x!Aw}v{hXgo?l$J)bzN89o6*hz&G&D ++zTqiPxR0(EA_&Aph<7f(xIoLwn+ig`mx2FEzc-7m5kR&KC`3b~$&F3f>WQlt5qH71L ++zjmw&{eRDkD`E*C ++zgerK~RC#(}TE)WE*#Dgt;H)4Nf>Vf35rIy+g+20Hp&8jcwx3vus~qi{d7>Y>+C{0O ++zzmoZ7;^$l8C~W`9r4<$QUa7RYeDQ6tt!HNzYQog}$Zy}+Z*_>xm6H>t+2w!3kc^FQ ++zah`P+NXG{?si2Od7@O@6|5x)hF5qkAzv5*(X_9oBNZ{y9;9NGqp0uLg!9V%c7!bcr ++zHUknVVSiMx3VhJJVHiA~gM2d|4x*K9h^FX&VaRHiUC~XSCPCi3nKJ8UMRN^${YOsYsk1Bp{%I^LT4l--jgE;O ++zDLxUbW~I_HzLA1cW01sHQ&^sV>q!CzP`;o8KLOG~0d)gfkah~m&Ixpnv#sS@SE6*lx@s=&EIEps&m~RfO*i-;hpRsJ5h&n_~m9DCBbjzeVJ? ++z1#J4-1aCXN7sdOJZg+uub*=Dxeg66l6;Nl6^GWhf?lG_`fB?)DRFnLF1AcX*HNYnE ++zQ@f$p)^yx0v;Kq3daej%es#<0o}u}MnBYFm0Z%4}5-hkBttHR;@uiE1GzR{BX&J@^Ka&*`~^f5OjO`xb1#)K4I6+N;K-xm~K2s?bu`^7ntj6 ++ziFxkipmcwc>n3K&Q4H$IW4s&-QDWh5u3+nawJ-idh0dx(W1dm9spI1k@jw;A7g^31 ++z*G>?A9kVyOda4#*r3ipZfbp>Sr4`WH@$|P>hvPT|ReBRac0nL6fmRx2Kc;@V>GdWZ ++z)Y`?_)QD!5)E4yg@0+|5^XROps5duhmxhy3&ziK{@zLc86hx^NB1 ++z)qvRIBmpcLz8C-qM)(s?l=4dk9v!BH!!FtX}& ++zN(hv1$aQW+xyX6?o;u#2|D%RdnRBosrT^#m4I61@n`iy>^-X`hk997BGfx%3B}eYI ++z(MwLhF(%QJi{qai&pTywuc{KH^?z8vSO0RJe2h5&p%2)}oMS~6mjd_&Qw2~c{w)X| ++z&&L1Y1Zycs3RG9~%|^7j7Ht(qi2!^2C~B0xFmb-S@z%OjGi-xKLY$C7Nw+~wMk-ys ++zXspj-^P5GbRoWz4mWXwCVoUv&8h-X=)D~kevDx9{X-Bs{=c!lEib7shR0&n+(kxwd ++z1zG6P+ge!V3r*PqXX<1@@uB||2x{I^@x`DPkEl7z?1YW^<>wd`2}%a>KR^f3C)4NE ++zZ+bs8{6}X`pwM^I^l3L*)P;5O3xh(`-bNuNt#9C5=7RYo&n>TF%3RIpMEL61RFB7v ++z)`16vkH54~HlTNO^oe&cEJB?SeBJ7ZWht90pTz8#JYR^MqXW5HFA7!}FDYLsg6?Lx ++zAlLQXzuEvaFu&;10g^Oa3tH++T=UFk){oU#vmO#=P@XE>kH@g2!hy5W-?h8DRPt2b ++z@&AZEbR|b|O-7h)5w+ ++z$?#4u<-Nagj$O!-!Qp2#i`V<%v!52wT$Tk|`n&HNb ++z8&^E*Nm(_!4SNT_))dUPcPJh2K4ohBAKmfwuSUN%zipf>`+u9YB2rpZuPXEExtf6{ ++z(W~E8-nxV6f9tS!_B8*WaDEx`C+?)$pY3##QZd=hIqC>N3roBw@^EuPyIkU5c^~)& ++z*gcU{c?#L(jx5Z-{f#Q405%d)!RD{$&J2zmRsDLBEzdj`pS)t%$`VHN7)hOuyCO6u ++zAyFoD(b@3D@hr|Y(X?CPZvVuo_@n4Sfuh3M|IXgbbakz_%rU4XRd`#p$)ZRC(@O`f ++zJts0yh~(jj)jxr&({igbx~ohZA7wi%ywuN$S(aQ5jOhSa_h?vX5q>58b|G>}-@V1u ++zWAXndUuJ-H42t_i`JjPl&5$4VH*ZZ&WY(g2Nf_o>a%QkTXK6ghd2_5)+*5}Li+ ++z4dMtf5EM&FfESBG^THwDF ++zUK^N~vaOl4r~MuN+pO^3^OSI_Z9%c5f~t}>hoKquY~%knoBv`ipV(+DP@LnxN$72% ++z+c%d$TgTxO04aQyZrOgmu$_H9Dw9z{3+Su0CSFNV>fM ++zi7qFK@wCu3VPn^@@Y+Y-nseK*vla?*ZgIhZ&w16a=uKrARmosl&S0kA?9FJPi@xh3 ++zmr6w+H5eHg5ZgHIn>*w2-a)9?v- ++zE$?E*XU^n8N+Bwgc_EhRWXP}JXLwK!d6aS;i&RhJCF#J6Yudhu9G<~0+i9UUejFE| ++z<23n~KL+CRgG;9PfCo;ME4`AxyXZiq;_r`B7}kh=wyqsw#7*kUD5vHqAIKO5A`WkQSUMg ++zgqTB@laI5)k75b*@|i0>szDLeV`q9S0uB}a^IusNTmtm9{_6c?sLy-gm7x|Ux;#Jg ++z;rqSKqp5Uvm{Q;DP}8Xhbj=Jv(>9YpWIS-5sKFA>h_eF(076juec|rg?l1>T1E#Lm ++z>qm!@EF+N`{02B8IK1!uw|)Y4VwR;4&g`75y3@OVCib)7M=%CVI~Owj+V=z@#02c~ ++z2`cZoai>0Z`%jZ%W)$j ++zsA0e$JfJ*-;;w3wQIy_43!-C(>Ez^WFJ+mW)&<_xqjvVIM#hjaH>LD`U}eCxRr#SL ++zC|$r!E(_s2Vb`z9pFzXB#TA#Yioif#-f-0yZ$Kx_JeRy(n?D;ufyx-icYRNM{jy~C ++z&kfnsK>`ukGbTzwG^y$+Uam(v$!M(|Xhv~Xpi#Et(_W(AJ{XH+}k&hNpdiau+2S~F;nL9%RwJYJ#YWutW#n?zF$2; ++ze3tz3r6zN956RZOEAB?-lQU*lQo6a0*BH}rzj?;;=Elj)!Ca@b!WnD*{w_~SGjahz$rlBr-}KK ++zO2O%X0V#&MD7^D8Zo$p6OLL^ddRyv!psBDq1f)?%Z2)Q50CcE8(~IXDlP@I#sec=& ++z8eXp?P7snQkaCFdkyzc+jec({>g~3OPPa_WDyy#91zy;l`v%+8!-VkN+uN3)Rd ++z)yok+hfI?xCB6rgSbpN9LlW0rygYY_ev0Tc<7AEF;tqR`Ef5jILL|13q~$q?@!8!! ++z@BFOZ`~Wut7MtJ&pWSIaKeg2p!i+_kg|Fz^|;N@qVUs`K;oaer1Jtll-4IDdZV87XU@_KrH- ++zev5sFU;ayc=V~_5B9NN{hTKRBUrsGOS6;rj`{kCQBhO-*kA?LHPG-$JmO$cIYPV&kj;bWKY@^x+GVf;sHSUx ++z!V+Vx&G{D3yTqtIkZNYrv`1TDbzSra0lK=4Klxd$;jR7dl`E{v#T6CR{a2%Bn)c;- ++zTr;DS&@6@+V-5RI-Z&re^C`Gc;%6ns+SyliKZNS7Z-pPVZbg@Ac`6fYev4_Ll(9%) ++zKSE;-W;C>Nj)vZrZZ*UF1sdX|3E)#gjJB;sGXUt51;^Ba5=j`5c#Oh@=%N~vFHJlz ++z`{?BazObOYE6pUK{Ucu$95D8y$h;Z~xkiCfDr!o$9KAm}Xt6$?5_o1;sna8Y6HcuI ++zuW@MP+)n8J?Dd}B?L9x9)jHv({0Ua&1lk`*ca(Mt+Cue9PV_4(no&zeLD{USd!il1j&` ++zOz|&2=*LYfrCi+il^)vc^U8ELqoFhb&voX?qwCA%+QW_2TSO_B=T2D)GUml$n~U5Z ++zEx>{>4>a$J%iBPL6ersc2xj=78#+WK$6M2BZ=^BELcVE7K`q-`bYcJat(Ci46!Yu!B ++zpuh5IDk><9(ZM@MnRm2$T-dc>gUdy{l#wtO2^8T2D8%JB1_$ZIs!_x1n?n`j%50K? ++zSbKZ>u(UtAe`YUFbb>n`wOrwPVa@f4GQiw44TtV^cHf@tL4h%pK3P*iKUas)WrJ*sD9=SQp6Mkxy=&bixI@uw{Hy!RWMm6{k>_CN{f# ++z&EHM&h}EGZ-v(P@m(P5xrzORAkL3K#kUD2ZlSqO~@NQ ++zcZlgR5A_VhYVBQn50l+0+IZ=%A^`?-*qPbc^hh|fA|mkKSYu8)ZuC#}4$;#=lt1Tp ++zAgXc5ww}v0F&6$4>ljAwjpgz480dbGaeK81iWimH>y3sa$ECnl06HLjaT#am@9Yg| ++zgV%jd^K(HS5N4GI8qDmjd-%KO0+Ho@0>)aRnY5!@m|NgzR6cGHhR>EjcP1)G6 ++z6TD9$Uu%rzq#~bu=pveF+Ke~-v|OWmN<*!Uh1Yn4LEz^^_vZx%Bg`4X@FqqtmRDy` ++zDkVIzgvihx^cc)eQWW7>m3;GdJlD-I&h-|1rfr>-JbaM2wbdkm-#au`r)n{QHmlIp+z1W`JnBcv3Rb@>{>q3Q@RH#|8cp!>rXI=ms ++zF_8^R2$}_|0*gX2hSe*?6L-t;J_NYGCLrwYiv;id?9n=vu{ ++zc0V-TA8TclQzlLO39nfN6MFA!6=PsTdlG}_QPgk!25KzO0=Dtj%!I?@aV)Ynq8T0^ ++z{X~F%!By%7S|Br5n-89J~ ++zr`zQjcJ+|R1=gM04eL}Z{gGZ1-cV(o9Cq?MS!tu0pwwPq#YvLmVGqOO!v~+a-`RaJ ++z&XtG#3BR(8i{OoyB$&OIwvmqfhm+Ki{P-n~7uC<3K#@&5C{Fhvu`}CPSe~b;zI&VL ++zz@NkgA2ea&joY=Tn6&nDQNv+gp^U|aFMdy51z9BrwtRhh*wcDoA003AwWR!gt)YJK ++zyVI{oR=V4q%3U9^_TcJkepzC8fm)bEEH598dw>rJykJb;To=FJQLV2?5MFu~VD@T5|OYjM86B#LT`6U{j+jk ++z?9lpsfiV2t>44)UA0GFIDGjtC~Cy@yP<;T3v+__6AUIYq>RSUYd`qipO&BLf1 ++zN|`W4)xW6@zK1`)E~)8!!%sDh*nNmK6s@lVU4K|zD!U{4>c#UnwY=v}x&4$BgtZjU ++zuYJf}4Fkt7-LBq^@Um0b%gueq=y|ViqwLsMU=xIb!MvcoAo+e8S~(>!EH`s}El1)y ++ztv~N$`0txm63(yRa2tK}WnHnnaTH`^`cuafu0TTq5cqQekSGX1swy&(?O!G*K{e-IYK3ri~g=t2=}*8EW`>kfP}8KQsM4 ++zIEtp#HjHEEVoshkRt-^)auW}=Q!S|cymNq-Y}Tee8u ++zjGh*RqvO&&SeHtEh==Hf?E02N!9~Zt^k|ngyJ|$IF@iCi`2;TR80KrDKrW7{Zcl_% ++zWoBfW$)h)|M%gvhV?V7t@!~U6GIFLnA`GbH6`e_o_aR0CjDzQbb}aAy)@xiTKQ*h^ ++zKBGto@}3D#ka%T?{0jWUrU}90WrQ?hRor6T{;0;yE*(K$+oRIKb0Q6lof>TpIr9`> ++zf%>9_Cb)he35S%8BGNv>7Yh@Ik8Egz6D=&+${4SGflU>1k==4pIdcaSU@`n=td& ++z!T|3Yl1xYLTs=VYT_eUyvZCvwQJkD=19c<0CXc@iqx*j&!ZQa9_dahO|C+`}qO7PT ++zou4`-P$(km*x>{A{F1F1l=Dk;$3&>MjQ6&~D42s{H==lID&r#oR!o4j0VP`TN4A$L ++z82QJy3kP`udn7uxFTp9^DJQ-m%UQT7ysINB+U*>MR$TT@ZkNNaejzmrsXWY7ys)JH)ZWSVsYyTwFwg+W ++zCfQbBCHU&;Qqk0CX5_Zic^P$L(isZ$vo?XE0pRX4W)oYbcZ)GoF{ZETrv02#3La=EdViMU%c@ht=8or(&}+j4|eT3p4~uiKj=PCkBaNh@n@Y#fGnu9PP@ ++z$ ++zzp1isb8mQm7y0>#RaLW9^npZ)nl`#tvlP)ULpW|J`=)m}MQZD~p&tP?OgsBL&^OCJ ++zTv2WdBGQKY9%JEcrc|A}-q~YoNvbne*wRf5yB5>IOot2Cb__q(5p^PI(Ie?lV)Q4W ++z#N(`{!?H{a#h%aOtpHC>5pqm_w8{uW#&?uRGVKIm&0*DWa(%aCaLu5e7JAlpb$q+) ++z7k7V46r8++ryHeG6YNW(&>rwz)Ey4D$m&yos!XPmo(*OS!&SxEfQQke;3vYXHx=R> ++z&w}C*Xu&8YU={MGDfg9&@Q5@tp+>K4mu|#KSz7#J ++z6)5LTUAk;S*?wq9o31_=SRFc2RsFR7n}ZhGN$hP6_D{f0PR34dI+4fNOPDwOvobb8 ++zILSx`4tu@|coPHoRQ9maN4V%Vbx$~M=z0HrFyn~d6eL|k4l*Nj95fuZIA}R+MsHR! ++zV}FdW?o+ ++zZv}$VN!QqTrMG30eEr6D;ZpTfMXI$vQgt0cqylVF%$6Sd?<>q;@YioJERQiTx^?BJ ++zli|CI{vCOX%Py4k&)%P6YO4yLY%*lD^$#ys_s^_!C ++zvxgN)y6Y?~9jDBi`oed+0z7b({R_w}d23EDhJ*5$^VWNx3c*^I+(cke4;9>6_uWuoV8B)q_yAmk-%H?K<&(GgEH=qq{KL6DDZK&RQ}pJ ++zxKNQQjPIroK6WG08-K}IXmYw$VF!iC3Zd=qcFR?#uBeLlUQcWaVQW1rnvMgkp ++zjh@Ueyz$$eV+;6umY+7xU^+dt=7GSlKfX?R#slp8;q%qPZ^-fw@ajW&xlWqE5Td(N ++zh1L6K=|qPu;bb#lb*!DgP8n4Pb9qOyVQ@j)@-q&YKz^VxZsbH}9KNpgc>LDl`URV* ++zc+OnUB<)6(4sIg*#Dk}o(ResAuUB5!qY-)q9+rJ^q+u+yjV>FI-orSf&>jO$96YfMQzu ++zukK$LxJyakUbyw^!zJmQXKgdkUj-$?&|6n>>7$@S*+t@&rtP0i-Jk9goK!}VdQ<5+ ++z&*uGyY)W}jXvBVWHs*Vd*yz4vlsTs*wRkkrt@0urjm)W3g_&o~AZN1fzWsNw6|rfV ++zFF3;t(o*-C>2_u-erq2XNJm4}R>0LA4RphNA2eT*0(w2rP3x*@-jKDEjlI)k+{3nu ++zSY0+7v+%*1IQ3({4u6mR+p7S)XUP3OliBW(GYX$->Mb|~<%?cE6~~^md~Ylf*~7Is ++z8SpK1y4K>q$BahQv{W0LjDr7yWDbM`f$a*WLl~-|(Hg6T(crk|+xw{LwzIM-DjFnhtWg^P#70U)#8b~q8mG7HZWX)Hy ++zQlc>wQfS|RTOm|f|J@@rbLfy3D$|pri{-|ncp6&R8m5^71CL_)DcnTnfvT8)IRfZM ++z1vKPA{rtX~Ut|OI%*6jkA$=^Q8Q5(_9QqBt29tRQOsd}fyj>+P-|l0qy~PC(xnaooix)TJ;2!f| ++z85#AC=g)^xm$dP(ygB5dM<`8l;uE8_z$ ++zf@6{nqetkxJl97kRA$xVt=q@NAGO@3yeZl}Bh~+2{BIZOSU~BLDtf6$3tb=6F7reb ++z);HgBUPUSGW~|55m65p_%I+N1BeKC=Z&U^{UTN+3LiD(%i&^2uoV5~zodntYp;6D5 ++zn!>{g0ZU*5{(89_}3p&~Op(fPCf)72a7h ++z)lbIU3rYRhZ_{rxhmG!P49fpd6A(=&*F|eKG^gG_HqI&7$+q!#_J=}q$)?}ZSsPh) ++zAK6QDXAS}xA2JKHWS8|DLwb$1(EAFr1U#!bsVO0u0~P&94iS-Ev#S?juKf<#0+b3! ++zUAg{x4rs`@Kdt^>UUM-WFMu=_0@TaWMF28peX8fgc93`E(~5j#_!cl=AUi*oxlr(j ++zPaipvUE2<_EKiTzPmLHh|4a(IY{mK77&dTb-f_z3ORsP+Yv7>ySpH>(GV1$}&yj@He;zzdrKA;eH$2&ST37%$MdZCr~}3x3uUeI)tUB ++zCgJUWFo6yc1f1bPsB7yrTrSxtWd*yEc=W8AJj_7hjvWtbqULX6fLypPA}aF%3LY7FwlBxK`r2cUPgk=XYR4h)5vSwUaf$1_V#k56pa1I)Uj|9f%+sPt4v)Z8aMZcuEosZeWn(Bmy0E=l%2hQ ++z==!v1_$7sGEMjN0R5a|7Q9I0Gv@-Z ++z92x-%VW;iTcDlOwjBeq6*{?hACMLzM-*A+T%R3Z_d^Zqiq|@X-To<%e4s09GI&=1G ++z*OXL&$fkn67OPF;G(XetFDuN>reXnH5I_0Q1U+;psnw^d{MAvR`-Ivm)d&rn=%BMk ++zx#4=`2*b^dB9YH&RxU24kBR-iW~Rt-Q`RFyt7C22Bn)o@y;rfB*7`4#bBHONpdAw` ++z$dr>})=OPjN{ta_K^RyI-Kc=#0eVH?9;86m)rfpdihVv6`H%)B^$I`Syg})oKXanT ++z12;I}YH1!F>g7q+NJ6D*_URA5NImSkTz+Pkv{kVr(=?TWtOybj88uupdmvS`3RoUT ++zi`Rt5bUh+0N=%buvv#M@eH4c$3m4UU-XGn3&r4oX;_W8slD*SqZqw0CyIx$8E2ggH ++z7>qa76bGISceHBSFix_s?y!^L7i{Gsu)3_e^t{|WX6gcEIUv{KXPXxf*w^$&^s7sv ++zyG??z0kua!qWv4&{dS{6npD+svJy)wcrE?WaM02Yo<)SPCpo3B?$;J3&GVDx>PqQ% ++z?HHq~@5*a$JLX9aDpNu4hiTHRaWF`oNkY@GIzaH28$td6j6q~S ++zjvaR0|KoPLZDo+pf&2*r*3#;M;B|7vY7AnbY^qat;ItAUBiV&zs?(4VYyFAvYiX)v ++zB~jXWfIMk+TU_Jy4?B>=D`mbhv^*sOVMOa?Ut!a(5Tzy~bXWc*y{xzar0UQN*kTd2qH2lDDBX85BTKk;3%co&+3M7z=s7%{= ++zJU>kQkkFqO`{5MX?}m%}IaiT6)wtO~S5IEP4DqTas%qQmq3bEZU1W1t)?U5eeuaco ++zc`W-(?!8V2G`gHr ++zEMw+(-wtH7M-6%|;JHzhqO65_5=ka#p@Py;C$6umke9ZU?36w&HMZ2OE-PggJ#lFU ++zGLl8DuDi=V`CV_ux#P7aGe0pNA7`Zw9l5r94%E+TsRHbLpiq!$M(Q0!Wm80rDL97z ++zU7+swO{iae7~D0+sE8Vg3XQ|zvZEwfw5h_m6F#-v4_9WVeFM%pdNFGCTwC)33sjHw*>neMLlAxXIi71A(Qpa~`F?T8-DU>vZ(ck;4{s!ZX45 ++zkS%IKXkPqCWOg(@wLF0BA0CBETmFxxFOQ4q|Ng%-?K|3#8e2k=kkU30QkJr$Xc>gw ++zMAKec=1z+U6(u1xWhXTf?KM+TvNREmw9K?GqnT-$W}5B(UgPuq{ej1u-p%da^E&5w ++zp3mnwSNQ3GC3GQ@>Qnsa&MyJHW~O5QnzC2tR}?;zwtJT&W#3F7liLs^*}hAmT`O}? ++z48X2DA%Y)OmeN30#A4ep=CX_zUgKvuf7U{(@WFlH)5ekVmD^UTcqxsMsyDb$Lr3~X ++zrVIz(pZ%IwwlzmnzYFeO6^ ++z#=CV$s!vg4Pc@0;W}MuZFZ^1*$9Hy>LbK6dMS|AizaQu)y!kCBx*0($P|J^7&zufG ++z{*D95e>Lhij{+zp*YG<&?@}E+!8->{PKnLs2p1(wZ;GpZBx|tQ!X}<5fo~u7uvc`s ++zh}lr#t)NwRgO_Dz_c_pxuyQUV8@uzzch=g(Cr`CFqVoe)6gi257dDl8ONSajx@z}v ++zRcnjEGP2dSh`Bk%d&u2;NRSt@q|Ko=OP)AtX#b(hgq#I&1q!VnbCOc~sfZfWZPBdR ++z9&AGLnZuS~(3hcP!S$YsteX*l1t+AH3-`{H{i@A)aDL+p(I%_PZjIV=2(9puE> ++zYAy2$650mYByzi_x=G&_ErJ@JZu>KQFdyQM_7oi(^ef*UbSo{){Lk`%MT>}&jkeR4 ++zzqATCy{Grdi47qnVKpSmRQ{VjPm-TyL|S!Kuw!xo<8%s41@Hrb0owqqmFWYckAV*< ++z>$qU;+gZthv>7XXG2tO__FMj&?Eupaa`8&D-YD_0;({&T?|MD_&n?_1@oVr6>c;Kn ++z0kqkdWi)4x?!+bE4nm>*j~vHmwY&B|b3SDwGS^OHG(Ia$pO~Mi8LR(P6&`c69K5%+ ++zRDOBw3~pPV(fxf-V^Y-C?(#=8kc5hh$f&m+$~s@3_yQ8|s9J;7LZY)s0AJuQULaki ++zyr#4d>688hP_c}UKE`iI@?z4!V6jK1mcHPW+?*05s{gRybo=2E;ne%AyPN1AcUw)& ++z4tv}3 ++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 ++zMgGDsK5LnQ}SzZ!vvi5we ++z;jD@yRyAgKYlrjB*#AC-sV$Gv3IBb(1sPxY!3-_fZZkMoU9c&7(AAM*t0aa9Iw;I8 ++z-YJLPsa~nhM@QODV^aV2cxiT~gO#JefshV7M=>$@dabzVDkafP2c2r@qob{HRt^BY ++zM9dqK>TeqH+?p>*h-WJiUiZ%Da}vXvpv~778y_|j-xTGk3sfYB*J(*tez#&GAT&g>~?tk$o>lX_o%${@_jWmM=@55$>iErE!*q2jf+j)r`+I;+4!6z5?Iq+wsM4p-tmOs2_h+@3Ml>U8{%F5~goSQoGL{4(9uP@s ++zK2CLvM%)?QJ*9x;9qyZoy(+#rSRoQCiuGMDb7KbySZ)U|c2L^y ++z@r6)%@lX(yAJ{Z+&B+)y52=#CaTzG7vo9Z`ynp}L3}U)e>L0rtU7VCs5M7yOqWp}H ++zAX5s}b3(E&9bEv47#lx+(N0HP?DTf*uqL$33J>(SaXoeTqoI=gN*q(50w;94HH<6G ++z5%uK+&g}HFUlgh_KO;yaZnw*Mx?9Me0&!whagH|x+K1=pYUE;S08hEkNLeFcOXB-9@gIg!;eBOEwqoHWp35j$Uq8R;U4FD1UlPl=f!C*D2bG_MeYt24DKfCSHDr%C+LFEs!x~5-2qr`_ ++z?g!_^+-12nkt|gDGpLH76 ++zi{GEpfjllK1uqUZq?I>xfAha`r6m^L52t?7fnJ1GGgH%dE0Nabn|j68Ouie@sl&GnOGletR%9B6CshOq>3)lX_cfB ++zh9Y(lWOz91?~G`anoY~xo2aBvUu=UL-A&NJ)0WC(eJLpLJ>U8~I`JH!ZnYVf_M(qJVPrN9;N#28>0I ++z))QxQKDyTLM71Mu(^YF~!xpp)4ZqO>>*QZneVFn|!OLDZm7n3<^yr ++zc%w_FXKsk?xh8_T64Gr-FY7rAXWj+=vx{X_!bm|bevcIfK(igt$hu&07OF!f^XTAI ++zz_~_H^R?%XtYMo7(pbphtzxWxH!pzwhmTSv@}C}!kbB2a_)zoNgoqeU9N4}p02OR@ ++zlXGNK)kT!uii$#rX%}vb>8&?a4jr$!*@E_b2^FCFRO@+ZId|;tY*=6YN96x%N{(#^aY0=29IC?hlPxy|@DN>K7wTlN=?m`_5jo1>seB ++z1?4tH{R_sPQkoj!pa7JP?h+F7DodY;gCy4PmM%Sk!?S9>iY%ox^C%l+|7-IDr&hK( ++ze6nA{<@>NlL)_R!&l%-@YG;|FTjAK(-iGNZ-B=70UK-=pT6XEZi1UWC?VI7)WULn_ ++z#uplkN?s!;o_7^~1jkYCkh*%0{3w!@xgz7Dd6V1E06tt%lRt~`p0CsCF_`;`S72gO ++zT7ayEqLSKWDb~|Hy$Vd~73sJ~wCMh_42;9sLRz(B8MbgY8-~GD+3sCIszs2!K ++zjKd0O)~y#O%fL~m`GNSp&ZO<vJrP%=kn^2Cf%lI$LHQLVO+lj$Dvek&0yIfk=>OdS~ ++z2LCebYAHp(VeJMO@ur?W27NDs7(HulvfT7K@)FvbJB6*c&}we#heOFv_%n3BU#!F? ++zvKkk2y+zb7VBj}ih@06ezC_2*&1#E1es^%_tSDdD={u95faabx*)VC_C>bm@Fv2$t ++zj`xwLU_zA(l<*C_S|`9!IM#cqs)x2iFryCV_q42}s{$`CNA;O^6Uh}^*fVq+e-U8K6(r1z7?EU ++zw-(8{K#VVCoM!+MrhzPva~T_!O2fs0##@F0d;l^pqhsA>T?im)cKvY{WaNBxAt*`} ++z#o^*}?X+FeK9KlHOwPJ0JYAHYj1pdP$G$M6!VaoQ@xFqvKUn%l9j4wrhSD&2>J?nU ++zb}EU?-hn#lgI$Ge8-O!0{UDIKdD;NvjWpW>i16=9Xew~CBwTV+B>S_O*9{81?7~2} ++z$u5Yq`hIcz-NDgY7{9Hou$r{df{5j_H{n ++z7rl5bw%kxyT=+Q>J%(PcqiQ_6kT1vm-6vZ0>brigP2sn0qeqR~72JY-mi`S#vUQ;= ++zt?vIVtKUKHpHl3HPEO8IF2EM3%Ejg$RHS<3QU29I%pdiA=1kIR!8%)z(o79NQWU93 ++zdv_&af=FDqg;Lv-Dh#828)x_W3N&ird;CB#wua!A+mQCXYB#6BceYPb9>84KCY=h) ++zwu>y!eEy)J_c>2|+&zqF1keNh&v^(mTn3C|}jr=tZGvqxe?rJJxNXm4#6ot6O#p1F1_u~) ++zW%yRmgfSFhtJa=HmAq!lWBIrTB-NN*{ ++zwcve_Q?5-IkBBAU8pMfTRNC*uVMEPXSwEyD$+NN8H8Up8PyTb-d)j#T-iV1&c!m1S ++zTqsMlQG4dy`uVP3#4l!$s%oT*jy~>|y8MYM6O6~?EcSxh);qRJ1vAD=?eF~`VC%}x ++zM-d0HM(q^&bR_SYSE$>^X*I6x+`{@~0BpuVziPDzS%I}>zW8!L^AGij-L;6Z!egM_!90Qldt0-5p}DBSlHhqfG-r4Sf*zTR ++zmEJhtZkL`J+iO412;wuc?e2Y;b9oT*aQ7%1q ++z8=qh}#0dQ~okTadJ ++zGqgq0=RjF9?N362TW9B&@IAKbpfK%udwF86kOiZecRj3wKb5x=F9-|aM#0n`(WL}(1TM(sT6A?b;1gvX2ntV ++z(6eVgL8t}Fe;cyW-TU7iR7eWb_PBw}^9_3XuQ?WItbd$!S$oCHUIYgmE1hbG+?>Jl4GPP?RJ5-ClUAn3pIVxNn`K1#}2j3p!`rd#8%a|NA?6l>o7ZFeYd ++zO8Qc8VsVsbUy>B(Yx9cMF%_R{$RnOKP9=&g?B0!{?q!tIO)oE|!aADb)bGIvcHQN3 ++zc3{EFEsTnQFDGUs7#;mFwZS+K`m58N1 ++zCDKA=rk0#|Ewm?IOF&T^h0ViD4x*lU5-L+`v;&Rno3o?Si}HzzO;gCLGw}#6xT93i0nNR3B8TDxdCYXkNHyHVi+-XnF{P15yUH?0 ++ziT#5m>1u=;I_O`>u08k~z~WR&n=>bc{M%n|krHI^9(>-QaAvmCLHZUT#V^A`6=aXA ++z8@Nak6T9c^0HG1tHMV+8XKd?>by7+h7sjQmWZpN;+Wgk-cJoWiH>HRy!M=)@a~vfYpxC1@(hW$iMD{V7ewPu|V8Q@&aa ++zlL@H*g6F%Nfc!k0@v)mG(N=({7_=ZMSOTzPQ2E?Kao-ATH_w18sv;1v3hheFInT~) ++zn~w6V+I#`RN!gg7d1mRMbte(e95q7YLwj*<=|~ScDP)k%CV7Ns_ZEzv66apc-C2Q> ++z=1o8G<=9MbEkJtIA=qfEVGt5%Y>uXym+wIZzwT?H8B860YXaVcDT)a8UVc@SV)-p= ++zVICw6A%a1H`UNNC#P^vNn%zs6?ZZ~9s`M7dUMcX|I|;1 ++z*T2&&p)6*)9aRyVt&ZxUfdb3;0P1mM55w9FKxJ$WD}c-};NwY4rpum-CjCH9J1LyB ++zmlbU3XYhytUB}*e@M;_J!Hxi@9QMTCnthqm{^Y~QDV3iUh}(7FtUYviv(1U4Kdn!A ++zMZekL`&p+T=Cv<{AF4*&JLG6rs(%QoMHQHv^u*Vzl>aumX1sF+8;UkW*!wGyx+jqc ++z{H^kXy;6Y@m106=fT@~(j8|geaw-W{uhpkwES(6E|58hKC81ezSSxYR4U*_8R=AfER8Zli` ++z;nFI&?;dOHUuu-zU}F=fA8$k@zS5t3dlqMGfG9+K=w1a$&4MK_|E{3CIg`gQ50{+h ++zigmgaE-0ehI!=?>`Is_o}b{QfY2V}}~K)L`>1kReA)U&YdQ9onh ++zfUn5r(^6jT%_B5dPu|0KjiQ>%l)7v`&n9`CInBxb=ljiyCGf&`F23uYPK1Vh4(b63 ++zkSgP1e6S6qFFXVAVFv$NX7HfNfbXmZH}5>1lgA}r2OkEn%D&Hi&I%X;c>5ywG6TWm ++zMLAmv%L+!?x3`~N3*}c?uUmBpy2w08e5DKNXvq(3Vm^tsjywJO%^MX?)RD((kd?HB ++z_Vit)pgnq%0JTgqsuKSSx7!LjZMjP@bI@hW)STLs`WG2m1j32o7EWjFo_ ++zG3mV5Z7|X4sCkl=C(rvK5_Qp)hDfoh7$jd2ZgC*O0m_=STRNX;X7l@C+OQt#Ar~26 ++zN~EY2AW502`|j+&hqh0uaC2H1T;RR-BFh*RXI_!7H40;>fXYL*QZb~OGYU+KBG;VA ++zGWR%W_w=Fs9oJWPw3Wnyr!RWaOt ++z_&*EjH@u+iiXduc%0f}RWeQJd7IpO6OYE9+Oy-~Za5J*MCOG^jKJgd$TeR+xh+W#`ONlIvtUy`|Y{%#1-|& ++z{-A`IhN+B{yA8b2CSD6S>fm0f ++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 ++zf0rP>(fs;dYkzKTuum^s&R4q@&85^dS ++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 ++zy{D1scq;Hw$m5P{V=7 ++zA1?Det%2&4@09R7bd7W38ow|Fn)kbL2-+Yo)?e3!NtZf0N|<*to1xLdXc0HUHQfgq ++zrO0#5(c-Dm1G{Xcue(gDWS+0$utxD`JI7URKE^Ju5MJFX|in0!}*4nf{ ++zfePtBl0(pMAch`w0Dgsk{-Qp)_{G31$e5K`7?#lSNhED>2^BJJn{xCm=Z`ZTE;$p_ ++z;}05B5L0`kbGI<7;6@4{=EyR6P9FZl>o%FsJ|HOiYIKOq;u}mC0ilcuv^wt>)3R?1 ++zo`^iqWVZlcjfTLNPTnf!BpDI^3~aYgTsc}LXLuQT^(0Po&gY!u8v5kr%JmAwLl)|@ ++zhN*jp)Km8uJWmV$#w_rLbaW?EOoDA4rIz_$pX?g0fFg^G{ySy2U@Q%eRlz!^UH-H_>OA1@=OL_-R!R~64sk|5UaMghckVli ++zh=Ji{QfYLvWG!@X!6aZmkpT61V6FPg6KMdCEJq0>dU%mn$^#xP`sA_<12K@;5Kjnc%kfzHAb$GIpvRP(6Nc=w%gDcYy%;_x8CES`4Ow59q ++z#kBG7)dP0Nafi(fho1<0vV)(+d942u;QS;yK06Y)LiI2oD_@f9K675iORN9eN-~<+fwKWw!F7Pk#p9*Lh9L!}-?P|fw+U!K&{KWv@ ++z1gNmxOkk=&D$mGHd?oN&nT(x{D+XIDdNM;`6=1=5an)Yu7}<) ++zXRWih0>6yX{c5jyiC9FVl4vKbMV|sE)Q+nNT70>p$#L=q;J0}`$XPD+76FrnJrMJd ++zyhnzzY7Gj3n*g*^`mWDtjGb@s^gvky27H}^-~o+Z2bPfoJ$S8o%LR-q@n73H58zU* ++zBT!`Iq|9e6@d0(`@gPkB^oXE-C=)b+ou-@lPbBsMEuz+r49ATA?GA_B9tK2a{bZR~ ++zx2|w&K0=Y`giL#md&_yAQf|N2#LderbZ14cP9z=G_@iRdQ?Xc`{SD=4m-_O>>AP#z ++z120WC=5GI#GnEpya_L9%dII(WnbP^R7tw^U*Ll6%2Z6tL*dq2!0bg+eU!k3^v|5X( ++znYeTxAds#rzyOjNf~kW>hB+I*ao86wkugkwY_GWcHw&C=ZP~;IkeXO{^QF>_g2J|T ++z)Am3YV|;;f^q`ZmulWuX(ekhF;=Bz0(H}Qh{@;W5n1U4Hr6^Wkkk#tYo`D8s(XMjxoXWnqs}uL ++zaPoj1%$wL`7Pz4-&tbrJfx!#yc@Xgp7Izx{p$`I(VL^<@ZZt?o2L%S)ierCxVeMp} ++z9xeOVKe$)(KZISpIx2~i3+c1#bJ4iG0nA0&Ok6ykie3&Is6ust>`Q$*${Xx*&sFZx ++zfl5T9LFO%EHeXd@-zkem-_nsPcn*(N=`nT=+ ++z&RDQ}E*}pGlM0K2B}4@L0FN3NdtX=L-ZsFsXP${q68p# ++zTy8)z|Kn0r>lEuW>#mFnw_VSRN--TzSve-R_=eWWV-DvZ-GKNT;K_r5WTf|()11;Q ++z2W&q`8YHFi<$@*aDrjyVmh1`uaX`nfA*kz++>s@Xx__?u5Xq>ktXu%aSf=1z1#~8! ++z3Y^CxU@tTgOJsH=Gj49pT$dHQ)pBSw55OjXQGI0D3mW|CReF?p)M ++zT(3^MKuA^?M;FxZdYrb%*f@_Xf7fw7^*SE4KO~pAK?kZk+;Fm6W{HroOO>BfBy%sx ++z4U|#o0zX=;L&+I(0ueb{DZQ00*17{;sXiy1T!C$rl@VZLAN?cC2vo){DNri~GGEmL ++zZq795nmOn?RGms)(x_-i|H9 ++z8}^qUi3ufLQN_#?zL|OLN06{hqg%$Wp_#VU(qSSjU&3hZ0*-!uBZCcqAkYogut)Pj ++zIL--|h$>vZkO7>E^`$Uw;nZ4Y*>UeYh#0sZm8&({H~LUm$45wu7yfoSj+@B+KcRJO%~f} ++z9+Vc#i-d*l9_gqNmxRG7yr1*J;3GnHqG270GWY6K4qzD^)(-Kj0ZgMnanv9(nHzwW ++z6S9~>HAwO#Gif&{Il?t;#5Vll80eQfaG-4Ut-$UCgp{*jk+`o+bbutY&47R>k*?0a ++zp@C>~fMZ(~v5yHmN$I3^SZzYJPOVNWUOB@2==AsnB78fO769yA*|U=`pWp(FC8cxf ++zHriLHr^Zh+k;tn=MLT-f1FMp*v^##!?{|it%w^fCB~DP>FO#FDY8{$qgo}N~HzlF6mOL)#8U;Sj ++zc*6B`077G{|0(TtAxOG3gkn4NT+E*pU78#;UjW}96Ha~c)8k_vf9B5@p=B%lcUSBDaln~+_@Kg>=rLGR8zzym)yIG60$^D+k_-4k$e~tg^E^0Mk`WHQmHUA ++zS@I>zCnfEJ780hSh?qf<7E463%vefHnX!x+V`lFET%X_n^=h*;?!52&ea>^9=Q-!r ++z&AfSwZuz@6Zgm-x(|0dVQ6Dw%IKSn^TmG4ls`Ee-!+vsy&7_aEW~h*fH2P9Ol-ksI ++z_m5$DGW4ureIdat0LJ$Jn``#blMt_7A=|ccQ3c^bq1LD(ub!Xl<-z_WOA)7=B7NR# ++z=d-_g7e+Dv{CzDev9$a<@#aBW>H1xlP9D?v^y<#9RCd&tdxQ(hg>W}URUbqz7w4>} ++zkbSF6p02E8+CxPK8+swXn+u*>tQ7NaJ4B^UU>rx%Y(x$7&j^TZ?;zl$$B^vD@*wlf ++z*lPS0o&*@A_Pg;MiM&YE=0e(Q*V3Q{aW!SuZ@Xd6nK}T%-BREPlLPx^RTUhSMKgzU ++zpo@mC9DcZt7+H%YQLV ++zH#wXm#VdaI&3@p>WoGvXN#MitoX;L7Ux#ac;?D7<$*+$7pSqNfp7*MdWg4>~I ++z4gBbke5QpXf+`k&8*m{P5%hfb$jKNWJ{ZJY>}d71K?zYz-HERuw4Mdhq-z*Dq+%qW ++z_RNfsI312ylY>5ZO91J04<|nG(G|_X>g*;{B(Qgf2Z8CHT(LgGB8Il(C;HuZ=hS59 ++ziL)lC?GDVbDx#_sT8XZ-2;Rx!&-siw$iT@7k5A8+Kux!=-CIw~d?%olE4 ++zFt0CRASYBf^$>09tvOCZ$9|rg>{edv0yYz6n!5K?m^Rjm!l59rCW>K$etaM(eZb#)) ++zs~zjQPKgh<{G@lLQPZl`8R@)rm(Q)9F}8NKYdXXr7kPY?Tafk56oFB5%xBL_eO#>q ++z5`5`pQ_}aNYCl<)fG$k ++zS_@xYkfcZ+yV6rvrWQR=Kc{pvu~&h4NN>bj%cjGjhWj|3*ZdLa5Bp!Dv&nK# ++zkJYJ@3M{2T)M@|NtgIkX>}}mMpo)y%UEHpXtpEG9TlAgZ5Ef;m)jnIL(twwfYFFKw ++znGO^iCjspJwoon&Inv=O0ljp_!)Krht-?&-z~iWh0FU)EU93f)0`OCrAp*5{xlM67 ++zIi~+!>7V7r=)n_wPV|g3*=Zs-HW* ++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 ++zpt3}g<(PSSD2=( ++zf1$+=)v8~~SblRw+LbhRRrrVQnh}nC3$-}bYR8gtezw*?j0p@(C@1X<%ii0f6k=8? ++zBUC|;Eh$BU?wf?epa{N^ln4x2=P0ODh%O5)(oJ*@TGi3B)A!*P#^)I2Hok?gmBKNu ++z-aosfvuTW2%YzdN63geS`PZ7WFPkFOaw2&|0+YZDPou=A{1?@9o9s#huLh4AP(4%>AdLV{khktx*)4Jt3Ph55z&l@HbuK2JIo`-l3J+prQuL7f^$+~H=K?@f<%E(>S ++zou?8nbRoD~e)GDLt*}s;+Z@X#C>8B;$o9$}dnuJhekyb#?d3FX(?Sm8B($AKv`h>F ++zGv0a7z_TnH?{n_P`qSc_I+9G@j3RK(J~FT*#A#mCtO%pCn%%Er@*(iP(j+>>Anc1z ++zpf$#At-9ZSSCDAg%cN#c6~&xs0GtA&y)cDMqn?W91g1p ++zVzNc2mf`Y<=zz$$$B_^0=0ai{0cqWSwPjGc29jhO5#M*bIX;~suwO{uA&%E|pyg`3;9 ++zC)72&o1TsRZEy4q%GHrGYN(xIJ?qxw7C11P ++z43rE_{#}^cA^>w|WG!9?R-uZ^)b8Zi_Tzm^q0JN~%!G?cRgjd|c7jGj--;37mJ3wC ++z{&_saqEz(aCG&<;&i^t_D=JY!Jvak^6uy{sl89WY(eGE`8zmgbguA-YcXvUlPS1^r{aBjfly ++zrPx-D-OG$)r4~bSTCYU$qo7(oOeg6ai8uaskucZy_p-a~!={Tb4TiB5`4YvcHB;(S ++zILFQ?Z(Gp;pXkrs0zv1|JD0XUkrK6i^AzY?e!9e@o-xAjsKcGNSYx0}9kS ++zXkD1}3{uo3F{v1p%d{VBmW6ujytug_1;7$>C-4TT@TMaG>5y@v`<6GB3s0H!Uyl0l ++ztKVYRWZv6_)aNHQkNnA9kW*xeWSqizUzBn(&aU+}ZC74Z_1th+2jrJhmtTH7x ++z*X^lOwn4#7L%~3>$yAb?pVz81sm1#HEoHCGyj;K5Qd{+;?;4H1C)5s1jB_ ++zAmm(qfsc!M&d*#ZCL{>}kFK`xuHG>Ne3WC>vOGk}T2-j1tCAW|qPS%*78nZmIUmnI ++zae0!NEw@QJThfx%qVsZ58vW5cY?^fC)#}4c`Ie}Gssls~t{Q_!+(TnA>G8EWnvRk3 ++zT6!2c2-57sU8E1Rl`K$gv22UUU6=(3oO=&2Qm1Pe{s2uYmg-Rn#09XvT>Nnir ++z)EjinbW#p5*b?R|%=u4zwD~0vb^p`5WPprT#P&-uwMr7eLg$T2$0#1`_vAHS|8869 ++z-pbv*+jE8Ey<63f$Rna!W^KY_e-|^p76W*W9z}1k@(|a~FQ1pb{cHE&v*ED~Wr*o& ++zN9zUi&O6~+bkZjy79cs?{f+6LuUWMEwR(s2X87h0HS95++A3V(^ewU_XL*EO_^|EO4)O@}z~6-cAQMhD?Ibep_TnId!7zGyHzMH%6s~+2!t>d3hM5Jx`gEXSh@+u ++zZgcHB{v}`r1v~-#x`N;&IrMA}yOTv#NKLGFKAgQXw;wMhG}M(-NsyBsjq^Smt-|0Z ++z3OB{%IJN|PTSjkp;I5&v*usTIXpW%wMe|M~>u_KMpV!c)DS3Qa9L~VwxOvgUPESmT ++z@7@UA4)n|;%;GHYFJK!0R2=vd?lc39Y~=z`*~W@w2{liPA0M|=tm7rJgmDy@1cQGx ++z`mm)-vH7C>Kg_@H!(k)QKLWxOpoOq8pwIz6WFc%LaC-uuIT!Odd%+m?!-X{0_Im)s ++z!@!YHlV%A%x{^QO6NFKVhTfK$I6UNGl$MQa>AaYs`|@i172EKA>6H%a`JIN3uPXgY ++zxcYEr72>?t0?E&g!b4*%0c$;LiKa ++z(>Gnczl}zId<2^}G<@~E*fsY6+501dgNSzMdpNo8RBTO7>T5QV)sH>hfb)Bjd<2H( ++zEMVZZSk9kT{6> ++zCR1iZ!$RieJ`KZuHiHK<;{P38^`1gr6F^S7q)v&(J&)c|@cI=r27=9=p1NlY)3vd? ++z0q0h4;xN>-^q0U3+0?rBtVHRc?@rlI(@I?Qmw_)H}n{N|2q%ukg|gf@o!bI8-)VQ?EH ++z&CNz={s6^{oaly*Xc2~_a^;-GAbJq;)utA;E05x0q`Hb>JdkbVA5WY_odH+ytY;Hl ++z^}?ywmI<-)bYxH3R+@KFLx=J3jdK|L5Jidko2rrI#LqFg8v ++z{SD}YmWb0R-^msl4*mYFiv0Q4)Br&_lM_dJ&tKg2wn_sSjp-RhvLz6~UIKIxY$Wi5 ++z{@1?>qb|9`t8AJQoQ^VVur9Ela}z?sv2p>guR2H?QB&EYD*_py#R`rgx}tw)!-i)o ++zdjGvs^*io6O*Ud#LaRm2a_E~lAzi9W$!T;NFhKGRFSTH(=DThXdT>wjXJ=0%m^5)ifZ;&=y*N`+QN_ ++z>QdCL@k?i10}otOX(H>h=%=?BuQA1O?Nes$=JH$KAm-Ud-HvyI&b?T^W&PV};5Is|(@Y9>dL7mP_A+ ++z<0@8j-N%DYs~BGIGdZe6;Z-0C3le;Gq$MOrDN}UMzp+PF_uoVUeU&?{VN#VxD21p6yI|f79J!^%*bo{9lY(FU ++zgSYz!FWBgJiQm*&*ctQ@fDOf{Z6h{p0*i*JY#2@)2=vx{h=fO>6vZwIs&Q;;O{F{L ++z5~}=P42k|QP-~2>_UHf^r%zVb+T)d7{^9`rHpXQG&Vp}-VTAQ!m|)e5ohgj+SO;u8 ++zwl(v93(de)!sG?Np8lIW{95^QurxP3_<8w~@+$LrRcBsVDp3xX)hW;03l7XdTrYc|~*F07yYW+DZu62pUs0!O~XPv#&sWn ++zWx^H-)3IdeY+(*3N4*7H3~mpRg^}?khep>oF7jkr-1o7vzh~5|k_Ib)+1#LV|M;qK$m|-F|^*Nfg*I6tQcC6AbeMK_vyrYKH*a ++zweQ3R%PS#f1F;R(2rBgXEy2U?o@)cTy9u+>Vum(6cr=-fQ^H`+OJM{LqrqA88tP59 ++z@cx{MT95BvOi-J7+)q6Z%)m0#R7*Q11=u=Q!SL0-PWq;`Q7}LRYK1oeC=Bz)3@iTy ++z6fh@%hw1-dG_dIbuyUMvRm+9-4hHdUSkIcb*TeZC^6H{=PYqV&OAJe6hYmZ3HW@15 ++zzk@vjyAmUVp$85dnFp(lwuY*UZV+hne+0aaYN6@r(Kt{08YhmzG20slxXwlL-xAJK ++z&buU#ma~{rmfsWmg*rG%7)w~E4~*mAa&&PfsF9MB=fq$30@5vqvX2k>1B ++z5;uGb4$Qb!UFtc~6C2w9<(dk}kY!Ji{~?mYT)~Ny=+Dhe`X$VluNnP<;Br+%c*?Ek ++z({F#I&=vQ*;_PwvgBNDFzS-P!T8Pg>WW)2`>Q4k+(e}u%v*KpP#&Ff-S?voJ ++zuP?~EB7u4qD{96q_nrxa!CxUTSRHR@DLu71vADjw)2Y)Ly;2+rrtDWka@dK8V|K&) ++zum_rVKuf{``0+!;`L0Cpt?%faMOl-tEmQ*c4A_n&?fcRVREeZe};D!St ++z1j5t+SPqUXgh3sVR}$(@f>H37*gf( ++z!2~v(jR_1c7M;wc=F0GjxrrlS9xP|Fg;Dv~yv8{QkPHb5udS=LeKXGL;ub|OdxoFg ++zY)|{=qXvg2%hJ+MC>E)@dQSG%QSPlAlL^9ErEOtHm>^z1iWFrT-i&BF!>b@Hy*EWV ++zz|gUG#m>f)0_XoXU`v{uYK-p&knpIS+6}RJ ++zko1alV4~6o28wdM?o4)f&{&aKP}-LH(S0K)%*_PPhSs$Y3xuAQV>Lj;<6;?d ++z2JhLpx!@aw(4+?O#$noZZjFO3zvOI3GYmuYVMh*)`a)QM^YlrPQZEO8Wlikt}h{nfSa&wdM^ ++za}AfT?AMVedht)!)6ThSKL6@*;0S#|!OzmY5Qkk!(x*~^PM?1{Ed2;8o&djg+&^OMW+dC$S ++z3R?2j{?WJk?uJMek4Fya>iPWrtm0(b_fcmt8OQw7?!3CQB~aSx=}c9{n^Y#gE2F5g ++zmT*R4X_~BxQ}BgXC;78nj>-$h8v5kr%RGL~nr|G%_AM0j2!*c7BH{$NN{3I}PCFEV ++zMww5pgFaj%SHZ(HSA)cjIF(xW{M}q$Xy8l8mFIi#dvZIx1YteR#`pxR7NB~Pih)R_ ++z*Aj{dHAH{%*9@bYWFZRCj~ol;}bc3>E`F@_xu5(8<7K7cyT#heqT7eHH$r&3^#N^|ET0v<5XL4K1&XydG&>FR*H{07_MT-e{QAjiCx ++z_@o{d=SO;Ta{C&XgNeP5XC6L2Ivua#iI29=KR22Zb%#A%-Ss_V<{!d|I}axJ|2q5o ++ziqm!q+MOU2(o2u6b$Rsq{HqqT8v^L^34 ++z!15tmr&v3@9ycqRYvKyh`k-Vv9Kn+U ++zbAcVZtO$mneAHMqvj*BMAtFJPQG^Y2PSEbSklf}h@U{r}SyjIE+(<=2Yl7vmBcb{q ++zHe~&X+?zT2DrJ=_o0)G*QcFS2+O0)DR{6rdV=8c?+&zKyh8Tu6t>_Z=8UufF0O&mV ++z+d+-#Tzp@A+4xb|&v_OzUDx1^V9}6yWTij8AI(+_#=OQd_+V&&FAEdr^SzC-9XH4H ++z>{S}nxqc<-SyV}NZ<+5pv1QRrm)H8T4tnRFkK`==o#3Iz(rR*tq^-2ixrEt7?Yih* ++z9Wn8u2RRWKxc`=Pc0}BZL(*JnU5ecsqG4#`Hv)?=eCv}%2ts0K;W;LvNWThw{@{kb ++zMGXgytXu5yYHU=COO@r?)(SoQ#j~N}OQBTkOvj_@KQ}%JXpo9^@ixicv0Ao+yzvfY ++z-Ok`ac0|>XF}{|ZznM7rY>xQQgaCIJdOKqAY@2q2eEXgJ>@nBg#7hWo{^-tj`p)zm ++z!z~U8m*jZ*qZiw+=I_k+@uuYjHc;*BuVOKQym)+;?{(u$569S_?!fk8d-+XVJ;84i ++ze)1$`!d8RN<;``*hJpg&^K+@-9HbsN(G6SwneZxsba4`LyB)g|E{e+Xy2C@uI*4)T ++z@>XN|Qg~h&H$9O@50QhpSLnW93JQO6SnW&Zx5hF4#r<0s6TX_Mx1I6es|;7?pg3^V ++zL>UkQWaT8s^28FzH?TR-I~swVaG2MO!SmH2o#Bh{y8J}1zt4_WUMH}Z3g%m+HEHq~ ++z8XFil*T0~#3ln9+FL ++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 ++zqFL7L?qMRLt5^2xbME}_B9gPj3x~IpgsY`l ++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 ++z3c4ahYT89*vnGvpfOax ++z-5s1J;j#|mD(=HO-oQBTZ$-3P5G}FX;&i#iO${@2oPryYG)b<+33OE$IzQzWXFat) ++zkLBsNN31@RX$z3qb2~SrslFQ)WZz^xjY;(A0s04uMqpdG5%nMdtcs;RhJQow{J@mO ++zr;^L}$k9*2ooe_1TN9p9IVUL&metTa!KS=u#$53CFM#an45}{Kyx@e$RWTW!X9L8} ++zYdG&^!=mfPs?g_Y4MyLx8uWF1I{Wc>iCg9;IAVjt_fYkuz&0T8A|xL5G?ov%D*VvE ++ziHI7a9+*{R$rkyj0%ZN{O|L ++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 ++z1idYTY8YypJbT#E-edKiJBiC&`4C} ++z1jPD5?piQh*VB65&PGuLRtj7 ++zRx9Z@x$Yre>Wt1lY2(&Du0N;!YS>@)?=OrpO6(fSyCz*AV@H=6P#ANZHFj{GzX(Hc ++zmx?)KgYLo9YEY(<=XLKIqv+Ai)5ffDMc%FFhX*3W^8+@?XKzfEQhIw6xX9Eix2JCC ++zMkR?X>l=yjf;qIj86bXwVhaSc`W*y7-W6i2UMCQv16pSR1}<1KhienP$19DO3_>|5 ++zfki)84deTtWN26&n6t#LkS`xJ8C?_tDAggjx(@*p0m`gHXpldMEzruEmu<{%*x%QcGpn5#U3%AXB3KGY`@B1%MctJ_LLjfx&-yJUFU<1LHbI`?V*-i;1N=i+9qsTon ++zRZ`=Q51piQ6|NWPH<#;>zW_jystNu=vTmus@0yFfC1KkqYKSQvO{;T@4pR;d-*Fdhc-WxAuBRr2gNfiF*Tl%FvR_BF0I ++zTJOWSWp;AKov>dIUB>MOzCP3XYi(4tH_3>3z-jSzTX~ZlXb7i@Px(jV<}KpprtQBj ++zzRYyZtRKErr_hhO2bb0WmBUvl*0Wiw%E^DXdYBvQ`(KmmHR>7l#MPc#aH~OfAx}sz ++z2>pqjbDJj08K;|ub1T7L3;Cno;zU%{w=s9B&7?lg7q;5 ++z?sH{4@HKoi_M|_l9OM&tgEdHJszHiBT~Y>6Lfeg?sOYghnP?m+FgoE|!fBw~!ox`g ++z{{WN(;uP@kvxjI?%_8QqYHs9O^ ++zTCnn5uS?rrr{zay4lWSwbE*n-4NE$a;Vnt+Z8hZao?EbpI0WBdf;;Vs$!0RP+%A_E ++z?vPxuCS~wR_c-Iw;_8S*EB#6DSFhw$JNlH=r&6QWR4WK7>{Gsu*O*Y?Z#t`({!nO_ ++zf!>R9#;iZsowAXZD#ZSsBw25R{WCt-{9^4ug@}x0Vlo ++zCAG-9%j0R&`YCVgkpd?R{fUnF9ja#|XX`06Kobzky(u13@4?j07R1dKWINm8w^}61(mt*{2`4D ++z+9egPo@GUVR#sa27X=B8zsE>Fe~uMJm9uj_MZ23jKYM_8%@je1#Uu~J&kWroQ(4k0 ++z!a?)|%WI1#CBa^}(2m6`^I-f4y7wQvZJ8`tsJ`+tRH64mwqGbHM1T&nZ$j_bzhzP- ++z+048-le$IJR+ZlggC)gRK6andcad)>WX34k{3n8hbz@35*MGrsMFB?T5p#JA1+hwe ++z*wUS)qJR2$(lpo$p!*>apI>116sW)Y6T4z;$e{Lu94G3Lxnbj3n&@NGx)rXyQ}3)e ++zI~sq-({DkAXLEe2&UX`Q~;@vhiL`Y ++zmh_vTZ$EiTPqouQq4|G(oY9zb4zuPx(>Nrr`G#bs#GCBq1jJ!ES;q-a&hwOdL!Du3 ++zL2qt0i0vR%a%iCfX>6H{2EbR~xHrQLL0#Ti8g%0(B6BP$Z5@6f0o5#24p3ut<2x2! ++z+5xv$00|#m-`eIEoc?i=<3O0yBH(4*;pU}*)Q*v#EP|z{IMt%S!lsS#%K|~9aR`CT ++z28rR+46H>b`!#4&fVKSJhHwEz1*rp>374S)?0H36X^Nn&`v3bgA0Afr(C;O#{U ++zRdy~N|L|j$4W=lpEVT4)clXe=xm34SlD>#Jrls~htxn946J*7F?{m=C3JD|BxK5So ++z@zD~?Nt47i3KGwn%@yimi>8!0+2q9u4_!JQQk=myMBd>oU(^k+-jCb&_2o#~FG*@c ++z$Y|rYkWrgI)&U`NTC#5!B)T48%4z!Kq|W&JhLQ4DMc8_vAV~Lv+&nKZ8xTC{o@`<5 ++zD(c$v^4S}F7M-OPb^5=U6A`YMQg#wqWQw(!tR_kwz9x?MU2pB*uqt41DabkLf`#(= ++zv#tER^*y`ho@=T`@a~JK4&V6k!>O-Q@>0|)wom7Y9s}u2a*pIR8cv*s?rsYWIxAWy ++zdj?=vFy{v~fm;tA?Ox3N0k!~gy-CeKDMQi~X)PC|eu8^8z6-C6lQdYDprH!zWvf2W ++zD3F^;K-J$Zh>Z&*hkYkOY8m*vK!gUz@|BRV2h3&)9&dnua0?~2g1!et1@OXmx|owd ++z;Y*U%AbS0)!D7qG1o>jX=&BD;#Lt2au{{?1L`xG}o*a5be|mkY+b34XmE6gv)^a3@ ++z$X!e!1*85|HkGGQBrymYMWR@ce~xNNGOR%~CA-haei24xP^E*jz!Bamv_Y1zX`yhi ++z6+y=@DyF|@QvQL8L+3`=d4-({FEsfUZ^}Op`-PTbx%AP9u-qyI)1#U(8I#0(X~;WC ++z;GR38hK8m5XWsjNEM^gA4K6wU!z`g=sd859B---Nk#Hx0>7~m0lqhR8W@TyrWof5@ ++zNzOiLePP*Pj@r#Zv%de1B|iIkV~)y5_51B*dBy5&sOFs|rXDJbv*brmKg6xm6}cW0 ++zBfmy?<8U73p!z&ag)3ewev~))UJLSNqr6~_CP;c$uhu~?W?DIk93?@K02xQS17zS( ++zDEUn^%#2Phe0l4vi1JUFurHsekAHsd$Jg@w*{a10y{;J>AriOYXCb5&FNk#Bd4uE^ ++zPOCQbchLQj{d{gQz?rDNZqPC6|89Q{^ozKD&>T@hY>*Dw`;#mD9-1N$;vMWFH;t@e ++zbR_>=Uk0HDT(BeH(KXObB;?)vy9K6{$PmA6`KMNF*@v7IfoTIrxS}dLs6*5@*gSIp%9tj@FZ)KmMMSE8_5$X4; ++zbaxkhIr_itpuoGmFeaHYf2@9|ZFP_`Uo$$ObL9ECN@;n1&vE^P?v~lt+>=PUg0e-6>#AQ^vQE2IOU8zrKpZ ++zC&vKrp>KcOL$q@t;ri_t4Y4hha}Bh+CTHfJjQ0ZM*kgZ{4g_a%XPqzm{`({( ++zSRR#HHIvU+&H)0$^Q%KUTLIV&a<9T)rm1WZh)`g2k$&1&!UWP}s?IY;Brz-;WNssy ++zY{zLQJqjnJ>4vz4@!Z-*uD0`q`?vg<{R<|lO;#ZS+KckfbtVL@L`*0PVy_G}lYhqt ++zBYo0|C;phu#8^}8{Rqvn?FUPzCLdvj-`QSKdFt?DV_4v)>$(b0Z?xs0u} ++zV)#ta;lwCi22}dqZLR%F@cn0sV}>7|(C3R~j ++zL;7fg(88w+4a=n63&AW#dUESD-oXKWiyIn%-Wtq)>%q0&3dU2o9*8Y+(A|-mb!fJ9 ++zA-j*zG|&T2A~`Dh$(%9dar2f+7Z#v0uo(IY=m4PagzZBwW}krjI#d|&QcbVDzHsTd ++z;9*$|YJnLecwd6~s>vx_ubIRzTAdb$E6<}dT=m0tTTmqK2;Q2FA7EjV`vA;c58iuJ ++z8>MTm7<)aLRLqm__${#RGGv;>=twEB@&Y1#2ZG8xwqP~Ds>EcH_+V*`5`g;SW-oH} ++zOwSDK+a8F#V+{J_`%=Tg(?^^r_}bMQYssy%&i$wM=;k^0E9A_WW?^ ++zrpz(P&EZTn!jpQB&@?8NB0mVCYvyjtCgZ%0i=}RMJ4}Df+#7xPfs#bU_SFbnyWUWK ++zVFVO@D}qntfy@>P&hD?|t)Io?zYsdcjgnsDy?vnPn=3lo(EP(6RMH?1Xd>QiHik$m ++z()SBG5gF9~3jVwk_$XnrxG&@`xkDPnL0^u7A_J8FFagxW&jaS!Tbk-10bM$AB+B|- ++z>@CO&%2p6$c}VlO2E&2J;^0*RJf(#{d!6A~LO>co-MF6kdGAD#bNOe#WwWhxm1^(4 ++z4G~QXYYmX^cLMu8xAt=)izrNb95zXk+Qt5QS?EbhX|Yriz7)@d5#zvpU@98N<4HZt ++zgX3h6>IeTCudYlOm9{EC#2#!x_7SPI`OPu&sNX|yvV{`^nFlX;F(;rqSUJU+u7)VpFZXJ ++zf9*hNh}}3L{BMBCVvVW4^f$VSxroO=x+@KHJ9mn{6_BeP6 ++z(8`50@(&^Q*dukQ;Bdi%6NrR{4d7R7^FI0p^8T(Le?S%lLuXpCI?P$kDuNMQT94qV ++z2W&l~MICpC`BQ!uJyj7Q<}2T*@wilesyv=sJkFjZrXgZ1QrJ9rRXv4doCN%n;IA(R ++zou4KSmib$-=azv=4HS+t2GWWogTMw%imKoeBBxTawrj#?AxgQT!v)uGw?ce^EC{re5JFm~V8?HdVXCb`3W@IsNi9t&y?y#f9m+yH$$orE7j59+X<& ++z(Yj;iL8pB}q<8nYw56Z5Kz?7`miQ$in7OiOELLR+Y4O~b*z)hucCYai@14xQyk|+#`5iJ ++z9$*$eiiK7lG+d4(E8-3Rp09M&CuO_vDS(51A$)d#>*wGbcfEzhzNAAZVcYM5kq@4w ++zAobM~?OhlMZX#MHvDY3lCrNt9_J1}&Edx@^rHoe?gpjs0IJpp+g+sLL5P5w9lSKGN ++zxe!sn6L`A7-~-MZ!c7AZL83_GN4ZlmeF^lBqyt5UOy)N+E@K~;9vtpF@tC~sc}hHe ++z^+C$N-i%`&{U=#%X|`%*%?^2yT58#8s>r$)W>!p021Ov+qS{*id4Jpfs?xRlD%-O0 ++z$`HX(1F`?K_ay$#gL6m@GQ@`G!$1tc1PB|PEHrn(TOcDsWLO9B6$Cf>5YnsImOjzrI)ZLcRt9x6ARTjS1Kk*A*5Ko`~!PL6EbV}Lo4T^_@ ++zuO@uX?Kz`UnQSHYAQ+l=)G&!+3ItMs)c!2U(zpNGBteV@)tl~r{hTZ@9eeXfbL{b- ++z?qB!Y-!cxp5kA=#+&&*K39r(8AdF0=)0y(8HLC-fUom>NC8y${?m}ZT1XbbiC&By$ ++zR^JEEh5uxo?<1KDu<)oS?@B ++z`HA(t*?J;iZ%KRzb?G8;6)61zbkCYo;OK(c3}!!KrUuyUXC>FW&~r ++zP>dZ;!Y$=oM>#lp8F1IiZi!Rv*hd-iL&i5~O7031vi>wXOniqi9ER{I#BtJSnfOC& ++z^6F@hQG>GAl)LBEvv>;|+b6Yr{v4Mi&vKd5s`ra_I`U+mSL(^UT*jSfdC6G>OTEra ++zhAKZtlmh`ovfLWlXRy_hq~wKm^prc?YDp&K6+^%?JG(#%aX3X0h ++z7dTgG>EHPr^mD!K`#_lRhG{qOdN&PIq_3MpQz|D6)}RM%&#pKn{Vp9*;JnEvmS`j^ ++zT$B^fGQ7?3KQpd}CqCKSfnF ++z=xswohGCAU@ptdm-xf$r%(5r$R;~Pts}f&FfELZ1wyDVH{$j3qNYkDK_R2gf7s7T) ++zd>#uuTJrm8PWjxC5eM4~D_2eJ&GShx9}bw?X0d(s8TY2owCfa*d;rufEnWDrgL}&g ++z;Ls_|iTlirG{4FkbEx%61`rLAUk(dyimwv4bupE-nR+AIBA-&2sSHUWwVRAg9e`m7 ++zBucPlNC$tc!v_#;qaU7zK}X~ypf4PYNnP0jbk{hgvwL29nu8vJbM-BRZ?fR*h^6FGn)A+d2q1B1S ++zUUH`xs)IM$>J(Y-ayL|d-8N3=w;iU(KG`s95VC~KjDtAp!OM#}(`(-qIOFq=soJ=n ++zdcOUXWZNP$X6qsLg!d(fCdRB4-d}&7UNh~2mFt=T^)*-#q!8#_>eB7SP+kk>zu<@G ++zoV;gdS0w`u6HANP<)FcbbLR(cMsgYl2$r<-uYCjVM_dN+YNPWJEQr9LUV-y#G00v% ++zw2%fdP&{DVllF{#Dnw%||{B}!H ++zK{y#+f_x+Pi>^+%ipjYw-=9=-lM<3OeSDjCNo%B-oJnUfTo*st#jUQqBgI6 ++zxZwEwqE3}Mq~O3-Z)8neRBOwu9_q0nniemzbrq2<3ZV{_vkXyO^C9*inIpwsc$ ++z97oDWIkBZv`?~)=XTtWWk;mO+qt*?GU&1tCJNKGNmuo|JqzO8$^GzVoXmem{gJ>*L ++z2%}`%U{A$DnlaNj_QoNMD{zqb7uxe2-^l!aFvd2)83xne2}l~-2Il}U-LRm^BqL@E ++z4Ib2AwmVb<*bEuyS`h4Q5inLj{6GhsbnMNi1j*go;tLQV1@NpyXMA6o@qoki38Ov{ ++zqf;fm7ksLH+TPCU9lyqHPqj6Ce&r?C^t4lRc<|_~qNh{fsMQ*WiTo(ibb&Dc#Y+TT ++z4dG3dvAbzLH|^;#IfAnFsTHv+-WT2n8QSqb!XMggIe`j?uF$W8On93R&AXi*sfCX* ++z#^*8*w4kD+Sn)9ZyNY4Nt89G#Q->4um#1bg+Ap;9Zmf=R!7dPc4f=6E!Rqmmd}8iL ++zG}(Z*cGs6w9mNr%?p9Fq)6APyQq7o8 ++z2l99;SnJmqX@Q?2$@Q*^iuiI3Pd9qX1}#k=2 ++zr48%^za~V{kRNhyD1A3%b7ZMPK5oDl3;V8$!b3zVL{*43!3Q=GyAR+jU|@(%8V8B1 ++zXQs>KdH`4xF>zCgbOQzA_?|KULQi`H7FU6Y0@VbMy1dS3Ts{7DK4GKWD=!Dj>vau ++zpFOJsDmM4($d^;ehs#S>Sr=D&NraZuedRR|&Jxf+OB1Dv$Z~~(fFVBRX5~7y@*OL_ ++zILP1pYL4897w~c2V}<@>ddLH(X!tg+0sr8>FTJt7unUUM$G%pa$4=_wQ&P6Yv>rOQ ++zCXpcsbE`>Oben&nA#m*jg6eigNt?CSKbRY#$kQ`LM3*XcaC-qvTzMS;hC){WPFvxdPq9C|8|eRhviB{Z*? ++zgXEjFEEJB=h@yW_g>?cO+!kO``euWCN(-OZ8eB>z2cgB4jxdUQOP4> ++zcl~BOKq_yV!Nw}gIuQ!hpWdcGRujMA^|P^D`_p^bxfCMlz1bN_lkNNV%Fl1w=KOJ9 ++zqRgYoOPmxW>WCzZB4&pRYY>SGL@CN7eV`)}w!{l^eya*Ot_61FloROmzsRu$n ++z9>NfO5~->qu8J%uI9fdJxXEwR2s-`i&3)n^ai*K(;U|x~w@#V0&B*_1^=RMvzWK?> ++zi93wn`a|)EBLah4RtK#&q}#t_tj7+X>o!uk#S1Ynnb0Ws=NPBM`pMy}=M*eMhCS;~ ++z#jy7j$fdl$_mx>O@mE|mRJ@S&V340Xu;s`|5(p<+-nX<^X5XxdU9J#deFn7z4AjB> ++z)!i6YbDSUVu*aJFS6qflM-zheA~9Ouixy|&i&8D)JoVl?LA6MGq|6j83ab0SEy~E+ ++zL)tM_LxM={t8jl_zZLBf{HoURV+L5uk4qr_?)z#$$d?Qm2o`Xsc9thIut~q{Eq8l?YVSk21$^IIOE$%}46ZF@#V(k8x ++z`mezf!_hlWm|U?cpQ_hhp1ZyqaPyg(i6gm}*|m{F6{kA$kDoTgma}NO!Ui?lEB(G6 ++zIj+&m;el}LKmChP_nFBmGTDv_OJn{~{?)9VqPvnq(<D^ ++zkLTY1Hvm(6sraXTL%leUB86^`(vK{(q>6Q{&ZDN ++zU)k-*?q@S}SnOTwgyFHOXRoJc`WrfyNfnO_wwGB|D18wzzWx*+JYtT#)}adAkR5qz ++z%qhOe?CW1R^jfTCrG0jP_GjS0or1?yIaklf3lMFVQXvGtY|CM;9i|!$wTYKX^1!wP ++zT9Aa%*N`;=dv}>6>FL*T{eaj!oPr#|Y6-F-xY0-Qw>P;vznDRSFKAzOa~=$#<&=q{FwAVj}zOo5tMT^e?a0_Wh@8#=wz^WLW#XEEmhWmpB+4rKvXjz?1yuFD`+ ++zOD;hK$I4-{V1S=<0hm4Tx6be=IG^oaV1)-Dp!5Gw5gE$r3BC@k7Ut@y*x=YSyp%%h ++z9V%Lak7)!bSbYEU_DI}Td6SNlh!?Vs@WYdW ++z;*5lA_Qz8x|KspAOB26&2QRAp;BMBmNeOsM;qjAx-2cjib=o6wPT%TzgBTmuLFS@H ++zt^MQ4Av`6$8`Q@|H%&ym*{mH%`ZUwYIWDUcA!1YSi_(-kT9mbn_LUgcLjkXP*FE&& ++zat;`+xNhtII_BVYacY21k>*5l7yyIfMi3JGHuQs5DDwq~?&5^0m)RBT$mFi#tcn7F ++zF|yz(h~85Ewu>s{g&7m4YB90_;SZ ++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 ++zjV?-8kw;CnwTXE9Kiz3-qIZaIv6-= ++znLvHM6f&0AS&=+-ZYH`AW}25Ur$?4<&cJ+*NJk5y=X}Sk9y^~8OIw0kY0{xYcfijl ++z~M9F|8G{T#c+?Z?M{}I!F+S; ++zPMyN?aP`2MRqN-D$$ber?CqffIazaW5+AgcCVwUWdH~WV?YL+`gAWb;5LG?qN5;d{ ++zC%)grqI^=f;Z*(-9YMGA7}?nHvRq}s{ILq&0F ++z>be{q!)IDY*4K3Qh)cXJr)M;DDzZk#eJ`x%5GiM(Y3nZs4D5e?v&xmD^Y@)cj^*&0 ++zA$L{>SeU*%$hTyQ^>>MQN`bF$3ijEg9=cvkZ^#!vV*H8;Z?VrqM?;%yNTf%_GN9hX(V|HJ49hf7D~L_S`{ ++zsgLWhu^Y5(QUe4Al3B83a8Pubg1*I10P)u38RpO%H-(ZWpiJ($<)n%(2gE24w`EUi ++zX~+j1BuE-SN(bWPRiDKoz6io$SQu`gPh}tLd0!us9Q^zi^Y>e)wT+)2m+pzy#)?dQ ++zQO6eC{)G|+UkA8vK42LT+>j63hqw`c3cr73&oPXAKI ++zC*GJPjZjZ>ohvp8kX*iIRuFbh~2GTcgL7R2Jk&q7|owFDxR ++zfmubz;n4utP5U2^_zvQf^?eNfw<5nCM_{G^K_J|TaDYkqNUD(P3;Rg#@|yn?9Q)

q*Xo@;nC8;1;02F)PrZj^TvIuXbcw`U1}CS@ozkO_WDu8;fZ!0&sHQH` ++zyn1qJmEEtL<*_D|*;fNczBW%|UoU!K(^EBoAKJlu*U!Y7_-V{jze=BlyqySpkbI8MR8Ek9UOAb_y$6p~c-#bR6;)aWkH&p*a)8tLfs* ++zCaz;T^@n>J`#iIGkbbz4aREyoZ_Al*h85>GjpsHEcVDuoD|<7ssf_#VV+YrDfw&%~ ++z&#!~I~VQi+JngD)B{C&UH(QJ!k(eiE%qi=a+3A?}SJ5)u`OgD<9>f${t)C$iL-r ++zuLEV@PRAFBRdz|OUf>5f*z{e*+|$IgG;}tPrf`k0T8!)Xj}VFi+EglCNttuVc$WI` ++zYj$7XI#b^h!9tyTNRg75JypPs?ne(x3J;iVr=TYP@;r9gli+_Wk`DoNx@y;rH%W*znF%vfBN=q%|5JEs$~DNiIK*=FPSRYzYjwXGdhDg ++z6LKC!TKa1hC6V&DbsyW(pAE1y*cl@TuZO(yA;hI2M=52GW?Zno_?!pt@~4SyXUq$D*3r&Bv0Cjn+rlM-c1(y05gohXh{@{HHsa ++z6|l%g2$A> ++z!`|;>44)lfrr~8Tg?yuTuss-n2eL2Fp2(-s*1ge6fEeKYpmaUdtk!Sg6{u&VdKR7MsS1nLO%6<5O?&&rkVE ++zyd6SXG+$oOE7101p(;E!MWR{LS*{?aQCdKeWL)0;wFxho(VE*Iu&a)r2 ++zFrxWbAh#>pOP8qku@N%l%g_ZWv>EY8LuLIW&$H_5&>8Vfo6u5&(^HN)ZAa42_Z<53 ++zC9xyt&%d4R7(24<@^Pwy@9*>;*Tdm|A)rEUkR4yiJGH;vwMx8_UcF@Ec$ ++zXQKX{t9Fm7QiV`NHanlKn3_O)y64`>yH6Ca9zP$h%&C~RmrsilBRsbH8r?w>_zH-B3Ew4A}g+vv0*#$sGV!6Oh638YqHId2IaW#obc+Y;gZBHK ++z!Z&bKgX1bag}Z+5m?)BIkxLv>Ylzc%JNBbLVq9R ++z9a2WZjqE@L#+^_Q-$B`gKM1SO-P_&#Z!al} ++zl&DIkItja9E!ztv8;H(EM?v@C;kU22yQPEop#Uq;O7BZvKrK##&L|Dle7TRT$>IvL ++zu{<8EzjL2OBOFU}2>)pOUvV^+BO>;!d8eL6YcJPIqff{+?82QnXfgMuGu>!>4G-;A ++zeXKQ4?Q$1CO6Pg!thzf4tpWes-<1JTH_E$js`HB3a*9Q>A70b(Tl!XVhcmXx$GuxSqr3Nhl6r};S^mZOCm$#uQJwbWH02eP ++zVT|`^<3*$GW>wCr9?m+j#@ZwOi@(sQN3F*^7I3(;;B2A(`!O!4=HAxiPC$thqPz3C ++z`=xIuRAC7sy?)+jh7t>7{_yMmTSRLfgwK?hdk8D$PNMCH5D(^|Q&1BB|Kh{Bi_Mv6 ++z+bdPXw+gioBDp_{!l5FPu~l$0!pd%e=QHZV$<`6if#;@(a+)0Txg4rfUuqZhHfh-2 ++zybf3|aK;AeIvp2*d ++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 ++zF_D>XVVkKan=#kq(MnIyHHuY&WtRVw?}F ++z=nN!uc|L?OjIh+<{)WOAV+JXVIY)E?7M4)x3vFD0_2KgUW&rJMHRF@ljzRFE=>3fP ++z`|f#kddqqYB*1Za4>h$5cE=1@hwKrL0<5mbC{s0qf{N#mXNtdKOOCcZTg^Q(3MFM8 ++z#d6_#JKaXp5ta;kI!36Ls%*O2VD_xZM6|*Do-f+hm6pWW>{#}ksK(j(olj&1NqWWm8go3+R-YyDkA#o9VY<%R-kw#qbXoc-!jb+v2Tvp=MW>axxFqvb3m6Z^K% ++zUpI_%zgO)m@ASMQRwlgEM&ytNTK70ha>TVP){kH7sueh`Og3b ++z;nnDIqzf-W2G3{a+m6}) ++z{XHfnOXsX^F&DTb)EBtBUyg?Al2NH*Gjx~vG@gvEt5vDp9@O;Ec%d@>oGzIx$I5tXmmEo9`)Cgiwqqi;J>Q&Uk7b*#7H770aK;EbWP7^}jUw_I-NK(-9Vd<85%{6~xgZC0v ++zXg#|LR%tyq1gH+ev%yk+N{Jm*TKa6_i!pr&JP;buG=OxA%ZQcT2z_$S3t$44JVHu1 ++zn8*i}7HV4Z7Mn@|m=Cm{$AirGh$Zk|MsQHEstkC~5@0i`_FIKI@ZLP9?tz~IE9ryP ++z>)f)$Z{LhGF-CgvnNS}fn+8iU+6`K!pjsy$^Ca|`w)xE` ++zL(kvojcy%V@pEYWs-IrltEy@Q$-^t(MyNAp`@M8f){q#YczWB5^R{(r2G_)EZkYx@ ++zOO~LeMmL8ny(yUDxcY}&dfeN+=x?2gCos>$F17x+e#&+J_1Zo6wBN2P*sYWYRjtA) ++z>2bYwqN`T?DDRMEFMv2qKmb(ih<2~~3H1*hBwHmmrJe1J9WI1=B#&=U@)m^g1q>+o ++z08dhM1UN*xc>@UJj#SbpyfV~TfEW=Ar9cBEF0`H2jCE5yNRB{4;=rr;4|vELaOBf> ++zd14|F6y_MFd@)l6?j@sDMX^TGY?8szX^Yw#-Thu%(>j|{;^Ao}H5@PAj2b88R^*!r ++zPG1{St}KJ9n1|r{uhI||8rnBKoDu)3c;EWH^EP-^wvG(%!js{a{jKX+LC1RWZsJj; ++zyihN*ShTVUhhDrZb0IPnDtk_ ++zaTsA=+D=o)%ItECgyN@{mSFJ~(%*}u`WX(E;d*_r3a^1`KWGg{5gTWF?=YmhICGaq`omRd-snN{NMT0Q)+3!L*bh%!XOuq^MekvSD@XfZMYB ++z=J(FVO3IkIZb`Sv+nd6{4lN95n}TLD#LF&~;3Lzk|+?Ud2?NK0#;K%NhV ++zMjrddp3s_lae91$Vx#d>?9+|t*@yTC>epk`8P%-ogMQaMs&Am2nF(}dj84~cF ++z?vdX;;Wj5M`%`*0M1n=pnJOu`Ur*{w}8_N=al{!BRN5( ++zL$AnT#D*!{jfJyYj%<=ipl;l~@(Y^uB(qskK17m5oN;e;m&q330D+hiAN37AR6@)^ ++z)icl~_tB~t-^6_$d*@-e6IAR=8M?+ZqlQ8bQ~~Z1mS{|FOtgLGP}V-_j^%H~Uv_O+ ++zhYLx?_1rq(wsV;=>Ch5`yhq0l;Z*%kIH38LQKS%O+=HvO5(AT3mwcJGz)Km@!p?p> ++zb-8*Dv90sevf`|-CcB$-KBt6lu+Oxz)53pZgj?7CM#KO7Ax7up|1=$MLdH03;L11v9jr!UgH`YihiCAQc0`NK1FonLli ++zIL#_l2aW-Nir(h&(EKS#bgbj)kdA!(flfw^3tYN9ARZDUAcW0OBPAzB5jfHCRJsH{kMIx{V)?m!918~2KQVmv_wKr=J ++z2~cW{{p9Id=CEfR#cPTLWpPMA%y1AH70lu5F>iidwRC&D5aaXVOmyCC`iwe`se)fA ++zHAoZ{HC;6?q!xNyRbB&YIP$daH92gm7nP+8unK ++z-p9#I5AhWzHfV&?-Bf>A5B__6_$TcEPVVO8o)Kk+(Ut}g+Ud*JTJ%Qg;S_`QDc1C* ++z9c$#b?Uk$dd;~HrceXD2SJP;M%@VS;`;2m5~+9rw*MFmp|1w*8Yur?)cpHQ$bC%h ++zb@0|@8bpk@$G}Y40(L~9lxP|U^&L}LAm-*#l7Wo^M}B++oNkPxR2bvi&QRAvW@0aA ++zN#oE5wmf+p`j-%+A=6~bXX5#$&~#ECW4%hLhI+=(Z7ExeQA8$sA9T#&?_+>8YCJQf ++zq*g~zmyJa7 dXx^<4EjwimK(jFBz=4QMj9mIXzB^?h3tiFH#Y*6*J=~w&2jfebp ++zzf+Dnza!mf&FyQqH^=`vS}InC3U@wND_r{U;nKz(+sFQ)he&BPLbzk!Zkm)h_7~&R ++zxSk%CFP>f^4*I$%he`h3&~$o-gL2hT8(cE?Is%Se=f&op& ++zQLll5fPJbNDv15QsL84@SQ|%PB(fT4HKOtFH12f_m{UFHtwT!|Kuj(L-k@Y5KNq;0 ++zNaWE7@D+}{U{4`L6DX#C@Ghj$xf*6CR9e{55ClWJTk7xpTZe&ljFQy^rUT}YfFH;o ++zqxSehSm>lXAi)?=`D@n=TLmaatORD}^wLS0&LH#DX9X0{X+(>??L|Io`}V&TbQ9!i ++zGfjUAavvmQ9uuL#3809!(}jk!GdRaJ_Wp(2@IDiQ->H6F7suU2h8zpOs3MNot5Lc6 ++zmbyTE5n}@8noHm=T#PsxazB0pey3-a*t7?K@8IpNvcdaC&<#7JbPhgB#a&9fmV>I% ++za)`pM$MhxKcOKFHWK`KBzjuL{#95jq-b)$s+AcQcqUw9}Xmhs2-GdV?6gVrykG=QL ++zK?H>E>DH%wKmBR?&;=$gGH54oRtyTf#5NDE3=G%R`PxE@=& ++zbQi}nbggGTrk06J{@Fv6rks{iKX#*sEoGu ++z*wmtc0i@1yxcF#*UJkgc>=H@aLArniGQajO9|$B2n~9*?V@-h4A(2$sKAV#A=nO(9 ++zMx<&&p2&mFk)D=lNb4RTb0c1p21ir@jRP+@^Z^YND}%pNT@JD!*Zo3D@53F>*>p`= ++zF7xg|IH^i-gfOz44-lU%&d(fi$_Wioz_Uj$2{DS)WS+{{qD$Dn&)N%fmouD5z@Jd< ++zN5L=xguNVgH!%eq`-+UbVC%_Ut$48wKQAfJt`QuQ4*TJD?>j*I8;s*epW4d~D3Lav ++z_a?j9Iw|{!CZ`KL?_Fh9xI;L<`BixaN18^{s6BU`_w&~T^=56?_#E3=N(0w3R9;#! ++z&&bIAyW4wO{zT-LTlS#|<8KaYb_ ++zEdiwW7MAHmGy@gF4-(!Zd-XI9_*Ws-_aAcQVjND-H8;oH5#-Vvb}Z`?TeYNlVD}*U ++zK;az>)O>9<-5p6SWLV<5l@80%cAg2T{gWzmjbniK{EjO>xFfx99mN`58?$=M*Q9<9 ++zl}O ++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 ++z!fn(Quab$Ptf36f6U3#0)Ki13QGb5hR ++z+xBE|rNc(3t7B0qGE#XVLfuX4I-z($zxA7SsINabcZ7flyD)iW8P*4dezEHvN1xxn ++zGa8pa1y(oAs}+t0+r3^;e9jgJBPqrMAThQ2^NMU_T^4V_YVinQIv5mh+5MPGM$(W4 ++zk_gq@NGz{+;+9zqzBaN4Cfgho9E=79{vXVa)Qt(4C8CNBlOQH+624@GbPSlc(>I+l ++znE&~@S{1VU(02GxA;fu4U3}`T)VS0n(dnVJeUT&7182G>f_heo8;A6wb}M^6D(9g` ++zUuOHrtl>5Mp*p{~{2}>ueA9C~{h@DvBf9Q=9!o0Y#2ThLu6@c;)M*?v@ynD8#(SP| ++z3|L!nwPmXX&U)b9UT@tOGwnFi*l_eHqE_xNTKo56<<|b|726Rl2D+t>Xj2%Ct6XKw ++zH~3=^jyA7l7k^Wj>Q9n6fYiEN+qI0tT>DbzgG;bp|Nqu--y^A3e~mvs+w{u#tENUa ++zvb&5@ZER{sACW7jQ*b7DmOgqv5nml~PG&h>bH6>i=#gKJ~58rP1lsnrOo ++ze#l*>-+%bT){XQ(3smU|o~ybbz4hV~PW;`AYmLkH%e`DzUH`{IXGi;;e12vx!F$+r ++z(1xvV#>#GoP7CJ7cFf>|oiy+QVLq#Txbh6T=@)3^fD4bPX3b#Uop8wKRe9(IjG1Nt ++zSX=?quSJe}LX2 ++zQGr^+I0y8FKn6W?i#xb=^k|55|F*a93>ehHFSKhm-{n^CD|@KbxkKn}v-{`Wl!Fti ++zl`7lYcMk5);R|X=8h+P#@GrWvD{fpr-3whPur>Ag`tLDxrWxssh`)WgCMW;LV_aN$ ++zYJ^M*W8SE%t8$m+68>mseag-kt1qo*`^yWBG`TevFzT#Q+loH8TwBB7JK+{|Q$^9p ++z`62>2WL+O$?awzYl{ba7x4ht(s)o&UQh2$TFTVeJ43)0>_2X3WW;*50F0Mmk>-yg_ ++z)&h|>kqpkd6GK6buj)-Vg+#n~f$)}j?Lm;PerYrJimLnH`v{Hg2aFN2hN@eFi%Khu_5r25BXW(da@a6q2yomub?)fp3H ++z8~E!Kjs}ikyeO8`AzS^zd^>cEEd^=_YiC0?Bn$$8Zl9k^nFYwjch3q)q~voDEf5)? ++zeuvxyhy|r*y@gg7@EeDKqy&rW05t24`3IPIz1aMXJ&(YBifP+e%~ZAkM)Uls<4;M? ++zux{8Y%CC<3^Yd6MfQRZ?AsjTEeQ%BNaCrVGy57}MqsXa<2P2S^^D6$jc#R%8`E%EU ++z>oB#;W^Gr35P6g3vMQAHRU>g|#npEAD20L&rx!QJ4?yvWE)@q ++z)U>kviOk%Y6Tgac&z#&WzIi=k|I3lxxG52_IxjtQlIY=Cg`CO!%_+0(&3H7IjIOuk ++z=?d`Y1o;S#i%1P3{h8%BU*-M_n};@S9`d_1=pa^W)J2Fz#pjc%h1k*}Z1XR#EX3|~ ++zK*QK59&MNiQdLGITM&hVp);!goWvb@f8D%&xKxmMa8v{KtIfNkKGRmXP5fc}Jqzaa ++z4g)-T_%%MVuQHV$e9{`#xEEF`LjJ-0-I!V- ++zf?$PVn&p8RAFZTPe)>9a*+G4SVGsHyY-tv`FE}dbgd74bipX;ZC*F%0lIA*0-TO~2 ++z#TL43fqDNjv`4^jhg=Tj{=s&zUH<1ikWR#g=VF+2k?*R4(+sAT-mH+@b|7}Z+MR?~ ++zb3Ig^58)QJ!8ECf*I$M@^A8yc#gFDl77^IR%S05Tj;^`=^JZ`h+2Co-#xB$^FJwoZ ++z@Uf4BqXYpy`fFr+viwN6R6x6gV(1!}Y+(tpuWWWTcT ++zosLNEsoTu3w&M|XN_%aKq+eC74JuJS`c2}{@Xh&9tHwDx?K*YUDaTsPn56A(E&I0G ++zatqRTpQjCf%ZMtJ8a&SahWT|cP%RD^+-Duc#l=o1toaliIP-kW_`z0e2f7R{DVRqj ++zprCnAExHeWRqPs1oiy48Ho4)hr3?D-n>gjSE3msYB1Y1SF{oOzOHt9Y1uL{4i_hw#}W ++z+YKz%^+|O)Jhxl_wY_4Ga=wRS!^f8&Y4vyS_X@mmeLC9E?sk-j^hJt5a+66F ++z&l6Wo*cqrug8@_K^J|nB@Hu176Mb&sCM(;%WEa@{AV}YkW0UrueYduH=$eJ`wXk9@ ++zQ!Bt;_7F-e*gNAmrqP6|1>$1Uos;mOizilY@$&}f(LMz ++z=NAl$i=6yI0H*%Hg#(5hs(HAdaRBjy=i;0Ka06o^5@rd2-3=o2my}u8b>OmA1lC~D ++zv8k8&yS%N0#2=tvfyUKFm&`kFv)J&4$pfTF4 ++zW6R1bZls0o%s>f-Cvvs~1SYkPUaqHt>^3bTJ^JLL^dFZb8x7*p-EWwvsVtgU;I$e7PI8Jof{Dfn#WrP*GRp;yXE%>BEo ++z>|G1zC*P(duJ;$77jwtcbmhz|$+(w9@*UcjC*RPJ%=I{a99!h=o!h4_J}$kU$GtL9 ++z$*X=bAWiqU=&J1}&=D?!im)qJ?X0ZiFB7MQelwj*@U9zvu@Er+VxdU=T986(TjfnY ++zpv^rn$|RO5%z){y!q8d=g0wt;O(}Gc02$H&7a1l!Kt)1f0X>fW6BCQ7dy$0uG;m3W ++z%3-aUu9#h^cp*OwT82gCL5CD}_e`>-JJ-v|*^IoBy1!U^tg$75+A>);h ++zY%tO2W67yQ8*>irJ=BrdRm6XYeW6$(GlEF+d$Ed0oY(9{L2gY} ++z^es`;?=&5WAnyCuqmpzDPYRBm93bi(FS_-8GECxIdKJfnM~JA;_igPH_x$(jk(I`_ ++z#0y{bvsNAV$Qo+ms%+)Wj}{Xsox1vyEF(@|W!i{wW3m773lEf%Qx8uZ=TbjrYP>5_ ++z`SoGWeR9HT3_n~X*iOaEkxNg9jOiR#RXq7AbNJ2+KiAqonFZ4sY4Qjv!=Svnb54sv ++z>BeDumF1(k4&+Es;^eu$c?hx*BWAv3@7Qc ++zi@_L;9d4{%%%j6F4KH5lKmJ_S_W|&l{ex8iopRAl(+l*NJy&mG&I>5X=bVOzaEo&s ++za@l(DiZQZRi$<3mwh^4BAD*9 ++z)=9Y7gaiy9$S)96&(Fhy@FD&2qce`Egk8lG8>q>!h=4U=*d&XA@&Fy1dHfN~EGfi) ++zugY?==ecx3H$m$-h`!FMXf7pM=*YD!0At2zo5UyoZVXf?2H3rkOXoc0?1^C|TXZ6A_T ++zKIn6yY@IyWEbp+#^P%PY&z?Qayr9(WcP{itByS1Ruq@V1aN7Y-2-~z8Fg9Iv&|p5v0a*c4d|)hy&RAQ{=lB3rJqMk5F=ILtA2EVX ++z+t=QT(ZcbbPOvXtzwYlnYafk%TO;!%PCRWWcfvCAjV2b8qPC+Bj8EUy-T7fqZG@@~K!_~L2QbNaweV`g4?F%%bz ++zSf8FpI2xzOU)CccT#wd4 ++zm6CR85l_9x&r74cJ!`JkS##F@scm)rZ~}MMb><_Db5!F-fB@I&*m1v7Z8Mv_J<%&8 ++zFZdfdAcaps#efN0*sue@|KMK&It>gb(3a^14kf6kI>)JpHB)ALk4c83Cvum9aEn!4 ++zor^gE$++);Jc9EEupaZVg88YPzG1>DG$6<(7xoIZ3W0}Vr-9KJ9a`njju++DpLP6L ++zf@3|!FU-k0{hmJ@)Z;q%!OCHO!LgnpYN1NXWX8efGh6CUZ+$RzYjvhfLFuk^CGMk5 ++za?!al=CV|AXXn{XJJ9x&TqmVEa9Rh7Gy+;=yzgCA(iYTuqfVqC5%`0zFeai>7dyzbP54)n-8D(bKVLyT57CoB_Gl8&N2N}{Mk@6GDAbGHo ++zE{5(!2@WE4^#}$0po`OyuvumytWNLAsj*P+-(Hpr8t0*iifNW{7w1>la<@7dg|6}? ++zl99JxVhULN(%33)dtHN_@*SBmftgTWopk>Com;mZeH(&aVRtQ4CQ7B0u9qXWnVs?~ ++z^vmx?$0S`czW(*Q7UDwVP3C?VE|0O%OI(t-O|aknp~a5BKN@@9OI)-MPkT*SPfbIo ++zrylR-d~lqxZ`74nIq}hyap=Qa&aOXQ2fW0JUsfvF5=iqcA{+Sb8Eod>w>OZM3YdI` ++zS!jHkG4*l`794aFY^DW7q=m(V4^&McR!3s!0fG{SpP*$CGng#SFZu@+1t}j>KPlSl ++z02=^`3!`4g%s}83O5?ugEtHm**r-8gq!`~F=B(MGPsRCVEH;shZcB>4Q`>EjbNhHz ++z`B!S;YHFkjza^^U>eLZIu8&~!2@eJ2WzYhD>PkhLcAXcvM&!MD2IuYcHCFQHUPyav ++zHvRVThXgm#bs_Hvjfl ++z7F=S)rIqn!ZeJ2C1XS)nzo@tl-xIyA=VodC(Y>~WnTaf^G0Elhd4tRla2(?KfdO)^ ++zV(cLRNPL3DU~b5o^Pn%GM{m-ps6+05uI2wvhX5Z8$qUM}|8M~88?2ul9)|rEj)5r5 ++ze|8;0w*3sU3HoXmLp?X!0?IpYYfL66q1q@is` ++zjETa-NY3Qv^q{wE?Rch7IMIc67iRPGKkA;}5SV49-qGQA?HxJ0X@4}oq)e+oiE9{Y ++z^k7EPNv34S_6Y_dfZuj3=gRXAG40d`TdSgVjJH%M^y_|l-zSy11*b2P_vyW}tkq|Y ++z^m`{VbXCN6Zl1g9o&VmWz-v@UeO6vi^bpNOPw-0ni)tM4PwjlFse)UmEACh6CHI?O ++z-E!CCXC~H3jR~Eh?pC48w@`5ttCpduu4aj3q{ay&R>2(uLcjZit^vv0L{a)H899$H}}z-FpfokMkB5V%uy`$3zFHW2({my3wzet$`hM!)YQ ++zWC$OiMf%zEzy5pC(QtXI^IW5i^eVqqe%?N!j!RWo;l@7~&azMuw{W*^Y`NHL ++zo9X_;z>*j5NU-$1u(5K>cYYb3w^03Sl|n6HQXH;s5ar9cN8<}LTcIx)c6k|X5f ++zO1;6-h4Xuh2E!0k*`_??6pNCvWzsWg&gQV-O-En4`Jc9}(n~zGKT5)2OU#x{==l8M|ayTf=;lZ*b9$=?-|?9SS-AMKB>xnX?$==$erezwmK ++zH#dIm9N%5`^7U6!ftH-Z>MX;kPXl;FUFc_&otRP5-moijL!S%OJ(s@F@B3bFx3Ww8 ++zE)&ln#Huqc7*?0B=j%P;OgVr(1T;hz(L$9Cw)*BMI9S-0z^qI#x&pi!iiqZoBB+TW ++z24DHLD4!A%*uSrV51|fyc)xSLI|9rOhbPn`ptWr&7X~@wSbfa3_?5q&bIk^7O4bsUpwJFL2rvRBirFdyzM;0+3;~x{KdmA{Z160>deD0 ++zngiQlZdUne=}lLqCXU&fUic`K9g;i_`hN#WYLI89}%vE15l12`(yOL ++zyg1ej2nY$Pks9!uV>loiN(o3;G$h@j@Go$UA^<5Dhra+X-;0@f3udJ6ivhX3=<);W ++zF4liot^uu@SIN{fcZS0&GAV+5AGOCO0xXN-Vcz-H_0DF|B?o>b8ZViucu~atZiLOq ++zfDt7U+~uXAaSYXetwDZ4|f<@Urs9%x>>vM ++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 ++zyRFr_p;%!0MI9 ++z4oYrI&={$^`Ic`5hYYOg3>er>UpuGbPfwNQv_`n^861m9Shu*Lv28~HIrOx3z9gxb ++zdd>pd8$A(>na9P7dgvQHIC#8CZEWi@xHLqB2`-?MI@|3_!aL1rF)31t2yYdKc3AqvP{tw{|D8hVI-!$x;%CClBctLV^`3F@c=4f*}1bKly`0gV%Frj#s`}Z;ZaYWv`UTCV}Gqxo{o23iZk1bad@U!SOes=xs ++z=12%>uf;E1_g0D!iFl*9DMp>aF7!gG%F?E+^a}?R=_B)p@F_^?r^0$+Q ++z^A;4R@T6Hv&Qm6d^y_cixK?HO@+MuUCH*R*I3@}{FAL4X+a$gvh%CVJi+$;=`9bB= ++zi-`8RkD~AEV+#vM3!6r`o9>SJPsyxfwQjj5IPIn4Bd+Ru1nc)oJz4p#H+o}qCaLhN ++z;ZOfi-dF2}vMtI9_{oVg5dCAOubwkTs=2>*LF{dxzP^5$2(@|i4EpgQQxG}w8=MNe ++z_Y0N}S#|DFgdjV^Z~>|@dm2#L@+8DL-xD>6`d8g*kXUWB15 ++z%TczS*7~;#;E#O-hEExoLF4>?A878meP9!P<<^aYogvLiUXE50AIgPnV2u?^L2nfj1oIc80R_hj-rw3KM?}!4Thgu7i_*;Z=>W9rS0fd ++z?6=(~eroFI&eZ681w1H{()t1+^w4KKO4c!#`nU3%UY}^KnBJxu15YgIybQ*UsIwDIA-*G ++zB(~iBQXw*qAX}NbnsevK)Veh{&Zw_%K1j+o$@1 ++z*CPamp)j_BSPLfg8Yj9({O_wsaxOV5LKsx^o?EDsRUpnP*Ksd9kK3LYQOcOn ++zV3N0dcEm^1q*!BM0=%=%{;%SO=ZxW8=&ggUFI^oq9kKWF&(Y?j9kq});Yj6`G_9a ++z{>q6s;a2GN=1z13;QJr(n3IdvC;|*i5=NgpTYJK3>U^u;Xe=GXSL4y_BV31IiEI4v0muM!2271sW|vm ++zy$N0loT6NCE>-j?d?@z1(spp4y;|bFm6o3^$bL>N-~EbS;o+SJ3lvC(e?2Q_Wf-%8 ++zl-1hMp*4Y0`ePdNGlIl6SJvshR4^UFm|{^aP~Z0G2@kngpRKj#z3P8cp`s&WHf3^> ++zH2gzol}YZnoFF3Ck$3R6=!-|htfUMN^nKK9g2*r#bm2;O&qOXNtw2716$BL!vEV!` ++zTqq-}YJ=!_ClVx-x=|#*vHcMbB+M;TJ*JEZY<-bMaRYIa(2Y|7*A`fThyp$_xV2~= ++z29_bT3~V48nt6+aL)7__>QDlzIoYu-q!LT^#m*dKeUd!foDWGIfF!slIb-apw|xY4 ++zqDf_f`7nH_Z2&fEh(KpKki}RN ++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 ++zLWUs$H4_|LDt+gCTplZ1ej%$ld#Q ++z-e$I`+@~zwt9I{x+VBMO+URqhwAkh$7{(w|yyRuW*Hi5?=iW1PjT%xt5G@SHem1o+ ++zPG$C5il)ckQir`55{`6b_6%naR53i^*wL%IvFCi+)<5jHjbj?>SS_FC<{nAAOqDFk ++zxmKsZCzg=0U7;#p4?>4o)RrSS+d0Er{3^sd9Tz6>5_s_kV~nRjCEEltj!g{JTTnhi ++zsUhc5pET;afPRxZV_ctDZ@x`;dw{SA1~2SoB|KP)Q9y1l_Go~I*`5Ti{rAgW0wH{> ++zK?6A1tXY;+BJ>Qe0)~I(1nMXSb?anWtEf+o-zZV|7Oq)7Lw~R<^`KkM#F150>0MlX ++z0!}dSBoUuOfaG42U7EQDYC0$q0)rFcdV ++zv!-Qq=XXUA%P|q1V}>+$P`>f_-Wed$D37O~g0D7*{~VS{@@UxQ9#H+$j ++z4PW4N7UdV3xI0ppEf$TzN<^Ygk||uXXk$mzj3vbwt7+dBdq7`fa-j@D5=@^5yv^y{ ++zs}OX>J$xW8s&zcf=kJX2j=Z?CK%Tc}fkM+y$-ey!X@4#rQW_5auZA3lbrz#1uGsP# ++zmu{umBVYBmy(Gx_z1ZP?Yek)@>Cc|O2e*_*-ZOrpd|o#v?*^o+bAXT%io=I#>2ADx ++z((6x)b@;$I)3K=g(HBwZ9#x43TR|uSArgad)a)1r5!3H+U&XI$4j&fcaxL|5A`aO;~RYI=BG{%?#q(nJ{vz1q2}aVc+`72GRb;o+xivX ++z=;9<;pKl&A7p9>KZj&@FZOBJhM{q0o<6iu;U<*@!_0M1y>Uccn^rA8&VTtQwak`9L ++zMXcl30kW@$AjIBVPJ<3o20(FHqlgoD(0HjoGT*8V)GkGVX(vYT%L7aqHXsAZx*Is{ ++zx5<*=U9Tigs~a^)>JKKwa(f0dAM~E=8jN^)5c7>eB_6biJ~&uVl=I{Fr$6eOJVsT@ ++zCY5Gy5Y!d-kemHiG~1Ff2?@;s5c19zPQZ`x#q#yPz|9$5V+ ++zX|MYg*E1z9dljAAL1H@G7tz~U#rv`(SgyJ^OAfpu8&{vEkXNCYEY*ypZkBonJ>NGS ++z8SkMF@A($wzCvfa+oqt!Q_e23lqd#O6T8gUl6joGCP1g1j70V-t}D(DBHY* ++zbe99Z2EN#+F~(K%!P2U}}No ++zh4btRkWRB`)RHC7XsAi}Jg<6?(AA+U!fB75*)+*gcq(g ++zSvQ)%&ps8c?e8ppf0MS8jGnqu!VCoATaRm!#dFfFPAyJgLQHIASR%xw&$-NumbyDG ++z*5aGa-LK9txNLR43k$J$NUoO@$I^o@6Fo}+8@+B4JIQyeKj%Ja6E ++zRj9TJ!aKsQlZcr%VEnX>{kVWLBc@Cu*mZywlcI6yvO#qznR!*>E$B6nay`QV8t122{E+rUTcaH`s?>NV!}!1Q@wbsbbhc|7JI0cEifN-8-KaQ!if;ffhh7vV#bX+H*p~FnShU!D^4`;oNQ({7^ui&R&k8uHke@@`F-% ++z@p1gu$6M>da#*^65a*bi5p7>_UH)lF<}9sYiWQKQs7K4(k6aE1F1c7y2Di+E-wtsI ++zSSDWV9(oE~GLxx;6qXCQF{Ne8Z_L!mT)G62gCD#D?hd-LT6MPa&hxF4jE>CJ8@_c( ++zLIz?R_;(f$WAjzzNL8#^$5RKUbU3Y?5W_QKnfOn8(h1){vS_opJee!&<9qa8gf=wG ++z^$h&E9Fe;=-;-sWF?aD**$$D ++zZ-P1YJ_0}u76PL9-$4TPDu^S1&{&M)-^KhR(AP0R&IQ5(pwH3OZ>y8C_p1f5;M8%IArSkCF5P``-|k`);qtC ++z{h$=q<*Xss*W>H-u_MH#WqsD$iJ>Nv%g_xiPyU)KJaP38D(*YDT(CUz`c{dn8~5;h ++zT!MG%ly;WMA1M8~Z--OQjcvq!UER^7ri=S~BE%T5LG@nE&k^692ENf7F0Vu~0~wK50y#5kPqa ++zSY{!k6wA-dr8<$_@6ODy6_EY;$V~{fgpeXr*AS57Dj&Il4b|6vBr76Q_!pwk*;6W< ++z2#~1oYb8H#4rz;Kg)nfLt4k#q)PqmZ?U^^29d?q?8)FA6+2Uh{HvgRw{pO2dQL*64 ++z7mXd^npedMDSM+clJ<(MmIHSwER3ZdJ@>=zwe?l4*$_hgkH1kLKFCPSJ~`}0wm7&k ++zJ#FjBt^1^q(C#3@Aa*l#fl};bHD~PTd{-M9KehXY_cIG@NyFy=j83(oUrh^5O}D&! ++zw{`OQ$Ae+pwuFl-OBJJu27zv~kZ?i;7!G)gIh*z<$&Wn;Ic2yUF^( ++zs^~1EM*}sY(eEuK&ZfKl)1myzsCjPiBcMf)x3SF~;SeFy42mpprIbt&P{FlWMI-Jf ++z`oTVK*1Fni?T%~Ju4Bl!{bUDcg~!STI5J|u&6+|tpfTQJ{RU{i^G8NMtFP6n&UOgdCG ++z0dLv#!ae&sE%o~~hP(x|`hvCsq&k!S3=h9>PYmi$HhG7{mvYw(O-5~6Z79m0xYD7? ++zpU1ecwK=!$4NpzQBc-d_9wQ%OT6HBhGf&vAePS_%p*Cl!(t>6HRV(~N??XrrYqmX8{E?+4)$x1DjL-MH8IkYR=s>3U(gWj$ ++z@80(k9}F)HmAbe2-!NN+7!FO0WpsNPc>j`l-c)N;KNCD?xH)ZKpL_4?G&rmo`Ea`E ++zh1}s6)25rKk{2zQE5 ++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 ++zwFZDzK(ckuHA+)jIqLu ++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 ++z2~>$vK(%& ++za@kIFmMK9hfv)?{7z+3`dL6@+&F+6QLO~saLY97t|5oeqj(ws1U_e8{Zh75H$m`)HG96G^;VbP|dWQqm9*izkm>jfaP=P9XXc==Q99-IqdV5ygq>hQZ(*9*Cx2y&_ ++zWM>yxf+GK-d4zlU$wbZb2E}h46=md9ub1>Qqn`mSpMj$-i*TlH$Zf9+QPYpxIThMu ++zG~hfuiZNdPr8ng){6+yrC(mj~xIMw;tiig_Ah$Q`Q4O ++z^4M+#7svI_&~!K`OFzlabs{-UeMV07An3zZ<3MMEI@LGKCX;CTl>4#aCGeT@YvXhv ++zsxSyzwReZRiwHQq%r}Qp9l67Q$OoSJt@ykK5wku1Eu@-wiGqoZA1BGe5?c%zzHH9l ++z_W?lB&u6^1F!b*1`U=vdcgWJcP3m=NgxxdhBf&F!KyKeOcp20w+51k?Zs~T%m02FE ++z#h$!m@^+!va3S5PuaBQrkx2S%49#;&&+A(WPBJ(0DeKsAI+kY0S}+;~==AB-;f9l# ++zdLYn%@;_-kpoEY;0jdFDOxrI8HZ|wI2B8S<()O#K8j#6R+FigvFV#D*C^#T=Go3H0>3s&C1=?p6#rD ++zbl}4XB8TH8OJu;m8Ju~zOEcFSO=;eAh{hDuZiQtU%47d2G`6D{_G3I3}ogiW* ++zeSAaU;(#L4M`|3wIZEW1A8`+>;vT$7DE4Xyt{6%Ws* ++zLeB7r8s<7dMTQ<26C+##BnXdR!UyqWlsp6o`cfSxYbFCw&I#Ih9P!BFVwBy1h>!rf ++z-zBVVJar_}IHpiML>#A%tH+T_WT*`{7a1cFYR5?*%s+Bo`?fO1K?sKa9P)Mews93E ++zu)2`L2D^|~x#zeh$r@BsbSJo~b^DeUZU&ntTTkv#^fde$otLsWj`GVlW`S7ktcqu1 ++zmtF?bEB~l1kZV$0DZjp~kwW)e;Mm=D)(5lOmvrw*;8W%|PI+&;=4`U5vLcUe(FM_Z ++z?H8*8brVG7bRwQCUk555us*i;|MN3)UpZEe-36>#X6SQ(>fGj8js#{7z@L#N0>gj8 ++z-A_AsWdz2LP#nQ2)+k8Yi)>AO)gWT&ZtG3Fq8s)Pe ++z)1nWh@EgN99OwRITQ^xC_oA=knTdw!iw;WV@5ur!o^9K9Dtd00GHB~;dY)(i8?BFZ ++zICZahTM$tQdK?1%WZ}ONRqK8s>VY$G(M8FX1ZB2!RSww_FdSLIyZ;)&41uyw8PRTb ++zJRzTX83(BJ{-ctI?u?$Djo=@#zbA47C<*R-szgyR^s$H&oXBulmVnxErB?e%t27*9hk1F)R ++ztl#_V>9l;yslp9I?x9bszk?2(-W@-s{E46=F#vSK?pWApZo~vIUrYc^0@}w4kd$#> ++zI04M9fK0rB^sEp-aib%E9wA-ue9U$)1kyLMssz!9%Q>V1^zcO|?6O_)JYvrXINt*sK=nGLp ++z{}bSA+#PJD#Gma0332zJGcFP2E4jZ}4F;2n%QTfP_)tl#4;q8cm~{UH@Dpi32w?T! ++zA3fm3VT}On-=~Mn4&-<+;gn;~#12FV~)v ++zrNmTZkPtkX8CNJF-rt>_A?yetR)7Kdfa02TU4)o6#F%{w{)L)cFv1pA3h#I{5Y2;0 ++z#Z#S;GzGAP%x~~$A-hzo-Ap(x$8G18;A=KQZjN?I-*t*v^&oa+s2ou+0^x`}X=G~q ++z(M>a5HT9Tu_d9P~UJIZ5z85sYSuVX5qCBw?B^PhZ3EQOt9ID$4f$r^cuANI097(=q=JDIP%~WCl4v7{)LOaZ2R!mS ++zdBTDm^Na;=_~UZ_i=iIgRuOcO`Y ++z8ZYXMsE5n`===dc>v*In-F3L4_3a9hf{38Ob=-FeFP||PG!Yb3i9)?00FdLWa~UaI ++zd*qDcN=)UY)FE#cijp6^5g8R+S=Cj!c(RX8j|T&oZT&073BvW ++zIElPMj3UwMA%?h^Yc0mc$N58*Ie?n5baUoT#YBH}I$vn1T%5%E@)3y0_RFnL_~aK| ++zAlIFz_`=GK?}~tp7RYhA1vpM;054PiD?rpS2-Nd)Jf#(gBLMvDi~ueziOqJmaPLEt ++z9flr1wNbs+%8^^yu^>#rBj#NzC{s3*Z!guhZD3}JtX7`@;A4PL0DvOEzHvS+Go5n@ ++zjDX?R1TC*L&&>sR@sj~A$`nukjMY%FNJ#vQ4-gv$cZcuL?B|CR7Hs_vJu8|t$vV3h ++zd`8^^_&9@uS;#_yLvymGc$48l4D|Iug_93$Zm2d!?-Adwe^caHM2$ir_~(ok#`U@6 ++zQcmH6)0P%r;0krW{Cxd;aHkmXD0JO>a)B%)Jkv#^ytqvHvp4m{y&yv;(sEb+vj<0R@;u0)3wxn1PpmfSw=kkFX#M0 ++zge0nFX7pD*mhD&dOr>~roul~!Cj3QtKoegj5c0muL?ZPlF$NQsf%)z`^N8W9?7?T5 ++zr?D6s87k7zxGW3h9SKy$?Zi89C{~FS<$9_i_<%jT?YQS%liO8txtl?CXBf}Z?&@dS ++zepqtACN?zWPGkk-lCP8YQ@2GTXHd$`)+m&=)^1XT3Fk`g?}gJu5IA9tlz#;{K4U_U ++z%5mcE?r@$aW!mH+yjR|T=jl_3fq>Zrq) ++zn))F@g*#Pn4S0D&6N|_Sb%#?@l87g5GOYQP*)@DC#AuWIPi`TBg3@-t# ++z`5lI*KtKyGV}1vzcQ&y9wTimbKi|!l%5K`()F)G*-Y~0!$TE2fqm1V;8*zl7 ++z4CXV>jy;#Xqih|haB$xjvK?hahW=h*5gs9{ ++z*=C!`?9Vp))R|ORH?#Wo>kq{)2R;+;u7F6!lXNEpwdLK{JQwy-FoKFHt+<*Bs(vPM ++zYBTKd^|xOEln}G4ji12n3ek1YrV3&`ZP7r&$H{AD>om$Q?#(`w>aBAu19yXUjX#GX ++z;^lGvgNtaAgRu#x?C`%#gnA^53c=_Ii(S=$7g)y5gOWnM6pP|=jln5T<0(NJL1Qm) ++zwiF~EpgCX-u;J=)tTaEDxB|li5UWOvzY`Duj1(q=0L7W-01p>INS%|!{|OLlDTvRU ++zUfFbmHDCbN#o0r;Xl5_ZKJ^GL2IgG~J-tB8rdowdQ7c^BSr)7qQCv>^sxELLa40t+ ++zwJnsaYT~ovxdyI(vfDF38C|V4nBfBz0FIeT+YtC$Hc@&pl;~%4U<_Z7_~Pd6n6!06bD!dQlRo-X}R=cdSFj2IamQS(7TiDy@C`1Xr(7W=$l{^$&Kl>m{L^Ge( ++zRLsMN$mMDS3cSr7Np25<()Eyi%qqet&?X>!Iwhau&nke40Ni9~py-}wVgM~PkRsOO ++zbDPiyc+1XN?%I~$EIUjzgOvhK37Ga*U=Hmjv=3a2a ++z6D=hg*|*29gn`lRGs~D6G%%PTQM0)b7;5~@hhLj}fsB?4w58DC=F6F{ypkiyY7Zyh ++zHHmvt@UC&Jfv1-%g}}X!+g$g!pxyaXXSWu=zBT~=$YHUigY}`9k76A&F!QD}f2JMx ++ziVrCwj(i}RBMSCZD)oT;^I?gxAk8%VRu5S>Y%5TK^xSOdum3loL!bko5kM<>P0(T+ ++zD6C1N2S8g0WFfsJ$jspHWC4sN?B2T58E!jR`rq61j2b^2KI6>`0eSCRTTDj?=J!MY ++z_GbS)iaOa>|Gd60$zDo9B#8cl$@4Ht;4=^RBOE8yNbM^-?RI=eY67Sq?b~WNi|2n` ++z&D56leCs#~){V^{uFx`Wg|iu7R#dTd=w`llXb+lK7V?D8xlkh&3vED?Y34f@$3#(eb8c%sX744x0IB~cnIl}LKR##A%my!TXaR}0HcU)cM ++ztqi-j>nV%RBjf`i+_TJhKK+5L1kw0C2kab0Z%~~#g-zr1FWFY{I7_QBA8fy)#NdOd1mOFR|O#SC!RsU&SfZ1lT ++z8q5fj6VHc3FmS#3fKJEx0F~SAUmOkFWujrJGu}-zHqT%i>WE>`+eNjvK=xJOpT_6V ++z)$8d&szdfdm+-t9zi0lIFYAr=&&R^SAd>KULTT@5AqWo~acTmHw5-pA4N>>ba}0ry5x`Uh=%CM$ ++za7!?(lVKK)y=KM_&&Xg#MxPa4_Evq0xlR`Nqz58Zx6iMj^Z-Q7pkhKBTEKi~H($MJ ++z$J*rc?%W3Ul7j@`Z`o1)f#5^l-NmT}K~+cSgy`Wnt&3O~8__!6F ++zKl4XWbH(3;hWP=wa#L|ALP_Zvj$omgo3=np=Jx_Gq!0#o-!byo4>VKR#6EtAUbNTc ++zZvYf&^myRN@O`v(n3|*Fd7q}+`=5-I2(+))0O<^n^O*$1Gy;J?&*9>DEQs{jET7Me ++zKZ0xODLpYn3~Y-bk2fkFpT>l~6*8=wItQdZl(Ob$9f_;$Gd(C=W>6RSeN|WeagFZ- ++z5FPOq#j0lV&Xkwzi`v2;9oz3TYf%LpPk;;Y&{TLlq|ujER7EWm#D`==O>CZR$j$^m ++zsAfx{PHcals13!R$g|yW&@S;UtQewZIb7b|y1t92g&WbzN}P6B+lFz8ft-F2s)g2z ++zymk45Ks@9MTrMaAv?WKyL|Rfmcah?ZU{e6+DM%G@4RFB$#Dy*MA`?QJI}(oN=^+8T ++zK_0F{w@JZ!5YW>_QA%XKD<+Krf=+ ++zyR$B@OdTjD!Ucqzor70^*hJEMG4O_nxY8*%a8d=o`-%7mI ++zDlcFO*#HDrWU3x`O(p++`*~)d2m%P#TpI7LYX@M1qtgv`U{x_~>2RjzVJhR$iK${XS;mUK5O)?YWyDwLQ$G+x0b1N*cy|bhlaxQ4gXeC=NYjtuUsBOK*??4BrU%a- ++zlv{b!2s*Xs#nX|7qR)KdQK9#PU_sdFdnA@f1ixnX`sw%5kj!tsL7kMxD|ds!_(7wD ++z#En4ivODg-J%X%m=8TLx{Z5w0?3(>9tyn7fb0IY-^K2T@ivkkiJ*!7A$1wXm7Xt%G ++zx)d-dP+blxk5re9y^PjnDA_E``s>MmIYU&wC}xL*a44^@}(eaKWO)aQKSr4Q@g^D1~va^;gjk4+wHuu}dz9S7D=m ++zV`=wkBwTCqLBV-4EAd<-JPJtgYL#XH<{>aHFgoz7=ZhQ`9GRku3^=FcMJQUSoKnB) ++z_;v_JA@19A_cql?2I#bh+WqaX?+zk9H<7`?4*fZ6u6_%&ubD$^yv1gI^VucV3eB}9 ++z_Gvk;wLE)xytd;p`mX80Q%xb~o%+&RB?&3jF<9$*<{80hAN58^*lN;#nRu~=Ln1Rb ++zmkRRD_i-Yo^WKum40<0fjNgj-;Pk<^$-Zhzq3i7vO;ym35F<+vDHlYN?>PlvRLgrb ++zXE-Bxy*ZrcV3ghwa{6*NPaSSqcP1yN0q4?yQ(KW|K%~H>nckLxoi9{je^~c@fW+V5 ++zE|i2-UwCyi!O7@Z^WdTDazRadc>dG{#ZD8ea>vQ93%>)6x=)~Rx3}4&IK#66rA422v#C@wqw`w*nO6h8rVb|NwM+B84gQ15b0c|#KjJoUFBkS_gMX4oH ++z1otL;-PQ6b`G&6Qj@?QY;P+AtUwjMfLq!VDCNOEB&eS0wlJMX9e<_gJL{A9$QXWwZ ++z1P^k*OvIGTlj#BB8|W1|Sb>y@3uTNv=Ca?$hQUA2ZgPvwxf1eK%(JIxj_M8~)YDbwG5;JBzxD@(4NVXrQu?Q=p@S0+*9>0wwgio}q*FqdBzbE>sRdXLEZ+}0 ++zZxALRB1a$U-INqaF}=jXe$iPxwbR-LXVR;qB~KYhk6sWcLg8cyA0`#1(5=MkxKT*8 ++zAAf8>LF5J#-62Fc&_q$-^q!BeQkmrofc6m(H2mthFj!h2oC5facD;R?8M^UBYdRBS_fzlHxEd(7o`CE!~YaD`l@SM_PMxr8`5zy ++zJI%H!t1`@CXb5Q(3ZM}b>ABm74a8uQV`7~ofuRu}t!rOa=gv&L3&Gb?|3qC(B_!MI ++zn@5tH06uf86#W^EVY7q~aG(^TPXrNqPRXzpI ++zn4Se0^sIy64dK_$R>3&Q1;s3A!Q&zxn9ynxzY ++z#hmR1J~)0C8h30ZF?7{-=4>8w>LB)4_7Kw)cx?XhZjg=B+OUJITB93~7GTY~`6(nX ++zq!IO(F^Dt8FQ5CprobKWj~~xncv4Oru8B%OTn#o~kL`XjT@R-0ptGJ)yJ*n!wD0=2 ++z0QR2hM~u&je^jQ|81lT#e?Ef@vrsNL@*4CE;)8rZWQriDDM4S1s{aUr2lP);JVaas ++zh>(sO?IDsW9O#aOb>DHQ{@TSav6RM{p ++zRkWnd-Hz>MBV)DdtYB#BhGK=D ++z74bBAM53GJlJmO0z7Ow11$GiQJSo|K ++zHg#EfsXlRTfKptT34iNZdm&L$?HWmE*|soOnQ1}!II=cdv%z~iX67vPbwy~#p(K0g ++zvs_m8<=zrbQZv#Act^`ygcR7VKK^h_2}iyv@Lm*I3wDSWI-!l8P{s$9SGcENq~*?{ ++zI9VMlnlZS2$lXLk`^6Cmq;s?@gPeS-vpF`8WTKG4*30d0Q{ ++zq{0P${^uDm?im}-g&azunDFWNQh(~~R`VKtYnR*gWQI8uIFV#3Ri^5?(D#BExsfBWkRo1``I47%5 ++zIee@A^s>j0b*{|qxr$>##(V7-e`wNJjc$YTGAF8|blK=%s#Qf6WUnT=B~lKU?g(3T ++z$D)am*>~*ou=p$tu~ExM={HAIc-+_bH^YeyHPzHs7QKgrKY?3w6DIO@!_CvwPNxg# ++z_M3b{q4aSztpyUx^C5$nC~J_5UH=4>Y0NI=(IB3S^PvA}hMmL(yE%e^>El)r?XBeQ ++z6lIrzQEvRdKW8t>QSSiydJL?fI2CEEE+Z|&Yghkl$wuAQ_m4$7>+clM5e1dG^%bXO ++zB8=jcwY&48rWg!q_fQ$ma{>zaCHm`CVGC<$v+s ++zft0{OWzX^ApOcNW*eepO`bs{RU7_sO{^=xGeO<@7ezg}*z=hDxTe)1eI~F=RT537n ++z5_ixGIpNd|XNd89J7a4>N7xH8Ru}y2@*V?(gGp4-rrm($1pc|6V`MRhq~t=t^iG4S ++z_sGtQa?`-Tar41NFY6~XJ*Rr_%O~UA%~tJH6*xfuYOa57}5IYMJ7fv)fm=O ++z&6E^O(b&2L!!o~B4L3~)AUpLX0zc`O9kF~3q8L!|rq#qL1xmc0R!lSTk=gY2^) ++zF~UW5?cch)wr+Q|N^UPxj};*iaflW`A{uJ^64+a9+T*~rb5gT^xEb88i8jt{&O_OG ++zDDay_odz#;dxbuOIZSgSF2_{=`*=IX-F|FmW?9;v(+THR_@ajH3vHD}rHMvS7iVE% ++zDkZv*ba4|9>I^tI#mnGBS%%r&k=uOtXrv@o$U`ZYnuQqbJzp+0CQXdPQC1>YeZE=% ++z2of711fhn&9xVNs$3dNJW02a#quOMhWp0z?li6|+UhJXAEUCmUd7#G7VWD#{_d`SY ++zp=w07a#}1j#r34Y?s5}NtuFk1DxEYOPI8Q{?_MLHzf#jSom3R1_SZC=Gmig>^@6@zXogWso|#rM;7rTNXeNukX?>dkSa6ao&Vp>|O| ++z(jTp@{4W%HbIZD6P^!-$r&Y5G-!`!(k@xOZ(c|n2>G&6SysiHgC$I>GI;-b)((ded ++zCL+Fi=qHcST!%Kp=M11<0^Y$Ax+`mctt%8gaqSI7PAQ?_>3 ++z{>YdYZFx1Bm3-lMOIx# ++zs;W=;I_L4s*GniVeGIr!ojB{kuJ_tZ@6zkUtG?HY1(l5FZw-7+l(<~C>1O%XhmO@B ++zA~MoI%cgHencQ1M{pNNoo-JxmoI$p(LzWPXY{PDEcVX4ATl;X-zMMNtNq{xG3mK8? ++zzWt}`xFA%0`#p9)T;Slw5WAL?hbna7<$k`VLQWRtSWu5U8&l*E)|^U#KJBu{wPL4^ ++zgY`CZR#_JBEsZRxSE?&b>A1^m7k^sCTuB;=^&F2KsEJlFT#%wTWfd|9?f7eC_iY9X ++zzg;b3j&kA{11YMrR ++zI2n3msm&XfYH$>XbNm)&Ox=KAQ@h*{jZ}?eDFq|u-1d2If6#@OUhJ?F_%D+r7u ++zI>;TYDo;#LzZj(W@J`9g2_mC4OeoY5es?%y6&=SL!p?>tk}5>V=on94f_z@_bqVsy ++zxb$?nHMnq-N%e}H-o{>|9=iS;W}3b8c3ZHhN!|w;CsrdJ{+Lbdak^5^6Pk&1R^2!? ++zwd~}Ec9qF3bJ+}5ii+(~67x{S(n(F83idlbAR_HmSw ++zT4ca1Zr*4Xy#K$=Q5Mh21L7_Q6=o?prjHnOi ++zr1(Pb%p ++z##^Jeyrex>8p$%lkTiSuqY+uDVJ1vrIYM&w>1p7vT%wXg2CDB)u!HDORJj%T6-F~b ++z@b1eWdlou~qwPno39MSb#J*z~gT^Yqvs`^Vy5D_8d3>Bl{exF_uj2Q=ek~FO?IWwq ++z&9yxpY?gXIYr@DH9@)tcjeFNCHNTdtpO}U&jn$NoU ++zkW(U-Nznv88=gF8Z610a=?!!G9B(JWWyb5&zjj|nU*}rG+xH$&^1hZlUuoDP-_ecLqoH?Y_avi&+#w5 ++zcwd<}9Jv{C>x+y^#AmPT1){}Q)}d1~3yBs)ecq+h7I8$ExAU7$F+zKDti(M{oJ(T_ ++zjP@ymU)#pGnL;AC?Lk*eyF@JOUN?>Muuku6xz>xDlPBehGSfbxi+6{QUk;c3-Di

O$I2^k(Y~=U`8V?mFk5KQ%0xI*y!=nX(OK4F ++z7lE%UoG^EKI5R$ulkIvuksH$g5;oyE!#sf?9mXHF2MAtka2usLOyY!>a9=rfvA6JR ++zuc;wL3ea5)cJ2)o3WBNA^eX*Usy`dei_hKZKYlv5hjoM1!BhhyjFfMLX(=leSb9Bf ++ztDBrW$Tj!eSbeBBL_0Ng$T>B4a^+^t!X112(v{hw-!j@&AWhxw9oS{+p3Ltl5v2PG ++ztljo(do~`~3EKu^GD%8HtECShGdu;yAI(W}87m@M+aVa$VmwQ1Ge6Gad-Ga#pO1Mb ++zu~u|FM#5@vP4ja9zUc)pUnZtN7<%Iu@SZrbv*I8E@VQ>}!u ++zCDGZgc3ySnQ*-m`r=}()ucr}GUS97xls0RVUThOJzj!Z5HJxNFOul@LGWVSMQ&kwW ++zJQDIPgRMQ{TT@7H^ykCQV9S3u{c0vz)PvfFABFt=f&BM)LT<{U+^$5@nD|NnM%wYe ++zKQ+)^;@m1H)1i-ov|+cXc6il7T2J`YSw7ZufA!*CD7?9UZ9iO5(Q>WL4^f0gl1pl8 ++z5!0J94Uc9%XUX`OBcc0un*e8P!6-3=83x9N||6k8p?f ++zjchGVM^>j(@n7ty>$jz$;W|%KnEqb;X`PW&$f`wc@LV)bII<1mE^3!zdQEGcwl;Yg ++zaeeQMKIpCPf-5aQ4VgC+av`SYKAa_s4QHHjBvh@n+bOiUz0JNlQ*M*Om%yxyxTv_f ++z@ae_&Vo5U@Y4~JB2KhN#soG+rz_z*|#_lrU0KN;HYN%=0MhL_PW3BYHGkqYWapQC(ByH-s2FXxf^OBoA<&|InpJQlDuul ++zi{DP;Vee(XN0=kfK9WIyx&uE6Tz7kyUhncK^wC5>@Cl>6^-YUz&$nTc-N%}054Bzw ++z+<2VA!_T5OQGrZ#8~v30_eb!JPoHfs$=kPURogV#Fh)C8ayy1OFh;*#Z<v-YK ++zbi6rNe2JGO_U_%gWu+Di?c?^S))4;IFzki6H64TtAp^gH6)}xVJAezGn7~au!VeD>u9}e=IUIzd)F|R2?6K-np9uvY^`! ++z{s9iUrqf%%Bq%D9CdWKdPG=m~SHEz0rVl0Szd_J1%xg^r)m0vCZ&)k@9#qam*qY|S ++zFX(JI;z|RMgz@hc&&M0cn2&|HWl#qJAm0aPkrgRxDm~ ++z3B_mm2gPCefImg%GD{-g7xQtRR2dj+_UjAM3ownrl(!V#ZTeD?T(_1#)!Mb{RN}g9K{SQX4{$Kub-wJWgN{Q&!(u3Jv(o5zV ++zGCM2v{qih5X+wYs(|&4h*HXtJZ)Nq$b3-WHcPqNvBf{I~20X&&AR$vP?SGr&1rs{tqjZ`gyZKJnx-d@>#-j`j}(+{2J_zPRUBvv_;@ks#M>a* ++zBlhU7wp1L6<%D=G*p9VtL7w9_=T^c$8MDgV%WIgBa4p)C@XRDebU87K0|0> ++z+{fhLAMACGtPZNP8y;#+GUL@R9~HjE)@GaP@K6pPw@b(UtL*t1RA%~&71@|^;oo-i ++zca}SKkYC09%}V?NYEM@6KM%9&>Egt%(s-o~!+6&#VJ))&EXmVu#JQNs1 ++zrMq>vzGy%Eso`cKP0O6vpka2&ocgJP(Jj63%gH~bb{yVkzDaqn+ ++z*n@^feu=~iSou9EqTW?n5|y+_qp>4npU5p`t=*2!?kg*$dy=tf#|$46G}?Rb!jVx0 ++zDJh7r>tHhu%g?;L(pYYvMcNZyM?lt8uY@0=rX>~@VuPbPZ-*qPgAcs^R?${MDS|S ++z3h!uV@RA?j78cvbjM{-w2>RFdIv;<_A$Md>Nf2jRXmpMLAkQ#XIiW~#_jBM^D_II;}+T{-z56=^JC?21JMZ-!223xB~L)Y+w;iAc@IWT*P2%7twdAFQ5W ++zoQtMj=E(jdJQDx$7!NTqgc2{1)X>VeZB!UmNg|Mloxe~T)Mf%_|SFEASCsp7KP!S ++zL;~AUj5BMP>W|f@3Z?$z0kvhTvZb@iUMg2YM`?v)(=rEnKs@W2Bl#6E=#09S<6D_> ++z!>hLwOD;(!!7t7CJ4@$6<1LduKFhIwCS>*m=Vm{os;|E5|B$aJXf&WFMg(fc4VC<- ++z5d5Iw`=P6N$C+1x`jt6TwG^tMSeO2*B@==v7suH?n4?!Q?~6u#WTuz0HxGt@Fjmz> ++zHb{1~Q@j4fCyHN71?TdRj*`?pW#!LUWYk#)iYYXJZs%Uw2gWqj=Ia}5=FR;+q`oiF ++zy4oVU`d7zUwIdWxIsYu{=(*-O&zc$NvZ-hH#0Uvf`xgj}w1)wwz9qoRf?MkwfkfN~NA ++zE{XOPMeG1d=W5CBn;4MHg}SfRH^1C{T@+jVYUyspYf9QqZ%I?MwE<%LO~?L^`nw#k ++zclE=uj%+Mir4;0E@`ebt>jp}B^+Dq#PA2L ++zi{zrR6D`b>N!?G2h@^;8+@{Ywigv1p%9$y(gLFH8Bw(+=j5j?EcOAlRA3dzkosRdO ++zi!yBbzW-MoMfFJC_UK_b-KYz(ev|jej3gJYDY|f~&e7$CMb#ZJKMXzDv}B`WV*I9MrgW*?odGfmMU`*WittJanv8 ++zhI+li)T2%(@A8!bYv|$$q_~{$$Xk>_NQqH2!Lm1xtIhb$X11xAWU8{(ze||DW1qp+ ++zhoar^5#L{b&H_XW0xe1^eT%ki;$K&&iE^+H ++z4@2|Ru3nK>sLpOlc=d2_cz8Hgv`=WSWx#pYBH@P67RZOUab1|lF^_Zq)(0y-xxL5x ++zbI!Y3b7Lr{yxHdMEwvWMZ#yT}xPSO7Z(&>p@ ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/drawable/ic_launcher_background.xml b/app/src/forkDebug/res/drawable/ic_launcher_background.xml ++new file mode 100644 ++index 000000000..e009ebe7e ++--- /dev/null +++++ b/app/src/forkDebug/res/drawable/ic_launcher_background.xml ++@@ -0,0 +1,78 @@ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ ++diff --git a/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher.xml ++new file mode 100644 ++index 000000000..c4a603d4c ++--- /dev/null +++++ b/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher.xml ++@@ -0,0 +1,5 @@ +++ +++ +++ +++ +++ ++\ No newline at end of file ++diff --git a/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher_round.xml ++new file mode 100644 ++index 000000000..c4a603d4c ++--- /dev/null +++++ b/app/src/forkDebug/res/mipmap-anydpi-v26/ic_launcher_round.xml ++@@ -0,0 +1,5 @@ +++ +++ +++ +++ +++ ++\ No newline at end of file ++diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.png b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.png ++deleted file mode 100644 ++index 873b31cf5a66711a0c6f04630f750966ae740e3d..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 3568 ++zcmVn`Cf*_Bk>89UJ1Kl7hqJW5~Aa9UI)6H9n@tKGZk^wc*jIWr9lSsRn ++zQCCgWJT=C*B(9t2)YhglkD8i&)K2Zr&g^bYw)X$~$9I2+?$AYbn9$c|s_5dBKkv1> ++z?>*=Dxxd%B_grbZO}FVb-KN{rZ;Hag!SGNLp;M6949=iXZLC|+PLO5lT5Gd(AILIw ++zAGevij@r!K$EK9w98trtV?x1Rm)M0bxB%UBf~*nUH+`$#6dR ++z!jVEukZEXpKtvumfy5+l5Ti_Ed$|uz7eY!{r%Y2j4Cs?3bz^@r$Qc3TFuXet^oon^Z?Sg4uw1*b?q4s ++zpuzwE5q$^99ZW!WOBWW}J7pc4oyn3Bd_Y=d?pdMhU_gKhJ%BQ_wLt}xW9vfGpaVHs ++zfkCpTccFTV6U$e%2NjShtpVLdsb{?w6u65mQ)dJfkdVfg9Vn@93+R~TCGBt>ZGqhy ++zTno}Dm*Lu08Gr`8F1EoM@8(n=R6t9XcB1X|7Ubr5tY}egCyHy@P~Pc8)n+Hwbvp$> ++z{#^%u?{TZD;$Sf(DOG< ++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 ++qbP+nyBs4`x$aI@-(`~vxA5 ++ ++diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f8948e3217b81bd1cf6da25558fa4c3ce895f544 ++GIT binary patch ++literal 5248 ++zcmV-`6o2bdNk&F^6aWBMMM6+kP&iC%6aWA(N5ByfO)zZRHWH%bUhDQBxV;@B`ac2n ++zZ?eHOT>~c73WDxN4d@K^Qfs(s|1A_XlBBeMmAiK*0bk4x6he~Z^aX?icz?PGprCCV ++zDH?x}2C#b|^nU`-TXy1$r7Z+UA#W1{{3m2h074ck4Ek!aBW?dG$IkcvpVO^r!H}e3 ++zhRe*%%*@Qp%*@Qp%*=d;XD%}igEb_^1A)3vpYF)z=rel>xPYk+v;tKrbUAfQA$65v ++zS54kKFyjhb#Teb2I&$VJ289l_3fF~DJ%)?Q3IxY6B!nM2p4 ++zPAE~^c07{q_x-;=DNePWOxy0Bm2J<;wymvg+qP}nwr8q?it&BlYYp4BUN8@ZQHi(-DB%7 ++z+qTbH+xFJB+mi-Gnxvg%W_}X@5Wc{u0|)>IP|^t^fRPbEd1b^ufCr3#1rSRa?0^Qy ++zfbWTNe@X!>V0Xb#?%2>WB~5E=lZu2U#u2A1u7t#bK+b}%k8$1B)zl7c4??yf@n`cXi8Jonlj~(d>mF ++zz<`nu*AP?ksL8yvBlA?aa-jJ^0%`$*KXm*74CVB59O&1|8ay@T)WZlV40-rJ)l>~c ++zMITe&Q+Xd<|3Bu0Nk8jt{Bp3eNh3zo`07T^#+2=iO=^y2?9NojqdI++m2%!D9+!`Ink_xg`B56fuLqkl=gZDvm ++z=FE;8AA1+QesqqWui7T*{?gv0F={~r+HvFha|iG3$#8udn?hW^N9w$o-z;>e2{LJb ++zX4jAP{y03SA7&-u&>vb&2ESj%_-RtRUB>b-jvp1AJk4_rqxZS8U$(8@^WJF_wtu~( ++zR%I#LRoF42jO7%o4Lz$zZ+6RGn|)gTL1pdMzOkPkmy_$Reg4h{8{T=Wd&Lcs^WeP6 ++ze79lS?SW7NU^yPNkw|uFa&%ZX(bG1F)#v-J`y{xA(W|ORLN@VjhT_=TqNlsfn$y&f ++zT~im^mMY3Pvm~5alArd!hJC7~pT;VQx^mR!N#()Lo;J#jafZ>XU1K_v&@6FMVZy@$HC}21`s94FVm^5unZ9S6Faiz+QFM8k$$i&yiMzvViOx{j ++zKt!FO)=AUsRQ^Kml2J!~X_N(W%UaX|lRC_zlo(M2)OrBlgxWl5t7C_Uwu=4Bo4-3f ++zE&kQf1d*1AP*e|Cz#2lxgWrS-!v;Zl@VxVnZ`%8o&vZKLhR4%>Z3WYQ74#x}!4ii@ ++zqtok()2j+&>tg!cy>qHvGrPFa>7`|NG_$Y!Hr=SbMtXi(d)<-|vP49=M9^sf)&>{= ++z7z7wX1sJB_GGCB8*=csM+!p^I1EhlNpEcPua;&h`22XfQYvvkBt}yVSgpQKK{xjtg4Bb6Zn^Rw2hX^pphxN(f2;X!HW11<=88(85>2 ++zFe)m(D!Z3;YPDf82=e}Yrd9@KqeR-&VrK#p+B!OVAA`T@+Qxs_CM|t`{JibY*!Y8+ ++zxk-E9s_gq}*|E$T|8~VVpm|MPVofhmN6|$7fl3+ZHUR5jIA~*d$FV(gRh>Sbo`Uo ++zUpsm=E}U^V?pd@FpO~%^pRCm|P&DwU1DYAotO2owk{1szDH&c-@zsh7gCS%xhyk;X ++zLoJk(7IQYgA`shPOg)Ug+x+@@Z#Q!jf6Mki_1Vo{SGVd=ZSw#B>7^7``E@>e{=m&% ++ze#~>@eD~d*p02m1F?#dk{1szDfHE^nhYb4A*3*f2f2j1lJl(h ++zyT`R8vI*O&u>qLUF-?|OnJsGfi_X2v8>u>^;pimnylWgbMn>;3`{L4=nmCl;X*A&J ++zx1f~)z89c|HxdNR1QXyuKrumq;$n>q*>sS_Dd+^y49KnTT}Ouex7RRwXb)sJ< ++zQ)5Wc1Q|?dIn1dT@)?KQ*X#z4wiv0Z^w|gzAHmb001lMrPfi<$_7# ++z_PEAuP60?hFnIS5!H7!>5of8MFHKzDR6!B((a(t__|HyhMze7TBGOHV7 ++zEpm(NuaDg-nscO(Cvb0>TR0T%$iTq<#UpYr!qni^g00s0fOAnf~u*9j^-k^VgXtuB|+(jyj%rlE+8$} ++z!ozEwVF^+C3<0l6iJ3q?g|=db({FM^ijc3gUPP_v&wDtSazzEl@kiZjI*>^b(koRqe(O9;!62o< ++z`VWv{5W59QQ5_R30`nq31Pma69FXZ#`@5wjQU?xuJR-vI+kwFpAqxqh`^I|?N|(Fq ++z4LQgh5J0jBVC5hf5@?QZ8jp_bCRK#v$Wm+4PRnNt1{qQrcjp5VV3{kv#@Wt*RbV6c-xRW!;l7wiz1|B5=b5u ++zWDtoJ@=Y(Ov#Qj835&(N)kPDA-SZLZIIOtoHH_b=$CLsXSn8POj`#o3 ++z@~3|@J(6uugm2u-Wjf9;c(d>)Sd`XM9Td2 ++zV`SyaFBoHPyaALfYX ++z8chWv&|3AX^s#fC?KOMc{j|nqF^e{`ISC!$`$v#uM1W9DL5z*StO!U%h*3!3jG@6T ++zs83#zuYUO@Q5dNcKTW#Ct6M%679ae)QGWZ!yRCm1M;)Z<@L!wJXiw)LkcoQP>+EO8g(vPipUWp!(kKj`*JYiwOATa6pE6B1QA2~2OE5FSyS|y9+5tnY`LJtGyRgO&6E(yh#)eP ++zj0h4bi>ld(QBREuMM*|OA@nwSVQ}vd46mM&*R5TpSMmR{BCq~M^PE2{C%O^U7mqZ- ++z?BNaG1I6g($Qb5}ndI8?@oaaaII!4Y+bJpA!Bl~!|Ib(B=~0q{bJQdVVkinq$%|`^aX(*cLr?q8kKE4>|i^t#a ++z?Q@3Ap73O5?Fs2zt1Gk9-&Hio(;UljyQ7aV@nK7_@W@(_NGKX5$*)F>;5Pxk6v8(n ++z$K+wPvyb~&HcC#!uwNbN)Y$dD+k$hR!Aj~**XAFdze6_L1L|W~Zfhaz@_5a6HCKvr ++zG#L#k@@21F{V?h^rKSO_uNf?>l++ha~ZRRi^g@(7DYF ++zw=vz0vjdf47Z1e4jPZG?*sYa1)_41#=+8;ryS(`XIWfj%I%Es&H_=e^tBj(t=EU#+ ++zs=%nd6A=qdem?ONF8EZWiBa^qW=Bd3%uG|Ihi5#X?HxV8OkJ387xQx4&4f;?&J?V7 ++z)jv=9LFJFP9l@Bn2gm`5sX$CiKxZ2W-2_ZHJQ?v1KzS=qp7!ywkD3sDoQ%fBGghdu ++zb~8tA2s-WKuF?H9#&*>fzb%frZb|FYVqpE0!ve*ELe0Va2W ++zp=BVhYY35pCJ8YCwN0n^IYgMy1MuD-;XB0r#$v|6=>E>ZJqGX|FL)=8th``mde*G@ ++zOULZ{lcV%keD%>Pj9;ty__r`_1L&CnWDKxKApwX&kRV{NC&?V>bBcd96mtyDoKWVy ++zbZD#06)l?Zoe})<3Syqs9&eo8*Skh ++z^TRmdN&PUrItrOdR6hsCQB9(!Cm!7$pZvai#TZi_uYKNs5QQ0+xl74LGQ|t$z$+ou ++z7m4e(U3*tx_)I)#j4%NlJs{RFs$_(Y6EK43sz;6_QA_2@g^TauiS<$X#-^jWH9|h; ++zHIlU)UQ=qR8|ME%!+ERaxsH_w#_ip?oPuMAXoR#x9w&m5h ++z3Di=Li60>Dp4#>M{z07v#^7xWX$xog)TtE-CL=>s-Wy!LEXcbt@ODRN7)k1P9T|hT ++z2Jy$5S3I`aEZ!4%Yg>A7XQBoW9O;-KmktPfqgzT%9seS9{2@QT9Af{{T8v6WKUG-sQp&)wA&{G8$VIHmpoGy-UjUxk}OoIPQmP{lVAF$uz=LZSva!}$7{mfND{D+5n& ++zglK2PgzgDCmLh;^!XyxSrDI3HBc*@|XpclJJpsrXR0T<|1iA#YpmRQD!mOhS@JDF< ++z3BV3GRM<-+!S`zo9>7I^p8zDl3YY=W3AzXn0(?Jr{2>7z(EYbO=$?2b(EUo<=`i>s ++Gd_F3DCs7Un ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..e23f2e3aca84336e3a2ab9034928318218683ae2 ++GIT binary patch ++literal 8186 ++zcmVPXMM6+kP&iEG9{>O^p+G1Q2}W%sIZ}t;_3;Nha~lspME@rM ++zKd#PWssZeoC)FOH6gA-pnV{oDe^kCa!~v6J(K`U!jieD6RWohY{OE#BWZOP^4f3`~dj)3IqxlnxO=fH6zsGNoE2}NEf_46KFZ10HErifCOqYN6w^~exGW+n_;+~P_J3_--?r|rWGAC4anTPjm3od*T%{}(sS=YMz6Dyhc ++z6*j!?Z75Bfq)G1X4^g(2u+ha>q$FWeMU%}JK!AS(<^TQXztPF0!E%aihNVFZp@5WT ++zuj(87(3N%YJbJr*y#lw}QlZPIA-ghtX0mWFQXe-f&=|1?55+e$LrHi?tf~?mvnBk}P3t ++z7L$X1h=V9DMd0u7|8X2!{y7%bRs74^_?L3*hW>*rmiP5Q{q6PUp$85n;e=L(f>xZ4 ++z^kwq>@yZo+-Rn+u(TIt~2x ++zjSF|(`Ox3`E*xaP%l%3}W`55_(Z)rMR7IXtlqtOlv56A`0GM#&xUf&-mt$HX@2mEr ++zNbJ+xOiO}3umFHg)CxZZB^GCoigNfNAprn^_%6@Wo?^oIQpC3)z8MJ#NCBW-kEotz_#ut=QoC%#n%pSdi+l)xAgVHa-tfiM#_#ADAKcqfFGsn; ++zC}9EmAPNFN;zFctm&8KcJK(rvs`NDaK>&2%_XzLzt?$r!+W;3>u4a9^#v;{BAq5J6 ++znPI8LXgKc|nWEEKhKEOK3ljkg!V&HYpPfj1ZD_0GaLW{@=4rFJ ++zT_P-%(xE^>ku-lf$%b;Dtin(XgB73)CqryGZigiZj*00_6Z=bySu^MXdGjivIf&C} ++zLxjOOSA6V}FBEk;GNu(#6*%g!vPiu$r1+Gkp?X;d&gz}n4I?isw;!9_m^o7A8!Bf ++ziwjnLKLCiu&;#Ni?gbF*dDkN%ilKs+;~)H0{O0t$^TW6)pu>(OGv*v5vcd=>Bm^XY ++z9SksFYjD*;mwc=$L%{#2jtS_%D9u&lJmr;{n}P0dRRKE++b$HjDnafms`I!ojX2dJdtEIdM+MIWRXur2ofuv6ulVuNs#dwj%~ ++z9;TPQe!lJ_H)ofeE>Zl#2VVL*Pv7_*We5R)ga|#LP97+#c!Yx+8~Jzf`>s>}IrVpb ++z<_jUfmkIT2Od=kch`k)*JitFkZ!2Pg36PS3BR1Z1UXhLG6%lsW7CWD-ZggIhD%Jnf ++z4Q_OeH0$Y-{q|tDdWuQf^ElR2(U5<8}}44+q8Gr;^MoU-^uukm)`fGRqa>58=C#> ++zr;51)Kuf}=T_B-A02m*ccli4keESRdSJ;9*Ez28jYbi_$zQaV>$th6{^YK`l`ZNp0 ++z1S5=aVAt4YuMFsg>4egbkO-p+z0Q2zeD|Dl-dL)49^m ++zeCfKwcYb_9`}N;OMC|}jAYe`ym<<6)5W?)$YwvI=2+(rCyoS0N-vuil^F2(klVJV> ++zhQtB~m;itTq(!AG?9iQ7t(7QQpaVgdG@Z?6kxH000025G{9dL&<1U0NT#At5L9Om400{x5fgbdsKtKWj7__Z}IP%4KiP>lWlBoiq ++zt1arLSs=SbCENg-5Vt=^y=)TOF!?b@(K+CRddKd!cGa;0jTP2B(#;A3by_dGN(27E ++z?%ATf*JnDTghD~601!Yz2}BS2&`?FVZ4M4xMP7CK_hD+DnhH$;;A-Efgq$MXS~D&J ++zsF707ae#e%DDDGN<~;O}haYno1^@sO7yVUVH}s;$R}PL~qRxKdch^_}ur*cnmg+Af ++zzX~8AApn#H2GBx4FzinaS=rW2kf(HJaSA3xl930|`+v{( ++zv{W#}WRJUT$NOexTo5)m1p-6=QkPsjcedt4>&`RIp ++zFa#XI3}!GRZ$6WGlOX_lh~J+%-#I;0$Ke4;nl-Y)UM|Ty#`Az_4@N&2O!se#O!lJ- ++z0N|m7pR2Z5XmUY#O$xXw)xB--UrA2rX~!X$MgRc`AOg|A5Ly7Jd_l3>VE9)!f*GA7 ++zuI_MAbbSLr2Y#8HGgoCXL_hW(T4Dto7mIVmk~bc-*ntn?qN@wCg{GL+R=1^lI| ++zF3R_3Lp@El5ENe3%8 ++ziw7MLn+m{xUEBRTF%qR6ErbCLW6v$4_b>kDEQ^V*`q1Bm8zmYwn(7J{>q-Bv5inF~ ++zsuzq52@3#JsE8VTC4hhkL=OhgKvG_f;%J3yd8&=d4Rp|h9d6!LSv;!&V9;!CZ-bZ? ++zrztgx#{i1jx#80zje~ne+gF ++zpz8J2DNCKAt3;4{>`}jLg?KXz#`)QbIYtrk!bVcz9a*Y8Rq@2)b`_yHaq}; ++ze=yC?OE=*eGpFh%i!2kX5kLZfVSfOC2t*$S5ER{sG@;ZdAt~Y@Ny$dCf(;}90Dy)1 ++z)+cM%D?ed^%uH|QazE55aj}w}VF{3?T#U=?F_{@U0KTQopvHfAT`sHl5v!N!65nBW#Kw%RF2G9qT!;%1y(S=802Y@7DC0Ria2_PT= ++z1Z+zt@i*Vb?|uRRiCNq}p^r1tBh3e>KRe7bz(~A6t0OmPy2c%$%P(=?0 ++zPyl7lARu*W6-{?INQ1aWmSGf>(z+d)2?+t9Zk-(Piyy4q>;njC*7;$XIT;c$D`pER ++zkT~=cQjDI1G1nx^=#mL_rT9Z>kJDR1KMoL7Qx_@ecCp^ZFoAXp-4S-j7!P9qDCru$ ++z=_PBt9l!Kcb<9K(NPrAPX-qhSzy1w=^K$?qQlcsIAg02_iVO3g;A)e0j1LMGj`cID ++zEI>fxD^(FCQ)v#eKF9g<#7ZKCRH`mT)UiDX7`3r?!AYrSKaf%nCm>1KNH(0o$}7Al ++zL_A@1%OntVHk|3nMNCvG-f)oEAITe~&zoa(^N*{L0#^D|8{skMj ++z3J-yM$g}5_fYd5MjpTH2MC*wENMdr3p@XxJas6-kzbUkfiR+*iO~Pb*fQ171OD%W) ++zlG6}iQ_9)Hl*f?Osmcnm25fj=lt07uZnj+F>mZffDlJNvVMD`PQ2#!j@X2r>3_%< ++zpGNx|G$h3UY)C!l!h)tb=?MVdn^#6mwnTFT-Vb1)(26|E+5{9!IR;);ASeR&7Fyj_fZeaKZ ++zmV`4ngR{gheV2KDIRK%IJIjS@8ssb=*&sRo@JPcr{7bD<5(LYTITV+jGSgMB8-xJ> ++zxZT}ED-Hv0p;G%Q2Q$=?!wb&v!LP|IYAxMnx*r+EQ&-bI%IZnFBuan+5#1|OZ@9X| ++z_kzwRG$(-s5cCc1Ibj*Dyo(jrBn0=v5?mipo#7150?Q7+`}?ZA{GX5@GZWjn9XJgz ++z9u|a}^flx-ToNgHfq(=MOpWaTuRs6*!QJN($I%1;-x9p)PBw1dB6!D1N*rZAxd)J5 ++zN+jJj3REbhU?atfsE*-57{Zh4o)8E~L@;1YB0gQw;{jO#Wf~ro^9HLUWRKSt{OH$- ++zOu&H=lOU55gCXGV`3sE0DA}G*Vq2kE<1YX|002M$NS^CtGK+zrRFhVKE`}?~Cn=LT ++zJqb7cvt)m01f7m@?m{X62_UFDiZ=E*8crn;645#2}7gEW=3p1q`-u*~ex8 ++zqY-pl0Ra5$ckWq9*N6KGz<)lYv!@uamR&3CJx+8cHdvuT0SN&BB;BsDegrLO{agMI ++z2EnqeKmcf3*gyk4w(_Uvadikl%JggVlqs;D^$@xP;V%S7;@8^T$15&rlKhTbG-o77 ++zPR{q@hmWz#vE ++znZdtTjA>b4b*CgU+3+%#PC4-rlrLv|mIEdl70umH(F98$(l$Y*+)qjV2 ++z%;LdPbb1h|un#e`U=1yRfB=xtV_Ui&?I{RAD2g(Py9d@tsX%J)S~X+gN+y5Wz{L

UA%^TIhdv2-y%%Nl)Q^$VaUD9_yHz;0O(#N0PrBFH(WUO6U ++zpx;GCzyaMOP*AU6P2G-k1kQ-YWp=Z*6y}C%fYi#Zn3yZkJt2@an{=)XN ++zo2eN&QSIz5WcfCO$P0qh$G56f?T+rHZX(^f(>Y#NYqSw_QTnnNW@d5Id>TVpA@VU& ++zf`M#^h*S#U`~k{V0c+;~g(wcp+Ka*4Ob+M?%{G_VY>BqTkBh<4a3WTiHLyjXRs5-AZezUS4cb$V3p3MJn7Nw#oI(*bUWxb^|Z<65>7(DO78e4MCrN$^5g49@p_x ++zIu5TMjNfJze>1pGbvt!ovXwk{s*dbwkNV4)9CvyeP0xMyG&pn*d*zS!OmF$~zOixT ++z3U+enDa%jaITUyKsH2nVy|jxB-pZtsHuCBH(-`)3p&iJi_Ias%UOGWRO*OiiEhEc4 ++zqF$_}f@+=gT{Im##Inw0Ha483UfEi$_T$%1*Kd`Y7uKwOn#;l=K@>AstWhY;HH`3c ++z8DoMX0zQ!v0ip@mdjoo|BYFTHxF*bPuzB&s637YVtdoU1RX19#k&)4Be^9drO9Y4D ++ze?-cjKJ`HNj{C89d}RCG6%r&LJ9Y24jXnNry>rpNdiCltd3oo(?L$A?(LVXq3~Kc( ++zF)BHC-TI=7T7LSp{KY4?-uSp^SuR;_`B*R7`vqOTrKQE73m-MISgOk>mUp_mG)=R( ++zP(@+}5d=Z#f{p7$gIzSbIF~`r%W8>aN0USnOE4B&%owGC%K%Ei>4cem(%h;T!q$`nBaf*Kwd!K_N*#_n_SBSe?;m ++zK2th&@Y3lm@3~ld>$|RE@A~jW`$&J8TKfHNTz~86Iv(%7i}inZUVHKDb5&^9toQDm ++z;Q4C`UDF~-7aBF{>7tezKY|nl!3$3v5dt`dk|tiGD@jjVL>An9my#7r9v>~^1VjRT1nd(qVhI2#Fm(en$ySQM_mgS?PC_pYBhw1SB6EhI9kA!-f&-)J ++zy@;n{`&Pb5Z1;%&d%`IW9IBwYDbY1bA)kVGQ(;&v*e;L`9lgB0;sfVShmXA6h0>W5 ++z`|#<1+|xe&lkRz;ZH@|!+$`pfi);!Hw> ++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 ++z%(EcjMS|CwOMYlvx^zZ)$)7wUKjQ_*q|q ++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 ++zjp+WNZKGJc=TBSAWiO%aC6VKostc8(7&> ++zVT!F1_k=CGe~VwyzLhH4z%fpB&g*EP^lWf8S?_SpBk~V!GN~Q7Z*!*n5pc8VsBYBW ++z5Z+*I>4=vs%o3Vgf4BU}dHq7D(CgLd&7`}ij~-irS7NEH?LlD<5&!PTpTXvlSI5}~ ++z65_VDg$E}z&#~I-@vR(zr=Ibbt1(hv&e?j-y`0w_UOr_yo29~KPuU?^+0gv-Ctl2Y ++z-4kb>x@_6lW9G;1w+`o}M(6d|?&W2$scG1OrLC>dx7KCc=GjZ^Bh1VXs%BHh7Jl*6 ++zJ=4?WgTGT1Ts7aju6HOUTnCQ_8W`yH(0vy{m!nmsJ(;|n-aTn_JngAfIqly*dFo3_ ++z8sm4DCZI&(Y=7gOwb4vF8B4!J5QxP0#~&m%{Af}nk+RO`uDyPN60aRXU!3WXbR(&T}vi{*U1SWsy1DDJY}(eM!TMvuAavFPCtAy;I@oPA%LOlUZ|N2j_`ktRlt=BsOgZjy$h|%9@T71C#cCyjoe0mZX ++z{P9`xzE$ezEF;FJ?XentHz6 ++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 ++zmt)~WI1w_z2~u^J0WtsW&{h ++zP?sTX^=f!38wfv2Uoca-68DjQ(mUiNmE>Ddc;pf#R`oGC@hdx9!&)Wz9*&NtKp_V( ++zZijf00l*iIRobR7wDd-7S{c19hA2YjmCWC)Ed*%0pNUYEUSQBF38c`BtR{_#)j_b^ ++zzb?C;#Km;9VWns)93w)kpdA7HF$2uVHsA@bU+3Cf9#E_RK+yjD^DA!d&F8T`R~CfA ++zKKg-H2)Y?Ly_ESG(WY+*4iDymt?Dj>b#ap~oJF-q+}t%O#mpr ++zrIpq|Lh70X26%EUh)G3#2c@&2(E~037Uy*rN2s@!d?%*Ve#Z@$qjP#4j1D7escA$1 ++zJ|?d#hCE`VR$%-p??1oxpqYf7UJdnNt5-(qtr-;|3k5UlH`y!hws0ICf+>+5IuNZ7 ++z(q2Wp)cgP#c#*pD$)OaOpHj>H;pg;kEXQ(badM>T!+Kc1$-;dSg(=)Y*(TU56;tSILN(2Zpjp`lr3v65-}pohclx(R{O^d ++zZ>HhAErUi=epmVGtXA6ZJ0caGFll)1_X%QZz{qz|Z=!^6%hE#oqsnqtmCu;rGr2ml ++ziJ=H_8x`Zxqz!aW9Zn2l+Cuxv%HYXh`%3pWIZ6LLmNowOHGzGV^rwv+L-nPAanHzt ++zb;d-^H4}UYYq~}wnEKBEpDI2w8HiG>%6}pFJ2xm2?2oi5t?kMx#cJAcV!OI%AD3jnO>j}*pQkDH9bZE)&0hVHXQaJZ0XnN9V;0YBV ++zlt!TXxc&X+Jt-2C7r)$zdp+NGEl$|a ++zl^a9(ClpI8nOL3Fq=shE(SE(FV}TS+!h;G2=`aAw!&`e7KE`0<<)b?lPh7_Qk$!lv ++zoMBXYE816+G2~xJlI!#NCPPMN;tL;CndWq8Z$0DxO-6wy$^rlnwRWVXl7X8h)iMuVRcB8TdlW5X&Qr>^7Q%mVkve ++zekhH{G-u2T10lHL)gGgZ*8H#3#+}GtpCt=BQ)#&{xXw2&`j0W00Dx+W(51Tjr_J$W ++z`*$1ca_(z{zat;wG>P;ab{1lq(+5!)=p0Z}VHVQ|AHcf60GaOd?j_k!=bl9FdKoxe ++zphPbfd%}J%dSMHN2b@cBwfq&eJV>15&Bdzz-a49vIYC5dn~|^Dw7{D`3Y?|r03xx_ ++zcvvbCS9O5kLbCr5@3%}t-(Hv6@TiV&XW8d!AK36#w<)ipZ^B5ql#+WvvM|(asCni{ ++zflLv@Khq_Qi%LRwbXahx*x=^y%i7Lp6{y?ZwIN7pg)OqSmN3pc;*a@|L ++z)G66{+fChwldfkn{3Lpin*sG?S|`Tqc%2z)O_M6yp&saC6ZMVK_5r@Au_5cN+L-cT ++zhVT_zyrIWv;(s|kuM*d-cnDQ ++z4>&_Mcm%dty;a_f;ZPXKib|{c!;>?sZ ++z_rk%Tyc<+FG8=ahT*^e7gSeO^J)g5!LvY9o*DtAN)fz>@46uJRI#cu+$X|Teqo~WT ++zpIrRfZPvp|;e?-Ebj*x~Qqnq6oWjM5Lqt@J45n29!N+8AFR8-TP46`KDZ(srBC>=% ++z8A!II{j%}6q#xc8`U{#cUu@l}W+P0RZorv4WT7z7IL}M?Db%2>gh-6UuJ0h_~cW&J+%s ++zTmVS5X_z_|EEqqD7Dp~X4iK7HqLs$4#VTHG{M%70-O^C=8X)>uJTog1!nb7+{(RK@ ++zTdkTOyY)Hdw#B)xL;Gj@Zb_$YUCq>uB}9gvbHihI>;Mc8;^cVdNH4;Pl0pH1di%Vl ++zDSuq`DM0*tK2b-?i}d;j>9nyA8TqN_LdPvAox%}fQ~Ko&OYsOT%1vht75R7cq|AiH ++z$s#p3`hp^g#1H9=|JX<)Emg@0u73)!{+d^D?N(DubucLhW2(4p7$Sc1gMn7VKy-s( ++zBJay}wHMr|t$Ee$(Y@G;6kM!3j3z}2AfoC<624{k7g@av^zXxv_na8*CzK~FW}C>n|M_slxGY|@!a!rG3;m{c?K ++zD6^oX8CXUVe&pSj^-wXI-Iq#(xkX+_eu;;PJHRaPg ++zxw@E=EjZfdS*dceOlyGa*%e6W31S3Dcgh={lUY?6=`oN2JPl~l`iPbab85RnWb#?i ++zdwm;j;XxN8UkeMmQC37ko_KE%L&#r^rv3LS4oSf!FGCqtx9|5|{9;>&I>3Q|9N#MA&-^^64cweP?WP>VQHlhYJ!Wz!=YdmfE=9CKJig;kWr1Lsx@b>3~^BIPhr(dN?zE*lC|f(jZQX7V#v^~so#Wzd_{irbY3_T ++z|K+WFfQgw>0>o&q97aUMG3N(Ka(tU>00EF}BiyXGn|1Je9R5jho|j!XI`oguQhUH* ++zPVpKuvKDxQl?+B3I3C8tFUbB?p}rJH3%0*LdTSG#kfo2hVm6?=88Olmo;H3q_^o<% ++zN>c#TGnU}%aL#~zea30_RLB_UmP6>e-J41zZ ++zD_0uarIkNDr-~u%+7>84r3YOf2B!3@s5tDZABlz>c=xj)0Q~#bRMPKjsrAH$+78C_ ++z7s5B@#kc$)qa0%BLaganPuXb$iH$%4@thk!tCgetzxkgT@(B`8r> ++z6OvvJ?s7v0xVDkhX@<{l&XyJN(18J!%&);_BqS1<39sHKwVR-|QG ++zz7^*mYzrX*l2v>zdcDsC6SNB{l~+*JR3IATyCN516^cGlY@{!u$~xrz)LvOf>(TZn ++zUZxC6WZ}hjO(G&@R!bClh^p?tc~%Zsmo&xOZG5inRuMl4O)yPU?|?rN8awafmBE|? ++z4v%NHYN9L>qSDt8)s7;y_svEeC+3w5t~mrbgB1dRVuw_gI8{+UMmi00gOyZ+2F+>T?5;xS^A{nQ^FhJ>wsJWaW5|U-xXUcEDkj$?IJeNNaT}(Gcdm ++z)lK;d#%jU9hHM7HP4vdgUaZ8q}2h?&mS04&z%X(Qbe2g16aVB)sPEnDX#=`Z6)uE ++z@@$Q{$yw2NgHI@FGRzWcM+h3~RBMw-oQ+UL<ZM_lbNrJA4k$fk ++z$Qb`^Gc_N{%;7*@BtIZeyxxw#^wL!Br!7{g;36yO%^^HCIVHoWa5={Az0Ck6;7RbD ++zX4`VVA>ty`Xn^^h~fh6=Ag!>QMCE ++z3vOIENm&RPtr>-8#K@v4W@*B!ZS>!$KKjPL8Uk>#_nGARl*(_pf1qz&kX{ ++z&N8_DY4wl4wn(*tTv?CiurV2+O|GT9rGIB0)-)jZ79K|a=a<`@F9P)@d|X-RmXA~s ++znFFIzzF4rfpfFJU{coxBB`G3&01oD7{uU6JaM#Qe7q)}S0u*x%RmnoL?Iufw6aqt|nBi6iR9-1SE1V$YIAgM4Ob;N5drnNYuLy60h2(fRc?$R0ipeX`< ++z8+|(yudzG*le&;_mBO>c04I-;{Xhs3FVGSuk_ ++zFaFt5Mh*L!U_=nVwkRq!FreGMh5RN;iu1@?kghZmH&+_ZP&1NTM5zrJkw*0`9Djxh ++zV|mTVCBzAfK2z115*yTuC5+bZ9_D_Vgp7Z-FCCQl>^AC!yFnZ(GqFV{8>U|xrN5KQ ++z_*8en8Z*up^!7jtCrEt8f?2JEgp^>zh2}0r-w-o5Vgvy(Ok3g6S2b(BtE-VMdBW}L ++z9xoWmN>jE6p(hXOj%#2RdX)LpiYN=h ++zmlu$?mZwi%Ks|E*imQ%Y=r1IojGyr+_DyPDLTKeY8~`ojbyRh|4<~vdyH%eTrsnCV ++zz?ga@yK>R}`+lh-ibHY{rZM&rje4O-vDVoF(D<_fC4=ZU<&n-b-%$I(!oMv%bdCw3 ++z5<24G*T5|C9;&g5h9LKO=mF(jg)Td;t?J99hKekCe%#&svB%^D9A&j^w5;N(*`~U| ++zWlB*V2O~mBX}7NRwM#R%R^P=uUv#QH6%nHY@VHffv?;QQNHEkLFE!Cg62XfZ0lwgYR~1C3xDum3(+H9~Z@dSF+!QsDFbV(C ++zC`uY&yihd`TXD2rx=UQ`h?p0Cq-l8SizLW+U5s$IahIK-XTbsVbdsD)g)28U2a?vJ ++zJu4{_uztS}=$h~Evb!N??(B+o^UJ1SoVhW)vA>5&u-m4(F&a>o3SS5?Vn`+{nNlvkhkujuEYA1%80P(T1jOHi*d3c(JN&v>&6Bhp+L ++z{a3d=DZBv;mm$DPWYp6lq;+Bi1MAEU`A?n5=R3VuuW&KXVxsD4T7pms+<3Z;zR=+U ++z`5b%_j35&P?+GuOhgDNb7y#gdnqo~=jP)9;hDwd41Q77$ ++zn{APfB-Op7dzuR-K~Srnq>3TQ ++zgkhet0z6o@FKS`3J@3o|$OhQD3V%no;?qLn?ytkr^vdQj^2Ge$Am@dy46IUjzs|E$ ++zGe~4=utsjn`w};tO(eC0+fLGx%73@DK809ZfkyPnR3=ndo+F=RiuWbKqM$lpqc@-0&UEoY11X9fX@Us?a ++zG|~*4)2mQjx;r+rBIiGxmi|GW2{wns_RvuBNEOfG7bZnVmLeavIL3wSN(Zc{Y3^c9 ++znH>I92d6*(CN;KaOLF|%MNi!9BfU-SSIs~kT>g)&O{1ffT2P4I%i-uc1eui4>`@Cf+NM| ++zV#Dvktj8c&Kym7OQzy6@CMoGwlUS5PB~t*1kZ_C5*cSQ0CN&}K(A*lU*oudfkQt8P ++z;TPVjClDsWAi+3G8u|Pe_tG{>b~FfQv<0iZ<^5-=FFF6hZ|`AGf_EyfN$T*DmylW4 ++zMmI-4Xj}(hoVafK8-B{+7!jMt5CrsDbhQWp((Bd2b?mm(LwHEa=mWT)?hl8-0>3|QfElgPSITF`V9 ++z!(n{%R=-3ZrPIc)P}h}2hVI$9;JX$`WAa2o>+FL&T{1=-Y3N@}A~C%M$oYQgzUR*F ++zw-L_?08kn^j$DUlLStxq6*6A;hND$Rs;r7WVNqtx{~>%ST#Y@R2O$6>JEp(r!>LSC ++zr$oT-raA9XSnf*_XT9Js1`mNL8bx-;xhF$|VBaCX8jJZ?8$u5N^r3%b+9)zVRp ++zE-K61vMayvLmYw5pUw3jeyp@Df9a&5mhlgSc_M!ysnyflD&(r0jf0_&J36AbvJ>1t ++zhXjB0uzr6a=7YzA8;B5WM1-S&wA-E^_6kC-MtF17b9s?*6Iwrsu}tnPs|AUMJpe#@ ++zs}IvyFvj1cBaT<H#GFdAt3kR-zJ=PA4*QYc ++zkU#NL^q^2Y7bN|)3>pF{Lt;{GswE)wmGon>_3lM6-Dn92+CERSSTyHsUd{7k%g)tJ ++zEHq2raHe9rp>~=L=acm|0Wq3S;$+D=64$T(gGEdk%rBO5-Vokq;#x>-GCLcEJ*;0& ++z(1cf_>c3uSyiP4mqt=Vm*R8oZ7YrdPiHCvbA`bU#^)NFWw*ByMX6JlSrwdI7G%-R# ++zMA1WK6g%)~#beeL435iCgv3?3G>!+5qZ>#y)O3{~V`1EA?#Cx>ZNO))0lun&0vU$&0|7gNnme ++z!2e8H*m2-q8q-rga(A)I?aAsn-NzMhaZBM@iw049Hk+89VZSj?D(Ac-wMwEfc>%6N ++zuUrB!2@pbuL-JEf#HWQ^-g?HUm#H(9_AEPv7F+*oz_I}$4tmi}R2~2-xaHKO{e?l~ ++zVZ_iM;q!oDoQ@O9zTp;FLTuUpSQ`Cej^V8_tc9=gff+0Tk?R$1@#yGq__`<>=;dNde~Zgdwie+s_66)qhh2kXDHm_tHEax5ii ++z`OlbFcUu)Rsx`GnyeL@gedj=Qv+o|f_%&milHSjAAEX07(8A@X=O?#nRD-Tkvod0KX4wQ|2U9s|%;?E! ++z3{Y{ifq0}?c5+st&WZi*ABK%prJB}Ir08}MS1hn~@kn`Fm-XZjK!lG0h0+tm;2W~1j?JjD{KYH@rnNx ++zxs-8=`7K<^r7KcU)Il@?ju}0-{U3qp@klP0TNX~=yCR3!1)vNGPFvj^8V`rxYS$M7 ++zv=EH2V)H^#EY|OJjQ8`!w*QUmRnF~j1_a2=L0p)=g_eZm#PQps$t1}026`;Pa0gkTo;|_XD*hV9Tu!~dRhLdn)&__1KJj|=l ++zYrNg>e7zFde0xO<%aw~{Bq2!9?3A<-#tnq?v&R(YA%wzy)mYa1I`&#ah>ppzW ++z?71ysLvfaCbtv%vwOIVa6Ej7q!F|CTuI1zd+~i3#KN(saTuXXm$*8TeyC7(jSwbS*^+fn%{C2#f@n*wp4z ++zma}@kKi=7MPw2ey$=15I-NqEg2)k2L!;T(gs%nhIivJ;pc3ouUGxnI+#E2K2kco*a ++zpb8H8Rc_GsW2IHG2bp*)iQ_)}Sk(TEVtYN8t`gIS)S4O!W*NlsOx9mO4Fw6p4{}Y5Oa6NPg16eM ++z7V}mipWLk0Ae0k|>WgLMA^JIMyB8#PiiC|Tkj-J~`~)7W5RlFFMvnSgg?ey`C$}_O ++zJEGPwjF?}=g$|u;!atSl3x*N^hS;%v$;;LG0J&$RqLteTLw~srU=GTrB6r*p3aKNX ++z2C(WvUGcm6Mtnafm#{t7ObW~Vbuzb@d}nB=R8WEW&uqpA1VqDjGlYmW@53o1HF`!J ++zdGn##wD5Y{JpuWRJ#T)yiu@sFLT?z$aWz{pLCeoq>F@)N59TosDqTnRCIFT}s}WEsl5Gpoc?kFK?IuK5%2Xc5aV0C$S^nN1Ft*p6 ++zG=in-?%?Vo{P_Xd>qNO(_9$F1MyFcPLU#(I=7nY}sM7I(Of)S6l*A_OG)eh3?i|PS ++zIH}nLez0BNr8MR7cPV7N^ReYITg@SDB2J-xy~oG;}V2qHhLF~Xd3 ++z79T%-5;+nF^aqBl$7+7K;~opVB&LNY20wzRu{q3xCpt+`bg3hF3jU?vsi!H*Q9-Qp ++z%kMqv3>kn_GtB!}&KPbKrqqX$X6z6L)*swd#Cp{K11Q;GI7w)0z5Q6kgBh6^R ++zUwD917pEqSxS2<=j%^SXmBU(&Ls=EXP4`|KInlh?J?ss2^ehRafQLy`XmFqt9W+Gr ++za@w!`76CaqX^Txi)fgk8`_a7L3I4CcJTIGv!fAs09&N!9ZV6@Pze5cB?uNbDDT;sV1FVHIsq9=7^8c|P|%X^iT?ck ++zVvce%)TC0-8#4-#pT|&Y?ZaM9)z;+!LN{|5Huz|9{KMX=jmTfJ@gWu^i_{agP!d`M ++zuZt%hu-rX<)`)!YFp4|@I#Em^WD1!Eidi^^&Qw6;HTCJ=<$ ++zkW()WrP|sw;8n{se?W~H0xr?bH&-h~Wx|FQClcIo0+Of*6L)l@ka9y{dAKhcr+wtdL2r)9A ++ztlRL?^*|Jk=C)U6$>Ck%l#^a$#M04^;K(el~A?JJZHGuudBy3}BTM ++z?y?&cI3np-rLIh&kCWE+musvskwZrG3?|S&OVHY)W51m^3s@sPp^reOm}C9)KH)8c ++zNL9MiAS$4JIZ{cpL3MzVz6GqRWOQrr``m<$F-c)yWBleEz(&Z>QL=)D7O3Cf>R>f1 ++zBOeF0R{T{dAVD2o0K-=4jh5uf>$g0lkN|4nKhJK(l;jB?dPOy4PCJ|yYp-;EE20AZ ++z_k{08a4rCNF>~ZRy24iuE1cni4u_&jz^)cAI+Tpu3q(GQVW5?6xP@}KJ=;||C~#=5 ++z2v_Q7;?5Z=OjSf>WEYSslOX^3?*l8E0qfc%%eQ?B9(vT2HAJPc)9CoWA)W3$MgaKk ++zO&;R&&d{_aF4YIi4QYZuiczob?cyV0sIWU!9@Ams#WOp!6@H4eaBheh0E4%S2L(rk ++z%T0A&MJ;SZ`I_7W{QOg6a(?`~@-Ep^y;k@j`F!;-X0-ya4?4#+qy@Dk7ga6i@XVlt`ed-ZoEa`j%Mb8>3hBn%kfWD>;g1Ie5EH?PFc`VJKu ++zhG7B^Z|!})Ny#I}S2;9sTzY34qT`fM ++z5SBJYqn37;r3S?P!~H^>)V9=PIH9~2Zi_#+QlWRd1#;^cWEwef;bIBI{(hXiSKEeGvV2PRZ}?eZy1pqH4M ++z_Gsjt)&V$w0aBvtt ++zt(wdJ+S?h18&_-N#wPpd^W=_&12Po2P;J%Ej6B(U#u-=RM$g{Eq?w<&HJ@H?kP609 ++z7ni(lX^?S&xJ|Wl9V}Z{U@y+bsF$7V`0Zca+?l$)%2D>WfN%E#ZOuF%N_ArtjK7<$ ++zi|{(s3vHey$Ye$oju<3l%8J~RoME~JQyHBD@1I2~_ ++zxpUxzx%+Ij`RBoCl#M>|$y>7#viEs+(c|}tW-=eb8LAj3-!F3!0!9oK>Z(^*+eu}_ ++z)*8O`cnB=oBo1Ex;0p3M^`=% ++zrt(4zeV&tfa2;hd#7)`gLq_*dlLLL*Mw&}q6_H5l!o@{Id+pz%NTz*wozya09raOZ ++zh8~OLt{4hr+|Cz(i$kfb!>)!bFD^hQk|P>r)U=t$n0@gK#a~tuyws?A2yA@YvD*Ng ++z?X!)H5_`DxOI%P1D3_Cj(VL|F2V8Xbjsc= ++znK3l&1KhK8-gOy8-pS>BZl%OjGX#M&&pdY*Df=% ++z9dvyVuu6U-(0_pY1T9cMq`R?wc&E{TFDCo!VJ&?;IIF#8b%L;zZnFPh05TKJ?0*+= ++zqrQd0f~(0gCN5AD1cH;(Gy)E2UO=U#zTEC3CM?GnF3 ++z6951T*^<29n$Plum%BxA8!iB`Es64f4_+VsVE3l?{x~q5P*|sVW$qrG(e{E1>(-Ou ++zN96F~6YoD#2J=;myJ37DW8JjvDI{uRAtgzB5;#qz?s_r_01PsbhmRiTx?}|pWTXCy ++z5Y(+WEahpw*PPFkKEBwB=`M;;z)`Y%_G+elYX2i|IX*OHH`B{$f%VQ^>HvU>Y0c>v ++zUsdfQa*FB`em5G)!kA4;oF5|q0EPx7MO`H>xe;A*)_gwgs~>l(uThM)tM{Fhpjrd0 ++z70;4;@Ic;1>L*Wq^`~zf^WE`#UH&q4n5)RPJMaJiK+)%yM72;Bp%=@R<}IZ5pbvh ++zCIwP8#=sejaq1c_iuFT`0106G&~8&#`G%b8K)rn0Q2&Rz6_ad4Jr)8q$jaRw<{$w; ++z{upWfz$m)^EzdV9LCqxR2WxGi{X4ST#S)J>pF+k!hs13zXbRO82^S@`4o_-?N{y~z ++z000nxNM^}R{-#ZJj=Ft!k;8A11pojP&4|Ui&_Rp1pVEb8>;pi4EU3TGRlMjb{vG6HZ=30)XMYWc^?l<-g+%-y|y}`?YZY9yNPOyQrrkcos2NdaioK(xFMDN4;R}n ++zy42$3N%H^!nq)t{q%L^he%!G7<<%QrBLA>S1vHEYpRWAzz_~x2JKFZ}B#LiP6(+NY ++zGB~2+L*quH1^~=yTX&{&7UB9~R{uBa&?!5=VsP#FdQLO7MGRrvuh|( ++zyp#<0Aj?P}kSE(R7Oa8*003RqtypFc&_T28l2mdrI1E5;So~W!{nHZXPs9bB14zsc ++z9~xWK@1_*1Y!>O{G}wWjDg@aEIY0%qEw|vTvYWaDCt(sq=aXe<4%YVOnZ}bL1PBQ$M2P#7bz{fFZY$zfn*bli ++zg0~R_O|$N9AX~=~1E6kE7oRHe{69;c?SLK3?NQ$H3b=zi)-1v&n2P`~S`E+{*u_)2 ++zqVYsh6wx56T&P>u1+cm*h&i>AAow`>?=_p{Fmm%KemUU{{WV;7eYOZ69E8inPXGg#S=s(7-DtcHxNanR2k?ZTTl~=C_(`M ++z;LnmFp``G_OEAxcpFf;&$JLk!7tbOxs4tceCvGtpER8Z ++zV@1iJNCN4H+CVr`=ZA!Wp-$2b56}D`YD;YE{8s#cDF7g{k{JijNrD#g3#!lmY{M~h ++z0iZI9!De2Sw~eY|S(!PA4FF(g%i~D(=dA}yFhU_YkWB@8iCJ=ocg7|W{Frjn_p-qI ++zcv&=`#S10SQIlme0tuRE=v3@l>_QCyDyx*S_9pEu0~w1}G&&4|00bM5Sb}PN;6DO% ++z6mbe0x;7c0qy=rfG&;gvD1YnXuahsE>57K<1AoAVVeP;)Xr=ul!!kvRo=xFlmI&_7cw-+D;fq`x< ++z;-m@y005Z~Nl?nXn)L7~#w3$!$}fef`{jTWRl+Xv78N~nbj27FG}Dk)ty%1b4geHd ++zBELMVL2VQN=W(b##3x7;#}yYuDS0pxDLFuWSP4+jAjLwZVqu^l9pESedy<-=%BNvk ++zdbv!)R27-Ph9{vd)_(qF9|~xwp%xpW;?MyAsvT7BVQ&#nyHd@J85|O<;{!rN2?hZg ++zDJX12*H#jY6%!7rWP=|QuAyV0Z*wpA5S?op!0d2LSTCpnr_nXLY0s*ll{P`NeHM5OLsx;6s ++zp7Ml)E1f1#YmF)>YJR9mR-@-AMgZuC ++zY8W_B_mMy}aa@!)RgF--u}oT+i!J~N=p+vY?!9;wAwFm!SM^eWoWg-<^N+gy_}9Q0 ++zp$<^e3B*=hPG2(1!b8!IZK5|Y<3B?JM%0NYWvRMkj_Xq}hA)>n*r81l0J4~c4vwkf ++zd{D1hiV|88L7OCKv!Ni+LI42J5?!z0dT|D>0jF ++z*oN4m`JyLEm<6|+`OUX6d&9qYkniw9E{P5?7)&8DDnD?r7encS3KZBCc0{YIEHV(G ++z0ssI#TxxQ$7M*|A#6A^cv&=?8H7vPx0000^N-2jD|0l<_rk{%UF_)V@H6ixH9EGHX ++zd`#<)aCb)lP;gXUWU{L54FVor=J55OUH?G;pA*PDU#qKMd!?fy#7+nBVQ|v|MV1u1v=;SGt_)A=%-i@SGTv=TD_}6X>{uzTLPKQ|k ++z2Y1kaW3dfhu#xt&9mSJQmB9d00;yOU@iFX$}h^v@_mYvWI&T+e&#{S*I@vLJWwGL ++zS;{tsOvlY9NgyaZV(00RB+ueFASjO4ZdQJ{|GJ ++ztl{yRp^c1sgq!ZA@vflB|gOOaxpuQdq5T5ou#tNkw=7?V5EpD ++zv}BPY;Q}#gjHWvjO5fK`iIuy4i>cu4thcfTAV*7~qxSGDhUiCxi{Eaz|MoBCMx4O->BWmyf0K0EM^Omzby^i7k*uf$6!WjRzamk9f ++zhO1>-vB`Y&ObOPVW_iXTue<;O1;N!Z9}52YgRaYy-qmoZa8bREA()V0lmj`;CGXe6 ++z|L;KD`;bGR9Dryf}=7v)oGZ(&Wn--1H-0aHHM ++za&ncrpWMSFqR=77-IFL{8Sj2R-1RkJD5Tm;ql)c3iXi1VoN=j2ZMHI_{x`3kOYP3iFl6CFV@q!&L1q>entyE_t4rsa%fdH))3Q0yh4X$>>t^HjVHryTm-&jJz ++zf9By(ImVNzE=Ai+ZKWcj2tmKOK`LsFI!#ljsOO1#uG9%?o~Vjj@e(hUN~NF@00=}N ++z0vU*cR**gN_2L2I0pg7kN65oshPbU>fvPHJq)P-%SCa>atf2!B>eb-?0==;784f2( ++zoxv*@is;IUA_N0sx_TKZ5v8mgPAj2^^^3dB`;RW*f!l4@FAm=s;j$StOlKX#B>E!4 ++zSwZ;WhYoo+;K7CkE25QEMINE7K*3*6Cr^~2wEV9gmY7$$>K_hcIUI~>G#N!2F$9!f ++zm@r_#2LTBI0T9vM0R&1 ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 766d720d7e68bc735ccde5d732d2cc994383cb2b..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 11810 ++zcmV+-F5S_IP)#>7PGd{BIXV)8b*gTd5qE`GFm6--?WYP(J^%F;zYv23ItV0jU&Rs ++z1f%U*+DwU>t@Wst)uW^L*Q54%TGYB*i`vg4?<3zLzaf7i{~+MVsQ1NsJG~ ++z6f{mxh{RB8(Pg`j8nKVnWcz71Vt^NwBMKo~e-moN`o|$^{ktgmI6jZBL)#W2sNbkB ++z)Fra5b6U9%IzC4)OQ*KjRld2@Z8T9O5v#Cu{*k{3S3+xThOHO)JkLnvIQa$Y$Lzmi%xLV;eV?Ub2b|92R0(7 ++zspf=d2KNKmgd6Lo@Uga!5y9D&HjO|k~!S(Yr1T3wCU*YebyUTg+p ++zSoWD3Px+OQdEKtN_FDsCTQ{9)JQsShY;H`SRRk%kDk+U3(c`=Cp4t>)o7aC4%};|G ++zF7Akfd<_BQ&lPUWfInRky&l^&u?xbsuj>dz1E6AA#=(7BGw}o>`ZN~G$C0XwsOo7; ++zlS@$?)K|3>Pm8z(tu#}(Lt84?7e$najIZV0vkFqxbXL{0<$UK7wLhtKlAwi%NC_LCdeWKyBM?s`8yeCZ;UHcSk+z0S$-(S<8eznY ++z9OyAI0vc%NVb)yzHxi$&yJBo{fYf=K ++zZG`lJwM`)uZ7A|N5pa5rw+j^!7S+%Y%HM##S($z0+i#ZDsC9@RR+n4pCfH}DVfsx8 ++z=r*WSv-@`JYQWU%lQ8}wtid??2!~!y8xY$)bM%V-RCa~FRaYYRFkW8w!y;kN;YFBv ++zdjiZ;(~GS`XtqQSrN#cZ!pMc(cd)~#Eb(6O5VgU96|duRqm ++zpOuCQm!@Fy)k&CoLjtDX?10fE;cT05SrU&)LGFkQ44IIJ&bYB2--dS{wmZVU6BdCyb&vIcA76}i?O$@7IvUei+qNcj=~sf}K3ONl ++zP@OXO{$+#etBIE=4?F(3{hhn>>A4Q+7BD@~rPb-zEd4M0q ++z!$ocSfUM*2NmnFc#%&3hdmo8l#X#4Zc}D`plydH2oSXqY?(etwO1K1(-4aLgr^G_m ++zfm{Wz6pxnL_^Iykil^tuBBc~^c1@r(*f&$)6=@KW?r%s;%wmPI80Bl@NCb!L44Jda+b-txxXw49~I68fwpo+ob7$WIon+Wlgfe_b~!3CQ=wD)`8YvB ++zBM&Ffy4y!E^27nxV!V7%Rx&aqvS*G*kwlIU$d4~53y+fn?OT=sBL$yTphhCeF9Pff#cy{4wY*2IBJrjnFAF ++zu(@1|FIw$5b%GvxwUdjtgc*hx?O4~nU#Bg-uo6`p#$iJ9Xw2Tf0{^?LX2=M!;`#_G ++z7U#hd)Isl1!B_4=<(lzWdE>l(ui=Hps>LJI=5SdnFq0H`kNkg<=o#`LN0Pe3WeLOY ++zsH~2z#$-dkn=2Z93bNa85DApMsK;k1MTI2|pE2@$+u^|SToufQ!h{)Q%(zA9KEJV_ ++zU;6^oZJUS;uLdbnDToMajRwx#Oh&3%yG@?GuB}DxbQe+uDQpr6WF&#l=Y!kh!IY)r ++z28@WjRWfFL;!{~}pa~913Z5g+p9K1nVGEghbV?VpJ#+8q)3`%Q9z>&$O64vu5VZ~8 ++zM$)*$uGZk{X(oKf$n#a31MOJ~*vw-Rmbw}bYU$Teoo7yiLZ1dZNic~)p-|x5bI--* ++z&6_cyBedHDDqj#ls#Jm*j68FQAY=IW{kz_-rfDmP+R_#5V6NpEj9A_A#GScxuvrQz>H|-8A ++z4k}^KC{I+6i#aK_b5`Fn7g-Z+FcYDfp`JmdQsJtruEO!hACF001-nF=<<~{T`cC6f ++z70@V?5hlV?hPu>bqzOsbXP(cRh9^^U4~GXZohLD<5lEq}X^@d ++zoOHM#!WWWb&VggleQ70D-8@H(N_`P(HGdp^-Jw9oQOzhx;LyF#F%x!~8V8XP_mC4e ++zlLMWkfnIK7zHRK`e$}NIpC_VJ1_^pW{edtrMD6nydB%T8eoQ7g+_ouycHD#Bd16j= ++zDrC^6DdDwG8}=R;E5z|0(~vlir@Y{30}fp;#m7&}@cHvHeEO^m7oQ|x`Xm94EG4|7 ++zGm$&ZiPAYfjBm?9cv%6auPj03hH^v>7=!tTPhe4RG8UgZ1M7BySbSMOsyvZmdXeZS ++zmBJ3KkPc>;VSX$}n$FYQOz!)8h-3`ZA84S1JcO|u;S&lR`3+^^Xv*j@ ++zDjY2O{4?z4v&V_5JWp@v-~x0=2voJc6issleDEYE&wugZQ!+ewoq)?v6>#bn0h>2T ++zvEM2wRxB3K-65cDffS7qDIzl@m^x7cUoZ{f?gCZ^n!Qt>qq1Y<$6xybf;w5#b2??> ++zZgQQ&34so}w-$$Q ++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 ++z@XIndWg4t90cM#3iyQ>E+=;lnTnjGG$ ++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 ++zQaSbhBa}JrgJ{RK^IP%5m9{8%Osc> ++zk3kWL}>i>PXOu0lJz ++zfU?8Go_4I+HBDlT78zbP;EuD`%VqvS$LUh+nX8n!rE^Z;ZTpo^uGBYfbJ_97?r{4t ++zV-A;q(Jgl&QFUke0t96&ENWMkI1FmilqZU(!>VT8Z$rGme%|*tB!82IX&QAJ0z4md ++z>t4}`4UN=}&mnx#E9exZ36XkgV{Zw;bhbK61MPMyvzH#PZ(7gF!#E6Xz^RI#d{G}j ++ziw=L^Xi5(Grvj^beY!QLnQaMKIq?$GY|X>86RkJ_M5QT$v=fckP&tA7a ++z)X@t_%lVDro2WZYhj!|;-1=1C3Tb_W96$mx}6CaQ6A2 ++z1&CJ2-Dpxb8a(MzE}UhtN}C2iXLt`UU3tFIuWg9FL7i#3b5obqwLSwl)E*!Rpo3jJ ++zpF`>wj6Hl%h!{J19%;D=Q8^htnE5ptVhcElvqF+a%Fsld%mp)}XT_LoG#R_gvQcFe%EuhTRpyL*3ln5dT#I ++z#+lTa2MFnKoU7(gJ4#F0=}n>I*CJie;}5;7CHNRCVtMRI?1I+dkYuApTn4wgYe|G> ++zOILC~zH`f!FsK0<*?A1do>Lf(p!EJs>)M&zUowdml8P;nL}Z?_>`fQHXSBHNNwFEd ++z;%TxI!KD`R-HkY}BWr$kNNiIVY}fllL#l9Oqwfsr$`50Lx~rPwtYaxN ++z0ci8WkOGkVOk?cY4ak!CB2RJj7YKY5JoOl1`xtd3rn|``RrupJfv=d74?m!u6ikWhU&BZn8^AG1FdiSOSVEPqr_RT%U?%xq@1kC~a7nVFfHnVFfHneXQ6NzeQBDJ0)UV~~E-ZW7IOcfES^ ++zs;YZz&HpQ(8qk8iEgzDY6d9WkVx?>9szHUWRep{vCYBW|MFKlNT}ed?|19YSUXwt; ++z8kj?olF_4I;1>}{Ow2LHh{qNBt4}TUP^)>JIf-3ri=}l(I&t2wFmp=FBs9bZoWK$Zu;zzn#a5IJBPFbXJ>S;c?4s${@)^b3XFl5F)^%Q ++z@>Csl@W+A3{(?y9F6jUL2R8Q~V2Zt@ROIOA&1Ux=k|)iM%T|3Fq;W&uu4b3O24eH9Mu<>1~%Trtd0q%{_S(3aCrU67pzh)#Ks) ++zuN7>&fibc6tL?f^r4MkJUGK(*BT`zOTm4Fa+pi`$F{XYkI{uH8m53aCpV{o% ++z2Mh(v4q!@bt@_tI`YDltdl4S7h&W!r`3&l!XmH0P&L5vX7meoz3+BX|5Vs5dZm9)0Vz(G&)%D#VNxeQg_h5{l2pC_(Qb& ++zN~iXpQiBi&zAkoH9qCcLi2vij`YjItHcHBh6FbMn-Y9Gg60x|Z{D#-zOFgJYX0v@y ++zEWH1PxzzbTbY#Y~Zq@*JDoblvao{6}gCaRAzRTMSFE*QP`+y0s5z7H9V#Z>*vB-0= ++zy2!#)VtA)oB~TculL3(M42TJ>tf8i$Hgu5*&Te@lc9yh+kk&qY+n ++zPpmAp*E@}&MkelEwDAec7>(90wEF|$;jMAA@f!&WMpN<6bFa-CQ+Hc@c|0be9ly{Oe0>mzZB@R{iRFMU9sDz=?R7jKR`zzKM4eWfnta%h`hYyRXii#7budVdm ++z1T3zW>NJT&MPiNADTM_`fi(D8s+ ++zNGl*073)fdYsF^E_u}n85VWvi7z*?IbnMKx5;7O&l(}y!YdA)w>8?_n0?)3(^u?{8 ++z;xvh5~@`+V}ie_~4sUk)t2o5Ignd ++zO#JM3#eO99$uGoyolo}uR<;j*i$CMvGVyaiO2^N9CoR|Fo>=(sn=yur^)QTyv9G`W ++z`W@xDNSH;XQAm^GS_53WlfD?6#L<^XC@2kzDmfK0MZ^+fSt&|85Ip%m6{?CV<=?7$khmWWCkB~2OVOOrUd ++z6RAp-s>tMF`x_LCGKgt(I3$&j$yyRCD+IR*R4b{beuir+3TK6t7RkcyDb2Z}oZE-B ++zsHCY@nSduCq9Vi??4($V!OwySv;r*;qnf07ZIbuKI97;bdpVbj ++zbGI}}vwF#N9fM|IacU8>QVARiu{=yIUKX@Il0h{eKlAchk3tlTW#iZu&Sl`-*ELDA ++zb_k`C3TB`(n5YsKTFb>u`P|HVj0#ayvNQ?PAf!^sRc+U)cJXU?e*=@{zvL8yUAEB0 ++QjsO4v07*qoM6N<$f&esRi2wiq ++ ++diff --git a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f4e60e2743808c26c90e38c209fa99f19b7d240c ++GIT binary patch ++literal 17540 ++zcmV(*K;FMnNk&F|L;wI+MM6+kP&iC*L;wIUkH8}kO*m}ZHjp4YU$lsC|ACu3{0I^K ++zp8)=y1d_F0Y%^BX;K2Y@1)NLJI8<#o$0ml{d+*l9$q*45&l2=g ++z#~qQG@5K6#?H0&A8FD`n&C$#~woPqPz!-rbSFSuag*N8l6#-HNf`}Gl=g|K1{SW<6 ++z6rlGfVwviyk{9)hBto{*1 ++z#02!eL>$O`87oU@wmC@;Upb^ZS$Nm73QjLPb+ ++z?&_YFak?2@cX!`w9B$p+-UV-gH^8O4ySt3fwD(TCS5;<2oQ?QJWMo$L752qpPO{p0 ++z0*yVm>ujDtYOp_UwQ}XY<5TC5Yjys(1rEJ6Qn*9nkQc=jKim?B+QHo&rcWN2Lg`l9 ++z=15ka@2{G@`d+kfRSe1|1WZgqz}8_935j6gVQalJRrSlQZCllrdG5XMee&awLFCec ++zOBHS%xNAfWRsmH|1O<@0>-Wy3rES~VHhO=M^b4#wio;Z9=5}TQJV!G}j61+B;9|Oh ++z;W^`(G6v0Ti+*w-NmASF5iWs{O_aj}a8LWc%8jGX?|05=kh&!cZP}8{wuWb{VP<9w ++zXK0xr%*@Qp$;^bA;~HirGux6;>{fT5^ZQl0Tbf?~1)tFEqE%YdvV(W7Ui6)onVESv ++ztWA*@6izNx6}nmmEh@`bKDEre+NvaaZiwtU@gI+fgVsdmfCq;*Xi!=?&taSa{uJ+ekezm ++zqwX%y;_d_zEIOI_{~=0}RJWOv&GOWtlHueyKR^(?{wGN&2)lFNKbJ%#ENT#jx$2$J ++zCICSVj2IsRfrj?L^qFRj*r_yPgkS;@2xA}siG(`#kI@5Wq))@-e5(PCN ++zc?gV10U|~KXq}1ZAzZgfQxSpII*-Y;E?_j!1$rPep$p-APtHDrH-B?xH+N=XGlRkg ++z#VfseklQA;ZYx$(Zdl|-bRYJcidaY$Ec;UpJqLP;$-gYY ++z!ENSIr-i+bmAS)m53@5`lqXanEZkh<3Q9p7ETNqyoha;<4Ui7RsH=6i9nDp(etc=4 ++zuuWcXOOK~40!SWWOpT8+Ko336n6zU6o#oM<26{g95|g+>nYn7L9e5mE*A|vWbq(SA ++zo5{u@RX7SJf-up=&W>b3NfuE%2)1vG4=lZz>>R&szkD=acbP6h?!dxRI8ZYr88L(d ++zC@}-%-?kurW_(gbkhei_twy{=buEmOJuG!I_qT!i!emslMuZWHV+c8dQ9)Y3EE5Fg ++zGgy5EX$cMd%xuyD+O=+B8itNHFCXOQ4=#3Uz}Whk7KGn^Qi98=3?*$k>d|jokXqw+ ++z;&Zo#f1^gCMD^r|HXkYlWcDsNlupa+$ek)1?d*h>G84Mv($SNTSJrVs5!0KiO}#}j ++z&+g55S8XYKwGQ-o;2tdd!PA>PcJ8~AW|hklE{o8@&mnTS!W!iuTk9sv-HT(*qq}43 ++zh+@xm7h4c4NC|GIh9E;kVN9#j8vX5mU+lWBA9Qutb_lB12)g@;zI4P*;Svx@7wu9M ++z81=XMwxhA3Y^~es%c42vR_W=x3Y906YrBEfKjLn^;Kesq^m*z39+0f9kvBd5ikMBz ++zuy~Xufa+zuAQXD^^ ++zoe8RXpYsc$x+K7CWS0-l?+_$69|#0NUDvfh(~jSI5i|I8b~>$Anui(JeaT9ZzNcu| ++zN?a&X$I?XY69};H4kI4gI4MYkc#fM3~;4?DVb#yv>w#$RKg^R4Ny7N?r2f-)sb01UVMknLx ++z;l-nSi^UU*+|w%1=7pt!Z5zZ^kCJ`R9YmuPcDjF_hFD>c+!XDrMD}=tH1%LiI;g9X ++z@ibm3;M~<+^?wm|$*Z~?E7M+O)?FE;gxuU(9D^Xbq)k@TZlLZSu>BR$7FI|_rh ++zt%i;$_L5auabN7u$CQD7v$j0{?HkOEp~C)L*zW3bDEIk&Zts_m*!%B4`=itMU-bE@ ++z(cQzCjRM!P7@UI_QI~-iMpr`5Qi-b#SFSx(PZmCz51!F)wJ`~$Ln8fAnX2v&-ByKS ++z9cD+H+xIF)hZnoMqIT5Ym3+RZ%dBANO>R_r4~$_v@cMu*~M_6UL(+ch>GrhBZ^eATUup29*Qy;05d%$phgFs4BzBj0~XceC5g8 ++z7LKc4oS5x}z{uqAJ2DimQZFY9szaVa^K~S%1DOB`Vzj>s9kjnnx0vn}RaUOgQj=zG ++zAAY8~cc*#G9M(lHEQ8V^AWKB&2xMScVaN ++zh1)75S>WpzAYo3gfE6IIbYhtu7g}^d`>Wb@#-g3A7BkW6TN~4oyBGbp`k(IH$JT~c ++z9Ov$H;wnuVIweJcFIhbneLRfH!PMIA-ERo&{jKjk`xuw56mrmnEr=$-_e+peR~TCJ ++z&UJ3zNXSb^(-rc(E)mBZ+Ei2 ++zkvaY6=-zn5l$Sf3TT8N!%1m#M+4D{x`j?Aj0ng0LAB`z)3^6!?%&*fx&BBSwPknl2bqV ++zn(Ssi;-Z%Il6`m9TlXV`@rTk5b?{zxRrcoVO`QzJX_tKwZ2ILYq#Xz-XW ++z-CaB9Q=X2V-D&e=fd#Kx(EciP38)R=6Mzm{Ix8yO_KqL?+aK=!&wuj$?9cv3#Juu9 ++zsOQETB-9KFpu0u=hdLJ^2((73E5&L?j9u6qyc1h(?DV?YsP*gVg>$*=-20}*USD_1 ++z={_I$2HIayfF^#^-(vPVP* ++z|L_k_MV#rL=9i|f&N|r*! ++zYG5ViN&L0N6dh0-O_GNtv;uSrXg1KOpcDWA$P8qGDc90a%`Ck?qXXYPwS`aCQ370v ++zV#JxVV3G;XWCSH-h3aHSHULYu!bM*U1sGE0IWS3k-dHDm@8kY;)bBmy%VihGpG^8< ++z{Xb*A)K1MfT<@V2eugf7K*`aIrtvR*ndjSL3K`ceOJpJv_KMs5QU0xKAB)Q~au`mJ ++zO`W@%*@>GSO=o5}+p=4woUC(H>%VWZtlrtPmVsq+{#aEu+Q;5+JnUf)OK4Y6H{6*L ++z007c~i*7x2(M42qTllz4w}1aYp{Y6Bq!Xu$^h**BLYtH*DmHhSuuWVmN?ShiG^ ++z6;}xP{acPp-TVD)_4wU>HvO0Bu#px2_FXv`SY^-DoaQon?iDP*|A#A*$@DCok+eLV ++z7E3pH*f5<6Qb9(L0h}WNFYyXZ*?05Nn$NG^v+lYkqZ9R(RsQ&Zc|K8X=8s;a%csm@X>Z0ard7d; ++zmFeQ%fXWIJ#HCP5dxx|!UsExfj$~%?;6*-?ktCwomdsSE;}I!G!sZj#~er^~$BcpT_oT1$za*?u~+JtKVDS$rg ++zvgj7uG!uf(+2U=JVGC3+67-rMof+c ++zk|gofOkpfGog#0D7)%L5fN*9QyC+pUyMRA!SB)vZf;J&p{->{1I@_qbDCENHjk!bc ++zkPMrR`8SE>lWSQ1(78t?Q9zLz_>k8Z@oIPG-VG&x$Wz%Xv)RJA0o}98&CMyAhA+R7 ++z-un{rJgaFz2)ETLWiHwKb^`Mo ++zP}COrb~oqu59o7$c`-bOIH4Zw0bezIEo~tt ++zGO>L@!n%hpfKmfC!Po?;81u=~@M2_%DNpSI>_Sg=p&!1<)uUPh0fycBQNxzE?0F#@ ++zg_Ida*d>-M#fe*^NDr7Ds|&B(bEBY$B5xMC9m1q#OMz92e ++z1-<^YWA9oipSw$_{ync2*VFGlj`1?0w9`YS#-EG4_A2+K^}Nxd*k|F8m=lnY_@dK} ++z6hL1A)&TVAo}8MPoS2xJ1V>EfxV0BO_r+iji&1xAKYc~CBv6C(mCmbd`@5iZdqfjH ++zp~~IdI1m9a_sI8&#fufRo9cD$oa%uf0#=IjJ)7U`HFEAazNEo@YyH2yQ%tOPDu44V ++z?Ra6>j-i5BB$9qZbG?YSl{9)X>E_Ml7aQ*VyXwDkXZAJcmS4+*x%aA<_%C0w?)lyK ++zYPlQk{?DraF~3gg0HuQx_*NPLDgffdmx7c4h~p%Q!DdB)(^k;`F@tP&#w1+@`k8IQA!u2w7-K<29IzF2&=k&$dE`kB;Lw$(5D~C8#df)&4^+3|uk+ZL ++zNZdItD2106mr2DM>ONAMOV7E+IY55(K3$1lq|FysO!-)-Sns_#O!vqg)&Jn!D}N~W ++zui!mD|2;pSQIiJL{i1?A{fN)kzTfl%r`xQ@SP=P1uv ++zd3OIvST{Icp9$A|ym}I2j)V!!*R#(^v?LS+oIZ(Do=x_qKn@900HM?aqv+X8wi ++zT?=RiXcSO&B<%LNgarHo)1)BrSzEwnK$IE&M**ndTvfq763E^^0w4w)y_G*bFc-P* ++zADH%N8adN`elK8Gp``nS=wimqX-BWmvH7q_8_emv4fD~G`iiAX(@uD{22_*8?#(@BEz?SGQVAdi~Fsty#=lHpZNLK!d8jD6Qi%}l_ ++z;5(k?l$bgA05!Mc*!up`l%BKCSA;|*qK6oN{(E6s+5@O(@P;nCV;AkBa(IFHE`eVP ++zK%CsQXojKT)00vD`IPFp$r5|p&MVWreKznRZaMutuWOffDWGi53$_S ++zpUw{t?|BmK5mS6+WW!m(6z(wh_af8c-G94i6C8lusH1_wpe&xo?BOn~Upt2D5uO5J ++zl~qLwhPAW^8FBk3_Y%+#x_ywy60M81D^4~yZ(l8zgPI!b>ZfCD*HNi>9~pmuC5i>K ++zwOOfYkIEe3ib4B ++zpr`3HG0>6jr3piJ*i2xvz;{zqfr0{(XaK&dYOuob_dXsKc^i~a2a5j9hkS&|!$(I5 ++ze>9@Sw{wL^TS4@A;Ag#9JFvJt9!5E^4IiDO6pZM>ZThdx+x&HZCl*(UsN;&WPnUc3 ++zXR0MV?}2^=*fx9{skr;ZSTlg;2-W84ng+)+Ss7+SOCQRS5YzS1x-&SIjkzJHU*6WA ++zlQi0gEseh%5|5CIAvV`LJmfG)>X-A&|Bea5i;ddJ9Mk%O*A7kJI ++zR&^?#pJzGy#642=PnC5wq1iRSE+-=KWYV}ltQ!QV2t??N8W!Utb#moi(#-@omUgTEInawsXa4TX ++z9clyQqCrtLwcM!JnX-CgiCN7K4&HeVruU~nQ@B?YXNn-fe~?5-q9PIU%##6p+ZsXA ++zgAgM~pWyCKhQTsvnN*yCg~~U-3K>_eG7|O=c9JX4?u^Lk(ezUuID2)mV%a~xwl%+d ++zH%X~FSr#pJY?@8e(|Xz1-CG#O`n^K^IAh?Tbwk!Gsq-e2&B?kNK1wz=S;lOshWTs{ ++znr1;ScXv3{h?3YGwjLa*-Sb0eKg81`Z ++zy@A^49Cec!PA!kX@yjQm;|ZCf>8wHYTu2^9c-bf+5Fvq|?^-Le7pN`+Dyz)cy{j=M ++zO_7n;ui+#LphAn`$XWMFk7vb)IUs?ZZH-?Utm{%nc7&Q_`x+_TxK|h3cbmr$(t=3a ++zR-$ZY(^<&1uoy ++z7=mq1@#a`_Tq&OKNzljFtS>NQcmfCY&q3Hb&;#$rs%Jh7A_OOxCgM_}h_^eo ++z0D#qp+)BhV-TuYe700T3!;9^tDIlcl{?z3|>tvrmMqjl69iT&eD?v}@dmCD;de78* ++zK3MjSfJBh=o~Tyj`Er_^$tW}cG;&xQZNdNV|0*V%IIcb((>Q~UcNPWR ++zH<)Gs$wNCML`=|<31Kn^0N8chF&L&=4dGw}8%OnCRlrJ`{)Bw9AH95WjfEeIgvP_X ++z1!!@Vlys+TEGfB8ssSUvZ3wMaPs3j^hGuJ;&WGw)&e?1iH}HE_4`55V_I&;IvyS@d ++z7WLl57-_~)OGiyX5lq5Y;7RTCz^pJAESE;y>2rS>x41oK)0$Vc>&^Q~H+Q-yn83-R ++za8>PYUA!#6C0%Gva9c<1bdJYAzI=R&kMxJ~?`8mv*N#;HhH%=Wt&-s0Yf&rNE<}f`VO3({ ++z_SF)Tx9ffH#m+s?_;Zm+@oy^Hog_bM;=lBg<*Qt$WO8LXp~Tex?ezqeneeth4@+WOvg-uDvLC@>yR&QE-b%aia>*-L%q-atr^(>uH0@NhpMddIvFhtt> ++zx0gF!9{Q<|u2{Of+piva(wQ8V6vd#51c_vrj1UPxBL_U6`h(wUH|8jto+9_rmywW9 ++zK?|;{my7rGMIk5=g^L2y>ExjT;JRhKmjiIfm$pAvP?oVIT=&^yHx_^y#8mqus#b=t ++zaHjgteucfKv!93b$_6KQ^$qXE%kF0dcK$z+(X_49MoTkez0X>6pY%B(n1H=hi% ++z`~`f>PS9yZ?PTkqZi5? ++zrmLrGpQ)q;Q-Yvg>V3=CvD-Ov)9WW)|1aBP_=lBTc_K@<4Zk4Sm}(;GT!Yp?u7tNdL9lGR<;AHJv4`Cq8fF8|%H+xQ$_Mhtcs@3uZW=hOfb9X!XbV@1gXj7pVF<5NA~78!0Io!3E*s*aHXU0p ++zy$#DiS&H&WXJT^7%wSsP?~ye-iJ>~hx-J&(E%DD+_88CdS{Oj37}R7nU${bql}RfN ++z@l`-jliqCj{e*T^onH?T{6MJ}_x99hQj2$&dU=E>lDvt|#wP0GdWa@>n8XfwX}i>L ++z_F6uh#iUu#X<^!Yl&L*JD?3D<2Fc+{2(Bifi%b!O=%b0`lhW0vKUu8Y``=>t3&V_Q ++zXDbXEXNvJfuL0}Qp(N;~1nGGF>!1Jn=oH392m{Q8SQLln!vINP2tV8+lC}ZhuvYDf ++zWjHNe-JY*Om4W&FW0CU$X_HWbJ9{}cqBmYyVsE6$+)*OcpSk?*w$VDw`h${I$Y2_= ++z=dr47%$0SLD5IppWb<3lZ^*TJBb;G}{ ++zjQQW6T?dJ3kT$lZP*(-&EQ=%zMI|SV7^_iJ3^Z2jl9G>@F@~B ++z2^0WRU34YMlgaXIk9xKxlP4=vtA!lb)*>YMJGY8BuEDUYy#Hd`TvRym^v*O ++zDL56Rw`?9X2>`}qL?EFuq$2{%gzP`8tMJet{UeWdnNQcRSljlEt^X`&xk+ntXiI5K ++zD@|Gl=xF!Sga_U3N~V*;C8is9>j82((~DLrr!J2cC6XNKoql$^S8|r*tv=rPYnVe3 ++zpa2>qbS1S%GVyB$JiCod$pGqMf?gzk3ZRB2um+gG>r<(j8$m|JAZ^k`e6?2d4Fn_f ++zXlRbWS*I7a7t4Q(?MHoOWMv`Gi}*p-*KTe7$1<2T3pyGP_m(!WZi}V1rf*fR?Ni%P ++za+J5pJdq$Z4R|fgl(jip)}=-~^xrM^p5fGqlO*y{3dk-2FfLLlY7mm_l!FYAL9ZsL ++zJJ75(YqjS;KUS^R3-^r**8;E*myQ*_PL7sHAOhg9!RsN}gH7x%p(qDMPQHQN@5n~B ++z{)%m%c5H{MB4$T}m~G7yO~)Mi-I*+(%+!tXTDt6=WP1N5I$aG>7)^rg=#6LJzi&>% ++zn?Sj=FK_#e*IyjZQFf+G$_>czxhlL%PE}Tf8i{pes;w(+PkN>jo`T%uG#Vlrg)pU+Dks0n)6UN-EUvV4HckVTzogW|2T2(j9vX3$Yi?ACr7ssp~gwWS?cY}^BU8?D! ++z=-6PJ_N?Yp*LWFL$4P=DLlbZ{iI`-&pBxR4>P<$emWtI=!Gz62TVXS>8WK8UC0(g_ ++z>6^g8bHTL@p}R>jssq@{j6x$6t4qEzQ-I@+IJtDLKq4`l6B@m_{ ++z_7s)sQdC4zsM}0UB?t&0v)0G6t3eD3a!KfaT{D{>7?b*;F!nw8JV=g&*(Z+aNeSg2 ++zQ|E>Gmk5v#u^?QwFzHT667tdfEF7zOHM@)4e&o@oy{f=09G ++z5}I23J|>POL&(xj#LW1s&xHQ_T|Ie?7qZm~NiqO7eI-!~32ag^P#!CX-pkCc3giy2 ++zci{kI5bDU$4X5C6cj|3h89A1Ct=_gg_0vOW-*3{oK}Whlk3Wh5B!qEw0{uryu_P%T ++zDWF5QqDPb-pZ)iLAEreI`P^qRcB6iI7r&fcV8~VL9k;9H#^L<>xTKfWVSsj}x=5)Y ++zh8bATGQyc8n$Iwd-6vj_>2LnQ+4tr+n!PUAum?iHU>1WTL=#Oq&XySVn ++z9m4c@*x$!2l}bI6sSdL1%SlpFIn!(vEen5iMaukXx;?lL)Gm@K83AN`JSYTo6-u9V ++zT4*;YA9&M{vG?z9=(R_$qO28t-cwuD=st%aNr5JXg4Fcy_}5DOK-CLcCE!*7XRAhe ++zA`&KQ?y3qAXv>IzCChVFeY(MTkIam}4W0ye%`v~I0}3h%mN=^cfGyF1Jxsj;kYFZ@ ++zXohd6CWp_t>$O)do18rfl0ri>)WZb5l(-dOs5YLkUpjwN=Js8A)6c)e@Y;@g#zW4^ ++zYwrFB(I3B!;mn~X(?*1e3uF`Ru!cb!#yR!z#e@{V1D)(#$of&BVyy=tbO!)RAG5gN ++z9ELD8;RznlBsrj0&a2n>L%-IVAPxSrKYqbDCIv_kyE=*r3MM$VAP$?_8UYRJIp9DI ++zR;~H|;>rs7@wexOKe;69)7(O~yT!0bv3Bw$)ayWoJk)2#HH!H;?yauMJ+s0cE%K&PynSy3<~q7fuuxWa5v+k ++z0WX3VG)bQ2eBan^+#}7hW6K1yki;q) ++ztpTXw#-lWzKi*f5nw~-AjF&Ei6`&NuzbEg@txHM3ZQ8mq!M7p;^&=f5gd`!ol9Qtc ++z`aEC$du71TotT*P1%GjhhvUR6WosBP!L|+cptiwH0M23&nt))HF!WU&ru^sYk}n!l ++zYtNHG7izdG3A896sj!4*G^#PF+Vx|aO>xobdtl8;l!3{QAKq4PDFXKCL?|+>68SjP ++z0@Tqk?usir{8^s%U$Fj)brL92ZkiPLjD)^cxGjgQMM`U^CP-2&?sQ-9-2PyT_J~wF ++z#t4X!c&sa6gQ5vV8xaF&oP`ETkOB=~DFkE_Ds0&(NB3M7;g3>iQVOyNLPGF4pb2;a ++z`G@et(WfvJV8!UQit%xE ++zt`o2+b}T9qG{a^JJ2FT~Ql`_Bd+SokvmGz?85(4;6O5)wz~|ry6g3pB!I8jj?9KrN ++zhQa#>6Z{HTk5L5=j%NV7wtGr)_J^yI|9a1vKHCG`?xqyK32^s6Bx;qHJ39|?;r*ft ++z@i=G`lYiCBpbpQ}&t5nKPcB%-6Jez!k5-qxSM?p<@zK6&m_UJa4U!9lLI@KmiM3l+ ++zU`h#KGF38_%>qg8c*-wxZL@l3%m=BM^gnZmcYjI|*fyiF8})kK5n!io=GCbCRtKOC ++z{E4@pX$BJ)!o#9^ac{?log{VW3UcXh0Kuk#dz(FWFHIaYN&@~+Q*4gX157d0oE5{ ++z5bgkIay;HyH@8;&?mZJ=#Q+Q!%wgMz;oWsM%K@we8udW`@Ez2E4}9pYAkYL4Ni`2R ++zf{iz9$cMghNIdid^Wxm6jXF>Ey+Emz8rx|7VJpg{h}raoap8Sm>2|YMp^}M)6Uut+ ++z`YtBnYeBV(-N`HQ<*p_jm1Z+|t34Q8?7%i$+mw$~2puMBZQ$crvi>%pgrUno=drMG ++za-!jb?B<#(nM+C3uY+WWEpe`Cjcv#a$9M;7|f03#kkRMxB72qBC@-q ++zqy}3^@+;o5=pSqw@D&Z99x~N|D*_FnKu*W4=#>QDdJ=-5nFjU7Qxx&w-z{PH&vxZz ++zjH~UPc4!t!z7#cbbp5_%{qX#@`uXhyVNn0E^vN&>JIKQ?nR542v5M`(g ++zEvywgu*bG%PRr3<<}P`$5DiDy|Nnwy0+-Fy1Z)~aDR6AYSMV9P5ga~1eG+@Xnvx6L ++zWtv_~#5FWgV=Ode47QWb(?4`fZ0ue!{=WVf{m4pzRu1%a39B+GAE<`p-|r9Wwm*PU ++zM0Znxc7GN1QeIs9zcZh}!Htm5`AL|8qwzZ1007V;GQ#RG3&2ps9=kLLVgQTq60sg_ ++z;=5Blf3g5xljI~F0#U$W1Bu^a)ra|f5@?jt%_Ip1pUVySc6uo>U1M8LPa7|Qpcrnn ++zs`DP-CFY0k;@<8NmSslXesoJ5BIvUc8a*0nNzjv|;_U5~#xhyQ(~A|( ++zf;e=&DUSBUV4@tqy+>_Bxzxurn~EYpCPtc}gBbO?13Vp6Aa{Z3TaKR*{~{Ri{h4r@ ++zPK2ajJyl_|%jiLEs`r)#JSz6<hOxd-=$^974g(&j9IaM&9)rPaL0dZ(le!bXU95i%AoF+ ++zpiF53^# ++z3yfbX6kD4~oU?rpYh47xq#_mr<=Psa`Otm(mCv-JG~tT7vhsKT;X!ccidBjhkF!(5 ++z+SH!C(9&ffL@O`AinGvtgFb2t5rkM?z?o ++zkXgjk;}bT`Ke@k3;-RB;(cw1HHiRm`p^;= ++z-JV@8(tD{kArvYUkKg`Yg#?hb#6R|hhTwN5j$ZO{;@N)-h&@E(Wxp%P5 ++zfgIa`#w6#lwhLy8{VpR&y ++z=_jT&heeaAmS!iyl3cFS|C*`Lzkp-s8;p49_7g^c7p!O2H`HtPI?jX^Sv~9ly-0E@ ++z@1Y}TqQ(MuXtEaE3Niu=00Y4&1@vH#p#+gSBvTn|5-G26K4?2VMff7-@0=|-b%!%eogTJ5ZnyXn^j~3EHtyqJq ++z%{q3r&RVVPRztEmoCnq_D%}ry5XmVS_Sihrt=GU6J1Vllksgw#MBLyta?rt8}y2)1G ++zYz(je+5Jyk=uhuz%sW1a1R|4DubNgvvl(E<0k&LXcEPQN;F1J~EUG`Vq5aRMEKh>e ++zi_7%lnQ^lBHA?Yo2n?Ix*s1YqV%iBhE719mQ^A@eT}z|AlEttkOpc+Ewn}j15mYdy ++zn%nov(g1)W6{0s{1SLSIap5?yN>9Nfg|a%(5#Lic8_xBw$KSl=*IgQThBK|tZw!?o ++z(OhQkqmfV-$}Un1VVbqT72lus3UpSWGXd10;e&ylJJv9}$e3ihyQ}Vr0|Jy0tRH3W ++zC8RBa6Ws`(1RB$_AYgQE)DCcGBxJceaPQxedfd5cK5sqv#YO#E^S8|#+~-FlH96Ca ++zNzyO{tV7&@8hbMcOXy^0E2=&8QAAKi07wQ{?n0Db#b)t4?{B~j!d ++z&l8-tuPk7F7Jfc9Ac1C$tKk7?!NN{>a3ss}OXZ)%v7AG@KmXG|{nOwWKMgxHF`UR` ++z0HWp(5I5_w%vbhw2lq0~-$uYF3WrK2g3=IaS%9g&Z8y~PbEkw8#j)V_|ISe>8`Nac ++zxoMq$^L(~E?x&{n0_UAu8<^G(tmChLeq7erlN&bmEreq@X-s}_U2uMGGJtxR2LqP; ++z^s_LiUC@E+?L7feakhsb0 ++z8fUNO>YZD>Hmp$1CJD3Q>B-zbPqN05ul#peZulQe$9zHp_;%kN7WhM0rmw>Jx?%e) ++zmPaTy_3*PT>K*U)GHI?cg*P7F_(>YVwMJv0Z={d}sxI-kNR*&OOb*Vo5~Zynx&p3F ++z6Yzfh0^!GOusT_whJ{f}W6Tre-9MiehrZ=?lv}Q1TFS4FSzxJbE<^=b#t$^PkPw@e ++zEP-SZTeE%owJ)y0xTi_85By1o3;V?jl#sJU;=RyJlAn?u>hj~C9u<6H**!b ++zZV4&MGVjo(kb@j7;J8Vg(*&#oQ_;c@(SB@NjxmjgM!YAgEw!d*k(cSNFoO#F3)W;jV^+NIL5!ws~B|=za7ee ++zmh6L}`6gr~Qx!y*o_ocC4g8H{cRtvRnLCN2}}#YXaJh) ++zpp&>WfWSA?642;Az16RyKiq|lps0%4FzodrAQS7TetP3l!$Gy56Ccq3H9yoSn=v~W ++zxvc;woJ+>$Ob9EZm;dBuOcFZqX-uVJ903o+(6w1VUAGQL}kG-$#y!)jm ++zaA4ks<_OTM0GE;YkyMaG;6novgoeod0g#xsRFpgB)GF#8tDm2B`FKHWiej+#+pqOO ++z{ejBc81`aT$G#nW>+ ++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 ++z<^kk50478HU>On`uSJX2bThPSHK)cV ++zoct|kb}F9yqsIl!s9oMOfxSv2+*!8l%nAI00{8<3@jj(uK3O>X!>h!wSb({(iX8kp ++z!JqF_`XKX1t1%vOIz!48fY)6fmdSsR5B3N0LG!^gzCq~-N=Br5=Zv^G92}Vqb~L1# ++z@ZRD?EX%U;1>g%Yp+5hT&0TCwl}+|B>IRiviYb)w-u|$t4Z^>V@Zx)vfhMxSsCOVQ ++z&@n6{lp`7N%^?H&2MP@SoHEfs)n_cx;L@>!_b ++zUWSI9GtqP1BAMVz$9&(0M_VzwrcW^iuNYezI?0aT4e^5UUCO|8G9p%Z2Lp#w=4P!` ++z#EuaG{8|3}CixE)k%9$KN`~-{Df8f;C^$?2x045Yoo!fwga39|lTqh4LGB;IUwVCb ++zW|0dzt&y$41a^D&aZk?CGcFI;U|LHKTp3O{+_CWICu82)60Co6@o^{rihC-NTIz;I ++zuZBbXPZZ>5Tyshs=Zz<@ ++z$9|dIV$gO}Lan^73JK{k&`1Oe5lDv1<$}+jjKZ4q<60a$^}%YmG9Azop;(4bMr>>> ++z)~#EIii!&4RTPXFqww?X=XEL~C}t19sxjkv@(&XLuL#v-fzy$7*!4|}FUBk~;}8Ew ++z0Ot=0z(u6IZcus28dU(>DUKCA>|)r=Zmi3*;g3Cn`~sIubHHSbpRgNLx3U}Ck3!&0 ++z&o;t8B|#7}EMpcE(&51V{rmCmyYHf4S`Ico-Ee%|o&!seJI^n^YqpG)GSXz!*4E+Q23As5u;<)jNBa?}Rv0!7da6@LwSRrFR ++z3m_&22M!#-2OoTZ!kM`;aT~vU_U479a+`CL_`6}}4Cpi}%wX~}Bni11HIkCNxZ;W{ ++z(A3n7P{p)yXQ{X)TLCQ-T4xV)IGQ02Sqm_U6%vKSap&kJlsCV?joQkSYmH<`~$GR#>cN ++zINhqV=*cnlBDx{S)=@<;I~vBCOP?uv-3m!)b+R+b|bie;#6D ++ze8>zHVa07r$1N_NAE@k}@T?H0LnFTZ2)Idu)S>h@w?T00%nzeM0C!UobUG^vvic6^ ++zdNpc2?wuV!OaT19PJ8kNFm>7hHa*oc(sg)#31+P-z?SEhplVAA;)u|zQDJR38JlII ++zZhf{1r`^|#<#$zKoh*>ih{x}(Ib$kv=K7Fa5Rd$YDcJDz;v>3Pp~_UG6}eCnaA2MM ++z-COUi8sW~YeYln90lrkb#6(w#9kz6=AjhZz2#^lRiRI#To`g~^fZ_KP{OSwfbxMI% ++zZA4aj;}@oUa#5C`$M;*sDu7>gCZpQN>9EX`ep42&={_Q9*dk|4_aHssKu=c=wmndd ++z9c;zN<96I%g`}J~Of6Dj*LD?dyG)IeLKVuIgIN1$-4Ross~@i6mEuHnkn$MjgbILz ++z+X6BmQY4MwVe&#Nsgaeom|I|Y4j3DGrHBRrupd_-8HddPaH^A=qe|oT*i{;X##9qb ++zdK-)6r0@5$^47Max-M(>)nbF}mh5E3d5UNZ;%w=d-E53eXJhT|@Rt_wOQv_hPl*#@i0jY2YD7bW0& ++zO2l$xRVkE?cU@<4cVb4G?k_SGC2ruYA ++z?iF7Sn9FAjXzD)cV{fro!x2 ++z9~#MqUs51C1i&~zK3G(G1k)Ces1Wkj7ZcU`(6FxixLetc&osamZ@_{3)lB#?@#{}C ++z_~F|ceDf6zK7L+iF0VQp%PmoDq!Nd+r%xVfZBjyUom-=n()nLDiC#gCM2!`g2;4huV+302k*D1Nm+W^bsDnpz~k9#PIy@u!#0OLjS ++z!!8|8bxk;?O&h?P`&*B@`%|@{07L|fiO{uFg;yUr{zBl-yLOKnzBB{s&zo^f$H=?e ++zvG|oVIKxSicu9vl$P?)miar7GiSbZ`USmdf`qBx%@a41nBTa9|6&F4~8x>PYh(Ik# ++za5@OhwG!^XPK|H8tiey;*Wfpw{`Vqa*XgdS)JRO$bFs8peLV&YJ?BI4GW= ++zJ?DEcx3%en2;kPYEAY?n5We>+p(I4ej??4O1|ObT>c{S|3u{VZQI&2*p3?xIO^Xz} ++z7NK|prh80SkZM6?niWfeHZ0DxiT|g`kEc6yu;^6K>j2;!$D&llN1oun26GOvCi*o}Sx3=fLYLov{+_3*l;bNcH9rrlaa+~JNd ++z5*MFGGl?V=R;Qg10o?h{Od$ZquRb8O)DYs$YV4|T;iKMkeA<_BERf%mfj2wS@K$FU ++zUTRIn8Pnqth}EMgPr?WLg$VHN*EFzLRaky^<#>*fw^kpPiQ|-XAhlKuEpav0lTaq3 ++zl)-b{@?)p)HRK#UU(a#RYjeVbhn_gy&227DQezp#;4MlWllW0B0LE`9fNRMOpQPhn ++zAs&O|T=0LrnJP~oanUUNq0Ky?QEM-$#c<@RzR>uHH%Txg~^?&A6-Di%)uwO!()TQ?Rq# ++zh5AgJaGmUWHOx8ZjA>nX ++zdWg5vNODaR1r>X2EWCavrg&q~WOU$ia^Ve1VIPwVE5m}UKS*+sPMtL-ekbFH>P+0E ++z_8?ttfX$kOykIl;*pG^=^x5+9sPR8H5dQuxAp-IH^XCbxItj^670SIPTr|s#{Y@$O ++zWQh2WH~P_>ZHL=p6vIMnefiutR>}*s$!O>E6_(oP2_qpcA7-N+)pI4h^RyZlo~c5d ++zBMnn>`-dG*VNMT%X*Ec4m%?IkL9a6+LuJ4svS2gCappw~taEz;H=l6}^7n1o_=YbZ ++z-}2<)$Hpx2*bgW}yyiVh#e?L<9!e0_oIi*6@(D>MH|41Fq*jJB>?ySRu>*ru!dKQ=6xh-1+Tq}lfn$C$G_C#D{_u>}2ACK8( ++z7sH-`5A8vG-=2-1+jH@YFM$7l%N{`3ZimyIgu+4*OpZWVX+N^EWrD_=u(p@*=>b^) ++z-xfl^U%x^4=vl&s0YY)E1dmmNf&>HRrdZ&$8{zf@ke^?Vl9Ha0pFQGxWCJm!1xd*{ ++z@Od>NxK2n2i0>~g=|w2ifYgj>h;w=1iM3;@-G&WzHy*X8;d4y}el?twLhPRw6yxqQ ++z=i`F=7vpP>G+@`h23&ea9rmrBjqjuu;E&SiiH)C7rm*hZ_QJn;hId3pXHo#;TM_sI ++zav#VJatiBGLI#9LFPf;z$jFb0){4u>g(tOsT-!ArXFYM`L6kMJAW9adVW!H8`D8~e ++zIRskfXJgr&iwWg%eEclom+uq)_D#Z1-XiS3o3Os0FujQ2aj6lT;6!kG5aI6WSS-6+68KBvezd^1=m;xN9}pHVtKG-l%Q ++z-Z0L4YRTx=@#SXhePA(OTQD7eP-Pt#VowTSoPyvR#Y?k1Z!D}0TQ1&K<3=eFJKIZf ++z`ZzKlXC7FJM`q8!yHYORBLUpMq~gSHQS#za^xiZN<$ZbZ<;5bHXTr2nwd}hSnrjHl ++z+XT>5O$ekBG-`sRlAvL~Kh}W!MXARyMbb6J+N@4S2;>crpbrV&ZG%y;WlH ++zg{!yo))isaickb%;;j1gGBoZw1ud6`(RJ+{oX2iyzo$R=g67eymv5}e-z=;q5`;t$S51nKer1z2zZ4`&A)hW1q+uUQm@%MCu ++z$1i{=#M$vQKMWE7 ++zDsl^--%KjZAsa3sA6}tsapT@Jhw!!gk9`}G%P*ur%xMcw4@(kj<*(c%Ml1{ntwag>Apa0ob_1Z3507d|>HO!OSp31nkfQ!#5 ++z&*US8M-Y>XQ7P@n6&JE(q5Ap-RLCEqVde@T2%NS6xLRC{QXMI5hEHxpP~Jw1zNsIl ++z!8>K$lX>u5?bK_H0FnZDrFp*Gn)Li+fZLzk$=8pG574T`(1&tqgirF2Eo+d^3NRj^ ++zPg?+MohX1g@Fng=_0V71mHZPib>2Xo4wzKJCG(LlpF_=vnWJ&W1+e|B3&05Afs%#g_{>>eFIhU3Tkze ++z)Bi}Z1^)((@({wZ6@~f$)uXB8kGQ;E`p>Q-px`7ED7^r7 ++z!Y{`VFanqY7y&rI3v>X15dkP~kVO|KefvD|8vz&rWP+cdUVf@DS^yW?UZ74VPKx&d ++zi7%sOh{2Cr5wbkUV)7b4xDkL6Kt?XoPULCu9GNPB1PYyZ2u=#%1WFQRa1E_Pv9u!B ++zTBW{5;H4|e2w=i60(cBDDThn^3iqL5L;$})bR-aV#Hq<}FQayd*?=x&SwBL(tVgkI ++zM2UQ41TaAu0WeM!f``MjnG-hRQCy0`;d*$TpAE{Qm0EbL7Z8`PqgHC*VPcdKfDyoi ++za))R+Y-hxG8vz&rOd7Nx7NS7zNMiz3 ++zI#~d}i>Oqrkx^F+OBxWC|Gp7y%qbfX&os ++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 ++zEN-p>2o ++zjH&JTYY4EVwn5Qf*EFg-hq(zRPg4oodz2um1TLQ*j*$Axs~cB ++zMy0xZo+A5d?Y3l~rz^b;Zv@~la3|*TYHrvewbeapmyWAvS|KGlxe~HlXtIW!i`{dG ++z%V0{<|i_a4h=xO!Y!W ++zFI7bu&k|L7u?s0q%tt;=Tir3RGRtQbdP=wm4i^>%wE!wBJDn$hSa?HXPV2x>mr{F6 ++z?4U*R#_Bd|PeQ12kyMq>(e@#ulQmUKrCt%dF|yeSBsT(Z0BAPx+!m`{uXg(RnlF*i ++za*0Q_T5XL7__yI;V3G3$prA~Xeru99!r21&#pDE#*f72Tww!xxQty4_3t9j(6*iX! ++zxJZ7g0x$yT=$F3l9?Y1a*SxY%dRC4fX?|q$WX}9Gn4p6 ++z0M5nyIepUm?SpdNI3l>>>3t-0#%9*0-eYq0OZ&zp|NdJJ^IT#CU<5GrIA?C3?7rp* ++zNuHLRz27=0%U1Q0&>6q?-1dH1wez@~_tOKXicI}{@x%LN%fM0Pm72k(j}d_LL82~M ++z)+-y2ACrAI9+v&L9hU8v9?>q(`Q4{aPIh-#x$T7Py6T7=xc#u~x$cOp-G7|jDQsam ++z9!3BL21Wq02nI#~!?Q{N21Wqk@Zwy4sQQ|9J?aDh_Zby{fe}FKfEGYYZ1?|E1r}@~ ++z*SP39MgS2+d;s!mDwnjYT>O7J(*iIs0$`0tQ~maTt1N9HHTDfF^gpW2tb3)u>x|=K{dh1QOGSQsH^}` ++z6At$DbIamRV9o*tr(ycohu>|i1;3Qs%FnN;B-h9}rwPEP;0JPR05qzmO22Gt+^@|b ++zioomynZl5t<_}w~L_$SIp!esV2U08a7*6#;oc08xeZXzjXZTVs2r%QlC2K?;&y ++z3m|XH*kkW>B$0l^5PPfL6EL-KBa< ++zUabx>e?lS9Eb2U|dDXxyhXJ|3ju35)2X#-zIorU>RJ%yqe3i%W~^ ++zb_Gh?`YZgc=gnFeoF6D{=_eP+337uRAy;h9#BC0h+nn+`b@d+|6Ywb%rHCM=(55b` ++zJI|d*5p*ZTU|?W#;n&K-j-hNk&GvNdN#>MM6+kP&iDiNdN#ZzrZgLO+akhNRkAVz0X~F@(;MWd%pxC ++z`ac2uVqUvE{@##91ZZOeq&AX3(AYka&=VTK_D&L27oF+nCM7|4wpF#MBHd1NR)a>6 ++z<z5yrRzPGYVN#=MDOe>U`V>1)S_0>uI!Qdk_}E;FO=Dz)I3-&t~;;)E%I74 ++z-o1cZ+qPr%?wwFlE@keC9r<9EiEjas>4+zxm8# ++zZkd&cG+;!^b400|PV6iog5j{-XA@?YMvhOOOR!e*d=xZ1V&lL7@O&pkWOm^73&upW ++zFj)Y_bH&BY<;i+Q1Pj`+`{Lv28z6*;^QVBylC0u?h!Q12hzN>Xu(gQ>BZPs%x5>UeN_uv}s<(oir+4I=IMH^rM)jZCfSTDj#~+N-39? ++z>h5aq-tEV?yYJom81C*234Q^=+}+*Xo$YqqPj78^Ew{{EYXz0x%FbLXvzfs&!`+Vb ++z2(8F~g~O3GM+-Y{Gd~#=-f?8iH#v%X;WpFbGQu5pL`QVg!4r2#d`C0$#NBO26wc6L ++zzDEmZL{!8X;w~TVZiU0H3GT9kk-NiOXWFA36=gTJZP&JyKIUBK+^63|YZ(9*B!R27 ++zmNq6tAU#sRB>^k~z}MQB_ujMjT64`o$F?O!wzDI$sby59zo$>hq{P&6COMZRXh ++z%*^VH@U3m1AxZ!L-I0hyWtpvNyXV~;d**E$YwzQ|3-4|4d-c5qUVCi&8GEK}7P3)F ++zL}mmeNOI#g1JeR82%#yGqL2JBP20BGja>@#eBWAI+Ix#F*=MDgPv^6cO|sBt(N2UI=pd7yXT5A-ZFV^C$x ++z_$#`4mdfbR3_Z}cZQ8bNTdCBB&fz&GmThd?wr$(CZQHiJmu;_Uk2x?sI~!`PrP#u@ ++z?T{qt`My6Q{)o)T%8bnBsJh3tZQDLt+qREv+hcQWdyGXJ)x|`_|9}3lZByMg+rD#V ++zfnW(OHpz@p;>clUyzhpw%*?%+ndwhvEOV1`>V}LVQ)0Gbwj;^H1v3t9TZxrJ`arR0 ++za-g;P00O~XaV%m{{)Y?JX%X`X0U^xNgdj+<4?(0-0vsU7CWMqoHE}@1w!(o_Q>rPb ++z5U4O#OQlkRpa?F+q96mDgL4AA)TNB=>#3&H3NCaxiv)#35G-yeO)KgHxFGOFK(auJ ++z3vez75rRQ*jEt`!s1Q8u0n#v8JRmy!Cd_s}^(%T&GJ0=j&V`l<>W1Pr2?6kc1y$zPKJexjXU>Dxl#@HTc$EkP ++z5Y-S3rVPJa2zVg*L4*K-6XH#TLvX{MnpUJe;M@;kN?GJV>SJo}M29x>AX{!U`g@`) ++zR|;NS%jxRwwqq%=2ND}pj?(ASmR ++z1~NH7Ch}0skTx&k5)^$|CBc6ws8P_=AQp&%?13)X33qRhosbBGD5@e*?4;HX%4KU> ++zd$wbHvb7xSS=CPYB_02)XwnoFHw`q{Fd~;aA$~FgJOkYYiJ2gxNwF^&%-l ++zKZ$O-)4<7?4Qb0sX7|DyC7sKN=@QHd=~!TqDy!pei01iS3=_Rhp;o9&S%vaC~vAwd=Z?|dOeJRhnxR<4p#wb>PBmq4OOS=fCBZI_47g!J^1 ++zCuQQPC7x_URdDFKdJ^W)fua;5Fgw#6xBZK71BN@J2WCvV#oVo7_&->G+<{jhr^rp7l ++zboi{9)@0~0zxO6HCl}Y<%vOts-YN}K2LEfoK!+rA(8(Gwq=$u`J~C8*Vus{ANXjq) ++z067>emMg0aKfcnd%U6t!|1$g>1_cP9`A>|qJq+4qq>e4Zxk2Glt_;eEv;m!DzEA8* ++zTc3-?@wRxRY3)eE(X8UnLlAOkGiiuL!XpQHk)BYB2KAtbt~wOQ*hnvo6iA;Jc^TR= ++zV3`-`0!)m;_cp&cca^Do6!caDC$Z-QIJhALy|H#SOqt6Yt_+o{c{VJG0YC!_SgjhH ++z)7$N1h37kB>kdxUzcgfEUwepca#cKN85tsHa%ISa1P9t&h~~<`N^*0!F_Q13YmH;$! ++ztFXFfd;g~F!!66vOt6R?^f07Z>Hp;+_6J*5T&HCE^-8YWbs_KgT`jJ!V@HYS4sQA7 ++zJLL+l@Q~ho<&7Op+eJcN#qX)``YR^oNy*sqr8m!ZKk|!P ++z-SO4UMV4xk2;DonShY*6XOX+mjka4J?8@!~}Z=)C@=|&HxcHCV7xH ++zLaI+jB*7?>Adyc9z*HVwyp_;&!^p&BY29e~u+KWZ_AoXik0-qmx7TBjuaTsOhzf!l ++zpaPAJ+QQY7Q+p`QZ_l?T-@emJu8$j$+oqIEX@D_;tk~^&&aisT1D)H;cbWgblcO9P ++zBqhjhA=KB1Y;-4mrkJ7-%CMBqN2du&jLHF9NS7G{+Z&fQ3QUd#ZL(h6%Y315`A?l2 ++zHTqg+OWiN7hMF~yHE3w4f)1bs%hk!Rp4Q9DhHp%4%t(8VIunC88p&*-ieV`{j8keX ++zIkt~aBx_ohyK4Hq-5zoNnP9Vs{RBx99Qo2Vy5(Xi@k{!rd@gby6JuEyKI&Yf+pVH^ ++zW21l5K++G4lS7Y99~?c?9n%>t>0TsP4U8K6WrIUHf+wJZpp(!wuxl1d#`JDK(lfUm ++zOZyEfnaDx1mV+k=G!+x`Of*a2>?|f9qqNd_N~<}}yT0(ynLqT=zwXj0+be|W?;vCQ ++z=b&v+%6A*oSfRBLa(7F4B+&%rK*4q ++z1)>IjsVkUWlSBn;usj*FMsXiv9m|8&KPljuYDn?a436=Ea?jXEum3&4Pqc|^OY|@4 ++zEOJTJmRlnU(;zN`m7nV0|SZEs)gF;~xSRk4t*^p_c<3UUBWG(AVREm;J$H8$vB ++zG&iK&X0<^{DC@v?Jh@Rvo!TsndGb;)coZThi>k#}Pc>Hw-3wd`qyj2vXs|uWG4SEe ++zqL(d?9*E?I?TveToi5WPF_i+#;kHA4c~r%XZh=tmGOmz{6bxvyS6Jp7nSD{LXxR`> ++z-psidFQd}8$jJQtYb(qw305eX-s_(-y9Xnhc4)h>E2x_~#`B@if;4~w5{L`YY)KY@ ++z#soQ{WQZk+1}I6)d{6Unb8g01l&;Df-KZE~kY?7hWQnST7A8 ++zk?<7a+K8***=*YIgZI`Ix?PbTo$%`Ek5B$LR!~pA7^4gCkB{V>2Ixc>KFK@8agoE? ++z_01==STxa*O)W58_zBHZo)VYkQByqS6FiswHLu>|A*xtR~+1vYJ>MCr_nTy}Zn^gcBcj4rz-m(^#*^Gb`_SRYy5u~&~W ++z?l{|vb ++zPf(?a`%d~x ++zdl3);02B^EgXmspR8uXX0+%cVB;x^L{=fmyJ&!!wr|iC@8CjuuLkq}{TJ^H!KE*SpY%stpo&}a6a%ls7ywWS_ ++zR$nW>e>D+2qf8!7s3K~uUWuR~T3H}Ll^m(YI3z$8IddZsyLVh-!Kupd<@AzO_f|D( ++zS>Ss0QYpL{k%}~Pxz*><+03b+P2pGfa&h~xruoiyKnK@*ub#FPo|z)8=dG%Lu-dGn ++zqQ{!~q-aU6-1W1ZQmmMk>JIh7X(V%Md+o-*Z*08JH-M#RYje0o091H7Edy3EGw7{Y ++z+naUmG%F$iRC8;kJ_ml3G7GHSj#Oy@1j%C-0sz7ssUt8uX1Po+9-5_y2Lm^76TPZ){ZU=moSUbEm+yL~O!@YF1|B@$t@|?R2SyGvQwEh5=~u@6o+(v3?SH3y2a^#ZAC=Si9`TU#VfIDX$hi|`Grku ++zr8=o;5Fii_%%Tu;0|<|vPA#XOqG8?EF5x8RX?VvHmAO_N#rkZO@l7+GTXZQFuep0} ++zWY;g;r`W#o!Js9aWuIKd*S5b_2KeSd(o8aFS2dHR@H<9nIchI_BX=3>paXgBaG2g*xKl#pP&}dKwnr(n+0G18Fwn8{-*_I93pr;1Vr**mRrf4Ayz3?z2Ih%;7 ++zK(sNjxKrA5&0GjKtnQ(`&p;6_@jy$*I_w|Nno?lv8u7aY8i9-loGQ#*;MpN@=O#Sb ++zTHp1Z%q=l{<-+yOc;6>zPI{!uCrT3XbHgTS3~9^zKXa&uuK)(#F|Vt&|A@Cn%84m0%)F ++zx?}R%sRjEO=F5z=sbZ+Z=7{WUbzFDq#A-TWQaA+<_QdT#7t{J+4c)a2W# ++z*eS8#TJCG^rAIv)9yIH^Yf_ZS&6+ypd+K{Pb|9!xBq%pL(+|Re&7|rSfN4g%%VyjG ++z185n*n(q^9CMS>M)PQGx1f(cC+}O5KW@{QkoFrE|S4r*R?lnH!`I@%v^jZAY8Lhd) ++z8z7e)$Xhu>eK)P5W+fkVgf}&^IBIN+cLJEJcL?70S~JWv7+g ++zIzjOv)P_DViZOuuH7^TESERc9%sY05HvDcd_veU ++zjd8edrU6mc2v_{b-1GNsMX$)9A#oNB1O2|gI_5!5>9Rahl3Z^e-LI){P ++zpK7teW;-ie!V1=c&0c{D0R>RFfAg7*h=>gLX$YC%8U{=vl99 ++zxs|8m{(jiMKn7O}?P2d!8#Ppn(R?LCJ9^&O7`eIN(0ngyl*s;)Nj*Tf3l_45ws_95 ++zDeb+9$Jw>MG~R4y5HVB`jwnC`@ZhWK?Xn6J{+;%~D^LtL2sRSaRrQ?}j7?(UZ0s3T ++zKw*c76Uh%-a9g9DIh!%J)F$iYO=0{D^?r?W3w`;KjXw; ++z^n6g!Zr+#X(h9X>imhNo`sj5y-qo|)RSY^w9dtnO*#Q7JadLpvfO7z4-~fG7amMJp ++zcYUaL`l%G&D!_q65)uG1N~ln4r_j6IDwz)5C^P1U@CakulL_`I<*0WB!$`56lR)vX ++zmyxEsL5|S5qyW9@0XYMMjT*>8FHGssH~S(!9#8i~4Ues(krgsHhy%d4poKDUfCGyu ++zX4@+1JV}BjT(c3PUVYPd2Ut+KiX?zUGD-!AMp209yFuv0CC4pIKmjyUS+f*W?>}X* ++z=3uQRS2Cm%d>-x{Vu&C@dJoK$R3cUw#_3($FqKmF1Q%we%nnGPLsI^~7-UW(XkL&?00>%k} ++zCkt%r?@*=)E^-Aj&n ++zU~4h?3ek`VRf4&WR7l!K9P{GB5=<6AB$x`V3I_{;qKoNlO(2vsF{(Y-V(BQ1AFak) ++zF-{2ePgy-kuucj6mopT5WA+3Hn0<8na6)knaByBVB|GXH{Ri{`U ++zI=XtasE=-dipl)%u1u30pq7FF=u~MT5t0m&1e&633YBPCyTr)llQA|-(D$e-6((aDg^ ++z=Q4(DzcAy10R@dc@Ws~U#1Icr0q+nmM&P>~OAQ@(V5!eN-N`(q3QiM}QeH5|>Ya?U ++zyiJ~;ZmxN-*`8N((Bpy$1Z%+pER6`}P$IN89dRK~GHsYO%6h6b ++z3u<;Soe+73m_ndPV9|yJYPM_MxFrQm&cmufSyHr)+V;8=+EJTL2I7jg*4JT*``RrOSS1^5kKp=2>wWO{TEv=L$2i#SxUneFa2 ++ziyfJEg_laN@w@jrXaQ|_ZEARJcek?Ele*|WnRJ8Y+QOzhcxS`0p7D9fdV`sLQL+~w ++zOK(n;EU)6S|0mm2zMwCf^sI5@axPx2Bw=@vs;_`ve1?Jxk0fyxR}GL!C_RO0`CKvBJ0Z&r#3nJ9#T0DxeUQf(XYx8~7pV?%VQ ++zp$p@!2BuWmk8HCj(_6WI^KGP+AZencvmr58RNI4O&fo0JYFft!YHMYCSgldv1KzYf ++zt}fF?1KV#Qc~=RuNs_m8(N=?r3rL^@&XS=`ZI&z!jg={*gv1;K&?yo~GWl<1-4c1} ++zP8c2b=K=HJo2Co3hc0=u+4#3kDh1LYzJk^g$HXWsR}{CUrKRjUvB(T^IV+myr5jZoiS- ++z^+bBsR-f-C@d^wS7=O7rX#5j5H`6=qaM>Gww{GuG-riGtw@I>4Ok#2}Y#0>t=tRQM ++z=)}^MI5_(?LWY&N-+TYtsPrH{ffdjQVqT+o<*UAnm|VL66E2D1)91+iZI%imVrNHl ++z&>6eMU4v2}WB}^zYX?4S`FQru`60KuI%(OR7(}n)_}Z`UhR0r0RCjwPnx=9#i{kt}HuUIHUVP-<&4gjd_3(8Be4T#?IAUzSE*6U1ka ++zt?kIH6xD)UY^Paq2EH+#)cZ&a9~*~n+RVx4JBiL1cxeJna;&8M<|3mYXp%@~0B8cP ++zc3||YJ2>~@?fyG6Ja)0kj{3E9b*0^tq2($US@;_yqIi+0iOVYiC|@%KSC7y)x&bxB(Tw`Ry6Uic ++z%X9o|++<(l>~C#FtXIu2?JW^+tkcI+RD+2mG*1$ZEEU)d#f{w|Ykjb>>-_Ipq92?@ ++zH*LIyOiiTV=e=m&Pwa%eceBK<a^G?|t;pE$FLjHYvm+`>U%AP~tzT0d9JmulgyO>fvTyFGJ>F;chp ++zlT~_(b~XuA3@x3lBxN9(L;^_qIxPe{DO5*M)-EwBJBS7F-~)T4@q?$RxvV9{xfY0Y ++zjqUBUZ6Y#?+)B+YOywFJ4mH&ClnYJ^*Sd2FS9{BsCTIALwKfkX#z`|XRz}+P;&LQ8 ++z!g}5je$|e1xKYzx#m7Cl1~+sMzP3WNnsiv1f`o1&lQtt2E7w&Q$ftd!1I0Rl7ai#u ++z8;>9!m3TbUGX=;1MAV336Xq4d1%?@<1kpoQ-p6udr_EdXF-*xUcHsJKo8cvHfz5C{ ++zpd^ASz*v<8(r8%S1iB+Y2b52ixXZ+;biAwrW0@_#t`yC+S}c8~=0ig;PnM2~MuZ&v ++zo;gj`rald!1;m|tl$*w$J0H{t*SV4>jn>_Axr~Orw;#tmC|yxY&vCR@cpP0(crJZq ++z{SfPg=Sx5HTURcU3rDW{wX-MZkhEhC)zvAuss&A~oBw4nkt?V-5#|bL4QWb4;!U9( ++z*}fJT-sYLApb2h)2tf=aDKO@v=_!G(Y6EO4%!sm;Oe9ng ++zcBP^S*>ZW-a2;5!SPa?57ykZoUwwrd&+^3*!vND=AsGNix)jI-dP~6qfC(E)4md<4 ++zmP$f<+Th?pGm`;>Rv?1{K2&$zwj#~(0KLdjA=)b;oL0sBZk`?RFsmdJ2+WO(+J1hK ++zH*P3$E6oyN5Si7D6WUuU4}suV+KDdU>TX$q#3KQ3&(y4Lw9|`jplc)_Ik#B);h)?r ++zk(WB5p8h5ZN%Fy$ijOawN0&BVEZOBh7jrAd$dz^MJ(*4R&7^505nowJn)H*aao`n* ++z$;M&|)g_7B#1vqLK;OHGLv0jDBe-%%2J?l~{LwbfgzgrISf^hkeuIlndGC1bu9@Wc(V}aXUG_7lJ=M== ++zM-(C~RRJ*SA4%5&y(ka`>V^ZrX@Mq~^?y7cBxeM{-5*%8X5MnFHuTCcz$>tOEHsSp ++z?-Eg0Y$7_ABN{h=bhnP>vbthNPc5Pu6w!FnfWSkOL*Qvu9`%u$Tpx#ga8%VGEh67p ++zPzwbkLS+AWDjU_Nn^>|XnZCGlqkdoy_5kq%-=p~2*}>H`miHi3-&z*?21qF;ss`W4 ++z#v!3wVo{(LH&w)|yGPsE@h(Y^i1$POBIc0^GBEW?AW#vMwu3#2W5CjW2~*ekL;Adn%mO@-q_QH{Qpsveyc^^s ++z!p{gcKE0tE{%)9|OzM?g*v3u+M|LL3ZYHEjl3tX?krm_2o<)Mk_xDS ++zGaHnZuc?@aO#{XSDL}d_yd}8+08Si$gXC@(vhTlv0|_8O?}b7kWb?>{+#P)cf&glB ++z?cmiT5BL_l!1>@u$`zB(d8pviOygtzYhMiS=))8|4-v$;*A?->-Ob ++zshKV7t}oLfzuYx!I@t%3WRzj2y+3-bt`m|QZ~(Nx2_`r$LKH11tzQZLw;Q^P2WlRJ ++z1}!tB>X~Mh$a7DizIe@;AMS$RYLdBU92%a8cRql|Gavczw*DJmxrlxxvY7Q;!>zJ+ ++zHZMB^8*bPK8{Tn{eBB9x9wE+Ob^#f(wJ6P&5G=&tIAJH4GEp`;EKT4VAgS>4%t?T_ ++z!=@wPc4pnkJxL1WwzfW?<}s#NUW>tclL}%L}+V!y=vrv1d{qP{L~iCy>&;4mu@Me@f>L~ ++z5hCptr?-tx=Cr>fkxVe{6}C@rdix*v?XFWXw&QRdHpKm+R94m1xoZ%aA=@oc^XPpQ ++zcf)|R{}sMo^$F69l=e0wKIP|M7zxTgP*S0ZtP8c54FIr+31SCv@E7zk?eTHEb{mQh ++z_r%HVgjmtaywS;0Ux{S?5**^d*GK*40oL{nHOsYs%X#zLllR^c$VeP4Ij56SOVOc`(Rcn&e9^Yh{dmYDu)ad(Bj15FbN1ol)wYGX5DgV ++zfQ(2#vrL;gTl-9w1PwI*5Ouw3C51&wI$K2#R&2`}SpiycdHZM|;h=je0KZ_)PpcVEcYwKeKWJ{f{Br!6~ ++zyL(v1$4G`dC$m}wiYOhg781#1lyt1~U2x(~eQ1uu(MRH%foeH9+I2t{+RLKtracwF ++zav6nm{uS1F)gs>|PyfKiR&8w`*P)De&5OVp--RiaP`Btl$h&_;PBg1S}`0JBA=F+;MW9n6kE`n57I ++zt07UqY{Xswz?1;uAxx?fO8E)-B?M$sx(CY*m`098o(vi#{ChR(z$2vJ+=6+?@4pzB ++zD92lsR7@iX%LKDAMzbwqC&VQ6CRHZ<9Pn|10ah=)J_0RNTEex8s4Bw ++zP(YQuhHn01M5Hx?aMZU^xZJ-^-cTY3)Y@{cs-(k#FxGv8^QPM%fCllusd`Q0ga8K~ ++z=b`VK0K(Q#alX^7i~^AbFq>vb1C#gyfttt!yFP~$AtLJr&GhLpnSS~jvMX*Xx6gK< ++zV$2B!ro8~LEf{xHkh!AKeKA!DhzyvmrjfBx2{NQ!+*jO&NbqFPv;66%NWYo!(V+Fh ++zN~XDz0ntuom@(k|}a7)NjY$AoQL9C2SHP-HdWNzwa ++z6gZKF(Am))oH*1BX}lug`~UykKTd!IWI#6$DJT*osDPjLBVx(dr0zN9!w#Evfue*G ++z2a>U{j?>v7l0f53Y*<7P3+DY}F(dQ#*ON$sM0~Tz)w%9=cpp ++zh94bN@ijm2me5F{opQTz<{HV0kBz0{S}}a+eXM$2PNln5$@Rmws$HiSkA6fXMRPoa ++zhB$!VnH#N?Rl$L9Cl#jQf|P=$5NcP5NH`N~cLcOsujm3KU_HYpyOeEP>^o`}zSqZr ++z`qUs%wnj3eiUiSC335EX(93vq2f3psQH~po*HvpZsii(53;r!Q&%=oXs~U9kG`n`i ++zRb$~DqjLMpPl|Rx23;?AQEUcjOTeM-fFcw&9%qI?zo2##4&X8w ++zri#KQB4IHT*DRXuGAW&)4NwBm)wGziur8=H{G1WsBD&a~x%6!83MH8U66{=Q&|8wK ++zCuJ(!4|*oZEg!n?X6*jltDxrkqzgUv ++zS+BoO9{Kf$=1s5uk)GSjuGjAE$I%DWt43-;0+Z{1^kuo{mp?^wJcSNG7yMTv+5pY~ ++z6SR=5XefMHN&x(Wc_`on4rw=$DJcT_nVCQqZFB_kKFdtVOoAMnfUs=LC&{ ++zPQ%$)Cv`;;>;Qtqk)&rFbO~=3x!3h+Nlqy}ez7gaR0^7#k$@1jgg}6Eps_q`pZ~ca ++zno|n)t}jM+5LHJX64l+7AUA$x3_d`&N(xH}jo-ZJy!_Qm-oxPe573I~gV6#9H?n2F ++z{kRt*KuBN#8bb5XTA+c02za1IFyS1}%IZ0^IAYMYyjjh8Rk{$U$a@jl ++zJlHJ5(;d?NJB4JX_1l_5dX+(vEqufykVO?bGl(PWR8}GOt=HslKGS3@JoYL^n?FM~ ++zo@uN_jDQ-TFmYJB+&^kMhIZo0{Pv{6)ddhl4O-?=)0&$3kZ9s1B5ojTa)_Bqd_q#1 ++z-!BXcU~QaD;e-HJpiyAP2v%dq3w<{0Lu>SR&;*!NLE|mblSce&O2$9_4sLW4iRlg_ ++ze5ZmOpaDlR95psS`o7rrWY!s>xa6*w_|n^6H2(Abf4~hV(F~aOMSG!^IdP|4bZ@E~ ++zF_QbBzxND!r{!!*jJsfZ7{?oxJSGzW6nLkqsY+ ++zOTPWCSb99ea4{C1TM*UkJXiz?6J2hV7QK|$$Ai-pTxFmFs`(4h_!HBfW-KQGv_Q`< ++z5l?Qh{-%ZRm7kWbm{LKBP^GufvuADz78ufk>Z8vHVO_rhb0T049CT3C+Vjruj0}zx12##coYTk%sC}cX ++z4vXm{zye^4DpuB=5r2EAMJ#RByeUEgc)tM%NOM}No0q(MY6Pqf%0awh4MaSAdJtSL ++zioExGKhVOyy3tx85nw^#GOVQTg=QOyvCZDw=~ju3bSZSvn*wt~OA-`jomi48a9VV;=?QxHc13JZyc_1(Q>@s``!1xOzE@v ++zIiPR_Dg`zrk%Z0~8+5aMFiTG8qE`h=zbGdMku=lB%4h#8_Wd$RefHHsb?Q+^F`u{& ++zIw*9<$RMCj%7w>H$sfG!MQr+Q@)aY4%Sp)PaW8ZscLau8hUE`#>qRkS>=jYm3BE&s ++zD%qO_-#lu;OR&Y^wph`S2^+TwO(!c8wCTPf!-Aa*u;Cuh$=-=FuQvbyA+nQf>}#ZJ ++zfu0u@vsw$9<0 ++z{TnngGNMR17RH0nVd}XsoSDYqIh_ygn-Op+HiDPh_T0iu{J7ENZCQhWEM`wB3;+$= ++zt9Wt;D9QVUOdAjXiz-)fwovzR`Z+Vijs{cgkL1zlqSpmdBhHkFH#>2F7!gdvFy+ix ++zJ8f6zUE{GI`r^kiStl?D#gyr=`WD99I^-=6{asvnYcm#~%#o7<9xkr*eelCLSmbhf ++z{Q!(*YC7`h5Szo|hkG_wKBo`yq4FblyfBGyg?(8)ymsc*j*YsxarrV0kn ++zyd-!2^+U1qFJt1eA5Mz>|5G_>5a8n0JciL|0=ke9w>{r04lNmM4`K%>kb*+^aWbQo ++zpA_cFuI;!6dmMSvF~XwZQXvW7*|jd)D9u>VUDExJMVjdRV_1 ++zdBRgUEvz*FPKyIz7W@U~L_~98TAy@qu`K@AWnBJ+ubZDf|8e=}&y0%0TXa@Su%wzi ++z*bL(Ewkx>e-{Y^y*;A|^CP5;6sE%7IFp;UnE3*|YGSD$hvf=J~zW4cD`?Kv_`$da( ++z;wyu+;HM3Z#)s$vo3Fdj7^5;FX^`F>fa4lKQFz3~(2W;>!`xm6!IUvH=X;Fxcf28g ++z_<~Q3FJJne{ObpL_34LN)hl0Ls6P6ci2b#1tGOBWzQe76B+QvrQM!>4G5`8mhkFUfi!Cp_WLTkP$0%K>rSc1GM`&xAx3 ++zb$q!;J$G#t_LK^?>>S68Ye1J$thMF#+o~h_jFyGf5qi2wwEtt2NWXy&Ndqp40;)BS ++z-JZcz*`aOJ*)EplOYhnx6M5vzugr_yqVd= ++zVC=F@=rDIhNW_jzU1(-yC{rLPkOd%y88H+6`UQD0QX$oXZf7q2@`I10-+t8?V@5G1 ++zBq-puQrXhh&E*bZm)NQXMj)A%UGr)*0(x3u85URU_R}vka7vSNtYg7+l(2dt|LVgk)dC0+yE}!|mNkZHFOtB=jkkv%26N?3>{%@i(#v|t ++z&}F2KNc_r`Iy0EFM*8Y0TRik45|J2fa_AtcnmR72Zz(VYP7!#YLd~%#$v-;LX-NgP ++zqw2;B#u!3)5Hef%MTiEd5%mOpR=q)^dftiEX2TTiXOl8a@EY4X^0e~mCbPqKG#igp ++z1js^hwKN>bX9oA!_<~z{y2yd&`^NL42@Dzl)M7XRLh8|i%x#i7HBCyhI2>Th4WIi{ ++zZ@K&>Z8GFub`#z4%GL2qZ`C*(Da0Vt23_=~a4M#W;s~Y!A+5JK4#53d>JSCcfG>ig ++zsk^g7KN&Bp&1DY#dD7d4z2{+JOO#+T(~Gx9d!X0}T!;*lbF0FN#IaJ@qTl6zUmZ+! ++z{f|1?LAr~UrC1)D39yYDBuKQ?)Wg7}SkjB-cWRmZHsHzgs4KUSi&V72hJ@QMZ;gu= ++zI!sp9YY?R~K{SF36SMN-xbBWlw~4Axi31Lp@I}ywX|+HY`r3=T)j^~}s{eNctF~E> ++zW* ++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 ++T&KD7B5az8I?g9{wyX-&!%U0kR ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f65c1c50af17bd95f160c2c60786b649012cb184 ++GIT binary patch ++literal 33494 ++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

;}yar?SUCK)+B*$`E`ZFgWbdtX#-z6Hi>I&eoI ++z^8MHFLr_WA!y4B*WdrRxmu+(&U_x?7edcYxMpFTF`KAY%Z8JIokfs)uKjDGCZEN- ++z(X?yW6NBTy{wn>lk(5=Mrc>O1s=X;s){5;Z9lp)T&Jqwf5P*OtVR0xPo<>S%jM_<_ ++z<2N;?lw*JUqm*}y?G+#>=|REesrS?D(cm~jS}_4vOdM>a@1l=0x3AbEFKNzb{1E+yW>diM@wKT{ ++z$ZTYoMuu$a``K3%75=yQ#g-^wfGkfzgLk%VdUQ*?Xsn5(qlUgq8e2}-3Ug7}YpTzC ++z?mhwbg51M0BnK=)cP3|q+zZR63Qv*$(CSKpwfsr=#lq_I=>g1-@8@s!FcsAnO=q6wo04$Ro8V6nF#qWg@ ++zA2anO{zQO)us=A+3P769M5qM-Y#OFP%fU*IoP5K|Zdr4u(d=Ua>rs@Niv^!C5%MdLp90cG-<@m2`C`!r2M6Ll8jqYf4@JmKh+5T7P*&UXQQ~a ++zwr1^_YRT1}XTW!TCl>KhZ6EaFnKFG6F$wi24FEbH21uHkgNb1=*#?dT-dmznWNNW- ++zD#t3*M3mG%cz4?b%PgwPJcuL6pwL5i;%)BW+af`Lci5yh>xKxsyj{{s7{x`3 ++zIibUem>j6>S?OjbcO;@fC((i>#gmX^CYmmq-LR=xdtw?$T*oK>9^c_JN ++zNmD6hCWM3oGHI-6@LJE*J_xtN-Zp)brht ++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 ++z#720i=zUEv1uL@KyToJVX(?Md|J~i52Luh ++zy@K728Z-h5j{?D&G)cvtMCjty7kdkj|K-ni%KD3Fm|wq^q3f12>eRn8%l<-|{KNW- ++z5sJ7K*u(=3SS4BHd__~?8kdR#Sjo9NR$t*mbA6}eRD;d~`y^!&TtMwn%sx4F5(+k% ++zyFnZJsuu0W=nMVaWfYYNt1L>ut~_;W^h-bJLOh79;$PZq)9xJDJpVNk4vwsB7?!sr^SK ++za*J%N40`qee8n9V0J-d2h~XlM4-qlCrLxV?V41K>${S18JS%jC_G7&7;0~j}kQG=A ++zn~;Esc~H?=2dF7tpO(?R1c0o3-kjY-+4TGBCqS1@hTvYMC;?bHlUAaLQQ1!oh(Wb_Qji|hbj0JHwS;3ecnO2dT-sBtjgP73>J+J;8$K+C;@d89HD7vK ++zcmn0yxbGt5-|wUilyD_nF1Mcv%RPKNp-VV%a~vpW^q0nxKD$lSf%Wc@9kOb*x2d6l ++z@F4Wdakm#$ ++zScBZZ=x!o*%lahF6sR`_CtrlDYCL*lBw5{)dmysSr67bj@aS;oDpi~>EG&*W0Eir4 ++zDwhU~`1!~)Lx;GU?R^PrGgZ+<4}E|GfohS`B~4??jLjHAU@12RN);J>&xRjEI<8xq ++zo)yZv1TnR_m*@LM?pWPchn3lfNUfXHh(g%VRR34FjbDtukT3Y_Ngs!MQ3;~@`u^c1 ++z9DP?ki@vV2y7TqAB%AoWTn?H64MqV>xx49v8HSH$d=R2z9Z##Z-j2!g75C3-&Kw;d ++z`7`WL+J-Tzr;LzUaJ!3*tnve5s$Nw5ub_>?h*TCsJr!Zt$#0f|wT|Zgg0DVAY0#XC} ++zsTcHekD=0Cgt7dYc!+S$LwTZ?Eqt1YuT1uutCnE=4d=4@1Bz{o_Y)vS4B)$wSoyhz ++zH0$s~RmH>MkhKK(F|GKCb?=wdS2GqV#D3mwC2_R2cz%6+((tUIAj0fpGKiQ1Q_8Thh7=vPd~2Nk#@wg{%Mvjjvd- ++zN_f2D^v4$m&d`#wq%ola4L`u2f!c>Dp|gv5JH0SRz@pjc{%U2(pQ4IE=>&Fwh>mAg ++zsjEOsoP&CPtOkQUQZrvtV7{*X~7DV*5-&AJhi}tEzJ>8MZ;aQ3d565-7K7(Nr;R9?s8(sYYH$Ke@H) ++znJ$!mj&|?&6gaJmt2r=y?j@*iIOuOIW)dHDyMeTt#iGW{<>0Q1uM`C?QQmV-yl6h) ++zEA8@J5ea`lFyNH)$%FXu%2$S+uu;iED~ayh2sMrBXB*sUG2SmDSHioGoeVh3_YL#L ++zH}pOs%eGD;L=PTE3-uR ++zQgzaRhR8QEuwCK1d#`!#X52d9hbPJ=K3f_$Z|;p`A6_Pe$0o;TpK^W8I*aUENS%($ ++zn%wDji1Q-Q^q5iUwC?ObVEo+U-P4*j<@7XOIlFibjG&R1ahz@{^48N8sLr-D%NS(r ++zM}yKO`G!}};BEk*vy79C(bS8=a(A7HR}-VKgxfI;3=U4_#^0*+GS%r+-+rtsv0w~t ++zY{{TWv_z&xYLYN2gGww> ++z6b=i6XxM8>Q94_O^FARs$kIQNO*T3OkA&Ieoqso^HG=}=sNTo4%Xgk}c6fMy%;N(Q ++z4{a85<_b*P%5;_6XE7T-8&hC_$nlUgyT~=?F{6?Vo=w7+?r?lXavyif6>cKi$VbaFVBFwtEQ}? ++zb({yCYx=yloSS#QT*W_EdRl$#f}UB7qYoGeAiLK7_n}JZ&d--6-{OtMZfa>~F+Zul ++zZal}8;ePmh*-^u|c=a18_kr6+;%>jurRiotN@8mQU2};EYa5+171O3pBm8+dhZyGZ ++z9m}k|H*8!`VC5Eap>Deht?QZrsOw6~%)ZQU=B;XxVqS4 ++z0;)!v7mTa`z_5pZ_WQgSJET;iL9OiW&nALNgHz%|0{qJ#w0pMUSS-spA=XPwF{vNP ++zo;A3U!C*A#>_%s25^-n4#jG|7P7|`VYhpVVa33^5$PWbvw&^TmLu6mH ++zey>z!eV+(i ++zG<4kVlNHk@H$N2PKP&X{vG)21ttiYJ|5j@>>W56{P4amkD_yLcx-gZ&lDzqol}r(W ++zW%$E;eU!-s{80IjfAOf*)Tte4AOo1URm;vPyccW5%}SD(@posw2q@fkjq3Kc=U6RO ++z{Ds%53+nqQG9KgkH#3?8E(^oah1_c#>n>LBxl7qi$&s(s9c>i<$G1u%X&#u2Wnhdn ++zfgTe?pPghC4+*N7e|8c7O(yYJ5a0FHx5}7!z5psU5?zTcqcFypP(7DOxf^e4~ ++zYQWHUD-@P`FC4$zcJMd<{acTn!H|vm^(xJqmz;0&!6%A$>)!t-Bjp~Hp==sEV9f%Z ++zf`55grkY!krg52T0$tQdHv7xh$Rs-S*a ++zcw-C60`+Se9(S~lOV|vpDdF3pk5_!cQ{XMEEU~u1M}{h$yKM_r7Zw~f(JZ6J#%+nN ++z#s|__pLla`$4;&F7d;M13#9NRDaG=?(jGQyv*ENf{cq@w$Y9X4p+iv=6%Hmi=tIga ++zd7?wqVjla3Rp^LL>=S58VR64P%DvkrbL)p500O4dERX<-n2a)szIxb`|HC((OjN!j ++zXtGIwmb|8WmM3;HFImL#w*@uLbsjf~--)4!%o$Dn;7w_gy@%Qg>Z?)L{~zra9Mxi4 ++zwxf9HkG#3aAc6UyFER?P|LWLseQP@fmVnnkhBZxeK0RV_7d)EPs#|FI+*wV`iT^0P ++z4uW~h3njLjltKa8k0inE1nynJ;6pMBw{9@h!&2jg`{#!5CeFfGw{jqzNBnR5)BJ|W ++zpD)h8*$*`DtHz>>g*u|@NBttyIXr{0#`)q0!6T&MDrSv%`@^hQrTl}H2OnTru5AR7PFxhxyi ++z(D?wEsTQkRi~Q9!0Y+(S$twk3e^t4fjfgljv<~&w4@(tAl#aYqC6Mx^Avbrp*20fou4@b{%Bo6uJxS$id-N$!t+ ++z8u=v8CkO(WH4zDYkFC~4!l&v>-x%W4EGdes*Fr+WE^7zhIR2r1kpJ!89xpjL04UgH ++zhFqTPg^i|heXzYhN%q=G+JtK2uuN#BPh5Xe7CGWk6pVD7`oRF^ ++zgINimGX}Du%U`aW^t_A*)jHlTQwcXKmi;@pL%}RU>2qvkb?^a&!v~}siNYkV@!I4^=DDj%Q0(Re#bDN@vk#SyntO^Q(6tT0GA*@6MDWO8#CZwyS ++zHXb6(0Lo34uS5?DO4>*_E#9ysK!daFqFTc|=XBZJ*?qXrtEPMZ)qa65O+xwj-$*{T ++z0z?w?<38z0OZ6#+GP82bw$ORoSZue ++z%TGDPEjj8+;q(eL@s~#z3psY+!rHqo;jfzzHvk1K9Q$6Ofbd5ji~*y?4&5|iQq9L0o-Yn>wMWjc2Nx=^rus~_5s{6+9pTJZsSWp>utv|z`Z ++z8jp$N$8KLdQ+BCO)3FnX{iO~YmHWr*LZsGix8#;C+X3ubBwMW`h}ehZfqQ*kP{I1$ ++zrKIx%o~5bEz1O49Ve^s($tPrtXtdn^s`>B(dHLz9eQ?h3(VQ|& ++z{#y&nV;Aok&Zt}(!?G3*&y9fP7EV|1~0E28Vk ++zT|amjLY7=K^g+R#@xhp9)i))^bco%3MmZ}JW&lui8kBMj+YiU@K>n78z2YDIO1YrA ++zKHvYBJ7`c%gAG%BbB-(R>i>RkT|u6#^I1SLM5H;=rgom+J9O2$oh=mpoHd`WGS?thGqA ++zy4w$4AXbQ7(pD(f!f)bf;7;E+GiW-DO0`3M8$0qj$qBEbW`1s@!+iiyct0fPc8`5l ++z_@#skb`E0!urCyt1SzD6D(blDK>w9w26Si0ZUNKO(zrzCCTr*keY}TbN4-O^5Ta>2J4L!u5e;!~JHF-nZ ++zV(6=QNF7WhS>`AXKZBW&e?gNdiL@A)rB+Qsj?cWZ>A{QVoZs}Zbk6aIywiVww;VF|aaNdD8Xp$CU4H(Z4BZ5T#_sy9fiY ++z0@aDynNB47jLlcsHOtpyZl#`rA=CskW*R{=uOZ}eHzv?a>ASQMm&WTt>A5BCvNYDo ++z-8E0HaBqpmzzm11b`UYF8){?eTjp|5l=LF!3qbew?Lhq(mYVxtjWo#XZuD3whY!^m ++zi96!FdmeJL{>K$WtW9!LQlZ^itA{D-oGTdtC;H5H^0wu}Q~rp(z}eFVKQIOeHuQgY ++zVw>J~cRH8*RY=lMjBeIZz}xwMtbWL9_s!q_mb>@bR1_R^=|b)NEtFx?@qrqPxl_rr ++zeSeEsc?LVYt`A7Bf#QN{948Q^vcl+WyAon4@y&jWVK_P ++zx1P(H9>P;#<%VFK)k8_9dp ++zYL&ap%?t)4W5y1S0a8T2BU9WKQW`>wE_rC=V(IvoI|T44L|HwQizXJ-eXi-|iLkrV ++zN8b;3aY$v5D+HkbM&Y*!_C8pZlY(toKhjrR?6+5f4CJ1`F ++zVEbgt++*xNwv=y0;_AsC9gnZ0HQSx(o6!6Xlcwf1Vt%+f+J8&_q3R8>1SEM326hLy ++zJ@w@0rksw7DA?~!`mS<#{+IRwLnV#ov@7*)5EvTJQJz`-0!Owe?m@mv%n^8FM;>=8 ++zr#w#|uoN&Qw_Fv|W_miI5CaNHf;M76vLEHCuCD|-SL!&H3j3KUSWd~`xFp?FXrCCA ++z9i>A4MaymxSO>bpSJl2(*lYi$XulJ`1-h>K=<(0h8RpO>$Q?b1@IZ%#gon?EU$2bc ++z7Pwa>jkhE#7(Yw&Ur2D~iy`aOwyj!Xdt0^Xg;5fwGl02|-sDY%Xwaae`Yihxy7?P9 ++zdNwQV=C&8sG&N{l#SG#?0|Yqv?2sgtSsj=JraUYaz!d)OQ@I$eRkl_{j`cVcv8YA* ++zTA0B{ew8DE$@NrGSLCEZ-{Obf%XlKF ++zYg4n`M)bszzX?`+i?-&2B(GE?__IoNrtCg$%zkJF@dQphA2pbEyXnz$|L)e1vz#MF ++zKuFgF$CXk>!`YggYn8u|p6Y&IpkKasv= ++zm_>yy=A)3$me1q-q(O=;dd1E-c++7AQ7H|ER03^HLx~%I97R^dm!C>7zI?kadTLiVt ++zWZ~veySX*u7Y>=zC=vz;2vBVS+M|98f(<1L*|dbj@M-Z0aytBGE+Z#WD?u4najsEr ++zI7~|+Tv|K%K5>hVXKLtEAfBX8e)!>QzM%u_sKj>lQ|t~Va-<6-f#}H(B?zhs&2Qlu ++zsO#rrsQ^Gp_lcT>WI7Mr2tc6JG0@*V$~+7JAo-Do$jEYz)rljvKED40vwSksl3O(Z ++z7^Nj|Ux_50ZvKt9!zh(G!ZIEBS}&z|@|ASnG+G`6AR3;@6IL>uR_{^$sXH%RyH$EO ++zU9JjCZd2*^hc|%ixxEu5Jo7mj ++zMNJY{8ULNiA6jBtD9#awkD ++z8OR{+62nRA&cJuifS}P-f_?+b;g8n&DY>L9%q$WmN(9sJ%GD$1A>ER+K-8sW85|_2 ++z`Pa~r9Z4B$&=k{`sFX)!1>VHsS&tGfv@&W;SwoZR$j|95t8Pti<3H*w-pj2h?RHYA ++z__LxOPw_42VY*CNx@9JdBjX-TaT5Gsw8kv(gdriE^1lpx$?wwsj<|$ ++zLs{qcrc%Nx8M06)92Y3g8LU8ZR2nCOMxhEv+zdHWwrNUSOjyY*S#}^&=w?IjPkts* ++z|C1IhK8RQRT)x{hgM*@qD50d%{5nR>$>cuWISstq)s%(cAz_;@&+a1P?=f3u-gHon ++zp25dV{B9McXKnquPrMB`rF>9I)IUubLrao5TJaS#MaBokGGa&7%$~;yEyh!A&_zLk ++zZSlRWcd+Sxb@&H*Rv6${Oazq|+KIX8sIMc20tnumT1v`y;LKNQY~YjA2F|eFK3sE3 ++zP$6)`@Yjvs#1=MaK!ngB7yv$ayh=isdfu64P(qBUbbGNowAF0bvZzA~y*arbQWdI# ++zy)e?AeF(>XI`yaxnjm5x%hb=cO#m<#TLA-Afn1rJ9a`f4ZQF=%io8xzi!_M+oqgZ@ ++z)POM&4;cNRL4b0M=~0ZvA^GElklPE){U{@qOkRlNn0``0Juzk ++zD?F2U8YfM{9^Jipt}bVThQQ&XMCNe*Vj*v9E3k>A5|ka-T4nfp*pN>CmYlUmJEvpb ++zySf8NgwhAKDHINkFyEJ@K~*cy_`P#+&D9K@&j{xiptVj-Pn-MoLVPX&cK?UQM-cuh ++zzY<_1wN~H2vUzhLnS$GgSvbd7)8D-QUX!Gc7&j9PGh9AUwROx`Ck&|3XV##YGLm ++zzSlkoCCMCe!)k>h#`l2iD9WO(8srK3hsR2omqPfu#DYvQfPb^2e5e06l5 ++zw>8kfC2o~PVFccr8T^zr23?OOEHd~5o< ++zU)YGzBq0e3soDs)4YftgA@k^scWdRmgur#U+0|wU!npz1LrIeqDzPa51urzGO)h2_ ++zdKE^ckQ`Ds*h>DT6$J)R?5<67Bug`pBjxdl=kgK8e9HB+CKXD3B>jml ++z)H%zlAwOAhqR3?Q<%u=L0_JbM?7nF ++zCtzB~jv-CpE))WRtk&d#BauDr0ZVhEi;rfB++CEmSK4R+QD3ES${#Ax5tzBfP&c&S6bysJxJkAhPfUDOnJN$%4&7xPi+7D*5ZEwHlCtUp9*}qh(Coxzb&awTs_e2+%j}Ho`q@zZT ++zV^m|h@o^uG6+NkLIMx@2^R`gW7gG8TlPEz7>xj~#`zLH#bjL(Ns-x;)2o^A`RA-|& ++zQvJi-$fz_K3Y9#xOiPrk?aW#%4mlucDiaZk}VbjH%b`^>?>aeJ9C@RA)nY^s ++zHt(x`bsYvg4*I1l#3Y*sKIc`?N*@0x1W-{V;u%_kg**YoXQa5&;HW=DbMO>($8MT1 ++zi^ZqdkYpP)$$KW`%_F(5pWX}IySmF!LWV?Ae#ToZ~c4 ++z*D5=EMXtSN?`%TDtcdE`vru;UB7`I|QpC^iANZW}d7tw>=lyz)$7_zwgA_)*rT#7I ++zSL*00;aFyYy!}1$s%IW1H;knOz&z+gf+kgQQWC>f_IXc)k@dQT%v&=tu|hIMvM=~u ++znQ*g8qj(yXTd-Vz{%WdJ{p^wLm=pLy1=Kaea@yd{ES)xO+ozBA^cU=`vG0er4h41s ++z@{3tq^hu-b%ch_f}I#*g5usr7bNbdyD2q(S7R4F6W*uK4vG)ab` ++zjk|`E#`)!{Y>rMU4|>`y$t#O_JK}f$n31t62x9k3qMq)1!>tc5rykTZ(WWKSN-}E6 ++zB1rsG+wtr+lW;{gFD#&(X-^yWm32Q*)tIQd&4B+N1I2Pi%Im^XLhs1kYt|CLOs)R5 ++zP=2;PD#9-PEIKPo9z*G#u*22B$BegpGZe@_bOSE$O3;kOZ2F|c$H)_)jjOU`Ko_qd ++z76i+*{MtwM_eSNdC!%XKO`zldg!IIjJFNXWDtzOE)7oQr)EM-5&DIprtO3EF(v`_H ++zP;TOlru&`ERXyQ}^6KxEeO^C{X2pHyr3y;eDL~ehgqfLP~`CTs@*S|c^ ++z#RJfx`)Pm!Z>P=|HwC~iOzd3>de7k-o+tJlmKU!lj3eVO*f@#h8dU9+EYgT%Bprgh ++zfQam9H0l5m-q`a>0XIE6l6DFo+Wv9~nW?_(-cK-h-lteZ{s;Kbnl{wM=z649-hA8J ++zBG$9?){RXGnA{^0CEsrT`NnTX15o!1yp{?WmOBj{I7~HUkSYHoXZ1bIhRLm$l<*n$ ++zA!#I5x6wqSU2Wxjbwq@@J^d5^2mfg%3UQA-#pyr)d>QVG`zIsXDsj&BEBzfvX9Et2 ++z-hBr%ZjUhf%c?Rv@~RvGT0T0?{kk}JuZPC?a)VcFu>lkrj(F@hGRgwd?hwn0|Kd+` ++z1o>)HZh5SJoTWjSQ*lGel*|OZioSJ1@OxqkI{a3N`ZtTm=LBEEJaeOaMRzYga-e=B ++zsogg^Y5i_MF7WJ8%XikYXh7%Lo1^u-8pvHD=cs`=nWNj(b4lyfcWgGkWjKlzi?5EN ++zneSZiW8GXss}^(=iUVQoBOKv^*Tub2KxCY ++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 ++zwx`>Nw ++zr{K-_`xZ(mp>_$OST6wZ{<}Z3CfK-Ir|haoI(ec#QYtkYqN`_H%!3cp%9&iq7Y9efRSnQ^ ++z>^-vlM9JeMQceK7?q%E|TpRRp{OsLeg{@kk+`IepjDwj3-a*Ok!;+tE@iNqmx9_$= ++z8umP2tGp?DSQZW6Z0EqfGI(Hd@Q>4Ch^XG`QATi@U3ltD24~g->97-!umYCcz5#j~ ++z3AY(Hp4+w4Emob~70D9Nz350ey5IC{kN5AY(o;fdOtr<7L`-$m-hi!X=G4WGJj-X@ ++zgHb*Mzf2z$VP0c-`zMo}1`zQu;f_CwoqrvqF8jAG<-$&cB$D=YyuIB0TS|KgR#TnP ++zJ}d%BVJ6?7(Y_5;xC7?+5aq1#RP*UzsTH}Z8>eOkXU)_qzce!p@a$@)=f`Fn?gzS& ++z%H4Z?-#m16TM-acE#^faz~1cafjy)E%89zeW4%xD%JCWKVKu#PmvSbF4Y?7Nss3V! ++znm`XBC;gOrYJ2%0QQ^ql@+A6u_({&<3K6h%WwLK78k2da-Qpse`AVPmpvL79n9?7c ++zj1p!zfj(v}vrokbR1i ++zR+Xu0$GrCYI16ai3nf2h$&Kt!pad$0IK`4B1fBBE2Fk=|-3ERZfoS3yXCK(`3R{t5 ++zkY*nimY`C@IVKp@*`DIR=|Y8S=`3$wUa{u>EwY4Ns(AHA{WO^Tq^(GA@QP}$o9u3Z ++z2Y=027LHD4nc%~e5VL`yP3BZcS3pgg-(Yw%S?W#q=Li&GoR+%Lkfk+e=hhKL={FHA ++zL=VSZTgc*E0OnXmC;d6WubNoi=6G)xAX#r{+=%81uTI5RHNEi;_18*QHO^hF>+Q`X ++zfe`{cF~-U5LG>c1b+J*|M=~OdoCI}D7+KTU<{jhCz@9gZ8&;c=N>$y9g8Uw>PG&zW9pfI<{ ++zO+QRfJr-bZZOAo6CvzK9!rdzBDYla+F#%DcN? ++z92_duaCu`=Zob+>22FJqK)$ih)boE+J>|CSPzn%KTOG(3?$CkB>gy(vr3>jMe-|Ycv=p;3p073P%)beFAxpFte>rh}q4-x4L|vlnc7aA((4K ++z$Ho}S)o1-sza48o7Px1W-=3X+-Y&Ey(owIrt|v{Pgf1pPGsI-nXL9v4Fh%!^%yPU7Yy`wG?dtTM0-j;O7vt2Ch--+T`D9~yOq`|1w5MUU-}`B ++zR3HKQ5f_2sO{-C=B^EQ_{FoW=c^TJ3a$e|u) ++zq4W6N@i58E<4J|H!3pd_o3U|!-4VIYcE$Z92MZ4XSbh8Gat+t}RzQxx8|(-~1uJ~? ++zo>w+?16DQvgMGS9b8~23Q5s8QD$0;&*K5bvY6PsvB2HfP^daH^@;G{#g-dG05(b4G ++zr^cu;ta9(MFG0wG=9+tn+|K9B6RI$QT8o!zu!Gw3Mgz_|!w}oRS2@izg-J1jgTBy$ ++z`Vgi%g=7#AyWJ$w;H~3JzDog*aTtJ<+dGs#KGv@U6RhKA!LP4LS ++zu4gxvR*0%x6$s#01?>?;uVrz-cS<75HS0+G+Qq`!RtSUHo|A+&njUiAE%^H5Kfe)l ++zek+w=YoFjN*U(#s1@NcUL~60o#jxlTrx419 ++z8o=}XczS6p^GSkDY?l_js?@Pl%gN3`DfH+ogbx7S_RAVUJgNu{9)zdm7lIcsdub&L ++zGUouHeU{TM$K+{d;zs@&!@4$Ygb1k3>tdAX1<2g-rR0-&UG13tDP|i{nPKfos3&gl ++zy>CQgt(o{T1s+V3@+X%ZO-?ngUbA5!4mCGG*{-j~H|4h4XkRrH!+w;_5?cAM%21K@ ++zjD+ZGsPQR?KOyhvIz`sdVn#|n~{iUk5 ++z?Jw!va3{mhbZ#);vlVje3^dXzTmqq-Vt|ORaXLl|4GQ!Dg-;$np_a9oB ++zJBi(N)XIhl-W2@(gYN?AYc%A@s!7C*VzxbL^^JehE??W#OVHA1CH!Yn$gvM8YHaDGK$ ++z?f)jX3yKTaFdkk9|L+rf2bv73I7kRsHAuuqW4?}CWG13hnyaMZ7O&$~dYRbsN-{b; ++z0@-Xdg@&Vj=)+_5-q67$fO+5a_P6x^?a9yYH5|rhmTqwY^g?^Z-9L9I{ox>cApwWX ++z?7C97w?fK!U=y_e14WrFT2=54-LAOPdCjxRuF}Aot>2`#8JAx79>h657Q-D99b(cQ2N*AEVeLqga ++z7L3xy!w&^&svP2~Y6X~Agir#-MK`s!+DTEvd(7i{#g&oHR5FStfupHj!ycbNo|zI* ++zp}L9oN8!eDMSmWSGZ;?m|bxJ$d8TjTyem ++zsrt`Heq_vV1}xJ%W`<=>9m#$9_8AO_xG98H^Nu@uOt}nyXcefSKwxzk5XHNoreFaU ++z?x&O>Q^yq193CaiO%vMe$!PA-s+r8}t>M$`B})6d6sxUvE=Krm$tCB|aq>Mu2BItu ++zrjxY6Qp_uaCn6y#BF=s*OAN94{nJC*w(+LCx9n+!vSJWGNZHXUr8(dTlCowlyb0dNhkW%XEZi`hu`;f}6HLimF;(2x ++ze`Z@PC;?Qo3{=As-I-|y3fJje9A!jMDXk+U&jF&3IVOp$E1V!sjo&u^4TVwRG5ty7 ++zEp^EpF)lX!(tp-hHklVTdy{%7tCcR}df4&c+!Ztf58+#j=}SfX2`OctS(R>?B-gxO ++zydc-7pQ?uT=qz1we@VMu>@##y+>3fYrto^NzJAu_57C#78v27%|HYGI0xHy-+j_cB ++z)zy{^_Fx1w6)7xR_ujW&J^ ++zh;U2QeL#R`^u3?5S!9Rj$3teIW001V`lHR;O773zd=6FKmUb`P1J=?OJa^l2H&d)R ++zOQbO~w0x_*ktxBY5crS_>2U(1N6Of#sjVCSbcoR7W%YLl=f7#p^wus^de ++z?wRDPOfB*9@<4A&bndmC;$ZNmKVG7foIaHF%j$HddfmRLstIc9lW;@XvE&}W*J~sW ++zaF$~*`2H#vUC*A0x5$lI{paq^0elv8rZJfwDU>Ympwss}50g2Z+&NSnt>YQ~NNn>x ++z9C!{ph~|K2IN4z&ypBp3|CFsL ++z90;UFde%#B2r6@%Nt4oTq2+@?i&^4maAc^bJ|Q(FFPg~J}#itxB#dZ ++z#(PKqP8%gv(8`^yO+=@vr85p7-a$pMNFvE5A@FQ(J?9s<4AB>()Qd#6r26=QOajtN ++zA!%%MhVbZtj*!vf-&WwZh;_c+Bk$wZvT2s_w`$Q<1&7;SLcLdtLYlrGi5NN!bQZKG ++zP|_EMRYC#RXhbV*d2&a!U7Mn(e+wdc`j9DVCC5D_|wkDx9O3R}@m3VtZ ++za`eHj8yQBKOdcl(wSd?1Z@cARiShplEG;xs0-ZK3pmlzL#bcz3ng82MIfRcXjpsc%}&3edOS&mUKBa}z%q{Xjn)*Y2hi6$8za&070|0~ ++zp2Kn=V?9RgI{Ex42z~`wj{X4>wMLkb!D!kMCo;;w76-@%`S-rB5Cwj$JAT6mAKZr1R8gPTb ++zUJr7bCJyc#CBBa9`RBqZ0ih2p&3r`gm3FFH%Z8f+1JVG1xA44hi1m?=ndar5ZT4Fr ++z0M)7HiFJ>h!Z=9Thy&t^gD}%SA70_B+FXvHq=on8ylz)J$k~6;&g}>Yvxx(HEk~J# ++zM?K{LX-f70+9l# ++z#+W6e{{cyDL;YnyWgS+9IzeeMQ>hE;ul{#r2`1X9eh&?RWB;h|i0b)P{OZ?4* ++zeRvedwJ^o|3v8%tQ21rq!{aBOzBYXKg ++z)#BJq|D}q3#j@J@H!d-I+N2N&c`sw*sY4 ++zgR*P8St!jv^URmII^LJ>!Ay2h1CGl$C<^tL`l#Kbhqfz2>6h0ltx+BcG9vUw5smxBc ++zcEh<4`*f7)ewh*E?n=*j#aEBMaCH_QU@{@z`#;jP*TP*6Kji*C@|22PpSzH?{*r5o ++zSy}tkNB_1Q0|0R?#bJ+XP0#qo5GEP0sLtVhnE^e2nKwnM^a2oWE)tsI1d^7Rd`!<2 ++z^1!1sN9ZLX$c!GDsRtnOeeEGD+(DuFSN7s|n ++z239#@Z|Qhr!)^h ++zGcQ)guDeAnVACF@R*roR>KcG ++zYB27G<{>k&byP^M<{ZzHzp3+p_<2qw_AU=&B}fIpi}-q3^_-74JdBe0t@khY0@+9I ++zbg!u}mByp2BXdLk%{u{>T)$Nh)Wr=vpibR8-7kMfSsO$E$DKiSru`_Ni?@7mEq#Jo ++z-6RC+4Ej<%{UKeQ@lQ*R{|*@ya5w7Lh)c%G0pyuFIWQTm(lp?QH#v5uO=#H?`S3_5 ++z3iB}Cp+7Q@{{`3PjXK`ExB(B>u;a5$@Pt=0D^+w)#=N%Oa2n4pk-uM7JuhcFVJ=gy|N&EM2K1X7mjH!+NwBW9FaU%NM_;_DK ++zsXRWLn^};v?=LiR{hGD)7e!FG=Qp ++zIx>o>PJQ0`hm3U|w*OyFgKWgj6v#FJfYbiavwa_Od*&ID!>r?Ne1e?$v+{4(;!+{t ++zoH{&VTgr^u5kA~v)VfcEm&*D}0>*yG!mBmDXH)Es`*@1kn*r2D6sMeh_2*@gmt0%E ++z)=7(~qS?WLmd#MD2#v<3im7ms*LcWvMi{S8cD(s=?}_b18uK)o87ULwGgUMZ^M~_5 ++zFJbnebX0l-3{>SQaW=HM`b!nFM&n%W;vTR6V!Kip_!jkr^7XyBQ`dGZ+5PTlst3)z ++z=&wG3RP0#>D+YD=_TRsu|K-asP?t-w_TMww;l7mcy{>Qof4lKlH>F;1v<>cvXM~7e ++zJ{^F~dQEf&_52y0*#l^{=#CKOoPv@MvxIcls`$73L~wUs_?>z>97){?>`31Jn0EzR ++z{NyIRYXtpUcno3tS_bWaxf{NJY(akY;>UXIBacl(4)#+5+Zx6`Qk!vwvWx&Bz-|lN ++z`jqh0n|-D5>nIJjD2^p-&Q|PVWPqf^#^kL@Y-*dfih5-KfL+-*-J6Rb8Yf5N1oL ++z{6k3@uKQ1$a>c8sKffLSy;1P1mK^}!R$v$Sy&5=BZWziEZ0(pYJ{S#wXu^$JNp(gQ ++z1i*U2=(z1d5U}aYOU5idNHR~`%TA)kOX^RqL(B1c8%yxC?QtSunFV~e^W^cSFD}vq)}RzG}}oGMJ&fr9kgBwHhg7p ++z(_R@VR(1wUHtQ|%7#DQpD}A2iN3$tJy5yN+`8?_6;J9!F9`<(ME)yn{Uh~n ++z-E+i503ZFHtz7=aR>&SXTO_IC7iJDeSG9CDQolOMfOjOWzh4dvqs>7$2xH3zEU@6J ++z@_pxs$EvF>J0?MYF!7$%S6A4MW0*}+A?21T2(Vi5o{9b3d)j`&_*{`oC2unqb^*SX=> ++zy;%u#4ZS6fC-HJ{`F|^kbUKYFF4bm#HXg6c_IM4k4G)bl?5LU7$m0TFm* ++z;NGzEP7EjPj}oxq)3XIwW7$6mo?BJ~O!$Ze7x3=Zt4d>p{h16^quFo_k@~vNov&R~ ++zl*BD>`Hsx)`L`Jta?7K-|0TzkD>>(Lx7p&$L!_&`9_tA4KW552BN<>|Fp{i^R=PVG ++zONQz!ijPjB;hLCoSvz3(&^VNQrqZ(3?%lDPHSCb{MF*I)Kr>BXqJfGP!MZ1=FI0+t ++zU6ltjdLEhn`*-q_BUi*vZt0t{QJlECzdjitPu+tV=h+YAT*YYfwB3TBvdKxDhWjZy ++zLROs<)Pt&SufDo50e;)RyDLe-G_T`A9q0F#Cy5gV2udu>b%ZNJNG*4xU){XV@#FJr ++z_N;F&7T&f;n6rSbI2D0yv)lb1Vpt8}rhRO>0929%!1>Fj*{vsuAv!>J(lPnLgN7bU ++z!FlQF^U5@Bree+x%^ULNn| ++zbGgG&zNS^mzf8Oje9&$D^^22|e%^jR4TtK<33|vNaK5qVac7U-CFwyjYzci&Qav1= ++zwxjxoKAm`nSBnZJC+CxW}+4|WY4 ++zVODFns+4>~%SiYd#{)u75@2MnKR$S^I)&VbDeKOmk6&71=U~+cGGtoODy{v=5uUC8 ++zBPIyr9TQjmg5`}K85RYh*Dq_C8ysQ7ckEX<1=0kxXqs>NMSG=4XOu=~z9leypOp_D#3I>F?6L49+&LGLmk ++z3kSDKYip7jGh?#E7!Ke@0Yn6Ao!=qP$qCEr)uxHHI90Fd3UbO85-5+SY)H@h@ruB$ ++zQe4AMnsklKstzyHY~q0md!Dyl$)epWsS=)UxTyh9s<^H={0o6)t-f*=Hngv ++z2RM8F>7leG^~d}=RSVs6V;_ETFiPclhK@|i(rRgSUHop~piLFXTnusag|BnB1EfrQ ++zas!!UM-|Kd&TdJ5!XN>W!}_QctkBw(LNK5!VoNvt9Z%EC)Y#VB6~bOs ++zN1y)8FNAHLU)mUM*dG+uepYwvm!i9r62twAnRcW~Yg@uVRiix%p4O;^rn3q@>-4eNW2{D%c*7r ++zRSW5=Z$GPtX!Y~e%AGKt?p&td{OD!Dd$V_#)QG^+im_VanOPyH4R3A=VlOmpiN ++z78`B9L%eS+ERf{`GitF*XmUQOv2ao5*kVti6mPzF(-!uAr^|*p+l9TzK2+`0zCWxW!AM!rO ++z5=k@&koNGBSM)_>B|67zxphMEcv0)DegjFCK3=+&$Lm}WaD%%wG5)5a5^UH|6LD!r ++zJH~!29U@|&Xx-0ipAAg)P{ns4=Sg{uUzaI*aHwKErWfUI4j ++z8F*WvqBzdaWyGxr*Lq|emxarbH_K!@r?qyi0kiRi(kfMjiKHsz8rBfvGVpqCiC=0b ++zL#>qwR1k?E+LkIX4V#P&k8W(FO?;Gbt%15U@|^A(fk50LUJ|GJBrx>+)Nsz1BYjkN ++z?GF$zr@6~{?^SAP#<%8F!=A4=hQLZ$VA^MtS=NPhpQ=(~crTL7Xn_*Qb%s`K3OlEG ++zU-CtB_K_6WOgu`>7NeP!0RTjrdAyR)JXWv^7t!}KhIC59O9Kwxv-@4FZ6RPb`AQ3! ++zq7l|i@|540;QRxuMc0l1@*lGl4JmzV1B_Ts55UG1>CfDARPS&V)2)%OQg!KqVbD)* ++zb1;S~ ++z;YhymM9vWn-^I+z9M9GJ1lew|eLV(Z)hl`iAMDCIu$*jltb(&ueOR3Yuf88Ao;>VU ++z``Dxbh0_i8U0i7gYDQ-Nmj)o=A63!eI-*1&^P%r`V ++z6t}R9$M(R@d0aK0xk#p#HIvOiUY+#@(J!5ehI&{itpj$S2P>ejw;$K9Jl~}F0q-KA ++zn>A5o42RU#K73K%N&9y=yy)`SI|*FTdiO$(&J&<<=>RjXuJh7E8#zmI*ZApbKCEtY ++zyII`FFKafPteUbKC-vO6`d-;90PWK|=FZ)D6q~=@V8*sWUtq7cV=5Ct_ ++z;-Jlt>|T)P#ban>eI=p9m*f|3F(Ul72$`P1*Ktbr%`GPpV*8785N~67=%@$B1N5*( ++z8hoeCH?zSHM^I3Ihml1N`b+*<{qXDVj|l^fxNpSN-@Tl(7h#qTPqCE${H9d4B8o ++zG?7D-rK*c*%b$#ds_J_GSGJ=9w|zxs9Yr_W=9z#lw=~Ia{8|VCoJJCKW7g)^)K%A3 ++zuKQz_1z|pT{UK(?RndA>SCxGSh5IBG7%QfRkMgZh&Zy-6C=L``p_*G|n;mqpMbr05 ++z&bfD&R>`fj>a(L;>SN#tNSTT2&o%bDe}qjcz7?j9c_CSPj^&vPTe-z_?de>6@#VgF ++z2xkRzhxZYMOW|ae^=-WZo+rmw>h5zlkP=px?gP93OeFFB_3^rIYt^dX6_k#on+krv ++zEjE=jyqyt|iNOiiJruo3{nc$Ep~tke{(85AfjaP?w##h~bhwmoVhDfO9v%Vq_*TDo7J^j718@dMF5Db?sTl9ym4?L|@#)}bVzIeL9AdxPu&zrzC ++z@0ymBX;)*w&f((eB79L+DKO9I$oTgS!>3J2s`_e2Dg}=?Ca==g*S;Tw;a&G4$7cI8 ++z<+(1y9M2M)R-Z_P63;<@u3-^Wp58cpoOUwEoldRm+XQzwRewk;0ZI(mBxt<%J9+V9 ++zKz!8AX~~8ziR81BkW(Y&=Vet5b1Y ++zmGkpoI@6}=Z@xT!U-#SE?trX@-@7d^OIm|nea*&;j+!;iSMbJ&9@=Q_y(N59m`khQ ++z^7F*N4c?!ekg$uYl!M8={Jwdw_eCn9TS^#6YNFp-&;f-FTuTO>Tak7zuSx1sLH55} ++zbvL8Gk;*<&=DXAkLy%Apb-Y0)xn&vHae+_Xis|q}e+{^chOta!zs5z_S;rEpZO(+g ++zejt#Nl-;6=8%j%XMfq{R>!n@_=HAv$X;d_L#qF@MdGfVOXb|;fR`&Kwg(K2N0UkeA ++z5XdO%2Sbma9x~Z^^pUtxMANA**PYB41@XN%t*Im#V%=RT(s-x_ROOIcfGP^9Xsdg2Y6`r=~inHhskNW!_1b{^#G ++zn=ieV>(W(J2`Hy&JBq=)uSpz;D7KOx0|HR~1*_o0jHy4#_L=Oq_VZJb>)7hxc^&U?ABY)JYq3@gJ5u>QI ++z_x(Yu(Ozd9BGX3QLf!fg(ZMBO(y>?Mjpn&e;F)G&zc`sImnM(V(r>`dW!^D551ImL ++ze(ZU_@?z)z`IKJ(dWehdt~90m_VQBapZmfOcBz%umyPtkp>k;qddg06f4W>~m3=3( ++zwkpy!2Mv6MPDLJU{y12(415(L8b3w3QHkS17R!g!kF&N&ub94(o-8QTx^F707qlqQ ++zB2YISH>}F?E!_7w`^N@H*V=jIUn+Dj%Mb6S6yMQr?x^+_nBsBBtki)Q`W-uiAok?Y_jxYGX*C_#wdq6`oOrkqEtk%%>8LHX?nB`;~A= ++zAYBY$xVESi$5y>^gVaxc$Sue9vfC-fmMSsf4$psRmA>LpRSxs8>+LrfrZp?4FTYGT ++zKddJ`wJkM`i2G8nK2~$SPoj{^IGk9oJ=h=YdGl~;=u38Zs9=n(+YqiSrU>)|(%18FRZ$Xf<_n+5J0*P`>fJvWw ++zxP(aKi3`P8VGK!Yk2sDaXxf~c_N7VQvl3Qg>wRN|DvJAvE|E&36+8pNuc%Rm+IUnz ++zgFZ7=z$LGO;IkJ)J5vuCn*#>?C?|_a~-zlH$-T_Kj{C0G=DoCleJM!iLL9%dTNR^TFVH2 ++zn#6d&ONdih90_u~)4hG;R@svIni_Ck2?0e$`yHEPtX*%{^jxN>Lq#LPN@?djd#1FM ++zJNlW#q>Rm9zR_}xR$jH72W)#(C`d`~zY_pA!G`l(t^<64>NXsn4*g5x9zD$o`$Vss ++zececSt>+Y!dQEJ1;&YM|CWX+M(?E(@*VL^cr6z4 ++zpiWQV*pg}i_PNJpSwGKR!c$Yffh#ccwalHK@KRfecgzU|GD`Q3ZRVRu&QmGAJ9 ++zxhfg0=SwDb{phq?)lFf~O3GD&8Di;^J6JGS0)YSp$h5KKJQZvkDAw4-Rcd)LC8*Y_ ++z>YC_8B1tTj*0C9ffuBzp_i5Mi0%RADI{#7r3$l}jv)kvR(tGAAdM}Tw%7|0FZ0}MV ++zE*=M`#{Dm-0ayO?Rb!|Nd{<(#yq!G!ipHq>WWV*GFEAcp^hB0#v3|&QwUDt`SWFgC ++zfB^{<*!C(200JRARFl)fVb;MA=Zk8t4!w@?V;uMh_U3=S2=YtxW0LihUPY#hbS#C8 ++zjL51yGDsqUBs9=%tqbgAh%P$lsFrBfYIQ?Xwfkxx9@9T`&0| ++z$|7&cimb{Zh6oJkLbGT>gBmD_1Of`O>EGOeXsr#1fF%KZ_`+2lT)41R7hTabG*msS ++zUZ?u%uK5fbY;XVTra(YJKp{asN2?^_l8Go<3N~4ljwMwi8N{JOg)Edn%0&`V`^+N< ++zaB#(9;90?)tpPXbm+B|CC7QKbhE`VnU{_r+I>ti)1`Ywfp<8l)-xM ++z6PyyjUmNmY#&B5@WJr)+Ar)vq0}@c+jzmBtBH!nallu|GD{JZvK~> ++W|K;X?x%ppi{+FBo<>r5RB`*MhXm6|l ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 39be5c5dafe07fbc30a0e39c753c11853328b15c..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 17007 ++zcmV)?K!U%CP)MT!(DJ1ehHlpnuxqq6Z;z??Zhe)aai{~oU4T}z4- ++zkx35H4h&RZ+serjOJz_|a!h3gu(g@LL@l8V!>yru1T@W{_ ++z<%Hq>FrmA<5ROS0&bjpOYw5My>E90#o+3O;c!BUDfz|M0?X_oXpLwYEooj2?I0o0m ++zwJ`?9!k8GFpfm#Jye)<*QU8L(E4dtev!6L1ue?6l?`VW|Nxk~xgkIgBNO>iZ^PU=k ++zS)1?z#>Ci|1Ll&{+_eLds){)h6dt}2OJk4*FlBz-fFQ2~sgk-=NE+@xYTo$4DTw)E ++z9ON{d=NloeIWKGjw*GyO_|A({jQ=3!h`D0Un0uo&$;jYA8UTn;=joACzcFsu(`%{B ++zDTMnPk`1KP-RCwDn}`VzL0K!|kApG!IW(GMZSJRFEm#xQ#@7z~`g`@K=N3%z3Zw&k ++zp@>2=p-zkuQGP~*xq$HWmV|dbvcU`cL>CFZQA}YFSknbqBi70n*Y!G)(!~WWZwx3T ++zlbZ8oBG4HPNbh-AAqc+{2H~%v-WafEtQ|TaC_Z{EJ?gnM2VO2|IP;RayBiA0t$BHn ++zsGBfFbhrn)fKK=b5b*R!raKtC*y3gE7<<)X)ud#McTz>mJDn ++zP?zeAgud|BgjW3w-QdgXy*<34pWgH$uy*L6K~%UruDPEb_+<5M1O*U0HIfG47jpat ++zRgL)9)O-5`M|ug)7`BWG*FcB-hMO#w1r&HE?xwsVuG=~C@E1$s?}Q=nJJryo;beIo ++z3s4`(8lc|m<9V8-=AOV4AE}Nc{!XMvTtt9wp<{vq$Y{_(*^Kyo)(5?vTHSqyBmZ** ++zN#>mgr%MmdK-bVYK>_@G5kv%T!drTMyGS?XCZ6~$_4qP1Vl~_Z-4hf*MuRp8mv=(x ++zAB*em0en}d^{q?^?hylJHn(zcjBJ#(Lkm^O# ++zKwp}a{V$pB2%8rD+uu9jI&)1CnewRCSVD8J5Z>#{XmEL4HOC1GAbLs^h?FO8I8{>Y ++zV;u1X^!l*T@vjp^bv$J ++z0^v5dlBzR6O1n|!``y(gifh(Qv2baaAUDl;;oF=E-JVZg*xVH+OGX4Y0@Zvfs%F>w^2r`fE9Rshl= ++zhei9!_h_N?Xs3*zbA5i@yN`bm ++zo?kjF!)7fq@p`a~AY8mO6k7ToLR%l8Yugz;{>cqQ{zHP)?E&e(c+jM0&HlImvI#fG ++z*-K52_?Y9yZxu1ez;%b>n#Cf0g(HX~uOe`q3H-4r{Amr&Z~bEjgR;X5GOhpWq<8(w ++zkr_67v3TCK@T>e}lsY)Wrq8y5x?}u8Of{K4E%z6mGhNf}jOmWapSu~P8#EYm5CuGv ++znSai+fv7lhTd=;uzJ5ZQee2W|TQyN;2_w*tQ?saAW>ge^wp~SWTRJ}RaAk-dad_B& ++zxGjh`Xl1qJwM4&pa*EAcV{TI$b!6D~_7aejFV0rj3a8{1(;L2CWa;l0yu5wgmy2xW ++zM2Rgcm)YD^CYv$aVxwa=8%o+Qo66ub*57ho>hrmMGHj6kKj=@9q8^B-#Yc=!uAR{i ++zBWQWi8w%y$O2oe;=)1hbgEp)FKj%dO`|mmYf5X=4toasO{rQsDLY<(V{Fe{Uz&qo6 ++z+k~$lpJt!mH^XcqcKUk-ws2zw{r!e>f>GhxFwA9@a@Xt@)9(?m{&4P!4}W;^J6nAS ++zSIZ8p@z$;CR1A_?-tlJI4CjacOT;ZiQ23 ++zGv-)`3|^G@^zPZowCpcAM1!t+WP&!ym@zH0o6n;_)dTqB3zK=jl?r6uKSjz>`Qv24 ++z`T6~_Y|R%-6cw@{C|+whU|3%`FvAMJEU?TE3!ZVn;O4D1yYbg6S){MX)K9IefJ^=# ++z^k_DkenJ1?rf4YtVOq?s-02Oh8?Y!{0r5acA>jO5VDI0ARLBTt?+AZ%`6s=4K$-Ju ++zLQ{X5dND3cy^@NVy}Rk@&e2hut)blhONV&fAYt$ldtU(`)t!BRpN#uN$1|28ZbJk@ ++zg1d$U3q;upZlUgOzxA!VLwD;%O5NStf8AZyed+nX`!Y$>lENe;bXNF$4w12!H|Mea(8?4@`XLt=ihy950k2X ++zYC8^A0^rT6w@*#1zjYxR)-UT5FsDAk{wYYek3hgv->(?BKF}kSSZH2*PgW=;vp@-j ++z3WdSNSqkxA{ZFtyl@*;_S>-%ClkDFCoO$9NrhgN!-+>HAK8OgCq=Um6LXKw~_Xh20 ++zg(8dI2)ifyhS~}Zq5V<4zsRF7_BO?V|7c#;Qam56R#ZEGxg@3hezKXP4Yw}BjP_Q< ++zOH*G2h0(>Zntc$7;3Ey3q7FuV8a!E5>TSw4S+zdE1+o$0#`BnCJ)>5J0z>sA-7U`f ++z?Nz+3@q4m9oZCfqMmf^#F+~WeyHvB~Nu(J6ZNaNnW7o1o)jGA27jA?sX)%*5xQ@JN ++zP`(;TQiPC>fM+a9Ms(~}YXi~dKZnD!$8~3gDl`gcf3e?B&?iSLDr&vCKkJhhZa`*Q ++z5hPIt5kadlv#(3Zo_fypv!70Vk|&ooU3NzEzeScPMz@R?@3ZW52wB(v`->hs@X6V@Ou`p6_^Gh37 ++za(jsLA14B}mAfd_tep&0pXUlxJb#f*oQ9{^1HPuc$w-@k+mwyv7H(|rJ25eTo ++z4&-qh%&Rd$QEF#}veQeEOFBGGK_-7M9;O@=knU@fF`F|&h=t~^W$qOe6lfLDU@_Sa23JvJPD(HhkXV!|xUHzq`bXI+q^ljuEW#l=A%xk6fA*dD(MI;K4SFXR#t_SywXWL&RcI8@U@)i$A#wFrpjW*ABR$@~B(ELmwjc_f ++z8oaaE%j8$_LZchSPA%M-@sv8zQ=40{@s5T2%&WJYI{}sq10;cv!K70l%Q8wzN)V2O ++z5v<6@VfPFV`PbY$2jOZL1VMn02vZce6l7;-jb>wrSz<$ ++zOlJ|oq{XL{yN3uKq8w;Q{HNbNhSR4{b1ZPcSAl!F(@>(pkom35&xqhGm~}>+RqbTk ++z(<^{y=ev>b&~kAjg?4#$V&yga_Wdii%!IcvUA^iSD`-(*P*7c6jd$OD7rS=tLNqVJ ++zL>+SSv(K+>Er2A8a1&u!;`LdCbLY;*U;p}7{OM1BLNt<(8SADDC?1&BlDfOcnA{m8 ++z^=5#xTJ7hHgBR}hO&n>(QAUUl6fo+6i`JwlV=5VW|H ++z0!;cnu#TM2X>I@HcydIj;VvT5DiF{O8VCpj#FMJuBC(k)qYe5r^@FKoFU`_{qpXFF|PQ6M% ++zPB)Hf&VyMHFegF&6%jku99)Km<&#l0zXIiRBbd0l46A-UYp*uuM^{Wm!zs0BI=yb6 ++zR%zPikr;b$38pC-ABRbUIYt?)>V4R7cqKMpHv@+&&&OnMJgNbcI%c5p=(&TgT(7!z ++z5${<}IRWJ6%z{-ma@MC`0dTv7Loy{c_0p7XC`#(-$-$mqp ++zms=YO!i#zZ5D83!MW@HPW757A13Wp;t*#8N6bOQAM(;i6Kl|7kmDJ0AH31H*7L(Hr ++zSUoX-O}`k=<`V(R;|#7%|5IvvO=fP^Y*qMyvuXe ++zK|DWm@40>^V7M|H)0$$~aPedurjU6c#9|VUTAGh6myAt^h}d<#gr|4PxZq3)9^0$I5FLrQAlE;@C2^V_+m1@CfB_HmElZ%2i>`5LwJ# ++z6pv_Ai>?-<3pHfwVs0`=6;QHB`i_azCqwf&#kT!F3L{R2f3mM<74|J>8+1+t%rcfn ++zO_&)lz#z+TWmNp&Czd-Sm;Y)>Qq|T?`$51-Ys-=CmT|>TC4BOnjL)9$#z#-fxb9pD ++zb=3k4MiJ=&D`ItC#OFm(e^4=I9A1US)5c(_vf3=ae2SX?Uw7Nw9)S!SxcfEbY*27E ++zH%+Q!Zy_7Hgmf$*E3!#uesLwZ+jaP-{nH@naRj9^O$`b}Forq^?z#FuPvMH+QtbB% ++zu$G*=^*THEZST?c%-x@6lZ%zioqmc)+EZfQ|8V#BulmhwSe#m%ag>NpRr2qN_n(yU ++z)D9UJoh@Nar-*seM2sCRB3>$@Fi%1_B*EpD;mpv$Y}Y_%(!l7@!{N2SHNvS@flFtG ++zG4rS@tQ~^v)1qTibL3+|bRn|RN?TykZUqbPT&dOPnCFd4FT$H~Cmqkp`D ++zy!Fgcwn0N~ffB*5tSm!^|Bhl%u={QbKuaQTY3pa)T_-PPDb@Hkv$J)0`*iMUQUcgw ++zj4ToG!re^vk%2x-zDSmJ0#qHqlBH;$++!G88==cMvNOt%Cdjy!JiA|~2)2>` ++zH0CICbx4EYMBk6tL}XC9^zLB+d_~cJeL}gIK^8@YnTjf#Q+{u6%bCr?DggHMe1%>x ++zOT@d6Gr5NskKQI@$vhGEOg$#7Dq{f->bSWYUN`CAXS52t33uj5NP>jZC<~t}T>OZl ++z93MPdMPyY|qKu(RgZ9{;XDBq1?GFn;`MR3}lUvD$Orf{Pm8$4FNNU)y{L;xP8TC5C ++z?8zc_TqEJ*XNFe!;o>|-VP{4z!@%g6d{^9FV7Tp9j%nIw_nEPzGSVl$=VBQ-$I ++z-Obq|g`a=CkUZmiY|xNdphWRYRIBj0~$#O-ms9WC$4UyIzoI{ ++z1+eypsVFG7bT_RD1Xq@T6|Ev3xJkkXPqNh+9ua(`i0rCgNXW>P)Ygfvy9V5$%5zFn ++ze1deR+9_(c~M+aqJ#AteJob{?{us^n+?&wigTvW29>9pvAmKA`aOU%Z3tUdrLt ++z2t$%KD0%y{i~J#Fsd=wI0Wf$21E;LahAd8nrrJs5C4Sg*>Zja43$MSJhMiXt3UUc) ++z1_@nN=~$R&LteTLnPv%@X#zq40hMI}=1&*!qh=Ay7mHXpTg3DUf|?>774Jq(g@B6U ++z?(fHq7BFv`x}vBVrduwP@WeJ5A3W770@ZGvb&Lding*>GOdQa$uefq?N__-W_b8Nw ++zY6GP~=YU7hVgse&`FIF4EX#nfU8|xvLys|DBc_JTm>;uY!3Z1LitK19w4+h^c}CcRN|yman-)fm2(5+? ++z4GLJ+D00@QR|K3*YM3S>I@*o3x6Vzz?RsnKd=Ow>xCza9GDfs0Z+#f_`}>Oh0O;ISn^-$XO!LIOfI~cyNaqe|m*_MexqUgsy`L*=YjmeI{Hu#e>I| ++zh4)GJhnhpUxgmg)>$0#o--bHB2?gmo?sd~Evw|81S;%}05>NhP`~BM!SIsP4=%Xl<~`W~7S-WD7dDNmeH}_!aP1KG#{I ++z4o=Aki^k0F0jI_J@#_9wzq_8_Bi_8CiizJd{+btQQh(1D$7=S&s65ssXi-l_oJTG^ ++zMIlbGBu)M=6E^5WisCK`JWNDp1rm#3&@n*5|I0U%H?pVy-#fTQa1D7-L3+rd1~y9o ++zLGQ%N8le#rAi)2hAGnd1;gOIC&_~<()?{jS)J~rhijaN)D ++z{LOS5RC<7g2S05iDEp&+sFdv^R>G?fVzUm+*W<+HrUh6E% ++z!hMvJEa|^D4)}s{@u(69oJg4^%w3KH_9q6=kb-9^X9_Pb3e=R-Kvc<*IV*Y`nP3%U ++z=rmTOJMt0oP2ymgKN%3bm68e0;^3bPA`8@%YFN3CC%Z-=Kp1+h4O*QJ!GcUw%!y#? ++z%5tpe8ioJssKMQJalD#ci1&pkUZn`XL8=vd_&az)!Algz+Z5#ntE7(q4T`9%h*gl_ ++zutoM-@Z+UF=&gmtti_5J!mIbF0_eq8&l7%g0bx=dA-0cz*BSrii+Y@h0-&VsfioIA4KMy=8mT`&w#NXaB+JP=5b+UqtRj ++z%-y~35!l-eL_$IU+IJ|rsjvSZ4Bny$ZX_Q%$&M&#VH314X>Gh*sy#y%lLuy_Oa0lT ++zbHE~-)m=fEBqJ^uurT04+hH|W|C`x+v?U+Cvk7NjI1_8;m!MK-Qd4Ck6vX_eaEYkr#KPbZnK9Qf2B%SiNu!X~k%{8U ++zNvNH;1Y>8m@bmHWCWUcxmZD@#EgacacwEYJW~O8O+*b8D#>{9?j=cu4QMm}lU8sn= ++zad140U&QmVEnbReipuesE^p6^fS_2~SQ#!melkwFanB;#F*_RZ)AMHHfr-`lRIfh% ++z2g8>Mj&fT5*W^2exyu|L)C4)sp^ojgKzhYjU7UpfPa3Rvt{|UHS!$ruLUt@B8`{aP ++z{(K^3KvA%|CGIs+Y(Zt5eR)#BT+`-iEVsL{k+N|td2n0;N3Ga1AROMNxLK(0D1_5v ++zLeNj>Tu34D(N^O+JIQWiH-y7lC_fc%|G)0o*M5v2{!tPP%E|dlHVmvk}*An9w7l ++z9|S#dz&jMdZRFp|++_|kmj@FAs2hz(6Im2r_CQ|&3?;ru#0xA6wk7=Yhl###UXp(l ++z^5MuElYjG%P*#WYHc!GM`XW3|1--a<#rOj%fS%o8t8bjG60u-{AO1oIydfhz9ti;t ++zp}deVc2qa&Yr4~>7IR|Ui7Y~E)WGD_!&8uk_KPMB__YTzsbcMxStxefRZpHqlDhJa ++ztoCBv4YQMejwA1C!Ziog;|W~^?^E;#6Trt5#V+zcSwQ5Z{Sbi69_kWu`@T#*03I|r ++z_+kJ4Q_99nG9y45ILtcCKVkHMiFfq&M%*}V)bI&l5I8I$hBl=@)p+_C%sRRn<5!fT ++zuA`_IycKfFh6>C)s#+Dz!n5nuPS1`@CS&8y;jLqA+%g+2Zm+s>o=jexWe8%^xl;!| ++zmHLhb)R%hH!1icL#}4wVV)*<3i69XObKLRKT1t;GhY#uo^#}UC8+!czeH0j_6d3;4 ++zw*WSj;6RBpH_c>&gCtlL)RG08$c1w&%W&kb!F4#E`Ky_DL|2%k0RD#)x6H#m?y}zV ++zwRKwUpwIpPXYVSb+c=x<6*J4SEX!hZs1#~irxa#pE@R5f3`t)qGcz+&61#nwnVA_a ++z&8NFw`y@)*dL=i~cd|d`BxZYc@AC}YnK}CMiE^09FHNwD1qMmMB1a-1ccYQAnV|}J ++zKe8b9d8Ge-E$XHc!yg_9e?$O$CsK9*wqm+#F~Q%T0U9c|hkoXjh$v~&D9q9Uha6RW ++z`$6R74YVmQ!fnSNQuYhV>-dfMUOEBFAiy^3FuCFEN#$#z9-JdDBuB|}XptL{l9dSa ++z^;HOwDH_L~7d;E+`sw-(H3^srVnvvQJCYdQgt$X%Aly#?dod{5sJK5v1Aay3p|I0B3xi29h ++zi{TX)j1q@c)}l_HKr ++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 ++zPkes6;iKEz^Jt|Wn_7(_`{S|V?J^4b1*L3 ++zAdP@h0cKQ|Q%&@^)lY83fP?&}|teH=lB7+28B3`{u}-4SNk~0}OjjK82*bgZ2S$ ++zgM-@4Ft9(pz^3@?k&t6ie=^$zg0FmmW)ehyCeW{ ++zs4I~;t*cTJyf|{SocrQ}vR;JE*G`jetG*|=+&#f`Va|EEyk~#Ixs#;FIBdwkPdA4n ++zIh$bR{|7$y0J4-n(Cf&*g*Lg!5dUL6Y_o_}00CmRya2c)4gla*8I|(E^a=rfJnDPz ++zL3Usq9slL(%Y_JXX#r&ua({*H&{oHAxv`9WwdXxQU!EN|wt`LZIsv+^!(~$$F6jBs ++z&X6*`1^~9r7O9dYK0G8O&P&WL2!XOa1>!;s8gq@0&J#77b@} ++z-DwuqLJ;NxyYM+J?jU#>iOV$jc^hzA7k^n<~3edtna1{bD$$?yH ++z0W`V$u<9uF|0{_DY+fJ;Aa)YM6Mur-Z?+;OwaJ_sL{&i ++z_p{#o_*?g`brTssR1ALN;tr&F^3$E>;9Kq!rW-`hLzW=Ki4go4)t~vXa1`C2$R8HK ++zGehKQm#hJUGAj?3Z@Q ++zJw?@#J_-ir`EPu2fNHKac^r$ZGtXdIk-{SeLH<`4hFb_C!omV@Bp>E7?FRo`?1 ++zXd%FERd3Ev=SuN(r?1aAawDRQA$J(I#))rnn7IRZhmG+4^M9T(B!1KZ$C!TiM|1j9 ++zgB#>=_Wh9b+em*#xdlqxpoja)((E7B37`|8VtX1biVJ-t0-X1=0|AIVlHvw5+)GTV ++z1n_8gf3#JFBLJFCLvYH^ko$9q8^oC`GDD5nE7>Kc6F?^b-5>6r4#GrVpZFRup8mf@ ++zi@a_~{&hKg3y4Vp|wp-}SNbe}CBSmwOK><(K9-^{qAH3f+0c ++zM^=?}0z5pIK7LIR;6dah0*kDLpSUV@fByF^4!<%qzDg_-lPuVlpZ(ER6pI2#U5d!c ++zpCi{>atrVmWJ?-HCMp5WmgFIOI#n>~#7QV{aLf ++z`NeP_Lo7OhhVqMF8jE6TO&|`SWh+u|_1yx^z1#nizd(zeiV!=&c ++z%wcdJ#XM~PEl^5=V-Qqwx`(4qwpEb?Z$(GRmACIwUaecP$o0s~2{i%!SJ9@_iNY|+ ++zeQ1>5qji_3|FedKw8C~8F&Km+PE2ah{!|_edw?*2CNgje+*{vAdZ$}}_Di(LDF{gj ++zCYg@_m+Mt0pfVP#(~G)vuz?@{}DSqn(PBKNA`-__~=29mO$!TBWs9sSY= ++z?ZI#5!LTm|2MLh%!gx$4Y=vjhB)>*Wp_BwHT3m;Ej;>bN{SdO!Q-z1jMvtp+oWT=M ++z2fk`&zh3O#>KdR@F`8#1s6ar8T4XGbF;3M_hc8f*m@jAsygF*p*$qW0jo ++z@?hAdGA{w3eP6iVV9)RzczQWQ=vQbdWiO|7$uQWIxZq;M<=rZ{M6ajzmaA`?se_;T ++zofqfJeapJ4dh)Z{%R~vWGZP;9q8jj)+P9IDa}n;P=q+V%Y*SDFgo;5|dBJbxm0`c? ++zf8~xrWYtDQ|HJ%$6lO)BbSAFHEjb^S)%6GvlUYMxiQ1n3~V3Ymf ++zkS;i7KRCnyh!J4l03XC|B>`JE?GCq0UbaS7UA0^`KC_1q;k5;F&1YxGeapL;6sTI( ++zhh1GLb==0q}@fMwASy< ++z$X*>A25jGv8)VGr^*dSDq_uMV!%Hdx-n2EV`Mo~Y_U~FJN8huwqMtSQq?Nn;-kID4 ++zZdR#!b)Mko0mNPr>VVimXaEGN(G_Cxs~rxR1Rn)+Oq}HTbvGGOzdscIdBj@D>0d$c ++zTX{;93=G%9o&nIh8HvqoR{j8;h4gAO-g9E9_&(kmw-93y*s{bNu{X4-&+=mdpIR5lx?mak5OQC9x378mfA80rDwGSA ++z{YJZF6O;BR0*q{5BLT0HX5=6#K8xBn5}=472FlkMlHYK`vQOXXk2o<`>ibuN00S8z ++z0HOX{;CMvWynxpKcK0zjUrP`5WJJYb^+`u=;T}Z*S~`BP_>4CB43hsZz|ZkJyfN-D ++zWd6Gnp<{_H6=NY{Zs>jg3hM#@qCOxCp#8H*+{Nh;j0I}t7U0920l&DN^)jk`?H)&f ++z5v?o5X7$PFk)mbUD?J(d7;gFLQA83`vxiZeaU{#zPT(`-pp;v}XYnWEl=gxrp_&=ui{%m(#$ ++z)af2{DZ4)**XKb)PR=yOZYPFREHw~Y8Wf+^4T#n2ss+G^JCJ#Y@j%aRa)o%~Jl0o` ++z(KU9ra!fR=3R61y$1gE{P>;=e)uUx^be7MEDe4lx?d0${*c ++zOJEM4*`z7(%Swcqp5%^R)^n5r2;CLBKF{#AGsNEqFp?PZ11W8RZ}kIWFMxWl>IzMS ++z@6ZR4{VC@Hkpx4nA|$z(C+2CznK8rRka}3fZFY&n7LvcZ;p=z|Ep+~>kX-2jDdF=v7=(Bo|w`Q_*O3qg(3AwgDJ+u`zKKueWU)>I1w^IS=w?q~vVGn8s8l ++zgc0nlY&sov67;tyCwzN$enl^+PJp2&2rJO3V*Mc!8ZJIhLUFN-Dly`)%4GQDR7CTf ++z8+E-QDJL1DpC(pR%*3nj`c&o$DOn*3m#jb=fZ?0abU*t&dsyNw+V(kmN+<|+j#a!A ++zaaoSAjD}nBIYUOf*v&3++QSkKv?+dUYi3UI%3dm?+Siplc%1;XXd~NJE3Q>*dNyA_ ++zrlWaN6l@lE!Edrlox%D9F`|my(*0SV>bgFai{+F8nOekX2QcymBwv35IRZUj44w)c ++zeZl#m1UrZAT3`@^!60_4UlFavBBLeKbSO`F4Pe&^Q0q3TV?$wN`-XfjIb9;*5$^#Q ++zrD9~D;8nTUt@^HzQ=QcwvjIvx;ILT6+FM^El~Ij!Npx1=Lz7G( ++z5NTQx;!Jd0(Sz&^GKM>>ySux)ySux)ySux)@AlSB>K)$cZv?{5bPm%$>JzNHU)@`E ++z>%Q0Fd4S*IPd7HU^wYrf%}#ZgT!zViXW|ROov|Yv0@wilbaciHs{`M4xs+jGqPDgv ++zDRh73Cq1is9`I49^q?sWI&Cen@t868qdoC?T9oyF*`FAP09QfwlyZ#@A5jN?>h&6D ++zfd$5d3XD{)`>TH*aPeTH(F1p3;PHD?=i;GZ=k+ThPycgJUef!f-} ++zJ-`HG!v(C!mgi0&fV@B8=8X+qkf6OaJzXL}j5etftN*U1gdIAvV&3vam4otb^!{!C ++znavSkZ+^|Z>9c3HMSz>EELOGbLFMn%27l4wNzO~)*QKGC{r<|OPjwH)yh+9nYzPwg ++ze96g}G5RA^2ao^`f$a(7s=W5}%0YR@w@jKRMwT~yz2(QvZ0iHAddHWl((Ng0{^^qJ ++z5tW~FZ!i{kv&)8|*G6Y3Kw)qd$h3GO<5A<}H?dH#$Etw@h4h+v{vLA`gYxFjpEeI3 ++z+Wc@odh>;fuXVfEOhK|$m)?ifnOgr(s&mpb)c)^y-6hSRp`2$J`~jOCAN%c5iZCxo ++z#_bOFN7SLukUa(q^uIYGg58Nc*0%yFQxPc7-en#n+Vr*XV*DN6G+9ygpMCJGSw7Oxw1M+WEVJy3 ++zoHXoGu5f(%Z?w_*IOGty~6h ++zYb9HA@lmtptzSM>((7<~0K~PY&6wjPU-sr#x$3UsY*a**bTbhmoRbmLV=m+sA5oel}ajcb)|wo}el>Lb1+nnhUva7smRrv023LAhOH_Rm9TXg6bHHCY31o-JL(wiI5q-H!>IQq2;E^X%Mfy43K}BoE ++zVD^9N2#(Ijkegh=`@MKs>E|K;fv2DYOI5#1NFL6SM|OG~@NeHH6?1`0l0=5&5+U*) ++zk1?tRyI&jEPyHDm?SZ5rfmiG}@zbNDm))Z^YYs^|- ++zuKJF}X=gWZQM9o8pmA$X!I=>A0Y#zJn_kmH-EX8}`PbM(z-ySoJ}m`EvC~0sAwHZl ++ztVL8G`HdPp@h0~33j+8ocT&8j8m}?d+T~Pzdr4rmONCS9@Zi)tf3g})8`3xEJ9 ++z!uz(95ZkZvrQi?5oi(vvf@jr(-EZ^zvUkH82;gIFutoy-lFo0l${nZbSFcl4%QjrI ++zG#@BZM@TXe3eucV*xjt247Kllu&(sJXM+q=BoP)NlRyR@6fGSBVJFxv6`nzluc52K ++z$=LwC((|5Bd-0*3=8jRR+UKwqLgPynUy*>{%xhX({SJ>Ki!MwA?g-M15T_r>pz6s) ++zKzN#iqrtYl_t!%w-V#v9{g{1LA7Y4o~cXkR9d_2ghd}bw99`Z^~ ++z$MwiiSLf-*mcQaZ^khTnc{e~63y=O0$Fkv?;N=fgS|){v|3Z2oa+b(mCUTa@Z^VE3 ++zZ{u13JBE04DGagj>;KqE_lA26`42v&ZFlk(bniWQ1{w5t#$6jSC&p`_@|yS@;O~4Q ++zG*P(O$?!|^h`Ry-gC$bK^}9o{uCA%O#gkYj=vh!INUMtiB4_s%c#y|zy5&0`{S4~`g5w-zanY%YXtrq ++zUyJFZKgOGHo$Bzn=y$$^-!(dV-lZugUWLCI@a=st0rCM2{;mNzLtsBHz|N7EKwpsL ++zP0|AT4okIXJClc72l&?n5pHymuHa?;8<09fga^X}MOTRsyUJ36JA@nsOB5NT`|EC8 ++zcdW6|JJ{UZe#-4u&UoGGId79b>2)L2bNCv*_rG?`LPw4mh=R+^%*;&x|81GhmZg^C ++z9P`;y9hz3EXZMWsk-jp9u~&Ouy=LbA=0-Rn{4QX{o~P=hZ}ZtI|2gfWzfXMs)=1w9 ++zNk#bi#I`>*JNtSM`A!dt=*0=n$I ++z?vOsIPkZpv`&;3kFk~qaN&!_Bhz_O1kay)%N{j_Et`Kt*up=Nx9<&W-jrn^BWDH|B ++z%(Y_f1#3-Nd&pioMtJsGV((cky+7@Jdu|vK=9xhS!rTxw%8C{xMi&_eh&e*ii3*8f ++zZZT6#Wej6S%r#){E^D<|yJk*!CA_KW6R(xtHy;L9Aj}Psp{&RwV2KCIDq_}=v?;B6RP#t*_x!JJzWo7mM;XrI ++S_{g3B0000qHMM6+kP&iB{WB>p!zrZgLO+akhNRk9USJyq|$v@zJ<}QPX ++z{!ak@Kil{HkObSRstZZNv8sH~P69yK_GU_g1ijq=VB0q@(cM|?F@QOz1hka%xCy#_ ++z3dfk?!gTjoxR5_P0Np@myCeB_?s=IbllGE)uq3X}#-~6+Zw5&s*l7{@40-{$NYXnw ++z`HW$Y#Y{r2^I!vjlH}%hF@TW>8|hS4cGRD$aQr*u&Q)2G92Sye+g7b=;52Cx0{O?{ ++zK5_l-uIFM2KyGAPbyPAlGafnrXdD5qEU$2Q1VyrKS5?=Qs3(zc{$oKSZ!P#a=Nzj4 ++z6M*N-062db0Pz3>;4}TpXFhX(_-Ax#lz+yA-Otj6UhDmDM9WG^N-576{~WacjA&h7m8AEVq?Fb~+nVrF`y%?Rl%$ji ++zye{}`_jR%GJ9?`trT=E-QGpUWhnvL$#FCC;|A#z2`@(c+J}aJS1ZUJUIUk_B7Q2p^YR-Qbh1)T~)n% ++z4}gf60RFOmEBuat>RUJg^ofPNC*{#k6jy`}@aEkUhA+Tk50&gjbpRKwJou!WfZCvn ++zV;@ZqWEN1#r=#LS)rD_X{KI;tZCfqLa=x`GcT#0$F;`btRWlxDJ|kvkW@ZMTEd2mx ++zW@gr5K26nF)x}v|mAv;}D`KzrTN^T~Jw-g0&}Np&$~JpEQOi<93buGDn62S0#`eT4 ++z)p&{+W@h*S)#9|aDRU@|0b2~8EIO8`Jw=Bsh7yy-ER&fB%4$z&GLuw)K9$ ++znMZW)eKPZ$5;I9do)wr97i4IYYA|cSq%!lI>X1g8+F+&tH~a1XDA~5H+HK}O@Bc5B ++z9Ok6NEnrTXK%K$frOH%fW{~Z#caEoR+tbLht?iawwF|nsZg({^Gjoq~nVFfHnVFfHnei}FbJgfBI^ETU-FtU!SR2+_|F~Ui?=!kj ++z0-rw(k$vNj7OKL>m09)Arf~YBTj+bVB ++zpXZsK+4=t+d`nbZka769a(t|cYq!J09XgIG*|@9DMCwn%c{mq{fa+3DwF+qQaSsxb ++z5Vl(nP|{^eOpFa`O7K9%dN~WE9yhe{za99AD`rbX`~_fwcF?jVLB^Eh14`Kb8Iq)5 ++z{3FsRbyZt6#@e=RoNV(n$F=ur+qP}9U2WHtGCM0Xf)cH5ha~C!{y;jbvg{t)-r3sO ++zSkKB_+4k&g+g5AbHp`6oBjU&RQKGfYkfgm4$uisa*tTtZHNS0Ruf1(+Y)_AEPot{4 ++z%&e@)2nKE&DRPgQ@dp9~&&UdK0tkpb+3w=Rg0iyPv&&<}U`w@V6dWA)Br9k7cPT&Po!RU9Clbqt-zwE ++z*t#YrO7lnxG3nAh0m;+|NGu?mk|XyMR01c#7Gp#1M_0jd=m4MR?b&g1gy1Oot_A@T ++ztv_5Wg$TebeL&qD87ts<*_>H9=EW0pqoZ ++zhaD!xdETv?9VQwD(~gwv ++zVU5+lv#MZKn;ju^+305Q3PKY>;XtMX0v8C-h08jwZY(XR`zkeWrL0scbqMF!xUNLg ++zOR%eiXGE}FO6P)ifS4*jh#yo3i3cVGHIIJYq|xZUeWlg_U|^WBbQ}$}Dx4rD1JY0X8JAZc+fC4iU ++z1pzal=B;`-N8PkCr8Q7$MU6?r8)b{7c2w(ZY-@wDT8?%|nnA1i#rmBoeT;NuF^eKH ++zYO#Jj_NUqDGnca`!&U{-nB;P9>->Y{2v4q846F ++zqwP(@(e0*VeoOU^H=S4XKM9Tk>0-ZVFbI%*NKyS%PcQ2-3n ++z95ks^+b>1Eg(;~ZxM?2%Y9MXZ87IaKQ>8HO8X^vFo6*l-y|VP|?zR2)fmN@a7`*y4{+IJO_IswY ++z-W#SH+KJs>P4B7yKiB4FDrA71o$+)s{)|K*RRmi=JWizgh52%u4#4@HJ(5o`ENQ^i ++znR0BK^o<^ZNhQ1eE`a?&7wvb|mX!=L$rp3+7=*-NUa?-MKFFr?;JZ7I9G>bY%R#h! ++zU<|-DEQ?6gjNMwCo4lOZ!7lG?gEKFqGa>q-jS%PnB?QO;$Ve=TBhi5X2td!I2|u3# ++zVq4HQY-;1AIXZMlhV=nuxg>OhFg0jB0HAaf5%dR0bBOTZK`;l!>{1bfE{1}uT&0ww ++z+G?&7w>2%8>v6em=u;?5W`VDN^`F4?vpf+ABbh+SwP55ppyus`wVD6b;Oc|5=I+xn8|*y3q7pe0(9hnwGaqC*QW^NGzo{hv ++zdIDmV24f&ned+IjIIdJ@`y50RplvMEj1D`boiR{GHP&#f24OE@U|r0@xpIC7`}XN~ ++zS5B9r^Q3HX;@jh`S7VIt8Y6SOkxO@A_HRTj`M={=C-x-Qxb=upXNBlj}WH)-Jd|Wvc>UyEl%7=HAf#XU1ooUL>~-kpWO? ++zF9u@}|D^7NDcoRK2!w`pfQynC~Bl3VWiJOgDX ++zR9G+}FcIGbF`!pW5IZdGo!=`aVGKNyM)TK<=kM9awuyYsq~*2OTH2ygt>|(Pj90pe ++z9~^ivd_6Lct;$WGnfE^LO^$HZ9iw#sAd6H=&^ACs{yi9cxb#HTCIqHjx`HZ56G}6D ++z`%RY3dBw#YHaPL{@~P;i)aHlo`qccV ++zzpmEv&QCj}ic%ebFXX`+DZ=ZaUe(C}EUwjY+Drl@4(!(lcfZTT>uO*2BNXjmbIOP6`yWVxxwWZhExxBcSN4z3lD$e;u?p6Src_Wvj ++zGbA*A_6m#J1vqW!F%KvO9cJnPYX;y7k%1OqHiM_Fp^xVcv+`6vv7eg#nhHo6v4Q&+ ++zlqA)^kpJdepe@h_EbWagQFMs39WfH3LlD>*p

B=zP))D=>d!%~M(C3%a@B=L#OR ++zQ#s6ue0}#v6b25kQq!q#eeTG92Vw#u_wk&+DcDKu0-?0YSuW&AHtA%GIy25-R)bm{ ++zfN%F6s>~bR=vJ2s$5E{brKBlSYOYK?pC~;5W;=X$M(i^7{^Ymq8!ex>GLSM93ZIR% ++zrD`Zr{NL`>m!Ktx1--o@@j1H_JI(rJX6oyyn!7|>o%-IRE0so?*%l+{^ ++zbOx?|8~%2koBMA^6^>dqwDem0o(o-|qphQ@iw-))f+{u)|4gN{>cd=@6HY?qFmHQT ++zYUH ++zQESGm1N}GtW1(Si1$k8ise$PcO+UHBNY0qA|NKXXc<0BzeTtX7^GoM_+?#&3@7H}` ++zkN;2CR`u~>oxAEZ7yC^B5JEqHd80Hzm^hp)BL!r3TR8~^u%fx)hVUf-N_KqXf93pD ++zyEl$q(it7O^E(~2nY4K50VCy2EAM2Rg-YC-~c2rgk>~?^x4U590!IfY>XKhbh_gZ~aw55E+gUi=i ++z4ji16+wW<`BUTJwQEs)DsC#?GPBicOyYId@`CgwMWA!7|!{SRX9lE|j@1-PWAl3rm ++z9Rynlb~u!fm`-sR*`dnx?uvEsecMCRa+^Edp?WVCBThg#a9c}5 ++zutov6=I|hCMt&y)x|I4bjQko9i3!jc*~CPE56`948~RVV{qx ++zO`5i&##9+op$$}@Qe%Q|r}+{yhBCG!zAMc)Fp-F)egC31xD#3PZi_l#WS1$|WB+<$ ++zMELJoqlYtN$v^}E0?yTi7J4u8#k*V-C|XH!rMP<6F8DA8xB`5Tb#Ma&h=`#)DHm*+ ++zT5(XJ7;g<9TU5fSJ)T}JZ1caPb9K)z8Ipp)Otu{DS<+aj;1<$Qgfg}K^i)ylQX_D4ZxURcWEmY~A>WQpKn1rN3{HVkLE(${z9ciKS ++zIQ-4t`2Wk-k`B|LQYFsY#DuvkwA*}ZlCOwzr;%2Pq=}e1!K`TehT7XDoSdlHnV5`# ++zw1PBo-6TNG4 ++zK%rwAin+_+!vpwsAu}S4KzeZC9RHr%xl0eKTF3MROT`2Kzx?sxhRdB`|LNJ;>JKV; ++zEuL)ATeI91XARpq*pw1v)PglNwBV6=$sijTyLF@gF&`Vh`mypf(LDI|yDOE;LP?tR ++z?UaEh_ZS1Tfh<@`N{K9p+QPzL5dAL)IJY5exR$1}Y5yRQ{LVX!3V$6uBntun3bU<0 ++z6J-Y!8G!|-D3Cyaq?NNb3+cWE}!n^D2vT%cyuB>&??u_l~Hg)-0);8?xBD%%(pkAE#_+lr< ++zr|;&HXyJnaAs|`d^2{Yu+LZ`gxL;CC3j)~4!p_=RAZ}*^f+7FX_sAuD|M{JymKu>zhxFkRHK#;2;r+}tIAN<)inm8;~30Z^cE^+la5rhK= ++z_nu(U_I9Nmkvpk{ovHF;-G?oR+qo8HZ;6@mIh?SUw0O<6ov7B1$JMBhe61ghoF1-E ++zml}p%<@1)rYp6&dSa7F+Xz=#WzY6gV$^wE$7RUlNEt|DrXS1;T#4PxK{SV|ffg1r% ++zh(LiYjF7wfH$TC&m8zT8J ++zA~rm5{S>b5-eny$;V1~Gg|zOFxrA?r^fWjXvw?yWL~T%*|ItVVOix21vSNx#37s}e ++z5LLRa%0Pl)0`5QQr`s2zdrM4~y$mZ^9)3AsY*y(!_5EX3-xo|qOY%cgGdxU)6Cyt{^}c`6;rwqO03eN3DoY1| ++z4CHLq2L6<4N3GBzHC86l6e6U+n{59~O|KEc#JF?7qqzw*}oX0+0uEn{i`G62s ++zZHrr@TM3HfQ3iU@^tqjF@omcR?>5@_iR(jB=^v|Rkx}9VhcT6H`J+?FOY5!=B)cC`!FMM?TUN@ ++zA}yUCch-0E_C3gEQXxB=l~w42pdgKdgeGceVxHB+z5P{DTcdD)M9jw1aOx@AUI(BQ ++zJB}-$q^Ssj9~35@rhKDI=AtJQTEDm&QVO+=bZY~u+xF0?)}(l%UEAbtcJUI}^_;ut ++z(twG4+o^3%S!>&#uhDP!aFt?B0OTqp&^(gsN?|i2H9#{<_Vcneij(huX%}UM^<)G|6T~e$z(&$PLM%SE{$o8U=_O ++z5l;IP8yXeM(fC4_REY}(gR6+7Kv%8We*5jEv7|_eWKp@Lq`WDJ3|@)w4u>9ks8y*f ++z`lPWcBbhY`R``}NG$`-=eh!t4}^D_ti& ++zla8|p49u`>#KOXGd*FvzgQa7Y>F7cauF=JSJ*c&pZ5ST0B->RU;#ul ++zy1UPRr^Gi{cxhxU3!25H^Dr312x9DD(8vQI2KrIK_qV|1c_Gr74sb}^p`uK;lz^9F;?gt<7UkW{Fw4xxjKQwoxD&FXQ`2P*+E3*;;P~dTkZ*^<|AVS006uU0O0MPU$lWxAP8*v#oGe{-`f){2Kb$2s8u7WD-~g2C7?Qm)Vafpn9(Alu}N!0 ++zgsirfePHE6HZD5SK$Ej-7e^m;3Bp&|(VW|`r#!PazIa2kR}3pIRwNR)ShZ^DDhjHB ++zS;`XxeaKRFbulIk5ZjSFgiTL{YHeim`JZ@`L<@idP!G@!VOIvJ@|W&5J$y+0u>u@~ ++z{nc7R(gFeIMeHa6euO}pB3A$}0)VMfmLm;I?SYV2c*KXHiDIueOHcn ++zi64Dn`}#^{>AVZE5Ys|V02x#E1i{-s|M@*>YA4;r8bjBa86Xu13Vm5CCz6k`#k1GB ++zfGlGwf2`dR!KTCHn1pq8!E*zm$DwQYz+{Mi3*adzy ++zXuwoPNLrB^Y ++zm7GP7kLZ65St(}w;tG(6Wy@9@oZvnpq9a2 ++z4@F(!NE2BG=-zsZ9CN$;a76dWD>ol2EOxh7>3dWc?sL|4OqbX?x};Q2`Uv7R2onGZ ++z2Ii~+Lq&!$7hK*vcE?2=$F(d ++zDwdQ>ePkdrONq4M_AmIHWn1vd5oegcl&r9}Wd+AEF{O2^$eC7CQG?!aW^KcR2afoc ++zvs&r36)rhgFY#mrNK>e-*K ++zwwghd6r%1@%My>)bBKYlwMSEzZZLHy${_faZk2Hl^;(Gb>%j53!r ++zSS197Cnmno&~%Rr$zfU|;0azrZ%drtz ++zLE6t=lk*XI83rQFMZkuY=hI#5Y4`TfhNsR4vQ*Q&vG3 ++zTy=XN2%P*zpAG>49cQwBNMb(}^n|4`Ldcw@M9Q!L?VeqGPJlFkTD0A|??{&|KNMH; ++zRrT)ElKQ(%AJxwqw4_un&98JTU1rqVmzuO(AvweB`bnevbjOHaVQg%XjW^9>M8Jsv ++zL?yZfshsezTB=}Hd_;CgjnzRNs`G6ZH*qt>m9>ZqB$UYQDbJjyv!$BDbBIV$@$Uy} ++z!GEiD{Sno`J8&`2GJ5K`p4wwrA`FKSG80OJxQeyQ^+7-t!W@AvRgl7g5=?B^-8iaK ++zNcbFFIHJA4$wdq687Q}tbBlW5hc?(|ODu^%qzu83{rGgeb7mW9O=}^YXXtXQH`7l{_FhJMIQu6pe|Y2va7FD_=ZQ0^ ++zrc3-%p8^~#?D}6G^ILNEy)M+5elZS3krN_gf&*_D9FjAm4M)f?6trvXw-4 ++z21g7uh7jhFDqxOFhqZE-)p#l-h{H(1R60{$P$PsTVfkOW0R@1T-H_BAp}zu4oN#?&TFJ>6#IN`KhyJ3(WRBzsLw6+o}C&Vf#><8eg%Mb{`IX`zuTV=yLb&Ig= ++z6Pyts8Dn&GN+2!!r72C#0VoHj3BHy ++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 ++z4HHpKX6L(B!d^z! ++zout)b@od}MgZmXn-wkTNbpwgS5{D;=NSK!?+I?X3il ++zT4zta5;fvRO_Mw=kZd#qOA7Q}!a#Nc ++z071}49!s;*&M=U*Z9?F??n((l1f)6#$9uVJYeBTqbjJ_oar@=<^>cBqt}Rw^9sotM ++zi5!sVA|fRa&52Zc+^?gPpX`%-(k;_9e7a)Jg(?C?&2&vBI5~yF*>u>tJ^-xbz=97h ++z|9yCx8KM&b$XIARKwkvUt`gBMa$vOxdNL@WOyv$r00yWIs5BM|7K8^P|L4t2I2%=Z ++z5{!-!dQPZ#H_}^zf^D^xZD-?>pacjDA&4x)yYiUEfhrP0+3}#=?R{@=uKqn&tZN-N ++zI{*L!LJ|2Pp6E4EqCCN)voIflYZzAZAbqHYm>+>5&>0h*&;ba60H^GhDTkK?QlRz$ ++zrYi?FljW@+$}=7;$;&_(iGnRS@uZ}s0H9eAN_@f-;JB*D31>~EKv3GSP_dwSppAVM ++z$u<1sX_<1m+0~@TEgZc{=%BA-m35(v@) ++z&SHh}EVUjyqB@XJBXj~NV*g&P>*h%f)QaMqam)X?;l1w-Q7kad9f;RE7AR-5+$lXs ++zW*G~GZbUiKI}~RCIPgR+@Ia;_5;9o~ERsJM$QTvg&_vDPsYAwTKjS@jf6B&z!9FW# ++zJ4Y|?w3A>+_P0vol@tYR7!=QHG=2WdfJOTGU1&_G!Rltz8>EWyECZm363k0*&RD9o ++z1Sx_@v{W81hI)WgkhtNt@;>xdPv%ySB|5cHtZNtyw0V|hon*R%6~zp;6A!3sXW&c% ++zAQ(BipajZz@II78o#t ++zAcExm0UOXL{8obi*_s+1L8Cxtz%zsz4Z`Kc5L}B`O<2kb+xH2xBQo^{IGQzxM7ojW ++zhqx@zG`8^v9$>TbLx;uRgmLx{OLdpSyd95nlbaqbq(b?3vzgtzWJsaR;f$6!_ ++z<3&D^9Bh=hw(9w@oyPXLnw77)Vbw>s;~aM(Ij1j%8jVj9=ONJ#TcU01nG8IS4gl%{ ++z%@7r7_KhB3%(&r$sWt=vHr-})tK8PQ@b$0@Fh@;bt ++z@>1Fp`>h%Q16e^6dl?gMhzjw95L1!y=(H~tcAUH>rDt75{}P};NkV{3PNIrffvFIfNDm+?B8D<${;(dp ++zbE(4hsF|*D=}rb_i4NJ{3ad9bcKprjgBf25jV}g+1;;Q&FoZ*49+yPSFEZyV^@p7H ++z#O>dQ*0Wu~+3H#oFG6T|qeldqiJ~9sADoHQP+Zh3&3R1bpz6*#pnHlC38 ++zZ-0F4COmlaPFlPB9+=2IfVc<1y#VGBut*24RH)JI0bp3EJo#s?Ms&A(>BV+ng>nb! ++zT7B+xg*#~W*R%g--{1B&nSQ78y9a68zkjkTPISQI`KXsZc*84yeS+_jq=88?z{*K@ ++z0E7d0o)Zder)&`LE|&!$VWkqH8?g=t6P8`#fwrFdr^8pFu1XK-~aj ++z0+$EsAW$U1%E6>}x+q>ru)1|*QpsrQWM$$iU5Av}Pmf-;>J*dJlF9F;!7CIF(41%f ++z?8U#?AMadBy+Z>?D{T@VScM0W=s{FK@(hw@)Btr_z=H>pjOfs%1Q2K=2Y_Ps;3c$& ++zzI^%?gpLXdHnQ?W3G|r?051n5*^d1+jf=?yumEfTMC!&iC~#sfnp!WMJ^-avw%Rmh=IF7rzUj1O>G(&d`R5ND ++zwy{65HvCgMB5dT>td&QZ_ByqJmP!d3rM*T9n8X4zh#H7$5FLSV35)PwddCeiQ3{MC ++z$$!O#Wq?*lh*thvAu^(S_p-rC-bU#qLJt7e34ln;bPB7_YpJC*b#+>u147FHgjAAW ++zh+iU-)SB558XK`vO1**9T6JlF64u ++zLsP{h0}L%R6j4P-3Q0FoTEtdL6_+lBOja*O?5s|pvqg+!-0U&{%cPz%+sa$mcbc+M ++z!~GAU69Y9|wk*+^evk>%#?x4A^}1bTELJJgjq4l?1RcPQ11aC%k93z3O%Nf`9>12|vH4yfF$XtMpZR|urT=o#9A$cB?;rAI(dZR|(Ss{RV7I#X ++zhD8;`tfBVE`eo&hddhm?b+%kC5k49KRajLE>Ot}ac=Bjmik1)p!V3)(b5Rk?*Ah89 ++z{j8ZjO6YK7;^^e%7R+KX3SBpl$1>6}oy$ObN@^?LDSZs75Bz;DJN}OxX~0rCMu!fZ ++zFu6GD`r6$X=^bn?U;^-9W@1G&-zL$;q&auVKY#IrRY!}_63jBu#~P&3JJ}Wl29*Yq=YaOh;2hl6ssR-p_aLl ++zos-gOo+?p#YK&z2AjP=$^>hKtGzJ9AOcemgQIbID>+b(1ch`(vDVM!>&0`iU%~|c4 ++z9iA-y5nVsPf?#QR)iN0rI8^j{>F?eA_j8Kai)anmrkrlNeMQ>qu;)cV1`s0y-=jHe ++zJi07amI+Dd98jQ6HT4AzGhm)_5GbJ%1crp!mN$tH5e4JUnG|ki*MOx21!Eg)m~k^K ++zzQWQhad(0OXq|{Lh;aq!%Qj?zOYEs6*8_P(YX&U_eXq#|e!^J4#luIA{tq&4@yc9k ++zThsv&B<|Zvx?0so0FCsU$3p}9Xdq}Lkw*n<8jgq&PyzEf+l|r|&{(_}XhAK%YwwvW ++zwnWw;fK+OZArvqmB8X;LW--lMzkF5FmbYHz8?_>qd_ ++zQqaZ6$E-^=~9a(VCO$Tj1@X3 ++zu%-KY-NY?hWjgYsCs?PoEP(^3I4*`v~ ++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 ++zJ_cQK(U-Ji<&}p2_t-HnFZlJjsD97OS!U ++z;sGE66KQl!rvnsTf;%mBqE-7=y~PJ=+TTDbIdN>EVT>hjrK#ynEv3XA9~v?2g8`%@ ++z3M8wGGRq3&{$@B5+E(6g)P2tq;dVPHs}3#(W+Tqc(&6lquWSn|4gdO%-QvTq$NF0y ++zeptj}L0Vl&&q$Xi){6ZXUmlu2cdi@2y@Pfhsr}*xG$v74uZ(x}z=4Gj^$VcqlKPco ++zYKnD0;s%@;B!OMfbSlQqMOl2M_IL-)kzwT6TEzVC2U8g%IxbM-+7`pf9LO4 ++zdD!1)m;8kQZ1RV8xbDP+zydIVUauF2r~)atc>nz~wqUq0E)*Gd7Fio(Xxd3G_s9k* ++zY{!&sGaYRRyDm_I<_K(^*jg(<;AqI7#T~#Q)+v#zgJ}>-!XU^S4&Ff7Sqon&yu4iD ++zl$=y2ukwh${piGR{?g4Aryp8KKiOZO-1qwCqgZVAaDZN~OMW}O0QUZ(u5iPb2Z%~0 ++z);<+m93lZg14^A~P1cWH#8Ff&s#6|aYbe)slmKe5v9Yz~rIVW%Fuw;m5oZP%yu}OzTUIH|KF=V?01*d1$-NT{qswf@g=8W`T;gXqq5#x;F0zD{uuxe ++zqKdvz7u#9e%p3zb_ZlZy6jo5jw$peDj_XJioS@l9#%<$+CU?ot^}{*@%xMq`SL-N9 ++z^dL9W)tDAU1DM3=YPaIM*{`2j@8sK7Rl&Cb5NF)R7I(rH9$<^;b-O)y3y@jWeZv4? ++zXJ5adqznkzV;~2lB{-9UPL{$+cC`sT0DiFtV);0wZP6b(BmqMphDym=J|*{eY7i`| ++zMwu5WQUF!sbaj-m=Q+DgAgnfHV%Xd(-R{G~mV9PlZCF|xpz}u|r+u&t6yOvkFbF<{0COSH1gM<` ++z`Xv)-1{0u_R(ODMDW}WS(jwiho3nP9~ghyyeu@j~YXGt&2in{p^Ll@=SvEK%T#8i1vKkXOhZf^!Q* ++zV5Jn0GE-1GxPWS*LhnXg9thqX(4gosg&{%KfwV)JmZa_XslbmM-5!Pq+@SmN0Lg;L ++zKvo>4r9T)~ochuYXU8lq(!^PoB_yc9YC=XSNN1&Wn3MkKeyY6+;Vu-}sKfv?C?&x? ++z2D(8Ii+l~Xj-p_ZpP~pTfx-u=XrUSfHnj7?XytH71mTh>P6o5h9UE6r)K+^hk*a`JieG>{#rSuxh;v!+Ekc ++zzO7i|yQf`U(sh6nw#MkDH4@CC#`hP1A`k+QA*4JSKF0V(JNP=p$8+aRk5R0^QmwGW)W0m0Nl ++zjRYw?$j}hJ=Ts^tL~ ++z8ma6}ObhHz(!9o>Q9d~_{ ++zuiFn63E>2Q1_9D`9fcZIvPPJvABeMEn|PuQgs;tnI_5|gLDml7e+8g#xTyj1f<;5> ++zhxeCVfl8$*!6s8E8c^F=#^IWfuvtQg!a850H%nOonntK+MD<_fM-rDsxnkLPP_5kbQ+Y|y|#W7-wtbO<~#q6(ph_(Z-s0Gd!Wa%TZD ++zG$h5B?*Wjqzm_f0w@Nd2XBxs ++z(E!ugVb=VQmEYGwFVrGffeP-a2g5p&jc%MIQ$hKefd3J02<1DBnD9b8f ++zP=1W8^u=Vc|PWPN=*+Khy$zs;8MCEf?MKq=_3 ++zPN|fdFDMF7hLsUSL(KwYxNqbv>=bj3!$>b2C+9c@6wCd!=Nv3FhV&}}9E9x`Wq_%x ++z(*&CrW?$=0tEOGBc?p(CGc%-)EUCw=1wbf~k6}qgI!vui_YCxFp#tReBxa{wu!0Ki ++z8Xq+Q$XGMLSV_?QX5|0~kuoh)83wVC-59bzpK~0?;q*oZ$hp3$-2b ++zY>o@H^i)B{Q{SBWv64!VkS{E1q|JRhGky8KKbULwxuhaj{?7)m#xyJE@Y~Np ++zL;9yjxW@AKp~y_NtrD1-6Akz&C~B9{k2uT)0^-$R{wOxvJEK465&%sI&lZ;QNi!^^ ++zGk{q_`f(AISTkODFs5XCdN(nNJg$9grylKKsTwmOtD9y9vU=%FONY%69o84$ihn_# ++znFvVq3yY5WRBdB>jWUWNG5|PdDG%MKhc!YWAx0|BmjNxmE3MdRrMAe7 ++z#8dTSZ4*4oiWE6iL)t3U#-;fxS@4PB0EhhHdO6%)_GhIc;l+dAxz;!Uvask5U`5kW ++zo_-ljPRHwUNm#C+L6%L@DmIK77##<}pI+?3l){2FT?auHLd_RN(9DuVYiE@<1={2F ++zP2lJDEl?uQZ`tEF&iy*Ld02OI8D=jEz-Ml-i&N66r)LM&zqiUM1u)n`(>hiFDjHX#}%}9+fK`ls3SVBn$17VP&X@(VWsDKknB$*(* ++z9-%lTE_g!h_aRT*t&O(zN?W`n2e`TjhIP{0)-KOYl~o;zi%`sv>u6oY8;ODE{+XrK ++zHYqth4t86Pw&1X^1Z!_9AZkhArCoTcw4dq^)V8YtZ`z|d9WC%S&tg!bm;)zy-Nhl0 ++zXrBpCPiWJdms`y5t&mafeBDJi8SE_dDzO}jpz%3+j;2lp5!>3!0 ++zPPQM)#P!2m!b|R=0*!&Dk3T3&EUvX8wdMR&+OoS34-GIPw ++zpUFv^K%M}ionc^Gch&Kl%G?yQrHvC3#Sjl(b2Wvko ++z0JOd=EyD_hViA@!1Lf&)I4FogXobY}L+wG2-;|J;{mm>7VNlYhQoiU^9?IqVJGh|} ++zf?VdZzxkjwA(TRRY#;@$ZnC-|xR0n@C|5DgPv39|&QPgG`2ZN<_4y2B&4xPn+rF9(+;iXy3QMCVbVoOx&7iLz ++zXjsaik^Jo^#`srlF1+vUHv-CtPCb@QY~C!63hVuCIV_#`<^yv8bt@70zhhhZ?5ULR ++zo;D75MUkMxzss9%*AObEmkXc`Wvw|lhU9mC)db3}FS-ljXcLrTR1Ok`{TmKsUUKfw ++zT5j#ZvNB$lw+yXKMeW~-`;YoD#Tpybp|Bc?oAt ++z@Ijt~>H}`t==Ucq9wXd37+V(^GVi%EL#_M4fB5q@l&f>(>MXfFE$vN{@zf@)o#H8* ++zbQffEQ+drz;2j+i0T2X?4Jl0|EHo^naw887%1F}&h&gC6hQJvt?HcP=g_#OWz2KV? ++z!j`akCtm93ZLmv|@#`t^!;@OhpDx9_B1Zx;p!wlK!%%?^GyrYr;3{$}zSHl$g{yn+ ++z1x_??kA`|YG){D|JuC}(TqEFF#V3y& ++z6)ll6rr}XFj|BnvjRZhncF5##lKWj~LtbHxc%C=(W%d3i^{SJ4z|?=Rq{ktbVSxXV ++zM!Q^#bGzD!r;4LbwH!=N*#wfytn_WSv>rpBdzbH9xVu3J#5oi$hnm_UA3mC%{4 ++z*a+JFZn|4F^P^>Ha9A(5*>8Fqq+1L@v_s>qpz$U&+=BYsL9~xBM0^ulGx5^DJPaX> ++zPrlY?q+~$(3Chk8zC!o{z5@B*!` ++z$+T&A9Co_=z}x(18jN>ufGm6?ih(4v!k{ZYZm5%nK<)>*0`fcYZzSN$UrZFd4&@w_ ++zd!+IUc3ku4Niq*`m4K|H=|dYj_B9;1`?~FgLc8m_3T-qJkvs}Ii}>LD*W1T{Yzo}! ++z_X6)v$D|Jv(9!dur<7_hw6{}Pq0N%(G9?}4Y|s!J;9ql}@1nj_JDk?M3^;H5Q~OX` ++zZlI^3uiW=uC_sT7*F~Eqr2q?o4>pi}v^U?bW2C`9Sixx}4c?yt*9Y$)9l?*(FjDTm ++zg?2#EKi${H0R{jD7^d)Z1!4pBD}EKvJ%-VreVYo*Y488<^794Uch#=L|HRMTloqxt ++zfb6tD%~Su{|H55oV}9EPyt^$v_ZWirb8tJroVGmY{k?4g=Uo+U{fGZqrPjFZ?F-wN ++zGu@v7=9LI2KtZu{xWh1D8*qGZitRd5f$%rI%>n@C6m8*rmk;|@pT(cj+OZZJMVc{E5iO)|)?$00b{%-GU ++z<_hob)%@9mq1*`I7TQg1oC>luZwci6P_dZH<($2kncv@s{i?TjV9|A7;KGGJx4qqU ++zf4oai@}D`mT<%p|#>#j3(VW6t{y;D0dpvhnDfMmLb}5=urAwuGO;AwCnW30-a!wEw ++z42JV64*D$z9ps1d&)~58+x2i|)Q4)$UOlPa87k#ihox?nr2s}${M{>nGF9UD@xB!%rM~IS6kZKsL_6z{i ++z97;ifz$!2RWfkL)@<99?V^4z=@quO*;WU5*1t>^zoRd84$!GuoOt=eLmg>P4oeD+u ++nib&wZ!*x%h5CFvhL$a44rDz?DJu$NE7q*<8tSA4rce?=q{->Fz ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/ic_launcher-playstore.png b/app/src/forkRelease/ic_launcher-playstore.png ++new file mode 100644 ++index 0000000000000000000000000000000000000000..e9968a5ca60d775df5817a4eb973855c360b3ef0 ++GIT binary patch ++literal 183105 ++zcmdRV^+Qwd8}`{4-6$<#QBs1^FjNplrIC;n0YMsR*hUKosFVmYM5UFIklFwdX_b`P ++zXz7s~tls(gzV9FL{ah8idFJjie-CoAMe20z$J6n*Uh&A-#{d4Tzm6&XQsTwzfyoHo ++z`t>D_bFyG8IC_jbo-_iguRcbLxq8@mhuWBR>-c!6f#_OF-gyRI52SI ++zbf|;FtejS)Y^2UxYC+X9%8h+To8S;>+^&j`CU!>k4bEbw4YoH<4qaoTR^74g^X@Xm ++zbm0F6aD=Soik#kkSR3pu$eADKDSKc0W!?i#C{G#k%JcKDivOr(<%Cqa3VizX_{&?@ ++zHzM9$YLbGf!SRld^HyA?yP8;F_hf|HL}BJKJZq_|n1t22wbv`NY0d}!MZbvPot%{@ ++zZPn)yZL8R?BvstBdGR0Ns@G4{c8;ZW4*_19(>j|~OuFz4#?Y=N#^E(iIG`w+ ++zfD-H8lH8qf-@5fktwCV{)5-?tr8KW5?B0BnelP>irzlYdnbfFTb)kcj^XZ*p2XnDI ++z%Zx0I=lzc<3CH_K$-9gmJ>B1yhl`XHJL+cs+ ++z5myidae@^KW7&SU0}CMIEPTdeqA ++zMIE#biW9EcEgnlu8%FdX_hNV;Tt>3vnB?y5uC3`-S$)~@Q<&k4p>xMgJ5O7UG+|Z) ++zp|@a^cMjF)d3vhma!5Zymyzzj(-6XHGAly) ++z3pYBRHtW-S3#88<2?J-HjY5rsBmc?+OgT<1EbV*+^uy7s^IuK9TyUY-B(~vU+>(k` ++zJ>765>~C%r@|ZFY>&AuM^*WF9>Zh_j0THvLyQ~wYQHw`*UT}_>XT~`D)?{Kqjldak ++zMO}2@#rDL{p_Ov6l94$<7ll48L^Z-B;=7of#jD4_-v%(o|HF}K4_2oII@q6DvpIs6 ++zIX>>CqhAOUFAR1ez*}}ENpP^-8SgN2Otgt{o=r~;0%nl5lTOrTZ??Xm$IOi(8i@}>vrsk ++z^w^pKNEWs4-b`RI%Ay?7ONs593cbsF1+Mb$n5(@BJPdNUV6L%&;-5eHilkNPBUftFs}2n=tM77jZ*j ++z12--AeMdc2P>58lAaVX>G!x6`FYJqUM;1<72{rL$MwkHp-bjQ`kgx<{@FQD@ug ++z#dPv0IQTp;4*}*gANlx9KuQ+$j=$bOhElZ-0tt|^YWX~zovP}9tHcgBIk#Sp`xLk{4>5&Uk<2Eo) ++zb^EPEUP8Dm6*)h@^Gz3#8-3s$d#|ZY;2x#)Y5+DF`P_`a)4V8=bfo+7CvRrBQOBad ++z?&gOo4s|PS``Mi?OG1KfS#nm}?aEZ)Z?>rWl|dEXZ0o@7XWH*>j@^lJJY5#^>7)L%rx6B1VL20&oRiLw8!wgnqW> ++z-b~?+7N)d&*Pw`TCDiQso&LfhR<;;65MA_+^-hP!v&kdFo9A*C+Eu(f@||v?cN{{U ++ze%8F`j(0XcCnE4KXQnY8(R~WbgX9FW#WRt1KQ*hn3Nmtfi~>1J*jz3&ApcOh-@e^~ ++zvHm`>II)P!55AezlpYPcWb|VN+*)CktPO9NG>3DowitgCR5r`!Gkn-OrL9IqrZgdE ++zrMLN`x?`Zx&$8-;I+$W(ydZQ;Ol%Mc(MSBnnzINf ++z9b|OXPV96L#i#D)h=RnUvuE9fw4!&YMl;(U`sYd_KBfMNMemsW(ADMV^89ztj?SRX ++zsE@;8$N6szJ`PJLZss9x<$p`K>`7Dz>euNSoyj7*;tAC`t;*iWy3z-F)Z+W ++z`J&{_a(|$t^a>}0XZXMtA(AzYaY1;yZT1rb46kJHTrnxkS=xy6SPNS&E(@VE?xe_ ++zU@rx)3C+UbIXjp(s8pyC;Ck(L%6IM2kfL*8x$=LaqalzFKvk1{XgV$cv9v1o{iap}W;6a% ++z5VDr+<0rfDFdXizSkNyW5mw-NbZtMxax2jZGk)bNO8isxw1_4|N%!o*L?FgIp+i0f ++z1y(!d4S$I=rlEaH6E$eay)hsVS$$s~K9j4x?BPD}#CLLdR`HjJ--_ASMzZHx#JbrU ++z{6y<3b;j}0tsLe(U83Ocs(IV5RoQ2wE?xZSC~d`%iQo@hraVkzlRuSpcKO`it+wSo ++ziwgCxq;ER_&EPf<;3Ttv^W^(Y>Gio7c>sqe=&1cP+{dR*f|~adHZkU#c@`F ++ze==kGNVZ9r58vGApKC26-K9431SOo>;68P=J8Qr2s3uBydNoA_82K7 ++z2Dx(^5${y8;3{65jD0Wked{<4LxeGiU#2%fzFu%w9IT2to5HF6GjFAT?#k6J0ng+9 ++z?YX4Y*@0#F*38VM&9MrF##N(@`ACYP?`m&_SdNZ2CPVW<)VYvGipj~s5t`$?D^sLN ++zO3iQ7(e>!hMf>r-|`Q` ++z(1O4GpRxH88rYyq!h)vmuZV_Sx!XThMrQFw#~ozcrtebM2t1Q>dN|YA2)O`@T3#I* ++z#-r8;U}RJG-t?%qK`Gm{0kzvTMK9a4QAZu8R32Qc<2%nM9FKw~q<5_zt1MU9{orLN ++zp~v)VMRKOZIOkb5P+NSyu*7~nV7QZu>Tq0Jv&mBw$F}1_R&?YM#%LHSc6g5|-BjV0 ++zYu7vLO8OQahMql;nc90@yug1d=VuJ-dsS}**EjcMk7iV#SNQpFxf4Z>=juuNE|UQ{ ++zW&WRE_png7NN`nw>#IZ_CW~ixLn79>DCUJRP#jt`Rma``_RQl0nAc8x?G8PToUWe| ++zS}9yGtq$c;&(L=>IoZPHXOv1XbMvVMfX>|iAZbGWjrnxp!oH6rj ++z6a2O0&&L4Y4AI}H+X{kD_27ag`@Cz8&dF?2ZQx`KK#&uxe5hpcDdQbcF5CH{*ehq( ++zotFlj&DRUmR@fjwNnih4+kRG&sUIna3NN@BXQiqv!b}`KsTkfAC1tgm;{(G`6nCZa ++zIcq`7jVH&rpT^5|Zs(UOlu!DHRqZ?m#lk#2$6B+??ro&)^XVx)KecN!Z4(w&5@0K$ ++zgZVm1-S=zJY)==>_i;b&Qndr&ob$%;c2Y@qMDteov&FFf>JP!emM^X{!8cIntEUV0 ++z$zR20#3a%)JQ9YePxc3SR2*r|uK9ZtSXRvd$rTw ++z6hALB_R6YH<>iFo(|FFzmlu&4jfNaKA$PPDcCx~+%_$tmJeMaoMOsjNjtPkVrT%cq ++zz9nVPzVF8U5vURrX1R6v+NwLvU4Xv6X_awFN+K{osE+P@drNQ=)s8gIzZ=041NL3k ++zi%hSYZ+SS5xFca)N1BR(%8E73_a)8yf#FEhNz*O-fJ@vVc)-FBe*bJ!UTTy`B8JS{ ++zqj-YD_mH;)zlD+M{RZ3@BWwl&5%pj?#`U6WG(AXexfiob)&dkn(ylxEc#aZ?yw6)W%O0xV}>$|=_rl7*s&qBSo ++zT8D(!&xPHwUpQ{T;m5jh`%CA8-b5CrWu;q+2qwbMd$u4u=k+hwJ_rpS$f`byoYJWQeceSlmYu9e@}STZk`wpCm~s@5HT ++z;3Z*#Ka*Dw6Gi5Mqiz86?LlNYECEz2d ++z=Gf&itt^bFO&kN4!Z~lt%WEGE`$T|U-Fm1KyjrV}BYxfY+4MaS(WOm}Dq7BwQ({RU ++zW|zhAH^p~1{Jn*#mIDvEO1!EpcF8h`DF$I%kRF3dK^c?@?WL7VAS(o&0`a5&epbnp(e~{1Q(3azSmk4Y@klt2(GduotB_ ++zabyMG9OoTiuhn<1O052=n4e9sa%b!u&zbsh_mJa9ql}=+mra^tF*ZLieLd^W;-TcSKZE@RW ++ztihqtMmG5?-K<|cK69A$=Xa{i7L_0L>=>ATrT>Y-Tz)?7B`EyDPMg|N)-c13;y;;!H8ZaLNBAK@sMFlqj^)29`G}cSezWyi4o|VV ++zOO4CBr77!cGW`6S<>E#`E^m-HSN%gwkn;+?dNLXN@G`3$80lf#D9F6wxzPFeKwWJW>a?^Ns15 ++zmEGLnpG4xT;pr|B+N_Sb+&CSiBja9)vfh8CZ;maK&hD76M-?u`rM2}|&!Qw(ah&IG ++zMeF%NH*JeYl?x>c?%^sBYC)5D$)&1;wJ-~(x%>#P)dzMm2`Pe9&x(*TOR_nM5}H;D}Gqx@~KtJjj_2p5UF}_I+bJ3 ++zqS3iE$tn7pcngW_#@~=m(JVf*S1-s^J*%85Aj`zx<7^Xq@7=E!HmkQd)gv5g)8J ++z^hVu2-7~Gvr$8S^H191y;OVgndrrP@?lCcCu%x6WmWnb*miKmUduxzSIP0D-*6MXs ++z(z$)WX-1%E{$<_`b!q6WHYv;%UsiPE%gHGi?m8Vz)IM`;9-Ipz$)F{O1eer!k8~y=7MU1{5{$3nEvhU5A^dSNV;r ++zyk`$$7g`5~OSUi`9v#}1Qr~-)$2>BqwV@>q>T|+77ZP_W<*+OMM5&6g#Zd%SO<4PFa?$(# ++zmz-n4dUA+toU5N~+z7ki>FmRV+J#*qwa*V2qtS8=j#7O>d<>2Anb+Z;z|c!v9NeTo ++zF4_l*lk9bN3~Am&na9%0cy0lwz^Lb;q|n}B&N>hqq;vV%;qE6Ic|d(T^nWA!#Zpzi ++zsLdvSx~Hz?n%|kKTu;+uScvj% ++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 ++zJZ|7AQm(w;!c@}u)R1 ++zt``LeA|Ks}P10i{Ss%CQNkb)}UM;bZZq{Uo_vd+M0jO<$f^h0w4@Iof6s;q2j?xUK ++zzS(&|OOG~s{wy=QmCUvd_3Z+sK`SlGc`K1ReUI0+Gxmgia3}U`%!K`;V>0-)Aqh#K ++zhq1>b!#;msO}+G68E-i~ch%-|T3jDg_?oV}O^N&q_VoZX{F#?o)wM&oY}on(G`v=C ++zED{1-DmyhxQ-5t`rh_a*(PGi-ssP2>%tGmG9|Os|6ef%_URi)iQJJtvM%*fh ++z#DGSE2_gtg^m<74f-f4%K=8E{_w0x?&EN)}6D>!jbm0PE#J)s|CtFp*YR-x3Bk*rI ++zrb+cHCdtZyk47Xu-wfp;5+B6Xdcd-;?7^bQ14JY%)= ++zRJ?dCL~_iSlNXxEuBOvl76YAv_0)BQR*6nF>`xsQ4=$IuZ&x+6xjV>2eJW@FDaPp)3W_jv!fSek32Tbv? ++z%hWw&#VUmPmBK)zSy@8(e;>=E75e7^lx(y@3>|5EhY12u?a*+!QR+i9eB8nmNj~TK ++zW4P#Zu6TJrzR2jwq{Im}$ZE>O>nD~J-@_aUw+0&l ++z;>Xn)!na1Z?slZoRh{6$58qagM^0gy_ZQ7)murrFvcF#E;$otUnH^w>tAj|fj89k2 ++zUVhHs)($ETlW}Jan>Y>cE8HG_cW=7=kq1tp%g8Z0phisam1$*W1fr(!!LXmjN?c0YEKvHG*Iu0zEdT-Vg0q ++zcoL6GOwNH~O~~Le+P5SIMuJEwW$CV|KcKCoKPrKSt7D;y2BwQ}uB*YVrRm&&7PY?g ++z0T=M}rua`VNH^73Kg*r##c?h*NyUVLFYKmIIpun}RffT<2|LBf_VtgT`*^XPJN8X` ++zI>b&w>^S?;v(eb`o?g|;vLxoAAg0*@U)vB!2iq(5AEu?lAbYWB< ++z*o7%emSp=`n@%u19%;bKv6C*Ux22nhF~NPy-#W8(^=fgqGe|1E6A2dS*IH{_UF$=b ++zXG{*0R9olNbgA?Z0oC~(mE)JUq7*Fus^WfKO5Zxa(oxVIXj7hFX_8fVRG~XN0g!~n ++znFQG2AT08E4|^yZF8#K=lbGo-0!2UO3!*fzj_ni|5c}dOxp*Y8T(6 ++zlbAoPbAPw${yl(fz7@0{DMi`fVwwTr(qpOTgvUG~^cmjMGllgVx~;nN$G; ++zC6`lwR>yYqBNJGoHN^?bPPk>-(DTuhr3IVq ++z9S57OtOlC}dpwZNnKqJ<7=B?pPVbXK%6rRNq+rYGOSnj#9_wFZtvk1pK-*>YXI4=A ++zU1B|GK;ZNDV;#X&Vnx&J@XC7O0K)~Ipl^;Z&H0%;M~*^hNs!6(CizVKsV|yF13lLB ++z$h`+}pK8)BWp?Z8PzpfDsKU6g5#_WCM#slY8f!sO1p?or9e{-rBK4O`6;*=OLcZs? ++zA2CvW;tz`x$~r64)e~-0 ++z?ny^TeMc}xAKirjRtra6+ZtC{ut;$mPv*$1rP4@U46_C5))fG1Nz2g7<6_0c5dFhb ++zBn$GI3oZCcPja^fe1Vo%FADEQ-&x4s5k}9gr}Mt!sH(;UJh1j?ay+adaHMJP{QS ++zIB9?nU9%mly1v`Bgo`k}y{0P#VXL}xwu ++zV@=;1ts;90<~A?-2#meR ++z7fvSzf!AB6k-0&#Ez3s~fOQ0xQ2-99YB##Ms&@}|b5zy%ysj>Q8+9r2iM(ZD#Q<)q ++z0zZKqeXP_~goY|X&3wLkh2fHD<>5p7UB6q1uISe9e%$ZVu{U0aeXDpItTjFpRP$6n!m1U_LzF^RF~ztemsK_r{?y ++zgp>nNY-&M2F{Q5n)Wt9WsturM43pqOUR$H+9xBg@@g09GA*%Le>%-0xl#7qNRcC3$ ++zQbrj0P0lN$49_Dw{%^3-m)irdFoR51f~Ef?kY_^8D>z-x ++z2BO6?wSoy?(3V>7yjEljPz+`+mWPX(GGc?jKG4q+{aY1P9g-GAY5?GJr4+uNq;)WX ++z6HGDyQ=nq!J&nwz_l#Vm!@~ll{hvyzmrt#R4O{gM+CRuk@w%vPB$mn{@xdFuHgB1Y ++zq2Pzz=sMZX(naGmcBM9G(|j%eqKO(g1j$_d#e>*m3s8#+_Eesqe;w>{!u}J^Ac>jG ++zM17Grr?iarVCI^B(I41H{88#DP*kKH7l9B4bD|M0nRKw%O3V+# ++zxxW;vAX=5Z2T@qDWB^u9Sp%pn2q*HpFUEovk~^9sWR4V4wsJW1l$`dCn~lpPST7=8HB6H06D8UdrQa ++zId=>qjX+G6n4Ea8-v-{n+!|eD*Bkq^iPZiw2d&{{Lf9Fa^1`6xNXUa+j*AJoMZK} ++zpEBz;Z}WN&vwIraRk#-f`9A;M ++zt=N*_8;6NFV`IEKjeXz=1e_#c?JU7&sfUIDsH+2T>Sz_=5VkiiVmjNBx`ZQ?3Cq ++z(XR#={GK_vD}y8DM+i^L!@%16>YB9;p~j)o5YVzQmt}ofX%|2VOg|lTI*5V}1t ++zwyBdVEX_;FLz8ofTa0toREGNdD&gfAIhq&oQmp4BcfDlY7&#(VN;z1kytO3XJw8RD ++zA%e+aU?tR?##aZ`%}5;QKMqqLH^!AzP(tQ?`&Y`5IQVTAOSlG2KmEsGw6HCO@nb{Y ++zkwnlKQE{1HRu%^irYJgs%g*V;74IU3L%yKtdqqPn4x_gxk~K~=Ot1R2{La!W=LP=m ++zk`~-`vqE?*KhdG@AxQu*m!)dxu`Ifg!Z_W&?`*(>cwA;jT7+e20GG{7Bso@?_uUK}d|0YWY=?#lP( ++z=YMyw*S()zAX9p8`m;4aeW(?kn}9DSO+6d>@#x`V+7gAzlf;#HgF+Bt3lr#J8Q}8wop*cFN ++zSeg@769MN&BiV61bYqT8G=z=7aaIuRF=hV|KQm0DL#&+g6z86H=+1ZS8iOoHy3iJc ++z_RH#Ks0H~h{uE_eYH#{1;l>y;dz-Uk2Tbw-{wGwg(S&N@$+8Xv{11M`KqRXhWCak( ++zeOA`9kG*Iv2FgTm#N4oGDJV*7wHpON!d84w3B}TBIc&?C9%>|OaDa68NA$-!w)!B4 ++z!Lf-Vf-$J@A{o(mbWwY$%w6)tH7D*zf-FO0S3vXkPOW6l7W(`J_b6_62J5}hUJ8o4 ++zk@&ztA$Tr~eeXV~Ud?{;3aY`SX1>YIe&`(&$89I5VKJPIW^sFWvl!Xk9HiLJ-@{tX ++ze+WNK^JUaL!a4)ke27>{961wZy)lteANlpkVBV^RZ=0*;`J0mgVffeiqf;-kd*oj% ++zK4@o#TNrr;<>v=-%vW`wIBj0+xu1MhL$}j5N=OyL8AxX#pbVVq>Oqgn9ol?32f+(Z ++zx)OAZ3JF~`uwvrcT|6yZ6=yjKniZt(2p$Cd433uamrE&X7H}}m7@#ntp&){!+rniu ++zloK}$Ce=yK?;vqIAh@OoY2KQK+Hut2WD@Pb5nNY6>x$qfRO<1aKBA0e=#$>zjJ ++zQoT$&z5BI8ce>6n1d5p;xy_vg&naCJVFCki;(ax&?_np3k;D&BF!tv?)xd~LRWW-v ++z0TWjA>-g*1Q(M#vq01RPc?+*gxy;|uapLbN8kpc{_Vw(QL_mv ++z%I;Hr-nDgWX`pb@7h+Vpn~i}ZQ*fL4>ooH^P@6EV?ACN-AogeIlEUL ++zvf&ioDtI3I7TpI({q9{Ls_Tfp9GE0YM{xnDzA(tGcPD`WJmcpuEgwj^G|<8Dj!`oS ++zIL?1G%l=m(dRXAx`V&H;3B{$5gaVNyXH%lUB&+L(RdfVZ5NSnDhqNrAhE ++zpeOZ!C{gqLox;H`eNn>SHvxnrYc+}s2WP{=`Ctm$C^o!UEV18*a|#|$KatJju){UZ ++zBY5)?1f<%<2%(P&jQRX-zLhFhC8>E7(~Qt9ecn^QaS;Lu!3Ib82AQDZ74gfyWD?Dx ++zs^cr*>db_)x)+kZimDpDq0GI0GLQ ++zyx)Zm7M_+i;$wZrS+RX-ndQsPhN*j>mI?zb^|n5iyL(SxnV-Cz1!bkEl$ishIUN6d ++z28eRT*A|KC45@pHQZ1oDh{qx+ca63k@@X+~B!zT8rO^{vcgBwm4fU=mWi}x%0@SL) ++z6IA><5+G0&S!p()7Me=7Fm;hk3E$;MaF$cgBB;Wp6kdQT5d*!8Pc$bo(PYcPKf%pR ++zBL(;S1mBN8i~$&bITVDeid#TJ#MsB6Y`C3SM+;0RzUu=Nv|j ++z5mW=(s03i&lZs?`OYu+lcP`zmQYe2UV*2s#Rc~Ea>?H&HG`GjhM;u4Z+*RI ++zN%l|HEqW-M%F|(f&z6HX-UJw{tIG$KE4=i~TDg;@B=!Sz5t&1mGJBS>l+TRYudJx= ++zEHFvFZ0HS7>Q%BdJXfxx3ui&V>CjX#IL3Du&lB2Oh*o%?;b{Fg=TEP~UHpjpIIY03 ++zgumD}-ofkuq$4qeIL(hfi{`+k(>#0#7J6C-f)mr|$DdW!V`m_VA@H#$D2{a$YbLcG ++zlN3&TVv0&VRj*OG%}HbVJsO46@C@34sw;=K{ousmlSzd~rvR##ju4I-o>;09>a ++zDJ;%<`US!*!C5#6xwU&J95+Kyig2Ne3i ++zs8~JAGMRFrLbyO7976H2zBl@dF-3!K`Us$|F##Hz3gzAxO;h_9zV=~q20eiW_iN%N ++zGY?SbUzYM#iUl+dUezJFJw(~S#JPfbX5Z=}sAYKsVaX2)Q*_vzjOtKlOM@>x)u ++zZK;Ykh!mzYehu)mG1ELkjlZLMB|ILGHtwav8?*Jp}x6la4f=`;q{WCKf&z(UWKt ++z?bw4c2Pk6z3N+@M$cq2Kf6QA7<2$C8hQ}bs$WMz;x}HK)NK8~NQhzscgcGL;py+Y# ++za(-jq!qUR&f9}wY!8?45rsjkD)r;N?C&&~Vv!22EDv1EGdsUn`fJ ++z*d3;1sy_mLMN}*T?7%9g!0!gV7C(2y*kBCe(=lI9*6EjF`-VSg59IFe?{VDgemF>LuH36R ++z&OyBp5N6zMu4~bzV^Ice>OB@f%^#vVkFN2Z`}Zts4X2mvN-+3F3efv ++zK0dfbYeEWw&?fnci+(%_i)77^y?Cr+qfzC>JKx^u3m&gCk3)SvnwzZogVc{poJ9*wpqSnWn7&g@fWO(qYK}w{wf8x1Hmm7AQt) ++zv>!lY&rt~kOumpRQ-}fKb8wk>H_h^+MKVqa0pBkGpjslRf`pbK ++z_0YMpBAEu>Ag)V9f8s3&U{HT*447_iLaijh@a@G2^2MGMAqF^qIdz(^NC(~EZVnMk ++zOwr)NR_Rt{lzmOXTDh|?bR`>}z0#uvO$c5=`&Xeyt<078;(9B+tvtW}Hp>)y ++zsNB0ywB>Iv2soh-TXBVIigtEhJrnQcX7x>8#_V5Ji$A^u;Wv)xPcnG#{ij+=fa7Pq ++z!4!qO@)6@#Ey+sRcL#LJ;3(^*3lw;C2t$>lE?5ELG)OhKueYQF8xEsb-p ++zUah2_3NTq_H)}abH$xpwo0Uvyo7F!uP&c`n<5?~njcP%2Q0%!qSmUSIfyWhw&JU*c ++zFZmN~E$tY#9dvgc8*~pBuRlY`J{W`iO^4t#)w##Sba>!Y7F-Vi3#mJYGTBY3B4n6N ++z_9{T2tfWqV8iaFGEJziP_SMOV_B)9SAwY<*42FT=Ek&`@g^yn`-RX!hriYa1`pbWB ++z=PB%HH$UVTP9YYOIDrFW02k4P?84N6D5q%;BQBC?glq|Cf)$_Kz$LE1VvuVTzx@A0 ++z)0c-s^}heljIl(vtl1+=sk9?BN~My0jhNzH%90SW%^4(>qD@+8w1_NO3dwSYNF__z ++z*BOKmGqTJuXU_ROeZJT4kFMsbtEuTZ_kF*%`x%gYltBa<9QlMspaKty3oi~09A3{p ++zR&nqLXIIwOiRJzcr&r0@G&uX)vLW08cg`n4~(l{qPQdB=%VI$CPD_17OZZkXC ++zxs!-mY>=mx>@Ua==fR(hf+fV)gOoH ++zr#XF4q1?T9b2iN>Kj&B0=Hq@YE)Kqswz!l?*OuAng`LNh(#`DL(~GnMIk4g0U(CkO ++zqb^ThD1ZEXyV^1k5?YtM^5LPm(Z=GjnU05EM$X%nGRIq_w%@86(H)KY(uY603z7ki ++z-dX+?zwb;CltI)T0DFMmMRVsbYif>WKV)=AOg8b}m7a>8au|5FvoU;_G7uuP_Dh68 ++z<#tyk)pCbCmy8X2Bq=AS)k0`04zrqX9LhH_$*xL)(Gm+O-xEl6kc8~?$-H|Rg??Wi ++zPhT>&*wetU9A$ly5>fdjDCDs|y0bj+6UP~7d?J4E-UrxYDr9Sp;dS$dgRS?dG0EG4 ++z(`du(P5NLO!vSVPGzsW6Zw*#9nvdSPOj2I`aDrp8q>INCnd*W7`NGBmY{H_iwfxfj ++zM*9ScY}a_Sy)_O=V2y-1+9f@|J+ws$}NH$)_#;En|+fjObewfy#w ++z&#TB@tq{h{mvTM>GO7KN)5sA|XkPG!AXH9jsemG!Fo#_{RB=G!k_ ++zy{DDp@-z3%y-yx`#;d>jLylL)-2hUGB5%6j?EKk^hL?ABfl4`@&na-)tz>mXYwsxs ++zd!Oc+pUatb7MgB(y&i$GJ@kAr_f%ewzOF6~dlcO?YtOkQ(RVRfC;64l66=+Fqw9DUzvw}Kn(ZB> ++zamjRdIsL?GQYfSRoYVX>eZA_7Y`ggghw<^<&Ym`cY+Fa&=BYeo0<~FM_HvWYP_da> ++zTmEk|NS84KpIe*K;M(HU=EQHrBLX9ZQpC$dF0F2MO)o0ME+TRbkJsL`I&SRoeJZ^r ++zpZC(?(VVR?^ypuAumflyG=p(12Zw$MdJ!^V-q*T3xoD6yN?ucjHEncl;r?)DoVeWS ++zPerLghdd=nl#E=9{c_IYcyn=cSUL-muU5E75@bT0+FWBhYKk1eSI_QES?aij_OR_*a!ICpj@4` ++zg1u$t4JH@_k@f0#80z#QVWwdcNr)V?lPcat+b7K!TJz#B9+F`j;xN-()HDx$DXoG- ++zzFy;|JYU^PC$a48L88L7d)^t_sfSiib2&KJ(>aFgdT(o;Bv5h1Y&J`UfFMBy=l+XL ++zgFd4_Zj0bt4y+h_f)AP(W9zC#5$fS9jmCD^eJNawI5!ml?uPK|_oCAE-awl`OJW*s ++z5cwdCr;lm>dUPOcw&P>jyCTztuSkW-w!P_Lw=6@VPuh=Z;h^x^#})g}ozwOHp`t6@ ++za(`ny)pIQ|pn13TK#<~Y{j-Werw39yhyuaC3XPsnYR`8prGvz#-FWF&hVw39Py%jJ$Pa8(zVVvJ6!VA*%>NM ++z%QkP^SBY=(@&r40;nS}++pQEjT?lBd<0Ppon!{?c*pJ?4da7NOIBXBM${{a(zq7K6ofV_2AA~hEARN=n;;)k@6?H>m1qsw)9L8Y>45r7A8mP=L ++zj$`QT8=!ls=TTA?9G47a;6#I_RXnQbguPzDX**#mbV!LwQe$I&A9IVIBTbm*bQA5= ++zQnTdSC%cE8$+45UhH!Xidyy0|W?PMsqQ> ++z?eru1rROiW8;A?S!lQa`Zr+(^f~b-;5Q3|DPTFN8VMLm!vft_0r<{@;t>Pw@-UY;L ++z8MV;1X6b1+k%J$Eok<#gll0U&wPiZsNuOlXOJnuP$1{`X9_Jg@Ef_xW&&c>4bzpmO ++z{sCO3x35;tzR(RD_UgoM-?#gbrrU90d_O9ugFb@c6S~Z{R`Ag;KVSsk$jGlHa^duaPB*Sk ++zNZj<6A^dwQr|ir~1{N>KHqe=wkCs9r^Ng!&4uQC2Ar3uF$IMKZ1>@th*+z6AJzP8> ++z#=xOK(R%}2SJ-|p@L^Jxc8&j!zY4Go;{IZ4-!K_EOagpli@jONti%$-r!-d?lHYSB ++zKED?6>Llc%jbtr59HN^dw`Y2ny_OWtG#Pi=$O(Ij!_wIosF=4NYE6Y?nYQ-8fFMFq ++z-)L-K;5_JZ)ze!h7K0p@eB-gbo9y^gnaH63^S4ExDW}HsR$Q+~O*+IpvpN)3bF_1Z ++z9S^L`Y;OTfS(HtZfK-_fo ++ziTwC^W1W$opJq%!qDGd@-ugRxdS4zEv8FV5p;v1To3~#PTBdBPPe04uxG;aCc8g{c ++z?Adyurzjge@Yn~Ci*RC6XIW$7!Je0NI2e1J4S;HH~9c?>zC=!^Y6@h*=|NG)v<YzUnjM(9+o}!8+Sl>4N+MXG!NcvgjF~n=$D>T>k_1`u-Z8MJ8%A>ai6LO1X ++zF5`I2VkD61$uz@b(bBTFa0r};U4trs=Jch{@BU?nd>q#GQ?8=T)qg%}?3ZSkA(J7; ++z=|T(?h(hh0oW+t4sS7J7ndyZ}qs!yN)f9Q|_#1T~e&hJ3a?$^CS8Jvzr)oWM3~8tU ++zjG@#i^!gv8AzSvYaoaA~&Xik4tzGlma)g0yo|dL#+qgeIc*>-vC9E2x44l=yxsU5% ++zpHs&mB0U6j6P_jGc4j9qdw ++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 ++z>0@&()Kt6rlvd?ss90=WBY}2`~ ++zE>*G4S17&d)+yPsnf}Uzu_fVXQYrb$fWV@b9?s^|w5>3j<48n4r>xbP?<>EugC;(^ ++zk;SXKx*wCY(C|X$P!DAp|`64OuJ`RidSJI(9*Afs>Dtzgz2<0%k(_Di4P9fAQ%a2O8XXnSf5uzN=+-nK?yyMQYa-J&p ++zEWcpr^wmTGlE(`HrX!fnn#|5qJ1Z^crKWC@U7r*t%SQDaMB3eRTz~ ++zH^)9e*DH>+PmqQ@jP>M+DEl6rJP^$#d&CnoEb(`;abFy8zw~f_WpUCo>GOu}7w&*H ++z(;#gyu+Q?}ZFx_LgKj!!ek}^P!)TJ1_{(dr_u&U~efW4pSV|Gblr(0A-FQzbt`km6 ++z3DTQoaXt39jMa_dw$jDdoY%`xXM;r8Rd{6J#jVM8%CA{dCi1TxR*^}Z1%86zFS ++zmRnC>kS@klxQw-V%fBKr+YE!WDdj5HJ)SictsUKqUrm~4>4RN)-qi(;SkivC03q}p ++z71L#gDAocCUPbhXZ~nMJ!N+j;(hNwd%OiZx62gXZ=D(%Y;H1h3}FYvK2~` ++zh>}lR=f|1p>+-OB{M^;$cjj-^HE2{)DW%3EZOin@FRNj=1Y4ISH|Wi*jY(`&!fR;fk@7O9o2ega^648@oR?8 ++z{b-fLRldD=`=QgcE`2rkluoF&$r&iTepBV87c}j@H_9TOGCb85S+}D(*sT@T`a}pZ ++zi&0HpYq0ZrP#=!HZLlrh?R4Oq+Tyn^TFWKX5eDt*x0k@>Bz?cfqt5b!*#_?&su*!3 ++zKfWJ$(kp(@d2vO?5CY)LWqMn1h ++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 ++zq9nH|qkr9hg7OIZeMyJ}NO48s7cM ++zFr2u2YqM#WZ6Kz7ytHh*szT&J!#5mcRsdB9_HN)ZZ5^3~h@OhTBup2<-cGw3l9{4J>!<;`hY+Rf6tg%!P;1cGkMtC@l8R>y{B ++zM1EO`LR;VBG|FF#7(E)8JAF=Zhv1)$blZ{L!>Lc&Pj3=__7iOAzjesc7e}7b-SAxA ++z=@y`T6zj6&ggEcplM*de-oLIWLC(2!~{mR<0lv ++z_wQiI{!bk8r;YgmnWaDY3T`4$8SgB>!A ++za3-D?>NXbXmbzG^!BCU^E?s>7$CK&O?!SS7Q|;^4YHafAPtTnCn<4b*!4V|l*Lyi% ++z^ak_Nfqg@%ACBfoI;35^5IQ*>^3bZ&yKw8ssK)wK?pW>D#2&KR47o-vl;%HdaD8D1 ++z=0U|46!}@3Cd|YU*5|(%p4+C8Qn$*P@HJU@q<(9YQpG_H)zibDAE6QnEj%rz`uACI ++z@getPS0ctqjU=st#OC!~tZppFSbzWjrM)k6l{s&Ih25--(} ++zk1F(!F(rjp3KdI$Kos0v2GK?m8X9x$`0^a!mTh~7neq$()gE`7m3 ++zJy)Fsefpmw<^P|GoX9 ++zd*9MMmjC+jNZ$Bh|IcNI0KP%`*Z=n7km#vzj{6#4Nu_XmcIc>b$Qk?@PNb@io{h)K ++z{f#-*Nz`hvplYLdkI7y ++zp%dS{QfU#Io<-LEbKl3hf#q@cE41(ZhtYh+&0gl;Md=jr;&*#QR^{dm?=0f)lJ*lJ ++zsy>~SP()DFS8;z22JUzjxob6%kqcCerb57n&v;%0W~RRmsb?;t8yH=!tE$}mlaPXb ++z8KR0T+5AJ#MYh`P{DvPn0Bdz$FCb@2Ydh!zJFBSlTO7O<$o^z7Z$asUll%N_ ++zI1&hIwF&jCY~w$--W71*+}*Q3_nBmAwz-JudaWz7y)pT<2Ku^p@0^!uOH>+n+bIt} ++ztKvsbe>Vkm1?;P_xKyw|?c*-m@tRBn&!M1Twrj3Mmdk^4E76W^(%)H(_TtCqq&xi^ ++z$W`Ugqt6T=;n5++W_Evk*@P;#V ++zl;{nYAWsKw`(B;wsVMJDB6#EA^-RVyBPpi(SGZ00Z9O+y05o=JK_6Ed^k`=+xT`Nw ++z{%CfhZ~YHG0X8W#I9d~8;80?F{G!gDwhjA*{+fYxGV_{`rwe;}3X}iZc6@dq){K4_ ++z-Cg~0X_3>|_KKEy=q^4bT)@hAo>zBB-f28>OJu&3&Vx61x8}$pT}%L(_HWpJk$>>4 ++zEb{mFho$@4zi?CGj-J0gC8$p!--mBML+bfv3)GK)Z!3uDZ@o(L ++zsOVbtY=)D{g7^;}7cyCgbJvD-+eRw6k;eT_^W)*=bKm+-=WSjNQKs)x4^ZX?f%w81 ++zG-yGKKiqOZ@YGm!mdN=(TsdOGfu73kzR&|(9V~m7zzJU=J7Pn`WWR$){NdT>r#pYw ++zCo1O!I;qTKl;8%KI(+vlW$+LwRP;{_(6m~<{*vxHac+{1kXDcSi0ylL-rs7*I~K=N ++z3<~4b4^Rha18yu$QL2d^@gfn>sHR@oApfVTC%(NqC|k_}IrHY(FrG9^u04qNIx?yD%y7^q+}!&AhVQ@nR0pou-J!Gxqqrtx6tnnEoH&-HbWQ@q?2*0kv~Ik?lxOv8=d@{5@hs}JhO??$Qdm8q-T2M ++z8a8?9JvMC~Yi;-L;Vt#aQ@5d_g9TTP8d+ld8p3fH*c<8pai)r-&sM*v&2IM31VsuA ++zrg#8*##`SGsh5EU`ft>7yKY5v8@MWzCkFi=;kRIcuDX<7N=cK7I${=D_P ++z$&4$>f@Vi^%1)ufK|3lkI$=hjc ++zjJKhR;t$N3I0mdKR^)}es!pR~)32(;@#w^>TAvSmWw6aAN>VvLOjO%-f6*v)cjcY) ++zIFN|;eMc`6%2Rsdm%IPW^CkV+{VMUK)TBKlKAV1qu45bC$@9HiN+PbteyE|+!n%3a ++zVK`+=JZU~wB~;(;-L4Xa-YHSaay=lSzAU~q;oku*N2lM4Bp<|y9)x}`S!eZT9T75fMwVW ++zbvF6t61cP4630Kbw~N>NIx;r!V}!{vbaU%sxHcsqZ1~8-#eMlA*GWAUWx0y@iTrzi ++zyXCmT*SaAktTvNZv<7{It$iWEwVf;>j~*WjejQ8)w@DSvs6OjZ|B$9)^)|aRUluui ++zo*!1xcLax{;*K3U;Iy7eN?$a+vD-}TcdAyPWYfSi%|x>8W>N~R@JH+>F)hFhQ~kCBgTXYaC_E$s-#VpYk}uS1?|nWP(w{RO*c+)=-e_pZhM ++z3{H7JcqK>#vwt;HM}I3|t_&y;^r!K^-Job}SZ6#Abu^5kpKI>jdf ++zDLV1lk|mhJrB3C#?nsS4_bkMQTasj}b%E(L-*@^dOlK7U0YE`skaA|{FfgnQHvLl= ++z#>Sbcw0;HP%>7RaS`sY;pn9qZ>q@23|y ++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 ++z`xg87sKZD42z(Ui!gd^waGRoybOn#)3||U@ ++z$iu7`#VOe2+u2#{7>+rnehZdEvBbXnnERE_f(dc;U$hIu*C#c3bAcFCuCBO3`d&yi4Nsih=6bhTAbM^kR`5QUeK ++zsv5`iDON+3K8FuxkkRmcS6Fh&PnmEG{SwTv$#hwZQ1HC?;4~DkJPvV$jw#OaOH2NLYDU)c;M1rxvQ$paWsNY`2K_ks9%yr+B=^mi=NOmW- ++z7EkIXw3FlpwcMGi+D>Cx(x$hItPHXwR41>E3CCldymkjvn!T<&y9z{kM9R>18ej2l ++zcDkIk#KV%d&YZvR#CjcSn{wJr{sle0szRXf5sDHJIh-iK(TtT?34#oH+5W>`J;gg9 ++zE0vVPzij$9@hxUxz*ge>$b}F5cAGW=oR(B77fcbcR{v~mm*T+#fpv-6%GPLiHMBK< ++zzb9EH{S|xh^8_W(Q)cQY2g19VPR!v5k)%Mi72o|(Kmr=EDO8Lj^%O@F&wbJ63AM7( ++z%bdyF0ZqONe>EtOr-IDZJYPjm0kpsC?5)$P4Ly|K?z@nI)vIsO95cwQNp=xa`6)IX ++zw5j@(mWY6l6Ze}>Y6V*7F?%;43;*YzaYScMS&81xUpnH)D(T5CGdrldLNvmvTm~XUiStLIP)m ++zrcS0*zKq}ffRh0a?%$d2yh6bJb$r^3BsjYhJ@Sx4zlT>FVpV6eTY+SME!+LY%+Jw3 ++zYo?x^^P?5M4_JrW(?dV(p$r_~fBUJ>)(O=HE>hRrUWnfl#k?euX5^WbKWFDoK8v#Q ++zd)c?1w7&`Ce3_Sn1D?25&+AsJJc!hnzG2kQ!3Z;9okt+~3Tc)mEdIX;bxW#E$aGly ++z9@{syLVf~ntdJoV=M;0xauack2GvD!FgGcOwy~n8LnTh{p0EpDQyJyPV?nL0yiT)w=IAQ0kLJi0$exKIo$RRrl*i&HR0bAYp7CN?0P@>5UMFz ++zsY;++50m`6!-$*yXC7?0$xSIJ(e2Ydvp*PAC=d1n=r|SuW@xq;UU~}10F(cpo@2NJ ++z$1J8oejAX`cJG$!EvQk$MePA!2hbytqFIp7?wZ85q#Q*fl+U%X=3w$ ++zlhw~v&_`MJ@CpA8bO!=g;Ono`%+|tZ^hgjYqd2fbHyS<|JjzN}Z6p_sz($O^c3l`F ++z%`)W(w9i*u>-%nXX#$w#8JmjMeWPC6URaYB)>S3qj!D({=WD5b<_}d&Ws}$J&I+3x ++zxE3KCfA3tVg)b(`*Ti-$<_c@gc<{aX2~A#A+O5^w7t2ly6<$HQGobxUa(Hk8?p3># ++zm=HF{i0&rB98oQ<34C<6dYjOAI*N5-P7jYP%5UI1#o=8kK_sS=zlmsVe%&8mEuI&< ++z-;nor%7N|UX0q3Bn`xW$9NbG6eY}{z#BDuf$nEALp}2V8@&|^}dAi+ZmA@U=rC$D- ++z6X2onAN)j1?UM-A#?m ++zq*&I_LF`Pz%&VEqnVg>2m+030mnix#0JnDph!4`i&iwk8cqcL|4L#X4x)+ZuNdrb> ++z`ZMF=15Ar~?5GmoZpZAvdz;5h#264Jh@V4@ZDg!tJr@AzFI(-zNwYr)59=`Mg!O{q ++z-R(>Vj0imjhV!kaGd%Cooj6HL-CV$sMFi;(hc?wsGqJ%#J5cjKfBUXgni^kp(7Aru ++zxJ!WJy5Q;Mp_bgu%pZ+^C{n7KbcE?YX0N2R@24wLeSL2$qggkmZaiw0*-v$x@>p-iKX8l=IbSn_4?1? ++z;u#_I&KN98Dym4R!58TP_LL ++zGWmW`|NEM=Yz*ptN0^QK4lv~LAcNh}+*oH`kKa@+E@Y!}3!G?48mk|zA1m-3#lB55 ++zU!Dit5s)ubf0|naz$>(RJd^%_x#YOJ%w`yE>%r4x&q}GGfo)-g<)fTE%*sRIfo+3b ++z)Be{pm3cHW%W4A3Gu9Nl5-Qm8MzIOUB}a#gpdMzc9U|J;MHgNMP?<>R{Tk<<;(%7V ++z*Wn1(4{8Hz{9`e!p{X04`Q7gRAn)>ECa0$IWy?#s@|h93m&B3{{t9aS;{9wmgPcF` ++z25Uwz$REwg`mH5X6B0;w;$~@v^}wGUd^-%ds<@XlVqd_QbH#UzHk4H&9@}zJ!tF$# ++zpx3>R=^lT`x3pCo^7u0H6MC~#T)@evH(X(ZqN=LB@5BB1EWE3{v$gY!eK+MF|BbzR ++zn{x}@rZ~e#wMsZ-)%W(sWTpvq_g$dc>nb&XwB$;TBl>YrA6B&7ar|rEiV;n3sKJJZU4Ej*e5q_{!Jj3kBUCU?8IJa)du3E ++zYbJb>aHsDBEnSXcoCC3`d@Vg~%}9&^*YRUc*r^Iz+fO#rnqQck!|C ++z(tm7bNxI|8|4!oOV77^wk`916K!zxQzE@8t{^h-j}mgWob|xp ++z;$r5}9Jk|;l`WL&%2v=PtGyn%%#08bG1D$Oub=7q+jYUps^CLE6KRm*pS|{#wq+`h ++z5i=en$jm<6j?>(Fft?*kv70Qt&6r0r763XtZche9iiC_pV)szGL_|MvnBrl)e3>^K ++zvaURrw{Bd|3{6V@BIq|Di7Yj)SSF4jh|=W@r-&P#tnf?Y-`bzhBSeQbZSq!1npw5i ++zf`_*4yrt-|Rc2v3r3$2mzt(wLL&!Z8g)3LMDC*Hqw0SQ}n|pE|In+=t{rm?#H#GMY ++z$DX^MkCaiDI1Ubs+gd%9b3a@00;PD$m;sGz%o3sh4f+ ++z(ok!k$-rbg1);Sf-9F%+No@0OEstO}zC^}go#a8b09f^7u`@X{g;X&MAaxikc~4G1puv=@;e6nORg%*orL`L1w95Rtw#&P6v0zZp2JDVUQKTX ++z`yG}X$2D8wiv#KxqCn?CoWtTjqa!DF;VMOvUbcX9#*7m46HffRtRg3IH*7QFH==}y ++z)-1UB^|8|^(#Ikdd+b%sK9bLh9p{JdsYC_YM01fH`%86>$;5daZE{1(=~PukOeh{6 ++zyf<+C(TwCU>YNNQ`B|qkv+@i}^8@;jSFZ|X9KM|>!t`f6UCPk9w>3q!p)KcTXMEuw ++z43}NNP|kfIy3O3+KuUTGogho^*-BE7LMJ9ox39(KE$JJKBmutxsV3L}hsOKvH(Ibm ++z`l{I~N|X2$(Z7h?46ac)$6k%WWNs1Oo3r;BdQXKYkPj#LED!tjUUx-x?Yai%+HvUE ++z3;%&!*Gm~ZaZT!e&bl&BWQVN8M^n7yYMgeCIg?Nfe;qd!0UiRNKpd{WmH9DPb(vtbEV`FYjf-j0 ++z#ps6G7Bx7dM^i@An@g*MtE>e#v^qes2+Rh9Fx(fwszx3H>&SMT2ZsJjcl*ugJbk1X ++z-B?P##KK~RsEVeJKm|pHPz4TQKfu2CKu2gV(*Uam*qKwxGJhmdy13>Fd-|zfGuyRes@WC#s4!C}2QKZtar}D?>`+M7MZcS1eIzF`n{gYaoS)R^! ++zIu9fWN^%^4No_C=%+g*@Aw7>pu53{y%r=|aLqFC;v?X4&EGq|@F5^*MOR3#RKbrGt ++z&-JesjP?C+iO@S2l(OHq;2JFqPO{vyKB=QZ-OqrOXEtwQ+_+~)40Swwk*b#F ++z8PGnh%n;|>} ++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 ++z_Si$8G>6{Do`jivSqw~ ++zSE9+4OSVAsO+Q{7ST|$AP7R?e*lPek4GcH)r3)|ypb>a-E8!(6325(1r(v0I3?dAl ++zSK1JEbgPA#GNLk^akCFSgm%_kj|&9#D}=J(_Z{i4DvvO#I=N10-sV~M^}TrHik&B)Pw ++z+$XOs${-sjht@kaJm9ljaLh!luCA_zF ++zi;uFI*Lw2y=l5F_7r5iYYjDTy&J0h~G;Lhz?M;s2nSybz_|w5C$%Toy*A3^_yTbd9 ++z82mV9I&ilJ>6df>HT6LOWn+14xqA1s&XuX(*oAJpCJ(4KF-Q1f8zztTnAY?r4 ++z(O<}KeeEmnslf(o;MPLvdt<{L3a3kjPX|{G<%gk$<;$7X+@&7Wh*~-IM8vh75jj9lJR2eq@?jXx;z3hZ!ns_JS%q~HLS82=k_O{WUK87i`=YM_g9e6gN5 ++zQv7H>uh81i-0?1p#!25ynBhSF>I&h+zU89eI$cT>8naEm)W;rtvibb@szEF`dg`i! ++zCkH!r>pLQZt4WQ?>-cbSv*vGPr01?qRHO&rUH-wPpzD_8tY#)(-twB^PwXsH^)eR5 ++zde2L7JhgAAHn}O}HW$ftA;^N#OZ$V|xV-y;bj*aGxp6&bUK?;O3hmc0@Pqy!)&qDl ++z@X&Wso(pWmLsQefsT=z ++z@?QF+JF>zbNGPk*az~NXfDFpd0s2SLX0*=d5h}47=weaLrNaM395iCQ2(CoIX3(Fs ++zI$UcuuhptYQa)ACdva?fp509dD5?R~pdb^GPp*CJ4)@bT+kkox>^eb6x*f|v*`9TV ++zYkp^@l7l(pc!DUqSW5b|FdEV35ENN3=)a&}M=t^!g~jj)uL0kkC?E_O#QPe~b!juT ++z?aCG2jeqWp_wiF~g?BC44l5r1W+ZduMlSQ|Vygyy{zy6Ijp;f`v$pm=tBW@yW}iM| ++z>@QML60+an{9nvowpY6Jx+ezztM;<_S|_?lKDj ++zZ`tuu&9J`78U))A7KLr4GI}Qd%OsjEj09+f?emJIvz>fhFUfqQBs=U=@CeNudDtsh ++zLpS199S;34LIelGG8=X_OoftuEaI{TZ@^BNfP=~^Rj9*YV1d+PbXd@)*upk;A%P3Ew8OGuLEkB1kyY$7zQHE ++zEPKl(oI#Fcs?k}Ni_=NW`!1|{bEVC3-crK|^y>zV!cZ-NsH+K^3CNThKGE~h$m4<; ++zT?;W*Gy@{aV{bDN?vhxGn7vApG>a3DhQAT<{$}4zHLqA*V;;w-eJ9=p+0SF3VUiZ>M*zY!RT&WnXQ{Z_L8(zH80162x@UZk#(dEKSE|`l)$1yA?&;SCL=kE4v ++z)8(s%U^B5QR(s(yMU`~;4K|P^BlaUvF9Kx1?58A?eiQ^(vBRq*LGweOZ?~H|uL=zI ++zKB8AuqOj`1u}ALKSyLVTr^h^JUNRt?=7{6yZ`+L9+nMH$8)#FH4RAzp-l|sMspdYB ++z%BYY-W^~bqM@2H_zS{6a3>$N-+;Y#pi-#*c=30kd?0?s1L&A-{Dij~Xy;*zTT6l*14-9U5<2#L^n>1R7Mn3#|$9j3O!*1@6i ++zu**n3Z*V{f-|PiQ{7PQktGs&Iyv7WiTB*9=mYU+a;he?LJk}sp2yc|s$U!$m2dCZ` ++z2peq>O~4&kN_E%7R4#e|oJf@XG-Ec0>}Q~7<+5k+t+g-lGn=?Ro8=@MKwIJO!G ++z0==*xVGIzi2Cr(rXj^t5viyK?>F&0}>0{;HS4VH&BDK8)!Ljs@83fG5?@<5Q ++z_X6y1=KwC2fsM-4f>-j1aK|%m?ppVj{u($u_Sbd)+Z{4t2brHtU2BdQ-cMYp7y3cG<7@3+K{q?Kk8Ml`Ek42q ++z-+C{b55j_73br*!5MDh!F?wqUuT3O7i2VD?!x0cmLy+u=tEy>+iU}m>Vuc#0{gbwh{G(H1z`@hZ$8H5onP__g& ++zG^WWcf%KsUi_Bczr@D<)X^_SyWD%Not~(meMwA$9z#7_vCqa^Kjd1herz`a`@8-|b ++zC&Rc{*8z?V#@p`Js^N)l0LnzO3Z2Vp(?P*2!v}tZ-ySk#IiM1dFshWm6vB&W)V}{V~aSfJ2>0N}< ++zQp9Z{W-7ALwToWwcZT^I{uI ++z-6xB`znGMr_i+YdwNPs(P5Inp6Q|BS5m_(R4gI(~)E%^M9jz+k>{<-$M=Cu=xuqA7 ++zLd^CvS&L2iL?zGE{jh>6si?K@-tJN5UJqrwm*2en2Us^|p8$KONm4I?nu}j-$ ++zEEkdtGacuQ-@ekT<=UX7S|W{&bfjx1MM*x!S$C4u8n_g{ihjVoQ;R&|_D$g|y`R*o ++zqc{}Yi4=GD8*T$@h=Y;NnpibXMD?}fQqjeq>u$y ++zrlE*tL^W@K*^HeT`gRM2k$@_6*C349436G3{515#9vo}nXfFTGNP`dI1>$9kiv2;b ++zuDOQ&&wto4(0A;mhTDTz4SCL(qsr|%YF7N6F_shFd&!* ++zjMqf49F#HfUm_8^bjHu3ZELOSQU_4krlQ$CI^@|=Vxv1~5@mq2pe4iQ$RF^9L%rVP ++zzf-hy=Er214QLJ4h~D`?_}KVY1^Rfi ++zd%<($`9vkvw_3r~{}~v&|Gc_&U+7Otw}|I!`?`)=rnu&I>6I8CQQMU&>|8U4d2U0#ux^+((9AW ++zf+?`=8E%tjN;DAJA0IDr_T$Gl0ZzkTiZzzL?)hascA?nAuI=!drFX~q`IYwYJWqVa ++zDI&5j{+W^G>vx|D!YzZxcCqL$O@WV1%`Y<;*djBXfgFV(TigBQ_d8PoJ|aif*H>@* ++z+lIAH4PB1#J3Vm3zfkwJF?pf=rY>`~|8sZgOXE;xIv0I@6xVjxXJZp@?tr~{oFEw# ++zcPz)iAcYLE0Q8}J;NE+E)c}jRG5nXlf@0nOFZi>A3p@C?g*Xe18>?mhv15x35R50Q ++zykUC)`#g5Os02TY>sWQf4vDT6HWM*$x93Bdc_4AXt%Mv-A@CCnl&38x7cg+wc5sav ++zP!g3^E`zJ?9HnD_QFnWlGba^Dsp;t^YoZi!X*%6y>onX ++zTsB7ul0T*bE}vl)x9t9iB#w?CG;@?-$e_tD5^5edq7HCiAJETy4G2G-ty@@A;h)L{ ++z%Tm3d`g>sNwVSp3Us(1`#pzUySW%L{*#iBM3AS(udmv89dC%D>oK}h1^t+!MFI5js ++zu}DFWs}92*FJqN5TC+JA77-De8C?NRXM>N*__Qqe*+;l_-}|Z7bWxX-Q=?t8w3E@^ ++zkv`|&sG?hQAY-+k0|`4lV!KWeLn9ySt5riiH-=qwycz2$$RR3fAMjepKId2PBkbTM ++z5j;qs1U&%-sqJ`B(9f#6Fjz)mOkC#cYLq@oxYnfmi ++z_tL=@ML7a;mT)>(w-nx2d@zL-Hxt-%zL2aWK0$+uhpxqL61Yh!&To_Q@%e!oe63?}5Q-#=Rj2*AAs% ++z-`yf*TgAXF<^yx5mo1AQNcRaYpEE-E`_0&ElBVs&AAw<5E5sU}9mWC%{kXFiOYs2*xnpT3~ZjJqP`%XhsN8 ++z@^6>){o~P-L?)Q5JYV^{m#O(S2HRgUq?Nq}N;#;kH$$4a-yV4Yi~-F)65MM(Nj-qj ++zAmE*L@GSXJ*oYhj{2;)$0UT8@7kRwU(w1v(3bL+#TmCJ5?mlCkOw*x6*5RPbskb|8 ++z%l*L9+PbDyUc3L_rxNCs33HCkmL ++z=TqI^8XWkbbotQ3*NL~ieqCnnJ+OO8M#f(BLUQdE7acqG`i}ke>s_rMVYWbTx>~gg ++z=h^;*FEv=#IzDn*1SGGT+&xAlLd(pujzy4%2DrQaY6s6JX9U1;u ++zKCG`iN#?<;HUT#Q*^;9a)U_N7;1Ql@$6NrvlUWS>^l7zlk}?mXuKvtvlCs=9v^E7C ++z?1Lu#H-5HKEsj_xRi}SDpoCIr!J@7cuMrL0UJShrse|jc#KOtKQaNFrJ_#qW4$ZK{ ++z<1kJVa$v$>1U+1;`GSwdYx6Ay{T%K(6$^L!0IIKjU@E1f77)y5tM)LYpGz+YDF@-G ++z%nX$nUF1($c2q+vsMc7K5QKXh$lTPkI=J^U&9{`=dT3LhC1friM(#*d#eLk=xQ8>9W1how5aWgf{=TodG`e ++zef@jdx~v`D%_iO7)}Fr15nC0}@QJsH*Xne#iG#JZ>-ve%Y4-^P$~5^RhT3&Suz-AnV`BejmOUQ}!QggcANbKX`O)Jzq-SUFPyVu(!GU1V@1xC$o@B ++zvRz#S+n%+nt*brB=TR{nDep&7cVRRZfBj%SM1@xk)q@q!M@(;ly|*F9vYxOmd3>FM ++zf};t-DFanQ{#ZQR&7vFIY4mBkW46>Ec^|xsJA8;bFU17&)r!X64De6_bnH(-Ir9X) ++zk=!+lOAKk{K?Wop5E2zSu*01a-e(hftjs%UA$FL$5R;)>QnNBVY@<;-u|GP?FkO%~ ++zU|Hzc>U7Q&^6qTz)s1f>6^vF@HDuCKk=7AA{l=j ++z6EYHBMX|y^I*bnF>kP{4+W(Ujh~o*(p$~$^5=uylg(C{NDx0Cp3P7URWUbs5$u8p ++zsl8I-Qc_a+VAVUd`bdBd!Qh-t5s%-!*v-2S)1=V?`z=4Y5wJhxNQ56We}G@{JEH?| ++zlWwpvQgqm<3&@Ho*7FM>i5V~B0O0W1sb_c@7od~x0xt2SSezs9c*i13u7lIOAoO!g ++zcgQTUml1;iW8<--&dUr*g&(CibwlmJT0m?8pa?9oU0u7@t4Zp+^1Wd5O$2T>dLtf6633RBY_|S^>W&TPN{} ++zp5^$6Rryd=Jl*a~QSdB?tezni>~1ngs&f2ajQTU{@#vSMG#@uQ?S-er1oEx^#}sCY ++z5r@F2OggRfWe>ysA5Ao4{(PMpd_M)f*0)rM?Z%u7{+9 ++z+tFG>%C17}HtH?g{=`;w4>)2G#)Yx(yW8NUgTnO2bq{ED?IfWO;1mEt-KD~IW~iy8 ++zF$=5JTm95Dcg2NOZ`4WbQP=#G^J={lutooxFUDH*w4P83K?UyJaT3PhU54r@<~&DZ ++zU!(9zZD?!>Y5{bUAxyeUdZP#WIrxdim0{ID+GhK_j2gV=!OwhQ&r(s&1}FCn*meJE ++zD*J;@Duz!px=&(5f{_Q9rWba1{g@#j?i{88R&wPB45eMLl}`iQ^kOrdqR`7|R0V-! ++zbO3USRlq^g!L3=p!7H;u#^MA8a(srjZS_3 ++zy?OPDb$E3e2Nb_^u2vvp+%#nB<#(U|`dRJl31> ++zme?&lbLxZu6I{KRZX*MLK`Kcy1@#c*6mR3G7v*QPz%*AyeE-H!&S0<3IH#` ++zI^{@6Z{W)JBbnFC0Yw;FKZK3;#}fYu*=|Bs)d6wY?T?iqKyCl+K&T<4u7d5tHtg*> ++z*vvGs3t&%J^*{zKG8Gpb6gEO+Gp5fc ++zVD@}AMTd_d^fhj&?zO8=g3X4q+s1G{oN3!nK_z~Aj;$Zz ++z!wQdxQLOP26p)8_Q}7)R)>m;}Qnxo6Tj-CCn2tp%D)VBaWI(nsu2YU6xi#MjT6spQ ++zHkDMM;s_=Ac;+u4^3VKs_z4!dw2i+H^QXaj2Oz1U^-;Pe)d(ASG0-M3C@?*+CUEq1 ++zh2rDkiC^~CMoa7!3#^KCX*xg}Xzcp~^Gl^=VD@}n$KEA(?ZPXa>)<4rhaK!xDcNP^ ++z2C#m!A&5`$`bq2)5V2uf2geUw2X>r>>!ZZ3-M30RMct)S@0k7z2p{_Yk#ybhRQ><| ++z4qNsI$x2ocT6VcDDGd$TTqP-6vcf%Ak|ZgTB3%us?45Zpiexpf?cT_!Yh3%f_uPAa ++z@B97zHcKbQkubWm$?5^3EIha@bvG_~g ++zsvTe|o=+N%`yoQG&+m)*!Om8X1?U3sjDlg`e8_-W`$Tlya7t&?W>)CcUfP3=^J}8S ++z2b=e7ML$>(SGsmY%x0GUE!!YaSfAE= ++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 ++z0HiS)&;!9HFSVn)R|H{c-#An(KIDG ++z9u1!ZGZa2f?T;l+3Fj?=ZK^~*D*!f4JiTNv?yTs(3c#|$AZ8CB+j!K0~?J*V6c)yEUf|*|8ZaRABW+P}2{; ++zRO~pUuEyaBz=@U&M1@I~VX5C;nMc7vLNFdfAn=S=f3M^c(rMAu<=Gqm8yi=W21xo^ ++z>84>^_uWob51-UH#`1y}%6QVe1F3Fco1y ++zCA8uvfDG&&ZUD@tUn~F2;-f59Fj#xH+xSRl3YecR^&7GP0!{mhPp3>6!D)h>;WhMy ++zOy7WypMA6UYIt2OlI*`OzhA~c>R#phYwqbCD)vrc)p<&#=B|;s3frAL#&xsKIXh8o ++z);t_+pmUu(-x7RDM_a*-UXX^ ++zs>PVz8#gB=Z6)z2Rhai`fxUAxVeukW?^l~kUsbiqxE)m ++zzK9I6!ht^+H?)OGy83WMkur}WTZ*#w->Zg<{cN5^L>qo!EYx}S*Z(qMOXd|IGU_r6@TjH844{=qQX|Mce}P!u&uf ++zOKv$3R69lXkBsxrsd%Q#X`Ut>xpXWP`NSZhmwLUpny#*l ++zt3=$$m%)o=$zB!5QSI9C--lM%As}edmU}}RKL`5vAOR?dJ9tjw^k+c2E}vSyFF?pM ++zwGDkVH=U!;m0^V)zJ6&8R3m*dKOfp#3mh8^mbHeBFRp;;ExcL6zii`R@ ++zBhA7SZ+%aYwPsmAcKxNYXtN6i((WRQi=s-K!c2W?xbjQn4Gc((mD<9BP;hOF8LoH5 ++zj5%lAJ&=xH=uh4p5_wl(?A?R$`~V^@48MA6muo*T?L`y{`D}fFxu(B#fUM}}|K($4-juzGkBg^$ ++z!u=axtu_~La3uY@zWP{jdK2w>a7(=Xxr#u*=c{FtEtSENm_XjN@#KAZoZA9)ov;hO ++zA{y(P42I?-u<8LuCN-Ph_RFwHH`j6E2b6Z1Q_`XKrp%L1vc#k*Ez{HY%cy-%>KQn+~R4ZnkTi#OL-m?NQ+6jwbI+h{?TKB ++zdYu=~2B@2Y1kk#ce0^?mi7S!80j{bu-@h&L(dG;5j#3UtVm3> ++zjII=7hQ{1T6IuRZ##q`(QKyW5dV=fy6(Md#YaaL!18-2rRY=nD3G)$@nISBUMI%KU ++z5kJ7p6q1XhCP0#OAUC}bcISW)J}@G<8-J)MqtU&Djt{7Ef&e|N%7R4UL@d%5hln4B ++zx{zb0n#iqeg}qaR(w$EbGt-B+=$5i^L9CJgzs$i$RtLngkqQ9C!+(%OHsI+ZJ$j%sGu+857xm*q>nQS^rE%z;vI7ABpg|ObK^s ++z`;X<*#2}%cXII9rfoLJ$ONmz*&DGv6mn!3mP*6&GWjkE+IsXSTiIVI(lJ}o6VqC?v ++zGn3H7JDX==3BJ{JF5QZL+W35L4mU8tmLf~PDBlp`c>3DDqfttg_v9|}`LxpUBEHdH ++z;S*puG`_|IOe?{*89)8VQan%ZHK3)c4ir@~cu|r{%QQ>r ++zkJs`n_~c(ULgcM)1ho>DuxV@f6YD|L&&R!)HH5~Oh2&)Gt9K4Y=Pw_Q)?*soT>-Qf ++zhHSL1AG-*gKze~(+xj}!cPsk)mj1`e>#gIj10(fm5{lHhX1zwY;wu9>T|})Cgmeomegb@p}Ozd ++zUSV<{N$Vn|{Naie3dSm=$`T{iYa`|a;2=*f&Ww{=+_VDu^5qD+MM$*%O(@HnPI4EC ++zBe!IYjHqY8OHR-xrk$o$gt&ihc2L9vl-tZ?e@8#^FfePDLFk(MP3X!IfTL?Ww1jB= ++zeNKoQ9k28lG*Z_9SqUf_a=;2-zhg&FjaW0~vn(KUJ9PAHU;r!d$7NH%i)?ICWq2F2BjPMJbevh~{8ApT8?8 ++zgoV$teUfjWU8n+EYvk#)Q{50H+H?j9mmEAQ`Ff7sXTL;B!;WlVpk=2Kle@xD`mS=Baz-em_m(oSR>;5!ugqAApV;Yqt<>GAYgaYSdl)byCcaC+ ++z*x!Aw}v{hXgo?l$J)bzN89o6*hz&G&D ++zTqiPxR0(EA_&Aph<7f(xIoLwn+ig`mx2FEzc-7m5kR&KC`3b~$&F3f>WQlt5qH71L ++zjmw&{eRDkD`E*C ++zgerK~RC#(}TE)WE*#Dgt;H)4Nf>Vf35rIy+g+20Hp&8jcwx3vus~qi{d7>Y>+C{0O ++zzmoZ7;^$l8C~W`9r4<$QUa7RYeDQ6tt!HNzYQog}$Zy}+Z*_>xm6H>t+2w!3kc^FQ ++zah`P+NXG{?si2Od7@O@6|5x)hF5qkAzv5*(X_9oBNZ{y9;9NGqp0uLg!9V%c7!bcr ++zHUknVVSiMx3VhJJVHiA~gM2d|4x*K9h^FX&VaRHiUC~XSCPCi3nKJ8UMRN^${YOsYsk1Bp{%I^LT4l--jgE;O ++zDLxUbW~I_HzLA1cW01sHQ&^sV>q!CzP`;o8KLOG~0d)gfkah~m&Ixpnv#sS@SE6*lx@s=&EIEps&m~RfO*i-;hpRsJ5h&n_~m9DCBbjzeVJ? ++z1#J4-1aCXN7sdOJZg+uub*=Dxeg66l6;Nl6^GWhf?lG_`fB?)DRFnLF1AcX*HNYnE ++zQ@f$p)^yx0v;Kq3daej%es#<0o}u}MnBYFm0Z%4}5-hkBttHR;@uiE1GzR{BX&J@^Ka&*`~^f5OjO`xb1#)K4I6+N;K-xm~K2s?bu`^7ntj6 ++ziFxkipmcwc>n3K&Q4H$IW4s&-QDWh5u3+nawJ-idh0dx(W1dm9spI1k@jw;A7g^31 ++z*G>?A9kVyOda4#*r3ipZfbp>Sr4`WH@$|P>hvPT|ReBRac0nL6fmRx2Kc;@V>GdWZ ++z)Y`?_)QD!5)E4yg@0+|5^XROps5duhmxhy3&ziK{@zLc86hx^NB1 ++z)qvRIBmpcLz8C-qM)(s?l=4dk9v!BH!!FtX}& ++zN(hv1$aQW+xyX6?o;u#2|D%RdnRBosrT^#m4I61@n`iy>^-X`hk997BGfx%3B}eYI ++z(MwLhF(%QJi{qai&pTywuc{KH^?z8vSO0RJe2h5&p%2)}oMS~6mjd_&Qw2~c{w)X| ++z&&L1Y1Zycs3RG9~%|^7j7Ht(qi2!^2C~B0xFmb-S@z%OjGi-xKLY$C7Nw+~wMk-ys ++zXspj-^P5GbRoWz4mWXwCVoUv&8h-X=)D~kevDx9{X-Bs{=c!lEib7shR0&n+(kxwd ++z1zG6P+ge!V3r*PqXX<1@@uB||2x{I^@x`DPkEl7z?1YW^<>wd`2}%a>KR^f3C)4NE ++zZ+bs8{6}X`pwM^I^l3L*)P;5O3xh(`-bNuNt#9C5=7RYo&n>TF%3RIpMEL61RFB7v ++z)`16vkH54~HlTNO^oe&cEJB?SeBJ7ZWht90pTz8#JYR^MqXW5HFA7!}FDYLsg6?Lx ++zAlLQXzuEvaFu&;10g^Oa3tH++T=UFk){oU#vmO#=P@XE>kH@g2!hy5W-?h8DRPt2b ++z@&AZEbR|b|O-7h)5w+ ++z$?#4u<-Nagj$O!-!Qp2#i`V<%v!52wT$Tk|`n&HNb ++z8&^E*Nm(_!4SNT_))dUPcPJh2K4ohBAKmfwuSUN%zipf>`+u9YB2rpZuPXEExtf6{ ++z(W~E8-nxV6f9tS!_B8*WaDEx`C+?)$pY3##QZd=hIqC>N3roBw@^EuPyIkU5c^~)& ++z*gcU{c?#L(jx5Z-{f#Q405%d)!RD{$&J2zmRsDLBEzdj`pS)t%$`VHN7)hOuyCO6u ++zAyFoD(b@3D@hr|Y(X?CPZvVuo_@n4Sfuh3M|IXgbbakz_%rU4XRd`#p$)ZRC(@O`f ++zJts0yh~(jj)jxr&({igbx~ohZA7wi%ywuN$S(aQ5jOhSa_h?vX5q>58b|G>}-@V1u ++zWAXndUuJ-H42t_i`JjPl&5$4VH*ZZ&WY(g2Nf_o>a%QkTXK6ghd2_5)+*5}Li+ ++z4dMtf5EM&FfESBG^THwDF ++zUK^N~vaOl4r~MuN+pO^3^OSI_Z9%c5f~t}>hoKquY~%knoBv`ipV(+DP@LnxN$72% ++z+c%d$TgTxO04aQyZrOgmu$_H9Dw9z{3+Su0CSFNV>fM ++zi7qFK@wCu3VPn^@@Y+Y-nseK*vla?*ZgIhZ&w16a=uKrARmosl&S0kA?9FJPi@xh3 ++zmr6w+H5eHg5ZgHIn>*w2-a)9?v- ++zE$?E*XU^n8N+Bwgc_EhRWXP}JXLwK!d6aS;i&RhJCF#J6Yudhu9G<~0+i9UUejFE| ++z<23n~KL+CRgG;9PfCo;ME4`AxyXZiq;_r`B7}kh=wyqsw#7*kUD5vHqAIKO5A`WkQSUMg ++zgqTB@laI5)k75b*@|i0>szDLeV`q9S0uB}a^IusNTmtm9{_6c?sLy-gm7x|Ux;#Jg ++z;rqSKqp5Uvm{Q;DP}8Xhbj=Jv(>9YpWIS-5sKFA>h_eF(076juec|rg?l1>T1E#Lm ++z>qm!@EF+N`{02B8IK1!uw|)Y4VwR;4&g`75y3@OVCib)7M=%CVI~Owj+V=z@#02c~ ++z2`cZoai>0Z`%jZ%W)$j ++zsA0e$JfJ*-;;w3wQIy_43!-C(>Ez^WFJ+mW)&<_xqjvVIM#hjaH>LD`U}eCxRr#SL ++zC|$r!E(_s2Vb`z9pFzXB#TA#Yioif#-f-0yZ$Kx_JeRy(n?D;ufyx-icYRNM{jy~C ++z&kfnsK>`ukGbTzwG^y$+Uam(v$!M(|Xhv~Xpi#Et(_W(AJ{XH+}k&hNpdiau+2S~F;nL9%RwJYJ#YWutW#n?zF$2; ++ze3tz3r6zN956RZOEAB?-lQU*lQo6a0*BH}rzj?;;=Elj)!Ca@b!WnD*{w_~SGjahz$rlBr-}KK ++zO2O%X0V#&MD7^D8Zo$p6OLL^ddRyv!psBDq1f)?%Z2)Q50CcE8(~IXDlP@I#sec=& ++z8eXp?P7snQkaCFdkyzc+jec({>g~3OPPa_WDyy#91zy;l`v%+8!-VkN+uN3)Rd ++z)yok+hfI?xCB6rgSbpN9LlW0rygYY_ev0Tc<7AEF;tqR`Ef5jILL|13q~$q?@!8!! ++z@BFOZ`~Wut7MtJ&pWSIaKeg2p!i+_kg|Fz^|;N@qVUs`K;oaer1Jtll-4IDdZV87XU@_KrH- ++zev5sFU;ayc=V~_5B9NN{hTKRBUrsGOS6;rj`{kCQBhO-*kA?LHPG-$JmO$cIYPV&kj;bWKY@^x+GVf;sHSUx ++z!V+Vx&G{D3yTqtIkZNYrv`1TDbzSra0lK=4Klxd$;jR7dl`E{v#T6CR{a2%Bn)c;- ++zTr;DS&@6@+V-5RI-Z&re^C`Gc;%6ns+SyliKZNS7Z-pPVZbg@Ac`6fYev4_Ll(9%) ++zKSE;-W;C>Nj)vZrZZ*UF1sdX|3E)#gjJB;sGXUt51;^Ba5=j`5c#Oh@=%N~vFHJlz ++z`{?BazObOYE6pUK{Ucu$95D8y$h;Z~xkiCfDr!o$9KAm}Xt6$?5_o1;sna8Y6HcuI ++zuW@MP+)n8J?Dd}B?L9x9)jHv({0Ua&1lk`*ca(Mt+Cue9PV_4(no&zeLD{USd!il1j&` ++zOz|&2=*LYfrCi+il^)vc^U8ELqoFhb&voX?qwCA%+QW_2TSO_B=T2D)GUml$n~U5Z ++zEx>{>4>a$J%iBPL6ersc2xj=78#+WK$6M2BZ=^BELcVE7K`q-`bYcJat(Ci46!Yu!B ++zpuh5IDk><9(ZM@MnRm2$T-dc>gUdy{l#wtO2^8T2D8%JB1_$ZIs!_x1n?n`j%50K? ++zSbKZ>u(UtAe`YUFbb>n`wOrwPVa@f4GQiw44TtV^cHf@tL4h%pK3P*iKUas)WrJ*sD9=SQp6Mkxy=&bixI@uw{Hy!RWMm6{k>_CN{f# ++z&EHM&h}EGZ-v(P@m(P5xrzORAkL3K#kUD2ZlSqO~@NQ ++zcZlgR5A_VhYVBQn50l+0+IZ=%A^`?-*qPbc^hh|fA|mkKSYu8)ZuC#}4$;#=lt1Tp ++zAgXc5ww}v0F&6$4>ljAwjpgz480dbGaeK81iWimH>y3sa$ECnl06HLjaT#am@9Yg| ++zgV%jd^K(HS5N4GI8qDmjd-%KO0+Ho@0>)aRnY5!@m|NgzR6cGHhR>EjcP1)G6 ++z6TD9$Uu%rzq#~bu=pveF+Ke~-v|OWmN<*!Uh1Yn4LEz^^_vZx%Bg`4X@FqqtmRDy` ++zDkVIzgvihx^cc)eQWW7>m3;GdJlD-I&h-|1rfr>-JbaM2wbdkm-#au`r)n{QHmlIp+z1W`JnBcv3Rb@>{>q3Q@RH#|8cp!>rXI=ms ++zF_8^R2$}_|0*gX2hSe*?6L-t;J_NYGCLrwYiv;id?9n=vu{ ++zc0V-TA8TclQzlLO39nfN6MFA!6=PsTdlG}_QPgk!25KzO0=Dtj%!I?@aV)Ynq8T0^ ++z{X~F%!By%7S|Br5n-89J~ ++zr`zQjcJ+|R1=gM04eL}Z{gGZ1-cV(o9Cq?MS!tu0pwwPq#YvLmVGqOO!v~+a-`RaJ ++z&XtG#3BR(8i{OoyB$&OIwvmqfhm+Ki{P-n~7uC<3K#@&5C{Fhvu`}CPSe~b;zI&VL ++zz@NkgA2ea&joY=Tn6&nDQNv+gp^U|aFMdy51z9BrwtRhh*wcDoA003AwWR!gt)YJK ++zyVI{oR=V4q%3U9^_TcJkepzC8fm)bEEH598dw>rJykJb;To=FJQLV2?5MFu~VD@T5|OYjM86B#LT`6U{j+jk ++z?9lpsfiV2t>44)UA0GFIDGjtC~Cy@yP<;T3v+__6AUIYq>RSUYd`qipO&BLf1 ++zN|`W4)xW6@zK1`)E~)8!!%sDh*nNmK6s@lVU4K|zD!U{4>c#UnwY=v}x&4$BgtZjU ++zuYJf}4Fkt7-LBq^@Um0b%gueq=y|ViqwLsMU=xIb!MvcoAo+e8S~(>!EH`s}El1)y ++ztv~N$`0txm63(yRa2tK}WnHnnaTH`^`cuafu0TTq5cqQekSGX1swy&(?O!G*K{e-IYK3ri~g=t2=}*8EW`>kfP}8KQsM4 ++zIEtp#HjHEEVoshkRt-^)auW}=Q!S|cymNq-Y}Tee8u ++zjGh*RqvO&&SeHtEh==Hf?E02N!9~Zt^k|ngyJ|$IF@iCi`2;TR80KrDKrW7{Zcl_% ++zWoBfW$)h)|M%gvhV?V7t@!~U6GIFLnA`GbH6`e_o_aR0CjDzQbb}aAy)@xiTKQ*h^ ++zKBGto@}3D#ka%T?{0jWUrU}90WrQ?hRor6T{;0;yE*(K$+oRIKb0Q6lof>TpIr9`> ++zf%>9_Cb)he35S%8BGNv>7Yh@Ik8Egz6D=&+${4SGflU>1k==4pIdcaSU@`n=td& ++z!T|3Yl1xYLTs=VYT_eUyvZCvwQJkD=19c<0CXc@iqx*j&!ZQa9_dahO|C+`}qO7PT ++zou4`-P$(km*x>{A{F1F1l=Dk;$3&>MjQ6&~D42s{H==lID&r#oR!o4j0VP`TN4A$L ++z82QJy3kP`udn7uxFTp9^DJQ-m%UQT7ysINB+U*>MR$TT@ZkNNaejzmrsXWY7ys)JH)ZWSVsYyTwFwg+W ++zCfQbBCHU&;Qqk0CX5_Zic^P$L(isZ$vo?XE0pRX4W)oYbcZ)GoF{ZETrv02#3La=EdViMU%c@ht=8or(&}+j4|eT3p4~uiKj=PCkBaNh@n@Y#fGnu9PP@ ++z$ ++zzp1isb8mQm7y0>#RaLW9^npZ)nl`#tvlP)ULpW|J`=)m}MQZD~p&tP?OgsBL&^OCJ ++zTv2WdBGQKY9%JEcrc|A}-q~YoNvbne*wRf5yB5>IOot2Cb__q(5p^PI(Ie?lV)Q4W ++z#N(`{!?H{a#h%aOtpHC>5pqm_w8{uW#&?uRGVKIm&0*DWa(%aCaLu5e7JAlpb$q+) ++z7k7V46r8++ryHeG6YNW(&>rwz)Ey4D$m&yos!XPmo(*OS!&SxEfQQke;3vYXHx=R> ++z&w}C*Xu&8YU={MGDfg9&@Q5@tp+>K4mu|#KSz7#J ++z6)5LTUAk;S*?wq9o31_=SRFc2RsFR7n}ZhGN$hP6_D{f0PR34dI+4fNOPDwOvobb8 ++zILSx`4tu@|coPHoRQ9maN4V%Vbx$~M=z0HrFyn~d6eL|k4l*Nj95fuZIA}R+MsHR! ++zV}FdW?o+ ++zZv}$VN!QqTrMG30eEr6D;ZpTfMXI$vQgt0cqylVF%$6Sd?<>q;@YioJERQiTx^?BJ ++zli|CI{vCOX%Py4k&)%P6YO4yLY%*lD^$#ys_s^_!C ++zvxgN)y6Y?~9jDBi`oed+0z7b({R_w}d23EDhJ*5$^VWNx3c*^I+(cke4;9>6_uWuoV8B)q_yAmk-%H?K<&(GgEH=qq{KL6DDZK&RQ}pJ ++zxKNQQjPIroK6WG08-K}IXmYw$VF!iC3Zd=qcFR?#uBeLlUQcWaVQW1rnvMgkp ++zjh@Ueyz$$eV+;6umY+7xU^+dt=7GSlKfX?R#slp8;q%qPZ^-fw@ajW&xlWqE5Td(N ++zh1L6K=|qPu;bb#lb*!DgP8n4Pb9qOyVQ@j)@-q&YKz^VxZsbH}9KNpgc>LDl`URV* ++zc+OnUB<)6(4sIg*#Dk}o(ResAuUB5!qY-)q9+rJ^q+u+yjV>FI-orSf&>jO$96YfMQzu ++zukK$LxJyakUbyw^!zJmQXKgdkUj-$?&|6n>>7$@S*+t@&rtP0i-Jk9goK!}VdQ<5+ ++z&*uGyY)W}jXvBVWHs*Vd*yz4vlsTs*wRkkrt@0urjm)W3g_&o~AZN1fzWsNw6|rfV ++zFF3;t(o*-C>2_u-erq2XNJm4}R>0LA4RphNA2eT*0(w2rP3x*@-jKDEjlI)k+{3nu ++zSY0+7v+%*1IQ3({4u6mR+p7S)XUP3OliBW(GYX$->Mb|~<%?cE6~~^md~Ylf*~7Is ++z8SpK1y4K>q$BahQv{W0LjDr7yWDbM`f$a*WLl~-|(Hg6T(crk|+xw{LwzIM-DjFnhtWg^P#70U)#8b~q8mG7HZWX)Hy ++zQlc>wQfS|RTOm|f|J@@rbLfy3D$|pri{-|ncp6&R8m5^71CL_)DcnTnfvT8)IRfZM ++z1vKPA{rtX~Ut|OI%*6jkA$=^Q8Q5(_9QqBt29tRQOsd}fyj>+P-|l0qy~PC(xnaooix)TJ;2!f| ++z85#AC=g)^xm$dP(ygB5dM<`8l;uE8_z$ ++zf@6{nqetkxJl97kRA$xVt=q@NAGO@3yeZl}Bh~+2{BIZOSU~BLDtf6$3tb=6F7reb ++z);HgBUPUSGW~|55m65p_%I+N1BeKC=Z&U^{UTN+3LiD(%i&^2uoV5~zodntYp;6D5 ++zn!>{g0ZU*5{(89_}3p&~Op(fPCf)72a7h ++z)lbIU3rYRhZ_{rxhmG!P49fpd6A(=&*F|eKG^gG_HqI&7$+q!#_J=}q$)?}ZSsPh) ++zAK6QDXAS}xA2JKHWS8|DLwb$1(EAFr1U#!bsVO0u0~P&94iS-Ev#S?juKf<#0+b3! ++zUAg{x4rs`@Kdt^>UUM-WFMu=_0@TaWMF28peX8fgc93`E(~5j#_!cl=AUi*oxlr(j ++zPaipvUE2<_EKiTzPmLHh|4a(IY{mK77&dTb-f_z3ORsP+Yv7>ySpH>(GV1$}&yj@He;zzdrKA;eH$2&ST37%$MdZCr~}3x3uUeI)tUB ++zCgJUWFo6yc1f1bPsB7yrTrSxtWd*yEc=W8AJj_7hjvWtbqULX6fLypPA}aF%3LY7FwlBxK`r2cUPgk=XYR4h)5vSwUaf$1_V#k56pa1I)Uj|9f%+sPt4v)Z8aMZcuEosZeWn(Bmy0E=l%2hQ ++z==!v1_$7sGEMjN0R5a|7Q9I0Gv@-Z ++z92x-%VW;iTcDlOwjBeq6*{?hACMLzM-*A+T%R3Z_d^Zqiq|@X-To<%e4s09GI&=1G ++z*OXL&$fkn67OPF;G(XetFDuN>reXnH5I_0Q1U+;psnw^d{MAvR`-Ivm)d&rn=%BMk ++zx#4=`2*b^dB9YH&RxU24kBR-iW~Rt-Q`RFyt7C22Bn)o@y;rfB*7`4#bBHONpdAw` ++z$dr>})=OPjN{ta_K^RyI-Kc=#0eVH?9;86m)rfpdihVv6`H%)B^$I`Syg})oKXanT ++z12;I}YH1!F>g7q+NJ6D*_URA5NImSkTz+Pkv{kVr(=?TWtOybj88uupdmvS`3RoUT ++zi`Rt5bUh+0N=%buvv#M@eH4c$3m4UU-XGn3&r4oX;_W8slD*SqZqw0CyIx$8E2ggH ++z7>qa76bGISceHBSFix_s?y!^L7i{Gsu)3_e^t{|WX6gcEIUv{KXPXxf*w^$&^s7sv ++zyG??z0kua!qWv4&{dS{6npD+svJy)wcrE?WaM02Yo<)SPCpo3B?$;J3&GVDx>PqQ% ++z?HHq~@5*a$JLX9aDpNu4hiTHRaWF`oNkY@GIzaH28$td6j6q~S ++zjvaR0|KoPLZDo+pf&2*r*3#;M;B|7vY7AnbY^qat;ItAUBiV&zs?(4VYyFAvYiX)v ++zB~jXWfIMk+TU_Jy4?B>=D`mbhv^*sOVMOa?Ut!a(5Tzy~bXWc*y{xzar0UQN*kTd2qH2lDDBX85BTKk;3%co&+3M7z=s7%{= ++zJU>kQkkFqO`{5MX?}m%}IaiT6)wtO~S5IEP4DqTas%qQmq3bEZU1W1t)?U5eeuaco ++zc`W-(?!8V2G`gHr ++zEMw+(-wtH7M-6%|;JHzhqO65_5=ka#p@Py;C$6umke9ZU?36w&HMZ2OE-PggJ#lFU ++zGLl8DuDi=V`CV_ux#P7aGe0pNA7`Zw9l5r94%E+TsRHbLpiq!$M(Q0!Wm80rDL97z ++zU7+swO{iae7~D0+sE8Vg3XQ|zvZEwfw5h_m6F#-v4_9WVeFM%pdNFGCTwC)33sjHw*>neMLlAxXIi71A(Qpa~`F?T8-DU>vZ(ck;4{s!ZX45 ++zkS%IKXkPqCWOg(@wLF0BA0CBETmFxxFOQ4q|Ng%-?K|3#8e2k=kkU30QkJr$Xc>gw ++zMAKec=1z+U6(u1xWhXTf?KM+TvNREmw9K?GqnT-$W}5B(UgPuq{ej1u-p%da^E&5w ++zp3mnwSNQ3GC3GQ@>Qnsa&MyJHW~O5QnzC2tR}?;zwtJT&W#3F7liLs^*}hAmT`O}? ++z48X2DA%Y)OmeN30#A4ep=CX_zUgKvuf7U{(@WFlH)5ekVmD^UTcqxsMsyDb$Lr3~X ++zrVIz(pZ%IwwlzmnzYFeO6^ ++z#=CV$s!vg4Pc@0;W}MuZFZ^1*$9Hy>LbK6dMS|AizaQu)y!kCBx*0($P|J^7&zufG ++z{*D95e>Lhij{+zp*YG<&?@}E+!8->{PKnLs2p1(wZ;GpZBx|tQ!X}<5fo~u7uvc`s ++zh}lr#t)NwRgO_Dz_c_pxuyQUV8@uzzch=g(Cr`CFqVoe)6gi257dDl8ONSajx@z}v ++zRcnjEGP2dSh`Bk%d&u2;NRSt@q|Ko=OP)AtX#b(hgq#I&1q!VnbCOc~sfZfWZPBdR ++z9&AGLnZuS~(3hcP!S$YsteX*l1t+AH3-`{H{i@A)aDL+p(I%_PZjIV=2(9puE> ++zYAy2$650mYByzi_x=G&_ErJ@JZu>KQFdyQM_7oi(^ef*UbSo{){Lk`%MT>}&jkeR4 ++zzqATCy{Grdi47qnVKpSmRQ{VjPm-TyL|S!Kuw!xo<8%s41@Hrb0owqqmFWYckAV*< ++z>$qU;+gZthv>7XXG2tO__FMj&?Eupaa`8&D-YD_0;({&T?|MD_&n?_1@oVr6>c;Kn ++z0kqkdWi)4x?!+bE4nm>*j~vHmwY&B|b3SDwGS^OHG(Ia$pO~Mi8LR(P6&`c69K5%+ ++zRDOBw3~pPV(fxf-V^Y-C?(#=8kc5hh$f&m+$~s@3_yQ8|s9J;7LZY)s0AJuQULaki ++zyr#4d>688hP_c}UKE`iI@?z4!V6jK1mcHPW+?*05s{gRybo=2E;ne%AyPN1AcUw)& ++z4tv}3 ++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 ++zMgGDsK5LnQ}SzZ!vvi5we ++z;jD@yRyAgKYlrjB*#AC-sV$Gv3IBb(1sPxY!3-_fZZkMoU9c&7(AAM*t0aa9Iw;I8 ++z-YJLPsa~nhM@QODV^aV2cxiT~gO#JefshV7M=>$@dabzVDkafP2c2r@qob{HRt^BY ++zM9dqK>TeqH+?p>*h-WJiUiZ%Da}vXvpv~778y_|j-xTGk3sfYB*J(*tez#&GAT&g>~?tk$o>lX_o%${@_jWmM=@55$>iErE!*q2jf+j)r`+I;+4!6z5?Iq+wsM4p-tmOs2_h+@3Ml>U8{%F5~goSQoGL{4(9uP@s ++zK2CLvM%)?QJ*9x;9qyZoy(+#rSRoQCiuGMDb7KbySZ)U|c2L^y ++z@r6)%@lX(yAJ{Z+&B+)y52=#CaTzG7vo9Z`ynp}L3}U)e>L0rtU7VCs5M7yOqWp}H ++zAX5s}b3(E&9bEv47#lx+(N0HP?DTf*uqL$33J>(SaXoeTqoI=gN*q(50w;94HH<6G ++z5%uK+&g}HFUlgh_KO;yaZnw*Mx?9Me0&!whagH|x+K1=pYUE;S08hEkNLeFcOXB-9@gIg!;eBOEwqoHWp35j$Uq8R;U4FD1UlPl=f!C*D2bG_MeYt24DKfCSHDr%C+LFEs!x~5-2qr`_ ++z?g!_^+-12nkt|gDGpLH76 ++zi{GEpfjllK1uqUZq?I>xfAha`r6m^L52t?7fnJ1GGgH%dE0Nabn|j68Ouie@sl&GnOGletR%9B6CshOq>3)lX_cfB ++zh9Y(lWOz91?~G`anoY~xo2aBvUu=UL-A&NJ)0WC(eJLpLJ>U8~I`JH!ZnYVf_M(qJVPrN9;N#28>0I ++z))QxQKDyTLM71Mu(^YF~!xpp)4ZqO>>*QZneVFn|!OLDZm7n3<^yr ++zc%w_FXKsk?xh8_T64Gr-FY7rAXWj+=vx{X_!bm|bevcIfK(igt$hu&07OF!f^XTAI ++zz_~_H^R?%XtYMo7(pbphtzxWxH!pzwhmTSv@}C}!kbB2a_)zoNgoqeU9N4}p02OR@ ++zlXGNK)kT!uii$#rX%}vb>8&?a4jr$!*@E_b2^FCFRO@+ZId|;tY*=6YN96x%N{(#^aY0=29IC?hlPxy|@DN>K7wTlN=?m`_5jo1>seB ++z1?4tH{R_sPQkoj!pa7JP?h+F7DodY;gCy4PmM%Sk!?S9>iY%ox^C%l+|7-IDr&hK( ++ze6nA{<@>NlL)_R!&l%-@YG;|FTjAK(-iGNZ-B=70UK-=pT6XEZi1UWC?VI7)WULn_ ++z#uplkN?s!;o_7^~1jkYCkh*%0{3w!@xgz7Dd6V1E06tt%lRt~`p0CsCF_`;`S72gO ++zT7ayEqLSKWDb~|Hy$Vd~73sJ~wCMh_42;9sLRz(B8MbgY8-~GD+3sCIszs2!K ++zjKd0O)~y#O%fL~m`GNSp&ZO<vJrP%=kn^2Cf%lI$LHQLVO+lj$Dvek&0yIfk=>OdS~ ++z2LCebYAHp(VeJMO@ur?W27NDs7(HulvfT7K@)FvbJB6*c&}we#heOFv_%n3BU#!F? ++zvKkk2y+zb7VBj}ih@06ezC_2*&1#E1es^%_tSDdD={u95faabx*)VC_C>bm@Fv2$t ++zj`xwLU_zA(l<*C_S|`9!IM#cqs)x2iFryCV_q42}s{$`CNA;O^6Uh}^*fVq+e-U8K6(r1z7?EU ++zw-(8{K#VVCoM!+MrhzPva~T_!O2fs0##@F0d;l^pqhsA>T?im)cKvY{WaNBxAt*`} ++z#o^*}?X+FeK9KlHOwPJ0JYAHYj1pdP$G$M6!VaoQ@xFqvKUn%l9j4wrhSD&2>J?nU ++zb}EU?-hn#lgI$Ge8-O!0{UDIKdD;NvjWpW>i16=9Xew~CBwTV+B>S_O*9{81?7~2} ++z$u5Yq`hIcz-NDgY7{9Hou$r{df{5j_H{n ++z7rl5bw%kxyT=+Q>J%(PcqiQ_6kT1vm-6vZ0>brigP2sn0qeqR~72JY-mi`S#vUQ;= ++zt?vIVtKUKHpHl3HPEO8IF2EM3%Ejg$RHS<3QU29I%pdiA=1kIR!8%)z(o79NQWU93 ++zdv_&af=FDqg;Lv-Dh#828)x_W3N&ird;CB#wua!A+mQCXYB#6BceYPb9>84KCY=h) ++zwu>y!eEy)J_c>2|+&zqF1keNh&v^(mTn3C|}jr=tZGvqxe?rJJxNXm4#6ot6O#p1F1_u~) ++zW%yRmgfSFhtJa=HmAq!lWBIrTB-NN*{ ++zwcve_Q?5-IkBBAU8pMfTRNC*uVMEPXSwEyD$+NN8H8Up8PyTb-d)j#T-iV1&c!m1S ++zTqsMlQG4dy`uVP3#4l!$s%oT*jy~>|y8MYM6O6~?EcSxh);qRJ1vAD=?eF~`VC%}x ++zM-d0HM(q^&bR_SYSE$>^X*I6x+`{@~0BpuVziPDzS%I}>zW8!L^AGij-L;6Z!egM_!90Qldt0-5p}DBSlHhqfG-r4Sf*zTR ++zmEJhtZkL`J+iO412;wuc?e2Y;b9oT*aQ7%1q ++z8=qh}#0dQ~okTadJ ++zGqgq0=RjF9?N362TW9B&@IAKbpfK%udwF86kOiZecRj3wKb5x=F9-|aM#0n`(WL}(1TM(sT6A?b;1gvX2ntV ++z(6eVgL8t}Fe;cyW-TU7iR7eWb_PBw}^9_3XuQ?WItbd$!S$oCHUIYgmE1hbG+?>Jl4GPP?RJ5-ClUAn3pIVxNn`K1#}2j3p!`rd#8%a|NA?6l>o7ZFeYd ++zO8Qc8VsVsbUy>B(Yx9cMF%_R{$RnOKP9=&g?B0!{?q!tIO)oE|!aADb)bGIvcHQN3 ++zc3{EFEsTnQFDGUs7#;mFwZS+K`m58N1 ++zCDKA=rk0#|Ewm?IOF&T^h0ViD4x*lU5-L+`v;&Rno3o?Si}HzzO;gCLGw}#6xT93i0nNR3B8TDxdCYXkNHyHVi+-XnF{P15yUH?0 ++ziT#5m>1u=;I_O`>u08k~z~WR&n=>bc{M%n|krHI^9(>-QaAvmCLHZUT#V^A`6=aXA ++z8@Nak6T9c^0HG1tHMV+8XKd?>by7+h7sjQmWZpN;+Wgk-cJoWiH>HRy!M=)@a~vfYpxC1@(hW$iMD{V7ewPu|V8Q@&aa ++zlL@H*g6F%Nfc!k0@v)mG(N=({7_=ZMSOTzPQ2E?Kao-ATH_w18sv;1v3hheFInT~) ++zn~w6V+I#`RN!gg7d1mRMbte(e95q7YLwj*<=|~ScDP)k%CV7Ns_ZEzv66apc-C2Q> ++z=1o8G<=9MbEkJtIA=qfEVGt5%Y>uXym+wIZzwT?H8B860YXaVcDT)a8UVc@SV)-p= ++zVICw6A%a1H`UNNC#P^vNn%zs6?ZZ~9s`M7dUMcX|I|;1 ++z*T2&&p)6*)9aRyVt&ZxUfdb3;0P1mM55w9FKxJ$WD}c-};NwY4rpum-CjCH9J1LyB ++zmlbU3XYhytUB}*e@M;_J!Hxi@9QMTCnthqm{^Y~QDV3iUh}(7FtUYviv(1U4Kdn!A ++zMZekL`&p+T=Cv<{AF4*&JLG6rs(%QoMHQHv^u*Vzl>aumX1sF+8;UkW*!wGyx+jqc ++z{H^kXy;6Y@m106=fT@~(j8|geaw-W{uhpkwES(6E|58hKC81ezSSxYR4U*_8R=AfER8Zli` ++z;nFI&?;dOHUuu-zU}F=fA8$k@zS5t3dlqMGfG9+K=w1a$&4MK_|E{3CIg`gQ50{+h ++zigmgaE-0ehI!=?>`Is_o}b{QfY2V}}~K)L`>1kReA)U&YdQ9onh ++zfUn5r(^6jT%_B5dPu|0KjiQ>%l)7v`&n9`CInBxb=ljiyCGf&`F23uYPK1Vh4(b63 ++zkSgP1e6S6qFFXVAVFv$NX7HfNfbXmZH}5>1lgA}r2OkEn%D&Hi&I%X;c>5ywG6TWm ++zMLAmv%L+!?x3`~N3*}c?uUmBpy2w08e5DKNXvq(3Vm^tsjywJO%^MX?)RD((kd?HB ++z_Vit)pgnq%0JTgqsuKSSx7!LjZMjP@bI@hW)STLs`WG2m1j32o7EWjFo_ ++zG3mV5Z7|X4sCkl=C(rvK5_Qp)hDfoh7$jd2ZgC*O0m_=STRNX;X7l@C+OQt#Ar~26 ++zN~EY2AW502`|j+&hqh0uaC2H1T;RR-BFh*RXI_!7H40;>fXYL*QZb~OGYU+KBG;VA ++zGWR%W_w=Fs9oJWPw3Wnyr!RWaOt ++z_&*EjH@u+iiXduc%0f}RWeQJd7IpO6OYE9+Oy-~Za5J*MCOG^jKJgd$TeR+xh+W#`ONlIvtUy`|Y{%#1-|& ++z{-A`IhN+B{yA8b2CSD6S>fm0f ++zl0JJ-hH1Z8fc`%R8gr}L{|LiwUN;j&T@7J_b?C-q+=;4CeI3XwYx6+X;p277S0;R0 ++z3$4d4y7y>2E%7#XhOqtnz(80>R4osucA;^&8W#IR$C>B%EdTFJjM~ZF3J_%>ivOB; ++zlB-m%*)tC7gj))8r;u*r^&GF-{cgJ@np~3BC}Pvckr!0hDRSh*Im=c|JlOLnA0>cO ++z261X!C6rX2icu0gt{IRh678utsD+}-1l1Az8+bq@ALofUtua_J;_%yE$`m{h@gQ9i ++z=6g<+a(eiD%K@&{$3SU#Z8NR$M6llerpvMa`Kqt_zKDan{(f-LYmFRVmG_52&z|sf ++zqCbmR75-(Ch&*mDS_?VsLUFaX>N7E#o(zM;KuSewifx5(c=vrLIO ++z$YROU#nWjJ^2@c_r(nqAHO_ZEsUES<$(7%~YsXfjXaCtrY3q8IQ{f4(7fG4t1;}&5 ++z+cRq%b$v54M&B!tD&FV<`w*3(ySpL4bti6Js(KQOq{h{U#1{Hu6%#a9-zk?Vq(kB_ ++zN8Rs2(!hS8+zFi^*yoaBt+F)YmLj~)2UcbRlC}aZ_U;!}H1hP(VifO&JWA@dRIEuQ ++zxgY6mibDsBy?;fEYeJ%7b!i)jFpz}C1z}*KiVp}I@tsLwnFt6&&t=uhnt=M7#ZHUO ++z|1bmZOsQ59*(oQ*7XJ*Z5SG$#&s0l_PTeGDI#2!9NQco>$`WP2KS1X^J?B~y?b+%9by~Jl3RnfK!rZl$vz<7{ ++z$4qg++Nw*Y%iu){)Dy;0G?ci%j}!O|KhR_bZ_iJv`aBRF!~)P?_q9LyF)?~(mqf5< ++zRRtemRQ4dTs`a!Z?!^5;s$&&b+&}EUN+5W(ehn*VBH+-}q4LG7(AITp(HrH&;K)sF ++zNiR>bk&^-&I1WT{umo6Nbb}=`5Rytn_UdNh`-Nb(5&ZbiU&bAW1Y{2bXfERLlTOE? ++zGdE7GFhwD|FQk4&i%lAMZi%et&md`;>>EkbAb9_Qqz+OdnmEdL3vQq&FwM~d{|l>C ++zp)G(r1mS@KJk^{`#1VvjqE!M~n8p&~vM$oyS{OUFib+ZN34eCD4Ftw5D!J` ++zr0Iv%`VXrO<7$?;Qw%rM9$328NZj;jIX$B4uUzlTk~?h>vX}^)>c|O>z|o&F{(tvN ++zlQkW`a^6-l9`@qC-y)%~uR31Ks15$C)v>OSfARNt@HsGgt-wA7gtUy6dHf^$u4@yr ++zXzUMV`}EH)m-&fb_r4k#Wb?j6FL&SGJbZX%Nq1jHQoPn)>st7LImBI+C7c=<0Mk-k ++z<5KwSD6++nIYr6hPGKC8^j#~Jrot{G8Gnj|I5T%LCNalKm8gx93{FYYdsa{znO;BV ++zf~7E6hGa$8!@U1)FvX_J^7xUAi`@nqJ`bQubu<}E{wmg ++zi6Z8>+%FmpsYR$Z!FJargYNGzN|hL`Xi{`;XKV1d$>7v%Zh6)-`bg`2;_Es~vDcH7Xg@~zo`uk+9B=vHPZ>aR^%||F4%OC?>hm})!xVkEbJ&Ps ++ztHGK)^ZI$mRD>JlP@p2gDC|v1TThv*2^3=XLX&n^-%pHAv#laKDI-suLEOszIV(_=$L(atI$sI04$TA>g;gshWUQ{ZPO)(!sL ++zJgyZ1M3#kZ6f-LMJ;aVGsf7d-bwP%lK&@Yxbz$XJ)NZO*Dq6aOibZoxek$ugfRU;4 ++zfz7`IjAbI8ERL7Q4r7N#M}<=p#C)Pr6MgF1hhI*I(E@W1et&G()mr&6#^V!ThS#Fo ++z8V5@!js@TP=vcCvdHBuD=JN^yh89=rsM%Q!S?7~=9Po2MWH;ISv4nD4Twe*tnzCtM ++zCV|)xXVVRvHvj3!2GfJE9`mmZ8>eNrH2baha29pHI7!+W#0sI~+^ ++zy#_$EZgwKb!yf_LCERVVYA^r(BYg(Co+(;gz|Qno3!Q`Ja7EjuRROuso6PCpG5@>| ++zy>og|u*KIfHM?zB5=I6~PhQxkqm+{vWj4IWk&p0MJ^st_;d4hP6S1<^UI5LEu}--hFU5~Z)IZL(ZaJO$Z2J@ ++zR3AlOl&^v>rEJwDx8R3S?0wHt2ut_1kruh=;?+Gq)VxMRCo)ztJEAxJeh>PMH%q_R ++zf0rP>(fs;dYkzKTuum^s&R4q@&85^dS ++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 ++zy{D1scq;Hw$m5P{V=7 ++zA1?Det%2&4@09R7bd7W38ow|Fn)kbL2-+Yo)?e3!NtZf0N|<*to1xLdXc0HUHQfgq ++zrO0#5(c-Dm1G{Xcue(gDWS+0$utxD`JI7URKE^Ju5MJFX|in0!}*4nf{ ++zfePtBl0(pMAch`w0Dgsk{-Qp)_{G31$e5K`7?#lSNhED>2^BJJn{xCm=Z`ZTE;$p_ ++z;}05B5L0`kbGI<7;6@4{=EyR6P9FZl>o%FsJ|HOiYIKOq;u}mC0ilcuv^wt>)3R?1 ++zo`^iqWVZlcjfTLNPTnf!BpDI^3~aYgTsc}LXLuQT^(0Po&gY!u8v5kr%JmAwLl)|@ ++zhN*jp)Km8uJWmV$#w_rLbaW?EOoDA4rIz_$pX?g0fFg^G{ySy2U@Q%eRlz!^UH-H_>OA1@=OL_-R!R~64sk|5UaMghckVli ++zh=Ji{QfYLvWG!@X!6aZmkpT61V6FPg6KMdCEJq0>dU%mn$^#xP`sA_<12K@;5Kjnc%kfzHAb$GIpvRP(6Nc=w%gDcYy%;_x8CES`4Ow59q ++z#kBG7)dP0Nafi(fho1<0vV)(+d942u;QS;yK06Y)LiI2oD_@f9K675iORN9eN-~<+fwKWw!F7Pk#p9*Lh9L!}-?P|fw+U!K&{KWv@ ++z1gNmxOkk=&D$mGHd?oN&nT(x{D+XIDdNM;`6=1=5an)Yu7}<) ++zXRWih0>6yX{c5jyiC9FVl4vKbMV|sE)Q+nNT70>p$#L=q;J0}`$XPD+76FrnJrMJd ++zyhnzzY7Gj3n*g*^`mWDtjGb@s^gvky27H}^-~o+Z2bPfoJ$S8o%LR-q@n73H58zU* ++zBT!`Iq|9e6@d0(`@gPkB^oXE-C=)b+ou-@lPbBsMEuz+r49ATA?GA_B9tK2a{bZR~ ++zx2|w&K0=Y`giL#md&_yAQf|N2#LderbZ14cP9z=G_@iRdQ?Xc`{SD=4m-_O>>AP#z ++z120WC=5GI#GnEpya_L9%dII(WnbP^R7tw^U*Ll6%2Z6tL*dq2!0bg+eU!k3^v|5X( ++znYeTxAds#rzyOjNf~kW>hB+I*ao86wkugkwY_GWcHw&C=ZP~;IkeXO{^QF>_g2J|T ++z)Am3YV|;;f^q`ZmulWuX(ekhF;=Bz0(H}Qh{@;W5n1U4Hr6^Wkkk#tYo`D8s(XMjxoXWnqs}uL ++zaPoj1%$wL`7Pz4-&tbrJfx!#yc@Xgp7Izx{p$`I(VL^<@ZZt?o2L%S)ierCxVeMp} ++z9xeOVKe$)(KZISpIx2~i3+c1#bJ4iG0nA0&Ok6ykie3&Is6ust>`Q$*${Xx*&sFZx ++zfl5T9LFO%EHeXd@-zkem-_nsPcn*(N=`nT=+ ++z&RDQ}E*}pGlM0K2B}4@L0FN3NdtX=L-ZsFsXP${q68p# ++zTy8)z|Kn0r>lEuW>#mFnw_VSRN--TzSve-R_=eWWV-DvZ-GKNT;K_r5WTf|()11;Q ++z2W&q`8YHFi<$@*aDrjyVmh1`uaX`nfA*kz++>s@Xx__?u5Xq>ktXu%aSf=1z1#~8! ++z3Y^CxU@tTgOJsH=Gj49pT$dHQ)pBSw55OjXQGI0D3mW|CReF?p)M ++zT(3^MKuA^?M;FxZdYrb%*f@_Xf7fw7^*SE4KO~pAK?kZk+;Fm6W{HroOO>BfBy%sx ++z4U|#o0zX=;L&+I(0ueb{DZQ00*17{;sXiy1T!C$rl@VZLAN?cC2vo){DNri~GGEmL ++zZq795nmOn?RGms)(x_-i|H9 ++z8}^qUi3ufLQN_#?zL|OLN06{hqg%$Wp_#VU(qSSjU&3hZ0*-!uBZCcqAkYogut)Pj ++zIL--|h$>vZkO7>E^`$Uw;nZ4Y*>UeYh#0sZm8&({H~LUm$45wu7yfoSj+@B+KcRJO%~f} ++z9+Vc#i-d*l9_gqNmxRG7yr1*J;3GnHqG270GWY6K4qzD^)(-Kj0ZgMnanv9(nHzwW ++z6S9~>HAwO#Gif&{Il?t;#5Vll80eQfaG-4Ut-$UCgp{*jk+`o+bbutY&47R>k*?0a ++zp@C>~fMZ(~v5yHmN$I3^SZzYJPOVNWUOB@2==AsnB78fO769yA*|U=`pWp(FC8cxf ++zHriLHr^Zh+k;tn=MLT-f1FMp*v^##!?{|it%w^fCB~DP>FO#FDY8{$qgo}N~HzlF6mOL)#8U;Sj ++zc*6B`077G{|0(TtAxOG3gkn4NT+E*pU78#;UjW}96Ha~c)8k_vf9B5@p=B%lcUSBDaln~+_@Kg>=rLGR8zzym)yIG60$^D+k_-4k$e~tg^E^0Mk`WHQmHUA ++zS@I>zCnfEJ780hSh?qf<7E463%vefHnX!x+V`lFET%X_n^=h*;?!52&ea>^9=Q-!r ++z&AfSwZuz@6Zgm-x(|0dVQ6Dw%IKSn^TmG4ls`Ee-!+vsy&7_aEW~h*fH2P9Ol-ksI ++z_m5$DGW4ureIdat0LJ$Jn``#blMt_7A=|ccQ3c^bq1LD(ub!Xl<-z_WOA)7=B7NR# ++z=d-_g7e+Dv{CzDev9$a<@#aBW>H1xlP9D?v^y<#9RCd&tdxQ(hg>W}URUbqz7w4>} ++zkbSF6p02E8+CxPK8+swXn+u*>tQ7NaJ4B^UU>rx%Y(x$7&j^TZ?;zl$$B^vD@*wlf ++z*lPS0o&*@A_Pg;MiM&YE=0e(Q*V3Q{aW!SuZ@Xd6nK}T%-BREPlLPx^RTUhSMKgzU ++zpo@mC9DcZt7+H%YQLV ++zH#wXm#VdaI&3@p>WoGvXN#MitoX;L7Ux#ac;?D7<$*+$7pSqNfp7*MdWg4>~I ++z4gBbke5QpXf+`k&8*m{P5%hfb$jKNWJ{ZJY>}d71K?zYz-HERuw4Mdhq-z*Dq+%qW ++z_RNfsI312ylY>5ZO91J04<|nG(G|_X>g*;{B(Qgf2Z8CHT(LgGB8Il(C;HuZ=hS59 ++ziL)lC?GDVbDx#_sT8XZ-2;Rx!&-siw$iT@7k5A8+Kux!=-CIw~d?%olE4 ++zFt0CRASYBf^$>09tvOCZ$9|rg>{edv0yYz6n!5K?m^Rjm!l59rCW>K$etaM(eZb#)) ++zs~zjQPKgh<{G@lLQPZl`8R@)rm(Q)9F}8NKYdXXr7kPY?Tafk56oFB5%xBL_eO#>q ++z5`5`pQ_}aNYCl<)fG$k ++zS_@xYkfcZ+yV6rvrWQR=Kc{pvu~&h4NN>bj%cjGjhWj|3*ZdLa5Bp!Dv&nK# ++zkJYJ@3M{2T)M@|NtgIkX>}}mMpo)y%UEHpXtpEG9TlAgZ5Ef;m)jnIL(twwfYFFKw ++znGO^iCjspJwoon&Inv=O0ljp_!)Krht-?&-z~iWh0FU)EU93f)0`OCrAp*5{xlM67 ++zIi~+!>7V7r=)n_wPV|g3*=Zs-HW* ++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 ++zpt3}g<(PSSD2=( ++zf1$+=)v8~~SblRw+LbhRRrrVQnh}nC3$-}bYR8gtezw*?j0p@(C@1X<%ii0f6k=8? ++zBUC|;Eh$BU?wf?epa{N^ln4x2=P0ODh%O5)(oJ*@TGi3B)A!*P#^)I2Hok?gmBKNu ++z-aosfvuTW2%YzdN63geS`PZ7WFPkFOaw2&|0+YZDPou=A{1?@9o9s#huLh4AP(4%>AdLV{khktx*)4Jt3Ph55z&l@HbuK2JIo`-l3J+prQuL7f^$+~H=K?@f<%E(>S ++zou?8nbRoD~e)GDLt*}s;+Z@X#C>8B;$o9$}dnuJhekyb#?d3FX(?Sm8B($AKv`h>F ++zGv0a7z_TnH?{n_P`qSc_I+9G@j3RK(J~FT*#A#mCtO%pCn%%Er@*(iP(j+>>Anc1z ++zpf$#At-9ZSSCDAg%cN#c6~&xs0GtA&y)cDMqn?W91g1p ++zVzNc2mf`Y<=zz$$$B_^0=0ai{0cqWSwPjGc29jhO5#M*bIX;~suwO{uA&%E|pyg`3;9 ++zC)72&o1TsRZEy4q%GHrGYN(xIJ?qxw7C11P ++z43rE_{#}^cA^>w|WG!9?R-uZ^)b8Zi_Tzm^q0JN~%!G?cRgjd|c7jGj--;37mJ3wC ++z{&_saqEz(aCG&<;&i^t_D=JY!Jvak^6uy{sl89WY(eGE`8zmgbguA-YcXvUlPS1^r{aBjfly ++zrPx-D-OG$)r4~bSTCYU$qo7(oOeg6ai8uaskucZy_p-a~!={Tb4TiB5`4YvcHB;(S ++zILFQ?Z(Gp;pXkrs0zv1|JD0XUkrK6i^AzY?e!9e@o-xAjsKcGNSYx0}9kS ++zXkD1}3{uo3F{v1p%d{VBmW6ujytug_1;7$>C-4TT@TMaG>5y@v`<6GB3s0H!Uyl0l ++ztKVYRWZv6_)aNHQkNnA9kW*xeWSqizUzBn(&aU+}ZC74Z_1th+2jrJhmtTH7x ++z*X^lOwn4#7L%~3>$yAb?pVz81sm1#HEoHCGyj;K5Qd{+;?;4H1C)5s1jB_ ++zAmm(qfsc!M&d*#ZCL{>}kFK`xuHG>Ne3WC>vOGk}T2-j1tCAW|qPS%*78nZmIUmnI ++zae0!NEw@QJThfx%qVsZ58vW5cY?^fC)#}4c`Ie}Gssls~t{Q_!+(TnA>G8EWnvRk3 ++zT6!2c2-57sU8E1Rl`K$gv22UUU6=(3oO=&2Qm1Pe{s2uYmg-Rn#09XvT>Nnir ++z)EjinbW#p5*b?R|%=u4zwD~0vb^p`5WPprT#P&-uwMr7eLg$T2$0#1`_vAHS|8869 ++z-pbv*+jE8Ey<63f$Rna!W^KY_e-|^p76W*W9z}1k@(|a~FQ1pb{cHE&v*ED~Wr*o& ++zN9zUi&O6~+bkZjy79cs?{f+6LuUWMEwR(s2X87h0HS95++A3V(^ewU_XL*EO_^|EO4)O@}z~6-cAQMhD?Ibep_TnId!7zGyHzMH%6s~+2!t>d3hM5Jx`gEXSh@+u ++zZgcHB{v}`r1v~-#x`N;&IrMA}yOTv#NKLGFKAgQXw;wMhG}M(-NsyBsjq^Smt-|0Z ++z3OB{%IJN|PTSjkp;I5&v*usTIXpW%wMe|M~>u_KMpV!c)DS3Qa9L~VwxOvgUPESmT ++z@7@UA4)n|;%;GHYFJK!0R2=vd?lc39Y~=z`*~W@w2{liPA0M|=tm7rJgmDy@1cQGx ++z`mm)-vH7C>Kg_@H!(k)QKLWxOpoOq8pwIz6WFc%LaC-uuIT!Odd%+m?!-X{0_Im)s ++z!@!YHlV%A%x{^QO6NFKVhTfK$I6UNGl$MQa>AaYs`|@i172EKA>6H%a`JIN3uPXgY ++zxcYEr72>?t0?E&g!b4*%0c$;LiKa ++z(>Gnczl}zId<2^}G<@~E*fsY6+501dgNSzMdpNo8RBTO7>T5QV)sH>hfb)Bjd<2H( ++zEMVZZSk9kT{6> ++zCR1iZ!$RieJ`KZuHiHK<;{P38^`1gr6F^S7q)v&(J&)c|@cI=r27=9=p1NlY)3vd? ++z0q0h4;xN>-^q0U3+0?rBtVHRc?@rlI(@I?Qmw_)H}n{N|2q%ukg|gf@o!bI8-)VQ?EH ++z&CNz={s6^{oaly*Xc2~_a^;-GAbJq;)utA;E05x0q`Hb>JdkbVA5WY_odH+ytY;Hl ++z^}?ywmI<-)bYxH3R+@KFLx=J3jdK|L5Jidko2rrI#LqFg8v ++z{SD}YmWb0R-^msl4*mYFiv0Q4)Br&_lM_dJ&tKg2wn_sSjp-RhvLz6~UIKIxY$Wi5 ++z{@1?>qb|9`t8AJQoQ^VVur9Ela}z?sv2p>guR2H?QB&EYD*_py#R`rgx}tw)!-i)o ++zdjGvs^*io6O*Ud#LaRm2a_E~lAzi9W$!T;NFhKGRFSTH(=DThXdT>wjXJ=0%m^5)ifZ;&=y*N`+QN_ ++z>QdCL@k?i10}otOX(H>h=%=?BuQA1O?Nes$=JH$KAm-Ud-HvyI&b?T^W&PV};5Is|(@Y9>dL7mP_A+ ++z<0@8j-N%DYs~BGIGdZe6;Z-0C3le;Gq$MOrDN}UMzp+PF_uoVUeU&?{VN#VxD21p6yI|f79J!^%*bo{9lY(FU ++zgSYz!FWBgJiQm*&*ctQ@fDOf{Z6h{p0*i*JY#2@)2=vx{h=fO>6vZwIs&Q;;O{F{L ++z5~}=P42k|QP-~2>_UHf^r%zVb+T)d7{^9`rHpXQG&Vp}-VTAQ!m|)e5ohgj+SO;u8 ++zwl(v93(de)!sG?Np8lIW{95^QurxP3_<8w~@+$LrRcBsVDp3xX)hW;03l7XdTrYc|~*F07yYW+DZu62pUs0!O~XPv#&sWn ++zWx^H-)3IdeY+(*3N4*7H3~mpRg^}?khep>oF7jkr-1o7vzh~5|k_Ib)+1#LV|M;qK$m|-F|^*Nfg*I6tQcC6AbeMK_vyrYKH*a ++zweQ3R%PS#f1F;R(2rBgXEy2U?o@)cTy9u+>Vum(6cr=-fQ^H`+OJM{LqrqA88tP59 ++z@cx{MT95BvOi-J7+)q6Z%)m0#R7*Q11=u=Q!SL0-PWq;`Q7}LRYK1oeC=Bz)3@iTy ++z6fh@%hw1-dG_dIbuyUMvRm+9-4hHdUSkIcb*TeZC^6H{=PYqV&OAJe6hYmZ3HW@15 ++zzk@vjyAmUVp$85dnFp(lwuY*UZV+hne+0aaYN6@r(Kt{08YhmzG20slxXwlL-xAJK ++z&buU#ma~{rmfsWmg*rG%7)w~E4~*mAa&&PfsF9MB=fq$30@5vqvX2k>1B ++z5;uGb4$Qb!UFtc~6C2w9<(dk}kY!Ji{~?mYT)~Ny=+Dhe`X$VluNnP<;Br+%c*?Ek ++z({F#I&=vQ*;_PwvgBNDFzS-P!T8Pg>WW)2`>Q4k+(e}u%v*KpP#&Ff-S?voJ ++zuP?~EB7u4qD{96q_nrxa!CxUTSRHR@DLu71vADjw)2Y)Ly;2+rrtDWka@dK8V|K&) ++zum_rVKuf{``0+!;`L0Cpt?%faMOl-tEmQ*c4A_n&?fcRVREeZe};D!St ++z1j5t+SPqUXgh3sVR}$(@f>H37*gf( ++z!2~v(jR_1c7M;wc=F0GjxrrlS9xP|Fg;Dv~yv8{QkPHb5udS=LeKXGL;ub|OdxoFg ++zY)|{=qXvg2%hJ+MC>E)@dQSG%QSPlAlL^9ErEOtHm>^z1iWFrT-i&BF!>b@Hy*EWV ++zz|gUG#m>f)0_XoXU`v{uYK-p&knpIS+6}RJ ++zko1alV4~6o28wdM?o4)f&{&aKP}-LH(S0K)%*_PPhSs$Y3xuAQV>Lj;<6;?d ++z2JhLpx!@aw(4+?O#$noZZjFO3zvOI3GYmuYVMh*)`a)QM^YlrPQZEO8Wlikt}h{nfSa&wdM^ ++za}AfT?AMVedht)!)6ThSKL6@*;0S#|!OzmY5Qkk!(x*~^PM?1{Ed2;8o&djg+&^OMW+dC$S ++z3R?2j{?WJk?uJMek4Fya>iPWrtm0(b_fcmt8OQw7?!3CQB~aSx=}c9{n^Y#gE2F5g ++zmT*R4X_~BxQ}BgXC;78nj>-$h8v5kr%RGL~nr|G%_AM0j2!*c7BH{$NN{3I}PCFEV ++zMww5pgFaj%SHZ(HSA)cjIF(xW{M}q$Xy8l8mFIi#dvZIx1YteR#`pxR7NB~Pih)R_ ++z*Aj{dHAH{%*9@bYWFZRCj~ol;}bc3>E`F@_xu5(8<7K7cyT#heqT7eHH$r&3^#N^|ET0v<5XL4K1&XydG&>FR*H{07_MT-e{QAjiCx ++z_@o{d=SO;Ta{C&XgNeP5XC6L2Ivua#iI29=KR22Zb%#A%-Ss_V<{!d|I}axJ|2q5o ++ziqm!q+MOU2(o2u6b$Rsq{HqqT8v^L^34 ++z!15tmr&v3@9ycqRYvKyh`k-Vv9Kn+U ++zbAcVZtO$mneAHMqvj*BMAtFJPQG^Y2PSEbSklf}h@U{r}SyjIE+(<=2Yl7vmBcb{q ++zHe~&X+?zT2DrJ=_o0)G*QcFS2+O0)DR{6rdV=8c?+&zKyh8Tu6t>_Z=8UufF0O&mV ++z+d+-#Tzp@A+4xb|&v_OzUDx1^V9}6yWTij8AI(+_#=OQd_+V&&FAEdr^SzC-9XH4H ++z>{S}nxqc<-SyV}NZ<+5pv1QRrm)H8T4tnRFkK`==o#3Iz(rR*tq^-2ixrEt7?Yih* ++z9Wn8u2RRWKxc`=Pc0}BZL(*JnU5ecsqG4#`Hv)?=eCv}%2ts0K;W;LvNWThw{@{kb ++zMGXgytXu5yYHU=COO@r?)(SoQ#j~N}OQBTkOvj_@KQ}%JXpo9^@ixicv0Ao+yzvfY ++z-Ok`ac0|>XF}{|ZznM7rY>xQQgaCIJdOKqAY@2q2eEXgJ>@nBg#7hWo{^-tj`p)zm ++z!z~U8m*jZ*qZiw+=I_k+@uuYjHc;*BuVOKQym)+;?{(u$569S_?!fk8d-+XVJ;84i ++ze)1$`!d8RN<;``*hJpg&^K+@-9HbsN(G6SwneZxsba4`LyB)g|E{e+Xy2C@uI*4)T ++z@>XN|Qg~h&H$9O@50QhpSLnW93JQO6SnW&Zx5hF4#r<0s6TX_Mx1I6es|;7?pg3^V ++zL>UkQWaT8s^28FzH?TR-I~swVaG2MO!SmH2o#Bh{y8J}1zt4_WUMH}Z3g%m+HEHq~ ++z8XFil*T0~#3ln9+FL ++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 ++zqFL7L?qMRLt5^2xbME}_B9gPj3x~IpgsY`l ++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 ++z3c4ahYT89*vnGvpfOax ++z-5s1J;j#|mD(=HO-oQBTZ$-3P5G}FX;&i#iO${@2oPryYG)b<+33OE$IzQzWXFat) ++zkLBsNN31@RX$z3qb2~SrslFQ)WZz^xjY;(A0s04uMqpdG5%nMdtcs;RhJQow{J@mO ++zr;^L}$k9*2ooe_1TN9p9IVUL&metTa!KS=u#$53CFM#an45}{Kyx@e$RWTW!X9L8} ++zYdG&^!=mfPs?g_Y4MyLx8uWF1I{Wc>iCg9;IAVjt_fYkuz&0T8A|xL5G?ov%D*VvE ++ziHI7a9+*{R$rkyj0%ZN{O|L ++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 ++z1idYTY8YypJbT#E-edKiJBiC&`4C} ++z1jPD5?piQh*VB65&PGuLRtj7 ++zRx9Z@x$Yre>Wt1lY2(&Du0N;!YS>@)?=OrpO6(fSyCz*AV@H=6P#ANZHFj{GzX(Hc ++zmx?)KgYLo9YEY(<=XLKIqv+Ai)5ffDMc%FFhX*3W^8+@?XKzfEQhIw6xX9Eix2JCC ++zMkR?X>l=yjf;qIj86bXwVhaSc`W*y7-W6i2UMCQv16pSR1}<1KhienP$19DO3_>|5 ++zfki)84deTtWN26&n6t#LkS`xJ8C?_tDAggjx(@*p0m`gHXpldMEzruEmu<{%*x%QcGpn5#U3%AXB3KGY`@B1%MctJ_LLjfx&-yJUFU<1LHbI`?V*-i;1N=i+9qsTon ++zRZ`=Q51piQ6|NWPH<#;>zW_jystNu=vTmus@0yFfC1KkqYKSQvO{;T@4pR;d-*Fdhc-WxAuBRr2gNfiF*Tl%FvR_BF0I ++zTJOWSWp;AKov>dIUB>MOzCP3XYi(4tH_3>3z-jSzTX~ZlXb7i@Px(jV<}KpprtQBj ++zzRYyZtRKErr_hhO2bb0WmBUvl*0Wiw%E^DXdYBvQ`(KmmHR>7l#MPc#aH~OfAx}sz ++z2>pqjbDJj08K;|ub1T7L3;Cno;zU%{w=s9B&7?lg7q;5 ++z?sH{4@HKoi_M|_l9OM&tgEdHJszHiBT~Y>6Lfeg?sOYghnP?m+FgoE|!fBw~!ox`g ++z{{WN(;uP@kvxjI?%_8QqYHs9O^ ++zTCnn5uS?rrr{zay4lWSwbE*n-4NE$a;Vnt+Z8hZao?EbpI0WBdf;;Vs$!0RP+%A_E ++z?vPxuCS~wR_c-Iw;_8S*EB#6DSFhw$JNlH=r&6QWR4WK7>{Gsu*O*Y?Z#t`({!nO_ ++zf!>R9#;iZsowAXZD#ZSsBw25R{WCt-{9^4ug@}x0Vlo ++zCAG-9%j0R&`YCVgkpd?R{fUnF9ja#|XX`06Kobzky(u13@4?j07R1dKWINm8w^}61(mt*{2`4D ++z+9egPo@GUVR#sa27X=B8zsE>Fe~uMJm9uj_MZ23jKYM_8%@je1#Uu~J&kWroQ(4k0 ++z!a?)|%WI1#CBa^}(2m6`^I-f4y7wQvZJ8`tsJ`+tRH64mwqGbHM1T&nZ$j_bzhzP- ++z+048-le$IJR+ZlggC)gRK6andcad)>WX34k{3n8hbz@35*MGrsMFB?T5p#JA1+hwe ++z*wUS)qJR2$(lpo$p!*>apI>116sW)Y6T4z;$e{Lu94G3Lxnbj3n&@NGx)rXyQ}3)e ++zI~sq-({DkAXLEe2&UX`Q~;@vhiL`Y ++zmh_vTZ$EiTPqouQq4|G(oY9zb4zuPx(>Nrr`G#bs#GCBq1jJ!ES;q-a&hwOdL!Du3 ++zL2qt0i0vR%a%iCfX>6H{2EbR~xHrQLL0#Ti8g%0(B6BP$Z5@6f0o5#24p3ut<2x2! ++z+5xv$00|#m-`eIEoc?i=<3O0yBH(4*;pU}*)Q*v#EP|z{IMt%S!lsS#%K|~9aR`CT ++z28rR+46H>b`!#4&fVKSJhHwEz1*rp>374S)?0H36X^Nn&`v3bgA0Afr(C;O#{U ++zRdy~N|L|j$4W=lpEVT4)clXe=xm34SlD>#Jrls~htxn946J*7F?{m=C3JD|BxK5So ++z@zD~?Nt47i3KGwn%@yimi>8!0+2q9u4_!JQQk=myMBd>oU(^k+-jCb&_2o#~FG*@c ++z$Y|rYkWrgI)&U`NTC#5!B)T48%4z!Kq|W&JhLQ4DMc8_vAV~Lv+&nKZ8xTC{o@`<5 ++zD(c$v^4S}F7M-OPb^5=U6A`YMQg#wqWQw(!tR_kwz9x?MU2pB*uqt41DabkLf`#(= ++zv#tER^*y`ho@=T`@a~JK4&V6k!>O-Q@>0|)wom7Y9s}u2a*pIR8cv*s?rsYWIxAWy ++zdj?=vFy{v~fm;tA?Ox3N0k!~gy-CeKDMQi~X)PC|eu8^8z6-C6lQdYDprH!zWvf2W ++zD3F^;K-J$Zh>Z&*hkYkOY8m*vK!gUz@|BRV2h3&)9&dnua0?~2g1!et1@OXmx|owd ++z;Y*U%AbS0)!D7qG1o>jX=&BD;#Lt2au{{?1L`xG}o*a5be|mkY+b34XmE6gv)^a3@ ++z$X!e!1*85|HkGGQBrymYMWR@ce~xNNGOR%~CA-haei24xP^E*jz!Bamv_Y1zX`yhi ++z6+y=@DyF|@QvQL8L+3`=d4-({FEsfUZ^}Op`-PTbx%AP9u-qyI)1#U(8I#0(X~;WC ++z;GR38hK8m5XWsjNEM^gA4K6wU!z`g=sd859B---Nk#Hx0>7~m0lqhR8W@TyrWof5@ ++zNzOiLePP*Pj@r#Zv%de1B|iIkV~)y5_51B*dBy5&sOFs|rXDJbv*brmKg6xm6}cW0 ++zBfmy?<8U73p!z&ag)3ewev~))UJLSNqr6~_CP;c$uhu~?W?DIk93?@K02xQS17zS( ++zDEUn^%#2Phe0l4vi1JUFurHsekAHsd$Jg@w*{a10y{;J>AriOYXCb5&FNk#Bd4uE^ ++zPOCQbchLQj{d{gQz?rDNZqPC6|89Q{^ozKD&>T@hY>*Dw`;#mD9-1N$;vMWFH;t@e ++zbR_>=Uk0HDT(BeH(KXObB;?)vy9K6{$PmA6`KMNF*@v7IfoTIrxS}dLs6*5@*gSIp%9tj@FZ)KmMMSE8_5$X4; ++zbaxkhIr_itpuoGmFeaHYf2@9|ZFP_`Uo$$ObL9ECN@;n1&vE^P?v~lt+>=PUg0e-6>#AQ^vQE2IOU8zrKpZ ++zC&vKrp>KcOL$q@t;ri_t4Y4hha}Bh+CTHfJjQ0ZM*kgZ{4g_a%XPqzm{`({( ++zSRR#HHIvU+&H)0$^Q%KUTLIV&a<9T)rm1WZh)`g2k$&1&!UWP}s?IY;Brz-;WNssy ++zY{zLQJqjnJ>4vz4@!Z-*uD0`q`?vg<{R<|lO;#ZS+KckfbtVL@L`*0PVy_G}lYhqt ++zBYo0|C;phu#8^}8{Rqvn?FUPzCLdvj-`QSKdFt?DV_4v)>$(b0Z?xs0u} ++zV)#ta;lwCi22}dqZLR%F@cn0sV}>7|(C3R~j ++zL;7fg(88w+4a=n63&AW#dUESD-oXKWiyIn%-Wtq)>%q0&3dU2o9*8Y+(A|-mb!fJ9 ++zA-j*zG|&T2A~`Dh$(%9dar2f+7Z#v0uo(IY=m4PagzZBwW}krjI#d|&QcbVDzHsTd ++z;9*$|YJnLecwd6~s>vx_ubIRzTAdb$E6<}dT=m0tTTmqK2;Q2FA7EjV`vA;c58iuJ ++z8>MTm7<)aLRLqm__${#RGGv;>=twEB@&Y1#2ZG8xwqP~Ds>EcH_+V*`5`g;SW-oH} ++zOwSDK+a8F#V+{J_`%=Tg(?^^r_}bMQYssy%&i$wM=;k^0E9A_WW?^ ++zrpz(P&EZTn!jpQB&@?8NB0mVCYvyjtCgZ%0i=}RMJ4}Df+#7xPfs#bU_SFbnyWUWK ++zVFVO@D}qntfy@>P&hD?|t)Io?zYsdcjgnsDy?vnPn=3lo(EP(6RMH?1Xd>QiHik$m ++z()SBG5gF9~3jVwk_$XnrxG&@`xkDPnL0^u7A_J8FFagxW&jaS!Tbk-10bM$AB+B|- ++z>@CO&%2p6$c}VlO2E&2J;^0*RJf(#{d!6A~LO>co-MF6kdGAD#bNOe#WwWhxm1^(4 ++z4G~QXYYmX^cLMu8xAt=)izrNb95zXk+Qt5QS?EbhX|Yriz7)@d5#zvpU@98N<4HZt ++zgX3h6>IeTCudYlOm9{EC#2#!x_7SPI`OPu&sNX|yvV{`^nFlX;F(;rqSUJU+u7)VpFZXJ ++zf9*hNh}}3L{BMBCVvVW4^f$VSxroO=x+@KHJ9mn{6_BeP6 ++z(8`50@(&^Q*dukQ;Bdi%6NrR{4d7R7^FI0p^8T(Le?S%lLuXpCI?P$kDuNMQT94qV ++z2W&l~MICpC`BQ!uJyj7Q<}2T*@wilesyv=sJkFjZrXgZ1QrJ9rRXv4doCN%n;IA(R ++zou4KSmib$-=azv=4HS+t2GWWogTMw%imKoeBBxTawrj#?AxgQT!v)uGw?ce^EC{re5JFm~V8?HdVXCb`3W@IsNi9t&y?y#f9m+yH$$orE7j59+X<& ++z(Yj;iL8pB}q<8nYw56Z5Kz?7`miQ$in7OiOELLR+Y4O~b*z)hucCYai@14xQyk|+#`5iJ ++z9$*$eiiK7lG+d4(E8-3Rp09M&CuO_vDS(51A$)d#>*wGbcfEzhzNAAZVcYM5kq@4w ++zAobM~?OhlMZX#MHvDY3lCrNt9_J1}&Edx@^rHoe?gpjs0IJpp+g+sLL5P5w9lSKGN ++zxe!sn6L`A7-~-MZ!c7AZL83_GN4ZlmeF^lBqyt5UOy)N+E@K~;9vtpF@tC~sc}hHe ++z^+C$N-i%`&{U=#%X|`%*%?^2yT58#8s>r$)W>!p021Ov+qS{*id4Jpfs?xRlD%-O0 ++z$`HX(1F`?K_ay$#gL6m@GQ@`G!$1tc1PB|PEHrn(TOcDsWLO9B6$Cf>5YnsImOjzrI)ZLcRt9x6ARTjS1Kk*A*5Ko`~!PL6EbV}Lo4T^_@ ++zuO@uX?Kz`UnQSHYAQ+l=)G&!+3ItMs)c!2U(zpNGBteV@)tl~r{hTZ@9eeXfbL{b- ++z?qB!Y-!cxp5kA=#+&&*K39r(8AdF0=)0y(8HLC-fUom>NC8y${?m}ZT1XbbiC&By$ ++zR^JEEh5uxo?<1KDu<)oS?@B ++z`HA(t*?J;iZ%KRzb?G8;6)61zbkCYo;OK(c3}!!KrUuyUXC>FW&~r ++zP>dZ;!Y$=oM>#lp8F1IiZi!Rv*hd-iL&i5~O7031vi>wXOniqi9ER{I#BtJSnfOC& ++z^6F@hQG>GAl)LBEvv>;|+b6Yr{v4Mi&vKd5s`ra_I`U+mSL(^UT*jSfdC6G>OTEra ++zhAKZtlmh`ovfLWlXRy_hq~wKm^prc?YDp&K6+^%?JG(#%aX3X0h ++z7dTgG>EHPr^mD!K`#_lRhG{qOdN&PIq_3MpQz|D6)}RM%&#pKn{Vp9*;JnEvmS`j^ ++zT$B^fGQ7?3KQpd}CqCKSfnF ++z=xswohGCAU@ptdm-xf$r%(5r$R;~Pts}f&FfELZ1wyDVH{$j3qNYkDK_R2gf7s7T) ++zd>#uuTJrm8PWjxC5eM4~D_2eJ&GShx9}bw?X0d(s8TY2owCfa*d;rufEnWDrgL}&g ++z;Ls_|iTlirG{4FkbEx%61`rLAUk(dyimwv4bupE-nR+AIBA-&2sSHUWwVRAg9e`m7 ++zBucPlNC$tc!v_#;qaU7zK}X~ypf4PYNnP0jbk{hgvwL29nu8vJbM-BRZ?fR*h^6FGn)A+d2q1B1S ++zUUH`xs)IM$>J(Y-ayL|d-8N3=w;iU(KG`s95VC~KjDtAp!OM#}(`(-qIOFq=soJ=n ++zdcOUXWZNP$X6qsLg!d(fCdRB4-d}&7UNh~2mFt=T^)*-#q!8#_>eB7SP+kk>zu<@G ++zoV;gdS0w`u6HANP<)FcbbLR(cMsgYl2$r<-uYCjVM_dN+YNPWJEQr9LUV-y#G00v% ++zw2%fdP&{DVllF{#Dnw%||{B}!H ++zK{y#+f_x+Pi>^+%ipjYw-=9=-lM<3OeSDjCNo%B-oJnUfTo*st#jUQqBgI6 ++zxZwEwqE3}Mq~O3-Z)8neRBOwu9_q0nniemzbrq2<3ZV{_vkXyO^C9*inIpwsc$ ++z97oDWIkBZv`?~)=XTtWWk;mO+qt*?GU&1tCJNKGNmuo|JqzO8$^GzVoXmem{gJ>*L ++z2%}`%U{A$DnlaNj_QoNMD{zqb7uxe2-^l!aFvd2)83xne2}l~-2Il}U-LRm^BqL@E ++z4Ib2AwmVb<*bEuyS`h4Q5inLj{6GhsbnMNi1j*go;tLQV1@NpyXMA6o@qoki38Ov{ ++zqf;fm7ksLH+TPCU9lyqHPqj6Ce&r?C^t4lRc<|_~qNh{fsMQ*WiTo(ibb&Dc#Y+TT ++z4dG3dvAbzLH|^;#IfAnFsTHv+-WT2n8QSqb!XMggIe`j?uF$W8On93R&AXi*sfCX* ++z#^*8*w4kD+Sn)9ZyNY4Nt89G#Q->4um#1bg+Ap;9Zmf=R!7dPc4f=6E!Rqmmd}8iL ++zG}(Z*cGs6w9mNr%?p9Fq)6APyQq7o8 ++z2l99;SnJmqX@Q?2$@Q*^iuiI3Pd9qX1}#k=2 ++zr48%^za~V{kRNhyD1A3%b7ZMPK5oDl3;V8$!b3zVL{*43!3Q=GyAR+jU|@(%8V8B1 ++zXQs>KdH`4xF>zCgbOQzA_?|KULQi`H7FU6Y0@VbMy1dS3Ts{7DK4GKWD=!Dj>vau ++zpFOJsDmM4($d^;ehs#S>Sr=D&NraZuedRR|&Jxf+OB1Dv$Z~~(fFVBRX5~7y@*OL_ ++zILP1pYL4897w~c2V}<@>ddLH(X!tg+0sr8>FTJt7unUUM$G%pa$4=_wQ&P6Yv>rOQ ++zCXpcsbE`>Oben&nA#m*jg6eigNt?CSKbRY#$kQ`LM3*XcaC-qvTzMS;hC){WPFvxdPq9C|8|eRhviB{Z*? ++zgXEjFEEJB=h@yW_g>?cO+!kO``euWCN(-OZ8eB>z2cgB4jxdUQOP4> ++zcl~BOKq_yV!Nw}gIuQ!hpWdcGRujMA^|P^D`_p^bxfCMlz1bN_lkNNV%Fl1w=KOJ9 ++zqRgYoOPmxW>WCzZB4&pRYY>SGL@CN7eV`)}w!{l^eya*Ot_61FloROmzsRu$n ++z9>NfO5~->qu8J%uI9fdJxXEwR2s-`i&3)n^ai*K(;U|x~w@#V0&B*_1^=RMvzWK?> ++zi93wn`a|)EBLah4RtK#&q}#t_tj7+X>o!uk#S1Ynnb0Ws=NPBM`pMy}=M*eMhCS;~ ++z#jy7j$fdl$_mx>O@mE|mRJ@S&V340Xu;s`|5(p<+-nX<^X5XxdU9J#deFn7z4AjB> ++z)!i6YbDSUVu*aJFS6qflM-zheA~9Ouixy|&i&8D)JoVl?LA6MGq|6j83ab0SEy~E+ ++zL)tM_LxM={t8jl_zZLBf{HoURV+L5uk4qr_?)z#$$d?Qm2o`Xsc9thIut~q{Eq8l?YVSk21$^IIOE$%}46ZF@#V(k8x ++z`mezf!_hlWm|U?cpQ_hhp1ZyqaPyg(i6gm}*|m{F6{kA$kDoTgma}NO!Ui?lEB(G6 ++zIj+&m;el}LKmChP_nFBmGTDv_OJn{~{?)9VqPvnq(<D^ ++zkLTY1Hvm(6sraXTL%leUB86^`(vK{(q>6Q{&ZDN ++zU)k-*?q@S}SnOTwgyFHOXRoJc`WrfyNfnO_wwGB|D18wzzWx*+JYtT#)}adAkR5qz ++z%qhOe?CW1R^jfTCrG0jP_GjS0or1?yIaklf3lMFVQXvGtY|CM;9i|!$wTYKX^1!wP ++zT9Aa%*N`;=dv}>6>FL*T{eaj!oPr#|Y6-F-xY0-Qw>P;vznDRSFKAzOa~=$#<&=q{FwAVj}zOo5tMT^e?a0_Wh@8#=wz^WLW#XEEmhWmpB+4rKvXjz?1yuFD`+ ++zOD;hK$I4-{V1S=<0hm4Tx6be=IG^oaV1)-Dp!5Gw5gE$r3BC@k7Ut@y*x=YSyp%%h ++z9V%Lak7)!bSbYEU_DI}Td6SNlh!?Vs@WYdW ++z;*5lA_Qz8x|KspAOB26&2QRAp;BMBmNeOsM;qjAx-2cjib=o6wPT%TzgBTmuLFS@H ++zt^MQ4Av`6$8`Q@|H%&ym*{mH%`ZUwYIWDUcA!1YSi_(-kT9mbn_LUgcLjkXP*FE&& ++zat;`+xNhtII_BVYacY21k>*5l7yyIfMi3JGHuQs5DDwq~?&5^0m)RBT$mFi#tcn7F ++zF|yz(h~85Ewu>s{g&7m4YB90_;SZ ++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 ++zjV?-8kw;CnwTXE9Kiz3-qIZaIv6-= ++znLvHM6f&0AS&=+-ZYH`AW}25Ur$?4<&cJ+*NJk5y=X}Sk9y^~8OIw0kY0{xYcfijl ++z~M9F|8G{T#c+?Z?M{}I!F+S; ++zPMyN?aP`2MRqN-D$$ber?CqffIazaW5+AgcCVwUWdH~WV?YL+`gAWb;5LG?qN5;d{ ++zC%)grqI^=f;Z*(-9YMGA7}?nHvRq}s{ILq&0F ++z>be{q!)IDY*4K3Qh)cXJr)M;DDzZk#eJ`x%5GiM(Y3nZs4D5e?v&xmD^Y@)cj^*&0 ++zA$L{>SeU*%$hTyQ^>>MQN`bF$3ijEg9=cvkZ^#!vV*H8;Z?VrqM?;%yNTf%_GN9hX(V|HJ49hf7D~L_S`{ ++zsgLWhu^Y5(QUe4Al3B83a8Pubg1*I10P)u38RpO%H-(ZWpiJ($<)n%(2gE24w`EUi ++zX~+j1BuE-SN(bWPRiDKoz6io$SQu`gPh}tLd0!us9Q^zi^Y>e)wT+)2m+pzy#)?dQ ++zQO6eC{)G|+UkA8vK42LT+>j63hqw`c3cr73&oPXAKI ++zC*GJPjZjZ>ohvp8kX*iIRuFbh~2GTcgL7R2Jk&q7|owFDxR ++zfmubz;n4utP5U2^_zvQf^?eNfw<5nCM_{G^K_J|TaDYkqNUD(P3;Rg#@|yn?9Q)

q*Xo@;nC8;1;02F)PrZj^TvIuXbcw`U1}CS@ozkO_WDu8;fZ!0&sHQH` ++zyn1qJmEEtL<*_D|*;fNczBW%|UoU!K(^EBoAKJlu*U!Y7_-V{jze=BlyqySpkbI8MR8Ek9UOAb_y$6p~c-#bR6;)aWkH&p*a)8tLfs* ++zCaz;T^@n>J`#iIGkbbz4aREyoZ_Al*h85>GjpsHEcVDuoD|<7ssf_#VV+YrDfw&%~ ++z&#!~I~VQi+JngD)B{C&UH(QJ!k(eiE%qi=a+3A?}SJ5)u`OgD<9>f${t)C$iL-r ++zuLEV@PRAFBRdz|OUf>5f*z{e*+|$IgG;}tPrf`k0T8!)Xj}VFi+EglCNttuVc$WI` ++zYj$7XI#b^h!9tyTNRg75JypPs?ne(x3J;iVr=TYP@;r9gli+_Wk`DoNx@y;rH%W*znF%vfBN=q%|5JEs$~DNiIK*=FPSRYzYjwXGdhDg ++z6LKC!TKa1hC6V&DbsyW(pAE1y*cl@TuZO(yA;hI2M=52GW?Zno_?!pt@~4SyXUq$D*3r&Bv0Cjn+rlM-c1(y05gohXh{@{HHsa ++z6|l%g2$A> ++z!`|;>44)lfrr~8Tg?yuTuss-n2eL2Fp2(-s*1ge6fEeKYpmaUdtk!Sg6{u&VdKR7MsS1nLO%6<5O?&&rkVE ++zyd6SXG+$oOE7101p(;E!MWR{LS*{?aQCdKeWL)0;wFxho(VE*Iu&a)r2 ++zFrxWbAh#>pOP8qku@N%l%g_ZWv>EY8LuLIW&$H_5&>8Vfo6u5&(^HN)ZAa42_Z<53 ++zC9xyt&%d4R7(24<@^Pwy@9*>;*Tdm|A)rEUkR4yiJGH;vwMx8_UcF@Ec$ ++zXQKX{t9Fm7QiV`NHanlKn3_O)y64`>yH6Ca9zP$h%&C~RmrsilBRsbH8r?w>_zH-B3Ew4A}g+vv0*#$sGV!6Oh638YqHId2IaW#obc+Y;gZBHK ++z!Z&bKgX1bag}Z+5m?)BIkxLv>Ylzc%JNBbLVq9R ++z9a2WZjqE@L#+^_Q-$B`gKM1SO-P_&#Z!al} ++zl&DIkItja9E!ztv8;H(EM?v@C;kU22yQPEop#Uq;O7BZvKrK##&L|Dle7TRT$>IvL ++zu{<8EzjL2OBOFU}2>)pOUvV^+BO>;!d8eL6YcJPIqff{+?82QnXfgMuGu>!>4G-;A ++zeXKQ4?Q$1CO6Pg!thzf4tpWes-<1JTH_E$js`HB3a*9Q>A70b(Tl!XVhcmXx$GuxSqr3Nhl6r};S^mZOCm$#uQJwbWH02eP ++zVT|`^<3*$GW>wCr9?m+j#@ZwOi@(sQN3F*^7I3(;;B2A(`!O!4=HAxiPC$thqPz3C ++z`=xIuRAC7sy?)+jh7t>7{_yMmTSRLfgwK?hdk8D$PNMCH5D(^|Q&1BB|Kh{Bi_Mv6 ++z+bdPXw+gioBDp_{!l5FPu~l$0!pd%e=QHZV$<`6if#;@(a+)0Txg4rfUuqZhHfh-2 ++zybf3|aK;AeIvp2*d ++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 ++zF_D>XVVkKan=#kq(MnIyHHuY&WtRVw?}F ++z=nN!uc|L?OjIh+<{)WOAV+JXVIY)E?7M4)x3vFD0_2KgUW&rJMHRF@ljzRFE=>3fP ++z`|f#kddqqYB*1Za4>h$5cE=1@hwKrL0<5mbC{s0qf{N#mXNtdKOOCcZTg^Q(3MFM8 ++z#d6_#JKaXp5ta;kI!36Ls%*O2VD_xZM6|*Do-f+hm6pWW>{#}ksK(j(olj&1NqWWm8go3+R-YyDkA#o9VY<%R-kw#qbXoc-!jb+v2Tvp=MW>axxFqvb3m6Z^K% ++zUpI_%zgO)m@ASMQRwlgEM&ytNTK70ha>TVP){kH7sueh`Og3b ++z;nnDIqzf-W2G3{a+m6}) ++z{XHfnOXsX^F&DTb)EBtBUyg?Al2NH*Gjx~vG@gvEt5vDp9@O;Ec%d@>oGzIx$I5tXmmEo9`)Cgiwqqi;J>Q&Uk7b*#7H770aK;EbWP7^}jUw_I-NK(-9Vd<85%{6~xgZC0v ++zXg#|LR%tyq1gH+ev%yk+N{Jm*TKa6_i!pr&JP;buG=OxA%ZQcT2z_$S3t$44JVHu1 ++zn8*i}7HV4Z7Mn@|m=Cm{$AirGh$Zk|MsQHEstkC~5@0i`_FIKI@ZLP9?tz~IE9ryP ++z>)f)$Z{LhGF-CgvnNS}fn+8iU+6`K!pjsy$^Ca|`w)xE` ++zL(kvojcy%V@pEYWs-IrltEy@Q$-^t(MyNAp`@M8f){q#YczWB5^R{(r2G_)EZkYx@ ++zOO~LeMmL8ny(yUDxcY}&dfeN+=x?2gCos>$F17x+e#&+J_1Zo6wBN2P*sYWYRjtA) ++z>2bYwqN`T?DDRMEFMv2qKmb(ih<2~~3H1*hBwHmmrJe1J9WI1=B#&=U@)m^g1q>+o ++z08dhM1UN*xc>@UJj#SbpyfV~TfEW=Ar9cBEF0`H2jCE5yNRB{4;=rr;4|vELaOBf> ++zd14|F6y_MFd@)l6?j@sDMX^TGY?8szX^Yw#-Thu%(>j|{;^Ao}H5@PAj2b88R^*!r ++zPG1{St}KJ9n1|r{uhI||8rnBKoDu)3c;EWH^EP-^wvG(%!js{a{jKX+LC1RWZsJj; ++zyihN*ShTVUhhDrZb0IPnDtk_ ++zaTsA=+D=o)%ItECgyN@{mSFJ~(%*}u`WX(E;d*_r3a^1`KWGg{5gTWF?=YmhICGaq`omRd-snN{NMT0Q)+3!L*bh%!XOuq^MekvSD@XfZMYB ++z=J(FVO3IkIZb`Sv+nd6{4lN95n}TLD#LF&~;3Lzk|+?Ud2?NK0#;K%NhV ++zMjrddp3s_lae91$Vx#d>?9+|t*@yTC>epk`8P%-ogMQaMs&Am2nF(}dj84~cF ++z?vdX;;Wj5M`%`*0M1n=pnJOu`Ur*{w}8_N=al{!BRN5( ++zL$AnT#D*!{jfJyYj%<=ipl;l~@(Y^uB(qskK17m5oN;e;m&q330D+hiAN37AR6@)^ ++z)icl~_tB~t-^6_$d*@-e6IAR=8M?+ZqlQ8bQ~~Z1mS{|FOtgLGP}V-_j^%H~Uv_O+ ++zhYLx?_1rq(wsV;=>Ch5`yhq0l;Z*%kIH38LQKS%O+=HvO5(AT3mwcJGz)Km@!p?p> ++zb-8*Dv90sevf`|-CcB$-KBt6lu+Oxz)53pZgj?7CM#KO7Ax7up|1=$MLdH03;L11v9jr!UgH`YihiCAQc0`NK1FonLli ++zIL#_l2aW-Nir(h&(EKS#bgbj)kdA!(flfw^3tYN9ARZDUAcW0OBPAzB5jfHCRJsH{kMIx{V)?m!918~2KQVmv_wKr=J ++z2~cW{{p9Id=CEfR#cPTLWpPMA%y1AH70lu5F>iidwRC&D5aaXVOmyCC`iwe`se)fA ++zHAoZ{HC;6?q!xNyRbB&YIP$daH92gm7nP+8unK ++z-p9#I5AhWzHfV&?-Bf>A5B__6_$TcEPVVO8o)Kk+(Ut}g+Ud*JTJ%Qg;S_`QDc1C* ++z9c$#b?Uk$dd;~HrceXD2SJP;M%@VS;`;2m5~+9rw*MFmp|1w*8Yur?)cpHQ$bC%h ++zb@0|@8bpk@$G}Y40(L~9lxP|U^&L}LAm-*#l7Wo^M}B++oNkPxR2bvi&QRAvW@0aA ++zN#oE5wmf+p`j-%+A=6~bXX5#$&~#ECW4%hLhI+=(Z7ExeQA8$sA9T#&?_+>8YCJQf ++zq*g~zmyJa7 dXx^<4EjwimK(jFBz=4QMj9mIXzB^?h3tiFH#Y*6*J=~w&2jfebp ++zzf+Dnza!mf&FyQqH^=`vS}InC3U@wND_r{U;nKz(+sFQ)he&BPLbzk!Zkm)h_7~&R ++zxSk%CFP>f^4*I$%he`h3&~$o-gL2hT8(cE?Is%Se=f&op& ++zQLll5fPJbNDv15QsL84@SQ|%PB(fT4HKOtFH12f_m{UFHtwT!|Kuj(L-k@Y5KNq;0 ++zNaWE7@D+}{U{4`L6DX#C@Ghj$xf*6CR9e{55ClWJTk7xpTZe&ljFQy^rUT}YfFH;o ++zqxSehSm>lXAi)?=`D@n=TLmaatORD}^wLS0&LH#DX9X0{X+(>??L|Io`}V&TbQ9!i ++zGfjUAavvmQ9uuL#3809!(}jk!GdRaJ_Wp(2@IDiQ->H6F7suU2h8zpOs3MNot5Lc6 ++zmbyTE5n}@8noHm=T#PsxazB0pey3-a*t7?K@8IpNvcdaC&<#7JbPhgB#a&9fmV>I% ++za)`pM$MhxKcOKFHWK`KBzjuL{#95jq-b)$s+AcQcqUw9}Xmhs2-GdV?6gVrykG=QL ++zK?H>E>DH%wKmBR?&;=$gGH54oRtyTf#5NDE3=G%R`PxE@=& ++zbQi}nbggGTrk06J{@Fv6rks{iKX#*sEoGu ++z*wmtc0i@1yxcF#*UJkgc>=H@aLArniGQajO9|$B2n~9*?V@-h4A(2$sKAV#A=nO(9 ++zMx<&&p2&mFk)D=lNb4RTb0c1p21ir@jRP+@^Z^YND}%pNT@JD!*Zo3D@53F>*>p`= ++zF7xg|IH^i-gfOz44-lU%&d(fi$_Wioz_Uj$2{DS)WS+{{qD$Dn&)N%fmouD5z@Jd< ++zN5L=xguNVgH!%eq`-+UbVC%_Ut$48wKQAfJt`QuQ4*TJD?>j*I8;s*epW4d~D3Lav ++z_a?j9Iw|{!CZ`KL?_Fh9xI;L<`BixaN18^{s6BU`_w&~T^=56?_#E3=N(0w3R9;#! ++z&&bIAyW4wO{zT-LTlS#|<8KaYb_ ++zEdiwW7MAHmGy@gF4-(!Zd-XI9_*Ws-_aAcQVjND-H8;oH5#-Vvb}Z`?TeYNlVD}*U ++zK;az>)O>9<-5p6SWLV<5l@80%cAg2T{gWzmjbniK{EjO>xFfx99mN`58?$=M*Q9<9 ++zl}O ++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 ++z!fn(Quab$Ptf36f6U3#0)Ki13QGb5hR ++z+xBE|rNc(3t7B0qGE#XVLfuX4I-z($zxA7SsINabcZ7flyD)iW8P*4dezEHvN1xxn ++zGa8pa1y(oAs}+t0+r3^;e9jgJBPqrMAThQ2^NMU_T^4V_YVinQIv5mh+5MPGM$(W4 ++zk_gq@NGz{+;+9zqzBaN4Cfgho9E=79{vXVa)Qt(4C8CNBlOQH+624@GbPSlc(>I+l ++znE&~@S{1VU(02GxA;fu4U3}`T)VS0n(dnVJeUT&7182G>f_heo8;A6wb}M^6D(9g` ++zUuOHrtl>5Mp*p{~{2}>ueA9C~{h@DvBf9Q=9!o0Y#2ThLu6@c;)M*?v@ynD8#(SP| ++z3|L!nwPmXX&U)b9UT@tOGwnFi*l_eHqE_xNTKo56<<|b|726Rl2D+t>Xj2%Ct6XKw ++zH~3=^jyA7l7k^Wj>Q9n6fYiEN+qI0tT>DbzgG;bp|Nqu--y^A3e~mvs+w{u#tENUa ++zvb&5@ZER{sACW7jQ*b7DmOgqv5nml~PG&h>bH6>i=#gKJ~58rP1lsnrOo ++ze#l*>-+%bT){XQ(3smU|o~ybbz4hV~PW;`AYmLkH%e`DzUH`{IXGi;;e12vx!F$+r ++z(1xvV#>#GoP7CJ7cFf>|oiy+QVLq#Txbh6T=@)3^fD4bPX3b#Uop8wKRe9(IjG1Nt ++zSX=?quSJe}LX2 ++zQGr^+I0y8FKn6W?i#xb=^k|55|F*a93>ehHFSKhm-{n^CD|@KbxkKn}v-{`Wl!Fti ++zl`7lYcMk5);R|X=8h+P#@GrWvD{fpr-3whPur>Ag`tLDxrWxssh`)WgCMW;LV_aN$ ++zYJ^M*W8SE%t8$m+68>mseag-kt1qo*`^yWBG`TevFzT#Q+loH8TwBB7JK+{|Q$^9p ++z`62>2WL+O$?awzYl{ba7x4ht(s)o&UQh2$TFTVeJ43)0>_2X3WW;*50F0Mmk>-yg_ ++z)&h|>kqpkd6GK6buj)-Vg+#n~f$)}j?Lm;PerYrJimLnH`v{Hg2aFN2hN@eFi%Khu_5r25BXW(da@a6q2yomub?)fp3H ++z8~E!Kjs}ikyeO8`AzS^zd^>cEEd^=_YiC0?Bn$$8Zl9k^nFYwjch3q)q~voDEf5)? ++zeuvxyhy|r*y@gg7@EeDKqy&rW05t24`3IPIz1aMXJ&(YBifP+e%~ZAkM)Uls<4;M? ++zux{8Y%CC<3^Yd6MfQRZ?AsjTEeQ%BNaCrVGy57}MqsXa<2P2S^^D6$jc#R%8`E%EU ++z>oB#;W^Gr35P6g3vMQAHRU>g|#npEAD20L&rx!QJ4?yvWE)@q ++z)U>kviOk%Y6Tgac&z#&WzIi=k|I3lxxG52_IxjtQlIY=Cg`CO!%_+0(&3H7IjIOuk ++z=?d`Y1o;S#i%1P3{h8%BU*-M_n};@S9`d_1=pa^W)J2Fz#pjc%h1k*}Z1XR#EX3|~ ++zK*QK59&MNiQdLGITM&hVp);!goWvb@f8D%&xKxmMa8v{KtIfNkKGRmXP5fc}Jqzaa ++z4g)-T_%%MVuQHV$e9{`#xEEF`LjJ-0-I!V- ++zf?$PVn&p8RAFZTPe)>9a*+G4SVGsHyY-tv`FE}dbgd74bipX;ZC*F%0lIA*0-TO~2 ++z#TL43fqDNjv`4^jhg=Tj{=s&zUH<1ikWR#g=VF+2k?*R4(+sAT-mH+@b|7}Z+MR?~ ++zb3Ig^58)QJ!8ECf*I$M@^A8yc#gFDl77^IR%S05Tj;^`=^JZ`h+2Co-#xB$^FJwoZ ++z@Uf4BqXYpy`fFr+viwN6R6x6gV(1!}Y+(tpuWWWTcT ++zosLNEsoTu3w&M|XN_%aKq+eC74JuJS`c2}{@Xh&9tHwDx?K*YUDaTsPn56A(E&I0G ++zatqRTpQjCf%ZMtJ8a&SahWT|cP%RD^+-Duc#l=o1toaliIP-kW_`z0e2f7R{DVRqj ++zprCnAExHeWRqPs1oiy48Ho4)hr3?D-n>gjSE3msYB1Y1SF{oOzOHt9Y1uL{4i_hw#}W ++z+YKz%^+|O)Jhxl_wY_4Ga=wRS!^f8&Y4vyS_X@mmeLC9E?sk-j^hJt5a+66F ++z&l6Wo*cqrug8@_K^J|nB@Hu176Mb&sCM(;%WEa@{AV}YkW0UrueYduH=$eJ`wXk9@ ++zQ!Bt;_7F-e*gNAmrqP6|1>$1Uos;mOizilY@$&}f(LMz ++z=NAl$i=6yI0H*%Hg#(5hs(HAdaRBjy=i;0Ka06o^5@rd2-3=o2my}u8b>OmA1lC~D ++zv8k8&yS%N0#2=tvfyUKFm&`kFv)J&4$pfTF4 ++zW6R1bZls0o%s>f-Cvvs~1SYkPUaqHt>^3bTJ^JLL^dFZb8x7*p-EWwvsVtgU;I$e7PI8Jof{Dfn#WrP*GRp;yXE%>BEo ++z>|G1zC*P(duJ;$77jwtcbmhz|$+(w9@*UcjC*RPJ%=I{a99!h=o!h4_J}$kU$GtL9 ++z$*X=bAWiqU=&J1}&=D?!im)qJ?X0ZiFB7MQelwj*@U9zvu@Er+VxdU=T986(TjfnY ++zpv^rn$|RO5%z){y!q8d=g0wt;O(}Gc02$H&7a1l!Kt)1f0X>fW6BCQ7dy$0uG;m3W ++z%3-aUu9#h^cp*OwT82gCL5CD}_e`>-JJ-v|*^IoBy1!U^tg$75+A>);h ++zY%tO2W67yQ8*>irJ=BrdRm6XYeW6$(GlEF+d$Ed0oY(9{L2gY} ++z^es`;?=&5WAnyCuqmpzDPYRBm93bi(FS_-8GECxIdKJfnM~JA;_igPH_x$(jk(I`_ ++z#0y{bvsNAV$Qo+ms%+)Wj}{Xsox1vyEF(@|W!i{wW3m773lEf%Qx8uZ=TbjrYP>5_ ++z`SoGWeR9HT3_n~X*iOaEkxNg9jOiR#RXq7AbNJ2+KiAqonFZ4sY4Qjv!=Svnb54sv ++z>BeDumF1(k4&+Es;^eu$c?hx*BWAv3@7Qc ++zi@_L;9d4{%%%j6F4KH5lKmJ_S_W|&l{ex8iopRAl(+l*NJy&mG&I>5X=bVOzaEo&s ++za@l(DiZQZRi$<3mwh^4BAD*9 ++z)=9Y7gaiy9$S)96&(Fhy@FD&2qce`Egk8lG8>q>!h=4U=*d&XA@&Fy1dHfN~EGfi) ++zugY?==ecx3H$m$-h`!FMXf7pM=*YD!0At2zo5UyoZVXf?2H3rkOXoc0?1^C|TXZ6A_T ++zKIn6yY@IyWEbp+#^P%PY&z?Qayr9(WcP{itByS1Ruq@V1aN7Y-2-~z8Fg9Iv&|p5v0a*c4d|)hy&RAQ{=lB3rJqMk5F=ILtA2EVX ++z+t=QT(ZcbbPOvXtzwYlnYafk%TO;!%PCRWWcfvCAjV2b8qPC+Bj8EUy-T7fqZG@@~K!_~L2QbNaweV`g4?F%%bz ++zSf8FpI2xzOU)CccT#wd4 ++zm6CR85l_9x&r74cJ!`JkS##F@scm)rZ~}MMb><_Db5!F-fB@I&*m1v7Z8Mv_J<%&8 ++zFZdfdAcaps#efN0*sue@|KMK&It>gb(3a^14kf6kI>)JpHB)ALk4c83Cvum9aEn!4 ++zor^gE$++);Jc9EEupaZVg88YPzG1>DG$6<(7xoIZ3W0}Vr-9KJ9a`njju++DpLP6L ++zf@3|!FU-k0{hmJ@)Z;q%!OCHO!LgnpYN1NXWX8efGh6CUZ+$RzYjvhfLFuk^CGMk5 ++za?!al=CV|AXXn{XJJ9x&TqmVEa9Rh7Gy+;=yzgCA(iYTuqfVqC5%`0zFeai>7dyzbP54)n-8D(bKVLyT57CoB_Gl8&N2N}{Mk@6GDAbGHo ++zE{5(!2@WE4^#}$0po`OyuvumytWNLAsj*P+-(Hpr8t0*iifNW{7w1>la<@7dg|6}? ++zl99JxVhULN(%33)dtHN_@*SBmftgTWopk>Com;mZeH(&aVRtQ4CQ7B0u9qXWnVs?~ ++z^vmx?$0S`czW(*Q7UDwVP3C?VE|0O%OI(t-O|aknp~a5BKN@@9OI)-MPkT*SPfbIo ++zrylR-d~lqxZ`74nIq}hyap=Qa&aOXQ2fW0JUsfvF5=iqcA{+Sb8Eod>w>OZM3YdI` ++zS!jHkG4*l`794aFY^DW7q=m(V4^&McR!3s!0fG{SpP*$CGng#SFZu@+1t}j>KPlSl ++z02=^`3!`4g%s}83O5?ugEtHm**r-8gq!`~F=B(MGPsRCVEH;shZcB>4Q`>EjbNhHz ++z`B!S;YHFkjza^^U>eLZIu8&~!2@eJ2WzYhD>PkhLcAXcvM&!MD2IuYcHCFQHUPyav ++zHvRVThXgm#bs_Hvjfl ++z7F=S)rIqn!ZeJ2C1XS)nzo@tl-xIyA=VodC(Y>~WnTaf^G0Elhd4tRla2(?KfdO)^ ++zV(cLRNPL3DU~b5o^Pn%GM{m-ps6+05uI2wvhX5Z8$qUM}|8M~88?2ul9)|rEj)5r5 ++ze|8;0w*3sU3HoXmLp?X!0?IpYYfL66q1q@is` ++zjETa-NY3Qv^q{wE?Rch7IMIc67iRPGKkA;}5SV49-qGQA?HxJ0X@4}oq)e+oiE9{Y ++z^k7EPNv34S_6Y_dfZuj3=gRXAG40d`TdSgVjJH%M^y_|l-zSy11*b2P_vyW}tkq|Y ++z^m`{VbXCN6Zl1g9o&VmWz-v@UeO6vi^bpNOPw-0ni)tM4PwjlFse)UmEACh6CHI?O ++z-E!CCXC~H3jR~Eh?pC48w@`5ttCpduu4aj3q{ay&R>2(uLcjZit^vv0L{a)H899$H}}z-FpfokMkB5V%uy`$3zFHW2({my3wzet$`hM!)YQ ++zWC$OiMf%zEzy5pC(QtXI^IW5i^eVqqe%?N!j!RWo;l@7~&azMuw{W*^Y`NHL ++zo9X_;z>*j5NU-$1u(5K>cYYb3w^03Sl|n6HQXH;s5ar9cN8<}LTcIx)c6k|X5f ++zO1;6-h4Xuh2E!0k*`_??6pNCvWzsWg&gQV-O-En4`Jc9}(n~zGKT5)2OU#x{==l8M|ayTf=;lZ*b9$=?-|?9SS-AMKB>xnX?$==$erezwmK ++zH#dIm9N%5`^7U6!ftH-Z>MX;kPXl;FUFc_&otRP5-moijL!S%OJ(s@F@B3bFx3Ww8 ++zE)&ln#Huqc7*?0B=j%P;OgVr(1T;hz(L$9Cw)*BMI9S-0z^qI#x&pi!iiqZoBB+TW ++z24DHLD4!A%*uSrV51|fyc)xSLI|9rOhbPn`ptWr&7X~@wSbfa3_?5q&bIk^7O4bsUpwJFL2rvRBirFdyzM;0+3;~x{KdmA{Z160>deD0 ++zngiQlZdUne=}lLqCXU&fUic`K9g;i_`hN#WYLI89}%vE15l12`(yOL ++zyg1ej2nY$Pks9!uV>loiN(o3;G$h@j@Go$UA^<5Dhra+X-;0@f3udJ6ivhX3=<);W ++zF4liot^uu@SIN{fcZS0&GAV+5AGOCO0xXN-Vcz-H_0DF|B?o>b8ZViucu~atZiLOq ++zfDt7U+~uXAaSYXetwDZ4|f<@Urs9%x>>vM ++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 ++zyRFr_p;%!0MI9 ++z4oYrI&={$^`Ic`5hYYOg3>er>UpuGbPfwNQv_`n^861m9Shu*Lv28~HIrOx3z9gxb ++zdd>pd8$A(>na9P7dgvQHIC#8CZEWi@xHLqB2`-?MI@|3_!aL1rF)31t2yYdKc3AqvP{tw{|D8hVI-!$x;%CClBctLV^`3F@c=4f*}1bKly`0gV%Frj#s`}Z;ZaYWv`UTCV}Gqxo{o23iZk1bad@U!SOes=xs ++z=12%>uf;E1_g0D!iFl*9DMp>aF7!gG%F?E+^a}?R=_B)p@F_^?r^0$+Q ++z^A;4R@T6Hv&Qm6d^y_cixK?HO@+MuUCH*R*I3@}{FAL4X+a$gvh%CVJi+$;=`9bB= ++zi-`8RkD~AEV+#vM3!6r`o9>SJPsyxfwQjj5IPIn4Bd+Ru1nc)oJz4p#H+o}qCaLhN ++z;ZOfi-dF2}vMtI9_{oVg5dCAOubwkTs=2>*LF{dxzP^5$2(@|i4EpgQQxG}w8=MNe ++z_Y0N}S#|DFgdjV^Z~>|@dm2#L@+8DL-xD>6`d8g*kXUWB15 ++z%TczS*7~;#;E#O-hEExoLF4>?A878meP9!P<<^aYogvLiUXE50AIgPnV2u?^L2nfj1oIc80R_hj-rw3KM?}!4Thgu7i_*;Z=>W9rS0fd ++z?6=(~eroFI&eZ681w1H{()t1+^w4KKO4c!#`nU3%UY}^KnBJxu15YgIybQ*UsIwDIA-*G ++zB(~iBQXw*qAX}NbnsevK)Veh{&Zw_%K1j+o$@1 ++z*CPamp)j_BSPLfg8Yj9({O_wsaxOV5LKsx^o?EDsRUpnP*Ksd9kK3LYQOcOn ++zV3N0dcEm^1q*!BM0=%=%{;%SO=ZxW8=&ggUFI^oq9kKWF&(Y?j9kq});Yj6`G_9a ++z{>q6s;a2GN=1z13;QJr(n3IdvC;|*i5=NgpTYJK3>U^u;Xe=GXSL4y_BV31IiEI4v0muM!2271sW|vm ++zy$N0loT6NCE>-j?d?@z1(spp4y;|bFm6o3^$bL>N-~EbS;o+SJ3lvC(e?2Q_Wf-%8 ++zl-1hMp*4Y0`ePdNGlIl6SJvshR4^UFm|{^aP~Z0G2@kngpRKj#z3P8cp`s&WHf3^> ++zH2gzol}YZnoFF3Ck$3R6=!-|htfUMN^nKK9g2*r#bm2;O&qOXNtw2716$BL!vEV!` ++zTqq-}YJ=!_ClVx-x=|#*vHcMbB+M;TJ*JEZY<-bMaRYIa(2Y|7*A`fThyp$_xV2~= ++z29_bT3~V48nt6+aL)7__>QDlzIoYu-q!LT^#m*dKeUd!foDWGIfF!slIb-apw|xY4 ++zqDf_f`7nH_Z2&fEh(KpKki}RN ++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 ++zLWUs$H4_|LDt+gCTplZ1ej%$ld#Q ++z-e$I`+@~zwt9I{x+VBMO+URqhwAkh$7{(w|yyRuW*Hi5?=iW1PjT%xt5G@SHem1o+ ++zPG$C5il)ckQir`55{`6b_6%naR53i^*wL%IvFCi+)<5jHjbj?>SS_FC<{nAAOqDFk ++zxmKsZCzg=0U7;#p4?>4o)RrSS+d0Er{3^sd9Tz6>5_s_kV~nRjCEEltj!g{JTTnhi ++zsUhc5pET;afPRxZV_ctDZ@x`;dw{SA1~2SoB|KP)Q9y1l_Go~I*`5Ti{rAgW0wH{> ++zK?6A1tXY;+BJ>Qe0)~I(1nMXSb?anWtEf+o-zZV|7Oq)7Lw~R<^`KkM#F150>0MlX ++z0!}dSBoUuOfaG42U7EQDYC0$q0)rFcdV ++zv!-Qq=XXUA%P|q1V}>+$P`>f_-Wed$D37O~g0D7*{~VS{@@UxQ9#H+$j ++z4PW4N7UdV3xI0ppEf$TzN<^Ygk||uXXk$mzj3vbwt7+dBdq7`fa-j@D5=@^5yv^y{ ++zs}OX>J$xW8s&zcf=kJX2j=Z?CK%Tc}fkM+y$-ey!X@4#rQW_5auZA3lbrz#1uGsP# ++zmu{umBVYBmy(Gx_z1ZP?Yek)@>Cc|O2e*_*-ZOrpd|o#v?*^o+bAXT%io=I#>2ADx ++z((6x)b@;$I)3K=g(HBwZ9#x43TR|uSArgad)a)1r5!3H+U&XI$4j&fcaxL|5A`aO;~RYI=BG{%?#q(nJ{vz1q2}aVc+`72GRb;o+xivX ++z=;9<;pKl&A7p9>KZj&@FZOBJhM{q0o<6iu;U<*@!_0M1y>Uccn^rA8&VTtQwak`9L ++zMXcl30kW@$AjIBVPJ<3o20(FHqlgoD(0HjoGT*8V)GkGVX(vYT%L7aqHXsAZx*Is{ ++zx5<*=U9Tigs~a^)>JKKwa(f0dAM~E=8jN^)5c7>eB_6biJ~&uVl=I{Fr$6eOJVsT@ ++zCY5Gy5Y!d-kemHiG~1Ff2?@;s5c19zPQZ`x#q#yPz|9$5V+ ++zX|MYg*E1z9dljAAL1H@G7tz~U#rv`(SgyJ^OAfpu8&{vEkXNCYEY*ypZkBonJ>NGS ++z8SkMF@A($wzCvfa+oqt!Q_e23lqd#O6T8gUl6joGCP1g1j70V-t}D(DBHY* ++zbe99Z2EN#+F~(K%!P2U}}No ++zh4btRkWRB`)RHC7XsAi}Jg<6?(AA+U!fB75*)+*gcq(g ++zSvQ)%&ps8c?e8ppf0MS8jGnqu!VCoATaRm!#dFfFPAyJgLQHIASR%xw&$-NumbyDG ++z*5aGa-LK9txNLR43k$J$NUoO@$I^o@6Fo}+8@+B4JIQyeKj%Ja6E ++zRj9TJ!aKsQlZcr%VEnX>{kVWLBc@Cu*mZywlcI6yvO#qznR!*>E$B6nay`QV8t122{E+rUTcaH`s?>NV!}!1Q@wbsbbhc|7JI0cEifN-8-KaQ!if;ffhh7vV#bX+H*p~FnShU!D^4`;oNQ({7^ui&R&k8uHke@@`F-% ++z@p1gu$6M>da#*^65a*bi5p7>_UH)lF<}9sYiWQKQs7K4(k6aE1F1c7y2Di+E-wtsI ++zSSDWV9(oE~GLxx;6qXCQF{Ne8Z_L!mT)G62gCD#D?hd-LT6MPa&hxF4jE>CJ8@_c( ++zLIz?R_;(f$WAjzzNL8#^$5RKUbU3Y?5W_QKnfOn8(h1){vS_opJee!&<9qa8gf=wG ++z^$h&E9Fe;=-;-sWF?aD**$$D ++zZ-P1YJ_0}u76PL9-$4TPDu^S1&{&M)-^KhR(AP0R&IQ5(pwH3OZ>y8C_p1f5;M8%IArSkCF5P``-|k`);qtC ++z{h$=q<*Xss*W>H-u_MH#WqsD$iJ>Nv%g_xiPyU)KJaP38D(*YDT(CUz`c{dn8~5;h ++zT!MG%ly;WMA1M8~Z--OQjcvq!UER^7ri=S~BE%T5LG@nE&k^692ENf7F0Vu~0~wK50y#5kPqa ++zSY{!k6wA-dr8<$_@6ODy6_EY;$V~{fgpeXr*AS57Dj&Il4b|6vBr76Q_!pwk*;6W< ++z2#~1oYb8H#4rz;Kg)nfLt4k#q)PqmZ?U^^29d?q?8)FA6+2Uh{HvgRw{pO2dQL*64 ++z7mXd^npedMDSM+clJ<(MmIHSwER3ZdJ@>=zwe?l4*$_hgkH1kLKFCPSJ~`}0wm7&k ++zJ#FjBt^1^q(C#3@Aa*l#fl};bHD~PTd{-M9KehXY_cIG@NyFy=j83(oUrh^5O}D&! ++zw{`OQ$Ae+pwuFl-OBJJu27zv~kZ?i;7!G)gIh*z<$&Wn;Ic2yUF^( ++zs^~1EM*}sY(eEuK&ZfKl)1myzsCjPiBcMf)x3SF~;SeFy42mpprIbt&P{FlWMI-Jf ++z`oTVK*1Fni?T%~Ju4Bl!{bUDcg~!STI5J|u&6+|tpfTQJ{RU{i^G8NMtFP6n&UOgdCG ++z0dLv#!ae&sE%o~~hP(x|`hvCsq&k!S3=h9>PYmi$HhG7{mvYw(O-5~6Z79m0xYD7? ++zpU1ecwK=!$4NpzQBc-d_9wQ%OT6HBhGf&vAePS_%p*Cl!(t>6HRV(~N??XrrYqmX8{E?+4)$x1DjL-MH8IkYR=s>3U(gWj$ ++z@80(k9}F)HmAbe2-!NN+7!FO0WpsNPc>j`l-c)N;KNCD?xH)ZKpL_4?G&rmo`Ea`E ++zh1}s6)25rKk{2zQE5 ++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 ++zwFZDzK(ckuHA+)jIqLu ++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 ++z2~>$vK(%& ++za@kIFmMK9hfv)?{7z+3`dL6@+&F+6QLO~saLY97t|5oeqj(ws1U_e8{Zh75H$m`)HG96G^;VbP|dWQqm9*izkm>jfaP=P9XXc==Q99-IqdV5ygq>hQZ(*9*Cx2y&_ ++zWM>yxf+GK-d4zlU$wbZb2E}h46=md9ub1>Qqn`mSpMj$-i*TlH$Zf9+QPYpxIThMu ++zG~hfuiZNdPr8ng){6+yrC(mj~xIMw;tiig_Ah$Q`Q4O ++z^4M+#7svI_&~!K`OFzlabs{-UeMV07An3zZ<3MMEI@LGKCX;CTl>4#aCGeT@YvXhv ++zsxSyzwReZRiwHQq%r}Qp9l67Q$OoSJt@ykK5wku1Eu@-wiGqoZA1BGe5?c%zzHH9l ++z_W?lB&u6^1F!b*1`U=vdcgWJcP3m=NgxxdhBf&F!KyKeOcp20w+51k?Zs~T%m02FE ++z#h$!m@^+!va3S5PuaBQrkx2S%49#;&&+A(WPBJ(0DeKsAI+kY0S}+;~==AB-;f9l# ++zdLYn%@;_-kpoEY;0jdFDOxrI8HZ|wI2B8S<()O#K8j#6R+FigvFV#D*C^#T=Go3H0>3s&C1=?p6#rD ++zbl}4XB8TH8OJu;m8Ju~zOEcFSO=;eAh{hDuZiQtU%47d2G`6D{_G3I3}ogiW* ++zeSAaU;(#L4M`|3wIZEW1A8`+>;vT$7DE4Xyt{6%Ws* ++zLeB7r8s<7dMTQ<26C+##BnXdR!UyqWlsp6o`cfSxYbFCw&I#Ih9P!BFVwBy1h>!rf ++z-zBVVJar_}IHpiML>#A%tH+T_WT*`{7a1cFYR5?*%s+Bo`?fO1K?sKa9P)Mews93E ++zu)2`L2D^|~x#zeh$r@BsbSJo~b^DeUZU&ntTTkv#^fde$otLsWj`GVlW`S7ktcqu1 ++zmtF?bEB~l1kZV$0DZjp~kwW)e;Mm=D)(5lOmvrw*;8W%|PI+&;=4`U5vLcUe(FM_Z ++z?H8*8brVG7bRwQCUk555us*i;|MN3)UpZEe-36>#X6SQ(>fGj8js#{7z@L#N0>gj8 ++z-A_AsWdz2LP#nQ2)+k8Yi)>AO)gWT&ZtG3Fq8s)Pe ++z)1nWh@EgN99OwRITQ^xC_oA=knTdw!iw;WV@5ur!o^9K9Dtd00GHB~;dY)(i8?BFZ ++zICZahTM$tQdK?1%WZ}ONRqK8s>VY$G(M8FX1ZB2!RSww_FdSLIyZ;)&41uyw8PRTb ++zJRzTX83(BJ{-ctI?u?$Djo=@#zbA47C<*R-szgyR^s$H&oXBulmVnxErB?e%t27*9hk1F)R ++ztl#_V>9l;yslp9I?x9bszk?2(-W@-s{E46=F#vSK?pWApZo~vIUrYc^0@}w4kd$#> ++zI04M9fK0rB^sEp-aib%E9wA-ue9U$)1kyLMssz!9%Q>V1^zcO|?6O_)JYvrXINt*sK=nGLp ++z{}bSA+#PJD#Gma0332zJGcFP2E4jZ}4F;2n%QTfP_)tl#4;q8cm~{UH@Dpi32w?T! ++zA3fm3VT}On-=~Mn4&-<+;gn;~#12FV~)v ++zrNmTZkPtkX8CNJF-rt>_A?yetR)7Kdfa02TU4)o6#F%{w{)L)cFv1pA3h#I{5Y2;0 ++z#Z#S;GzGAP%x~~$A-hzo-Ap(x$8G18;A=KQZjN?I-*t*v^&oa+s2ou+0^x`}X=G~q ++z(M>a5HT9Tu_d9P~UJIZ5z85sYSuVX5qCBw?B^PhZ3EQOt9ID$4f$r^cuANI097(=q=JDIP%~WCl4v7{)LOaZ2R!mS ++zdBTDm^Na;=_~UZ_i=iIgRuOcO`Y ++z8ZYXMsE5n`===dc>v*In-F3L4_3a9hf{38Ob=-FeFP||PG!Yb3i9)?00FdLWa~UaI ++zd*qDcN=)UY)FE#cijp6^5g8R+S=Cj!c(RX8j|T&oZT&073BvW ++zIElPMj3UwMA%?h^Yc0mc$N58*Ie?n5baUoT#YBH}I$vn1T%5%E@)3y0_RFnL_~aK| ++zAlIFz_`=GK?}~tp7RYhA1vpM;054PiD?rpS2-Nd)Jf#(gBLMvDi~ueziOqJmaPLEt ++z9flr1wNbs+%8^^yu^>#rBj#NzC{s3*Z!guhZD3}JtX7`@;A4PL0DvOEzHvS+Go5n@ ++zjDX?R1TC*L&&>sR@sj~A$`nukjMY%FNJ#vQ4-gv$cZcuL?B|CR7Hs_vJu8|t$vV3h ++zd`8^^_&9@uS;#_yLvymGc$48l4D|Iug_93$Zm2d!?-Adwe^caHM2$ir_~(ok#`U@6 ++zQcmH6)0P%r;0krW{Cxd;aHkmXD0JO>a)B%)Jkv#^ytqvHvp4m{y&yv;(sEb+vj<0R@;u0)3wxn1PpmfSw=kkFX#M0 ++zge0nFX7pD*mhD&dOr>~roul~!Cj3QtKoegj5c0muL?ZPlF$NQsf%)z`^N8W9?7?T5 ++zr?D6s87k7zxGW3h9SKy$?Zi89C{~FS<$9_i_<%jT?YQS%liO8txtl?CXBf}Z?&@dS ++zepqtACN?zWPGkk-lCP8YQ@2GTXHd$`)+m&=)^1XT3Fk`g?}gJu5IA9tlz#;{K4U_U ++z%5mcE?r@$aW!mH+yjR|T=jl_3fq>Zrq) ++zn))F@g*#Pn4S0D&6N|_Sb%#?@l87g5GOYQP*)@DC#AuWIPi`TBg3@-t# ++z`5lI*KtKyGV}1vzcQ&y9wTimbKi|!l%5K`()F)G*-Y~0!$TE2fqm1V;8*zl7 ++z4CXV>jy;#Xqih|haB$xjvK?hahW=h*5gs9{ ++z*=C!`?9Vp))R|ORH?#Wo>kq{)2R;+;u7F6!lXNEpwdLK{JQwy-FoKFHt+<*Bs(vPM ++zYBTKd^|xOEln}G4ji12n3ek1YrV3&`ZP7r&$H{AD>om$Q?#(`w>aBAu19yXUjX#GX ++z;^lGvgNtaAgRu#x?C`%#gnA^53c=_Ii(S=$7g)y5gOWnM6pP|=jln5T<0(NJL1Qm) ++zwiF~EpgCX-u;J=)tTaEDxB|li5UWOvzY`Duj1(q=0L7W-01p>INS%|!{|OLlDTvRU ++zUfFbmHDCbN#o0r;Xl5_ZKJ^GL2IgG~J-tB8rdowdQ7c^BSr)7qQCv>^sxELLa40t+ ++zwJnsaYT~ovxdyI(vfDF38C|V4nBfBz0FIeT+YtC$Hc@&pl;~%4U<_Z7_~Pd6n6!06bD!dQlRo-X}R=cdSFj2IamQS(7TiDy@C`1Xr(7W=$l{^$&Kl>m{L^Ge( ++zRLsMN$mMDS3cSr7Np25<()Eyi%qqet&?X>!Iwhau&nke40Ni9~py-}wVgM~PkRsOO ++zbDPiyc+1XN?%I~$EIUjzgOvhK37Ga*U=Hmjv=3a2a ++z6D=hg*|*29gn`lRGs~D6G%%PTQM0)b7;5~@hhLj}fsB?4w58DC=F6F{ypkiyY7Zyh ++zHHmvt@UC&Jfv1-%g}}X!+g$g!pxyaXXSWu=zBT~=$YHUigY}`9k76A&F!QD}f2JMx ++ziVrCwj(i}RBMSCZD)oT;^I?gxAk8%VRu5S>Y%5TK^xSOdum3loL!bko5kM<>P0(T+ ++zD6C1N2S8g0WFfsJ$jspHWC4sN?B2T58E!jR`rq61j2b^2KI6>`0eSCRTTDj?=J!MY ++z_GbS)iaOa>|Gd60$zDo9B#8cl$@4Ht;4=^RBOE8yNbM^-?RI=eY67Sq?b~WNi|2n` ++z&D56leCs#~){V^{uFx`Wg|iu7R#dTd=w`llXb+lK7V?D8xlkh&3vED?Y34f@$3#(eb8c%sX744x0IB~cnIl}LKR##A%my!TXaR}0HcU)cM ++ztqi-j>nV%RBjf`i+_TJhKK+5L1kw0C2kab0Z%~~#g-zr1FWFY{I7_QBA8fy)#NdOd1mOFR|O#SC!RsU&SfZ1lT ++z8q5fj6VHc3FmS#3fKJEx0F~SAUmOkFWujrJGu}-zHqT%i>WE>`+eNjvK=xJOpT_6V ++z)$8d&szdfdm+-t9zi0lIFYAr=&&R^SAd>KULTT@5AqWo~acTmHw5-pA4N>>ba}0ry5x`Uh=%CM$ ++za7!?(lVKK)y=KM_&&Xg#MxPa4_Evq0xlR`Nqz58Zx6iMj^Z-Q7pkhKBTEKi~H($MJ ++z$J*rc?%W3Ul7j@`Z`o1)f#5^l-NmT}K~+cSgy`Wnt&3O~8__!6F ++zKl4XWbH(3;hWP=wa#L|ALP_Zvj$omgo3=np=Jx_Gq!0#o-!byo4>VKR#6EtAUbNTc ++zZvYf&^myRN@O`v(n3|*Fd7q}+`=5-I2(+))0O<^n^O*$1Gy;J?&*9>DEQs{jET7Me ++zKZ0xODLpYn3~Y-bk2fkFpT>l~6*8=wItQdZl(Ob$9f_;$Gd(C=W>6RSeN|WeagFZ- ++z5FPOq#j0lV&Xkwzi`v2;9oz3TYf%LpPk;;Y&{TLlq|ujER7EWm#D`==O>CZR$j$^m ++zsAfx{PHcals13!R$g|yW&@S;UtQewZIb7b|y1t92g&WbzN}P6B+lFz8ft-F2s)g2z ++zymk45Ks@9MTrMaAv?WKyL|Rfmcah?ZU{e6+DM%G@4RFB$#Dy*MA`?QJI}(oN=^+8T ++zK_0F{w@JZ!5YW>_QA%XKD<+Krf=+ ++zyR$B@OdTjD!Ucqzor70^*hJEMG4O_nxY8*%a8d=o`-%7mI ++zDlcFO*#HDrWU3x`O(p++`*~)d2m%P#TpI7LYX@M1qtgv`U{x_~>2RjzVJhR$iK${XS;mUK5O)?YWyDwLQ$G+x0b1N*cy|bhlaxQ4gXeC=NYjtuUsBOK*??4BrU%a- ++zlv{b!2s*Xs#nX|7qR)KdQK9#PU_sdFdnA@f1ixnX`sw%5kj!tsL7kMxD|ds!_(7wD ++z#En4ivODg-J%X%m=8TLx{Z5w0?3(>9tyn7fb0IY-^K2T@ivkkiJ*!7A$1wXm7Xt%G ++zx)d-dP+blxk5re9y^PjnDA_E``s>MmIYU&wC}xL*a44^@}(eaKWO)aQKSr4Q@g^D1~va^;gjk4+wHuu}dz9S7D=m ++zV`=wkBwTCqLBV-4EAd<-JPJtgYL#XH<{>aHFgoz7=ZhQ`9GRku3^=FcMJQUSoKnB) ++z_;v_JA@19A_cql?2I#bh+WqaX?+zk9H<7`?4*fZ6u6_%&ubD$^yv1gI^VucV3eB}9 ++z_Gvk;wLE)xytd;p`mX80Q%xb~o%+&RB?&3jF<9$*<{80hAN58^*lN;#nRu~=Ln1Rb ++zmkRRD_i-Yo^WKum40<0fjNgj-;Pk<^$-Zhzq3i7vO;ym35F<+vDHlYN?>PlvRLgrb ++zXE-Bxy*ZrcV3ghwa{6*NPaSSqcP1yN0q4?yQ(KW|K%~H>nckLxoi9{je^~c@fW+V5 ++zE|i2-UwCyi!O7@Z^WdTDazRadc>dG{#ZD8ea>vQ93%>)6x=)~Rx3}4&IK#66rA422v#C@wqw`w*nO6h8rVb|NwM+B84gQ15b0c|#KjJoUFBkS_gMX4oH ++z1otL;-PQ6b`G&6Qj@?QY;P+AtUwjMfLq!VDCNOEB&eS0wlJMX9e<_gJL{A9$QXWwZ ++z1P^k*OvIGTlj#BB8|W1|Sb>y@3uTNv=Ca?$hQUA2ZgPvwxf1eK%(JIxj_M8~)YDbwG5;JBzxD@(4NVXrQu?Q=p@S0+*9>0wwgio}q*FqdBzbE>sRdXLEZ+}0 ++zZxALRB1a$U-INqaF}=jXe$iPxwbR-LXVR;qB~KYhk6sWcLg8cyA0`#1(5=MkxKT*8 ++zAAf8>LF5J#-62Fc&_q$-^q!BeQkmrofc6m(H2mthFj!h2oC5facD;R?8M^UBYdRBS_fzlHxEd(7o`CE!~YaD`l@SM_PMxr8`5zy ++zJI%H!t1`@CXb5Q(3ZM}b>ABm74a8uQV`7~ofuRu}t!rOa=gv&L3&Gb?|3qC(B_!MI ++zn@5tH06uf86#W^EVY7q~aG(^TPXrNqPRXzpI ++zn4Se0^sIy64dK_$R>3&Q1;s3A!Q&zxn9ynxzY ++z#hmR1J~)0C8h30ZF?7{-=4>8w>LB)4_7Kw)cx?XhZjg=B+OUJITB93~7GTY~`6(nX ++zq!IO(F^Dt8FQ5CprobKWj~~xncv4Oru8B%OTn#o~kL`XjT@R-0ptGJ)yJ*n!wD0=2 ++z0QR2hM~u&je^jQ|81lT#e?Ef@vrsNL@*4CE;)8rZWQriDDM4S1s{aUr2lP);JVaas ++zh>(sO?IDsW9O#aOb>DHQ{@TSav6RM{p ++zRkWnd-Hz>MBV)DdtYB#BhGK=D ++z74bBAM53GJlJmO0z7Ow11$GiQJSo|K ++zHg#EfsXlRTfKptT34iNZdm&L$?HWmE*|soOnQ1}!II=cdv%z~iX67vPbwy~#p(K0g ++zvs_m8<=zrbQZv#Act^`ygcR7VKK^h_2}iyv@Lm*I3wDSWI-!l8P{s$9SGcENq~*?{ ++zI9VMlnlZS2$lXLk`^6Cmq;s?@gPeS-vpF`8WTKG4*30d0Q{ ++zq{0P${^uDm?im}-g&azunDFWNQh(~~R`VKtYnR*gWQI8uIFV#3Ri^5?(D#BExsfBWkRo1``I47%5 ++zIee@A^s>j0b*{|qxr$>##(V7-e`wNJjc$YTGAF8|blK=%s#Qf6WUnT=B~lKU?g(3T ++z$D)am*>~*ou=p$tu~ExM={HAIc-+_bH^YeyHPzHs7QKgrKY?3w6DIO@!_CvwPNxg# ++z_M3b{q4aSztpyUx^C5$nC~J_5UH=4>Y0NI=(IB3S^PvA}hMmL(yE%e^>El)r?XBeQ ++z6lIrzQEvRdKW8t>QSSiydJL?fI2CEEE+Z|&Yghkl$wuAQ_m4$7>+clM5e1dG^%bXO ++zB8=jcwY&48rWg!q_fQ$ma{>zaCHm`CVGC<$v+s ++zft0{OWzX^ApOcNW*eepO`bs{RU7_sO{^=xGeO<@7ezg}*z=hDxTe)1eI~F=RT537n ++z5_ixGIpNd|XNd89J7a4>N7xH8Ru}y2@*V?(gGp4-rrm($1pc|6V`MRhq~t=t^iG4S ++z_sGtQa?`-Tar41NFY6~XJ*Rr_%O~UA%~tJH6*xfuYOa57}5IYMJ7fv)fm=O ++z&6E^O(b&2L!!o~B4L3~)AUpLX0zc`O9kF~3q8L!|rq#qL1xmc0R!lSTk=gY2^) ++zF~UW5?cch)wr+Q|N^UPxj};*iaflW`A{uJ^64+a9+T*~rb5gT^xEb88i8jt{&O_OG ++zDDay_odz#;dxbuOIZSgSF2_{=`*=IX-F|FmW?9;v(+THR_@ajH3vHD}rHMvS7iVE% ++zDkZv*ba4|9>I^tI#mnGBS%%r&k=uOtXrv@o$U`ZYnuQqbJzp+0CQXdPQC1>YeZE=% ++z2of711fhn&9xVNs$3dNJW02a#quOMhWp0z?li6|+UhJXAEUCmUd7#G7VWD#{_d`SY ++zp=w07a#}1j#r34Y?s5}NtuFk1DxEYOPI8Q{?_MLHzf#jSom3R1_SZC=Gmig>^@6@zXogWso|#rM;7rTNXeNukX?>dkSa6ao&Vp>|O| ++z(jTp@{4W%HbIZD6P^!-$r&Y5G-!`!(k@xOZ(c|n2>G&6SysiHgC$I>GI;-b)((ded ++zCL+Fi=qHcST!%Kp=M11<0^Y$Ax+`mctt%8gaqSI7PAQ?_>3 ++z{>YdYZFx1Bm3-lMOIx# ++zs;W=;I_L4s*GniVeGIr!ojB{kuJ_tZ@6zkUtG?HY1(l5FZw-7+l(<~C>1O%XhmO@B ++zA~MoI%cgHencQ1M{pNNoo-JxmoI$p(LzWPXY{PDEcVX4ATl;X-zMMNtNq{xG3mK8? ++zzWt}`xFA%0`#p9)T;Slw5WAL?hbna7<$k`VLQWRtSWu5U8&l*E)|^U#KJBu{wPL4^ ++zgY`CZR#_JBEsZRxSE?&b>A1^m7k^sCTuB;=^&F2KsEJlFT#%wTWfd|9?f7eC_iY9X ++zzg;b3j&kA{11YMrR ++zI2n3msm&XfYH$>XbNm)&Ox=KAQ@h*{jZ}?eDFq|u-1d2If6#@OUhJ?F_%D+r7u ++zI>;TYDo;#LzZj(W@J`9g2_mC4OeoY5es?%y6&=SL!p?>tk}5>V=on94f_z@_bqVsy ++zxb$?nHMnq-N%e}H-o{>|9=iS;W}3b8c3ZHhN!|w;CsrdJ{+Lbdak^5^6Pk&1R^2!? ++zwd~}Ec9qF3bJ+}5ii+(~67x{S(n(F83idlbAR_HmSw ++zT4ca1Zr*4Xy#K$=Q5Mh21L7_Q6=o?prjHnOi ++zr1(Pb%p ++z##^Jeyrex>8p$%lkTiSuqY+uDVJ1vrIYM&w>1p7vT%wXg2CDB)u!HDORJj%T6-F~b ++z@b1eWdlou~qwPno39MSb#J*z~gT^Yqvs`^Vy5D_8d3>Bl{exF_uj2Q=ek~FO?IWwq ++z&9yxpY?gXIYr@DH9@)tcjeFNCHNTdtpO}U&jn$NoU ++zkW(U-Nznv88=gF8Z610a=?!!G9B(JWWyb5&zjj|nU*}rG+xH$&^1hZlUuoDP-_ecLqoH?Y_avi&+#w5 ++zcwd<}9Jv{C>x+y^#AmPT1){}Q)}d1~3yBs)ecq+h7I8$ExAU7$F+zKDti(M{oJ(T_ ++zjP@ymU)#pGnL;AC?Lk*eyF@JOUN?>Muuku6xz>xDlPBehGSfbxi+6{QUk;c3-Di

O$I2^k(Y~=U`8V?mFk5KQ%0xI*y!=nX(OK4F ++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 ++zclE=uj%+Mir4;0E@`ebt>jp}B^+Dq#PA2L ++zi{zrR6D`b>N!?G2h@^;8+@{Ywigv1p%9$y(gLFH8Bw(+=j5j?EcOAlRA3dzkosRdO ++zi!yBbzW-MoMfFJC_UK_b-KYz(ev|jej3gJYDY|f~&e7$CMb#ZJKMXzDv}B`WV*I9MrgW*?odGfmMU`*WittJanv8 ++zhI+li)T2%(@A8!bYv|$$q_~{$$Xk>_NQqH2!Lm1xtIhb$X11xAWU8{(ze||DW1qp+ ++zhoar^5#L{b&H_XW0xe1^eT%ki;$K&&iE^+H ++z4@2|Ru3nK>sLpOlc=d2_cz8Hgv`=WSWx#pYBH@P67RZOUab1|lF^_Zq)(0y-xxL5x ++zbI!Y3b7Lr{yxHdMEwvWMZ#yT}xPSO7Z(&>p@ ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/drawable/ic_launcher_background.xml b/app/src/forkRelease/res/drawable/ic_launcher_background.xml ++new file mode 100644 ++index 000000000..e009ebe7e ++--- /dev/null +++++ b/app/src/forkRelease/res/drawable/ic_launcher_background.xml ++@@ -0,0 +1,78 @@ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ ++diff --git a/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher.xml ++new file mode 100644 ++index 000000000..c4a603d4c ++--- /dev/null +++++ b/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher.xml ++@@ -0,0 +1,5 @@ +++ +++ +++ +++ +++ ++\ No newline at end of file ++diff --git a/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher_round.xml ++index 1084c2408..c4a603d4c 100644 ++--- a/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher_round.xml +++++ b/app/src/forkRelease/res/mipmap-anydpi-v26/ic_launcher_round.xml ++@@ -1,6 +1,5 @@ ++ ++ ++- ++- ++- +++ +++ ++ ++\ No newline at end of file ++diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.png b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.png ++deleted file mode 100644 ++index de7cc30245a2bf49dcff7173e0013d7ac7d4a6c9..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 6322 ++zcmV;j7)|GiP)N8p ++zYY{4~5+zjTGrr%*^?? ++z*zq#|Up~CUDindXCAdy=&3_#*t_jpRa}&oc^7HdQd-38$wU;kn)+V9vw2zLx$vyur ++zVA!v&+=re1=O2IkVTAykQFfz5pd_K>{IB%+KQ8pi;m0EQxwGh6x`*C#N~Dc{1u%lr ++z41WLp_b;$x4%oo}lq~Exkl_9jiF_U11I3^2N%z(>U*WH=F&dS}PPD`hZNu$TJtzgw ++zpFe*^g5POdK>JW$>q!AW_DXU7Yb7v#Z+b>cJ@Zrj<+Mirj=!uWHu^L+S_wt&U_nVW ++z$A}cjaP_q7G(Fo`n?AGyHs@e!B9wzlF#5lGDadR745d~bq_*g{??b>573MSzg ++zvBC)(G%PnSA1=fs!#GcWsMK#Mhy=xICJ5~vQKmxK9_}#0^F*n_Q9yddxA5rEqk*NO ++zN%9TxL0t-iLtt(uJ^;r}K~R0z8m1+JUH?t}H!d+=TO ++zUHJTL9H>HK!6GykDxSFo)z009W|8sG_j)qS#`Ea>M|j=aK+4U{eHj-Q*Z7^7o18=7 ++zwgNdj?sIhD+(~-`Q#OY}H3uIkYxk=z942c)u%5@XN!`~II&27n;Wv_?=J`ADF+wmu ++z9Rp>GA!aCael5IiW?VX)d6)y)B{WePQcg}zT1-q#MP(n~3J~7>xV}TC$P^Km29|RV ++z8iB&4?^+a35c~WBV(--;PVfPXlQ)Y6q$nY6>wP^5!X7<=+~*~C+?kn~C$Vd0ZwyFQ ++zzr4J>srqp8(cvAvco%Ao+h$Z_48ZhW1%my0Fxzwfoxo8_1=Om^x6gg&I|Xm2B6));^hdwJk?C762#LYd&`cMga| ++z6%qqYFUG^^%$(vn^8yMs+1c4IE?v6xjk3=r0)$#~Kwo=Eb83v;YQmH}b-~zT-qX<; ++zgrV+G=J>Tzfuoe#=${VX&n~v9QRq)eN%7;RrYezXq4u=nA^o*RbHZ;!#i3q>YfN{{ ++zdpf#cNOu6?$AK8)M}nEpsZxg{i-=M1KzcUh6~ixK|6XGP3D>V*w=TA+$xaLD2Fp>4 ++z;2cD=BA=sX8e;@Zk7cMWvp{G*oPkmO&>vJk+JU*#uezocEDP=nG9h$KKJN`6eHC^a ++z{4gbWUd$viH8u52u^hInW*7#W%LyTA5NS>er@dh1<_i}6))@L2o5d{GQ8h*=jryYW ++z0ae4^pz1mi%zQ6M9p#-jJB4yGN-HPyM0xB~6qGrofK~!X-(0u@S06tuvI;=`eEj$^ ++zL_|ciE7BLqDuy23hb2{c`LB*)qBah5mwjhrq1IS$T`;{?g3$G6P&FMQ0cqF^R1JE9 ++zs(ufY?qIff2kW5O$!INrK$PPoH^J`A7?>W**_ev_jRr`) ++zt|-=^`nC&7XD}bL5X^W7%>!;~VH_d34(5JE2%U380ZoP_YZieohDOnF!|*aV%p{)P!k*igU*=2X+KQ@!-1&k ++zc0%b0syZF;?@nOu>ZO3fJAIhs8mJC&IVj6jE{c74+?)i@*8tatWANYA+^7p2s_WmLEVYlVe!^uP~Xl4ViVJpTJ(y>XXuCK^PEV~ ++z*C2BwxLawH8IN+H^X#1(Fch^!>-kc?Qy3r;n@OPB6R8Cw1KD{A#GR2K?%=YWvP`3~YoSWlX%HA5Z4mBbVqy;H ++z_#wp-6BT;$3ravy3F%OKxTgfB>wH$%5jxG5a-E_8)$0O+SBRu7yA)8iksyq%C_W}+ ++zE0=8&Kw(=12=n%U&}}*hO$K8dCW2~Xu%w~npU5{A1JaVKiO^u`Zct-i%C;E?+XBuT ++z)QaNc<0FxUTEj(lMwXVAWl_Zv`N_;dhuutoa<&U4FkR-NxPf5x6NdI~+>|;>QH;WS ++zJs!=-X>&-zWKRjqb|sVu5WOQny@ku>a9xr2<2j;N7>LUQK(MDweFUpYvhm$u{IPaM ++zNM=_UBt6GHC@hWvqT-#1W5rE}bs`ya)XB-oNpivZR_z;ZbV}-N*p_n2XW&W35>S_$R?5tp!P!9 ++zs3){EG!BjC ++zZ1Oi2$+DfDowW(04Cu&_BQ+3Eo)VCke>ev-8^uK`U9_JHs@CI}CNZI+eEaDVBs?ax ++znw!VP*SH_3tfzpuR-=27{VRl}vO~IEN&q29!E5NP919{E?2S@u;S9Il!tBtc}?AdLvdE ++zm{>+e#&cI!*YA{oSQK-2cdwk6m#5>TxA-ffU`CYyjGb{Xlv1DwJr{s_JmzGR ++z_JHVe2*f2PKqO~Q(QZ38wLJ<`lXE0li~O&FILaHfaFNtz>`T27s|*08r>AF6m@uJ+ ++zGKw)kpMCaOc^s(fg!!XkH$I3d>C~0Tv}i8h*tF8X4Ioba4Pjxn?;Wl+wf&N*u^|a+ ++z5mgn;*9C((V7=r|Spb<14IDfT!hB+4VseEF6+YDg#3B7pR#sNHGEt0(PJmCWXTF^& ++zH7%hjDGF{HI8@>_HTOn>9T!LYfH40k2pi8zkPaw(5e}GznR}(_CuRkcnPs&9$=e`N ++zjE;`Jj4UeXtkLFa^+%{)zbOI5B&0%}0rN{>N+XH^M%I{qrom9*tw9f#ViXBSU+g!5 ++z;NlA^pYz&?w&MbbgEoLbvn(&#!9$?&EleAkmii=29bP|lP`#ij)AZy6rJ`(O++*I#jW!J ++zcD`Wc!~soX6^Ts&5julaDw-WTc5EphY8VVw1%H2kTjdg6D!b0vaH#Z6NiNmmcgk?Z ++z9xIFkp~-??D?vSW2dG{Az+!0-s43Cha87d8EbQ}vt(-ir4+W8?s(P+KI1?pTf#&tG ++z&0N?UdPCM8DtFNG7+AY@?Eqq-U+y4VGaoW!NOh!`sf=XdH}4c4m72amR5Dh>rXd7o ++z>ueHI9}I=&4l_X244>0s9F$!d0v4WOV6hG}@eMre6CfJW?10fB@5u; ++zonUpEwN+ENm;Fz8cz7@}_(Vs0^!!k{u&}VH%1}?T;Xn|4+-7t!!1OO1Onu4u(s8z+ ++z3J1b$BEZP15Xx7W7AmU)P5VLFc}EQaQSyj`U~S@vvNTXi1NwMMsS2%8BJ-l0uA>XA ++zJ$ymAiobxWi8x@NO$@GGyCxca69+fqz<~qnp_yeX%`81L3)+tQSr-gx6Z#_6j{^$V ++zmN1Ntz|mt1+nuFM*Giok2h-s}ax| ++z1oW#CPz0+X2@3)+YHgJ6MWq^gHp`x;uzP>me+k6i%g{HkoX(v))50pzuYY-hZYRq6zHIgDy_hr(Q5zVQQ*071k ++zRnlA=O-6DDOlCkeZGAXGn_*CP&QS@_NjF3D~>hK<`I|^CicMKv>0*O0ujp ++zyGW{E6BH86J*0xayEH38plF7KO(Ct&Lc`+}1lUZ8esvP}m7VAVA1w(n0_YqLU~$N? ++z;5dj5+nCQ0`T7AijwDSdNZhj*j$>)|Yqh ++z-VN2)qO=DOp;5o-dZvUzX+URJ5NWAh*ZEusngX27LM=F34vx>3kWXOuGciMAF<>#2 ++zTZC}jLnS~f&R~c?4eI&FKs{qW=0aO^Oq7`xK9l*(79*uJg|cTfFZ-qY4d%npIbXm& ++zSLS^${KE;BM=i3$u^H%31BFCfhlahU=sDl+tcu7?iyqXC^cy_o@siG ++zflDClMuLv^;OHIP+}wsypEqybT)dU9BS(%bi<>GpZrt#v@Tb36oFG;2FhVzvp-$3w ++zbmA(qck)XFiz<>#+$3;RwxwT_7Cd~{wa}>}mNb&~$!5w-bg9Bb^~{v{H4jjcGiHHg ++zm}Fj*Afmrqvir2oGCXo4!NI{an_7kUxp*IRROE}w+u7N*p%Nt5BAr(aV&jvb%V;z! ++z8XD9yGW|?>3q>L_K{82#X-ZS{g~}Tg0J;`oqOzGP!J&_1+Dy@wayK+D5q}WtS)1Vz ++zUk)QjuK4))d|O*vE9&cl1q({HP7yC4qF)|7cyIx&!a_&}Yon9WGGNw9Zz$KOyWTXk ++z<(mo3kdWV?3Z`tPrc6`=P7xGnFpAf(;31nAX3up8FM{iLQ#Hd1>I)4k(4>}8A7{*% ++z@zI+sbTw<;x;0II)Vh56auBH_sim>i^-F#Hpkk{b#v@R%z@YY#Ns#H0U!n;DHc{ZJ ++zFjF@LG#Q*CAas?WF+WHeM4-{UDs^*$1EE)yaQ@_BJrw&^oA>d}-lXPgSFviwAor{UFL9TZW1(tM?(rSFAVRMtf#}i)0bKM-Lt(1AQ=t5za ++zIZj1l$tsuAq=eIQx&+LUPc2y~pmk6{)7LgyR6&jz13=}jQ(=?eStXoT)b`uAZ$Izf ++zzke_46YtyGe})bnS^+m-p+=3qfB$}gDM+ly7M}tG=WGOvHe;pn55Z_XR!a40G)*Cw ++zq8uwd@bUwh788sKXgT65;i8H0nnJU$Zs)6`poQFoHTdF@{Kvh!q6w;Uy9wJms2UkRCG%{%Kv^EqmxR;|n7wW=f#mxSS!q}vK2RH|E!3tHCr*T58=F&Gd7IzcE8=FII(4GA ++ziL0X2_ww>`$21_9ezBrJ$&&df8$u(a*n&!D&)v}9=@)1+*cIyanF%#*r!sK$`Z&S& ++z{hgu1cy}1;wh=sb9)}}mu0VWBh6aj07;3|vJ9l!|uV23$+eR<*R^@Gd@BcN%tVxq5 ++z<*HY&PKzGvv~AngIxsNsczSv|d-aindR3U|y@U5r*}tyfQI%#zX;vZ-eI>oXTZh_4 ++zZTt{$lpmpa^X6pR|3dkG%9JUiLPJB(QKTdPM2$z0{|84wQJPf*kk|Yk1f@XM7|DA=zMk%tm6Zi_Z+eDRqv=k&c}8dXr_e1G@YB1lS4~WATBO0BRDwt6y1~V%{8VLJ(HeI ++zZTLI<8zB`90_)eWPa0JXg;s1ez+boR)TvX)Y}vBKTpu4F54x7_!L^0%`7e3~A8`JC{>hRuCHVU5uPrFSGjx|aEHnu< ++z{o0hxHf-4N^GcN}eMz-o4vw6BbuRzn`zq5pbS_;(*U~-yo1hfx*r}tImX-oKRk2&Q ++oZWgo@nS{R6K03x>d@zUmA0OF+&A4>sUjP6A07*qoM6N<$f^8!2-2eap ++ ++diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f8948e3217b81bd1cf6da25558fa4c3ce895f544 ++GIT binary patch ++literal 5248 ++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 ++z@~3|@J(6uugm2u-Wjf9;c(d>)Sd`XM9Td2 ++zV`SyaFBoHPyaALfYX ++z8chWv&|3AX^s#fC?KOMc{j|nqF^e{`ISC!$`$v#uM1W9DL5z*StO!U%h*3!3jG@6T ++zs83#zuYUO@Q5dNcKTW#Ct6M%679ae)QGWZ!yRCm1M;)Z<@L!wJXiw)LkcoQP>+EO8g(vPipUWp!(kKj`*JYiwOATa6pE6B1QA2~2OE5FSyS|y9+5tnY`LJtGyRgO&6E(yh#)eP ++zj0h4bi>ld(QBREuMM*|OA@nwSVQ}vd46mM&*R5TpSMmR{BCq~M^PE2{C%O^U7mqZ- ++z?BNaG1I6g($Qb5}ndI8?@oaaaII!4Y+bJpA!Bl~!|Ib(B=~0q{bJQdVVkinq$%|`^aX(*cLr?q8kKE4>|i^t#a ++z?Q@3Ap73O5?Fs2zt1Gk9-&Hio(;UljyQ7aV@nK7_@W@(_NGKX5$*)F>;5Pxk6v8(n ++z$K+wPvyb~&HcC#!uwNbN)Y$dD+k$hR!Aj~**XAFdze6_L1L|W~Zfhaz@_5a6HCKvr ++zG#L#k@@21F{V?h^rKSO_uNf?>l++ha~ZRRi^g@(7DYF ++zw=vz0vjdf47Z1e4jPZG?*sYa1)_41#=+8;ryS(`XIWfj%I%Es&H_=e^tBj(t=EU#+ ++zs=%nd6A=qdem?ONF8EZWiBa^qW=Bd3%uG|Ihi5#X?HxV8OkJ387xQx4&4f;?&J?V7 ++z)jv=9LFJFP9l@Bn2gm`5sX$CiKxZ2W-2_ZHJQ?v1KzS=qp7!ywkD3sDoQ%fBGghdu ++zb~8tA2s-WKuF?H9#&*>fzb%frZb|FYVqpE0!ve*ELe0Va2W ++zp=BVhYY35pCJ8YCwN0n^IYgMy1MuD-;XB0r#$v|6=>E>ZJqGX|FL)=8th``mde*G@ ++zOULZ{lcV%keD%>Pj9;ty__r`_1L&CnWDKxKApwX&kRV{NC&?V>bBcd96mtyDoKWVy ++zbZD#06)l?Zoe})<3Syqs9&eo8*Skh ++z^TRmdN&PUrItrOdR6hsCQB9(!Cm!7$pZvai#TZi_uYKNs5QQ0+xl74LGQ|t$z$+ou ++z7m4e(U3*tx_)I)#j4%NlJs{RFs$_(Y6EK43sz;6_QA_2@g^TauiS<$X#-^jWH9|h; ++zHIlU)UQ=qR8|ME%!+ERaxsH_w#_ip?oPuMAXoR#x9w&m5h ++z3Di=Li60>Dp4#>M{z07v#^7xWX$xog)TtE-CL=>s-Wy!LEXcbt@ODRN7)k1P9T|hT ++z2Jy$5S3I`aEZ!4%Yg>A7XQBoW9O;-KmktPfqgzT%9seS9{2@QT9Af{{T8v6WKUG-sQp&)wA&{G8$VIHmpoGy-UjUxk}OoIPQmP{lVAF$uz=LZSva!}$7{mfND{D+5n& ++zglK2PgzgDCmLh;^!XyxSrDI3HBc*@|XpclJJpsrXR0T<|1iA#YpmRQD!mOhS@JDF< ++z3BV3GRM<-+!S`zo9>7I^p8zDl3YY=W3AzXn0(?Jr{2>7z(EYbO=$?2b(EUo<=`i>s ++Gd_F3DCs7Un ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..e23f2e3aca84336e3a2ab9034928318218683ae2 ++GIT binary patch ++literal 8186 ++zcmVPXMM6+kP&iEG9{>O^p+G1Q2}W%sIZ}t;_3;Nha~lspME@rM ++zKd#PWssZeoC)FOH6gA-pnV{oDe^kCa!~v6J(K`U!jieD6RWohY{OE#BWZOP^4f3`~dj)3IqxlnxO=fH6zsGNoE2}NEf_46KFZ10HErifCOqYN6w^~exGW+n_;+~P_J3_--?r|rWGAC4anTPjm3od*T%{}(sS=YMz6Dyhc ++z6*j!?Z75Bfq)G1X4^g(2u+ha>q$FWeMU%}JK!AS(<^TQXztPF0!E%aihNVFZp@5WT ++zuj(87(3N%YJbJr*y#lw}QlZPIA-ghtX0mWFQXe-f&=|1?55+e$LrHi?tf~?mvnBk}P3t ++z7L$X1h=V9DMd0u7|8X2!{y7%bRs74^_?L3*hW>*rmiP5Q{q6PUp$85n;e=L(f>xZ4 ++z^kwq>@yZo+-Rn+u(TIt~2x ++zjSF|(`Ox3`E*xaP%l%3}W`55_(Z)rMR7IXtlqtOlv56A`0GM#&xUf&-mt$HX@2mEr ++zNbJ+xOiO}3umFHg)CxZZB^GCoigNfNAprn^_%6@Wo?^oIQpC3)z8MJ#NCBW-kEotz_#ut=QoC%#n%pSdi+l)xAgVHa-tfiM#_#ADAKcqfFGsn; ++zC}9EmAPNFN;zFctm&8KcJK(rvs`NDaK>&2%_XzLzt?$r!+W;3>u4a9^#v;{BAq5J6 ++znPI8LXgKc|nWEEKhKEOK3ljkg!V&HYpPfj1ZD_0GaLW{@=4rFJ ++zT_P-%(xE^>ku-lf$%b;Dtin(XgB73)CqryGZigiZj*00_6Z=bySu^MXdGjivIf&C} ++zLxjOOSA6V}FBEk;GNu(#6*%g!vPiu$r1+Gkp?X;d&gz}n4I?isw;!9_m^o7A8!Bf ++ziwjnLKLCiu&;#Ni?gbF*dDkN%ilKs+;~)H0{O0t$^TW6)pu>(OGv*v5vcd=>Bm^XY ++z9SksFYjD*;mwc=$L%{#2jtS_%D9u&lJmr;{n}P0dRRKE++b$HjDnafms`I!ojX2dJdtEIdM+MIWRXur2ofuv6ulVuNs#dwj%~ ++z9;TPQe!lJ_H)ofeE>Zl#2VVL*Pv7_*We5R)ga|#LP97+#c!Yx+8~Jzf`>s>}IrVpb ++z<_jUfmkIT2Od=kch`k)*JitFkZ!2Pg36PS3BR1Z1UXhLG6%lsW7CWD-ZggIhD%Jnf ++z4Q_OeH0$Y-{q|tDdWuQf^ElR2(U5<8}}44+q8Gr;^MoU-^uukm)`fGRqa>58=C#> ++zr;51)Kuf}=T_B-A02m*ccli4keESRdSJ;9*Ez28jYbi_$zQaV>$th6{^YK`l`ZNp0 ++z1S5=aVAt4YuMFsg>4egbkO-p+z0Q2zeD|Dl-dL)49^m ++zeCfKwcYb_9`}N;OMC|}jAYe`ym<<6)5W?)$YwvI=2+(rCyoS0N-vuil^F2(klVJV> ++zhQtB~m;itTq(!AG?9iQ7t(7QQpaVgdG@Z?6kxH000025G{9dL&<1U0NT#At5L9Om400{x5fgbdsKtKWj7__Z}IP%4KiP>lWlBoiq ++zt1arLSs=SbCENg-5Vt=^y=)TOF!?b@(K+CRddKd!cGa;0jTP2B(#;A3by_dGN(27E ++z?%ATf*JnDTghD~601!Yz2}BS2&`?FVZ4M4xMP7CK_hD+DnhH$;;A-Efgq$MXS~D&J ++zsF707ae#e%DDDGN<~;O}haYno1^@sO7yVUVH}s;$R}PL~qRxKdch^_}ur*cnmg+Af ++zzX~8AApn#H2GBx4FzinaS=rW2kf(HJaSA3xl930|`+v{( ++zv{W#}WRJUT$NOexTo5)m1p-6=QkPsjcedt4>&`RIp ++zFa#XI3}!GRZ$6WGlOX_lh~J+%-#I;0$Ke4;nl-Y)UM|Ty#`Az_4@N&2O!se#O!lJ- ++z0N|m7pR2Z5XmUY#O$xXw)xB--UrA2rX~!X$MgRc`AOg|A5Ly7Jd_l3>VE9)!f*GA7 ++zuI_MAbbSLr2Y#8HGgoCXL_hW(T4Dto7mIVmk~bc-*ntn?qN@wCg{GL+R=1^lI| ++zF3R_3Lp@El5ENe3%8 ++ziw7MLn+m{xUEBRTF%qR6ErbCLW6v$4_b>kDEQ^V*`q1Bm8zmYwn(7J{>q-Bv5inF~ ++zsuzq52@3#JsE8VTC4hhkL=OhgKvG_f;%J3yd8&=d4Rp|h9d6!LSv;!&V9;!CZ-bZ? ++zrztgx#{i1jx#80zje~ne+gF ++zpz8J2DNCKAt3;4{>`}jLg?KXz#`)QbIYtrk!bVcz9a*Y8Rq@2)b`_yHaq}; ++ze=yC?OE=*eGpFh%i!2kX5kLZfVSfOC2t*$S5ER{sG@;ZdAt~Y@Ny$dCf(;}90Dy)1 ++z)+cM%D?ed^%uH|QazE55aj}w}VF{3?T#U=?F_{@U0KTQopvHfAT`sHl5v!N!65nBW#Kw%RF2G9qT!;%1y(S=802Y@7DC0Ria2_PT= ++z1Z+zt@i*Vb?|uRRiCNq}p^r1tBh3e>KRe7bz(~A6t0OmPy2c%$%P(=?0 ++zPyl7lARu*W6-{?INQ1aWmSGf>(z+d)2?+t9Zk-(Piyy4q>;njC*7;$XIT;c$D`pER ++zkT~=cQjDI1G1nx^=#mL_rT9Z>kJDR1KMoL7Qx_@ecCp^ZFoAXp-4S-j7!P9qDCru$ ++z=_PBt9l!Kcb<9K(NPrAPX-qhSzy1w=^K$?qQlcsIAg02_iVO3g;A)e0j1LMGj`cID ++zEI>fxD^(FCQ)v#eKF9g<#7ZKCRH`mT)UiDX7`3r?!AYrSKaf%nCm>1KNH(0o$}7Al ++zL_A@1%OntVHk|3nMNCvG-f)oEAITe~&zoa(^N*{L0#^D|8{skMj ++z3J-yM$g}5_fYd5MjpTH2MC*wENMdr3p@XxJas6-kzbUkfiR+*iO~Pb*fQ171OD%W) ++zlG6}iQ_9)Hl*f?Osmcnm25fj=lt07uZnj+F>mZffDlJNvVMD`PQ2#!j@X2r>3_%< ++zpGNx|G$h3UY)C!l!h)tb=?MVdn^#6mwnTFT-Vb1)(26|E+5{9!IR;);ASeR&7Fyj_fZeaKZ ++zmV`4ngR{gheV2KDIRK%IJIjS@8ssb=*&sRo@JPcr{7bD<5(LYTITV+jGSgMB8-xJ> ++zxZT}ED-Hv0p;G%Q2Q$=?!wb&v!LP|IYAxMnx*r+EQ&-bI%IZnFBuan+5#1|OZ@9X| ++z_kzwRG$(-s5cCc1Ibj*Dyo(jrBn0=v5?mipo#7150?Q7+`}?ZA{GX5@GZWjn9XJgz ++z9u|a}^flx-ToNgHfq(=MOpWaTuRs6*!QJN($I%1;-x9p)PBw1dB6!D1N*rZAxd)J5 ++zN+jJj3REbhU?atfsE*-57{Zh4o)8E~L@;1YB0gQw;{jO#Wf~ro^9HLUWRKSt{OH$- ++zOu&H=lOU55gCXGV`3sE0DA}G*Vq2kE<1YX|002M$NS^CtGK+zrRFhVKE`}?~Cn=LT ++zJqb7cvt)m01f7m@?m{X62_UFDiZ=E*8crn;645#2}7gEW=3p1q`-u*~ex8 ++zqY-pl0Ra5$ckWq9*N6KGz<)lYv!@uamR&3CJx+8cHdvuT0SN&BB;BsDegrLO{agMI ++z2EnqeKmcf3*gyk4w(_Uvadikl%JggVlqs;D^$@xP;V%S7;@8^T$15&rlKhTbG-o77 ++zPR{q@hmWz#vE ++znZdtTjA>b4b*CgU+3+%#PC4-rlrLv|mIEdl70umH(F98$(l$Y*+)qjV2 ++z%;LdPbb1h|un#e`U=1yRfB=xtV_Ui&?I{RAD2g(Py9d@tsX%J)S~X+gN+y5Wz{L

BeL|<1@U|gTx!n^BZI`^kpiSoV?_pm-+t)?FEHrct3{WD-cHv@xUQ9XF%1MHU`GW2fPjVq ++zx;N+&RvcM!wxufpNe$zIAr0A&al8eGbZl_Uu&i-!AffVwgbuYS6l>_9Kw_{I)%HVA ++z+^qSJP68leNyOc=-m@c0RvgxD7$f0&4vr&=d+)j;fg~iU5`bP8xgx$}N#I;V0tkSL ++zh#(`NhaiN+1OTd4Uc;FK?&&*=t=*xa4aXg{q1uWq@n)o&NB~<$c<#_L23{L!~G8w*mkUs6C2c)KRa>|Rc--I%buNbC%mhg ++zBNYpxx&f%ndc4-KpX@>cXze8I?unqmE|E)iLXKhKSt<{DoM|t5&;Yg?ARr9@2uJ~i ++zfK&-cdX*d4`X_*Z9WAs5FF;S$ATl8UZ09bWOs(+_R!a9+TP$6tsKfvW34yX2ntw(7 ++zADs^cKxwewJ%IuhSegJB11J5tGK2y_^%P@RhYrnDSxaspA)!iY02D^VBl!uhoT3Gj ++zhmmOw4FpYiNaKH7Tm8ecI@LM@Rd*@k5er~I1wdfiwuK%qddlk^0ibM3XkY>&1C<=Z ++z!s9g#?x%qQsP-ZtAsI@iat#{*2}MwK)&Kzz8x~yg*@ETCLL|2ZRGtuv!%+P~?3}_q>`&oFCjnO?!?N#=z&b5}TU=0Bvp|~7{R@)P$ ++z<4J2rZVtBD%0xz)+9VaZl1%_Psz;o(7vBN^ztJX(r9zx7^l+wPb4rwxvajNq&#%1@ ++zfZ5V@_w*UT#0x};0{fwj&6o-f4XA(wR2Aq|u3-c9$OOaJ0Xvi?5G%bboMxrAu1MK} ++zs756K0#cP74*&qTt1^GLR%@U>acYP51hMp{)l1(w*Aws713>Rq;k|q2n@vFQ2xQyD ++zjHsA4g=r&G1?c@GT0bSvMm ++zFR(sEEMWo1$Ju->xS#?AT0D2p3SVZlW!sRan^;))1D*4ym{MlnVPxLG21>0;xS;d~ ++z2?0?ME9jsAV1gUDfbShUA}yAZ1VCX#$l^T{TeTc(Evs3;0v16|_Mt0k=?(xokLb92 ++zp5RA|Cdf^=mPC$-hI2L!At?jsC2Ps>hy?`H$K7?f2t*5OXdnP2gd)`)E_u;Lsg2Kt ++zCnPHvHnf<$uhCHl-kE!u!$NYh1BXFGNrM1rMBwg0FhVtuB4d)YA8u`BGMT9$7$~2i ++z1?;*a^`QZ1!3tI=<}3)Qx2grzj(lcxozw$J0GJm0%{JMyff|l4vAD{-i^WlR(~Y#u ++z$bM7T3BsZ;rkPAJ`NVm4;IRY* ++zKZFDTfIk37BKnPEBKf*8CCdz|0YEnf1SoulHx<=^Fv41d ++zNtoT1^pA5}`S4Z0Kl6R@r;P6lVoX3VpaTF2a{v{TgHT$UN8E|G~@!QE*A$Or}OG>H0~8r<7}1v-S3duIrG$# ++z6<-%3Z;7`P-mQ;-0H`xZ;V0=9JA@N*yNYc$I!FNRpTzrM441?TcR_(ve6m=(0;VIE ++zqugMj#PzG5DlZh}jGN!&qrZ(w?(Ohvn)~XZ0PJuozDJeWNBsXnnr>780i}%IS}=z6 ++zRbes*eE^!GdLIS=)A`8aRwQ&!xR-KyzgwH9Xy?qj;IZ$BiE=A^Ldf&1R@{mN0U)vK ++zAhIHNiClY@VJABX06OTs21ap3itrFrm^g6MIRmC7XRWk`xnTKY^7+q+m*G`Df0_GX ++z-Udjwu}ANDTOHeb@7jq(?O+SLFq-isR7ePuvWJ0f6c1>?(I~<|gsN<87Y;Xw%u0C%t)OpeUdLX1RIM3`^CQ~vPo8;@FUi>EMcU9lx?0f3swEo`A<*b55D ++z@NxhNyG85|!w&%9QwqP9yMA^UP52WYfGBJ}Zq8j05$2~w|0RkN;@`* ++zDRTh487g4h4hT1p;|z<_6}f>OBs<>wfS?xAcmRB)pL7DiS1laP3V+Bu;LRNoH!D|B ++z2OxsXc9cBPH-n>;RKx(uE4AJZBs$7h9POOiYtT_Vr2*xBL@yE&SZGgiQ3ZTAh0FKw ++zr`WXraOG456>GXOHNgaMWg~sEFOK$V3hY4eH_3M!yp&)!Q@2hP3z$PtSnFp=&?)8g ++zKBPnez7fHN^;Ai1qumQCI*cehFahilQXVyw>AoE-#6knm!2)rMHrG;_t1Msv3Bk@+ ++zxCkG;k7y480AOJgM*+K`Rs=#aAOSR0EHnVXWYrK32mrM&oa2GX@(_zg=CA;e008QW ++z@&V(^006+U2+eTgb5JtFBG>?cfNk2ZF+;$F1c@UH*Z9AT8=Pjjg@vCvrBn5u3gu4# ++z0O0EuJP#eqsz~RANiHY=5)w>YU`F9X2tjoCr!!c;TU_MOMQ< ++z_!iFcm+vQW=ne%Sl=vXQ)CGpr3@<>qqUVdyZS*}o|NDi7L8_HEAR&Sw8dCEqL;C=9 ++zJO@$!-!F^22q_Q%KB)-?0ATWJQjKOvSd!kkC|Vd>Mh3<4Kg`>Ss9`G6s@Lu>6@-{B~n)vTkJiG5fc7#FSVrM|pi%ER2T(pbLM6D0zoVUT~iT@<{)} ++zaxpj4<0yuP5Kct+P~+Ppn)fgF!(I1sI-He{Re;kjz#cXkMC$gc!!1>_QNJnlum-e|obNhHUVf_0l|L=!hTN3Lv ++z-H#XZA}o^@A^||hm1MWZxA1~{C=gd9_p=4bVidpziB6ox_sRE7tNaKzLZc?W6C!4# ++z?oDGrR+EyU!9+v=1n^(*?!2}Ch$e7PC6lQ03I8Gp ++z{*91K)-!s{W?7lCGUNp5K~fSK!Jf$i6~KrP%G4EfB=t!}RF{MLj>bm^0q}2*WD*b% ++gFJpU%t;G^3ATc{aj|m_E2?_oUl>hgi|2_u*0CeJ>hX4Qo ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.png b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.png ++deleted file mode 100644 ++index de7cc30245a2bf49dcff7173e0013d7ac7d4a6c9..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 6322 ++zcmV;j7)|GiP)N8p ++zYY{4~5+zjTGrr%*^?? ++z*zq#|Up~CUDindXCAdy=&3_#*t_jpRa}&oc^7HdQd-38$wU;kn)+V9vw2zLx$vyur ++zVA!v&+=re1=O2IkVTAykQFfz5pd_K>{IB%+KQ8pi;m0EQxwGh6x`*C#N~Dc{1u%lr ++z41WLp_b;$x4%oo}lq~Exkl_9jiF_U11I3^2N%z(>U*WH=F&dS}PPD`hZNu$TJtzgw ++zpFe*^g5POdK>JW$>q!AW_DXU7Yb7v#Z+b>cJ@Zrj<+Mirj=!uWHu^L+S_wt&U_nVW ++z$A}cjaP_q7G(Fo`n?AGyHs@e!B9wzlF#5lGDadR745d~bq_*g{??b>573MSzg ++zvBC)(G%PnSA1=fs!#GcWsMK#Mhy=xICJ5~vQKmxK9_}#0^F*n_Q9yddxA5rEqk*NO ++zN%9TxL0t-iLtt(uJ^;r}K~R0z8m1+JUH?t}H!d+=TO ++zUHJTL9H>HK!6GykDxSFo)z009W|8sG_j)qS#`Ea>M|j=aK+4U{eHj-Q*Z7^7o18=7 ++zwgNdj?sIhD+(~-`Q#OY}H3uIkYxk=z942c)u%5@XN!`~II&27n;Wv_?=J`ADF+wmu ++z9Rp>GA!aCael5IiW?VX)d6)y)B{WePQcg}zT1-q#MP(n~3J~7>xV}TC$P^Km29|RV ++z8iB&4?^+a35c~WBV(--;PVfPXlQ)Y6q$nY6>wP^5!X7<=+~*~C+?kn~C$Vd0ZwyFQ ++zzr4J>srqp8(cvAvco%Ao+h$Z_48ZhW1%my0Fxzwfoxo8_1=Om^x6gg&I|Xm2B6));^hdwJk?C762#LYd&`cMga| ++z6%qqYFUG^^%$(vn^8yMs+1c4IE?v6xjk3=r0)$#~Kwo=Eb83v;YQmH}b-~zT-qX<; ++zgrV+G=J>Tzfuoe#=${VX&n~v9QRq)eN%7;RrYezXq4u=nA^o*RbHZ;!#i3q>YfN{{ ++zdpf#cNOu6?$AK8)M}nEpsZxg{i-=M1KzcUh6~ixK|6XGP3D>V*w=TA+$xaLD2Fp>4 ++z;2cD=BA=sX8e;@Zk7cMWvp{G*oPkmO&>vJk+JU*#uezocEDP=nG9h$KKJN`6eHC^a ++z{4gbWUd$viH8u52u^hInW*7#W%LyTA5NS>er@dh1<_i}6))@L2o5d{GQ8h*=jryYW ++z0ae4^pz1mi%zQ6M9p#-jJB4yGN-HPyM0xB~6qGrofK~!X-(0u@S06tuvI;=`eEj$^ ++zL_|ciE7BLqDuy23hb2{c`LB*)qBah5mwjhrq1IS$T`;{?g3$G6P&FMQ0cqF^R1JE9 ++zs(ufY?qIff2kW5O$!INrK$PPoH^J`A7?>W**_ev_jRr`) ++zt|-=^`nC&7XD}bL5X^W7%>!;~VH_d34(5JE2%U380ZoP_YZieohDOnF!|*aV%p{)P!k*igU*=2X+KQ@!-1&k ++zc0%b0syZF;?@nOu>ZO3fJAIhs8mJC&IVj6jE{c74+?)i@*8tatWANYA+^7p2s_WmLEVYlVe!^uP~Xl4ViVJpTJ(y>XXuCK^PEV~ ++z*C2BwxLawH8IN+H^X#1(Fch^!>-kc?Qy3r;n@OPB6R8Cw1KD{A#GR2K?%=YWvP`3~YoSWlX%HA5Z4mBbVqy;H ++z_#wp-6BT;$3ravy3F%OKxTgfB>wH$%5jxG5a-E_8)$0O+SBRu7yA)8iksyq%C_W}+ ++zE0=8&Kw(=12=n%U&}}*hO$K8dCW2~Xu%w~npU5{A1JaVKiO^u`Zct-i%C;E?+XBuT ++z)QaNc<0FxUTEj(lMwXVAWl_Zv`N_;dhuutoa<&U4FkR-NxPf5x6NdI~+>|;>QH;WS ++zJs!=-X>&-zWKRjqb|sVu5WOQny@ku>a9xr2<2j;N7>LUQK(MDweFUpYvhm$u{IPaM ++zNM=_UBt6GHC@hWvqT-#1W5rE}bs`ya)XB-oNpivZR_z;ZbV}-N*p_n2XW&W35>S_$R?5tp!P!9 ++zs3){EG!BjC ++zZ1Oi2$+DfDowW(04Cu&_BQ+3Eo)VCke>ev-8^uK`U9_JHs@CI}CNZI+eEaDVBs?ax ++znw!VP*SH_3tfzpuR-=27{VRl}vO~IEN&q29!E5NP919{E?2S@u;S9Il!tBtc}?AdLvdE ++zm{>+e#&cI!*YA{oSQK-2cdwk6m#5>TxA-ffU`CYyjGb{Xlv1DwJr{s_JmzGR ++z_JHVe2*f2PKqO~Q(QZ38wLJ<`lXE0li~O&FILaHfaFNtz>`T27s|*08r>AF6m@uJ+ ++zGKw)kpMCaOc^s(fg!!XkH$I3d>C~0Tv}i8h*tF8X4Ioba4Pjxn?;Wl+wf&N*u^|a+ ++z5mgn;*9C((V7=r|Spb<14IDfT!hB+4VseEF6+YDg#3B7pR#sNHGEt0(PJmCWXTF^& ++zH7%hjDGF{HI8@>_HTOn>9T!LYfH40k2pi8zkPaw(5e}GznR}(_CuRkcnPs&9$=e`N ++zjE;`Jj4UeXtkLFa^+%{)zbOI5B&0%}0rN{>N+XH^M%I{qrom9*tw9f#ViXBSU+g!5 ++z;NlA^pYz&?w&MbbgEoLbvn(&#!9$?&EleAkmii=29bP|lP`#ij)AZy6rJ`(O++*I#jW!J ++zcD`Wc!~soX6^Ts&5julaDw-WTc5EphY8VVw1%H2kTjdg6D!b0vaH#Z6NiNmmcgk?Z ++z9xIFkp~-??D?vSW2dG{Az+!0-s43Cha87d8EbQ}vt(-ir4+W8?s(P+KI1?pTf#&tG ++z&0N?UdPCM8DtFNG7+AY@?Eqq-U+y4VGaoW!NOh!`sf=XdH}4c4m72amR5Dh>rXd7o ++z>ueHI9}I=&4l_X244>0s9F$!d0v4WOV6hG}@eMre6CfJW?10fB@5u; ++zonUpEwN+ENm;Fz8cz7@}_(Vs0^!!k{u&}VH%1}?T;Xn|4+-7t!!1OO1Onu4u(s8z+ ++z3J1b$BEZP15Xx7W7AmU)P5VLFc}EQaQSyj`U~S@vvNTXi1NwMMsS2%8BJ-l0uA>XA ++zJ$ymAiobxWi8x@NO$@GGyCxca69+fqz<~qnp_yeX%`81L3)+tQSr-gx6Z#_6j{^$V ++zmN1Ntz|mt1+nuFM*Giok2h-s}ax| ++z1oW#CPz0+X2@3)+YHgJ6MWq^gHp`x;uzP>me+k6i%g{HkoX(v))50pzuYY-hZYRq6zHIgDy_hr(Q5zVQQ*071k ++zRnlA=O-6DDOlCkeZGAXGn_*CP&QS@_NjF3D~>hK<`I|^CicMKv>0*O0ujp ++zyGW{E6BH86J*0xayEH38plF7KO(Ct&Lc`+}1lUZ8esvP}m7VAVA1w(n0_YqLU~$N? ++z;5dj5+nCQ0`T7AijwDSdNZhj*j$>)|Yqh ++z-VN2)qO=DOp;5o-dZvUzX+URJ5NWAh*ZEusngX27LM=F34vx>3kWXOuGciMAF<>#2 ++zTZC}jLnS~f&R~c?4eI&FKs{qW=0aO^Oq7`xK9l*(79*uJg|cTfFZ-qY4d%npIbXm& ++zSLS^${KE;BM=i3$u^H%31BFCfhlahU=sDl+tcu7?iyqXC^cy_o@siG ++zflDClMuLv^;OHIP+}wsypEqybT)dU9BS(%bi<>GpZrt#v@Tb36oFG;2FhVzvp-$3w ++zbmA(qck)XFiz<>#+$3;RwxwT_7Cd~{wa}>}mNb&~$!5w-bg9Bb^~{v{H4jjcGiHHg ++zm}Fj*Afmrqvir2oGCXo4!NI{an_7kUxp*IRROE}w+u7N*p%Nt5BAr(aV&jvb%V;z! ++z8XD9yGW|?>3q>L_K{82#X-ZS{g~}Tg0J;`oqOzGP!J&_1+Dy@wayK+D5q}WtS)1Vz ++zUk)QjuK4))d|O*vE9&cl1q({HP7yC4qF)|7cyIx&!a_&}Yon9WGGNw9Zz$KOyWTXk ++z<(mo3kdWV?3Z`tPrc6`=P7xGnFpAf(;31nAX3up8FM{iLQ#Hd1>I)4k(4>}8A7{*% ++z@zI+sbTw<;x;0II)Vh56auBH_sim>i^-F#Hpkk{b#v@R%z@YY#Ns#H0U!n;DHc{ZJ ++zFjF@LG#Q*CAas?WF+WHeM4-{UDs^*$1EE)yaQ@_BJrw&^oA>d}-lXPgSFviwAor{UFL9TZW1(tM?(rSFAVRMtf#}i)0bKM-Lt(1AQ=t5za ++zIZj1l$tsuAq=eIQx&+LUPc2y~pmk6{)7LgyR6&jz13=}jQ(=?eStXoT)b`uAZ$Izf ++zzke_46YtyGe})bnS^+m-p+=3qfB$}gDM+ly7M}tG=WGOvHe;pn55Z_XR!a40G)*Cw ++zq8uwd@bUwh788sKXgT65;i8H0nnJU$Zs)6`poQFoHTdF@{Kvh!q6w;Uy9wJms2UkRCG%{%Kv^EqmxR;|n7wW=f#mxSS!q}vK2RH|E!3tHCr*T58=F&Gd7IzcE8=FII(4GA ++ziL0X2_ww>`$21_9ezBrJ$&&df8$u(a*n&!D&)v}9=@)1+*cIyanF%#*r!sK$`Z&S& ++z{hgu1cy}1;wh=sb9)}}mu0VWBh6aj07;3|vJ9l!|uV23$+eR<*R^@Gd@BcN%tVxq5 ++z<*HY&PKzGvv~AngIxsNsczSv|d-aindR3U|y@U5r*}tyfQI%#zX;vZ-eI>oXTZh_4 ++zZTt{$lpmpa^X6pR|3dkG%9JUiLPJB(QKTdPM2$z0{|84wQJPf*kk|Yk1f@XM7|DA=zMk%tm6Zi_Z+eDRqv=k&c}8dXr_e1G@YB1lS4~WATBO0BRDwt6y1~V%{8VLJ(HeI ++zZTLI<8zB`90_)eWPa0JXg;s1ez+boR)TvX)Y}vBKTpu4F54x7_!L^0%`7e3~A8`JC{>hRuCHVU5uPrFSGjx|aEHnu< ++z{o0hxHf-4N^GcN}eMz-o4vw6BbuRzn`zq5pbS_;(*U~-yo1hfx*r}tImX-oKRk2&Q ++oZWgo@nS{R6K03x>d@zUmA0OF+&A4>sUjP6A07*qoM6N<$f^8!2-2eap ++ ++diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..464eaf4ec056199b18a17033a0590c298c8c0963 ++GIT binary patch ++literal 6944 ++zcmV+*8{gzoNk&E(8vp=TMM6+kP&iBr8vp<=N5ByfO)zZRHWFkf>F3*j;9DZ1{|S)X ++zd$ED4Iz~Wk2_TX5<(EVfKkX_K`|PT!*xogO?FE}ilH)W0MdA-`LdiA;M;`^Hkt8Yo ++zpkATG{KNYQoJNx5NExU7H}IlP;)9Pq`ab~x81TpdWB?cdAo8U-BLKWaKy|?>uG;(mexvsO3qJnRZqc3~ ++zI)*;0tzW)81t5#9YB40i9(n^-&)BsT0mX1EQH8M0j$y2SY^|}C!&twsD3}>42r)*{ ++zDTr&WZFLkPt5Okz^(li{ieQ^ ++z+q!Anwr!reAR15y{WNGb ++zAWkaf1F!7Pkw^zpLw$g?Z^R41$pl?EFsz!n7IRq(AW#zcOyj8z3=I%W5CN8nbe>Z* ++ztdzOAW6j*5Zh1e69+qhh;C&DP7hnU7k&Y4>`GFts!t8~p?!DVs?zXOZere4O3e&Jb ++zhsicc>Ty^2Kds$8zeV|#6!I3xG!>+5&gP4)lO ++zNW=rWMq<54P`6@qbdHq5X;U$BoNK#z(YKc@@1G^gkRj;-@e3o#fdwHg8(CIPysKcB ++zF+p>d3lyP#B{_P}sD7Qu<^?}8(&MOhQIVnk*KoLrc$bs?^AX}C_t(wM_bz_RWtm0XrFbro-m;^?s@ihft?l;TTyN{% ++zqu0Cez1JshuSs*@Y4P`ofBNm;`fq=cL8-VBX<8|&TR*WosiBC|cFJ)$Fpo2r2BpS` ++zaQr3251#0{q5S`A3_kD-7l@&)tUhB*uOXvj5G@TAh&u6T5TnYYb$w@ca$Y%jrAt2Y ++z`{%pOi>F2%KO=aDd9vw8-j-#2<7@I^*SY;C{@94>PArv@@qu~3QI2XWTPbobnDWHe ++zG$r2tMm3)1rImc(HpR2O#33QbSde=^X^thA^!m<%UZJOk=HBuVgf9w@#{6*yPV6tb ++zB>Z4S8Sg%7WBZ?;rV@_|TPGL!&z|BZeb1Zgu6zG`9JA6_e^+$Xi{85X@RL^te7TB3 ++z#Qz_g8L3no*>-~DDA)vqtWLb>ulYZ|GveahPuy3#+^he3%v$gI=|!d2IcqEX^NMJI ++zT&~f_+ ++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 ++zT=WOgS0}#;7?mKiFWT>Y= ++z1C#Ir4F6*I7fCX#Q--pAD%vpq(2Zj2W@q5y(KPLB_=rcIa<8+^({GiH>hc!tUthY> ++z^O;wEj%JCg5TkGCGE+b3W7dX&)|fDl5!SPnvN ++zLI@lt>p1bdZw*Wn-}qcV?)QWld6`Z7!nrZOy0H4MKljZNfBz4Y$W*yBZM%i-lGT~! ++zSBiMXO?xJYg%fWxt8SW3W@p7RA9Mj);2rqKbqvtJ1{i=w1SJ7%84gG3Nfof~B5`6Pp>J2#K^e-En ++z{6ksVx*`(E6AFb2$ON!$o&vSeg*_W>+meCF!oczC?>bwg5ml ++zN`@I_n1481+lZKhD@A;jamqdR_5Aq0w_&yCZA_Df8DIktV+vt@1sB?AMQRX|;=oZE ++z>*ERZN5=J!f9=PGa-GFSvo;ACDnM)DCdhNA5*Bo2<~1^pg)zP$9FhO}bs9ZaGU=m6 ++zJ#%Pc4Gbb?1BjB0ayFxUz4LIHh&hBZiqW!KdFjVPJNT^|F{&b%Vu_{Epz ++z*%JT$pN!`49Kr&h`=uYPj1ixzl(`1z$_3Ib5($?)(Tq4N2Bj7Xz2c6}C*IAbTli0P ++zl&EI{1{I>SCBT*%bQ9#=!=EE|B0ganyJ9iWaLG$Q;0kTn^D*j!pJ-?N=5_58ulY{w ++z-z_6oEPy!gtg8M0uLGDi4deHpM~Re}NS}mJJJOkG;r6=ZA<2Rt>+_h3F-{1^tCVYd ++zt!Cp_G*jkQG5|;jGfIY|oGn4aLh$9&aQTStF2+bADOa@sR3CJ5uWWmr%oL+yMOZA{^Cilf ++zV;8WAt11|$;V8*)l;J4#2x2z^mxwrzT`>kU9{AK}Dx!k^n(N9u1(VZj$ZQiS!`m^m+Oi)FhL7k)=TRn+m4gc ++zZNu?`+)6%BP=!Ivm^7X5F98ui+lrWjD@SyHNi4>eUqbATc(4`hxKO9Sy#Do021UlQ ++zzHvCZ^0IE!VVQ{jTNYu*o?){^?|0a&gm$x_O^CGOI_{LYMlG<^yW%c(kHd;=W2wQV ++zc`rSW$<^(R@sFc|C1jQR?WME4(K~Kfp(uUdoG!)~@Jr4n#x=0hC^sJW;FHW7-OL<} ++zYb4fjXnN?)Oj`{yCdAMF4hHOUkq^I#M*nIw>(E6hh(5@H*c6FT%i$IwNG^b-$J8;PfiNOah ++z9yDc2uok1wyEaTf0K&a?06G$qL%zhwAvtwjlKzqftoV^tO>6zMVYOgUyUragk`WU; ++zLyRP6&Lmd#DujUOg3SYENkx5O4#R@Z;BWr)rmf2LWux$AM-H!tE}%=;Tm}Xh`*rX( ++z_dwR-a)kHi!O;Beb@qyV>n)Y1jOndIYEgNLJj9wY;7o)B6pHq@^PkBJjnpHJl%qrq ++z`~8abP^ZPCGx@s3`@)gMqr)#6<+=9<3=D2lhe4@3(>((DgbKR=v|+2~)zA8a7T^4On5sZ; ++z4vMxLY4Ly)$Y`*3+7@gH{(PGoC62|Sy=%@K@JHm$>o511g-f6QHGlu3b>jCQ+9a-g ++zZm&%eC!h~W ++zhybHS*VQ2kXlh^+6z1npJ1O+1pZ1l1KmKJO`_Ij-6T>x4{QRq3@_`S{#<*1&i+u^o ++z5Z?={0jqVWLHV{A1rdv8%EAZSc%{1us|6C;EGqJV3M4g{hh5u(?Me_6f=wrMsRvB1V^#10hue!rsC-Dr ++z{eS>RC(#BhYK~tDwW?E{;nH#<0oYudTO`h66iTO_h{;-Lt;6;x#pXqV9QF5uEdUll ++zkb&Kw2BRWm0=&s!ZE9YoA)5Ej%Z(q5A7fq!-(n(^3XDT&5em0V+#Cj6-{IPp?9M(9 ++zr2kT!keRb3-$1zdUhdAOu}E+LWmtMP%E0`gbfrPHSMM9)t}Ts2S(qW~2mun=5p)C908STCipEk{Xxl&4A7SewLm@?SN)U$AzHB}h%mA@Q^U=5R ++z&0G_?6u&f$hWY>wjEAw<6bJ}XGG%K~(hl`UR2wKK ++zXw{Yah$_Ilz_(^!uMW2s}k2Zh9%tnbUk{7HRxfYhD43quPGK`%VCH&Boavevt4XNz2 ++z&Nso6H^?IUt_+r=Hv>6~1P44(wEq^7>)t_#8GGghkI)CsQh+ACcziG}MFtG4s72oN3aO|YG9I;k^s2qugv ++zS3sru=%o|WO3t~sWG@s1ivnM+$w?QR=0qXXbh;F^39%Yksxb3MnW;nEj=f~c$u+627{+QZ-6w#kSIsqdWy ++z5`L_GHjo@nutVA;CDI<)9`??^{~f&#aa{&hk!-v1dm$Yrp6#aervbID~^1*B?GyAB}6_T<2eY`K9}Bzy0} ++zjy!z$FtWbBJ{z~C2)vq%_Qhk7bPZig_x$BV$o0xuMj#6iU>I6G8X&-Sn|Mzcje%oz ++z()Enz30zOoH|^ttSK^FjJ_Wh~k7?Uubghz%IMzxjCPZ)OJumQbVE+2+ufy;`8U=6y ++z^q98KGW)IEtD$G;diL`GZ;Qa6C?3xCt7>W??|vC%7CwN?f?_BrE_+rYAdaOKrA7O; ++zf0~5yMjX^rnsss38tUrm;c8+wEZK7oy3cU~eu4vZGT#c0$F9I1@P;J8$I|b*y1FBO ++zn1nJL;9vnFc&6X#nmUL`&IK!%)9{ZOF2Ijo2b{?Y;7uLDde=E9Dy@W?`iD@6o=GgP ++zhM3YSNUf-b{OVdLN7C)^hF0=MO-;>7grN6KB$UB}gLx5n8nm{qUaLvJ3pR(s;I&2G ++zz|Y(d{PexRjoSd+s86BCVlVhEDHohF@4?K(TrkmOLGK$G@OorA^pE}-M#N^p#P}Sr ++zPrJ)V5t;hd^2SmXu^Syw#I@oA44ptkaW ++zH;zWY3s-MLhbyUV8W)}lqmZCSPBE0W>=i9OUyD+L;^JaECAK#6d~I#*P$^*VmQ-k0 ++z9|?!fa}O(kPI ++zPY6x_X{^npgKSq2>j&l4+Qs`XH5ghS5`arHK6MxH<39&(#8Th}&jJ0tLCry37VQ~G ++zs8Lp@i^_C)qJgA@ssQxD8l6&-7~%E>oc+xEWmT{(;Kq};S9}9%dB%4GKWQ6q!{g?N3diX@yRH>tZ{0|Tu;L1xb%G`pV<9Uf ++zB;=)LUXU17R8%ae!JzUBPt_i}5Dz^uvoNVla|hn+3sC)g4yXoLqD=+W2eUwL-x&d9 ++z2-<&>K`%HN^e>Vnf&PUgw$-~R9B1c41X2PS-6RIZWU{oYqj%DxIv_ngeOVJPC{t5q ++zRaIDaQ7M#^S3O?jaZvznxr@!b>iy}U>OUE65~%u31btH*1SbI0{}I8SM?04&*ja_K ++zW8(QAMM6ZT1tNNA%To&==YBbqAd%ad`A}9-DaS%lQBk-e7WCu-fhYQ)eCp{UO?rX0 ++z_cBk^yQ>hW!xn?8uPLbBodBwL#-WV`mDL6TI05`20aRzuPR9!tq%d|&I4={DiQHn6 ++zW71NPc=cKuL}cBE=sN`vbU6ktUQc3a726poD=Vvyh=?$fi<^{|N=izWiFv=lE$9aD ++z7GE;()FQB%?=z;U&DtP>MmvQd1LJ}F{wLs0>M%S`=h=01{SQbYC=LlF2=WRMy`dnn ++z9gC*px7Wevd?c*j7bwZ7fn=1NocyVrQY8-{GhZq9j(6|}-rNcJ$vc1>xvDvMGSg24 ++zKmip97VhC-WRhi+STI5<_D%VYy!jD~NW@h?Pbyl_)dRVffSiUW*)OMSV&Do^wz)jo=sv-Z;O<<@Ma9&q|`%VDLACCq8 ++zSd3ubD2#p|NArsX&ifj0>%D;c$OcrKk1>hqlQ+&MHX}hT$i|Ba(8bCPMlW}T;<8Gq ++zPlEjX{20XCm`bl*yVkj?s*09;kepedeaX@ZII}IlVS`5LlIfp{rotNw+1-OWSq$&Bp)tFi%3v>oKujvOm*Ql*kNpt ++z3f`Wz1>(~39(RMO(K;Y{Ua4Wz+v=O{8d_AK*+6p4SMR ++zWM_;r95{n*xkav^_KIS1VAH;7|8^J ++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 ++zP=;@yQ^(NTi>i^~LzVWW#{4?-q ++zM-bU|VFXvuG#stXoFmcGDnf!L0^B5U5hET?#1k$TqoFu}&_oF-j4j?53-9h!4mflQ ++zii?k=&mLVPK709Nq)jHw{;Fg3z32HKyn8RRQ+L@nQl3~6Pq=36LW)IL{nXrHyDc5KjPIFUykZ9yKK$WtW~bVldDpH ++zj2siZjkH?f-5;rqSm#dZ)CZk3wA%+mP~Nh43ROt8V?2$b+@cs-6R`Q)ZRzUkW(nVY ++z6^&XpNGd|P`?^lh@E%^d+z&dc*1W$%@)g3A@xDW<|8%I1Z6+ya ++zO;!B*OZ2C}NG>0_Mk-3H1?rW%Hf8i@H$)d4B4xv%#Pf(7<~gRyCA;ihV+VpFfStrQJS~H;Zq6{F=-w?*L^CWss>%hDgd@ ++z%J{3NPK@!PKfay@w+yg=L6AiOZb8O$t#;(Y13IavW;u~>ItP>9l->#7vXM1;pfRQn ++zkj#W5;@Fujf?oLJN5+Fi3t1BaQ-vG5$GZ ++z3`ucgW~JsBPJ`;jI|rci`k)?g^NMo7dP9t~^YT&Ya{MPK=h3N*r-SkaMKt6w#=IH! ++zOVQULf)kqZE2#7g&?t4Jlf&PC>;(%9wrC@>sHwYV4q=gLz1_#zTbv6x6>N^D-n=P~ ++zqSOXh3>XHxUVJXctsIrPoN2LBs`#96btk1OK58z0zPdvEXk(xJe?2zTFqyd?Xd2EjNGN!01LGa;wWzm->s`;OOpPClKjj+Zs ++z&Vtlzm11$6_2%Vm(V2sK9=l;s6JP{*z@nMd0A!$u3{8Lu(4-ET3A%)rG?T~~-bv4Z ++z-zt=dumb9TExtTu-d||mK9CAi*G#IA2n3m=CcpuiGLnY@mYLLxshJ!mzyjX(rvBf6 ++irhqd^nlVd~9148wj_As_R$(P;a>m>l8B;LXR ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..ce6e3ba0971c5124787faf80c3abef003ce27daa ++GIT binary patch ++literal 4640 ++zcmV+*65s7oNk&E(5&!^KMM6+kP&iBs5&!@%Yrq;12}O-0DH(W&^od?YJS$Vie@`(m6w)*&3h#Z23_ ++zIjabA?p*&T0QT!-NCZHnBk*VOHI!;VOY+saXlNX*OhZrNX{ZJi;4jhw`NQc3Ki9S` ++zj%?f3^+seC<6vfH_yNP?F-#uA8$McOF*EqX1&^7>@Q2Ba#R-B^N{X*_DHO^UlHJ=Y ++zPq%HGwykYjZhed~xt-2gYaRPswi&z96*OYD!#3jn2l@rRuGl%T%jU5;7xr9ppf@_U ++zZL7AGzV^9(pMH1$xI^xmdLgI;b#Qmc9YQh)-Q9WLpIg%g`6o@%lxtJY ++zwvFOA+qP}n?9RTMZF{|T_G+7}nMOZ|l5GWT_Avn^v~MO)O#B3he6X%4Np%nB^SCtw ++zj}mG%!6{G|tW}oE$SA71QZTk%a@}${?AxrM8qfL7=_&=FgVaDULJI*h6B0Gj7a;{7 ++zgs{4)UY*y^-qNW-@@@tLBaB8@xB-|^jDo3Y=8wvY#)J5@;dxnn%|6@H@^1O~dRJaV ++z@sn!71uB42yejEJ)wzk>ty7X1(86S%G#Xy8M#w;DQ-xMp-p^*UjH?z)AU`P7XnKyU ++zhoM|SkF3{A&B&Hc^=BD(f#K&S ++z&Fd3BHp~tcd%|f?`pWtWflqw`hfFT}$)RIm6dJ{OpDrdqwX#`v>a0nZC+A)th<5)Las~r+H ++zDjkN=wrx=tQdx|+a&X7yy*oayj;B_ES};Ov7VHqaGdd+-o}Rgc{3+iR_M%fwTaYc^ ++zK-^=&IL&AVIDsC5$--3srg4K?iY7)@s8AtTg<0l?n@Bx?rZUinzJ{nzw&B$9>iFQm ++zv!8uqVC({j&4NuTfy^cw6Ts=SbZ%HN=PhW1#7|Eg1v`bUN|hp%oA^7n%FT{C5@J%V ++z@|23DRtDi3i%?5}2t*eK&;}#{myxE^#`!ZZ&n*}GR>;Uw0_z6HB_+cqIfhV!L^)Dm ++z14|#n1!Q8RBmYP>xM^pH%2CJF(kEML-*nCU`Dh&xvqF4aZyM*|T ++z_kx680zwo-4+hYJ1Q0A5m%-&^s+Z}@g+m%=D^OLdK5fdR6OUvVq?Vw=<0v@Ks0-EJ ++z>nA4HEfvUAXpKUpc&+Om&{S`{3w)iEEnxykr2_-#0v02XnOsIbFyu7KWz3$xOql^G ++zlWr2f8P_SpT_{4}pY7Fj7~pa#9ogf5Td&+D+yfQ>_i|A6w5PVi_I%iF`h5-@+ ++zAX7pqENhW~1QIr=LADOSRLu}30J1LxY26^8&$9r>Ietc-MM_3 ++z^h0L7nR=*@5J(`{fYMPIKnDVl2|G;+RRhvQMo~JD>cv5$VFY8CLqLH5kom92@$>H` ++z&|(Qh?~ZAVeux_^U0Yi?i146Wigf}Yg)+&YE2rp2Ft?e?8RVj;en70IHJ7Q0ZaDQX ++zFp?C>R8x9F$c%&uzrY2R&=%B-6F1-oKT2*t9H8%Uzuv5O(HIM-5{|9ueU8>Xy+6X6 ++z;d$yR5OTCaQK|Er+8fT?-?a8KdqixY_<>ARGu{X2Jftq?qK+N^Qs&Gxt|L@aHq6it ++z`1Jy|pz17B?lU9k3$h?@z+WE2_kNndF-jTNw}KACQQlM+K{t)HHl`{NaGAx(Cfvdq ++zz%d=?&(P^X?+oqkTv|(S138F*v?Gm9G54zYIfdfKe(>uFmyS3;!@JP_XS{h8@27Mu ++zI1Ooaj!%0~AOQCN!wvY}&&b&bjDosnLz ++z;y1z42Nv7VuHueLzVKxH6BUhQ4EO0*(I5~LYykS2E+63WJE&hnfdEh-K;YgyIJsCD ++zoGJYJcYvmZ;GUJD4=jFFBlD=w-vz5 ++za5vLou(9_fO}nYaFu;9AS%WvU1${sP&|rBz4qxJ2FeuP0THU}3&6NcQ1^b2H{67Fi ++z23#~0y(&qM)+jvbB(8z$iOafvIr|L^=kUXRdM-4QA|Yv?!dV;xnRrB+*y_NEzp-$i ++zvcJ<9reIe^mjIAiSn?3QKj1;Z4l)9s$Jio)~ ++zzmxHDs=kTg5#&CbZvy*r?tMD|{evmoKtwV0szEJLhOwm+YM8%HpClkfg5C1YRW#g}j9><>-F?{#nmJAP ++z7+lyG80r?*umHZ1y7(0b?@-`LYBWPDDPQYrq1FTaZugI~sRB)DG`*^@N~n}hEZ$|1 ++zM4u#CnV+f|!U;4Gu$*hZuVE3k?z27CLaYb{00OhT$sj*wbHP4K-{1|f(G1(|BkjSZ ++zsimHcEugBEwO0-0S)v#^vG5hWN&=9r`9{MSc5?vP>f0^wtUB{u)K&NvS^%waFnYq}XEOj+^*Umm+H2rZpz@2mj5Iv5}z0bnz_W9JsgOqj(= ++zF)J1>9Qw3_HW*8cjQ~t2IRuBv{ts>L=Fj>K4{8hXM&`RCDpWnVm+f ++zfq?3ZQ%fANwf7p%By%Q(GiNUvxWO30wBNSVdv%^dWR}$Ink9V~cGaU|QHvv(Km+YU ++z1O)=Q{HswA3s^w|kOC4yN0X%*Q;=a|F*VfvP}2HN#@lmDnZNK}bUlybby~@!Crm^qf|6 ++z$X7h6A=2oh2;ew} ++ze7sBTA!Q@3f19+Y(6Qzxp;j#USV04U_WG6gsZ-d5<^^-QE+w8&3gaMf0oJ~i$(ayU ++z^_|-rA9?NnwNIDN&m(8J$YkcY&`kp5>WZC&+Q1fUOUgsKr$CnhEf9#Rl1_uZU7pV; ++z7I|m>>|x`w+8g%BSX%j;NaZwO^$Irka#A56vARksBc0?##U@N8o#RwjK$jAa3yt~E ++z;r?af`u{CkWJtLfmdVHZb&qv-|C5dHjntneA-LFM6ac%-)+$x3X)=S+O-AlClJ+@< ++zVW86yjim{wLC6MvAYE?fU*Y!j-6PfQXV>amY?(6bG@Mat<%VK{BvuY&B1c9xw$lJ8 ++z(R6=Y^9ZnRtcMHkU8=%C|6q+QTjP9|?|nPujShFPp9ak4);X`YVpw~HI)zObd(djZ ++z4A|&w0^J7VMnGW#DynMhMt-Va?1rC1{B-S&BXRLFo0)gdxqqsBP~$3xRLh}j)gs%_ ++zn4lveAQfsIDm&eC$qh%K4t~ABN3fANaKW|6zD-8;OTTRjicXb}iy|#JNKGYVA}6p3 ++zQvj(;LXv`jSv{nIo|A^3mQ~|W?*9xN*g#ySrg;3)9`ve`s^S_un9HG ++zQ6^1GiUoG0B!}JjcvEG^B|LB4TS`hp74#MD!RA1TC=H-O$y{wa1?%mxjBSho?FRvX ++zP>2G$zt932E}bJP8g+ND)TAm@Ly6E3DzM2WxPz=!%6eSPVd4WpLeOe}$Yd}LBwSc^ ++z$A1t@5fs=#32xBjMgsye;dWNnc`YtoVPwY$g7()r!cIhhOpGB@u@+=PC3r&%HvhC4 ++zQYwHAezS2_|Lq%M-IdM1TdB5@8iH0%LVJU<(3vlh25Sp)h1P ++z>VC2Hw0jo{j}2q>7^}{#!74k}YS`Y!=KgjvcW{Zu(4ZSYyz1k&Jg*NZv->lW727;j^87Pi)Ce=stb4tEq6ZVbAOM6fl1$}+ha;c7`^ ++zphakef11Yq%M`6vLb#?5bubqT7-e%Q8fK7LP#^9zIWt-s#d*5mL ++zWiUh-gRU^Ziqts?|JI8CU1>6J7ZoQO%M5u2rsiRSmB?xHmXL ++W4QoZ!JQX*S{Ht@>sDT|kcu*wSp^x1F ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.png b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 130bdca99a049b7080948fbdab157fed657b644e..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 3788 ++zcmV;-4m0tIP)!-v1dm$Yrp6#aervbID~^1*B?GyAB}6_T<2eY`K9}Bzy0} ++zjy!z$FtWbBJ{z~C2)vq%_Qhk7bPZig_x$BV$o0xuMj#6iU>I6G8X&-Sn|Mzcje%oz ++z()Enz30zOoH|^ttSK^FjJ_Wh~k7?Uubghz%IMzxjCPZ)OJumQbVE+2+ufy;`8U=6y ++z^q98KGW)IEtD$G;diL`GZ;Qa6C?3xCt7>W??|vC%7CwN?f?_BrE_+rYAdaOKrA7O; ++zf0~5yMjX^rnsss38tUrm;c8+wEZK7oy3cU~eu4vZGT#c0$F9I1@P;J8$I|b*y1FBO ++zn1nJL;9vnFc&6X#nmUL`&IK!%)9{ZOF2Ijo2b{?Y;7uLDde=E9Dy@W?`iD@6o=GgP ++zhM3YSNUf-b{OVdLN7C)^hF0=MO-;>7grN6KB$UB}gLx5n8nm{qUaLvJ3pR(s;I&2G ++zz|Y(d{PexRjoSd+s86BCVlVhEDHohF@4?K(TrkmOLGK$G@OorA^pE}-M#N^p#P}Sr ++zPrJ)V5t;hd^2SmXu^Syw#I@oA44ptkaW ++zH;zWY3s-MLhbyUV8W)}lqmZCSPBE0W>=i9OUyD+L;^JaECAK#6d~I#*P$^*VmQ-k0 ++z9|?!fa}O(kPI ++zPY6x_X{^npgKSq2>j&l4+Qs`XH5ghS5`arHK6MxH<39&(#8Th}&jJ0tLCry37VQ~G ++zs8Lp@i^_C)qJgA@ssQxD8l6&-7~%E>oc+xEWmT{(;Kq};S9}9%dB%4GKWQ6q!{g?N3diX@yRH>tZ{0|Tu;L1xb%G`pV<9Uf ++zB;=)LUXU17R8%ae!JzUBPt_i}5Dz^uvoNVla|hn+3sC)g4yXoLqD=+W2eUwL-x&d9 ++z2-<&>K`%HN^e>Vnf&PUgw$-~R9B1c41X2PS-6RIZWU{oYqj%DxIv_ngeOVJPC{t5q ++zRaIDaQ7M#^S3O?jaZvznxr@!b>iy}U>OUE65~%u31btH*1SbI0{}I8SM?04&*ja_K ++zW8(QAMM6ZT1tNNA%To&==YBbqAd%ad`A}9-DaS%lQBk-e7WCu-fhYQ)eCp{UO?rX0 ++z_cBk^yQ>hW!xn?8uPLbBodBwL#-WV`mDL6TI05`20aRzuPR9!tq%d|&I4={DiQHn6 ++zW71NPc=cKuL}cBE=sN`vbU6ktUQc3a726poD=Vvyh=?$fi<^{|N=izWiFv=lE$9aD ++z7GE;()FQB%?=z;U&DtP>MmvQd1LJ}F{wLs0>M%S`=h=01{SQbYC=LlF2=WRMy`dnn ++z9gC*px7Wevd?c*j7bwZ7fn=1NocyVrQY8-{GhZq9j(6|}-rNcJ$vc1>xvDvMGSg24 ++zKmip97VhC-WRhi+STI5<_D%VYy!jD~NW@h?Pbyl_)dRVffSiUW*)OMSV&Do^wz)jo=sv-Z;O<<@Ma9&q|`%VDLACCq8 ++zSd3ubD2#p|NArsX&ifj0>%D;c$OcrKk1>hqlQ+&MHX}hT$i|Ba(8bCPMlW}T;<8Gq ++zPlEjX{20XCm`bl*yVkj?s*09;kepedeaX@ZII}IlVS`5LlIfp{rotNw+1-OWSq$&Bp)tFi%3v>oKujvOm*Ql*kNpt ++z3f`Wz1>(~39(RMO(K;Y{Ua4Wz+v=O{8d_AK*+6p4SMR ++zWM_;r95{n*xkav^_KIS1VAH;7|8^J ++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 ++zQyq~hoh}k-<>fuCat5nv_?vDilV-K*mE^X ++zz9~arC}c(ohK0t_`L<5MrxG*)0UWSo2oFwQN$RLw ++zxSr$u%Yq!hszGv=w&r%KqSlz!4RUZg6Yj?V_QXp3#7)K;|M$gBWHoJ-_mb-H$#p2_ ++z_Hu099m3Ch9wNhkoXtBhgw7Qy3YJL}<8748r<$@^j+{#NHiRhG*ATDNsp8FwOGwwU ++zJYGEa2z1y!`E1q%4fM+ZA-zQatp%+TIU!WC+q?B%Uws8E4vyB@%EtSg&7pg|pDtH| ++z_TFpSUteyMx#;6%Ah5lTyM}9xwU&Cz23qU4C?+UjWM_m@j!p)k#xcsTTtD7!%r(G- ++zq(p061PCw}$LL&A#JEW-`IRtE1^?v&=^pEC^4ecEz`{i6w}s ++z39u#sGzFGHY;_Ckm{4N1$Q%Lz5CEP8==Zsb@EG-q+Tr(wx*4LQ!kPW2n^&N4_^AGV ++zP{4pmQA?8R46&jhNXNV`3POlNbC_-xCeO#|ogOAH2tW{`s?2vOt^6PWJ1c+!1h5p$ ++zr7??7ZPWwG)945Q9VFcXn=OasE80|_Xm&v=+}*-M8%7hY^;1d$1v0-MWgFa`NzHDmId|0-A^Z}Ol&Vp;mfyp?&N-PF*Y0QPz5Av$8 ++zRw`O>N!O##qbAH$oSJqw3@=XEFif5Gvntt?8qlLjiUcr~2_!fW76BGOS|A{6Gt5^n ++z1-YkCB8{Rv0p#Bbk1Q;Q49)HLVkeAqa+6Uzb1Q`Wj;B^96=I2M>2wKVA? ++z>bF^Hx3M2zq|xUE10YCYks?b4QR)$)9|lzjpoi>{fFe!VT0YJ@zeydv#!c$>*fJqjMe1SJ8ZAKgsk?kr&Pm*Amvlu~& ++zDyA`sD1)%5f;~M87g88dS_A%vT>-Fd(=6?aW6t(pFu!j-Qqz^nM^8K_UVEsC6nz__ ++z82+td>6;$^y`12Sp}Q@nJ3yQ)0Xp|ZG^2)=Lz-RG^z>vH(5A5l(fjNX^-PqT^ ++z0&V+-W$*t#k)-Gt)#Y8U|F=nYI?=C`=Xezs=;A|22Z$EAhbX8u#%%4lY+fWH*Rjcq ++zFQD*cCHd)+)C83fSnLOFze`_ ++z)Rt!_jK14?4K5IJJQ7f|(7i`_b;ejwFa7Q8>JgfVIee_y-Fq|l>r*S~aEC?}e%S%R ++zFH()W#*}Tx&BDsgZO|a_t6zlz=gh;{GQe1`{NlZL#p@po+iYq%h8pw62fs}LbQnN@ ++z4hir;iUzB5KDE5=rDRI;1?{7k|2t>Tu?JaVZ2oE|R@4GhvcgyAa1O?kK~$$ZfXS#$ ++zc8bomeYAa^7v9VJc(hn^X)99&2V@O07f>{KoRd4ss?}&m+ZzM)1uGBif70Rkp*%ps ++z5Up**ylOvYH>b?`>Kudsj4n`AXPp?IACVueeUrBDzDMu}MEpd~ntB*2JU|j{0Sl1m ++z20_k(1@Vr2`lB`#o;ml!zrK#=*3H#pY&{e7oE!XZHFU+f5YG}wz3pd)QOBeQ<=w_Be5!x#DdU;O{ZzgQXuKvqFK ++z3xp{kEOF3a!c&pVBx1n;g+r|48$BeWFx$~8A#9X1MnhbM1Mm?bc7XIb3p~J1im6>Y1*Sduag4@SyF`%x1sZHSc ++zlUK8QzzR5>VjXOn@MNJ)gOLZ;uN;Te4kyAApeg2o2q0w`%9JWEEPQKj%B(RrF6}U{ ++zHk$8FgXuyqSMth^^^hfBcJgomn+mb0f%92{t^&12>PScGPCWU@uf|oUKZK@+aRe!d ++zI1b8B)9>-R$;J&q;$$yuC`S1osIW ++z`PggS==tG4%xRtXJ3?b!wr79D^Kpuanc_NiS{*iW979x+0x6*eUq$aP1urkUfLlTa ++zOcSw)rEO_sH5gMG1#TMq;?dr)4n~sZsjC&^fr01IIO<0jRq@Z%$LggEuZwq+AV)wv ++zlQnHwu~dh?zbe_+3%hh(&Y)KS>=N#RfFT0234!4vsaj-)gVJZIf1Vz+JjV-$5hu+X ++zdnQgKm?3KI1}B!n6OJ&i!tb9 ++z)yVlGlQ*^&wW#U3h{jddxOCk7qPd}`eS)Y6Sb3eWQkJ}WMpm^-4~pbWFdV`k5Ac3{ ++z6b7>33p%2JUYr?Z0T7Nj))UZ+%RoH4HF|YxT%(ayrW6fUp*R!qj0i;0Gf_1^-YdV4 ++z*OLUMLj){93>X2_k~4EyqzNh^9$Q*05O=CThC}d0I8~7pSR`h&A+7^oKeq4z9fQCi ++z5OFxui={&V`Dhi^0-YjB&t*x63Iu?je=g=MJp>Q{>zBX$tFxsioj0$=Rg0s4*w3t ++zzc1kXEwn7O-~MHO{l-7L$+romeP~}g1|5rzsX_V^^{_uP@K!gDfR#b8dLn4P_|4NJ3N&mlufOJFiM@y3dm%#i3?V)6UaC@Y( ++zKWuDkMG8L`owFNVgRSfPuLT}8`#l6=76Oo<0lEzEo|2iUs ++z&Pu?S#~WUTmMwti0R8?H0naZXzl-y6BIufy(KV{1(&105^WyLO_wSd)o1BXpd|v`y ++z$i?#j-5wbxsiNzmYou$XYu37#KTE4Oi2o7rUTBFD@K)MfL`*aY(Ie=ZKa=juP~>}q ++z$W-ZXyph-O1_C7Dh0H(^Hz7|%0$Bjvi{u*|i>#xSLdteLUKcm@@J|4|+T`AFlkQ3D ++zUW=UG2XpNWU~11 ++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 ++z4#X~tLBBGLPW1Sw>QbUiO!Hc8XAyz{~WH6hp ++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 ++zs>A^$t0Gxt{vB;op7x=A`7uh;lqvHM?n6q; ++zMxW7lv<+>`!FJ)t_zUnSBt($n$R$I^L6uE>?kIs>JJ@ ++ ++diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..71516a5a59ec24bb1153713f690faab9cf3a5142 ++GIT binary patch ++literal 7488 ++zcmV-G9lzpINk&FE9RL7VMM6+kP&iC09RL6?U%(d-O(<#`$B?3L^{ksSS(4fGpjchB%4}>WYd<}pd;2LUbu}UNs;mx{I~A{4PcN?!hZ|cMv~;D ++zU%xHDk{0=gMGzQl+DMXA`|yXjGJ?~D7xsSw=%?&Q^KtdrZzPPdFP=^>`(jx}O5y*J6tISwRAYLGdOLPEJ(WPSh;dit`ZmI(lE ++z0e}JmAl9c+b)EAjfB`y?f7547)~E-Jfb!3k%K$F~G(b(A59Ca-5-b#W ++z2|xk27!)ud3(TDVCLnC8^g}=aV0SEK ++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 ++z?oGO={C=T=-o{F?67!1I ++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 ++z;f+7Bis&6;{&U)jxM&kO@vX6zb~|rcy6am6 ++zx<0XtHYf>ityvmvA|gBTdX!L;K#>4H6L4hvcK!8FtvB8^43hN%q!QD8coMYAbY#vl ++zodBKmw^J`~@T-gLA(UjWB7u^4bxfD&QJoYX6_)0ApvTa9U8?3V1%lgq{aul1Ebnv5H+TzZm*0p{){Nyd4v$Scoi@QcsigLu)E3m ++zYVWDhSJQGkIjuXUfbcyihttU96#abEztGsA8`4*2l*kTaq&2#p}7Bz!PJ ++zLDr9sTG`B&Zg%Ezjrg@oBfnAC6m*=M<_!6f5FignQ^4&_c(U4H5eF;7h{^K%q{(k-K)#5;AMlr<%8E6}`XkcKX ++z@Y$%Sz$5PG-mb9U)c%{_^`=(+zBhasa~m@J1-OtX7NuAe-Bt;5;%J+caA_LQyRBON ++zJyo5)t9c%qYuET~OLG8aqWKWzfLmPSjVr8oTAe(H2vdLO;5|ya%>;he>lR_Dseq0G ++z907nBMTw#@7=~WBCj4am1b(yLrmtG2JtXcyyE!BLBz`Gi7v%GpiY&kcQF0w;V|Z`1 ++zvY;puAA+~sxA1Ha7(&DT^z&&{dk4P?j)Fi!jA}Dc=YaI$^Zw1JT69$DkK#vf!+}j# ++zgipv25oJaagGhoAvWyb;n=RF096A%x<2YCKLo?G^! ++z+~*4b1iDS^u84 ++zKpp*|T%}`q2d7Ph>4S?+|CFgH)s;<0=7{W0Df$^`J1pO-uzQb=(o9f8DJaHNegCE3 ++zj!xkOnIlnA6@$W$i~q9kYSYkCOZUKdr9#t0^L!2(KT(RlW6a&4rKWB&ADoPwW=>XS ++z0Z~kyv28awcx$J1WMDSx^K8zq;iHPHiUj+2E6jev#?hjou7Q5B89du{tmq|MGi7nA ++z5`ojRQ}=H@jZmH1EM)JV+&&fmE|G2qX%(zntMJa-1V`^QW5v#a_uqkiOnmU3PK>F5 ++zouibaumzMZfpKl)ALmqdb6Rtx#tA1!uFQ0wVNTsKyE+S5s%wiJ6QypNU7j5MZZ1y9 ++zGL?qXuGqJM`S7*8&pvR*`|iIMU%JlqZQAW_mTz^RR`X`})r5$zoD-kwFzO$Uy+xN>hI)ka?j39hh;z ++z$YHMg^e+XZ6{M4|tWTM0{X#(f3@Kp0Tm}j_XgxJFnC{Mie9@7#HwtEZ~0tica}@nZ!YBOM71x%)ByOs6O@PE#@~*91!P ++zby#PE|AqCF^DyXf30uRDIX13zQs5`A*PV1gkm$Dmx&@N4Z^FAtc!tbQ@b6+Dh<_VF ++zWf1;!qQJEl!rGY6wNWP5Ny-fc}6ri5jk ++zJFA?&@z%=3xwZj2{KgKE-7N6#pEhzq+wl?kcrM>Nk4MZobP#K8#H-kvPD0yRJ?j|# ++zrLggAm$*O-vVD>53W~;L1Hs|QWJ!!^?u%ap?48_e>X?oqA@7;}pvi_xKu~dT?FqQ4 ++z2b8)H+XsNqD+N!k#tsXmw-(wx+4OX1{(DoCRkJ;ZH(fw$cB`v^@XJGI!AUu4IqM|8 ++zCgqoA-%EzRf0tIaIW;1cvgT-Fkr{2wdUGAh8<-&yfbZGRNT1&DbbjGwT)*pui+S_Y ++ze~nM)oBm%vx~>~OtgcRqOOg;9oo{0NpJ31pGxHp0{+7eNP*U}mPO+Gov5x9F(X*+J ++z>a?e#+J=VyPL75~$~S~WfA4Cv=I@qoeMbi3IiiqW+$QhZk_X=&E?r(P9vmFrH`%>U ++z7e51|KYg%lfKMG4zP=S ++z{I4q=WP;RY7NWWg+RS2;0$l3R)R8ZgR$>XCPSKjE*kQ};82rbwNl9xrRqLPY`*b^@ ++z_cl(Uq>l9Lm~(J78iTes-BG?fDx9QY#YA^xSU;~uYCL89;L%P|A;X5BbmpdwARgPX ++z_){h(n}W(yMz>OiAEtu!+DCk)vreOn`?XuSc>#tDJ&opeN7;iq@B8=Z)sQc@894%vDJm7>^px5?39T`id%vTm03*%xhlp@zFLlW>N!@2-fK*d{~M~wuv_yDO{yOIq_=t-H=8h3c-A;qhbG}h4!~0 ++z^JzQZGPmsQe54{Kcp0z(LNFqDjrkAdlE}OH@-PLutvJm>;dbRDqUU;@fl=Z{B$4j| ++zOulzfN1?&JY{LBP^Y%(q$FNF6EV*lw@&zV45(AJbPf!f6a(X(@efAskg7}5rw3O!4 ++zZ4MJTzN%0&Dk2{#f{OV$H_6!IPks0u7%CL6G3e?p|0`9I+?ZwQm*n||#{6?mD*HXD ++zGBW50S>3gvp_rKfW2+7X74giSi-Sk2KXz6P=_AOKCt87W+mTvZq}v}FKXJo1uW|}m ++z7x~TLxn)h(#7qPQ61rtoc}HdP%L!-7?pMgwggVAI0k&*-{_z1dcWZyyg-qEwy1~`rGB`W|?J|BZN%ojOw?H ++z46dLLP1UgnG631hzeTO_llw`G1lz>dwYOCUX-q(6HU0GBa?EX}fRu;&V!|i!6wfniSbTr ++zZn=IF4y<`8WqjTNTQ?vo4pWtECq@hR7yCrbP9`h%5R`xAez-K+61*QEte-IsrP;vo ++z+W`QZJPNlE=BP{MVTzw);eDR_mB5M*Hn*brVqm|-W1-<<<6Fo4w9JbGECC#DaO{-% ++z>cens)5BcfQclho+|Gkfh`aXC$veT@F00`AfG{G!Bk=VE{)V5mi*?6eLOvELU#o(I ++zWZQ((P?}IXE~YH`oyW{qBXFe?XEeo>A;AZ4dv)B87m!%5s$+_{Gdw7kvhY;w3XH ++z&`D!U^Iz`hfX((K^0okp$hL_WtufV3npShMuMgr4%ieIkvq+bsCfR^L@WBQ#B4N*U ++zKBRe=c^tQsV&d@%s7qeH`P+tPS)b)dSl?rbaCb5pZZzFZ;g>Y7dS6F-^mb}ZJLOE+ ++zN0rbvJ*DKbI*{hV1`1a8r*AA+X8I=WxJe`+oF@KiS55A7>vRU-Wc*(h!`hOdfu(%G ++zF8{-6taEyH?fx8uS}cJW2v1igUkVj&q+9&Rd5jWGm?{F8j9t+B3`gxt8~UXoA1aT$ ++zVUl28eBt?SPa`{Bm#n8Tu%*{x?Jx^VkN@o6ml1*$PQ!@sPpcXy ++zNF-!M=okO5&A(L6cQWD&m*#S${AqHrGJQ9^>XwfUpWutq*YKwWEA2pd@J2PVg$~YV ++zS25{vp_=7eo`flF0_B;6!&(_F84dSy_t#KL|9QRo%ibF?o{yZh++ub%5%&gw_lHnf ++zAO5J6zzSi|LxVL0%-`^Co8 ++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 ++zHu?Y;&8^( ++z_~lP?;vV#2$jyHu+J=Y;z$wxiG=(8=Hb(ZYHXIib{x}%*=T2G)RVrC<|3NbVQty`J ++zoc{|;)%b%pE((s!nfN^EXOeedd$nwNt4ewFb+zL`q@%;{iN*r1`Oqlx+c?*pn(|nJ ++z^HhK|$&5^TS#9kbRQ`iN42=oS6BY%!u7*Ti(^)#Ft^avHpIeqL8kv`VQ7rwu|4dG2 ++zfhtBgv_$8DX>+~(2fkeQ&`Ou}zfR}EsxgKX2fCjWtzlXNqo*R$z^`w0u7c7X5P!=H ++z)O`iv*m$Y2Ij-&}LA;>2P`XA4qlz9968WU?0EYjrK%bmzNzB`;Hd_~k3sAN3b|RjU ++z6fGK0Y9GK+q?_Z5!%*y6oM&-zgOmO6+b_PSU5tm^7b}49WRb&L`5SCCm(U`4i)2;T ++z*%tNbp31RITj#2B6yiZ+0Vrv4@`+qPrO8*BEoV6oD5_od4T{P=X5YQcfj2T&-Ru0x ++z{GUZ9oqOQ&@a!L#+}EA2E8FLPy}~98T$|)!=s!BcF!FPyAZkosNe4C;eF!Q_!1-=K ++z1%sz{bkSOF0w|gKHRM1(G9me^6lHe~{r(&*f9=A-^6LM^;r@6T_O!5Q+V_qG@0fZ@ ++z&HF8yXsicdL@5M-f#Q_1Tu0(6peJ*Lzy;l1jxAkf{U?>uf%pk4E2DZ#Aqw2FHZm)* ++zQoL;la6J7pq-{At+m`o#TvBc|TN(kr&bva^hUpB}lWD3Uwz ++zKPXUfI%_8xvmawiwWOsEX+@s{5PLdnS9f21S2}F(K$^Kf`#Hy7_Gtc3$M3IUV;p>A ++zT13uGaS4)8fa+djqLsnN?_q#;Ji@}R=s7>!d}2(q7~g_}gI3BJ_f$iOCE&~0#`MF+ ++zCq4x&uk{hqr&7f}m|$j#AV$g~#;|sZV(q`vc9(IJs{mh&bxYY$!nz3K_q8MIQA&ET ++ztbn;qfNHnwR+ob}>Om*2hh?k#@fvc$!AbOt#N;p6ucGo3{VWEXbyi)qhs+2js6A74 ++zB;@c_*No%Ztfcg)N~W0#NNovnWFW!JWB>Nvwv-xb&AR>%CTr?l!=48X_^nh^Yml5lQG8Ey>X+9OY*}9;PJcfkJ)?s(u$PyD>f7%%x^R~ ++zk`lXza3q^GRre_15@jyqvN!C8YcA&inJX_;+5{rpnDYZE1yA2^izHMN-KK)#Os^#F ++zPB?Bu(nn@8BzGi9BvlkY3vXq=Ee$&M&6YYYiRUilzY ++z!8Y>`V%WQbABc!aIZBVvR+{#PTM{H~k@2W@!vP-~RLr1y#o*a00Fmt6y^lMeMR3!K ++zLZ|@CI>rW2kDc1;-S&=7!j+UAnz+)|St ++z9>D=9y#%UV*k52|Ha8>>rmXaweE|-H^@Okf`3oz99w-?#Gq})|eO35SIvxrGCgIOB ++z$N+IX42DDq%)|H*LySEOAED}KpcC@JUZk=o5WtsEXP;kSiN%~?IkQ}9Rj|n$0vWSjxPC2OH6Z^+WR3K@;C|sy8 ++zxc0ShGI4^=5$Z$L$l=#C0}705sX$93L4QNuY+CyA)S?dMm4$_v5=N-(PgRn^87Ecc%L84urZY(0C2~TJKRe`9UugRADsX=3Mt=^9qLd(DQ|)E ++z=}p73(svFKQi1#ri91J?GE)A7A=M5#3}!JwzDAis6`->_lJlbT2Qjt7RQ{ALCK912 ++zUCbM}@oa@h;Xc$=EulvcLpbBg5&$z^Cv@H{xGS)8?nqFocQ6Uc2@olt1}b1KwU0NZ ++z##Ic=mG+8Bqji61h&?}C4Stihxt$xbz1MQ6jnBwZ&Yw~#$Xd$N7-n*>t|32}i6T2}J!Ir_fTOyLxI ++zA|yf89ywnNP)c%IoWZtUSKKl~4%W3nv14(Vw$utq6Kc!eBL+THcUi;jybtQks7i^s ++zL9MrVfSXXuF>jBx6wZd>)%AGWU%6aCLMH(puxc!H=8YdL$~lKansN~Yx8t@NE=HVE ++zf+Ua%fJkO&;4=1lg!MbR>piQ$rzw_trSLs$?Jw9`SZo8N-wpc`&0FqWD4E(L!MI+^ ++z=is{qwe>YlZwPd9al$&sB!N`oel;rDd2Hgz^Gqq4i+Z0wCo2PQj|h8+1ZslXE;HcQ ++zo*{i(Us1+EaRGVd@3fyzZ7*mB6JGo_44BwZ8jwne;0&B82AloixRCq9#r4n380ZT1 ++zx`OMf)UvUi(9QAiMb6Q@FE&k$T8;j%by+`6x{A6(@y5tu&Ev5vU$UfQY?hva0%kE< ++zW30^CxcgFVp$7lxZ1qcca0ITdrlg9}uhGL7_?9Dwvt)_YPp@CTd1L-+UQo`~@71s9 ++zcvV?C;vp&VY?^|>Mum`9Lk?aZFZpVd*~U|<2Wqjkb5AUUO*K;VDA~k&2&nSM&`6{~ ++z4?QWVn8w@G1fksVg7GR5M;Fev;J~rqWa^}c|BhM_Xrvs|#@hKD3P%HUM4~#_{jgBnE{`F&L|h3vEY55j>#eRr&u*s{!~w ++DT}_12 ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 5e9b3ada3a3f599be6c59bd9ae5f1577f441c8e6..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 8993 ++zcmV++Bi`JJP)tFxsioj0$=Rg0s4*w3t ++zzc1kXEwn7O-~MHO{l-7L$+romeP~}g1|5rzsX_V^^{_uP@K!gDfR#b8dLn4P_|4NJ3N&mlufOJFiM@y3dm%#i3?V)6UaC@Y( ++zKWuDkMG8L`owFNVgRSfPuLT}8`#l6=76Oo<0lEzEo|2iUs ++z&Pu?S#~WUTmMwti0R8?H0naZXzl-y6BIufy(KV{1(&105^WyLO_wSd)o1BXpd|v`y ++z$i?#j-5wbxsiNzmYou$XYu37#KTE4Oi2o7rUTBFD@K)MfL`*aY(Ie=ZKa=juP~>}q ++z$W-ZXyph-O1_C7Dh0H(^Hz7|%0$Bjvi{u*|i>#xSLdteLUKcm@@J|4|+T`AFlkQ3D ++zUW=UG2XpNWU~11 ++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 ++z4#X~tLBBGLPW1Sw>QbUiO!Hc8XAyz{~WH6hp ++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 ++zs>A^$t0Gxt{vB;op7x=A`7uh;lqvHM?n6q; ++zMxW7lv<+>`!FJ)t_zUnSBt($n$R$I^L6uE>?kIs>JJ@ ++ ++diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..d51484edd999389dc9c4f98a22f00b9c04124ee2 ++GIT binary patch ++literal 10184 ++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 ++z%zgCi;?oOho2aOyQ7P0$&VzaP ++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 ++z;8V>(>Lz)>T~ub)B7xOFqD{*k-3C ++z#}*tKbUe)xngFgGgJ7u1poN<2L?>Y@S2L{fw9woeOl7J^J#HQrQ`2dk=v%%r4gWn? ++zY{L-IqZKU}9h{XBB1FQeE`_r|9EHmarV;&}lb`~{mmja$)udeWRxitpgN6n&1r9~T ++zd-`6#_=o_^>hDQNaNmT4l=TSlYBJH1lW0NlfAM>40GFl#GEU$6qv@_I-73Twtg)l3 ++zF|@}0lvac;Mj6~2bz@#cX5pw46{L5`*7I#Wnd5CQVqCP7l3gI%geWk8a8e}fPWc%O ++zO4k&L=QE(>Es%UqLIWg7<)vIDoGRp1(!#L(lsGk42pcjz*hY!Bmh60s*B1KQFd`!4 ++zPlV2RZS4NXh#MsfCcDQ$Y397QW*#KPFF&ozeTnAd!%rb$uk7V)LCZ=LKDrna%ei%mge}N ++z3v*>~Gg(69VL0&@k4#k)c>%=HnK>vs{?&}L2m7!8@&E1DS12lpr>5dG2ZX7xitSa+ ++zHT!C@8R47K4aCq`rjmPQCm{1g_chN&rwD1qNshV3@OZB9d7{~llc&_`}R^(2J1^kU;Xhzi(kj)E044HtXZlU ++zhAZs2P@z|0vX*CbXE;73s*(;O6lad0^%bH%SQ^BC&_U3>lr6mY7$l6ero#;Trpfs~ ++zi_?A4+;$Hd@IOK*s@Yk}5URi-RrSWP6-?ytr9~vHcbsp$;v?rSS9X+#NwnjNOw2cK ++z4<|NMGg1A)J^p`~$UlwHfDgvE+*7P~)7o#4ro#;`%#J!>-o_7Q>iKuUgQEV)2>&6J{2Bkbt<3B52bO<3uW9?DA+wmm#{nRw;%>7Q#% ++zy<7<8gpdm%AR_`rH0^?jMPMtOhJ~P&#JW(0^+PqH+KKnVxb!9Bn07oOgH%8l&5 ++z?8`hY^Y-Mhq13mCWZ#ovP0D~O^Xqdet&~wgh~n(4j0r)c4eUsy*xSj~JZL^>GRb6u ++zRkto4DiP|8ay_UG&_s2=;^s*wLJsQqgau%Pkd`D=7Lu)=WAhd`;Swhz7fsW3i3bYD ++z2OWU{rEQBOY>LNqbA64G99JmcqqNgQEypA8qy~1YVY~m=-AjVmeY})ivUaG-w3KAVHEz ++zk$L4l$vO4~-jG1`uqo97Hpeb@yQ3rQ^+iW8S}-4~$b=^#wmU)tGV@MrKNM(L_LUW} ++zNusL7Pa*oGLX6nqgatMPH{(a7fq>k$z^ENhFk+Ff?)c4mSGXDXw%)C!|4LixvUM*xWu ++zwUEdkypiv(HUFMj+(2S#(O&pfA8Lq*=qg`%Mazl5%DfN}vDjr@SlO8U ++zu`OHIlWHh!a7%MusC%eLont6Q$ ++zPRU*(Y`5_bvAkmvY-Zck79k*#t>)Uo@T`J}_(JqX6s@B%GH8&k-N#toQREnG(c%rU ++zb7iE`ASz)W8b{r=7Kh2@K9Hw!sZ|k*0`4P@hOM^WK-CCLCEhwkzQv-A#-R7}GU|5Z ++z#@O7fuSjCF4FFXIOk#i-SgoZo9<7{cLLeF}H1C(up{^j^r^u@=&CErxUAQ`}xKvOdu7A->|`K@Y}nZ7n-h64a5wc=>ASSC0a ++z$bczDEoGuq4WT$msSqtL*&kN4e0yW!~ib-@RXi&BJCG_f1&s6=1PHLVs{@ ++zmcGipIYB+zCBAcEpk?rIvh3p};D?@rE8PaiyJZCl9KooVFzpKfX8V5x_Z&r>$IPr5 ++z@p$+(rV)`nn4e)cb{L%N8BF%c)+eDJ;$Fd?b8#bFn`Bt*8|3U!6@E491&)XW$d80}%s?(!BKJQM)Db{%-ejxiU^xSN ++zb3E1{eVq9GFdQiKVLD~b ++zZu#t)*^zq|M%*YC^43Dll}1Mrj_QJGMnd&NYW+(hwGN~z4>CGrKJz;Kt<$Ea;>H$o ++z`TB$#zgL_DE669x@B`#M ++zUn*RY8_bT-T>#^Nj{-bMP=6stgZ4um$gPuxEHqUM(n*rmBd$h3fJ#Lo!caDcndO7- ++zLD6B0xyVnneE(o}Sg$x5wV-3+g{3IN_o^oo6rS8ow&&)!>3_|h$ASOucO?Y&nOHLG ++zpTa~4+Jq&5>5TD0Q8L#qjs=c0bMj!vW;xDEu|!708Kng4J{SiBtZB!{b+QnZ5nK&d ++z_NU$t$QY_E?p`25bt1&vA>M}hi|{K8qsSKqpwJOa9UW1A0W*knh64cA%&~y{*#A-I ++z5Aofgcp=lvyUBvJ3}F#L=L2;Cy4!UDmN|X*iJ(;#!8~RXaX{R_e4rLafUyB=?SPOI ++zRR}FV7|b(DfJJ~~XarVOwqH-roN8dZ)6-Vk@N&AweHE9=dkG=NM-UMJg!`Wh*TC7L ++z=*H4DI`)6L5aZ)wyb)1o^2Xu{7faz%Uq%=QO=2WQ6ad>8>oV^`$B%YOo^M3&dDaV=swVC@Ly8Q0xU8 ++zC>B5kQ~y!tKlAqO-QM2b-5yO)?(>-s3Rm{t`|iwd=DnTGk|pzz`N(`^J~AJfkIY9# ++zeE@(1nj<%j4HKW|kU4ViCnN-cmYXIyAn^B;zh5R??-(#_VpTjh`yYS&k^k?%|1R?H ++zzyE%Y|E~1spMO>*qkq%y=x_8Kdaf-Yc{gBS>HHS$W>i*#0sdgqvDGQEa ++z0RQ>tpRaJh56QfZ=xHE>n&_FN-{}y3*T$B{A@iY5=V&D!#}!@t?+W0&$-v+!g}MJ^ ++z;f=oYmol-PsgG>Hqm^i!qTH>EgDPqpc*l)tCCT?*Ph+7pMwt%}^u ++zuigW2%)*=Kk!UPvOhgZq>5XJsM-r~S ++zD$O!CI+-LV)(oXFeD4Z^TgK|{nbuyu`tdGQ#>?n<$QmNyeUxJVpR ++zZ!#gV9o9r|L}Q1KPD*3@KIok}so{0vo+ZGsi+5o6@hh+?@I1`@^(eTn3jp`EhhWa8 ++zK-hTjG;9et3s>&MyffY?F)?v24ynUCt&1dCmL9+OPDyH>Y^@Xf>;;^@b|1#C4uFP} ++zHo&Jn7DA4;vq9f{8fcqL0d3>&LEC5oXd8}08xO_%EQSz->>bI}*z(Bp=g)WDx^>Ix ++zolNybp%)z;oriC$NRf~g|2zTwf+C>(Pusw`^=#06Jp**jWYD;c1#N>-psha=fBysM ++z+AaW}1L2VP^5r`h(h?F9PMteT?}13e}@+diSME|`X7hrI(nkw?}R53zW|Ema`@$9k^|36 ++zw5RdUVg2E7XfS>aWNS531`UR%2BQ&{5eUst(AF6Q+S&u~cVj@?W*+F;FNR7ZH^7Bk ++z58q{hEkYD?=gysq85$zdg(5s<@k_;Wv797$;xJVC{C);%jqtJHX%L#a=xOQ<1nrmK ++zfwop3(AMnD{;q4ckinC?>vGr;a`k=4(ilYO@#AjXxKSxXhBHanDuQ3;VN&6VeDD-} ++z51fa3leR$i_MV_^=>ggnKY^A))>o4R?^1U#ho&z=(+jlKyQ6huVClZ`Mt~N9)3=LY ++z!kS=+f01C(yFGZ32scrTN5nmc&?nCz5X0n_sHfm__YwHre*(K7#6l4M?&#xqIQb+V ++z&c!~18~FUEi7(mf(<4N2ad9!Ii859=6Vu51_wVOMXs#p$9!kYG1YHEz37a8nr=`q; ++zC>jc4ZPO`&$N8cQXsdPtO_gs!gSv+e5?p_lJNqcf3E ++z_2dmGe(W0L3Azl9hc7}F1=9yyf*knwf=8}G9jG~eGw8ovVm~%v;W}Y-h=`NIs ++zDj!MzMqHk-RV0i>oilI8DJa;-H(B6_p^Bg}7-^$EE5Tvs>9-D!l7=ErxCTLbn0ECj ++zwn6Rb)29#-5z!@GWo9DH7-y+a7_VjnSTqXS@oSDiE=;YH501A9ILtaO1ji)@(;Ylg ++zqfpxN+-;WCy+|A3%{Hh#eE9HLKtMpLbRnvxx(5&NsG5b*d#FdcdF@Y<&anv&iRU(+ ++z;OM>$vK+XOt^pD)J7#p>UyFvw=Lu;N$`TS1ATl!YB+i-Ut?MCPTOi#tU5)O!g;`eJ ++z?|%j74ogzj<1ldMGt&(8fh@m;We9kTg8LGb!LUa9C_a_-5zSF-Y%E;5bZH*fL)y10 ++zn&aZ)YO2va7a|`*imdwf5E2s7 ++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 ++zzSwx$#;hQ<$VLEB*p=obg` ++z5`Z;`Bnz`rh}48K#o7>WF0mEgr`rnS9gW1Xq<%|m4o2Ap(2W~6{vJ1O9EC8a0Rsl; ++zYyz}+@#3=h28ouku%~edP*;z4Csd^bIO65m_4|Q-&VC`=TNYv&BGr0G9?EQcA;+bM ++zjTPt?9+L1iM3@JhCzSxb<|6v#$dMzfs|IMwlqn_g#jzIaK+j%4{o#vKHdNJq3!$oN ++zGDB5GStE$59Y8nO2lPMg6KopVPyV2v9{~DA!RjEAhca1KX44DpKM&f`#tv~TOJ)EK ++z=9T}EY~IE!|4nrofBEv|`0m}iSF#C^xD&BYpFW?wc=5vGW-{7S+kD)L_d8U{8$#gk ++z*j=GJE&-jirEw=rrMs^JU7w#3F4QICw}EahruNH^nL(tr70PURAp&UgNzjU`@T7le ++zPH0@~iuz|1iyUKCs0S!KJUpgZvu34<4ZfUV9U!z15umGZOb`XU;?-6CV>BoDqu;$D&1xQdfpNadB~>mH?s!wjWmQeZM`9*inSw`RaS2 ++z7o@#6kReY+#lC@SK{sO`dZi3kU6BV{2t?b9Y1a*|2a;QKQiWSh6!j ++zl?S439mkI!KaWi0<7`;n*6M&Rik_7F;lqc!t?dU|vMmUl-A2B@;814~2G2ypouQLu ++z1QUh1iQ7QCG)M?%8!TucX-3BDLhP!J^&uwVlV!;!;Y-jzbj&OEo>bjC@!-LOw4Eal ++zXTv%`D3Y?`&s=x!-d%1DpxsBp;KOF)(`OwgwL+D&hY?kpn@&qUI7-%GDQJgp1npdZ ++z(5^kHkdd7Ojl4RIKQ)uL8Q~%QBaXc^e4+kvZu$ePIdE3Zjzo58&+gs3sqI}Z&W6=1 ++zGaN>b9!;0B=8TAlm~3rJYxuQ0@aZ>`-!G3N_A??N>1veri&6(5i2&F3TMgQu_JP*t ++zC};?zUzMuU2++FYpcPl&`HhH$;-M^jp;yY$Y8w0+9HDAUE8W#+!-fs>i3xiE$`KeC ++z*u~l{oZ>K*FVn^S{Q`%28PR9bRk*1Mj*|8E1+DvT(D%wZ0YqL4mv_6p>18yn4B2159v%5-nfo%Up4bZPU)1q&9;D&A++*2A$w ++zhYla$&%D>KU-!0_iQRkf80rn2V_&GMk={cU2M7N~--ER)P6{lP+P9&*4NV38h|Skx&?w`t5&Uuwmb(89O!9HNGBvF!pH@F@0Q1*p9E;* ++z$wIe%d!Zry(Rdz8Ex4Khq_9RNuS{z;Npz6c ++zLC|%PcpnV0?D8Fxy+6X@DHGKgzH+ph4q?~ts}j(Wk&&=q!GaOQ0%t-MKn~5DHzy&T ++z69sjZ#KgpSYYi4oUby~lcpNf(52khO70OhF{(3t5?yUQ);S#1spzl2&oaYCD^MWG` ++zA_mYRf=CJw4`b5p9%k!fG99$`1ZeyCn%q)L@IHMd`e&G+f850IH4*BK_F-M+)U1Jp ++zg@wK7+_`gIVu2SCRdp$IAhDDuPo5n3??ULtj#?AaiHR@4wa<)<>v8BpMtVJESkxrc ++zo+SxNmz(|w8vIVIVW{i^NNtri;Edwfd44bg6f6KlUT6{bLQ5rKOs<1gThc-3g*M>t ++z#%wlSv~4}da6O%3^%=vL4#U?3-veeHT$KPK{d4HhA!>2=DY2kdKpTW~?b@}odDq4!5EQLCZ*jp6jsWQ8|*1{FEx>n=BWp0q*fjol+FC+zM ++ziDb`^bgPG`gXG&h#LIwY?lUf!irR-l6u2A)sI16?)8)r9IsZ*y;Zqh+0ro3zcbmi84DBX69 ++zb#T7uB7r9r!J(h@8MMohE@`0P!`O%uGn7`~*{XG!{=tF^n$t5Id)YceKaU6bMHeGUr%%|UqPssxDZAUQy~nZJRq ++z>k4ytNQY6#qL5t6diZMo{TjA@sV00~ym;|{BS((xM01}M{bSHUv;!@B_Us>07`u1x ++zUZ^cE^dvSOs&$@dJyel*qKtr=Qqi^bRNSJQ&QTY83J<8CXu*Nl0;{b8RQ!&M?AYvpM_U;)uTdMo ++z#Us!_Ua#L7}IeVRtVqpd)l35sb{pI@znmKkhgwc>l%ju!?u`9HSYavH?~b8Cdu{p*g61jnVZTr-RE+fz|;s6cnuhv^WTK ++zLpPYF>Qe7R*Sm`eOHGCFC0RTz)zcI1$Hc1Y4Nb+v#fulup*gQnqXq$_OG@}Mgt2nv ++z%8>&92$gtc6w{Ba6&2Zr`xh^Srq;HyD*79F5%M6^W09E%lN~^{v;(NtDuKfHX5rON ++zcy#r@1DDBrk_XVDV9@=r%Pi9}F}l`^!WAVeHD%$eu4(vkZu&jU*%V}R@l>4CPMtcnn!J#;8?Ok0`W{qlH`@Gu?5C(__N^n ++z@#CAt#>W0@ZGB8UpxuF?kn79twzDew9i26_;@xyA>$j)~R5Lq(vd3FVfMWOapbXC5 ++zo{i<2fm82=kac>1IY8F3Ff{!vOwGq`74`wCC?&AaMI{N+k`%sbiTa0Md0Nkyed$p= ++zFW7oSb?xWOnKS?E-@ku5n(Jc4isejd_GK2vsAuA5pM91ee-;Z558tE43(-RBET3(V ++zy=G?{xAJZ!{G=?31hv?tlUnB)`Y&1m%WhAl02X})33P?!2%A=>2{?7~fUG|r6aboO ++z0U-K0>o7RY@CW_Wy`Uet33RBFaX)Fwyz6`VsAn7f= ++zTk&*Ua(8C>Nn)G6Jas*5GTGQZkC~ldS@c-bO*-q-fHSa@au=ae4O!@L>g5AY1J;7m ++zz;)m}VhcEr-U?15w}8`-4d8@ASpVHGpzrMi`tGP}IxZ3lnQAjZ161BZ=%TPs^)y5H ++z>MN|ko22h!K#xg^n#@bQGtaqm=UxpNGK4D6g+KrN^JI%>IY2~W)*?lU(8XmXPM@fW8>hP;U1u`+*VS@v2pvwEu#(6(KzXLS4e2&G< ++zV<`fVD5mv=3l}CY^y%QigPWt^`csV;Vrym5G0DKiOAWka#Lu2xfb;rQxfVa`n08_di4Q<2coqEu$lN ++zT)A>(Y994z!GZ^W@n4~8nO@vLD0sR73= ++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 ++zy~w*wl;Bm^pLi ++z9C}ZBZ>?7A%0H_L|7_-IB+wM+$NDip_MH5?=rh4dTaYw7BN4q)P6WhSDfX ++z%hTlHPf<6?p{mL~M0J|{LWK&sq1R|uty;AfwQALBMMnRo-_hSVAT=mlN?vb(g$v<| ++z{4>kbG0?H_W0FE6hAAEYE}7uG1(4)kNea`4JpC=m&v*i=B+up;R0u?6N|zlTBKr ++zI88oz3<7~$S#D)G9HluR#rbPK4j*C+lUQ_vi ++z>n9Pc4|!+4yHT@z2!C!c!(R85}4nR3cb#wR6Kvj6}907*qo ++IM6N<$f@2NRtpET3 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..043eb56bddbf6213add4b02085747905bdd815fb ++GIT binary patch ++literal 12956 ++zcmV;NGGonBNk&GLG5`QqMM6+kP&iD8G5`QCkH8}kO*jnLwrvWMoo4?(*rVfui2hFi ++z|M~1$1=T^avn>xGS;s!46#N!ZX-!{ ++zmHGb@0QpCRNdT%%w54VBe*$Rj^2X&~JmVBQ#sSPI@1nTICD=#kBf7Z8HH2GAttK!I ++z2%+41uxA_Z;ydFB|!*#D>!?sqh1I?2oWp5ydJo1yogNz ++zN!u*v)XNAW+E|cCleE6Shse3#KN>5KCgd`~tR_v+|1XmxIp6=AnU#eqt`<{^r5;U_ ++zaHvVW%`nW&JfrSqW~O0gW@hGTW)@V7p{i7zFZ{!qZ&tneR_SK=9*swKJId^GhMi_k ++zGczpjD%>Y~AS24$p{ps)?B!iEpBVaXw);8|i`q!D%xR{DlOxK^yey*(M@KAO?dVAJ ++ztwRxJE4<9F*~jJGn?YtAsFRuDxO}rMv)vKP+fk;g2W;C8Ns|BXx}W!r$jm}_SG#Ao ++zW^H_I+qP}nwr!hh+xCvl-a(^~l@XB<@B2I+ux&RSY1_Yjt*RtdNq3TVk3ElV+qP}J ++zwr$(CZQHzUk7trJCrPd40o(p_Zv6kdpU)TOHLtN1Hb&hz**aUK#=hV0_1m^>+qTxW ++zvqhS1+|*HH%p~KPm!1w~TZx;C3n6OAW;AJk03iIpgov{c05Ch(`DGypaR)HsamH=Z ++z0ItoC)9m#)+X0PjfMQ2%19*TsPI4hwY>&4S$hWnH9+PeF(dLlxg#agD08)Sp5JHc? ++zuPq*L_khJ0g6OCqNr!+6;BW ++z1MOj1G5GZp>u7|AHA=gqvLKXr#pekwmskV@0ouU9me394H6+v!s|s`T!_EE8jXjI$ ++zJIl%;MXnNtJ%$eu*ak>RClts0Ydqj>YW+KGmU%Wt)zGY=2sIffa>JG+Nvci8g5z^& ++zc?QF#P<#qkZNpUyWUdyGHnt!l!dz8C^wL&U ++zn;q#WQXuj;Ev!|Vu~}|#-^s|G8S`LYLeX0={zZ?6&eLMU`kAFE_tRl}h}Y`|nf*Mb ++zeWW>@jT!}}xE_)fGJ5c&`+BVlx9KgHLTTK!#y8Us;+9EZi=<_M+?FFXE?AsDm?w23 ++zvbHTl(SK^HBX7e-E|gSmnVs&6Hka6_BUOfxecX#zaTjh@thQQduUmdd=)=9H5pjcK ++zWc^=X_j1ltHZG^~$B}LRw4AuY;=`l&+W{IUbix^hduuFn;w7d$gOu?9xGogX_a}=2=etb ++zb=QA^JOB4i&l~=f6Z_W~1-SGO>T2r7O7Lw$xKo-856EC+?_ny^;7>|1RIJVj{Wnkg ++zZdt5a(u&FaX|@%gIBOd?OM7!s;vEq80O-Ll=%7P(l(GYZGxp=qw3S=8yc|ZZw;z`0 ++zc+g0aBgyhLKOujx+j7=4@8^GfGV2pxSmP0|(_W3SdnNzq4zal<=^*`sD=!o)kXW{Z ++z-1DO;_n8~Gac{8}hP6{R)N`<(@}BHaoW4dqYY;u)0K))>{}gn{PdVIgkUgckGk(xA ++zzH+07LieQ)!*p2<`pBH+sa3vAL3amo&XPi--}x^^m-@+X9XadS!y7jU_vFZihf>2@ ++zcPT2#1U4)AJiW!^75@q;n13p>YkkAa^3;F5Up(gwkXEQ7=)OwvRJ>g$fUAX5>!3&K5MUe=7r1(zROf0|l`sk>R9 ++zvna;r?d1uz0RYHI)?>EKxsM*njngAD@3k};L!41)Eec*PLsd#+MLMlay= ++zPJFMYKH=#pk2y1Y_fLM_l=kSu#u=V+de7i%H&1ybL;>nGu40j!4{i`IOiBqn&Al394agct!6EcLA|PwG8avySnBM``=jo;UwQUZ*VUQ2DzDR?C4gyVHHEb$oE` ++z!TQW0xqFRvr1g9q=&?^M20Vrclope!RcSrVHycFj=fkMF*-sz(o1ePe_k#}a7yDbF ++z<8e~fgl{giLWls^o^i?I$loc>;(v>!`iq@>pYOZ-P|0VVdr$TgCU48w+S}|su~*sa ++z7eUsFJb(|k~ ++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 ++z`|#<1+|xe&lkRz;ZH@|!+$`pfi);!Hw> ++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 ++z%(EcjMS|CwOMYlvx^zZ)$)7wUKjQ_*q|q ++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 ++zjp+WNZKGJc=TBSAWiO%aC6VKostc8(7&> ++zVT!F1_k=CGe~VwyzLhH4z%fpB&g*EP^lWf8S?_SpBk~V!GN~Q7Z*!*n5pc8VsBYBW ++z5Z+*I>4=vs%o3Vgf4BU}dHq7D(CgLd&7`}ij~-irS7NEH?LlD<5&!PTpTXvlSI5}~ ++z65_VDg$E}z&#~I-@vR(zr=Ibbt1(hv&e?j-y`0w_UOr_yo29~KPuU?^+0gv-Ctl2Y ++z-4kb>x@_6lW9G;1w+`o}M(6d|?&W2$scG1OrLC>dx7KCc=GjZ^Bh1VXs%BHh7Jl*6 ++zJ=4?WgTGT1Ts7aju6HOUTnCQ_8W`yH(0vy{m!nmsJ(;|n-aTn_JngAfIqly*dFo3_ ++z8sm4DCZI&(Y=7gOwb4vF8B4!J5QxP0#~&m%{Af}nk+RO`uDyPN60aRXU!3WXbR(&T}vi{*U1SWsy1DDJY}(eM!TMvuAavFPCtAy;I@oPA%LOlUZ|N2j_`ktRlt=BsOgZjy$h|%9@T71C#cCyjoe0mZX ++z{P9`xzE$ezEF;FJ?XentHz6 ++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 ++zmt)~WI1w_z2~u^J0WtsW&{h ++zP?sTX^=f!38wfv2Uoca-68DjQ(mUiNmE>Ddc;pf#R`oGC@hdx9!&)Wz9*&NtKp_V( ++zZijf00l*iIRobR7wDd-7S{c19hA2YjmCWC)Ed*%0pNUYEUSQBF38c`BtR{_#)j_b^ ++zzb?C;#Km;9VWns)93w)kpdA7HF$2uVHsA@bU+3Cf9#E_RK+yjD^DA!d&F8T`R~CfA ++zKKg-H2)Y?Ly_ESG(WY+*4iDymt?Dj>b#ap~oJF-q+}t%O#mpr ++zrIpq|Lh70X26%EUh)G3#2c@&2(E~037Uy*rN2s@!d?%*Ve#Z@$qjP#4j1D7escA$1 ++zJ|?d#hCE`VR$%-p??1oxpqYf7UJdnNt5-(qtr-;|3k5UlH`y!hws0ICf+>+5IuNZ7 ++z(q2Wp)cgP#c#*pD$)OaOpHj>H;pg;kEXQ(badM>T!+Kc1$-;dSg(=)Y*(TU56;tSILN(2Zpjp`lr3v65-}pohclx(R{O^d ++zZ>HhAErUi=epmVGtXA6ZJ0caGFll)1_X%QZz{qz|Z=!^6%hE#oqsnqtmCu;rGr2ml ++ziJ=H_8x`Zxqz!aW9Zn2l+Cuxv%HYXh`%3pWIZ6LLmNowOHGzGV^rwv+L-nPAanHzt ++zb;d-^H4}UYYq~}wnEKBEpDI2w8HiG>%6}pFJ2xm2?2oi5t?kMx#cJAcV!OI%AD3jnO>j}*pQkDH9bZE)&0hVHXQaJZ0XnN9V;0YBV ++zlt!TXxc&X+Jt-2C7r)$zdp+NGEl$|a ++zl^a9(ClpI8nOL3Fq=shE(SE(FV}TS+!h;G2=`aAw!&`e7KE`0<<)b?lPh7_Qk$!lv ++zoMBXYE816+G2~xJlI!#NCPPMN;tL;CndWq8Z$0DxO-6wy$^rlnwRWVXl7X8h)iMuVRcB8TdlW5X&Qr>^7Q%mVkve ++zekhH{G-u2T10lHL)gGgZ*8H#3#+}GtpCt=BQ)#&{xXw2&`j0W00Dx+W(51Tjr_J$W ++z`*$1ca_(z{zat;wG>P;ab{1lq(+5!)=p0Z}VHVQ|AHcf60GaOd?j_k!=bl9FdKoxe ++zphPbfd%}J%dSMHN2b@cBwfq&eJV>15&Bdzz-a49vIYC5dn~|^Dw7{D`3Y?|r03xx_ ++zcvvbCS9O5kLbCr5@3%}t-(Hv6@TiV&XW8d!AK36#w<)ipZ^B5ql#+WvvM|(asCni{ ++zflLv@Khq_Qi%LRwbXahx*x=^y%i7Lp6{y?ZwIN7pg)OqSmN3pc;*a@|L ++z)G66{+fChwldfkn{3Lpin*sG?S|`Tqc%2z)O_M6yp&saC6ZMVK_5r@Au_5cN+L-cT ++zhVT_zyrIWv;(s|kuM*d-cnDQ ++z4>&_Mcm%dty;a_f;ZPXKib|{c!;>?sZ ++z_rk%Tyc<+FG8=ahT*^e7gSeO^J)g5!LvY9o*DtAN)fz>@46uJRI#cu+$X|Teqo~WT ++zpIrRfZPvp|;e?-Ebj*x~Qqnq6oWjM5Lqt@J45n29!N+8AFR8-TP46`KDZ(srBC>=% ++z8A!II{j%}6q#xc8`U{#cUu@l}W+P0RZorv4WT7z7IL}M?Db%2>gh-6UuJ0h_~cW&J+%s ++zTmVS5X_z_|EEqqD7Dp~X4iK7HqLs$4#VTHG{M%70-O^C=8X)>uJTog1!nb7+{(RK@ ++zTdkTOyY)Hdw#B)xL;Gj@Zb_$YUCq>uB}9gvbHihI>;Mc8;^cVdNH4;Pl0pH1di%Vl ++zDSuq`DM0*tK2b-?i}d;j>9nyA8TqN_LdPvAox%}fQ~Ko&OYsOT%1vht75R7cq|AiH ++z$s#p3`hp^g#1H9=|JX<)Emg@0u73)!{+d^D?N(DubucLhW2(4p7$Sc1gMn7VKy-s( ++zBJay}wHMr|t$Ee$(Y@G;6kM!3j3z}2AfoC<624{k7g@av^zXxv_na8*CzK~FW}C>n|M_slxGY|@!a!rG3;m{c?K ++zD6^oX8CXUVe&pSj^-wXI-Iq#(xkX+_eu;;PJHRaPg ++zxw@E=EjZfdS*dceOlyGa*%e6W31S3Dcgh={lUY?6=`oN2JPl~l`iPbab85RnWb#?i ++zdwm;j;XxN8UkeMmQC37ko_KE%L&#r^rv3LS4oSf!FGCqtx9|5|{9;>&I>3Q|9N#MA&-^^64cweP?WP>VQHlhYJ!Wz!=YdmfE=9CKJig;kWr1Lsx@b>3~^BIPhr(dN?zE*lC|f(jZQX7V#v^~so#Wzd_{irbY3_T ++z|K+WFfQgw>0>o&q97aUMG3N(Ka(tU>00EF}BiyXGn|1Je9R5jho|j!XI`oguQhUH* ++zPVpKuvKDxQl?+B3I3C8tFUbB?p}rJH3%0*LdTSG#kfo2hVm6?=88Olmo;H3q_^o<% ++zN>c#TGnU}%aL#~zea30_RLB_UmP6>e-J41zZ ++zD_0uarIkNDr-~u%+7>84r3YOf2B!3@s5tDZABlz>c=xj)0Q~#bRMPKjsrAH$+78C_ ++z7s5B@#kc$)qa0%BLaganPuXb$iH$%4@thk!tCgetzxkgT@(B`8r> ++z6OvvJ?s7v0xVDkhX@<{l&XyJN(18J!%&);_BqS1<39sHKwVR-|QG ++zz7^*mYzrX*l2v>zdcDsC6SNB{l~+*JR3IATyCN516^cGlY@{!u$~xrz)LvOf>(TZn ++zUZxC6WZ}hjO(G&@R!bClh^p?tc~%Zsmo&xOZG5inRuMl4O)yPU?|?rN8awafmBE|? ++z4v%NHYN9L>qSDt8)s7;y_svEeC+3w5t~mrbgB1dRVuw_gI8{+UMmi00gOyZ+2F+>T?5;xS^A{nQ^FhJ>wsJWaW5|U-xXUcEDkj$?IJeNNaT}(Gcdm ++z)lK;d#%jU9hHM7HP4vdgUaZ8q}2h?&mS04&z%X(Qbe2g16aVB)sPEnDX#=`Z6)uE ++z@@$Q{$yw2NgHI@FGRzWcM+h3~RBMw-oQ+UL<ZM_lbNrJA4k$fk ++z$Qb`^Gc_N{%;7*@BtIZeyxxw#^wL!Br!7{g;36yO%^^HCIVHoWa5={Az0Ck6;7RbD ++zX4`VVA>ty`Xn^^h~fh6=Ag!>QMCE ++z3vOIENm&RPtr>-8#K@v4W@*B!ZS>!$KKjPL8Uk>#_nGARl*(_pf1qz&kX{ ++z&N8_DY4wl4wn(*tTv?CiurV2+O|GT9rGIB0)-)jZ79K|a=a<`@F9P)@d|X-RmXA~s ++znFFIzzF4rfpfFJU{coxBB`G3&01oD7{uU6JaM#Qe7q)}S0u*x%RmnoL?Iufw6aqt|nBi6iR9-1SE1V$YIAgM4Ob;N5drnNYuLy60h2(fRc?$R0ipeX`< ++z8+|(yudzG*le&;_mBO>c04I-;{Xhs3FVGSuk_ ++zFaFt5Mh*L!U_=nVwkRq!FreGMh5RN;iu1@?kghZmH&+_ZP&1NTM5zrJkw*0`9Djxh ++zV|mTVCBzAfK2z115*yTuC5+bZ9_D_Vgp7Z-FCCQl>^AC!yFnZ(GqFV{8>U|xrN5KQ ++z_*8en8Z*up^!7jtCrEt8f?2JEgp^>zh2}0r-w-o5Vgvy(Ok3g6S2b(BtE-VMdBW}L ++z9xoWmN>jE6p(hXOj%#2RdX)LpiYN=h ++zmlu$?mZwi%Ks|E*imQ%Y=r1IojGyr+_DyPDLTKeY8~`ojbyRh|4<~vdyH%eTrsnCV ++zz?ga@yK>R}`+lh-ibHY{rZM&rje4O-vDVoF(D<_fC4=ZU<&n-b-%$I(!oMv%bdCw3 ++z5<24G*T5|C9;&g5h9LKO=mF(jg)Td;t?J99hKekCe%#&svB%^D9A&j^w5;N(*`~U| ++zWlB*V2O~mBX}7NRwM#R%R^P=uUv#QH6%nHY@VHffv?;QQNHEkLFE!Cg62XfZ0lwgYR~1C3xDum3(+H9~Z@dSF+!QsDFbV(C ++zC`uY&yihd`TXD2rx=UQ`h?p0Cq-l8SizLW+U5s$IahIK-XTbsVbdsD)g)28U2a?vJ ++zJu4{_uztS}=$h~Evb!N??(B+o^UJ1SoVhW)vA>5&u-m4(F&a>o3SS5?Vn`+{nNlvkhkujuEYA1%80P(T1jOHi*d3c(JN&v>&6Bhp+L ++z{a3d=DZBv;mm$DPWYp6lq;+Bi1MAEU`A?n5=R3VuuW&KXVxsD4T7pms+<3Z;zR=+U ++z`5b%_j35&P?+GuOhgDNb7y#gdnqo~=jP)9;hDwd41Q77$ ++zn{APfB-Op7dzuR-K~Srnq>3TQ ++zgkhet0z6o@FKS`3J@3o|$OhQD3V%no;?qLn?ytkr^vdQj^2Ge$Am@dy46IUjzs|E$ ++zGe~4=utsjn`w};tO(eC0+fLGx%73@DK809ZfkyPnR3=ndo+F=RiuWbKqM$lpqc@-0&UEoY11X9fX@Us?a ++zG|~*4)2mQjx;r+rBIiGxmi|GW2{wns_RvuBNEOfG7bZnVmLeavIL3wSN(Zc{Y3^c9 ++znH>I92d6*(CN;KaOLF|%MNi!9BfU-SSIs~kT>g)&O{1ffT2P4I%i-uc1eui4>`@Cf+NM| ++zV#Dvktj8c&Kym7OQzy6@CMoGwlUS5PB~t*1kZ_C5*cSQ0CN&}K(A*lU*oudfkQt8P ++z;TPVjClDsWAi+3G8u|Pe_tG{>b~FfQv<0iZ<^5-=FFF6hZ|`AGf_EyfN$T*DmylW4 ++zMmI-4Xj}(hoVafK8-B{+7!jMt5CrsDbhQWp((Bd2b?mm(LwHEa=mWT)?hl8-0>3|QfElgPSITF`V9 ++z!(n{%R=-3ZrPIc)P}h}2hVI$9;JX$`WAa2o>+FL&T{1=-Y3N@}A~C%M$oYQgzUR*F ++zw-L_?08kn^j$DUlLStxq6*6A;hND$Rs;r7WVNqtx{~>%ST#Y@R2O$6>JEp(r!>LSC ++zr$oT-raA9XSnf*_XT9Js1`mNL8bx-;xhF$|VBaCX8jJZ?8$u5N^r3%b+9)zVRp ++zE-K61vMayvLmYw5pUw3jeyp@Df9a&5mhlgSc_M!ysnyflD&(r0jf0_&J36AbvJ>1t ++zhXjB0uzr6a=7YzA8;B5WM1-S&wA-E^_6kC-MtF17b9s?*6Iwrsu}tnPs|AUMJpe#@ ++zs}IvyFvj1cBaT<H#GFdAt3kR-zJ=PA4*QYc ++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 ++zhG7B^Z|!})Ny#I}S2;9sTzY34qT`fM ++z5SBJYqn37;r3S?P!~H^>)V9=PIH9~2Zi_#+QlWRd1#;^cWEwef;bIBI{(hXiSKEeGvV2PRZ}?eZy1pqH4M ++z_Gsjt)&V$w0aBvtt ++zt(wdJ+S?h18&_-N#wPpd^W=_&12Po2P;J%Ej6B(U#u-=RM$g{Eq?w<&HJ@H?kP609 ++z7ni(lX^?S&xJ|Wl9V}Z{U@y+bsF$7V`0Zca+?l$)%2D>WfN%E#ZOuF%N_ArtjK7<$ ++zi|{(s3vHey$Ye$oju<3l%8J~RoME~JQyHBD@1I2~_ ++zxpUxzx%+Ij`RBoCl#M>|$y>7#viEs+(c|}tW-=eb8LAj3-!F3!0!9oK>Z(^*+eu}_ ++z)*8O`cnB=oBo1Ex;0p3M^`=% ++zrt(4zeV&tfa2;hd#7)`gLq_*dlLLL*Mw&}q6_H5l!o@{Id+pz%NTz*wozya09raOZ ++zh8~OLt{4hr+|Cz(i$kfb!>)!bFD^hQk|P>r)U=t$n0@gK#a~tuyws?A2yA@YvD*Ng ++z?X!)H5_`DxOI%P1D3_Cj(VL|F2V8Xbjsc= ++znK3l&1KhK8-gOy8-pS>BZl%OjGX#M&&pdY*Df=% ++z9dvyVuu6U-(0_pY1T9cMq`R?wc&E{TFDCo!VJ&?;IIF#8b%L;zZnFPh05TKJ?0*+= ++zqrQd0f~(0gCN5AD1cH;(Gy)E2UO=U#zTEC3CM?GnF3 ++z6951T*^<29n$Plum%BxA8!iB`Es64f4_+VsVE3l?{x~q5P*|sVW$qrG(e{E1>(-Ou ++zN96F~6YoD#2J=;myJ37DW8JjvDI{uRAtgzB5;#qz?s_r_01PsbhmRiTx?}|pWTXCy ++z5Y(+WEahpw*PPFkKEBwB=`M;;z)`Y%_G+elYX2i|IX*OHH`B{$f%VQ^>HvU>Y0c>v ++zUsdfQa*FB`em5G)!kA4;oF5|q0EPx7MO`H>xe;A*)_gwgs~>l(uThM)tM{Fhpjrd0 ++z70;4;@Ic;1>L*Wq^`~zf^WE`#UH&q4n5)RPJMaJiK+)%yM72;Bp%=@R<}IZ5pbvh ++zCIwP8#=sejaq1c_iuFT`0106G&~8&#`G%b8K)rn0Q2&Rz6_ad4Jr)8q$jaRw<{$w; ++z{upWfz$m)^EzdV9LCqxR2WxGi{X4ST#S)J>pF+k!hs13zXbRO82^S@`4o_-?N{y~z ++z000nxNM^}R{-#ZJj=Ft!k;8A11pojP&4|Ui&_Rp1pVEb8>;pi4EU3TGRlMjb{vG6HZ=30)XMYWc^?l<-g+%-y|y}`?YZY9yNPOyQrrkcos2NdaioK(xFMDN4;R}n ++zy42$3N%H^!nq)t{q%L^he%!G7<<%QrBLA>S1vHEYpRWAzz_~x2JKFZ}B#LiP6(+NY ++zGB~2+L*quH1^~=yTX&{&7UB9~R{uBa&?!5=VsP#FdQLO7MGRrvuh|( ++zyp#<0Aj?P}kSE(R7Oa8*003RqtypFc&_T28l2mdrI1E5;So~W!{nHZXPs9bB14zsc ++z9~xWK@1_*1Y!>O{G}wWjDg@aEIY0%qEw|vTvYWaDCt(sq=aXe<4%YVOnZ}bL1PBQ$M2P#7bz{fFZY$zfn*bli ++zg0~R_O|$N9AX~=~1E6kE7oRHe{69;c?SLK3?NQ$H3b=zi)-1v&n2P`~S`E+{*u_)2 ++zqVYsh6wx56T&P>u1+cm*h&i>AAow`>?=_p{Fmm%KemUU{{WV;7eYOZ69E8inPXGg#S=s(7-DtcHxNanR2k?ZTTl~=C_(`M ++z;LnmFp``G_OEAxcpFf;&$JLk!7tbOxs4tceCvGtpER8Z ++zV@1iJNCN4H+CVr`=ZA!Wp-$2b56}D`YD;YE{8s#cDF7g{k{JijNrD#g3#!lmY{M~h ++z0iZI9!De2Sw~eY|S(!PA4FF(g%i~D(=dA}yFhU_YkWB@8iCJ=ocg7|W{Frjn_p-qI ++zcv&=`#S10SQIlme0tuRE=v3@l>_QCyDyx*S_9pEu0~w1}G&&4|00bM5Sb}PN;6DO% ++z6mbe0x;7c0qy=rfG&;gvD1YnXuahsE>57K<1AoAVVeP;)Xr=ul!!kvRo=xFlmI&_7cw-+D;fq`x< ++z;-m@y005Z~Nl?nXn)L7~#w3$!$}fef`{jTWRl+Xv78N~nbj27FG}Dk)ty%1b4geHd ++zBELMVL2VQN=W(b##3x7;#}yYuDS0pxDLFuWSP4+jAjLwZVqu^l9pESedy<-=%BNvk ++zdbv!)R27-Ph9{vd)_(qF9|~xwp%xpW;?MyAsvT7BVQ&#nyHd@J85|O<;{!rN2?hZg ++zDJX12*H#jY6%!7rWP=|QuAyV0Z*wpA5S?op!0d2LSTCpnr_nXLY0s*ll{P`NeHM5OLsx;6s ++zp7Ml)E1f1#YmF)>YJR9mR-@-AMgZuC ++zY8W_B_mMy}aa@!)RgF--u}oT+i!J~N=p+vY?!9;wAwFm!SM^eWoWg-<^N+gy_}9Q0 ++zp$<^e3B*=hPG2(1!b8!IZK5|Y<3B?JM%0NYWvRMkj_Xq}hA)>n*r81l0J4~c4vwkf ++zd{D1hiV|88L7OCKv!Ni+LI42J5?!z0dT|D>0jF ++z*oN4m`JyLEm<6|+`OUX6d&9qYkniw9E{P5?7)&8DDnD?r7encS3KZBCc0{YIEHV(G ++z0ssI#TxxQ$7M*|A#6A^cv&=?8H7vPx0000^N-2jD|0l<_rk{%UF_)V@H6ixH9EGHX ++zd`#<)aCb)lP;gXUWU{L54FVor=J55OUH?G;pA*PDU#qKMd!?fy#7+nBVQ|v|MV1u1v=;SGt_)A=%-i@SGTv=TD_}6X>{uzTLPKQ|k ++z2Y1kaW3dfhu#xt&9mSJQmB9d00;yOU@iFX$}h^v@_mYvWI&T+e&#{S*I@vLJWwGL ++zS;{tsOvlY9NgyaZV(00RB+ueFASjO4ZdQJ{|GJ ++ztl{yRp^c1sgq!ZA@vflB|gOOaxpuQdq5T5ou#tNkw=7?V5EpD ++zv}BPY;Q}#gjHWvjO5fK`iIuy4i>cu4thcfTAV*7~qxSGDhUiCxi{Eaz|MoBCMx4O->BWmyf0K0EM^Omzby^i7k*uf$6!WjRzamk9f ++zhO1>-vB`Y&ObOPVW_iXTue<;O1;N!Z9}52YgRaYy-qmoZa8bREA()V0lmj`;CGXe6 ++z|L;KD`;bGR9Dryf}=7v)oGZ(&Wn--1H-0aHHM ++za&ncrpWMSFqR=77-IFL{8Sj2R-1RkJD5Tm;ql)c3iXi1VoN=j2ZMHI_{x`3kOYP3iFl6CFV@q!&L1q>entyE_t4rsa%fdH))3Q0yh4X$>>t^HjVHryTm-&jJz ++zf9By(ImVNzE=Ai+ZKWcj2tmKOK`LsFI!#ljsOO1#uG9%?o~Vjj@e(hUN~NF@00=}N ++z0vU*cR**gN_2L2I0pg7kN65oshPbU>fvPHJq)P-%SCa>atf2!B>eb-?0==;784f2( ++zoxv*@is;IUA_N0sx_TKZ5v8mgPAj2^^^3dB`;RW*f!l4@FAm=s;j$StOlKX#B>E!4 ++zSwZ;WhYoo+;K7CkE25QEMINE7K*3*6Cr^~2wEV9gmY7$$>K_hcIUI~>G#N!2F$9!f ++zm@r_#2LTBI0T9vM0R&1 ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 118c0b8439cdf41be1735960c08d53747439abbe..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 13986 ++zcmV;THeJbyP)$B%YOo^M3&dDaV=swVC@Ly8Q0xU8 ++zC>B5kQ~y!tKlAqO-QM2b-5yO)?(>-s3Rm{t`|iwd=DnTGk|pzz`N(`^J~AJfkIY9# ++zeE@(1nj<%j4HKW|kU4ViCnN-cmYXIyAn^B;zh5R??-(#_VpTjh`yYS&k^k?%|1R?H ++zzyE%Y|E~1spMO>*qkq%y=x_8Kdaf-Yc{gBS>HHS$W>i*#0sdgqvDGQEa ++z0RQ>tpRaJh56QfZ=xHE>n&_FN-{}y3*T$B{A@iY5=V&D!#}!@t?+W0&$-v+!g}MJ^ ++z;f=oYmol-PsgG>Hqm^i!qTH>EgDPqpc*l)tCCT?*Ph+7pMwt%}^u ++zuigW2%)*=Kk!UPvOhgZq>5XJsM-r~S ++zD$O!CI+-LV)(oXFeD4Z^TgK|{nbuyu`tdGQ#>?n<$QmNyeUxJVpR ++zZ!#gV9o9r|L}Q1KPD*3@KIok}so{0vo+ZGsi+5o6@hh+?@I1`@^(eTn3jp`EhhWa8 ++zK-hTjG;9et3s>&MyffY?F)?v24ynUCt&1dCmL9+OPDyH>Y^@Xf>;;^@b|1#C4uFP} ++zHo&Jn7DA4;vq9f{8fcqL0d3>&LEC5oXd8}08xO_%EQSz->>bI}*z(Bp=g)WDx^>Ix ++zolNybp%)z;oriC$NRf~g|2zTwf+C>(Pusw`^=#06Jp**jWYD;c1#N>-psha=fBysM ++z+AaW}1L2VP^5r`h(h?F9PMteT?}13e}@+diSME|`X7hrI(nkw?}R53zW|Ema`@$9k^|36 ++zw5RdUVg2E7XfS>aWNS531`UR%2BQ&{5eUst(AF6Q+S&u~cVj@?W*+F;FNR7ZH^7Bk ++z58q{hEkYD?=gysq85$zdg(5s<@k_;Wv797$;xJVC{C);%jqtJHX%L#a=xOQ<1nrmK ++zfwop3(AMnD{;q4ckinC?>vGr;a`k=4(ilYO@#AjXxKSxXhBHanDuQ3;VN&6VeDD-} ++z51fa3leR$i_MV_^=>ggnKY^A))>o4R?^1U#ho&z=(+jlKyQ6huVClZ`Mt~N9)3=LY ++z!kS=+f01C(yFGZ32scrTN5nmc&?nCz5X0n_sHfm__YwHre*(K7#6l4M?&#xqIQb+V ++z&c!~18~FUEi7(mf(<4N2ad9!Ii859=6Vu51_wVOMXs#p$9!kYG1YHEz37a8nr=`q; ++zC>jc4ZPO`&$N8cQXsdPtO_gs!gSv+e5?p_lJNqcf3E ++z_2dmGe(W0L3Azl9hc7}F1=9yyf*knwf=8}G9jG~eGw8ovVm~%v;W}Y-h=`NIs ++zDj!MzMqHk-RV0i>oilI8DJa;-H(B6_p^Bg}7-^$EE5Tvs>9-D!l7=ErxCTLbn0ECj ++zwn6Rb)29#-5z!@GWo9DH7-y+a7_VjnSTqXS@oSDiE=;YH501A9ILtaO1ji)@(;Ylg ++zqfpxN+-;WCy+|A3%{Hh#eE9HLKtMpLbRnvxx(5&NsG5b*d#FdcdF@Y<&anv&iRU(+ ++z;OM>$vK+XOt^pD)J7#p>UyFvw=Lu;N$`TS1ATl!YB+i-Ut?MCPTOi#tU5)O!g;`eJ ++z?|%j74ogzj<1ldMGt&(8fh@m;We9kTg8LGb!LUa9C_a_-5zSF-Y%E;5bZH*fL)y10 ++zn&aZ)YO2va7a|`*imdwf5E2s7 ++zfaWkbI9U6(LYE`D#Z$II*U2mQp~CR>DITgsaCEKF+Rg{Zd3!S~Jko5fP1tRSe3pLx2hCZ=L2d-CK7goTAoPSa4vE13?rZ{PkDNq)vdm*S?db2p-)#<)!>4h~xn ++zYd9XXwFiQ>MlaBQ(G?t4{{BwDBehZ?*We%~9jUlcAMW10`+WQM?Ik%xj%lTR9Pt2t ++zwiLQv@~~BU$XfeDRa*<8>g$=p3jCJ?KwGT~T4%wkcLB$d-tQbdqUA(g6oj7WWh#ZT ++z`1p9Zc=4hi&1tHq^`dZo^ypCyv4fXfI8)dw$ysVg_ZVd ++z!h)$_9YI^ABWPNWf-E~uyt4q2eU6?e;89$v3F@e*sMr4f{;4mhxr=kew0)N)?{f+@ ++z&lh9;k{PNnOf{b_Y}LTE{b|Cv9PSkX4Ig3Rg{jKvCQiJ&YWfcEWazO5X@pu`Os^yFwPfAZ1{r ++z6Mi599Hiz?cEL_FeGht1bFk6|sCMDEA?ihnuc5snFBB0GaX3}Hkm!A)qoZpm6%9!+ ++zljb3>)7oPv_?b=;Bj$raOTXJl+DP*y3d6R7YfPiK9}!4g8Gwx1-Bo5 ++zg`o4d*|k<{4xNXbofg{$2fYpz0_oBl=50h^DoBB8#emV2Zz)*07R($*dqEaHVFnMQ ++z1dJ4deHLu56;pb?8CWu)BrutJrj&)K%<*e*E&fG{*M)B0y!m3;vSlS`&bMyes!6G; ++zvtw**>{#hmjjQNszMZode%Npnp7VVz51&4Rk^_9LFF6o644yflsWVsr#}Y8*TX1N; ++z7OX5<%?{wO`KUQKqIa_W2PfE=(C3$;4WOW4GMGteEV%79djwO74|X9;6R2lx?{GM6%oA ++zDLl52rK!1?lAHr=e?>8U5$D{QSEn74t$i@Xt0Q(peefjy&7rVJv#T6#+n ++z^S7U{2@VNnTKv>}(G{U-Zt7vAz?9*@eBPMbSD-14R=piKY!9^#juJF-7klaaOQFe{@=io~Uk<-do)71XBk`58NZ4Q$*OtfnUPinhLngoLc5 ++zxleK!6T=q@st@puuUK0&jf{Q*)km$d4o=HiXda-YjEg*u87vZDN^@XJHxjH=L&56z ++zG}SYfpfLf3gRuP^XymrdhAF(p1TJep89)j*2Wh_*kdgpVol`g2HEuK)TaH|Y+1o-{ ++zhAf?<5wm~t;>C+M`t|FVC&^(<3}5KZ+{Ex@=|la3Ejbq~t+F ++z*SD=kFGO>31(Ta*(|5w9JEmS}#B5(E-+rvx$~3D9?bxxSb&|sve~}j5*(`bGS#GV| ++zf3*M(hlj4!q9uyj1C8Ox0F4BgQZiuV)^)0Sa71XVfnu+j!F1LXCMA$|nSx}lk!0Q| ++ziS?tJsD)xsD3j-DkJ<6~HNh;gkph&fPA`a#d7?^8(_W#VprED1fZYH|vM+r?Lc(!t ++z08y)z?Cs_&dmILi0FSQeR6#hK!D0m%xpkXr8yY28wwy7w%}Frn>y@BVgvo+Ol8bFI ++ztR*9)(dF2CAH=db@!ov~3itD6SNe+cG;EeHWUJL3b_bnS1rY663=0c8iwwBf9md3U ++zuT!T^m82fUJbWqccV6||84DhVgY)%FVb`GB7{TM%1B{smnqmY;u4Al0g8*oywn=WM ++zWv1{P{#uJLSp!KP+T>wP4iQ>XAo}j&J;Tyc&MwPgq;HTReIMfC13FAzrY_&6dTHbO ++z_3JOay}c_F3w9M1#q0~?U}vs>6vgw?_!q1@n4-tw;4o`G9W$?PNe4%?79)%vM;f9G ++z(3~~#FeZTb$!w!alfO;^nVEMogUP6u7)YB#!O`ciX;`zQjgkNnEpa?XVD3DOWjjHO ++z^j{6fF5YExHE8B4wl${b)aCH(`3p5g#n(|$QLt;*t^vdX0;IQB|L8Cd(v92b4Hd)J ++z<=YRT?11G~!C}_yN1;%dT!89yw*ZbD8VjIoAUkDh>#dmlxk_NEfr*ZH{V~w=nFWqB ++zHz|4}2NQ3Ubcm?i2z581PHeQeJ#=LN(?tVk2msaZ{}V*1)IpTa2L=ZE5(}zz5XHI< ++z9XgP^a(eONMW8i+c7mPAFL1Sg8?AH@*%!!L)efHRHTk2r9Hd0L)K ++zfXX6-Q`eb;V+k5FKte&cHfct$6-)^z8B8KbYePUY-UqY|2IAS@4Ychhf@VXAL?21D ++zk#&gFdLr6%b}8;T>^^xNvUOUIEwIAA#^JdMrT24n#9`Twqa3mf>Pu9(Cs_$O4tMhM2Nc;Ku ++z^&=)!326?HJ~}#j64yV9;VU@&7JS@ko}$MQY>J^FCaXTD6hNPU1zPXljPNLd!+;4j ++zhvjF{P6*~}!^G!_uTz4`;GIr@cHUmlcAf@W*Iq_&#LJHwVi?;PYSc%`g@}rc7676S ++zX|y(0ptp~)iyJi|r7K%p`$AXuUsM4^+4tkek73`weY1%PRRHlPIbjC2%$k7S92gF{ ++z+Ww^AaX2`%znSc-Ny0*DN&!UHeVREqa!(@%hC`tz^HH!>$Bm}+cQddgFf9oH?I6?` ++zwfmTZBVL9y(9@ugk_8c8(YNM>sLvzqo0eYG$=V)M=UUf(&|sLCUAq)96I)MAr~=5{ ++z-JLX$3%+oVC4h+TS$;u+K$d$P5uC=81#2|H0tjxxVk#}HmggJE*dl8)VVT2fI**}Y ++z$sw7?Q2<8?npHAbq_*<7<-f^c@;MGVuLGbRjFVG;fFxYWz@bZ$YU9Ms*(DL#rzM%1 ++zX#r9-L{>uCN5NNE-ysu#=z>gYM*3xcsMT+_+GgvoFcYVhdD?8Bm9t^}(V#&CdQ#Ts ++z&!3+r0j(6mXpLpql08Fbss1>Jmq&<$RK-*<#{aKuZJ ++z+Kv~rktnjwJkc2=M7BJUeA(k*gyPk#)Rx!)5VZglTOs4mvR&NS{w)<@jIGR{IdkR$ ++zGLfCL;b6`CP@1MKQKCeS#KgpFmH>MGA^|$h+@$PrL~xj4+KP|};51@lnnA;EdNNLE ++z6z(=gFzPbTj2efJGD5{V&m&l_{e@~a0YzIt>h+ZA8=1F}Ln8-fxgAE&UlI(u$(upf ++z&4bl*EQTt{MUdhJklKmA2pO9+QX)%PB=rlky^HlED$ ++z&`C)rXW=%JA^7|)RR9qKVPRpB1qu|PR>4}%h(-OQ;ZG`n07YA>0ntrPnoy>poL;B(@0Tdhm9IAY`$SOF(?UlwGfslgJASvK*c-Sos26IDU*cjidvj^zLuLIq@ ++z{h(iZ1R*(!cFYtQDI80@a6V|e24=F_Q)L!C+`kuN8ImI57)R+Q2ID-hsEZbLO ++zV8fxassXxs_3E=hg9eo+Hq-#5U$bV-=LpbCOGQMw=}E~RbFG8J%+63H!lMQpb~BZM ++zf?gt{!J(f`#(=KFbkOzk1l`b;pda}&=*O=I{W#IqfqsN9=m#!EQ0C%u-SIVe9AEb3 ++zw@K(ORE>G@&z?|a0H+eaFtT1B&@DVSE%xYuEmmG-*;b)c|eWxUmAl^S4!iy3e%^PO?Ll1#lQNGH^uq ++z?8@Uj83{(pI#}HA&#j+ewR*ElsF`=E-oto*4b|XuunrDg97#>jhb(4cRY?7RXKB{r-A#7osqetv$H ++z5uSgo12o4rIMPs6KaIf=@7TkvmtYK1zi#DHy7x;E+{r2f9fcj3od|5UsHRktCEkZnu_|$-L0MFwl(P_Z#`fTNqy+ ++zzSwx$#;hQ<$VLEB*p=obg` ++z5`Z;`Bnz`rh}48K#o7>WF0mEgr`rnS9gW1Xq<%|m4o2Ap(2W~6{vJ1O9EC8a0Rsl; ++zYyz}+@#3=h28ouku%~edP*;z4Csd^bIO65m_4|Q-&VC`=TNYv&BGr0G9?EQcA;+bM ++zjTPt?9+L1iM3@JhCzSxb<|6v#$dMzfs|IMwlqn_g#jzIaK+j%4{o#vKHdNJq3!$oN ++zGDB5GStE$59Y8nO2lPMg6KopVPyV2v9{~DA!RjEAhca1KX44DpKM&f`#tv~TOJ)EK ++z=9T}EY~IE!|4nrofBEv|`0m}iSF#C^xD&BYpFW?wc=5vGW-{7S+kD)L_d8U{8$#gk ++z*j=GJE&-jirEw=rrMs^JU7w#3F4QICw}EahruNH^nL(tr70PURAp&UgNzjU`@T7le ++zPH0@~iuz|1iyUKCs0S!KJUpgZvu34<4ZfUV9U!z15umGZOb`XU;?-6CV>BoDqu;$D&1xQdfpNadB~>mH?s!wjWmQeZM`9*inSw`RaS2 ++z7o@#6kReY+#lC@SK{sO`dZi3kU6BV{2t?b9Y1a*|2a;QKQiWSh6!j ++zl?S439mkI!KaWi0<7`;n*6M&Rik_7F;lqc!t?dU|vMmUl-A2B@;814~2G2ypouQLu ++z1QUh1iQ7QCG)M?%8!TucX-3BDLhP!J^&uwVlV!;!;Y-jzbj&OEo>bjC@!-LOw4Eal ++zXTv%`D3Y?`&s=x!-d%1DpxsBp;KOF)(`OwgwL+D&hY?kpn@&qUI7-%GDQJgp1npdZ ++z(5^kHkdd7Ojl4RIKQ)uL8Q~%QBaXc^e4+kvZu$ePIdE3Zjzo58&+gs3sqI}Z&W6=1 ++zGaN>b9!;0B=8TAlm~3rJYxuQ0@aZ>`-!G3N_A??N>1veri&6(5i2&F3TMgQu_JP*t ++zC};?zUzMuU2++FYpcPl&`HhH$;-M^jp;yY$Y8w0+9HDAUE8W#+!-fs>i3xiE$`KeC ++z*u~l{oZ>K*FVn^S{Q`%28PR9bRk*1Mj*|8E1+DvT(D%wZ0YqL4mv_6p>18yn4B2159v%5-nfo%Up4bZPU)1q&9;D&A++*2A$w ++zhYla$&%D>KU-!0_iQRkf80rn2V_&GMk={cU2M7N~--ER)P6{lP+P9&*4NV38h|Skx&?w`t5&Uuwmb(89O!9HNGBvF!pH@F@0Q1*p9E;* ++z$wIe%d!Zry(Rdz8Ex4Khq_9RNuS{z;Npz6c ++zLC|%PcpnV0?D8Fxy+6X@DHGKgzH+ph4q?~ts}j(Wk&&=q!GaOQ0%t-MKn~5DHzy&T ++z69sjZ#KgpSYYi4oUby~lcpNf(52khO70OhF{(3t5?yUQ);S#1spzl2&oaYCD^MWG` ++zA_mYRf=CJw4`b5p9%k!fG99$`1ZeyCn%q)L@IHMd`e&G+f850IH4*BK_F-M+)U1Jp ++zg@wK7+_`gIVu2SCRdp$IAhDDuPo5n3??ULtj#?AaiHR@4wa<)<>v8BpMtVJESkxrc ++zo+SxNmz(|w8vIVIVW{i^NNtri;Edwfd44bg6f6KlUT6{bLQ5rKOs<1gThc-3g*M>t ++z#%wlSv~4}da6O%3^%=vL4#U?3-veeHT$KPK{d4HhA!>2=DY2kdKpTW~?b@}odDq4!5EQLCZ*jp6jsWQ8|*1{FEx>n=BWp0q*fjol+FC+zM ++ziDb`^bgPG`gXG&h#LIwY?lUf!irR-l6u2A)sI16?)8)r9IsZ*y;Zqh+0ro3zcbmi84DBX69 ++zb#T7uB7r9r!J(h@8MMohE@`0P!`O%uGn7`~*{XG!{=tF^n$t5Id)YceKaU6bMHeGUr%%|UqPssxDZAUQy~nZJRq ++z>k4ytNQY6#qL5t6diZMo{TjA@sV00~ym;|{BS((xM01}M{bSHUv;!@B_Us>07`u1x ++zUZ^cE^dvSOs&$@dJyel*qKtr=Qqi^bRNSJQ&QTY83J<8CXu*Nl0;{b8RQ!&M?AYvpM_U;)uTdMo ++z#Us!_Ua#L7}IeVRtVqpd)l35sb{pI@znmKkhgwc>l%ju!?u`9HSYavH?~b8Cdu{p*g61jnVZTr-RE+fz|;s6cnuhv^WTK ++zLpPYF>Qe7R*Sm`eOHGCFC0RTz)zcI1$Hc1Y4Nb+v#fulup*gQnqXq$_OG@}Mgt2nv ++z%8>&92$gtc6w{Ba6&2Zr`xh^Srq;HyD*79F5%M6^W09E%lN~^{v;(NtDuKfHX5rON ++zcy#r@1DDBrk_XVDV9@=r%Pi9}F}l`^!WAVeHD%$eu4(vkZu&jU*%V}R@l>4CPMtcnn!J#;8?Ok0`W{qlH`@Gu?5C(__N^n ++z@#CAt#>W0@ZGB8UpxuF?kn79twzDew9i26_;@xyA>$j)~R5Lq(vd3FVfMWOapbXC5 ++zo{i<2fm82=kac>1IY8F3Ff{!vOwGq`74`wCC?&AaMI{N+k`%sbiTa0Md0Nkyed$p= ++zFW7oSb?xWOnKS?E-@ku5n(Jc4isejd_GK2vsAuA5pM91ee-;Z558tE43(-RBET3(V ++zy=G?{xAJZ!{G=?31hv?tlUnB)`Y&1m%WhAl02X})33P?!2%A=>2{?7~fUG|r6aboO ++z0U-K0>o7RY@CW_Wy`Uet33RBFaX)Fwyz6`VsAn7f= ++zTk&*Ua(8C>Nn)G6Jas*5GTGQZkC~ldS@c-bO*-q-fHSa@au=ae4O!@L>g5AY1J;7m ++zz;)m}VhcEr-U?15w}8`-4d8@ASpVHGpzrMi`tGP}IxZ3lnQAjZ161BZ=%TPs^)y5H ++z>MN|ko22h!K#xg^n#@bQGtaqm=UxpNGK4D6g+KrN^JI%>IY2~W)*?lU(8XmXPM@fW8>hP;U1u`+*VS@v2pvwEu#(6(KzXLS4e2&G< ++zV<`fVD5mv=3l}CY^y%QigPWt^`csV;Vrym5G0DKiOAWka#Lu2xfb;rQxfVa`n08_di4Q<2coqEu$lN ++zT)A>(Y994z!GZ^W@n4~8nO@vLD0sR73= ++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 ++zy~w*wl;Bm^pLi ++z9C}ZBZ>?7A%0H_L|7_-IB+wM+$NDip_MH5?=rh4dTaYw7BN4q)P6WhSDfX ++z%hTlHPf<6?p{mL~M0J|{LWK&sq1R|uty;AfwQALBMMnRo-_hSVAT=mlN?vb(g$v<| ++z{4>kbG0?H_W0FE6hAAEYE}7uG1(4)kNea`4JpC=m&v*i=B+up;R0u?6N|zlTBKr ++zI88oz3<7~$S#D)G9HluR#rbPK4j*C+lUQ_vi ++z>n9Pc4|!+4yHT@z2!C!c!(R85}4nR3cb#wR6Kvj6}907*qo ++IM6N<$f@2NRtpET3 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f4e60e2743808c26c90e38c209fa99f19b7d240c ++GIT binary patch ++literal 17540 ++zcmV(*K;FMnNk&F|L;wI+MM6+kP&iC*L;wIUkH8}kO*m}ZHjp4YU$lsC|ACu3{0I^K ++zp8)=y1d_F0Y%^BX;K2Y@1)NLJI8<#o$0ml{d+*l9$q*45&l2=g ++z#~qQG@5K6#?H0&A8FD`n&C$#~woPqPz!-rbSFSuag*N8l6#-HNf`}Gl=g|K1{SW<6 ++z6rlGfVwviyk{9)hBto{*1 ++z#02!eL>$O`87oU@wmC@;Upb^ZS$Nm73QjLPb+ ++z?&_YFak?2@cX!`w9B$p+-UV-gH^8O4ySt3fwD(TCS5;<2oQ?QJWMo$L752qpPO{p0 ++z0*yVm>ujDtYOp_UwQ}XY<5TC5Yjys(1rEJ6Qn*9nkQc=jKim?B+QHo&rcWN2Lg`l9 ++z=15ka@2{G@`d+kfRSe1|1WZgqz}8_935j6gVQalJRrSlQZCllrdG5XMee&awLFCec ++zOBHS%xNAfWRsmH|1O<@0>-Wy3rES~VHhO=M^b4#wio;Z9=5}TQJV!G}j61+B;9|Oh ++z;W^`(G6v0Ti+*w-NmASF5iWs{O_aj}a8LWc%8jGX?|05=kh&!cZP}8{wuWb{VP<9w ++zXK0xr%*@Qp$;^bA;~HirGux6;>{fT5^ZQl0Tbf?~1)tFEqE%YdvV(W7Ui6)onVESv ++ztWA*@6izNx6}nmmEh@`bKDEre+NvaaZiwtU@gI+fgVsdmfCq;*Xi!=?&taSa{uJ+ekezm ++zqwX%y;_d_zEIOI_{~=0}RJWOv&GOWtlHueyKR^(?{wGN&2)lFNKbJ%#ENT#jx$2$J ++zCICSVj2IsRfrj?L^qFRj*r_yPgkS;@2xA}siG(`#kI@5Wq))@-e5(PCN ++zc?gV10U|~KXq}1ZAzZgfQxSpII*-Y;E?_j!1$rPep$p-APtHDrH-B?xH+N=XGlRkg ++z#VfseklQA;ZYx$(Zdl|-bRYJcidaY$Ec;UpJqLP;$-gYY ++z!ENSIr-i+bmAS)m53@5`lqXanEZkh<3Q9p7ETNqyoha;<4Ui7RsH=6i9nDp(etc=4 ++zuuWcXOOK~40!SWWOpT8+Ko336n6zU6o#oM<26{g95|g+>nYn7L9e5mE*A|vWbq(SA ++zo5{u@RX7SJf-up=&W>b3NfuE%2)1vG4=lZz>>R&szkD=acbP6h?!dxRI8ZYr88L(d ++zC@}-%-?kurW_(gbkhei_twy{=buEmOJuG!I_qT!i!emslMuZWHV+c8dQ9)Y3EE5Fg ++zGgy5EX$cMd%xuyD+O=+B8itNHFCXOQ4=#3Uz}Whk7KGn^Qi98=3?*$k>d|jokXqw+ ++z;&Zo#f1^gCMD^r|HXkYlWcDsNlupa+$ek)1?d*h>G84Mv($SNTSJrVs5!0KiO}#}j ++z&+g55S8XYKwGQ-o;2tdd!PA>PcJ8~AW|hklE{o8@&mnTS!W!iuTk9sv-HT(*qq}43 ++zh+@xm7h4c4NC|GIh9E;kVN9#j8vX5mU+lWBA9Qutb_lB12)g@;zI4P*;Svx@7wu9M ++z81=XMwxhA3Y^~es%c42vR_W=x3Y906YrBEfKjLn^;Kesq^m*z39+0f9kvBd5ikMBz ++zuy~Xufa+zuAQXD^^ ++zoe8RXpYsc$x+K7CWS0-l?+_$69|#0NUDvfh(~jSI5i|I8b~>$Anui(JeaT9ZzNcu| ++zN?a&X$I?XY69};H4kI4gI4MYkc#fM3~;4?DVb#yv>w#$RKg^R4Ny7N?r2f-)sb01UVMknLx ++z;l-nSi^UU*+|w%1=7pt!Z5zZ^kCJ`R9YmuPcDjF_hFD>c+!XDrMD}=tH1%LiI;g9X ++z@ibm3;M~<+^?wm|$*Z~?E7M+O)?FE;gxuU(9D^Xbq)k@TZlLZSu>BR$7FI|_rh ++zt%i;$_L5auabN7u$CQD7v$j0{?HkOEp~C)L*zW3bDEIk&Zts_m*!%B4`=itMU-bE@ ++z(cQzCjRM!P7@UI_QI~-iMpr`5Qi-b#SFSx(PZmCz51!F)wJ`~$Ln8fAnX2v&-ByKS ++z9cD+H+xIF)hZnoMqIT5Ym3+RZ%dBANO>R_r4~$_v@cMu*~M_6UL(+ch>GrhBZ^eATUup29*Qy;05d%$phgFs4BzBj0~XceC5g8 ++z7LKc4oS5x}z{uqAJ2DimQZFY9szaVa^K~S%1DOB`Vzj>s9kjnnx0vn}RaUOgQj=zG ++zAAY8~cc*#G9M(lHEQ8V^AWKB&2xMScVaN ++zh1)75S>WpzAYo3gfE6IIbYhtu7g}^d`>Wb@#-g3A7BkW6TN~4oyBGbp`k(IH$JT~c ++z9Ov$H;wnuVIweJcFIhbneLRfH!PMIA-ERo&{jKjk`xuw56mrmnEr=$-_e+peR~TCJ ++z&UJ3zNXSb^(-rc(E)mBZ+Ei2 ++zkvaY6=-zn5l$Sf3TT8N!%1m#M+4D{x`j?Aj0ng0LAB`z)3^6!?%&*fx&BBSwPknl2bqV ++zn(Ssi;-Z%Il6`m9TlXV`@rTk5b?{zxRrcoVO`QzJX_tKwZ2ILYq#Xz-XW ++z-CaB9Q=X2V-D&e=fd#Kx(EciP38)R=6Mzm{Ix8yO_KqL?+aK=!&wuj$?9cv3#Juu9 ++zsOQETB-9KFpu0u=hdLJ^2((73E5&L?j9u6qyc1h(?DV?YsP*gVg>$*=-20}*USD_1 ++z={_I$2HIayfF^#^-(vPVP* ++z|L_k_MV#rL=9i|f&N|r*! ++zYG5ViN&L0N6dh0-O_GNtv;uSrXg1KOpcDWA$P8qGDc90a%`Ck?qXXYPwS`aCQ370v ++zV#JxVV3G;XWCSH-h3aHSHULYu!bM*U1sGE0IWS3k-dHDm@8kY;)bBmy%VihGpG^8< ++z{Xb*A)K1MfT<@V2eugf7K*`aIrtvR*ndjSL3K`ceOJpJv_KMs5QU0xKAB)Q~au`mJ ++zO`W@%*@>GSO=o5}+p=4woUC(H>%VWZtlrtPmVsq+{#aEu+Q;5+JnUf)OK4Y6H{6*L ++z007c~i*7x2(M42qTllz4w}1aYp{Y6Bq!Xu$^h**BLYtH*DmHhSuuWVmN?ShiG^ ++z6;}xP{acPp-TVD)_4wU>HvO0Bu#px2_FXv`SY^-DoaQon?iDP*|A#A*$@DCok+eLV ++z7E3pH*f5<6Qb9(L0h}WNFYyXZ*?05Nn$NG^v+lYkqZ9R(RsQ&Zc|K8X=8s;a%csm@X>Z0ard7d; ++zmFeQ%fXWIJ#HCP5dxx|!UsExfj$~%?;6*-?ktCwomdsSE;}I!G!sZj#~er^~$BcpT_oT1$za*?u~+JtKVDS$rg ++zvgj7uG!uf(+2U=JVGC3+67-rMof+c ++zk|gofOkpfGog#0D7)%L5fN*9QyC+pUyMRA!SB)vZf;J&p{->{1I@_qbDCENHjk!bc ++zkPMrR`8SE>lWSQ1(78t?Q9zLz_>k8Z@oIPG-VG&x$Wz%Xv)RJA0o}98&CMyAhA+R7 ++z-un{rJgaFz2)ETLWiHwKb^`Mo ++zP}COrb~oqu59o7$c`-bOIH4Zw0bezIEo~tt ++zGO>L@!n%hpfKmfC!Po?;81u=~@M2_%DNpSI>_Sg=p&!1<)uUPh0fycBQNxzE?0F#@ ++zg_Ida*d>-M#fe*^NDr7Ds|&B(bEBY$B5xMC9m1q#OMz92e ++z1-<^YWA9oipSw$_{ync2*VFGlj`1?0w9`YS#-EG4_A2+K^}Nxd*k|F8m=lnY_@dK} ++z6hL1A)&TVAo}8MPoS2xJ1V>EfxV0BO_r+iji&1xAKYc~CBv6C(mCmbd`@5iZdqfjH ++zp~~IdI1m9a_sI8&#fufRo9cD$oa%uf0#=IjJ)7U`HFEAazNEo@YyH2yQ%tOPDu44V ++z?Ra6>j-i5BB$9qZbG?YSl{9)X>E_Ml7aQ*VyXwDkXZAJcmS4+*x%aA<_%C0w?)lyK ++zYPlQk{?DraF~3gg0HuQx_*NPLDgffdmx7c4h~p%Q!DdB)(^k;`F@tP&#w1+@`k8IQA!u2w7-K<29IzF2&=k&$dE`kB;Lw$(5D~C8#df)&4^+3|uk+ZL ++zNZdItD2106mr2DM>ONAMOV7E+IY55(K3$1lq|FysO!-)-Sns_#O!vqg)&Jn!D}N~W ++zui!mD|2;pSQIiJL{i1?A{fN)kzTfl%r`xQ@SP=P1uv ++zd3OIvST{Icp9$A|ym}I2j)V!!*R#(^v?LS+oIZ(Do=x_qKn@900HM?aqv+X8wi ++zT?=RiXcSO&B<%LNgarHo)1)BrSzEwnK$IE&M**ndTvfq763E^^0w4w)y_G*bFc-P* ++zADH%N8adN`elK8Gp``nS=wimqX-BWmvH7q_8_emv4fD~G`iiAX(@uD{22_*8?#(@BEz?SGQVAdi~Fsty#=lHpZNLK!d8jD6Qi%}l_ ++z;5(k?l$bgA05!Mc*!up`l%BKCSA;|*qK6oN{(E6s+5@O(@P;nCV;AkBa(IFHE`eVP ++zK%CsQXojKT)00vD`IPFp$r5|p&MVWreKznRZaMutuWOffDWGi53$_S ++zpUw{t?|BmK5mS6+WW!m(6z(wh_af8c-G94i6C8lusH1_wpe&xo?BOn~Upt2D5uO5J ++zl~qLwhPAW^8FBk3_Y%+#x_ywy60M81D^4~yZ(l8zgPI!b>ZfCD*HNi>9~pmuC5i>K ++zwOOfYkIEe3ib4B ++zpr`3HG0>6jr3piJ*i2xvz;{zqfr0{(XaK&dYOuob_dXsKc^i~a2a5j9hkS&|!$(I5 ++ze>9@Sw{wL^TS4@A;Ag#9JFvJt9!5E^4IiDO6pZM>ZThdx+x&HZCl*(UsN;&WPnUc3 ++zXR0MV?}2^=*fx9{skr;ZSTlg;2-W84ng+)+Ss7+SOCQRS5YzS1x-&SIjkzJHU*6WA ++zlQi0gEseh%5|5CIAvV`LJmfG)>X-A&|Bea5i;ddJ9Mk%O*A7kJI ++zR&^?#pJzGy#642=PnC5wq1iRSE+-=KWYV}ltQ!QV2t??N8W!Utb#moi(#-@omUgTEInawsXa4TX ++z9clyQqCrtLwcM!JnX-CgiCN7K4&HeVruU~nQ@B?YXNn-fe~?5-q9PIU%##6p+ZsXA ++zgAgM~pWyCKhQTsvnN*yCg~~U-3K>_eG7|O=c9JX4?u^Lk(ezUuID2)mV%a~xwl%+d ++zH%X~FSr#pJY?@8e(|Xz1-CG#O`n^K^IAh?Tbwk!Gsq-e2&B?kNK1wz=S;lOshWTs{ ++znr1;ScXv3{h?3YGwjLa*-Sb0eKg81`Z ++zy@A^49Cec!PA!kX@yjQm;|ZCf>8wHYTu2^9c-bf+5Fvq|?^-Le7pN`+Dyz)cy{j=M ++zO_7n;ui+#LphAn`$XWMFk7vb)IUs?ZZH-?Utm{%nc7&Q_`x+_TxK|h3cbmr$(t=3a ++zR-$ZY(^<&1uoy ++z7=mq1@#a`_Tq&OKNzljFtS>NQcmfCY&q3Hb&;#$rs%Jh7A_OOxCgM_}h_^eo ++z0D#qp+)BhV-TuYe700T3!;9^tDIlcl{?z3|>tvrmMqjl69iT&eD?v}@dmCD;de78* ++zK3MjSfJBh=o~Tyj`Er_^$tW}cG;&xQZNdNV|0*V%IIcb((>Q~UcNPWR ++zH<)Gs$wNCML`=|<31Kn^0N8chF&L&=4dGw}8%OnCRlrJ`{)Bw9AH95WjfEeIgvP_X ++z1!!@Vlys+TEGfB8ssSUvZ3wMaPs3j^hGuJ;&WGw)&e?1iH}HE_4`55V_I&;IvyS@d ++z7WLl57-_~)OGiyX5lq5Y;7RTCz^pJAESE;y>2rS>x41oK)0$Vc>&^Q~H+Q-yn83-R ++za8>PYUA!#6C0%Gva9c<1bdJYAzI=R&kMxJ~?`8mv*N#;HhH%=Wt&-s0Yf&rNE<}f`VO3({ ++z_SF)Tx9ffH#m+s?_;Zm+@oy^Hog_bM;=lBg<*Qt$WO8LXp~Tex?ezqeneeth4@+WOvg-uDvLC@>yR&QE-b%aia>*-L%q-atr^(>uH0@NhpMddIvFhtt> ++zx0gF!9{Q<|u2{Of+piva(wQ8V6vd#51c_vrj1UPxBL_U6`h(wUH|8jto+9_rmywW9 ++zK?|;{my7rGMIk5=g^L2y>ExjT;JRhKmjiIfm$pAvP?oVIT=&^yHx_^y#8mqus#b=t ++zaHjgteucfKv!93b$_6KQ^$qXE%kF0dcK$z+(X_49MoTkez0X>6pY%B(n1H=hi% ++z`~`f>PS9yZ?PTkqZi5? ++zrmLrGpQ)q;Q-Yvg>V3=CvD-Ov)9WW)|1aBP_=lBTc_K@<4Zk4Sm}(;GT!Yp?u7tNdL9lGR<;AHJv4`Cq8fF8|%H+xQ$_Mhtcs@3uZW=hOfb9X!XbV@1gXj7pVF<5NA~78!0Io!3E*s*aHXU0p ++zy$#DiS&H&WXJT^7%wSsP?~ye-iJ>~hx-J&(E%DD+_88CdS{Oj37}R7nU${bql}RfN ++z@l`-jliqCj{e*T^onH?T{6MJ}_x99hQj2$&dU=E>lDvt|#wP0GdWa@>n8XfwX}i>L ++z_F6uh#iUu#X<^!Yl&L*JD?3D<2Fc+{2(Bifi%b!O=%b0`lhW0vKUu8Y``=>t3&V_Q ++zXDbXEXNvJfuL0}Qp(N;~1nGGF>!1Jn=oH392m{Q8SQLln!vINP2tV8+lC}ZhuvYDf ++zWjHNe-JY*Om4W&FW0CU$X_HWbJ9{}cqBmYyVsE6$+)*OcpSk?*w$VDw`h${I$Y2_= ++z=dr47%$0SLD5IppWb<3lZ^*TJBb;G}{ ++zjQQW6T?dJ3kT$lZP*(-&EQ=%zMI|SV7^_iJ3^Z2jl9G>@F@~B ++z2^0WRU34YMlgaXIk9xKxlP4=vtA!lb)*>YMJGY8BuEDUYy#Hd`TvRym^v*O ++zDL56Rw`?9X2>`}qL?EFuq$2{%gzP`8tMJet{UeWdnNQcRSljlEt^X`&xk+ntXiI5K ++zD@|Gl=xF!Sga_U3N~V*;C8is9>j82((~DLrr!J2cC6XNKoql$^S8|r*tv=rPYnVe3 ++zpa2>qbS1S%GVyB$JiCod$pGqMf?gzk3ZRB2um+gG>r<(j8$m|JAZ^k`e6?2d4Fn_f ++zXlRbWS*I7a7t4Q(?MHoOWMv`Gi}*p-*KTe7$1<2T3pyGP_m(!WZi}V1rf*fR?Ni%P ++za+J5pJdq$Z4R|fgl(jip)}=-~^xrM^p5fGqlO*y{3dk-2FfLLlY7mm_l!FYAL9ZsL ++zJJ75(YqjS;KUS^R3-^r**8;E*myQ*_PL7sHAOhg9!RsN}gH7x%p(qDMPQHQN@5n~B ++z{)%m%c5H{MB4$T}m~G7yO~)Mi-I*+(%+!tXTDt6=WP1N5I$aG>7)^rg=#6LJzi&>% ++zn?Sj=FK_#e*IyjZQFf+G$_>czxhlL%PE}Tf8i{pes;w(+PkN>jo`T%uG#Vlrg)pU+Dks0n)6UN-EUvV4HckVTzogW|2T2(j9vX3$Yi?ACr7ssp~gwWS?cY}^BU8?D! ++z=-6PJ_N?Yp*LWFL$4P=DLlbZ{iI`-&pBxR4>P<$emWtI=!Gz62TVXS>8WK8UC0(g_ ++z>6^g8bHTL@p}R>jssq@{j6x$6t4qEzQ-I@+IJtDLKq4`l6B@m_{ ++z_7s)sQdC4zsM}0UB?t&0v)0G6t3eD3a!KfaT{D{>7?b*;F!nw8JV=g&*(Z+aNeSg2 ++zQ|E>Gmk5v#u^?QwFzHT667tdfEF7zOHM@)4e&o@oy{f=09G ++z5}I23J|>POL&(xj#LW1s&xHQ_T|Ie?7qZm~NiqO7eI-!~32ag^P#!CX-pkCc3giy2 ++zci{kI5bDU$4X5C6cj|3h89A1Ct=_gg_0vOW-*3{oK}Whlk3Wh5B!qEw0{uryu_P%T ++zDWF5QqDPb-pZ)iLAEreI`P^qRcB6iI7r&fcV8~VL9k;9H#^L<>xTKfWVSsj}x=5)Y ++zh8bATGQyc8n$Iwd-6vj_>2LnQ+4tr+n!PUAum?iHU>1WTL=#Oq&XySVn ++z9m4c@*x$!2l}bI6sSdL1%SlpFIn!(vEen5iMaukXx;?lL)Gm@K83AN`JSYTo6-u9V ++zT4*;YA9&M{vG?z9=(R_$qO28t-cwuD=st%aNr5JXg4Fcy_}5DOK-CLcCE!*7XRAhe ++zA`&KQ?y3qAXv>IzCChVFeY(MTkIam}4W0ye%`v~I0}3h%mN=^cfGyF1Jxsj;kYFZ@ ++zXohd6CWp_t>$O)do18rfl0ri>)WZb5l(-dOs5YLkUpjwN=Js8A)6c)e@Y;@g#zW4^ ++zYwrFB(I3B!;mn~X(?*1e3uF`Ru!cb!#yR!z#e@{V1D)(#$of&BVyy=tbO!)RAG5gN ++z9ELD8;RznlBsrj0&a2n>L%-IVAPxSrKYqbDCIv_kyE=*r3MM$VAP$?_8UYRJIp9DI ++zR;~H|;>rs7@wexOKe;69)7(O~yT!0bv3Bw$)ayWoJk)2#HH!H;?yauMJ+s0cE%K&PynSy3<~q7fuuxWa5v+k ++z0WX3VG)bQ2eBan^+#}7hW6K1yki;q) ++ztpTXw#-lWzKi*f5nw~-AjF&Ei6`&NuzbEg@txHM3ZQ8mq!M7p;^&=f5gd`!ol9Qtc ++z`aEC$du71TotT*P1%GjhhvUR6WosBP!L|+cptiwH0M23&nt))HF!WU&ru^sYk}n!l ++zYtNHG7izdG3A896sj!4*G^#PF+Vx|aO>xobdtl8;l!3{QAKq4PDFXKCL?|+>68SjP ++z0@Tqk?usir{8^s%U$Fj)brL92ZkiPLjD)^cxGjgQMM`U^CP-2&?sQ-9-2PyT_J~wF ++z#t4X!c&sa6gQ5vV8xaF&oP`ETkOB=~DFkE_Ds0&(NB3M7;g3>iQVOyNLPGF4pb2;a ++z`G@et(WfvJV8!UQit%xE ++zt`o2+b}T9qG{a^JJ2FT~Ql`_Bd+SokvmGz?85(4;6O5)wz~|ry6g3pB!I8jj?9KrN ++zhQa#>6Z{HTk5L5=j%NV7wtGr)_J^yI|9a1vKHCG`?xqyK32^s6Bx;qHJ39|?;r*ft ++z@i=G`lYiCBpbpQ}&t5nKPcB%-6Jez!k5-qxSM?p<@zK6&m_UJa4U!9lLI@KmiM3l+ ++zU`h#KGF38_%>qg8c*-wxZL@l3%m=BM^gnZmcYjI|*fyiF8})kK5n!io=GCbCRtKOC ++z{E4@pX$BJ)!o#9^ac{?log{VW3UcXh0Kuk#dz(FWFHIaYN&@~+Q*4gX157d0oE5{ ++z5bgkIay;HyH@8;&?mZJ=#Q+Q!%wgMz;oWsM%K@we8udW`@Ez2E4}9pYAkYL4Ni`2R ++zf{iz9$cMghNIdid^Wxm6jXF>Ey+Emz8rx|7VJpg{h}raoap8Sm>2|YMp^}M)6Uut+ ++z`YtBnYeBV(-N`HQ<*p_jm1Z+|t34Q8?7%i$+mw$~2puMBZQ$crvi>%pgrUno=drMG ++za-!jb?B<#(nM+C3uY+WWEpe`Cjcv#a$9M;7|f03#kkRMxB72qBC@-q ++zqy}3^@+;o5=pSqw@D&Z99x~N|D*_FnKu*W4=#>QDdJ=-5nFjU7Qxx&w-z{PH&vxZz ++zjH~UPc4!t!z7#cbbp5_%{qX#@`uXhyVNn0E^vN&>JIKQ?nR542v5M`(g ++zEvywgu*bG%PRr3<<}P`$5DiDy|Nnwy0+-Fy1Z)~aDR6AYSMV9P5ga~1eG+@Xnvx6L ++zWtv_~#5FWgV=Ode47QWb(?4`fZ0ue!{=WVf{m4pzRu1%a39B+GAE<`p-|r9Wwm*PU ++zM0Znxc7GN1QeIs9zcZh}!Htm5`AL|8qwzZ1007V;GQ#RG3&2ps9=kLLVgQTq60sg_ ++z;=5Blf3g5xljI~F0#U$W1Bu^a)ra|f5@?jt%_Ip1pUVySc6uo>U1M8LPa7|Qpcrnn ++zs`DP-CFY0k;@<8NmSslXesoJ5BIvUc8a*0nNzjv|;_U5~#xhyQ(~A|( ++zf;e=&DUSBUV4@tqy+>_Bxzxurn~EYpCPtc}gBbO?13Vp6Aa{Z3TaKR*{~{Ri{h4r@ ++zPK2ajJyl_|%jiLEs`r)#JSz6<hOxd-=$^974g(&j9IaM&9)rPaL0dZ(le!bXU95i%AoF+ ++zpiF53^# ++z3yfbX6kD4~oU?rpYh47xq#_mr<=Psa`Otm(mCv-JG~tT7vhsKT;X!ccidBjhkF!(5 ++z+SH!C(9&ffL@O`AinGvtgFb2t5rkM?z?o ++zkXgjk;}bT`Ke@k3;-RB;(cw1HHiRm`p^;= ++z-JV@8(tD{kArvYUkKg`Yg#?hb#6R|hhTwN5j$ZO{;@N)-h&@E(Wxp%P5 ++zfgIa`#w6#lwhLy8{VpR&y ++z=_jT&heeaAmS!iyl3cFS|C*`Lzkp-s8;p49_7g^c7p!O2H`HtPI?jX^Sv~9ly-0E@ ++z@1Y}TqQ(MuXtEaE3Niu=00Y4&1@vH#p#+gSBvTn|5-G26K4?2VMff7-@0=|-b%!%eogTJ5ZnyXn^j~3EHtyqJq ++z%{q3r&RVVPRztEmoCnq_D%}ry5XmVS_Sihrt=GU6J1Vllksgw#MBLyta?rt8}y2)1G ++zYz(je+5Jyk=uhuz%sW1a1R|4DubNgvvl(E<0k&LXcEPQN;F1J~EUG`Vq5aRMEKh>e ++zi_7%lnQ^lBHA?Yo2n?Ix*s1YqV%iBhE719mQ^A@eT}z|AlEttkOpc+Ewn}j15mYdy ++zn%nov(g1)W6{0s{1SLSIap5?yN>9Nfg|a%(5#Lic8_xBw$KSl=*IgQThBK|tZw!?o ++z(OhQkqmfV-$}Un1VVbqT72lus3UpSWGXd10;e&ylJJv9}$e3ihyQ}Vr0|Jy0tRH3W ++zC8RBa6Ws`(1RB$_AYgQE)DCcGBxJceaPQxedfd5cK5sqv#YO#E^S8|#+~-FlH96Ca ++zNzyO{tV7&@8hbMcOXy^0E2=&8QAAKi07wQ{?n0Db#b)t4?{B~j!d ++z&l8-tuPk7F7Jfc9Ac1C$tKk7?!NN{>a3ss}OXZ)%v7AG@KmXG|{nOwWKMgxHF`UR` ++z0HWp(5I5_w%vbhw2lq0~-$uYF3WrK2g3=IaS%9g&Z8y~PbEkw8#j)V_|ISe>8`Nac ++zxoMq$^L(~E?x&{n0_UAu8<^G(tmChLeq7erlN&bmEreq@X-s}_U2uMGGJtxR2LqP; ++z^s_LiUC@E+?L7feakhsb0 ++z8fUNO>YZD>Hmp$1CJD3Q>B-zbPqN05ul#peZulQe$9zHp_;%kN7WhM0rmw>Jx?%e) ++zmPaTy_3*PT>K*U)GHI?cg*P7F_(>YVwMJv0Z={d}sxI-kNR*&OOb*Vo5~Zynx&p3F ++z6Yzfh0^!GOusT_whJ{f}W6Tre-9MiehrZ=?lv}Q1TFS4FSzxJbE<^=b#t$^PkPw@e ++zEP-SZTeE%owJ)y0xTi_85By1o3;V?jl#sJU;=RyJlAn?u>hj~C9u<6H**!b ++zZV4&MGVjo(kb@j7;J8Vg(*&#oQ_;c@(SB@NjxmjgM!YAgEw!d*k(cSNFoO#F3)W;jV^+NIL5!ws~B|=za7ee ++zmh6L}`6gr~Qx!y*o_ocC4g8H{cRtvRnLCN2}}#YXaJh) ++zpp&>WfWSA?642;Az16RyKiq|lps0%4FzodrAQS7TetP3l!$Gy56Ccq3H9yoSn=v~W ++zxvc;woJ+>$Ob9EZm;dBuOcFZqX-uVJ903o+(6w1VUAGQL}kG-$#y!)jm ++zaA4ks<_OTM0GE;YkyMaG;6novgoeod0g#xsRFpgB)GF#8tDm2B`FKHWiej+#+pqOO ++z{ejBc81`aT$G#nW>+ ++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 ++znwmUJCW+ ++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 ++zIu`8ZK#Omy?Kza22r>l#1WI%wWkk3 ++zC;*|S|Bf=1szSRw*>8o^C|@Z48{kCoobzn**etKH;Mm3!JdgYM=&9y!xoy@lZV{DN ++zPL%AlscC6z%bh`Y5cNE@>;TM2zC3C;<^|uvvXyVl^;~JiWZ<~spO7ZTQ`})e!4GpR ++z>c9z{LPn^DYPaF*z-`H?O>;4t)v@RLD!;z(ob-;zOvK6uW_*$x@SvokS{q1UQjDdc ++z@LR@w&I%q{?hTQ8rsqW2+Q5k>OlMqmrds__mPn4e_2Uxz`1jT(%tlBoojVTI`}fTA ++zEWq1|rDEVS{a5Q&vCRn0_<&O?C-~h24D0Ex$Ov>zc ++zf3{48kW$bp8X@Nx?P9=xFZR3u;hG@I7Mqj=54gSD`*R`zL8)zD9sO;QSPKwrW1|{3 ++zI#BKTG96EhuP6xjvnC|%g0c~#eoz$8?OBm4eKv9uNGkvQ8M)N{-T?#xou4nQUwe)A ++zgh{l|y#`{M?hK0lErzVRP@p70Y$Ju6H5;``L*A%$d@aCoo|f7!BMT94A2^` ++zS9erM8IFWbn}@_+?r|&_&boE7X~c61Ek)Etdze8&T>)^Y^B0+SjGYw!F}Ivfh1)K` ++zvIE3P3%aZ*4G-l5FA4Mu6_?~p%%lAGsF;|nk~{WtT|Q4-oeCJ%P6&U;54D0M8H9Bs ++zaw(5QP9h!!Sh`5p&Y!6~UNi{38Lv^1a$js|47s~n|71qka3suZVq%iTxAX(3k#$|r ++zM*5T{VkO?VB13A|Y83pUG|p$=}$hxJT ++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 ++zkce@5S(ETI_a9nVU#s(520{!Ot_IfY9kT ++zmxeBjwVC=Me^LP!Hu>M5|Jl$92;vkL2KvFpw_|AeMXtn6x;Yv69SNX3y|d+br@(Pk4=0Vcv82GRN)4Spm$pf|o8#>=%v64&M0 ++zqGM+@YJN*~iXmt_k%zi2h1CZdv~1&C3E6a@c7B!V5>z>3^%THC@+{3~$$$yAKAbj#7a?|<0QtOR ++z$|5?bl85KlSvIFTwn=M9Z{q3qw}0_CqO%@9UoV%W*oLeIo-B7xX;0jq%lY6fhGtjM ++zqh{(K3@8hUp#Z@cebCZ?NlBy`Aqsn?@O ++zeQ(_Pi8CUZfG9#~KFj}SPUk3gEQTnBN*>c0HSztFW{lOUw<-YRaT`Z8K(=m>>vCtO ++zsDS^VK+AF7!W!WW*rh-m-dLz5#DLQF^`oeD&Hjh`yLrxNhRj)tBFiS1Y#hg+tHa-Z ++zWmH8+&Th|egI!v-AjenikcHbt=_g-t2gd5F{kCX_&3V<`<(HtO!x100z0QcS+V7Ze ++z+ChZ-f>;!iE^L{4Vczn!_h*YB&?Srwu!Jc4mZPeZyN#GQNq&*!KSQH2Eue1Pi6cWv ++z{}lAHko`|G_)*$=gE<=`6+mN+9~k(~HV$09;HoGejJ75M?tZe@NMa>XAr^luz^hcD ++zpYQpA59bf^_C6QIuJak*S3}(3Wjb{@hnD|IBM_e9) ++zm!!l&mn>A#-v#W5!wdIm!c$uNZo)2kT$QOk$z;vJ ++zz{(mLZ%3b{xzAAkEJG<@C*x6u0Cu_(LX@&!Wdh2A(6xa7_01yZ_hl1+*_{&Lz7kkE ++ze3|)lNrM7$Dw+Bl>qBryR?4NPhHuknEP#TnZ4HYd8F+ZBSvXzf=+q)996#>NE5^Z| ++zfGLW}q!n=6cN^V(|4L9OBdVKwqL2ldp)Hn>PtWUJLQ~p ++zh2WABVDsbChXpg%ERnt)X<;(_ogafruvfghZ4=z{E?{%Qnf0@%n6PiGIJXkT;jH2E ++zkkM_h3guxM6j(@op(jRlKyVscR`j7E8mu(>nZgc0cQf4CLCaK8MIHaafrFFtgnYsl ++zuc0;?Kw9g*zrL|?ArnxHuT6l^6Debbk)RiVJnUsmi|hE``!_!H2!jbgVqY<8pSn^p_rKCkGijD=>QPXP9knvvS^S4|4?CW{{zX ++z?LWrLX+I-|^$xK`^2-`sL}*l`U=kqf2Xs|FCfW6t)ss~N@H>fX_Cc=R8YtQNnI6Wocgm)H`hc3R3UmX00 ++zU;2as&~4M=3H4gNj}i4x;be#{rnxC8si ++z_XUvKxlP6=TqjlfaMDAIo?;xAB?+7r&HY$1NYx(-pFVTOYqHOp_0M%dFXK#~NJ3@A ++zpie<@)yaH>tA^Grg?-UrWKdrRT05U@#d)Xc4yStHwf@ydpuU^6}uHIs`?M#-5#ujq>L ++z3Wo4bUa8-jdYq>%j#z#nas2H>QuELgd~I@k9f~ ++zXSLGDvP7F?%NpKrjasyxI8f+C+vPR-=7On;2N2{vS5(BFhjXhT1FYRUgW0c|PXU7c ++zu0Dn4*;;ZGs)zq0)T)0L4F;BL+UXNAT;qA;=f{NiNmT@4=7?~&Cc+j&`hv8N1Cnll ++zSlm;+^)o{Nqd_o9+<+CEU;kLL!=IB?2hBiNG3KJcW!@?WLexqXFw`Iyuu?mdBF(6M ++z-N)y71(A4N&ft?K$Q>raCSuMgkwVmR6dRe>Ifw0-KMpU?d6$Jdviy^VJFl~wRk7>0 ++z?LrqeH(!&*zFMDYe8i35G(ccgX(;fa;v-<^$e5S2ED;r3=^+~tdbNBRos$jjuH*`H ++z3z)Hfra8luY$3PWa$e~LnNfNmet8|j^)0Vsm=c7>s>s$*AoUj_Pe)3=zXb|GE?AiG ++zB@%GQQF6ozi%afW|?o^x-6)yhECjmd=qPNf5 ++z;q5F$oGV%XR>G$tC@ej55IC}W| ++z&RpQQH%L-$(lblv#1B13w60$zdVN5yF%)LS@& ++zB}i5y>f}#U-g%8|mn^vF6*rHSug&@3>c)>H&d%o-39t`*@dBzEJ){13<2P+JMC8@a ++zbZ@M+ew{uJ`t9bZ+%S0J!I`wur#}1^|1EMbOc}i#!nLa~hv;HzNEDDZTr)?1;!R;t ++z{f-D7)u)7p;_TdLNULN+!@{V=X4xhwaj)`mmXzR-dyj?ttu3w%8aNqcOy-wQ)MBEdi+-HwD#ot=RYWL ++zw3G>oZE1fd=xC-Yy;N~~L`QBGxloi>YU?j+6mV}4Lyfy+s}0b9Fa+t&r~}qpyqshI ++zVuhJoP{ZNz@o{xF0BuiikBc?wCiu9KSqj^K$`YH(5~t4Uzw9!)1a8(+o{s!Z>MCMu ++zBDo|Yjaa_s(g4AyN`hLAAPGjuH~a1z&+OjZ+CGN2+|-+yz-OP3=BKBFdwP1Z2%Y1qmM8y;3culBDi+Trf#iXH ++z$@7QJ%BGmY93eP($+ntxH!#_2@||)~W@p&)Do<++8QTD^C@%R3@pL=^Vo8kUCGqjs ++zT$rL_Xw5I0ml2`M?pdbR=knfY3Gwv`<*{Yolf+!?-5Aa_hgx6-grA9F_E># ++z$143u!$37rz4XXmm(xKnTBjVIJmws6Q!4wCz{)_mL<^5AFEpBOYiD ++zwXd~7>dLqP$rc%Fti9Z&B=L$piF ++z0?fzoyHnY48`+WF+^F?U;Xi^Ku4@u^L$=6-s%8Ce+sYFf{wMhP{r>M&A9)`(`!HUd ++z1JKKP((}mB-PU#`F!Gsj#wM`&c(5;vRs0CqOpR*s?>5G7>p{xlccsX4$aWR7rD)tC ++zhcTZ&IcAe1F<|I~OW*wKPDJ0pb@;Kz(i+~Dfvkm=B7F2nBj>yN$M|?{tPteJ)L-A; ++z9^}^q_N;y0$RkPW{cm@w)Y{wIyEavuJi2fjCfLl|Z26g#Eci)qq5n72a*$$*h{9ZW ++z*9qPv*>7;0s2uXm_{r)wnP1X`1nOn^JV#=Ig0lDg;^<5sc&?cg ++zz8@>NLk*OXmYqyz3kq{#p_4q5RQGj-_j0?mY&c6l4JX$MKId{|`~#zh-zkJVJ$Gin ++zM?JZRsmmIi ++zOFw!~&(n=VJoiv;4$nqITMc$()Kmg2=t9|_Zk%PDz~2rtawzJ3=bH`;46lHS^glWJ81@SHRo`~ ++zBS$9vB^hrd^-e2oc{TELV{ze8p* ++z@-qDRgkJxF{J!u$=FKX6v%}>+DKSU-5RUyz7l|6IO4SqcTmk`jV7uS%mP7AvpK-;V ++zz9{3QAd+MOWc|Te?v@QLBR)sjJ}Iq>l3Low=7H!h1)amY#&kVDb+B2(Npa`P)>i-f ++zh*;(g$AMYNC3m?aJsmCmjMHr;oSdGhG;hWlEfu=J!L6P-f-tm=zgS8fuccl**xj>Ht!7o#nI6EI!xox7*v0`FN{6)k##}Wyl$FZ- ++z)XnJ*_z5&!K6|OnzvKa50_#5cRdIq9-B%K=XiK`9qUQ#kjK$@-N`uVE&y2UNd38aTUmMA=L`3WXribg ++ztvmvl+{5p#-kx4xUq2lcJ8Y{I3}ZA6cbWg1kKee5L@JSi9x&;fz}K#RxDh&ELO-eQ ++zn})`)vW3|;u+TjSvb@}$_{E`A?3gKIuD24*)gnav3QSN677>mh&N3($EZWJ^(-zF6 ++z*a7M!G4ghOI~R|58?rpVc?dIqxGc$i%qAbAXM*!sR`&Ma=qK?Q4ky>S+E3;>xI;yh ++z{i(4a>k^x(fuLnYVPALFe2l ++zFx5G4FiK|B0#8t!3-KXdp8Y6Yn;$FLr==_2e%FyMg3k{cKFrXNbkDNonmwSa3(2h8 ++znCjl>TqY+cYa}p9eT~YVwFHW3MjEMZ4W)3h-E^U_DV1wJmIQt7+b<`z|Jb0Xx!&UP ++z{?k_DjoS7)|HNB`@WeC*d?XZN(K1{d2vcf1u~=I*VH-I&eY~>~ZZDG;%&AOm&u=?7 ++zyq>QF5E8J%?hM}3aGmcA;YwfCJ+8R-LQC@qIU3$B2frsrQYv3|e9&jKILm*WcC ++z5r09T2i)!dZN53epT*jc`Yke9!AE6xd&5bGGpw!oE2yUK;A^@&Xi%c1Y?btZNMEcL7&zsb{3Lz}JuEDXaZ0*g0t^Kqf ++zd}qG`U0(+)_WamzIJ*e>ibgxWXu4XJrWU5Y)7Ipvv_Ww1H4~5Gl6)JNQ`B;#6*iZAj`SipSJtK%aZOZ>CVfOx( ++zTPrrdeH7dr08IzD%L5|=0NhF~!7`@V1VoT}XP ++z^T8nA&mFqYUOaqEN{T@uk(%LCzha+7KOehYVJAZ#m5rqHM}YbC9VfZ2G-xtZZBxmn ++z-z1tK}HtOV3Wz ++zP+@bHux<3#NS3h5N3q(r=OvgQ0e}@UJ~6*Ti)*YG4SV(|Vlwfmx@yWmL`Fa`I$n!1 ++zT1Pu_oPpC91$W@Aaxp)SE_Qa2rMb)=E$Pr|u>}9A87Vi#k{~dHg-mi)|5AzGZ+yue5j4N{RNn!$P ++z**FQ}c93bD`9tr%;GoUENgCLac~GX3q=}Zad)1KcuaUS>IKK_Ba&s#um>T!_ToeXWp+aXb`u9RcuU-7(e-?7w ++za2`ISy4L%cN0#HBlCjDou+Sz_^yWgVKt90xxiKayP5F8E?S4(Tv_q%s{MWT?A3njj ++zk{8`~075C|BI}I}Ts2BN@3=WP+1)c@d-+JseJQjdnX1; ++zh_vJN#>pEZ@hpj(*ZfNL;SY-~nJpc+o`A==C+P~3w%jT=in1T|T2lhZr ++z=bZixIW0trtnSbGHfaK#lW9 ++z;k6Qhe0BTel)GNKEjOb+8;}&I#_6M&-;0iADHO@g)PLkvT_tQCmqEsS&;gZ+tPA04jL>K+;9PF`vba3G^6i0BlNb%?ezeXYUx@ ++zOpo|nn~U6?Ec#HY)m%QHuXxStY@)EyjJL|VVs6{@a#_Qn<)~mW{#Ghc6WC>>2ZgcZcj3L=OlRg8|My9ZD)J(!XkA;rr$&Y ++zRC0yHbmEG+TwZhHZ3{nvHcwtmCwg2=CHw9x56KEF1cEJCNdv8Ee+NahE#nG@)DMN7 ++z4;I}zl%TZ;4D0V7O9$UpXKr41V+l8M?u%6tl$IhbR?pQ8&XsH5{~y*}prlGjRa8_| ++zh{Fr|B1!m}{MQpU`CK(b;(oO(%9^?6#|zwg`8daV8R)i!KEb(l$Bm0Rqwd6=55830 ++zeg7T4I4F{yO6d&)^#nz>>XV0Emc`>K7760L;usD5rx4^w;d1I=LA*02NZ3^Bx-SUM ++z)q~|k%jDc*;0B8lwYXmFTAp-|O8)TP9*rCJ6t#aP{GyF|yaeeg!NwtW%V_#qK{rH( ++z3Z6(uV^HQH7Uk!VLToS26C-0kYN$^vaf2HmoINU+;p)h83ZI5p$9P27iYI!3v&RTT ++zq|~0XA=E&D$pamntMZb7%a)gdlHYW%9&Zw?_C4ErjVWhJgDL2}hvPP4qGU&-VM2p0 ++zXAgB=2YuM`QKulz)Oh?~n4Xl?5L@YQcHJjGGX+2V)zA7<|FVxgl?d^N4{;T=`-ab= ++zF6%pX&$wN3(32z+bVx|>M7`zs@p#%1Sqf|DkJFPB02Jy3{zV)h|1qO*!J5|(l;CVO ++zVxdOTu#x`G)$?h6Pu6;h%O!KygXggX#hl;@R@m6xwcV2K#kt1HYx$2h_wCgU_{G<- ++zciY6exsq?0?dx?viTzL;uG1s1OD3ioSc`n^<;WffO36;HOaKX+nDhvr@@;X*jZ ++zxQ9cr8r|aMejLw9QbHX9fp{I>Nf_IMwfN}jpPdWj5^p40VQWquly1}Rca$6%8QH8o ++z`1uD{cBhlv=Iz%H-}iLUQj(pgy^;ld^;&yQYJ^pl#hLUa+SCtBwpok8Z9GUzBsQ4! ++z5j1F-!8fb$!Eb;>LD$a9GJ{h|3J4sXcxab63y+dhY05*NXR?G``u$Ajry>t3)6VD} ++ztMmRXc9WqK-6*=f#)MkO@~h$&4*XK2K!z4cs$GgLyR^BBYmfZ}?V`M5AOj)>;n=T*IX74?JET%(Xy}oPug~x5a;>p^=RHMM?> ++zdJ?MwfvEXs&6IVwdCK{Z=MU=KMvg@_HLhBtxQT4AE+(sKG=GQ-j4M$e)A5pyx^ngz ++z%jwjGv1^{Yv_Vn|IQOlzu-XoS$FnB!7Xehnq@R6TEjBX7bn-c;RhZ3du(c2ICd{}2Kg@r3G`x)&M1K=DuUfQW ++zhqpnhVFf%{igRpDgsG{vE{Ycilf|lW{}VKlET{tDFVw?rttrc#<3eutD$0iDy~D!7 ++zbT-!4cf%PLYn~DTUzbpY(Bxbf5roS7%fxX6|S-ML02 ++zX3}3fJ1Ko$9a65b>OfbyRHNTW-(j9-Jtt@O)iYWDV9^^lflVE6gu=Gs>4Xy1=^o&$mWmLc)Gwx5!r?th-5sMQ`R39MD%}8*F_YO@EPF2efnep-y7K7y^!T ++zd&#%k&m|vgrrADLFhAxqc{t?!eLqWe)V+85MlX?EgVkdCzy*ufPbUw4VZ~0tfk!Zg ++zulHpo0C>5lq9S2(fe)XUTpy* ++zT8Rs%oD{=yNEi(>mr@S8YEIAeUUd0ptm)x3{eO;9`M_z8koy1VX=$%cDve4#8*99Y ++z9d6Vz3g4>$O1l7G2Y4Ue ++z?$+q1Mq>NNr3Vk%0xAn}Be}c=tcOIw`l;#F&f|Hl;SQ9RfjGZZeX2xW7rsCZ)+S$>UyoS3f#%~+R~^I&Iu$b=r+@xuT=qN8NvBcr#GPn3tjx|@Rd1y5 ++z1$b$Njk~=Y*YaabERobRgTV7&y!`x-L>9R#xM~b3%SQ{2?AyFAT0736Vo}#pIn=Mp ++zs(NoOc7#7H$@Z?&EOa`6{apnqiEjb~9DUiw6IhE9%hiT-DT);FgY!I8PGV)*Vy- ++zaz80KtdfN~tr4#HKTYjtcD_M8`%Eqz!}FCiQeIE}9fYp+)Q5+lS%QClm&MG7(HkdZ ++zL8Om|T${xj-NVEkHaSCSAMW+}wc`sF`ZRml&Vlmw?mYDHlqVPJH5euwf=wFWF-f`i ++z8|`SvLc_~aKk=VEOC{f+eS}Ly&8JjmI9;yCM4=7~KHrR6XW2@pckgU*F(;sQQ{=ff ++z)t;LyNq7wAxFY9+?*CQ)WA~hPORtRdGEzfZJ@im&EOfoLYjVIslUP)ygL;Ussb7;9 ++z|K81e$yV~Nu=K$b6>wlQOT%^se2b^-S@m ++zAK1nU5_~*7+a5E1b3gG>Vtbi5yv0Lg4%2dN3sIYpFeb6J0u_1|&l_&PaDINqYJ54K ++zdRwo%uwO?MXWJVG(?%;4d84BBMtjkJRuI%6?@Eqn8Sm^5^w?YGz(2N%ERveK_pOnl ++z=lS~EA#MjA(OFumk@O%QEl(~^EcaCH*Py5lPbj?>)cQ-Bu&ttX(?tfhrGkh(+>Q{l ++znn<=0Q;$_pPe4CT85YXxN}iRHy>3Y&UvjAAl{$^;bFXy0iBoTwVxTKdApb-RU5s+# ++zht8-Il0+gyvVTbmihq4*nPVVmybmWxZi*;;>rRA?8jes15R3m<#@}<$CY-7!Cl!*B ++zliR?*&EfiC<+0qMCI5ck%9Z=aVicOneJLqo&LNoHsuQ}$Yf4DAYo<;7O;&}8qrNzA ++zmL|v2o)3z(TBE$}SIh0a8!@5>r_&)D*Vzg2@!=T)=Euq(+06)?6sb%@ ++z#5ylUB_3-qIo8IV;qpj!V;+JC3bxcVPt^}PlJgWoGYP~)uDxR}&tm>FI`DYy6!$Wb ++zS(QsyP&E2)0lk@K$D6+KqPvj{7?Bhcq${XTu+{e4`n$9BrwdpZrxl*?lafSue$?Wh ++z5oc8Wo3NlJy5T|?Yz!ZZ9xj#|uo+s1(!Lz62G1}(iy4~Axp%U=-8%-=ht5#!Ba4T! ++zseeXh*zTU;ZW$C ++z`}A!bt_EfP%QCElUWyf$tXjIJX}Od>v<8sLJEK7|2PE3Ca*3mbxh^w~XiD#n!4weP ++z1HopJPC|iU&GqBhwqUEYZMtv_7Rm2e;r)%|-AQX(*+HQ$S}8q@k@T6s6qPpH ++zl&_d}^3!XCm*U^Gm%S!L-c6T!U;Iv%^Cz*Dw>Wzw5FKa0puViLRL8}(+H4_g)Zu?t ++zC$hHpx7mYNB^+#(3Q(9GThI{k+mqy*ag^SjPJBy~lT6RZ@#C6-f ++zwQwlqG6=`2!M;Q!BznkJ536BlmoquF7ikWO6@h!xEuntB<5hmezqpswqP3=R)vj+s ++zMU8WqkE1ic_}T8RH!+vg4O#}@8(oP^V7~DN5Fl-hlP?Jm?n$33CdY{IZ|6Fq!e9ax ++z_3YfrSi;u6%22nrr@+@XSK#nRb@k8$7~v+qP|YTefV8n!h5s=M@?F3x5a|AB)PP ++z#7eOXQn7aJ+Ku+_-+vy`-ima_YCk74fmy->a#f4Yg#el$UhUK)sDi%OJr ++z67QUie}d6IyWs5AyH?1%xDGEmFMv8Q$ZfMT_E)TPabw)A>UOzf^fN ++z8(ZK&NkBs4*X#n-3RX;z!ZD-G(1)L(yC=$@c_z6$p(D8H7d-@tE-D)IctK}&=-Bwr0jXp3y6FC6z)8T ++zhd(Y}hmHF}VcM!4(09ffXf|{n)ao@AzVVm{U$pxP%C;T_MH>%>0`>b78<1w7G#Ch< ++z{V)Q`w)rW|uwT(&;9TfVfIh)z8>}F5>_EghD$UTtV}s9HYpxY|{r?gZ69MP=w`|#R ++ztxumm{qf%5J!1E&47+y)1RY*G_*INexU!)r+yjyx$3(Q`m$>yJYD+gax9Y1`uiiwW ++z!QVJlh%1Vi4u#BYm`}t%c}AOX(bw<5xhuCI?93%NeB!);9X)vgA_;l$|9QiHg{8AN ++z76PAMV>}22BQPeqBqDDm_u@OeCwOo09y0x#5#A@`52Z%%WB!G;ed6^mdU|>e!h68${Vd!rASDHr ++zp6u)%+QF}p1i}hYZl)!vBqE;XD?Sf9cx~|-|W$y_r|XGGe8pYrBY!uD4Qow ++zo{HJBWvk2+VHA1%`s=T!2@(Fo<8^SZNJs=*S4`eV;A1fXiwfc4;s5#j`=1#xV#H58 ++z@bTK>HD+30==F062HNbBCxc3*!f3$f2BnE-`T}(+BLYT+YDk2Q8#f*&(&(R9lv ++z`c^29J|;4VWe!Pj-(pDkGZUy~OzrqXFv9 ++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 ++zR|;NS%jxRwwqq%=2ND}pj?(ASmR ++z1~NH7Ch}0skTx&k5)^$|CBc6ws8P_=AQp&%?13)X33qRhosbBGD5@e*?4;HX%4KU> ++zd$wbHvb7xSS=CPYB_02)XwnoFHw`q{Fd~;aA$~FgJOkYYiJ2gxNwF^&%-l ++zKZ$O-)4<7?4Qb0sX7|DyC7sKN=@QHd=~!TqDy!pei01iS3=_Rhp;o9&S%vaC~vAwd=Z?|dOeJRhnxR<4p#wb>PBmq4OOS=fCBZI_47g!J^1 ++zCuQQPC7x_URdDFKdJ^W)fua;5Fgw#6xBZK71BN@J2WCvV#oVo7_&->G+<{jhr^rp7l ++zboi{9)@0~0zxO6HCl}Y<%vOts-YN}K2LEfoK!+rA(8(Gwq=$u`J~C8*Vus{ANXjq) ++z067>emMg0aKfcnd%U6t!|1$g>1_cP9`A>|qJq+4qq>e4Zxk2Glt_;eEv;m!DzEA8* ++zTc3-?@wRxRY3)eE(X8UnLlAOkGiiuL!XpQHk)BYB2KAtbt~wOQ*hnvo6iA;Jc^TR= ++zV3`-`0!)m;_cp&cca^Do6!caDC$Z-QIJhALy|H#SOqt6Yt_+o{c{VJG0YC!_SgjhH ++z)7$N1h37kB>kdxUzcgfEUwepca#cKN85tsHa%ISa1P9t&h~~<`N^*0!F_Q13YmH;$! ++ztFXFfd;g~F!!66vOt6R?^f07Z>Hp;+_6J*5T&HCE^-8YWbs_KgT`jJ!V@HYS4sQA7 ++zJLL+l@Q~ho<&7Op+eJcN#qX)``YR^oNy*sqr8m!ZKk|!P ++z-SO4UMV4xk2;DonShY*6XOX+mjka4J?8@!~}Z=)C@=|&HxcHCV7xH ++zLaI+jB*7?>Adyc9z*HVwyp_;&!^p&BY29e~u+KWZ_AoXik0-qmx7TBjuaTsOhzf!l ++zpaPAJ+QQY7Q+p`QZ_l?T-@emJu8$j$+oqIEX@D_;tk~^&&aisT1D)H;cbWgblcO9P ++zBqhjhA=KB1Y;-4mrkJ7-%CMBqN2du&jLHF9NS7G{+Z&fQ3QUd#ZL(h6%Y315`A?l2 ++zHTqg+OWiN7hMF~yHE3w4f)1bs%hk!Rp4Q9DhHp%4%t(8VIunC88p&*-ieV`{j8keX ++zIkt~aBx_ohyK4Hq-5zoNnP9Vs{RBx99Qo2Vy5(Xi@k{!rd@gby6JuEyKI&Yf+pVH^ ++zW21l5K++G4lS7Y99~?c?9n%>t>0TsP4U8K6WrIUHf+wJZpp(!wuxl1d#`JDK(lfUm ++zOZyEfnaDx1mV+k=G!+x`Of*a2>?|f9qqNd_N~<}}yT0(ynLqT=zwXj0+be|W?;vCQ ++z=b&v+%6A*oSfRBLa(7F4B+&%rK*4q ++z1)>IjsVkUWlSBn;usj*FMsXiv9m|8&KPljuYDn?a436=Ea?jXEum3&4Pqc|^OY|@4 ++zEOJTJmRlnU(;zN`m7nV0|SZEs)gF;~xSRk4t*^p_c<3UUBWG(AVREm;J$H8$vB ++zG&iK&X0<^{DC@v?Jh@Rvo!TsndGb;)coZThi>k#}Pc>Hw-3wd`qyj2vXs|uWG4SEe ++zqL(d?9*E?I?TveToi5WPF_i+#;kHA4c~r%XZh=tmGOmz{6bxvyS6Jp7nSD{LXxR`> ++z-psidFQd}8$jJQtYb(qw305eX-s_(-y9Xnhc4)h>E2x_~#`B@if;4~w5{L`YY)KY@ ++z#soQ{WQZk+1}I6)d{6Unb8g01l&;Df-KZE~kY?7hWQnST7A8 ++zk?<7a+K8***=*YIgZI`Ix?PbTo$%`Ek5B$LR!~pA7^4gCkB{V>2Ixc>KFK@8agoE? ++z_01==STxa*O)W58_zBHZo)VYkQByqS6FiswHLu>|A*xtR~+1vYJ>MCr_nTy}Zn^gcBcj4rz-m(^#*^Gb`_SRYy5u~&~W ++z?l{|vb ++zPf(?a`%d~x ++zdl3);02B^EgXmspR8uXX0+%cVB;x^L{=fmyJ&!!wr|iC@8CjuuLkq}{TJ^H!KE*SpY%stpo&}a6a%ls7ywWS_ ++zR$nW>e>D+2qf8!7s3K~uUWuR~T3H}Ll^m(YI3z$8IddZsyLVh-!Kupd<@AzO_f|D( ++zS>Ss0QYpL{k%}~Pxz*><+03b+P2pGfa&h~xruoiyKnK@*ub#FPo|z)8=dG%Lu-dGn ++zqQ{!~q-aU6-1W1ZQmmMk>JIh7X(V%Md+o-*Z*08JH-M#RYje0o091H7Edy3EGw7{Y ++z+naUmG%F$iRC8;kJ_ml3G7GHSj#Oy@1j%C-0sz7ssUt8uX1Po+9-5_y2Lm^76TPZ){ZU=moSUbEm+yL~O!@YF1|B@$t@|?R2SyGvQwEh5=~u@6o+(v3?SH3y2a^#ZAC=Si9`TU#VfIDX$hi|`Grku ++zr8=o;5Fii_%%Tu;0|<|vPA#XOqG8?EF5x8RX?VvHmAO_N#rkZO@l7+GTXZQFuep0} ++zWY;g;r`W#o!Js9aWuIKd*S5b_2KeSd(o8aFS2dHR@H<9nIchI_BX=3>paXgBaG2g*xKl#pP&}dKwnr(n+0G18Fwn8{-*_I93pr;1Vr**mRrf4Ayz3?z2Ih%;7 ++zK(sNjxKrA5&0GjKtnQ(`&p;6_@jy$*I_w|Nno?lv8u7aY8i9-loGQ#*;MpN@=O#Sb ++zTHp1Z%q=l{<-+yOc;6>zPI{!uCrT3XbHgTS3~9^zKXa&uuK)(#F|Vt&|A@Cn%84m0%)F ++zx?}R%sRjEO=F5z=sbZ+Z=7{WUbzFDq#A-TWQaA+<_QdT#7t{J+4c)a2W# ++z*eS8#TJCG^rAIv)9yIH^Yf_ZS&6+ypd+K{Pb|9!xBq%pL(+|Re&7|rSfN4g%%VyjG ++z185n*n(q^9CMS>M)PQGx1f(cC+}O5KW@{QkoFrE|S4r*R?lnH!`I@%v^jZAY8Lhd) ++z8z7e)$Xhu>eK)P5W+fkVgf}&^IBIN+cLJEJcL?70S~JWv7+g ++zIzjOv)P_DViZOuuH7^TESERc9%sY05HvDcd_veU ++zjd8edrU6mc2v_{b-1GNsMX$)9A#oNB1O2|gI_5!5>9Rahl3Z^e-LI){P ++zpK7teW;-ie!V1=c&0c{D0R>RFfAg7*h=>gLX$YC%8U{=vl99 ++zxs|8m{(jiMKn7O}?P2d!8#Ppn(R?LCJ9^&O7`eIN(0ngyl*s;)Nj*Tf3l_45ws_95 ++zDeb+9$Jw>MG~R4y5HVB`jwnC`@ZhWK?Xn6J{+;%~D^LtL2sRSaRrQ?}j7?(UZ0s3T ++zKw*c76Uh%-a9g9DIh!%J)F$iYO=0{D^?r?W3w`;KjXw; ++z^n6g!Zr+#X(h9X>imhNo`sj5y-qo|)RSY^w9dtnO*#Q7JadLpvfO7z4-~fG7amMJp ++zcYUaL`l%G&D!_q65)uG1N~ln4r_j6IDwz)5C^P1U@CakulL_`I<*0WB!$`56lR)vX ++zmyxEsL5|S5qyW9@0XYMMjT*>8FHGssH~S(!9#8i~4Ues(krgsHhy%d4poKDUfCGyu ++zX4@+1JV}BjT(c3PUVYPd2Ut+KiX?zUGD-!AMp209yFuv0CC4pIKmjyUS+f*W?>}X* ++z=3uQRS2Cm%d>-x{Vu&C@dJoK$R3cUw#_3($FqKmF1Q%we%nnGPLsI^~7-UW(XkL&?00>%k} ++zCkt%r?@*=)E^-Aj&n ++zU~4h?3ek`VRf4&WR7l!K9P{GB5=<6AB$x`V3I_{;qKoNlO(2vsF{(Y-V(BQ1AFak) ++zF-{2ePgy-kuucj6mopT5WA+3Hn0<8na6)knaByBVB|GXH{Ri{`U ++zI=XtasE=-dipl)%u1u30pq7FF=u~MT5t0m&1e&633YBPCyTr)llQA|-(D$e-6((aDg^ ++z=Q4(DzcAy10R@dc@Ws~U#1Icr0q+nmM&P>~OAQ@(V5!eN-N`(q3QiM}QeH5|>Ya?U ++zyiJ~;ZmxN-*`8N((Bpy$1Z%+pER6`}P$IN89dRK~GHsYO%6h6b ++z3u<;Soe+73m_ndPV9|yJYPM_MxFrQm&cmufSyHr)+V;8=+EJTL2I7jg*4JT*``RrOSS1^5kKp=2>wWO{TEv=L$2i#SxUneFa2 ++ziyfJEg_laN@w@jrXaQ|_ZEARJcek?Ele*|WnRJ8Y+QOzhcxS`0p7D9fdV`sLQL+~w ++zOK(n;EU)6S|0mm2zMwCf^sI5@axPx2Bw=@vs;_`ve1?Jxk0fyxR}GL!C_RO0`CKvBJ0Z&r#3nJ9#T0DxeUQf(XYx8~7pV?%VQ ++zp$p@!2BuWmk8HCj(_6WI^KGP+AZencvmr58RNI4O&fo0JYFft!YHMYCSgldv1KzYf ++zt}fF?1KV#Qc~=RuNs_m8(N=?r3rL^@&XS=`ZI&z!jg={*gv1;K&?yo~GWl<1-4c1} ++zP8c2b=K=HJo2Co3hc0=u+4#3kDh1LYzJk^g$HXWsR}{CUrKRjUvB(T^IV+myr5jZoiS- ++z^+bBsR-f-C@d^wS7=O7rX#5j5H`6=qaM>Gww{GuG-riGtw@I>4Ok#2}Y#0>t=tRQM ++z=)}^MI5_(?LWY&N-+TYtsPrH{ffdjQVqT+o<*UAnm|VL66E2D1)91+iZI%imVrNHl ++z&>6eMU4v2}WB}^zYX?4S`FQru`60KuI%(OR7(}n)_}Z`UhR0r0RCjwPnx=9#i{kt}HuUIHUVP-<&4gjd_3(8Be4T#?IAUzSE*6U1ka ++zt?kIH6xD)UY^Paq2EH+#)cZ&a9~*~n+RVx4JBiL1cxeJna;&8M<|3mYXp%@~0B8cP ++zc3||YJ2>~@?fyG6Ja)0kj{3E9b*0^tq2($US@;_yqIi+0iOVYiC|@%KSC7y)x&bxB(Tw`Ry6Uic ++z%X9o|++<(l>~C#FtXIu2?JW^+tkcI+RD+2mG*1$ZEEU)d#f{w|Ykjb>>-_Ipq92?@ ++zH*LIyOiiTV=e=m&Pwa%eceBK<a^G?|t;pE$FLjHYvm+`>U%AP~tzT0d9JmulgyO>fvTyFGJ>F;chp ++zlT~_(b~XuA3@x3lBxN9(L;^_qIxPe{DO5*M)-EwBJBS7F-~)T4@q?$RxvV9{xfY0Y ++zjqUBUZ6Y#?+)B+YOywFJ4mH&ClnYJ^*Sd2FS9{BsCTIALwKfkX#z`|XRz}+P;&LQ8 ++z!g}5je$|e1xKYzx#m7Cl1~+sMzP3WNnsiv1f`o1&lQtt2E7w&Q$ftd!1I0Rl7ai#u ++z8;>9!m3TbUGX=;1MAV336Xq4d1%?@<1kpoQ-p6udr_EdXF-*xUcHsJKo8cvHfz5C{ ++zpd^ASz*v<8(r8%S1iB+Y2b52ixXZ+;biAwrW0@_#t`yC+S}c8~=0ig;PnM2~MuZ&v ++zo;gj`rald!1;m|tl$*w$J0H{t*SV4>jn>_Axr~Orw;#tmC|yxY&vCR@cpP0(crJZq ++z{SfPg=Sx5HTURcU3rDW{wX-MZkhEhC)zvAuss&A~oBw4nkt?V-5#|bL4QWb4;!U9( ++z*}fJT-sYLApb2h)2tf=aDKO@v=_!G(Y6EO4%!sm;Oe9ng ++zcBP^S*>ZW-a2;5!SPa?57ykZoUwwrd&+^3*!vND=AsGNix)jI-dP~6qfC(E)4md<4 ++zmP$f<+Th?pGm`;>Rv?1{K2&$zwj#~(0KLdjA=)b;oL0sBZk`?RFsmdJ2+WO(+J1hK ++zH*P3$E6oyN5Si7D6WUuU4}suV+KDdU>TX$q#3KQ3&(y4Lw9|`jplc)_Ik#B);h)?r ++zk(WB5p8h5ZN%Fy$ijOawN0&BVEZOBh7jrAd$dz^MJ(*4R&7^505nowJn)H*aao`n* ++z$;M&|)g_7B#1vqLK;OHGLv0jDBe-%%2J?l~{LwbfgzgrISf^hkeuIlndGC1bu9@Wc(V}aXUG_7lJ=M== ++zM-(C~RRJ*SA4%5&y(ka`>V^ZrX@Mq~^?y7cBxeM{-5*%8X5MnFHuTCcz$>tOEHsSp ++z?-Eg0Y$7_ABN{h=bhnP>vbthNPc5Pu6w!FnfWSkOL*Qvu9`%u$Tpx#ga8%VGEh67p ++zPzwbkLS+AWDjU_Nn^>|XnZCGlqkdoy_5kq%-=p~2*}>H`miHi3-&z*?21qF;ss`W4 ++z#v!3wVo{(LH&w)|yGPsE@h(Y^i1$POBIc0^GBEW?AW#vMwu3#2W5CjW2~*ekL;Adn%mO@-q_QH{Qpsveyc^^s ++z!p{gcKE0tE{%)9|OzM?g*v3u+M|LL3ZYHEjl3tX?krm_2o<)Mk_xDS ++zGaHnZuc?@aO#{XSDL}d_yd}8+08Si$gXC@(vhTlv0|_8O?}b7kWb?>{+#P)cf&glB ++z?cmiT5BL_l!1>@u$`zB(d8pviOygtzYhMiS=))8|4-v$;*A?->-Ob ++zshKV7t}oLfzuYx!I@t%3WRzj2y+3-bt`m|QZ~(Nx2_`r$LKH11tzQZLw;Q^P2WlRJ ++z1}!tB>X~Mh$a7DizIe@;AMS$RYLdBU92%a8cRql|Gavczw*DJmxrlxxvY7Q;!>zJ+ ++zHZMB^8*bPK8{Tn{eBB9x9wE+Ob^#f(wJ6P&5G=&tIAJH4GEp`;EKT4VAgS>4%t?T_ ++z!=@wPc4pnkJxL1WwzfW?<}s#NUW>tclL}%L}+V!y=vrv1d{qP{L~iCy>&;4mu@Me@f>L~ ++z5hCptr?-tx=Cr>fkxVe{6}C@rdix*v?XFWXw&QRdHpKm+R94m1xoZ%aA=@oc^XPpQ ++zcf)|R{}sMo^$F69l=e0wKIP|M7zxTgP*S0ZtP8c54FIr+31SCv@E7zk?eTHEb{mQh ++z_r%HVgjmtaywS;0Ux{S?5**^d*GK*40oL{nHOsYs%X#zLllR^c$VeP4Ij56SOVOc`(Rcn&e9^Yh{dmYDu)ad(Bj15FbN1ol)wYGX5DgV ++zfQ(2#vrL;gTl-9w1PwI*5Ouw3C51&wI$K2#R&2`}SpiycdHZM|;h=je0KZ_)PpcVEcYwKeKWJ{f{Br!6~ ++zyL(v1$4G`dC$m}wiYOhg781#1lyt1~U2x(~eQ1uu(MRH%foeH9+I2t{+RLKtracwF ++zav6nm{uS1F)gs>|PyfKiR&8w`*P)De&5OVp--RiaP`Btl$h&_;PBg1S}`0JBA=F+;MW9n6kE`n57I ++zt07UqY{Xswz?1;uAxx?fO8E)-B?M$sx(CY*m`098o(vi#{ChR(z$2vJ+=6+?@4pzB ++zD92lsR7@iX%LKDAMzbwqC&VQ6CRHZ<9Pn|10ah=)J_0RNTEex8s4Bw ++zP(YQuhHn01M5Hx?aMZU^xZJ-^-cTY3)Y@{cs-(k#FxGv8^QPM%fCllusd`Q0ga8K~ ++z=b`VK0K(Q#alX^7i~^AbFq>vb1C#gyfttt!yFP~$AtLJr&GhLpnSS~jvMX*Xx6gK< ++zV$2B!ro8~LEf{xHkh!AKeKA!DhzyvmrjfBx2{NQ!+*jO&NbqFPv;66%NWYo!(V+Fh ++zN~XDz0ntuom@(k|}a7)NjY$AoQL9C2SHP-HdWNzwa ++z6gZKF(Am))oH*1BX}lug`~UykKTd!IWI#6$DJT*osDPjLBVx(dr0zN9!w#Evfue*G ++z2a>U{j?>v7l0f53Y*<7P3+DY}F(dQ#*ON$sM0~Tz)w%9=cpp ++zh94bN@ijm2me5F{opQTz<{HV0kBz0{S}}a+eXM$2PNln5$@Rmws$HiSkA6fXMRPoa ++zhB$!VnH#N?Rl$L9Cl#jQf|P=$5NcP5NH`N~cLcOsujm3KU_HYpyOeEP>^o`}zSqZr ++z`qUs%wnj3eiUiSC335EX(93vq2f3psQH~po*HvpZsii(53;r!Q&%=oXs~U9kG`n`i ++zRb$~DqjLMpPl|Rx23;?AQEUcjOTeM-fFcw&9%qI?zo2##4&X8w ++zri#KQB4IHT*DRXuGAW&)4NwBm)wGziur8=H{G1WsBD&a~x%6!83MH8U66{=Q&|8wK ++zCuJ(!4|*oZEg!n?X6*jltDxrkqzgUv ++zS+BoO9{Kf$=1s5uk)GSjuGjAE$I%DWt43-;0+Z{1^kuo{mp?^wJcSNG7yMTv+5pY~ ++z6SR=5XefMHN&x(Wc_`on4rw=$DJcT_nVCQqZFB_kKFdtVOoAMnfUs=LC&{ ++zPQ%$)Cv`;;>;Qtqk)&rFbO~=3x!3h+Nlqy}ez7gaR0^7#k$@1jgg}6Eps_q`pZ~ca ++zno|n)t}jM+5LHJX64l+7AUA$x3_d`&N(xH}jo-ZJy!_Qm-oxPe573I~gV6#9H?n2F ++z{kRt*KuBN#8bb5XTA+c02za1IFyS1}%IZ0^IAYMYyjjh8Rk{$U$a@jl ++zJlHJ5(;d?NJB4JX_1l_5dX+(vEqufykVO?bGl(PWR8}GOt=HslKGS3@JoYL^n?FM~ ++zo@uN_jDQ-TFmYJB+&^kMhIZo0{Pv{6)ddhl4O-?=)0&$3kZ9s1B5ojTa)_Bqd_q#1 ++z-!BXcU~QaD;e-HJpiyAP2v%dq3w<{0Lu>SR&;*!NLE|mblSce&O2$9_4sLW4iRlg_ ++ze5ZmOpaDlR95psS`o7rrWY!s>xa6*w_|n^6H2(Abf4~hV(F~aOMSG!^IdP|4bZ@E~ ++zF_QbBzxND!r{!!*jJsfZ7{?oxJSGzW6nLkqsY+ ++zOTPWCSb99ea4{C1TM*UkJXiz?6J2hV7QK|$$Ai-pTxFmFs`(4h_!HBfW-KQGv_Q`< ++z5l?Qh{-%ZRm7kWbm{LKBP^GufvuADz78ufk>Z8vHVO_rhb0T049CT3C+Vjruj0}zx12##coYTk%sC}cX ++z4vXm{zye^4DpuB=5r2EAMJ#RByeUEgc)tM%NOM}No0q(MY6Pqf%0awh4MaSAdJtSL ++zioExGKhVOyy3tx85nw^#GOVQTg=QOyvCZDw=~ju3bSZSvn*wt~OA-`jomi48a9VV;=?QxHc13JZyc_1(Q>@s``!1xOzE@v ++zIiPR_Dg`zrk%Z0~8+5aMFiTG8qE`h=zbGdMku=lB%4h#8_Wd$RefHHsb?Q+^F`u{& ++zIw*9<$RMCj%7w>H$sfG!MQr+Q@)aY4%Sp)PaW8ZscLau8hUE`#>qRkS>=jYm3BE&s ++zD%qO_-#lu;OR&Y^wph`S2^+TwO(!c8wCTPf!-Aa*u;Cuh$=-=FuQvbyA+nQf>}#ZJ ++zfu0u@vsw$9<0 ++z{TnngGNMR17RH0nVd}XsoSDYqIh_ygn-Op+HiDPh_T0iu{J7ENZCQhWEM`wB3;+$= ++zt9Wt;D9QVUOdAjXiz-)fwovzR`Z+Vijs{cgkL1zlqSpmdBhHkFH#>2F7!gdvFy+ix ++zJ8f6zUE{GI`r^kiStl?D#gyr=`WD99I^-=6{asvnYcm#~%#o7<9xkr*eelCLSmbhf ++z{Q!(*YC7`h5Szo|hkG_wKBo`yq4FblyfBGyg?(8)ymsc*j*YsxarrV0kn ++zyd-!2^+U1qFJt1eA5Mz>|5G_>5a8n0JciL|0=ke9w>{r04lNmM4`K%>kb*+^aWbQo ++zpA_cFuI;!6dmMSvF~XwZQXvW7*|jd)D9u>VUDExJMVjdRV_1 ++zdBRgUEvz*FPKyIz7W@U~L_~98TAy@qu`K@AWnBJ+ubZDf|8e=}&y0%0TXa@Su%wzi ++z*bL(Ewkx>e-{Y^y*;A|^CP5;6sE%7IFp;UnE3*|YGSD$hvf=J~zW4cD`?Kv_`$da( ++z;wyu+;HM3Z#)s$vo3Fdj7^5;FX^`F>fa4lKQFz3~(2W;>!`xm6!IUvH=X;Fxcf28g ++z_<~Q3FJJne{ObpL_34LN)hl0Ls6P6ci2b#1tGOBWzQe76B+QvrQM!>4G5`8mhkFUfi!Cp_WLTkP$0%K>rSc1GM`&xAx3 ++zb$q!;J$G#t_LK^?>>S68Ye1J$thMF#+o~h_jFyGf5qi2wwEtt2NWXy&Ndqp40;)BS ++z-JZcz*`aOJ*)EplOYhnx6M5vzugr_yqVd= ++zVC=F@=rDIhNW_jzU1(-yC{rLPkOd%y88H+6`UQD0QX$oXZf7q2@`I10-+t8?V@5G1 ++zBq-puQrXhh&E*bZm)NQXMj)A%UGr)*0(x3u85URU_R}vka7vSNtYg7+l(2dt|LVgk)dC0+yE}!|mNkZHFOtB=jkkv%26N?3>{%@i(#v|t ++z&}F2KNc_r`Iy0EFM*8Y0TRik45|J2fa_AtcnmR72Zz(VYP7!#YLd~%#$v-;LX-NgP ++zqw2;B#u!3)5Hef%MTiEd5%mOpR=q)^dftiEX2TTiXOl8a@EY4X^0e~mCbPqKG#igp ++z1js^hwKN>bX9oA!_<~z{y2yd&`^NL42@Dzl)M7XRLh8|i%x#i7HBCyhI2>Th4WIi{ ++zZ@K&>Z8GFub`#z4%GL2qZ`C*(Da0Vt23_=~a4M#W;s~Y!A+5JK4#53d>JSCcfG>ig ++zsk^g7KN&Bp&1DY#dD7d4z2{+JOO#+T(~Gx9d!X0}T!;*lbF0FN#IaJ@qTl6zUmZ+! ++z{f|1?LAr~UrC1)D39yYDBuKQ?)Wg7}SkjB-cWRmZHsHzgs4KUSi&V72hJ@QMZ;gu= ++zI!sp9YY?R~K{SF36SMN-xbBWlw~4Axi31Lp@I}ywX|+HY`r3=T)j^~}s{eNctF~E> ++zW* ++zBuP+Em!9qx9O?^#X1ldEyLH)Nv{!F>AN@wQ-d8~;ibfbk)*e1BRAA9Sw5+(f9>ZQVR-5F?Fb^a*ejdCQrJc&%sbDZ)W>YNl3p+hV ++zI3^bw?)o`W%0jpHDKtN_vSy24w?tIsc9!&B4w7;nRpnYeXZve6I)eDYD1x|xj){|pbze>cpyvZMw* ++zr^!?xk0Lo%&}tIBmf`E$J*{5rL+(YGFVWC85`mtK+!jd?{|p58jxZJET6vS ++zrgZkVwo-HGbeUk?_itaq#Pn@%2j~pJ2^F9*i*3)GGT*Cx_VeNz{TNveHK~q3L0B+Q ++zH%WNq-@wU0f!ORS*9TV#624mh%68q;g`kwRr=dtIe?93SFP5P~WXZkti364v)>mLYD@p<|GBFbp(< ++z6RV<`oD39Th>*2x)(s1Ilp}8+?@}B@hs*`az=U=25Tsg8c*(^T@~dSippPOdl20!? ++zQeyK28L2g9sI%W&ZlC$$d+FJoSyCG8Y`G8<&NT+z#rkRJbJ&jr!cpqD ++zKBEqxWn{8gdKsy=w@jy?A)J9PZpG#+z@z0y8V(hDd*ieOs&&A8&KQ-)XWZ9rp{!ey ++zK;E(?_q?O#LZxvr$WcGP5gst0W!g3fYijXKst ++z$zgXmr+w_95!tt_?s$7#*_Jx7tk}*SD)mOsPdN-6^fkiiOmx8gfCZwT5Sf3r;O|{B ++zS?Wd8UaLuGW7iM=2Djr1I>yiiA!$UMeK+b`&PZ;&_}jH01rf3zh~V8}k>Mb%#@~ih ++zG&T~^e&Z43XiB(8<^vhXuWsjtLXV;^s~@`L`(y3|Mx!C=PufWA^WmjaB`cgshBm#| ++z`u>`XRb2hS9=Y#VFQXk|jtju9e5nI(N4@ag7AFvp^{fLJ7}|`ud?Fwc_9)J-ZN3`Y ++zfFycf%#B69711NzAg_97C|8DvL^eM|?-zI{nglUTO-Fu0MmP&`W?Q*Pt2ap~5)_7v< ++zM-WZY7j!f(eTR`WB=h|L2_2vK-(=nsp6?E34X@Eq#f`Vj$Rm$8q1hxFL(R;1eJa{# ++zJYkDvTO=~k@)_A(&N?`i(D6JHj)2-MEGTdYfDAg^&a6CGh%UK;)Kd-v^t2brocH*< ++zd-=OO7fDMIY7{ZpZit<~x`xJRswV{-Jxh0Do7%~exmxdk50-$1EHs+h2n=eM%%A5yA#4|iG!u#=t={CbJTn~ ++z4nEaJHs*nnr_4FNc0$pEjYQn^(>V+_UO_Xeq2^OP;YnZIf(;9{ZCL=+R191%T9S`E ++zdPq1kt2qs7pS&JtQNLXU^+z{*7iw|5)XK57H*or546HsxqwohaHb~iQ%X|XJSZ%Xs ++zq1j*{=npl?Xh0p6l)%))!(aTx<2GP{DFFbcIt~nPU?Ov&nS?kMhJjL37&t3Hs?yc# ++z$^s-|hxXf>zg!p-;8wwYc3@e)bdI!GYc&4U&~VFVhFlvI@hVZ7DV~AoCwsr%C6yQ! ++z+J7HDt;L1~Hg4HAfJDqVs#t?!X=)n(R|Lrj5kZxS3=qgqQSY28)xEGm^k)aOUthVo ++z5R}5_Z958ljy8`Z4|-M10zouNk3sEqmGdAbxMqG;JDFX4!_dbfE0j$P&Ax}?@ova8mEbUHVv100pcg>d*@d5@_aE4F0F!JNbBWzM*ZTw&miC~lPVNTNyJ412z5LN8wGR~351Cvj_E_LQ{DlY ++z31;>XJ8_Ga>6DckoO%+fAMI=4hb7Q4pfGWWc3g^jp^$u`0`Cg}Nwf@$6r0wHsFj|D ++zW{4%50(2_i2K`+~ClaVBqA`;77Ln)zn`yD8KNlk%5*N5PjDI(xjFk3>yO+{$^}%Hoi^lEO{^%d#wyH>ika(VmiJsG3ONZJE$qAVwetFzjlE^vM$w ++z+7#^NxLLX=dwgm1q|5kMIHhl3wT5a9wiu~fP|+RR5y%pKy2ang0V1J#RR&ZUG6&j( ++zH^?3kM74M)$WWF+xJ>ava}C4*5a8kqs;_@iNZSAanC0ZQw_fT+$TiY@}FqbRAp ++zTh1jh0A!&*w6w+%{gMw=f!hg4kh78KSIqXv!GxnY%GuD|;Y2cP0W;V$G3PzD&(oe(_p|yXbxhcNC1OTdp>J~^rLM%wx5LDw>HHX6m ++zJzEN+?-UH!$I+Q1`r)<&^K)y#Hu8Aevh|tughc~HhNv2Lk3N<^nr(GrJcO6cXYz>g ++zV_poLVJJZjlNXh{QQPVf4Acj6pArrmVABOn{O@Pp`@U$~nEBHGmoo;v_P1^QE|- ++zEM-xqqtSy@8=wmFS$Wd1v>WPv2*jMUUR~O3a1KdyKV2>R{Q#nxAH{z ++zVf&_!DkSUHgMWqDupCS%81e6cjX89ZMHnYA8js4G!+YXav046>ITWzSe_Z<*hYgd5 ++z2tUZjm>V$x9zea!=8v)6+O}0|z!9Tzrp<=r)uyYX@U1)& ++z;^>%go-`cvL)&(JYNntFy4bvwK?TR|Cinj+;F0FL)?tIbN{WqLh7UZP?;ggo&~>g9 ++zxPn%dZ0_0K-}dxy$E{WaftZ%oQP3|Vb&O4y2grpS=|5Kr-=SE&8as33=^pLzQL(v0 ++ztL##odv1u(%|975XzN;XHFS;{zR_DIbI{{K;she7O=_QPcl!F4hV7YP4FFoVL1KS=kBOdn~Pzg_T-Z0p1W^FHZ$AIYsOZ ++z=3z!?wuFj4p|893WJ|vn@sre--}|l0usEfCy>+{Pv)fioYoW)0u|s++#zv>}-DT`m ++zWJLZ~Km%9N44_tL<#O36DI3#eck)u29U8OYOo-&hftC;Y9u>fX0;+Hsc(5C2BG8T? ++zbxbhN#V<5{4B(zO{FIn;(zTlKSkLsM~QQmDX-r9AI#tSCNR%B>F7mc7( ++z!%iX>3MT{_7oo0*;4-9y0#nvO9Gwr~&N_%UZHzCmK>6pNIs`xog6JgkYvrJyZ{jNt8#a%; ++z)!xCZ`YD2%Htg5^O+L+VXlo6LQA4KRmg<>u-CI6a3Ry^dCFO!C8GQr^x#vD_^?1a`Vkgw=DsQFOx ++zO(_^?_hRG+ngN<&ic1I-6Lk{!8Y_cWCe8x$%OxlQD=EP&uo?)n2RTAifgt!u8|C5( ++z9wj3>+S#paM91hXTu2d)A&klAoDdSUOQ*5Ok#-I7lM~9EgB$VS>2?D1Bc59HgcTZ! ++z3ikHlX%0iwbehmetH_B(3~3=@;DUs`bh|M@fFPxs9!^H~(u9_TKrBjv231D?2{as~ ++zR-}X>*#aWfBsADEQs1h9OYqX1L&Q8B97017RN&(!SQ3&lqVFqWor`Hun%Y$y$tV## ++zKLTTCbIt`;tWY7jARbsl?cp9S=7UHdhv42P_k*|p=5f+GE5;=?rGyKBgz!EW4gYlS ++zPmZ(CZyu*T%?*19aE|%_u7aHHY!ESDGR=?E-n`E~?d@qpn}DZNqMmg6IARfSY)>Dj ++zxw-i`M#p(N%{d3KXqbG25Gig#cS)zgIYewHa8^SqB{(;JuH`%pzDW4LlY*HsO=)rt ++T&KD7B5az8I?g9{wyX-&!%U0kR ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..f65c1c50af17bd95f160c2c60786b649012cb184 ++GIT binary patch ++literal 33494 ++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

;}yar?SUCK)+B*$`E`ZFgWbdtX#-z6Hi>I&eoI ++z^8MHFLr_WA!y4B*WdrRxmu+(&U_x?7edcYxMpFTF`KAY%Z8JIokfs)uKjDGCZEN- ++z(X?yW6NBTy{wn>lk(5=Mrc>O1s=X;s){5;Z9lp)T&Jqwf5P*OtVR0xPo<>S%jM_<_ ++z<2N;?lw*JUqm*}y?G+#>=|REesrS?D(cm~jS}_4vOdM>a@1l=0x3AbEFKNzb{1E+yW>diM@wKT{ ++z$ZTYoMuu$a``K3%75=yQ#g-^wfGkfzgLk%VdUQ*?Xsn5(qlUgq8e2}-3Ug7}YpTzC ++z?mhwbg51M0BnK=)cP3|q+zZR63Qv*$(CSKpwfsr=#lq_I=>g1-@8@s!FcsAnO=q6wo04$Ro8V6nF#qWg@ ++zA2anO{zQO)us=A+3P769M5qM-Y#OFP%fU*IoP5K|Zdr4u(d=Ua>rs@Niv^!C5%MdLp90cG-<@m2`C`!r2M6Ll8jqYf4@JmKh+5T7P*&UXQQ~a ++zwr1^_YRT1}XTW!TCl>KhZ6EaFnKFG6F$wi24FEbH21uHkgNb1=*#?dT-dmznWNNW- ++zD#t3*M3mG%cz4?b%PgwPJcuL6pwL5i;%)BW+af`Lci5yh>xKxsyj{{s7{x`3 ++zIibUem>j6>S?OjbcO;@fC((i>#gmX^CYmmq-LR=xdtw?$T*oK>9^c_JN ++zNmD6hCWM3oGHI-6@LJE*J_xtN-Zp)brht ++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 ++z#720i=zUEv1uL@KyToJVX(?Md|J~i52Luh ++zy@K728Z-h5j{?D&G)cvtMCjty7kdkj|K-ni%KD3Fm|wq^q3f12>eRn8%l<-|{KNW- ++z5sJ7K*u(=3SS4BHd__~?8kdR#Sjo9NR$t*mbA6}eRD;d~`y^!&TtMwn%sx4F5(+k% ++zyFnZJsuu0W=nMVaWfYYNt1L>ut~_;W^h-bJLOh79;$PZq)9xJDJpVNk4vwsB7?!sr^SK ++za*J%N40`qee8n9V0J-d2h~XlM4-qlCrLxV?V41K>${S18JS%jC_G7&7;0~j}kQG=A ++zn~;Esc~H?=2dF7tpO(?R1c0o3-kjY-+4TGBCqS1@hTvYMC;?bHlUAaLQQ1!oh(Wb_Qji|hbj0JHwS;3ecnO2dT-sBtjgP73>J+J;8$K+C;@d89HD7vK ++zcmn0yxbGt5-|wUilyD_nF1Mcv%RPKNp-VV%a~vpW^q0nxKD$lSf%Wc@9kOb*x2d6l ++z@F4Wdakm#$ ++zScBZZ=x!o*%lahF6sR`_CtrlDYCL*lBw5{)dmysSr67bj@aS;oDpi~>EG&*W0Eir4 ++zDwhU~`1!~)Lx;GU?R^PrGgZ+<4}E|GfohS`B~4??jLjHAU@12RN);J>&xRjEI<8xq ++zo)yZv1TnR_m*@LM?pWPchn3lfNUfXHh(g%VRR34FjbDtukT3Y_Ngs!MQ3;~@`u^c1 ++z9DP?ki@vV2y7TqAB%AoWTn?H64MqV>xx49v8HSH$d=R2z9Z##Z-j2!g75C3-&Kw;d ++z`7`WL+J-Tzr;LzUaJ!3*tnve5s$Nw5ub_>?h*TCsJr!Zt$#0f|wT|Zgg0DVAY0#XC} ++zsTcHekD=0Cgt7dYc!+S$LwTZ?Eqt1YuT1uutCnE=4d=4@1Bz{o_Y)vS4B)$wSoyhz ++zH0$s~RmH>MkhKK(F|GKCb?=wdS2GqV#D3mwC2_R2cz%6+((tUIAj0fpGKiQ1Q_8Thh7=vPd~2Nk#@wg{%Mvjjvd- ++zN_f2D^v4$m&d`#wq%ola4L`u2f!c>Dp|gv5JH0SRz@pjc{%U2(pQ4IE=>&Fwh>mAg ++zsjEOsoP&CPtOkQUQZrvtV7{*X~7DV*5-&AJhi}tEzJ>8MZ;aQ3d565-7K7(Nr;R9?s8(sYYH$Ke@H) ++znJ$!mj&|?&6gaJmt2r=y?j@*iIOuOIW)dHDyMeTt#iGW{<>0Q1uM`C?QQmV-yl6h) ++zEA8@J5ea`lFyNH)$%FXu%2$S+uu;iED~ayh2sMrBXB*sUG2SmDSHioGoeVh3_YL#L ++zH}pOs%eGD;L=PTE3-uR ++zQgzaRhR8QEuwCK1d#`!#X52d9hbPJ=K3f_$Z|;p`A6_Pe$0o;TpK^W8I*aUENS%($ ++zn%wDji1Q-Q^q5iUwC?ObVEo+U-P4*j<@7XOIlFibjG&R1ahz@{^48N8sLr-D%NS(r ++zM}yKO`G!}};BEk*vy79C(bS8=a(A7HR}-VKgxfI;3=U4_#^0*+GS%r+-+rtsv0w~t ++zY{{TWv_z&xYLYN2gGww> ++z6b=i6XxM8>Q94_O^FARs$kIQNO*T3OkA&Ieoqso^HG=}=sNTo4%Xgk}c6fMy%;N(Q ++z4{a85<_b*P%5;_6XE7T-8&hC_$nlUgyT~=?F{6?Vo=w7+?r?lXavyif6>cKi$VbaFVBFwtEQ}? ++zb({yCYx=yloSS#QT*W_EdRl$#f}UB7qYoGeAiLK7_n}JZ&d--6-{OtMZfa>~F+Zul ++zZal}8;ePmh*-^u|c=a18_kr6+;%>jurRiotN@8mQU2};EYa5+171O3pBm8+dhZyGZ ++z9m}k|H*8!`VC5Eap>Deht?QZrsOw6~%)ZQU=B;XxVqS4 ++z0;)!v7mTa`z_5pZ_WQgSJET;iL9OiW&nALNgHz%|0{qJ#w0pMUSS-spA=XPwF{vNP ++zo;A3U!C*A#>_%s25^-n4#jG|7P7|`VYhpVVa33^5$PWbvw&^TmLu6mH ++zey>z!eV+(i ++zG<4kVlNHk@H$N2PKP&X{vG)21ttiYJ|5j@>>W56{P4amkD_yLcx-gZ&lDzqol}r(W ++zW%$E;eU!-s{80IjfAOf*)Tte4AOo1URm;vPyccW5%}SD(@posw2q@fkjq3Kc=U6RO ++z{Ds%53+nqQG9KgkH#3?8E(^oah1_c#>n>LBxl7qi$&s(s9c>i<$G1u%X&#u2Wnhdn ++zfgTe?pPghC4+*N7e|8c7O(yYJ5a0FHx5}7!z5psU5?zTcqcFypP(7DOxf^e4~ ++zYQWHUD-@P`FC4$zcJMd<{acTn!H|vm^(xJqmz;0&!6%A$>)!t-Bjp~Hp==sEV9f%Z ++zf`55grkY!krg52T0$tQdHv7xh$Rs-S*a ++zcw-C60`+Se9(S~lOV|vpDdF3pk5_!cQ{XMEEU~u1M}{h$yKM_r7Zw~f(JZ6J#%+nN ++z#s|__pLla`$4;&F7d;M13#9NRDaG=?(jGQyv*ENf{cq@w$Y9X4p+iv=6%Hmi=tIga ++zd7?wqVjla3Rp^LL>=S58VR64P%DvkrbL)p500O4dERX<-n2a)szIxb`|HC((OjN!j ++zXtGIwmb|8WmM3;HFImL#w*@uLbsjf~--)4!%o$Dn;7w_gy@%Qg>Z?)L{~zra9Mxi4 ++zwxf9HkG#3aAc6UyFER?P|LWLseQP@fmVnnkhBZxeK0RV_7d)EPs#|FI+*wV`iT^0P ++z4uW~h3njLjltKa8k0inE1nynJ;6pMBw{9@h!&2jg`{#!5CeFfGw{jqzNBnR5)BJ|W ++zpD)h8*$*`DtHz>>g*u|@NBttyIXr{0#`)q0!6T&MDrSv%`@^hQrTl}H2OnTru5AR7PFxhxyi ++z(D?wEsTQkRi~Q9!0Y+(S$twk3e^t4fjfgljv<~&w4@(tAl#aYqC6Mx^Avbrp*20fou4@b{%Bo6uJxS$id-N$!t+ ++z8u=v8CkO(WH4zDYkFC~4!l&v>-x%W4EGdes*Fr+WE^7zhIR2r1kpJ!89xpjL04UgH ++zhFqTPg^i|heXzYhN%q=G+JtK2uuN#BPh5Xe7CGWk6pVD7`oRF^ ++zgINimGX}Du%U`aW^t_A*)jHlTQwcXKmi;@pL%}RU>2qvkb?^a&!v~}siNYkV@!I4^=DDj%Q0(Re#bDN@vk#SyntO^Q(6tT0GA*@6MDWO8#CZwyS ++zHXb6(0Lo34uS5?DO4>*_E#9ysK!daFqFTc|=XBZJ*?qXrtEPMZ)qa65O+xwj-$*{T ++z0z?w?<38z0OZ6#+GP82bw$ORoSZue ++z%TGDPEjj8+;q(eL@s~#z3psY+!rHqo;jfzzHvk1K9Q$6Ofbd5ji~*y?4&5|iQq9L0o-Yn>wMWjc2Nx=^rus~_5s{6+9pTJZsSWp>utv|z`Z ++z8jp$N$8KLdQ+BCO)3FnX{iO~YmHWr*LZsGix8#;C+X3ubBwMW`h}ehZfqQ*kP{I1$ ++zrKIx%o~5bEz1O49Ve^s($tPrtXtdn^s`>B(dHLz9eQ?h3(VQ|& ++z{#y&nV;Aok&Zt}(!?G3*&y9fP7EV|1~0E28Vk ++zT|amjLY7=K^g+R#@xhp9)i))^bco%3MmZ}JW&lui8kBMj+YiU@K>n78z2YDIO1YrA ++zKHvYBJ7`c%gAG%BbB-(R>i>RkT|u6#^I1SLM5H;=rgom+J9O2$oh=mpoHd`WGS?thGqA ++zy4w$4AXbQ7(pD(f!f)bf;7;E+GiW-DO0`3M8$0qj$qBEbW`1s@!+iiyct0fPc8`5l ++z_@#skb`E0!urCyt1SzD6D(blDK>w9w26Si0ZUNKO(zrzCCTr*keY}TbN4-O^5Ta>2J4L!u5e;!~JHF-nZ ++zV(6=QNF7WhS>`AXKZBW&e?gNdiL@A)rB+Qsj?cWZ>A{QVoZs}Zbk6aIywiVww;VF|aaNdD8Xp$CU4H(Z4BZ5T#_sy9fiY ++z0@aDynNB47jLlcsHOtpyZl#`rA=CskW*R{=uOZ}eHzv?a>ASQMm&WTt>A5BCvNYDo ++z-8E0HaBqpmzzm11b`UYF8){?eTjp|5l=LF!3qbew?Lhq(mYVxtjWo#XZuD3whY!^m ++zi96!FdmeJL{>K$WtW9!LQlZ^itA{D-oGTdtC;H5H^0wu}Q~rp(z}eFVKQIOeHuQgY ++zVw>J~cRH8*RY=lMjBeIZz}xwMtbWL9_s!q_mb>@bR1_R^=|b)NEtFx?@qrqPxl_rr ++zeSeEsc?LVYt`A7Bf#QN{948Q^vcl+WyAon4@y&jWVK_P ++zx1P(H9>P;#<%VFK)k8_9dp ++zYL&ap%?t)4W5y1S0a8T2BU9WKQW`>wE_rC=V(IvoI|T44L|HwQizXJ-eXi-|iLkrV ++zN8b;3aY$v5D+HkbM&Y*!_C8pZlY(toKhjrR?6+5f4CJ1`F ++zVEbgt++*xNwv=y0;_AsC9gnZ0HQSx(o6!6Xlcwf1Vt%+f+J8&_q3R8>1SEM326hLy ++zJ@w@0rksw7DA?~!`mS<#{+IRwLnV#ov@7*)5EvTJQJz`-0!Owe?m@mv%n^8FM;>=8 ++zr#w#|uoN&Qw_Fv|W_miI5CaNHf;M76vLEHCuCD|-SL!&H3j3KUSWd~`xFp?FXrCCA ++z9i>A4MaymxSO>bpSJl2(*lYi$XulJ`1-h>K=<(0h8RpO>$Q?b1@IZ%#gon?EU$2bc ++z7Pwa>jkhE#7(Yw&Ur2D~iy`aOwyj!Xdt0^Xg;5fwGl02|-sDY%Xwaae`Yihxy7?P9 ++zdNwQV=C&8sG&N{l#SG#?0|Yqv?2sgtSsj=JraUYaz!d)OQ@I$eRkl_{j`cVcv8YA* ++zTA0B{ew8DE$@NrGSLCEZ-{Obf%XlKF ++zYg4n`M)bszzX?`+i?-&2B(GE?__IoNrtCg$%zkJF@dQphA2pbEyXnz$|L)e1vz#MF ++zKuFgF$CXk>!`YggYn8u|p6Y&IpkKasv= ++zm_>yy=A)3$me1q-q(O=;dd1E-c++7AQ7H|ER03^HLx~%I97R^dm!C>7zI?kadTLiVt ++zWZ~veySX*u7Y>=zC=vz;2vBVS+M|98f(<1L*|dbj@M-Z0aytBGE+Z#WD?u4najsEr ++zI7~|+Tv|K%K5>hVXKLtEAfBX8e)!>QzM%u_sKj>lQ|t~Va-<6-f#}H(B?zhs&2Qlu ++zsO#rrsQ^Gp_lcT>WI7Mr2tc6JG0@*V$~+7JAo-Do$jEYz)rljvKED40vwSksl3O(Z ++z7^Nj|Ux_50ZvKt9!zh(G!ZIEBS}&z|@|ASnG+G`6AR3;@6IL>uR_{^$sXH%RyH$EO ++zU9JjCZd2*^hc|%ixxEu5Jo7mj ++zMNJY{8ULNiA6jBtD9#awkD ++z8OR{+62nRA&cJuifS}P-f_?+b;g8n&DY>L9%q$WmN(9sJ%GD$1A>ER+K-8sW85|_2 ++z`Pa~r9Z4B$&=k{`sFX)!1>VHsS&tGfv@&W;SwoZR$j|95t8Pti<3H*w-pj2h?RHYA ++z__LxOPw_42VY*CNx@9JdBjX-TaT5Gsw8kv(gdriE^1lpx$?wwsj<|$ ++zLs{qcrc%Nx8M06)92Y3g8LU8ZR2nCOMxhEv+zdHWwrNUSOjyY*S#}^&=w?IjPkts* ++z|C1IhK8RQRT)x{hgM*@qD50d%{5nR>$>cuWISstq)s%(cAz_;@&+a1P?=f3u-gHon ++zp25dV{B9McXKnquPrMB`rF>9I)IUubLrao5TJaS#MaBokGGa&7%$~;yEyh!A&_zLk ++zZSlRWcd+Sxb@&H*Rv6${Oazq|+KIX8sIMc20tnumT1v`y;LKNQY~YjA2F|eFK3sE3 ++zP$6)`@Yjvs#1=MaK!ngB7yv$ayh=isdfu64P(qBUbbGNowAF0bvZzA~y*arbQWdI# ++zy)e?AeF(>XI`yaxnjm5x%hb=cO#m<#TLA-Afn1rJ9a`f4ZQF=%io8xzi!_M+oqgZ@ ++z)POM&4;cNRL4b0M=~0ZvA^GElklPE){U{@qOkRlNn0``0Juzk ++zD?F2U8YfM{9^Jipt}bVThQQ&XMCNe*Vj*v9E3k>A5|ka-T4nfp*pN>CmYlUmJEvpb ++zySf8NgwhAKDHINkFyEJ@K~*cy_`P#+&D9K@&j{xiptVj-Pn-MoLVPX&cK?UQM-cuh ++zzY<_1wN~H2vUzhLnS$GgSvbd7)8D-QUX!Gc7&j9PGh9AUwROx`Ck&|3XV##YGLm ++zzSlkoCCMCe!)k>h#`l2iD9WO(8srK3hsR2omqPfu#DYvQfPb^2e5e06l5 ++zw>8kfC2o~PVFccr8T^zr23?OOEHd~5o< ++zU)YGzBq0e3soDs)4YftgA@k^scWdRmgur#U+0|wU!npz1LrIeqDzPa51urzGO)h2_ ++zdKE^ckQ`Ds*h>DT6$J)R?5<67Bug`pBjxdl=kgK8e9HB+CKXD3B>jml ++z)H%zlAwOAhqR3?Q<%u=L0_JbM?7nF ++zCtzB~jv-CpE))WRtk&d#BauDr0ZVhEi;rfB++CEmSK4R+QD3ES${#Ax5tzBfP&c&S6bysJxJkAhPfUDOnJN$%4&7xPi+7D*5ZEwHlCtUp9*}qh(Coxzb&awTs_e2+%j}Ho`q@zZT ++zV^m|h@o^uG6+NkLIMx@2^R`gW7gG8TlPEz7>xj~#`zLH#bjL(Ns-x;)2o^A`RA-|& ++zQvJi-$fz_K3Y9#xOiPrk?aW#%4mlucDiaZk}VbjH%b`^>?>aeJ9C@RA)nY^s ++zHt(x`bsYvg4*I1l#3Y*sKIc`?N*@0x1W-{V;u%_kg**YoXQa5&;HW=DbMO>($8MT1 ++zi^ZqdkYpP)$$KW`%_F(5pWX}IySmF!LWV?Ae#ToZ~c4 ++z*D5=EMXtSN?`%TDtcdE`vru;UB7`I|QpC^iANZW}d7tw>=lyz)$7_zwgA_)*rT#7I ++zSL*00;aFyYy!}1$s%IW1H;knOz&z+gf+kgQQWC>f_IXc)k@dQT%v&=tu|hIMvM=~u ++znQ*g8qj(yXTd-Vz{%WdJ{p^wLm=pLy1=Kaea@yd{ES)xO+ozBA^cU=`vG0er4h41s ++z@{3tq^hu-b%ch_f}I#*g5usr7bNbdyD2q(S7R4F6W*uK4vG)ab` ++zjk|`E#`)!{Y>rMU4|>`y$t#O_JK}f$n31t62x9k3qMq)1!>tc5rykTZ(WWKSN-}E6 ++zB1rsG+wtr+lW;{gFD#&(X-^yWm32Q*)tIQd&4B+N1I2Pi%Im^XLhs1kYt|CLOs)R5 ++zP=2;PD#9-PEIKPo9z*G#u*22B$BegpGZe@_bOSE$O3;kOZ2F|c$H)_)jjOU`Ko_qd ++z76i+*{MtwM_eSNdC!%XKO`zldg!IIjJFNXWDtzOE)7oQr)EM-5&DIprtO3EF(v`_H ++zP;TOlru&`ERXyQ}^6KxEeO^C{X2pHyr3y;eDL~ehgqfLP~`CTs@*S|c^ ++z#RJfx`)Pm!Z>P=|HwC~iOzd3>de7k-o+tJlmKU!lj3eVO*f@#h8dU9+EYgT%Bprgh ++zfQam9H0l5m-q`a>0XIE6l6DFo+Wv9~nW?_(-cK-h-lteZ{s;Kbnl{wM=z649-hA8J ++zBG$9?){RXGnA{^0CEsrT`NnTX15o!1yp{?WmOBj{I7~HUkSYHoXZ1bIhRLm$l<*n$ ++zA!#I5x6wqSU2Wxjbwq@@J^d5^2mfg%3UQA-#pyr)d>QVG`zIsXDsj&BEBzfvX9Et2 ++z-hBr%ZjUhf%c?Rv@~RvGT0T0?{kk}JuZPC?a)VcFu>lkrj(F@hGRgwd?hwn0|Kd+` ++z1o>)HZh5SJoTWjSQ*lGel*|OZioSJ1@OxqkI{a3N`ZtTm=LBEEJaeOaMRzYga-e=B ++zsogg^Y5i_MF7WJ8%XikYXh7%Lo1^u-8pvHD=cs`=nWNj(b4lyfcWgGkWjKlzi?5EN ++zneSZiW8GXss}^(=iUVQoBOKv^*Tub2KxCY ++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 ++zwx`>Nw ++zr{K-_`xZ(mp>_$OST6wZ{<}Z3CfK-Ir|haoI(ec#QYtkYqN`_H%!3cp%9&iq7Y9efRSnQ^ ++z>^-vlM9JeMQceK7?q%E|TpRRp{OsLeg{@kk+`IepjDwj3-a*Ok!;+tE@iNqmx9_$= ++z8umP2tGp?DSQZW6Z0EqfGI(Hd@Q>4Ch^XG`QATi@U3ltD24~g->97-!umYCcz5#j~ ++z3AY(Hp4+w4Emob~70D9Nz350ey5IC{kN5AY(o;fdOtr<7L`-$m-hi!X=G4WGJj-X@ ++zgHb*Mzf2z$VP0c-`zMo}1`zQu;f_CwoqrvqF8jAG<-$&cB$D=YyuIB0TS|KgR#TnP ++zJ}d%BVJ6?7(Y_5;xC7?+5aq1#RP*UzsTH}Z8>eOkXU)_qzce!p@a$@)=f`Fn?gzS& ++z%H4Z?-#m16TM-acE#^faz~1cafjy)E%89zeW4%xD%JCWKVKu#PmvSbF4Y?7Nss3V! ++znm`XBC;gOrYJ2%0QQ^ql@+A6u_({&<3K6h%WwLK78k2da-Qpse`AVPmpvL79n9?7c ++zj1p!zfj(v}vrokbR1i ++zR+Xu0$GrCYI16ai3nf2h$&Kt!pad$0IK`4B1fBBE2Fk=|-3ERZfoS3yXCK(`3R{t5 ++zkY*nimY`C@IVKp@*`DIR=|Y8S=`3$wUa{u>EwY4Ns(AHA{WO^Tq^(GA@QP}$o9u3Z ++z2Y=027LHD4nc%~e5VL`yP3BZcS3pgg-(Yw%S?W#q=Li&GoR+%Lkfk+e=hhKL={FHA ++zL=VSZTgc*E0OnXmC;d6WubNoi=6G)xAX#r{+=%81uTI5RHNEi;_18*QHO^hF>+Q`X ++zfe`{cF~-U5LG>c1b+J*|M=~OdoCI}D7+KTU<{jhCz@9gZ8&;c=N>$y9g8Uw>PG&zW9pfI<{ ++zO+QRfJr-bZZOAo6CvzK9!rdzBDYla+F#%DcN? ++z92_duaCu`=Zob+>22FJqK)$ih)boE+J>|CSPzn%KTOG(3?$CkB>gy(vr3>jMe-|Ycv=p;3p073P%)beFAxpFte>rh}q4-x4L|vlnc7aA((4K ++z$Ho}S)o1-sza48o7Px1W-=3X+-Y&Ey(owIrt|v{Pgf1pPGsI-nXL9v4Fh%!^%yPU7Yy`wG?dtTM0-j;O7vt2Ch--+T`D9~yOq`|1w5MUU-}`B ++zR3HKQ5f_2sO{-C=B^EQ_{FoW=c^TJ3a$e|u) ++zq4W6N@i58E<4J|H!3pd_o3U|!-4VIYcE$Z92MZ4XSbh8Gat+t}RzQxx8|(-~1uJ~? ++zo>w+?16DQvgMGS9b8~23Q5s8QD$0;&*K5bvY6PsvB2HfP^daH^@;G{#g-dG05(b4G ++zr^cu;ta9(MFG0wG=9+tn+|K9B6RI$QT8o!zu!Gw3Mgz_|!w}oRS2@izg-J1jgTBy$ ++z`Vgi%g=7#AyWJ$w;H~3JzDog*aTtJ<+dGs#KGv@U6RhKA!LP4LS ++zu4gxvR*0%x6$s#01?>?;uVrz-cS<75HS0+G+Qq`!RtSUHo|A+&njUiAE%^H5Kfe)l ++zek+w=YoFjN*U(#s1@NcUL~60o#jxlTrx419 ++z8o=}XczS6p^GSkDY?l_js?@Pl%gN3`DfH+ogbx7S_RAVUJgNu{9)zdm7lIcsdub&L ++zGUouHeU{TM$K+{d;zs@&!@4$Ygb1k3>tdAX1<2g-rR0-&UG13tDP|i{nPKfos3&gl ++zy>CQgt(o{T1s+V3@+X%ZO-?ngUbA5!4mCGG*{-j~H|4h4XkRrH!+w;_5?cAM%21K@ ++zjD+ZGsPQR?KOyhvIz`sdVn#|n~{iUk5 ++z?Jw!va3{mhbZ#);vlVje3^dXzTmqq-Vt|ORaXLl|4GQ!Dg-;$np_a9oB ++zJBi(N)XIhl-W2@(gYN?AYc%A@s!7C*VzxbL^^JehE??W#OVHA1CH!Yn$gvM8YHaDGK$ ++z?f)jX3yKTaFdkk9|L+rf2bv73I7kRsHAuuqW4?}CWG13hnyaMZ7O&$~dYRbsN-{b; ++z0@-Xdg@&Vj=)+_5-q67$fO+5a_P6x^?a9yYH5|rhmTqwY^g?^Z-9L9I{ox>cApwWX ++z?7C97w?fK!U=y_e14WrFT2=54-LAOPdCjxRuF}Aot>2`#8JAx79>h657Q-D99b(cQ2N*AEVeLqga ++z7L3xy!w&^&svP2~Y6X~Agir#-MK`s!+DTEvd(7i{#g&oHR5FStfupHj!ycbNo|zI* ++zp}L9oN8!eDMSmWSGZ;?m|bxJ$d8TjTyem ++zsrt`Heq_vV1}xJ%W`<=>9m#$9_8AO_xG98H^Nu@uOt}nyXcefSKwxzk5XHNoreFaU ++z?x&O>Q^yq193CaiO%vMe$!PA-s+r8}t>M$`B})6d6sxUvE=Krm$tCB|aq>Mu2BItu ++zrjxY6Qp_uaCn6y#BF=s*OAN94{nJC*w(+LCx9n+!vSJWGNZHXUr8(dTlCowlyb0dNhkW%XEZi`hu`;f}6HLimF;(2x ++ze`Z@PC;?Qo3{=As-I-|y3fJje9A!jMDXk+U&jF&3IVOp$E1V!sjo&u^4TVwRG5ty7 ++zEp^EpF)lX!(tp-hHklVTdy{%7tCcR}df4&c+!Ztf58+#j=}SfX2`OctS(R>?B-gxO ++zydc-7pQ?uT=qz1we@VMu>@##y+>3fYrto^NzJAu_57C#78v27%|HYGI0xHy-+j_cB ++z)zy{^_Fx1w6)7xR_ujW&J^ ++zh;U2QeL#R`^u3?5S!9Rj$3teIW001V`lHR;O773zd=6FKmUb`P1J=?OJa^l2H&d)R ++zOQbO~w0x_*ktxBY5crS_>2U(1N6Of#sjVCSbcoR7W%YLl=f7#p^wus^de ++z?wRDPOfB*9@<4A&bndmC;$ZNmKVG7foIaHF%j$HddfmRLstIc9lW;@XvE&}W*J~sW ++zaF$~*`2H#vUC*A0x5$lI{paq^0elv8rZJfwDU>Ympwss}50g2Z+&NSnt>YQ~NNn>x ++z9C!{ph~|K2IN4z&ypBp3|CFsL ++z90;UFde%#B2r6@%Nt4oTq2+@?i&^4maAc^bJ|Q(FFPg~J}#itxB#dZ ++z#(PKqP8%gv(8`^yO+=@vr85p7-a$pMNFvE5A@FQ(J?9s<4AB>()Qd#6r26=QOajtN ++zA!%%MhVbZtj*!vf-&WwZh;_c+Bk$wZvT2s_w`$Q<1&7;SLcLdtLYlrGi5NN!bQZKG ++zP|_EMRYC#RXhbV*d2&a!U7Mn(e+wdc`j9DVCC5D_|wkDx9O3R}@m3VtZ ++za`eHj8yQBKOdcl(wSd?1Z@cARiShplEG;xs0-ZK3pmlzL#bcz3ng82MIfRcXjpsc%}&3edOS&mUKBa}z%q{Xjn)*Y2hi6$8za&070|0~ ++zp2Kn=V?9RgI{Ex42z~`wj{X4>wMLkb!D!kMCo;;w76-@%`S-rB5Cwj$JAT6mAKZr1R8gPTb ++zUJr7bCJyc#CBBa9`RBqZ0ih2p&3r`gm3FFH%Z8f+1JVG1xA44hi1m?=ndar5ZT4Fr ++z0M)7HiFJ>h!Z=9Thy&t^gD}%SA70_B+FXvHq=on8ylz)J$k~6;&g}>Yvxx(HEk~J# ++zM?K{LX-f70+9l# ++z#+W6e{{cyDL;YnyWgS+9IzeeMQ>hE;ul{#r2`1X9eh&?RWB;h|i0b)P{OZ?4* ++zeRvedwJ^o|3v8%tQ21rq!{aBOzBYXKg ++z)#BJq|D}q3#j@J@H!d-I+N2N&c`sw*sY4 ++zgR*P8St!jv^URmII^LJ>!Ay2h1CGl$C<^tL`l#Kbhqfz2>6h0ltx+BcG9vUw5smxBc ++zcEh<4`*f7)ewh*E?n=*j#aEBMaCH_QU@{@z`#;jP*TP*6Kji*C@|22PpSzH?{*r5o ++zSy}tkNB_1Q0|0R?#bJ+XP0#qo5GEP0sLtVhnE^e2nKwnM^a2oWE)tsI1d^7Rd`!<2 ++z^1!1sN9ZLX$c!GDsRtnOeeEGD+(DuFSN7s|n ++z239#@Z|Qhr!)^h ++zGcQ)guDeAnVACF@R*roR>KcG ++zYB27G<{>k&byP^M<{ZzHzp3+p_<2qw_AU=&B}fIpi}-q3^_-74JdBe0t@khY0@+9I ++zbg!u}mByp2BXdLk%{u{>T)$Nh)Wr=vpibR8-7kMfSsO$E$DKiSru`_Ni?@7mEq#Jo ++z-6RC+4Ej<%{UKeQ@lQ*R{|*@ya5w7Lh)c%G0pyuFIWQTm(lp?QH#v5uO=#H?`S3_5 ++z3iB}Cp+7Q@{{`3PjXK`ExB(B>u;a5$@Pt=0D^+w)#=N%Oa2n4pk-uM7JuhcFVJ=gy|N&EM2K1X7mjH!+NwBW9FaU%NM_;_DK ++zsXRWLn^};v?=LiR{hGD)7e!FG=Qp ++zIx>o>PJQ0`hm3U|w*OyFgKWgj6v#FJfYbiavwa_Od*&ID!>r?Ne1e?$v+{4(;!+{t ++zoH{&VTgr^u5kA~v)VfcEm&*D}0>*yG!mBmDXH)Es`*@1kn*r2D6sMeh_2*@gmt0%E ++z)=7(~qS?WLmd#MD2#v<3im7ms*LcWvMi{S8cD(s=?}_b18uK)o87ULwGgUMZ^M~_5 ++zFJbnebX0l-3{>SQaW=HM`b!nFM&n%W;vTR6V!Kip_!jkr^7XyBQ`dGZ+5PTlst3)z ++z=&wG3RP0#>D+YD=_TRsu|K-asP?t-w_TMww;l7mcy{>Qof4lKlH>F;1v<>cvXM~7e ++zJ{^F~dQEf&_52y0*#l^{=#CKOoPv@MvxIcls`$73L~wUs_?>z>97){?>`31Jn0EzR ++z{NyIRYXtpUcno3tS_bWaxf{NJY(akY;>UXIBacl(4)#+5+Zx6`Qk!vwvWx&Bz-|lN ++z`jqh0n|-D5>nIJjD2^p-&Q|PVWPqf^#^kL@Y-*dfih5-KfL+-*-J6Rb8Yf5N1oL ++z{6k3@uKQ1$a>c8sKffLSy;1P1mK^}!R$v$Sy&5=BZWziEZ0(pYJ{S#wXu^$JNp(gQ ++z1i*U2=(z1d5U}aYOU5idNHR~`%TA)kOX^RqL(B1c8%yxC?QtSunFV~e^W^cSFD}vq)}RzG}}oGMJ&fr9kgBwHhg7p ++z(_R@VR(1wUHtQ|%7#DQpD}A2iN3$tJy5yN+`8?_6;J9!F9`<(ME)yn{Uh~n ++z-E+i503ZFHtz7=aR>&SXTO_IC7iJDeSG9CDQolOMfOjOWzh4dvqs>7$2xH3zEU@6J ++z@_pxs$EvF>J0?MYF!7$%S6A4MW0*}+A?21T2(Vi5o{9b3d)j`&_*{`oC2unqb^*SX=> ++zy;%u#4ZS6fC-HJ{`F|^kbUKYFF4bm#HXg6c_IM4k4G)bl?5LU7$m0TFm* ++z;NGzEP7EjPj}oxq)3XIwW7$6mo?BJ~O!$Ze7x3=Zt4d>p{h16^quFo_k@~vNov&R~ ++zl*BD>`Hsx)`L`Jta?7K-|0TzkD>>(Lx7p&$L!_&`9_tA4KW552BN<>|Fp{i^R=PVG ++zONQz!ijPjB;hLCoSvz3(&^VNQrqZ(3?%lDPHSCb{MF*I)Kr>BXqJfGP!MZ1=FI0+t ++zU6ltjdLEhn`*-q_BUi*vZt0t{QJlECzdjitPu+tV=h+YAT*YYfwB3TBvdKxDhWjZy ++zLROs<)Pt&SufDo50e;)RyDLe-G_T`A9q0F#Cy5gV2udu>b%ZNJNG*4xU){XV@#FJr ++z_N;F&7T&f;n6rSbI2D0yv)lb1Vpt8}rhRO>0929%!1>Fj*{vsuAv!>J(lPnLgN7bU ++z!FlQF^U5@Bree+x%^ULNn| ++zbGgG&zNS^mzf8Oje9&$D^^22|e%^jR4TtK<33|vNaK5qVac7U-CFwyjYzci&Qav1= ++zwxjxoKAm`nSBnZJC+CxW}+4|WY4 ++zVODFns+4>~%SiYd#{)u75@2MnKR$S^I)&VbDeKOmk6&71=U~+cGGtoODy{v=5uUC8 ++zBPIyr9TQjmg5`}K85RYh*Dq_C8ysQ7ckEX<1=0kxXqs>NMSG=4XOu=~z9leypOp_D#3I>F?6L49+&LGLmk ++z3kSDKYip7jGh?#E7!Ke@0Yn6Ao!=qP$qCEr)uxHHI90Fd3UbO85-5+SY)H@h@ruB$ ++zQe4AMnsklKstzyHY~q0md!Dyl$)epWsS=)UxTyh9s<^H={0o6)t-f*=Hngv ++z2RM8F>7leG^~d}=RSVs6V;_ETFiPclhK@|i(rRgSUHop~piLFXTnusag|BnB1EfrQ ++zas!!UM-|Kd&TdJ5!XN>W!}_QctkBw(LNK5!VoNvt9Z%EC)Y#VB6~bOs ++zN1y)8FNAHLU)mUM*dG+uepYwvm!i9r62twAnRcW~Yg@uVRiix%p4O;^rn3q@>-4eNW2{D%c*7r ++zRSW5=Z$GPtX!Y~e%AGKt?p&td{OD!Dd$V_#)QG^+im_VanOPyH4R3A=VlOmpiN ++z78`B9L%eS+ERf{`GitF*XmUQOv2ao5*kVti6mPzF(-!uAr^|*p+l9TzK2+`0zCWxW!AM!rO ++z5=k@&koNGBSM)_>B|67zxphMEcv0)DegjFCK3=+&$Lm}WaD%%wG5)5a5^UH|6LD!r ++zJH~!29U@|&Xx-0ipAAg)P{ns4=Sg{uUzaI*aHwKErWfUI4j ++z8F*WvqBzdaWyGxr*Lq|emxarbH_K!@r?qyi0kiRi(kfMjiKHsz8rBfvGVpqCiC=0b ++zL#>qwR1k?E+LkIX4V#P&k8W(FO?;Gbt%15U@|^A(fk50LUJ|GJBrx>+)Nsz1BYjkN ++z?GF$zr@6~{?^SAP#<%8F!=A4=hQLZ$VA^MtS=NPhpQ=(~crTL7Xn_*Qb%s`K3OlEG ++zU-CtB_K_6WOgu`>7NeP!0RTjrdAyR)JXWv^7t!}KhIC59O9Kwxv-@4FZ6RPb`AQ3! ++zq7l|i@|540;QRxuMc0l1@*lGl4JmzV1B_Ts55UG1>CfDARPS&V)2)%OQg!KqVbD)* ++zb1;S~ ++z;YhymM9vWn-^I+z9M9GJ1lew|eLV(Z)hl`iAMDCIu$*jltb(&ueOR3Yuf88Ao;>VU ++z``Dxbh0_i8U0i7gYDQ-Nmj)o=A63!eI-*1&^P%r`V ++z6t}R9$M(R@d0aK0xk#p#HIvOiUY+#@(J!5ehI&{itpj$S2P>ejw;$K9Jl~}F0q-KA ++zn>A5o42RU#K73K%N&9y=yy)`SI|*FTdiO$(&J&<<=>RjXuJh7E8#zmI*ZApbKCEtY ++zyII`FFKafPteUbKC-vO6`d-;90PWK|=FZ)D6q~=@V8*sWUtq7cV=5Ct_ ++z;-Jlt>|T)P#ban>eI=p9m*f|3F(Ul72$`P1*Ktbr%`GPpV*8785N~67=%@$B1N5*( ++z8hoeCH?zSHM^I3Ihml1N`b+*<{qXDVj|l^fxNpSN-@Tl(7h#qTPqCE${H9d4B8o ++zG?7D-rK*c*%b$#ds_J_GSGJ=9w|zxs9Yr_W=9z#lw=~Ia{8|VCoJJCKW7g)^)K%A3 ++zuKQz_1z|pT{UK(?RndA>SCxGSh5IBG7%QfRkMgZh&Zy-6C=L``p_*G|n;mqpMbr05 ++z&bfD&R>`fj>a(L;>SN#tNSTT2&o%bDe}qjcz7?j9c_CSPj^&vPTe-z_?de>6@#VgF ++z2xkRzhxZYMOW|ae^=-WZo+rmw>h5zlkP=px?gP93OeFFB_3^rIYt^dX6_k#on+krv ++zEjE=jyqyt|iNOiiJruo3{nc$Ep~tke{(85AfjaP?w##h~bhwmoVhDfO9v%Vq_*TDo7J^j718@dMF5Db?sTl9ym4?L|@#)}bVzIeL9AdxPu&zrzC ++z@0ymBX;)*w&f((eB79L+DKO9I$oTgS!>3J2s`_e2Dg}=?Ca==g*S;Tw;a&G4$7cI8 ++z<+(1y9M2M)R-Z_P63;<@u3-^Wp58cpoOUwEoldRm+XQzwRewk;0ZI(mBxt<%J9+V9 ++zKz!8AX~~8ziR81BkW(Y&=Vet5b1Y ++zmGkpoI@6}=Z@xT!U-#SE?trX@-@7d^OIm|nea*&;j+!;iSMbJ&9@=Q_y(N59m`khQ ++z^7F*N4c?!ekg$uYl!M8={Jwdw_eCn9TS^#6YNFp-&;f-FTuTO>Tak7zuSx1sLH55} ++zbvL8Gk;*<&=DXAkLy%Apb-Y0)xn&vHae+_Xis|q}e+{^chOta!zs5z_S;rEpZO(+g ++zejt#Nl-;6=8%j%XMfq{R>!n@_=HAv$X;d_L#qF@MdGfVOXb|;fR`&Kwg(K2N0UkeA ++z5XdO%2Sbma9x~Z^^pUtxMANA**PYB41@XN%t*Im#V%=RT(s-x_ROOIcfGP^9Xsdg2Y6`r=~inHhskNW!_1b{^#G ++zn=ieV>(W(J2`Hy&JBq=)uSpz;D7KOx0|HR~1*_o0jHy4#_L=Oq_VZJb>)7hxc^&U?ABY)JYq3@gJ5u>QI ++z_x(Yu(Ozd9BGX3QLf!fg(ZMBO(y>?Mjpn&e;F)G&zc`sImnM(V(r>`dW!^D551ImL ++ze(ZU_@?z)z`IKJ(dWehdt~90m_VQBapZmfOcBz%umyPtkp>k;qddg06f4W>~m3=3( ++zwkpy!2Mv6MPDLJU{y12(415(L8b3w3QHkS17R!g!kF&N&ub94(o-8QTx^F707qlqQ ++zB2YISH>}F?E!_7w`^N@H*V=jIUn+Dj%Mb6S6yMQr?x^+_nBsBBtki)Q`W-uiAok?Y_jxYGX*C_#wdq6`oOrkqEtk%%>8LHX?nB`;~A= ++zAYBY$xVESi$5y>^gVaxc$Sue9vfC-fmMSsf4$psRmA>LpRSxs8>+LrfrZp?4FTYGT ++zKddJ`wJkM`i2G8nK2~$SPoj{^IGk9oJ=h=YdGl~;=u38Zs9=n(+YqiSrU>)|(%18FRZ$Xf<_n+5J0*P`>fJvWw ++zxP(aKi3`P8VGK!Yk2sDaXxf~c_N7VQvl3Qg>wRN|DvJAvE|E&36+8pNuc%Rm+IUnz ++zgFZ7=z$LGO;IkJ)J5vuCn*#>?C?|_a~-zlH$-T_Kj{C0G=DoCleJM!iLL9%dTNR^TFVH2 ++zn#6d&ONdih90_u~)4hG;R@svIni_Ck2?0e$`yHEPtX*%{^jxN>Lq#LPN@?djd#1FM ++zJNlW#q>Rm9zR_}xR$jH72W)#(C`d`~zY_pA!G`l(t^<64>NXsn4*g5x9zD$o`$Vss ++zececSt>+Y!dQEJ1;&YM|CWX+M(?E(@*VL^cr6z4 ++zpiWQV*pg}i_PNJpSwGKR!c$Yffh#ccwalHK@KRfecgzU|GD`Q3ZRVRu&QmGAJ9 ++zxhfg0=SwDb{phq?)lFf~O3GD&8Di;^J6JGS0)YSp$h5KKJQZvkDAw4-Rcd)LC8*Y_ ++z>YC_8B1tTj*0C9ffuBzp_i5Mi0%RADI{#7r3$l}jv)kvR(tGAAdM}Tw%7|0FZ0}MV ++zE*=M`#{Dm-0ayO?Rb!|Nd{<(#yq!G!ipHq>WWV*GFEAcp^hB0#v3|&QwUDt`SWFgC ++zfB^{<*!C(200JRARFl)fVb;MA=Zk8t4!w@?V;uMh_U3=S2=YtxW0LihUPY#hbS#C8 ++zjL51yGDsqUBs9=%tqbgAh%P$lsFrBfYIQ?Xwfkxx9@9T`&0| ++z$|7&cimb{Zh6oJkLbGT>gBmD_1Of`O>EGOeXsr#1fF%KZ_`+2lT)41R7hTabG*msS ++zUZ?u%uK5fbY;XVTra(YJKp{asN2?^_l8Go<3N~4ljwMwi8N{JOg)Edn%0&`V`^+N< ++zaB#(9;90?)tpPXbm+B|CC7QKbhE`VnU{_r+I>ti)1`Ywfp<8l)-xM ++z6PyyjUmNmY#&B5@WJr)+Ar)vq0}@c+jzmBtBH!nallu|GD{JZvK~> ++W|K;X?x%ppi{+FBo<>r5RB`*MhXm6|l ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 6dfda6f60523e60fd60051c7159bc5d4ab092eb9..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 19846 ++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 ++zIu`8ZK#Omy?Kza22r>l#1WI%wWkk3 ++zC;*|S|Bf=1szSRw*>8o^C|@Z48{kCoobzn**etKH;Mm3!JdgYM=&9y!xoy@lZV{DN ++zPL%AlscC6z%bh`Y5cNE@>;TM2zC3C;<^|uvvXyVl^;~JiWZ<~spO7ZTQ`})e!4GpR ++z>c9z{LPn^DYPaF*z-`H?O>;4t)v@RLD!;z(ob-;zOvK6uW_*$x@SvokS{q1UQjDdc ++z@LR@w&I%q{?hTQ8rsqW2+Q5k>OlMqmrds__mPn4e_2Uxz`1jT(%tlBoojVTI`}fTA ++zEWq1|rDEVS{a5Q&vCRn0_<&O?C-~h24D0Ex$Ov>zc ++zf3{48kW$bp8X@Nx?P9=xFZR3u;hG@I7Mqj=54gSD`*R`zL8)zD9sO;QSPKwrW1|{3 ++zI#BKTG96EhuP6xjvnC|%g0c~#eoz$8?OBm4eKv9uNGkvQ8M)N{-T?#xou4nQUwe)A ++zgh{l|y#`{M?hK0lErzVRP@p70Y$Ju6H5;``L*A%$d@aCoo|f7!BMT94A2^` ++zS9erM8IFWbn}@_+?r|&_&boE7X~c61Ek)Etdze8&T>)^Y^B0+SjGYw!F}Ivfh1)K` ++zvIE3P3%aZ*4G-l5FA4Mu6_?~p%%lAGsF;|nk~{WtT|Q4-oeCJ%P6&U;54D0M8H9Bs ++zaw(5QP9h!!Sh`5p&Y!6~UNi{38Lv^1a$js|47s~n|71qka3suZVq%iTxAX(3k#$|r ++zM*5T{VkO?VB13A|Y83pUG|p$=}$hxJT ++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 ++zkce@5S(ETI_a9nVU#s(520{!Ot_IfY9kT ++zmxeBjwVC=Me^LP!Hu>M5|Jl$92;vkL2KvFpw_|AeMXtn6x;Yv69SNX3y|d+br@(Pk4=0Vcv82GRN)4Spm$pf|o8#>=%v64&M0 ++zqGM+@YJN*~iXmt_k%zi2h1CZdv~1&C3E6a@c7B!V5>z>3^%THC@+{3~$$$yAKAbj#7a?|<0QtOR ++z$|5?bl85KlSvIFTwn=M9Z{q3qw}0_CqO%@9UoV%W*oLeIo-B7xX;0jq%lY6fhGtjM ++zqh{(K3@8hUp#Z@cebCZ?NlBy`Aqsn?@O ++zeQ(_Pi8CUZfG9#~KFj}SPUk3gEQTnBN*>c0HSztFW{lOUw<-YRaT`Z8K(=m>>vCtO ++zsDS^VK+AF7!W!WW*rh-m-dLz5#DLQF^`oeD&Hjh`yLrxNhRj)tBFiS1Y#hg+tHa-Z ++zWmH8+&Th|egI!v-AjenikcHbt=_g-t2gd5F{kCX_&3V<`<(HtO!x100z0QcS+V7Ze ++z+ChZ-f>;!iE^L{4Vczn!_h*YB&?Srwu!Jc4mZPeZyN#GQNq&*!KSQH2Eue1Pi6cWv ++z{}lAHko`|G_)*$=gE<=`6+mN+9~k(~HV$09;HoGejJ75M?tZe@NMa>XAr^luz^hcD ++zpYQpA59bf^_C6QIuJak*S3}(3Wjb{@hnD|IBM_e9) ++zm!!l&mn>A#-v#W5!wdIm!c$uNZo)2kT$QOk$z;vJ ++zz{(mLZ%3b{xzAAkEJG<@C*x6u0Cu_(LX@&!Wdh2A(6xa7_01yZ_hl1+*_{&Lz7kkE ++ze3|)lNrM7$Dw+Bl>qBryR?4NPhHuknEP#TnZ4HYd8F+ZBSvXzf=+q)996#>NE5^Z| ++zfGLW}q!n=6cN^V(|4L9OBdVKwqL2ldp)Hn>PtWUJLQ~p ++zh2WABVDsbChXpg%ERnt)X<;(_ogafruvfghZ4=z{E?{%Qnf0@%n6PiGIJXkT;jH2E ++zkkM_h3guxM6j(@op(jRlKyVscR`j7E8mu(>nZgc0cQf4CLCaK8MIHaafrFFtgnYsl ++zuc0;?Kw9g*zrL|?ArnxHuT6l^6Debbk)RiVJnUsmi|hE``!_!H2!jbgVqY<8pSn^p_rKCkGijD=>QPXP9knvvS^S4|4?CW{{zX ++z?LWrLX+I-|^$xK`^2-`sL}*l`U=kqf2Xs|FCfW6t)ss~N@H>fX_Cc=R8YtQNnI6Wocgm)H`hc3R3UmX00 ++zU;2as&~4M=3H4gNj}i4x;be#{rnxC8si ++z_XUvKxlP6=TqjlfaMDAIo?;xAB?+7r&HY$1NYx(-pFVTOYqHOp_0M%dFXK#~NJ3@A ++zpie<@)yaH>tA^Grg?-UrWKdrRT05U@#d)Xc4yStHwf@ydpuU^6}uHIs`?M#-5#ujq>L ++z3Wo4bUa8-jdYq>%j#z#nas2H>QuELgd~I@k9f~ ++zXSLGDvP7F?%NpKrjasyxI8f+C+vPR-=7On;2N2{vS5(BFhjXhT1FYRUgW0c|PXU7c ++zu0Dn4*;;ZGs)zq0)T)0L4F;BL+UXNAT;qA;=f{NiNmT@4=7?~&Cc+j&`hv8N1Cnll ++zSlm;+^)o{Nqd_o9+<+CEU;kLL!=IB?2hBiNG3KJcW!@?WLexqXFw`Iyuu?mdBF(6M ++z-N)y71(A4N&ft?K$Q>raCSuMgkwVmR6dRe>Ifw0-KMpU?d6$Jdviy^VJFl~wRk7>0 ++z?LrqeH(!&*zFMDYe8i35G(ccgX(;fa;v-<^$e5S2ED;r3=^+~tdbNBRos$jjuH*`H ++z3z)Hfra8luY$3PWa$e~LnNfNmet8|j^)0Vsm=c7>s>s$*AoUj_Pe)3=zXb|GE?AiG ++zB@%GQQF6ozi%afW|?o^x-6)yhECjmd=qPNf5 ++z;q5F$oGV%XR>G$tC@ej55IC}W| ++z&RpQQH%L-$(lblv#1B13w60$zdVN5yF%)LS@& ++zB}i5y>f}#U-g%8|mn^vF6*rHSug&@3>c)>H&d%o-39t`*@dBzEJ){13<2P+JMC8@a ++zbZ@M+ew{uJ`t9bZ+%S0J!I`wur#}1^|1EMbOc}i#!nLa~hv;HzNEDDZTr)?1;!R;t ++z{f-D7)u)7p;_TdLNULN+!@{V=X4xhwaj)`mmXzR-dyj?ttu3w%8aNqcOy-wQ)MBEdi+-HwD#ot=RYWL ++zw3G>oZE1fd=xC-Yy;N~~L`QBGxloi>YU?j+6mV}4Lyfy+s}0b9Fa+t&r~}qpyqshI ++zVuhJoP{ZNz@o{xF0BuiikBc?wCiu9KSqj^K$`YH(5~t4Uzw9!)1a8(+o{s!Z>MCMu ++zBDo|Yjaa_s(g4AyN`hLAAPGjuH~a1z&+OjZ+CGN2+|-+yz-OP3=BKBFdwP1Z2%Y1qmM8y;3culBDi+Trf#iXH ++z$@7QJ%BGmY93eP($+ntxH!#_2@||)~W@p&)Do<++8QTD^C@%R3@pL=^Vo8kUCGqjs ++zT$rL_Xw5I0ml2`M?pdbR=knfY3Gwv`<*{Yolf+!?-5Aa_hgx6-grA9F_E># ++z$143u!$37rz4XXmm(xKnTBjVIJmws6Q!4wCz{)_mL<^5AFEpBOYiD ++zwXd~7>dLqP$rc%Fti9Z&B=L$piF ++z0?fzoyHnY48`+WF+^F?U;Xi^Ku4@u^L$=6-s%8Ce+sYFf{wMhP{r>M&A9)`(`!HUd ++z1JKKP((}mB-PU#`F!Gsj#wM`&c(5;vRs0CqOpR*s?>5G7>p{xlccsX4$aWR7rD)tC ++zhcTZ&IcAe1F<|I~OW*wKPDJ0pb@;Kz(i+~Dfvkm=B7F2nBj>yN$M|?{tPteJ)L-A; ++z9^}^q_N;y0$RkPW{cm@w)Y{wIyEavuJi2fjCfLl|Z26g#Eci)qq5n72a*$$*h{9ZW ++z*9qPv*>7;0s2uXm_{r)wnP1X`1nOn^JV#=Ig0lDg;^<5sc&?cg ++zz8@>NLk*OXmYqyz3kq{#p_4q5RQGj-_j0?mY&c6l4JX$MKId{|`~#zh-zkJVJ$Gin ++zM?JZRsmmIi ++zOFw!~&(n=VJoiv;4$nqITMc$()Kmg2=t9|_Zk%PDz~2rtawzJ3=bH`;46lHS^glWJ81@SHRo`~ ++zBS$9vB^hrd^-e2oc{TELV{ze8p* ++z@-qDRgkJxF{J!u$=FKX6v%}>+DKSU-5RUyz7l|6IO4SqcTmk`jV7uS%mP7AvpK-;V ++zz9{3QAd+MOWc|Te?v@QLBR)sjJ}Iq>l3Low=7H!h1)amY#&kVDb+B2(Npa`P)>i-f ++zh*;(g$AMYNC3m?aJsmCmjMHr;oSdGhG;hWlEfu=J!L6P-f-tm=zgS8fuccl**xj>Ht!7o#nI6EI!xox7*v0`FN{6)k##}Wyl$FZ- ++z)XnJ*_z5&!K6|OnzvKa50_#5cRdIq9-B%K=XiK`9qUQ#kjK$@-N`uVE&y2UNd38aTUmMA=L`3WXribg ++ztvmvl+{5p#-kx4xUq2lcJ8Y{I3}ZA6cbWg1kKee5L@JSi9x&;fz}K#RxDh&ELO-eQ ++zn})`)vW3|;u+TjSvb@}$_{E`A?3gKIuD24*)gnav3QSN677>mh&N3($EZWJ^(-zF6 ++z*a7M!G4ghOI~R|58?rpVc?dIqxGc$i%qAbAXM*!sR`&Ma=qK?Q4ky>S+E3;>xI;yh ++z{i(4a>k^x(fuLnYVPALFe2l ++zFx5G4FiK|B0#8t!3-KXdp8Y6Yn;$FLr==_2e%FyMg3k{cKFrXNbkDNonmwSa3(2h8 ++znCjl>TqY+cYa}p9eT~YVwFHW3MjEMZ4W)3h-E^U_DV1wJmIQt7+b<`z|Jb0Xx!&UP ++z{?k_DjoS7)|HNB`@WeC*d?XZN(K1{d2vcf1u~=I*VH-I&eY~>~ZZDG;%&AOm&u=?7 ++zyq>QF5E8J%?hM}3aGmcA;YwfCJ+8R-LQC@qIU3$B2frsrQYv3|e9&jKILm*WcC ++z5r09T2i)!dZN53epT*jc`Yke9!AE6xd&5bGGpw!oE2yUK;A^@&Xi%c1Y?btZNMEcL7&zsb{3Lz}JuEDXaZ0*g0t^Kqf ++zd}qG`U0(+)_WamzIJ*e>ibgxWXu4XJrWU5Y)7Ipvv_Ww1H4~5Gl6)JNQ`B;#6*iZAj`SipSJtK%aZOZ>CVfOx( ++zTPrrdeH7dr08IzD%L5|=0NhF~!7`@V1VoT}XP ++z^T8nA&mFqYUOaqEN{T@uk(%LCzha+7KOehYVJAZ#m5rqHM}YbC9VfZ2G-xtZZBxmn ++z-z1tK}HtOV3Wz ++zP+@bHux<3#NS3h5N3q(r=OvgQ0e}@UJ~6*Ti)*YG4SV(|Vlwfmx@yWmL`Fa`I$n!1 ++zT1Pu_oPpC91$W@Aaxp)SE_Qa2rMb)=E$Pr|u>}9A87Vi#k{~dHg-mi)|5AzGZ+yue5j4N{RNn!$P ++z**FQ}c93bD`9tr%;GoUENgCLac~GX3q=}Zad)1KcuaUS>IKK_Ba&s#um>T!_ToeXWp+aXb`u9RcuU-7(e-?7w ++za2`ISy4L%cN0#HBlCjDou+Sz_^yWgVKt90xxiKayP5F8E?S4(Tv_q%s{MWT?A3njj ++zk{8`~075C|BI}I}Ts2BN@3=WP+1)c@d-+JseJQjdnX1; ++zh_vJN#>pEZ@hpj(*ZfNL;SY-~nJpc+o`A==C+P~3w%jT=in1T|T2lhZr ++z=bZixIW0trtnSbGHfaK#lW9 ++z;k6Qhe0BTel)GNKEjOb+8;}&I#_6M&-;0iADHO@g)PLkvT_tQCmqEsS&;gZ+tPA04jL>K+;9PF`vba3G^6i0BlNb%?ezeXYUx@ ++zOpo|nn~U6?Ec#HY)m%QHuXxStY@)EyjJL|VVs6{@a#_Qn<)~mW{#Ghc6WC>>2ZgcZcj3L=OlRg8|My9ZD)J(!XkA;rr$&Y ++zRC0yHbmEG+TwZhHZ3{nvHcwtmCwg2=CHw9x56KEF1cEJCNdv8Ee+NahE#nG@)DMN7 ++z4;I}zl%TZ;4D0V7O9$UpXKr41V+l8M?u%6tl$IhbR?pQ8&XsH5{~y*}prlGjRa8_| ++zh{Fr|B1!m}{MQpU`CK(b;(oO(%9^?6#|zwg`8daV8R)i!KEb(l$Bm0Rqwd6=55830 ++zeg7T4I4F{yO6d&)^#nz>>XV0Emc`>K7760L;usD5rx4^w;d1I=LA*02NZ3^Bx-SUM ++z)q~|k%jDc*;0B8lwYXmFTAp-|O8)TP9*rCJ6t#aP{GyF|yaeeg!NwtW%V_#qK{rH( ++z3Z6(uV^HQH7Uk!VLToS26C-0kYN$^vaf2HmoINU+;p)h83ZI5p$9P27iYI!3v&RTT ++zq|~0XA=E&D$pamntMZb7%a)gdlHYW%9&Zw?_C4ErjVWhJgDL2}hvPP4qGU&-VM2p0 ++zXAgB=2YuM`QKulz)Oh?~n4Xl?5L@YQcHJjGGX+2V)zA7<|FVxgl?d^N4{;T=`-ab= ++zF6%pX&$wN3(32z+bVx|>M7`zs@p#%1Sqf|DkJFPB02Jy3{zV)h|1qO*!J5|(l;CVO ++zVxdOTu#x`G)$?h6Pu6;h%O!KygXggX#hl;@R@m6xwcV2K#kt1HYx$2h_wCgU_{G<- ++zciY6exsq?0?dx?viTzL;uG1s1OD3ioSc`n^<;WffO36;HOaKX+nDhvr@@;X*jZ ++zxQ9cr8r|aMejLw9QbHX9fp{I>Nf_IMwfN}jpPdWj5^p40VQWquly1}Rca$6%8QH8o ++z`1uD{cBhlv=Iz%H-}iLUQj(pgy^;ld^;&yQYJ^pl#hLUa+SCtBwpok8Z9GUzBsQ4! ++z5j1F-!8fb$!Eb;>LD$a9GJ{h|3J4sXcxab63y+dhY05*NXR?G``u$Ajry>t3)6VD} ++ztMmRXc9WqK-6*=f#)MkO@~h$&4*XK2K!z4cs$GgLyR^BBYmfZ}?V`M5AOj)>;n=T*IX74?JET%(Xy}oPug~x5a;>p^=RHMM?> ++zdJ?MwfvEXs&6IVwdCK{Z=MU=KMvg@_HLhBtxQT4AE+(sKG=GQ-j4M$e)A5pyx^ngz ++z%jwjGv1^{Yv_Vn|IQOlzu-XoS$FnB!7Xehnq@R6TEjBX7bn-c;RhZ3du(c2ICd{}2Kg@r3G`x)&M1K=DuUfQW ++zhqpnhVFf%{igRpDgsG{vE{Ycilf|lW{}VKlET{tDFVw?rttrc#<3eutD$0iDy~D!7 ++zbT-!4cf%PLYn~DTUzbpY(Bxbf5roS7%fxX6|S-ML02 ++zX3}3fJ1Ko$9a65b>OfbyRHNTW-(j9-Jtt@O)iYWDV9^^lflVE6gu=Gs>4Xy1=^o&$mWmLc)Gwx5!r?th-5sMQ`R39MD%}8*F_YO@EPF2efnep-y7K7y^!T ++zd&#%k&m|vgrrADLFhAxqc{t?!eLqWe)V+85MlX?EgVkdCzy*ufPbUw4VZ~0tfk!Zg ++zulHpo0C>5lq9S2(fe)XUTpy* ++zT8Rs%oD{=yNEi(>mr@S8YEIAeUUd0ptm)x3{eO;9`M_z8koy1VX=$%cDve4#8*99Y ++z9d6Vz3g4>$O1l7G2Y4Ue ++z?$+q1Mq>NNr3Vk%0xAn}Be}c=tcOIw`l;#F&f|Hl;SQ9RfjGZZeX2xW7rsCZ)+S$>UyoS3f#%~+R~^I&Iu$b=r+@xuT=qN8NvBcr#GPn3tjx|@Rd1y5 ++z1$b$Njk~=Y*YaabERobRgTV7&y!`x-L>9R#xM~b3%SQ{2?AyFAT0736Vo}#pIn=Mp ++zs(NoOc7#7H$@Z?&EOa`6{apnqiEjb~9DUiw6IhE9%hiT-DT);FgY!I8PGV)*Vy- ++zaz80KtdfN~tr4#HKTYjtcD_M8`%Eqz!}FCiQeIE}9fYp+)Q5+lS%QClm&MG7(HkdZ ++zL8Om|T${xj-NVEkHaSCSAMW+}wc`sF`ZRml&Vlmw?mYDHlqVPJH5euwf=wFWF-f`i ++z8|`SvLc_~aKk=VEOC{f+eS}Ly&8JjmI9;yCM4=7~KHrR6XW2@pckgU*F(;sQQ{=ff ++z)t;LyNq7wAxFY9+?*CQ)WA~hPORtRdGEzfZJ@im&EOfoLYjVIslUP)ygL;Ussb7;9 ++z|K81e$yV~Nu=K$b6>wlQOT%^se2b^-S@m ++zAK1nU5_~*7+a5E1b3gG>Vtbi5yv0Lg4%2dN3sIYpFeb6J0u_1|&l_&PaDINqYJ54K ++zdRwo%uwO?MXWJVG(?%;4d84BBMtjkJRuI%6?@Eqn8Sm^5^w?YGz(2N%ERveK_pOnl ++z=lS~EA#MjA(OFumk@O%QEl(~^EcaCH*Py5lPbj?>)cQ-Bu&ttX(?tfhrGkh(+>Q{l ++znn<=0Q;$_pPe4CT85YXxN}iRHy>3Y&UvjAAl{$^;bFXy0iBoTwVxTKdApb-RU5s+# ++zht8-Il0+gyvVTbmihq4*nPVVmybmWxZi*;;>rRA?8jes15R3m<#@}<$CY-7!Cl!*B ++zliR?*&EfiC<+0qMCI5ck%9Z=aVicOneJLqo&LNoHsuQ}$Yf4DAYo<;7O;&}8qrNzA ++zmL|v2o)3z(TBE$}SIh0a8!@5>r_&)D*Vzg2@!=T)=Euq(+06)?6sb%@ ++z#5ylUB_3-qIo8IV;qpj!V;+JC3bxcVPt^}PlJgWoGYP~)uDxR}&tm>FI`DYy6!$Wb ++zS(QsyP&E2)0lk@K$D6+KqPvj{7?Bhcq${XTu+{e4`n$9BrwdpZrxl*?lafSue$?Wh ++z5oc8Wo3NlJy5T|?Yz!ZZ9xj#|uo+s1(!Lz62G1}(iy4~Axp%U=-8%-=ht5#!Ba4T! ++zseeXh*zTU;ZW$C ++z`}A!bt_EfP%QCElUWyf$tXjIJX}Od>v<8sLJEK7|2PE3Ca*3mbxh^w~XiD#n!4weP ++z1HopJPC|iU&GqBhwqUEYZMtv_7Rm2e;r)%|-AQX(*+HQ$S}8q@k@T6s6qPpH ++zl&_d}^3!XCm*U^Gm%S!L-c6T!U;Iv%^Cz*Dw>Wzw5FKa0puViLRL8}(+H4_g)Zu?t ++zC$hHpx7mYNB^+#(3Q(9GThI{k+mqy*ag^SjPJBy~lT6RZ@#C6-f ++zwQwlqG6=`2!M;Q!BznkJ536BlmoquF7ikWO6@h!xEuntB<5hmezqpswqP3=R)vj+s ++zMU8WqkE1ic_}T8RH!+vg4O#}@8(oP^V7~DN5Fl-hlP?Jm?n$33CdY{IZ|6Fq!e9ax ++z_3YfrSi;u6%22nrr@+@XSK#nRb@k8$7~v+qP|YTefV8n!h5s=M@?F3x5a|AB)PP ++z#7eOXQn7aJ+Ku+_-+vy`-ima_YCk74fmy->a#f4Yg#el$UhUK)sDi%OJr ++z67QUie}d6IyWs5AyH?1%xDGEmFMv8Q$ZfMT_E)TPabw)A>UOzf^fN ++z8(ZK&NkBs4*X#n-3RX;z!ZD-G(1)L(yC=$@c_z6$p(D8H7d-@tE-D)IctK}&=-Bwr0jXp3y6FC6z)8T ++zhd(Y}hmHF}VcM!4(09ffXf|{n)ao@AzVVm{U$pxP%C;T_MH>%>0`>b78<1w7G#Ch< ++z{V)Q`w)rW|uwT(&;9TfVfIh)z8>}F5>_EghD$UTtV}s9HYpxY|{r?gZ69MP=w`|#R ++ztxumm{qf%5J!1E&47+y)1RY*G_*INexU!)r+yjyx$3(Q`m$>yJYD+gax9Y1`uiiwW ++z!QVJlh%1Vi4u#BYm`}t%c}AOX(bw<5xhuCI?93%NeB!);9X)vgA_;l$|9QiHg{8AN ++z76PAMV>}22BQPeqBqDDm_u@OeCwOo09y0x#5#A@`52Z%%WB!G;ed6^mdU|>e!h68${Vd!rASDHr ++zp6u)%+QF}p1i}hYZl)!vBqE;XD?Sf9cx~|-|W$y_r|XGGe8pYrBY!uD4Qow ++zo{HJBWvk2+VHA1%`s=T!2@(Fo<8^SZNJs=*S4`eV;A1fXiwfc4;s5#j`=1#xV#H58 ++z@bTK>HD+30==F062HNbBCxc3*!f3$f2BnE-`T}(+BLYT+YDk2Q8#f*&(&(R9lv ++z`c^29J|;4VWe!Pj-(pDkGZUy~OzrqXFv9 ++ze60FVg2|!^SefAS1N35j`}Xa(Zr!@y@T{qG=gt8x!{p1Sd@KJ$B?1q6ek&55_*gl^ ++ze#*gv2a{H>Uj4hLr)PiW@%icw%AE>K?v!BHI3K&_cCY^qNgytl@|B_jEHq;|?sJwO ++z7!aXZvu5oUEn2iLARyqz$&)AFV8YCzf>0v86@cbL0sU*@?E$?#=0@bRzuviX=gox+ ++z7yi0k`Bv{maUzX|?b7g%DC+9zO$u9`heuZi@X9{H!Dr9vV4vpV#@HNXQ+#*UzMtB4<{H%OS`Qit!PF7|jv#=g(i2CCiiywQJXIIc?gsIevbA ++zAv_r{aen;xF_lROBHoLN3GpsSA^O{Ih3^gDEB+j3^0AVGpg(ZnKmyVBAycMInOCb; ++zt=0l>Um33jUXv``&V9VcFD3wf4t7nQ?G>K)M;3{Rz(<45MxPpWkK~c4C ++z-MXzOO`0@g?b@{mcJJPOJ0c?DFI?7#Ltoel#S)uapJ^Zfq{Xy@iTaNdCjU*r%oG|)KcK%XJ((hBCF-|8o#Il;M>9f9uuJeOXRSA ++zjWa7{G07u9pz=sehLR;qx?{_K-n@A$iBt+kPz47Er{Y*PR!wlB4(1QI{Ex{dw6{!p ++zq)8}&lrm}J=ku?_UX#8)5)i?TNjyd=Ok%^r!czC{-FusO`C#nS_UhGZaETHn>hqt2 ++z2R-|Yyv!-fuED45niQ}D|HCIjc2>8}#~L`iJfcwnfq?))Ss-Yx@r0;WtXMI34-XGd ++z^s393FWn0H>{#NSJ$r8A-^TZV@1CCJ~Acn{@3|2B ++z3}Vo`h`hbMs$-7|X;DE)hHOkCvdix{8NFgQ$PY%6+B+de|NSW|C!r#@&0NoCD`yqHMM6+kP&iB{WB>p!zrZgLO+akhNRk9USJyq|$v@zJ<}QPX ++z{!ak@Kil{HkObSRstZZNv8sH~P69yK_GU_g1ijq=VB0q@(cM|?F@QOz1hka%xCy#_ ++z3dfk?!gTjoxR5_P0Np@myCeB_?s=IbllGE)uq3X}#-~6+Zw5&s*l7{@40-{$NYXnw ++z`HW$Y#Y{r2^I!vjlH}%hF@TW>8|hS4cGRD$aQr*u&Q)2G92Sye+g7b=;52Cx0{O?{ ++zK5_l-uIFM2KyGAPbyPAlGafnrXdD5qEU$2Q1VyrKS5?=Qs3(zc{$oKSZ!P#a=Nzj4 ++z6M*N-062db0Pz3>;4}TpXFhX(_-Ax#lz+yA-Otj6UhDmDM9WG^N-576{~WacjA&h7m8AEVq?Fb~+nVrF`y%?Rl%$ji ++zye{}`_jR%GJ9?`trT=E-QGpUWhnvL$#FCC;|A#z2`@(c+J}aJS1ZUJUIUk_B7Q2p^YR-Qbh1)T~)n% ++z4}gf60RFOmEBuat>RUJg^ofPNC*{#k6jy`}@aEkUhA+Tk50&gjbpRKwJou!WfZCvn ++zV;@ZqWEN1#r=#LS)rD_X{KI;tZCfqLa=x`GcT#0$F;`btRWlxDJ|kvkW@ZMTEd2mx ++zW@gr5K26nF)x}v|mAv;}D`KzrTN^T~Jw-g0&}Np&$~JpEQOi<93buGDn62S0#`eT4 ++z)p&{+W@h*S)#9|aDRU@|0b2~8EIO8`Jw=Bsh7yy-ER&fB%4$z&GLuw)K9$ ++znMZW)eKPZ$5;I9do)wr97i4IYYA|cSq%!lI>X1g8+F+&tH~a1XDA~5H+HK}O@Bc5B ++z9Ok6NEnrTXK%K$frOH%fW{~Z#caEoR+tbLht?iawwF|nsZg({^Gjoq~nVFfHnVFfHnei}FbJgfBI^ETU-FtU!SR2+_|F~Ui?=!kj ++z0-rw(k$vNj7OKL>m09)Arf~YBTj+bVB ++zpXZsK+4=t+d`nbZka769a(t|cYq!J09XgIG*|@9DMCwn%c{mq{fa+3DwF+qQaSsxb ++z5Vl(nP|{^eOpFa`O7K9%dN~WE9yhe{za99AD`rbX`~_fwcF?jVLB^Eh14`Kb8Iq)5 ++z{3FsRbyZt6#@e=RoNV(n$F=ur+qP}9U2WHtGCM0Xf)cH5ha~C!{y;jbvg{t)-r3sO ++zSkKB_+4k&g+g5AbHp`6oBjU&RQKGfYkfgm4$uisa*tTtZHNS0Ruf1(+Y)_AEPot{4 ++z%&e@)2nKE&DRPgQ@dp9~&&UdK0tkpb+3w=Rg0iyPv&&<}U`w@V6dWA)Br9k7cPT&Po!RU9Clbqt-zwE ++z*t#YrO7lnxG3nAh0m;+|NGu?mk|XyMR01c#7Gp#1M_0jd=m4MR?b&g1gy1Oot_A@T ++ztv_5Wg$TebeL&qD87ts<*_>H9=EW0pqoZ ++zhaD!xdETv?9VQwD(~gwv ++zVU5+lv#MZKn;ju^+305Q3PKY>;XtMX0v8C-h08jwZY(XR`zkeWrL0scbqMF!xUNLg ++zOR%eiXGE}FO6P)ifS4*jh#yo3i3cVGHIIJYq|xZUeWlg_U|^WBbQ}$}Dx4rD1JY0X8JAZc+fC4iU ++z1pzal=B;`-N8PkCr8Q7$MU6?r8)b{7c2w(ZY-@wDT8?%|nnA1i#rmBoeT;NuF^eKH ++zYO#Jj_NUqDGnca`!&U{-nB;P9>->Y{2v4q846F ++zqwP(@(e0*VeoOU^H=S4XKM9Tk>0-ZVFbI%*NKyS%PcQ2-3n ++z95ks^+b>1Eg(;~ZxM?2%Y9MXZ87IaKQ>8HO8X^vFo6*l-y|VP|?zR2)fmN@a7`*y4{+IJO_IswY ++z-W#SH+KJs>P4B7yKiB4FDrA71o$+)s{)|K*RRmi=JWizgh52%u4#4@HJ(5o`ENQ^i ++znR0BK^o<^ZNhQ1eE`a?&7wvb|mX!=L$rp3+7=*-NUa?-MKFFr?;JZ7I9G>bY%R#h! ++zU<|-DEQ?6gjNMwCo4lOZ!7lG?gEKFqGa>q-jS%PnB?QO;$Ve=TBhi5X2td!I2|u3# ++zVq4HQY-;1AIXZMlhV=nuxg>OhFg0jB0HAaf5%dR0bBOTZK`;l!>{1bfE{1}uT&0ww ++z+G?&7w>2%8>v6em=u;?5W`VDN^`F4?vpf+ABbh+SwP55ppyus`wVD6b;Oc|5=I+xn8|*y3q7pe0(9hnwGaqC*QW^NGzo{hv ++zdIDmV24f&ned+IjIIdJ@`y50RplvMEj1D`boiR{GHP&#f24OE@U|r0@xpIC7`}XN~ ++zS5B9r^Q3HX;@jh`S7VIt8Y6SOkxO@A_HRTj`M={=C-x-Qxb=upXNBlj}WH)-Jd|Wvc>UyEl%7=HAf#XU1ooUL>~-kpWO? ++zF9u@}|D^7NDcoRK2!w`pfQynC~Bl3VWiJOgDX ++zR9G+}FcIGbF`!pW5IZdGo!=`aVGKNyM)TK<=kM9awuyYsq~*2OTH2ygt>|(Pj90pe ++z9~^ivd_6Lct;$WGnfE^LO^$HZ9iw#sAd6H=&^ACs{yi9cxb#HTCIqHjx`HZ56G}6D ++z`%RY3dBw#YHaPL{@~P;i)aHlo`qccV ++zzpmEv&QCj}ic%ebFXX`+DZ=ZaUe(C}EUwjY+Drl@4(!(lcfZTT>uO*2BNXjmbIOP6`yWVxxwWZhExxBcSN4z3lD$e;u?p6Src_Wvj ++zGbA*A_6m#J1vqW!F%KvO9cJnPYX;y7k%1OqHiM_Fp^xVcv+`6vv7eg#nhHo6v4Q&+ ++zlqA)^kpJdepe@h_EbWagQFMs39WfH3LlD>*p

B=zP))D=>d!%~M(C3%a@B=L#OR ++zQ#s6ue0}#v6b25kQq!q#eeTG92Vw#u_wk&+DcDKu0-?0YSuW&AHtA%GIy25-R)bm{ ++zfN%F6s>~bR=vJ2s$5E{brKBlSYOYK?pC~;5W;=X$M(i^7{^Ymq8!ex>GLSM93ZIR% ++zrD`Zr{NL`>m!Ktx1--o@@j1H_JI(rJX6oyyn!7|>o%-IRE0so?*%l+{^ ++zbOx?|8~%2koBMA^6^>dqwDem0o(o-|qphQ@iw-))f+{u)|4gN{>cd=@6HY?qFmHQT ++zYUH ++zQESGm1N}GtW1(Si1$k8ise$PcO+UHBNY0qA|NKXXc<0BzeTtX7^GoM_+?#&3@7H}` ++zkN;2CR`u~>oxAEZ7yC^B5JEqHd80Hzm^hp)BL!r3TR8~^u%fx)hVUf-N_KqXf93pD ++zyEl$q(it7O^E(~2nY4K50VCy2EAM2Rg-YC-~c2rgk>~?^x4U590!IfY>XKhbh_gZ~aw55E+gUi=i ++z4ji16+wW<`BUTJwQEs)DsC#?GPBicOyYId@`CgwMWA!7|!{SRX9lE|j@1-PWAl3rm ++z9Rynlb~u!fm`-sR*`dnx?uvEsecMCRa+^Edp?WVCBThg#a9c}5 ++zutov6=I|hCMt&y)x|I4bjQko9i3!jc*~CPE56`948~RVV{qx ++zO`5i&##9+op$$}@Qe%Q|r}+{yhBCG!zAMc)Fp-F)egC31xD#3PZi_l#WS1$|WB+<$ ++zMELJoqlYtN$v^}E0?yTi7J4u8#k*V-C|XH!rMP<6F8DA8xB`5Tb#Ma&h=`#)DHm*+ ++zT5(XJ7;g<9TU5fSJ)T}JZ1caPb9K)z8Ipp)Otu{DS<+aj;1<$Qgfg}K^i)ylQX_D4ZxURcWEmY~A>WQpKn1rN3{HVkLE(${z9ciKS ++zIQ-4t`2Wk-k`B|LQYFsY#DuvkwA*}ZlCOwzr;%2Pq=}e1!K`TehT7XDoSdlHnV5`# ++zw1PBo-6TNG4 ++zK%rwAin+_+!vpwsAu}S4KzeZC9RHr%xl0eKTF3MROT`2Kzx?sxhRdB`|LNJ;>JKV; ++zEuL)ATeI91XARpq*pw1v)PglNwBV6=$sijTyLF@gF&`Vh`mypf(LDI|yDOE;LP?tR ++z?UaEh_ZS1Tfh<@`N{K9p+QPzL5dAL)IJY5exR$1}Y5yRQ{LVX!3V$6uBntun3bU<0 ++z6J-Y!8G!|-D3Cyaq?NNb3+cWE}!n^D2vT%cyuB>&??u_l~Hg)-0);8?xBD%%(pkAE#_+lr< ++zr|;&HXyJnaAs|`d^2{Yu+LZ`gxL;CC3j)~4!p_=RAZ}*^f+7FX_sAuD|M{JymKu>zhxFkRHK#;2;r+}tIAN<)inm8;~30Z^cE^+la5rhK= ++z_nu(U_I9Nmkvpk{ovHF;-G?oR+qo8HZ;6@mIh?SUw0O<6ov7B1$JMBhe61ghoF1-E ++zml}p%<@1)rYp6&dSa7F+Xz=#WzY6gV$^wE$7RUlNEt|DrXS1;T#4PxK{SV|ffg1r% ++zh(LiYjF7wfH$TC&m8zT8J ++zA~rm5{S>b5-eny$;V1~Gg|zOFxrA?r^fWjXvw?yWL~T%*|ItVVOix21vSNx#37s}e ++z5LLRa%0Pl)0`5QQr`s2zdrM4~y$mZ^9)3AsY*y(!_5EX3-xo|qOY%cgGdxU)6Cyt{^}c`6;rwqO03eN3DoY1| ++z4CHLq2L6<4N3GBzHC86l6e6U+n{59~O|KEc#JF?7qqzw*}oX0+0uEn{i`G62s ++zZHrr@TM3HfQ3iU@^tqjF@omcR?>5@_iR(jB=^v|Rkx}9VhcT6H`J+?FOY5!=B)cC`!FMM?TUN@ ++zA}yUCch-0E_C3gEQXxB=l~w42pdgKdgeGceVxHB+z5P{DTcdD)M9jw1aOx@AUI(BQ ++zJB}-$q^Ssj9~35@rhKDI=AtJQTEDm&QVO+=bZY~u+xF0?)}(l%UEAbtcJUI}^_;ut ++z(twG4+o^3%S!>&#uhDP!aFt?B0OTqp&^(gsN?|i2H9#{<_Vcneij(huX%}UM^<)G|6T~e$z(&$PLM%SE{$o8U=_O ++z5l;IP8yXeM(fC4_REY}(gR6+7Kv%8We*5jEv7|_eWKp@Lq`WDJ3|@)w4u>9ks8y*f ++z`lPWcBbhY`R``}NG$`-=eh!t4}^D_ti& ++zla8|p49u`>#KOXGd*FvzgQa7Y>F7cauF=JSJ*c&pZ5ST0B->RU;#ul ++zy1UPRr^Gi{cxhxU3!25H^Dr312x9DD(8vQI2KrIK_qV|1c_Gr74sb}^p`uK;lz^9F;?gt<7UkW{Fw4xxjKQwoxD&FXQ`2P*+E3*;;P~dTkZ*^<|AVS006uU0O0MPU$lWxAP8*v#oGe{-`f){2Kb$2s8u7WD-~g2C7?Qm)Vafpn9(Alu}N!0 ++zgsirfePHE6HZD5SK$Ej-7e^m;3Bp&|(VW|`r#!PazIa2kR}3pIRwNR)ShZ^DDhjHB ++zS;`XxeaKRFbulIk5ZjSFgiTL{YHeim`JZ@`L<@idP!G@!VOIvJ@|W&5J$y+0u>u@~ ++z{nc7R(gFeIMeHa6euO}pB3A$}0)VMfmLm;I?SYV2c*KXHiDIueOHcn ++zi64Dn`}#^{>AVZE5Ys|V02x#E1i{-s|M@*>YA4;r8bjBa86Xu13Vm5CCz6k`#k1GB ++zfGlGwf2`dR!KTCHn1pq8!E*zm$DwQYz+{Mi3*adzy ++zXuwoPNLrB^Y ++zm7GP7kLZ65St(}w;tG(6Wy@9@oZvnpq9a2 ++z4@F(!NE2BG=-zsZ9CN$;a76dWD>ol2EOxh7>3dWc?sL|4OqbX?x};Q2`Uv7R2onGZ ++z2Ii~+Lq&!$7hK*vcE?2=$F(d ++zDwdQ>ePkdrONq4M_AmIHWn1vd5oegcl&r9}Wd+AEF{O2^$eC7CQG?!aW^KcR2afoc ++zvs&r36)rhgFY#mrNK>e-*K ++zwwghd6r%1@%My>)bBKYlwMSEzZZLHy${_faZk2Hl^;(Gb>%j53!r ++zSS197Cnmno&~%Rr$zfU|;0azrZ%drtz ++zLE6t=lk*XI83rQFMZkuY=hI#5Y4`TfhNsR4vQ*Q&vG3 ++zTy=XN2%P*zpAG>49cQwBNMb(}^n|4`Ldcw@M9Q!L?VeqGPJlFkTD0A|??{&|KNMH; ++zRrT)ElKQ(%AJxwqw4_un&98JTU1rqVmzuO(AvweB`bnevbjOHaVQg%XjW^9>M8Jsv ++zL?yZfshsezTB=}Hd_;CgjnzRNs`G6ZH*qt>m9>ZqB$UYQDbJjyv!$BDbBIV$@$Uy} ++z!GEiD{Sno`J8&`2GJ5K`p4wwrA`FKSG80OJxQeyQ^+7-t!W@AvRgl7g5=?B^-8iaK ++zNcbFFIHJA4$wdq687Q}tbBlW5hc?(|ODu^%qzu83{rGgeb7mW9O=}^YXXtXQH`7l{_FhJMIQu6pe|Y2va7FD_=ZQ0^ ++zrc3-%p8^~#?D}6G^ILNEy)M+5elZS3krN_gf&*_D9FjAm4M)f?6trvXw-4 ++z21g7uh7jhFDqxOFhqZE-)p#l-h{H(1R60{$P$PsTVfkOW0R@1T-H_BAp}zu4oN#?&TFJ>6#IN`KhyJ3(WRBzsLw6+o}C&Vf#><8eg%Mb{`IX`zuTV=yLb&Ig= ++z6Pyts8Dn&GN+2!!r72C#0VoHj3BHy ++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 ++z4HHpKX6L(B!d^z! ++zout)b@od}MgZmXn-wkTNbpwgS5{D;=NSK!?+I?X3il ++zT4zta5;fvRO_Mw=kZd#qOA7Q}!a#Nc ++z071}49!s;*&M=U*Z9?F??n((l1f)6#$9uVJYeBTqbjJ_oar@=<^>cBqt}Rw^9sotM ++zi5!sVA|fRa&52Zc+^?gPpX`%-(k;_9e7a)Jg(?C?&2&vBI5~yF*>u>tJ^-xbz=97h ++z|9yCx8KM&b$XIARKwkvUt`gBMa$vOxdNL@WOyv$r00yWIs5BM|7K8^P|L4t2I2%=Z ++z5{!-!dQPZ#H_}^zf^D^xZD-?>pacjDA&4x)yYiUEfhrP0+3}#=?R{@=uKqn&tZN-N ++zI{*L!LJ|2Pp6E4EqCCN)voIflYZzAZAbqHYm>+>5&>0h*&;ba60H^GhDTkK?QlRz$ ++zrYi?FljW@+$}=7;$;&_(iGnRS@uZ}s0H9eAN_@f-;JB*D31>~EKv3GSP_dwSppAVM ++z$u<1sX_<1m+0~@TEgZc{=%BA-m35(v@) ++z&SHh}EVUjyqB@XJBXj~NV*g&P>*h%f)QaMqam)X?;l1w-Q7kad9f;RE7AR-5+$lXs ++zW*G~GZbUiKI}~RCIPgR+@Ia;_5;9o~ERsJM$QTvg&_vDPsYAwTKjS@jf6B&z!9FW# ++zJ4Y|?w3A>+_P0vol@tYR7!=QHG=2WdfJOTGU1&_G!Rltz8>EWyECZm363k0*&RD9o ++z1Sx_@v{W81hI)WgkhtNt@;>xdPv%ySB|5cHtZNtyw0V|hon*R%6~zp;6A!3sXW&c% ++zAQ(BipajZz@II78o#t ++zAcExm0UOXL{8obi*_s+1L8Cxtz%zsz4Z`Kc5L}B`O<2kb+xH2xBQo^{IGQzxM7ojW ++zhqx@zG`8^v9$>TbLx;uRgmLx{OLdpSyd95nlbaqbq(b?3vzgtzWJsaR;f$6!_ ++z<3&D^9Bh=hw(9w@oyPXLnw77)Vbw>s;~aM(Ij1j%8jVj9=ONJ#TcU01nG8IS4gl%{ ++z%@7r7_KhB3%(&r$sWt=vHr-})tK8PQ@b$0@Fh@;bt ++z@>1Fp`>h%Q16e^6dl?gMhzjw95L1!y=(H~tcAUH>rDt75{}P};NkV{3PNIrffvFIfNDm+?B8D<${;(dp ++zbE(4hsF|*D=}rb_i4NJ{3ad9bcKprjgBf25jV}g+1;;Q&FoZ*49+yPSFEZyV^@p7H ++z#O>dQ*0Wu~+3H#oFG6T|qeldqiJ~9sADoHQP+Zh3&3R1bpz6*#pnHlC38 ++zZ-0F4COmlaPFlPB9+=2IfVc<1y#VGBut*24RH)JI0bp3EJo#s?Ms&A(>BV+ng>nb! ++zT7B+xg*#~W*R%g--{1B&nSQ78y9a68zkjkTPISQI`KXsZc*84yeS+_jq=88?z{*K@ ++z0E7d0o)Zder)&`LE|&!$VWkqH8?g=t6P8`#fwrFdr^8pFu1XK-~aj ++z0+$EsAW$U1%E6>}x+q>ru)1|*QpsrQWM$$iU5Av}Pmf-;>J*dJlF9F;!7CIF(41%f ++z?8U#?AMadBy+Z>?D{T@VScM0W=s{FK@(hw@)Btr_z=H>pjOfs%1Q2K=2Y_Ps;3c$& ++zzI^%?gpLXdHnQ?W3G|r?051n5*^d1+jf=?yumEfTMC!&iC~#sfnp!WMJ^-avw%Rmh=IF7rzUj1O>G(&d`R5ND ++zwy{65HvCgMB5dT>td&QZ_ByqJmP!d3rM*T9n8X4zh#H7$5FLSV35)PwddCeiQ3{MC ++z$$!O#Wq?*lh*thvAu^(S_p-rC-bU#qLJt7e34ln;bPB7_YpJC*b#+>u147FHgjAAW ++zh+iU-)SB558XK`vO1**9T6JlF64u ++zLsP{h0}L%R6j4P-3Q0FoTEtdL6_+lBOja*O?5s|pvqg+!-0U&{%cPz%+sa$mcbc+M ++z!~GAU69Y9|wk*+^evk>%#?x4A^}1bTELJJgjq4l?1RcPQ11aC%k93z3O%Nf`9>12|vH4yfF$XtMpZR|urT=o#9A$cB?;rAI(dZR|(Ss{RV7I#X ++zhD8;`tfBVE`eo&hddhm?b+%kC5k49KRajLE>Ot}ac=Bjmik1)p!V3)(b5Rk?*Ah89 ++z{j8ZjO6YK7;^^e%7R+KX3SBpl$1>6}oy$ObN@^?LDSZs75Bz;DJN}OxX~0rCMu!fZ ++zFu6GD`r6$X=^bn?U;^-9W@1G&-zL$;q&auVKY#IrRY!}_63jBu#~P&3JJ}Wl29*Yq=YaOh;2hl6ssR-p_aLl ++zos-gOo+?p#YK&z2AjP=$^>hKtGzJ9AOcemgQIbID>+b(1ch`(vDVM!>&0`iU%~|c4 ++z9iA-y5nVsPf?#QR)iN0rI8^j{>F?eA_j8Kai)anmrkrlNeMQ>qu;)cV1`s0y-=jHe ++zJi07amI+Dd98jQ6HT4AzGhm)_5GbJ%1crp!mN$tH5e4JUnG|ki*MOx21!Eg)m~k^K ++zzQWQhad(0OXq|{Lh;aq!%Qj?zOYEs6*8_P(YX&U_eXq#|e!^J4#luIA{tq&4@yc9k ++zThsv&B<|Zvx?0so0FCsU$3p}9Xdq}Lkw*n<8jgq&PyzEf+l|r|&{(_}XhAK%YwwvW ++zwnWw;fK+OZArvqmB8X;LW--lMzkF5FmbYHz8?_>qd_ ++zQqaZ6$E-^=~9a(VCO$Tj1@X3 ++zu%-KY-NY?hWjgYsCs?PoEP(^3I4*`v~ ++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 ++zJ_cQK(U-Ji<&}p2_t-HnFZlJjsD97OS!U ++z;sGE66KQl!rvnsTf;%mBqE-7=y~PJ=+TTDbIdN>EVT>hjrK#ynEv3XA9~v?2g8`%@ ++z3M8wGGRq3&{$@B5+E(6g)P2tq;dVPHs}3#(W+Tqc(&6lquWSn|4gdO%-QvTq$NF0y ++zeptj}L0Vl&&q$Xi){6ZXUmlu2cdi@2y@Pfhsr}*xG$v74uZ(x}z=4Gj^$VcqlKPco ++zYKnD0;s%@;B!OMfbSlQqMOl2M_IL-)kzwT6TEzVC2U8g%IxbM-+7`pf9LO4 ++zdD!1)m;8kQZ1RV8xbDP+zydIVUauF2r~)atc>nz~wqUq0E)*Gd7Fio(Xxd3G_s9k* ++zY{!&sGaYRRyDm_I<_K(^*jg(<;AqI7#T~#Q)+v#zgJ}>-!XU^S4&Ff7Sqon&yu4iD ++zl$=y2ukwh${piGR{?g4Aryp8KKiOZO-1qwCqgZVAaDZN~OMW}O0QUZ(u5iPb2Z%~0 ++z);<+m93lZg14^A~P1cWH#8Ff&s#6|aYbe)slmKe5v9Yz~rIVW%Fuw;m5oZP%yu}OzTUIH|KF=V?01*d1$-NT{qswf@g=8W`T;gXqq5#x;F0zD{uuxe ++zqKdvz7u#9e%p3zb_ZlZy6jo5jw$peDj_XJioS@l9#%<$+CU?ot^}{*@%xMq`SL-N9 ++z^dL9W)tDAU1DM3=YPaIM*{`2j@8sK7Rl&Cb5NF)R7I(rH9$<^;b-O)y3y@jWeZv4? ++zXJ5adqznkzV;~2lB{-9UPL{$+cC`sT0DiFtV);0wZP6b(BmqMphDym=J|*{eY7i`| ++zMwu5WQUF!sbaj-m=Q+DgAgnfHV%Xd(-R{G~mV9PlZCF|xpz}u|r+u&t6yOvkFbF<{0COSH1gM<` ++z`Xv)-1{0u_R(ODMDW}WS(jwiho3nP9~ghyyeu@j~YXGt&2in{p^Ll@=SvEK%T#8i1vKkXOhZf^!Q* ++zV5Jn0GE-1GxPWS*LhnXg9thqX(4gosg&{%KfwV)JmZa_XslbmM-5!Pq+@SmN0Lg;L ++zKvo>4r9T)~ochuYXU8lq(!^PoB_yc9YC=XSNN1&Wn3MkKeyY6+;Vu-}sKfv?C?&x? ++z2D(8Ii+l~Xj-p_ZpP~pTfx-u=XrUSfHnj7?XytH71mTh>P6o5h9UE6r)K+^hk*a`JieG>{#rSuxh;v!+Ekc ++zzO7i|yQf`U(sh6nw#MkDH4@CC#`hP1A`k+QA*4JSKF0V(JNP=p$8+aRk5R0^QmwGW)W0m0Nl ++zjRYw?$j}hJ=Ts^tL~ ++z8ma6}ObhHz(!9o>Q9d~_{ ++zuiFn63E>2Q1_9D`9fcZIvPPJvABeMEn|PuQgs;tnI_5|gLDml7e+8g#xTyj1f<;5> ++zhxeCVfl8$*!6s8E8c^F=#^IWfuvtQg!a850H%nOonntK+MD<_fM-rDsxnkLPP_5kbQ+Y|y|#W7-wtbO<~#q6(ph_(Z-s0Gd!Wa%TZD ++zG$h5B?*Wjqzm_f0w@Nd2XBxs ++z(E!ugVb=VQmEYGwFVrGffeP-a2g5p&jc%MIQ$hKefd3J02<1DBnD9b8f ++zP=1W8^u=Vc|PWPN=*+Khy$zs;8MCEf?MKq=_3 ++zPN|fdFDMF7hLsUSL(KwYxNqbv>=bj3!$>b2C+9c@6wCd!=Nv3FhV&}}9E9x`Wq_%x ++z(*&CrW?$=0tEOGBc?p(CGc%-)EUCw=1wbf~k6}qgI!vui_YCxFp#tReBxa{wu!0Ki ++z8Xq+Q$XGMLSV_?QX5|0~kuoh)83wVC-59bzpK~0?;q*oZ$hp3$-2b ++zY>o@H^i)B{Q{SBWv64!VkS{E1q|JRhGky8KKbULwxuhaj{?7)m#xyJE@Y~Np ++zL;9yjxW@AKp~y_NtrD1-6Akz&C~B9{k2uT)0^-$R{wOxvJEK465&%sI&lZ;QNi!^^ ++zGk{q_`f(AISTkODFs5XCdN(nNJg$9grylKKsTwmOtD9y9vU=%FONY%69o84$ihn_# ++znFvVq3yY5WRBdB>jWUWNG5|PdDG%MKhc!YWAx0|BmjNxmE3MdRrMAe7 ++z#8dTSZ4*4oiWE6iL)t3U#-;fxS@4PB0EhhHdO6%)_GhIc;l+dAxz;!Uvask5U`5kW ++zo_-ljPRHwUNm#C+L6%L@DmIK77##<}pI+?3l){2FT?auHLd_RN(9DuVYiE@<1={2F ++zP2lJDEl?uQZ`tEF&iy*Ld02OI8D=jEz-Ml-i&N66r)LM&zqiUM1u)n`(>hiFDjHX#}%}9+fK`ls3SVBn$17VP&X@(VWsDKknB$*(* ++z9-%lTE_g!h_aRT*t&O(zN?W`n2e`TjhIP{0)-KOYl~o;zi%`sv>u6oY8;ODE{+XrK ++zHYqth4t86Pw&1X^1Z!_9AZkhArCoTcw4dq^)V8YtZ`z|d9WC%S&tg!bm;)zy-Nhl0 ++zXrBpCPiWJdms`y5t&mafeBDJi8SE_dDzO}jpz%3+j;2lp5!>3!0 ++zPPQM)#P!2m!b|R=0*!&Dk3T3&EUvX8wdMR&+OoS34-GIPw ++zpUFv^K%M}ionc^Gch&Kl%G?yQrHvC3#Sjl(b2Wvko ++z0JOd=EyD_hViA@!1Lf&)I4FogXobY}L+wG2-;|J;{mm>7VNlYhQoiU^9?IqVJGh|} ++zf?VdZzxkjwA(TRRY#;@$ZnC-|xR0n@C|5DgPv39|&QPgG`2ZN<_4y2B&4xPn+rF9(+;iXy3QMCVbVoOx&7iLz ++zXjsaik^Jo^#`srlF1+vUHv-CtPCb@QY~C!63hVuCIV_#`<^yv8bt@70zhhhZ?5ULR ++zo;D75MUkMxzss9%*AObEmkXc`Wvw|lhU9mC)db3}FS-ljXcLrTR1Ok`{TmKsUUKfw ++zT5j#ZvNB$lw+yXKMeW~-`;YoD#Tpybp|Bc?oAt ++z@Ijt~>H}`t==Ucq9wXd37+V(^GVi%EL#_M4fB5q@l&f>(>MXfFE$vN{@zf@)o#H8* ++zbQffEQ+drz;2j+i0T2X?4Jl0|EHo^naw887%1F}&h&gC6hQJvt?HcP=g_#OWz2KV? ++z!j`akCtm93ZLmv|@#`t^!;@OhpDx9_B1Zx;p!wlK!%%?^GyrYr;3{$}zSHl$g{yn+ ++z1x_??kA`|YG){D|JuC}(TqEFF#V3y& ++z6)ll6rr}XFj|BnvjRZhncF5##lKWj~LtbHxc%C=(W%d3i^{SJ4z|?=Rq{ktbVSxXV ++zM!Q^#bGzD!r;4LbwH!=N*#wfytn_WSv>rpBdzbH9xVu3J#5oi$hnm_UA3mC%{4 ++z*a+JFZn|4F^P^>Ha9A(5*>8Fqq+1L@v_s>qpz$U&+=BYsL9~xBM0^ulGx5^DJPaX> ++zPrlY?q+~$(3Chk8zC!o{z5@B*!` ++z$+T&A9Co_=z}x(18jN>ufGm6?ih(4v!k{ZYZm5%nK<)>*0`fcYZzSN$UrZFd4&@w_ ++zd!+IUc3ku4Niq*`m4K|H=|dYj_B9;1`?~FgLc8m_3T-qJkvs}Ii}>LD*W1T{Yzo}! ++z_X6)v$D|Jv(9!dur<7_hw6{}Pq0N%(G9?}4Y|s!J;9ql}@1nj_JDk?M3^;H5Q~OX` ++zZlI^3uiW=uC_sT7*F~Eqr2q?o4>pi}v^U?bW2C`9Sixx}4c?yt*9Y$)9l?*(FjDTm ++zg?2#EKi${H0R{jD7^d)Z1!4pBD}EKvJ%-VreVYo*Y488<^794Uch#=L|HRMTloqxt ++zfb6tD%~Su{|H55oV}9EPyt^$v_ZWirb8tJroVGmY{k?4g=Uo+U{fGZqrPjFZ?F-wN ++zGu@v7=9LI2KtZu{xWh1D8*qGZitRd5f$%rI%>n@C6m8*rmk;|@pT(cj+OZZJMVc{E5iO)|)?$00b{%-GU ++z<_hob)%@9mq1*`I7TQg1oC>luZwci6P_dZH<($2kncv@s{i?TjV9|A7;KGGJx4qqU ++zf4oai@}D`mT<%p|#>#j3(VW6t{y;D0dpvhnDfMmLb}5=urAwuGO;AwCnW30-a!wEw ++z42JV64*D$z9ps1d&)~58+x2i|)Q4)$UOlPa87k#ihox?nr2s}${M{>nGF9UD@xB!%rM~IS6kZKsL_6z{i ++z97;ifz$!2RWfkL)@<99?V^4z=@quO*;WU5*1t>^zoRd84$!GuoOt=eLmg>P4oeD+u ++nib&wZ!*x%h5CFvhL$a44rDz?DJu$NE7q*<8tSA4rce?=q{->Fz ++ ++literal 0 ++HcmV?d00001 ++ ++-- ++2.34.1 ++ +diff --git a/app/src/forkRelease/res/drawable/animated_splash_screen.xml b/app/src/forkRelease/res/drawable/animated_splash_screen.xml +index 96ea559c1..564145eb3 100644 +--- a/app/src/forkRelease/res/drawable/animated_splash_screen.xml ++++ b/app/src/forkRelease/res/drawable/animated_splash_screen.xml +@@ -1,518 +1,12 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ +diff --git a/app/src/forkRelease/res/values/static_strings.xml b/app/src/forkRelease/res/values/static_strings.xml +index 0587640ee..7be98b62e 100644 +--- a/app/src/forkRelease/res/values/static_strings.xml ++++ b/app/src/forkRelease/res/values/static_strings.xml +@@ -4,5 +4,5 @@ + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + + +- Iceraven ++ LeOSium + +diff --git a/app/src/main/res/drawable/animated_splash_screen.xml b/app/src/main/res/drawable/animated_splash_screen.xml +index e2b7ead51..74d441577 100644 +--- a/app/src/main/res/drawable/animated_splash_screen.xml ++++ b/app/src/main/res/drawable/animated_splash_screen.xml +@@ -1,1036 +1,11 @@ ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ +diff --git a/app/src/main/res/values-an/strings.xml b/app/src/main/res/values-an/strings.xml +index cd5c558cc..1c63067ae 100644 +--- a/app/src/main/res/values-an/strings.xml ++++ b/app/src/main/res/values-an/strings.xml +@@ -50,7 +50,7 @@ + Seleccionau + + +- %1$s ye produciu per Mozilla. ++ %1$s ye produciu per harvey186. + + + +diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml +index 845e66b1f..c470121b7 100644 +--- a/app/src/main/res/values-ar/strings.xml ++++ b/app/src/main/res/values-ar/strings.xml +@@ -42,7 +42,7 @@ + اعرض كل العلامات المحفوظة + + +- ‏%1$s من Mozilla. ++ ‏%1$s من harvey186. + + + +- %1$s ta producíu por Mozilla. ++ %1$s ta producíu por harvey186. + + + +- %1$s распрацаваны Mozilla. ++ %1$s распрацаваны harvey186. + + + +- %1$s е произведен от Mozilla. ++ %1$s е произведен от harvy186. + + + +- %1$s হচ্ছে Mozilla দ্বারা তৈরি। ++ %1$s হচ্ছে harvey186 দ্বারা তৈরি। + + + ব্যাক্তিগত ব্রাউজিং সম্পর্কে কিছু ভুল ধারণা +diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml +index 1abed93cc..3add8aec2 100644 +--- a/app/src/main/res/values-br/strings.xml ++++ b/app/src/main/res/values-br/strings.xml +@@ -53,7 +53,7 @@ + Dilemel + + +- Gant Mozilla eo produet %1$s. ++ Gant harvey186 eo produet %1$s. + + + +- %1$s je razvila Mozilla. ++ %1$s je razvila harvey186. + + + +- El %1$s està creat per Mozilla. ++ El %1$s està creat per harvey186. + + + +- %1$s b\'anon ruma Mozilla. ++ %1$s b\'anon ruma harvey186. + + + +- %1$s hinimo sa Mozilla. ++ %1$s hinimo sa harvey186. + + + +diff --git a/app/src/main/res/values-co/strings.xml b/app/src/main/res/values-co/strings.xml +index d3ba931a3..76c65fc31 100644 +--- a/app/src/main/res/values-co/strings.xml ++++ b/app/src/main/res/values-co/strings.xml +@@ -57,7 +57,7 @@ + Caccià + + +- %1$s hè sviluppatu da Mozilla. ++ %1$s hè sviluppatu da harvey186. + + + +- Autorem aplikace %1$s je Mozilla. ++ Autorem aplikace %1$s je harvey186. + + + +- Mae %1$s yn cael ei greu gan Mozilla. ++ Mae %1$s yn cael ei greu gan harvey186. + + + +- %1$s er lavet af Mozilla. ++ %1$s er lavet af harvey186. + + + +- %1$s wird von Mozilla hergestellt. ++ %1$s wird von harvey186 hergestellt. + + + +- %1$s se pśez Mozilla zgótujo. ++ %1$s se pśez harvey186 zgótujo. + + + +- Το %1$s αναπτύσσεται από τη Mozilla. ++ Το %1$s αναπτύσσεται από τη Harvey186. + + + +- %1$s is produced by Mozilla. ++ %1$s is produced by harvey186. + + + +- %1$s is produced by Mozilla. ++ %1$s is produced by harvey186. + + + +- %1$s estas kreita de Mozilla. ++ %1$s estas kreita de harvey186. + + + +- %1$s es producido por Mozilla. ++ %1$s es producido por harvey186. + + + +diff --git a/app/src/main/res/values-es-rCL/strings.xml b/app/src/main/res/values-es-rCL/strings.xml +index 1eeeee12d..db0ccf854 100644 +--- a/app/src/main/res/values-es-rCL/strings.xml ++++ b/app/src/main/res/values-es-rCL/strings.xml +@@ -55,7 +55,7 @@ + Eliminar + + +- %1$s es producido por Mozilla. ++ %1$s es producido por harvey186. + + + +- %1$s es producido por Mozilla. ++ %1$s es producido por harvey186. + + + +- %1$s es producido por Mozilla. ++ %1$s es producido por harvey186. + + + +- %1$s is produced by @fork-maintainers. ++ %1$s is produced by @harvey186. + + + በሌሎች መሳሪያዎችዎ ላይ በፋየርፎክስ ውስጥ ምንም የተከፈቱ ትሮች የሉዎትም። -- +- + ከሌሎች መሳሪያዎችዎ የትሮች ዝርዝር ይመልከቱ። @@ -429,7 +429,7 @@ index 82c9874c7..5485f5e1f 100644 ተጨማሪ ያግኙ በ%s የተጎላበተ። -- +- + የፋየርፎክስ ቤተሰብ አካል። %s @@ -442,7 +442,7 @@ index f501cf2f1..f0a72bab6 100644 Per favor, activa la sincronización de pestanyas. No tiens garra pestanya ubierta en Firefox en as tuyas atros dispositivos. -- +- + Veyer una lista de pestanyas d’as tuyas atros dispositivos. @@ -455,7 +455,7 @@ index ec997ef63..9991c9c1f 100644 من فضلك فعّل مزامنة الألسنة. لا ألسنة مفتوحة في Firefox على أجهزتك الأخرى. -- +- + اعرض قائمة بالألسنة من أجهزتك الأخرى. @@ -464,7 +464,7 @@ index ec997ef63..9991c9c1f 100644 قصص حسب الموضوع اكتشف المزيد -- +- + جزء من عائلة Firefox. ‏%s @@ -477,7 +477,7 @@ index 4bc4e2345..f0f0800d0 100644 Nun tienes llingüetes abiertes nel Firefox de los demás preseos de to. -- +- + Ve una llista de les llingüetes que tienes nos demás preseos de to. @@ -486,7 +486,7 @@ index 4bc4e2345..f0f0800d0 100644 Cola potencia de Pocket. -- +- + Parte de la familia de Firefox. %s @@ -499,7 +499,7 @@ index 4351428f7..ed3ebc682 100644 Калі ласка, уключыце сінхранізацыю картак. На іншых вашых прыладах у Firefox не адкрыта ніводнай карткі. -- +- + Пабачыць спіс картак з іншых прылад. @@ -508,7 +508,7 @@ index 4351428f7..ed3ebc682 100644 Даведайцеся больш Пры падтрымцы %s. -- +- + Частка сямейства Firefox. %s @@ -521,7 +521,7 @@ index da30f796d..e6630b6dc 100644 Моля, включете синхронизиране на раздели. Няма отворени раздели във Firefox на други ваши устройства. -- +- + Вижте разделите от други ваши устройства. @@ -530,7 +530,7 @@ index da30f796d..e6630b6dc 100644 Открийте повече С подкрепата на %s. -- +- + Част от семейството на Firefox. %s @@ -543,7 +543,7 @@ index f9fc661f1..b3b9b0cb9 100644 N’ho peus ivinell digor ebet e Firefox war ho trevnadoù all. -- +- + Gwelout ur roll ivinelloù eus ho trevnadoù all. @@ -552,7 +552,7 @@ index f9fc661f1..b3b9b0cb9 100644 Dizoloiñ muioc’h Lusket gant %s. -- +- + Ezel eus familh Firefox. %s @@ -565,7 +565,7 @@ index 819e7f7a9..7552e482d 100644 Molimo da omogućite sinhronizaciju tabova. Nemate otvorenih tabova u Firefoxu na vašim ostalim uređajima. -- +- + Pregled liste tabova sa vaših ostalih uređaja. @@ -574,7 +574,7 @@ index 819e7f7a9..7552e482d 100644 Istražite više Pokreće %s. -- +- + Dio porodice Firefox. %s @@ -587,7 +587,7 @@ index 27e03cb3d..68b0b8528 100644 No teniu cap pestanya oberta al Firefox dels altres dispositius. -- +- + Vegeu una llista de les pestanyes que teniu obertes en altres dispositius. @@ -596,7 +596,7 @@ index 27e03cb3d..68b0b8528 100644 Descobriu-ne més Funciona amb el %s. -- +- + Part de la família Firefox. %s @@ -609,7 +609,7 @@ index 7b77ffa09..8c10d86c3 100644 Majun ruwi\' ajaqon pa Firefox pa ri ch\'aqa\' chik awokisab\'al. -- +- + Titz\'et jun kicholb\'al ruwi\' pa juley chik awokisab\'al. @@ -622,7 +622,7 @@ index 3294cec35..663f27db6 100644 تکایە هاوکاتگەری بازدەر پێبکە. هیچ بازدەرێکی کراوەت نیە لە ئامێرەکانی تری فایەرفۆکس. -- +- + لیستەی بازدەرەکان پیشان بدە لە ئامێرەکانی ترەوە. @@ -635,7 +635,7 @@ index e41a5e4c1..72ce034bd 100644 Ùn avete alcuna unghjetta aperta in Firefox nant’à i vostri altri apparechji. -- +- + Affissate a lista di l’unghjette di i vostri altri apparechji. @@ -644,7 +644,7 @@ index e41a5e4c1..72ce034bd 100644 Scoprene di più Funziuneghja grazia à %s. -- +- + Parte di a famiglia Firefox. %s @@ -657,7 +657,7 @@ index 12c68df0e..c350b4999 100644 Zapněte nejdříve synchronizaci panelů. Ve vašich zařízeních nejsou otevřené žádné panely. -- +- + Seznam panelů z ostatních zařízení. @@ -666,7 +666,7 @@ index 12c68df0e..c350b4999 100644 Objevte více Službu poskytuje %s. -- +- + Součást rodiny Firefoxu. %s @@ -679,7 +679,7 @@ index c86dbcc71..4e94bd779 100644 Nid oes gennych unrhyw dabiau ar agor yn Firefox ar eich dyfeisiau eraill. -- +- + Gweld rhestr o dabiau o’ch dyfeisiau eraill. @@ -688,7 +688,7 @@ index c86dbcc71..4e94bd779 100644 Darganfod rhagor Wedi’i bweru gan %s. -- +- + Rhan o deulu Firefox. %s @@ -701,7 +701,7 @@ index 1ecf296b4..7cb875e6c 100644 Aktiver synkronisering af faneblade. Du har ikke nogen faneblade åbne i Firefox på dine andre enheder. -- +- + Se en liste med faneblade fra dine andre enheder. @@ -710,7 +710,7 @@ index 1ecf296b4..7cb875e6c 100644 Opdag mere Leveret af %s. -- +- + En del af Firefox-familien. %s @@ -723,7 +723,7 @@ index 4fc1a8f62..258875dff 100644 Bitte aktivieren Sie die Tab-Synchronisierung. Sie haben keine offenen Tabs in Firefox auf Ihren anderen Geräten. -- +- + Zeigt eine Liste der Tabs von Ihren anderen Geräten an. @@ -732,7 +732,7 @@ index 4fc1a8f62..258875dff 100644 Mehr entdecken Unterstützt durch %s. -- +- + Teil der Firefox-Familie. %s @@ -745,7 +745,7 @@ index 629b72032..87c1140af 100644 Njamaśo žedne wócynjone rejtariki na swójich drugich rědach. -- +- + Woglědajśo se lisćinu rejtarikow ze swójich rědow. @@ -754,7 +754,7 @@ index 629b72032..87c1140af 100644 Wěcej wuslěźiś Spěchowany wót %s. -- +- + Źěl swójźby Firefox. %s @@ -767,7 +767,7 @@ index 28bb5798a..d7ea23797 100644 Δεν έχετε καμία άλλη καρτέλα ανοικτή στο Firefox σε άλλες σας συσκευές. -- +- + Δείτε μια λίστα καρτελών από τις άλλες συσκευές σας. @@ -776,7 +776,7 @@ index 28bb5798a..d7ea23797 100644 Ανακαλύψτε περισσότερα Με την υποστήριξη του %s. -- +- + Μέρος της οικογένειας του Firefox. %s @@ -789,7 +789,7 @@ index 5bf748eb0..c2f83181b 100644 Please enable tab syncing. You don’t have any tabs open in Firefox on your other devices. -- +- + View a list of tabs from your other devices. @@ -798,7 +798,7 @@ index 5bf748eb0..c2f83181b 100644 Discover more Powered by %s. -- +- + Part of the Firefox family. %s @@ -811,7 +811,7 @@ index 31dfb31b8..4c4599661 100644 Please enable tab synchronisation. You don’t have any tabs open in Firefox on your other devices. -- +- + View a list of tabs from your other devices. @@ -820,7 +820,7 @@ index 31dfb31b8..4c4599661 100644 Discover more Powered by %s. -- +- + Part of the Firefox family. %s @@ -833,7 +833,7 @@ index adae84f57..4188f6e15 100644 Bonvolu aktivigi speguladon de langetoj. Vi ne havas iun ajn langeton malfermita en viaj aliaj aparatoj. -- +- + Vidi liston de langetoj el viaj aliaj aparatoj. @@ -842,7 +842,7 @@ index adae84f57..4188f6e15 100644 Malkovri pli da aferoj Kun teknologio de %s. -- +- + Parto de la familio de Firefox. %s @@ -855,7 +855,7 @@ index b3f03c4ba..613ec7670 100644 No tenés ninguna pestaña abierta en Firefox en tus otros dispositivos. -- +- + Ver una lista de pestañas de tus otros dispositivos. @@ -864,7 +864,7 @@ index b3f03c4ba..613ec7670 100644 Descubrir más Impulsado por %s. -- +- + Parte de la familia de Firefox. %s @@ -877,7 +877,7 @@ index 883e691fa..77c732b2b 100644 Por favor, habilita la sincronización de pestañas. No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. -- +- + Ver una lista de las pestañas de tus otros dispositivos. @@ -886,7 +886,7 @@ index 883e691fa..77c732b2b 100644 Descubrir más Con la tecnología de %s. -- +- + Parte de la familia Firefox. %s @@ -899,7 +899,7 @@ index 21ab60347..076c77a59 100644 No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. -- +- + Ver una lista de pestañas de tus otros dispositivos. @@ -908,7 +908,7 @@ index 21ab60347..076c77a59 100644 Descubrir más Impulsado por %s. -- +- + Parte de la familia Firefox. %s @@ -921,7 +921,7 @@ index 54a60e5f2..0b171fb90 100644 Por favor habilita la sincronización de pestañas. No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. -- +- + Ver una lista de pestañas de tus otros dispositivos. @@ -930,7 +930,7 @@ index 54a60e5f2..0b171fb90 100644 Descubrir más Impulsado por %s. -- +- + Parte de la familia Firefox. %s @@ -943,7 +943,7 @@ index 21ab60347..076c77a59 100644 No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. -- +- + Ver una lista de pestañas de tus otros dispositivos. @@ -952,7 +952,7 @@ index 21ab60347..076c77a59 100644 Descubrir más Impulsado por %s. -- +- + Parte de la familia Firefox. %s @@ -965,7 +965,7 @@ index c0aef4b9c..7f3a64b58 100644 Palun luba kaartide sünkroniseerimine. Sul pole teistes seadmetes olevates Firefoxides kaarte avatud. -- +- + Vaata teistes seadmetes avatud kaartide nimekirja. @@ -974,7 +974,7 @@ index c0aef4b9c..7f3a64b58 100644 Lood teemade kaupa Avasta veel -- +- + Osa Firefoxi perekonnast. %s @@ -987,7 +987,7 @@ index e0e4cb55e..0c558147f 100644 Gaitu fitxen sinkronizazioa mesedez. Ez daukazu fitxarik irekita beste gailuetako Firefoxetan. -- +- + Ikusi zure beste gailuetako fitxen zerrenda. @@ -996,7 +996,7 @@ index e0e4cb55e..0c558147f 100644 Aurkitu gehiago %s(e)k hornitua. -- +- + Firefoxen familiakoa. %s @@ -1009,7 +1009,7 @@ index cc866a52e..8a6ad6c3b 100644 لطفاً همگام‌سازی زبانه را به کار بیندازید. شما هیچ زبانهٔ باز دیگری در Firefox روی افزاره‌های دیگرتان ندارید. -- +- + نمایش فهرستی از زبانه‌ها از افزاره‌های دیگر شما. @@ -1018,7 +1018,7 @@ index cc866a52e..8a6ad6c3b 100644 بیشتر ببینید قدرت گرفته از %s. -- +- + بخشی از خانوادهٔ Firefox.‏ %s @@ -1031,7 +1031,7 @@ index 58dbb3d9b..665c80559 100644 Seŋ kaɓirgol goɗngol. -- +- + Yiy doggol tabbe iwɗe e kaɓirɗi maa goɗɗi. @@ -1044,7 +1044,7 @@ index dd93a180e..95a249783 100644 Ota välilehtien synkronointi käyttöön. Sinulla ei ole muilla laitteilla avoimia välilehtiä Firefoxissa. -- +- + Katso välilehtilistaus muilta laitteiltasi. @@ -1053,7 +1053,7 @@ index dd93a180e..95a249783 100644 Löydä lisää Mahdollistajana %s. -- +- + Osa Firefox-perhettä. %s @@ -1066,7 +1066,7 @@ index 0ca0df558..bc262f462 100644 Veuillez activer la synchronisation des onglets. Vous n’avez aucun onglet ouvert dans Firefox sur vos autres appareils. -- +- + Affichez la liste des onglets de vos autres appareils. @@ -1075,7 +1075,7 @@ index 0ca0df558..bc262f462 100644 En découvrir davantage Mis en avant par %s. -- +- + Membre de la famille Firefox. %s @@ -1088,7 +1088,7 @@ index 1360e9100..8f4d676a8 100644 Ative la sincronizazion des schedis. No tu âs nissune schede vierte in Firefox tai altris dispositîfs. -- +- + Visualize une liste di schedis dai tiei altris dispositîfs. @@ -1097,7 +1097,7 @@ index 1360e9100..8f4d676a8 100644 Scuvierç altris storiis Cun tecnologjie %s. -- +- + Part de famee Firefox. %s @@ -1110,7 +1110,7 @@ index f6b4d6541..2638cfee9 100644 Jo hawwe gjin ljepblêden iepene yn Firefox op jo oare apparaten. -- +- + Besjoch in list mei ljepblêden fan jo oare apparaten. @@ -1119,7 +1119,7 @@ index f6b4d6541..2638cfee9 100644 Mear ûntdekke Mooglik makke troch %s. -- +- + Underdiel fan de Firefox-famylje. %s @@ -1132,7 +1132,7 @@ index a2ee31793..85097c6a6 100644 Cuir an comas sioncronachadh nan tabaichean. Chan eil taba sam bith fosgailte agad ann am Firefox air uidheaman eile. -- +- + Seall liosta nan tabaichean a tha agad air uidheaman eile. @@ -1141,7 +1141,7 @@ index a2ee31793..85097c6a6 100644 Le cumhachd %s. -- +- + Na phàirt de theaghladh Firefox. %s @@ -1154,7 +1154,7 @@ index 5655ba231..f8e87e784 100644 Active a sincronización de lapelas. Non ten ningunha lapela aberta en Firefox nos outros dispositivos. -- +- + Ver unha lista das lapelas dos outros dispositivos. @@ -1163,7 +1163,7 @@ index 5655ba231..f8e87e784 100644 Descubrir máis Creado por %s. -- +- + Parte da familia Firefox. %s @@ -1176,7 +1176,7 @@ index 5d0da0318..445d4fa17 100644 Ndererekói tendayke ijurujáva Firefox-pe ambue ne mba’e’okápe. -- +- + Ehecha tendayke rysýi ambue ne mba’e’okápe. @@ -1185,7 +1185,7 @@ index 5d0da0318..445d4fa17 100644 Ejuhukuaave Omboguatáva %s. -- +- + Firefox reheguaite. %s @@ -1198,7 +1198,7 @@ index 22d9485d8..4736e763d 100644 कृपया टैब सिंकिंग सक्षम करें। आपके अन्य उपकरणों पर Firefox में कोई टैब खुला नहीं है। -- +- + अपने अन्य उपकरणों से टैब की एक सूची देखें। @@ -1211,7 +1211,7 @@ index 3c5ffe7fe..ce579bb49 100644 Nemaš otvorene kartice u Firefoxu na drugim uređajima. -- +- + Pogledaj popis kartica s tvojih drugih uređaja. @@ -1220,7 +1220,7 @@ index 3c5ffe7fe..ce579bb49 100644 Otkrij više Pokreće %s. -- +- + Dio Firefoxove obitelji. %s @@ -1233,7 +1233,7 @@ index a43969e12..1b041108f 100644 Prošu zmóžńće synchronizowanje rajtarkow. Nimaće žane wočinjene rajtarki w Firefox na swojich druhich gratach. -- +- + Wobhladajće sej lisćinu rajtarkow ze swojich gratow. @@ -1242,7 +1242,7 @@ index a43969e12..1b041108f 100644 Wjace wotkryć Spěchowany wot %s. -- +- + Dźěl swójby Firefox. %s @@ -1255,7 +1255,7 @@ index 0550f503e..cf308b4cc 100644 Nincs egyetlen lap sem nyitva a Firefoxban a többi eszközén. -- +- + Tekintse meg a más eszközökről származó lapok listáját. @@ -1264,7 +1264,7 @@ index 0550f503e..cf308b4cc 100644 Folytassa a felfedezést A motorháztető alatt: %s. -- +- + A Firefox család tagja. %s @@ -1277,7 +1277,7 @@ index 2e0696586..69c67a03c 100644 Դուք չունեք բացված որևէ ներդիր Firefox-ի ձեր մյուս սարքերում: -- +- + Դիտեք այլ սարքերում ձեր ներդիրների ցանկը: @@ -1286,7 +1286,7 @@ index 2e0696586..69c67a03c 100644 Բացահայտի՛ր ավելին Աշխատում է %s-ի կողմից: -- +- + Firefox ընտանիքի մի մասը: %s @@ -1299,7 +1299,7 @@ index 0970b4b78..7a15b3f6a 100644 Activa le synchronisation del scheda. Tu non ha schedas aperte in Firefox sur tu altere apparatos. -- +- + Vider un lista de schedas de tu altere apparatos. @@ -1308,7 +1308,7 @@ index 0970b4b78..7a15b3f6a 100644 Discoperi plus Potentiate per %s. -- +- + Parte del familia de Firefox. %s @@ -1321,7 +1321,7 @@ index 22acc1e75..68e49d162 100644 Anda tidak memiliki tab terbuka di Firefox pada perangkat Anda lainnya. -- +- + Lihat daftar tab dari perangkat Anda lainnya. @@ -1330,7 +1330,7 @@ index 22acc1e75..68e49d162 100644 Temukan lebih banyak Diberdayakan oleh %s. -- +- + Bagian dari keluarga Firefox. %s @@ -1343,7 +1343,7 @@ index 46dd967e5..dbdd9d6ba 100644 Virkjaðu samstillingu flipa. Þú ert ekki með neina Firefox flipa opna á hinum tækjunum þínum. -- +- + Skoða lista yfir flipa frá öðrum tækjum. @@ -1352,7 +1352,7 @@ index 46dd967e5..dbdd9d6ba 100644 Uppgötva meira Keyrt með %s. -- +- + Hluti af Firefox-fjölskyldunni. %s @@ -1365,7 +1365,7 @@ index f71d5f35d..81f7e3a3f 100644 Non risulta alcuna scheda aperta in Firefox negli altri dispositivi. -- +- + Visualizza un elenco delle schede aperte in altri dispositivi. @@ -1374,7 +1374,7 @@ index f71d5f35d..81f7e3a3f 100644 Scopri altre storie Con tecnologia %s. -- +- + Parte della famiglia Firefox. %s @@ -1387,7 +1387,7 @@ index 58167cd3b..dfb5670da 100644 נא להפעיל סנכרון לשוניות. אין לך לשוניות פתוחות ב־Firefox בשאר המכשירים שלך. -- +- + הצגת רשימת לשוניות משאר המכשירים שלך. @@ -1396,7 +1396,7 @@ index 58167cd3b..dfb5670da 100644 לגלות עוד מופעל על־ידי %s. -- +- + חלק ממשפחת Firefox. %s @@ -1409,7 +1409,7 @@ index 551805b33..2f8eff3ae 100644 タブの同期を有効にしてください。 他の端末の Firefox で開いているタブはありません。 -- +- + 他の端末のタブの一覧を表示できます。 @@ -1418,7 +1418,7 @@ index 551805b33..2f8eff3ae 100644 より詳しく %s による提供です。 -- +- + Firefox ファミリーの一員です。 %s @@ -1431,7 +1431,7 @@ index d89b9eb64..19ac6ed56 100644 თქვენ არ გაქვთ, Firefox-ის გახსნილი ჩანართები, სხვა მოწყობილობებზე. -- +- + იხილეთ ჩანართების სია თქვენი სხვა მოწყობილობებიდან. @@ -1440,7 +1440,7 @@ index d89b9eb64..19ac6ed56 100644 აღმოაჩინეთ მეტი უზრუნველყოფს %s. -- +- + Firefox ოჯახის ნაწილი. %s @@ -1453,7 +1453,7 @@ index b8f8f58c9..01501e310 100644 Ótinish, bet sáykeslestiriwin qosıń. Basqa qurılmalarıńızdaǵı Firefoxta birde-bir bet ashıq emes. -- +- + Basqa qurılmalarıńızdaǵı betler dizimin kóriń. @@ -1462,7 +1462,7 @@ index b8f8f58c9..01501e310 100644 Kóbirek biliń %s tárepinen qollap-quwatlanadı. -- +- + Firefox toparınıń bólegi. %s @@ -1475,7 +1475,7 @@ index 099ae1be7..49b14f093 100644 Ulac ɣur-k accarren yeldin deg Firefox deg yibenkan-inek-nniḍen. -- +- + Wali tabdart n waccaren seg yibenkan-ik-nniḍen. @@ -1484,7 +1484,7 @@ index 099ae1be7..49b14f093 100644 Issin ugar Ddaw leɛnaya n %s. -- +- + D aḥric seg twacult Firefox. %s @@ -1497,7 +1497,7 @@ index acd6830c3..26716dd5b 100644 Беттер синхрондауын іске қосыңыз. Сізде басқа құрылғыларыңызда Firefox-та ашық беттер жоқ. -- +- + Басқа құрылғыларыңыздан беттер тізімін қарау. @@ -1506,7 +1506,7 @@ index acd6830c3..26716dd5b 100644 Көбірек шолу %s негізінде. -- +- + Firefox отбасының бөлігі. %s @@ -1519,7 +1519,7 @@ index 6f8b667f7..ce0a246fd 100644 Daneyên bazarkirinê -- Daneyên bikaranînê yên bingehîn bi hevkara me ya kar Adjustê tên parvekirin +- Daneyên bikaranînê yên leosearchehîn bi hevkara me ya kar Adjustê tên parvekirin + Daneyên bikaranînê yên leosearchehîn bi hevkara me ya kar Adjustê tên parvekirin Lêkolîn @@ -1528,7 +1528,7 @@ index 6f8b667f7..ce0a246fd 100644 Ji kerema xwe, senkronîzekirina hilpekînê veke. Di Firefoxên li ser cîhazên te yên din de ti hilpekîneke vekirî tune ye. -- +- + Lîsteyeke hilpekînan a ji cîhazên xwe yên din bibîne. @@ -1537,7 +1537,7 @@ index 6f8b667f7..ce0a246fd 100644 Zêdetir keşf bike Bihêzkirin ji aliyê %sê. -- +- + Beşeke ji malbata Firefoxê. %s @@ -1550,7 +1550,7 @@ index ecc7c217a..49dd16691 100644 ದಯವಿಟ್ಟು ಟ್ಯಾಬ್ ಸಿಂಕ್ ಸಕ್ರಿಯಗೊಳಿಸಿ. ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ಫೈರ್‌ಫಾಕ್ಸ್‌ನಲ್ಲಿ ಯಾವುದೇ ಟ್ಯಾಬ್‌ಗಳು ತೆರೆದಿಲ್ಲ. -- +- + ನಿಮ್ಮ ಇತರೆ ಸಾಧನಗಳಲ್ಲಿನ ಟ್ಯಾಬ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡಿ. @@ -1563,7 +1563,7 @@ index 50dff711f..fd7f1b02d 100644 다른 기기의 Firefox에서 열린 탭이 없습니다. -- +- + 다른 기기의 탭 목록을 봅니다. @@ -1572,7 +1572,7 @@ index 50dff711f..fd7f1b02d 100644 더 발견하기 %s 제공. -- +- + Firefox 제품군의 일부입니다. %s @@ -1585,7 +1585,7 @@ index f79acb2a7..bcb7155ca 100644 Pe piaxei ativa a scincroniaçion di feuggi. No ti gh\'æ feuggi averti in Firefox inti atri dispoxitivi. -- +- + Amia \'na lista de tutti i feuggi da-i atri dispoxitivi. @@ -1598,7 +1598,7 @@ index 57c9e295e..8e987b620 100644 ກະລຸນາເປີດນຳໃຊ້ການ sync ແທັບ ທ່ານບໍ່ໄດ້ເປີດຈັກແທັບຢູ່ Firefox ໃນອຸປະກອນອື່ນໆຂອງທ່ານ. -- +- + ເບິງລາຍຊື່ແທັບຈາກອຸປະກອນອື່ນໆຂອງທ່ານ @@ -1607,7 +1607,7 @@ index 57c9e295e..8e987b620 100644 ຄົ້ນຫາເພີ່ມເຕີມ ຂັບເຄື່ອນໂດຍ %s. -- +- + ສ່ວນຫນຶ່ງຂອງຄອບຄົວ Firefox. %s @@ -1620,7 +1620,7 @@ index e83da967d..850a7effb 100644 Kituose savo įrenginiuose su „Firefox“ neturite atvertų kortelių. -- +- + Peržiūrėkite kituose įrenginiuose esančias korteles. @@ -1629,7 +1629,7 @@ index e83da967d..850a7effb 100644 Straipsniai pagal temas Atrasti daugiau -- +- + „Firefox“ šeimos dalis. %s @@ -1642,7 +1642,7 @@ index b11bb814b..749bf2351 100644 ടാബ് സമന്വയിപ്പിക്കൽ പ്രാപ്തമാക്കുക. താങ്കളുടെ മറ്റ് ഉപകരണങ്ങളിൽ ഫയർഫോക്സിൽ ടാബുകളൊന്നും തുറന്നതായിട്ടില്ല. -- +- + നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകളുടെ ഒരു ലിസ്റ്റ് കാണുക. @@ -1655,7 +1655,7 @@ index 2a0343a56..e6fae8e4b 100644 ကျေးဇူးပြ၍ တပ်ဗ် ထပ်တူတစ်ပြေးတည်း ဖြစ်စေရန် ဖွင့်ပါ သင့် အခြား စက်ပစ္စည်းများတွင် Firefox ၌ ဖွင့်ထားသော တပ်ဗ်များ မရှိပါ -- +- + သင်၏ အခြားစက်ပစ္စည်းများမှ တပ်ဗ် များ စာရင်းကို ကြည့်ပါ။ @@ -1668,7 +1668,7 @@ index 86347ea1a..a886a1f55 100644 Slå på fanssynkronisering. Du har ingen faner åpne i Firefox på andre enheter. -- +- + Vis en liste over faner fra andre enheter. @@ -1677,7 +1677,7 @@ index 86347ea1a..a886a1f55 100644 Oppdag mer Drevet av %1$s. -- +- + Del av Firefox-familien. %s @@ -1690,7 +1690,7 @@ index 055898750..124b14182 100644 Schakel het synchroniseren van tabbladen in. U hebt geen tabbladen geopend in Firefox op uw andere apparaten. -- +- + Bekijk een lijst met tabbladen van uw overige apparaten. @@ -1699,7 +1699,7 @@ index 055898750..124b14182 100644 Meer ontdekken Mogelijk gemaakt door %s. -- +- + Onderdeel van de Firefox-familie. %s @@ -1712,7 +1712,7 @@ index ce0c47f0c..a3252eaf4 100644 Slå på fane-synkronisering. Du har ingen faner opne i Firefox på andre einingar. -- +- + Vis ei liste over faner frå andre einingar. @@ -1721,7 +1721,7 @@ index ce0c47f0c..a3252eaf4 100644 Oppdag meir Driven av %s. -- +- + Del av Firefox-familien. %s @@ -1734,7 +1734,7 @@ index 25873903b..778186cd8 100644 Activatz la sincronizacion dels onglets. Avètz pas cap d’autres onglets dubèrts sus Firefox de vòstres autres periferics. -- +- + Vejatz la lista dels onglets dels autres periferics. @@ -1743,7 +1743,7 @@ index 25873903b..778186cd8 100644 Ne descobrir mai Fonciona gràcia a %s. -- +- + Membre de la familha Firefox. %s @@ -1756,7 +1756,7 @@ index baccb72bb..245a556ad 100644 ଠିକ୍ ଅଛି -- +- + Firefox ପରିବାରର ଏକ ଅଂଶ। %s @@ -1769,7 +1769,7 @@ index 8abee7324..1d01e9199 100644 ਟੈਬ ਨੂੰ ਸਿੰਕ ਕਰਨਾ ਸਮਰੱਥ ਕਰੋ। ਤੁਹਾਡੇ ਹੋਰ ਡਿਵਾਈਸ ਉੱਤੇ Firefox ਵਿੱਚ ਕੋਈ ਵੀ ਖੋਲ੍ਹੀ ਹੋਈ ਟੈਬ ਨਹੀਂ ਹੈ। -- +- + ਤੁਹਾਡੇ ਹੋਰ ਡਿਵਾਈਸਾਂ ਤੋਂ ਟੈਬਾਂ ਦੀ ਸੂਚੀ ਵੇਖੋ। @@ -1778,7 +1778,7 @@ index 8abee7324..1d01e9199 100644 ਹੋਰ ਲੱਭੋ %s ਦੀ ਸਹਾਇਤਾ ਨਾਲ -- +- + Firefox ਪਰਿਵਾਰ ਦਾ ਹਿੱਸਾ। %s @@ -1791,7 +1791,7 @@ index c268fed78..2e00c6b8b 100644 Brak otwartych kart w Firefoksach na innych urządzeniach. -- +- + Wyświetl listę kart z innych urządzeń. @@ -1800,7 +1800,7 @@ index c268fed78..2e00c6b8b 100644 Odkryj więcej Dostarczane przez %s. -- +- + Część rodziny Firefoksa. %s @@ -1813,7 +1813,7 @@ index ad71b6832..e01fd952e 100644 Você não tem nenhuma aba aberta no Firefox em outros dispositivos. -- +- + Veja uma lista de abas de seus outros dispositivos. @@ -1822,7 +1822,7 @@ index ad71b6832..e01fd952e 100644 Descubra mais Com tecnologia %s. -- +- + Parte da família Firefox. %s @@ -1835,7 +1835,7 @@ index 1885805a7..583d13434 100644 Por favor, ative a sincronização de separadores. Não tem quaisquer separadores abertos no Firefox dos seus outros dispositivos. -- +- + Ver uma lista de separadores dos seus outros dispositivos. @@ -1844,7 +1844,7 @@ index 1885805a7..583d13434 100644 Descobrir mais Suportado por %s. -- +- + Membro da família Firefox. %s @@ -1857,7 +1857,7 @@ index c5c40892d..a5e6bad24 100644 Activescha p.pl. la sincronisaziun da tabs. Ti n\'has nagins tabs da Firefox averts sin auters apparats. -- +- + Mussar ina glista dals tabs da tes auters apparats. @@ -1866,7 +1866,7 @@ index c5c40892d..a5e6bad24 100644 Scuvrir dapli Cun agid da %s. -- +- + Part da la paletta da products Firefox. %s @@ -1879,7 +1879,7 @@ index b6efef041..9246776bb 100644 Te rugăm să activezi sincronizarea filelor. Nu ai nicio filă deschisă în Firefox pe celelalte dispozitive. -- +- + Afișează o listă de file de pe celelalte dispozitive. @@ -1892,7 +1892,7 @@ index 749de3588..6ec82e816 100644 Пожалуйста, включите синхронизацию вкладок. На ваших других устройствах в Firefox не открыто ни одной вкладки. -- +- + Просмотрите список вкладок с других устройств. @@ -1901,7 +1901,7 @@ index 749de3588..6ec82e816 100644 Узнайте больше При поддержке %s. -- +- + Является частью семейства Firefox. %s @@ -1914,7 +1914,7 @@ index db302a987..a96a4790f 100644 ᱫᱚᱭᱟᱠᱟᱛᱮ ᱴᱮᱵᱽ ᱥᱭᱝᱠᱤᱝ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ ᱾ ᱟᱢ ᱴᱷᱮᱱ ᱚᱠᱟ ᱦᱚᱸ ᱴᱮᱵᱽ ᱠᱚ ᱚᱞᱜᱟ Firefox ᱢᱮᱱᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱᱟ ᱾ -- +- + ᱟᱢᱟᱜ ᱮᱴᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵᱽ ᱞᱤᱥᱴᱤ ᱫᱮᱠᱷᱟᱣ ᱢᱮ ᱾ @@ -1923,7 +1923,7 @@ index db302a987..a96a4790f 100644 ᱟᱨᱦᱚᱸ ᱯᱟᱱᱛᱮ ᱧᱟᱢ ᱢᱮ %1$s ᱫᱟᱨᱟᱭ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ ᱾ -- +- + Firefox ᱜᱷᱟᱨᱚᱧᱡᱽ ᱨᱤᱱᱤᱡ ᱦᱟᱹᱴᱤᱧ ᱾ %s @@ -1936,7 +1936,7 @@ index 8b93e08ae..84ed6eab9 100644 Ativa sa sincronizatzione de ischedas. Nissuna ischeda aberta in su Firefox de is àteros dispositivos. -- +- + Ammustra una lista de ischedas abertas in àteros dispositivos tuos. @@ -1945,7 +1945,7 @@ index 8b93e08ae..84ed6eab9 100644 Iscoberi·nde àteros Funtzionat gràtzias a %s. -- +- + Parte de sa famìlia de Firefox. %s @@ -1958,7 +1958,7 @@ index b986ea293..dbbf589a7 100644 පටිති සමමුහූර්තය සබල කරන්න. ඔබගේ අනෙකුත් උපාංගවල ෆයර්ෆොක්ස් පටිති කිසිවක් විවෘත කර නැත. -- +- + ඔබගේ අනෙකුත් උපාංගවල පටිති ලේඛනය බලන්න. @@ -1967,7 +1967,7 @@ index b986ea293..dbbf589a7 100644 තව සොයා ගන්න %s මගින් බලගැන්වේ. -- +- + ෆයර්ෆොක්ස් පවුලේ කොටසකි. %s @@ -1980,7 +1980,7 @@ index 93499e7c6..0694d909e 100644 Vo Firefoxe na svojich ďalších zariadeniach nemáte otvorené žiadne karty. -- +- + Zobraziť zoznam kariet z ostatných zariadení. @@ -1989,7 +1989,7 @@ index 93499e7c6..0694d909e 100644 Objavte ďalšie Vďaka službe %s. -- +- + Súčasť rodiny Firefoxu. %s @@ -2002,7 +2002,7 @@ index cea286416..26b15578e 100644 سوہݨا، ٹیب ہم وقت کرݨ فعال کرو۔ تہاݙیاں ٻیاں ڈیوائساں تے فائرفوکس وچ کوئی ٹیب کائنی کھلے ہوئے۔ -- +- + آپݨیاں ساریاں ڈیوائساں کنوں ٹیباں دی تندیر ݙیکھو۔ @@ -2011,7 +2011,7 @@ index cea286416..26b15578e 100644 ٻیاں لبھو تکڑا تھیا %s ولوں. -- +- + فائرفوکس ٹٻر دا حصہ۔ %s @@ -2024,7 +2024,7 @@ index 91d638d45..fd8e553c8 100644 Omogočite sinhronizacijo zavihkov. V Firefoxu na drugih napravah nimate odprtih drugih zavihkov. -- +- + Oglejte si seznam zavihkov drugih naprav. @@ -2033,7 +2033,7 @@ index 91d638d45..fd8e553c8 100644 Odkrijte več Omogoča %s. -- +- + Del družine Firefox. %s @@ -2046,7 +2046,7 @@ index ea099419b..81fb1eed1 100644 Ju lutemi, aktivizoni njëkohësim skedash. S’keni ndonjë skedë të hapur te Firefox-i në pajisje tuajat të tjera. -- +- + Shihni një listë skedash nga pajisje tuajat të tjera. @@ -2055,7 +2055,7 @@ index ea099419b..81fb1eed1 100644 Zbuloni më tepër Mundësuar nga %s. -- +- + Pjesë e Familjes Firefox. %s @@ -2068,7 +2068,7 @@ index 3c217711d..591a064e2 100644 Немате отворених Firefox језичака на вашим другим уређајима. -- +- + Погледајте списак језичака са ваших других уређаја. @@ -2077,7 +2077,7 @@ index 3c217711d..591a064e2 100644 Откријте више Покреће %s. -- +- + Део Firefox породице. %s @@ -2090,7 +2090,7 @@ index e2207f751..9f61b6629 100644 Mangga hurungkeun singkronan tab. Anjeun teu miboga tab anu muka dina Firefox di séjén paranti anjeun. -- +- + Témbongkeun béréndélan tab ti séjén paranti anjeun. @@ -2099,7 +2099,7 @@ index e2207f751..9f61b6629 100644 Panggihan nu lianna Dijalankeun ku %s. -- +- + Bagéan ti kulawarga Firefox. %s @@ -2112,7 +2112,7 @@ index 74ab848e4..27f29951b 100644 Aktivera fliksynkronisering. Du har inga flikar öppna i Firefox på dina andra enheter. -- +- + Visa en lista med flikar från dina andra enheter. @@ -2121,7 +2121,7 @@ index 74ab848e4..27f29951b 100644 Upptäck mer Tillhandahålls av %s. -- +- + Del av Firefox-familjen. %s @@ -2134,7 +2134,7 @@ index 1c6087544..5f913d817 100644 கீற்று ஒத்திசைவைச் செயற்படுத்துங்கள். உங்களின் மற்ற சாதனங்களின் பயர்பாக்சில் திறந்த கீற்றுகள் ஏதுமில்லை. -- +- + உங்கள் மற்ற கருவிகளிலிருந்து கீற்றுகளின் பட்டியலைப் பார்க்க. @@ -2147,7 +2147,7 @@ index cf4b7ad9a..2155498de 100644 దయచేసి ట్యాబు సింకింగును చేతనం చేయండి. మీ ఇతర పరికరాల్లో తెరిచివున్న Firefox ట్యాబులు ఏమీ లేవు. -- +- + మీ ఇతర పరికరాల నుండి ట్యాబుల జాబితాను చూడండి. @@ -2160,7 +2160,7 @@ index 4ae0da3cf..eae31e705 100644 Лутфан ҳамоҳангсозии варақаҳоро фаъол кунед. Шумо дар дастгоҳҳои дигари худ дар Firefox ягон варақаи кушодашуда надоред. -- +- + Дидани рӯйхати варақаҳо аз дастгоҳҳои дигар. @@ -2169,7 +2169,7 @@ index 4ae0da3cf..eae31e705 100644 Бештар омӯзед Аз ҷониби «%s» таъмин карда шудааст. -- +- + Қисми оилаи Firefox.%s @@ -2182,7 +2182,7 @@ index 152ab7fc3..84f118c84 100644 โปรดเปิดใช้งานซิงค์แท็บ คุณไม่มีแท็บใด ๆ ที่เปิดอยู่ใน Firefox บนอุปกรณ์อื่น ๆ ของคุณ -- +- + ดูรายการแท็บจากอุปกรณ์อื่น ๆ ของคุณ @@ -2191,7 +2191,7 @@ index 152ab7fc3..84f118c84 100644 ค้นพบสิ่งอื่น ขับเคลื่อนโดย %s -- +- + ส่วนหนึ่งของตระกูล Firefox %s @@ -2204,7 +2204,7 @@ index 280f1e5b0..e54478ee3 100644 Paki-enable ang pag-sync ng tab. Wala kang mga nakabukas na tab sa Firefox sa iba mo pang mga device. -- +- + Tingnan ang listahan ng mga tab mula sa iba mong mga device. @@ -2217,7 +2217,7 @@ index 1784c728d..54e4d8287 100644 Lütfen sekme eşitlemeyi etkinleştirin. Diğer cihazlarınızdaki Firefox’larda hiç açık sekme yok. -- +- + Diğer cihazlarınızdaki sekmelerin listesini görün. @@ -2226,7 +2226,7 @@ index 1784c728d..54e4d8287 100644 Daha fazlasını keşfedin %s desteğiyle. -- +- + Firefox ailesinden. %s @@ -2239,7 +2239,7 @@ index 7992a88b7..b8b618370 100644 Gi\'iaj sunūj u, nāchrūn sa nāgi\'iaj nūguàn\'ànt nej rakïj ñanj. Nitāj à\'ngō rakïj ñanj huā nî\'nïnj riña Firefox riña a\'ngô nej si āgâ\'t. -- +- + Gīni\'iāj \'ngō dukuán rakïj ñanj nīkāj a\'ngô nej si āgâ\'t. @@ -2248,7 +2248,7 @@ index 7992a88b7..b8b618370 100644 Gīni’in doj sa huāa Rugûñu\'ūnj sa gu\'nàj %s. -- +- + Dugui’ yi’nïn’ Firefox huin. %s @@ -2261,7 +2261,7 @@ index 8afb2dc55..75c15784c 100644 Зинһар, таблар синхронлауны кабызыгыз. Башка җиһазларыгыздагы Firefox-ларда ачык таблар юк. -- +- + Башка җиһазларыгызда ачылган таблар исемлеген карау. @@ -2270,7 +2270,7 @@ index 8afb2dc55..75c15784c 100644 Темалар буенча хикәяләр Күбрәген күрү -- +- + Firefox гаиләсеннән. %s @@ -2283,7 +2283,7 @@ index d0b0e1fdf..11b4fe4c8 100644 بەتكۈچ قەدەمداشنى قوزغىتىڭ. كونا ئۈسكۈنىڭىزدە Firefox دا ھېچقانداق بەتكۈچ ئاچمىغان. -- +- + باشقا ئۈسكۈنىڭىزدىن بەتكۈچ تىزىمىنى كۆرسىتىدۇ. @@ -2292,7 +2292,7 @@ index d0b0e1fdf..11b4fe4c8 100644 تېخىمۇ كۆپ بايقاش تەمىنلىگۈچى %1$s. -- +- + Firefox جەمەتىنىڭ بىر قىسمى. %s @@ -2305,7 +2305,7 @@ index b9f1506f0..3cc35d77d 100644 Увімкніть синхронізацію вкладок. У вас немає вкладок, відкритих у Firefox на інших пристроях. -- +- + Переглядайте список вкладок з ваших інших пристроїв. @@ -2314,7 +2314,7 @@ index b9f1506f0..3cc35d77d 100644 Знайти більше Від %s. -- +- + Частина родини Firefox. %s @@ -2327,7 +2327,7 @@ index 11a3a52ad..9cbad4ac7 100644 براہ کرم ٹیب sync کو فعال کریں۔ آپ کے دوسرے آلات پر Firefox میں کوئی ٹیب نہیں کھلے ہوئِے ہیں۔ -- +- + دیگر آلات سے ٹیبیں کی فہرست دیکھیں۔ @@ -2336,7 +2336,7 @@ index 11a3a52ad..9cbad4ac7 100644 موضوع کے لحاظ سے کہانیاں مزید تلاش کریں -- +- + %s کے خاندان کا حصہ @@ -2349,7 +2349,7 @@ index df507d734..54da5fc81 100644 Moslash -- Varaq va xatchoʻplarni sinxronlash uchun hisobingizga kiring. +- Varaq va xatchoʻplarni sinxronlash uchun hisoleosearchizga kiring. + Varaq va xatchoʻplarni sinxronlash uchun hisoleosearchizga kiring. Firefox hisobi @@ -2358,7 +2358,7 @@ index df507d734..54da5fc81 100644 Jildni tahrirlash -- Sinxronlangan xatchoʻplarni koʻrish uchun hisobingizga kiring +- Sinxronlangan xatchoʻplarni koʻrish uchun hisoleosearchizga kiring + Sinxronlangan xatchoʻplarni koʻrish uchun hisoleosearchizga kiring URL @@ -2367,7 +2367,7 @@ index df507d734..54da5fc81 100644 Vaqtinchalik xotiraga nusxalalandi -- Sinxronlash uchun hisobingizga kiring +- Sinxronlash uchun hisoleosearchizga kiring + Sinxronlash uchun hisoleosearchizga kiring Sinxronizatsiya va maʼlumotlarni saqlash @@ -2376,10 +2376,10 @@ index df507d734..54da5fc81 100644 Buning oʻrniga e-pochtadan foydalaning -- Unda yangisini yarating va Firefoxni qurilmalararo sinxronlang.]]> +- Unda yangisini yarating va Firefoxni qurilmalararo sinxronlang.]]> + Unda yangisini yarating va Firefoxni qurilmalararo sinxronlang.]]> -- %s hisobingiz bilan sinxronlashni toʻxtatadi, ammo qurilmangizdagi brauzer tarixini oʻchirmaydi. +- %s hisoleosearchiz bilan sinxronlashni toʻxtatadi, ammo qurilmangizdagi brauzer tarixini oʻchirmaydi. + %s hisoleosearchiz bilan sinxronlashni toʻxtatadi, ammo qurilmangizdagi brauzer tarixini oʻchirmaydi. Aloqani uzish @@ -2388,11 +2388,11 @@ index df507d734..54da5fc81 100644 Varaq sinxronizatsiyasini yoqing Boshqa qurilmlaringizdagi Firefoxda hech qanday varaq ochiq emas. -- +- + Boshqa qurilmalaringizdagi varaqlar roʻyxatini koʻrish. -- Sinxronlash uchun hisobingizga kiring +- Sinxronlash uchun hisoleosearchizga kiring + Sinxronlash uchun hisoleosearchizga kiring @@ -2401,7 +2401,7 @@ index df507d734..54da5fc81 100644 Koʻproq bilib oling %s tomonidan quvvatlanadi. -- +- + Firefox oilasining bir qismi hisoblanadi. %s @@ -2414,7 +2414,7 @@ index 3dc25d14d..763f18615 100644 Vui lòng bật đồng bộ hóa thẻ. Bạn không có bất kỳ thẻ nào mở trong Firefox trên các thiết bị khác của bạn. -- +- + Xem danh sách các thẻ từ các thiết bị khác của bạn. @@ -2423,7 +2423,7 @@ index 3dc25d14d..763f18615 100644 Khám phá thêm nữa Được cung cấp bởi %s. -- +- + Một phần của gia đình Firefox. %s @@ -2436,7 +2436,7 @@ index 6016844b8..e2273cb0d 100644 Jọ̀wọ́ gba ìṣepọ̀ táàbù láyè. O ò ní àwọn táàbù tí ó wà ní ṣíṣí ní Firefox lórí àwọn ẹ̀rọ rẹ tó kù. -- +- + Ṣe àfihàn àtòjọ àwọn táàbù láti àwọn ẹ̀rọ̀ rẹ̀ tó kù. @@ -2445,7 +2445,7 @@ index 6016844b8..e2273cb0d 100644 Ṣàwárí si Pocket ni onígbọ̀wọ́. -- +- + Ara ìdílé Firefox. %s @@ -2458,7 +2458,7 @@ index e8d1625a3..f3a6372ce 100644 请启用标签页同步。 您其他设备上的 Firefox 没有打开任何标签页。 -- +- + 查看您其他设备上的标签页列表。 @@ -2467,7 +2467,7 @@ index e8d1625a3..f3a6372ce 100644 探索更多 由 %s 提供。 -- +- + Firefox 系列产品。%s @@ -2480,7 +2480,7 @@ index 05ac104d5..0023a6710 100644 請開啟分頁同步。 您其他裝置上的 Firefox 沒有任何開啟的分頁。 -- +- + 檢視您其他裝置中的分頁清單。 @@ -2489,7 +2489,7 @@ index 05ac104d5..0023a6710 100644 探索更多 由 %s 提供。 -- +- + Firefox 系列產品。%s @@ -2502,7 +2502,7 @@ index c7fc9088d..c333fed6f 100644 Please enable tab syncing. You don’t have any tabs open in Firefox on your other devices. -- +- + View a list of tabs from your other devices. @@ -2511,7 +2511,7 @@ index c7fc9088d..c333fed6f 100644 Discover more Powered by %s. -- +- + Part of the Firefox family. %s @@ -2524,7 +2524,7 @@ index 4e6ca6a5d..7ba6734a9 100644 } @Test -- fun `GIVEN there are unsupported addons installed WHEN subscribing for new add-ons checks THEN register for checks`() { +- fun `GIVEN there are unsupported addons installed WHEN subscrileosearch for new add-ons checks THEN register for checks`() { + fun `GIVEN there are unsupported addons installed WHEN subscrileosearch for new add-ons checks THEN register for checks`() { val checker = mockk(relaxed = true) val unSupportedExtension: WebExtension = mockk() @@ -2533,7 +2533,7 @@ index 4e6ca6a5d..7ba6734a9 100644 } @Test -- fun `GIVEN there are no unsupported addons installed WHEN subscribing for new add-ons checks THEN unregister for checks`() { +- fun `GIVEN there are no unsupported addons installed WHEN subscrileosearch for new add-ons checks THEN unregister for checks`() { + fun `GIVEN there are no unsupported addons installed WHEN subscrileosearch for new add-ons checks THEN unregister for checks`() { val checker = mockk(relaxed = true) val unSupportedExtension: WebExtension = mockk() @@ -2546,10 +2546,10 @@ index 4a629ef5a..cd0c69053 100644 { "default": { "searchDefault": "DuckDuckGo", -- "searchOrder": ["Google", "Bing"], +- "searchOrder": ["Google", "LeOSearch"], + "searchOrder": ["Google", "LeOSearch"], "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" ] }, @@ -2558,7 +2558,7 @@ index 4a629ef5a..cd0c69053 100644 "ach": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia", "startpage", "brave" ] } @@ -2566,7 +2566,7 @@ index 4a629ef5a..cd0c69053 100644 "an": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-an", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-an", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-an", "startpage", "brave" ] } @@ -2574,7 +2574,7 @@ index 4a629ef5a..cd0c69053 100644 "ar": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ar", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ar", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ar", "startpage", "brave" ] } @@ -2582,7 +2582,7 @@ index 4a629ef5a..cd0c69053 100644 "as": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-as", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-as", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-as", "startpage", "brave" ] } @@ -2590,7 +2590,7 @@ index 4a629ef5a..cd0c69053 100644 "ast": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ast", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ast", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ast", "startpage", "brave" ] } @@ -2598,7 +2598,7 @@ index 4a629ef5a..cd0c69053 100644 "az": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "azerdict", "wikipedia-az", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "azerdict", "wikipedia-az", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "azerdict", "wikipedia-az", "startpage", "brave" ] } @@ -2606,31 +2606,31 @@ index 4a629ef5a..cd0c69053 100644 "be": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-be", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" ] }, "BY": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" ] }, "KZ": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" ] }, "RU": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" ] }, "TR": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-be", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-be", "startpage", "brave" ] } @@ -2638,7 +2638,7 @@ index 4a629ef5a..cd0c69053 100644 "bg": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "pazaruvaj", "wikipedia-bg", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "pazaruvaj", "wikipedia-bg", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "pazaruvaj", "wikipedia-bg", "startpage", "brave" ] } @@ -2646,7 +2646,7 @@ index 4a629ef5a..cd0c69053 100644 "bn": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bn", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-bn", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-bn", "startpage", "brave" ] } @@ -2654,7 +2654,7 @@ index 4a629ef5a..cd0c69053 100644 "bn-BD": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bn", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-bn", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-bn", "startpage", "brave" ] } @@ -2662,7 +2662,7 @@ index 4a629ef5a..cd0c69053 100644 "bn-IN": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "rediff", "wikipedia-bn", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "rediff", "wikipedia-bn", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "rediff", "wikipedia-bn", "startpage", "brave" ] } @@ -2670,7 +2670,7 @@ index 4a629ef5a..cd0c69053 100644 "br": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-br", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-br", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-br", "startpage", "brave" ] } @@ -2678,7 +2678,7 @@ index 4a629ef5a..cd0c69053 100644 "bs": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-bs", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-bs", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-bs", "startpage", "brave" ] } @@ -2687,7 +2687,7 @@ index 4a629ef5a..cd0c69053 100644 "cs": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz", "startpage", "brave" ] } @@ -2695,7 +2695,7 @@ index 4a629ef5a..cd0c69053 100644 "cy": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "wikipedia-cy", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-cy", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-cy", "startpage", "brave" ] } @@ -2704,7 +2704,7 @@ index 4a629ef5a..cd0c69053 100644 "de": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de", "startpage", "brave" + "google-b-m", "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de", "startpage", "brave" ] } @@ -2712,7 +2712,7 @@ index 4a629ef5a..cd0c69053 100644 "de-AT": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at", "startpage", "brave" + "google-b-m", "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at", "startpage", "brave" ] } @@ -2720,7 +2720,7 @@ index 4a629ef5a..cd0c69053 100644 "dsb": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de", "startpage", "brave" + "google-b-m", "leosearch", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de", "startpage", "brave" ] } @@ -2728,7 +2728,7 @@ index 4a629ef5a..cd0c69053 100644 "el": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "skroutz", "wikipedia-el", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "skroutz", "wikipedia-el", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "skroutz", "wikipedia-el", "startpage", "brave" ] } @@ -2736,7 +2736,7 @@ index 4a629ef5a..cd0c69053 100644 "en-AU": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-au", "ddg", "wikipedia", "ebay-au", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-au", "ddg", "wikipedia", "ebay-au", "startpage", "brave" + "google-b-m", "leosearch", "amazon-au", "ddg", "wikipedia", "ebay-au", "startpage", "brave" ] } @@ -2744,7 +2744,7 @@ index 4a629ef5a..cd0c69053 100644 "en-CA": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-ca", "ddg", "wikipedia", "ebay-ca", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-ca", "ddg", "wikipedia", "ebay-ca", "startpage", "brave" + "google-b-m", "leosearch", "amazon-ca", "ddg", "wikipedia", "ebay-ca", "startpage", "brave" ] } @@ -2752,7 +2752,7 @@ index 4a629ef5a..cd0c69053 100644 "en-IE": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie", "startpage", "brave" ] } @@ -2760,31 +2760,31 @@ index 4a629ef5a..cd0c69053 100644 "en-GB": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk", "startpage", "brave" ] }, "BY": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" ] }, "KZ": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" ] }, "RU": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" ] }, "TR": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "startpage", "brave" ] } @@ -2792,31 +2792,31 @@ index 4a629ef5a..cd0c69053 100644 "en-US": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "ebay", "wikipedia", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "ebay", "wikipedia", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "ebay", "wikipedia", "startpage", "brave" ] }, "BY": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" ] }, "KZ": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" ] }, "RU": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" ] }, "TR": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" +- "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" + "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia", "startpage", "brave" ] } @@ -2825,7 +2825,7 @@ index 4a629ef5a..cd0c69053 100644 "eo": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "reta-vortaro", "wikipedia-eo", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "reta-vortaro", "wikipedia-eo", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "reta-vortaro", "wikipedia-eo", "startpage", "brave" ] } @@ -2834,7 +2834,7 @@ index 4a629ef5a..cd0c69053 100644 "es-CL": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "mercadolibre-cl", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "mercadolibre-cl", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "mercadolibre-cl", "wikipedia-es", "startpage", "brave" ] } @@ -2842,7 +2842,7 @@ index 4a629ef5a..cd0c69053 100644 "es-ES": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-es", "amazon-es", "ebay-es", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-es", "amazon-es", "ebay-es", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-es", "amazon-es", "ebay-es", "startpage", "brave" ] } @@ -2850,7 +2850,7 @@ index 4a629ef5a..cd0c69053 100644 "es-MX": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es", "startpage", "brave" ] } @@ -2859,7 +2859,7 @@ index 4a629ef5a..cd0c69053 100644 "eu": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "elebila", "wikipedia-eu", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "elebila", "wikipedia-eu", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "elebila", "wikipedia-eu", "startpage", "brave" ] } @@ -2867,7 +2867,7 @@ index 4a629ef5a..cd0c69053 100644 "fa": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-fa", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-fa", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-fa", "startpage", "brave" ] } @@ -2875,7 +2875,7 @@ index 4a629ef5a..cd0c69053 100644 "ff": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-fr", "ddg", "wikipedia-fr", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-fr", "ddg", "wikipedia-fr", "startpage", "brave" + "google-b-m", "leosearch", "amazon-fr", "ddg", "wikipedia-fr", "startpage", "brave" ] } @@ -2884,7 +2884,7 @@ index 4a629ef5a..cd0c69053 100644 "fr-BE": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "qwant", "wikipedia-fr", "ebay-befr", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "ebay-befr", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "ebay-befr", "startpage", "brave" ] } @@ -2892,7 +2892,7 @@ index 4a629ef5a..cd0c69053 100644 "fr-CA": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca", "startpage", "brave" + "google-b-m", "leosearch", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca", "startpage", "brave" ] } @@ -2900,7 +2900,7 @@ index 4a629ef5a..cd0c69053 100644 "fr-FR": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr", "startpage", "brave" ] } @@ -2908,7 +2908,7 @@ index 4a629ef5a..cd0c69053 100644 "fr": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "qwant", "wikipedia-fr", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "qwant", "wikipedia-fr", "startpage", "brave" ] } @@ -2917,7 +2917,7 @@ index 4a629ef5a..cd0c69053 100644 "gd": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "faclair-beag", "wikipedia-gd", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "faclair-beag", "wikipedia-gd", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "faclair-beag", "wikipedia-gd", "startpage", "brave" ] } @@ -2925,7 +2925,7 @@ index 4a629ef5a..cd0c69053 100644 "gl": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-gl", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-gl", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-gl", "startpage", "brave" ] } @@ -2933,7 +2933,7 @@ index 4a629ef5a..cd0c69053 100644 "gn": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-gn", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-gn", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-gn", "startpage", "brave" ] } @@ -2941,7 +2941,7 @@ index 4a629ef5a..cd0c69053 100644 "gu-IN": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-gu", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-gu", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-gu", "startpage", "brave" ] } @@ -2949,7 +2949,7 @@ index 4a629ef5a..cd0c69053 100644 "he": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-he", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-he", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-he", "startpage", "brave" ] } @@ -2957,7 +2957,7 @@ index 4a629ef5a..cd0c69053 100644 "hi-IN": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" ] } @@ -2965,7 +2965,7 @@ index 4a629ef5a..cd0c69053 100644 "hr": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "wikipedia-hr", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-hr", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-hr", "startpage", "brave" ] } @@ -2973,7 +2973,7 @@ index 4a629ef5a..cd0c69053 100644 "hsb": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de", "startpage", "brave" + "google-b-m", "leosearch", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de", "startpage", "brave" ] } @@ -2982,7 +2982,7 @@ index 4a629ef5a..cd0c69053 100644 "hy-AM": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-hy-AM", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-hy-AM", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-hy-AM", "startpage", "brave" ] } @@ -2990,7 +2990,7 @@ index 4a629ef5a..cd0c69053 100644 "ia": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ia", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ia", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ia", "startpage", "brave" ] } @@ -2998,7 +2998,7 @@ index 4a629ef5a..cd0c69053 100644 "id": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-id", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-id", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-id", "startpage", "brave" ] } @@ -3006,7 +3006,7 @@ index 4a629ef5a..cd0c69053 100644 "is": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "leit-is", "wikipedia-is", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "leit-is", "wikipedia-is", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "leit-is", "wikipedia-is", "startpage", "brave" ] } @@ -3014,7 +3014,7 @@ index 4a629ef5a..cd0c69053 100644 "it": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-it", "amazon-it", "ebay-it", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-it", "amazon-it", "ebay-it", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-it", "amazon-it", "ebay-it", "startpage", "brave" ] } @@ -3022,7 +3022,7 @@ index 4a629ef5a..cd0c69053 100644 "ja": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "amazon-jp", "bing", "ddg", "wikipedia-ja", "yahoo-jp", "startpage", "brave" +- "google-b-m", "amazon-jp", "leosearch", "ddg", "wikipedia-ja", "yahoo-jp", "startpage", "brave" + "google-b-m", "amazon-jp", "leosearch", "ddg", "wikipedia-ja", "yahoo-jp", "startpage", "brave" ] } @@ -3030,7 +3030,7 @@ index 4a629ef5a..cd0c69053 100644 "ka": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ka", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ka", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ka", "startpage", "brave" ] } @@ -3038,7 +3038,7 @@ index 4a629ef5a..cd0c69053 100644 "kab": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-kab", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-kab", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-kab", "startpage", "brave" ] } @@ -3046,31 +3046,31 @@ index 4a629ef5a..cd0c69053 100644 "kk": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-kk", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" ] }, "KZ": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" ] }, "BY": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" ] }, "RU": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" ] }, "TR": { "visibleDefaultEngines": [ -- "google-com-nocodes", "bing", "ddg", "wikipedia-kk", "startpage", "brave" +- "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" + "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk", "startpage", "brave" ] } @@ -3078,7 +3078,7 @@ index 4a629ef5a..cd0c69053 100644 "km": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-km", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-km", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-km", "startpage", "brave" ] } @@ -3086,7 +3086,7 @@ index 4a629ef5a..cd0c69053 100644 "kn": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn", "startpage", "brave" ] } @@ -3095,7 +3095,7 @@ index 4a629ef5a..cd0c69053 100644 "lij": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-it", "ddg", "wikipedia-lij", "ebay-it", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-it", "ddg", "wikipedia-lij", "ebay-it", "startpage", "brave" + "google-b-m", "leosearch", "amazon-it", "ddg", "wikipedia-lij", "ebay-it", "startpage", "brave" ] } @@ -3103,7 +3103,7 @@ index 4a629ef5a..cd0c69053 100644 "lo": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-lo", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-lo", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-lo", "startpage", "brave" ] } @@ -3112,7 +3112,7 @@ index 4a629ef5a..cd0c69053 100644 "ltg": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "wikipedia-ltg", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "wikipedia-ltg", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "wikipedia-ltg", "startpage", "brave" ] } @@ -3121,7 +3121,7 @@ index 4a629ef5a..cd0c69053 100644 "mai": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-hi", "startpage", "brave" ] } @@ -3129,7 +3129,7 @@ index 4a629ef5a..cd0c69053 100644 "meh": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" ] } @@ -3137,7 +3137,7 @@ index 4a629ef5a..cd0c69053 100644 "mix": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" ] } @@ -3145,7 +3145,7 @@ index 4a629ef5a..cd0c69053 100644 "ml": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-ml", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-ml", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-ml", "startpage", "brave" ] } @@ -3153,7 +3153,7 @@ index 4a629ef5a..cd0c69053 100644 "mr": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "rediff", "wikipedia-mr", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "rediff", "wikipedia-mr", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "rediff", "wikipedia-mr", "startpage", "brave" ] } @@ -3161,7 +3161,7 @@ index 4a629ef5a..cd0c69053 100644 "ms": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-ms", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ms", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-ms", "startpage", "brave" ] } @@ -3169,7 +3169,7 @@ index 4a629ef5a..cd0c69053 100644 "my": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-my", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-my", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-my", "startpage", "brave" ] } @@ -3178,7 +3178,7 @@ index 4a629ef5a..cd0c69053 100644 "ne-NP": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-ne", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-ne", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-ne", "startpage", "brave" ] } @@ -3186,7 +3186,7 @@ index 4a629ef5a..cd0c69053 100644 "nl-NL": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl", "startpage", "brave" ] } @@ -3194,7 +3194,7 @@ index 4a629ef5a..cd0c69053 100644 "nl": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-nl", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-nl", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-nl", "startpage", "brave" ] } @@ -3203,7 +3203,7 @@ index 4a629ef5a..cd0c69053 100644 "oc": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-oc", "wiktionary-oc", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-oc", "wiktionary-oc", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-oc", "wiktionary-oc", "startpage", "brave" ] } @@ -3211,7 +3211,7 @@ index 4a629ef5a..cd0c69053 100644 "or": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or", "startpage", "brave" ] } @@ -3219,7 +3219,7 @@ index 4a629ef5a..cd0c69053 100644 "pa-IN": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pa", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-pa", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-pa", "startpage", "brave" ] } @@ -3227,7 +3227,7 @@ index 4a629ef5a..cd0c69053 100644 "pl": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pl", "ebay-pl", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-pl", "ebay-pl", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-pl", "ebay-pl", "startpage", "brave" ] } @@ -3235,7 +3235,7 @@ index 4a629ef5a..cd0c69053 100644 "pt-BR": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-pt", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-pt", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-pt", "startpage", "brave" ] } @@ -3244,7 +3244,7 @@ index 4a629ef5a..cd0c69053 100644 "rm": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "leo_ende_de", "pledarigrond", "wikipedia-rm", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "leo_ende_de", "pledarigrond", "wikipedia-rm", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "leo_ende_de", "pledarigrond", "wikipedia-rm", "startpage", "brave" ] } @@ -3253,7 +3253,7 @@ index 4a629ef5a..cd0c69053 100644 "son": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "ddg", "bing", "amazon-fr", "wikipedia-fr", "startpage", "brave" +- "google-b-m", "ddg", "leosearch", "amazon-fr", "wikipedia-fr", "startpage", "brave" + "google-b-m", "ddg", "leosearch", "amazon-fr", "wikipedia-fr", "startpage", "brave" ] } @@ -3261,7 +3261,7 @@ index 4a629ef5a..cd0c69053 100644 "sq": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-co-uk", "ddg", "wikipedia-sq", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-sq", "startpage", "brave" + "google-b-m", "leosearch", "amazon-co-uk", "ddg", "wikipedia-sq", "startpage", "brave" ] } @@ -3269,7 +3269,7 @@ index 4a629ef5a..cd0c69053 100644 "sr": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-sr", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-sr", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-sr", "startpage", "brave" ] } @@ -3278,7 +3278,7 @@ index 4a629ef5a..cd0c69053 100644 "ta": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta", "startpage", "brave" ] } @@ -3286,7 +3286,7 @@ index 4a629ef5a..cd0c69053 100644 "te": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te", "startpage", "brave" ] } @@ -3295,7 +3295,7 @@ index 4a629ef5a..cd0c69053 100644 "tl": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "startpage", "brave" ] } @@ -3304,7 +3304,7 @@ index 4a629ef5a..cd0c69053 100644 "trs": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-es", "startpage", "brave" ] } @@ -3313,7 +3313,7 @@ index 4a629ef5a..cd0c69053 100644 "ur": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazon-in", "ddg", "wikipedia-ur", "startpage", "brave" +- "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-ur", "startpage", "brave" + "google-b-m", "leosearch", "amazon-in", "ddg", "wikipedia-ur", "startpage", "brave" ] } @@ -3321,7 +3321,7 @@ index 4a629ef5a..cd0c69053 100644 "uz": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "amazondotcom", "ddg", "wikipedia-uz", "startpage", "brave" +- "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-uz", "startpage", "brave" + "google-b-m", "leosearch", "amazondotcom", "ddg", "wikipedia-uz", "startpage", "brave" ] } @@ -3330,7 +3330,7 @@ index 4a629ef5a..cd0c69053 100644 "wo": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-wo", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-wo", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-wo", "startpage", "brave" ] } @@ -3338,7 +3338,7 @@ index 4a629ef5a..cd0c69053 100644 "xh": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia", "startpage", "brave" ] } @@ -3346,7 +3346,7 @@ index 4a629ef5a..cd0c69053 100644 "zam": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-es", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-es", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-es", "startpage", "brave" ] } @@ -3354,7 +3354,7 @@ index 4a629ef5a..cd0c69053 100644 "zh-CN": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "baidu", "bing", "ddg", "wikipedia-zh-CN", "startpage", "brave" +- "google-b-m", "baidu", "leosearch", "ddg", "wikipedia-zh-CN", "startpage", "brave" + "google-b-m", "baidu", "leosearch", "ddg", "wikipedia-zh-CN", "startpage", "brave" ] } @@ -3362,7 +3362,7 @@ index 4a629ef5a..cd0c69053 100644 "zh-TW": { "default": { "visibleDefaultEngines": [ -- "google-b-m", "bing", "ddg", "wikipedia-zh-TW", "startpage", "brave" +- "google-b-m", "leosearch", "ddg", "wikipedia-zh-TW", "startpage", "brave" + "google-b-m", "leosearch", "ddg", "wikipedia-zh-TW", "startpage", "brave" ] } @@ -3375,7 +3375,7 @@ index d11e45db5..886ac6f8e 100644 fun gitLogSince(sha: String): String { val returnAsString = "--no-pager" val maxCount = "-500" -- // There is no plumbing version of 'git log', but pretty formatting provides a +- // There is no plumleosearch version of 'git log', but pretty formatting provides a + // There is no plumleosearch version of 'git log', but pretty formatting provides a // mostly consistent return value // See: https://stackoverflow.com/a/53584289/9307461 @@ -3388,7 +3388,7 @@ index 4bfd5c8f8..0a3ce1ca8 100644 The actual components' inflated views are dropped into ConstraintLayouts and are tied together by applying programmatic ConstraintSets. ConstraintLayouts and ConstraintSets also tie nicely into the new and ultra-powerful MotionLayouts to empower rich animations. --Here are some videos of Juliano Moraes of Netflix describing their architecture: +-Here are some videos of Juliano Moraes of Netflix descrileosearch their architecture: +Here are some videos of Juliano Moraes of Netflix descrileosearch their architecture: [DroidCon NYC part 1 video](https://www.youtube.com/watch?v=dS9gho9Rxn4) diff --git a/patches/0013-AddOn_HomeFragment.patch b/0013-AddOn_HomeFragment.patch similarity index 100% rename from patches/0013-AddOn_HomeFragment.patch rename to 0013-AddOn_HomeFragment.patch diff --git a/patches/0014-startup_screen.patch b/0014-startup_screen.patch similarity index 100% rename from patches/0014-startup_screen.patch rename to 0014-startup_screen.patch diff --git a/patches/0016-splash_screen.patch b/0016-splash_screen.patch similarity index 100% rename from patches/0016-splash_screen.patch rename to 0016-splash_screen.patch diff --git a/patches/0017-Browser_Text.patch b/0017-Browser_Text.patch similarity index 93% rename from patches/0017-Browser_Text.patch rename to 0017-Browser_Text.patch index 603c6082..787443f9 100644 --- a/patches/0017-Browser_Text.patch +++ b/0017-Browser_Text.patch @@ -18,1055 +18,7 @@ Subject: [PATCH] Browser_Text .../res/drawable/ic_wordmark_text_private.png | Bin 24923 -> 25628 bytes 12 files changed, 8 insertions(+), 1033 deletions(-) -diff --git a/app/src/debug/res/drawable/animated_splash_screen.xml b/app/src/debug/res/drawable/animated_splash_screen.xml -index e2b7ead51..74d441577 100644 ---- a/app/src/debug/res/drawable/animated_splash_screen.xml -+++ b/app/src/debug/res/drawable/animated_splash_screen.xml -@@ -1,1036 +1,11 @@ -+ - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ + diff --git a/app/src/forkRelease/res/drawable-hdpi/ic_logo_wordmark_normal.png b/app/src/forkRelease/res/drawable-hdpi/ic_logo_wordmark_normal.png index 337ee573bdeeeeef3845345392e611e8380b491d..b1dbf6b99b5db5bdfab68acf3c981aefecb13f8b 100644 GIT binary patch diff --git a/SettingsSubMenuSearchRobot.kt b/SettingsSubMenuSearchRobot.kt deleted file mode 100644 index 310e0dba..00000000 --- a/SettingsSubMenuSearchRobot.kt +++ /dev/null @@ -1,473 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -@file:Suppress("TooManyFunctions") - -package org.mozilla.fenix.ui.robots - -import androidx.compose.ui.test.SemanticsMatcher -import androidx.compose.ui.test.assert -import androidx.compose.ui.test.assertIsDisplayed -import androidx.compose.ui.test.hasAnySibling -import androidx.compose.ui.test.hasContentDescription -import androidx.compose.ui.test.hasText -import androidx.compose.ui.test.junit4.ComposeTestRule -import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performClick -import androidx.recyclerview.widget.RecyclerView -import androidx.test.espresso.Espresso.closeSoftKeyboard -import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.ViewInteraction -import androidx.test.espresso.action.ViewActions.clearText -import androidx.test.espresso.action.ViewActions.click -import androidx.test.espresso.action.ViewActions.typeText -import androidx.test.espresso.assertion.ViewAssertions.matches -import androidx.test.espresso.contrib.RecyclerViewActions -import androidx.test.espresso.matcher.ViewMatchers -import androidx.test.espresso.matcher.ViewMatchers.hasDescendant -import androidx.test.espresso.matcher.ViewMatchers.hasSibling -import androidx.test.espresso.matcher.ViewMatchers.isDisplayed -import androidx.test.espresso.matcher.ViewMatchers.withChild -import androidx.test.espresso.matcher.ViewMatchers.withClassName -import androidx.test.espresso.matcher.ViewMatchers.withContentDescription -import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility -import androidx.test.espresso.matcher.ViewMatchers.withId -import androidx.test.espresso.matcher.ViewMatchers.withText -import androidx.test.uiautomator.By -import androidx.test.uiautomator.UiSelector -import org.hamcrest.CoreMatchers -import org.hamcrest.Matchers.allOf -import org.hamcrest.Matchers.endsWith -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue -import org.mozilla.fenix.R -import org.mozilla.fenix.helpers.DataGenerationHelper.getAvailableSearchEngines -import org.mozilla.fenix.helpers.DataGenerationHelper.getRegionSearchEnginesList -import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource -import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists -import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText -import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort -import org.mozilla.fenix.helpers.TestHelper.hasCousin -import org.mozilla.fenix.helpers.TestHelper.mDevice -import org.mozilla.fenix.helpers.TestHelper.packageName -import org.mozilla.fenix.helpers.click -import org.mozilla.fenix.helpers.isChecked -import org.mozilla.fenix.helpers.isEnabled - -/** - * Implementation of Robot Pattern for the settings search sub menu. - */ -class SettingsSubMenuSearchRobot { - fun verifyToolbarText(title: String) { - onView( - allOf( - withId(R.id.navigationToolbar), - hasDescendant(withContentDescription(R.string.action_bar_up_description)), - hasDescendant(withText(title)), - ), - ).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - } - - fun verifySearchEnginesSectionHeader() { - onView(withText("Search engines")).check(matches(isDisplayed())) - } - - fun verifyDefaultSearchEngineHeader() { - defaultSearchEngineHeader - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - } - - fun verifyDefaultSearchEngineSummary(engineName: String) { - defaultSearchEngineHeader.check(matches(hasSibling(withText(engineName)))) - } - - fun verifyManageSearchShortcutsHeader() { - manageSearchShortcutsHeader.check(matches(isDisplayed())) - } - - fun verifyManageShortcutsSummary() { - manageSearchShortcutsHeader - .check(matches(hasSibling(withText("Edit engines visible in the search menu")))) - } - - fun verifyEnginesShortcutsListHeader() = - assertUIObjectExists(itemWithText("Engines visible on the search menu")) - - fun verifyAddressBarSectionHeader() { - onView(withText("Address bar - Firefox Suggest")).check(matches(isDisplayed())) - } - - fun verifyDefaultSearchEngineList() { - defaultSearchEngineOption("LeOSearch") - .check(matches(hasSibling(withId(R.id.engine_icon)))) - .check(matches(isDisplayed())) - defaultSearchEngineOption("DuckDuckGo") - .check(matches(hasSibling(withId(R.id.engine_icon)))) - .check(matches(isDisplayed())) - assertUIObjectExists(addSearchEngineButton) - } - - fun verifyManageShortcutsList(testRule: ComposeTestRule) { - val availableShortcutsEngines = getRegionSearchEnginesList() + getAvailableSearchEngines() - - availableShortcutsEngines.forEach { - testRule.onNodeWithText(it.name) - .assert(hasAnySibling(hasContentDescription("${it.name} search engine"))) - .assertIsDisplayed() - } - - assertUIObjectExists(addSearchEngineButton) - } - - /** - * Method that verifies the selected engines inside the Manage search shortcuts list. - */ - fun verifySearchShortcutChecked(vararg engineShortcut: EngineShortcut) { - engineShortcut.forEach { - val shortcutIsChecked = mDevice.findObject(UiSelector().text(it.name)) - .getFromParent( - UiSelector().index(it.checkboxIndex), - ).isChecked - - if (it.isChecked) { - assertTrue(shortcutIsChecked) - } else { - assertFalse(shortcutIsChecked) - } - } - } - - fun verifyAutocompleteURlsIsEnabled(enabled: Boolean) { - autocompleteSwitchButton() - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifyShowSearchSuggestionsEnabled(enabled: Boolean) { - showSearchSuggestionSwitchButton() - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifyShowSearchSuggestionsInPrivateEnabled(enabled: Boolean) { - showSuggestionsInPrivateModeSwitch() - .check( - matches( - hasSibling( - withChild( - allOf( - withClassName(endsWith("CheckBox")), - isChecked(enabled), - ), - ), - ), - ), - ) - } - - fun verifyShowClipboardSuggestionsEnabled(enabled: Boolean) { - showClipboardSuggestionSwitch() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifySearchBrowsingHistoryEnabled(enabled: Boolean) { - searchHistorySwitchButton() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifySearchBookmarksEnabled(enabled: Boolean) { - searchBookmarksSwitchButton() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifySearchSyncedTabsEnabled(enabled: Boolean) { - searchSyncedTabsSwitchButton() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun verifyVoiceSearchEnabled(enabled: Boolean) { - voiceSearchSwitchButton() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(hasCousin(allOf(withClassName(endsWith("Switch")), isChecked(enabled))))) - } - - fun openDefaultSearchEngineMenu() { - defaultSearchEngineHeader.click() - } - - fun openManageShortcutsMenu() { - manageSearchShortcutsHeader.click() - } - - fun changeDefaultSearchEngine(searchEngineName: String) { - onView(withText(searchEngineName)) - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .perform(click()) - } - - fun selectSearchShortcut(shortcut: EngineShortcut) { - mDevice.findObject(UiSelector().text(shortcut.name)) - .getFromParent(UiSelector().index(shortcut.checkboxIndex)) - .click() - } - - fun toggleAutocomplete() = autocompleteSwitchButton().click() - - fun toggleShowSearchSuggestions() = showSearchSuggestionSwitchButton().click() - - fun toggleVoiceSearch() { - voiceSearchSwitchButton().perform(click()) - } - - fun toggleClipboardSuggestion() { - showClipboardSuggestionSwitch().click() - } - - fun switchSearchHistoryToggle() = searchHistorySwitchButton().click() - - fun switchSearchBookmarksToggle() = searchBookmarksSwitchButton().click() - - fun switchShowSuggestionsInPrivateSessionsToggle() = - showSuggestionsInPrivateModeSwitch().click() - - fun openAddSearchEngineMenu() = addSearchEngineButton.click() - - fun verifyEngineListContains(searchEngineName: String, shouldExist: Boolean) = - assertUIObjectExists(itemWithText(searchEngineName), exists = shouldExist) - - fun verifyDefaultSearchEngineSelected(searchEngineName: String) { - defaultSearchEngineOption(searchEngineName).check(matches(isChecked(true))) - } - - fun verifySaveSearchEngineButtonEnabled(enabled: Boolean) { - addSearchEngineSaveButton().check(matches(isEnabled(enabled))) - } - - fun saveNewSearchEngine() { - closeSoftKeyboard() - addSearchEngineSaveButton().click() - } - - fun typeCustomEngineDetails(engineName: String, engineURL: String) { - try { - mDevice.findObject(By.res("$packageName:id/edit_engine_name")).clear() - mDevice.findObject(By.res("$packageName:id/edit_engine_name")).text = engineName - assertUIObjectExists( - itemWithResIdAndText("$packageName:id/edit_engine_name", engineName), - ) - - mDevice.findObject(By.res("$packageName:id/edit_search_string")).clear() - mDevice.findObject(By.res("$packageName:id/edit_search_string")).text = engineURL - assertUIObjectExists( - itemWithResIdAndText("$packageName:id/edit_search_string", engineURL), - ) - } catch (e: AssertionError) { - println("The name or the search string were not set properly") - - mDevice.findObject(By.res("$packageName:id/edit_engine_name")).clear() - mDevice.findObject(By.res("$packageName:id/edit_engine_name")).setText(engineName) - assertUIObjectExists( - itemWithResIdAndText("$packageName:id/edit_engine_name", engineName), - ) - mDevice.findObject(By.res("$packageName:id/edit_search_string")).clear() - mDevice.findObject(By.res("$packageName:id/edit_search_string")).setText(engineURL) - assertUIObjectExists( - itemWithResIdAndText("$packageName:id/edit_search_string", engineURL), - ) - } - } - - fun typeSearchEngineSuggestionString(searchSuggestionString: String) { - onView(withId(R.id.edit_suggest_string)) - .click() - .perform(clearText()) - .perform(typeText(searchSuggestionString)) - } - - // Used in the non-Compose Default search engines menu - fun openEngineOverflowMenu(searchEngineName: String) { - threeDotMenu(searchEngineName).waitForExists(waitingTimeShort) - threeDotMenu(searchEngineName).click() - } - - // Used in the composable Manage shortcuts menu, otherwise the overflow menu is not visible - fun openCustomShortcutOverflowMenu(testRule: ComposeTestRule, searchEngineName: String) { - testRule.onNode(overflowMenuWithSiblingText(searchEngineName)).performClick() - } - - fun clickEdit() = onView(withText("Edit")).click() - - // Used in the Default search engine menu - fun clickDeleteSearchEngine() = - mDevice.findObject( - UiSelector().textContains(getStringResource(R.string.search_engine_delete)), - ).click() - - // Used in the composable Manage search shortcuts menu, otherwise the overflow menu is not visible - fun clickDeleteSearchEngine(testRule: ComposeTestRule) = - testRule.onNodeWithText("Delete").performClick() - - fun clickUndoSnackBarButton() = - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/snackbar_btn"), - ).click() - - fun saveEditSearchEngine() { - onView(withId(R.id.save_button)).click() - assertUIObjectExists(itemContainingText("Saved")) - } - - fun verifyInvalidTemplateSearchStringFormatError() { - closeSoftKeyboard() - onView(withText(getStringResource(R.string.search_add_custom_engine_error_missing_template))) - .check(matches(isDisplayed())) - } - - fun verifyErrorConnectingToSearchString(searchEngineName: String) { - closeSoftKeyboard() - onView(withText(getStringResource(R.string.search_add_custom_engine_error_cannot_reach, searchEngineName))) - .check(matches(isDisplayed())) - } - - class Transition { - fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition { - mDevice.waitForIdle() - goBackButton().perform(click()) - - SettingsRobot().interact() - return SettingsRobot.Transition() - } - - fun clickCustomSearchStringLearnMoreLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - onView(withId(R.id.custom_search_engines_learn_more)).click() - - BrowserRobot().interact() - return BrowserRobot.Transition() - } - - fun clickCustomSearchSuggestionsLearnMoreLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - onView(withId(R.id.custom_search_suggestions_learn_more)).click() - - BrowserRobot().interact() - return BrowserRobot.Transition() - } - } -} - -/** - * Matches search shortcut items inside the 'Manage search shortcuts' menu - * @param name, of type String, should be the name of the search engine. - * @param checkboxIndex, of type Int, is the checkbox' index afferent to the search engine. - * @param isChecked, of type Boolean, should show if the checkbox is expected to be checked. - */ -class EngineShortcut( - val name: String, - val checkboxIndex: Int, - val isChecked: Boolean = true, -) - -private val defaultSearchEngineHeader = onView(withText("Default search engine")) - -private val manageSearchShortcutsHeader = onView(withText("Manage alternative search engines")) - -private fun searchHistorySwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Search browsing history")), - ), - ) - return onView(withText("Search browsing history")) -} - -private fun searchBookmarksSwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Search bookmarks")), - ), - ) - return onView(withText("Search bookmarks")) -} - -private fun searchSyncedTabsSwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Search synced tabs")), - ), - ) - return onView(withText("Search synced tabs")) -} - -private fun voiceSearchSwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Show voice search")), - ), - ) - return onView(withText("Show voice search")) -} - -private fun autocompleteSwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText(getStringResource(R.string.preferences_enable_autocomplete_urls))), - ), - ) - - return onView(withText(getStringResource(R.string.preferences_enable_autocomplete_urls))) -} - -private fun showSearchSuggestionSwitchButton(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Show search suggestions")), - ), - ) - - return onView(withText("Show search suggestions")) -} - -private fun showClipboardSuggestionSwitch(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText(getStringResource(R.string.preferences_show_clipboard_suggestions))), - ), - ) - return onView(withText(getStringResource(R.string.preferences_show_clipboard_suggestions))) -} - -private fun showSuggestionsInPrivateModeSwitch(): ViewInteraction { - onView(withId(androidx.preference.R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText(getStringResource(R.string.preferences_show_search_suggestions_in_private))), - ), - ) - return onView(withText(getStringResource(R.string.preferences_show_search_suggestions_in_private))) -} - -private fun goBackButton() = - onView(CoreMatchers.allOf(withContentDescription("Navigate up"))) - -private val addSearchEngineButton = mDevice.findObject(UiSelector().text("Add search engine")) - -private fun addSearchEngineSaveButton() = onView(withId(R.id.save_button)) - -private fun threeDotMenu(searchEngineName: String) = - mDevice.findObject(UiSelector().text(searchEngineName)) - .getFromParent(UiSelector().description("More options")) - -private fun defaultSearchEngineOption(searchEngineName: String) = - onView( - allOf( - withId(R.id.radio_button), - hasSibling(withText(searchEngineName)), - ), - ) - -private fun overflowMenuWithSiblingText(text: String): SemanticsMatcher = - hasAnySibling(hasText(text)) and hasContentDescription("More options") diff --git a/app/build.gradle b/app/build.gradle index 2c3a7070..17c4822b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -161,15 +161,15 @@ android { forkDebug { shrinkResources false minifyEnabled false - applicationIdSuffix ".leosium.debug" + applicationIdSuffix ".iceraven.debug" pseudoLocalesEnabled true // Need to replicate default debug config features signingConfig signingConfigs.debug debuggable true - def deepLinkSchemeValue = "leosium-debug" + def deepLinkSchemeValue = "iceraven-debug" buildConfigField "String", "DEEP_LINK_SCHEME", "\"$deepLinkSchemeValue\"" manifestPlaceholders.putAll([ - "sharedUserId": "io.github.forkmaintainers.leosium.sharedID", + "sharedUserId": "io.github.forkmaintainers.iceraven.sharedID", "deepLinkScheme": deepLinkSchemeValue, ]) // Use custom default allowed addon list @@ -676,8 +676,8 @@ dependencies { implementation ComponentsDependencies.androidx_paging implementation ComponentsDependencies.androidx_preferences implementation ComponentsDependencies.androidx_fragment - implementation FenixDependencies.androidx_navigation_fragment - implementation FenixDependencies.androidx_navigation_ui + implementation ComponentsDependencies.androidx_navigation_fragment + implementation ComponentsDependencies.androidx_navigation_ui implementation ComponentsDependencies.androidx_compose_navigation implementation ComponentsDependencies.androidx_recyclerview diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index b4ce2b38..c9eb994d 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -1101,6 +1101,16 @@ column="1"/> + + + + + + + + diff --git a/app/messaging-evergreen-messages.fml.yaml b/app/messaging-evergreen-messages.fml.yaml index 927fb8be..faeb2723 100644 --- a/app/messaging-evergreen-messages.fml.yaml +++ b/app/messaging-evergreen-messages.fml.yaml @@ -25,6 +25,7 @@ import: - value: messages: default-browser: + title: default_browser_experiment_card_title text: default_browser_experiment_card_text surface: homescreen action: "MAKE_DEFAULT_BROWSER" diff --git a/app/metrics.yaml b/app/metrics.yaml index 92a892dc..636f46ff 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -843,6 +843,17 @@ events: metadata: tags: - Search + first_session_ping_cancelled: + type: event + description: | + First session ping cancelled because Adjust metrics were empty. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1875514 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/5223 + notification_emails: + - android-probes@mozilla.com + expires: never splash_screen: first_launch_extended: @@ -1061,78 +1072,6 @@ onboarding: metadata: tags: - Onboarding - notif_ppp_impression: - type: event - description: | - Notification pre permission prompt was shown to the user. - bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id=1810115 - data_reviews: - - https://github.com/mozilla-mobile/fenix/pull/28529 - - https://github.com/mozilla-mobile/firefox-android/pull/4039 - data_sensitivity: - - interaction - notification_emails: - - android-probes@mozilla.com - expires: never - metadata: - tags: - - Notifications - - Onboarding - notif_ppp_close_click: - type: event - description: | - User clicked the close button on the notification pre permission prompt. - bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id=1810115 - data_reviews: - - https://github.com/mozilla-mobile/fenix/pull/28529 - - https://github.com/mozilla-mobile/firefox-android/pull/4039 - data_sensitivity: - - interaction - notification_emails: - - android-probes@mozilla.com - expires: never - metadata: - tags: - - Notifications - - Onboarding - notif_ppp_positive_btn_click: - type: event - description: | - User clicked the positive button on notification pre permission prompt. - bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id=1810115 - data_reviews: - - https://github.com/mozilla-mobile/fenix/pull/28529 - - https://github.com/mozilla-mobile/firefox-android/pull/4039 - data_sensitivity: - - interaction - notification_emails: - - android-probes@mozilla.com - expires: never - metadata: - tags: - - Notifications - - Onboarding - notif_ppp_negative_btn_click: - type: event - description: | - User clicked the negative button on notification pre permission prompt. - bugs: - - https://bugzilla.mozilla.org/show_bug.cgi?id=1810115 - data_reviews: - - https://github.com/mozilla-mobile/fenix/pull/28529 - - https://github.com/mozilla-mobile/firefox-android/pull/4039 - data_sensitivity: - - interaction - notification_emails: - - android-probes@mozilla.com - expires: never - metadata: - tags: - - Notifications - - Onboarding set_to_default_card: type: event description: | @@ -9265,8 +9204,10 @@ awesomebar: A sponsored suggestion was visible when the user finished interacting with the awesomebar. bugs: - https://bugzilla.mozilla.org/show_bug.cgi?id=1871156 + - https://bugzilla.mozilla.org/show_bug.cgi?id=1878434 data_reviews: - https://github.com/mozilla-mobile/firefox-android/pull/4914#issuecomment-1874271848 + - https://github.com/mozilla-mobile/firefox-android/pull/5438#issuecomment-1930970336 data_sensitivity: - interaction notification_emails: @@ -9277,12 +9218,6 @@ awesomebar: expires: never extra_keys: provider: *sponsored_suggestion_provider - engagement_abandoned: &awesomebar_engagement_abandoned - description: | - If `true`, the user dismissed the awesomebar without navigating to a destination. If - `false`, the user finished engaging with the awesomebar by navigating to a destination, - like a URL, a search results page, or a suggestion. - type: boolean metadata: tags: - Search @@ -9292,8 +9227,10 @@ awesomebar: A non-sponsored suggestion was visible when the user finished interacting with the awesomebar. bugs: - https://bugzilla.mozilla.org/show_bug.cgi?id=1871156 + - https://bugzilla.mozilla.org/show_bug.cgi?id=1878434 data_reviews: - https://github.com/mozilla-mobile/firefox-android/pull/4914#issuecomment-1874271848 + - https://github.com/mozilla-mobile/firefox-android/pull/5438#issuecomment-1930970336 data_sensitivity: - interaction notification_emails: @@ -9304,10 +9241,49 @@ awesomebar: expires: never extra_keys: provider: *non_sponsored_suggestion_provider - engagement_abandoned: *awesomebar_engagement_abandoned metadata: tags: - Search + engagement: + type: event + description: | + The user completed their search session by tapping a search result, + or entering a URL or a search term. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1878434 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/5438#issuecomment-1930970336 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + - lina@mozilla.com + - ttran@mozilla.com + - najiang@mozilla.com + expires: never + metadata: + tags: + - Search + abandonment: + type: event + description: | + The user dismissed the awesomebar without completing their search. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1878434 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/5438#issuecomment-1930970336 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + - lina@mozilla.com + - ttran@mozilla.com + - najiang@mozilla.com + expires: never + metadata: + tags: + - Search + android_autofill: supported: type: boolean @@ -11414,3 +11390,19 @@ fx_suggest: expires: never send_in_pings: - fx-suggest +debug_drawer: + debug_drawer_enabled: + type: boolean + description: | + Whether or not the user has enabled the Debug Drawer feature. + send_in_pings: + - metrics + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1876596 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/5356 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: never diff --git a/app/nimbus.fml.yaml b/app/nimbus.fml.yaml index 946012be..b0a7dd42 100644 --- a/app/nimbus.fml.yaml +++ b/app/nimbus.fml.yaml @@ -32,6 +32,7 @@ import: - value: available-suggestion-types: { "amp": true, + "ampMobile": false, "wikipedia": true, } @@ -238,14 +239,6 @@ features: type: Int default: 0 - pre-permission-notification-prompt: - description: A feature that shows the pre-permission notification prompt. - variables: - enabled: - description: if true, the pre-permission notification prompt is shown to the user. - type: Boolean - default: false - onboarding: description: "A feature that configures the new user onboarding page. Note that onboarding is a **first run** feature, and should only be modified by first run experiments." diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/AppAndSystemHelper.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/AppAndSystemHelper.kt index 4ef27f9e..bc10b79a 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/AppAndSystemHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/AppAndSystemHelper.kt @@ -14,11 +14,11 @@ import android.content.pm.PackageManager import android.content.res.Configuration import android.net.Uri import android.os.Build +import android.os.Environment import android.os.storage.StorageManager import android.os.storage.StorageVolume import android.provider.Settings import android.util.Log -import androidx.annotation.RequiresApi import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.test.espresso.Espresso import androidx.test.espresso.IdlingRegistry @@ -33,6 +33,7 @@ import androidx.test.uiautomator.UiObject import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import junit.framework.AssertionFailedError +import kotlinx.coroutines.runBlocking import org.junit.Assert import org.junit.Assert.assertEquals import org.mozilla.fenix.Config @@ -60,46 +61,88 @@ object AppAndSystemHelper { } } - @RequiresApi(Build.VERSION_CODES.R) + /** + * Checks if a specific download file is inside the device storage and deletes it. + * Different implementation needed for newer API levels, + * as Environment.getExternalStorageDirectory() is deprecated starting with API 29. + * + */ fun deleteDownloadedFileOnStorage(fileName: String) { - val storageManager: StorageManager? = TestHelper.appContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager? - val storageVolumes = storageManager!!.storageVolumes - val storageVolume: StorageVolume = storageVolumes[0] - val file = File(storageVolume.directory!!.path + "/Download/" + fileName) - try { - if (file.exists()) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) { + val storageManager: StorageManager? = + TestHelper.appContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager? + val storageVolumes = storageManager!!.storageVolumes + val storageVolume: StorageVolume = storageVolumes[0] + val file = File(storageVolume.directory!!.path + "/Download/" + fileName) + try { + if (file.exists()) { + file.delete() + Log.d("TestLog", "File delete try 1") + Assert.assertFalse("The file was not deleted", file.exists()) + } + } catch (e: AssertionError) { file.delete() - Log.d("TestLog", "File delete try 1") + Log.d("TestLog", "File delete retried") Assert.assertFalse("The file was not deleted", file.exists()) } - } catch (e: AssertionError) { - file.delete() - Log.d("TestLog", "File delete retried") - Assert.assertFalse("The file was not deleted", file.exists()) + } else { + runBlocking { + val downloadedFile = File( + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), + fileName, + ) + + if (downloadedFile.exists()) { + Log.i(TAG, "deleteDownloadedFileOnStorage: Verifying if $downloadedFile exists.") + downloadedFile.delete() + Log.i(TAG, "deleteDownloadedFileOnStorage: $downloadedFile deleted.") + } + } } } - @RequiresApi(Build.VERSION_CODES.R) + /** + * Checks if there are download files inside the device storage and deletes all of them. + * Different implementation needed for newer API levels, as + * Environment.getExternalStorageDirectory() is deprecated starting with API 29. + */ fun clearDownloadsFolder() { - val storageManager: StorageManager? = TestHelper.appContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager? - val storageVolumes = storageManager!!.storageVolumes - val storageVolume: StorageVolume = storageVolumes[0] - val downloadsFolder = File(storageVolume.directory!!.path + "/Download/") + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) { + Log.i(TAG, "clearDownloadsFolder: API > 29") + val storageManager: StorageManager? = + TestHelper.appContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager? + val storageVolumes = storageManager!!.storageVolumes + val storageVolume: StorageVolume = storageVolumes[0] + val downloadsFolder = File(storageVolume.directory!!.path + "/Download/") - // Check if the downloads folder exists - if (downloadsFolder.exists() && downloadsFolder.isDirectory) { - Log.i(TAG, "clearDownloadsFolder: Verified that \"DOWNLOADS\" folder exists") - val files = downloadsFolder.listFiles() + // Check if the downloads folder exists + if (downloadsFolder.exists() && downloadsFolder.isDirectory) { + Log.i(TAG, "clearDownloadsFolder: Verified that \"DOWNLOADS\" folder exists") + val files = downloadsFolder.listFiles() - // Check if the folder is not empty - if (files != null && files.isNotEmpty()) { - Log.i(TAG, "clearDownloadsFolder: Verified that \"DOWNLOADS\" folder is not empty") - // Delete all files in the folder - for (file in files) { - file.delete() - Log.i(TAG, "clearDownloadsFolder: Deleted $file from \"DOWNLOADS\" folder") + // Check if the folder is not empty + if (files != null && files.isNotEmpty()) { + Log.i( + TAG, + "clearDownloadsFolder: Verified that \"DOWNLOADS\" folder is not empty", + ) + // Delete all files in the folder + for (file in files) { + file.delete() + Log.i(TAG, "clearDownloadsFolder: Deleted $file from \"DOWNLOADS\" folder") + } } } + } else { + runBlocking { + Log.i(TAG, "clearDownloadsFolder: API <= 29") + Log.i(TAG, "clearDownloadsFolder: Verifying if any download files exist.") + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + .listFiles()?.forEach { + it.delete() + Log.i(TAG, "clearDownloadsFolder: Download file $it deleted.") + } + } } } @@ -135,11 +178,12 @@ object AppAndSystemHelper { } fun isPackageInstalled(packageName: String): Boolean { + Log.i(TAG, "isPackageInstalled: Trying to verify that $packageName is installed") return try { val packageManager = InstrumentationRegistry.getInstrumentation().context.packageManager packageManager.getApplicationInfo(packageName, 0).enabled } catch (e: PackageManager.NameNotFoundException) { - Log.i(TAG, "isPackageInstalled: Catch block - ${e.message}") + Log.i(TAG, "isPackageInstalled: $packageName is not installed - ${e.message}") false } } @@ -183,6 +227,7 @@ object AppAndSystemHelper { * @return Boolean value that helps us know if the current activity supports custom tabs or PWAs. */ fun isExternalAppBrowserActivityInCurrentTask(): Boolean { + Log.i(TAG, "Trying to verify that the latest activity of the application is used for custom tabs or PWAs") val activityManager = TestHelper.appContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager mDevice.waitForIdle(TestAssetHelper.waitingTimeShort) diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt index 3b4ba4ee..34f4d15e 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt @@ -4,7 +4,7 @@ package org.mozilla.fenix.helpers -import org.mozilla.experiments.nimbus.GleanPlumbMessageHelper +import org.mozilla.experiments.nimbus.NimbusMessagingHelperInterface import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.TestHelper.appContext @@ -12,7 +12,7 @@ object Experimentation { val experiments = appContext.components.analytics.experiments - fun withHelper(block: GleanPlumbMessageHelper.() -> Unit) { + fun withHelper(block: NimbusMessagingHelperInterface.() -> Unit) { val helper = experiments.createMessageHelper() block(helper) } diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestAssetHelper.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestAssetHelper.kt index d638e762..fb90e772 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestAssetHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestAssetHelper.kt @@ -17,6 +17,7 @@ object TestAssetHelper { val waitingTime: Long = TimeUnit.SECONDS.toMillis(15) val waitingTimeLong = TimeUnit.SECONDS.toMillis(25) val waitingTimeShort: Long = TimeUnit.SECONDS.toMillis(3) + val waitingTimeVeryShort: Long = TimeUnit.SECONDS.toMillis(1) data class TestAsset(val url: Uri, val content: String, val title: String) diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt index 06bc94ee..2a06b099 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestHelper.kt @@ -34,9 +34,12 @@ import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants.TAG +import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists +import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort +import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeVeryShort import org.mozilla.fenix.helpers.ext.waitNotNull import org.mozilla.fenix.ui.robots.clickPageObject @@ -49,8 +52,10 @@ object TestHelper { fun scrollToElementByText(text: String): UiScrollable { val appView = UiScrollable(UiSelector().scrollable(true)) + Log.i(TAG, "scrollToElementByText: Waiting for app view") appView.waitForExists(waitingTime) appView.scrollTextIntoView(text) + Log.i(TAG, "scrollToElementByText: Scrolled to element with text: $text") return appView } @@ -101,14 +106,7 @@ object TestHelper { ).waitUntilGone(waitingTime) } - fun verifySnackBarText(expectedText: String) { - assertTrue( - mDevice.findObject( - UiSelector() - .textContains(expectedText), - ).waitForExists(waitingTime), - ) - } + fun verifySnackBarText(expectedText: String) = assertUIObjectExists(itemContainingText(expectedText)) fun verifyUrl(urlSubstring: String, resourceName: String, resId: Int) { waitUntilObjectIsFound(resourceName) @@ -145,4 +143,10 @@ object TestHelper { assertFalse("Light theme not selected", expected) fun verifyDarkThemeApplied(expected: Boolean) = assertTrue("Dark theme not selected", expected) + + fun waitForAppWindowToBeUpdated() { + Log.i(TAG, "waitForAppWindowToBeUpdated: Waiting for $waitingTimeVeryShort ms for $packageName window to be updated") + mDevice.waitForWindowUpdate(packageName, waitingTimeVeryShort) + Log.i(TAG, "waitForAppWindowToBeUpdated: Waited for $waitingTimeVeryShort ms for $packageName window to be updated") + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/TestSetup.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestSetup.kt new file mode 100644 index 00000000..b080154c --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/TestSetup.kt @@ -0,0 +1,52 @@ +package org.mozilla.fenix.helpers + +import android.util.Log +import kotlinx.coroutines.runBlocking +import mozilla.appservices.places.BookmarkRoot +import mozilla.components.browser.storage.sync.PlacesBookmarksStorage +import okhttp3.mockwebserver.MockWebServer +import org.junit.Before +import org.mozilla.fenix.helpers.Constants.TAG +import org.mozilla.fenix.helpers.TestHelper.appContext +import org.mozilla.fenix.ui.robots.notificationShade + +open class TestSetup { + lateinit var mockWebServer: MockWebServer + private val bookmarksStorage = PlacesBookmarksStorage(appContext.applicationContext) + + @Before + fun setUp() { + Log.i(TAG, "TestSetup: Starting the @Before setup") + // Clear pre-existing notifications + notificationShade { + cancelAllShownNotifications() + } + runBlocking { + // Reset locale to EN-US if needed. + AppAndSystemHelper.resetSystemLocaleToEnUS() + // Check and clear the downloads folder + AppAndSystemHelper.clearDownloadsFolder() + // Make sure the Wifi and Mobile Data connections are on + AppAndSystemHelper.setNetworkEnabled(true) + // Clear bookmarks left after a failed test + val bookmarks = bookmarksStorage.getTree(BookmarkRoot.Mobile.id)?.children + Log.i(TAG, "Before cleanup: Bookmarks storage contains: $bookmarks") + bookmarks?.forEach { + bookmarksStorage.deleteNode(it.guid) + // TODO: Follow-up with a method to handle the DB update; the logs will still show the bookmarks in the storage before the test starts. + Log.i(TAG, "After cleanup: Bookmarks storage contains: $bookmarks") + } + } + mockWebServer = MockWebServer().apply { + dispatcher = AndroidAssetDispatcher() + } + try { + Log.i(TAG, "Try starting mockWebServer") + mockWebServer.start() + } catch (e: Exception) { + Log.i(TAG, "Exception caught. Re-starting mockWebServer") + mockWebServer.shutdown() + mockWebServer.start() + } + } +} diff --git a/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock b/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock index 3e3d538a..b42b86bf 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock +++ b/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock @@ -95,7 +95,7 @@ "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" ], - "markers": "python_version >= '3.8'", + "markers": "platform_python_implementation != 'PyPy'", "version": "==1.16.0" }, "charset-normalizer": { @@ -196,33 +196,42 @@ }, "cryptography": { "hashes": [ - "sha256:068bc551698c234742c40049e46840843f3d98ad7ce265fd2bd4ec0d11306596", - "sha256:0f27acb55a4e77b9be8d550d762b0513ef3fc658cd3eb15110ebbcbd626db12c", - "sha256:2132d5865eea673fe6712c2ed5fb4fa49dba10768bb4cc798345748380ee3660", - "sha256:3288acccef021e3c3c10d58933f44e8602cf04dba96d9796d70d537bb2f4bbc4", - "sha256:35f3f288e83c3f6f10752467c48919a7a94b7d88cc00b0668372a0d2ad4f8ead", - "sha256:398ae1fc711b5eb78e977daa3cbf47cec20f2c08c5da129b7a296055fbb22aed", - "sha256:422e3e31d63743855e43e5a6fcc8b4acab860f560f9321b0ee6269cc7ed70cc3", - "sha256:48783b7e2bef51224020efb61b42704207dde583d7e371ef8fc2a5fb6c0aabc7", - "sha256:4d03186af98b1c01a4eda396b137f29e4e3fb0173e30f885e27acec8823c1b09", - "sha256:5daeb18e7886a358064a68dbcaf441c036cbdb7da52ae744e7b9207b04d3908c", - "sha256:60e746b11b937911dc70d164060d28d273e31853bb359e2b2033c9e93e6f3c43", - "sha256:742ae5e9a2310e9dade7932f9576606836ed174da3c7d26bc3d3ab4bd49b9f65", - "sha256:7e00fb556bda398b99b0da289ce7053639d33b572847181d6483ad89835115f6", - "sha256:85abd057699b98fce40b41737afb234fef05c67e116f6f3650782c10862c43da", - "sha256:8efb2af8d4ba9dbc9c9dd8f04d19a7abb5b49eab1f3694e7b5a16a5fc2856f5c", - "sha256:ae236bb8760c1e55b7a39b6d4d32d2279bc6c7c8500b7d5a13b6fb9fc97be35b", - "sha256:afda76d84b053923c27ede5edc1ed7d53e3c9f475ebaf63c68e69f1403c405a8", - "sha256:b27a7fd4229abef715e064269d98a7e2909ebf92eb6912a9603c7e14c181928c", - "sha256:b648fe2a45e426aaee684ddca2632f62ec4613ef362f4d681a9a6283d10e079d", - "sha256:c5a550dc7a3b50b116323e3d376241829fd326ac47bc195e04eb33a8170902a9", - "sha256:da46e2b5df770070412c46f87bac0849b8d685c5f2679771de277a422c7d0b86", - "sha256:f39812f70fc5c71a15aa3c97b2bbe213c3f2a460b79bd21c40d033bb34a9bf36", - "sha256:ff369dd19e8fe0528b02e8df9f2aeb2479f89b1270d90f96a63500afe9af5cae" + "sha256:0a68bfcf57a6887818307600c3c0ebc3f62fbb6ccad2240aa21887cda1f8df1b", + "sha256:146e971e92a6dd042214b537a726c9750496128453146ab0ee8971a0299dc9bd", + "sha256:14e4b909373bc5bf1095311fa0f7fcabf2d1a160ca13f1e9e467be1ac4cbdf94", + "sha256:206aaf42e031b93f86ad60f9f5d9da1b09164f25488238ac1dc488334eb5e221", + "sha256:3005166a39b70c8b94455fdbe78d87a444da31ff70de3331cdec2c568cf25b7e", + "sha256:324721d93b998cb7367f1e6897370644751e5580ff9b370c0a50dc60a2003513", + "sha256:33588310b5c886dfb87dba5f013b8d27df7ffd31dc753775342a1e5ab139e59d", + "sha256:35cf6ed4c38f054478a9df14f03c1169bb14bd98f0b1705751079b25e1cb58bc", + "sha256:3ca482ea80626048975360c8e62be3ceb0f11803180b73163acd24bf014133a0", + "sha256:56ce0c106d5c3fec1038c3cca3d55ac320a5be1b44bf15116732d0bc716979a2", + "sha256:5a217bca51f3b91971400890905a9323ad805838ca3fa1e202a01844f485ee87", + "sha256:678cfa0d1e72ef41d48993a7be75a76b0725d29b820ff3cfd606a5b2b33fda01", + "sha256:69fd009a325cad6fbfd5b04c711a4da563c6c4854fc4c9544bff3088387c77c0", + "sha256:6cf9b76d6e93c62114bd19485e5cb003115c134cf9ce91f8ac924c44f8c8c3f4", + "sha256:74f18a4c8ca04134d2052a140322002fef535c99cdbc2a6afc18a8024d5c9d5b", + "sha256:85f759ed59ffd1d0baad296e72780aa62ff8a71f94dc1ab340386a1207d0ea81", + "sha256:87086eae86a700307b544625e3ba11cc600c3c0ef8ab97b0fda0705d6db3d4e3", + "sha256:8814722cffcfd1fbd91edd9f3451b88a8f26a5fd41b28c1c9193949d1c689dc4", + "sha256:8fedec73d590fd30c4e3f0d0f4bc961aeca8390c72f3eaa1a0874d180e868ddf", + "sha256:9515ea7f596c8092fdc9902627e51b23a75daa2c7815ed5aa8cf4f07469212ec", + "sha256:988b738f56c665366b1e4bfd9045c3efae89ee366ca3839cd5af53eaa1401bce", + "sha256:a2a8d873667e4fd2f34aedab02ba500b824692c6542e017075a2efc38f60a4c0", + "sha256:bd7cf7a8d9f34cc67220f1195884151426ce616fdc8285df9054bfa10135925f", + "sha256:bdce70e562c69bb089523e75ef1d9625b7417c6297a76ac27b1b8b1eb51b7d0f", + "sha256:be14b31eb3a293fc6e6aa2807c8a3224c71426f7c4e3639ccf1a2f3ffd6df8c3", + "sha256:be41b0c7366e5549265adf2145135dca107718fa44b6e418dc7499cfff6b4689", + "sha256:c310767268d88803b653fffe6d6f2f17bb9d49ffceb8d70aed50ad45ea49ab08", + "sha256:c58115384bdcfe9c7f644c72f10f6f42bed7cf59f7b52fe1bf7ae0a622b3a139", + "sha256:c640b0ef54138fde761ec99a6c7dc4ce05e80420262c20fa239e694ca371d434", + "sha256:ca20550bb590db16223eb9ccc5852335b48b8f597e2f6f0878bbfd9e7314eb17", + "sha256:d97aae66b7de41cdf5b12087b5509e4e9805ed6f562406dfcf60e8481a9a28f8", + "sha256:e9326ca78111e4c645f7e49cbce4ed2f3f85e17b61a563328c85a5208cf34440" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==41.0.6" + "version": "==42.0.0" }, "distro": { "hashes": [ diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt index 4631b8a7..b8b67577 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt @@ -4,27 +4,22 @@ package org.mozilla.fenix.ui -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.packageName +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.autofillScreen import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar -class AddressAutofillTest { - private lateinit var mockWebServer: MockWebServer - +class AddressAutofillTest : TestSetup() { object FirstAddressAutofillDetails { var navigateToAutofillSettings = true var isAddressAutofillEnabled = true @@ -58,19 +53,6 @@ class AddressAutofillTest { @get:Rule val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() - @Before - fun setUp() { - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836845 @SmokeTest @Test diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt index e99e0fc1..8b7b220c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt @@ -8,20 +8,13 @@ import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu import androidx.test.espresso.Espresso.pressBack import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation -import androidx.test.uiautomator.UiDevice import kotlinx.coroutines.runBlocking -import mozilla.appservices.places.BookmarkRoot -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.ext.bookmarkStorage import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AppAndSystemHelper.registerAndCleanupIdlingResources import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.MockBrowserDataHelper.createBookmarkItem @@ -31,7 +24,10 @@ import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.appContext import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem +import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.restartApp +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.bookmarksMenu import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen @@ -41,9 +37,7 @@ import org.mozilla.fenix.ui.robots.navigationToolbar /** * Tests for verifying basic functionality of bookmarks */ -class BookmarksTest { - private lateinit var mockWebServer: MockWebServer - private lateinit var mDevice: UiDevice +class BookmarksTest : TestSetup() { private val bookmarksFolderName = "New Folder" private val testBookmark = object { var title: String = "Bookmark title" @@ -60,26 +54,6 @@ class BookmarksTest { @JvmField val retryTestRule = RetryTestRule(3) - @Before - fun setUp() { - mDevice = UiDevice.getInstance(getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - // Clearing all bookmarks data after each test to avoid overlapping data - val bookmarksStorage = activityTestRule.activity?.bookmarkStorage - runBlocking { - val bookmarks = bookmarksStorage?.getTree(BookmarkRoot.Mobile.id)?.children - bookmarks?.forEach { bookmarksStorage.deleteNode(it.guid) } - } - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/522919 @Test fun verifyEmptyBookmarksMenuTest() { @@ -137,7 +111,7 @@ class BookmarksTest { clickAddFolderButton() addNewFolderName(bookmarksFolderName) navigateUp() - verifyKeyboardHidden() + verifyKeyboardHidden(isExpectedToBeVisible = false) verifyBookmarkFolderIsNotCreated(bookmarksFolderName) } } @@ -209,7 +183,7 @@ class BookmarksTest { ) {} }.openThreeDotMenu(defaultWebPage.title) { }.clickCopy { - verifyCopySnackBarText() + verifySnackBarText(expectedText = "URL copied") navigateUp() } @@ -496,7 +470,7 @@ class BookmarksTest { } bookmarksMenu { - verifyDeleteMultipleBookmarksSnackBar() + verifySnackBarText(expectedText = "Bookmarks deleted") clickUndoDeleteButton() verifyBookmarkedURL(firstWebPage.url.toString()) verifyBookmarkedURL(secondWebPage.url.toString()) @@ -514,7 +488,7 @@ class BookmarksTest { } bookmarksMenu { - verifyDeleteMultipleBookmarksSnackBar() + verifySnackBarText(expectedText = "Bookmarks deleted") } } @@ -602,7 +576,7 @@ class BookmarksTest { RecyclerViewIdlingResource(activityTestRule.activity.findViewById(R.id.bookmark_list)), ) { longTapDesktopFolder("Desktop Bookmarks") - verifySelectDefaultFolderSnackBarText() + verifySnackBarText(expectedText = "Can’t edit default folders") } } } @@ -625,7 +599,7 @@ class BookmarksTest { cancelDeletion() clickDeleteInEditModeButton() confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") verifyBookmarkIsDeleted("Test_Page_1") } } @@ -786,13 +760,13 @@ class BookmarksTest { }.openThreeDotMenu("My Folder") { }.clickDelete { confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") clickUndoDeleteButton() verifyFolderTitle("My Folder") }.openThreeDotMenu("My Folder") { }.clickDelete { confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") verifyBookmarkIsDeleted("My Folder") verifyBookmarkIsDeleted("My Folder 2") verifyBookmarkIsDeleted("Test_Page_1") diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/BrowsingErrorPagesTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/BrowsingErrorPagesTest.kt index de05a516..608c0e91 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/BrowsingErrorPagesTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/BrowsingErrorPagesTest.kt @@ -5,20 +5,17 @@ package org.mozilla.fenix.ui import androidx.core.net.toUri -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AppAndSystemHelper.setNetworkEnabled import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.HomeActivityTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.navigationToolbar @@ -26,13 +23,12 @@ import org.mozilla.fenix.ui.robots.navigationToolbar /** * Tests that verify errors encountered while browsing websites: unsafe pages, connection errors, etc */ -class BrowsingErrorPagesTest { +class BrowsingErrorPagesTest : TestSetup() { private val malwareWarning = getStringResource(R.string.mozac_browser_errorpages_safe_browsing_malware_uri_title) private val phishingWarning = getStringResource(R.string.mozac_browser_errorpages_safe_phishing_uri_title) private val unwantedSoftwareWarning = getStringResource(R.string.mozac_browser_errorpages_safe_browsing_unwanted_uri_title) private val harmfulSiteWarning = getStringResource(R.string.mozac_browser_errorpages_safe_harmful_uri_title) - private lateinit var mockWebServer: MockWebServer @get: Rule val mActivityTestRule = HomeActivityTestRule.withDefaultSettingsOverrides() @@ -41,21 +37,6 @@ class BrowsingErrorPagesTest { @JvmField val retryTestRule = RetryTestRule(3) - @Before - fun setUp() { - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - // Restoring network connection - setNetworkEnabled(true) - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326774 @SmokeTest @Test diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt index bf73f168..74e7b136 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt @@ -5,19 +5,16 @@ package org.mozilla.fenix.ui import androidx.compose.ui.test.junit4.AndroidComposeTestRule -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.uiautomator.UiDevice -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.mDevice +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.collectionRobot import org.mozilla.fenix.ui.robots.homeScreen @@ -29,9 +26,7 @@ import org.mozilla.fenix.ui.robots.tabDrawer * */ -class CollectionTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer +class CollectionTest : TestSetup() { private val firstCollectionName = "testcollection_1" private val secondCollectionName = "testcollection_2" private val collectionName = "First Collection" @@ -50,20 +45,6 @@ class CollectionTest { ), ) { it.activity } - @Before - fun setUp() { - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/353823 @SmokeTest @Test @@ -490,7 +471,7 @@ class CollectionTest { selectTab(secondWebPage.title, numOfTabs = 2) }.clickSaveCollection { typeCollectionNameAndSave(collectionName) - verifySnackBarText("Tabs saved!") + verifySnackBarText("Collection saved!") } tabDrawer { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt index dbfd9afd..26d31d92 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt @@ -28,6 +28,7 @@ import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.bookmarksMenu import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen @@ -111,7 +112,7 @@ class ComposeBookmarksTest { clickAddFolderButton() addNewFolderName(bookmarksFolderName) navigateUp() - verifyKeyboardHidden() + verifyKeyboardHidden(isExpectedToBeVisible = false) verifyBookmarkFolderIsNotCreated(bookmarksFolderName) } } @@ -183,7 +184,7 @@ class ComposeBookmarksTest { ) {} }.openThreeDotMenu(defaultWebPage.title) { }.clickCopy { - verifyCopySnackBarText() + verifySnackBarText(expectedText = "URL copied") navigateUp() } @@ -469,7 +470,7 @@ class ComposeBookmarksTest { } bookmarksMenu { - verifyDeleteMultipleBookmarksSnackBar() + verifySnackBarText(expectedText = "Bookmarks deleted") clickUndoDeleteButton() verifyBookmarkedURL(firstWebPage.url.toString()) verifyBookmarkedURL(secondWebPage.url.toString()) @@ -487,7 +488,7 @@ class ComposeBookmarksTest { } bookmarksMenu { - verifyDeleteMultipleBookmarksSnackBar() + verifySnackBarText(expectedText = "Bookmarks deleted") } } @@ -575,7 +576,7 @@ class ComposeBookmarksTest { RecyclerViewIdlingResource(activityTestRule.activity.findViewById(R.id.bookmark_list)), ) { longTapDesktopFolder("Desktop Bookmarks") - verifySelectDefaultFolderSnackBarText() + verifySnackBarText(expectedText = "Can’t edit default folders") } } } @@ -598,7 +599,7 @@ class ComposeBookmarksTest { cancelDeletion() clickDeleteInEditModeButton() confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") verifyBookmarkIsDeleted("Test_Page_1") } } @@ -764,13 +765,13 @@ class ComposeBookmarksTest { }.openThreeDotMenu("My Folder") { }.clickDelete { confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") clickUndoDeleteButton() verifyFolderTitle("My Folder") }.openThreeDotMenu("My Folder") { }.clickDelete { confirmDeletion() - verifyDeleteSnackBarText() + verifySnackBarText(expectedText = "Deleted") verifyBookmarkIsDeleted("My Folder") verifyBookmarkIsDeleted("My Folder 2") verifyBookmarkIsDeleted("Test_Page_1") diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeCollectionTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeCollectionTest.kt index 990b02c8..a18366cc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeCollectionTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeCollectionTest.kt @@ -475,7 +475,7 @@ class ComposeCollectionTest { verifyTabsMultiSelectionCounter(2) }.clickSaveCollection { typeCollectionNameAndSave(collectionName) - verifySnackBarText("Tabs saved!") + verifySnackBarText("Collection saved!") } composeTabDrawer(composeTestRule) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeContextMenusTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeContextMenusTest.kt index 85a3e0c4..5e554b49 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeContextMenusTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeContextMenusTest.kt @@ -23,6 +23,7 @@ import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.downloadRobot diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt index 5a2fed71..138ffa7c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt @@ -28,6 +28,7 @@ import org.mozilla.fenix.helpers.RecyclerViewIdlingResource import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.historyMenu import org.mozilla.fenix.ui.robots.homeScreen @@ -128,7 +129,7 @@ class ComposeHistoryTest { ) { clickDeleteHistoryButton(firstWebPage.url.toString()) } - verifyDeleteSnackbarText("Deleted") + verifySnackBarText(expectedText = "Deleted") verifyEmptyHistoryView() } } @@ -153,7 +154,7 @@ class ComposeHistoryTest { verifyDeleteConfirmationMessage() selectEverythingOption() confirmDeleteAllHistory() - verifyDeleteSnackbarText("Browsing data deleted") + verifySnackBarText(expectedText = "Browsing data deleted") verifyEmptyHistoryView() } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt index ce108bfc..88b4e846 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt @@ -31,6 +31,7 @@ import org.mozilla.fenix.helpers.SearchDispatcher import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen @@ -472,7 +473,7 @@ class ComposeSearchTest { }.openRecentlyVisitedSearchGroupHistoryList(queryString) { clickDeleteAllHistoryButton() confirmDeleteAllHistory() - verifyDeleteSnackbarText("Group deleted") + verifySnackBarText(expectedText = "Group deleted") verifyHistoryItemExists(shouldExist = false, firstPageUrl.toString()) }.goBack {} homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt index 5168ef1c..50bfadce 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt @@ -20,8 +20,10 @@ import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.HomeActivityTestRule import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.helpers.TestHelper.waitUntilSnackbarGone import org.mozilla.fenix.ui.robots.browserScreen +import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.homeScreenWithComposeTopSites import org.mozilla.fenix.ui.robots.navigationToolbar @@ -66,8 +68,12 @@ class ComposeTopSitesTest { fun addAWebsiteAsATopSiteTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(true) @@ -84,8 +90,12 @@ class ComposeTopSitesTest { fun openTopSiteInANewTabTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(true) @@ -112,8 +122,12 @@ class ComposeTopSitesTest { fun openTopSiteInANewPrivateTabTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(true) @@ -135,6 +149,9 @@ class ComposeTopSitesTest { val defaultWebPage = getGenericAsset(mockWebServer, 1) val newPageTitle = generateRandomString(5) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { waitForPageToLoad() @@ -159,8 +176,12 @@ class ComposeTopSitesTest { fun removeTopSiteUsingMenuButtonTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(true) @@ -186,8 +207,12 @@ class ComposeTopSitesTest { fun removeTopSiteFromMainMenuTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(true) @@ -236,9 +261,11 @@ class ComposeTopSitesTest { verifyExistingTopSitesList() verifyExistingTopSiteItem(defaultWebPage.title) }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { - }.deleteTopSiteFromHistory { + }.removeTopSite { verifySnackBarText(getStringResource(R.string.snackbar_top_site_removed)) waitUntilSnackbarGone() + } + homeScreen { }.openThreeDotMenu { }.openHistory { verifyEmptyHistoryView() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt index 4e95fba1..80f2d2a7 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ContextMenusTest.kt @@ -5,15 +5,8 @@ package org.mozilla.fenix.ui import androidx.core.net.toUri -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.uiautomator.UiDevice -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AppAndSystemHelper.assertExternalAppOpens import org.mozilla.fenix.helpers.Constants.PackageName.YOUTUBE_APP import org.mozilla.fenix.helpers.HomeActivityIntentTestRule @@ -22,6 +15,9 @@ import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.mDevice +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.downloadRobot @@ -43,32 +39,15 @@ import org.mozilla.fenix.ui.robots.shareOverlay * */ -class ContextMenusTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer +class ContextMenusTest : TestSetup() { @get:Rule - val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() + val activityIntentTestRule = HomeActivityIntentTestRule(isJumpBackInCFREnabled = false) @Rule @JvmField val retryTestRule = RetryTestRule(3) - @Before - fun setUp() { - activityIntentTestRule.activity.applicationContext.settings().shouldShowJumpBackInCFR = false - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/243837 @Test fun verifyOpenLinkNewTabContextMenuOptionTest() { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerBlockerTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerBlockerTest.kt index 7ff48e39..cc9fff3d 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerBlockerTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerBlockerTest.kt @@ -12,13 +12,14 @@ import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.AppAndSystemHelper.runWithCondition import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.TestHelper.appContext +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar /** * Tests for verifying the new Cookie banner blocker option and functionality. */ -class CookieBannerBlockerTest { +class CookieBannerBlockerTest : TestSetup() { @get:Rule val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt index f246930b..be99ebe8 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CrashReportingTest.kt @@ -5,29 +5,23 @@ package org.mozilla.fenix.ui import androidx.compose.ui.test.junit4.AndroidComposeTestRule -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.uiautomator.UiDevice -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.packageName +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar -class CrashReportingTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer +class CrashReportingTest : TestSetup() { private val tabCrashMessage = getStringResource(R.string.tab_crash_title_2) @get:Rule @@ -40,20 +34,6 @@ class CrashReportingTest { ), ) { it.activity } - @Before - fun setUp() { - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/308906 @Test fun closeTabFromCrashedTabReporterTest() { @@ -105,7 +85,7 @@ class CrashReportingTest { verifyPageContent(tabCrashMessage) }.openTabDrawer { verifyExistingOpenTabs(firstWebPage.title) - verifyExistingOpenTabs(secondWebPage.title) + verifyExistingOpenTabs("about:crashcontent") }.closeTabDrawer { }.goToHomescreen { verifyExistingTopSitesList() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt index f9eb0891..9a9b5697 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt @@ -4,13 +4,9 @@ package org.mozilla.fenix.ui -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AppAndSystemHelper.bringAppToForeground import org.mozilla.fenix.helpers.AppAndSystemHelper.putAppToBackground import org.mozilla.fenix.helpers.HomeActivityIntentTestRule @@ -19,14 +15,13 @@ import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.packageName +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar import java.time.LocalDate -class CreditCardAutofillTest { - private lateinit var mockWebServer: MockWebServer - +class CreditCardAutofillTest : TestSetup() { object MockCreditCard1 { const val MOCK_CREDIT_CARD_NUMBER = "5555555555554444" const val MOCK_LAST_CARD_DIGITS = "4444" @@ -48,19 +43,6 @@ class CreditCardAutofillTest { @get:Rule val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() - @Before - fun setUp() { - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512792 @SmokeTest @Test diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CustomTabsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CustomTabsTest.kt index b014dbb6..1e2aa93e 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CustomTabsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CustomTabsTest.kt @@ -7,25 +7,20 @@ package org.mozilla.fenix.ui import androidx.core.net.toUri -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.ActivityTestRule -import androidx.test.uiautomator.UiDevice -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.IntentReceiverActivity import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AppAndSystemHelper.openAppFromExternalLink import org.mozilla.fenix.helpers.DataGenerationHelper.createCustomTabIntent -import org.mozilla.fenix.helpers.FeatureSettingsHelperDelegate import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu +import org.mozilla.fenix.helpers.TestHelper.mDevice +import org.mozilla.fenix.helpers.TestSetup import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.customTabScreen @@ -36,9 +31,7 @@ import org.mozilla.fenix.ui.robots.notificationShade import org.mozilla.fenix.ui.robots.openEditURLView import org.mozilla.fenix.ui.robots.searchScreen -class CustomTabsTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer +class CustomTabsTest : TestSetup() { private val customMenuItem = "TestMenuItem" private val customTabActionButton = "CustomActionButton" @@ -58,23 +51,6 @@ class CustomTabsTest { false, ) - private val featureSettingsHelper = FeatureSettingsHelperDelegate() - - @Before - fun setUp() { - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - featureSettingsHelper.resetAllFeatureFlags() - } - // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/249659 @SmokeTest @Test diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/FirefoxSuggestTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/FirefoxSuggestTest.kt index a6b6eb35..ae384d06 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/FirefoxSuggestTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/FirefoxSuggestTest.kt @@ -48,9 +48,9 @@ class FirefoxSuggestTest { "Nike.com - Official Site", "nike.com/?cp=16423867261_search_318370984us128${getSponsoredFxSuggestPlaceHolder()}&mfadid=adm", ), - "Macy" to listOf( - "macys.com - Official Site", - "macys.com/?cm_mmc=Google_AdMarketPlace-_-Privacy_Instant%20Suggest-_-319101130_Broad-_-kclickid__kenshoo_clickid_&m_sc=sem&m_sb=Admarketplace&m_tp=Search&m_ac=Admarketplace&m_ag=Instant%20Suggest&m_cn=Privacy&m_pi=kclickid__kenshoo_clickid__319101130us1201${getSponsoredFxSuggestPlaceHolder()}&mfadid=adm", + "Houzz" to listOf( + "Houzz.com - Official Site", + "houzz.com/products?m_refid=us-dsp-mpl-admp-219577_15416306_kwd-353208810&adcid=319104989us1287${getSponsoredFxSuggestPlaceHolder()}&mfadid=adm", ), "Spanx" to listOf( "SPANX® - Official Site", @@ -101,7 +101,7 @@ class FirefoxSuggestTest { private val nonSponsoredKeyWord = nonSponsoredKeyWords.keys.random() // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348361 - @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1874831") + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 @SmokeTest @Test fun verifyFirefoxSuggestSponsoredSearchResultsTest() { @@ -123,7 +123,7 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348362 - @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1874831") + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 @Test fun verifyFirefoxSuggestSponsoredSearchResultsWithPartialKeywordTest() { runWithCondition(TestHelper.appContext.settings().enableFxSuggest) { @@ -144,7 +144,7 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348363 - @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1874831") + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 @Test fun openFirefoxSuggestSponsoredSearchResultsTest() { runWithCondition(TestHelper.appContext.settings().enableFxSuggest) { @@ -168,7 +168,7 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348369 - @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1874831") + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 @Test fun verifyFirefoxSuggestSponsoredSearchResultsWithEditedKeywordTest() { runWithCondition(TestHelper.appContext.settings().enableFxSuggest) { @@ -192,6 +192,8 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348374 + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1882035") @SmokeTest @Test fun verifyFirefoxSuggestNonSponsoredSearchResultsTest() { @@ -218,6 +220,8 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348375 + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1882035") @Test fun verifyFirefoxSuggestNonSponsoredSearchResultsWithPartialKeywordTest() { runWithCondition(TestHelper.appContext.settings().enableFxSuggest) { @@ -237,6 +241,8 @@ class FirefoxSuggestTest { } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2348376 + // Known bug that might affect this UI test: https://bugzilla.mozilla.org/show_bug.cgi?id=1813587 + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1882035") @Test fun openFirefoxSuggestNonSponsoredSearchResultsTest() { runWithCondition(TestHelper.appContext.settings().enableFxSuggest) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt index ec76f441..f29372c6 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt @@ -29,6 +29,7 @@ import org.mozilla.fenix.helpers.RecyclerViewIdlingResource import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.historyMenu import org.mozilla.fenix.ui.robots.homeScreen @@ -131,7 +132,7 @@ class HistoryTest { clickUndoDeleteButton() verifyHistoryItemExists(true, firstWebPage.url.toString()) clickDeleteHistoryButton(firstWebPage.url.toString()) - verifyDeleteSnackbarText("Deleted") + verifySnackBarText(expectedText = "Deleted") verifyEmptyHistoryView() } } @@ -161,7 +162,7 @@ class HistoryTest { verifyDeleteConfirmationMessage() selectEverythingOption() confirmDeleteAllHistory() - verifyDeleteSnackbarText("Browsing data deleted") + verifySnackBarText(expectedText = "Browsing data deleted") verifyEmptyHistoryView() } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt index a725fd33..394c449e 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt @@ -28,6 +28,7 @@ import org.mozilla.fenix.helpers.TestHelper.packageName import org.mozilla.fenix.helpers.TestHelper.restartApp import org.mozilla.fenix.helpers.TestHelper.scrollToElementByText import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText +import org.mozilla.fenix.helpers.TestHelper.waitForAppWindowToBeUpdated import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.clearTextFieldItem import org.mozilla.fenix.ui.robots.clickPageObject @@ -260,12 +261,16 @@ class LoginsTest { navigationToolbar { }.enterURLAndEnterToBrowser(loginPage.toUri()) { setPageObjectText(itemWithResId("username"), firstUser) + waitForAppWindowToBeUpdated() setPageObjectText(itemWithResId("password"), firstPass) + waitForAppWindowToBeUpdated() clickPageObject(itemWithResId("submit")) verifySaveLoginPromptIsDisplayed() clickPageObject(itemWithText("Save")) setPageObjectText(itemWithResId("username"), secondUser) + waitForAppWindowToBeUpdated() setPageObjectText(itemWithResId("password"), secondPass) + waitForAppWindowToBeUpdated() clickPageObject(itemWithResId("submit")) verifySaveLoginPromptIsDisplayed() clickPageObject(itemWithText("Save")) @@ -505,9 +510,13 @@ class LoginsTest { navigationToolbar { }.enterURLAndEnterToBrowser(loginPage.toUri()) { + waitForPageToLoad() setPageObjectText(itemWithResId("username"), "mozilla") + waitForAppWindowToBeUpdated() setPageObjectText(itemWithResId("password"), "firefox") + waitForAppWindowToBeUpdated() clickPageObject(itemWithResId("submit")) + waitForPageToLoad() verifySaveLoginPromptIsDisplayed() clickPageObject(itemWithText("Save")) }.openTabDrawer { @@ -516,6 +525,8 @@ class LoginsTest { navigationToolbar { }.enterURLAndEnterToBrowser(loginPage.toUri()) { + waitForPageToLoad() + clickPageObject(itemWithResId("togglePassword")) verifyPrefilledLoginCredentials("mozilla", "firefox", true) }.openTabDrawer { closeTab() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt index fa871f77..24a87773 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt @@ -175,21 +175,21 @@ class MainMenuTest { verifyFindInPagePrevButton() verifyFindInPageCloseButton() enterFindInPageQuery("a") - verifyFindNextInPageResult("1/3") + verifyFindInPageResult("1/3") clickFindInPageNextButton() - verifyFindNextInPageResult("2/3") + verifyFindInPageResult("2/3") clickFindInPageNextButton() - verifyFindNextInPageResult("3/3") + verifyFindInPageResult("3/3") clickFindInPagePrevButton() - verifyFindPrevInPageResult("2/3") + verifyFindInPageResult("2/3") clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/3") + verifyFindInPageResult("1/3") }.closeFindInPageWithCloseButton { verifyFindInPageBar(false) }.openThreeDotMenu { }.openFindInPage { enterFindInPageQuery("3") - verifyFindNextInPageResult("1/1") + verifyFindInPageResult("1/1") }.closeFindInPageWithBackButton { verifyFindInPageBar(false) } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt index 5ea9084c..eba6aad2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt @@ -20,6 +20,7 @@ import org.mozilla.fenix.helpers.HomeActivityTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt index 7b07993a..340cbd08 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt @@ -117,17 +117,17 @@ class PDFViewerTest { verifyFindInPagePrevButton() verifyFindInPageCloseButton() enterFindInPageQuery("l") - verifyFindNextInPageResult("1/2") + verifyFindInPageResult("1/2") clickFindInPageNextButton() - verifyFindNextInPageResult("2/2") + verifyFindInPageResult("2/2") clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/2") + verifyFindInPageResult("1/2") }.closeFindInPageWithCloseButton { verifyFindInPageBar(false) }.openThreeDotMenu { }.openFindInPage { enterFindInPageQuery("p") - verifyFindNextInPageResult("1/1") + verifyFindInPageResult("1/1") }.closeFindInPageWithBackButton { verifyFindInPageBar(false) } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index 486c9703..e151f45b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -44,6 +44,7 @@ import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton import org.mozilla.fenix.helpers.TestHelper.exitMenu import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem import org.mozilla.fenix.helpers.TestHelper.mDevice +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen @@ -487,7 +488,7 @@ class SearchTest { }.openRecentlyVisitedSearchGroupHistoryList(queryString) { clickDeleteAllHistoryButton() confirmDeleteAllHistory() - verifyDeleteSnackbarText("Group deleted") + verifySnackBarText("Group deleted") verifyHistoryItemExists(shouldExist = false, firstPageUrl.toString()) }.goBack {} homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt index f11f8778..86b0b175 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt @@ -38,7 +38,6 @@ class SettingsAdvancedTest { private val youTubeFullLink = itemContainingText("Youtube full link") private val playStoreLink = itemContainingText("Playstore link") private val playStoreUrl = "play.google.com" - private val youTubePage = "vnd.youtube://".toUri() @get:Rule val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() @@ -159,11 +158,10 @@ class SettingsAdvancedTest { navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { - clickPageObject(youTubeFullLink) + clickPageObject(youTubeSchemaLink) verifyOpenLinkInAnotherAppPrompt() clickPageObject(itemWithResIdAndText("android:id/button2", "CANCEL")) - waitForPageToLoad() - verifyUrl("youtube") + verifyUrl(externalLinksPage.url.toString()) } } @@ -226,14 +224,13 @@ class SettingsAdvancedTest { navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { - clickPageObject(youTubeFullLink) + clickPageObject(youTubeSchemaLink) verifyPrivateBrowsingOpenLinkInAnotherAppPrompt( url = "youtube", - pageObject = youTubeFullLink, + pageObject = youTubeSchemaLink, ) clickPageObject(itemWithResIdAndText("android:id/button2", "CANCEL")) - waitForPageToLoad() - verifyUrl("youtube") + verifyUrl(externalLinksPage.url.toString()) } } @@ -311,7 +308,7 @@ class SettingsAdvancedTest { } navigationToolbar { - }.enterURLAndEnterToBrowser(youTubePage) { + }.enterURLAndEnterToBrowser("https://m.youtube.com/".toUri()) { waitForPageToLoad() verifyOpenLinksInAppsCFRExists(true) clickOpenLinksInAppsDismissCFRButton() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt index 4c525f09..bc4a78a9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt @@ -18,6 +18,7 @@ import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.restartApp +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt index 0d5562b4..5476905e 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt @@ -41,6 +41,7 @@ class SettingsSearchTest { listOf( "LeOSearch", "DuckDuckGo", + "Google", ) @get:Rule diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt index d09ac4e0..7072d6ef 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt @@ -23,6 +23,7 @@ import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.closeApp import org.mozilla.fenix.helpers.TestHelper.restartApp +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt index 7858a522..a45320d3 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt @@ -20,6 +20,7 @@ import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.verifySnackBarText import org.mozilla.fenix.helpers.TestHelper.waitUntilSnackbarGone import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen @@ -61,8 +62,12 @@ class TopSitesTest { fun addAWebsiteAsATopSiteTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(shouldExist = true) @@ -79,8 +84,12 @@ class TopSitesTest { fun openTopSiteInANewTabTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(shouldExist = true) @@ -107,8 +116,12 @@ class TopSitesTest { fun openTopSiteInANewPrivateTabTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(shouldExist = true) @@ -130,6 +143,9 @@ class TopSitesTest { val defaultWebPage = getGenericAsset(mockWebServer, 1) val newPageTitle = generateRandomString(5) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { waitForPageToLoad() @@ -154,8 +170,12 @@ class TopSitesTest { fun removeTopSiteUsingMenuButtonTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(shouldExist = true) @@ -181,8 +201,12 @@ class TopSitesTest { fun removeTopSiteFromMainMenuTest() { val defaultWebPage = getGenericAsset(mockWebServer, 1) + homeScreen { + verifyExistingTopSitesList() + } navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + verifyPageContent(defaultWebPage.content) }.openThreeDotMenu { expandMenu() verifyAddToShortcutsButton(shouldExist = true) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt index 5d0c83e9..f42941bb 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui.robots import android.os.Build +import android.util.Log import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.ComposeTestRule import androidx.compose.ui.test.onNodeWithTag @@ -13,6 +14,7 @@ import androidx.test.uiautomator.By import androidx.test.uiautomator.UiScrollable import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId @@ -27,27 +29,47 @@ import java.util.regex.Pattern */ class AddToHomeScreenRobot { - fun verifyAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = + fun verifyAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) { + Log.i(TAG, "verifyAddPrivateBrowsingShortcutButton: Trying to verify \"Add to Home screen\" private browsing shortcut dialog button is displayed") composeTestRule.onNodeWithTag("private.add").assertIsDisplayed() + Log.i(TAG, "verifyAddPrivateBrowsingShortcutButton: Verified \"Add to Home screen\" private browsing shortcut dialog button is displayed") + } - fun verifyNoThanksPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = + fun verifyNoThanksPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) { + Log.i(TAG, "verifyNoThanksPrivateBrowsingShortcutButton: Trying to verify \"No thanks\" private browsing shortcut dialog button is displayed") composeTestRule.onNodeWithTag("private.cancel").assertIsDisplayed() + Log.i(TAG, "verifyNoThanksPrivateBrowsingShortcutButton: Verified \"No thanks\" private browsing shortcut dialog button is displayed") + } - fun clickAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = + fun clickAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) { + Log.i(TAG, "clickAddPrivateBrowsingShortcutButton: Trying to click \"Add to Home screen\" private browsing shortcut dialog button") composeTestRule.onNodeWithTag("private.add").performClick() + Log.i(TAG, "clickAddPrivateBrowsingShortcutButton: Clicked \"Add to Home screen\" private browsing shortcut dialog button") + } - fun addShortcutName(title: String) = shortcutTextField.setText(title) + fun addShortcutName(title: String) { + Log.i(TAG, "addShortcutName: Trying to set shortcut name to: $title") + shortcutTextField().setText(title) + Log.i(TAG, "addShortcutName: Set shortcut name to: $title") + } fun verifyShortcutTextFieldTitle(title: String) = assertUIObjectExists(shortcutTitle(title)) - fun clickAddShortcutButton() = - confirmAddToHomeScreenButton.clickAndWaitForNewWindow(waitingTime) + fun clickAddShortcutButton() { + Log.i(TAG, "clickAddShortcutButton: Trying to click \"Add\" button from \"Add to home screen\" dialog and wait for $waitingTime ms for a new window") + confirmAddToHomeScreenButton().clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickAddShortcutButton: Clicked \"Add\" button from \"Add to home screen\" dialog and waited for $waitingTime ms for a new window") + } - fun clickCancelShortcutButton() = - cancelAddToHomeScreenButton.click() + fun clickCancelShortcutButton() { + Log.i(TAG, "clickCancelShortcutButton: Trying to click \"Cancel\" button from \"Add to home screen\" dialog") + cancelAddToHomeScreenButton().click() + Log.i(TAG, "clickCancelShortcutButton: Clicked \"Cancel\" button from \"Add to home screen\" dialog") + } fun clickAddAutomaticallyButton() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + Log.i(TAG, "clickAddAutomaticallyButton: Waiting for $waitingTime ms until finding \"Add automatically\" system dialog button") mDevice.wait( Until.findObject( By.text( @@ -56,7 +78,10 @@ class AddToHomeScreenRobot { ), waitingTime, ) + Log.i(TAG, "clickAddAutomaticallyButton: Waited for $waitingTime ms until \"Add automatically\" system dialog button was found") + Log.i(TAG, "clickAddAutomaticallyButton: Trying to click \"Add automatically\" system dialog button") addAutomaticallyButton().click() + Log.i(TAG, "clickAddAutomaticallyButton: Clicked \"Add automatically\" system dialog button") } } @@ -65,27 +90,37 @@ class AddToHomeScreenRobot { class Transition { fun openHomeScreenShortcut(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openHomeScreenShortcut: Waiting for $waitingTime ms until finding $title home screen shortcut") mDevice.wait( Until.findObject(By.text(title)), waitingTime, ) + Log.i(TAG, "openHomeScreenShortcut: Waited for $waitingTime ms until $title home screen shortcut was found") + Log.i(TAG, "openHomeScreenShortcut: Trying to click $title home screen shortcut and wait for $waitingTime ms for a new window") mDevice.findObject((UiSelector().text(title))).clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "openHomeScreenShortcut: Clicked $title home screen shortcut and waited for $waitingTime ms for a new window") BrowserRobot().interact() return BrowserRobot.Transition() } fun searchAndOpenHomeScreenShortcut(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Trying to press device home button") mDevice.pressHome() + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Pressed device home button") fun homeScreenView() = UiScrollable(UiSelector().scrollable(true)) + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Waiting for $waitingTime ms for home screen view to exist") homeScreenView().waitForExists(waitingTime) + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Waited for $waitingTime ms for home screen view to exist") fun shortcut() = homeScreenView() .setAsHorizontalList() .getChildByText(UiSelector().textContains(title), title, true) + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Trying to click home screen shortcut: $title and wait for a new window") shortcut().clickAndWaitForNewWindow() + Log.i(TAG, "searchAndOpenHomeScreenShortcut: Clicked home screen shortcut: $title and waited for a new window") BrowserRobot().interact() return BrowserRobot.Transition() @@ -101,11 +136,11 @@ fun addToHomeScreen(interact: AddToHomeScreenRobot.() -> Unit): AddToHomeScreenR private fun addAutomaticallyButton() = mDevice.findObject(UiSelector().textContains("add automatically")) -private val cancelAddToHomeScreenButton = +private fun cancelAddToHomeScreenButton() = itemWithResId("$packageName:id/cancel_button") -private val confirmAddToHomeScreenButton = +private fun confirmAddToHomeScreenButton() = itemWithResId("$packageName:id/add_button") -private val shortcutTextField = +private fun shortcutTextField() = itemWithResId("$packageName:id/shortcut_text") private fun shortcutTitle(title: String) = itemWithResIdAndText("$packageName:id/shortcut_text", title) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BookmarksRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BookmarksRobot.kt index 7247f007..48b73ced 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BookmarksRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BookmarksRobot.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.ui.robots import android.net.Uri +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions.clearText import androidx.test.espresso.action.ViewActions.longClick @@ -32,6 +33,7 @@ import org.hamcrest.Matchers.allOf import org.hamcrest.Matchers.containsString import org.junit.Assert.assertEquals import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText @@ -40,7 +42,6 @@ import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort import org.mozilla.fenix.helpers.TestHelper.mDevice @@ -54,51 +55,114 @@ import org.mozilla.fenix.helpers.ext.waitNotNull class BookmarksRobot { fun verifyBookmarksMenuView() { + Log.i(TAG, "verifyBookmarksMenuView: Waiting for $waitingTime ms for bookmarks view to exist") mDevice.findObject( UiSelector().text("Bookmarks"), ).waitForExists(waitingTime) - - assertBookmarksView() + Log.i(TAG, "verifyBookmarksMenuView: Waited for $waitingTime ms for bookmarks view to exist") + Log.i(TAG, "verifyBookmarksMenuView: Trying to verify bookmarks view is displayed") + onView( + allOf( + withText("Bookmarks"), + withParent(withId(R.id.navigationToolbar)), + ), + ).check(matches(isDisplayed())) + Log.i(TAG, "verifyBookmarksMenuView: Verified bookmarks view is displayed") } - fun verifyAddFolderButton() = assertAddFolderButton() + fun verifyAddFolderButton() { + Log.i(TAG, "verifyAddFolderButton: Trying to verify add bookmarks folder button is visible") + addFolderButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyAddFolderButton: Verified add bookmarks folder button is visible") + } - fun verifyCloseButton() = assertCloseButton() + fun verifyCloseButton() { + Log.i(TAG, "verifyCloseButton: Trying to verify close bookmarks section button is visible") + closeButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyCloseButton: Verified close bookmarks section button is visible") + } - fun verifyDeleteMultipleBookmarksSnackBar() = assertSnackBarText("Bookmarks deleted") + fun verifyBookmarkFavicon(forUrl: Uri) { + Log.i(TAG, "verifyBookmarkFavicon: Trying to verify bookmarks favicon for $forUrl is visible") + bookmarkFavicon(forUrl.toString()).check( + matches( + withEffectiveVisibility( + ViewMatchers.Visibility.VISIBLE, + ), + ), + ) + Log.i(TAG, "verifyBookmarkFavicon: Verified bookmarks favicon for $forUrl is visible") + } - fun verifyBookmarkFavicon(forUrl: Uri) = assertBookmarkFavicon(forUrl) - - fun verifyBookmarkedURL(url: String) = assertBookmarkURL(url) + fun verifyBookmarkedURL(url: String) { + Log.i(TAG, "verifyBookmarkedURL: Trying to verify bookmarks url: $url is displayed") + bookmarkURL(url).check(matches(isDisplayed())) + Log.i(TAG, "verifyBookmarkedURL: Verified bookmarks url: $url is displayed") + } fun verifyFolderTitle(title: String) { + Log.i(TAG, "verifyFolderTitle: Waiting for $waitingTime ms for bookmarks folder with title: $title to exist") mDevice.findObject(UiSelector().text(title)).waitForExists(waitingTime) - assertFolderTitle(title) + Log.i(TAG, "verifyFolderTitle: Waited for $waitingTime ms for bookmarks folder with title: $title to exist") + Log.i(TAG, "verifyFolderTitle: Trying to verify bookmarks folder with title: $title is displayed") + onView(withText(title)).check(matches(isDisplayed())) + Log.i(TAG, "verifyFolderTitle: Verified bookmarks folder with title: $title is displayed") } - fun verifyBookmarkFolderIsNotCreated(title: String) = assertBookmarkFolderIsNotCreated(title) + fun verifyBookmarkFolderIsNotCreated(title: String) { + Log.i(TAG, "verifyBookmarkFolderIsNotCreated: Waiting for $waitingTime ms for bookmarks folder with title: $title to exist") + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/bookmarks_wrapper"), + ).waitForExists(waitingTime) + Log.i(TAG, "verifyBookmarkFolderIsNotCreated: Waited for $waitingTime ms for bookmarks folder with title: $title to exist") + + assertUIObjectExists(itemContainingText(title), exists = false) + } fun verifyBookmarkTitle(title: String) { + Log.i(TAG, "verifyBookmarkTitle: Waiting for $waitingTime ms for bookmark with title: $title to exist") mDevice.findObject(UiSelector().text(title)).waitForExists(waitingTime) - assertBookmarkTitle(title) + Log.i(TAG, "verifyBookmarkTitle: Waited for $waitingTime ms for bookmark with title: $title to exist") + Log.i(TAG, "verifyBookmarkTitle: Trying to verify bookmark with title: $title is displayed") + onView(withText(title)).check(matches(isDisplayed())) + Log.i(TAG, "verifyBookmarkTitle: Verified bookmark with title: $title is displayed") } - fun verifyBookmarkIsDeleted(expectedTitle: String) = assertBookmarkIsDeleted(expectedTitle) + fun verifyBookmarkIsDeleted(expectedTitle: String) { + Log.i(TAG, "verifyBookmarkIsDeleted: Waiting for $waitingTime ms for bookmarks view to exist") + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/bookmarks_wrapper"), + ).waitForExists(waitingTime) + Log.i(TAG, "verifyBookmarkIsDeleted: Waited for $waitingTime ms for bookmarks view to exist") + assertUIObjectExists( + itemWithResIdContainingText( + "$packageName:id/title", + expectedTitle, + ), + exists = false, + ) + } - fun verifyDeleteSnackBarText() = assertSnackBarText("Deleted") - - fun verifyUndoDeleteSnackBarButton() = assertUndoDeleteSnackBarButton() + fun verifyUndoDeleteSnackBarButton() { + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Trying to verify bookmark deletion undo snack bar button") + snackBarUndoButton().check(matches(withText("UNDO"))) + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Verified bookmark deletion undo snack bar button") + } fun verifySnackBarHidden() { + Log.i(TAG, "verifySnackBarHidden: Waiting until undo snack bar button is gone") mDevice.waitNotNull( Until.gone(By.text("UNDO")), - TestAssetHelper.waitingTime, + waitingTime, ) + Log.i(TAG, "verifySnackBarHidden: Waited until undo snack bar button was gone") + Log.i(TAG, "verifySnackBarHidden: Trying to verify bookmark snack bar does not exist") onView(withId(R.id.snackbar_layout)).check(doesNotExist()) + Log.i(TAG, "verifySnackBarHidden: Verified bookmark snack bar does not exist") } - fun verifyCopySnackBarText() = assertSnackBarText("URL copied") - fun verifyEditBookmarksView() = assertUIObjectExists( itemWithDescription("Navigate up"), @@ -110,27 +174,50 @@ class BookmarksRobot { itemWithResId("$packageName:id/bookmarkParentFolderSelector"), ) - fun verifyKeyboardHidden() = assertKeyboardVisibility(isExpectedToBeVisible = false) + fun verifyKeyboardHidden(isExpectedToBeVisible: Boolean) { + Log.i(TAG, "assertKeyboardVisibility: Trying to verify that the keyboard is visible: $isExpectedToBeVisible") + assertEquals( + isExpectedToBeVisible, + mDevice + .executeShellCommand("dumpsys input_method | grep mInputShown") + .contains("mInputShown=true"), + ) + Log.i(TAG, "assertKeyboardVisibility: Verified that the keyboard is visible: $isExpectedToBeVisible") + } - fun verifyKeyboardVisible() = assertKeyboardVisibility(isExpectedToBeVisible = true) + fun verifyShareOverlay() { + Log.i(TAG, "verifyShareOverlay: Trying to verify bookmarks sharing overlay is displayed") + onView(withId(R.id.shareWrapper)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareOverlay: Verified bookmarks sharing overlay is displayed") + } - fun verifyShareOverlay() = assertShareOverlay() + fun verifyShareBookmarkFavicon() { + Log.i(TAG, "verifyShareBookmarkFavicon: Trying to verify shared bookmarks favicon is displayed") + onView(withId(R.id.share_tab_favicon)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareBookmarkFavicon: Verified shared bookmarks favicon is displayed") + } - fun verifyShareBookmarkFavicon() = assertShareBookmarkFavicon() + fun verifyShareBookmarkTitle() { + Log.i(TAG, "verifyShareBookmarkTitle: Trying to verify shared bookmarks title is displayed") + onView(withId(R.id.share_tab_title)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareBookmarkTitle: Verified shared bookmarks title is displayed") + } - fun verifyShareBookmarkTitle() = assertShareBookmarkTitle() - - fun verifyShareBookmarkUrl() = assertShareBookmarkUrl() - - fun verifySelectDefaultFolderSnackBarText() = assertSnackBarText("Can’t edit default folders") + fun verifyShareBookmarkUrl() { + Log.i(TAG, "verifyShareBookmarkUrl: Trying to verify shared bookmarks url is displayed") + onView(withId(R.id.share_tab_url)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareBookmarkUrl: Verified shared bookmarks url is displayed") + } fun verifyCurrentFolderTitle(title: String) { + Log.i(TAG, "verifyCurrentFolderTitle: Waiting for $waitingTime ms for bookmark with title: $title to exist") mDevice.findObject( UiSelector().resourceId("$packageName:id/navigationToolbar") .textContains(title), ) .waitForExists(waitingTime) - + Log.i(TAG, "verifyCurrentFolderTitle: Waited for $waitingTime ms for bookmark with title: $title to exist") + Log.i(TAG, "verifyCurrentFolderTitle: Trying to verify bookmark with title: $title is displayed") onView( allOf( withText(title), @@ -138,28 +225,34 @@ class BookmarksRobot { ), ) .check(matches(isDisplayed())) + Log.i(TAG, "verifyCurrentFolderTitle: Verified bookmark with title: $title is displayed") } fun waitForBookmarksFolderContentToExist(parentFolderName: String, childFolderName: String) { + Log.i(TAG, "waitForBookmarksFolderContentToExist: Waiting for $waitingTime ms for navigation toolbar containing bookmark folder with title: $parentFolderName to exist") mDevice.findObject( UiSelector().resourceId("$packageName:id/navigationToolbar") .textContains(parentFolderName), ) .waitForExists(waitingTime) + Log.i(TAG, "waitForBookmarksFolderContentToExist: Waited for $waitingTime ms for navigation toolbar containing bookmark folder with title: $parentFolderName to exist") mDevice.waitNotNull(Until.findObject(By.text(childFolderName)), waitingTime) } - fun verifySyncSignInButton() = + fun verifySyncSignInButton() { + Log.i(TAG, "verifySyncSignInButton: Trying to verify sign in to sync button is visible") syncSignInButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - - fun verifyDeleteFolderConfirmationMessage() = assertDeleteFolderConfirmationMessage() + Log.i(TAG, "verifySyncSignInButton: Verified sign in to sync button is visible") + } fun cancelFolderDeletion() { + Log.i(TAG, "cancelFolderDeletion: Trying to click \"Cancel\" bookmarks folder deletion dialog button") onView(withText("CANCEL")) .inRoot(RootMatchers.isDialog()) .check(matches(isDisplayed())) .click() + Log.i(TAG, "cancelFolderDeletion: Clicked \"Cancel\" bookmarks folder deletion dialog button") } fun createFolder(name: String, parent: String? = null) { @@ -180,90 +273,127 @@ class BookmarksRobot { fun clickAddFolderButton() { mDevice.waitNotNull( Until.findObject(By.desc("Add folder")), - TestAssetHelper.waitingTime, + waitingTime, ) + Log.i(TAG, "clickAddFolderButton: Trying to click add bookmarks folder button") addFolderButton().click() + Log.i(TAG, "clickAddFolderButton: Clicked add bookmarks folder button") } - fun clickAddNewFolderButtonFromSelectFolderView() = + fun clickAddNewFolderButtonFromSelectFolderView() { itemWithResId("$packageName:id/add_folder_button") .also { + Log.i(TAG, "clickAddNewFolderButtonFromSelectFolderView: Waiting for $waitingTime ms for add bookmarks folder button from folder selection view to exist") it.waitForExists(waitingTime) + Log.i(TAG, "clickAddNewFolderButtonFromSelectFolderView: Waited for $waitingTime ms for add bookmarks folder button from folder selection view to exist") + Log.i(TAG, "clickAddNewFolderButtonFromSelectFolderView: Trying to click add bookmarks folder button from folder selection view") it.click() + Log.i(TAG, "clickAddNewFolderButtonFromSelectFolderView: Clicked add bookmarks folder button from folder selection view") } + } fun addNewFolderName(name: String) { - addFolderTitleField() - .click() - .perform(replaceText(name)) + Log.i(TAG, "addNewFolderName: Trying to click add folder name field") + addFolderTitleField().click() + Log.i(TAG, "addNewFolderName: Clicked to click add folder name field") + Log.i(TAG, "addNewFolderName: Trying to set bookmarks folder name to: $name") + addFolderTitleField().perform(replaceText(name)) + Log.i(TAG, "addNewFolderName: Bookmarks folder name was set to: $name") } fun saveNewFolder() { + Log.i(TAG, "saveNewFolder: Trying to click save folder button") saveFolderButton().click() + Log.i(TAG, "saveNewFolder: Clicked save folder button") } fun navigateUp() { + Log.i(TAG, "navigateUp: Trying to click navigate up toolbar button") goBackButton().click() + Log.i(TAG, "navigateUp: Clicked navigate up toolbar button") } fun clickUndoDeleteButton() { + Log.i(TAG, "clickUndoDeleteButton: Trying to click undo snack bar button") snackBarUndoButton().click() + Log.i(TAG, "clickUndoDeleteButton: Clicked undo snack bar button") } fun changeBookmarkTitle(newTitle: String) { - bookmarkNameEditBox() - .perform(clearText()) - .perform(typeText(newTitle)) + Log.i(TAG, "changeBookmarkTitle: Trying to clear bookmark name text box") + bookmarkNameEditBox().perform(clearText()) + Log.i(TAG, "changeBookmarkTitle: Cleared bookmark name text box") + Log.i(TAG, "changeBookmarkTitle: Trying to set bookmark title to: $newTitle") + bookmarkNameEditBox().perform(typeText(newTitle)) + Log.i(TAG, "changeBookmarkTitle: Bookmark title was set to: $newTitle") } fun changeBookmarkUrl(newUrl: String) { - bookmarkURLEditBox() - .perform(clearText()) - .perform(typeText(newUrl)) + Log.i(TAG, "changeBookmarkUrl: Trying to clear bookmark url text box") + bookmarkURLEditBox().perform(clearText()) + Log.i(TAG, "changeBookmarkUrl: Cleared bookmark url text box") + Log.i(TAG, "changeBookmarkUrl: Trying to set bookmark url to: $newUrl") + bookmarkURLEditBox().perform(typeText(newUrl)) + Log.i(TAG, "changeBookmarkUrl: Bookmark url was set to: $newUrl") } fun saveEditBookmark() { + Log.i(TAG, "saveEditBookmark: Trying to click save bookmark button") saveBookmarkButton().click() + Log.i(TAG, "saveEditBookmark: Clicked save bookmark button") + Log.i(TAG, "saveEditBookmark: Waiting for $waitingTime ms for bookmarks list to exist") mDevice.findObject(UiSelector().resourceId("org.mozilla.fenix.debug:id/bookmark_list")).waitForExists(waitingTime) + Log.i(TAG, "saveEditBookmark: Waited for $waitingTime ms for bookmarks list to exist") } - fun clickParentFolderSelector() = bookmarkFolderSelector().click() + fun clickParentFolderSelector() { + Log.i(TAG, "clickParentFolderSelector: Trying to click folder selector") + bookmarkFolderSelector().click() + Log.i(TAG, "clickParentFolderSelector: Clicked folder selector") + } - fun selectFolder(title: String) = onView(withText(title)).click() + fun selectFolder(title: String) { + Log.i(TAG, "selectFolder: Trying to click folder with title: $title") + onView(withText(title)).click() + Log.i(TAG, "selectFolder: Clicked folder with title: $title") + } - fun longTapDesktopFolder(title: String) = onView(withText(title)).perform(longClick()) + fun longTapDesktopFolder(title: String) { + Log.i(TAG, "longTapDesktopFolder: Trying to long tap folder with title: $title") + onView(withText(title)).perform(longClick()) + Log.i(TAG, "longTapDesktopFolder: Long tapped folder with title: $title") + } fun cancelDeletion() { val cancelButton = mDevice.findObject(UiSelector().textContains("CANCEL")) + Log.i(TAG, "cancelDeletion: Waiting for $waitingTime ms for \"Cancel\" bookmarks deletion button to exist") cancelButton.waitForExists(waitingTime) + Log.i(TAG, "cancelDeletion: Waited for $waitingTime ms for \"Cancel\" bookmarks deletion button to exist") + Log.i(TAG, "cancelDeletion: Trying to click \"Cancel\" bookmarks deletion button") cancelButton.click() + Log.i(TAG, "cancelDeletion: Clicked \"Cancel\" bookmarks deletion button") } fun confirmDeletion() { + Log.i(TAG, "confirmDeletion: Trying to click \"Delete\" bookmarks deletion button") onView(withText(R.string.delete_browsing_data_prompt_allow)) .inRoot(RootMatchers.isDialog()) .check(matches(isDisplayed())) .click() + Log.i(TAG, "confirmDeletion: Clicked \"Delete\" bookmarks deletion button") } - fun clickDeleteInEditModeButton() = deleteInEditModeButton().click() - - fun searchBookmarkedItem(bookmarkedItem: String) { - itemWithResId("$packageName:id/mozac_browser_toolbar_edit_url_view").also { - it.waitForExists(waitingTime) - it.setText(bookmarkedItem) - } - mDevice.waitForWindowUpdate(packageName, waitingTimeShort) + fun clickDeleteInEditModeButton() { + Log.i(TAG, "clickDeleteInEditModeButton: Trying to click delete bookmarks button while in edit mode") + deleteInEditModeButton().click() + Log.i(TAG, "clickDeleteInEditModeButton: Clicked delete bookmarks button while in edit mode") } - fun verifySearchedBookmarkExists(bookmarkUrl: String, exists: Boolean = true) = - assertUIObjectExists(itemContainingText(bookmarkUrl), exists = exists) - - fun dismissBookmarksSearchBar() = mDevice.pressBack() - class Transition { fun closeMenu(interact: HomeScreenRobot.() -> Unit): Transition { + Log.i(TAG, "closeMenu: Trying to click close bookmarks section button") closeButton().click() + Log.i(TAG, "closeMenu: Clicked close bookmarks section button") HomeScreenRobot().interact() return Transition() @@ -271,35 +401,45 @@ class BookmarksRobot { fun openThreeDotMenu(bookmark: String, interact: ThreeDotMenuBookmarksRobot.() -> Unit): ThreeDotMenuBookmarksRobot.Transition { mDevice.waitNotNull(Until.findObject(res("$packageName:id/overflow_menu"))) + Log.i(TAG, "openThreeDotMenu: Trying to click three dot button for bookmark item: $bookmark") threeDotMenu(bookmark).click() + Log.i(TAG, "openThreeDotMenu: Clicked three dot button for bookmark item: $bookmark") ThreeDotMenuBookmarksRobot().interact() return ThreeDotMenuBookmarksRobot.Transition() } fun clickSingInToSyncButton(interact: SettingsTurnOnSyncRobot.() -> Unit): SettingsTurnOnSyncRobot.Transition { + Log.i(TAG, "clickSingInToSyncButton: Trying to click sign in to sync button") syncSignInButton().click() + Log.i(TAG, "clickSingInToSyncButton: Clicked sign in to sync button") SettingsTurnOnSyncRobot().interact() return SettingsTurnOnSyncRobot.Transition() } fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBack: Trying to click go back button") goBackButton().click() + Log.i(TAG, "goBack: Clicked go back button") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun goBackToBrowserScreen(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "goBackToBrowserScreen: Trying to click go back button") goBackButton().click() + Log.i(TAG, "goBackToBrowserScreen: Clicked go back button") BrowserRobot().interact() return BrowserRobot.Transition() } fun closeEditBookmarkSection(interact: BookmarksRobot.() -> Unit): Transition { + Log.i(TAG, "goBackToBrowserScreen: Trying to click go back button") goBackButton().click() + Log.i(TAG, "goBackToBrowserScreen: Clicked go back button") BookmarksRobot().interact() return Transition() @@ -308,8 +448,12 @@ class BookmarksRobot { fun openBookmarkWithTitle(bookmarkTitle: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { itemWithResIdAndText("$packageName:id/title", bookmarkTitle) .also { + Log.i(TAG, "openBookmarkWithTitle: Waiting for $waitingTime ms for bookmark with title: $bookmarkTitle") it.waitForExists(waitingTime) + Log.i(TAG, "openBookmarkWithTitle: Waited for $waitingTime ms for bookmark with title: $bookmarkTitle") + Log.i(TAG, "openBookmarkWithTitle: Trying to click bookmark with title: $bookmarkTitle and wait for $waitingTimeShort ms for a new window") it.clickAndWaitForNewWindow(waitingTimeShort) + Log.i(TAG, "openBookmarkWithTitle: Clicked bookmark with title: $bookmarkTitle and waited for $waitingTimeShort ms for a new window") } BrowserRobot().interact() @@ -317,7 +461,9 @@ class BookmarksRobot { } fun clickSearchButton(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "clickSearchButton: Trying to click search bookmarks button") itemWithResId("$packageName:id/bookmark_search").click() + Log.i(TAG, "clickSearchButton: Clicked search bookmarks button") SearchRobot().interact() return SearchRobot.Transition() @@ -375,92 +521,3 @@ private fun saveBookmarkButton() = onView(withId(R.id.save_bookmark_button)) private fun deleteInEditModeButton() = onView(withId(R.id.delete_bookmark_button)) private fun syncSignInButton() = onView(withId(R.id.bookmark_folders_sign_in)) - -private fun assertBookmarksView() { - onView( - allOf( - withText("Bookmarks"), - withParent(withId(R.id.navigationToolbar)), - ), - ) - .check(matches(isDisplayed())) -} - -private fun assertAddFolderButton() = - addFolderButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun assertCloseButton() = closeButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun assertEmptyBookmarksList() = - onView(withId(R.id.bookmarks_empty_view)).check(matches(withText("No bookmarks here"))) - -private fun assertBookmarkFolderIsNotCreated(title: String) { - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/bookmarks_wrapper"), - ).waitForExists(waitingTime) - - assertUIObjectExists(itemContainingText(title), exists = false) -} - -private fun assertBookmarkFavicon(forUrl: Uri) = bookmarkFavicon(forUrl.toString()).check( - matches( - withEffectiveVisibility( - ViewMatchers.Visibility.VISIBLE, - ), - ), -) - -private fun assertBookmarkURL(expectedURL: String) = - bookmarkURL(expectedURL).check(matches(isDisplayed())) - -private fun assertFolderTitle(expectedTitle: String) = - onView(withText(expectedTitle)).check(matches(isDisplayed())) - -private fun assertBookmarkTitle(expectedTitle: String) = - onView(withText(expectedTitle)).check(matches(isDisplayed())) - -private fun assertBookmarkIsDeleted(expectedTitle: String) { - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/bookmarks_wrapper"), - ).waitForExists(waitingTime) - - assertUIObjectExists( - itemWithResIdContainingText( - "$packageName:id/title", - expectedTitle, - ), - exists = false, - ) -} -private fun assertUndoDeleteSnackBarButton() = - snackBarUndoButton().check(matches(withText("UNDO"))) - -private fun assertSnackBarText(text: String) = - snackBarText().check(matches(withText(containsString(text)))) - -private fun assertKeyboardVisibility(isExpectedToBeVisible: Boolean) = - assertEquals( - isExpectedToBeVisible, - mDevice - .executeShellCommand("dumpsys input_method | grep mInputShown") - .contains("mInputShown=true"), - ) - -private fun assertShareOverlay() = - onView(withId(R.id.shareWrapper)).check(matches(isDisplayed())) - -private fun assertShareBookmarkTitle() = - onView(withId(R.id.share_tab_title)).check(matches(isDisplayed())) - -private fun assertShareBookmarkFavicon() = - onView(withId(R.id.share_tab_favicon)).check(matches(isDisplayed())) - -private fun assertShareBookmarkUrl() = - onView(withId(R.id.share_tab_url)).check(matches(isDisplayed())) - -private fun assertDeleteFolderConfirmationMessage() = - onView(withText(R.string.bookmark_delete_folder_confirmation_dialog)) - .inRoot(RootMatchers.isDialog()) - .check(matches(isDisplayed())) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index 7a0b7c47..d98e22a9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -15,17 +15,14 @@ import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.action.ViewActions.longClick import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.PickerActions import androidx.test.espresso.matcher.RootMatchers.isDialog -import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withContentDescription -import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.uiautomator.By import androidx.test.uiautomator.By.text @@ -74,7 +71,9 @@ class BrowserRobot { fun verifyCurrentPrivateSession(context: Context) { val selectedTab = context.components.core.store.state.selectedTab + Log.i(TAG, "verifyCurrentPrivateSession: Trying to verify that current browsing session is private") assertTrue("Current session is private", selectedTab?.content?.private ?: false) + Log.i(TAG, "verifyCurrentPrivateSession: Verified that current browsing session is private") } fun verifyUrl(url: String) { @@ -165,11 +164,6 @@ class BrowserRobot { ), ) - fun verifySnackBarText(expectedText: String) { - mDevice.waitForObjects(mDevice.findObject(UiSelector().textContains(expectedText))) - assertUIObjectExists(itemContainingText(expectedText)) - } - fun verifyContextMenuForLocalHostLinks(containsURL: Uri) { // If the link is directing to another local asset the "Download link" option is not available // If the link is not re-directing to an external app the "Open link in external app" option is not available @@ -234,11 +228,11 @@ class BrowserRobot { fun verifyNavURLBarHidden() = assertUIObjectIsGone(navURLBar()) - fun verifySecureConnectionLockIcon() = - onView(withId(R.id.mozac_browser_toolbar_security_indicator)) - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - - fun verifyMenuButton() = threeDotButton().check(matches(isDisplayed())) + fun verifyMenuButton() { + Log.i(TAG, "verifyMenuButton: Trying to verify main menu button is displayed") + threeDotButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyMenuButton: Verified main menu button is displayed") + } fun verifyNoLinkImageContextMenuItems(containsURL: Uri) { mDevice.waitNotNull(Until.findObject(By.textContains(containsURL.toString()))) @@ -256,13 +250,10 @@ class BrowserRobot { fun verifyNotificationDotOnMainMenu() = assertUIObjectExists(itemWithResId("$packageName:id/notification_dot")) - fun verifyHomeScreenButton() = - homeScreenButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - - fun verifySearchBar() = assertUIObjectExists(searchBar()) - fun dismissContentContextMenu() { + Log.i(TAG, "dismissContentContextMenu: Trying to click device back button") mDevice.pressBack() + Log.i(TAG, "dismissContentContextMenu: Clicked device back button") assertUIObjectExists(itemWithResId("$packageName:id/engineView")) } @@ -292,7 +283,9 @@ class BrowserRobot { fun clickSubmitLoginButton() { clickPageObject(itemWithResId("submit")) assertUIObjectIsGone(itemWithResId("submit")) + Log.i(TAG, "clickSubmitLoginButton: Waiting for device to be idle for $waitingTimeLong ms") mDevice.waitForIdle(waitingTimeLong) + Log.i(TAG, "clickSubmitLoginButton: Waited for device to be idle for $waitingTimeLong ms") } fun enterPassword(password: String) { @@ -334,10 +327,16 @@ class BrowserRobot { fun swipeNavBarRight(tabUrl: String) { // failing to swipe on Firebase sometimes, so it tries again try { + Log.i(TAG, "swipeNavBarRight: Try block") + Log.i(TAG, "swipeNavBarRight: Trying to perform swipe right action on navigation toolbar") navURLBar().swipeRight(2) + Log.i(TAG, "swipeNavBarRight: Performed swipe right action on navigation toolbar") assertUIObjectIsGone(itemWithText(tabUrl)) } catch (e: AssertionError) { + Log.i(TAG, "swipeNavBarRight: AssertionError caught, executing fallback methods") + Log.i(TAG, "swipeNavBarRight: Trying to perform swipe right action on navigation toolbar") navURLBar().swipeRight(2) + Log.i(TAG, "swipeNavBarRight: Performed swipe right action on navigation toolbar") assertUIObjectIsGone(itemWithText(tabUrl)) } } @@ -345,10 +344,16 @@ class BrowserRobot { fun swipeNavBarLeft(tabUrl: String) { // failing to swipe on Firebase sometimes, so it tries again try { + Log.i(TAG, "swipeNavBarLeft: Try block") + Log.i(TAG, "swipeNavBarLeft: Trying to perform swipe left action on navigation toolbar") navURLBar().swipeLeft(2) + Log.i(TAG, "swipeNavBarLeft: Performed swipe left action on navigation toolbar") assertUIObjectIsGone(itemWithText(tabUrl)) } catch (e: AssertionError) { + Log.i(TAG, "swipeNavBarLeft: AssertionError caught, executing fallback methods") + Log.i(TAG, "swipeNavBarLeft: Trying to perform swipe left action on navigation toolbar") navURLBar().swipeLeft(2) + Log.i(TAG, "swipeNavBarLeft: Performed swipe left action on navigation toolbar") assertUIObjectIsGone(itemWithText(tabUrl)) } } @@ -356,11 +361,15 @@ class BrowserRobot { fun clickSuggestedLoginsButton() { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "clickSuggestedLoginsButton: Started try #$i") mDevice.waitForObjects(suggestedLogins()) + Log.i(TAG, "clickSuggestedLoginsButton: Trying to click suggested logins button") suggestedLogins().click() + Log.i(TAG, "clickSuggestedLoginsButton: Clicked suggested logins button") mDevice.waitForObjects(suggestedLogins()) break } catch (e: UiObjectNotFoundException) { + Log.i(TAG, "clickSuggestedLoginsButton: UiObjectNotFoundException caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -370,8 +379,11 @@ class BrowserRobot { } } - fun setTextForApartmentTextBox(apartment: String) = + fun setTextForApartmentTextBox(apartment: String) { + Log.i(TAG, "setTextForApartmentTextBox: Trying to set the text for the apartment text box to: $apartment") itemWithResId("apartment").setText(apartment) + Log.i(TAG, "setTextForApartmentTextBox: The text for the apartment text box was set to: $apartment") + } fun clearAddressForm() { clearTextFieldItem(itemWithResId("streetAddress")) @@ -385,11 +397,15 @@ class BrowserRobot { fun clickSelectAddressButton() { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "clickSelectAddressButton: Started try #$i") assertUIObjectExists(selectAddressButton()) + Log.i(TAG, "clickSelectAddressButton: Trying to click the select address button and wait for $waitingTime ms for a new window") selectAddressButton().clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickSelectAddressButton: Clicked the select address button and waited for $waitingTime ms for a new window") break } catch (e: AssertionError) { + Log.i(TAG, "clickSelectAddressButton: AssertionError caught, executing fallback methods") // Retrying to trigger the prompt, in case we hit https://bugzilla.mozilla.org/show_bug.cgi?id=1816869 // This should be removed when the bug is fixed. if (i == RETRY_COUNT) { @@ -404,28 +420,52 @@ class BrowserRobot { fun verifySelectAddressButtonExists(exists: Boolean) = assertUIObjectExists(selectAddressButton(), exists = exists) - fun changeCreditCardExpiryDate(expiryDate: String) = + fun changeCreditCardExpiryDate(expiryDate: String) { + Log.i(TAG, "changeCreditCardExpiryDate: Trying to set credit card expiry date to: $expiryDate") itemWithResId("expiryMonthAndYear").setText(expiryDate) - - fun clickCreditCardNumberTextBox() { - mDevice.wait(Until.findObject(By.res("cardNumber")), waitingTime) - mDevice.findObject(By.res("cardNumber")).click() - mDevice.waitForWindowUpdate(appName, waitingTimeShort) + Log.i(TAG, "changeCreditCardExpiryDate: Credit card expiry date was set to: $expiryDate") } - fun clickCreditCardFormSubmitButton() = + fun clickCreditCardNumberTextBox() { + Log.i(TAG, "clickCreditCardNumberTextBox: Waiting for $waitingTime ms until finding the credit card number text box") + mDevice.wait(Until.findObject(By.res("cardNumber")), waitingTime) + Log.i(TAG, "clickCreditCardNumberTextBox: Waited for $waitingTime ms until the credit card number text box was found") + Log.i(TAG, "clickCreditCardNumberTextBox: Trying to click the credit card number text box") + mDevice.findObject(By.res("cardNumber")).click() + Log.i(TAG, "clickCreditCardNumberTextBox: Clicked the credit card number text box") + Log.i(TAG, "clickCreditCardNumberTextBox: Waiting for $waitingTimeShort ms for $appName window to be updated") + mDevice.waitForWindowUpdate(appName, waitingTimeShort) + Log.i(TAG, "clickCreditCardNumberTextBox: Waited for $waitingTimeShort ms for $appName window to be updated") + } + + fun clickCreditCardFormSubmitButton() { + Log.i(TAG, "clickCreditCardFormSubmitButton: Trying to click the credit card form submit button and wait for $waitingTime ms for a new window") itemWithResId("submit").clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickCreditCardFormSubmitButton: Clicked the credit card form submit button and waited for $waitingTime ms for a new window") + } fun fillAndSaveCreditCard(cardNumber: String, cardName: String, expiryMonthAndYear: String) { + Log.i(TAG, "fillAndSaveCreditCard: Tying to set credit card number to: $cardNumber") itemWithResId("cardNumber").setText(cardNumber) + Log.i(TAG, "fillAndSaveCreditCard: Credit card number was set to: $cardNumber") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "fillAndSaveCreditCard: Trying to set credit card name to: $cardName") itemWithResId("nameOnCard").setText(cardName) + Log.i(TAG, "fillAndSaveCreditCard: Credit card name was set to: $cardName") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "fillAndSaveCreditCard: Trying to set credit card expiry month and year to: $expiryMonthAndYear") itemWithResId("expiryMonthAndYear").setText(expiryMonthAndYear) + Log.i(TAG, "fillAndSaveCreditCard: Credit card expiry month and year were set to: $expiryMonthAndYear") + Log.i(TAG, "fillAndSaveCreditCard: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "fillAndSaveCreditCard: Waited for device to be idle for $waitingTime ms") + Log.i(TAG, "fillAndSaveCreditCard: Trying to click the credit card form submit button and wait for $waitingTime ms for a new window") itemWithResId("submit").clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "fillAndSaveCreditCard: Clicked the credit card form submit button and waited for $waitingTime ms for a new window") waitForPageToLoad() + Log.i(TAG, "fillAndSaveCreditCard: Waiting for $waitingTime ms for $packageName window to be updated") mDevice.waitForWindowUpdate(packageName, waitingTime) + Log.i(TAG, "fillAndSaveCreditCard: Waited for $waitingTime ms for $packageName window to be updated") } fun verifyUpdateOrSaveCreditCardPromptExists(exists: Boolean) = @@ -449,10 +489,9 @@ class BrowserRobot { } fun verifySuggestedUserName(userName: String) { - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/mozac_feature_login_multiselect_expand"), - ).waitForExists(waitingTime) + Log.i(TAG, "verifySuggestedUserName: Waiting for $waitingTime ms for suggested logins fragment to exist") + itemWithResId("$packageName:id/mozac_feature_login_multiselect_expand").waitForExists(waitingTime) + Log.i(TAG, "verifySuggestedUserName: Waited for $waitingTime ms for suggested logins fragment to exist") assertUIObjectExists(itemContainingText(userName)) } @@ -460,6 +499,7 @@ class BrowserRobot { // Sometimes the assertion of the pre-filled logins fails so we are re-trying after refreshing the page for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifyPrefilledLoginCredentials: Started try #$i") mDevice.waitForObjects(itemWithResId("username")) assertItemTextEquals(itemWithResId("username"), expectedText = userName, isEqual = credentialsArePrefilled) mDevice.waitForObjects(itemWithResId("password")) @@ -467,6 +507,7 @@ class BrowserRobot { break } catch (e: AssertionError) { + Log.i(TAG, "verifyPrefilledLoginCredentials: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -499,23 +540,6 @@ class BrowserRobot { assertUIObjectExists(itemWithResIdAndText("cardNumber", creditCardNumber)) } - fun verifyPrefilledPWALoginCredentials(userName: String, shortcutTitle: String) { - mDevice.waitForIdle(waitingTime) - - var currentTries = 0 - while (currentTries++ < 3) { - try { - assertUIObjectExists(itemWithResId("submit")) - itemWithResId("submit").click() - assertItemTextEquals(itemWithResId("username"), expectedText = userName) - break - } catch (e: AssertionError) { - addToHomeScreen { - }.searchAndOpenHomeScreenShortcut(shortcutTitle) {} - } - } - } - fun verifySaveLoginPromptIsDisplayed() = assertUIObjectExists( itemWithResId("$packageName:id/feature_prompt_login_fragment"), @@ -530,14 +554,16 @@ class BrowserRobot { fun verifyTrackingProtectionWebContent(state: String) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifyTrackingProtectionWebContent: Started try #$i") assertUIObjectExists(itemContainingText(state)) break } catch (e: AssertionError) { + Log.i(TAG, "verifyTrackingProtectionWebContent: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { - Log.e("TestLog", "On try $i, trackers are not: $state") + Log.e(TAG, "On try $i, trackers are not: $state") navigationToolbar { }.openThreeDotMenu { @@ -550,38 +576,61 @@ class BrowserRobot { fun verifyCookiesProtectionHintIsDisplayed(composeTestRule: HomeActivityComposeTestRule, isDisplayed: Boolean) { if (isDisplayed) { + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection message is displayed") composeTestRule.onNodeWithTag("tcp_cfr.message").assertIsDisplayed() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified total cookie protection message is displayed") + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection learn more link is displayed") composeTestRule.onNodeWithTag("tcp_cfr.action").assertIsDisplayed() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified that the total cookie protection learn more link is displayed") + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection dismiss button is displayed") composeTestRule.onNodeWithTag("cfr.dismiss").assertIsDisplayed() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified total cookie protection dismiss button is displayed") } else { + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection message does not exist") composeTestRule.onNodeWithTag("tcp_cfr.message").assertDoesNotExist() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified that the total cookie protection message does not exist") + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection learn more link does not exist") composeTestRule.onNodeWithTag("tcp_cfr.action").assertDoesNotExist() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified total cookie protection learn more link does not exist") + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Trying to verify that the total cookie protection dismiss button does not exist") composeTestRule.onNodeWithTag("cfr.dismiss").assertDoesNotExist() + Log.i(TAG, "verifyCookiesProtectionHintIsDisplayed: Verified that the total cookie protection dismiss button does not exist") } } fun clickTCPCFRLearnMore(composeTestRule: HomeActivityComposeTestRule) { + Log.i(TAG, "clickTCPCFRLearnMore: Trying to click the total cookie protection learn more link") composeTestRule.onNodeWithTag("tcp_cfr.action").performClick() + Log.i(TAG, "clickTCPCFRLearnMore: Clicked total cookie protection learn more link") } fun dismissTCPCFRPopup(composeTestRule: HomeActivityComposeTestRule) { + Log.i(TAG, "dismissTCPCFRPopup: Trying to click the total cookie protection dismiss button") composeTestRule.onNodeWithTag("cfr.dismiss").performClick() + Log.i(TAG, "dismissTCPCFRPopup: Clicked total cookie protection dismiss button") } fun verifyShouldShowCFRTCP(shouldShow: Boolean, settings: Settings) { if (shouldShow) { + Log.i(TAG, "verifyShouldShowCFRTCP: Trying to verify that the TCP CFR should be shown") assertTrue(settings.shouldShowTotalCookieProtectionCFR) + Log.i(TAG, "verifyShouldShowCFRTCP: Verified that the TCP CFR should be shown") } else { + Log.i(TAG, "verifyShouldShowCFRTCP: Trying to verify that the TCP CFR should not be shown") assertFalse(settings.shouldShowTotalCookieProtectionCFR) + Log.i(TAG, "verifyShouldShowCFRTCP: Verified that the TCP CFR should not be shown") } } - fun selectTime(hour: Int, minute: Int): ViewInteraction = + fun selectTime(hour: Int, minute: Int) { + Log.i(TAG, "selectTime: Trying to select time picker hour: $hour and minute: $minute") onView( isAssignableFrom(TimePicker::class.java), ).inRoot( isDialog(), ).perform(PickerActions.setTime(hour, minute)) + Log.i(TAG, "selectTime: Selected time picker hour: $hour and minute: $minute") + } fun verifySelectedDate() { val currentDate = LocalDate.now() @@ -591,11 +640,13 @@ class BrowserRobot { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifySelectedDate: Started try #$i") assertUIObjectExists(itemContainingText("Selected date is: $currentDate")) break } catch (e: AssertionError) { - Log.e("TestLog", "Selected time isn't displayed ${e.localizedMessage}") + Log.i(TAG, "verifySelectedDate: AssertionError caught, executing fallback methods") + Log.e(TAG, "Selected time isn't displayed ${e.localizedMessage}") clickPageObject(itemWithResId("calendar")) clickPageObject(itemWithDescription("$currentDay $currentMonth $currentYear")) @@ -618,11 +669,13 @@ class BrowserRobot { fun verifySelectedTime(hour: Int, minute: Int) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifySelectedTime: Started try #$i") assertUIObjectExists(itemContainingText("Selected time is: $hour:$minute")) break } catch (e: AssertionError) { - Log.e("TestLog", "Selected time isn't displayed ${e.localizedMessage}") + Log.i(TAG, "verifySelectedTime: AssertionError caught, executing fallback methods") + Log.e(TAG, "Selected time isn't displayed ${e.localizedMessage}") clickPageObject(itemWithResId("clock")) clickPageObject(itemContainingText("CLEAR")) @@ -638,11 +691,13 @@ class BrowserRobot { fun verifySelectedColor(hexValue: String) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifySelectedColor: Started try #$i") assertUIObjectExists(itemContainingText("Selected color is: $hexValue")) break } catch (e: AssertionError) { - Log.e("TestLog", "Selected color isn't displayed ${e.localizedMessage}") + Log.i(TAG, "verifySelectedColor: AssertionError caught, executing fallback methods") + Log.e(TAG, "Selected color isn't displayed ${e.localizedMessage}") clickPageObject(itemWithResId("colorPicker")) clickPageObject(itemWithDescription(hexValue)) @@ -657,17 +712,20 @@ class BrowserRobot { fun verifySelectedDropDownOption(optionName: String) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifySelectedDropDownOption: Started try #$i") + Log.i(TAG, "verifySelectedDropDownOption: Waiting for $waitingTime ms for \"Submit drop down option\" form button to exist") mDevice.findObject( UiSelector() .textContains("Submit drop down option") .resourceId("submitOption"), ).waitForExists(waitingTime) - + Log.i(TAG, "verifySelectedDropDownOption: Waited for $waitingTime ms for \"Submit drop down option\" form button to exist") assertUIObjectExists(itemContainingText("Selected option is: $optionName")) break } catch (e: AssertionError) { - Log.e("TestLog", "Selected option isn't displayed ${e.localizedMessage}") + Log.i(TAG, "verifySelectedDropDownOption: AssertionError caught, executing fallback methods") + Log.e(TAG, "Selected option isn't displayed ${e.localizedMessage}") clickPageObject(itemWithResId("dropDown")) clickPageObject(itemContainingText(optionName)) @@ -686,16 +744,18 @@ class BrowserRobot { fun verifyCookieBannerExists(exists: Boolean) { for (i in 1..RETRY_COUNT) { - Log.i(TAG, "verifyCookieBannerExists: For loop: $i") + Log.i(TAG, "verifyCookieBannerExists: Started try #$i") try { // Wait for the blocker to kick-in and make the cookie banner disappear + Log.i(TAG, "verifyCookieBannerExists: Waiting for $waitingTime ms for cookie banner to be gone") itemWithResId("CybotCookiebotDialog").waitUntilGone(waitingTime) - Log.i(TAG, "verifyCookieBannerExists: Waiting for window update") + Log.i(TAG, "verifyCookieBannerExists: Waited for $waitingTime ms for cookie banner to be gone") // Assert that the blocker properly dismissed the cookie banner assertUIObjectExists(itemWithResId("CybotCookiebotDialog"), exists = exists) break } catch (e: AssertionError) { + Log.i(TAG, "verifyCookieBannerExists: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } @@ -724,6 +784,7 @@ class BrowserRobot { fun verifyPrivateBrowsingOpenLinkInAnotherAppPrompt(url: String, pageObject: UiObject) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifyPrivateBrowsingOpenLinkInAnotherAppPrompt: Started try #$i") assertUIObjectExists( itemContainingText( getStringResource(R.string.mozac_feature_applinks_confirm_dialog_title), @@ -733,6 +794,7 @@ class BrowserRobot { break } catch (e: AssertionError) { + Log.i(TAG, "verifyPrivateBrowsingOpenLinkInAnotherAppPrompt: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -774,6 +836,7 @@ class BrowserRobot { fun verifyOpenLinksInAppsCFRExists(exists: Boolean) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "verifyOpenLinksInAppsCFRExists: Started try #$i") assertUIObjectExists( itemWithResId("$packageName:id/banner_container"), itemWithResIdContainingText( @@ -791,6 +854,7 @@ class BrowserRobot { exists = exists, ) } catch (e: AssertionError) { + Log.i(TAG, "verifyOpenLinksInAppsCFRExists: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -817,11 +881,14 @@ class BrowserRobot { fun verifyHomeScreenSurveyCloseButton() = assertUIObjectExists(itemWithDescription("Close")) - fun clickOpenLinksInAppsDismissCFRButton() = + fun clickOpenLinksInAppsDismissCFRButton() { + Log.i(TAG, "clickOpenLinksInAppsDismissCFRButton: Trying to click the open links in apps banner \"Dismiss\" button") itemWithResIdContainingText( "$packageName:id/dismiss", getStringResource(R.string.open_in_app_cfr_negative_button_text), ).click() + Log.i(TAG, "clickOpenLinksInAppsDismissCFRButton: Clicked the open links in apps banner \"Dismiss\" button") + } fun clickTakeSurveyButton() { val button = mDevice.findObject( @@ -846,7 +913,11 @@ class BrowserRobot { button.click() } - fun longClickToolbar() = onView(withId(R.id.mozac_browser_toolbar_url_view)).perform(longClick()) + fun longClickToolbar() { + Log.i(TAG, "longClickToolbar: Trying to long click the toolbar") + onView(withId(R.id.mozac_browser_toolbar_url_view)).perform(longClick()) + Log.i(TAG, "longClickToolbar: Long clicked the toolbar") + } fun verifyDownloadPromptIsDismissed() = assertUIObjectExists( @@ -876,27 +947,31 @@ class BrowserRobot { } fun clickStayInPrivateBrowsingPromptButton() { + Log.i(TAG, "clickStayInPrivateBrowsingPromptButton: Trying to click the \"STAY IN PRIVATE BROWSING\" prompt button") itemWithResIdContainingText( "$packageName:id/deny_button", getStringResource(R.string.mozac_feature_downloads_cancel_active_private_downloads_deny), ).click() - Log.i(TAG, "clickStayInPrivateBrowsingPromptButton: Clicked \"STAY IN PRIVATE BROWSING\" prompt button") + Log.i(TAG, "clickStayInPrivateBrowsingPromptButton: Clicked the \"STAY IN PRIVATE BROWSING\" prompt button") } fun clickCancelPrivateDownloadsPromptButton() { + Log.i(TAG, "clickCancelPrivateDownloadsPromptButton: Trying to click the \"CANCEL DOWNLOADS\" prompt button") itemWithResIdContainingText( "$packageName:id/accept_button", getStringResource(R.string.mozac_feature_downloads_cancel_active_downloads_accept), ).click() - Log.i(TAG, "clickCancelPrivateDownloadsPromptButton: Clicked \"CANCEL DOWNLOADS\" prompt button") - + Log.i(TAG, "clickCancelPrivateDownloadsPromptButton: Clicked the \"CANCEL DOWNLOADS\" prompt button") + Log.i(TAG, "clickCancelPrivateDownloadsPromptButton: Waiting for $waitingTime ms for $packageName window to be updated") mDevice.waitForWindowUpdate(packageName, waitingTime) + Log.i(TAG, "clickCancelPrivateDownloadsPromptButton: Waited for $waitingTime ms for $packageName window to be updated") } fun fillPdfForm(name: String) { // Set PDF form text for the text box + Log.i(TAG, "fillPdfForm: Trying to set the text of the PDF form text box to: $name") itemWithResId("pdfjs_internal_id_10R").setText(name) - Log.i(TAG, "fillPdfForm: Set PDF form text box text to: $name") + Log.i(TAG, "fillPdfForm: PDF form text box text was set to: $name") mDevice.waitForWindowUpdate(packageName, waitingTime) if ( !itemWithResId("pdfjs_internal_id_11R").exists() && @@ -905,18 +980,22 @@ class BrowserRobot { .contains("mInputShown=true") ) { // Close the keyboard + Log.i(TAG, "fillPdfForm: Trying to close the keyboard using device back button") mDevice.pressBack() - Log.i(TAG, "fillPdfForm: Closing the keyboard using device back button") + Log.i(TAG, "fillPdfForm: Closed the keyboard using device back button") } // Click PDF form check box + Log.i(TAG, "fillPdfForm: Trying to click the PDF form check box") itemWithResId("pdfjs_internal_id_11R").click() Log.i(TAG, "fillPdfForm: Clicked PDF form check box") } class Transition { fun openThreeDotMenu(interact: ThreeDotMenuMainRobot.() -> Unit): ThreeDotMenuMainRobot.Transition { + Log.i(TAG, "openThreeDotMenu: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) Log.i(TAG, "openThreeDotMenu: Device was idle for $waitingTime ms") + Log.i(TAG, "openThreeDotMenu: Trying to click the main menu button") threeDotButton().perform(click()) Log.i(TAG, "openThreeDotMenu: Clicked the main menu button") @@ -926,7 +1005,9 @@ class BrowserRobot { fun openNavigationToolbar(interact: NavigationToolbarRobot.() -> Unit): NavigationToolbarRobot.Transition { clickPageObject(navURLBar()) + Log.i(TAG, "openNavigationToolbar: Waiting for $waitingTime ms for for search bar to exist") searchBar().waitForExists(waitingTime) + Log.i(TAG, "openNavigationToolbar: Waited for $waitingTime ms for for search bar to exist") NavigationToolbarRobot().interact() return NavigationToolbarRobot.Transition() @@ -935,6 +1016,7 @@ class BrowserRobot { fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "openTabDrawer: Started try #$i") mDevice.waitForObjects( mDevice.findObject( UiSelector() @@ -942,16 +1024,20 @@ class BrowserRobot { ), waitingTime, ) - + Log.i(TAG, "openTabDrawer: Trying to click the tab counter button") tabsCounter().click() + Log.i(TAG, "openTabDrawer: Clicked the tab counter button") assertUIObjectExists(itemWithResId("$packageName:id/new_tab_button")) break } catch (e: AssertionError) { + Log.i(TAG, "openTabDrawer: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { + Log.i(TAG, "openTabDrawer: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "openTabDrawer: Waited for device to be idle") } } } @@ -965,6 +1051,7 @@ class BrowserRobot { fun openComposeTabDrawer(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "openComposeTabDrawer: Started try #$i") mDevice.waitForObjects( mDevice.findObject( UiSelector() @@ -972,30 +1059,37 @@ class BrowserRobot { ), waitingTime, ) - + Log.i(TAG, "openComposeTabDrawer: Trying to click the tab counter button") tabsCounter().click() - + Log.i(TAG, "openComposeTabDrawer: Clicked the tab counter button") + Log.i(TAG, "openComposeTabDrawer: Trying to verify the tabs tray exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.tabsTray).assertExists() + Log.i(TAG, "openComposeTabDrawer: Verified the tabs tray exists") break } catch (e: AssertionError) { + Log.i(TAG, "openComposeTabDrawer: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { + Log.i(TAG, "openComposeTabDrawer: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "openComposeTabDrawer: Waited for device to be idle") } } } - + Log.i(TAG, "openComposeTabDrawer: Trying to verify the tabs tray new tab FAB button exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.fab).assertExists() + Log.i(TAG, "openComposeTabDrawer: Verified the tabs tray new tab FAB button exists") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) } fun openNotificationShade(interact: NotificationRobot.() -> Unit): NotificationRobot.Transition { + Log.i(TAG, "openNotificationShade: Trying to open the notification tray") mDevice.openNotification() - Log.i(TAG, "openNotificationShade: Opened notification tray") + Log.i(TAG, "openNotificationShade: Opened the notification tray") NotificationRobot().interact() return NotificationRobot.Transition() @@ -1003,7 +1097,7 @@ class BrowserRobot { fun goToHomescreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { clickPageObject(itemWithDescription("Home screen")) - + Log.i(TAG, "goToHomescreen: Waiting for $waitingTime ms for for home screen layout or jump back in contextual hint to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/homeLayout")) .waitForExists(waitingTime) || mDevice.findObject( @@ -1011,6 +1105,7 @@ class BrowserRobot { getStringResource(R.string.onboarding_home_screen_jump_back_contextual_hint_2), ), ).waitForExists(waitingTime) + Log.i(TAG, "goToHomescreen: Waited for $waitingTime ms for for home screen layout or jump back in contextual hint to exist") HomeScreenRobot().interact() return HomeScreenRobot.Transition() @@ -1019,6 +1114,7 @@ class BrowserRobot { fun goToHomescreenWithComposeTopSites(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTopSitesRobot.() -> Unit): ComposeTopSitesRobot.Transition { clickPageObject(itemWithDescription("Home screen")) + Log.i(TAG, "goToHomescreenWithComposeTopSites: Waiting for $waitingTime ms for for home screen layout or jump back in contextual hint to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/homeLayout")) .waitForExists(waitingTime) || mDevice.findObject( @@ -1026,13 +1122,16 @@ class BrowserRobot { getStringResource(R.string.onboarding_home_screen_jump_back_contextual_hint_2), ), ).waitForExists(waitingTime) + Log.i(TAG, "goToHomescreenWithComposeTopSites: Waited for $waitingTime ms for for home screen layout or jump back in contextual hint to exist") ComposeTopSitesRobot(composeTestRule).interact() return ComposeTopSitesRobot.Transition(composeTestRule) } fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBack: Trying to click device back button") mDevice.pressBack() + Log.i(TAG, "goBack: Clicked device back button") HomeScreenRobot().interact() return HomeScreenRobot.Transition() @@ -1040,7 +1139,9 @@ class BrowserRobot { fun clickTabCrashedCloseButton(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { clickPageObject(itemWithText("Close tab")) + Log.i(TAG, "clickTabCrashedCloseButton: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "clickTabCrashedCloseButton: Waited for device to be idle") HomeScreenRobot().interact() return HomeScreenRobot.Transition() @@ -1126,45 +1227,56 @@ class BrowserRobot { } fun openSiteSecuritySheet(interact: SiteSecurityRobot.() -> Unit): SiteSecurityRobot.Transition { + Log.i(TAG, "openSiteSecuritySheet: Waiting for $waitingTime ms for site security toolbar button to exist") siteSecurityToolbarButton().waitForExists(waitingTime) + Log.i(TAG, "openSiteSecuritySheet: Waited for $waitingTime ms for site security toolbar button to exist") + Log.i(TAG, "openSiteSecuritySheet: Trying to click the site security toolbar button and wait for $waitingTime ms for a new window") siteSecurityToolbarButton().clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "openSiteSecuritySheet: Clicked the site security toolbar button and waited for $waitingTime ms for a new window") SiteSecurityRobot().interact() return SiteSecurityRobot.Transition() } fun clickManageAddressButton(interact: SettingsSubMenuAutofillRobot.() -> Unit): SettingsSubMenuAutofillRobot.Transition { + Log.i(TAG, "clickManageAddressButton: Trying to click the manage address button and wait for $waitingTime ms for a new window") itemWithResId("$packageName:id/manage_addresses") .clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickManageAddressButton: Clicked the manage address button and waited for $waitingTime ms for a new window") SettingsSubMenuAutofillRobot().interact() return SettingsSubMenuAutofillRobot.Transition() } fun clickManageCreditCardsButton(interact: SettingsSubMenuAutofillRobot.() -> Unit): SettingsSubMenuAutofillRobot.Transition { + Log.i(TAG, "clickManageCreditCardsButton: Trying to click the manage credit cards button and wait for $waitingTime ms for a new window") itemWithResId("$packageName:id/manage_credit_cards") .clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickManageCreditCardsButton: Clicked the manage credit cards button and waited for $waitingTime ms for a new window") SettingsSubMenuAutofillRobot().interact() return SettingsSubMenuAutofillRobot.Transition() } fun clickOpenLinksInAppsGoToSettingsCFRButton(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition { + Log.i(TAG, "clickOpenLinksInAppsGoToSettingsCFRButton: Trying to click the \"Go to settings\" open links in apps CFR button and wait for $waitingTime ms for a new window") itemWithResIdContainingText( "$packageName:id/action", getStringResource(R.string.open_in_app_cfr_positive_button_text), ).clickAndWaitForNewWindow(waitingTime) - Log.i(TAG, "clickOpenLinksInAppsGoToSettingsCFRButton: Clicked \"Go to settings\" open links in apps CFR button") + Log.i(TAG, "clickOpenLinksInAppsGoToSettingsCFRButton: Clicked the \"Go to settings\" open links in apps CFR button and waited for $waitingTime ms for a new window") SettingsRobot().interact() return SettingsRobot.Transition() } fun clickDownloadPDFButton(interact: DownloadRobot.() -> Unit): DownloadRobot.Transition { + Log.i(TAG, "clickDownloadPDFButton: Trying to click the download PDF button") itemWithResIdContainingText( "download", "Download", ).click() + Log.i(TAG, "clickDownloadPDFButton: Clicked the download PDF button") DownloadRobot().interact() return DownloadRobot.Transition() @@ -1205,8 +1317,6 @@ private fun navURLBar() = itemWithResId("$packageName:id/toolbar") private fun searchBar() = itemWithResId("$packageName:id/mozac_browser_toolbar_url_view") -fun homeScreenButton() = onView(withContentDescription(R.string.browser_toolbar_home)) - private fun threeDotButton() = onView(withContentDescription("Menu")) private fun tabsCounter() = @@ -1224,26 +1334,25 @@ private fun siteSecurityToolbarButton() = fun clickPageObject(item: UiObject) { for (i in 1..RETRY_COUNT) { - Log.i(TAG, "clickPageObject: For loop i = $i") try { - Log.i(TAG, "clickPageObject: Try block") + Log.i(TAG, "clickPageObject: Started try #$i") + Log.i(TAG, "clickPageObject: Waiting for $waitingTime ms for ${item.selector} to exist") item.waitForExists(waitingTime) + Log.i(TAG, "clickPageObject: Waited for $waitingTime ms for ${item.selector} to exist") + Log.i(TAG, "clickPageObject: Trying to click ${item.selector}") item.click() Log.i(TAG, "clickPageObject: Clicked ${item.selector}") break } catch (e: UiObjectNotFoundException) { - Log.i(TAG, "clickPageObject: Catch block") + Log.i(TAG, "clickPageObject: UiObjectNotFoundException caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { browserScreen { - Log.i(TAG, "clickPageObject: Browser screen") }.openThreeDotMenu { - Log.i(TAG, "clickPageObject: Opened main menu") }.refreshPage { waitForPageToLoad() - Log.i(TAG, "clickPageObject: Page refreshed, progress bar is gone") } } } @@ -1253,11 +1362,17 @@ fun clickPageObject(item: UiObject) { fun longClickPageObject(item: UiObject) { for (i in 1..RETRY_COUNT) { try { + Log.i(TAG, "longClickPageObject: Started try #$i") + Log.i(TAG, "longClickPageObject: Waiting for $waitingTime ms for ${item.selector} to exist") item.waitForExists(waitingTime) + Log.i(TAG, "longClickPageObject: Waited for $waitingTime ms for ${item.selector} to exist") + Log.i(TAG, "longClickPageObject: Trying to long click ${item.selector}") item.longClick() + Log.i(TAG, "longClickPageObject: Long clicked ${item.selector}") break } catch (e: UiObjectNotFoundException) { + Log.i(TAG, "longClickPageObject: UiObjectNotFoundException caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -1276,20 +1391,30 @@ fun clickContextMenuItem(item: String) { Until.findObject(text(item)), waitingTime, ) + Log.i(TAG, "clickContextMenuItem: Trying to click context menu item: $item") mDevice.findObject(text(item)).click() + Log.i(TAG, "clickContextMenuItem: Clicked context menu item: $item") } fun setPageObjectText(webPageItem: UiObject, text: String) { for (i in 1..RETRY_COUNT) { + Log.i(TAG, "setPageObjectText: Started try #$i") try { webPageItem.also { + Log.i(TAG, "setPageObjectText: Waiting for $waitingTime ms for ${webPageItem.selector} to exist") it.waitForExists(waitingTime) + Log.i(TAG, "setPageObjectText: Waited for $waitingTime ms for ${webPageItem.selector} to exist") + Log.i(TAG, "setPageObjectText: Trying to clear ${webPageItem.selector} text field") it.clearTextField() + Log.i(TAG, "setPageObjectText: Cleared ${webPageItem.selector} text field") + Log.i(TAG, "setPageObjectText: Trying to set ${webPageItem.selector} text to $text") it.text = text + Log.i(TAG, "setPageObjectText: ${webPageItem.selector} text was set to $text") } break } catch (e: UiObjectNotFoundException) { + Log.i(TAG, "setPageObjectText: UiObjectNotFoundException caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -1304,8 +1429,12 @@ fun setPageObjectText(webPageItem: UiObject, text: String) { } fun clearTextFieldItem(item: UiObject) { + Log.i(TAG, "clearTextFieldItem: Waiting for $waitingTime ms for ${item.selector} to exist") item.waitForExists(waitingTime) + Log.i(TAG, "clearTextFieldItem: Waited for $waitingTime ms for ${item.selector} to exist") + Log.i(TAG, "clearTextFieldItem: Trying to clear ${item.selector} text field") item.clearTextField() + Log.i(TAG, "clearTextFieldItem: Cleared ${item.selector} text field") } // Context menu items diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CollectionRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CollectionRobot.kt index 1cbac173..1dc74bb3 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CollectionRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CollectionRobot.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.hasContentDescription import androidx.compose.ui.test.hasText @@ -17,10 +18,10 @@ import androidx.test.espresso.action.ViewActions.pressImeActionButton import androidx.test.espresso.matcher.RootMatchers import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.uiautomator.By -import androidx.test.uiautomator.UiScrollable import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.MatcherHelper.assertItemTextEquals import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists @@ -46,29 +47,45 @@ class CollectionRobot { itemWithResId("$packageName:id/collections_list"), ) - fun clickAddNewCollection() = addNewCollectionButton().click() + fun clickAddNewCollection() { + Log.i(TAG, "clickAddNewCollection: Trying to click the add new collection button") + addNewCollectionButton().click() + Log.i(TAG, "clickAddNewCollection: Clicked the add new collection button") + } fun verifyCollectionNameTextField() = assertUIObjectExists(mainMenuEditCollectionNameField()) // names a collection saved from tab drawer fun typeCollectionNameAndSave(collectionName: String) { + Log.i(TAG, "typeCollectionNameAndSave: Trying to set collection name text field to: $collectionName") collectionNameTextField().text = collectionName - addCollectionButtonPanel.waitForExists(waitingTime) - addCollectionOkButton.click() + Log.i(TAG, "typeCollectionNameAndSave: Collection name text field set to: $collectionName") + Log.i(TAG, "typeCollectionNameAndSave: Waiting for $waitingTime ms for add collection button panel to exist") + addCollectionButtonPanel().waitForExists(waitingTime) + Log.i(TAG, "typeCollectionNameAndSave: Waited for $waitingTime ms for add collection button panel to exist") + Log.i(TAG, "typeCollectionNameAndSave: Trying to click \"OK\" panel button") + addCollectionOkButton().click() + Log.i(TAG, "typeCollectionNameAndSave: Clicked \"OK\" panel button") } fun verifyTabsSelectedCounterText(numOfTabs: Int) { + Log.i(TAG, "verifyTabsSelectedCounterText: Waiting for $waitingTime ms for \"Select tabs to save\" prompt to be gone") itemWithText("Select tabs to save").waitUntilGone(waitingTime) + Log.i(TAG, "verifyTabsSelectedCounterText: Waited for $waitingTime ms for \"Select tabs to save\" prompt to be gone") val tabsCounter = mDevice.findObject(UiSelector().resourceId("$packageName:id/bottom_bar_text")) + Log.i(TAG, "verifyTabsSelectedCounterText: Trying to assert that number of tabs selected is: $numOfTabs") when (numOfTabs) { 1 -> assertItemTextEquals(tabsCounter, expectedText = "$numOfTabs tab selected") 2 -> assertItemTextEquals(tabsCounter, expectedText = "$numOfTabs tabs selected") } + Log.i(TAG, "verifyTabsSelectedCounterText: Asserted number of tabs selected is: $numOfTabs") } fun saveTabsSelectedForCollection() { - mDevice.findObject(UiSelector().resourceId("$packageName:id/save_button")).click() + Log.i(TAG, "saveTabsSelectedForCollection: Trying to click \"Save\" button") + itemWithResId("$packageName:id/save_button").click() + Log.i(TAG, "saveTabsSelectedForCollection: Clicked \"Save\" button") } fun verifyTabSavedInCollection(title: String, visible: Boolean = true) { @@ -88,83 +105,114 @@ class CollectionRobot { fun verifyCollectionMenuIsVisible(visible: Boolean, rule: ComposeTestRule) { if (visible) { - collectionThreeDotButton(rule) - .assertExists() - .assertIsDisplayed() + Log.i(TAG, "verifyCollectionMenuIsVisible: Trying to verify collection three dot button exists") + collectionThreeDotButton(rule).assertExists() + Log.i(TAG, "verifyCollectionMenuIsVisible: Verified collection three dot button exists") + Log.i(TAG, "verifyCollectionMenuIsVisible: Trying to verify collection three dot button is displayed") + collectionThreeDotButton(rule).assertIsDisplayed() + Log.i(TAG, "verifyCollectionMenuIsVisible: Verified collection three dot button is displayed") } else { + Log.i(TAG, "verifyCollectionMenuIsVisible: Trying to verify collection three dot button does not exist") collectionThreeDotButton(rule) .assertDoesNotExist() + Log.i(TAG, "verifyCollectionMenuIsVisible: Verified collection three dot button does not exist") } } fun clickCollectionThreeDotButton(rule: ComposeTestRule) { - collectionThreeDotButton(rule) - .assertIsDisplayed() - .performClick() + Log.i(TAG, "clickCollectionThreeDotButton: Trying to verify three dot button is displayed") + collectionThreeDotButton(rule).assertIsDisplayed() + Log.i(TAG, "clickCollectionThreeDotButton: Verified three dot button is displayed") + Log.i(TAG, "clickCollectionThreeDotButton: Trying to click three dot button") + collectionThreeDotButton(rule).performClick() + Log.i(TAG, "clickCollectionThreeDotButton: Clicked three dot button") } fun selectOpenTabs(rule: ComposeTestRule) { - rule.onNode(hasText("Open tabs")) - .assertIsDisplayed() - .performClick() + Log.i(TAG, "selectOpenTabs: Trying to verify \"Open tabs\" menu option is displayed") + rule.onNode(hasText("Open tabs")).assertIsDisplayed() + Log.i(TAG, "selectOpenTabs: Verified \"Open tabs\" menu option is displayed") + Log.i(TAG, "selectOpenTabs: Trying to click \"Open tabs\" menu option") + rule.onNode(hasText("Open tabs")).performClick() + Log.i(TAG, "selectOpenTabs: Clicked \"Open tabs\" menu option") } fun selectRenameCollection(rule: ComposeTestRule) { - rule.onNode(hasText("Rename collection")) - .assertIsDisplayed() - .performClick() + Log.i(TAG, "selectRenameCollection: Trying to verify \"Rename collection\" menu option is displayed") + rule.onNode(hasText("Rename collection")).assertIsDisplayed() + Log.i(TAG, "selectRenameCollection: Verified \"Rename collection\" menu option is displayed") + Log.i(TAG, "selectRenameCollection: Trying to click \"Rename collection\" menu option") + rule.onNode(hasText("Rename collection")).performClick() + Log.i(TAG, "selectRenameCollection: Clicked \"Rename collection\" menu option") + Log.i(TAG, "selectRenameCollection: Waiting for $waitingTime ms for collection name text field to exist") mainMenuEditCollectionNameField().waitForExists(waitingTime) + Log.i(TAG, "selectRenameCollection: Waited for $waitingTime ms for collection name text field to exist") } fun selectAddTabToCollection(rule: ComposeTestRule) { - rule.onNode(hasText("Add tab")) - .assertIsDisplayed() - .performClick() + Log.i(TAG, "selectAddTabToCollection: Trying to verify \"Add tab\" menu option is displayed") + rule.onNode(hasText("Add tab")).assertIsDisplayed() + Log.i(TAG, "selectAddTabToCollection: Verified \"Add tab\" menu option is displayed") + Log.i(TAG, "selectAddTabToCollection: Trying to click \"Add tab\" menu option") + rule.onNode(hasText("Add tab")).performClick() + Log.i(TAG, "selectAddTabToCollection: Clicked \"Add tab\" menu option") mDevice.waitNotNull(Until.findObject(By.text("Select Tabs"))) } fun selectDeleteCollection(rule: ComposeTestRule) { - rule.onNode(hasText("Delete collection")) - .assertIsDisplayed() - .performClick() + Log.i(TAG, "selectDeleteCollection: Trying to verify \"Delete collection\" menu option is displayed") + rule.onNode(hasText("Delete collection")).assertIsDisplayed() + Log.i(TAG, "selectDeleteCollection: Verified \"Delete collection\" menu option is displayed") + Log.i(TAG, "selectDeleteCollection: Trying to click \"Delete collection\" menu option") + rule.onNode(hasText("Delete collection")).performClick() + Log.i(TAG, "selectDeleteCollection: Clicked \"Delete collection\" menu option") } fun verifyCollectionItemRemoveButtonIsVisible(title: String, visible: Boolean) = assertUIObjectExists(removeTabFromCollectionButton(title), exists = visible) - fun removeTabFromCollection(title: String) = removeTabFromCollectionButton(title).click() + fun removeTabFromCollection(title: String) { + Log.i(TAG, "removeTabFromCollection: Trying to click remove button for tab: $title") + removeTabFromCollectionButton(title).click() + Log.i(TAG, "removeTabFromCollection: Clicked remove button for tab: $title") + } fun swipeTabLeft(title: String, rule: ComposeTestRule) { + Log.i(TAG, "swipeTabLeft: Trying to remove tab: $title using swipe left action") rule.onNode(hasText(title), useUnmergedTree = true) .performTouchInput { swipeLeft() } + Log.i(TAG, "swipeTabLeft: Removed tab: $title using swipe left action") + Log.i(TAG, "swipeTabLeft: Waiting for rule to be idle") rule.waitForIdle() + Log.i(TAG, "swipeTabLeft: Waited for rule to be idle") } fun swipeTabRight(title: String, rule: ComposeTestRule) { + Log.i(TAG, "swipeTabRight: Trying to remove tab: $title using swipe right action") rule.onNode(hasText(title), useUnmergedTree = true) .performTouchInput { swipeRight() } + Log.i(TAG, "swipeTabRight: Removed tab: $title using swipe right action") + Log.i(TAG, "swipeTabRight: Waiting for rule to be idle") rule.waitForIdle() + Log.i(TAG, "swipeTabRight: Waited for rule to be idle") } - fun verifySnackBarText(expectedText: String) { - mDevice.findObject(UiSelector().text(expectedText)).waitForExists(waitingTime) + fun goBackInCollectionFlow() { + Log.i(TAG, "goBackInCollectionFlow: Trying to click collection creation flow back button") + backButton().click() + Log.i(TAG, "goBackInCollectionFlow: Clicked collection creation flow back button") } - fun goBackInCollectionFlow() = backButton().click() - - fun swipeToBottom() = - UiScrollable( - UiSelector().resourceId("$packageName:id/sessionControlRecyclerView"), - ).scrollToEnd(3) - class Transition { fun collapseCollection( title: String, interact: HomeScreenRobot.() -> Unit, ): HomeScreenRobot.Transition { assertUIObjectExists(itemContainingText(title)) + Log.i(TAG, "collapseCollection: Trying to click collection $title and wait for $waitingTimeShort ms for a new window") itemContainingText(title).clickAndWaitForNewWindow(waitingTimeShort) + Log.i(TAG, "collapseCollection: Clicked collection $title and waited for $waitingTimeShort ms for a new window") assertUIObjectExists(itemWithDescription(getStringResource(R.string.remove_tab_from_collection)), exists = false) HomeScreenRobot().interact() @@ -176,9 +224,15 @@ class CollectionRobot { name: String, interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { + Log.i(TAG, "typeCollectionNameAndSave: Waiting for $waitingTime ms for collection name text field to exist") mainMenuEditCollectionNameField().waitForExists(waitingTime) + Log.i(TAG, "typeCollectionNameAndSave: Waited for $waitingTime ms for collection name text field to exist") + Log.i(TAG, "typeCollectionNameAndSave: Trying to set collection name text field to: $name") mainMenuEditCollectionNameField().text = name + Log.i(TAG, "typeCollectionNameAndSave: Collection name text field set to: $name") + Log.i(TAG, "typeCollectionNameAndSave: Trying to press done action button") onView(withId(R.id.name_collection_edittext)).perform(pressImeActionButton()) + Log.i(TAG, "typeCollectionNameAndSave: Pressed done action button") // wait for the collection creation wrapper to be dismissed mDevice.waitNotNull(Until.gone(By.res("$packageName:id/createCollectionWrapper"))) @@ -191,16 +245,24 @@ class CollectionRobot { title: String, interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { + Log.i(TAG, "selectExistingCollection: Waiting for $waitingTime ms for collection with title: $title to exist") collectionTitle(title).waitForExists(waitingTime) + Log.i(TAG, "selectExistingCollection: Waited for $waitingTime ms for collection with title: $title to exist") + Log.i(TAG, "selectExistingCollection: Trying to click collection with title: $title") collectionTitle(title).click() + Log.i(TAG, "selectExistingCollection: Clicked collection with title: $title") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickShareCollectionButton(interact: ShareOverlayRobot.() -> Unit): ShareOverlayRobot.Transition { + Log.i(TAG, "clickShareCollectionButton: Waiting for $waitingTime ms for share collection button to exist") shareCollectionButton().waitForExists(waitingTime) + Log.i(TAG, "clickShareCollectionButton: Waited for $waitingTime ms for share collection button to exist") + Log.i(TAG, "clickShareCollectionButton: Trying to click share collection button") shareCollectionButton().click() + Log.i(TAG, "clickShareCollectionButton: Clicked share collection button") ShareOverlayRobot().interact() return ShareOverlayRobot.Transition() @@ -213,21 +275,14 @@ fun collectionRobot(interact: CollectionRobot.() -> Unit): CollectionRobot.Trans return CollectionRobot.Transition() } -private fun collectionTitle(title: String) = - mDevice.findObject( - UiSelector() - .text(title), - ) +private fun collectionTitle(title: String) = itemWithText(title) private fun collectionThreeDotButton(rule: ComposeTestRule) = rule.onNode(hasContentDescription("Collection menu")) private fun collectionListItem(title: String) = mDevice.findObject(UiSelector().text(title)) -private fun shareCollectionButton() = - mDevice.findObject( - UiSelector().description("Share"), - ) +private fun shareCollectionButton() = itemWithDescription("Share") private fun removeTabFromCollectionButton(title: String) = mDevice.findObject( @@ -245,9 +300,7 @@ private fun collectionNameTextField() = // collection name text field, when saving from the main menu option private fun mainMenuEditCollectionNameField() = - mDevice.findObject( - UiSelector().resourceId("$packageName:id/name_collection_edittext"), - ) + itemWithResId("$packageName:id/name_collection_edittext") private fun addNewCollectionButton() = mDevice.findObject(UiSelector().text("Add new collection")) @@ -256,7 +309,7 @@ private fun backButton() = mDevice.findObject( UiSelector().resourceId("$packageName:id/back_button"), ) -private val addCollectionButtonPanel = +private fun addCollectionButtonPanel() = itemWithResId("$packageName:id/buttonPanel") -private val addCollectionOkButton = onView(withId(android.R.id.button1)).inRoot(RootMatchers.isDialog()) +private fun addCollectionOkButton() = onView(withId(android.R.id.button1)).inRoot(RootMatchers.isDialog()) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt index baa7271b..d42fd8e4 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import android.view.View import androidx.compose.ui.semantics.SemanticsActions import androidx.compose.ui.test.ExperimentalTestApi @@ -42,12 +43,13 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior import org.hamcrest.Matcher import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.HomeActivityComposeTestRule import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText -import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime +import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.clickAtLocationInView import org.mozilla.fenix.helpers.idlingresource.BottomSheetBehaviorStateIdlingResource @@ -62,25 +64,37 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest fun verifyNormalBrowsingButtonIsSelected(isSelected: Boolean = true) { if (isSelected) { + Log.i(TAG, "verifyNormalBrowsingButtonIsSelected: Trying to verify that the normal browsing button is selected") composeTestRule.normalBrowsingButton().assertIsSelected() + Log.i(TAG, "verifyNormalBrowsingButtonIsSelected: Verified that the normal browsing button is selected") } else { + Log.i(TAG, "verifyNormalBrowsingButtonIsSelected: Trying to verify that the normal browsing button is not selected") composeTestRule.normalBrowsingButton().assertIsNotSelected() + Log.i(TAG, "verifyNormalBrowsingButtonIsSelected: Verified that the normal browsing button is not selected") } } fun verifyPrivateBrowsingButtonIsSelected(isSelected: Boolean = true) { if (isSelected) { + Log.i(TAG, "verifyPrivateBrowsingButtonIsSelected: Trying to verify that the private browsing button is selected") composeTestRule.privateBrowsingButton().assertIsSelected() + Log.i(TAG, "verifyPrivateBrowsingButtonIsSelected: Verified that the private browsing button is selected") } else { + Log.i(TAG, "verifyPrivateBrowsingButtonIsSelected: Trying to verify that the private browsing button is not selected") composeTestRule.privateBrowsingButton().assertIsNotSelected() + Log.i(TAG, "verifyPrivateBrowsingButtonIsSelected: Verified that the private browsing button is not selected") } } fun verifySyncedTabsButtonIsSelected(isSelected: Boolean = true) { if (isSelected) { + Log.i(TAG, "verifySyncedTabsButtonIsSelected: Trying to verify that the synced tabs button is selected") composeTestRule.syncedTabsButton().assertIsSelected() + Log.i(TAG, "verifySyncedTabsButtonIsSelected: Verified that the synced tabs button is selected") } else { + Log.i(TAG, "verifySyncedTabsButtonIsSelected: Trying to verify that the synced tabs button is not selected") composeTestRule.syncedTabsButton().assertIsNotSelected() + Log.i(TAG, "verifySyncedTabsButtonIsSelected: Verified that the synced tabs button is not selected") } } @@ -95,16 +109,23 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest fun verifyExistingOpenTabs(vararg titles: String) { titles.forEach { title -> + Log.i(TAG, "verifyExistingOpenTabs: Waiting for $waitingTime ms for tab with title: $title to exist") itemContainingText(title).waitForExists(waitingTime) + Log.i(TAG, "verifyExistingOpenTabs: Waited for $waitingTime ms for tab with title: $title to exist") + Log.i(TAG, "verifyExistingOpenTabs: Trying to verify that the open tab with title: $title exists") composeTestRule.tabItem(title).assertExists() + Log.i(TAG, "verifyExistingOpenTabs: Verified that the open tab with title: $title exists") } } - fun verifyOpenTabsOrder(title: String, position: Int) = + fun verifyOpenTabsOrder(title: String, position: Int) { + Log.i(TAG, "verifyOpenTabsOrder: Trying to verify that the open tab at position: $position has title: $title") composeTestRule.normalTabsList() .onChildAt(position - 1) .assert(hasTestTag(TabsTrayTestTag.tabItemRoot)) .assert(hasAnyChild(hasText(title))) + Log.i(TAG, "verifyOpenTabsOrder: Verified that the open tab at position: $position has title: $title") + } fun verifyNoExistingOpenTabs(vararg titles: String) { titles.forEach { title -> @@ -116,110 +137,163 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest } fun verifyNormalTabsList() { + Log.i(TAG, "verifyNormalTabsList: Trying to verify that the normal tabs list exists") composeTestRule.normalTabsList().assertExists() + Log.i(TAG, "verifyNormalTabsList: Verified that the normal tabs list exists") } fun verifyPrivateTabsList() { + Log.i(TAG, "verifyPrivateTabsList: Trying to verify that the private tabs list exists") composeTestRule.privateTabsList().assertExists() + Log.i(TAG, "verifyPrivateTabsList: Verified that the private tabs list exists") } fun verifySyncedTabsList() { + Log.i(TAG, "verifySyncedTabsList: Trying to verify that the synced tabs list exists") composeTestRule.syncedTabsList().assertExists() + Log.i(TAG, "verifySyncedTabsList: Verified that the synced tabs list exists") } fun verifyNoOpenTabsInNormalBrowsing() { + Log.i(TAG, "verifyNoOpenTabsInNormalBrowsing: Trying to verify that the empty normal tabs list exists") composeTestRule.emptyNormalTabsList().assertExists() + Log.i(TAG, "verifyNoOpenTabsInNormalBrowsing: Verified that the empty normal tabs list exists") } fun verifyNoOpenTabsInPrivateBrowsing() { + Log.i(TAG, "verifyNoOpenTabsInPrivateBrowsing: Trying to verify that the empty private tabs list exists") composeTestRule.emptyPrivateTabsList().assertExists() + Log.i(TAG, "verifyNoOpenTabsInPrivateBrowsing: Verified that the empty private tabs list exists") } fun verifyAccountSettingsButton() { + Log.i(TAG, "verifyAccountSettingsButton: Trying to verify that the \"Account settings\" menu button exists") composeTestRule.dropdownMenuItemAccountSettings().assertExists() + Log.i(TAG, "verifyAccountSettingsButton: Verified that the \"Account settings\" menu button exists") } fun verifyCloseAllTabsButton() { + Log.i(TAG, "verifyCloseAllTabsButton: Trying to verify that the \"Close all tabs\" menu button exists") composeTestRule.dropdownMenuItemCloseAllTabs().assertExists() + Log.i(TAG, "verifyCloseAllTabsButton: Verified that the \"Close all tabs\" menu button exists") } fun verifySelectTabsButton() { + Log.i(TAG, "verifySelectTabsButton: Trying to verify that the \"Select tabs\" menu button exists") composeTestRule.dropdownMenuItemSelectTabs().assertExists() + Log.i(TAG, "verifySelectTabsButton: Verified that the \"Select tabs\" menu button exists") } fun verifyShareAllTabsButton() { + Log.i(TAG, "verifyShareAllTabsButton: Trying to verify that the \"Share all tabs\" menu button exists") composeTestRule.dropdownMenuItemShareAllTabs().assertExists() + Log.i(TAG, "verifyShareAllTabsButton: Verified that the \"Share all tabs\" menu button exists") } fun verifyRecentlyClosedTabsButton() { + Log.i(TAG, "verifyRecentlyClosedTabsButton: Trying to verify that the \"Recently closed tabs\" menu button exists") composeTestRule.dropdownMenuItemRecentlyClosedTabs().assertExists() + Log.i(TAG, "verifyRecentlyClosedTabsButton: Verified that the \"Recently closed tabs\" menu button exists") } fun verifyTabSettingsButton() { + Log.i(TAG, "verifyTabSettingsButton: Trying to verify that the \"Tab settings\" menu button exists") composeTestRule.dropdownMenuItemTabSettings().assertExists() + Log.i(TAG, "verifyTabSettingsButton: Verified that the \"Tab settings\" menu button exists") } fun verifyThreeDotButton() { + Log.i(TAG, "verifyThreeDotButton: Trying to verify that the three dot button exists") composeTestRule.threeDotButton().assertExists() + Log.i(TAG, "verifyThreeDotButton: Verified that the three dot button exists") } fun verifyFab() { + Log.i(TAG, "verifyFab: Trying to verify that the new tab FAB button exists") composeTestRule.tabsTrayFab().assertExists() + Log.i(TAG, "verifyFab: Verified that the new tab FAB button exists") } fun verifyNormalTabCounter() { + Log.i(TAG, "verifyNormalTabCounter: Trying to verify that the normal tabs list counter exists") composeTestRule.normalTabsCounter().assertExists() + Log.i(TAG, "verifyNormalTabCounter: Verified that the normal tabs list counter exists") } /** * Verifies a tab's thumbnail when there is only one tab open. */ fun verifyTabThumbnail() { + Log.i(TAG, "verifyTabThumbnail: Trying to verify that the tab thumbnail exists") composeTestRule.tabThumbnail().assertExists() + Log.i(TAG, "verifyTabThumbnail: Verified that the tab thumbnail exists") } /** * Verifies a tab's close button when there is only one tab open. */ fun verifyTabCloseButton() { + Log.i(TAG, "verifyTabCloseButton: Trying to verify that the close tab button exists") composeTestRule.closeTabButton().assertExists() + Log.i(TAG, "verifyTabCloseButton: Verified that the close tab button exists") } fun verifyTabsTrayBehaviorState(expectedState: Int) { + Log.i(TAG, "verifyTabsTrayBehaviorState: Trying to verify that the tabs tray state matches: $expectedState") tabsTrayView().check(ViewAssertions.matches(BottomSheetBehaviorStateMatcher(expectedState))) + Log.i(TAG, "verifyTabsTrayBehaviorState: Verified that the tabs tray state matches: $expectedState") } fun verifyMinusculeHalfExpandedRatio() { + Log.i(TAG, "verifyMinusculeHalfExpandedRatio: Trying to verify the tabs tray half expanded ratio") tabsTrayView().check(ViewAssertions.matches(BottomSheetBehaviorHalfExpandedMaxRatioMatcher(0.001f))) + Log.i(TAG, "verifyMinusculeHalfExpandedRatio: Verified the tabs tray half expanded ratio") } fun verifyTabTrayIsOpen() { + Log.i(TAG, "verifyTabTrayIsOpen: Trying to verify that the tabs tray exists") composeTestRule.tabsTray().assertExists() + Log.i(TAG, "verifyTabTrayIsOpen: Verified that the tabs tray exists") } fun verifyTabTrayIsClosed() { + Log.i(TAG, "verifyTabTrayIsClosed: Trying to verify that the tabs tray does not exist") composeTestRule.tabsTray().assertDoesNotExist() + Log.i(TAG, "verifyTabTrayIsClosed: Verified that the tabs tray does not exist") } /** * Closes a tab when there is only one tab open. */ + @OptIn(ExperimentalTestApi::class) fun closeTab() { + Log.i(TAG, "closeTab: Waiting until the close tab button exists") + composeTestRule.waitUntilAtLeastOneExists(hasTestTag(TabsTrayTestTag.tabItemClose)) + Log.i(TAG, "closeTab: Waited until the close tab button exists") + Log.i(TAG, "closeTab: Trying to verify that the close tab button exists") + composeTestRule.closeTabButton().assertExists() + Log.i(TAG, "closeTab: Verified that the close tab button exists") + Log.i(TAG, "closeTab: Trying to click the close tab button") composeTestRule.closeTabButton().performClick() + Log.i(TAG, "closeTab: Clicked the close tab button") } /** * Swipes a tab with [title] left. */ fun swipeTabLeft(title: String) { + Log.i(TAG, "swipeTabLeft: Trying to perform swipe left action on tab: $title") composeTestRule.tabItem(title).performTouchInput { swipeLeft() } + Log.i(TAG, "swipeTabLeft: Performed swipe left action on tab: $title") } /** * Swipes a tab with [title] right. */ fun swipeTabRight(title: String) { + Log.i(TAG, "swipeTabRight: Trying to perform swipe right action on tab: $title") composeTestRule.tabItem(title).performTouchInput { swipeRight() } + Log.i(TAG, "swipeTabRight: Performed swipe right action on tab: $title") } /** @@ -230,8 +304,12 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest collectionName: String, firstCollection: Boolean = true, ) { + Log.i(TAG, "createCollection: Trying to click the three dot button") composeTestRule.threeDotButton().performClick() + Log.i(TAG, "createCollection: Clicked the three dot button") + Log.i(TAG, "createCollection: Trying to click the \"Select tabs\" menu button") composeTestRule.dropdownMenuItemSelectTabs().performClick() + Log.i(TAG, "createCollection: Clicked the \"Select tabs\" menu button") for (tab in tabTitles) { selectTab(tab) @@ -250,24 +328,32 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest */ @OptIn(ExperimentalTestApi::class) fun selectTab(title: String) { - composeTestRule.waitUntilExactlyOneExists(hasText(title), TestAssetHelper.waitingTime) + Log.i(TAG, "selectTab: Waiting for $waitingTime ms until the tab with title: $title exists") + composeTestRule.waitUntilExactlyOneExists(hasText(title), waitingTime) + Log.i(TAG, "selectTab: Waited for $waitingTime ms until the tab with title: $title exists") + Log.i(TAG, "selectTab: Trying to click tab with title: $title") composeTestRule.tabItem(title).performClick() + Log.i(TAG, "selectTab: Clicked tab with title: $title") } /** * Performs a long click on a tab with [title]. */ fun longClickTab(title: String) { + Log.i(TAG, "longClickTab: Trying to long click tab with title: $title") composeTestRule.tabItem(title) .performTouchInput { longClick(durationMillis = Constants.LONG_CLICK_DURATION) } + Log.i(TAG, "longClickTab: Long clicked tab with title: $title") } /** * Verifies the multi selection counter displays [numOfTabs]. */ fun verifyTabsMultiSelectionCounter(numOfTabs: Int) { + Log.i(TAG, "verifyTabsMultiSelectionCounter: Trying to verify that $numOfTabs tabs are selected") composeTestRule.multiSelectionCounter() .assert(hasText("$numOfTabs selected")) + Log.i(TAG, "verifyTabsMultiSelectionCounter: Verified that $numOfTabs tabs are selected") } /** @@ -275,9 +361,13 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest */ @OptIn(ExperimentalTestApi::class) fun verifyTabMediaControlButtonState(action: String) { + Log.i(TAG, "verifyTabMediaControlButtonStateTab: Waiting for $waitingTime ms until the media tab control button: $action exists") composeTestRule.waitUntilAtLeastOneExists(hasContentDescription(action), waitingTime) + Log.i(TAG, "verifyTabMediaControlButtonStateTab: Waited for $waitingTime ms until the media tab control button: $action exists") + Log.i(TAG, "verifyTabMediaControlButtonStateTab: Trying to verify that the tab media control button: $action exists") composeTestRule.tabMediaControlButton(action) .assertExists() + Log.i(TAG, "verifyTabMediaControlButtonStateTab: Verified tab media control button: $action exists") } /** @@ -285,90 +375,118 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest */ @OptIn(ExperimentalTestApi::class) fun clickTabMediaControlButton(action: String) { + Log.i(TAG, "clickTabMediaControlButton: Waiting for $waitingTime ms until the media tab control button: $action exists") composeTestRule.waitUntilAtLeastOneExists(hasContentDescription(action), waitingTime) + Log.i(TAG, "clickTabMediaControlButton: Waited for $waitingTime ms until the media tab control button: $action exists") + Log.i(TAG, "clickTabMediaControlButton: Trying to click the tab media control button: $action") composeTestRule.tabMediaControlButton(action) .performClick() + Log.i(TAG, "clickTabMediaControlButton: Clicked the tab media control button: $action") } /** * Closes a tab with a given [title]. */ fun closeTabWithTitle(title: String) { + Log.i(TAG, "closeTabWithTitle: Trying to click the close button for tab with title: $title") composeTestRule.onAllNodesWithTag(TabsTrayTestTag.tabItemClose) .filter(hasParent(hasText(title))) .onFirst() .performClick() + Log.i(TAG, "closeTabWithTitle: Clicked the close button for tab with title: $title") } class Transition(private val composeTestRule: HomeActivityComposeTestRule) { fun openNewTab(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "openNewTab: Waiting for device to be idle") mDevice.waitForIdle() - + Log.i(TAG, "openNewTab: Waited for device to be idle") + Log.i(TAG, "openNewTab: Trying to click the new tab FAB button") composeTestRule.tabsTrayFab().performClick() + Log.i(TAG, "openNewTab: Clicked the new tab FAB button") SearchRobot().interact() return SearchRobot.Transition() } fun toggleToNormalTabs(interact: ComposeTabDrawerRobot.() -> Unit): Transition { + Log.i(TAG, "toggleToNormalTabs: Trying to click the normal browsing button") composeTestRule.normalBrowsingButton().performClick() + Log.i(TAG, "toggleToNormalTabs: Clicked the normal browsing button") ComposeTabDrawerRobot(composeTestRule).interact() return Transition(composeTestRule) } fun toggleToPrivateTabs(interact: ComposeTabDrawerRobot.() -> Unit): Transition { + Log.i(TAG, "toggleToPrivateTabs: Trying to click the private browsing button") composeTestRule.privateBrowsingButton().performClick() + Log.i(TAG, "toggleToPrivateTabs: Clicked the private browsing button") ComposeTabDrawerRobot(composeTestRule).interact() return Transition(composeTestRule) } fun toggleToSyncedTabs(interact: ComposeTabDrawerRobot.() -> Unit): Transition { + Log.i(TAG, "toggleToSyncedTabs: Trying to click the synced tabs button") composeTestRule.syncedTabsButton().performClick() + Log.i(TAG, "toggleToSyncedTabs: Clicked the synced tabs button") ComposeTabDrawerRobot(composeTestRule).interact() return Transition(composeTestRule) } fun clickSignInToSyncButton(interact: SyncSignInRobot.() -> Unit): SyncSignInRobot.Transition { + Log.i(TAG, "clickSignInToSyncButton: Trying to click the sign in to sync button and wait for $waitingTimeShort ms for a new window") itemContainingText(getStringResource(R.string.sync_sign_in)) - .clickAndWaitForNewWindow(TestAssetHelper.waitingTimeShort) + .clickAndWaitForNewWindow(waitingTimeShort) + Log.i(TAG, "clickSignInToSyncButton: Clicked the sign in to sync button and waited for $waitingTimeShort ms for a new window") SyncSignInRobot().interact() return SyncSignInRobot.Transition() } fun openThreeDotMenu(interact: ComposeTabDrawerRobot.() -> Unit): Transition { + Log.i(TAG, "openThreeDotMenu: Trying to click the three dot button") composeTestRule.threeDotButton().performClick() + Log.i(TAG, "openThreeDotMenu: Clicked three dot button") ComposeTabDrawerRobot(composeTestRule).interact() return Transition(composeTestRule) } fun closeAllTabs(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "closeAllTabs: Trying to click the \"Close all tabs\" menu button") composeTestRule.dropdownMenuItemCloseAllTabs().performClick() + Log.i(TAG, "closeAllTabs: Clicked the \"Close all tabs\" menu button") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun openTab(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - composeTestRule.tabItem(title) - .performScrollTo() - .performClick() + Log.i(TAG, "openTab: Trying to scroll to tab with title: $title") + composeTestRule.tabItem(title).performScrollTo() + Log.i(TAG, "openTab: Scrolled to tab with title: $title") + Log.i(TAG, "openTab: Trying to click tab with title: $title") + composeTestRule.tabItem(title).performClick() + Log.i(TAG, "openTab: Clicked tab with title: $title") BrowserRobot().interact() return BrowserRobot.Transition() } fun openPrivateTab(position: Int, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openPrivateTab: Trying to click private tab at position: ${position + 1}") composeTestRule.privateTabsList() .onChildren()[position] .performClick() + Log.i(TAG, "openPrivateTab: Clicked private tab at position: ${position + 1}") BrowserRobot().interact() return BrowserRobot.Transition() } fun openNormalTab(position: Int, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openNormalTab: Trying to click tab at position: ${position + 1}") composeTestRule.normalTabsList() .onChildren()[position] .performClick() + Log.i(TAG, "openNormalTab: Clicked tab at position: ${position + 1}") BrowserRobot().interact() return BrowserRobot.Transition() @@ -377,7 +495,9 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest fun clickTopBar(interact: ComposeTabDrawerRobot.() -> Unit): Transition { // The topBar contains other views. // Don't do the default click in the middle, rather click in some free space - top right. + Log.i(TAG, "clickTopBar: Trying to click the tabs tray top bar") Espresso.onView(ViewMatchers.withId(R.id.topBar)).clickAtLocationInView(GeneralLocation.TOP_RIGHT) + Log.i(TAG, "clickTopBar: Clicked the tabs tray top bar") ComposeTabDrawerRobot(composeTestRule).interact() return Transition(composeTestRule) } @@ -434,21 +554,27 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest } fun closeTabDrawer(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeTabDrawer: Trying to close the tabs tray by clicking the handle") composeTestRule.bannerHandle().performSemanticsAction(SemanticsActions.OnClick) + Log.i(TAG, "closeTabDrawer: Closed the tabs tray by clicking the handle") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickSaveCollection(interact: CollectionRobot.() -> Unit): CollectionRobot.Transition { + Log.i(TAG, "clickSaveCollection: Trying to click the collections button") composeTestRule.collectionsButton().performClick() + Log.i(TAG, "clickSaveCollection: Clicked collections button") CollectionRobot().interact() return CollectionRobot.Transition() } fun clickShareAllTabsButton(interact: ShareOverlayRobot.() -> Unit): ShareOverlayRobot.Transition { + Log.i(TAG, "clickShareAllTabsButton: Trying to click the \"Share all tabs\" menu button button") composeTestRule.dropdownMenuItemShareAllTabs().performClick() + Log.i(TAG, "clickShareAllTabsButton: Clicked the \"Share all tabs\" menu button button") ShareOverlayRobot().interact() return ShareOverlayRobot.Transition() @@ -468,7 +594,9 @@ fun composeTabDrawer(composeTestRule: HomeActivityComposeTestRule, interact: Com * Clicks on the Collections button in the Tabs Tray banner and opens a transition in the [CollectionRobot]. */ private fun clickCollectionsButton(composeTestRule: HomeActivityComposeTestRule, interact: CollectionRobot.() -> Unit): CollectionRobot.Transition { + Log.i(TAG, "clickCollectionsButton: Trying to click the collections button") composeTestRule.collectionsButton().performClick() + Log.i(TAG, "clickCollectionsButton: Clicked the collections button") CollectionRobot().interact() return CollectionRobot.Transition() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt index 0edba483..53f1121b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.filter import androidx.compose.ui.test.hasAnyChild @@ -16,14 +17,13 @@ import androidx.compose.ui.test.onFirst import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTouchInput -import androidx.test.uiautomator.UiSelector +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.HomeActivityComposeTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort -import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.packageName import org.mozilla.fenix.home.topsites.TopSitesTestTag @@ -34,21 +34,31 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR @OptIn(ExperimentalTestApi::class) fun verifyExistingTopSitesList() { - composeTestRule.waitUntilExactlyOneExists(hasTestTag(TopSitesTestTag.topSites), timeoutMillis = waitingTime) + Log.i(TAG, "verifyExistingTopSitesList: Waiting for $waitingTime ms until the top sites list exists") + composeTestRule.waitUntilAtLeastOneExists(hasTestTag(TopSitesTestTag.topSites), timeoutMillis = waitingTime) + Log.i(TAG, "verifyExistingTopSitesList: Waited for $waitingTime ms until the top sites list to exists") } @OptIn(ExperimentalTestApi::class) fun verifyExistingTopSiteItem(vararg titles: String) { titles.forEach { title -> - mDevice.findObject(UiSelector().textContains(title)).waitForExists(waitingTimeShort) + Log.i(TAG, "verifyExistingTopSiteItem: Waiting for $waitingTime ms until the top site with title: $title exists") + composeTestRule.waitUntilAtLeastOneExists(hasText(title), timeoutMillis = waitingTime) + Log.i(TAG, "verifyExistingTopSiteItem: Waited for $waitingTime ms until the top site with title: $title exists") + Log.i(TAG, "verifyExistingTopSiteItem: Trying to verify that the top site with title: $title exists") composeTestRule.topSiteItem(title).assertExists() + Log.i(TAG, "verifyExistingTopSiteItem: Verified that the top site with title: $title exists") } } fun verifyNotExistingTopSiteItem(vararg titles: String) { titles.forEach { title -> + Log.i(TAG, "verifyNotExistingTopSiteItem: Waiting for $waitingTime ms for top site with title: $title to exist") itemContainingText(title).waitForExists(waitingTime) + Log.i(TAG, "verifyNotExistingTopSiteItem: Waited for $waitingTime ms for top site with title: $title to exist") + Log.i(TAG, "verifyNotExistingTopSiteItem: Trying to verify that top site with title: $title does not exist") composeTestRule.topSiteItem(title).assertDoesNotExist() + Log.i(TAG, "verifyNotExistingTopSiteItem: Verified that top site with title: $title does not exist") } } @@ -59,15 +69,21 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR } fun verifyTopSiteContextMenuOpenInPrivateTabButton() { + Log.i(TAG, "verifyTopSiteContextMenuOpenInPrivateTabButton: Trying to verify that the \"Open in private tab\" menu button exists") composeTestRule.contextMenuItemOpenInPrivateTab().assertExists() + Log.i(TAG, "verifyTopSiteContextMenuOpenInPrivateTabButton: Verified that the \"Open in private tab\" menu button exists") } fun verifyTopSiteContextMenuRenameButton() { + Log.i(TAG, "verifyTopSiteContextMenuRenameButton: Trying to verify that the \"Rename\" menu button exists") composeTestRule.contextMenuItemRename().assertExists() + Log.i(TAG, "verifyTopSiteContextMenuRenameButton: Verified that the \"Rename\" menu button exists") } fun verifyTopSiteContextMenuRemoveButton() { + Log.i(TAG, "verifyTopSiteContextMenuRemoveButton: Trying to verify that the \"Remove\" menu button exists") composeTestRule.contextMenuItemRemove().assertExists() + Log.i(TAG, "verifyTopSiteContextMenuRemoveButton: Verified that the \"Remove\" menu button exists") } class Transition(private val composeTestRule: HomeActivityComposeTestRule) { @@ -76,7 +92,12 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR title: String, interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { - composeTestRule.topSiteItem(title).performScrollTo().performClick() + Log.i(TAG, "openTopSiteTabWithTitle: Trying to scroll to top site with title: $title") + composeTestRule.topSiteItem(title).performScrollTo() + Log.i(TAG, "openTopSiteTabWithTitle: Scrolled to top site with title: $title") + Log.i(TAG, "openTopSiteTabWithTitle: Trying to click top site with title: $title") + composeTestRule.topSiteItem(title).performClick() + Log.i(TAG, "openTopSiteTabWithTitle: Clicked top site with title: $title") BrowserRobot().interact() return BrowserRobot.Transition() @@ -85,7 +106,9 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR fun openTopSiteInPrivate( interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { + Log.i(TAG, "openTopSiteInPrivate: Trying to click the \"Open in private tab\" menu button") composeTestRule.contextMenuItemOpenInPrivateTab().performClick() + Log.i(TAG, "openTopSiteInPrivate: Clicked the \"Open in private tab\" menu button") composeTestRule.waitForIdle() BrowserRobot().interact() @@ -96,9 +119,12 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR title: String, interact: ComposeTopSitesRobot.() -> Unit, ): Transition { - composeTestRule.topSiteItem(title).performScrollTo().performTouchInput { - longClick() - } + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Trying to scroll to top site with title: $title") + composeTestRule.topSiteItem(title).performScrollTo() + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Scrolled to top site with title: $title") + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Trying to long click top site with title: $title") + composeTestRule.topSiteItem(title).performTouchInput { longClick() } + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Long clicked top site with title: $title") ComposeTopSitesRobot(composeTestRule).interact() return Transition(composeTestRule) @@ -108,13 +134,21 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR title: String, interact: ComposeTopSitesRobot.() -> Unit, ): Transition { + Log.i(TAG, "renameTopSite: Trying to click the \"Rename\" menu button") composeTestRule.contextMenuItemRename().performClick() + Log.i(TAG, "renameTopSite: Clicked the \"Rename\" menu button") itemWithResId("$packageName:id/top_site_title") .also { + Log.i(TAG, "renameTopSite: Waiting for $waitingTimeShort ms for top site rename text box to exist") it.waitForExists(waitingTimeShort) + Log.i(TAG, "renameTopSite: Waited for $waitingTimeShort ms for top site rename text box to exist") + Log.i(TAG, "renameTopSite: Trying to set top site rename text box text to: $title") it.setText(title) + Log.i(TAG, "renameTopSite: Top site rename text box text was set to: $title") } + Log.i(TAG, "renameTopSite: Trying to click the \"Ok\" dialog button") itemWithResIdContainingText("android:id/button1", "OK").click() + Log.i(TAG, "renameTopSite: Clicked the \"Ok\" dialog button") ComposeTopSitesRobot(composeTestRule).interact() return Transition(composeTestRule) @@ -124,23 +158,16 @@ class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestR fun removeTopSite( interact: ComposeTopSitesRobot.() -> Unit, ): Transition { + Log.i(TAG, "removeTopSite: Trying to click the \"Remove\" menu button") composeTestRule.contextMenuItemRemove().performClick() + Log.i(TAG, "removeTopSite: Clicked the \"Remove\" menu button") + Log.i(TAG, "removeTopSite: Waiting for $waitingTime ms until the \"Remove\" menu button does not exist") composeTestRule.waitUntilDoesNotExist(hasTestTag(TopSitesTestTag.remove), waitingTime) + Log.i(TAG, "removeTopSite: Waited for $waitingTime ms until the \"Remove\" menu button does not exist") ComposeTopSitesRobot(composeTestRule).interact() return Transition(composeTestRule) } - - @OptIn(ExperimentalTestApi::class) - fun deleteTopSiteFromHistory( - interact: BrowserRobot.() -> Unit, - ): BrowserRobot.Transition { - composeTestRule.contextMenuItemRemove().performClick() - composeTestRule.waitUntilDoesNotExist(hasTestTag(TopSitesTestTag.remove), waitingTime) - - BrowserRobot().interact() - return BrowserRobot.Transition() - } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt index fd76071c..3c4d3771 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.assertion.ViewAssertions.matches @@ -14,6 +15,7 @@ import androidx.test.uiautomator.By import androidx.test.uiautomator.UiSelector import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants.LONG_CLICK_DURATION +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText @@ -43,21 +45,27 @@ class CustomTabRobot { itemWithDescription(getStringResource(R.string.mozac_feature_customtabs_share_link)), ) - fun verifyMainMenuButton() = assertUIObjectExists(mainMenuButton) + fun verifyMainMenuButton() = assertUIObjectExists(mainMenuButton()) fun verifyDesktopSiteButtonExists() { + Log.i(TAG, "verifyDesktopSiteButtonExists: Trying to verify that the request desktop site button is displayed") desktopSiteButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyDesktopSiteButtonExists: Verified that the request desktop site button is displayed") } fun verifyFindInPageButtonExists() { + Log.i(TAG, "verifyFindInPageButtonExists: Trying to verify that the find in page button is displayed") findInPageButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyFindInPageButtonExists: Verified that the find in page button is displayed") } fun verifyPoweredByTextIsDisplayed() = assertUIObjectExists(itemContainingText("POWERED BY $appName")) fun verifyOpenInBrowserButtonExists() { + Log.i(TAG, "verifyOpenInBrowserButtonExists: Trying to verify that the \"Open in Firefox\" button is displayed") openInBrowserButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyOpenInBrowserButtonExists: Verified that the \"Open in Firefox\" button is displayed") } fun verifyBackButtonExists() = assertUIObjectExists(itemWithDescription("Back")) @@ -69,7 +77,9 @@ class CustomTabRobot { fun verifyCustomMenuItem(label: String) = assertUIObjectExists(itemContainingText(label)) fun verifyCustomTabCloseButton() { + Log.i(TAG, "verifyCustomTabCloseButton: Trying to verify that the close custom tab button is displayed") closeButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyCustomTabCloseButton: Verified that the close custom tab button is displayed") } fun verifyCustomTabToolbarTitle(title: String) { @@ -103,12 +113,16 @@ class CustomTabRobot { mDevice.findObject(UiSelector().resourceId("$packageName:id/toolbar")), waitingTime, ) + Log.i(TAG, "longCLickAndCopyToolbarUrl: Trying to long click the custom tab toolbar") customTabToolbar().click(LONG_CLICK_DURATION) + Log.i(TAG, "longCLickAndCopyToolbarUrl: Long clicked the custom tab toolbar") clickContextMenuItem("Copy") } fun fillAndSubmitLoginCredentials(userName: String, password: String) { + Log.i(TAG, "fillAndSubmitLoginCredentials: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "fillAndSubmitLoginCredentials: Waited for device to be idle for $waitingTime ms") setPageObjectText(itemWithResId("username"), userName) setPageObjectText(itemWithResId("password"), password) clickPageObject(itemWithResId("submit")) @@ -118,9 +132,17 @@ class CustomTabRobot { ) } - fun waitForPageToLoad() = progressBar.waitUntilGone(waitingTime) + fun waitForPageToLoad() { + Log.i(TAG, "waitForPageToLoad: Waiting for $waitingTime ms until progress bar is gone") + progressBar().waitUntilGone(waitingTime) + Log.i(TAG, "waitForPageToLoad: Waited for $waitingTime ms until progress bar was gone") + } - fun clickCustomTabCloseButton() = closeButton().click() + fun clickCustomTabCloseButton() { + Log.i(TAG, "clickCustomTabCloseButton: Trying to click close custom tab button") + closeButton().click() + Log.i(TAG, "clickCustomTabCloseButton: Clicked close custom tab button") + } fun verifyCustomTabActionButton(customTabActionButtonDescription: String) = assertUIObjectExists(itemWithDescription(customTabActionButtonDescription)) @@ -133,9 +155,13 @@ class CustomTabRobot { class Transition { fun openMainMenu(interact: CustomTabRobot.() -> Unit): Transition { - mainMenuButton.also { + mainMenuButton().also { + Log.i(TAG, "openMainMenu: Waiting for $waitingTime ms for the main menu button to exist") it.waitForExists(waitingTime) + Log.i(TAG, "openMainMenu: Waited for $waitingTime ms for the main menu button to exist") + Log.i(TAG, "openMainMenu: Trying to click the main menu button") it.click() + Log.i(TAG, "openMainMenu: Clicked the main menu button") } CustomTabRobot().interact() @@ -143,14 +169,18 @@ class CustomTabRobot { } fun clickOpenInBrowserButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "clickOpenInBrowserButton: Trying to click the \"Open in Firefox\" button") openInBrowserButton().perform(click()) + Log.i(TAG, "clickOpenInBrowserButton: Clicked the \"Open in Firefox\" button") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickShareButton(interact: ShareOverlayRobot.() -> Unit): ShareOverlayRobot.Transition { + Log.i(TAG, "clickShareButton: Trying to click the share button") itemWithDescription(getStringResource(R.string.mozac_feature_customtabs_share_link)).click() + Log.i(TAG, "clickShareButton: Clicked the share button") ShareOverlayRobot().interact() return ShareOverlayRobot.Transition() @@ -163,7 +193,7 @@ fun customTabScreen(interact: CustomTabRobot.() -> Unit): CustomTabRobot.Transit return CustomTabRobot.Transition() } -private val mainMenuButton = itemWithResId("$packageName:id/mozac_browser_toolbar_menu") +private fun mainMenuButton() = itemWithResId("$packageName:id/mozac_browser_toolbar_menu") private fun desktopSiteButton() = onView(withId(R.id.switch_widget)) @@ -175,7 +205,7 @@ private fun closeButton() = onView(withContentDescription("Return to previous ap private fun customTabToolbar() = mDevice.findObject(By.res("$packageName:id/toolbar")) -private val progressBar = +private fun progressBar() = mDevice.findObject( UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_progress"), ) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/DownloadRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/DownloadRobot.kt index 975000dd..eab72fff 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/DownloadRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/DownloadRobot.kt @@ -51,9 +51,8 @@ class DownloadRobot { fun verifyDownloadPrompt(fileName: String) { var currentTries = 0 while (currentTries++ < 3) { - Log.i(TAG, "verifyDownloadPrompt: While loop currentTries = $currentTries") + Log.i(TAG, "verifyDownloadPrompt: Started try #$currentTries") try { - Log.i(TAG, "verifyDownloadPrompt: Try block") assertUIObjectExists( itemWithResId("$packageName:id/download_button"), itemContainingText(fileName), @@ -61,7 +60,7 @@ class DownloadRobot { break } catch (e: AssertionError) { - Log.i(TAG, "verifyDownloadPrompt: Catch block") + Log.i(TAG, "verifyDownloadPrompt: AssertionError caught, executing fallback methods") Log.e("DOWNLOAD_ROBOT", "Failed to find locator: ${e.localizedMessage}") browserScreen { @@ -96,11 +95,12 @@ class DownloadRobot { ) fun clickTryAgainButton() { + Log.i(TAG, "clickTryAgainButton: Trying to click the \"TRY AGAIN\" in app prompt button") itemWithResIdAndText( "$packageName:id/download_dialog_action_button", "Try Again", ).click() - Log.i(TAG, "clickTryAgainButton: Clicked \"TRY AGAIN\" in app prompt button") + Log.i(TAG, "clickTryAgainButton: Clicked the \"TRY AGAIN\" in app prompt button") } fun verifyPhotosAppOpens() = assertExternalAppOpens(GOOGLE_APPS_PHOTOS) @@ -111,34 +111,40 @@ class DownloadRobot { fun verifyDownloadedFileIcon() = assertUIObjectExists(itemWithResId("$packageName:id/favicon")) fun verifyEmptyDownloadsList() { - Log.i(TAG, "verifyEmptyDownloadsList: Looking for empty download list") + Log.i(TAG, "verifyEmptyDownloadsList: Waiting for $waitingTime ms for for empty download list to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/download_empty_view")) .waitForExists(waitingTime) + Log.i(TAG, "verifyEmptyDownloadsList: Waited for $waitingTime ms for for empty download list to exist") + Log.i(TAG, "verifyEmptyDownloadsList: Trying to verify that the \"No downloaded files\" list message is displayed") onView(withText("No downloaded files")).check(matches(isDisplayed())) - Log.i(TAG, "verifyEmptyDownloadsList: Verified \"No downloaded files\" list message") + Log.i(TAG, "verifyEmptyDownloadsList: Verified that the \"No downloaded files\" list message is displayed") } fun waitForDownloadsListToExist() = assertUIObjectExists(itemWithResId("$packageName:id/download_list")) fun openDownloadedFile(fileName: String) { - downloadedFile(fileName) - .check(matches(isDisplayed())) - .click() + Log.i(TAG, "openDownloadedFile: Trying to verify that the downloaded file: $fileName is displayed") + downloadedFile(fileName).check(matches(isDisplayed())) + Log.i(TAG, "openDownloadedFile: Verified that the downloaded file: $fileName is displayed") + Log.i(TAG, "openDownloadedFile: Trying to click downloaded file: $fileName") + downloadedFile(fileName).click() Log.i(TAG, "openDownloadedFile: Clicked downloaded file: $fileName") } fun deleteDownloadedItem(fileName: String) { + Log.i(TAG, "deleteDownloadedItem: Trying to click the trash bin icon to delete downloaded file: $fileName") onView( allOf( withId(R.id.overflow_menu), hasSibling(withText(fileName)), ), ).click() - Log.i(TAG, "deleteDownloadedItem: Deleted downloaded file: $fileName using trash bin icon") + Log.i(TAG, "deleteDownloadedItem: Clicked the trash bin icon to delete downloaded file: $fileName") } fun longClickDownloadedItem(title: String) { + Log.i(TAG, "longClickDownloadedItem: Trying to long click downloaded file: $title") onView( allOf( withId(R.id.title), @@ -149,21 +155,24 @@ class DownloadRobot { } fun selectDownloadedItem(title: String) { + Log.i(TAG, "selectDownloadedItem: Trying click downloaded file: $title to select it") onView( allOf( withId(R.id.title), withText(title), ), ).perform(click()) - Log.i(TAG, "selectDownloadedItem: Selected downloaded file: $title") + Log.i(TAG, "selectDownloadedItem: Clicked downloaded file: $title to select it") } fun openMultiSelectMoreOptionsMenu() { + Log.i(TAG, "openMultiSelectMoreOptionsMenu: Trying to click multi-select more options button") itemWithDescription(getStringResource(R.string.content_description_menu)).click() Log.i(TAG, "openMultiSelectMoreOptionsMenu: Clicked multi-select more options button") } fun clickMultiSelectRemoveButton() { + Log.i(TAG, "clickMultiSelectRemoveButton: Trying to click multi-select remove button") itemWithResIdContainingText("$packageName:id/title", "Remove").click() Log.i(TAG, "clickMultiSelectRemoveButton: Clicked multi-select remove button") } @@ -180,27 +189,31 @@ class DownloadRobot { class Transition { fun clickDownload(interact: DownloadRobot.() -> Unit): Transition { + Log.i(TAG, "clickDownload: Trying to click the \"Download\" download prompt button") downloadButton().click() - Log.i(TAG, "clickDownload: Clicked \"DOWNLOAD\" button from prompt") + Log.i(TAG, "clickDownload: Clicked the \"Download\" download prompt button") DownloadRobot().interact() return Transition() } fun closeDownloadPrompt(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeDownloadPrompt: Trying to click the close download prompt button") itemWithResId("$packageName:id/download_dialog_close_button").click() - Log.i(TAG, "closeDownloadPrompt: Dismissed download prompt by clicking close prompt button") + Log.i(TAG, "closeDownloadPrompt: Clicked the close download prompt button") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickOpen(type: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - Log.i(TAG, "clickOpen: Looking for \"OPEN\" download prompt button") + Log.i(TAG, "clickOpen: Waiting for $waitingTime ms for the for \"OPEN\" download prompt button to exist") openDownloadButton().waitForExists(waitingTime) + Log.i(TAG, "clickOpen: Waited for $waitingTime ms for the for \"OPEN\" download prompt button to exist") + Log.i(TAG, "clickOpen: Trying to click the \"OPEN\" download prompt button") openDownloadButton().click() - Log.i(TAG, "clickOpen: Clicked \"OPEN\" download prompt button") - + Log.i(TAG, "clickOpen: Clicked the \"OPEN\" download prompt button") + Log.i(TAG, "clickOpen: Trying to verify that the open intent is matched with associated data type") // verify open intent is matched with associated data type Intents.intended( allOf( @@ -208,37 +221,38 @@ class DownloadRobot { IntentMatchers.hasType(type), ), ) - Log.i(TAG, "clickOpen: Verified that open intent is matched with associated data type") + Log.i(TAG, "clickOpen: Verified that the open intent is matched with associated data type") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickAllowPermission(interact: DownloadRobot.() -> Unit): Transition { - Log.i(TAG, "clickAllowPermission: Looking for \"ALLOW\" permission button") mDevice.waitNotNull( Until.findObject(By.res(getPermissionAllowID() + ":id/permission_allow_button")), waitingTime, ) - + Log.i(TAG, "clickAllowPermission: Trying to click the \"ALLOW\" permission button") mDevice.findObject(By.res(getPermissionAllowID() + ":id/permission_allow_button")).click() - Log.i(TAG, "clickAllowPermission: Clicked \"ALLOW\" permission button") + Log.i(TAG, "clickAllowPermission: Clicked the \"ALLOW\" permission button") DownloadRobot().interact() return Transition() } fun exitDownloadsManagerToBrowser(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "exitDownloadsManagerToBrowser: Trying to click the navigate up toolbar button") onView(withContentDescription("Navigate up")).click() - Log.i(TAG, "exitDownloadsManagerToBrowser: Exited download manager to browser by clicking the navigate up toolbar button") + Log.i(TAG, "exitDownloadsManagerToBrowser: Clicked the navigate up toolbar button") BrowserRobot().interact() return BrowserRobot.Transition() } fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBack: Trying to click the navigate up toolbar button") goBackButton().click() - Log.i(TAG, "exitDownloadsManagerToBrowser: Exited download manager to home screen by clicking the navigate up toolbar button") + Log.i(TAG, "goBack: Clicked the navigate up toolbar button") HomeScreenRobot().interact() return HomeScreenRobot.Transition() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/EnhancedTrackingProtectionRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/EnhancedTrackingProtectionRobot.kt index 6c7cdeff..365b30c9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/EnhancedTrackingProtectionRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/EnhancedTrackingProtectionRobot.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.RootMatchers @@ -21,6 +22,7 @@ import org.hamcrest.Matchers.allOf import org.hamcrest.Matchers.containsString import org.hamcrest.Matchers.not import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId @@ -36,15 +38,40 @@ import org.mozilla.fenix.helpers.isChecked * Implementation of Robot Pattern for Enhanced Tracking Protection UI. */ class EnhancedTrackingProtectionRobot { - fun verifyEnhancedTrackingProtectionSheetStatus(status: String, state: Boolean) = - assertEnhancedTrackingProtectionSheetStatus(status, state) + fun verifyEnhancedTrackingProtectionSheetStatus(status: String, state: Boolean) { + mDevice.waitNotNull(Until.findObjects(By.text("Protections are $status for this site"))) + Log.i(TAG, "verifyEnhancedTrackingProtectionSheetStatus: Trying to check ETP toggle is checked: $state") + onView(ViewMatchers.withResourceName("switch_widget")).check( + matches( + isChecked( + state, + ), + ), + ) + Log.i(TAG, "verifyEnhancedTrackingProtectionSheetStatus: Verified ETP toggle is checked: $state") + } - fun verifyETPSwitchVisibility(visible: Boolean) = assertETPSwitchVisibility(visible) + fun verifyETPSwitchVisibility(visible: Boolean) { + if (visible) { + Log.i(TAG, "verifyETPSwitchVisibility: Trying to verify ETP toggle is displayed") + enhancedTrackingProtectionSwitch() + .check(matches(isDisplayed())) + Log.i(TAG, "verifyETPSwitchVisibility: Verified ETP toggle is displayed") + } else { + Log.i(TAG, "verifyETPSwitchVisibility: Trying to verify ETP toggle is not displayed") + enhancedTrackingProtectionSwitch() + .check(matches(not(isDisplayed()))) + Log.i(TAG, "verifyETPSwitchVisibility: Verified ETP toggle is not displayed") + } + } fun verifyCrossSiteCookiesBlocked(isBlocked: Boolean) { assertUIObjectExists(itemWithResId("$packageName:id/cross_site_tracking")) - crossSiteCookiesBlockListButton.click() + Log.i(TAG, "verifyCrossSiteCookiesBlocked: Trying to click cross site cookies block list button") + crossSiteCookiesBlockListButton().click() + Log.i(TAG, "verifyCrossSiteCookiesBlocked: Clicked cross site cookies block list button") // Verifies the trackers block/allow list + Log.i(TAG, "verifyCrossSiteCookiesBlocked: Trying to verify cross site cookies are blocked: $isBlocked") onView(withId(R.id.details_blocking_header)) .check( matches( @@ -57,12 +84,16 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "verifyCrossSiteCookiesBlocked: Verified cross site cookies are blocked: $isBlocked") } fun verifySocialMediaTrackersBlocked(isBlocked: Boolean) { assertUIObjectExists(itemWithResId("$packageName:id/social_media_trackers")) - socialTrackersBlockListButton.click() + Log.i(TAG, "verifySocialMediaTrackersBlocked: Trying to click social trackers block list button") + socialTrackersBlockListButton().click() + Log.i(TAG, "verifySocialMediaTrackersBlocked: Clicked social trackers block list button") // Verifies the trackers block/allow list + Log.i(TAG, "verifySocialMediaTrackersBlocked: Trying to verify social trackers are blocked: $isBlocked") onView(withId(R.id.details_blocking_header)) .check( matches( @@ -75,13 +106,19 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "verifySocialMediaTrackersBlocked: Verified social trackers are blocked: $isBlocked") + Log.i(TAG, "verifySocialMediaTrackersBlocked: Trying to verify blocked social trackers list is displayed") onView(withId(R.id.blocking_text_list)).check(matches(isDisplayed())) + Log.i(TAG, "verifySocialMediaTrackersBlocked: Verified blocked social trackers list is displayed") } fun verifyFingerprintersBlocked(isBlocked: Boolean) { assertUIObjectExists(itemWithResId("$packageName:id/fingerprinters")) - fingerprintersBlockListButton.click() + Log.i(TAG, "verifyFingerprintersBlocked: Trying to click fingerprinters block list button") + fingerprintersBlockListButton().click() + Log.i(TAG, "verifyFingerprintersBlocked: Clicked fingerprinters block list button") // Verifies the trackers block/allow list + Log.i(TAG, "verifyFingerprintersBlocked: Trying to verify fingerprinters are blocked: $isBlocked") onView(withId(R.id.details_blocking_header)) .check( matches( @@ -94,13 +131,19 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "verifyFingerprintersBlocked: Verified fingerprinters are blocked: $isBlocked") + Log.i(TAG, "verifyFingerprintersBlocked: Trying to verify blocked fingerprinter trackers list is displayed") onView(withId(R.id.blocking_text_list)).check(matches(isDisplayed())) + Log.i(TAG, "verifyFingerprintersBlocked: Verified blocked fingerprinter trackers list is displayed") } fun verifyCryptominersBlocked(isBlocked: Boolean) { assertUIObjectExists(itemWithResId("$packageName:id/cryptominers")) - cryptominersBlockListButton.click() + Log.i(TAG, "verifyCryptominersBlocked: Trying to click cryptominers block list button") + cryptominersBlockListButton().click() + Log.i(TAG, "verifyCryptominersBlocked: Clicked cryptominers block list button") // Verifies the trackers block/allow list + Log.i(TAG, "verifyCryptominersBlocked: Trying to verify cryptominers are blocked: $isBlocked") onView(withId(R.id.details_blocking_header)) .check( matches( @@ -113,13 +156,19 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "verifyCryptominersBlocked: Verified cryptominers are blocked: $isBlocked") + Log.i(TAG, "verifyCryptominersBlocked: Trying to verify blocked cryptominers trackers list is displayed") onView(withId(R.id.blocking_text_list)).check(matches(isDisplayed())) + Log.i(TAG, "verifyCryptominersBlocked: Verified blocked cryptominers trackers list is displayed") } fun verifyTrackingContentBlocked(isBlocked: Boolean) { assertUIObjectExists(itemWithText("Tracking Content")) - trackingContentBlockListButton.click() + Log.i(TAG, "verifyTrackingContentBlocked: Trying to click tracking content block list button") + trackingContentBlockListButton().click() + Log.i(TAG, "verifyTrackingContentBlocked: Clicked tracking content block list button") // Verifies the trackers block/allow list + Log.i(TAG, "verifyTrackingContentBlocked: Trying to verify tracking content is blocked: $isBlocked") onView(withId(R.id.details_blocking_header)) .check( matches( @@ -132,10 +181,14 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "verifyTrackingContentBlocked: Verified tracking content is blocked: $isBlocked") + Log.i(TAG, "verifyTrackingContentBlocked: Trying to verify blocked tracking content trackers list is displayed") onView(withId(R.id.blocking_text_list)).check(matches(isDisplayed())) + Log.i(TAG, "verifyTrackingContentBlocked: Verified blocked tracking content trackers list is displayed") } fun viewTrackingContentBlockList() { + Log.i(TAG, "viewTrackingContentBlockList: Trying to verify blocked tracking content trackers") onView(withId(R.id.blocking_text_list)) .check( matches( @@ -148,6 +201,7 @@ class EnhancedTrackingProtectionRobot { ), ), ) + Log.i(TAG, "viewTrackingContentBlockList: Verified blocked tracking content trackers") } fun verifyETPSectionIsDisplayedInQuickSettingsSheet(isDisplayed: Boolean) = @@ -157,14 +211,24 @@ class EnhancedTrackingProtectionRobot { ) fun navigateBackToDetails() { + Log.i(TAG, "navigateBackToDetails: Trying to click details list back button") onView(withId(R.id.details_back)).click() + Log.i(TAG, "navigateBackToDetails: Clicked details list back button") } class Transition { fun openEnhancedTrackingProtectionSheet(interact: EnhancedTrackingProtectionRobot.() -> Unit): Transition { + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Waiting for $waitingTime ms for site security button to exist") pageSecurityIndicator().waitForExists(waitingTime) + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Waited for $waitingTime ms for site security button to exist") + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Trying to click site security button") pageSecurityIndicator().click() - assertSecuritySheetIsCompletelyDisplayed() + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Clicked site security button") + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Waiting for $waitingTime ms for quick actions sheet to exits") + mDevice.findObject(UiSelector().description(getStringResource(R.string.quick_settings_sheet))) + .waitForExists(waitingTime) + Log.i(TAG, "openEnhancedTrackingProtectionSheet: Waited for $waitingTime ms for quick actions sheet to exits") + assertUIObjectExists(itemWithResId("$packageName:id/quick_action_sheet")) EnhancedTrackingProtectionRobot().interact() return Transition() @@ -172,31 +236,45 @@ class EnhancedTrackingProtectionRobot { fun closeEnhancedTrackingProtectionSheet(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { // Back out of the Enhanced Tracking Protection sheet + Log.i(TAG, "closeEnhancedTrackingProtectionSheet: Trying to click device back button") mDevice.pressBack() + Log.i(TAG, "closeEnhancedTrackingProtectionSheet: Clicked device back button") BrowserRobot().interact() return BrowserRobot.Transition() } fun toggleEnhancedTrackingProtectionFromSheet(interact: EnhancedTrackingProtectionRobot.() -> Unit): Transition { + Log.i(TAG, "toggleEnhancedTrackingProtectionFromSheet: Trying to click ETP switch") enhancedTrackingProtectionSwitch().click() + Log.i(TAG, "toggleEnhancedTrackingProtectionFromSheet: Clicked ETP switch") EnhancedTrackingProtectionRobot().interact() return Transition() } fun openProtectionSettings(interact: SettingsSubMenuEnhancedTrackingProtectionRobot.() -> Unit): SettingsSubMenuEnhancedTrackingProtectionRobot.Transition { + Log.i(TAG, "openProtectionSettings: Waiting for $waitingTime ms for ETP sheet \"Details\" button to exist") openEnhancedTrackingProtectionDetails().waitForExists(waitingTime) + Log.i(TAG, "openProtectionSettings: Waited for $waitingTime ms for ETP sheet \"Details\" button to exist") + Log.i(TAG, "openProtectionSettings: Trying to click ETP sheet \"Details\" button") openEnhancedTrackingProtectionDetails().click() + Log.i(TAG, "openProtectionSettings: Clicked ETP sheet \"Details\" button") + Log.i(TAG, "openProtectionSettings: Trying to click \"Protection Settings\" button") trackingProtectionSettingsButton().click() + Log.i(TAG, "openProtectionSettings: Clicked \"Protection Settings\" button") SettingsSubMenuEnhancedTrackingProtectionRobot().interact() return SettingsSubMenuEnhancedTrackingProtectionRobot.Transition() } fun openDetails(interact: EnhancedTrackingProtectionRobot.() -> Unit): Transition { + Log.i(TAG, "openDetails: Waiting for $waitingTime ms for ETP sheet \"Details\" button to exist") openEnhancedTrackingProtectionDetails().waitForExists(waitingTime) + Log.i(TAG, "openDetails: Waited for $waitingTime ms for ETP sheet \"Details\" button to exist") + Log.i(TAG, "openDetails: Trying to click ETP sheet \"Details\" button") openEnhancedTrackingProtectionDetails().click() + Log.i(TAG, "openDetails: Clicked ETP sheet \"Details\" button") EnhancedTrackingProtectionRobot().interact() return Transition() @@ -209,27 +287,6 @@ fun enhancedTrackingProtection(interact: EnhancedTrackingProtectionRobot.() -> U return EnhancedTrackingProtectionRobot.Transition() } -private fun assertETPSwitchVisibility(visible: Boolean) { - if (visible) { - enhancedTrackingProtectionSwitch() - .check(matches(isDisplayed())) - } else { - enhancedTrackingProtectionSwitch() - .check(matches(not(isDisplayed()))) - } -} - -private fun assertEnhancedTrackingProtectionSheetStatus(status: String, state: Boolean) { - mDevice.waitNotNull(Until.findObjects(By.text("Protections are $status for this site"))) - onView(ViewMatchers.withResourceName("switch_widget")).check( - matches( - isChecked( - state, - ), - ), - ) -} - private fun pageSecurityIndicator() = mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_security_indicator")) @@ -246,7 +303,7 @@ private fun trackingProtectionSettingsButton() = private fun openEnhancedTrackingProtectionDetails() = mDevice.findObject(UiSelector().resourceId("$packageName:id/trackingProtectionDetails")) -private val trackingContentBlockListButton = +private fun trackingContentBlockListButton() = onView( allOf( withText("Tracking Content"), @@ -254,7 +311,7 @@ private val trackingContentBlockListButton = ), ) -private val socialTrackersBlockListButton = +private fun socialTrackersBlockListButton() = onView( allOf( withId(R.id.social_media_trackers), @@ -262,7 +319,7 @@ private val socialTrackersBlockListButton = ), ) -private val crossSiteCookiesBlockListButton = +private fun crossSiteCookiesBlockListButton() = onView( allOf( withId(R.id.cross_site_tracking), @@ -270,7 +327,7 @@ private val crossSiteCookiesBlockListButton = ), ) -private val cryptominersBlockListButton = +private fun cryptominersBlockListButton() = onView( allOf( withId(R.id.cryptominers), @@ -278,16 +335,10 @@ private val cryptominersBlockListButton = ), ) -private val fingerprintersBlockListButton = +private fun fingerprintersBlockListButton() = onView( allOf( withId(R.id.fingerprinters), withText("Fingerprinters"), ), ) - -private fun assertSecuritySheetIsCompletelyDisplayed() { - mDevice.findObject(UiSelector().description(getStringResource(R.string.quick_settings_sheet))) - .waitForExists(waitingTime) - assertUIObjectExists(itemWithResId("$packageName:id/quick_action_sheet")) -} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/FindInPageRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/FindInPageRobot.kt index 27737559..7f0789c2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/FindInPageRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/FindInPageRobot.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.action.ViewActions.clearText import androidx.test.espresso.action.ViewActions.typeText @@ -16,6 +17,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.uiautomator.By import androidx.test.uiautomator.Until import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.click @@ -25,52 +27,78 @@ import org.mozilla.fenix.helpers.ext.waitNotNull * Implementation of Robot Pattern for the find in page UI. */ class FindInPageRobot { - fun verifyFindInPageQuery() = assertFindInPageQuery()!! - fun verifyFindInPageNextButton() = assertFindInPageNextButton()!! - fun verifyFindInPagePrevButton() = assertFindInPagePrevButton()!! - fun verifyFindInPageCloseButton() = assertFindInPageCloseButton()!! - fun clickFindInPageNextButton() = findInPageNextButton().click() - fun clickFindInPagePrevButton() = findInPagePrevButton().click() - - fun verifyFindInPageSearchBarItems() { - verifyFindInPageQuery() - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() + fun verifyFindInPageNextButton() { + Log.i(TAG, "verifyFindInPageNextButton: Trying to verify find in page next result button is visible") + findInPageNextButton() + .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyFindInPageNextButton: Verified find in page next result button is visible") + } + fun verifyFindInPagePrevButton() { + Log.i(TAG, "verifyFindInPagePrevButton: Trying to verify find in page previous result button is visible") + findInPagePrevButton() + .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyFindInPagePrevButton: Verified find in page previous result button is visible") + } + fun verifyFindInPageCloseButton() { + Log.i(TAG, "verifyFindInPageCloseButton: Trying to verify find in page close button is visible") + findInPageCloseButton() + .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyFindInPageCloseButton: Verified find in page close button is visible") + } + fun clickFindInPageNextButton() { + Log.i(TAG, "clickFindInPageNextButton: Trying to click next result button") + findInPageNextButton().click() + Log.i(TAG, "clickFindInPageNextButton: Clicked next result button") + } + fun clickFindInPagePrevButton() { + Log.i(TAG, "clickFindInPagePrevButton: Trying to click previous result button") + findInPagePrevButton().click() + Log.i(TAG, "clickFindInPagePrevButton: Clicked previous result button") } fun enterFindInPageQuery(expectedText: String) { mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/find_in_page_query_text")), waitingTime) + Log.i(TAG, "enterFindInPageQuery: Trying to clear find in page bar text") findInPageQuery().perform(clearText()) + Log.i(TAG, "enterFindInPageQuery: Cleared find in page bar text") mDevice.waitNotNull(Until.gone(By.res("org.mozilla.fenix.debug:id/find_in_page_result_text")), waitingTime) + Log.i(TAG, "enterFindInPageQuery: Trying to type $expectedText in find in page bar") findInPageQuery().perform(typeText(expectedText)) + Log.i(TAG, "enterFindInPageQuery: Typed $expectedText in find page bar") mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/find_in_page_result_text")), waitingTime) } - fun verifyFindNextInPageResult(ratioCounter: String) { - mDevice.waitNotNull(Until.findObject(By.text(ratioCounter)), waitingTime) - findInPageResult().check(matches(withText((ratioCounter)))) - } - - fun verifyFindPrevInPageResult(ratioCounter: String) { + fun verifyFindInPageResult(ratioCounter: String) { mDevice.waitNotNull(Until.findObject(By.text(ratioCounter)), waitingTime) + Log.i(TAG, "verifyFindInPageResult: Trying to verify $ratioCounter results") findInPageResult().check(matches(withText((ratioCounter)))) + Log.i(TAG, "verifyFindInPageResult: Verified $ratioCounter results") } class Transition { fun closeFindInPageWithCloseButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeFindInPageWithCloseButton: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "closeFindInPageWithCloseButton: Device was idle") + Log.i(TAG, "closeFindInPageWithCloseButton: Trying to close find in page button") findInPageCloseButton().click() + Log.i(TAG, "closeFindInPageWithCloseButton: Clicked close find in page button") BrowserRobot().interact() return BrowserRobot.Transition() } fun closeFindInPageWithBackButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeFindInPageWithBackButton: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "closeFindInPageWithBackButton: Device was idle") // Will need to press back 2x, the first will only dismiss the keyboard + Log.i(TAG, "closeFindInPageWithBackButton: Trying to press 1x the device back button") mDevice.pressBack() + Log.i(TAG, "closeFindInPageWithBackButton: Pressed 1x the device back button") + Log.i(TAG, "closeFindInPageWithBackButton: Trying to press 2x the device back button") mDevice.pressBack() + Log.i(TAG, "closeFindInPageWithBackButton: Pressed 2x the device back button") BrowserRobot().interact() return BrowserRobot.Transition() @@ -83,15 +111,3 @@ private fun findInPageResult() = onView(withId(R.id.find_in_page_result_text)) private fun findInPageNextButton() = onView(withId(R.id.find_in_page_next_btn)) private fun findInPagePrevButton() = onView(withId(R.id.find_in_page_prev_btn)) private fun findInPageCloseButton() = onView(withId(R.id.find_in_page_close_btn)) - -private fun assertFindInPageQuery() = findInPageQuery() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun assertFindInPageNextButton() = findInPageNextButton() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun assertFindInPagePrevButton() = findInPagePrevButton() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun assertFindInPageCloseButton() = findInPageCloseButton() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HistoryRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HistoryRobot.kt index 768121d4..fc6ee4d1 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HistoryRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HistoryRobot.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui.robots import android.net.Uri +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.RootMatchers.isDialog @@ -19,9 +20,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.uiautomator.By import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until -import org.hamcrest.Matchers import org.hamcrest.Matchers.allOf import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText @@ -38,17 +39,32 @@ import org.mozilla.fenix.helpers.ext.waitNotNull */ class HistoryRobot { - fun verifyHistoryMenuView() = assertHistoryMenuView() + fun verifyHistoryMenuView() { + Log.i(TAG, "verifyHistoryMenuView: Trying to verify that history menu view is visible") + onView( + allOf(withText("History"), withParent(withId(R.id.navigationToolbar))), + ).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyHistoryMenuView: Verified that history menu view is visible") + } fun verifyEmptyHistoryView() { + Log.i(TAG, "verifyEmptyHistoryView: Waiting for $waitingTime ms for empty history list view to exist") mDevice.findObject( UiSelector().text("No history here"), ).waitForExists(waitingTime) + Log.i(TAG, "verifyEmptyHistoryView: Waited for $waitingTime ms for empty history list view to exist") - assertEmptyHistoryView() + Log.i(TAG, "verifyEmptyHistoryView: Trying to verify empty history list view") + onView( + allOf( + withId(R.id.history_empty_view), + withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), + ), + ).check(matches(withText("No history here"))) + Log.i(TAG, "verifyEmptyHistoryView: Verified empty history list view") } - fun verifyHistoryListExists() = assertHistoryListExists() + fun verifyHistoryListExists() = assertUIObjectExists(itemWithResId("$packageName:id/history_list")) fun verifyVisitedTimeTitle() { mDevice.waitNotNull( @@ -57,53 +73,87 @@ class HistoryRobot { ), waitingTime, ) - assertVisitedTimeTitle() + Log.i(TAG, "verifyVisitedTimeTitle: Trying to verify \"Today\" chronological timeline title") + onView(withId(R.id.header_title)).check(matches(withText("Today"))) + Log.i(TAG, "verifyVisitedTimeTitle: Verified \"Today\" chronological timeline title") } fun verifyHistoryItemExists(shouldExist: Boolean, item: String) = assertUIObjectExists(itemContainingText(item), exists = shouldExist) - fun verifyFirstTestPageTitle(title: String) = assertTestPageTitle(title) - - fun verifyTestPageUrl(expectedUrl: Uri) = pageUrl(expectedUrl.toString()).check(matches(isDisplayed())) - - fun verifyCopySnackBarText() = assertCopySnackBarText() - - fun verifyDeleteConfirmationMessage() = assertDeleteConfirmationMessage() - - fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen() - - fun clickDeleteHistoryButton(item: String) { - deleteButton(item).click() + fun verifyFirstTestPageTitle(title: String) { + Log.i(TAG, "verifyFirstTestPageTitle: Trying to verify $title page title is visible") + testPageTitle() + .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + .check(matches(withText(title))) + Log.i(TAG, "verifyFirstTestPageTitle: Verified $title page title is visible") } - fun verifyDeleteHistoryItemButton(historyItemTitle: String) = + fun verifyTestPageUrl(expectedUrl: Uri) { + Log.i(TAG, "verifyTestPageUrl: Trying to verify page url: $expectedUrl is displayed") + pageUrl(expectedUrl.toString()).check(matches(isDisplayed())) + Log.i(TAG, "verifyTestPageUrl: Verified page url: $expectedUrl is displayed") + } + + fun verifyDeleteConfirmationMessage() = + assertUIObjectExists( + itemWithResIdContainingText("$packageName:id/title", getStringResource(R.string.delete_history_prompt_title)), + itemWithResIdContainingText("$packageName:id/body", getStringResource(R.string.delete_history_prompt_body_2)), + ) + + fun clickDeleteHistoryButton(item: String) { + Log.i(TAG, "clickDeleteHistoryButton: Trying to click delete history button for item: $item") + deleteButton(item).click() + Log.i(TAG, "clickDeleteHistoryButton: Clicked delete history button for item: $item") + } + + fun verifyDeleteHistoryItemButton(historyItemTitle: String) { + Log.i(TAG, "verifyDeleteHistoryItemButton: Trying to verify delete history button for item: $historyItemTitle is visible") deleteButton(historyItemTitle).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "verifyDeleteHistoryItemButton: Verified delete history button for item: $historyItemTitle is visible") + } - fun clickDeleteAllHistoryButton() = deleteButton().click() + fun clickDeleteAllHistoryButton() { + Log.i(TAG, "clickDeleteAllHistoryButton: Trying to click delete all history button") + deleteButton().click() + Log.i(TAG, "clickDeleteAllHistoryButton: Clicked delete all history button") + } - fun selectEverythingOption() = deleteHistoryEverythingOption().click() + fun selectEverythingOption() { + Log.i(TAG, "selectEverythingOption: Trying to click \"Everything\" dialog option") + deleteHistoryEverythingOption().click() + Log.i(TAG, "selectEverythingOption: Clicked \"Everything\" dialog option") + } fun confirmDeleteAllHistory() { + Log.i(TAG, "confirmDeleteAllHistory: Trying to click \"Delete\" dialog button") onView(withText("Delete")) .inRoot(isDialog()) .check(matches(isDisplayed())) .click() + Log.i(TAG, "confirmDeleteAllHistory: Clicked \"Delete\" dialog button") } - fun cancelDeleteHistory() = + fun cancelDeleteHistory() { + Log.i(TAG, "cancelDeleteHistory: Trying to click \"Cancel\" dialog button") mDevice .findObject( UiSelector() .textContains(getStringResource(R.string.delete_browsing_data_prompt_cancel)), ).click() + Log.i(TAG, "cancelDeleteHistory: Clicked \"Cancel\" dialog button") + } - fun verifyDeleteSnackbarText(text: String) = assertSnackBarText(text) - - fun verifyUndoDeleteSnackBarButton() = assertUndoDeleteSnackBarButton() + fun verifyUndoDeleteSnackBarButton() { + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Trying to verify \"Undo\" snackbar button") + snackBarUndoButton().check(matches(withText("UNDO"))) + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Verified \"Undo\" snackbar button") + } fun clickUndoDeleteButton() { + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Trying to click \"Undo\" snackbar button") snackBarUndoButton().click() + Log.i(TAG, "verifyUndoDeleteSnackBarButton: Clicked \"Undo\" snackbar button") } fun verifySearchGroupDisplayed(shouldBeDisplayed: Boolean, searchTerm: String, groupSize: Int) = @@ -117,36 +167,50 @@ class HistoryRobot { ) fun openSearchGroup(searchTerm: String) { + Log.i(TAG, "openSearchGroup: Waiting for $waitingTime ms for search group: $searchTerm to exist") mDevice.findObject(UiSelector().text(searchTerm)).waitForExists(waitingTime) + Log.i(TAG, "openSearchGroup: Waited for $waitingTime ms for search group: $searchTerm to exist") + Log.i(TAG, "openSearchGroup: Trying to click search group: $searchTerm") mDevice.findObject(UiSelector().text(searchTerm)).click() + Log.i(TAG, "openSearchGroup: Clicked search group: $searchTerm") } class Transition { fun goBack(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "goBack: Trying to click go back menu button") onView(withContentDescription("Navigate up")).click() + Log.i(TAG, "goBack: Clicked go back menu button") BrowserRobot().interact() return BrowserRobot.Transition() } fun openWebsite(url: Uri, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - assertHistoryListExists() + assertUIObjectExists(itemWithResId("$packageName:id/history_list")) + Log.i(TAG, "openWebsite: Trying to click history item with url: $url") onView(withText(url.toString())).click() + Log.i(TAG, "openWebsite: Clicked history item with url: $url") BrowserRobot().interact() return BrowserRobot.Transition() } fun openRecentlyClosedTabs(interact: RecentlyClosedTabsRobot.() -> Unit): RecentlyClosedTabsRobot.Transition { - recentlyClosedTabsListButton.waitForExists(waitingTime) - recentlyClosedTabsListButton.click() + Log.i(TAG, "openRecentlyClosedTabs: Waiting for $waitingTime ms for \"Recently closed tabs\" button to exist") + recentlyClosedTabsListButton().waitForExists(waitingTime) + Log.i(TAG, "openRecentlyClosedTabs: Waited for $waitingTime ms for \"Recently closed tabs\" button to exist") + Log.i(TAG, "openRecentlyClosedTabs: Trying to click \"Recently closed tabs\" button") + recentlyClosedTabsListButton().click() + Log.i(TAG, "openRecentlyClosedTabs: Clicked \"Recently closed tabs\" button") RecentlyClosedTabsRobot().interact() return RecentlyClosedTabsRobot.Transition() } fun clickSearchButton(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "clickSearchButton: Trying to click search history button") itemWithResId("$packageName:id/history_search").click() + Log.i(TAG, "clickSearchButton: Clicked search history button") SearchRobot().interact() return SearchRobot.Transition() @@ -168,50 +232,8 @@ private fun deleteButton(title: String) = private fun deleteButton() = onView(withId(R.id.history_delete)) -private fun snackBarText() = onView(withId(R.id.snackbar_text)) - -private fun assertHistoryMenuView() { - onView( - allOf(withText("History"), withParent(withId(R.id.navigationToolbar))), - ) - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) -} - -private fun assertEmptyHistoryView() = - onView( - allOf( - withId(R.id.history_empty_view), - withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), - ), - ) - .check(matches(withText("No history here"))) - -private fun assertHistoryListExists() = - mDevice.findObject(UiSelector().resourceId("$packageName:id/history_list")).waitForExists(waitingTime) - -private fun assertVisitedTimeTitle() = - onView(withId(R.id.header_title)).check(matches(withText("Today"))) - -private fun assertTestPageTitle(title: String) = testPageTitle() - .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - .check(matches(withText(title))) - -private fun assertDeleteConfirmationMessage() = - assertUIObjectExists( - itemWithResIdContainingText("$packageName:id/title", getStringResource(R.string.delete_history_prompt_title)), - itemWithResIdContainingText("$packageName:id/body", getStringResource(R.string.delete_history_prompt_body_2)), - ) - -private fun assertCopySnackBarText() = snackBarText().check(matches(withText("URL copied"))) - -private fun assertSnackBarText(text: String) = - snackBarText().check(matches(withText(Matchers.containsString(text)))) - private fun snackBarUndoButton() = onView(withId(R.id.snackbar_btn)) -private fun assertUndoDeleteSnackBarButton() = - snackBarUndoButton().check(matches(withText("UNDO"))) - private fun deleteHistoryEverythingOption() = mDevice .findObject( @@ -220,5 +242,5 @@ private fun deleteHistoryEverythingOption() = .resourceId("$packageName:id/everything_button"), ) -private val recentlyClosedTabsListButton = +private fun recentlyClosedTabsListButton() = mDevice.findObject(UiSelector().resourceId("$packageName:id/recently_closed_tabs_header")) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index d3e78c46..38d5a4f8 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -48,7 +48,6 @@ import org.hamcrest.CoreMatchers.allOf import org.hamcrest.CoreMatchers.containsString import org.hamcrest.CoreMatchers.instanceOf import org.hamcrest.Matchers -import org.junit.Assert import org.junit.Assert.assertTrue import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants.LISTS_MAXSWIPES @@ -80,41 +79,77 @@ import org.mozilla.fenix.tabstray.TabsTrayTestTag * Implementation of Robot Pattern for the home screen menu. */ class HomeScreenRobot { - val privateSessionMessage = - "$appName clears your search and browsing history from private tabs when you close them" + - " or quit the app. While this doesn’t make you anonymous to websites or your internet" + - " service provider, it makes it easier to keep what you do online private from anyone" + - " else who uses this device." - fun verifyNavigationToolbar() = assertUIObjectExists(navigationToolbar()) fun verifyHomeScreen() = assertUIObjectExists(homeScreen()) fun verifyPrivateBrowsingHomeScreenItems() { verifyHomeScreenAppBarItems() - assertUIObjectExists(itemContainingText(privateSessionMessage)) + assertUIObjectExists( + itemContainingText( + "$appName clears your search and browsing history from private tabs when you close them" + + " or quit the app. While this doesn’t make you anonymous to websites or your internet" + + " service provider, it makes it easier to keep what you do online private from anyone" + + " else who uses this device.", + ), + ) verifyCommonMythsLink() } fun verifyHomeScreenAppBarItems() = assertUIObjectExists(homeScreen(), privateBrowsingButton(), homepageWordmark()) - fun verifyNavigationToolbarItems(numberOfOpenTabs: String = "0") = - assertUIObjectExists(navigationToolbar(), menuButton, tabCounter(numberOfOpenTabs)) - fun verifyHomePrivateBrowsingButton() = assertUIObjectExists(privateBrowsingButton()) - fun verifyHomeMenuButton() = assertUIObjectExists(menuButton) - fun verifyTabButton() = assertTabButton() - fun verifyCollectionsHeader() = assertCollectionsHeader() - fun verifyNoCollectionsText() = assertNoCollectionsText() + fun verifyHomeMenuButton() = assertUIObjectExists(menuButton()) + fun verifyTabButton() { + Log.i(TAG, "verifyTabButton: Trying to verify tab counter button is visible") + onView(allOf(withId(R.id.tab_button), isDisplayed())).check( + matches( + withEffectiveVisibility( + Visibility.VISIBLE, + ), + ), + ) + Log.i(TAG, "verifyTabButton: Verified tab counter button is visible") + } + fun verifyCollectionsHeader() { + Log.i(TAG, "verifyCollectionsHeader: Trying to verify collections header is visible") + onView(allOf(withText("Collections"))).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyCollectionsHeader: Verified collections header is visible") + } + fun verifyNoCollectionsText() { + Log.i(TAG, "verifyNoCollectionsText: Trying to verify empty collections placeholder text is displayed") + onView( + withText( + containsString( + "Collect the things that matter to you.\n" + + "Group together similar searches, sites, and tabs for quick access later.", + ), + ), + ).check(matches(isDisplayed())) + Log.i(TAG, "verifyNoCollectionsText: Verified empty collections placeholder text is displayed") + } + fun verifyHomeWordmark() { + Log.i(TAG, "verifyHomeWordmark: Trying to scroll 3x to the beginning of the home screen") homeScreenList().scrollToBeginning(3) + Log.i(TAG, "verifyHomeWordmark: Scrolled 3x to the beginning of the home screen") assertUIObjectExists(homepageWordmark()) } - fun verifyHomeComponent() = assertHomeComponent() + fun verifyHomeComponent() { + Log.i(TAG, "verifyHomeComponent: Trying to verify home screen view is visible") + onView(ViewMatchers.withResourceName("sessionControlRecyclerView")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyHomeComponent: Verified home screen view is visible") + } fun verifyTabCounter(numberOfOpenTabs: String) = - assertUIObjectExists(tabCounter(numberOfOpenTabs)) + onView( + allOf( + withId(R.id.counter_text), + withText(numberOfOpenTabs), + ), + ).check(matches(isDisplayed())) fun verifyWallpaperImageApplied(isEnabled: Boolean) = assertUIObjectExists(itemWithResId("$packageName:id/wallpaperImageView"), exists = isEnabled) @@ -122,101 +157,149 @@ class HomeScreenRobot { // Upgrading users onboarding dialog fun verifyUpgradingUserOnboardingFirstScreen(testRule: ComposeTestRule) { testRule.also { + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Trying to verify that the upgrading user first onboarding screen title is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_welcome_title_2)) .assertIsDisplayed() - + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Verified that the upgrading user first onboarding screen title is displayed") + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Trying to verify that the upgrading user first onboarding screen description is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_welcome_description)) .assertIsDisplayed() - + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Verified that the upgrading user first onboarding screen description is displayed") + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Trying to verify that the upgrading user first onboarding \"Get started\" button is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_get_started_button)) .assertIsDisplayed() + Log.i(TAG, "verifyUpgradingUserOnboardingFirstScreen: Verified that the upgrading user first onboarding \"Get started\" button is displayed") } } fun verifyFirstOnboardingCard(composeTestRule: ComposeTestRule) { composeTestRule.also { + Log.i(TAG, "verifyFirstOnboardingCard: Trying to verify that the first onboarding screen title exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_title_nimbus_2), ).assertExists() - + Log.i(TAG, "verifyFirstOnboardingCard: Verified that the first onboarding screen title exists") + Log.i(TAG, "verifyFirstOnboardingCard: Trying to verify that the first onboarding screen description exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_description_nimbus_3), ).assertExists() - + Log.i(TAG, "verifyFirstOnboardingCard: Verified that the first onboarding screen description exists") + Log.i(TAG, "verifyFirstOnboardingCard: Trying to verify that the first onboarding \"Set as default browser\" button exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_positive_button), ).assertExists() - + Log.i(TAG, "verifyFirstOnboardingCard: Verified that the first onboarding \"Set as default browser\" button exists") + Log.i(TAG, "verifyFirstOnboardingCard: Trying to verify that the first onboarding \"Not now\" button exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_negative_button), ).assertExists() + Log.i(TAG, "verifyFirstOnboardingCard: Verified that the first onboarding \"Not now\" button exists") } } fun verifySecondOnboardingCard(composeTestRule: ComposeTestRule) { composeTestRule.also { + Log.i(TAG, "verifySecondOnboardingCard: Trying to verify that the second onboarding screen title exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_sign_in_title_2), ).assertExists() - + Log.i(TAG, "verifySecondOnboardingCard: Verified that the second onboarding screen title exists") + Log.i(TAG, "verifySecondOnboardingCard: Trying to verify that the second onboarding screen description exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_sign_in_description_2), ).assertExists() - + Log.i(TAG, "verifySecondOnboardingCard: Verified that the second onboarding screen description exists") + Log.i(TAG, "verifySecondOnboardingCard: Trying to verify that the first onboarding \"Sign in\" button exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_sign_in_positive_button), ).assertExists() - + Log.i(TAG, "verifySecondOnboardingCard: Verified that the first onboarding \"Sign in\" button exists") + Log.i(TAG, "verifySecondOnboardingCard: Trying to verify that the first onboarding \"Not now\" button exists") it.onNodeWithText( getStringResource(R.string.juno_onboarding_sign_in_negative_button), ).assertExists() + Log.i(TAG, "verifySecondOnboardingCard: Verified that the first onboarding \"Not now\" button exists") } } - fun clickNotNowOnboardingButton(composeTestRule: ComposeTestRule) = + fun clickNotNowOnboardingButton(composeTestRule: ComposeTestRule) { + Log.i(TAG, "clickNotNowOnboardingButton: Trying to click \"Not now\" onboarding button") composeTestRule.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_negative_button), ).performClick() + Log.i(TAG, "clickNotNowOnboardingButton: Clicked \"Not now\" onboarding button") + } - fun swipeSecondOnboardingCardToRight() = + fun swipeSecondOnboardingCardToRight() { + Log.i(TAG, "swipeSecondOnboardingCardToRight: Trying to perform swipe right action on second onboarding card") mDevice.findObject( UiSelector().textContains( getStringResource(R.string.juno_onboarding_sign_in_title_2), ), ).swipeRight(3) + Log.i(TAG, "swipeSecondOnboardingCardToRight: Performed swipe right action on second onboarding card") + } - fun clickGetStartedButton(testRule: ComposeTestRule) = - testRule.onNodeWithText(getStringResource(R.string.onboarding_home_get_started_button)).performClick() + fun clickGetStartedButton(testRule: ComposeTestRule) { + Log.i(TAG, "clickGetStartedButton: Trying to click \"Get started\" onboarding button") + testRule.onNodeWithText(getStringResource(R.string.onboarding_home_get_started_button)) + .performClick() + Log.i(TAG, "clickGetStartedButton: Clicked \"Get started\" onboarding button") + } - fun clickCloseButton(testRule: ComposeTestRule) = + fun clickCloseButton(testRule: ComposeTestRule) { + Log.i(TAG, "clickCloseButton: Trying to click close onboarding button") testRule.onNode(hasContentDescription("Close")).performClick() + Log.i(TAG, "clickCloseButton: Clicked close onboarding button") + } fun verifyUpgradingUserOnboardingSecondScreen(testRule: ComposeTestRule) { testRule.also { + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Trying to verify that the upgrading user second onboarding screen title is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_sync_title_3)) .assertIsDisplayed() - + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Verified that the upgrading user second onboarding screen title is displayed") + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Trying to verify that the upgrading user second onboarding screen description is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_sync_description)) .assertIsDisplayed() - + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Verified that the upgrading user second onboarding screen description is displayed") + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Trying to verify that the upgrading user second onboarding \"Sign in\" button is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_sign_in_button)) .assertIsDisplayed() - + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Verified that the upgrading user second onboarding \"Sign in\" button is displayed") + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Trying to that the verify upgrading user second onboarding \"Skip\" button is displayed") it.onNodeWithText(getStringResource(R.string.onboarding_home_skip_button)) .assertIsDisplayed() + Log.i(TAG, "verifyUpgradingUserOnboardingSecondScreen: Verified that the upgrading user second onboarding \"Skip\" button is displayed") } } - fun clickSkipButton(testRule: ComposeTestRule) = + fun clickSkipButton(testRule: ComposeTestRule) { + Log.i(TAG, "clickSkipButton: Trying to click \"Skip\" onboarding button") testRule .onNodeWithText(getStringResource(R.string.onboarding_home_skip_button)) .performClick() + Log.i(TAG, "clickSkipButton: Clicked \"Skip\" onboarding button") + } fun verifyCommonMythsLink() = assertUIObjectExists(itemContainingText(getStringResource(R.string.private_browsing_common_myths))) - fun verifyExistingTopSitesList() = assertExistingTopSitesList() - fun verifyNotExistingTopSitesList(title: String) = assertNotExistingTopSitesList(title) + fun verifyExistingTopSitesList() = + assertUIObjectExists(itemWithResId("$packageName:id/top_sites_list")) + + fun verifyNotExistingTopSitesList(title: String) { + Log.i(TAG, "verifyNotExistingTopSitesList: Waiting for $waitingTime ms for top site: $title to be gone") + mDevice.findObject(UiSelector().text(title)).waitUntilGone(waitingTime) + Log.i(TAG, "verifyNotExistingTopSitesList: Waited for $waitingTime ms for top site: $title to be gone") + assertUIObjectExists( + itemWithResIdContainingText( + "$packageName:id/top_site_title", + title, + ), + exists = false, + ) + } fun verifySponsoredShortcutDoesNotExist(sponsoredShortcutTitle: String, position: Int) = assertUIObjectExists( itemWithResIdAndIndex("$packageName:id/top_site_item", index = position - 1) @@ -226,17 +309,65 @@ class HomeScreenRobot { ), exists = false, ) - fun verifyNotExistingSponsoredTopSitesList() = assertSponsoredTopSitesNotDisplayed() + fun verifyNotExistingSponsoredTopSitesList() = + assertUIObjectExists( + itemWithResIdContainingText( + "$packageName:id/top_site_subtitle", + getStringResource(R.string.top_sites_sponsored_label), + ), + exists = false, + ) + fun verifyExistingTopSitesTabs(title: String) { + Log.i(TAG, "verifyExistingTopSitesTabs: Trying to scroll into view the top sites list") homeScreenList().scrollIntoView(itemWithResId("$packageName:id/top_sites_list")) - assertExistingTopSitesTabs(title) + Log.i(TAG, "verifyExistingTopSitesTabs: Scrolled into view the top sites list") + Log.i(TAG, "verifyExistingTopSitesTabs: Waiting for $waitingTime ms for top site: $title to exist") + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/top_site_title") + .textContains(title), + ).waitForExists(waitingTime) + Log.i(TAG, "verifyExistingTopSitesTabs: Waited for $waitingTime ms for top site: $title to exist") + Log.i(TAG, "verifyExistingTopSitesTabs: Trying to verify top site: $title is visible") + onView(allOf(withId(R.id.top_sites_list))) + .check(matches(hasDescendant(withText(title)))) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyExistingTopSitesTabs: Verified top site: $title is visible") } fun verifySponsoredShortcutDetails(sponsoredShortcutTitle: String, position: Int) { - assertSponsoredShortcutLogoIsDisplayed(position) - assertSponsoredShortcutTitle(sponsoredShortcutTitle, position) - assertSponsoredSubtitleIsDisplayed(position) + assertUIObjectExists( + itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) + .getChild( + UiSelector() + .resourceId("$packageName:id/favicon_card"), + ), + ) + assertUIObjectExists( + itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) + .getChild( + UiSelector() + .textContains(sponsoredShortcutTitle), + ), + ) + assertUIObjectExists( + itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) + .getChild( + UiSelector() + .resourceId("$packageName:id/top_site_subtitle"), + ), + ) + } + fun verifyTopSiteContextMenuItems() { + mDevice.waitNotNull( + findObject(By.text("Open in private tab")), + waitingTime, + ) + mDevice.waitNotNull( + findObject(By.text("Remove")), + waitingTime, + ) } - fun verifyTopSiteContextMenuItems() = assertTopSiteContextMenuItems() fun verifyJumpBackInSectionIsDisplayed() { scrollToElementByText(getStringResource(R.string.recent_tabs_header)) @@ -244,14 +375,22 @@ class HomeScreenRobot { } fun verifyJumpBackInSectionIsNotDisplayed() = assertUIObjectExists(itemContainingText(getStringResource(R.string.recent_tabs_header)), exists = false) - fun verifyJumpBackInItemTitle(testRule: ComposeTestRule, itemTitle: String) = - assertJumpBackInItemTitle(testRule, itemTitle) - fun verifyJumpBackInItemWithUrl(testRule: ComposeTestRule, itemUrl: String) = - assertJumpBackInItemWithUrl(testRule, itemUrl) - fun verifyJumpBackInShowAllButton() = assertJumpBackInShowAllButton() - fun verifyRecentlyVisitedSectionIsDisplayed(exists: Boolean) = assertRecentlyVisitedSectionIsDisplayed(exists) - fun verifyRecentBookmarksSectionIsDisplayed(exists: Boolean) = assertRecentBookmarksSectionIsDisplayed(exists) - fun verifyPocketSectionIsDisplayed(exists: Boolean) = assertPocketSectionIsDisplayed(exists) + fun verifyJumpBackInItemTitle(testRule: ComposeTestRule, itemTitle: String) { + Log.i(TAG, "verifyJumpBackInItemTitle: Trying to verify jump back in item with title: $itemTitle") + testRule.onNodeWithTag("recent.tab.title", useUnmergedTree = true) + .assert(hasText(itemTitle)) + Log.i(TAG, "verifyJumpBackInItemTitle: Verified jump back in item with title: $itemTitle") + } + fun verifyJumpBackInItemWithUrl(testRule: ComposeTestRule, itemUrl: String) { + Log.i(TAG, "verifyJumpBackInItemWithUrl: Trying to verify jump back in item with URL: $itemUrl") + testRule.onNodeWithTag("recent.tab.url", useUnmergedTree = true).assert(hasText(itemUrl)) + Log.i(TAG, "verifyJumpBackInItemWithUrl: Verified jump back in item with URL: $itemUrl") + } + fun verifyJumpBackInShowAllButton() = assertUIObjectExists(itemContainingText(getStringResource(R.string.recent_tabs_show_all))) + fun verifyRecentlyVisitedSectionIsDisplayed(exists: Boolean) = + assertUIObjectExists(itemContainingText(getStringResource(R.string.history_metadata_header_2)), exists = exists) + fun verifyRecentBookmarksSectionIsDisplayed(exists: Boolean) = + assertUIObjectExists(itemContainingText(getStringResource(R.string.recently_saved_title)), exists = exists) fun verifyRecentlyVisitedSearchGroupDisplayed(shouldBeDisplayed: Boolean, searchTerm: String, groupSize: Int) { // checks if the search group exists in the Recently visited section @@ -279,41 +418,37 @@ class HomeScreenRobot { } fun togglePrivateBrowsingModeOnOff() { + Log.i(TAG, "togglePrivateBrowsingModeOnOff: Trying to click private browsing home screen button") onView(ViewMatchers.withResourceName("privateBrowsingButton")) .perform(click()) + Log.i(TAG, "togglePrivateBrowsingModeOnOff: Clicked private browsing home screen button") } - fun swipeToBottom() = onView(withId(R.id.homeLayout)).perform(ViewActions.swipeUp()) - - fun swipeToTop() = - onView(withId(R.id.sessionControlRecyclerView)).perform(ViewActions.swipeDown()) - - fun verifySnackBarText(expectedText: String) { - mDevice.waitNotNull(findObject(By.text(expectedText)), waitingTime) - } - - fun clickFirefoxLogo() = homepageWordmark().click() - fun verifyThoughtProvokingStories(enabled: Boolean) { if (enabled) { scrollToElementByText(getStringResource(R.string.pocket_stories_header_1)) assertUIObjectExists(itemContainingText(getStringResource(R.string.pocket_stories_header_1))) } else { + Log.i(TAG, "verifyThoughtProvokingStories: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") homeScreenList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "verifyThoughtProvokingStories: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") assertUIObjectExists(itemContainingText(getStringResource(R.string.pocket_stories_header_1)), exists = false) } } fun scrollToPocketProvokingStories() { + Log.i(TAG, "scrollToPocketProvokingStories: Trying to scroll into view the featured pocket stories") homeScreenList().scrollIntoView( mDevice.findObject(UiSelector().resourceId("pocket.recommended.story").index(2)), ) + Log.i(TAG, "scrollToPocketProvokingStories: Scrolled into view the featured pocket stories") } fun verifyPocketRecommendedStoriesItems() { for (position in 0..8) { - pocketStoriesList - .scrollIntoView(UiSelector().index(position)) + Log.i(TAG, "verifyPocketRecommendedStoriesItems: Trying to scroll into view the featured pocket story from position: $position") + pocketStoriesList().scrollIntoView(UiSelector().index(position)) + Log.i(TAG, "verifyPocketRecommendedStoriesItems: Scrolled into view the featured pocket story from position: $position") assertUIObjectExists(itemWithIndex(position)) } } @@ -334,8 +469,9 @@ class HomeScreenRobot { // } fun verifyDiscoverMoreStoriesButton() { - pocketStoriesList - .scrollIntoView(UiSelector().text("Discover more")) + Log.i(TAG, "verifyDiscoverMoreStoriesButton: Trying to scroll into view the Pocket \"Discover more\" button") + pocketStoriesList().scrollIntoView(UiSelector().text("Discover more")) + Log.i(TAG, "verifyDiscoverMoreStoriesButton: Scrolled into view the Pocket \"Discover more\" button") assertUIObjectExists(itemWithText("Discover more")) } @@ -344,33 +480,54 @@ class HomeScreenRobot { scrollToElementByText(getStringResource(R.string.pocket_stories_categories_header)) assertUIObjectExists(itemContainingText(getStringResource(R.string.pocket_stories_categories_header))) } else { + Log.i(TAG, "verifyStoriesByTopic: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") homeScreenList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "verifyStoriesByTopic: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") assertUIObjectExists(itemContainingText(getStringResource(R.string.pocket_stories_categories_header)), exists = false) } } fun verifyStoriesByTopicItems() { + Log.i(TAG, "verifyStoriesByTopicItems: Trying to scroll into view the stories by topic home screen section") homeScreenList().scrollIntoView(UiSelector().resourceId("pocket.categories")) + Log.i(TAG, "verifyStoriesByTopicItems: Scrolled into view the stories by topic home screen section") + Log.i(TAG, "verifyStoriesByTopicItems: Trying to verify that there are more than 1 \"Stories by topic\" categories") assertTrue(mDevice.findObject(UiSelector().resourceId("pocket.categories")).childCount > 1) + Log.i(TAG, "verifyStoriesByTopicItems: Verified that there are more than 1 \"Stories by topic\" categories") } fun verifyStoriesByTopicItemState(composeTestRule: ComposeTestRule, isSelected: Boolean, position: Int) { + Log.i(TAG, "verifyStoriesByTopicItemState: Trying to scroll into view \"Powered By Pocket\" home screen section") homeScreenList().scrollIntoView(mDevice.findObject(UiSelector().resourceId("pocket.header"))) + Log.i(TAG, "verifyStoriesByTopicItemState: Scrolled into view \"Powered By Pocket\" home screen section") if (isSelected) { + Log.i(TAG, "verifyStoriesByTopicItemState: Trying verify that the stories by topic home screen section is displayed") composeTestRule.onNodeWithTag("pocket.categories").assertIsDisplayed() + Log.i(TAG, "verifyStoriesByTopicItemState: Verified that the stories by topic home screen section is displayed") + Log.i(TAG, "verifyStoriesByTopicItemState: Trying verify that the stories by topic item at position: $position is selected") storyByTopicItem(composeTestRule, position).assertIsSelected() + Log.i(TAG, "verifyStoriesByTopicItemState: Verified that the stories by topic item at position: $position is selected") } else { + Log.i(TAG, "verifyStoriesByTopicItemState: Trying verify that the stories by topic home screen section is displayed") composeTestRule.onNodeWithTag("pocket.categories").assertIsDisplayed() + Log.i(TAG, "verifyStoriesByTopicItemState: Verified that the stories by topic home screen section is displayed") + Log.i(TAG, "verifyStoriesByTopicItemState: Trying to verify that the stories by topic item at position: $position is not selected") storyByTopicItem(composeTestRule, position).assertIsNotSelected() + Log.i(TAG, "verifyStoriesByTopicItemState: Verified that the stories by topic item at position: $position is not selected") } } - fun clickStoriesByTopicItem(composeTestRule: ComposeTestRule, position: Int) = + fun clickStoriesByTopicItem(composeTestRule: ComposeTestRule, position: Int) { + Log.i(TAG, "clickStoriesByTopicItem: Trying to click stories by topic item from position: $position") storyByTopicItem(composeTestRule, position).performClick() + Log.i(TAG, "clickStoriesByTopicItem: Clicked stories by topic item from position: $position") + } fun verifyPoweredByPocket() { + Log.i(TAG, "verifyPoweredByPocket: Trying to scroll into view \"Powered By Pocket\" home screen section") homeScreenList().scrollIntoView(mDevice.findObject(UiSelector().resourceId("pocket.header"))) + Log.i(TAG, "verifyPoweredByPocket: Scrolled into view \"Powered By Pocket\" home screen section") assertUIObjectExists(itemWithResId("pocket.header.title")) } @@ -379,16 +536,21 @@ class HomeScreenRobot { scrollToElementByText(getStringResource(R.string.browser_menu_customize_home_1)) assertUIObjectExists(itemContainingText("Customize homepage")) } else { + Log.i(TAG, "verifyCustomizeHomepageButton: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") homeScreenList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "verifyCustomizeHomepageButton: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") assertUIObjectExists(itemContainingText("Customize homepage"), exists = false) } } - fun verifyJumpBackInMessage(composeTestRule: ComposeTestRule) = + fun verifyJumpBackInMessage(composeTestRule: ComposeTestRule) { + Log.i(TAG, "verifyJumpBackInMessage: Trying to verify jump back in contextual message") composeTestRule .onNodeWithText( getStringResource(R.string.onboarding_home_screen_jump_back_contextual_hint_2), ).assertExists() + Log.i(TAG, "verifyJumpBackInMessage: Verified jump back in contextual message") + } fun getProvokingStoryPublisher(position: Int): String { val publisher = mDevice.findObject( @@ -405,6 +567,7 @@ class HomeScreenRobot { } fun verifyToolbarPosition(defaultPosition: Boolean) { + Log.i(TAG, "verifyToolbarPosition: Trying to verify toolbar is set to top: $defaultPosition") onView(withId(R.id.toolbarLayout)) .check( if (defaultPosition) { @@ -413,6 +576,7 @@ class HomeScreenRobot { isCompletelyAbove(withId(R.id.homeAppBar)) }, ) + Log.i(TAG, "verifyToolbarPosition: Verified toolbar position is set to top: $defaultPosition") } fun verifyNimbusMessageCard(title: String, text: String, action: String) { val textView = UiSelector() @@ -431,17 +595,22 @@ class HomeScreenRobot { } fun verifyIfInPrivateOrNormalMode(privateBrowsingEnabled: Boolean) { + Log.i(TAG, "verifyIfInPrivateOrNormalMode: Trying to verify private browsing mode is enabled") assert(isPrivateModeEnabled() == privateBrowsingEnabled) + Log.i(TAG, "verifyIfInPrivateOrNormalMode: Verified private browsing mode is enabled: $privateBrowsingEnabled") } class Transition { fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + Log.i(TAG, "openTabDrawer: Waiting for $waitingTime ms for tab counter button to exist") mDevice.findObject( UiSelector().descriptionContains("open tab. Tap to switch tabs."), ).waitForExists(waitingTime) - + Log.i(TAG, "openTabDrawer: Waited for $waitingTime ms for tab counter button to exist") + Log.i(TAG, "openTabDrawer: Trying to click tab counter button") tabsCounter().click() + Log.i(TAG, "openTabDrawer: Clicked tab counter button") mDevice.waitNotNull(Until.findObject(By.res("$packageName:id/tab_layout"))) TabDrawerRobot().interact() @@ -449,9 +618,15 @@ class HomeScreenRobot { } fun openComposeTabDrawer(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { + Log.i(TAG, "openComposeTabDrawer: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "openComposeTabDrawer: Device was idle for $waitingTime ms") + Log.i(TAG, "openComposeTabDrawer: Trying to click tab counter button") onView(withId(R.id.tab_button)).click() + Log.i(TAG, "openComposeTabDrawer: Clicked tab counter button") + Log.i(TAG, "openComposeTabDrawer: Trying to verify the tabs tray exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.tabsTray).assertExists() + Log.i(TAG, "openComposeTabDrawer: Verified the tabs tray exists") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) @@ -461,17 +636,18 @@ class HomeScreenRobot { // Issue: https://github.com/mozilla-mobile/fenix/issues/21578 try { Log.i(TAG, "openThreeDotMenu: Try block") - Log.i(TAG, "openThreeDotMenu: Looking for main menu button") mDevice.waitNotNull( Until.findObject(By.res("$packageName:id/menuButton")), waitingTime, ) } catch (e: AssertionError) { Log.i(TAG, "openThreeDotMenu: Catch block") + Log.i(TAG, "openThreeDotMenu: Trying to click device back button") mDevice.pressBack() - Log.i(TAG, "openThreeDotMenu: Pressed device back button") + Log.i(TAG, "openThreeDotMenu: Clicked device back button") } finally { Log.i(TAG, "openThreeDotMenu: Finally block") + Log.i(TAG, "openThreeDotMenu: Trying to click main menu button") threeDotButton().perform(click()) Log.i(TAG, "openThreeDotMenu: Clicked main menu button") } @@ -481,9 +657,15 @@ class HomeScreenRobot { } fun openSearch(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "openSearch: Waiting for $waitingTime ms for the navigation toolbar to exist") navigationToolbar().waitForExists(waitingTime) + Log.i(TAG, "openSearch: Waited for $waitingTime ms for the navigation toolbar to exist") + Log.i(TAG, "openSearch: Trying to click navigation toolbar") navigationToolbar().click() + Log.i(TAG, "openSearch: Clicked navigation toolbar") + Log.i(TAG, "openSearch: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "openSearch: Device was idle") SearchRobot().interact() return SearchRobot.Transition() @@ -493,7 +675,9 @@ class HomeScreenRobot { testRule: ComposeTestRule, interact: SyncSignInRobot.() -> Unit, ): SyncSignInRobot.Transition { + Log.i(TAG, "clickUpgradingUserOnboardingSignInButton: Trying to click the upgrading user onboarding \"Sign in\" button") testRule.onNodeWithText("Sign in").performClick() + Log.i(TAG, "clickUpgradingUserOnboardingSignInButton: Clicked the upgrading user onboarding \"Sign in\" button") SyncSignInRobot().interact() return SyncSignInRobot.Transition() @@ -502,26 +686,38 @@ class HomeScreenRobot { fun togglePrivateBrowsingMode(switchPBModeOn: Boolean = true) { // Switch to private browsing homescreen if (switchPBModeOn && !isPrivateModeEnabled()) { + Log.i(TAG, "togglePrivateBrowsingMode: Waiting for $waitingTime ms for private browsing button to exist") privateBrowsingButton().waitForExists(waitingTime) + Log.i(TAG, "togglePrivateBrowsingMode: Waited for $waitingTime ms for private browsing button to exist") + Log.i(TAG, "togglePrivateBrowsingMode: Trying to click private browsing button") privateBrowsingButton().click() + Log.i(TAG, "togglePrivateBrowsingMode: Clicked private browsing button") } // Switch to normal browsing homescreen if (!switchPBModeOn && isPrivateModeEnabled()) { + Log.i(TAG, "togglePrivateBrowsingMode: Waiting for $waitingTime ms for private browsing button to exist") privateBrowsingButton().waitForExists(waitingTime) + Log.i(TAG, "togglePrivateBrowsingMode: Waited for $waitingTime ms for private browsing button to exist") + Log.i(TAG, "togglePrivateBrowsingMode: Trying to click private browsing button") privateBrowsingButton().click() + privateBrowsingButton().click() + Log.i(TAG, "togglePrivateBrowsingMode: Clicked private browsing button") } } fun triggerPrivateBrowsingShortcutPrompt(interact: AddToHomeScreenRobot.() -> Unit): AddToHomeScreenRobot.Transition { // Loop to press the PB icon for 5 times to display the Add the Private Browsing Shortcut CFR for (i in 1..5) { + Log.i(TAG, "triggerPrivateBrowsingShortcutPrompt: Waiting for $waitingTime ms for private browsing button to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/privateBrowsingButton")) .waitForExists( waitingTime, ) - + Log.i(TAG, "triggerPrivateBrowsingShortcutPrompt: Waited for $waitingTime ms for private browsing button to exist") + Log.i(TAG, "triggerPrivateBrowsingShortcutPrompt: Trying to click private browsing button") privateBrowsingButton().click() + Log.i(TAG, "triggerPrivateBrowsingShortcutPrompt: Clicked private browsing button") } AddToHomeScreenRobot().interact() @@ -529,13 +725,19 @@ class HomeScreenRobot { } fun pressBack() { + Log.i(TAG, "pressBack: Trying to click device back button") onView(ViewMatchers.isRoot()).perform(ViewActions.pressBack()) + Log.i(TAG, "pressBack: Clicked device back button") } fun openNavigationToolbar(interact: NavigationToolbarRobot.() -> Unit): NavigationToolbarRobot.Transition { + Log.i(TAG, "openNavigationToolbar: Waiting for $waitingTime ms for navigation the toolbar to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/toolbar")) .waitForExists(waitingTime) + Log.i(TAG, "openNavigationToolbar: Waited for $waitingTime ms for the navigation toolbar to exist") + Log.i(TAG, "openNavigationToolbar: Trying to click the navigation toolbar") navigationToolbar().click() + Log.i(TAG, "openNavigationToolbar: Clicked the navigation toolbar") NavigationToolbarRobot().interact() return NavigationToolbarRobot.Transition() @@ -545,20 +747,23 @@ class HomeScreenRobot { title: String, interact: HomeScreenRobot.() -> Unit, ): Transition { + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Trying to long click top site with title: $title") onView(withId(R.id.top_sites_list)).perform( actionOnItem( hasDescendant(withText(title)), ViewActions.longClick(), ), ) + Log.i(TAG, "openContextMenuOnTopSitesWithTitle: Long clicked top site with title: $title") HomeScreenRobot().interact() return Transition() } fun openContextMenuOnSponsoredShortcut(sponsoredShortcutTitle: String, interact: HomeScreenRobot.() -> Unit): Transition { + Log.i(TAG, "openContextMenuOnSponsoredShortcut: Trying to long click: $sponsoredShortcutTitle sponsored shortcut") sponsoredShortcut(sponsoredShortcutTitle).perform(longClick()) - Log.i(TAG, "openContextMenuOnSponsoredShortcut: Long clicked to open context menu for $sponsoredShortcutTitle sponsored shortcut") + Log.i(TAG, "openContextMenuOnSponsoredShortcut: Long clicked: $sponsoredShortcutTitle sponsored shortcut") HomeScreenRobot().interact() return Transition() @@ -568,86 +773,112 @@ class HomeScreenRobot { title: String, interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { + Log.i(TAG, "openTopSiteTabWithTitle: Trying to click top site with title $title") onView(withId(R.id.top_sites_list)).perform( actionOnItem(hasDescendant(withText(title)), click()), ) + Log.i(TAG, "openTopSiteTabWithTitle:Clicked top site with title $title") BrowserRobot().interact() return BrowserRobot.Transition() } fun openSponsoredShortcut(sponsoredShortcutTitle: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openSponsoredShortcut: Trying to click sponsored top site with title: $sponsoredShortcutTitle") sponsoredShortcut(sponsoredShortcutTitle).click() + Log.i(TAG, "openSponsoredShortcut: Clicked sponsored top site with title: $sponsoredShortcutTitle") BrowserRobot().interact() return BrowserRobot.Transition() } fun renameTopSite(title: String, interact: HomeScreenRobot.() -> Unit): Transition { + Log.i(TAG, "renameTopSite: Trying to click context menu \"Rename\" button") onView(withText("Rename")) .check((matches(withEffectiveVisibility(Visibility.VISIBLE)))) .perform(click()) + Log.i(TAG, "renameTopSite: Clicked context menu \"Rename\" button") + Log.i(TAG, "renameTopSite: Trying to set top site title to: $title") onView(Matchers.allOf(withId(R.id.top_site_title), instanceOf(EditText::class.java))) .perform(ViewActions.replaceText(title)) + Log.i(TAG, "renameTopSite: Set top site title to: $title") + Log.i(TAG, "renameTopSite: Trying to click \"Ok\" rename top site dialog button") onView(withId(android.R.id.button1)).perform((click())) + Log.i(TAG, "renameTopSite: Clicked \"Ok\" rename top site dialog button") HomeScreenRobot().interact() return Transition() } fun removeTopSite(interact: HomeScreenRobot.() -> Unit): Transition { + Log.i(TAG, "removeTopSite: Trying to click context menu \"Remove\" button") onView(withText("Remove")) .check((matches(withEffectiveVisibility(Visibility.VISIBLE)))) .perform(click()) + Log.i(TAG, "removeTopSite: Clicked context menu \"Remove\" button") HomeScreenRobot().interact() return Transition() } fun deleteTopSiteFromHistory(interact: HomeScreenRobot.() -> Unit): Transition { + Log.i(TAG, "deleteTopSiteFromHistory: Waiting for $waitingTime ms for context menu \"Remove from history\" button to exist") mDevice.findObject( UiSelector().resourceId("$packageName:id/simple_text"), ).waitForExists(waitingTime) - deleteFromHistory.click() + Log.i(TAG, "deleteTopSiteFromHistory: Waited for $waitingTime ms for context menu \"Remove from history\" button to exist") + Log.i(TAG, "deleteTopSiteFromHistory: Trying to click context menu \"Remove from history\" button") + deleteFromHistory().click() + Log.i(TAG, "deleteTopSiteFromHistory: Clicked context menu \"Remove from history\" button") HomeScreenRobot().interact() return Transition() } fun openTopSiteInPrivateTab(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openTopSiteInPrivateTab: Trying to click context menu \"Open in private tab\" button") onView(withText("Open in private tab")) .check((matches(withEffectiveVisibility(Visibility.VISIBLE)))) .perform(click()) + Log.i(TAG, "openTopSiteInPrivateTab: Clicked context menu \"Open in private tab\" button") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickSponsorsAndPrivacyButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - sponsorsAndPrivacyButton.waitForExists(waitingTime) - sponsorsAndPrivacyButton.clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickSponsorsAndPrivacyButton: Waiting for $waitingTime ms for context menu \"Our sponsors & your privacy\" button to exist") + sponsorsAndPrivacyButton().waitForExists(waitingTime) + Log.i(TAG, "clickSponsorsAndPrivacyButton: Waited for $waitingTime ms for context menu \"Our sponsors & your privacy\" button to exist") + Log.i(TAG, "clickSponsorsAndPrivacyButton: Trying to click \"Our sponsors & your privacy\" context menu button and wait for $waitingTime ms for a new window") + sponsorsAndPrivacyButton().clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickSponsorsAndPrivacyButton: Clicked \"Our sponsors & your privacy\" context menu button and waited for $waitingTime ms for a new window") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickSponsoredShortcutsSettingsButton(interact: SettingsSubMenuHomepageRobot.() -> Unit): SettingsSubMenuHomepageRobot.Transition { - Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Looking for: ${sponsoredShortcutsSettingsButton.selector}") - sponsoredShortcutsSettingsButton.waitForExists(waitingTime) - sponsoredShortcutsSettingsButton.clickAndWaitForNewWindow(waitingTime) - Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Clicked ${sponsoredShortcutsSettingsButton.selector} and waiting for $waitingTime for a new window") + Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Waiting for $waitingTime ms for context menu \"Settings\" button to exist") + sponsoredShortcutsSettingsButton().waitForExists(waitingTime) + Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Waited for $waitingTime ms for context menu \"Settings\" button to exist") + Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Trying to click \"Settings\" context menu button and wait for $waitingTime for a new window") + sponsoredShortcutsSettingsButton().clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickSponsoredShortcutsSettingsButton: Clicked \"Settings\" context menu button and waited for $waitingTime for a new window") SettingsSubMenuHomepageRobot().interact() return SettingsSubMenuHomepageRobot.Transition() } fun openCommonMythsLink(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "openCommonMythsLink: Trying to click private browsing home screen common myths link") mDevice.findObject( UiSelector() .textContains( getStringResource(R.string.private_browsing_common_myths), ), ).also { it.click() } + Log.i(TAG, "openCommonMythsLink: Clicked private browsing home screen common myths link") BrowserRobot().interact() return BrowserRobot.Transition() @@ -655,7 +886,9 @@ class HomeScreenRobot { fun clickSaveTabsToCollectionButton(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { scrollToElementByText(getStringResource(R.string.no_collections_description2)) + Log.i(TAG, "clickSaveTabsToCollectionButton: Trying to click save tabs to collection button") saveTabsToCollectionButton().click() + Log.i(TAG, "clickSaveTabsToCollectionButton: Clicked save tabs to collection button") TabDrawerRobot().interact() return TabDrawerRobot.Transition() @@ -663,15 +896,18 @@ class HomeScreenRobot { fun clickSaveTabsToCollectionButton(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { scrollToElementByText(getStringResource(R.string.no_collections_description2)) + Log.i(TAG, "clickSaveTabsToCollectionButton: Trying to click save tabs to collection button") saveTabsToCollectionButton().click() - + Log.i(TAG, "clickSaveTabsToCollectionButton: Clicked save tabs to collection button") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) } fun expandCollection(title: String, interact: CollectionRobot.() -> Unit): CollectionRobot.Transition { assertUIObjectExists(itemContainingText(title)) + Log.i(TAG, "expandCollection: Trying to click collection with title: $title and wait for $waitingTimeShort ms for a new window") itemContainingText(title).clickAndWaitForNewWindow(waitingTimeShort) + Log.i(TAG, "expandCollection: Clicked collection with title: $title and waited for $waitingTimeShort ms for a new window") assertUIObjectExists(itemWithDescription(getStringResource(R.string.remove_tab_from_collection))) CollectionRobot().interact() @@ -681,61 +917,62 @@ class HomeScreenRobot { fun openRecentlyVisitedSearchGroupHistoryList(title: String, interact: HistoryRobot.() -> Unit): HistoryRobot.Transition { scrollToElementByText("Recently visited") val searchGroup = mDevice.findObject(UiSelector().text(title)) + Log.i(TAG, "openRecentlyVisitedSearchGroupHistoryList: Waiting for $waitingTimeShort ms for recently visited search group with title: $title to exist") searchGroup.waitForExists(waitingTimeShort) + Log.i(TAG, "openRecentlyVisitedSearchGroupHistoryList: Waited for $waitingTimeShort ms for recently visited search group with title: $title to exist") + Log.i(TAG, "openRecentlyVisitedSearchGroupHistoryList: Trying to click recently visited search group with title: $title") searchGroup.click() + Log.i(TAG, "openRecentlyVisitedSearchGroupHistoryList: Clicked recently visited search group with title: $title") HistoryRobot().interact() return HistoryRobot.Transition() } fun openCustomizeHomepage(interact: SettingsSubMenuHomepageRobot.() -> Unit): SettingsSubMenuHomepageRobot.Transition { + Log.i(TAG, "openCustomizeHomepage: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") homeScreenList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "openCustomizeHomepage: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the home screen") + Log.i(TAG, "openCustomizeHomepage: Trying to click \"Customize homepage\" button and wait for $waitingTime ms for a new window") mDevice.findObject( UiSelector() .textContains( "Customize homepage", ), ).clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "openCustomizeHomepage: Clicked \"Customize homepage\" button and wait for $waitingTime ms for a new window") SettingsSubMenuHomepageRobot().interact() return SettingsSubMenuHomepageRobot.Transition() } fun clickJumpBackInShowAllButton(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + Log.i(TAG, "clickJumpBackInShowAllButton: Trying to click \"Show all\" button and wait for $waitingTime ms for a new window") mDevice .findObject( UiSelector() .textContains(getStringResource(R.string.recent_tabs_show_all)), ).clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickJumpBackInShowAllButton: Clicked \"Show all\" button and wait for $waitingTime ms for a new window") TabDrawerRobot().interact() return TabDrawerRobot.Transition() } fun clickJumpBackInShowAllButton(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { + Log.i(TAG, "clickJumpBackInShowAllButton: Trying to click \"Show all\" button and wait for $waitingTime ms for a new window") mDevice .findObject( UiSelector() .textContains(getStringResource(R.string.recent_tabs_show_all)), ).clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickJumpBackInShowAllButton: Clicked \"Show all\" button and wait for $waitingTime ms for a new window") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) } - fun clickJumpBackInItemWithTitle(itemTitle: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - mDevice - .findObject( - UiSelector() - .resourceId("recent.tab.title") - .textContains(itemTitle), - ).clickAndWaitForNewWindow(waitingTime) - - BrowserRobot().interact() - return BrowserRobot.Transition() - } - fun clickPocketStoryItem(publisher: String, position: Int, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "clickPocketStoryItem: Trying to click pocket story item published by: $publisher at position: $position and wait for $waitingTime ms for a new window") mDevice.findObject( UiSelector() .className("android.view.View") @@ -746,18 +983,25 @@ class HomeScreenRobot { .index(1) .textContains(publisher), ).clickAndWaitForNewWindow(waitingTime) + Log.i(TAG, "clickPocketStoryItem: Clicked pocket story item published by: $publisher at position: $position and wait for $waitingTime ms for a new window") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickPocketDiscoverMoreButton(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - pocketStoriesList + Log.i(TAG, "clickPocketDiscoverMoreButton: Trying to scroll into view the \"Discover more\" button") + pocketStoriesList() .scrollIntoView(UiSelector().text("Discover more")) + Log.i(TAG, "clickPocketDiscoverMoreButton: Scrolled into view the \"Discover more\" button") mDevice.findObject(UiSelector().text("Discover more")).also { + Log.i(TAG, "clickPocketDiscoverMoreButton: Waiting for $waitingTime ms for \"Discover more\" button to exist") it.waitForExists(waitingTimeShort) + Log.i(TAG, "clickPocketDiscoverMoreButton: Waited for $waitingTime ms for \"Discover more\" button to exist") + Log.i(TAG, "clickPocketDiscoverMoreButton: Trying to click \"Discover more\" button") it.click() + Log.i(TAG, "clickPocketDiscoverMoreButton: Clicked \"Discover more\" button") } BrowserRobot().interact() @@ -765,7 +1009,9 @@ class HomeScreenRobot { } fun clickPocketLearnMoreLink(composeTestRule: ComposeTestRule, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "clickPocketLearnMoreLink: Trying to click pocket \"Learn more\" link") composeTestRule.onNodeWithTag("pocket.header.subtitle", true).performClick() + Log.i(TAG, "clickPocketLearnMoreLink: Clicked pocket \"Learn more\" link") BrowserRobot().interact() return BrowserRobot.Transition() @@ -775,9 +1021,11 @@ class HomeScreenRobot { composeTestRule: ComposeTestRule, interact: SettingsRobot.() -> Unit, ): SettingsRobot.Transition { + Log.i(TAG, "clickSetAsDefaultBrowserOnboardingButton: Trying to click \"Set as default browser\" onboarding button") composeTestRule.onNodeWithText( getStringResource(R.string.juno_onboarding_default_browser_positive_button), ).performClick() + Log.i(TAG, "clickSetAsDefaultBrowserOnboardingButton: Clicked \"Set as default browser\" onboarding button") SettingsRobot().interact() return SettingsRobot.Transition() @@ -787,9 +1035,11 @@ class HomeScreenRobot { composeTestRule: ComposeTestRule, interact: SyncSignInRobot.() -> Unit, ): SyncSignInRobot.Transition { + Log.i(TAG, "clickSignInOnboardingButton: Trying to click \"Sign in\" onboarding button") composeTestRule.onNodeWithText( getStringResource(R.string.juno_onboarding_sign_in_positive_button), ).performClick() + Log.i(TAG, "clickSignInOnboardingButton: Clicked \"Sign in\" onboarding button") SyncSignInRobot().interact() return SyncSignInRobot.Transition() @@ -814,129 +1064,8 @@ private fun homeScreenList() = .scrollable(true), ).setAsVerticalList() -private fun assertKeyboardVisibility(isExpectedToBeVisible: Boolean) = - Assert.assertEquals( - isExpectedToBeVisible, - mDevice - .executeShellCommand("dumpsys input_method | grep mInputShown") - .contains("mInputShown=true"), - ) - -private fun assertTabButton() = - onView(allOf(withId(R.id.tab_button), isDisplayed())) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertCollectionsHeader() = - onView(allOf(withText("Collections"))) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertNoCollectionsText() = - onView( - withText( - containsString( - "Collect the things that matter to you.\n" + - "Group together similar searches, sites, and tabs for quick access later.", - ), - ), - ).check(matches(isDisplayed())) - -private fun assertHomeComponent() = - onView(ViewMatchers.withResourceName("sessionControlRecyclerView")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - private fun threeDotButton() = onView(allOf(withId(R.id.menuButton))) -private fun assertExistingTopSitesList() = - assertUIObjectExists(itemWithResId("$packageName:id/top_sites_list")) - -private fun assertExistingTopSitesTabs(title: String) { - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/top_site_title") - .textContains(title), - ).waitForExists(waitingTime) - - onView(allOf(withId(R.id.top_sites_list))) - .check(matches(hasDescendant(withText(title)))) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertSponsoredShortcutLogoIsDisplayed(position: Int) = - assertUIObjectExists( - itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) - .getChild( - UiSelector() - .resourceId("$packageName:id/favicon_card"), - ), - ) - -private fun assertSponsoredSubtitleIsDisplayed(position: Int) = - assertUIObjectExists( - itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) - .getChild( - UiSelector() - .resourceId("$packageName:id/top_site_subtitle"), - ), - ) - -private fun assertSponsoredShortcutTitle(sponsoredShortcutTitle: String, position: Int) = - assertUIObjectExists( - itemWithResIdAndIndex(resourceId = "$packageName:id/top_site_item", index = position - 1) - .getChild( - UiSelector() - .textContains(sponsoredShortcutTitle), - ), - ) - -private fun assertNotExistingTopSitesList(title: String) { - mDevice.findObject(UiSelector().text(title)).waitUntilGone(waitingTime) - assertUIObjectExists( - itemWithResIdContainingText( - "$packageName:id/top_site_title", - title, - ), - exists = false, - ) -} - -private fun assertSponsoredTopSitesNotDisplayed() = - assertUIObjectExists( - itemWithResIdContainingText( - "$packageName:id/top_site_subtitle", - getStringResource(R.string.top_sites_sponsored_label), - ), - exists = false, - ) - -private fun assertTopSiteContextMenuItems() { - mDevice.waitNotNull( - findObject(By.text("Open in private tab")), - waitingTime, - ) - mDevice.waitNotNull( - findObject(By.text("Remove")), - waitingTime, - ) -} - -private fun assertJumpBackInItemTitle(testRule: ComposeTestRule, itemTitle: String) = - testRule.onNodeWithTag("recent.tab.title", useUnmergedTree = true).assert(hasText(itemTitle)) - -private fun assertJumpBackInItemWithUrl(testRule: ComposeTestRule, itemUrl: String) = - testRule.onNodeWithTag("recent.tab.url", useUnmergedTree = true).assert(hasText(itemUrl)) - -private fun assertJumpBackInShowAllButton() = - assertUIObjectExists(itemContainingText(getStringResource(R.string.recent_tabs_show_all))) - -private fun assertRecentlyVisitedSectionIsDisplayed(exists: Boolean) = - assertUIObjectExists(itemContainingText(getStringResource(R.string.history_metadata_header_2)), exists = exists) - -private fun assertRecentBookmarksSectionIsDisplayed(exists: Boolean) = - assertUIObjectExists(itemContainingText(getStringResource(R.string.recently_saved_title)), exists = exists) - -private fun assertPocketSectionIsDisplayed(exists: Boolean) = - assertUIObjectExists(itemContainingText(getStringResource(R.string.pocket_stories_header_1)), exists = exists) - private fun saveTabsToCollectionButton() = onView(withId(R.id.add_tabs_to_collections_button)) private fun tabsCounter() = onView(withId(R.id.tab_button)) @@ -968,12 +1097,12 @@ private fun homepageWordmark() = private fun navigationToolbar() = itemWithResId("$packageName:id/toolbar") -private val menuButton = +private fun menuButton() = itemWithResId("$packageName:id/menuButton") private fun tabCounter(numberOfOpenTabs: String) = itemWithResIdAndText("$packageName:id/counter_text", numberOfOpenTabs) -val deleteFromHistory = +fun deleteFromHistory() = onView( allOf( withId(R.id.simple_text), @@ -981,13 +1110,7 @@ val deleteFromHistory = ), ).inRoot(RootMatchers.isPlatformPopup()) -private val recentlyVisitedList = - UiScrollable( - UiSelector() - .className("android.widget.HorizontalScrollView"), - ).setAsHorizontalList() - -private val sponsoredShortcutsSettingsButton = +private fun sponsoredShortcutsSettingsButton() = mDevice .findObject( UiSelector() @@ -995,7 +1118,7 @@ private val sponsoredShortcutsSettingsButton = .resourceId("$packageName:id/simple_text"), ) -private val sponsorsAndPrivacyButton = +private fun sponsorsAndPrivacyButton() = mDevice .findObject( UiSelector() @@ -1003,5 +1126,5 @@ private val sponsorsAndPrivacyButton = .resourceId("$packageName:id/simple_text"), ) -private val pocketStoriesList = +private fun pocketStoriesList() = UiScrollable(UiSelector().resourceId("pocket.stories")).setAsHorizontalList() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt index a86f8802..b3b3d395 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt @@ -5,7 +5,7 @@ package org.mozilla.fenix.ui.robots import android.net.Uri -import android.widget.TextView +import android.util.Log import androidx.compose.ui.test.onNodeWithTag import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches @@ -16,12 +16,12 @@ import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withParent import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.uiautomator.By -import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import org.hamcrest.Matchers.allOf import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.HomeActivityComposeTestRule -import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.packageName @@ -34,30 +34,90 @@ import org.mozilla.fenix.tabstray.TabsTrayTestTag */ class LibrarySubMenusMultipleSelectionToolbarRobot { - fun verifyMultiSelectionCheckmark() = assertMultiSelectionCheckmark() + fun verifyMultiSelectionCheckmark() { + Log.i(TAG, "verifyMultiSelectionCheckmark: Trying to verify that the multi-selection checkmark is displayed") + onView(withId(R.id.checkmark)).check(matches(isDisplayed())) + Log.i(TAG, "verifyMultiSelectionCheckmark: Verified that the multi-selection checkmark is displayed") + } - fun verifyMultiSelectionCheckmark(url: Uri) = assertMultiSelectionCheckmark(url) + fun verifyMultiSelectionCheckmark(url: Uri) { + Log.i(TAG, "verifyMultiSelectionCheckmark: Trying to verify that the multi-selection checkmark for item with url: $url is displayed") + onView( + allOf( + withId(R.id.checkmark), + withParent( + withParent( + withChild( + allOf( + withId(R.id.url), + withText(url.toString()), + ), + ), + ), + ), - fun verifyMultiSelectionCounter() = assertMultiSelectionCounter() + // This is used as part of the `multiSelectionToolbarItemsTest` test. Somehow, in the view hierarchy, + // the match above is finding two checkmark views - one visible, one hidden, which is throwing off + // the matcher. This 'isDisplayed' check is a hacky workaround for this, we're explicitly ignoring + // the hidden one. Why are there two to begin with, though? + isDisplayed(), + ), + ).check(matches(isDisplayed())) + Log.i(Constants.TAG, "verifyMultiSelectionCheckmark: Verified that the multi-selection checkmark for item with url: $url is displayed") + } - fun verifyShareHistoryButton() = assertShareHistoryButton() + fun verifyMultiSelectionCounter() { + Log.i(TAG, "verifyMultiSelectionCounter: Trying to verify that the multi-selection toolbar containing: \"1 selected\" is displayed") + onView(withText("1 selected")).check(matches(isDisplayed())) + Log.i(TAG, "verifyMultiSelectionCounter: Verified that the multi-selection toolbar containing: \"1 selected\" is displayed") + } - fun verifyShareBookmarksButton() = assertShareBookmarksButton() + fun verifyShareHistoryButton() { + Log.i(TAG, "verifyShareHistoryButton: Trying to verify that the multi-selection share history button is displayed") + shareHistoryButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyShareHistoryButton: Verified that the multi-selection share history button is displayed") + } - fun verifyShareOverlay() = assertShareOverlay() + fun verifyShareBookmarksButton() { + Log.i(TAG, "verifyShareBookmarksButton: Trying to verify that the multi-selection share bookmarks button is displayed") + shareBookmarksButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyShareBookmarksButton: Verified that the multi-selection share bookmarks button is displayed") + } - fun verifyShareAppsLayout() = assertShareAppsLayout() + fun verifyShareOverlay() { + Log.i(TAG, "verifyShareOverlay: Trying to verify that the share overlay is displayed") + onView(withId(R.id.shareWrapper)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareOverlay: Verified that the share overlay is displayed") + } - fun verifyShareTabFavicon() = assertShareTabFavicon() + fun verifyShareTabFavicon() { + Log.i(TAG, "verifyShareTabFavicon: Trying to verify that the shared tab favicon is displayed") + onView(withId(R.id.share_tab_favicon)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareTabFavicon: Verified that the shared tab favicon is displayed") + } - fun verifyShareTabTitle() = assertShareTabTitle() + fun verifyShareTabTitle() { + Log.i(TAG, "verifyShareTabTitle: Trying to verify that the shared tab title is displayed") + onView(withId(R.id.share_tab_title)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareTabTitle: Verified that the shared tab title is displayed") + } - fun verifyShareTabUrl() = assertShareTabUrl() + fun verifyShareTabUrl() { + Log.i(TAG, "verifyShareTabUrl: Trying to verify that the shared tab url is displayed") + onView(withId(R.id.share_tab_url)).check(matches(isDisplayed())) + Log.i(TAG, "verifyShareTabUrl: Verified that the shared tab url is displayed") + } - fun verifyCloseToolbarButton() = assertCloseToolbarButton() + fun verifyCloseToolbarButton() { + Log.i(TAG, "verifyCloseToolbarButton: Trying to verify that the navigate up toolbar button is displayed") + closeToolbarButton().check(matches(isDisplayed())) + Log.i(TAG, "verifyCloseToolbarButton: Verified that the navigate up toolbar button is displayed") + } fun clickShareHistoryButton() { + Log.i(TAG, "clickShareHistoryButton: Trying to click the multi-selection share history button") shareHistoryButton().click() + Log.i(TAG, "clickShareHistoryButton: Clicked the multi-selection share history button") mDevice.waitNotNull( Until.findObject( @@ -68,7 +128,9 @@ class LibrarySubMenusMultipleSelectionToolbarRobot { } fun clickShareBookmarksButton() { + Log.i(TAG, "clickShareBookmarksButton: Trying to click the multi-selection share bookmarks button") shareBookmarksButton().click() + Log.i(TAG, "clickShareBookmarksButton: Clicked the multi-selection share bookmarks button") mDevice.waitNotNull( Until.findObject( @@ -79,31 +141,35 @@ class LibrarySubMenusMultipleSelectionToolbarRobot { } fun clickMultiSelectionDelete() { + Log.i(TAG, "clickMultiSelectionDelete: Trying to click the multi-selection delete button") deleteButton().click() + Log.i(TAG, "clickMultiSelectionDelete: Clicked the multi-selection delete button") } class Transition { - fun closeShareDialogReturnToPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { - BrowserRobot().interact() - return BrowserRobot.Transition() - } - fun closeToolbarReturnToHistory(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition { + Log.i(TAG, "closeToolbarReturnToHistory: Trying to click the navigate up toolbar button") closeToolbarButton().click() + Log.i(TAG, "closeToolbarReturnToHistory: Clicked the navigate up toolbar button") HistoryRobot().interact() return HistoryRobot.Transition() } fun closeToolbarReturnToBookmarks(interact: BookmarksRobot.() -> Unit): BookmarksRobot.Transition { + Log.i(TAG, "closeToolbarReturnToBookmarks: Trying to click the navigate up toolbar button") closeToolbarButton().click() + Log.i(TAG, "closeToolbarReturnToBookmarks: Clicked the navigate up toolbar button") BookmarksRobot().interact() return BookmarksRobot.Transition() } fun clickOpenNewTab(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + Log.i(TAG, "clickOpenNewTab: Trying to click the multi-select \"Open in a new tab\" context menu button") openInNewTabButton().click() + Log.i(TAG, "clickOpenNewTab: Clicked the multi-select \"Open in a new tab\" context menu button") + mDevice.waitNotNull( Until.findObject(By.res("$packageName:id/tab_layout")), waitingTime, @@ -114,15 +180,21 @@ class LibrarySubMenusMultipleSelectionToolbarRobot { } fun clickOpenNewTab(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { + Log.i(TAG, "clickOpenNewTab: Trying to click the multi-select \"Open in a new tab\" context menu button") openInNewTabButton().click() + Log.i(TAG, "clickOpenNewTab: Clicked the multi-select \"Open in a new tab\" context menu button") + Log.i(TAG, "clickOpenNewTab: Trying to verify that the tabs tray exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.tabsTray).assertExists() + Log.i(TAG, "clickOpenNewTab: Verified that the tabs tray exists") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) } fun clickOpenPrivateTab(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + Log.i(TAG, "clickOpenPrivateTab: Trying to click the multi-select \"Open in a private tab\" context menu button") openInPrivateTabButton().click() + Log.i(TAG, "clickOpenPrivateTab: Clicked the multi-select \"Open in a private tab\" context menu button") mDevice.waitNotNull( Until.findObject(By.res("$packageName:id/tab_layout")), waitingTime, @@ -133,7 +205,9 @@ class LibrarySubMenusMultipleSelectionToolbarRobot { } fun clickOpenPrivateTab(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { + Log.i(TAG, "clickOpenPrivateTab: Trying to click the multi-select \"Open in a private tab\" context menu button") openInPrivateTabButton().click() + Log.i(TAG, "clickOpenPrivateTab: Clicked the multi-select \"Open in a private tab\" context menu button") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) @@ -157,53 +231,3 @@ private fun openInNewTabButton() = onView(withText("Open in new tab")) private fun openInPrivateTabButton() = onView(withText("Open in private tab")) private fun deleteButton() = onView(withText("Delete")) - -private fun assertMultiSelectionCheckmark() = - onView(withId(R.id.checkmark)) - .check(matches(isDisplayed())) - -private fun assertMultiSelectionCheckmark(url: Uri) = - onView( - allOf( - withId(R.id.checkmark), - withParent(withParent(withChild(allOf(withId(R.id.url), withText(url.toString()))))), - - // This is used as part of the `multiSelectionToolbarItemsTest` test. Somehow, in the view hierarchy, - // the match above is finding two checkmark views - one visible, one hidden, which is throwing off - // the matcher. This 'isDisplayed' check is a hacky workaround for this, we're explicitly ignoring - // the hidden one. Why are there two to begin with, though? - isDisplayed(), - ), - ) - .check(matches(isDisplayed())) - -private fun assertMultiSelectionCounter() = - onView(withText("1 selected")).check(matches(isDisplayed())) - -private fun assertShareHistoryButton() = - shareHistoryButton().check(matches(isDisplayed())) - -private fun assertShareBookmarksButton() = - shareBookmarksButton().check(matches(isDisplayed())) - -private fun assertShareOverlay() = - onView(withId(R.id.shareWrapper)).check(matches(isDisplayed())) - -private fun assertShareAppsLayout() = { - val sendToDeviceTitle = mDevice.findObject( - UiSelector() - .instance(0) - .className(TextView::class.java), - ) - sendToDeviceTitle.waitForExists(TestAssetHelper.waitingTime) -} - -private fun assertShareTabTitle() = - onView(withId(R.id.share_tab_title)).check(matches(isDisplayed())) - -private fun assertShareTabFavicon() = - onView(withId(R.id.share_tab_favicon)).check(matches(isDisplayed())) - -private fun assertShareTabUrl() = onView(withId(R.id.share_tab_url)) - -private fun assertCloseToolbarButton() = closeToolbarButton().check(matches(isDisplayed())) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt index 2cb54032..cb6a8495 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NavigationToolbarRobot.kt @@ -31,7 +31,6 @@ import androidx.test.uiautomator.By.textContains import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import org.hamcrest.CoreMatchers.allOf -import org.hamcrest.CoreMatchers.not import org.junit.Assert.assertTrue import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants @@ -58,27 +57,55 @@ import org.mozilla.fenix.tabstray.TabsTrayTestTag * Implementation of Robot Pattern for the URL toolbar. */ class NavigationToolbarRobot { - fun verifyUrl(url: String) = + fun verifyUrl(url: String) { + Log.i(TAG, "verifyUrl: Trying to verify toolbar text matches $url") onView(withId(R.id.mozac_browser_toolbar_url_view)).check(matches(withText(url))) + Log.i(TAG, "verifyUrl: Verified toolbar text matches $url") + } - fun verifyNoHistoryBookmarks() = assertNoHistoryBookmarks() + fun verifyTabButtonShortcutMenuItems() { + Log.i(TAG, "verifyTabButtonShortcutMenuItems: Trying to verify tab counter shortcut options") + onView(withId(R.id.mozac_browser_menu_recyclerView)) + .check(matches(hasDescendant(withText("Close tab")))) + .check(matches(hasDescendant(withText("New private tab")))) + .check(matches(hasDescendant(withText("New tab")))) + Log.i(TAG, "verifyTabButtonShortcutMenuItems: Verified tab counter shortcut options") + } - fun verifyTabButtonShortcutMenuItems() = assertTabButtonShortcutMenuItems() - - fun verifyReaderViewDetected(visible: Boolean = false) = - assertReaderViewDetected(visible) - - fun verifyCloseReaderViewDetected(visible: Boolean = false) = - assertCloseReaderViewDetected(visible) + fun verifyReaderViewDetected(visible: Boolean = false) { + Log.i(TAG, "verifyReaderViewDetected: Waiting for $waitingTime ms for reader view button to exist") + mDevice.findObject( + UiSelector() + .description("Reader view"), + ).waitForExists(waitingTime) + Log.i(TAG, "verifyReaderViewDetected: Waited for $waitingTime ms for reader view button to exist") + Log.i(TAG, "verifyReaderViewDetected: Trying to verify that the reader view button is visible") + onView( + allOf( + withParent(withId(R.id.mozac_browser_toolbar_page_actions)), + withContentDescription("Reader view"), + ), + ).check( + if (visible) { + matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)) + } else { + ViewAssertions.doesNotExist() + }, + ) + Log.i(TAG, "verifyReaderViewDetected: Verified that the reader view button is visible") + } fun toggleReaderView() { + Log.i(TAG, "toggleReaderView: Waiting for $waitingTime ms for reader view button to exist") mDevice.findObject( UiSelector() .resourceId("$packageName:id/mozac_browser_toolbar_page_actions"), ) .waitForExists(waitingTime) - + Log.i(TAG, "toggleReaderView: Waited for $waitingTime ms for reader view button to exist") + Log.i(TAG, "toggleReaderView: Trying to click the reader view button") readerViewToggle().click() + Log.i(TAG, "toggleReaderView: Clicked the reader view button") } fun verifyClipboardSuggestionsAreDisplayed(link: String = "", shouldBeDisplayed: Boolean) = @@ -91,35 +118,49 @@ class NavigationToolbarRobot { exists = shouldBeDisplayed, ) - fun longClickEditModeToolbar() = - mDevice.findObject(By.res("$packageName:id/mozac_browser_toolbar_edit_url_view")).click(LONG_CLICK_DURATION) + fun longClickEditModeToolbar() { + Log.i(TAG, "longClickEditModeToolbar: Trying to long click the edit mode toolbar") + mDevice.findObject(By.res("$packageName:id/mozac_browser_toolbar_edit_url_view")) + .click(LONG_CLICK_DURATION) + Log.i(TAG, "longClickEditModeToolbar: Long clicked the edit mode toolbar") + } fun clickContextMenuItem(item: String) { mDevice.waitNotNull( Until.findObject(By.text(item)), waitingTime, ) + Log.i(TAG, "clickContextMenuItem: Trying click context menu item: $item") mDevice.findObject(By.text(item)).click() + Log.i(TAG, "clickContextMenuItem: Clicked context menu item: $item") } - fun clickClearToolbarButton() = clearAddressBarButton().click() + fun clickClearToolbarButton() { + Log.i(TAG, "clickClearToolbarButton: Trying click the clear address button") + clearAddressBarButton().click() + Log.i(TAG, "clickClearToolbarButton: Clicked the clear address button") + } fun verifyToolbarIsEmpty() = - itemWithResIdContainingText( - "$packageName:id/mozac_browser_toolbar_edit_url_view", - getStringResource(R.string.search_hint), + assertUIObjectExists( + itemWithResIdContainingText( + "$packageName:id/mozac_browser_toolbar_edit_url_view", + getStringResource(R.string.search_hint), + ), ) // New unified search UI selector fun verifySearchBarPlaceholder(text: String) { + Log.i(TAG, "verifySearchBarPlaceholder: Waiting for $waitingTime ms for the toolbar to exist") urlBar().waitForExists(waitingTime) + Log.i(TAG, "verifySearchBarPlaceholder: Waited for $waitingTime ms for the toolbar to exist") assertItemTextEquals(urlBar(), expectedText = text) } // New unified search UI selector fun verifyDefaultSearchEngine(engineName: String) = assertUIObjectExists( - searchSelectorButton.getChild(UiSelector().description(engineName)), + searchSelectorButton().getChild(UiSelector().description(engineName)), ) fun verifyTextSelectionOptions(vararg textSelectionOptions: String) { @@ -138,19 +179,21 @@ class NavigationToolbarRobot { sessionLoadedIdlingResource = SessionLoadedIdlingResource() openEditURLView() - Log.i(TAG, "enterURLAndEnterToBrowser: Opened edit mode URL view") - + Log.i(TAG, "enterURLAndEnterToBrowser: Trying to set toolbar text to: $url") awesomeBar().setText(url.toString()) - Log.i(TAG, "enterURLAndEnterToBrowser: Set toolbar text to: $url") + Log.i(TAG, "enterURLAndEnterToBrowser: Toolbar text was set to: $url") + Log.i(TAG, "enterURLAndEnterToBrowser: Trying to press device enter button") mDevice.pressEnter() - Log.i(TAG, "enterURLAndEnterToBrowser: Clicked enter on keyboard, submitted query") + Log.i(TAG, "enterURLAndEnterToBrowser: Pressed device enter button") runWithIdleRes(sessionLoadedIdlingResource) { + Log.i(TAG, "enterURLAndEnterToBrowser: Trying to assert that home screen layout or download button or the total cookie protection contextual hint exist") assertTrue( itemWithResId("$packageName:id/browserLayout").waitForExists(waitingTime) || itemWithResId("$packageName:id/download_button").waitForExists(waitingTime) || itemWithResId("cfr.dismiss").waitForExists(waitingTime), ) + Log.i(TAG, "enterURLAndEnterToBrowser: Asserted that home screen layout or download button or the total cookie protection contextual hint exist") } BrowserRobot().interact() @@ -162,9 +205,12 @@ class NavigationToolbarRobot { interact: BrowserRobot.() -> Unit, ): BrowserRobot.Transition { openEditURLView() - + Log.i(TAG, "enterURLAndEnterToBrowserForTCPCFR: Trying to set toolbar text to: $url") awesomeBar().setText(url.toString()) + Log.i(TAG, "enterURLAndEnterToBrowserForTCPCFR: Toolbar text was set to: $url") + Log.i(TAG, "enterURLAndEnterToBrowserForTCPCFR: Trying to press device enter button") mDevice.pressEnter() + Log.i(TAG, "enterURLAndEnterToBrowserForTCPCFR: Pressed device enter button") BrowserRobot().interact() return BrowserRobot.Transition() @@ -176,12 +222,17 @@ class NavigationToolbarRobot { sessionLoadedIdlingResource = SessionLoadedIdlingResource() openEditURLView() - + Log.i(TAG, "openTabCrashReporter: Trying to set toolbar text to: $crashUrl") awesomeBar().setText(crashUrl) + Log.i(TAG, "openTabCrashReporter: Toolbar text was set to: $crashUrl") + Log.i(TAG, "openTabCrashReporter: Trying to press device enter button") mDevice.pressEnter() + Log.i(TAG, "openTabCrashReporter: Pressed device enter button") runWithIdleRes(sessionLoadedIdlingResource) { + Log.i(TAG, "openTabCrashReporter: Trying to find the tab crasher image") mDevice.findObject(UiSelector().resourceId("$packageName:id/crash_tab_image")) + Log.i(TAG, "openTabCrashReporter: Found the tab crasher image") } BrowserRobot().interact() @@ -190,15 +241,21 @@ class NavigationToolbarRobot { fun openThreeDotMenu(interact: ThreeDotMenuMainRobot.() -> Unit): ThreeDotMenuMainRobot.Transition { mDevice.waitNotNull(Until.findObject(By.res("$packageName:id/mozac_browser_toolbar_menu")), waitingTime) + Log.i(TAG, "openThreeDotMenu: Trying to click the main menu button") threeDotButton().click() + Log.i(TAG, "openThreeDotMenu: Clicked the main menu button") ThreeDotMenuMainRobot().interact() return ThreeDotMenuMainRobot.Transition() } fun openTabTray(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + Log.i(TAG, "openTabTray: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) + Log.i(TAG, "openTabTray: Waited for device to be idle for $waitingTime ms") + Log.i(TAG, "openTabTray: Trying to click the tabs tray button") tabTrayButton().click() + Log.i(TAG, "openTabTray: Clicked the tabs tray button") mDevice.waitNotNull( Until.findObject(By.res("$packageName:id/tab_layout")), waitingTime, @@ -211,6 +268,7 @@ class NavigationToolbarRobot { fun openComposeTabDrawer(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { for (i in 1..Constants.RETRY_COUNT) { try { + Log.i(TAG, "openComposeTabDrawer: Started try #$i") mDevice.waitForObjects( mDevice.findObject( UiSelector() @@ -218,30 +276,40 @@ class NavigationToolbarRobot { ), waitingTime, ) - + Log.i(TAG, "openComposeTabDrawer: Trying to click the tabs tray button") tabTrayButton().click() - + Log.i(TAG, "openComposeTabDrawer: Clicked the tabs tray button") + Log.i(TAG, "openComposeTabDrawer: Trying to verify that the tabs tray exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.tabsTray).assertExists() + Log.i(TAG, "openComposeTabDrawer: Verified that the tabs tray exists") break } catch (e: AssertionError) { + Log.i(TAG, "openComposeTabDrawer: AssertionError caught, executing fallback methods") if (i == Constants.RETRY_COUNT) { throw e } else { + Log.i(TAG, "openComposeTabDrawer: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "openComposeTabDrawer: Waited for device to be idle") } } } - + Log.i(TAG, "openComposeTabDrawer: Trying to verify the tabs tray new tab FAB button exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.fab).assertExists() + Log.i(TAG, "openComposeTabDrawer: Verified the tabs tray new tab FAB button exists") ComposeTabDrawerRobot(composeTestRule).interact() return ComposeTabDrawerRobot.Transition(composeTestRule) } fun visitLinkFromClipboard(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "visitLinkFromClipboard: Waiting for $waitingTimeShort ms for clear address button to exist") if (clearAddressBarButton().waitForExists(waitingTimeShort)) { + Log.i(TAG, "visitLinkFromClipboard: Waited for $waitingTimeShort ms for clear address button to exist") + Log.i(TAG, "visitLinkFromClipboard: Trying to click the clear address button") clearAddressBarButton().click() + Log.i(TAG, "visitLinkFromClipboard: Clicked the clear address button") } mDevice.waitNotNull( @@ -257,26 +325,33 @@ class NavigationToolbarRobot { waitingTime, ) } - + Log.i(TAG, "visitLinkFromClipboard: Trying to click the fill link from clipboard button") fillLinkButton().click() + Log.i(TAG, "visitLinkFromClipboard: Clicked the fill link from clipboard button") BrowserRobot().interact() return BrowserRobot.Transition() } fun goBackToHomeScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBackToHomeScreen: Trying to click the device back button") mDevice.pressBack() + Log.i(TAG, "goBackToHomeScreen: Clicked the device back button") + Log.i(TAG, "goBackToHomeScreen: Waiting for $waitingTimeShort ms for $packageName window to be updated") mDevice.waitForWindowUpdate(packageName, waitingTimeShort) + Log.i(TAG, "goBackToHomeScreen: Waited for $waitingTimeShort ms for $packageName window to be updated") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun goBackToBrowserScreen(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "goBackToBrowserScreen: Trying to click the device back button") mDevice.pressBack() - Log.i(TAG, "goBackToBrowserScreen: Dismiss awesome bar using device back button") + Log.i(TAG, "goBackToBrowserScreen: Clicked the device back button") + Log.i(TAG, "goBackToBrowserScreen: Waiting for $waitingTimeShort ms for $packageName window to be updated") mDevice.waitForWindowUpdate(packageName, waitingTimeShort) - Log.i(TAG, "goBackToBrowserScreen: Waited $waitingTimeShort for window update") + Log.i(TAG, "goBackToBrowserScreen: Waited for $waitingTimeShort ms for $packageName window to be updated") BrowserRobot().interact() return BrowserRobot.Transition() @@ -284,16 +359,19 @@ class NavigationToolbarRobot { fun openTabButtonShortcutsMenu(interact: NavigationToolbarRobot.() -> Unit): Transition { mDevice.waitNotNull(Until.findObject(By.res("$packageName:id/counter_root"))) + Log.i(TAG, "openTabButtonShortcutsMenu: Trying to long click the tab counter button") tabsCounter().perform(longClick()) - Log.i(TAG, "Tabs counter long-click successful.") + Log.i(TAG, "openTabButtonShortcutsMenu: Long clicked the tab counter button") NavigationToolbarRobot().interact() return Transition() } fun closeTabFromShortcutsMenu(interact: NavigationToolbarRobot.() -> Unit): Transition { + Log.i(TAG, "closeTabFromShortcutsMenu: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) - + Log.i(TAG, "closeTabFromShortcutsMenu: Waited for device to be idle for $waitingTime ms") + Log.i(TAG, "closeTabFromShortcutsMenu: Trying to click the \"Close tab\" button") onView(withId(R.id.mozac_browser_menu_recyclerView)) .perform( RecyclerViewActions.actionOnItem( @@ -303,15 +381,17 @@ class NavigationToolbarRobot { ViewActions.click(), ), ) - Log.i(TAG, "Clicked the tab shortcut Close tab button.") + Log.i(TAG, "closeTabFromShortcutsMenu: Clicked the \"Close tab\" button") NavigationToolbarRobot().interact() return Transition() } fun openNewTabFromShortcutsMenu(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "openNewTabFromShortcutsMenu: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) - Log.i(TAG, "Looking for tab shortcut New tab button.") + Log.i(TAG, "openNewTabFromShortcutsMenu: Waited for device to be idle for $waitingTime ms") + Log.i(TAG, "openNewTabFromShortcutsMenu: Trying to click the \"New tab\" button") onView(withId(R.id.mozac_browser_menu_recyclerView)) .perform( RecyclerViewActions.actionOnItem( @@ -321,15 +401,17 @@ class NavigationToolbarRobot { ViewActions.click(), ), ) - Log.i(TAG, "Clicked the tab shortcut New tab button.") + Log.i(TAG, "openNewTabFromShortcutsMenu: Clicked the \"New tab\" button") SearchRobot().interact() return SearchRobot.Transition() } fun openNewPrivateTabFromShortcutsMenu(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "openNewPrivateTabFromShortcutsMenu: Waiting for device to be idle for $waitingTime ms") mDevice.waitForIdle(waitingTime) - Log.i(TAG, "Looking for tab shortcut New private tab button.") + Log.i(TAG, "openNewPrivateTabFromShortcutsMenu: Waited for device to be idle for $waitingTime ms") + Log.i(TAG, "openNewPrivateTabFromShortcutsMenu: Trying to click the \"New private tab\" button") onView(withId(R.id.mozac_browser_menu_recyclerView)) .perform( RecyclerViewActions.actionOnItem( @@ -339,26 +421,33 @@ class NavigationToolbarRobot { ViewActions.click(), ), ) - Log.i(TAG, "Clicked the tab shortcut New private tab button.") + Log.i(TAG, "openNewPrivateTabFromShortcutsMenu: Clicked the \"New private tab\" button") SearchRobot().interact() return SearchRobot.Transition() } fun clickUrlbar(interact: SearchRobot.() -> Unit): SearchRobot.Transition { + Log.i(TAG, "clickUrlbar: Trying to click the toolbar") urlBar().click() - + Log.i(TAG, "clickUrlbar: Clicked the toolbar") + Log.i(TAG, "clickUrlbar: Waiting for $waitingTime ms for the edit mode toolbar to exist") mDevice.findObject( UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_edit_url_view"), ).waitForExists(waitingTime) + Log.i(TAG, "clickUrlbar: Waited for $waitingTime ms for the edit mode toolbar to exist") SearchRobot().interact() return SearchRobot.Transition() } fun clickSearchSelectorButton(interact: SearchRobot.() -> Unit): SearchRobot.Transition { - searchSelectorButton.waitForExists(waitingTime) - searchSelectorButton.click() + Log.i(TAG, "clickSearchSelectorButton: Waiting for $waitingTime ms for the search selector button to exist") + searchSelectorButton().waitForExists(waitingTime) + Log.i(TAG, "clickSearchSelectorButton: Waited for $waitingTime ms for the search selector button to exist") + Log.i(TAG, "clickSearchSelectorButton: Trying to click the search selector button") + searchSelectorButton().click() + Log.i(TAG, "clickSearchSelectorButton: Clicked the search selector button") SearchRobot().interact() return SearchRobot.Transition() @@ -372,25 +461,15 @@ fun navigationToolbar(interact: NavigationToolbarRobot.() -> Unit): NavigationTo } fun openEditURLView() { + Log.i(TAG, "openEditURLView: Waiting for $waitingTime ms for the toolbar to exist") urlBar().waitForExists(waitingTime) + Log.i(TAG, "openEditURLView: Waited for $waitingTime ms for the toolbar to exist") + Log.i(TAG, "openEditURLView: Trying to click the toolbar") urlBar().click() - Log.i(TAG, "openEditURLView: URL bar clicked.") + Log.i(TAG, "openEditURLView: Clicked the toolbar") + Log.i(TAG, "openEditURLView: Waiting for $waitingTime ms for the edit mode toolbar to exist") itemWithResId("$packageName:id/mozac_browser_toolbar_edit_url_view").waitForExists(waitingTime) - Log.i(TAG, "openEditURLView: Edit URL bar displayed.") -} - -private fun assertNoHistoryBookmarks() { - onView(withId(R.id.container)) - .check(matches(not(hasDescendant(withText("Test_Page_1"))))) - .check(matches(not(hasDescendant(withText("Test_Page_2"))))) - .check(matches(not(hasDescendant(withText("Test_Page_3"))))) -} - -private fun assertTabButtonShortcutMenuItems() { - onView(withId(R.id.mozac_browser_menu_recyclerView)) - .check(matches(hasDescendant(withText("Close tab")))) - .check(matches(hasDescendant(withText("New private tab")))) - .check(matches(hasDescendant(withText("New tab")))) + Log.i(TAG, "openEditURLView: Waited for $waitingTime ms for the edit mode toolbar to exist") } private fun urlBar() = mDevice.findObject(UiSelector().resourceId("$packageName:id/toolbar")) @@ -404,49 +483,7 @@ private fun clearAddressBarButton() = itemWithResId("$packageName:id/mozac_brows private fun readerViewToggle() = onView(withParent(withId(R.id.mozac_browser_toolbar_page_actions))) -private fun assertReaderViewDetected(visible: Boolean) { - mDevice.findObject( - UiSelector() - .description("Reader view"), - ) - .waitForExists(waitingTime) - - onView( - allOf( - withParent(withId(R.id.mozac_browser_toolbar_page_actions)), - withContentDescription("Reader view"), - ), - ).check( - if (visible) { - matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)) - } else { - ViewAssertions.doesNotExist() - }, - ) -} - -private fun assertCloseReaderViewDetected(visible: Boolean) { - mDevice.findObject( - UiSelector() - .description("Close reader view"), - ) - .waitForExists(waitingTime) - - onView( - allOf( - withParent(withId(R.id.mozac_browser_toolbar_page_actions)), - withContentDescription("Close reader view"), - ), - ).check( - if (visible) { - matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)) - } else { - ViewAssertions.doesNotExist() - }, - ) -} - -private val searchSelectorButton = +private fun searchSelectorButton() = mDevice.findObject(UiSelector().resourceId("$packageName:id/search_selector")) inline fun runWithIdleRes(ir: IdlingResource?, pendingCheck: () -> Unit) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NotificationRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NotificationRobot.kt index 7398746e..99cbbf9a 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NotificationRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/NotificationRobot.kt @@ -29,44 +29,48 @@ class NotificationRobot { var notificationFound = mDevice.findObject(notification).waitForExists(waitingTime) while (!notificationFound) { + Log.i(TAG, "verifySystemNotificationExists: Waiting for $waitingTime ms for notification: $notification to exist") scrollToEnd() - Log.i(TAG, "verifySystemNotificationExists: Scrolling to the end of the notification tray") - Log.i(TAG, "verifySystemNotificationExists: Looking for $notificationMessage notification") notificationFound = mDevice.findObject(notification).waitForExists(waitingTime) + Log.i(TAG, "verifySystemNotificationExists: Waited for $waitingTime ms for notification: $notification to exist") } assertUIObjectExists(itemWithText(notificationMessage)) } fun clearNotifications() { - if (clearButton.exists()) { - Log.i(TAG, "clearNotifications: Verified that clear notifications button exists") - clearButton.click() - Log.i(TAG, "clearNotifications: Clicked clear notifications button") + if (clearButton().exists()) { + Log.i(TAG, "clearNotifications:The clear notifications button exists") + Log.i(TAG, "clearNotifications: Trying to click the clear notifications button") + clearButton().click() + Log.i(TAG, "clearNotifications: Clicked the clear notifications button") } else { scrollToEnd() - Log.i(TAG, "clearNotifications: Scrolled to end of notifications tray") - if (clearButton.exists()) { - Log.i(TAG, "clearNotifications: Verified that clear notifications button exists") - clearButton.click() - Log.i(TAG, "clearNotifications: Clicked clear notifications button") + if (clearButton().exists()) { + Log.i(TAG, "clearNotifications:The clear notifications button exists") + Log.i(TAG, "clearNotifications: Trying to click the clear notifications button") + clearButton().click() + Log.i(TAG, "clearNotifications: Clicked the clear notifications button") } else if (notificationTray().exists()) { + Log.i(TAG, "clearNotifications: The notifications tray is still displayed") + Log.i(TAG, "clearNotifications: Trying to click device back button") mDevice.pressBack() - Log.i(TAG, "clearNotifications: Dismiss notifications tray by clicking device back button") + Log.i(TAG, "clearNotifications: Clicked device back button") } } } fun cancelAllShownNotifications() { + Log.i(TAG, "cancelAllShownNotifications: Trying to cancel all system notifications") cancelAll() Log.i(TAG, "cancelAllShownNotifications: Canceled all system notifications") } fun verifySystemNotificationDoesNotExist(notificationMessage: String) { - Log.i(TAG, "verifySystemNotificationDoesNotExist: Waiting for $notificationMessage notification to be gone") + Log.i(TAG, "verifySystemNotificationDoesNotExist: Waiting for $waitingTime ms for notification: $notificationMessage to be gone") mDevice.findObject(UiSelector().textContains(notificationMessage)).waitUntilGone(waitingTime) + Log.i(TAG, "verifySystemNotificationDoesNotExist: Waited for $waitingTime ms for notification: $notificationMessage to be gone") assertUIObjectExists(itemContainingText(notificationMessage), exists = false) - Log.i(TAG, "verifySystemNotificationDoesNotExist: Verified that $notificationMessage notification does not exist") } fun verifyPrivateTabsNotification() { @@ -75,17 +79,22 @@ class NotificationRobot { } fun clickMediaNotificationControlButton(action: String) { + Log.i(TAG, "clickMediaNotificationControlButton: Waiting for $waitingTime ms for the system media control button: $action to exist") mediaSystemNotificationButton(action).waitForExists(waitingTime) + Log.i(TAG, "clickMediaNotificationControlButton: Waited for $waitingTime ms for the system media control button: $action to exist") + Log.i(TAG, "clickMediaNotificationControlButton: Trying to click the system media control button: $action") mediaSystemNotificationButton(action).click() + Log.i(TAG, "clickMediaNotificationControlButton: Clicked the system media control button: $action") } fun clickDownloadNotificationControlButton(action: String) { for (i in 1..RETRY_COUNT) { - Log.i(TAG, "clickPageObject: For loop i = $i") + Log.i(TAG, "clickDownloadNotificationControlButton: Started try #$i") try { assertUIObjectExists(downloadSystemNotificationButton(action)) + Log.i(TAG, "clickDownloadNotificationControlButton: Trying to click the download system notification: $action button and wait for $waitingTimeShort ms for a new window") downloadSystemNotificationButton(action).clickAndWaitForNewWindow(waitingTimeShort) - Log.i(TAG, "clickDownloadNotificationControlButton: Clicked app notification $action button and waits for a new window for $waitingTimeShort ms") + Log.i(TAG, "clickDownloadNotificationControlButton: Clicked the download system notification: $action button and waited for $waitingTimeShort ms for a new window") assertUIObjectExists( downloadSystemNotificationButton(action), exists = false, @@ -93,12 +102,13 @@ class NotificationRobot { break } catch (e: AssertionError) { - Log.i(TAG, "clickDownloadNotificationControlButton: Catch block") + Log.i(TAG, "clickDownloadNotificationControlButton: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } + Log.i(TAG, "clickDownloadNotificationControlButton: Waiting for $waitingTimeShort ms for $packageName window to be updated") mDevice.waitForWindowUpdate(packageName, waitingTimeShort) - Log.i(TAG, "clickDownloadNotificationControlButton: Waited $waitingTimeShort ms for window update") + Log.i(TAG, "clickDownloadNotificationControlButton: Waited for $waitingTimeShort ms for $packageName window to be updated") } } } @@ -107,15 +117,17 @@ class NotificationRobot { assertUIObjectExists(mediaSystemNotificationButton(action)) fun expandNotificationMessage() { - while (!notificationHeader.exists()) { + while (!notificationHeader().exists()) { + Log.i(TAG, "expandNotificationMessage: Waiting for $appName notification to exist") scrollToEnd() - Log.i(TAG, "expandNotificationMessage: Scrolled to end of notification tray") } - if (notificationHeader.exists()) { + if (notificationHeader().exists()) { + Log.i(TAG, "expandNotificationMessage: $appName notification exists") // expand the notification - notificationHeader.click() - Log.i(TAG, "expandNotificationMessage: Clicked the app notification") + Log.i(TAG, "expandNotificationMessage: Trying to click $appName notification") + notificationHeader().click() + Log.i(TAG, "expandNotificationMessage: Clicked $appName notification") // double check if notification actions are viewable by checking for action existence; otherwise scroll again while (!mDevice.findObject(UiSelector().resourceId("android:id/action0")).exists() && @@ -123,7 +135,6 @@ class NotificationRobot { ) { Log.i(TAG, "expandNotificationMessage: App notification action buttons do not exist") scrollToEnd() - Log.i(TAG, "expandNotificationMessage: Scrolled to end of notification tray") } } } @@ -136,41 +147,46 @@ class NotificationRobot { ) { // In case it fails, retry max 3x the swipe action on download system notifications for (i in 1..RETRY_COUNT) { - Log.i(TAG, "swipeDownloadNotification: For loop i = $i") + Log.i(TAG, "swipeDownloadNotification: Started try #$i") try { - Log.i(TAG, "swipeDownloadNotification: Try block") var retries = 0 while (itemContainingText(appName).exists() && retries++ < 3) { - Log.i(TAG, "swipeDownloadNotification: While loop retries = $retries") // Swipe left the download system notification if (direction == "Left") { itemContainingText(appName) .also { + Log.i(TAG, "swipeDownloadNotification: Waiting for $waitingTime ms for $appName notification to exist") it.waitForExists(waitingTime) + Log.i(TAG, "swipeDownloadNotification: Waited for $waitingTime ms for $appName notification to exist") + Log.i(TAG, "swipeDownloadNotification: Trying to perform swipe left action on $appName notification") it.swipeLeft(3) + Log.i(TAG, "swipeDownloadNotification: Performed swipe left action on $appName notification") } - Log.i(TAG, "swipeDownloadNotification: Swiped left download notification") } else { // Swipe right the download system notification itemContainingText(appName) .also { + Log.i(TAG, "swipeDownloadNotification: Waiting for $waitingTime ms for $appName notification to exist") it.waitForExists(waitingTime) + Log.i(TAG, "swipeDownloadNotification: Waited for $waitingTime ms for $appName notification to exist") + Log.i(TAG, "swipeDownloadNotification: Trying to perform swipe right action on $appName notification") it.swipeRight(3) + Log.i(TAG, "swipeDownloadNotification: Performed swipe right action on $appName notification") } - Log.i(TAG, "swipeDownloadNotification: Swiped right download notification") } } // Not all download related system notifications can be dismissed if (shouldDismissNotification) { + Log.i(TAG, "swipeDownloadNotification: $appName notification can't be dismissed: $shouldDismissNotification") assertUIObjectExists(itemContainingText(appName), exists = false) } else { + Log.i(TAG, "swipeDownloadNotification: $appName notification can be dismissed: $shouldDismissNotification") assertUIObjectExists(itemContainingText(appName)) - Log.i(TAG, "swipeDownloadNotification: Verified that $appName notification exist") } break } catch (e: AssertionError) { - Log.i(TAG, "swipeDownloadNotification: Catch block") + Log.i(TAG, "swipeDownloadNotification: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { @@ -179,11 +195,12 @@ class NotificationRobot { }.openNotificationShade { // The download complete system notification can't be expanded if (canExpandNotification) { + Log.i(TAG, "swipeDownloadNotification: $appName notification can be expanded: $canExpandNotification") // In all cases the download system notification title will be the app name verifySystemNotificationExists(appName) - Log.i(TAG, "swipeDownloadNotification: Verified that $appName notification exist") expandNotificationMessage() } else { + Log.i(TAG, "swipeDownloadNotification: $appName notification can't be expanded: $canExpandNotification") // Using the download completed system notification summary to bring in to view an properly verify it verifySystemNotificationExists("Download completed") } @@ -194,10 +211,12 @@ class NotificationRobot { } fun clickNotification(notificationMessage: String) { - Log.i(TAG, "clickNotification: Looking for $notificationMessage notification") + Log.i(TAG, "clickNotification: Waiting for $waitingTime ms for $notificationMessage notification to exist") mDevice.findObject(UiSelector().text(notificationMessage)).waitForExists(waitingTime) + Log.i(TAG, "clickNotification: Waited for $waitingTime ms for $notificationMessage notification to exist") + Log.i(TAG, "clickNotification: Trying to click the $notificationMessage notification and wait for $waitingTimeShort ms for a new window") mDevice.findObject(UiSelector().text(notificationMessage)).clickAndWaitForNewWindow(waitingTimeShort) - Log.i(TAG, "clickNotification: Clicked $notificationMessage notification and waiting for $waitingTimeShort ms for a new window") + Log.i(TAG, "clickNotification: Clicked the $notificationMessage notification and waited for $waitingTimeShort ms for a new window") } class Transition { @@ -206,18 +225,22 @@ class NotificationRobot { try { assertUIObjectExists(closePrivateTabsNotification()) } catch (e: AssertionError) { + Log.i(TAG, "clickClosePrivateTabsNotification: Trying to perform fling action to the end of the notification tray") notificationTray().flingToEnd(1) + Log.i(TAG, "clickClosePrivateTabsNotification: Performed fling action to the end of the notification tray") } - + Log.i(TAG, "clickClosePrivateTabsNotification: Trying to click the close private tabs notification") closePrivateTabsNotification().click() + Log.i(TAG, "clickClosePrivateTabsNotification: Clicked the close private tabs notification") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun closeNotificationTray(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeNotificationTray: Trying to click device back button") mDevice.pressBack() - Log.i(TAG, "closeNotificationTray: Closed notification tray using device back button") + Log.i(TAG, "closeNotificationTray: Clicked device back button") BrowserRobot().interact() return BrowserRobot.Transition() @@ -251,7 +274,7 @@ private fun notificationTray() = UiScrollable( UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"), ).setAsVerticalList() -private val notificationHeader = +private fun notificationHeader() = mDevice.findObject( UiSelector() .resourceId("android:id/app_name_text") @@ -259,10 +282,12 @@ private val notificationHeader = ) private fun scrollToEnd() { + Log.i(TAG, "scrollToEnd: Trying to perform scroll to the end of the notification tray action") notificationTray().scrollToEnd(1) + Log.i(TAG, "scrollToEnd: Performed scroll to the end of the notification tray action") } -private val clearButton = mDevice.findObject(UiSelector().resourceId("com.android.systemui:id/dismiss_text")) +private fun clearButton() = mDevice.findObject(UiSelector().resourceId("com.android.systemui:id/dismiss_text")) private fun cancelAll() { val notificationManager: NotificationManager = diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/PwaRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/PwaRobot.kt index f9e05052..cd31c2fc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/PwaRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/PwaRobot.kt @@ -4,24 +4,30 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import androidx.test.uiautomator.UiSelector import org.junit.Assert.assertTrue import org.mozilla.fenix.helpers.AppAndSystemHelper.isExternalAppBrowserActivityInCurrentTask +import org.mozilla.fenix.helpers.Constants +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists +import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.packageName class PwaRobot { - fun verifyCustomTabToolbarIsNotDisplayed() = assertUIObjectExists(customTabToolbar(), exists = false) - fun verifyPwaActivityInCurrentTask() = assertTrue(isExternalAppBrowserActivityInCurrentTask()) + fun verifyCustomTabToolbarIsNotDisplayed() = assertUIObjectExists(itemWithResId("$packageName:id/toolbar"), exists = false) + fun verifyPwaActivityInCurrentTask() { + assertTrue("$TAG: The latest activity of the application is not used for custom tabs or PWAs", isExternalAppBrowserActivityInCurrentTask()) + } class Transition } fun pwaScreen(interact: PwaRobot.() -> Unit): PwaRobot.Transition { + Log.i(TAG, "pwaScreen: Trying to find the engine view") mDevice.findObject(UiSelector().resourceId("$packageName:id/engineView")) + Log.i(Constants.TAG, "pwaScreen: Found the engine view") PwaRobot().interact() return PwaRobot.Transition() } - -private fun customTabToolbar() = mDevice.findObject(UiSelector().resourceId("$packageName:id/toolbar")) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ReaderViewRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ReaderViewRobot.kt index 89bd934f..30d87d72 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ReaderViewRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ReaderViewRobot.kt @@ -7,8 +7,8 @@ package org.mozilla.fenix.ui.robots import android.content.Context +import android.util.Log import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility @@ -16,6 +16,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.platform.app.InstrumentationRegistry import org.junit.Assert.assertEquals import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.click @@ -24,34 +25,98 @@ import org.mozilla.fenix.helpers.click */ class ReaderViewRobot { - fun verifyAppearanceFontGroup(visible: Boolean = false): ViewInteraction = - assertAppearanceFontGroup(visible) + fun verifyAppearanceFontGroup(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceFontGroup: Trying to verify that the font group buttons are visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_font_group), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceFontGroup: Verified that the font group buttons are visible: $visible") + } - fun verifyAppearanceFontSansSerif(visible: Boolean = false): ViewInteraction = - assertAppearanceFontSansSerif(visible) + fun verifyAppearanceFontSansSerif(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceFontSansSerif: Trying to verify that the sans serif font button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_font_sans_serif), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceFontSansSerif: Verified that the sans serif font button is visible: $visible") + } - fun verifyAppearanceFontSerif(visible: Boolean = false): ViewInteraction = - assertAppearanceFontSerif(visible) + fun verifyAppearanceFontSerif(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceFontSerif: Trying to verify that the serif font button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_font_serif), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceFontSerif: Verified that the serif font button is visible: $visible") + } - fun verifyAppearanceFontDecrease(visible: Boolean = false): ViewInteraction = - assertAppearanceFontDecrease(visible) + fun verifyAppearanceFontDecrease(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceFontDecrease: Trying to verify that the decrease font button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_font_size_decrease), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceFontDecrease: Verified that the decrease font button is visible: $visible") + } - fun verifyAppearanceFontIncrease(visible: Boolean = false): ViewInteraction = - assertAppearanceFontIncrease(visible) + fun verifyAppearanceFontIncrease(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceFontIncrease: Trying to verify that the increase font button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_font_size_increase), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceFontIncrease: Verified that the increase font button is visible: $visible") + } - fun verifyAppearanceColorGroup(visible: Boolean = false): ViewInteraction = - assertAppearanceColorGroup(visible) + fun verifyAppearanceColorGroup(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceColorGroup: Trying to verify that the color group buttons are visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_color_scheme_group), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceColorGroup: Verified that the color group buttons are visible: $visible") + } - fun verifyAppearanceColorSepia(visible: Boolean = false): ViewInteraction = - assertAppearanceColorSepia(visible) + fun verifyAppearanceColorSepia(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceColorSepia: Trying to verify that the sepia color button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_color_sepia), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceColorSepia: Verified that the sepia color button is visible: $visible") + } - fun verifyAppearanceColorDark(visible: Boolean = false): ViewInteraction = - assertAppearanceColorDark(visible) + fun verifyAppearanceColorDark(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceColorDark: Trying to verify that the dark color button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_color_dark), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceColorDark: Verified that the dark color button is visible: $visible") + } - fun verifyAppearanceColorLight(visible: Boolean = false): ViewInteraction = - assertAppearanceColorLight(visible) + fun verifyAppearanceColorLight(visible: Boolean = false) { + Log.i(TAG, "verifyAppearanceColorLight: Trying to verify that the light color button is visible: $visible") + onView( + withId(R.id.mozac_feature_readerview_color_light), + ).check( + matches(withEffectiveVisibility(visibleOrGone(visible))), + ) + Log.i(TAG, "verifyAppearanceColorLight: Verified that the light color button is visible: $visible") + } fun verifyAppearanceFontIsActive(fontType: String) { + Log.i(TAG, "verifyAppearanceFontIsActive: Trying to verify that the font type is: $fontType") val fontTypeKey: String = "mozac-readerview-fonttype" val prefs = InstrumentationRegistry.getInstrumentation() @@ -61,9 +126,11 @@ class ReaderViewRobot { ) assertEquals(fontType, prefs.getString(fontTypeKey, "")) + Log.i(TAG, "verifyAppearanceFontIsActive: Verified that the font type is: $fontType") } fun verifyAppearanceFontSize(expectedFontSize: Int) { + Log.i(TAG, "verifyAppearanceFontSize: Trying to verify that the font size is: $expectedFontSize") val fontSizeKey: String = "mozac-readerview-fontsize" val prefs = InstrumentationRegistry.getInstrumentation() @@ -75,9 +142,11 @@ class ReaderViewRobot { val fontSizeKeyValue = prefs.getInt(fontSizeKey, 3) assertEquals(expectedFontSize, fontSizeKeyValue) + Log.i(TAG, "verifyAppearanceFontSize: Verified that the font size is: $expectedFontSize") } fun verifyAppearanceColorSchemeChange(expectedColorScheme: String) { + Log.i(TAG, "verifyAppearanceColorSchemeChange: Trying to verify that the color scheme is: $expectedColorScheme") val colorSchemeKey: String = "mozac-readerview-colorscheme" val prefs = InstrumentationRegistry.getInstrumentation() @@ -87,12 +156,15 @@ class ReaderViewRobot { ) assertEquals(expectedColorScheme, prefs.getString(colorSchemeKey, "")) + Log.i(TAG, "verifyAppearanceColorSchemeChange: Verified that the color scheme is: $expectedColorScheme") } class Transition { fun closeAppearanceMenu(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "closeAppearanceMenu: Trying to click device back button") mDevice.pressBack() + Log.i(TAG, "closeAppearanceMenu: Clicked device back button") BrowserRobot().interact() return BrowserRobot.Transition() @@ -103,8 +175,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_font_sans_serif), ) - + Log.i(TAG, "toggleSansSerif: Trying to click sans serif button") sansSerifButton().click() + Log.i(TAG, "toggleSansSerif: Clicked sans serif button") ReaderViewRobot().interact() return Transition() @@ -115,8 +188,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_font_serif), ) - + Log.i(TAG, "toggleSerif: Trying to click serif button") serifButton().click() + Log.i(TAG, "toggleSerif: Clicked serif button") ReaderViewRobot().interact() return Transition() @@ -127,8 +201,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_font_size_decrease), ) - + Log.i(TAG, "toggleFontSizeDecrease: Trying to click the decrease font button") fontSizeDecrease().click() + Log.i(TAG, "toggleFontSizeDecrease: Clicked the decrease font button") ReaderViewRobot().interact() return Transition() @@ -139,8 +214,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_font_size_increase), ) - + Log.i(TAG, "toggleFontSizeIncrease: Trying to click the increase font button") fontSizeIncrease().click() + Log.i(TAG, "toggleFontSizeIncrease: Clicked the increase font button") ReaderViewRobot().interact() return Transition() @@ -151,8 +227,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_color_light), ) - + Log.i(TAG, "toggleColorSchemeChangeLight: Trying to click the light color button") toggleLightColorSchemeButton().click() + Log.i(TAG, "toggleColorSchemeChangeLight: Clicked the light color button") ReaderViewRobot().interact() return Transition() @@ -163,8 +240,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_color_dark), ) - + Log.i(TAG, "toggleColorSchemeChangeDark: Trying to click the dark color button") toggleDarkColorSchemeButton().click() + Log.i(TAG, "toggleColorSchemeChangeDark: Clicked the dark color button") ReaderViewRobot().interact() return Transition() @@ -175,8 +253,9 @@ class ReaderViewRobot { onView( withId(R.id.mozac_feature_readerview_color_sepia), ) - + Log.i(TAG, "toggleColorSchemeChangeSepia: Trying to click the sepia color button") toggleSepiaColorSchemeButton().click() + Log.i(TAG, "toggleColorSchemeChangeSepia: Clicked the sepia color button") ReaderViewRobot().interact() return Transition() @@ -184,73 +263,5 @@ class ReaderViewRobot { } } -fun readerViewRobot(interact: ReaderViewRobot.() -> Unit): ReaderViewRobot.Transition { - ReaderViewRobot().interact() - return ReaderViewRobot.Transition() -} - -private fun assertAppearanceFontGroup(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_font_group), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceFontSansSerif(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_font_sans_serif), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceFontSerif(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_font_serif), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceFontDecrease(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_font_size_decrease), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceFontIncrease(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_font_size_increase), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceColorDark(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_color_dark), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceColorLight(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_color_light), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceColorSepia(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_color_sepia), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - -private fun assertAppearanceColorGroup(visible: Boolean) = - onView( - withId(R.id.mozac_feature_readerview_color_scheme_group), - ).check( - matches(withEffectiveVisibility(visibleOrGone(visible))), - ) - private fun visibleOrGone(visibility: Boolean) = if (visibility) ViewMatchers.Visibility.VISIBLE else ViewMatchers.Visibility.GONE diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/RecentlyClosedTabsRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/RecentlyClosedTabsRobot.kt index d77962cf..8034e467 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/RecentlyClosedTabsRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/RecentlyClosedTabsRobot.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui.robots import android.net.Uri +import android.util.Log import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.Visibility @@ -17,6 +18,7 @@ import androidx.test.uiautomator.UiSelector import org.hamcrest.Matchers import org.hamcrest.Matchers.allOf import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.HomeActivityComposeTestRule import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText @@ -32,28 +34,36 @@ import org.mozilla.fenix.helpers.click class RecentlyClosedTabsRobot { - fun waitForListToExist() = + fun waitForListToExist() { + Log.i(TAG, "waitForListToExist: Waiting for $waitingTime ms for recently closed tabs list to exist") mDevice.findObject(UiSelector().resourceId("$packageName:id/recently_closed_list")) .waitForExists(waitingTime) + Log.i(TAG, "waitForListToExist: Waited for $waitingTime ms for recently closed tabs list to exist") + } fun verifyRecentlyClosedTabsMenuView() { + Log.i(TAG, "verifyRecentlyClosedTabsMenuView: Trying to verify that the recently closed tabs menu view is visible") onView( allOf( withText("Recently closed tabs"), withParent(withId(R.id.navigationToolbar)), ), ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyRecentlyClosedTabsMenuView: Verified that the recently closed tabs menu view is visible") } fun verifyEmptyRecentlyClosedTabsList() { + Log.i(TAG, "verifyEmptyRecentlyClosedTabsList: Waiting for device to be idle") mDevice.waitForIdle() - + Log.i(TAG, "verifyEmptyRecentlyClosedTabsList: Waited for device to be idle") + Log.i(TAG, "verifyEmptyRecentlyClosedTabsList: Trying to verify that the empty recently closed tabs list is visible") onView( allOf( withId(R.id.recently_closed_empty_view), withText(R.string.recently_closed_empty_message), ), ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyEmptyRecentlyClosedTabsList: Verified that the empty recently closed tabs list is visible") } fun verifyRecentlyClosedTabsPageTitle(title: String) = @@ -62,6 +72,7 @@ class RecentlyClosedTabsRobot { ) fun verifyRecentlyClosedTabsUrl(expectedUrl: Uri) { + Log.i(TAG, "verifyRecentlyClosedTabsUrl: Trying to verify that the recently closed tab with url: $expectedUrl is visible") onView( allOf( withId(R.id.url), @@ -70,45 +81,64 @@ class RecentlyClosedTabsRobot { ), ), ).check(matches(withText(Matchers.containsString(expectedUrl.toString())))) + Log.i(TAG, "verifyRecentlyClosedTabsUrl: Verified that the recently closed tab with url: $expectedUrl is visible") } - fun clickDeleteRecentlyClosedTabs() = recentlyClosedTabDeleteButton().click() + fun clickDeleteRecentlyClosedTabs() { + Log.i(TAG, "clickDeleteRecentlyClosedTabs: Trying to click the recently closed tab item delete button") + recentlyClosedTabDeleteButton().click() + Log.i(TAG, "clickDeleteRecentlyClosedTabs: Clicked the recently closed tab item delete button") + } class Transition { fun clickRecentlyClosedItem(title: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { recentlyClosedTabsPageTitle(title).also { + Log.i(TAG, "clickRecentlyClosedItem: Waiting for $waitingTimeShort ms for recently closed tab with title: $title to exist") it.waitForExists(waitingTimeShort) + Log.i(TAG, "clickRecentlyClosedItem: Waited for $waitingTimeShort ms for recently closed tab with title: $title to exist") + Log.i(TAG, "clickRecentlyClosedItem: Trying to click the recently closed tab with title: $title") it.click() + Log.i(TAG, "clickRecentlyClosedItem: Clicked the recently closed tab with title: $title") } + Log.i(TAG, "clickRecentlyClosedItem: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "clickRecentlyClosedItem: Waited for device to be idle") BrowserRobot().interact() return BrowserRobot.Transition() } fun clickOpenInNewTab(testRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { - openInNewTabOption.click() + Log.i(TAG, "clickOpenInNewTab: Trying to click the multi-select \"Open in a new tab\" context menu button") + openInNewTabOption().click() + Log.i(TAG, "clickOpenInNewTab: Clicked the multi-select \"Open in a new tab\" context menu button") ComposeTabDrawerRobot(testRule).interact() return ComposeTabDrawerRobot.Transition(testRule) } fun clickOpenInPrivateTab(testRule: HomeActivityComposeTestRule, interact: ComposeTabDrawerRobot.() -> Unit): ComposeTabDrawerRobot.Transition { - openInPrivateTabOption.click() + Log.i(TAG, "clickOpenInPrivateTab: Trying to click the multi-select \"Open in a private tab\" context menu button") + openInPrivateTabOption().click() + Log.i(TAG, "clickOpenInPrivateTab: Clicked the multi-select \"Open in a private tab\" context menu button") ComposeTabDrawerRobot(testRule).interact() return ComposeTabDrawerRobot.Transition(testRule) } fun clickShare(interact: ShareOverlayRobot.() -> Unit): ShareOverlayRobot.Transition { - multipleSelectionShareButton.click() + Log.i(TAG, "clickShare: Trying to click the share recently closed tabs button") + multipleSelectionShareButton().click() + Log.i(TAG, "clickShare: Clicked the share recently closed tabs button") ShareOverlayRobot().interact() return ShareOverlayRobot.Transition() } fun goBackToHistoryMenu(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition { + Log.i(TAG, "goBackToHistoryMenu: Trying to click navigate up toolbar button") onView(withContentDescription("Navigate up")).click() + Log.i(TAG, "goBackToHistoryMenu: Clicked navigate up toolbar button") HistoryRobot().interact() return HistoryRobot.Transition() @@ -132,8 +162,8 @@ private fun recentlyClosedTabDeleteButton() = ), ) -private val openInNewTabOption = onView(withText("Open in new tab")) +private fun openInNewTabOption() = onView(withText("Open in new tab")) -private val openInPrivateTabOption = onView(withText("Open in private tab")) +private fun openInPrivateTabOption() = onView(withText("Open in private tab")) -private val multipleSelectionShareButton = onView(withId(R.id.share_history_multi_select)) +private fun multipleSelectionShareButton() = onView(withId(R.id.share_history_multi_select)) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsRobot.kt index 84da4f5d..8e6a98de 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsRobot.kt @@ -11,15 +11,12 @@ import android.net.Uri import android.util.Log import androidx.recyclerview.widget.RecyclerView import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.RecyclerViewActions import androidx.test.espresso.intent.Intents.intended -import androidx.test.espresso.intent.matcher.IntentMatchers import androidx.test.espresso.intent.matcher.IntentMatchers.hasAction import androidx.test.espresso.intent.matcher.IntentMatchers.hasData -import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.Visibility import androidx.test.espresso.matcher.ViewMatchers.hasDescendant import androidx.test.espresso.matcher.ViewMatchers.hasSibling @@ -28,6 +25,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isNotChecked import androidx.test.espresso.matcher.ViewMatchers.withClassName +import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText @@ -69,20 +67,64 @@ import org.mozilla.fenix.ui.robots.SettingsRobot.Companion.DEFAULT_APPS_SETTINGS class SettingsRobot { // BASICS SECTION - fun verifyGeneralHeading() = assertGeneralHeading() + fun verifyGeneralHeading() { + scrollToElementByText("General") + Log.i(TAG, "verifyGeneralHeading: Trying to verify that the \"General\" heading is visible") + onView(withText("General")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyGeneralHeading: Verified that the \"General\" heading is visible") + } - fun verifySearchButton() = assertSearchButton() - fun verifyCustomizeButton() = assertCustomizeButton() - fun verifyThemeSelected() = assertThemeSelected() - fun verifyAccessibilityButton() = assertAccessibilityButton() - fun verifySetAsDefaultBrowserButton() = assertSetAsDefaultBrowserButton() + fun verifySearchButton() { + Log.i(TAG, "verifySearchButton: Waiting for $waitingTime ms until finding the \"Search\" button") + mDevice.wait(Until.findObject(By.text("Search")), waitingTime) + Log.i(TAG, "verifySearchButton: Waited for $waitingTime ms until the \"Search\" button was found") + Log.i(TAG, "verifySearchButton: Trying to verify that the \"Search\" button is visible") + onView(withText(R.string.preferences_search)) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySearchButton: Verified that the \"Search\" button is visible") + } + fun verifyCustomizeButton() { + Log.i(TAG, "verifyCustomizeButton: Trying to verify that the \"Customize\" button is visible") + onView(withText("Customize")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyCustomizeButton: Verified that the \"Customize\" button is visible") + } + + fun verifyAccessibilityButton() { + Log.i(TAG, "verifyAccessibilityButton: Trying to verify that the \"Accessibility\" button is visible") + onView(withText("Accessibility")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyAccessibilityButton: Verified that the \"Accessibility\" button is visible") + } + fun verifySetAsDefaultBrowserButton() { + scrollToElementByText("Set as default browser") + Log.i(TAG, "verifySetAsDefaultBrowserButton: Trying to verify that the \"Set as default browser\" button is visible") + onView(withText("Set as default browser")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySetAsDefaultBrowserButton: Verified that the \"Set as default browser\" button is visible") + } fun verifyTabsButton() = assertUIObjectExists(itemContainingText(getStringResource(R.string.preferences_tabs))) - fun verifyHomepageButton() = assertHomepageButton() - fun verifyAutofillButton() = assertAutofillButton() - fun verifyLanguageButton() = assertLanguageButton() + fun verifyHomepageButton() { + Log.i(TAG, "verifyHomepageButton: Trying to verify that the \"Homepage\" button is visible") + onView(withText(R.string.preferences_home_2)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyHomepageButton: Verified that the \"Homepage\" button is visible") + } + fun verifyAutofillButton() { + Log.i(TAG, "verifyAutofillButton: Trying to verify that the \"Autofill\" button is visible") + onView(withText(R.string.preferences_autofill)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyAutofillButton: Verified that the \"Autofill\" button is visible") + } + fun verifyLanguageButton() { + scrollToElementByText(getStringResource(R.string.preferences_language)) + Log.i(TAG, "verifyLanguageButton: Trying to verify that the \"Language\" button is visible") + onView(withText(R.string.preferences_language)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyLanguageButton: Verified that the \"Language\" button is visible") + } fun verifyDefaultBrowserToggle(isEnabled: Boolean) { scrollToElementByText(getStringResource(R.string.preferences_set_as_default_browser)) + Log.i(TAG, "verifyDefaultBrowserToggle: Trying to verify that the \"Set as default browser\" toggle is enabled: $isEnabled") onView(withText(R.string.preferences_set_as_default_browser)) .check( matches( @@ -98,18 +140,36 @@ class SettingsRobot { ), ), ) + Log.i(TAG, "verifyDefaultBrowserToggle: Verified that the \"Set as default browser\" toggle is enabled: $isEnabled") } fun clickDefaultBrowserSwitch() = toggleDefaultBrowserSwitch() - fun verifyAndroidDefaultAppsMenuAppears() = assertAndroidDefaultAppsMenuAppears() + fun verifyAndroidDefaultAppsMenuAppears() { + Log.i(TAG, "verifyAndroidDefaultAppsMenuAppears: Trying to verify that default browser apps dialog appears") + intended(hasAction(DEFAULT_APPS_SETTINGS_ACTION)) + Log.i(TAG, "verifyAndroidDefaultAppsMenuAppears: Verified that the default browser apps dialog appears") + } // PRIVACY SECTION - fun verifyPrivacyHeading() = assertPrivacyHeading() - - fun verifyHTTPSOnlyModeButton() = assertHTTPSOnlyModeButton() + fun verifyPrivacyHeading() { + scrollToElementByText("Privacy and security") + Log.i(TAG, "verifyPrivacyHeading: Trying to verify that the \"Privacy and security\" heading is visible") + onView(withText("Privacy and security")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyPrivacyHeading: Verified that the \"Privacy and security\" heading is visible") + } + fun verifyHTTPSOnlyModeButton() { + scrollToElementByText(getStringResource(R.string.preferences_https_only_title)) + Log.i(TAG, "verifyHTTPSOnlyModeButton: Trying to verify that the \"HTTPS-Only Mode\" button is visible") + onView( + withText(R.string.preferences_https_only_title), + ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyHTTPSOnlyModeButton: Verified that the \"HTTPS-Only Mode\" button is visible") + } fun verifyCookieBannerBlockerButton(enabled: Boolean) { scrollToElementByText(getStringResource(R.string.preferences_cookie_banner_reduction_private_mode)) + Log.i(TAG, "verifyCookieBannerBlockerButton: Trying to verify that the \"Cookie Banner Blocker in private browsing\" toggle is enabled: $enabled") onView(withText(R.string.preferences_cookie_banner_reduction_private_mode)) .check( matches( @@ -125,31 +185,167 @@ class SettingsRobot { ), ), ) - Log.i(TAG, "verifyCookieBannerBlockerButton: Verified if cookie banner blocker toggle is enabled: $enabled") + Log.i(TAG, "verifyCookieBannerBlockerButton: Verified that the \"Cookie Banner Blocker in private browsing\" toggle is enabled: $enabled") } - fun verifyEnhancedTrackingProtectionButton() = assertEnhancedTrackingProtectionButton() - fun verifyLoginsAndPasswordsButton() = assertLoginsAndPasswordsButton() - fun verifyPrivateBrowsingButton() = assertPrivateBrowsingButton() - fun verifySitePermissionsButton() = assertSitePermissionsButton() - fun verifyDeleteBrowsingDataButton() = assertDeleteBrowsingDataButton() - fun verifyDeleteBrowsingDataOnQuitButton() = assertDeleteBrowsingDataOnQuitButton() - fun verifyNotificationsButton() = assertNotificationsButton() - fun verifyDataCollectionButton() = assertDataCollectionButton() - fun verifyOpenLinksInAppsButton() = assertOpenLinksInAppsButton() - fun verifySettingsView() = assertSettingsView() - fun verifySettingsToolbar() = assertSettingsToolbar() + fun verifyEnhancedTrackingProtectionButton() { + Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Waiting for $waitingTime ms until finding the \"Privacy and Security\" heading") + mDevice.wait(Until.findObject(By.text("Privacy and Security")), waitingTime) + Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Waited for $waitingTime ms until the \"Privacy and Security\" heading was found") + Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Trying to verify that the \"Enhanced Tracking Protection\" button is visible") + onView(withId(R.id.recycler_view)).perform( + RecyclerViewActions.scrollTo( + hasDescendant(withText("Enhanced Tracking Protection")), + ), + ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Verified that the \"Enhanced Tracking Protection\" button is visible") + } + fun verifyLoginsAndPasswordsButton() { + scrollToElementByText("Logins and passwords") + Log.i(TAG, "verifyLoginsAndPasswordsButton: Trying to verify that the \"Logins and passwords\" button is visible") + onView(withText(R.string.preferences_passwords_logins_and_passwords)) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyLoginsAndPasswordsButton: Verified that the \"Logins and passwords\" button is visible") + } + fun verifyPrivateBrowsingButton() { + scrollToElementByText("Private browsing") + Log.i(TAG, "verifyPrivateBrowsingButton: Waiting for $waitingTime ms until finding the \"Private browsing\" button") + mDevice.wait(Until.findObject(By.text("Private browsing")), waitingTime) + Log.i(TAG, "verifyPrivateBrowsingButton: Waited for $waitingTime ms until the \"Private browsing\" button was found") + Log.i(TAG, "verifyPrivateBrowsingButton: Trying to verify that the \"Private browsing\" button is visible") + onView(withText("Private browsing")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyPrivateBrowsingButton: Verified that the \"Private browsing\" button is visible") + } + fun verifySitePermissionsButton() { + scrollToElementByText("Site permissions") + Log.i(TAG, "verifySitePermissionsButton: Trying to verify that the \"Site permissions\" button is visible") + onView(withText("Site permissions")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySitePermissionsButton: Verified that the \"Site permissions\" button is visible") + } + fun verifyDeleteBrowsingDataButton() { + scrollToElementByText("Delete browsing data") + Log.i(TAG, "verifyDeleteBrowsingDataButton: Trying to verify that the \"Delete browsing data\" button is visible") + onView(withText("Delete browsing data")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyDeleteBrowsingDataButton: Verified that the \"Delete browsing data\" button is visible") + } + fun verifyDeleteBrowsingDataOnQuitButton() { + scrollToElementByText("Delete browsing data on quit") + Log.i(TAG, "verifyDeleteBrowsingDataOnQuitButton: Trying to verify that the \"Delete browsing data on quit\" button is visible") + onView(withText("Delete browsing data on quit")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyDeleteBrowsingDataOnQuitButton: Verified that the \"Delete browsing data on quit\" button is visible") + } + fun verifyNotificationsButton() { + scrollToElementByText("Notifications") + Log.i(TAG, "verifyNotificationsButton: Trying to verify that the \"Notifications\" button is visible") + onView(withText("Notifications")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyNotificationsButton: Verified that the \"Notifications\" button is visible") + } + fun verifyDataCollectionButton() { + scrollToElementByText("Data collection") + Log.i(TAG, "verifyDataCollectionButton: Trying to verify that the \"Data collection\" button is visible") + onView(withText("Data collection")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyDataCollectionButton: Verified that the \"Data collection\" button is visible") + } + fun verifyOpenLinksInAppsButton() { + scrollToElementByText("Open links in apps") + Log.i(TAG, "verifyOpenLinksInAppsButton: Trying to verify that the \"Open links in apps\" button is visible") + openLinksInAppsButton() + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyOpenLinksInAppsButton: Verified that the \"Open links in apps\" button is visible") + } + fun verifySettingsView() { + scrollToElementByText("General") + Log.i(TAG, "verifySettingsView: Trying to verify that the \"General\" heading is visible") + onView(withText("General")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsView: Verified that the \"General\" heading is visible") + scrollToElementByText("Privacy and security") + Log.i(TAG, "verifySettingsView: Trying to verify that the \"Privacy and security\" heading is visible") + onView(withText("Privacy and security")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsView: Verified that the \"Privacy and security\" heading is visible") + Log.i(TAG, "verifySettingsView: Trying to perform scroll to the \"Add-ons\" button") + onView(withId(R.id.recycler_view)).perform( + RecyclerViewActions.scrollTo( + hasDescendant(withText("Add-ons")), + ), + ) + Log.i(TAG, "verifySettingsView: Performed scroll to the \"Add-ons\" button") + Log.i(TAG, "verifySettingsView: Trying to verify that the \"Add-ons\" button is completely displayed") + onView(withText("Add-ons")) + .check(matches(isCompletelyDisplayed())) + Log.i(TAG, "verifySettingsView: Verified that the \"Add-ons\" button is completely displayed") + Log.i(TAG, "verifySettingsView: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the settings list") + settingsList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "verifySettingsView: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the settings list") + Log.i(TAG, "verifySettingsView: Trying to verify that the \"About\" heading is visible") + onView(withText("About")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsView: Verified that the \"About\" heading is visible") + } + fun verifySettingsToolbar() { + Log.i(TAG, "verifySettingsToolbar: Trying to verify that the navigate up button is visible") + onView( + allOf( + withId(R.id.navigationToolbar), + hasDescendant(withContentDescription(R.string.action_bar_up_description)), + ), + ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsToolbar: Verified that the navigate up button is visible") + Log.i(TAG, "verifySettingsToolbar: Trying to verify that the \"Settings\" toolbar title is visible") + onView( + allOf( + withId(R.id.navigationToolbar), + hasDescendant(withText(R.string.settings)), + ), + ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsToolbar: Verified that the \"Settings\" toolbar title is visible") + } // ADVANCED SECTION - fun verifyAdvancedHeading() = assertAdvancedHeading() - fun verifyAddons() = assertAddonsButton() + fun verifyAdvancedHeading() { + Log.i(TAG, "verifyAdvancedHeading: Trying to perform scroll to the \"Add-ons\" button") + onView(withId(R.id.recycler_view)).perform( + RecyclerViewActions.scrollTo( + hasDescendant(withText("Add-ons")), + ), + ) + Log.i(TAG, "verifyAdvancedHeading: Performed scroll to the \"Add-ons\" button") + Log.i(TAG, "verifyAdvancedHeading: Trying to verify that the \"Add-ons\" button is completely displayed") + onView(withText("Add-ons")) + .check(matches(isCompletelyDisplayed())) + Log.i(TAG, "verifyAdvancedHeading: Verified that the \"Add-ons\" button is completely displayed") + } + fun verifyAddons() { + Log.i(TAG, "verifyAddons: Trying to perform scroll to the \"Add-ons\" button") + onView(withId(R.id.recycler_view)).perform( + RecyclerViewActions.scrollTo( + hasDescendant(withText("Add-ons")), + ), + ) + Log.i(TAG, "verifyAddons: Performed scroll to the \"Add-ons\" button") + Log.i(TAG, "verifyAddons: Trying to verify that the \"Add-ons\" button is completely displayed") + addonsManagerButton() + .check(matches(isCompletelyDisplayed())) + Log.i(TAG, "verifyAddons: Verified that the \"Add-ons\" button is completely displayed") + } - fun verifyExternalDownloadManagerButton() = + fun verifyExternalDownloadManagerButton() { + Log.i(TAG, "verifyExternalDownloadManagerButton: Trying to verify that the \"External download manager\" button is visible") onView( withText(R.string.preferences_external_download_manager), ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyExternalDownloadManagerButton: Verified that the \"External download manager\" button is visible") + } - fun verifyExternalDownloadManagerToggle(enabled: Boolean) = + fun verifyExternalDownloadManagerToggle(enabled: Boolean) { + Log.i(TAG, "verifyExternalDownloadManagerToggle: Trying to verify that the \"External download manager\" toggle is enabled: $enabled") onView(withText(R.string.preferences_external_download_manager)) .check( matches( @@ -165,8 +361,11 @@ class SettingsRobot { ), ), ) + Log.i(TAG, "verifyExternalDownloadManagerToggle: Verified that the \"External download manager\" toggle is enabled: $enabled") + } - fun verifyLeakCanaryToggle(enabled: Boolean) = + fun verifyLeakCanaryToggle(enabled: Boolean) { + Log.i(TAG, "verifyLeakCanaryToggle: Trying to verify that the \"LeakCanary\" toggle is enabled: $enabled") onView(withText(R.string.preference_leakcanary)) .check( matches( @@ -182,8 +381,11 @@ class SettingsRobot { ), ), ) + Log.i(TAG, "verifyLeakCanaryToggle: Verified that the \"LeakCanary\" toggle is enabled: $enabled") + } - fun verifyRemoteDebuggingToggle(enabled: Boolean) = + fun verifyRemoteDebuggingToggle(enabled: Boolean) { + Log.i(TAG, "verifyRemoteDebuggingToggle: Trying to verify that the \"Remote debugging via USB\" toggle is enabled: $enabled") onView(withText(R.string.preferences_remote_debugging)) .check( matches( @@ -199,53 +401,106 @@ class SettingsRobot { ), ), ) + Log.i(TAG, "verifyRemoteDebuggingToggle: Verified that the \"Remote debugging via USB\" toggle is enabled: $enabled") + } // DEVELOPER TOOLS SECTION - fun verifyRemoteDebuggingButton() = assertRemoteDebuggingButton() - fun verifyLeakCanaryButton() = assertLeakCanaryButton() + fun verifyRemoteDebuggingButton() { + scrollToElementByText("Remote debugging via USB") + Log.i(TAG, "verifyRemoteDebuggingButton: Trying to verify that the \"Remote debugging via USB\" button is visible") + onView(withText("Remote debugging via USB")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyRemoteDebuggingButton: Verified that the \"Remote debugging via USB\" button is visible") + } + fun verifyLeakCanaryButton() { + scrollToElementByText("LeakCanary") + Log.i(TAG, "verifyLeakCanaryButton: Trying to verify that the \"LeakCanary\" button is visible") + onView(withText("LeakCanary")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyLeakCanaryButton: Verified that the \"LeakCanary\" button is visible") + } // ABOUT SECTION - fun verifyAboutHeading() = assertAboutHeading() + fun verifyAboutHeading() { + Log.i(TAG, "verifyAboutHeading: Trying to perform ${LISTS_MAXSWIPES}x a scroll action to the end of the settings list") + settingsList().scrollToEnd(LISTS_MAXSWIPES) + Log.i(TAG, "verifyAboutHeading: Performed ${LISTS_MAXSWIPES}x a scroll action to the end of the settings list") + Log.i(TAG, "verifyAboutHeading: Trying to verify that the \"About\" heading is visible") + onView(withText("About")) + .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyAboutHeading: Verified that the \"About\" heading is visible") + } fun verifyRateOnGooglePlay() = assertUIObjectExists(rateOnGooglePlayHeading()) fun verifyAboutFirefoxPreview() = assertUIObjectExists(aboutFirefoxHeading()) - fun verifyGooglePlayRedirect() = assertGooglePlayRedirect() + fun verifyGooglePlayRedirect() { + if (isPackageInstalled(GOOGLE_PLAY_SERVICES)) { + Log.i(TAG, "verifyGooglePlayRedirect: $GOOGLE_PLAY_SERVICES is installed") + try { + Log.i(TAG, "verifyGooglePlayRedirect: Trying to verify intent to: $GOOGLE_PLAY_SERVICES") + intended( + allOf( + hasAction(Intent.ACTION_VIEW), + hasData(Uri.parse(SupportUtils.RATE_APP_URL)), + ), + ) + Log.i(TAG, "verifyGooglePlayRedirect: Verified intent to: $GOOGLE_PLAY_SERVICES") + } catch (e: AssertionFailedError) { + Log.i(TAG, "verifyGooglePlayRedirect: AssertionFailedError caught, executing fallback methods") + BrowserRobot().verifyRateOnGooglePlayURL() + } + } else { + BrowserRobot().verifyRateOnGooglePlayURL() + } + } fun verifySettingsOptionSummary(setting: String, summary: String) { scrollToElementByText(setting) + Log.i(TAG, "verifySettingsOptionSummary: Trying to verify that setting: $setting with summary:$summary is visible") onView( allOf( withText(setting), hasSibling(withText(summary)), ), ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifySettingsOptionSummary: Verified that setting: $setting with summary:$summary is visible") } class Transition { fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBack: Trying to click the navigate up button") goBackButton().click() + Log.i(TAG, "goBack: Clicked the navigate up button") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun goBackToOnboardingScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBackToOnboardingScreen: Trying to click device back button") mDevice.pressBack() + Log.i(TAG, "goBackToOnboardingScreen: Clicked device back button") + Log.i(TAG, "goBackToOnboardingScreen: Waiting for device to be idle for $waitingTimeShort ms") mDevice.waitForIdle(waitingTimeShort) + Log.i(TAG, "goBackToOnboardingScreen: Device was idle for $waitingTimeShort ms") HomeScreenRobot().interact() return HomeScreenRobot.Transition() } fun goBackToBrowser(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { + Log.i(TAG, "goBackToBrowser: Trying to click the navigate up button") goBackButton().click() + Log.i(TAG, "goBackToBrowser: Clicked the navigate up button") BrowserRobot().interact() return BrowserRobot.Transition() } fun openAboutFirefoxPreview(interact: SettingsSubMenuAboutRobot.() -> Unit): SettingsSubMenuAboutRobot.Transition { + Log.i(TAG, "openAboutFirefoxPreview: Trying to click the \"About Firefox\" button") aboutFirefoxHeading().click() + Log.i(TAG, "openAboutFirefoxPreview: Clicked the \"About Firefox\" button") SettingsSubMenuAboutRobot().interact() return SettingsSubMenuAboutRobot.Transition() } @@ -253,8 +508,12 @@ class SettingsRobot { fun openSearchSubMenu(interact: SettingsSubMenuSearchRobot.() -> Unit): SettingsSubMenuSearchRobot.Transition { itemWithText(getStringResource(R.string.preferences_search)) .also { + Log.i(TAG, "openSearchSubMenu: Waiting for $waitingTimeShort ms for the \"Search\" button to exist") it.waitForExists(waitingTimeShort) + Log.i(TAG, "openSearchSubMenu: Waited for $waitingTimeShort ms for the \"Search\" button to exist") + Log.i(TAG, "openSearchSubMenu: Trying to click the \"Search\" button") it.click() + Log.i(TAG, "openSearchSubMenu: Clicked the \"Search\" button") } SettingsSubMenuSearchRobot().interact() @@ -262,8 +521,9 @@ class SettingsRobot { } fun openCustomizeSubMenu(interact: SettingsSubMenuCustomizeRobot.() -> Unit): SettingsSubMenuCustomizeRobot.Transition { - fun customizeButton() = onView(withText("Customize")) - customizeButton().click() + Log.i(TAG, "openCustomizeSubMenu: Trying to click the \"Customize\" button") + onView(withText("Customize")).click() + Log.i(TAG, "openCustomizeSubMenu: Clicked the \"Customize\" button") SettingsSubMenuCustomizeRobot().interact() return SettingsSubMenuCustomizeRobot.Transition() @@ -272,8 +532,12 @@ class SettingsRobot { fun openTabsSubMenu(interact: SettingsSubMenuTabsRobot.() -> Unit): SettingsSubMenuTabsRobot.Transition { itemWithText(getStringResource(R.string.preferences_tabs)) .also { + Log.i(TAG, "openTabsSubMenu: Waiting for $waitingTime ms for the \"Tabs\" button to exist") it.waitForExists(waitingTime) + Log.i(TAG, "openTabsSubMenu: Waited for $waitingTime ms for the \"Tabs\" button to exist") + Log.i(TAG, "openTabsSubMenu: Trying to click the \"Tabs\" button and wait for $waitingTimeShort ms for a new window") it.clickAndWaitForNewWindow(waitingTimeShort) + Log.i(TAG, "openTabsSubMenu: Clicked the \"Tabs\" button and wait for $waitingTimeShort ms for a new window") } SettingsSubMenuTabsRobot().interact() @@ -281,8 +545,12 @@ class SettingsRobot { } fun openHomepageSubMenu(interact: SettingsSubMenuHomepageRobot.() -> Unit): SettingsSubMenuHomepageRobot.Transition { + Log.i(TAG, "openHomepageSubMenu: Waiting for $waitingTime ms for the \"Homepage\" button to exist") mDevice.findObject(UiSelector().textContains("Homepage")).waitForExists(waitingTime) + Log.i(TAG, "openHomepageSubMenu: Waited for $waitingTime ms for the \"Homepage\" button to exist") + Log.i(TAG, "openHomepageSubMenu: Trying to click the \"Homepage\" button") onView(withText(R.string.preferences_home_2)).click() + Log.i(TAG, "openHomepageSubMenu: Clicked the \"Homepage\" button") SettingsSubMenuHomepageRobot().interact() return SettingsSubMenuHomepageRobot.Transition() @@ -291,10 +559,12 @@ class SettingsRobot { fun openAutofillSubMenu(interact: SettingsSubMenuAutofillRobot.() -> Unit): SettingsSubMenuAutofillRobot.Transition { mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_autofill))) .also { - Log.i(TAG, "openAutofillSubMenu: Looking for \"Autofill\" settings button") + Log.i(TAG, "openAutofillSubMenu: Waiting for $waitingTime ms for the \"Autofill\" button to exist") it.waitForExists(waitingTime) + Log.i(TAG, "openAutofillSubMenu: Waited for $waitingTime ms for the \"Autofill\" button to exist") + Log.i(TAG, "openAutofillSubMenu: Trying to click the \"Autofill\" button") it.click() - Log.i(TAG, "openAutofillSubMenu: Clicked \"Autofill\" settings button") + Log.i(TAG, "openAutofillSubMenu: Clicked the \"Autofill\" button") } SettingsSubMenuAutofillRobot().interact() @@ -303,11 +573,12 @@ class SettingsRobot { fun openAccessibilitySubMenu(interact: SettingsSubMenuAccessibilityRobot.() -> Unit): SettingsSubMenuAccessibilityRobot.Transition { scrollToElementByText("Accessibility") - - fun accessibilityButton() = onView(withText("Accessibility")) - accessibilityButton() - .check(matches(isDisplayed())) - .click() + Log.i(TAG, "openAccessibilitySubMenu: Trying to verify that the \"Accessibility\" button is displayed") + onView(withText("Accessibility")).check(matches(isDisplayed())) + Log.i(TAG, "openAccessibilitySubMenu: Verified that the \"Accessibility\" button is displayed") + Log.i(TAG, "openAccessibilitySubMenu: Trying to click the \"Accessibility\" button") + onView(withText("Accessibility")).click() + Log.i(TAG, "openAccessibilitySubMenu: Clicked the \"Accessibility\" button") SettingsSubMenuAccessibilityRobot().interact() return SettingsSubMenuAccessibilityRobot.Transition() @@ -317,6 +588,7 @@ class SettingsRobot { localizedText: String = getStringResource(R.string.preferences_language), interact: SettingsSubMenuLanguageRobot.() -> Unit, ): SettingsSubMenuLanguageRobot.Transition { + Log.i(TAG, "openLanguageSubMenu: Trying to click the $localizedText button") onView(withId(R.id.recycler_view)) .perform( RecyclerViewActions.actionOnItem( @@ -326,6 +598,7 @@ class SettingsRobot { ViewActions.click(), ), ) + Log.i(TAG, "openLanguageSubMenu: Clicked the $localizedText button") SettingsSubMenuLanguageRobot().interact() return SettingsSubMenuLanguageRobot.Transition() @@ -333,8 +606,9 @@ class SettingsRobot { fun openSetDefaultBrowserSubMenu(interact: SettingsSubMenuSetDefaultBrowserRobot.() -> Unit): SettingsSubMenuSetDefaultBrowserRobot.Transition { scrollToElementByText("Set as default browser") - fun setDefaultBrowserButton() = onView(withText("Set as default browser")) - setDefaultBrowserButton().click() + Log.i(TAG, "openSetDefaultBrowserSubMenu: Trying to click the \"Set as default browser\" button") + onView(withText("Set as default browser")).click() + Log.i(TAG, "openSetDefaultBrowserSubMenu: Clicked the \"Set as default browser\" button") SettingsSubMenuSetDefaultBrowserRobot().interact() return SettingsSubMenuSetDefaultBrowserRobot.Transition() @@ -342,9 +616,9 @@ class SettingsRobot { fun openEnhancedTrackingProtectionSubMenu(interact: SettingsSubMenuEnhancedTrackingProtectionRobot.() -> Unit): SettingsSubMenuEnhancedTrackingProtectionRobot.Transition { scrollToElementByText("Enhanced Tracking Protection") - fun enhancedTrackingProtectionButton() = - onView(withText("Enhanced Tracking Protection")) - enhancedTrackingProtectionButton().click() + Log.i(TAG, "openEnhancedTrackingProtectionSubMenu: Trying to click the \"Enhanced Tracking Protection\" button") + onView(withText("Enhanced Tracking Protection")).click() + Log.i(TAG, "openEnhancedTrackingProtectionSubMenu: Clicked the \"Enhanced Tracking Protection\" button") SettingsSubMenuEnhancedTrackingProtectionRobot().interact() return SettingsSubMenuEnhancedTrackingProtectionRobot.Transition() @@ -352,16 +626,18 @@ class SettingsRobot { fun openLoginsAndPasswordSubMenu(interact: SettingsSubMenuLoginsAndPasswordRobot.() -> Unit): SettingsSubMenuLoginsAndPasswordRobot.Transition { scrollToElementByText("Logins and passwords") - fun loginsAndPasswordsButton() = onView(withText("Logins and passwords")) - loginsAndPasswordsButton().click() + Log.i(TAG, "openLoginsAndPasswordSubMenu: Trying to click the \"Logins and passwords\" button") + onView(withText("Logins and passwords")).click() + Log.i(TAG, "openLoginsAndPasswordSubMenu: Clicked the \"Logins and passwords\" button") SettingsSubMenuLoginsAndPasswordRobot().interact() return SettingsSubMenuLoginsAndPasswordRobot.Transition() } fun openTurnOnSyncMenu(interact: SettingsTurnOnSyncRobot.() -> Unit): SettingsTurnOnSyncRobot.Transition { - fun turnOnSyncButton() = onView(withText("Sync and save your data")) - turnOnSyncButton().click() + Log.i(TAG, "openTurnOnSyncMenu: Trying to click the \"Sync and save your data\" button") + onView(withText("Sync and save your data")).click() + Log.i(TAG, "openTurnOnSyncMenu: Clicked the \"Sync and save your data\" button") SettingsTurnOnSyncRobot().interact() return SettingsTurnOnSyncRobot.Transition() @@ -369,8 +645,9 @@ class SettingsRobot { fun openPrivateBrowsingSubMenu(interact: SettingsSubMenuPrivateBrowsingRobot.() -> Unit): SettingsSubMenuPrivateBrowsingRobot.Transition { scrollToElementByText("Private browsing") - fun privateBrowsingButton() = mDevice.findObject(textContains("Private browsing")) - privateBrowsingButton().click() + Log.i(TAG, "openPrivateBrowsingSubMenu: Trying to click the \"Private browsing\" button") + mDevice.findObject(textContains("Private browsing")).click() + Log.i(TAG, "openPrivateBrowsingSubMenu: Clicked the \"Private browsing\" button") SettingsSubMenuPrivateBrowsingRobot().interact() return SettingsSubMenuPrivateBrowsingRobot.Transition() @@ -378,8 +655,9 @@ class SettingsRobot { fun openSettingsSubMenuSitePermissions(interact: SettingsSubMenuSitePermissionsRobot.() -> Unit): SettingsSubMenuSitePermissionsRobot.Transition { scrollToElementByText("Site permissions") - fun sitePermissionButton() = mDevice.findObject(textContains("Site permissions")) - sitePermissionButton().click() + Log.i(TAG, "openSettingsSubMenuSitePermissions: Trying to click the \"Site permissions\" button") + mDevice.findObject(textContains("Site permissions")).click() + Log.i(TAG, "openSettingsSubMenuSitePermissions: Clicked the \"Site permissions\" button") SettingsSubMenuSitePermissionsRobot().interact() return SettingsSubMenuSitePermissionsRobot.Transition() @@ -387,8 +665,9 @@ class SettingsRobot { fun openSettingsSubMenuDeleteBrowsingData(interact: SettingsSubMenuDeleteBrowsingDataRobot.() -> Unit): SettingsSubMenuDeleteBrowsingDataRobot.Transition { scrollToElementByText("Delete browsing data") - fun deleteBrowsingDataButton() = mDevice.findObject(textContains("Delete browsing data")) - deleteBrowsingDataButton().click() + Log.i(TAG, "openSettingsSubMenuDeleteBrowsingData: Trying to click the \"Delete browsing data\" button") + mDevice.findObject(textContains("Delete browsing data")).click() + Log.i(TAG, "openSettingsSubMenuDeleteBrowsingData: Clicked the \"Delete browsing data\" button") SettingsSubMenuDeleteBrowsingDataRobot().interact() return SettingsSubMenuDeleteBrowsingDataRobot.Transition() @@ -396,8 +675,9 @@ class SettingsRobot { fun openSettingsSubMenuDeleteBrowsingDataOnQuit(interact: SettingsSubMenuDeleteBrowsingDataOnQuitRobot.() -> Unit): SettingsSubMenuDeleteBrowsingDataOnQuitRobot.Transition { scrollToElementByText("Delete browsing data on quit") - fun deleteBrowsingDataOnQuitButton() = mDevice.findObject(textContains("Delete browsing data on quit")) - deleteBrowsingDataOnQuitButton().click() + Log.i(TAG, "openSettingsSubMenuDeleteBrowsingDataOnQuit: Trying to click the \"Delete browsing data on quit\" button") + mDevice.findObject(textContains("Delete browsing data on quit")).click() + Log.i(TAG, "openSettingsSubMenuDeleteBrowsingDataOnQuit: Clicked the \"Delete browsing data on quit\" button") SettingsSubMenuDeleteBrowsingDataOnQuitRobot().interact() return SettingsSubMenuDeleteBrowsingDataOnQuitRobot.Transition() @@ -405,8 +685,9 @@ class SettingsRobot { fun openSettingsSubMenuNotifications(interact: SystemSettingsRobot.() -> Unit): SystemSettingsRobot.Transition { scrollToElementByText("Notifications") - fun notificationsButton() = mDevice.findObject(textContains("Notifications")) - notificationsButton().click() + Log.i(TAG, "openSettingsSubMenuNotifications: Trying to click the \"Notifications\" button") + mDevice.findObject(textContains("Notifications")).click() + Log.i(TAG, "openSettingsSubMenuNotifications: Clicked the \"Notifications\" button") SystemSettingsRobot().interact() return SystemSettingsRobot.Transition() @@ -414,22 +695,27 @@ class SettingsRobot { fun openSettingsSubMenuDataCollection(interact: SettingsSubMenuDataCollectionRobot.() -> Unit): SettingsSubMenuDataCollectionRobot.Transition { scrollToElementByText("Data collection") - fun dataCollectionButton() = mDevice.findObject(textContains("Data collection")) - dataCollectionButton().click() + Log.i(TAG, "openSettingsSubMenuDataCollection: Trying to click the \"Data collection\" button") + mDevice.findObject(textContains("Data collection")).click() + Log.i(TAG, "openSettingsSubMenuDataCollection: Clicked the \"Data collection\" button") SettingsSubMenuDataCollectionRobot().interact() return SettingsSubMenuDataCollectionRobot.Transition() } fun openAddonsManagerMenu(interact: SettingsSubMenuAddonsManagerRobot.() -> Unit): SettingsSubMenuAddonsManagerRobot.Transition { + Log.i(TAG, "openAddonsManagerMenu: Trying to click the \"Add-ons\" button") addonsManagerButton().click() + Log.i(TAG, "openAddonsManagerMenu: Clicked the \"Add-ons\" button") SettingsSubMenuAddonsManagerRobot().interact() return SettingsSubMenuAddonsManagerRobot.Transition() } fun openOpenLinksInAppsMenu(interact: SettingsSubMenuOpenLinksInAppsRobot.() -> Unit): SettingsSubMenuOpenLinksInAppsRobot.Transition { + Log.i(TAG, "openOpenLinksInAppsMenu: Trying to click the \"Open links in apps\" button") openLinksInAppsButton().click() + Log.i(TAG, "openOpenLinksInAppsMenu: Clicked the \"Open links in apps\" button") SettingsSubMenuOpenLinksInAppsRobot().interact() return SettingsSubMenuOpenLinksInAppsRobot.Transition() @@ -437,7 +723,9 @@ class SettingsRobot { fun openHttpsOnlyModeMenu(interact: SettingsSubMenuHttpsOnlyModeRobot.() -> Unit): SettingsSubMenuHttpsOnlyModeRobot.Transition { scrollToElementByText("HTTPS-Only Mode") + Log.i(TAG, "openHttpsOnlyModeMenu: Trying to click the \"HTTPS-Only Mode\" button") onView(withText(getStringResource(R.string.preferences_https_only_title))).click() + Log.i(TAG, "openHttpsOnlyModeMenu: Clicked the \"HTTPS-Only Mode\" button") mDevice.waitNotNull( Until.findObjects(By.res("$packageName:id/https_only_switch")), waitingTime, @@ -466,189 +754,15 @@ fun settingsScreen(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition return SettingsRobot.Transition() } -private fun assertSettingsView() { - // verify that we are in the correct library view - assertGeneralHeading() - assertPrivacyHeading() - assertAdvancedHeading() - assertAboutHeading() -} - -// GENERAL SECTION - -private fun assertSettingsToolbar() = - onView( - CoreMatchers.allOf( - withId(R.id.navigationToolbar), - hasDescendant(ViewMatchers.withContentDescription(R.string.action_bar_up_description)), - hasDescendant(withText(R.string.settings)), - ), - ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertGeneralHeading() { - scrollToElementByText("General") - onView(withText("General")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertSearchButton() { - mDevice.wait(Until.findObject(By.text("Search")), waitingTime) - onView(withText(R.string.preferences_search)) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertHomepageButton() = - onView(withText(R.string.preferences_home_2)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertAutofillButton() = - onView(withText(R.string.preferences_autofill)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertLanguageButton() { - scrollToElementByText(getStringResource(R.string.preferences_language)) - onView(withText(R.string.preferences_language)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertCustomizeButton() = onView(withText("Customize")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertThemeSelected() = onView(withText("Light")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertAccessibilityButton() = onView(withText("Accessibility")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -private fun assertSetAsDefaultBrowserButton() { - scrollToElementByText("Set as default browser") - onView(withText("Set as default browser")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - private fun toggleDefaultBrowserSwitch() { scrollToElementByText("Privacy and security") + Log.i(TAG, "toggleDefaultBrowserSwitch: Trying to click the \"Set as default browser\" button") onView(withText("Set as default browser")).perform(ViewActions.click()) -} - -private fun assertAndroidDefaultAppsMenuAppears() { - intended(IntentMatchers.hasAction(DEFAULT_APPS_SETTINGS_ACTION)) -} - -// PRIVACY SECTION -private fun assertPrivacyHeading() { - scrollToElementByText("Privacy and security") - onView(withText("Privacy and security")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertHTTPSOnlyModeButton() { - scrollToElementByText(getStringResource(R.string.preferences_https_only_title)) - onView( - withText(R.string.preferences_https_only_title), - ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertEnhancedTrackingProtectionButton() { - mDevice.wait(Until.findObject(By.text("Privacy and Security")), waitingTime) - onView(withId(R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Enhanced Tracking Protection")), - ), - ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertLoginsAndPasswordsButton() { - scrollToElementByText("Logins and passwords") - onView(withText(R.string.preferences_passwords_logins_and_passwords)) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertPrivateBrowsingButton() { - scrollToElementByText("Private browsing") - mDevice.wait(Until.findObject(By.text("Private browsing")), waitingTime) - onView(withText("Private browsing")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertSitePermissionsButton() { - scrollToElementByText("Site permissions") - onView(withText("Site permissions")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertDeleteBrowsingDataButton() { - scrollToElementByText("Delete browsing data") - onView(withText("Delete browsing data")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertDeleteBrowsingDataOnQuitButton() { - scrollToElementByText("Delete browsing data on quit") - onView(withText("Delete browsing data on quit")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertNotificationsButton() { - scrollToElementByText("Notifications") - onView(withText("Notifications")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertDataCollectionButton() { - scrollToElementByText("Data collection") - onView(withText("Data collection")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "toggleDefaultBrowserSwitch: Clicked the \"Set as default browser\" button") } private fun openLinksInAppsButton() = onView(withText(R.string.preferences_open_links_in_apps)) -private fun assertOpenLinksInAppsButton() { - scrollToElementByText("Open links in apps") - openLinksInAppsButton() - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - Log.i(TAG, "clickOpenLinksInAppsGoToSettingsCFRButton: Verified \"Open links in apps\" setting option") -} - -// ADVANCED SECTION -private fun assertAdvancedHeading() { - onView(withId(R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Add-ons")), - ), - ) - - onView(withText("Add-ons")) - .check(matches(isCompletelyDisplayed())) -} - -private fun assertAddonsButton() { - onView(withId(R.id.recycler_view)).perform( - RecyclerViewActions.scrollTo( - hasDescendant(withText("Add-ons")), - ), - ) - - addonsManagerButton() - .check(matches(isCompletelyDisplayed())) -} - -private fun assertRemoteDebuggingButton() { - scrollToElementByText("Remote debugging via USB") - onView(withText("Remote debugging via USB")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -private fun assertLeakCanaryButton() { - scrollToElementByText("LeakCanary") - onView(withText("LeakCanary")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - -// ABOUT SECTION -private fun assertAboutHeading(): ViewInteraction { - settingsList().scrollToEnd(LISTS_MAXSWIPES) - return onView(withText("About")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - private fun rateOnGooglePlayHeading(): UiObject { val rateOnGooglePlay = mDevice.findObject(UiSelector().text("Rate on Google Play")) settingsList().scrollToEnd(LISTS_MAXSWIPES) @@ -679,27 +793,10 @@ fun clickRateButtonGooglePlay() { rateOnGooglePlayHeading().click() } -private fun assertGooglePlayRedirect() { - if (isPackageInstalled(GOOGLE_PLAY_SERVICES)) { - try { - intended( - allOf( - hasAction(Intent.ACTION_VIEW), - hasData(Uri.parse(SupportUtils.RATE_APP_URL)), - ), - ) - } catch (e: AssertionFailedError) { - BrowserRobot().verifyRateOnGooglePlayURL() - } - } else { - BrowserRobot().verifyRateOnGooglePlayURL() - } -} - private fun addonsManagerButton() = onView(withText(R.string.preferences_addons)) private fun goBackButton() = - onView(CoreMatchers.allOf(ViewMatchers.withContentDescription("Navigate up"))) + onView(CoreMatchers.allOf(withContentDescription("Navigate up"))) private fun settingsList() = UiScrollable(UiSelector().resourceId("$packageName:id/recycler_view")) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAccessibilityRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAccessibilityRobot.kt index 26655f2d..77c5650a 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAccessibilityRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAccessibilityRobot.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import android.view.KeyEvent import android.view.KeyEvent.ACTION_DOWN import android.view.KeyEvent.KEYCODE_DPAD_LEFT @@ -28,7 +29,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.platform.app.InstrumentationRegistry import org.hamcrest.CoreMatchers.allOf import org.hamcrest.Matcher +import org.junit.Assert.assertTrue import org.mozilla.fenix.components.Components +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.assertIsEnabled import org.mozilla.fenix.helpers.isEnabled @@ -50,22 +53,68 @@ class SettingsSubMenuAccessibilityRobot { const val TEXT_SIZE = 16f } - fun verifyAutomaticFontSizingMenuItems() = assertAutomaticFontSizingMenuItems() - fun clickFontSizingSwitch() = toggleFontSizingSwitch() - fun verifyEnabledMenuItems() = assertEnabledMenuItems() + fun verifyEnabledMenuItems() { + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the \"Font Size\" title is visible") + onView(withText("Font Size")).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the \"Font Size\" title is visible") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the \"Font Size\" title is enabled") + onView(withText("Font Size")).check(matches(isEnabled(true))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the \"Font Size\" title is enabled") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the \"Make text on websites larger or smaller\" summary is visible") + onView(withText("Make text on websites larger or smaller")).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the \"Make text on websites larger or smaller\" summary is visible") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the \"Make text on websites larger or smaller\" summary is enabled") + onView(withText("Make text on websites larger or smaller")).check(matches(isEnabled(true))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the \"Make text on websites larger or smaller\" summary is enabled") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify the \"This is sample text. It is here to show how text will appear\" sample text") + onView(withId(org.mozilla.fenix.R.id.sampleText)) + .check(matches(withText("This is sample text. It is here to show how text will appear when you increase or decrease the size with this setting."))) + Log.i(TAG, "verifyEnabledMenuItems: Verified the \"This is sample text. It is here to show how text will appear\" sample text") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the seek bar value is set to 100%") + onView(withId(org.mozilla.fenix.R.id.seekbar_value)).check(matches(withText("100%"))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the seek bar value is set to 100%") + Log.i(TAG, "verifyEnabledMenuItems: Trying to verify that the seek bar is visible") + onView(withId(org.mozilla.fenix.R.id.seekbar)).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyEnabledMenuItems: Verified that the seek bar is visible") + } - fun verifyMenuItemsAreDisabled() = assertMenuItemsAreDisabled() + fun verifyMenuItemsAreDisabled() { + Log.i(TAG, "verifyMenuItemsAreDisabled: Trying to verify that the \"Font Size\" title is not enabled") + onView(withText("Font Size")).assertIsEnabled(false) + Log.i(TAG, "verifyMenuItemsAreDisabled: Verified that the \"Font Size\" title is not enabled") + Log.i(TAG, "verifyMenuItemsAreDisabled: Trying to verify that the \"Make text on websites larger or smaller\" summary is not enabled") + onView(withText("Make text on websites larger or smaller")).assertIsEnabled(false) + Log.i(TAG, "verifyMenuItemsAreDisabled: Verified that the \"Make text on websites larger or smaller\" summary is not enabled") + Log.i(TAG, "verifyMenuItemsAreDisabled: Trying to verify that the \"This is sample text. It is here to show how text will appear\" sample text is not enabled") + onView(withId(org.mozilla.fenix.R.id.sampleText)).assertIsEnabled(false) + Log.i(TAG, "verifyMenuItemsAreDisabled: Verified that the \"This is sample text. It is here to show how text will appear\" sample text is not enabled") + Log.i(TAG, "verifyMenuItemsAreDisabled: Trying to verify that the seek bar value is not enabled") + onView(withId(org.mozilla.fenix.R.id.seekbar_value)).assertIsEnabled(false) + Log.i(TAG, "verifyMenuItemsAreDisabled: Verified that the seek bar value is not enabled") + Log.i(TAG, "verifyMenuItemsAreDisabled: Trying to verify that the seek bar is not enabled") + onView(withId(org.mozilla.fenix.R.id.seekbar)).assertIsEnabled(false) + Log.i(TAG, "verifyMenuItemsAreDisabled: Verified that the seek bar is not enabled") + } fun changeTextSizeSlider(seekBarPercentage: Int) = adjustTextSizeSlider(seekBarPercentage) - fun verifyTextSizePercentage(textSize: Int) = assertTextSizePercentage(textSize) + fun verifyTextSizePercentage(textSize: Int) { + Log.i(TAG, "verifyTextSizePercentage: Trying to verify that the text size percentage is set to: $textSize") + onView(withId(org.mozilla.fenix.R.id.sampleText)) + .check(textSizePercentageEquals(textSize)) + Log.i(TAG, "verifyTextSizePercentage: Verified that the text size percentage is set to: $textSize") + } class Transition { fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition { + Log.i(TAG, "goBack: Waiting for device to be idle") mDevice.waitForIdle() + Log.i(TAG, "goBack: Waited for device to be idle") + Log.i(TAG, "goBack: Trying to click the navigate up toolbar button") goBackButton().perform(click()) + Log.i(TAG, "goBack: Clicked the navigate up toolbar button") SettingsRobot().interact() return SettingsRobot.Transition() @@ -73,69 +122,20 @@ class SettingsSubMenuAccessibilityRobot { } } -private fun assertAutomaticFontSizingMenuItems() { - onView(withText("Automatic font sizing")) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - val strFont = "Font size will match your Android settings. Disable to manage font size here." - onView(withText(strFont)) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -} - private fun toggleFontSizingSwitch() { + Log.i(TAG, "toggleFontSizingSwitch: Trying to click the \"Automatic font sizing\" toggle") // Toggle font size to off onView(withText("Automatic font sizing")) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) .perform(click()) -} - -private fun assertEnabledMenuItems() { - assertFontSize() - assertSliderBar() -} - -private fun assertFontSize() { - val view = onView(withText("Font Size")) - view.check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - .check(matches(isEnabled(true))) - val strFont = "Make text on websites larger or smaller" - onView(withText(strFont)) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - .check(matches(isEnabled(true))) -} - -private fun assertSliderBar() { - onView(withId(org.mozilla.fenix.R.id.sampleText)) - .check(matches(withText("This is sample text. It is here to show how text will appear when you increase or decrease the size with this setting."))) - - onView(withId(org.mozilla.fenix.R.id.seekbar_value)) - .check(matches(withText("100%"))) - - onView(withId(org.mozilla.fenix.R.id.seekbar)) - .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "toggleFontSizingSwitch: Clicked the \"Automatic font sizing\" toggle") } private fun adjustTextSizeSlider(seekBarPercentage: Int) { + Log.i(TAG, "adjustTextSizeSlider: Trying to set the seek bar value to: $seekBarPercentage") onView(withId(org.mozilla.fenix.R.id.seekbar)) .perform(SeekBarChangeProgressViewAction(seekBarPercentage)) -} - -private fun assertTextSizePercentage(textSize: Int) { - onView(withId(org.mozilla.fenix.R.id.sampleText)) - .check(textSizePercentageEquals(textSize)) -} - -private fun assertMenuItemsAreDisabled() { - onView(withText("Font Size")).assertIsEnabled(false) - - val strFont = "Make text on websites larger or smaller" - - onView(withText(strFont)).assertIsEnabled(false) - - onView(withId(org.mozilla.fenix.R.id.sampleText)).assertIsEnabled(false) - - onView(withId(org.mozilla.fenix.R.id.seekbar_value)).assertIsEnabled(false) - - onView(withId(org.mozilla.fenix.R.id.seekbar)).assertIsEnabled(false) + Log.i(TAG, "adjustTextSizeSlider: Seek bar value was set to: $seekBarPercentage") } private fun goBackButton() = @@ -189,9 +189,11 @@ fun calculateStepSizeFromPercentage(textSizePercentage: Int): Int { return ((textSizePercentage - MIN_VALUE) / STEP_SIZE) } -fun checkTextSizeOnWebsite(textSizePercentage: Int, components: Components): Boolean { +fun checkTextSizeOnWebsite(textSizePercentage: Int, components: Components) { + Log.i(TAG, "checkTextSizeOnWebsite: Trying to verify that text size on website is: $textSizePercentage") // Checks the Gecko engine settings for the font size val textSize = calculateStepSizeFromPercentage(textSizePercentage) val newTextScale = ((textSize * STEP_SIZE) + MIN_VALUE).toFloat() / DECIMAL_CONVERSION - return components.core.engine.settings.fontSizeFactor == newTextScale + assertTrue("$TAG: text size on website was not set to: $textSizePercentage", components.core.engine.settings.fontSizeFactor == newTextScale) + Log.i(TAG, "checkTextSizeOnWebsite: Verified that text size on website is: $textSizePercentage") } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.kt index 799f3a99..43aceae2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui.robots +import android.util.Log import android.view.View import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches @@ -17,6 +18,7 @@ import org.hamcrest.CoreMatchers.allOf import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.helpers.AppAndSystemHelper.registerAndCleanupIdlingResources +import org.mozilla.fenix.helpers.Constants.TAG import org.mozilla.fenix.helpers.ViewVisibilityIdlingResource import org.mozilla.fenix.helpers.click @@ -28,8 +30,9 @@ class SettingsSubMenuAddonsManagerAddonDetailedMenuRobot { class Transition { fun goBack(interact: SettingsSubMenuAddonsManagerRobot.() -> Unit): SettingsSubMenuAddonsManagerRobot.Transition { - fun goBackButton() = onView(allOf(withContentDescription("Navigate up"))) - goBackButton().click() + Log.i(TAG, "goBack: Trying to click the navigate up button") + onView(allOf(withContentDescription("Navigate up"))).click() + Log.i(TAG, "goBack: Clicked the navigate up button") SettingsSubMenuAddonsManagerRobot().interact() return SettingsSubMenuAddonsManagerRobot.Transition() @@ -42,8 +45,12 @@ class SettingsSubMenuAddonsManagerAddonDetailedMenuRobot { View.VISIBLE, ), ) { + Log.i(TAG, "removeAddon: Trying to verify that the remove add-on button is visible") removeAddonButton().check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + Log.i(TAG, "removeAddon: Verified that the remove add-on button is visible") + Log.i(TAG, "removeAddon: Trying to click the remove add-on button") removeAddonButton().click() + Log.i(TAG, "removeAddon: Clicked the remove add-on button") } SettingsSubMenuAddonsManagerRobot().interact() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt index 3c73bc82..95ea5f4c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt @@ -55,12 +55,15 @@ class SettingsSubMenuAddonsManagerRobot { fun verifyAddonsListIsDisplayed(shouldBeDisplayed: Boolean) = assertUIObjectExists(addonsList(), exists = shouldBeDisplayed) - fun verifyAddonDownloadOverlay() = + fun verifyAddonDownloadOverlay() { + Log.i(TAG, "verifyAddonDownloadOverlay: Trying to verify that the \"Downloading and verifying add-on\" prompt is displayed") onView(withText(R.string.mozac_add_on_install_progress_caption)).check(matches(isDisplayed())) + Log.i(TAG, "verifyAddonDownloadOverlay: Verified that the \"Downloading and verifying add-on\" prompt is displayed") + } fun verifyAddonPermissionPrompt(addonName: String) { mDevice.waitNotNull(Until.findObject(By.text("Add $addonName?")), waitingTime) - + Log.i(TAG, "verifyAddonPermissionPrompt: Trying to verify that the add-ons permission prompt items are displayed") onView( allOf( withText("Add $addonName?"), @@ -71,11 +74,14 @@ class SettingsSubMenuAddonsManagerRobot { ) .inRoot(isDialog()) .check(matches(isDisplayed())) + Log.i(TAG, "verifyAddonPermissionPrompt: Verified that the add-ons permission prompt items are displayed") } fun clickInstallAddon(addonName: String) { - Log.i(TAG, "clickInstallAddon: Looking for $addonName install button") + Log.i(TAG, "clickInstallAddon: Waiting for $waitingTime ms for add-ons list to exist") addonsList().waitForExists(waitingTime) + Log.i(TAG, "clickInstallAddon: Waited for $waitingTime ms for add-ons list to exist") + Log.i(TAG, "clickInstallAddon: Trying to scroll into view the install $addonName button") addonsList().scrollIntoView( mDevice.findObject( UiSelector() @@ -83,6 +89,8 @@ class SettingsSubMenuAddonsManagerRobot { .childSelector(UiSelector().text(addonName)), ), ) + Log.i(TAG, "clickInstallAddon: Scrolled into view the install $addonName button") + Log.i(TAG, "clickInstallAddon: Trying to ensure the full visibility of the the install $addonName button") addonsList().ensureFullyVisible( mDevice.findObject( UiSelector() @@ -90,22 +98,24 @@ class SettingsSubMenuAddonsManagerRobot { .childSelector(UiSelector().text(addonName)), ), ) - Log.i(TAG, "clickInstallAddon: Found $addonName install button") + Log.i(TAG, "clickInstallAddon: Ensured the full visibility of the the install $addonName button") + Log.i(TAG, "clickInstallAddon: Trying to click the install $addonName button") installButtonForAddon(addonName).click() - Log.i(TAG, "clickInstallAddon: Clicked Install $addonName button") + Log.i(TAG, "clickInstallAddon: Clicked the install $addonName button") } fun verifyAddonInstallCompleted(addonName: String, activityTestRule: HomeActivityIntentTestRule) { for (i in 1..RETRY_COUNT) { + Log.i(TAG, "verifyAddonInstallCompleted: Started try #$i") try { - assertUIObjectExists(itemWithText("Okay, Got it"), waitingTime = waitingTimeLong) + assertUIObjectExists(itemWithText("OK"), waitingTime = waitingTimeLong) break } catch (e: AssertionError) { + Log.i(TAG, "verifyAddonInstallCompleted: AssertionError caught, executing fallback methods") if (i == RETRY_COUNT) { throw e } else { - Log.i(TAG, "verifyAddonInstallCompleted: $addonName failed to install on try #$i") restartApp(activityTestRule) homeScreen { }.openThreeDotMenu { @@ -121,96 +131,29 @@ class SettingsSubMenuAddonsManagerRobot { } fun verifyAddonInstallCompletedPrompt(addonName: String) { + Log.i(TAG, "verifyAddonInstallCompletedPrompt: Trying to verify that completed add-on install prompt items are visible") onView( allOf( - withText("Okay, Got it"), + withText("OK"), withParent(instanceOf(RelativeLayout::class.java)), hasSibling(withText("$addonName has been added to $appName")), - hasSibling(withText("Open it in the menu")), + hasSibling(withText("Access $addonName from the $appName menu.")), hasSibling(withText("Allow in private browsing")), ), ) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyAddonInstallCompletedPrompt: Verified that completed add-on install prompt items are visible") } fun closeAddonInstallCompletePrompt() { - onView(withText("Okay, Got it")).click() + Log.i(TAG, "closeAddonInstallCompletePrompt: Trying to click the \"OK\" button from the completed add-on install prompt") + onView(withText("OK")).click() + Log.i(TAG, "closeAddonInstallCompletePrompt: Clicked the \"OK\" button from the completed add-on install prompt") } fun verifyAddonIsInstalled(addonName: String) { scrollToElementByText(addonName) - assertAddonIsInstalled(addonName) - } - - fun verifyEnabledTitleDisplayed() { - onView(withText("Enabled")) - .check(matches(isCompletelyDisplayed())) - } - - fun cancelInstallAddon() = cancelInstall() - fun acceptPermissionToInstallAddon() = allowPermissionToInstall() - fun verifyAddonsItems() = assertAddonsItems() - fun verifyAddonCanBeInstalled(addonName: String) = assertAddonCanBeInstalled(addonName) - - fun selectAllowInPrivateBrowsing() { - assertUIObjectExists(itemWithText("Allow in private browsing"), waitingTime = waitingTimeLong) - onView(withId(R.id.allow_in_private_browsing)).click() - } - - fun installAddon(addonName: String, activityTestRule: HomeActivityIntentTestRule) { - homeScreen { - }.openThreeDotMenu { - }.openAddonsManagerMenu { - clickInstallAddon(addonName) - verifyAddonPermissionPrompt(addonName) - acceptPermissionToInstallAddon() - verifyAddonInstallCompleted(addonName, activityTestRule) - } - } - - class Transition { - fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { - fun goBackButton() = onView(allOf(withContentDescription("Navigate up"))) - goBackButton().click() - - HomeScreenRobot().interact() - return HomeScreenRobot.Transition() - } - - fun openDetailedMenuForAddon( - addonName: String, - interact: SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.() -> Unit, - ): SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.Transition { - scrollToElementByText(addonName) - - onView( - allOf( - withId(R.id.add_on_item), - hasDescendant( - allOf( - withId(R.id.add_on_name), - withText(addonName), - ), - ), - ), - ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - .perform(click()) - - SettingsSubMenuAddonsManagerAddonDetailedMenuRobot().interact() - return SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.Transition() - } - } - - private fun installButtonForAddon(addonName: String) = - onView( - allOf( - withContentDescription(R.string.mozac_feature_addons_install_addon_content_description), - isDescendantOfA(withId(R.id.add_on_item)), - hasSibling(hasDescendant(withText(addonName))), - ), - ) - - private fun assertAddonIsInstalled(addonName: String) { + Log.i(TAG, "verifyAddonIsInstalled: Trying to verify that the $addonName add-on was installed") onView( allOf( withId(R.id.add_button), @@ -218,37 +161,24 @@ class SettingsSubMenuAddonsManagerRobot { hasSibling(hasDescendant(withText(addonName))), ), ).check(matches(withEffectiveVisibility(Visibility.INVISIBLE))) + Log.i(TAG, "verifyAddonIsInstalled: Verified that the $addonName add-on was installed") } - private fun cancelInstall() { - onView(allOf(withId(R.id.deny_button), withText("Cancel"))) + fun verifyEnabledTitleDisplayed() { + Log.i(TAG, "verifyEnabledTitleDisplayed: Trying to verify that the \"Enabled\" heading is displayed") + onView(withText("Enabled")) .check(matches(isCompletelyDisplayed())) - .perform(click()) + Log.i(TAG, "verifyEnabledTitleDisplayed: Verified that the \"Enabled\" heading is displayed") } - private fun allowPermissionToInstall() { - mDevice.waitNotNull(Until.findObject(By.text("Add")), waitingTime) - - onView(allOf(withId(R.id.allow_button), withText("Add"))) - .check(matches(isCompletelyDisplayed())) - .perform(click()) - } - - private fun assertAddonsItems() { - assertRecommendedTitleDisplayed() - assertAddons() - } - - private fun assertRecommendedTitleDisplayed() { + fun cancelInstallAddon() = cancelInstall() + fun acceptPermissionToInstallAddon() = allowPermissionToInstall() + fun verifyAddonsItems() { + Log.i(TAG, "verifyAddonsItems: Trying to verify that the \"Recommended\" heading is visible") onView(allOf(withId(R.id.title), withText("Recommended"))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - } - - private fun assertAddons() { - assertAddonUblock() - } - - private fun assertAddonUblock() { + Log.i(TAG, "verifyAddonsItems: Verified that the \"Recommended\" heading is visible") + Log.i(TAG, "verifyAddonsItems: Trying to verify that all uBlock Origin items are completely displayed") onView( allOf( isAssignableFrom(RelativeLayout::class.java), @@ -266,12 +196,12 @@ class SettingsSubMenuAddonsManagerRobot { hasDescendant(withId(R.id.add_button)), ), ).check(matches(isCompletelyDisplayed())) + Log.i(TAG, "verifyAddonsItems: Verified that all uBlock Origin items are completely displayed") } - - private fun assertAddonCanBeInstalled(addonName: String) { + fun verifyAddonCanBeInstalled(addonName: String) { scrollToElementByText(addonName) mDevice.waitNotNull(Until.findObject(By.text(addonName)), waitingTime) - + Log.i(TAG, "verifyAddonCanBeInstalled: Trying to verify that the install $addonName button is visible") onView( allOf( withId(R.id.add_button), @@ -285,6 +215,80 @@ class SettingsSubMenuAddonsManagerRobot { ), ), ).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "verifyAddonCanBeInstalled: Verified that the install $addonName button is visible") + } + + fun selectAllowInPrivateBrowsing() { + assertUIObjectExists(itemWithText("Allow in private browsing"), waitingTime = waitingTimeLong) + Log.i(TAG, "selectAllowInPrivateBrowsing: Trying to click the \"Allow in private browsing\" check box") + onView(withId(R.id.allow_in_private_browsing)).click() + Log.i(TAG, "selectAllowInPrivateBrowsing: Clicked the \"Allow in private browsing\" check box") + } + + fun installAddon(addonName: String, activityTestRule: HomeActivityIntentTestRule) { + homeScreen { + }.openThreeDotMenu { + }.openAddonsManagerMenu { + clickInstallAddon(addonName) + verifyAddonPermissionPrompt(addonName) + acceptPermissionToInstallAddon() + verifyAddonInstallCompleted(addonName, activityTestRule) + } + } + + class Transition { + fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + Log.i(TAG, "goBack: Trying to click navigate up toolbar button") + onView(allOf(withContentDescription("Navigate up"))).click() + Log.i(TAG, "goBack: Clicked the navigate up toolbar button") + + HomeScreenRobot().interact() + return HomeScreenRobot.Transition() + } + + fun openDetailedMenuForAddon( + addonName: String, + interact: SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.() -> Unit, + ): SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.Transition { + scrollToElementByText(addonName) + Log.i(TAG, "openDetailedMenuForAddon: Trying to verify that the $addonName add-on is visible") + addonItem(addonName).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(TAG, "openDetailedMenuForAddon: Verified that the $addonName add-on is visible") + Log.i(TAG, "openDetailedMenuForAddon: Trying to click the $addonName add-on") + addonItem(addonName).perform(click()) + Log.i(TAG, "openDetailedMenuForAddon: Clicked the $addonName add-on") + + SettingsSubMenuAddonsManagerAddonDetailedMenuRobot().interact() + return SettingsSubMenuAddonsManagerAddonDetailedMenuRobot.Transition() + } + } + + private fun installButtonForAddon(addonName: String) = + onView( + allOf( + withContentDescription("Install $addonName"), + isDescendantOfA(withId(R.id.add_on_item)), + hasSibling(hasDescendant(withText(addonName))), + ), + ) + + private fun cancelInstall() { + Log.i(TAG, "cancelInstall: Trying to verify that the \"Cancel\" button is completely displayed") + onView(allOf(withId(R.id.deny_button), withText("Cancel"))).check(matches(isCompletelyDisplayed())) + Log.i(TAG, "cancelInstall: Verified that the \"Cancel\" button is completely displayed") + Log.i(TAG, "cancelInstall: Trying to click the \"Cancel\" button") + onView(allOf(withId(R.id.deny_button), withText("Cancel"))).perform(click()) + Log.i(TAG, "cancelInstall: Clicked the \"Cancel\" button") + } + + private fun allowPermissionToInstall() { + mDevice.waitNotNull(Until.findObject(By.text("Add")), waitingTime) + Log.i(TAG, "allowPermissionToInstall: Trying to verify that the \"Add\" button is completely displayed") + onView(allOf(withId(R.id.allow_button), withText("Add"))).check(matches(isCompletelyDisplayed())) + Log.i(TAG, "allowPermissionToInstall: Verified that the \"Add\" button is completely displayed") + Log.i(TAG, "allowPermissionToInstall: Trying to click the \"Add\" button") + onView(allOf(withId(R.id.allow_button), withText("Add"))).perform(click()) + Log.i(TAG, "allowPermissionToInstall: Clicked the \"Add\" button") } } @@ -293,5 +297,18 @@ fun addonsMenu(interact: SettingsSubMenuAddonsManagerRobot.() -> Unit): Settings return SettingsSubMenuAddonsManagerRobot.Transition() } +private fun addonItem(addonName: String) = + onView( + allOf( + withId(R.id.add_on_item), + hasDescendant( + allOf( + withId(R.id.add_on_name), + withText(addonName), + ), + ), + ), + ) + private fun addonsList() = UiScrollable(UiSelector().resourceId("$packageName:id/add_ons_list")).setAsVerticalList() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt index 67b82b28..349451b6 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt @@ -9,7 +9,9 @@ import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.RootMatchers import androidx.test.espresso.matcher.ViewMatchers.isChecked +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isNotChecked +import androidx.test.espresso.matcher.ViewMatchers.withChild import androidx.test.espresso.matcher.ViewMatchers.withClassName import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText @@ -38,8 +40,16 @@ class SettingsSubMenuAutofillRobot { Log.i(TAG, "verifyAutofillToolbarTitle: Verified \"Autofill\" toolbar title exists") } fun verifyManageAddressesToolbarTitle() { - assertUIObjectExists(manageAddressesToolbarTitle) - Log.i(TAG, "verifyManageAddressesToolbarTitle: Verified \"Manage addresses\" toolbar title exists") + Log.i(TAG, "verifyManageAddressesToolbarTitle: Trying to verify the \"Manage addresses\" toolbar title is displayed") + onView( + allOf( + withId(R.id.navigationToolbar), + withChild( + withText(R.string.preferences_addresses_manage_addresses), + ), + ), + ).check(matches(isDisplayed())) + Log.i(TAG, "verifyManageAddressesToolbarTitle: Verified the \"Manage addresses\" toolbar title is displayed") } fun verifyAddressAutofillSection(isAddressAutofillEnabled: Boolean, userHasSavedAddress: Boolean) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt index b6c9f1c7..6585616f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt @@ -23,8 +23,6 @@ import org.hamcrest.CoreMatchers.allOf import org.hamcrest.Matchers import org.mozilla.fenix.R import org.mozilla.fenix.helpers.Constants -import org.mozilla.fenix.helpers.MatcherHelper.assertUIObjectExists -import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper.mDevice @@ -101,11 +99,6 @@ class SettingsSubMenuHomepageRobot { fun selectWallpaper(wallpaperName: String) = mDevice.findObject(UiSelector().description(wallpaperName)).click() - fun verifySnackBarText(expectedText: String) = - assertUIObjectExists( - itemContainingText(expectedText), - ) - fun verifySponsoredShortcutsCheckBox(checked: Boolean) = assertSponsoredShortcutsCheckBox(checked) class Transition { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt index 310e0dba..d60489ab 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt @@ -101,6 +101,9 @@ class SettingsSubMenuSearchRobot { } fun verifyDefaultSearchEngineList() { + defaultSearchEngineOption("LeOSearch") + .check(matches(hasSibling(withId(R.id.engine_icon)))) + .check(matches(isDisplayed())) defaultSearchEngineOption("LeOSearch") .check(matches(hasSibling(withId(R.id.engine_icon)))) .check(matches(isDisplayed())) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt index c7b833dc..419d2799 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt @@ -206,9 +206,6 @@ class TabDrawerRobot { } } - fun verifySnackBarText(expectedText: String) = - assertUIObjectExists(itemContainingText(expectedText)) - fun snackBarButtonClick(expectedText: String) { val snackBarButton = mDevice.findObject( diff --git a/app/src/forkDebug/ic_launcher-playstore.png b/app/src/forkDebug/ic_launcher-playstore.png index d01d4050..e9968a5c 100644 Binary files a/app/src/forkDebug/ic_launcher-playstore.png and b/app/src/forkDebug/ic_launcher-playstore.png differ diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp index b7443b5c..f8948e32 100644 Binary files a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp and b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp index c2f1822a..e23f2e3a 100644 Binary files a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp and b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.webp index b177c324..464eaf4e 100644 Binary files a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp index 9193bd71..a3c7f6a7 100644 Binary files a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp and b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp index d149631c..ce6e3ba0 100644 Binary files a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp and b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp index d9ac0536..bcdca717 100644 Binary files a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp index 5908b4ff..71516a5a 100644 Binary files a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_foreground.webp index b096799b..b0151dd9 100644 Binary files a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.webp index be219754..d51484ed 100644 Binary files a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.webp index b0f589d8..043eb56b 100644 Binary files a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_foreground.webp index 9c984086..2a5ec475 100644 Binary files a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp index e8077cc8..f4e60e27 100644 Binary files a/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/forkDebug/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.webp index 34b32141..7309a730 100644 Binary files a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index 39799138..f65c1c50 100644 Binary files a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.webp index 94573001..c4147e83 100644 Binary files a/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/forkDebug/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/forkRelease/ic_launcher-playstore.png b/app/src/forkRelease/ic_launcher-playstore.png index d01d4050..e9968a5c 100644 Binary files a/app/src/forkRelease/ic_launcher-playstore.png and b/app/src/forkRelease/ic_launcher-playstore.png differ diff --git a/app/src/forkRelease/res/drawable/animated_splash_screen.xml b/app/src/forkRelease/res/drawable/animated_splash_screen.xml index 96ea559c..564145eb 100644 --- a/app/src/forkRelease/res/drawable/animated_splash_screen.xml +++ b/app/src/forkRelease/res/drawable/animated_splash_screen.xml @@ -1,518 +1,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + diff --git a/app/src/forkRelease/res/drawable/ic_wordmark_logo.png b/app/src/forkRelease/res/drawable/ic_wordmark_logo.png index 9d354763..3f8d9006 100644 Binary files a/app/src/forkRelease/res/drawable/ic_wordmark_logo.png and b/app/src/forkRelease/res/drawable/ic_wordmark_logo.png differ diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp index b7443b5c..f8948e32 100644 Binary files a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp and b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp index c2f1822a..e23f2e3a 100644 Binary files a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp and b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp index b177c324..464eaf4e 100644 Binary files a/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/forkRelease/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher.webp index 9193bd71..a3c7f6a7 100644 Binary files a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher.webp and b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp index d149631c..ce6e3ba0 100644 Binary files a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp and b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.webp index d9ac0536..bcdca717 100644 Binary files a/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/forkRelease/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp index 5908b4ff..71516a5a 100644 Binary files a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_foreground.webp index b096799b..b0151dd9 100644 Binary files a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp index be219754..d51484ed 100644 Binary files a/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/forkRelease/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp index b0f589d8..043eb56b 100644 Binary files a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_foreground.webp index 9c984086..2a5ec475 100644 Binary files a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp index e8077cc8..f4e60e27 100644 Binary files a/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/forkRelease/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.webp index 34b32141..7309a730 100644 Binary files a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index 39799138..f65c1c50 100644 Binary files a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.webp index 94573001..c4147e83 100644 Binary files a/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/forkRelease/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8905679a..5adccc42 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -75,7 +75,7 @@ + android:targetActivity=".HomeActivity"> diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index d01d4050..e9968a5c 100644 Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 1e9a4f15..7a71ecdd 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -18,7 +18,7 @@ object FeatureFlags { * This feature does not only depend on this flag. It requires the AMO collection override to * be enabled which is behind the Secret Settings. * */ - val customExtensionCollectionFeature = true + val customExtensionCollectionFeature = Config.channel.isNightlyOrDebug || Config.channel.isBeta /** * Pull-to-refresh allows you to pull the web content down far enough to have the page to @@ -67,7 +67,7 @@ object FeatureFlags { * Allows users to enable translations. * Preference to fully enable translations is pref_key_enable_translations. */ - val translations = Config.channel.isDebug + val translations = Config.channel.isNightlyOrDebug /** * Allows users to enable Firefox Suggest. diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 6ba76f2c..9a408441 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -381,6 +381,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { components.fxSuggest.ingestionScheduler.stopPeriodicIngestion() } } + components.core.fileUploadsDirCleaner.cleanUploadsDirectory() } // Account manager initialization needs to happen on the main thread. GlobalScope.launch(Dispatchers.Main) { diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 61cab7c7..2ec05881 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -14,7 +14,6 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.os.StrictMode -import android.os.SystemClock import android.text.TextUtils import android.text.format.DateUtils import android.util.AttributeSet @@ -31,7 +30,6 @@ import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import androidx.appcompat.app.ActionBar import androidx.appcompat.widget.Toolbar -import androidx.core.app.NotificationManagerCompat import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController @@ -63,7 +61,6 @@ import mozilla.components.feature.media.ext.findActiveMediaTab import mozilla.components.feature.privatemode.notification.PrivateNotificationFeature import mozilla.components.feature.search.BrowserStoreSearchAdapter import mozilla.components.service.fxa.sync.SyncReason -import mozilla.components.support.base.ext.areNotificationsEnabledSafe import mozilla.components.support.base.feature.ActivityResultHandler import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.log.logger.Logger @@ -128,7 +125,6 @@ import org.mozilla.fenix.messaging.FenixNimbusMessagingController import org.mozilla.fenix.messaging.MessageNotificationWorker import org.mozilla.fenix.nimbus.FxNimbus import org.mozilla.fenix.onboarding.ReEngagementNotificationWorker -import org.mozilla.fenix.onboarding.ensureMarketingChannelExists import org.mozilla.fenix.perf.MarkersActivityLifecycleCallbacks import org.mozilla.fenix.perf.MarkersFragmentLifecycleCallbacks import org.mozilla.fenix.perf.Performance @@ -155,12 +151,6 @@ import java.util.Locale */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod") open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { - // DO NOT MOVE ANYTHING ABOVE THIS, GETTING INIT TIME IS CRITICAL - // we need to store startup timestamp for warm startup. we cant directly store - // inside AppStartupTelemetry since that class lives inside components and - // components requires context to access. - protected val homeActivityInitTimeStampNanoSeconds = SystemClock.elapsedRealtimeNanos() - private lateinit var binding: ActivityHomeBinding lateinit var themeManager: ThemeManager lateinit var browsingModeManager: BrowsingModeManager @@ -243,8 +233,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // There is disk read violations on some devices such as samsung and pixel for android 9/10 components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { - // Theme setup should always be called before super.onCreate - setupThemeAndBrowsingMode(getModeFromIntentOrLastKnown(intent)) + // Browsing mode & theme setup should always be called before super.onCreate. + setupBrowsingMode(getModeFromIntentOrLastKnown(intent)) + setupTheme() + super.onCreate(savedInstanceState) } @@ -269,34 +261,32 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { binding = ActivityHomeBinding.inflate(layoutInflater) - if (Config.channel.isNightlyOrDebug) { - lifecycleScope.launch { - val debugSettingsRepository = DefaultDebugSettingsRepository( - context = this@HomeActivity, - writeScope = this, - ) + lifecycleScope.launch { + val debugSettingsRepository = DefaultDebugSettingsRepository( + context = this@HomeActivity, + writeScope = this, + ) - debugSettingsRepository.debugDrawerEnabled - .distinctUntilChanged() - .collect { enabled -> - with(binding.debugOverlay) { - if (enabled) { - visibility = View.VISIBLE + debugSettingsRepository.debugDrawerEnabled + .distinctUntilChanged() + .collect { enabled -> + with(binding.debugOverlay) { + if (enabled) { + visibility = View.VISIBLE - setContent { - FenixOverlay( - browserStore = components.core.store, - inactiveTabsEnabled = settings().inactiveTabsAreEnabled, - ) - } - } else { - setContent {} - - visibility = View.GONE + setContent { + FenixOverlay( + browserStore = components.core.store, + inactiveTabsEnabled = settings().inactiveTabsAreEnabled, + ) } + } else { + setContent {} + + visibility = View.GONE } } - } + } } setContentView(binding.root) @@ -345,8 +335,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { if (settings().showHomeOnboardingDialog && components.fenixOnboarding.userHasBeenOnboarded()) { navHost.navController.navigate(NavGraphDirections.actionGlobalHomeOnboardingDialog()) } - - showNotificationPermissionPromptIfRequired() } Performance.processIntentIfPerformanceTest(intent, this) @@ -443,30 +431,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } - /** - * On Android 13 or above, prompt the user for notification permission at the start. - * Show the pre permission dialog to the user once if the notification are not enabled. - */ - private fun showNotificationPermissionPromptIfRequired() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && - !NotificationManagerCompat.from(applicationContext).areNotificationsEnabledSafe() && - settings().numberOfAppLaunches <= 1 - ) { - // Recording the exposure event here to capture all users who met all criteria to receive - // the pre permission notification prompt - FxNimbus.features.prePermissionNotificationPrompt.recordExposure() - - if (settings().notificationPrePermissionPromptEnabled) { - if (!settings().isNotificationPrePermissionShown) { - navHost.navController.navigate(NavGraphDirections.actionGlobalHomeNotificationPermissionDialog()) - } - } else { - // This will trigger the notification permission system dialog as app targets sdk 32. - ensureMarketingChannelExists(applicationContext) - } - } - } - private fun maybeShowSplashScreen() { if (components.settings.isFirstSplashScreenShown) { return @@ -483,8 +447,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { var maxDurationReached = false val delay = FxNimbus.features.splashScreen.value().maximumDurationMs.toLong() splashScreen.setKeepOnScreenCondition { - val dataFetched = components.settings.utmParamsKnown && - components.settings.nimbusExperimentsFetched + val dataFetched = components.settings.nimbusExperimentsFetched + val keepOnScreen = !maxDurationReached && !dataFetched if (!keepOnScreen) { SplashScreen.firstLaunchExtended.record( @@ -555,7 +519,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { components.core.store.dispatch(SearchAction.RefreshSearchEnginesAction) } - override fun onStart() { + final override fun onStart() { // DO NOT MOVE ANYTHING ABOVE THIS getProfilerTime CALL. val startProfilerTime = components.core.engine.profiler?.getProfilerTime() @@ -575,7 +539,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { ) // DO NOT MOVE ANYTHING BELOW THIS addMarker CALL. } - override fun onStop() { + final override fun onStop() { super.onStop() // Diagnostic breadcrumb for "Display already aquired" crash: @@ -631,6 +595,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + @CallSuper override fun onDestroy() { super.onDestroy() @@ -649,12 +614,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { privateNotificationObserver?.stop() components.notificationsDelegate.unBindActivity(this) - if (this !is ExternalAppBrowserActivity) { + val activityStartedWithLink = startupPathProvider.startupPathForActivity == StartupPathProvider.StartupPath.VIEW + if (this !is ExternalAppBrowserActivity && !activityStartedWithLink) { stopMediaSession() } } - override fun onConfigurationChanged(newConfig: Configuration) { + final override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) // Diagnostic breadcrumb for "Display already aquired" crash: @@ -664,7 +630,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { ) } - override fun recreate() { + final override fun recreate() { // Diagnostic breadcrumb for "Display already aquired" crash: // https://github.com/mozilla-mobile/android-components/issues/7960 breadcrumb( @@ -749,12 +715,12 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { else -> super.onCreateView(parent, name, context, attrs) } - override fun onActionModeStarted(mode: ActionMode?) { + final override fun onActionModeStarted(mode: ActionMode?) { actionMode = mode super.onActionModeStarted(mode) } - override fun onActionModeFinished(mode: ActionMode?) { + final override fun onActionModeFinished(mode: ActionMode?) { actionMode = null super.onActionModeFinished(mode) } @@ -821,7 +787,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return false } - override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } @@ -882,6 +848,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { * private mode directly before the content view is created. Returns the mode set by the intent * otherwise falls back to the last known mode. */ + @VisibleForTesting internal fun getModeFromIntentOrLastKnown(intent: Intent?): BrowsingMode { intent?.toSafeIntent()?.let { if (it.hasExtra(PRIVATE_BROWSING_MODE)) { @@ -905,12 +872,18 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return false } - private fun setupThemeAndBrowsingMode(mode: BrowsingMode) { + private fun setupBrowsingMode(mode: BrowsingMode) { settings().lastKnownMode = mode browsingModeManager = createBrowsingModeManager(mode) + } + + private fun setupTheme() { themeManager = createThemeManager() - themeManager.setActivityTheme(this) - themeManager.applyStatusBarTheme(this) + // ExternalAppBrowserActivity exclusively handles it's own theming unless in private mode. + if (this !is ExternalAppBrowserActivity || browsingModeManager.mode.isPrivate) { + themeManager.setActivityTheme(this) + themeManager.applyStatusBarTheme(this) + } } // Stop active media when activity is destroyed. @@ -934,7 +907,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { * Returns the [supportActionBar], inflating it if necessary. * Everyone should call this instead of supportActionBar. */ - override fun getSupportActionBarAndInflateIfNecessary(): ActionBar { + final override fun getSupportActionBarAndInflateIfNecessary(): ActionBar { if (!isToolbarInflated) { navigationToolbar = binding.navigationToolbarStub.inflate() as Toolbar @@ -949,7 +922,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } @Suppress("SpreadOperator") - fun setupNavigationToolbar(vararg topLevelDestinationIds: Int) { + private fun setupNavigationToolbar(vararg topLevelDestinationIds: Int) { NavigationUI.setupWithNavController( navigationToolbar, navHost.navController, @@ -1132,13 +1105,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { navController.navigate(NavGraphDirections.actionStartupHome()) } - override fun attachBaseContext(base: Context) { + final override fun attachBaseContext(base: Context) { base.components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { super.attachBaseContext(base) } } - override fun getSystemService(name: String): Any? { + final override fun getSystemService(name: String): Any? { // Issue #17759 had a crash with the PerformanceInflater.kt on Android 5.0 and 5.1 // when using the TimePicker. Since the inflater was created for performance monitoring // purposes and that we test on new android versions, this means that any difference in @@ -1152,7 +1125,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return super.getSystemService(name) } - protected open fun createBrowsingModeManager(initialMode: BrowsingMode): BrowsingModeManager { + private fun createBrowsingModeManager(initialMode: BrowsingMode): BrowsingModeManager { return DefaultBrowsingModeManager(initialMode, components.settings) { newMode -> updateSecureWindowFlags(newMode) themeManager.currentTheme = newMode @@ -1169,7 +1142,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } } - protected open fun createThemeManager(): ThemeManager { + private fun createThemeManager(): ThemeManager { return DefaultThemeManager(browsingModeManager.mode, this) } @@ -1220,7 +1193,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { * Indicates if the user should be redirected to the [BrowserFragment] or to the [HomeFragment], * links from an external apps should always opened in the [BrowserFragment]. */ - fun shouldStartOnHome(intent: Intent? = this.intent): Boolean { + @VisibleForTesting + internal fun shouldStartOnHome(intent: Intent? = this.intent): Boolean { return components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { // We only want to open on home when users tap the app, // we want to ignore other cases when the app gets open by users clicking on links. @@ -1300,6 +1274,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // PWA must have been used within last 30 days to be considered "recently used" for the // telemetry purposes. - const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L + private const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L } } diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonDetailsBindingDelegate.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonDetailsBindingDelegate.kt index 8ad012fe..3cfcc957 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonDetailsBindingDelegate.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonDetailsBindingDelegate.kt @@ -10,6 +10,8 @@ import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan import android.text.style.URLSpan import android.view.View +import android.widget.TextView +import androidx.annotation.VisibleForTesting import androidx.core.net.toUri import androidx.core.text.HtmlCompat import androidx.core.text.getSpans @@ -20,6 +22,7 @@ import mozilla.components.feature.addons.ui.updatedAtDate import mozilla.components.support.ktx.android.content.getColorFromAttr import org.mozilla.fenix.R import org.mozilla.fenix.databinding.FragmentAddOnDetailsBinding +import org.mozilla.fenix.ext.addUnderline import java.text.DateFormat import java.text.NumberFormat import java.util.Locale @@ -61,14 +64,18 @@ class AddonDetailsBindingDelegate( private fun bindRating(addon: Addon) { addon.rating?.let { rating -> val resources = binding.root.resources - val ratingContentDescription = resources.getString(R.string.mozac_feature_addons_rating_content_description) - binding.ratingView.contentDescription = String.format(ratingContentDescription, rating.average) + val ratingContentDescription = + resources.getString(R.string.mozac_feature_addons_rating_content_description_2) + binding.ratingLabel.contentDescription = String.format(ratingContentDescription, rating.average) binding.ratingView.rating = rating.average + val reviewCount = resources.getString(R.string.mozac_feature_addons_user_rating_count_2) + binding.reviewCount.contentDescription = String.format(reviewCount, numberFormatter.format(rating.reviews)) binding.reviewCount.text = numberFormatter.format(rating.reviews) if (addon.ratingUrl.isNotBlank()) { binding.reviewCount.setTextColor(binding.root.context.getColorFromAttr(R.attr.textAccent)) + binding.reviewCount.addUnderline() binding.reviewCount.setOnClickListener { interactor.openWebsite(addon.ratingUrl.toUri()) } @@ -83,6 +90,7 @@ class AddonDetailsBindingDelegate( return } + binding.homePageLabel.addUnderline() binding.homePageLabel.setOnClickListener { interactor.openWebsite(addon.homepageUrl.toUri()) } @@ -96,7 +104,9 @@ class AddonDetailsBindingDelegate( return } - binding.lastUpdatedText.text = dateFormatter.format(addon.updatedAtDate) + val formattedDate = dateFormatter.format(addon.updatedAtDate) + binding.lastUpdatedText.text = formattedDate + binding.lastUpdatedLabel.joinContentDescriptions(formattedDate) } private fun bindVersion(addon: Addon) { @@ -114,6 +124,7 @@ class AddonDetailsBindingDelegate( } else { binding.versionText.setOnLongClickListener(null) } + binding.versionLabel.joinContentDescriptions(version) } private fun bindAuthor(addon: Addon) { @@ -129,10 +140,12 @@ class AddonDetailsBindingDelegate( if (author.url.isNotBlank()) { binding.authorText.setTextColor(binding.root.context.getColorFromAttr(R.attr.textAccent)) + binding.authorText.addUnderline() binding.authorText.setOnClickListener { interactor.openWebsite(author.url.toUri()) } } + binding.authorLabel.joinContentDescriptions(author.name) } private fun bindDetails(addon: Addon) { @@ -175,8 +188,14 @@ class AddonDetailsBindingDelegate( return } + binding.detailUrl.addUnderline() binding.detailUrl.setOnClickListener { interactor.openWebsite(addon.detailUrl.toUri()) } } + + @VisibleForTesting + internal fun TextView.joinContentDescriptions(text: String) { + this.contentDescription = "${this.text} $text" + } } diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt index 168ab2fe..b1c54ee1 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt @@ -43,6 +43,7 @@ abstract class AddonPopupBaseFragment : Fragment(), EngineSession.Observer, User store = requireComponents.core.store, customTabId = it.id, fragmentManager = parentFragmentManager, + fileUploadsDirCleaner = requireComponents.core.fileUploadsDirCleaner, onNeedToRequestPermissions = { permissions -> requestPermissions(permissions, REQUEST_CODE_PROMPT_PERMISSIONS) }, diff --git a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt index 3da061c2..f5a873c3 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt @@ -162,9 +162,10 @@ class InstalledAddonDetailsFragment : Fragment() { runIfFragmentIsAttached { this.addon = it switch.isClickable = true - privateBrowsingSwitch.isVisible = it.isEnabled() - privateBrowsingSwitch.isChecked = it.isAllowedInPrivateBrowsing() switch.setText(R.string.mozac_feature_addons_enabled) + privateBrowsingSwitch.isVisible = it.isEnabled() + privateBrowsingSwitch.isChecked = + it.incognito != Addon.Incognito.NOT_ALLOWED && it.isAllowedInPrivateBrowsing() binding.settings.isVisible = shouldSettingsBeVisible() enableButtons() context?.let { @@ -203,8 +204,8 @@ class InstalledAddonDetailsFragment : Fragment() { runIfFragmentIsAttached { this.addon = it switch.isClickable = true - privateBrowsingSwitch.isVisible = it.isEnabled() switch.setText(R.string.mozac_feature_addons_disabled) + privateBrowsingSwitch.isVisible = it.isEnabled() enableButtons() context?.let { showSnackBar( @@ -220,9 +221,8 @@ class InstalledAddonDetailsFragment : Fragment() { onError = { runIfFragmentIsAttached { switch.isClickable = true - privateBrowsingSwitch.isClickable = true - enableButtons() switch.setState(addon.isEnabled()) + enableButtons() context?.let { showSnackBar( binding.root, @@ -261,6 +261,45 @@ class InstalledAddonDetailsFragment : Fragment() { } } + @VisibleForTesting + internal fun bindAllowInPrivateBrowsingSwitch() { + val switch = providePrivateBrowsingSwitch() + switch.isVisible = addon.isEnabled() + + if (addon.incognito == Addon.Incognito.NOT_ALLOWED) { + switch.isChecked = false + switch.isEnabled = false + switch.text = requireContext().getString(R.string.mozac_feature_addons_not_allowed_in_private_browsing) + return + } + + switch.isChecked = addon.isAllowedInPrivateBrowsing() + + switch.setOnCheckedChangeListener { v, isChecked -> + val addonManager = v.context.components.addonManager + switch.isClickable = false + disableButtons() + addonManager.setAddonAllowedInPrivateBrowsing( + addon, + isChecked, + onSuccess = { + runIfFragmentIsAttached { + this.addon = it + switch.isClickable = true + enableButtons() + } + }, + onError = { + runIfFragmentIsAttached { + switch.isChecked = addon.isAllowedInPrivateBrowsing() + switch.isClickable = true + enableButtons() + } + }, + ) + } + } + private fun bindReportButton() { binding.reportAddOn.setOnClickListener { val shouldCreatePrivateSession = (activity as HomeActivity).browsingModeManager.mode.isPrivate @@ -325,35 +364,6 @@ class InstalledAddonDetailsFragment : Fragment() { } } - private fun bindAllowInPrivateBrowsingSwitch() { - val switch = binding.allowInPrivateBrowsingSwitch - switch.isChecked = addon.isAllowedInPrivateBrowsing() - switch.isVisible = addon.isEnabled() - switch.setOnCheckedChangeListener { v, isChecked -> - val addonManager = v.context.components.addonManager - switch.isClickable = false - disableButtons() - addonManager.setAddonAllowedInPrivateBrowsing( - addon, - isChecked, - onSuccess = { - runIfFragmentIsAttached { - this.addon = it - switch.isClickable = true - enableButtons() - } - }, - onError = { - runIfFragmentIsAttached { - switch.isChecked = addon.isAllowedInPrivateBrowsing() - switch.isClickable = true - enableButtons() - } - }, - ) - } - } - private fun bindRemoveButton() { binding.removeAddOn.setOnClickListener { setAllInteractiveViewsClickable(binding, false) diff --git a/app/src/main/java/org/mozilla/fenix/bindings/BrowserStoreBinding.kt b/app/src/main/java/org/mozilla/fenix/bindings/BrowserStoreBinding.kt new file mode 100644 index 00000000..85242e93 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/bindings/BrowserStoreBinding.kt @@ -0,0 +1,37 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.bindings + +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.flow.distinctUntilChangedBy +import mozilla.components.browser.state.selector.selectedTab +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.lib.state.helpers.AbstractBinding +import org.mozilla.fenix.components.AppStore +import org.mozilla.fenix.components.appstate.AppAction + +/** + * Binding to update the [AppStore] based on changes to [BrowserState]. + */ +class BrowserStoreBinding( + browserStore: BrowserStore, + private val appStore: AppStore, +) : AbstractBinding(browserStore) { + override suspend fun onState(flow: Flow) { + // Update the AppStore with the latest selected tab + flow.distinctUntilChangedBy { it.selectedTabId } + .collectLatest { state -> + state.selectedTab?.let { tab -> + // Ignore re-observations due to lifecycle events, or other pieces of state like + // [mode] may get overwritten + if (appStore.state.selectedTabId != tab.id) { + appStore.dispatch(AppAction.SelectedTabChanged(tab)) + } + } + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 5ecc9568..f09dff9f 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -92,7 +92,6 @@ import mozilla.components.feature.session.PictureInPictureFeature import mozilla.components.feature.session.ScreenOrientationFeature import mozilla.components.feature.session.SessionFeature import mozilla.components.feature.session.SwipeRefreshFeature -import mozilla.components.feature.session.behavior.EngineViewBrowserToolbarBehavior import mozilla.components.feature.sitepermissions.SitePermissionsFeature import mozilla.components.feature.webauthn.WebAuthnFeature import mozilla.components.lib.state.ext.consumeFlow @@ -112,6 +111,7 @@ import mozilla.components.support.ktx.android.view.hideKeyboard import mozilla.components.support.ktx.kotlin.getOrigin import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged import mozilla.components.support.locale.ActivityContextWrapper +import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior import mozilla.components.ui.widgets.withCenterAlignedButtons import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.FeatureFlags @@ -138,6 +138,7 @@ import org.mozilla.fenix.components.toolbar.ToolbarIntegration import org.mozilla.fenix.components.toolbar.interactor.BrowserToolbarInteractor import org.mozilla.fenix.components.toolbar.interactor.DefaultBrowserToolbarInteractor import org.mozilla.fenix.crashes.CrashContentIntegration +import org.mozilla.fenix.customtabs.ExternalAppBrowserActivity import org.mozilla.fenix.databinding.FragmentBrowserBinding import org.mozilla.fenix.downloads.DownloadService import org.mozilla.fenix.downloads.DynamicDownloadDialog @@ -169,7 +170,7 @@ import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wifi.SitePermissionsWifiIntegration import java.lang.ref.WeakReference import kotlin.coroutines.cancellation.CancellationException -import mozilla.components.feature.session.behavior.ToolbarPosition as MozacToolbarPosition +import mozilla.components.ui.widgets.behavior.ToolbarPosition as MozacToolbarPosition /** * Base fragment extended by [BrowserFragment]. @@ -267,7 +268,11 @@ abstract class BaseBrowserFragment : _binding = FragmentBrowserBinding.inflate(inflater, container, false) val activity = activity as HomeActivity - activity.themeManager.applyStatusBarTheme(activity) + // ExternalAppBrowserActivity exclusively handles it's own theming unless in private mode. + if (activity !is ExternalAppBrowserActivity || activity.browsingModeManager.mode.isPrivate) { + activity.themeManager.applyStatusBarTheme(activity) + } + val originalContext = ActivityContextWrapper.getOriginalContext(activity) binding.engineView.setActivityContext(originalContext) @@ -696,6 +701,7 @@ abstract class BaseBrowserFragment : fragmentManager = parentFragmentManager, identityCredentialColorsProvider = colorsProvider, tabsUseCases = requireComponents.useCases.tabsUseCases, + fileUploadsDirCleaner = requireComponents.core.fileUploadsDirCleaner, creditCardValidationDelegate = DefaultCreditCardValidationDelegate( context.components.core.lazyAutofillStorage, ), @@ -1130,7 +1136,7 @@ abstract class BaseBrowserFragment : MozacToolbarPosition.TOP } (getSwipeRefreshLayout().layoutParams as CoordinatorLayout.LayoutParams).behavior = - EngineViewBrowserToolbarBehavior( + EngineViewClippingBehavior( context, null, getSwipeRefreshLayout(), @@ -1543,7 +1549,10 @@ abstract class BaseBrowserFragment : activity?.exitImmersiveMode() (view as? SwipeGestureLayout)?.isSwipeEnabled = true (activity as? HomeActivity)?.let { activity -> - activity.themeManager.applyStatusBarTheme(activity) + // ExternalAppBrowserActivity exclusively handles it's own theming unless in private mode. + if (activity !is ExternalAppBrowserActivity || activity.browsingModeManager.mode.isPrivate) { + activity.themeManager.applyStatusBarTheme(activity) + } } if (webAppToolbarShouldBeVisible) { browserToolbarView.view.isVisible = true diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index f93d8c45..5248f077 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -230,7 +230,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { context, R.drawable.mozac_ic_translate_24, )!!, - contentDescription = "", + contentDescription = context.getString(R.string.browser_toolbar_translate), contentDescriptionSelected = "", visible = { translationsAvailable || context.settings().enableTranslations diff --git a/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt b/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt index b4947879..facb796e 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt @@ -22,7 +22,7 @@ import org.mozilla.fenix.databinding.TabPreviewBinding import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.theme.ThemeManager -import kotlin.math.max +import kotlin.math.min class TabPreview @JvmOverloads constructor( context: Context, @@ -72,7 +72,7 @@ class TabPreview @JvmOverloads constructor( fun loadPreviewThumbnail(thumbnailId: String, isPrivate: Boolean) { doOnNextLayout { val previewThumbnail = binding.previewThumbnail - val thumbnailSize = max(previewThumbnail.height, previewThumbnail.width) + val thumbnailSize = min(previewThumbnail.height, previewThumbnail.width) thumbnailLoader.loadIntoView( previewThumbnail, ImageLoadRequest(thumbnailId, thumbnailSize, isPrivate), diff --git a/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt b/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt index 250a380c..078cbcaa 100644 --- a/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt +++ b/app/src/main/java/org/mozilla/fenix/components/BackgroundServices.kt @@ -43,6 +43,7 @@ import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.GleanMetrics.SyncAuth import org.mozilla.fenix.R import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.maxActiveTime import org.mozilla.fenix.ext.settings import org.mozilla.fenix.perf.StrictModeManager import org.mozilla.fenix.perf.lazyMonitored @@ -143,7 +144,7 @@ class BackgroundServices( } val syncedTabsStorage by lazyMonitored { - SyncedTabsStorage(accountManager, context.components.core.store, remoteTabsStorage.value) + SyncedTabsStorage(accountManager, context.components.core.store, remoteTabsStorage.value, maxActiveTime) } val syncedTabsAutocompleteProvider by lazyMonitored { SyncedTabsAutocompleteProvider(syncedTabsStorage) diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index 2f455ec4..b9d3a50d 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -207,7 +207,7 @@ class Components(private val context: Context) { ) } - val fxSuggest by lazyMonitored { FxSuggest(context, analytics.crashReporter) } + val fxSuggest by lazyMonitored { FxSuggest(context) } } /** diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index e1978453..65778d27 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -12,6 +12,10 @@ import androidx.appcompat.content.res.AppCompatResources.getDrawable import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.toBitmap import androidx.datastore.preferences.preferencesDataStore +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import mozilla.components.browser.domains.autocomplete.BaseDomainAutocompleteProvider import mozilla.components.browser.domains.autocomplete.ShippedDomainsProvider import mozilla.components.browser.engine.gecko.GeckoEngine @@ -46,6 +50,8 @@ import mozilla.components.feature.media.MediaSessionFeature import mozilla.components.feature.media.middleware.LastMediaAccessMiddleware import mozilla.components.feature.media.middleware.RecordingDevicesMiddleware import mozilla.components.feature.prompts.PromptMiddleware +import mozilla.components.feature.prompts.file.FileUploadsDirCleaner +import mozilla.components.feature.prompts.file.FileUploadsDirCleanerMiddleware import mozilla.components.feature.pwa.ManifestStorage import mozilla.components.feature.pwa.WebAppShortcutManager import mozilla.components.feature.readerview.ReaderViewMiddleware @@ -56,6 +62,7 @@ import mozilla.components.feature.search.middleware.AdsTelemetryMiddleware import mozilla.components.feature.search.middleware.SearchExtraParams import mozilla.components.feature.search.middleware.SearchMiddleware import mozilla.components.feature.search.region.RegionMiddleware +import mozilla.components.feature.search.telemetry.SerpTelemetryRepository import mozilla.components.feature.search.telemetry.ads.AdsTelemetry import mozilla.components.feature.search.telemetry.incontent.InContentTelemetry import mozilla.components.feature.session.HistoryDelegate @@ -82,6 +89,7 @@ import mozilla.components.service.pocket.Profile import mozilla.components.service.sync.autofill.AutofillCreditCardsAddressesStorage import mozilla.components.service.sync.logins.SyncableLoginsStorage import mozilla.components.support.base.worker.Frequency +import mozilla.components.support.ktx.android.content.res.readJSONObject import mozilla.components.support.locale.LocaleManager import org.mozilla.fenix.AppRequestInterceptor import org.mozilla.fenix.BuildConfig @@ -189,6 +197,10 @@ class Core( ) } + val fileUploadsDirCleaner: FileUploadsDirCleaner by lazyMonitored { + FileUploadsDirCleaner { context.cacheDir } + } + val geckoRuntime: GeckoRuntime by lazyMonitored { GeckoProvider.getOrCreateRuntime( context, @@ -286,6 +298,7 @@ class Core( SessionPrioritizationMiddleware(), SaveToPDFMiddleware(context), FxSuggestFactsMiddleware(), + FileUploadsDirCleanerMiddleware(fileUploadsDirCleaner), ) BrowserStore( @@ -309,11 +322,25 @@ class Core( // Install the "icons" WebExtension to automatically load icons for every visited website. icons.install(engine, this) - // Install the "ads" WebExtension to get the links in an partner page. - adsTelemetry.install(engine, this) - - // Install the "cookies" WebExtension and tracks user interaction with SERPs. - searchTelemetry.install(engine, this) + CoroutineScope(Dispatchers.Main).launch { + val readJson = { context.assets.readJSONObject("search/search_telemetry_v2.json") } + val providerList = withContext(Dispatchers.IO) { + SerpTelemetryRepository( + rootStorageDirectory = context.filesDir, + readJson = readJson, + collectionName = COLLECTION_NAME, + serverUrl = if (context.settings().useProductionRemoteSettingsServer) { + REMOTE_PROD_ENDPOINT_URL + } else { + REMOTE_STAGE_ENDPOINT_URL + }, + ).updateProviderList() + } + // Install the "ads" WebExtension to get the links in an partner page. + adsTelemetry.install(engine, this@apply, providerList) + // Install the "cookies" WebExtension and tracks user interaction with SERPs. + searchTelemetry.install(engine, this@apply, providerList) + } WebNotificationFeature( context, @@ -598,5 +625,10 @@ class Core( // Maximum number of suggestions returned from shortcut search engine. const val METADATA_SHORTCUT_SUGGESTION_LIMIT = 20 + + // collection name to fetch from server for SERP telemetry + const val COLLECTION_NAME = "search-telemetry-v2" + internal const val REMOTE_PROD_ENDPOINT_URL = "https://firefox.settings.services.mozilla.com" + internal const val REMOTE_STAGE_ENDPOINT_URL = "https://firefox.settings.services.allizom.org" } } diff --git a/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt b/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt index 9bbc4d0b..3909a52c 100644 --- a/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt +++ b/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt @@ -121,7 +121,7 @@ class FenixSnackbar private constructor( * Suppressing ComplexCondition. Yes it's unfortunately complex but that's the nature * of the snackbar handling by Android. It will be simpler once dynamic toolbar is always on. */ - @Suppress("ComplexCondition") + @Suppress("ComplexCondition", "RestrictedApi") fun make( view: View, duration: Int = LENGTH_LONG, diff --git a/app/src/main/java/org/mozilla/fenix/components/FxSuggest.kt b/app/src/main/java/org/mozilla/fenix/components/FxSuggest.kt index 22a44444..05593c97 100644 --- a/app/src/main/java/org/mozilla/fenix/components/FxSuggest.kt +++ b/app/src/main/java/org/mozilla/fenix/components/FxSuggest.kt @@ -5,7 +5,6 @@ package org.mozilla.fenix.components import android.content.Context -import mozilla.components.concept.base.crash.CrashReporting import mozilla.components.feature.fxsuggest.FxSuggestIngestionScheduler import mozilla.components.feature.fxsuggest.FxSuggestStorage import org.mozilla.fenix.perf.lazyMonitored @@ -14,12 +13,10 @@ import org.mozilla.fenix.perf.lazyMonitored * Component group for Firefox Suggest. * * @param context The Android application context. - * @param crashReporter An optional [CrashReporting] instance for reporting unexpected caught - * exceptions. */ -class FxSuggest(context: Context, crashReporter: CrashReporting? = null) { +class FxSuggest(context: Context) { val storage by lazyMonitored { - FxSuggestStorage(context, crashReporter) + FxSuggestStorage(context) } val ingestionScheduler by lazyMonitored { diff --git a/app/src/main/java/org/mozilla/fenix/components/UrlRequestInterceptor.kt b/app/src/main/java/org/mozilla/fenix/components/UrlRequestInterceptor.kt index d267a604..675b4c6a 100644 --- a/app/src/main/java/org/mozilla/fenix/components/UrlRequestInterceptor.kt +++ b/app/src/main/java/org/mozilla/fenix/components/UrlRequestInterceptor.kt @@ -8,8 +8,11 @@ import androidx.annotation.VisibleForTesting import mozilla.components.concept.engine.EngineSession import mozilla.components.concept.engine.EngineSession.LoadUrlFlags import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.ALLOW_ADDITIONAL_HEADERS +import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.BYPASS_CACHE import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE import mozilla.components.concept.engine.request.RequestInterceptor +import java.net.MalformedURLException +import java.net.URL /** * [RequestInterceptor] implementation for intercepting URL load requests to allow custom @@ -19,9 +22,10 @@ import mozilla.components.concept.engine.request.RequestInterceptor */ class UrlRequestInterceptor(private val isDeviceRamAboveThreshold: Boolean) : RequestInterceptor { - private val isGoogleSearchRequest by lazy { - Regex("^https://www\\.google\\.(?:.+)/search") + private val isGoogleRequest by lazy { + Regex("^https://www\\.google\\..+") } + private val googleRequestPaths = setOf("/search", "/webhp", "/preferences") @VisibleForTesting internal fun getAdditionalHeaders(isDeviceRamAboveThreshold: Boolean): Map { @@ -41,7 +45,15 @@ class UrlRequestInterceptor(private val isDeviceRamAboveThreshold: Boolean) : Re uri: String, isSubframeRequest: Boolean, ): Boolean { - return !isSubframeRequest && isGoogleSearchRequest.containsMatchIn(uri) + if (isSubframeRequest || !isGoogleRequest.containsMatchIn(uri)) { + return false + } + + return try { + googleRequestPaths.contains(URL(uri).path) + } catch (e: MalformedURLException) { + false + } } override fun onLoadRequest( @@ -58,12 +70,24 @@ class UrlRequestInterceptor(private val isDeviceRamAboveThreshold: Boolean) : Re return null } - return RequestInterceptor.InterceptionResponse.Url( - url = uri, - flags = LoadUrlFlags.select( + // This is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1875668 + // Remove this by implementing https://bugzilla.mozilla.org/show_bug.cgi?id=1883496 + val loadUrlFlags = if (uri.endsWith("#ip=1", true)) { + LoadUrlFlags.select( LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE, ALLOW_ADDITIONAL_HEADERS, - ), + BYPASS_CACHE, + ) + } else { + LoadUrlFlags.select( + LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE, + ALLOW_ADDITIONAL_HEADERS, + ) + } + + return RequestInterceptor.InterceptionResponse.Url( + url = uri, + flags = loadUrlFlags, additionalHeaders = getAdditionalHeaders(isDeviceRamAboveThreshold), ) } diff --git a/app/src/main/java/org/mozilla/fenix/components/appstate/AppAction.kt b/app/src/main/java/org/mozilla/fenix/components/appstate/AppAction.kt index eae237c4..07eb907e 100644 --- a/app/src/main/java/org/mozilla/fenix/components/appstate/AppAction.kt +++ b/app/src/main/java/org/mozilla/fenix/components/appstate/AppAction.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.components.appstate +import mozilla.components.browser.state.state.TabSessionState import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.top.sites.TopSite import mozilla.components.lib.crash.Crash.NativeCodeCrash @@ -128,6 +129,13 @@ sealed class AppAction : Action { */ data class RemoveRecentSyncedTab(val syncedTab: RecentSyncedTab) : AppAction() + /** + * Action indicating that the selected tab has been changed. + * + * @property tab The tab that has been selected. + */ + data class SelectedTabChanged(val tab: TabSessionState) : AppAction() + /** * [Action]s related to interactions with the Messaging Framework. */ diff --git a/app/src/main/java/org/mozilla/fenix/components/appstate/AppState.kt b/app/src/main/java/org/mozilla/fenix/components/appstate/AppState.kt index 77edd2d0..a056a00e 100644 --- a/app/src/main/java/org/mozilla/fenix/components/appstate/AppState.kt +++ b/app/src/main/java/org/mozilla/fenix/components/appstate/AppState.kt @@ -38,6 +38,7 @@ import org.mozilla.fenix.wallpapers.WallpaperState * @property expandedCollections A set containing the ids of the [TabCollection] that are expanded * in the [HomeFragment]. * @property mode Whether the app is in private browsing mode. + * @property selectedTabId The currently selected tab ID. This should be bound to [BrowserStore]. * @property topSites The list of [TopSite] in the [HomeFragment]. * @property showCollectionPlaceholder If true, shows a placeholder when there are no collections. * @property recentTabs The list of recent [RecentTab] in the [HomeFragment]. @@ -64,6 +65,7 @@ data class AppState( val collections: List = emptyList(), val expandedCollections: Set = emptySet(), val mode: BrowsingMode = BrowsingMode.Normal, + val selectedTabId: String? = null, val topSites: List = emptyList(), val showCollectionPlaceholder: Boolean = false, val recentTabs: List = emptyList(), diff --git a/app/src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt b/app/src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt index e1753015..bf0ab324 100644 --- a/app/src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt +++ b/app/src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt @@ -8,6 +8,7 @@ import androidx.annotation.VisibleForTesting import mozilla.components.service.pocket.PocketStory.PocketRecommendedStory import mozilla.components.service.pocket.PocketStory.PocketSponsoredStory import mozilla.components.service.pocket.ext.recordNewImpression +import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.components.AppStore import org.mozilla.fenix.components.appstate.shopping.ShoppingStateReducer import org.mozilla.fenix.ext.filterOutTab @@ -100,6 +101,10 @@ internal object AppStoreReducer { else -> state.recentSyncedTabState }, ) + is AppAction.SelectedTabChanged -> state.copy( + selectedTabId = action.tab.id, + mode = BrowsingMode.fromBoolean(action.tab.content.private), + ) is AppAction.DisbandSearchGroupAction -> state.copy( recentHistory = state.recentHistory.filterNot { it is RecentHistoryGroup && it.title.equals(action.searchTerm, true) diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt index 9474ff07..0666ab06 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/FirstSessionPing.kt @@ -10,8 +10,10 @@ import androidx.annotation.VisibleForTesting import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import mozilla.components.service.glean.private.NoExtras import mozilla.components.support.base.log.logger.Logger import org.mozilla.fenix.Config +import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.FirstSession import org.mozilla.fenix.GleanMetrics.Pings import org.mozilla.fenix.ext.settings @@ -74,6 +76,8 @@ class FirstSessionPing(private val context: Context) { Pings.firstSession.submit() markAsTriggered() } + } else { + Events.firstSessionPingCancelled.record(NoExtras()) } } diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt index 2ecf9005..52eb6c4b 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt @@ -66,7 +66,6 @@ class GleanMetricsService( private var initialized = false private val activationPing = ActivationPing(context) - private val installationPing = FirstSessionPing(context) override fun start() { logger.debug("Enabling Glean.") @@ -87,7 +86,6 @@ class GleanMetricsService( Glean.registerPings(Pings) activationPing.checkAndSend() - installationPing.checkAndSend() } } diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt index 453ff475..6e43803f 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt @@ -339,7 +339,6 @@ internal class ReleaseMetricController( Awesomebar.sponsoredSuggestionImpressed.record( Awesomebar.SponsoredSuggestionImpressedExtra( provider = "amp", - engagementAbandoned = engagementAbandoned, ), ) } @@ -347,7 +346,6 @@ internal class ReleaseMetricController( Awesomebar.nonSponsoredSuggestionImpressed.record( Awesomebar.NonSponsoredSuggestionImpressedExtra( provider = "wikipedia", - engagementAbandoned = engagementAbandoned, ), ) } diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt index b3c24456..64c19ea3 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt @@ -19,9 +19,9 @@ import mozilla.components.browser.state.selector.selectedTab import mozilla.components.browser.state.state.CustomTabSessionState import mozilla.components.browser.state.state.ExternalAppType import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.browser.toolbar.behavior.BrowserToolbarBehavior import mozilla.components.browser.toolbar.display.DisplayToolbar import mozilla.components.support.ktx.util.URLStringUtils +import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior import org.mozilla.fenix.R import org.mozilla.fenix.components.toolbar.interactor.BrowserToolbarInteractor import org.mozilla.fenix.customtabs.CustomTabToolbarIntegration @@ -32,7 +32,7 @@ import org.mozilla.fenix.theme.ThemeManager import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.ToolbarPopupWindow import java.lang.ref.WeakReference -import mozilla.components.browser.toolbar.behavior.ToolbarPosition as MozacToolbarPosition +import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarPosition @SuppressWarnings("LargeClass") class BrowserToolbarView( @@ -53,8 +53,7 @@ class BrowserToolbarView( private val layout = LayoutInflater.from(context) .inflate(toolbarLayout, container, true) - @VisibleForTesting - internal var view: BrowserToolbar = layout + var view: BrowserToolbar = layout .findViewById(R.id.toolbar) val toolbarIntegration: ToolbarIntegration @@ -202,7 +201,7 @@ class BrowserToolbarView( } (view.layoutParams as? CoordinatorLayout.LayoutParams)?.apply { - (behavior as? BrowserToolbarBehavior)?.forceExpand(view) + (behavior as? EngineViewScrollingBehavior)?.forceExpand(view) } } @@ -213,7 +212,7 @@ class BrowserToolbarView( } (view.layoutParams as? CoordinatorLayout.LayoutParams)?.apply { - (behavior as? BrowserToolbarBehavior)?.forceCollapse(view) + (behavior as? EngineViewScrollingBehavior)?.forceCollapse(view) } } @@ -266,7 +265,7 @@ class BrowserToolbarView( @VisibleForTesting internal fun setDynamicToolbarBehavior(toolbarPosition: MozacToolbarPosition) { (view.layoutParams as? CoordinatorLayout.LayoutParams)?.apply { - behavior = BrowserToolbarBehavior(view.context, null, toolbarPosition) + behavior = EngineViewScrollingBehavior(view.context, null, toolbarPosition) } } diff --git a/app/src/main/java/org/mozilla/fenix/compose/Menu.kt b/app/src/main/java/org/mozilla/fenix/compose/Menu.kt index 68acd450..2d1d5cbe 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/Menu.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/Menu.kt @@ -6,11 +6,15 @@ package org.mozilla.fenix.compose import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.selection.selectable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.DropdownMenu import androidx.compose.material.DropdownMenuItem +import androidx.compose.material.Icon import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable @@ -24,8 +28,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.button.PrimaryButton import org.mozilla.fenix.theme.FirefoxTheme @@ -62,14 +69,51 @@ private fun Menu( .background(color = FirefoxTheme.colors.layer2) .then(modifier), ) { + val hasCheckedItems = menuItems.any { it.isChecked } + for (item in menuItems) { + val checkmarkModifier = if (hasCheckedItems) { + Modifier.selectable( + selected = item.isChecked, + role = Role.Button, + onClick = { + onDismissRequest() + item.onClick() + }, + ) + } else { + Modifier + } + DropdownMenuItem( - modifier = Modifier.testTag(item.testTag), + modifier = Modifier + .testTag(item.testTag) + .align(alignment = Alignment.CenterHorizontally) + .then(checkmarkModifier), onClick = { onDismissRequest() item.onClick() }, ) { + if (hasCheckedItems) { + if (item.isChecked) { + Icon( + painter = painterResource(id = R.drawable.mozac_ic_checkmark_24), + modifier = Modifier + .size(24.dp), + contentDescription = null, + tint = FirefoxTheme.colors.iconPrimary, + ) + } else { + Spacer( + modifier = Modifier + .size(24.dp), + ) + } + + Spacer(modifier = Modifier.width(12.dp)) + } + Text( text = item.title, color = item.color ?: FirefoxTheme.colors.textPrimary, @@ -117,12 +161,14 @@ fun ContextualMenu( * * @property title Text the item should display. * @property color Color used to display the text. + * @property isChecked Whether a checkmark should appear next to the text. * @property testTag Tag used to identify the item in automated tests. * @property onClick Callback to be called when the item is clicked. */ data class MenuItem( val title: String, val color: Color? = null, + val isChecked: Boolean = false, val testTag: String = "", val onClick: () -> Unit, ) diff --git a/app/src/main/java/org/mozilla/fenix/compose/MessageCard.kt b/app/src/main/java/org/mozilla/fenix/compose/MessageCard.kt index d5a6cc1d..d3669470 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/MessageCard.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/MessageCard.kt @@ -208,7 +208,7 @@ private fun MessageCardPreview() { ) { MessageCard( messageText = stringResource(id = R.string.default_browser_experiment_card_text), - titleText = stringResource(id = R.string.bookmark_empty_title_error), + titleText = stringResource(id = R.string.default_browser_experiment_card_title), onClick = {}, onCloseButtonClick = {}, ) @@ -245,7 +245,7 @@ private fun MessageCardWithButtonLabelPreview() { ) { MessageCard( messageText = stringResource(id = R.string.default_browser_experiment_card_text), - titleText = stringResource(id = R.string.bookmark_empty_title_error), + titleText = stringResource(id = R.string.default_browser_experiment_card_title), buttonText = stringResource(id = R.string.preferences_set_as_default_browser), onClick = {}, onCloseButtonClick = {}, diff --git a/app/src/main/java/org/mozilla/fenix/compose/TabCounter.kt b/app/src/main/java/org/mozilla/fenix/compose/TabCounter.kt new file mode 100644 index 00000000..b35235f2 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/compose/TabCounter.kt @@ -0,0 +1,136 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.compose + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +import androidx.compose.material.Icon +import androidx.compose.material.LocalContentAlpha +import androidx.compose.material.LocalContentColor +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.compose.ext.toLocaleString +import org.mozilla.fenix.tabstray.TabsTrayTestTag +import org.mozilla.fenix.theme.FirefoxTheme + +private const val MAX_VISIBLE_TABS = 99 +private const val SO_MANY_TABS_OPEN = "∞" +private val NORMAL_TABS_BOTTOM_PADDING = 0.5.dp +private const val ONE_DIGIT_SIZE_RATIO = 0.5f +private const val TWO_DIGITS_SIZE_RATIO = 0.4f +private const val MIN_SINGLE_DIGIT = 0 +private const val MAX_SINGLE_DIGIT = 9 +private const val TWO_DIGIT_THRESHOLD = 10 +private const val TAB_TEXT_BOTTOM_PADDING_RATIO = 4 + +/** + * UI for displaying the number of opened tabs. +* +* This composable uses LocalContentColor, provided by CompositionLocalProvider, +* to set the color of its icons and text. +* +* @param tabCount the number to be displayed inside the counter. +*/ + +@Composable +fun TabCounter(tabCount: Int) { + val formattedTabCount = tabCount.toLocaleString() + val normalTabCountText: String + val tabCountTextRatio: Float + val needsBottomPaddingForInfiniteTabs: Boolean + + when (tabCount) { + in MIN_SINGLE_DIGIT..MAX_SINGLE_DIGIT -> { + normalTabCountText = formattedTabCount + tabCountTextRatio = ONE_DIGIT_SIZE_RATIO + needsBottomPaddingForInfiniteTabs = false + } + + in TWO_DIGIT_THRESHOLD..MAX_VISIBLE_TABS -> { + normalTabCountText = formattedTabCount + tabCountTextRatio = TWO_DIGITS_SIZE_RATIO + needsBottomPaddingForInfiniteTabs = false + } + + else -> { + normalTabCountText = SO_MANY_TABS_OPEN + tabCountTextRatio = ONE_DIGIT_SIZE_RATIO + needsBottomPaddingForInfiniteTabs = true + } + } + + val normalTabsContentDescription = if (tabCount == 1) { + stringResource(id = R.string.mozac_tab_counter_open_tab_tray_single) + } else { + stringResource( + id = R.string.mozac_tab_counter_open_tab_tray_plural, + formattedTabCount, + ) + } + + val counterBoxWidthDp = + dimensionResource(id = mozilla.components.ui.tabcounter.R.dimen.mozac_tab_counter_box_width_height) + val counterBoxWidthPx = LocalDensity.current.run { counterBoxWidthDp.roundToPx() } + val counterTabsTextSize = (tabCountTextRatio * counterBoxWidthPx).toInt() + + val normalTabsTextModifier = if (needsBottomPaddingForInfiniteTabs) { + val bottomPadding = with(LocalDensity.current) { counterTabsTextSize.toDp() / TAB_TEXT_BOTTOM_PADDING_RATIO } + Modifier.padding(bottom = bottomPadding) + } else { + Modifier.padding(bottom = NORMAL_TABS_BOTTOM_PADDING) + } + + Box( + modifier = Modifier + .semantics(mergeDescendants = true) { + testTag = TabsTrayTestTag.normalTabsCounter + }, + contentAlignment = Alignment.Center, + ) { + Icon( + painter = painterResource( + id = mozilla.components.ui.tabcounter.R.drawable.mozac_ui_tabcounter_box, + ), + contentDescription = normalTabsContentDescription, + ) + + Text( + text = normalTabCountText, + modifier = normalTabsTextModifier, + color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current), + fontSize = with(LocalDensity.current) { counterTabsTextSize.toDp().toSp() }, + fontWeight = FontWeight.W700, + textAlign = TextAlign.Center, + ) + } +} + +@LightDarkPreview +@Preview(locale = "ar") +@Composable +private fun TabCounterPreview() { + FirefoxTheme { + Box( + modifier = Modifier.background(color = FirefoxTheme.colors.layer1), + ) { + TabCounter(tabCount = 55) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/compose/button/FloatingActionButton.kt b/app/src/main/java/org/mozilla/fenix/compose/button/FloatingActionButton.kt index 29ed7f83..954e40a6 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/button/FloatingActionButton.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/button/FloatingActionButton.kt @@ -47,7 +47,10 @@ fun FloatingActionButton( modifier: Modifier = Modifier, contentDescription: String? = null, label: String? = null, - elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(defaultElevation = 5.dp), + elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation( + defaultElevation = 5.dp, + pressedElevation = 5.dp, + ), onClick: () -> Unit, ) { FloatingActionButton( diff --git a/app/src/main/java/org/mozilla/fenix/compose/ext/Int.kt b/app/src/main/java/org/mozilla/fenix/compose/ext/Int.kt new file mode 100644 index 00000000..7d09419c --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/compose/ext/Int.kt @@ -0,0 +1,15 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.compose.ext + +import androidx.compose.ui.text.intl.Locale +import java.text.NumberFormat +import java.util.Locale as JavaLocale + +/** + * Returns a localized string representation of the value. + */ +fun Int.toLocaleString(): String = + NumberFormat.getNumberInstance(JavaLocale(Locale.current.language)).format(this) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt index be147c03..c2df28f2 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt @@ -5,7 +5,6 @@ package org.mozilla.fenix.customtabs import android.content.Context -import android.content.Intent import android.view.View import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.view.isVisible @@ -28,7 +27,6 @@ import mozilla.components.feature.pwa.feature.WebAppHideToolbarFeature import mozilla.components.feature.pwa.feature.WebAppSiteControlsFeature import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.ktx.android.arch.lifecycle.addObservers -import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.R import org.mozilla.fenix.browser.BaseBrowserFragment import org.mozilla.fenix.browser.CustomTabContextMenuCandidate @@ -80,21 +78,7 @@ class ExternalAppBrowserFragment : BaseBrowserFragment() { ) windowFeature.set( - feature = CustomTabWindowFeature( - activity, - components.core.store, - customTabSessionId, - ) { uri -> - val intent = - Intent.parseUri("${BuildConfig.DEEP_LINK_SCHEME}://open?url=$uri", 0) - if (intent.action == Intent.ACTION_VIEW) { - intent.addCategory(Intent.CATEGORY_BROWSABLE) - intent.component = null - intent.selector = null - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK - } - activity.startActivity(intent) - }, + feature = CustomTabWindowFeature(activity, components.core.store, customTabSessionId), owner = this, view = view, ) diff --git a/app/src/main/java/org/mozilla/fenix/debugsettings/tabs/TabTools.kt b/app/src/main/java/org/mozilla/fenix/debugsettings/tabs/TabTools.kt index c6daa5d8..5fa97b7c 100644 --- a/app/src/main/java/org/mozilla/fenix/debugsettings/tabs/TabTools.kt +++ b/app/src/main/java/org/mozilla/fenix/debugsettings/tabs/TabTools.kt @@ -43,6 +43,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.compose.Divider import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.button.PrimaryButton +import org.mozilla.fenix.compose.ext.toLocaleString import org.mozilla.fenix.debugsettings.ui.DebugDrawer import org.mozilla.fenix.ext.maxActiveTime import org.mozilla.fenix.tabstray.ext.isNormalTabInactive @@ -152,19 +153,19 @@ private fun TabCounter( TabCountRow( tabType = stringResource(R.string.debug_drawer_tab_tools_tab_count_normal), - count = activeTabCount.toString(), + count = activeTabCount, ) if (inactiveTabsEnabled) { TabCountRow( tabType = stringResource(R.string.debug_drawer_tab_tools_tab_count_inactive), - count = inactiveTabCount.toString(), + count = inactiveTabCount, ) } TabCountRow( tabType = stringResource(R.string.debug_drawer_tab_tools_tab_count_private), - count = privateTabCount.toString(), + count = privateTabCount, ) Spacer(modifier = Modifier.height(8.dp)) @@ -175,7 +176,7 @@ private fun TabCounter( TabCountRow( tabType = stringResource(R.string.debug_drawer_tab_tools_tab_count_total), - count = totalTabCount.toString(), + count = totalTabCount, ) } } @@ -183,7 +184,7 @@ private fun TabCounter( @Composable private fun TabCountRow( tabType: String, - count: String, + count: Int, ) { Row( modifier = Modifier @@ -198,14 +199,14 @@ private fun TabCountRow( ) Text( - text = count, + text = count.toLocaleString(), color = FirefoxTheme.colors.textSecondary, style = FirefoxTheme.typography.headline6, ) } } -private const val DEFAULT_TABS_TO_ADD = "1" +private const val DEFAULT_TABS_TO_ADD = 1 @OptIn(ExperimentalComposeUiApi::class) @Composable @@ -213,7 +214,7 @@ private fun TabCreationTool( inactiveTabsEnabled: Boolean, onCreateTabsClick: ((quantity: Int, isInactive: Boolean, isPrivate: Boolean) -> Unit), ) { - var tabQuantityToCreate by rememberSaveable { mutableStateOf(DEFAULT_TABS_TO_ADD) } + var tabQuantityToCreate by rememberSaveable { mutableStateOf(DEFAULT_TABS_TO_ADD.toLocaleString()) } var hasError by rememberSaveable { mutableStateOf(false) } val keyboardController = LocalSoftwareKeyboardController.current diff --git a/app/src/main/java/org/mozilla/fenix/ext/Client.kt b/app/src/main/java/org/mozilla/fenix/ext/Client.kt index 99d3e79e..513aca10 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/Client.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/Client.kt @@ -21,7 +21,7 @@ suspend fun Client.bitmapForUrl(url: String): Bitmap? = withContext(Dispatchers. // Code below will cache it in Gecko's cache, which ensures that as long as we've fetched it once, // we will be able to display this avatar as long as the cache isn't purged (e.g. via 'clear user data'). val body = try { - fetch(Request(url, useCaches = true)).body + fetch(Request(url, useCaches = true, conservative = true)).body } catch (e: IOException) { return@withContext null } diff --git a/app/src/main/java/org/mozilla/fenix/ext/NavController.kt b/app/src/main/java/org/mozilla/fenix/ext/NavController.kt index 07e9713b..e768d72f 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/NavController.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/NavController.kt @@ -68,7 +68,7 @@ fun NavController.navigateWithBreadcrumb( */ @SuppressLint("RestrictedApi") fun NavController.hasTopDestination(fragmentClassName: String): Boolean { - return this.backQueue.lastOrNull()?.destination?.displayName?.contains( + return this.currentBackStackEntry?.destination?.displayName?.contains( fragmentClassName, true, ) == true diff --git a/app/src/main/java/org/mozilla/fenix/ext/Toolbar.kt b/app/src/main/java/org/mozilla/fenix/ext/Toolbar.kt index b7e9b953..c7b6325d 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/Toolbar.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/Toolbar.kt @@ -33,6 +33,7 @@ fun Toolbar.setToolbarColors(@ColorInt foreground: Int, @ColorInt background: In } } +@Suppress("RestrictedApi") private fun themeActionMenuView(item: ActionMenuView, colorFilter: ColorFilter?) { item.forEach { innerChild -> if (innerChild is ActionMenuItemView) { diff --git a/app/src/main/java/org/mozilla/fenix/ext/View.kt b/app/src/main/java/org/mozilla/fenix/ext/View.kt index 83a02b7c..3c5976e4 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/View.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/View.kt @@ -30,6 +30,23 @@ fun View.increaseTapArea(@Dimension(unit = DP) extraDps: Int) { } } +/** + * Increase tap area only vertically. + * + * @param extraDps the extra dps that's wanted to be added on top and bottom of the view + */ +fun View.increaseTapAreaVertically(@Dimension(unit = DP) extraDps: Int) { + val dips = extraDps.dpToPx(resources.displayMetrics) + val parent = this.parent as View + parent.post { + val touchArea = Rect() + getHitRect(touchArea) + touchArea.top -= dips + touchArea.bottom += dips + parent.touchDelegate = TouchDelegate(touchArea, this) + } +} + fun View.removeTouchDelegate() { val parent = this.parent as View parent.post { diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 056677d9..588737e3 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -248,7 +248,11 @@ class HomeFragment : Fragment() { val components = requireComponents val currentWallpaperName = requireContext().settings().currentWallpaperName - applyWallpaper(wallpaperName = currentWallpaperName, orientationChange = false) + applyWallpaper( + wallpaperName = currentWallpaperName, + orientationChange = false, + orientation = requireContext().resources.configuration.orientation, + ) components.appStore.dispatch(AppAction.ModeChange(browsingModeManager.mode)) @@ -454,7 +458,11 @@ class HomeFragment : Fragment() { homeMenuView?.dismissMenu() val currentWallpaperName = requireContext().settings().currentWallpaperName - applyWallpaper(wallpaperName = currentWallpaperName, orientationChange = true) + applyWallpaper( + wallpaperName = currentWallpaperName, + orientationChange = true, + orientation = newConfig.orientation, + ) } /** @@ -999,7 +1007,7 @@ class HomeFragment : Fragment() { internal fun shouldEnableWallpaper() = (activity as? HomeActivity)?.themeManager?.currentTheme?.isPrivate?.not() ?: false - private fun applyWallpaper(wallpaperName: String, orientationChange: Boolean) { + private fun applyWallpaper(wallpaperName: String, orientationChange: Boolean, orientation: Int) { when { !shouldEnableWallpaper() || (wallpaperName == lastAppliedWallpaperName && !orientationChange) -> return @@ -1012,8 +1020,7 @@ class HomeFragment : Fragment() { // loadBitmap does file lookups based on name, so we don't need a fully // qualified type to load the image val wallpaper = Wallpaper.Default.copy(name = wallpaperName) - val wallpaperImage = - context?.let { requireComponents.useCases.wallpaperUseCases.loadBitmap(it, wallpaper) } + val wallpaperImage = requireComponents.useCases.wallpaperUseCases.loadBitmap(wallpaper, orientation) wallpaperImage?.let { it.scaleToBottomOfView(binding.wallpaperImageView) binding.wallpaperImageView.isVisible = true @@ -1059,7 +1066,11 @@ class HomeFragment : Fragment() { .distinctUntilChanged() .collect { if (it.name != lastAppliedWallpaperName) { - applyWallpaper(wallpaperName = it.name, orientationChange = false) + applyWallpaper( + wallpaperName = it.name, + orientationChange = false, + orientation = requireContext().resources.configuration.orientation, + ) } } } diff --git a/app/src/main/java/org/mozilla/fenix/home/toolbar/SearchSelectorBinding.kt b/app/src/main/java/org/mozilla/fenix/home/toolbar/SearchSelectorBinding.kt index 3696c628..6a6b9268 100644 --- a/app/src/main/java/org/mozilla/fenix/home/toolbar/SearchSelectorBinding.kt +++ b/app/src/main/java/org/mozilla/fenix/home/toolbar/SearchSelectorBinding.kt @@ -20,6 +20,7 @@ import mozilla.components.support.ktx.android.content.getColorFromAttr import org.mozilla.fenix.GleanMetrics.UnifiedSearch import org.mozilla.fenix.R import org.mozilla.fenix.databinding.FragmentHomeBinding +import org.mozilla.fenix.ext.increaseTapAreaVertically import org.mozilla.fenix.ext.settings import org.mozilla.fenix.search.toolbar.SearchSelectorMenu @@ -51,6 +52,8 @@ class SearchSelectorBinding( orientation = orientation, ) } + + increaseTapAreaVertically(SEARCH_SELECTOR_INCREASE_HEIGHT_DPS) } } @@ -76,4 +79,8 @@ class SearchSelectorBinding( binding.searchSelectorButton.setIcon(icon, name) } } + + companion object { + const val SEARCH_SELECTOR_INCREASE_HEIGHT_DPS = 10 + } } diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt index 0a56a0c9..a480f861 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt @@ -97,6 +97,7 @@ class TopSitesPagerAdapter( } override fun areContentsTheSame(oldItem: List, newItem: List): Boolean { + @Suppress("DiffUtilEquals") return newItem.zip(oldItem).all { (new, old) -> new == old } } diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/HomeNotificationPermissionDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/onboarding/HomeNotificationPermissionDialogFragment.kt deleted file mode 100644 index be4a22e1..00000000 --- a/app/src/main/java/org/mozilla/fenix/onboarding/HomeNotificationPermissionDialogFragment.kt +++ /dev/null @@ -1,64 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.onboarding - -import android.annotation.SuppressLint -import android.content.pm.ActivityInfo -import android.os.Build -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.annotation.RequiresApi -import androidx.compose.ui.platform.ComposeView -import androidx.fragment.app.DialogFragment -import org.mozilla.fenix.R -import org.mozilla.fenix.ext.requireComponents -import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.onboarding.view.NotificationPermissionDialogScreen -import org.mozilla.fenix.theme.FirefoxTheme - -/** - * Dialog displaying notification pre-permission prompt. - */ -class HomeNotificationPermissionDialogFragment : DialogFragment() { - - @SuppressLint("SourceLockedOrientationActivity") - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setStyle(STYLE_NO_TITLE, R.style.HomeOnboardingDialogStyle) - activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT - } - - override fun onDestroy() { - super.onDestroy() - activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED - } - - @RequiresApi(Build.VERSION_CODES.TIRAMISU) - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle?, - ): View = ComposeView(requireContext()).apply { - setContent { - FirefoxTheme { - NotificationPermissionDialogScreen( - onDismiss = ::onDismiss, - grantNotificationPermission = { - ensureMarketingChannelExists(context.applicationContext) - requireComponents.notificationsDelegate.requestNotificationPermission() - onDismiss() - }, - ) - } - } - } - - private fun onDismiss() { - dismiss() - context?.settings()?.isNotificationPrePermissionShown = true - } -} diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt index d46adfac..e91ed384 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt @@ -51,7 +51,7 @@ class OnboardingFragment : Fragment() { private val pagesToDisplay by lazy { pagesToDisplay( - shouldShowDefaultBrowserCard(requireContext()), + isNotDefaultBrowser(requireContext()), canShowNotificationPage(requireContext()), canShowAddWidgetCard(), ) @@ -62,6 +62,7 @@ class OnboardingFragment : Fragment() { @SuppressLint("SourceLockedOrientationActivity") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val context = requireContext() if (pagesToDisplay.isEmpty()) { /* do not continue if there's no onboarding pages to display */ onFinish(null) @@ -71,8 +72,14 @@ class OnboardingFragment : Fragment() { activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT } val filter = IntentFilter(WidgetPinnedReceiver.ACTION) - LocalBroadcastManager.getInstance(requireContext()) + LocalBroadcastManager.getInstance(context) .registerReceiver(pinAppWidgetReceiver, filter) + + if (isNotDefaultBrowser(context) && + pagesToDisplay.none { it.type == OnboardingPageUiData.Type.DEFAULT_BROWSER } + ) { + promptToSetAsDefaultBrowser() + } } @RequiresApi(Build.VERSION_CODES.TIRAMISU) @@ -108,11 +115,7 @@ class OnboardingFragment : Fragment() { OnboardingScreen( pagesToDisplay = pagesToDisplay, onMakeFirefoxDefaultClick = { - activity?.openSetDefaultBrowserOption(useCustomTab = true) - telemetryRecorder.onSetToDefaultClick( - sequenceId = pagesToDisplay.telemetrySequenceId(), - sequencePosition = pagesToDisplay.sequencePosition(OnboardingPageUiData.Type.DEFAULT_BROWSER), - ) + promptToSetAsDefaultBrowser() }, onSkipDefaultClick = { telemetryRecorder.onSkipSetToDefaultClick( @@ -211,7 +214,7 @@ class OnboardingFragment : Fragment() { ) } - private fun shouldShowDefaultBrowserCard(context: Context) = + private fun isNotDefaultBrowser(context: Context) = !BrowsersCache.all(context.applicationContext).isDefaultBrowser private fun canShowNotificationPage(context: Context) = @@ -257,4 +260,12 @@ class OnboardingFragment : Fragment() { jexlConditions, ) { condition -> jexlHelper.evalJexlSafe(condition) } } + + private fun promptToSetAsDefaultBrowser() { + activity?.openSetDefaultBrowserOption(useCustomTab = true) + telemetryRecorder.onSetToDefaultClick( + sequenceId = pagesToDisplay.telemetrySequenceId(), + sequencePosition = pagesToDisplay.sequencePosition(OnboardingPageUiData.Type.DEFAULT_BROWSER), + ) + } } diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/NotificationPermissionDialogScreen.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/NotificationPermissionDialogScreen.kt deleted file mode 100644 index 702b98a1..00000000 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/NotificationPermissionDialogScreen.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.onboarding.view - -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.foundation.layout.statusBarsPadding -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import mozilla.components.service.glean.private.NoExtras -import org.mozilla.fenix.GleanMetrics.Onboarding -import org.mozilla.fenix.R -import org.mozilla.fenix.compose.annotation.LightDarkPreview -import org.mozilla.fenix.theme.FirefoxTheme - -/** - * A screen for displaying notification pre permission prompt. - * - * @param onDismiss Invoked when the user clicks on the close or the negative button. - * @param grantNotificationPermission Invoked when the user clicks on the positive button. - */ -@Composable -fun NotificationPermissionDialogScreen( - onDismiss: () -> Unit, - grantNotificationPermission: () -> Unit, -) { - OnboardingPage( - pageState = OnboardingPageState( - imageRes = R.drawable.ic_notification_permission, - title = stringResource( - id = R.string.onboarding_home_enable_notifications_title, - formatArgs = arrayOf(stringResource(R.string.app_name)), - ), - description = stringResource( - id = R.string.onboarding_home_enable_notifications_description, - formatArgs = arrayOf(stringResource(R.string.app_name)), - ), - primaryButton = Action( - text = stringResource(id = R.string.onboarding_home_enable_notifications_positive_button), - onClick = { - grantNotificationPermission() - Onboarding.notifPppPositiveBtnClick.record(NoExtras()) - }, - ), - secondaryButton = Action( - text = stringResource(id = R.string.onboarding_home_enable_notifications_negative_button), - onClick = { - onDismiss() - Onboarding.notifPppNegativeBtnClick.record(NoExtras()) - }, - ), - onRecordImpressionEvent = { Onboarding.notifPppImpression.record(NoExtras()) }, - ), - onDismiss = { - onDismiss() - Onboarding.notifPppCloseClick.record(NoExtras()) - }, - modifier = Modifier - .statusBarsPadding() - .navigationBarsPadding(), - ) -} - -@LightDarkPreview -@Composable -private fun NotificationPermissionScreenPreview() { - FirefoxTheme { - NotificationPermissionDialogScreen( - grantNotificationPermission = {}, - onDismiss = { }, - ) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/perf/ProfilerUtils.kt b/app/src/main/java/org/mozilla/fenix/perf/ProfilerUtils.kt index a71b0e3c..28a8211e 100644 --- a/app/src/main/java/org/mozilla/fenix/perf/ProfilerUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/perf/ProfilerUtils.kt @@ -23,9 +23,17 @@ private const val PROFILER_SERVER_HEADER = "application/vnd.firefox-profiler+jso private const val TOKEN = "profileToken" private const val PROFILER_DATA_URL = "https://profiler.firefox.com/public/" +// IMPORTANT NOTE: Please keep the profiler presets in sync with their Firefox Desktop counterparts: +// https://searchfox.org/mozilla-central/rev/c130c69b7b863d5e28ab9524b65c27c7a9507c48/devtools/client/performance-new/shared/background.jsm.js#121 + private val firefox_features = arrayOf( - "screenshots", "js", "leaf", "stackwalk", "cpu", "java", - "processcpu", "ipcmessages", "java", + "screenshots", + "js", + "stackwalk", + "cpu", + "java", + "processcpu", + "ipcmessages", ) private val firefox_threads = arrayOf( "GeckoMain", @@ -45,11 +53,11 @@ private val graphics_threads = arrayOf( "SceneBuilder", "WrWorker", "CanvasWorkers", + "TextureUpdate", ) private val media_features = arrayOf( "js", - "leaf", "stackwalk", "cpu", "audiocallbacktracing", @@ -61,17 +69,17 @@ private val media_threads = arrayOf( "cubeb", "audio", "BackgroundThreadPool", "camera", "capture", "Compositor", "decoder", "GeckoMain", "gmp", "graph", "grph", "InotifyEventThread", "IPDL Background", "media", "ModuleProcessThread", "PacerThread", "RemVidChild", "RenderBackend", "Renderer", "Socket Thread", "SwComposite", - "webrtc", + "webrtc", "TextureUpdate", ) private val networking_features = arrayOf( "screenshots", "js", - "leaf", "stackwalk", "cpu", "java", "processcpu", + "bandwidth", "ipcmessages", ) @@ -133,6 +141,7 @@ object ProfilerUtils { "Accept" to PROFILER_SERVER_HEADER, ), body = Request.Body.fromFile(outputFile), + conservative = true, ) return context.components.core.client.fetch(request) } diff --git a/app/src/main/java/org/mozilla/fenix/perf/StartupPathProvider.kt b/app/src/main/java/org/mozilla/fenix/perf/StartupPathProvider.kt index 1cd62630..d6b0abe1 100644 --- a/app/src/main/java/org/mozilla/fenix/perf/StartupPathProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/perf/StartupPathProvider.kt @@ -100,7 +100,6 @@ class StartupPathProvider { override fun onStop(owner: LifecycleOwner) { // Clear existing state. - startupPathForActivity = StartupPath.NOT_SET wasResumedSinceStartedState = false } } diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt b/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt index 74e830fc..4ab17e66 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt @@ -143,6 +143,7 @@ class SearchDialogController( override fun handleEditingCancelled() { clearToolbarFocus() dismissDialogAndGoBack() + store.dispatch(AwesomeBarAction.EngagementFinished(abandoned = true)) } override fun handleTextChanged(text: String) { diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt index f6fd7de7..c41d5ea4 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt @@ -959,7 +959,7 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler { internal fun getPreviousDestination(): NavBackStackEntry? { // This duplicates the platform functionality for "previousBackStackEntry" but additionally skips this entry. - val descendingEntries = findNavController().backQueue.reversed().iterator() + val descendingEntries = findNavController().currentBackStack.value.reversed().iterator() // Throw the topmost destination away. if (descendingEntries.hasNext()) { descendingEntries.next() diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index 86b2aabe..2d91285f 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -23,6 +23,7 @@ import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar +import org.mozilla.fenix.GleanMetrics.DebugDrawer as DebugDrawerMetrics class SecretSettingsFragment : PreferenceFragmentCompat() { @@ -87,7 +88,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = object : Preference.OnPreferenceChangeListener { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { val newBooleanValue = newValue as? Boolean ?: return false - val ingestionScheduler = requireContext().components.fxSuggest.ingestionScheduler + val ingestionScheduler = + requireContext().components.fxSuggest.ingestionScheduler if (newBooleanValue) { ingestionScheduler.startPeriodicIngestion() } else { @@ -108,13 +110,13 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } lifecycleScope.launch { - // During initial development, this will only be available in Nightly or Debug builds. requirePreference(R.string.pref_key_enable_debug_drawer).apply { - isVisible = Config.channel.isNightlyOrDebug + isVisible = true isChecked = debugSettingsRepository.debugDrawerEnabled.first() onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> debugSettingsRepository.setDebugDrawerEnabled(enabled = newValue as Boolean) + DebugDrawerMetrics.debugDrawerEnabled.set(newValue) true } } @@ -128,6 +130,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { requirePreference(R.string.pref_key_custom_sponsored_stories_parameters).apply { isVisible = Config.channel.isNightlyOrDebug } + + requirePreference(R.string.pref_key_remote_server_prod).apply { + isVisible = true + isChecked = context.settings().useProductionRemoteSettingsServer + onPreferenceChangeListener = SharedPreferenceUpdater() + } } override fun onPreferenceTreeClick(preference: Preference): Boolean { diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index 118662da..81df6003 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -261,143 +261,112 @@ class SettingsFragment : PreferenceFragmentCompat() { recyclerView.isVerticalScrollBarEnabled = false val directions: NavDirections? = when (preference.key) { + /* Top level account preferences. + Note: Only ONE of these preferences is visible at a time. */ resources.getString(R.string.pref_key_sign_in) -> { SettingsMetrics.signIntoSync.add() SettingsFragmentDirections.actionSettingsFragmentToTurnOnSyncFragment( entrypoint = FenixFxAEntryPoint.SettingsMenu, ) } - resources.getString(R.string.pref_key_tabs) -> { - SettingsFragmentDirections.actionSettingsFragmentToTabsSettingsFragment() - } - resources.getString(R.string.pref_key_home) -> { - SettingsFragmentDirections.actionSettingsFragmentToHomeSettingsFragment() - } - resources.getString(R.string.pref_key_search_settings) -> { - SettingsFragmentDirections.actionSettingsFragmentToSearchEngineFragment() - } - resources.getString(R.string.pref_key_tracking_protection_settings) -> { - TrackingProtection.etpSettings.record(NoExtras()) - SettingsFragmentDirections.actionSettingsFragmentToTrackingProtectionFragment() - } - resources.getString(R.string.pref_key_site_permissions) -> { - SettingsFragmentDirections.actionSettingsFragmentToSitePermissionsFragment() - } - resources.getString(R.string.pref_key_private_browsing) -> { - SettingsFragmentDirections.actionSettingsFragmentToPrivateBrowsingFragment() - } - resources.getString(R.string.pref_key_https_only_settings) -> { - SettingsFragmentDirections.actionSettingsFragmentToHttpsOnlyFragment() - } - resources.getString(R.string.pref_key_accessibility) -> { - SettingsFragmentDirections.actionSettingsFragmentToAccessibilityFragment() - } - resources.getString(R.string.pref_key_language) -> { - SettingsFragmentDirections.actionSettingsFragmentToLocaleSettingsFragment() - } - resources.getString(R.string.pref_key_addons) -> { - Addons.openAddonsInSettings.record(mozilla.components.service.glean.private.NoExtras()) - SettingsFragmentDirections.actionSettingsFragmentToAddonsFragment() - } - resources.getString(R.string.pref_key_open_links_in_apps) -> { - SettingsFragmentDirections.actionSettingsFragmentToOpenLinksInAppsFragment() - } - resources.getString(R.string.pref_key_data_choices) -> { - SettingsFragmentDirections.actionSettingsFragmentToDataChoicesFragment() - } - resources.getString(R.string.pref_key_sync_debug) -> { - SettingsFragmentDirections.actionSettingsFragmentToSyncDebugFragment() - } - resources.getString(R.string.pref_key_help) -> { - (activity as HomeActivity).openToBrowserAndLoad( - searchTermOrURL = SupportUtils.getSumoURLForTopic( - requireContext(), - SupportUtils.SumoTopic.HELP, - ), - newTab = true, - from = BrowserDirection.FromSettings, - ) - null - } - resources.getString(R.string.pref_key_rate) -> { - try { - startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(SupportUtils.RATE_APP_URL))) - } catch (e: ActivityNotFoundException) { - // Device without the play store installed. - // Opening the play store website. - (activity as HomeActivity).openToBrowserAndLoad( - searchTermOrURL = SupportUtils.FENIX_PLAY_STORE_URL, - newTab = true, - from = BrowserDirection.FromSettings, - ) - } - null - } - resources.getString(R.string.pref_key_passwords) -> { - SettingsMetrics.passwords.record() - SettingsFragmentDirections.actionSettingsFragmentToSavedLoginsAuthFragment() - } - resources.getString(R.string.pref_key_credit_cards) -> { - SettingsMetrics.autofill.record() - SettingsFragmentDirections.actionSettingsFragmentToAutofillSettingFragment() - } - resources.getString(R.string.pref_key_about) -> { - SettingsFragmentDirections.actionSettingsFragmentToAboutFragment() - } + resources.getString(R.string.pref_key_account) -> { SettingsFragmentDirections.actionSettingsFragmentToAccountSettingsFragment() } + resources.getString(R.string.pref_key_account_auth_error) -> { SettingsFragmentDirections.actionSettingsFragmentToAccountProblemFragment( entrypoint = FenixFxAEntryPoint.SettingsMenu, ) } + + /* General preferences */ + resources.getString(R.string.pref_key_search_settings) -> { + SettingsFragmentDirections.actionSettingsFragmentToSearchEngineFragment() + } + + resources.getString(R.string.pref_key_tabs) -> { + SettingsFragmentDirections.actionSettingsFragmentToTabsSettingsFragment() + } + + resources.getString(R.string.pref_key_home) -> { + SettingsFragmentDirections.actionSettingsFragmentToHomeSettingsFragment() + } + + resources.getString(R.string.pref_key_customize) -> { + SettingsFragmentDirections.actionSettingsFragmentToCustomizationFragment() + } + + resources.getString(R.string.pref_key_passwords) -> { + SettingsMetrics.passwords.record() + SettingsFragmentDirections.actionSettingsFragmentToSavedLoginsAuthFragment() + } + + resources.getString(R.string.pref_key_credit_cards) -> { + SettingsMetrics.autofill.record() + SettingsFragmentDirections.actionSettingsFragmentToAutofillSettingFragment() + } + + resources.getString(R.string.pref_key_accessibility) -> { + SettingsFragmentDirections.actionSettingsFragmentToAccessibilityFragment() + } + + resources.getString(R.string.pref_key_language) -> { + SettingsFragmentDirections.actionSettingsFragmentToLocaleSettingsFragment() + } + + /* Privacy and security preferences */ + resources.getString(R.string.pref_key_private_browsing) -> { + SettingsFragmentDirections.actionSettingsFragmentToPrivateBrowsingFragment() + } + + resources.getString(R.string.pref_key_https_only_settings) -> { + SettingsFragmentDirections.actionSettingsFragmentToHttpsOnlyFragment() + } + + resources.getString(R.string.pref_key_tracking_protection_settings) -> { + TrackingProtection.etpSettings.record(NoExtras()) + SettingsFragmentDirections.actionSettingsFragmentToTrackingProtectionFragment() + } + + resources.getString(R.string.pref_key_site_permissions) -> { + SettingsFragmentDirections.actionSettingsFragmentToSitePermissionsFragment() + } + resources.getString(R.string.pref_key_delete_browsing_data) -> { SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataFragment() } + resources.getString(R.string.pref_key_delete_browsing_data_on_quit_preference) -> { SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataOnQuitFragment() } + resources.getString(R.string.pref_key_notifications) -> { context?.navigateToNotificationsSettings {} null } - resources.getString(R.string.pref_key_customize) -> { - SettingsFragmentDirections.actionSettingsFragmentToCustomizationFragment() + + resources.getString(R.string.pref_key_data_choices) -> { + SettingsFragmentDirections.actionSettingsFragmentToDataChoicesFragment() } - resources.getString(R.string.pref_key_privacy_link) -> { - val intent = SupportUtils.createCustomTabIntent( - requireContext(), - SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.PRIVATE_NOTICE), - ) - startActivity(intent) - null - } - resources.getString(R.string.pref_key_your_rights) -> { - val context = requireContext() - val intent = SupportUtils.createCustomTabIntent( - context, - SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.YOUR_RIGHTS), - ) - startActivity(intent) - null - } - resources.getString(R.string.pref_key_debug_settings) -> { - SettingsFragmentDirections.actionSettingsFragmentToSecretSettingsFragment() - } - resources.getString(R.string.pref_key_secret_debug_info) -> { - SettingsFragmentDirections.actionSettingsFragmentToSecretInfoSettingsFragment() - } - resources.getString(R.string.pref_key_nimbus_experiments) -> { - SettingsFragmentDirections.actionSettingsFragmentToNimbusExperimentsFragment() + + /* Advanced preferences */ + resources.getString(R.string.pref_key_addons) -> { + Addons.openAddonsInSettings.record(mozilla.components.service.glean.private.NoExtras()) + SettingsFragmentDirections.actionSettingsFragmentToAddonsFragment() } + + // Only displayed when secret settings are enabled resources.getString(R.string.pref_key_install_local_addon) -> { addonFilePicker.launch() null } + + // Only displayed when secret settings are enabled resources.getString(R.string.pref_key_override_amo_collection) -> { val context = requireContext() - val dialogView = LayoutInflater.from(context).inflate(R.layout.amo_collection_override_dialog, null) + val dialogView = LayoutInflater.from(context) + .inflate(R.layout.amo_collection_override_dialog, null) val binding = AmoCollectionOverrideDialogBinding.bind(dialogView) AlertDialog.Builder(context).apply { @@ -409,7 +378,8 @@ class SettingsFragment : PreferenceFragmentCompat() { setPositiveButton(R.string.customize_addon_collection_ok) { _, _ -> context.settings().overrideAmoUser = binding.customAmoUser.text.toString() - context.settings().overrideAmoCollection = binding.customAmoCollection.text.toString() + context.settings().overrideAmoCollection = + binding.customAmoCollection.text.toString() Toast.makeText( context, @@ -434,6 +404,51 @@ class SettingsFragment : PreferenceFragmentCompat() { null } + + resources.getString(R.string.pref_key_open_links_in_apps) -> { + SettingsFragmentDirections.actionSettingsFragmentToOpenLinksInAppsFragment() + } + + resources.getString(R.string.pref_key_sync_debug) -> { + SettingsFragmentDirections.actionSettingsFragmentToSyncDebugFragment() + } + + /* About preferences */ + resources.getString(R.string.pref_key_rate) -> { + try { + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(SupportUtils.RATE_APP_URL))) + } catch (e: ActivityNotFoundException) { + // Device without the play store installed. + // Opening the play store website. + (activity as HomeActivity).openToBrowserAndLoad( + searchTermOrURL = SupportUtils.FENIX_PLAY_STORE_URL, + newTab = true, + from = BrowserDirection.FromSettings, + ) + } + null + } + + resources.getString(R.string.pref_key_about) -> { + SettingsFragmentDirections.actionSettingsFragmentToAboutFragment() + } + + // Only displayed when secret settings are enabled + resources.getString(R.string.pref_key_debug_settings) -> { + SettingsFragmentDirections.actionSettingsFragmentToSecretSettingsFragment() + } + + // Only displayed when secret settings are enabled + resources.getString(R.string.pref_key_secret_debug_info) -> { + SettingsFragmentDirections.actionSettingsFragmentToSecretInfoSettingsFragment() + } + + // Only displayed when secret settings are enabled + resources.getString(R.string.pref_key_nimbus_experiments) -> { + SettingsFragmentDirections.actionSettingsFragmentToNimbusExperimentsFragment() + } + + // Only displayed when secret settings are enabled resources.getString(R.string.pref_key_start_profiler) -> { if (profilerViewModel.getProfilerState().value == true) { SettingsFragmentDirections.actionSettingsFragmentToStopProfilerDialog() @@ -441,6 +456,7 @@ class SettingsFragment : PreferenceFragmentCompat() { SettingsFragmentDirections.actionSettingsFragmentToStartProfilerDialog() } } + else -> null } directions?.let { navigateFromSettings(directions) } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt index 3efdfd5c..0f241ebd 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -26,9 +26,9 @@ object SupportUtils { const val POCKET_TRENDING_URL = "https://getpocket.com/fenix-top-articles" const val WIKIPEDIA_URL = "https://www.wikipedia.org/" const val FENIX_PLAY_STORE_URL = "https://play.google.com/store/apps/details?id=${BuildConfig.APPLICATION_ID}" - const val GOOGLE_URL = "https://leosearch.ddns.net/" + const val GOOGLE_URL = "https://www.google.com/" const val BAIDU_URL = "https://m.baidu.com/" - const val JD_URL = "https://unionX-click.jd.com/jdc" + + const val JD_URL = "https://union-click.jd.com/jdc" + "?e=&p=AyIGZRprFDJWWA1FBCVbV0IUWVALHFRBEwQAQB1AWQkFVUVXfFkAF14lRFRbJXstVWR3WQ1rJ08AZnhS" + "HDJBYh4LZR9eEAMUBlccWCUBEQZRGFoXCxc3ZRteJUl8BmUZWhQ" + "AEwdRGF0cMhIAVB5ZFAETBVAaXRwyFQdcKydLSUpaCEtYFAIXN2UrWCUyIgdVK1slXVZaCCtZFAMWDg%3D%3D" @@ -38,9 +38,7 @@ object SupportUtils { const val MEITUAN_URL = "https://tb.j5k6.com/6ZSOp" const val GOOGLE_US_URL = "https://www.google.com/webhp?client=firefox-b-1-m&channel=ts" const val GOOGLE_XX_URL = "https://www.google.com/webhp?client=firefox-b-m&channel=ts" - const val WHATS_NEW_URL = "https://github.com/LeOS-GSI/LeOS-Ice-browser/releases" - const val FDROID_URL = "https://f-droid.org/" - const val EFF_URL = "https://www.eff.org/" + const val WHATS_NEW_URL = "https://github.com/fork-maintainers/iceraven-browser/releases" enum class SumoTopic(internal val topicStr: String) { HELP("faq-android"), diff --git a/app/src/main/java/org/mozilla/fenix/settings/search/SearchStringValidator.kt b/app/src/main/java/org/mozilla/fenix/settings/search/SearchStringValidator.kt index 5249dcd1..0ae27805 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/search/SearchStringValidator.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/search/SearchStringValidator.kt @@ -28,7 +28,7 @@ object SearchStringValidator { } // read the response stream to ensure the body is closed correctly. workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1603114 - response.body.close() + response.close() return if (response.isSuccess || isTestQueryParamNotFound(response.status) ) { diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt index 91b846fc..aaa1c467 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt @@ -13,7 +13,8 @@ import org.mozilla.fenix.shopping.store.ReviewQualityCheckState private const val POWERED_BY_URL = "https://www.fakespot.com/review-checker?utm_source=review-checker" + "&utm_campaign=fakespot-by-mozilla&utm_medium=inproduct&utm_term=core-sheet" -private const val PRIVACY_POLICY_URL = "https://www.fakespot.com/privacy-policy" +private const val PRIVACY_POLICY_URL = "https://www.mozilla.org/en-US/privacy/firefox/#review-checker" + + "?utm_source=review-checker&utm_campaign=privacy-policy&utm_medium=in-product&utm_term=opt-in-screen" private const val TERMS_OF_USE_URL = "https://www.fakespot.com/terms" /** diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt index e5c53777..0ab8bca5 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt @@ -61,7 +61,7 @@ fun ReviewQualityCheckContextualOnboarding( val learnMoreText = stringResource(id = R.string.review_quality_check_contextual_onboarding_learn_more_link) val privacyPolicyText = - stringResource(id = R.string.review_quality_check_contextual_onboarding_privacy_policy) + stringResource(id = R.string.review_quality_check_contextual_onboarding_privacy_policy_3) val termsOfUseText = stringResource(id = R.string.review_quality_check_contextual_onboarding_terms_use) val titleContentDescription = @@ -113,9 +113,10 @@ fun ReviewQualityCheckContextualOnboarding( LinkText( text = stringResource( - id = R.string.review_quality_check_contextual_onboarding_caption, - stringResource(id = R.string.shopping_product_name), + id = R.string.review_quality_check_contextual_onboarding_caption_4, + stringResource(id = R.string.firefox), privacyPolicyText, + stringResource(id = R.string.shopping_product_name), termsOfUseText, ), linkTextStates = listOf( diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt index cff61af7..cfa020a3 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt @@ -626,5 +626,6 @@ private fun generateFakeSyncedTab(tabName: String, tabUrl: String): SyncedTabsLi history = listOf(TabEntry(tabName, tabUrl, null)), active = 0, lastUsed = 0L, + inactive = false, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt index 2779acc4..13e9c1d4 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt @@ -13,12 +13,9 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.Icon import androidx.compose.material.IconButton -import androidx.compose.material.LocalContentAlpha -import androidx.compose.material.LocalContentColor import androidx.compose.material.Tab import androidx.compose.material.TabRow import androidx.compose.material.Text @@ -35,27 +32,22 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.testTag -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import mozilla.components.browser.state.state.ContentState import mozilla.components.browser.state.state.TabSessionState import mozilla.components.lib.state.ext.observeAsComposableState -import mozilla.components.ui.tabcounter.TabCounter import org.mozilla.fenix.R import org.mozilla.fenix.compose.Banner import org.mozilla.fenix.compose.BottomSheetHandle import org.mozilla.fenix.compose.ContextualMenu import org.mozilla.fenix.compose.Divider import org.mozilla.fenix.compose.MenuItem +import org.mozilla.fenix.compose.TabCounter import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.tabstray.ext.getMenuItems import org.mozilla.fenix.theme.FirefoxTheme @@ -232,7 +224,7 @@ private fun SingleSelectBanner( selectedContentColor = selectedColor, unselectedContentColor = inactiveColor, ) { - NormalTabsTabIcon(normalTabCount = normalTabCount) + TabCounter(tabCount = normalTabCount) } Tab( @@ -293,85 +285,6 @@ private fun SingleSelectBanner( } } -private const val MAX_VISIBLE_TABS = 99 -private const val SO_MANY_TABS_OPEN = "∞" -private val NORMAL_TABS_BOTTOM_PADDING = 0.5.dp -private const val ONE_DIGIT_SIZE_RATIO = 0.5f -private const val TWO_DIGITS_SIZE_RATIO = 0.4f - -@Composable -@Suppress("MagicNumber") -private fun NormalTabsTabIcon(normalTabCount: Int) { - val normalTabCountText: String - val tabCountTextRatio: Float - val needsBottomPaddingForInfiniteTabs: Boolean - - when (normalTabCount) { - in 0..9 -> { - normalTabCountText = normalTabCount.toString() - tabCountTextRatio = ONE_DIGIT_SIZE_RATIO - needsBottomPaddingForInfiniteTabs = false - } - - in 10..MAX_VISIBLE_TABS -> { - normalTabCountText = normalTabCount.toString() - tabCountTextRatio = TWO_DIGITS_SIZE_RATIO - needsBottomPaddingForInfiniteTabs = false - } - - else -> { - normalTabCountText = SO_MANY_TABS_OPEN - tabCountTextRatio = ONE_DIGIT_SIZE_RATIO - needsBottomPaddingForInfiniteTabs = true - } - } - - val normalTabsContentDescription = if (normalTabCount == 1) { - stringResource(id = R.string.mozac_tab_counter_open_tab_tray_single) - } else { - stringResource( - id = R.string.mozac_tab_counter_open_tab_tray_plural, - normalTabCount.toString(), - ) - } - - val counterBoxWidthDp = - dimensionResource(id = mozilla.components.ui.tabcounter.R.dimen.mozac_tab_counter_box_width_height) - val counterBoxWidthPx = LocalDensity.current.run { counterBoxWidthDp.roundToPx() } - val counterTabsTextSize = (tabCountTextRatio * counterBoxWidthPx).toInt() - - val normalTabsTextModifier = if (needsBottomPaddingForInfiniteTabs) { - val bottomPadding = with(LocalDensity.current) { counterTabsTextSize.toDp() / 4 } - Modifier.padding(bottom = bottomPadding) - } else { - Modifier.padding(bottom = NORMAL_TABS_BOTTOM_PADDING) - } - - Box( - modifier = Modifier - .semantics(mergeDescendants = true) { - testTag = TabsTrayTestTag.normalTabsCounter - }, - contentAlignment = Alignment.Center, - ) { - Icon( - painter = painterResource( - id = mozilla.components.ui.tabcounter.R.drawable.mozac_ui_tabcounter_box, - ), - contentDescription = normalTabsContentDescription, - ) - - Text( - text = normalTabCountText, - modifier = normalTabsTextModifier, - color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current), - fontSize = with(LocalDensity.current) { counterTabsTextSize.toDp().toSp() }, - fontWeight = FontWeight.W700, - textAlign = TextAlign.Center, - ) - } -} - /** * Banner displayed in multi select mode. * @@ -470,7 +383,7 @@ private fun TabsTrayBannerPreview() { @Composable private fun TabsTrayBannerInfinityPreview() { TabsTrayBannerPreviewRoot( - normalTabCount = TabCounter.MAX_VISIBLE_TABS + 1, + normalTabCount = 200, ) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt index 9d8e3240..2ad84857 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt @@ -94,6 +94,7 @@ fun TabLayout( tabs.forEachIndexed { index, tab -> if (tab.id == selectedTabId) { selectedTabIndex = index + return@forEachIndexed } } } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabSorter.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabSorter.kt index 8ad653c2..7f7c62d1 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabSorter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/TabSorter.kt @@ -6,12 +6,12 @@ package org.mozilla.fenix.tabstray.browser import mozilla.components.browser.state.state.TabPartition import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.state.isActive import mozilla.components.browser.tabstray.TabsTray import mozilla.components.feature.tabs.tabstray.TabsFeature import org.mozilla.fenix.ext.maxActiveTime import org.mozilla.fenix.tabstray.TabsTrayAction import org.mozilla.fenix.tabstray.TabsTrayStore -import org.mozilla.fenix.tabstray.ext.isActive import org.mozilla.fenix.utils.Settings /** diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabSessionState.kt b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabSessionState.kt index 5fb9f02d..7419aa65 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabSessionState.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabSessionState.kt @@ -5,14 +5,9 @@ package org.mozilla.fenix.tabstray.ext import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.state.isActive import mozilla.components.support.ktx.kotlin.trimmed -fun TabSessionState.isActive(maxActiveTime: Long): Boolean { - val lastActiveTime = maxOf(lastAccess, createdAt) - val now = System.currentTimeMillis() - return (now - lastActiveTime <= maxActiveTime) -} - /** * Returns true if the [TabSessionState] has a search term. */ diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt index 489914cd..fe397604 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt @@ -309,5 +309,6 @@ private fun generateFakeTab(tabName: String, tabUrl: String): SyncedTabsListItem history = listOf(TabEntry(tabName, tabUrl, null)), active = 0, lastUsed = 0L, + inactive = false, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/telemetry/TelemetryMiddleware.kt b/app/src/main/java/org/mozilla/fenix/telemetry/TelemetryMiddleware.kt index 3b448bdb..53c1fc8f 100644 --- a/app/src/main/java/org/mozilla/fenix/telemetry/TelemetryMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/telemetry/TelemetryMiddleware.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.telemetry import android.content.Context +import mozilla.components.browser.state.action.AwesomeBarAction import mozilla.components.browser.state.action.BrowserAction import mozilla.components.browser.state.action.ContentAction import mozilla.components.browser.state.action.DownloadAction @@ -25,6 +26,7 @@ import mozilla.telemetry.glean.internal.TimerId import mozilla.telemetry.glean.private.NoExtras import org.mozilla.fenix.Config import org.mozilla.fenix.GleanMetrics.Addons +import org.mozilla.fenix.GleanMetrics.Awesomebar import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.GleanMetrics.Metrics import org.mozilla.fenix.components.metrics.Event @@ -59,7 +61,7 @@ class TelemetryMiddleware( private val logger = Logger("TelemetryMiddleware") - @Suppress("TooGenericExceptionCaught", "ComplexMethod", "NestedBlockDepth") + @Suppress("TooGenericExceptionCaught", "ComplexMethod", "NestedBlockDepth", "LongMethod") override fun invoke( context: MiddlewareContext, next: (BrowserAction) -> Unit, @@ -144,6 +146,13 @@ class TelemetryMiddleware( is ExtensionsProcessAction.DisabledAction -> { Addons.extensionsProcessUiDisable.add() } + is AwesomeBarAction.EngagementFinished -> { + if (action.abandoned) { + Awesomebar.abandonment.record() + } else { + Awesomebar.engagement.record() + } + } else -> { // no-op } diff --git a/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt b/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt index 458a23dc..2bdc1467 100644 --- a/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt +++ b/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt @@ -104,7 +104,7 @@ private val darkColorPalette = FirefoxColors( layerWarning = PhotonColors.Yellow70A77, layerConfirmation = PhotonColors.Green80, layerError = PhotonColors.Pink80, - layerInfo = PhotonColors.Blue50A80, + layerInfo = PhotonColors.Blue50, actionPrimary = PhotonColors.Violet60, actionSecondary = PhotonColors.LightGrey30, actionTertiary = PhotonColors.DarkGrey10, @@ -112,7 +112,7 @@ private val darkColorPalette = FirefoxColors( actionWarning = PhotonColors.Yellow40A41, actionConfirmation = PhotonColors.Green70, actionError = PhotonColors.Pink70A69, - actionInfo = PhotonColors.Blue30, + actionInfo = PhotonColors.Blue60, formDefault = PhotonColors.LightGrey05, formSelected = PhotonColors.Violet40, formSurface = PhotonColors.DarkGrey05, diff --git a/app/src/main/java/org/mozilla/fenix/translations/TranslationsBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/translations/TranslationsBottomSheet.kt index c598677a..efab01c2 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/TranslationsBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/TranslationsBottomSheet.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp +import mozilla.components.concept.engine.translate.Language import mozilla.components.concept.engine.translate.TranslationError import org.mozilla.fenix.theme.FirefoxTheme @@ -127,25 +128,36 @@ internal fun TranslationsOptionsAnimation( } @Composable +@Suppress("LongParameterList") internal fun TranslationsDialog( learnMoreUrl: String, showFirstTimeTranslation: Boolean, + translateFromLanguages: List?, + translateToLanguages: List?, + initialFrom: Language? = null, + initialTo: Language? = null, translationError: TranslationError? = null, onSettingClicked: () -> Unit, onLearnMoreClicked: () -> Unit, onTranslateButtonClick: () -> Unit, onNotNowButtonClick: () -> Unit, + onFromSelected: (Language) -> Unit, + onToSelected: (Language) -> Unit, ) { TranslationsDialogBottomSheet( learnMoreUrl = learnMoreUrl, showFirstTimeTranslation = showFirstTimeTranslation, translationError = translationError, - translateFromLanguages = getTranslateFromLanguageList(), - translateToLanguages = getTranslateToLanguageList(), + translateFromLanguages = translateFromLanguages, + translateToLanguages = translateToLanguages, + initialFrom = initialFrom, + initialTo = initialTo, onSettingClicked = onSettingClicked, onLearnMoreClicked = onLearnMoreClicked, onTranslateButtonClicked = onTranslateButtonClick, onNotNowButtonClicked = onNotNowButtonClick, + onFromSelected = onFromSelected, + onToSelected = onToSelected, ) } diff --git a/app/src/main/java/org/mozilla/fenix/translations/TranslationsController.kt b/app/src/main/java/org/mozilla/fenix/translations/TranslationsController.kt deleted file mode 100644 index f29014ae..00000000 --- a/app/src/main/java/org/mozilla/fenix/translations/TranslationsController.kt +++ /dev/null @@ -1,84 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.translations - -import mozilla.components.browser.state.selector.findTab -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.concept.engine.translate.DetectedLanguages -import mozilla.components.concept.engine.translate.TranslationOptions -import mozilla.components.feature.session.SessionUseCases -import mozilla.components.support.base.log.logger.Logger - -/** - * Manages requests to complete operations with other components. - * - * @param translationUseCase The use case for performing a translation. - * @param browserStore The browser store to use for this controller. - * @param tabId The tab to perform operations or complete requests for. - */ -class TranslationsController( - private val translationUseCase: SessionUseCases.TranslateUseCase, - private val browserStore: BrowserStore, - private val tabId: String, - -) { - private val logger = Logger("TranslationsController") - - /** - * Retrieves detected information about the language on the browser page, the user's preferred - * language, and if the detected page language is supported. - * - * @return The [DetectedLanguages] object that contains page and user preference information. - */ - fun getDetectedLanguages(): DetectedLanguages? { - logger.info("Retrieving translations language support from the browser store.") - return browserStore.state.findTab(tabId)?.translationsState?.translationEngineState?.detectedLanguages - } - - /** - * Translates the page on the given [tabId]. Will fallback to default expectations if - * [fromLanguage] and [toLanguage] are not provided. - * - * @param tabId The ID of the tab to translate. - * @param fromLanguage The BCP-47 language code to translate from. If null, the default will - * be set to the page language. - * @param toLanguage The BCP-47 language code to translate to. If null, the default will - * be set to the user's preferred language. - * @param options Optional options to specify and additional criteria for the translation. - */ - fun translate( - tabId: String?, - fromLanguage: String?, - toLanguage: String?, - options: TranslationOptions?, - ) { - if (fromLanguage != null && toLanguage != null) { - logger.info("Requesting a translation.") - translationUseCase.invoke(tabId, fromLanguage, toLanguage, options) - return - } - - // Fallback to find defaults - var defaultFromLanguage = fromLanguage - var defaultToLanguage = toLanguage - val detectedLanguages = getDetectedLanguages() - - if (defaultFromLanguage == null) { - defaultFromLanguage = detectedLanguages?.documentLangTag - logger.info("Setting translating to use a default 'from' of $defaultFromLanguage.") - } - - if (defaultToLanguage == null) { - defaultToLanguage = detectedLanguages?.userPreferredLangTag - logger.info("Setting translating to use a default 'to' of $defaultToLanguage.") - } - - if (defaultFromLanguage != null && defaultToLanguage != null) { - logger.info("Requesting a translation based on defaults.") - translationUseCase.invoke(tabId, defaultFromLanguage, defaultToLanguage, options) - return - } - } -} diff --git a/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogBottomSheet.kt index ce75ba70..18b1f11c 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogBottomSheet.kt @@ -69,26 +69,34 @@ private val ICON_SIZE = 24.dp * * @param learnMoreUrl The learn more link for translations website. * @param showFirstTimeTranslation Whether translations first flow should be shown. - * @param translationError The type of translation errors that can occur. * @param translateFromLanguages Translation menu items to be shown in the translate from dropdown. * @param translateToLanguages Translation menu items are to be shown in the translate to dropdown. + * @param initialFrom The initial selection for the translate from dropdown. + * @param initialTo The initial selection for the translate to dropdown. + * @param translationError The type of translation errors that can occur. * @param onSettingClicked Invoked when the user clicks on the settings button. * @param onLearnMoreClicked Invoked when the user clicks on the "Learn More" button. * @param onTranslateButtonClicked Invoked when the user clicks on the "Translate" button. * @param onNotNowButtonClicked Invoked when the user clicks on the "Not Now" button. + * @param onFromSelected Invoked when the user selects an item on the from dropdown. + * @param onToSelected Invoked when the user selects an item on the to dropdown. */ @Composable @Suppress("LongParameterList") fun TranslationsDialogBottomSheet( learnMoreUrl: String, showFirstTimeTranslation: Boolean, + translateFromLanguages: List?, + translateToLanguages: List?, + initialFrom: Language? = null, + initialTo: Language? = null, translationError: TranslationError? = null, - translateFromLanguages: List, - translateToLanguages: List, onSettingClicked: () -> Unit, onLearnMoreClicked: () -> Unit, onTranslateButtonClicked: () -> Unit, onNotNowButtonClicked: () -> Unit, + onFromSelected: (Language) -> Unit, + onToSelected: (Language) -> Unit, ) { var orientation by remember { mutableIntStateOf(Configuration.ORIENTATION_PORTRAIT) } @@ -127,12 +135,18 @@ fun TranslationsDialogBottomSheet( Spacer(modifier = Modifier.height(14.dp)) - if (translationError !is TranslationError.CouldNotLoadLanguagesError) { + if (translationError !is TranslationError.CouldNotLoadLanguagesError && + translateFromLanguages != null && translateToLanguages != null + ) { when (orientation) { Configuration.ORIENTATION_LANDSCAPE -> { TranslationsDialogContentInLandscapeMode( translateFromLanguages = translateFromLanguages, translateToLanguages = translateToLanguages, + initialFrom = initialFrom, + initialTo = initialTo, + onFromSelected = onFromSelected, + onToSelected = onToSelected, ) } @@ -140,6 +154,10 @@ fun TranslationsDialogBottomSheet( TranslationsDialogContentInPortraitMode( translateFromLanguages = translateFromLanguages, translateToLanguages = translateToLanguages, + initialFrom = initialFrom, + initialTo = initialTo, + onFromSelected = onFromSelected, + onToSelected = onToSelected, ) } } @@ -159,12 +177,19 @@ fun TranslationsDialogBottomSheet( private fun TranslationsDialogContentInPortraitMode( translateFromLanguages: List, translateToLanguages: List, + initialFrom: Language? = null, + initialTo: Language? = null, + onFromSelected: (Language) -> Unit, + onToSelected: (Language) -> Unit, + ) { Column { TranslationsDropdown( header = stringResource(id = R.string.translations_bottom_sheet_translate_from), modifier = Modifier.fillMaxWidth(), translateLanguages = translateFromLanguages, + initiallySelected = initialFrom, + onLanguageSelection = onFromSelected, ) Spacer(modifier = Modifier.height(16.dp)) @@ -173,6 +198,8 @@ private fun TranslationsDialogContentInPortraitMode( header = stringResource(id = R.string.translations_bottom_sheet_translate_to), modifier = Modifier.fillMaxWidth(), translateLanguages = translateToLanguages, + initiallySelected = initialTo, + onLanguageSelection = onToSelected, ) } } @@ -181,6 +208,10 @@ private fun TranslationsDialogContentInPortraitMode( private fun TranslationsDialogContentInLandscapeMode( translateFromLanguages: List, translateToLanguages: List, + initialFrom: Language? = null, + initialTo: Language? = null, + onFromSelected: (Language) -> Unit, + onToSelected: (Language) -> Unit, ) { Column { Row { @@ -189,6 +220,8 @@ private fun TranslationsDialogContentInLandscapeMode( modifier = Modifier.weight(1f), isInLandscapeMode = true, translateLanguages = translateFromLanguages, + initiallySelected = initialFrom, + onLanguageSelection = onFromSelected, ) Spacer(modifier = Modifier.width(16.dp)) @@ -198,6 +231,8 @@ private fun TranslationsDialogContentInLandscapeMode( modifier = Modifier.weight(1f), isInLandscapeMode = true, translateLanguages = translateToLanguages, + initiallySelected = initialTo, + onLanguageSelection = onToSelected, ) } } @@ -318,23 +353,29 @@ private fun TranslationsDialogInfoMessage( } } +/** + * Creates a dropdown with language selection to use to select languages for translation. + * + * @param header The title of the dropdown. + * @param translateLanguages The language choices the dropdown should provide. + * @param modifier Any modifiers for the component. + * @param isInLandscapeMode If the item should layout for landscape mode. + * @param initiallySelected The language initially selected, if null will show "Choose a language". + * @param onLanguageSelection Callback for the selected language. + */ @Composable private fun TranslationsDropdown( header: String, translateLanguages: List, modifier: Modifier = Modifier, isInLandscapeMode: Boolean = false, + initiallySelected: Language? = null, + onLanguageSelection: (Language) -> Unit, ) { val density = LocalDensity.current var expanded by remember { mutableStateOf(false) } - var selectedLanguage by remember { - mutableStateOf( - translateLanguages.last().localizedDisplayName, - ) - } - var contextMenuWidthDp by remember { mutableStateOf(0.dp) } @@ -355,15 +396,18 @@ private fun TranslationsDropdown( Spacer(modifier = Modifier.height(4.dp)) + var initialValue = stringResource(R.string.translations_bottom_sheet_default_dropdown_selection) + initiallySelected?.localizedDisplayName?.let { + initialValue = it + } + Row { - selectedLanguage?.let { - Text( - text = it, - modifier = Modifier.weight(1f), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.subtitle1, - ) - } + Text( + text = initialValue, + modifier = Modifier.weight(1f), + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.subtitle1, + ) Spacer(modifier = Modifier.width(10.dp)) @@ -379,10 +423,12 @@ private fun TranslationsDropdown( onDismissRequest = { expanded = false }, - menuItems = getContextMenuItems(translateLanguages = translateLanguages) { - expanded = false - selectedLanguage = it.localizedDisplayName - }, + + menuItems = getContextMenuItems( + translateLanguages = translateLanguages, + onClickItem = onLanguageSelection, + ), + modifier = Modifier .onGloballyPositioned { coordinates -> contextMenuWidthDp = with(density) { @@ -505,10 +551,14 @@ private fun TranslationsDialogBottomSheetPreview() { translationError = TranslationError.LanguageNotSupportedError(null), translateFromLanguages = getTranslateFromLanguageList(), translateToLanguages = getTranslateToLanguageList(), + initialFrom = null, + initialTo = null, onSettingClicked = {}, onLearnMoreClicked = {}, onTranslateButtonClicked = {}, onNotNowButtonClicked = {}, + onToSelected = {}, + onFromSelected = {}, ) } } @@ -516,48 +566,12 @@ private fun TranslationsDialogBottomSheetPreview() { @Composable internal fun getTranslateFromLanguageList(): List { return mutableListOf().apply { - add( - Language( - code = Locale.CHINA.toLanguageTag(), - localizedDisplayName = Locale.CHINA.displayLanguage, - ), - ) add( Language( code = Locale.ENGLISH.toLanguageTag(), localizedDisplayName = Locale.ENGLISH.displayLanguage, ), ) - add( - Language( - code = Locale.GERMAN.toLanguageTag(), - localizedDisplayName = Locale.GERMAN.displayLanguage, - ), - ) - add( - Language( - code = Locale.JAPANESE.toLanguageTag(), - localizedDisplayName = Locale.JAPANESE.displayLanguage, - ), - ) - } -} - -@Composable -internal fun getTranslateToLanguageList(): List { - return mutableListOf().apply { - add( - Language( - code = Locale.KOREAN.toLanguageTag(), - localizedDisplayName = Locale.KOREAN.displayLanguage, - ), - ) - add( - Language( - code = Locale.CANADA.toLanguageTag(), - localizedDisplayName = Locale.CANADA.displayLanguage, - ), - ) add( Language( code = Locale.FRENCH.toLanguageTag(), @@ -566,8 +580,32 @@ internal fun getTranslateToLanguageList(): List { ) add( Language( - code = Locale.ITALY.toLanguageTag(), - localizedDisplayName = Locale.ITALY.displayLanguage, + code = Locale.GERMAN.toLanguageTag(), + localizedDisplayName = Locale.GERMAN.displayLanguage, + ), + ) + add( + Language( + code = Locale.ITALIAN.toLanguageTag(), + localizedDisplayName = Locale.ITALIAN.displayLanguage, + ), + ) + } +} + +@Composable +internal fun getTranslateToLanguageList(): List { + return mutableListOf().apply { + add( + Language( + code = Locale.ENGLISH.toLanguageTag(), + localizedDisplayName = Locale.ENGLISH.displayLanguage, + ), + ) + add( + Language( + code = Locale.FRENCH.toLanguageTag(), + localizedDisplayName = Locale.FRENCH.displayLanguage, ), ) add( @@ -576,5 +614,11 @@ internal fun getTranslateToLanguageList(): List { localizedDisplayName = Locale.GERMAN.displayLanguage, ), ) + add( + Language( + code = Locale.ITALIAN.toLanguageTag(), + localizedDisplayName = Locale.ITALIAN.displayLanguage, + ), + ) } } diff --git a/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt index 78c0cd73..e94bc22c 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/TranslationsDialogFragment.kt @@ -23,6 +23,13 @@ import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import mozilla.components.browser.state.action.TranslationsAction +import mozilla.components.browser.state.selector.findTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.translate.TranslationOperation +import mozilla.components.concept.engine.translate.initialFromLanguage +import mozilla.components.concept.engine.translate.initialToLanguage +import mozilla.components.lib.state.ext.observeAsComposableState import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R @@ -45,7 +52,7 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { private var behavior: BottomSheetBehavior? = null private val args by navArgs() - private lateinit var interactor: TranslationsInteractor + private val browserStore: BrowserStore by lazy { requireComponents.core.store } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = super.onCreateDialog(savedInstanceState).apply { @@ -63,18 +70,41 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { container: ViewGroup?, savedInstanceState: Bundle?, ): View = ComposeView(requireContext()).apply { - interactor = TranslationsInteractor( - translationsController = TranslationsController( - translationUseCase = requireComponents.useCases.sessionUseCases.translate, - browserStore = requireComponents.core.store, + // Signalling need to fetch languages + browserStore.dispatch( + TranslationsAction.OperationRequestedAction( tabId = args.sessionId, + operation = TranslationOperation.FETCH_SUPPORTED_LANGUAGES, ), ) setContent { + val translationsState = browserStore.observeAsComposableState { + state -> + state.findTab(args.sessionId) + ?.translationsState + }.value + + var fromSelected by remember { + mutableStateOf( + translationsState?.translationEngineState + ?.initialFromLanguage(translationsState.supportedLanguages?.fromLanguages), + ) + } + + var toSelected by remember { + mutableStateOf( + translationsState?.translationEngineState + ?.initialToLanguage(translationsState.supportedLanguages?.toLanguages), + ) + } + FirefoxTheme { var translationsVisibility by remember { - mutableStateOf(args.translationsDialogAccessPoint == TranslationsDialogAccessPoint.Translations) + mutableStateOf( + args.translationsDialogAccessPoint == + TranslationsDialogAccessPoint.Translations, + ) } var translationsHeightDp by remember { @@ -115,6 +145,10 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { TranslationsDialog( learnMoreUrl = learnMoreUrl, showFirstTimeTranslation = context.settings().showFirstTimeTranslation, + translateFromLanguages = translationsState?.supportedLanguages?.fromLanguages, + translateToLanguages = translationsState?.supportedLanguages?.toLanguages, + initialFrom = fromSelected, + initialTo = toSelected, onSettingClicked = { translationsVisibility = false }, @@ -126,14 +160,24 @@ class TranslationsDialogFragment : BottomSheetDialogFragment() { ) }, onTranslateButtonClick = { - interactor.onTranslate( - tabId = args.sessionId, - fromLanguage = null, - toLanguage = null, - null, - ) + fromSelected?.code?.let { fromLanguage -> + toSelected?.code?.let { toLanguage -> + TranslationsAction.TranslateAction( + tabId = args.sessionId, + fromLanguage = fromLanguage, + toLanguage = toLanguage, + options = null, + ) + } + }?.let { + browserStore.dispatch( + it, + ) + } }, onNotNowButtonClick = { dismiss() }, + onFromSelected = { fromSelected = it }, + onToSelected = { toSelected = it }, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/translations/TranslationsInteractor.kt b/app/src/main/java/org/mozilla/fenix/translations/TranslationsInteractor.kt deleted file mode 100644 index cf98bd61..00000000 --- a/app/src/main/java/org/mozilla/fenix/translations/TranslationsInteractor.kt +++ /dev/null @@ -1,54 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.translations - -import mozilla.components.concept.engine.translate.DetectedLanguages -import mozilla.components.concept.engine.translate.TranslationOptions -import mozilla.components.support.base.log.logger.Logger - -/** - * Manages coordinating the functionality interactions for use in the views. - * - * @param translationsController The translations controller that requests data and - * interactions. - */ -class TranslationsInteractor( - private val translationsController: TranslationsController, -) { - private val logger = Logger("TranslationsInteractor") - - /** - * Retrieves the [DetectedLanguages] applicable to the page. - * - * @return The [DetectedLanguages] object that contains page and user preference information. - */ - fun detectedLanguages(): DetectedLanguages? { - logger.info("Requesting translations language support from the controller.") - return translationsController.getDetectedLanguages() - } - - /** - * Translates the page on the given [tabId]. - * If null is provided for [fromLanguage] or [toLanguage], the engine will attempt to - * find a sensible default. - * - * @param tabId The ID of the tab to translate. - * @param fromLanguage The BCP-47 language code to translate from. Usually will be the detected - * page language. If set as null, will revert to a default page language, if known. - * @param toLanguage The BCP-47 language code to translate to. Usually will be the user's - * preferred language. If set as null, will revert to a default of the user's preferred - * language, if known. - * @param options Optional options to specify and additional criteria for the translation. - */ - fun onTranslate( - tabId: String?, - fromLanguage: String?, - toLanguage: String?, - options: TranslationOptions?, - ) { - logger.info("Requesting a translation from the controller.") - translationsController.translate(tabId, fromLanguage, toLanguage, options) - } -} diff --git a/app/src/main/java/org/mozilla/fenix/translations/preferences/automatic/AutomaticTranslationPreference.kt b/app/src/main/java/org/mozilla/fenix/translations/preferences/automatic/AutomaticTranslationPreference.kt index a267d249..4ce45c4e 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/preferences/automatic/AutomaticTranslationPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/preferences/automatic/AutomaticTranslationPreference.kt @@ -78,25 +78,25 @@ internal fun getAutomaticTranslationListPreferences(): List().apply { add( AutomaticTranslationItemPreference( - displayName = Locale.CANADA.displayName, + displayName = Locale.ENGLISH.displayLanguage, automaticTranslationOptionPreference = AutomaticTranslationOptionPreference.AlwaysTranslate(), ), ) add( AutomaticTranslationItemPreference( - displayName = Locale.FRANCE.displayName, + displayName = Locale.FRENCH.displayLanguage, automaticTranslationOptionPreference = AutomaticTranslationOptionPreference.OfferToTranslate(), ), ) add( AutomaticTranslationItemPreference( - displayName = Locale.GERMANY.displayName, + displayName = Locale.GERMAN.displayLanguage, automaticTranslationOptionPreference = AutomaticTranslationOptionPreference.NeverTranslate(), ), ) add( AutomaticTranslationItemPreference( - displayName = Locale.CHINA.displayName, + displayName = Locale.ITALIAN.displayLanguage, automaticTranslationOptionPreference = AutomaticTranslationOptionPreference.AlwaysTranslate(), ), ) diff --git a/app/src/main/java/org/mozilla/fenix/translations/preferences/downloadlanguages/DownloadLanguagesPreference.kt b/app/src/main/java/org/mozilla/fenix/translations/preferences/downloadlanguages/DownloadLanguagesPreference.kt index 7089d3d1..aaf9976e 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/preferences/downloadlanguages/DownloadLanguagesPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/preferences/downloadlanguages/DownloadLanguagesPreference.kt @@ -386,11 +386,11 @@ internal fun getLanguageListPreference(): List { DownloadLanguageItemPreference( languageModel = TranslationsController.RuntimeTranslation.LanguageModel( TranslationsController.Language( - Locale.CHINA.toLanguageTag(), - Locale.CHINA.displayLanguage, + Locale.FRENCH.toLanguageTag(), + Locale.FRENCH.displayLanguage, ), false, - 4000, + 30000000, ), state = DownloadLanguageItemStatePreference( type = DownloadLanguageItemTypePreference.GeneralLanguage, @@ -402,28 +402,11 @@ internal fun getLanguageListPreference(): List { DownloadLanguageItemPreference( languageModel = TranslationsController.RuntimeTranslation.LanguageModel( TranslationsController.Language( - Locale.KOREAN.toLanguageTag(), - Locale.KOREAN.displayLanguage, + Locale.GERMAN.toLanguageTag(), + Locale.GERMAN.displayLanguage, ), false, - 3000, - ), - state = DownloadLanguageItemStatePreference( - type = DownloadLanguageItemTypePreference.GeneralLanguage, - status = DownloadLanguageItemStatusPreference.NotDownloaded, - ), - ), - ) - - add( - DownloadLanguageItemPreference( - languageModel = TranslationsController.RuntimeTranslation.LanguageModel( - TranslationsController.Language( - Locale.FRANCE.toLanguageTag(), - Locale.FRANCE.displayLanguage, - ), - false, - 2000, + 30000000, ), state = DownloadLanguageItemStatePreference( type = DownloadLanguageItemTypePreference.GeneralLanguage, @@ -439,7 +422,7 @@ internal fun getLanguageListPreference(): List { Locale.ITALIAN.displayLanguage, ), false, - 1000, + 30000000, ), state = DownloadLanguageItemStatePreference( type = DownloadLanguageItemTypePreference.GeneralLanguage, @@ -455,7 +438,7 @@ internal fun getLanguageListPreference(): List { Locale.ENGLISH.displayLanguage, ), true, - 3000, + 30000000, ), state = DownloadLanguageItemStatePreference( type = DownloadLanguageItemTypePreference.PivotLanguage, @@ -463,22 +446,6 @@ internal fun getLanguageListPreference(): List { ), ), ) - add( - DownloadLanguageItemPreference( - languageModel = TranslationsController.RuntimeTranslation.LanguageModel( - TranslationsController.Language( - Locale.JAPANESE.toLanguageTag(), - Locale.JAPANESE.displayLanguage, - ), - true, - 3000, - ), - state = DownloadLanguageItemStatePreference( - type = DownloadLanguageItemTypePreference.GeneralLanguage, - status = DownloadLanguageItemStatusPreference.NotDownloaded, - ), - ), - ) add( DownloadLanguageItemPreference( languageModel = TranslationsController.RuntimeTranslation.LanguageModel( @@ -487,7 +454,7 @@ internal fun getLanguageListPreference(): List { stringResource(id = R.string.download_language_all_languages_item_preference), ), true, - 300000, + 90000000, ), state = DownloadLanguageItemStatePreference( type = DownloadLanguageItemTypePreference.AllLanguages, diff --git a/app/src/main/java/org/mozilla/fenix/translations/preferences/nevertranslatesite/NeverTranslateSitePreference.kt b/app/src/main/java/org/mozilla/fenix/translations/preferences/nevertranslatesite/NeverTranslateSitePreference.kt index 76f521c5..e8cf6c1a 100644 --- a/app/src/main/java/org/mozilla/fenix/translations/preferences/nevertranslatesite/NeverTranslateSitePreference.kt +++ b/app/src/main/java/org/mozilla/fenix/translations/preferences/nevertranslatesite/NeverTranslateSitePreference.kt @@ -82,12 +82,7 @@ internal fun getNeverTranslateListItemsPreference(): List().apply { add( NeverTranslateSiteListItemPreference( - websiteUrl = "expedia.ca", - ), - ) - add( - NeverTranslateSiteListItemPreference( - websiteUrl = "wikipedia.com", + websiteUrl = "mozilla.org", ), ) } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 7ff4b7e0..032a58e9 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -767,6 +767,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { true, ) + val useProductionRemoteSettingsServer by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_remote_server_prod), + default = true, + ) + val enabledTotalCookieProtection: Boolean get() = mr2022Sections[Mr2022Section.TCP_FEATURE] == true @@ -1497,7 +1502,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { var isPullToRefreshEnabledInBrowser by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_website_pull_to_refresh), - default = Config.channel.isNightlyOrDebug, + default = true, ) var isDynamicToolbarEnabled by booleanPreference( @@ -1707,23 +1712,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = setOf(), ) - /** - * Indicates if notification pre permission prompt feature is enabled. - */ - var notificationPrePermissionPromptEnabled by lazyFeatureFlagPreference( - key = appContext.getPreferenceKey(R.string.pref_key_notification_pre_permission_prompt_enabled), - default = { FxNimbus.features.prePermissionNotificationPrompt.value().enabled }, - featureFlag = true, - ) - - /** - * Indicates if notification permission prompt has been shown to the user. - */ - var isNotificationPrePermissionShown by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_is_notification_pre_permission_prompt_shown), - default = false, - ) - /** * Returns whether onboarding should be shown to the user. * diff --git a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperDownloader.kt b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperDownloader.kt index 2beff12a..c0f72944 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperDownloader.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperDownloader.kt @@ -73,11 +73,13 @@ class WallpaperDownloader( val request = Request( url = "$remoteHost/$remotePath", method = Request.Method.GET, + conservative = true, ) return@withContext Result.runCatching { val response = client.fetch(request) if (!response.isSuccess) { + response.close() throw IllegalStateException() } localFile.parentFile?.mkdirs() diff --git a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcher.kt b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcher.kt index 96a50ee5..74b24f95 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcher.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcher.kt @@ -32,7 +32,7 @@ class WallpaperMetadataFetcher( */ suspend fun downloadWallpaperList(): List = withContext(Dispatchers.IO) { Result.runCatching { - val request = Request(url = metadataUrl, method = Request.Method.GET) + val request = Request(url = metadataUrl, method = Request.Method.GET, conservative = true) val response = client.fetch(request) response.body.useBufferedReader { val json = it.readText() diff --git a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpapersUseCases.kt b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpapersUseCases.kt index 8d9eb707..cdb70c16 100644 --- a/app/src/main/java/org/mozilla/fenix/wallpapers/WallpapersUseCases.kt +++ b/app/src/main/java/org/mozilla/fenix/wallpapers/WallpapersUseCases.kt @@ -5,14 +5,13 @@ package org.mozilla.fenix.wallpapers import android.content.Context +import android.content.res.Configuration import android.graphics.Bitmap import android.graphics.BitmapFactory -import androidx.annotation.UiContext import androidx.annotation.VisibleForTesting import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import mozilla.components.concept.fetch.Client -import mozilla.components.support.utils.ext.isLandscape import org.mozilla.fenix.components.AppStore import org.mozilla.fenix.components.appstate.AppAction import org.mozilla.fenix.ext.settings @@ -160,25 +159,25 @@ class WallpapersUseCases( /** * Load the bitmap for a [wallpaper], if available. * - * @param context The context used to get wallpaper orientation. * @param wallpaper The wallpaper to load a bitmap for. + * @param orientation The orientation of wallpaper. */ - suspend operator fun invoke(@UiContext context: Context, wallpaper: Wallpaper): Bitmap? + suspend operator fun invoke(wallpaper: Wallpaper, orientation: Int): Bitmap? } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal class DefaultLoadBitmapUseCase( private val getFilesDir: suspend () -> File, ) : LoadBitmapUseCase { - override suspend fun invoke(@UiContext context: Context, wallpaper: Wallpaper): Bitmap? = - loadWallpaperFromDisk(context, wallpaper) + override suspend fun invoke(wallpaper: Wallpaper, orientation: Int): Bitmap? = + loadWallpaperFromDisk(wallpaper, orientation) @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal suspend fun loadWallpaperFromDisk( - @UiContext context: Context, wallpaper: Wallpaper, + orientation: Int, ): Bitmap? = Result.runCatching { - val path = wallpaper.getLocalPathFromContext(context) + val path = wallpaper.getLocalPathFromContext(orientation) withContext(Dispatchers.IO) { val file = File(getFilesDir(), path) BitmapFactory.decodeStream(file.inputStream()) @@ -189,13 +188,13 @@ class WallpapersUseCases( * Get the expected local path on disk for a wallpaper. This will differ depending * on orientation and app theme. */ - private fun Wallpaper.getLocalPathFromContext(@UiContext context: Context): String { - val orientation = if (context.isLandscape()) { + private fun Wallpaper.getLocalPathFromContext(orientation: Int): String { + val orientationWallpaper = if (orientation == Configuration.ORIENTATION_LANDSCAPE) { Wallpaper.ImageType.Landscape } else { Wallpaper.ImageType.Portrait } - return Wallpaper.getLocalPath(name, orientation) + return Wallpaper.getLocalPath(name, orientationWallpaper) } } diff --git a/app/src/main/res/drawable/animated_splash_screen.xml b/app/src/main/res/drawable/animated_splash_screen.xml index e2b7ead5..74d44157 100644 --- a/app/src/main/res/drawable/animated_splash_screen.xml +++ b/app/src/main/res/drawable/animated_splash_screen.xml @@ -1,1036 +1,11 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/app/src/main/res/drawable/ic_onboarding_key_features.xml b/app/src/main/res/drawable/ic_onboarding_key_features.xml new file mode 100644 index 00000000..c5eeaffc --- /dev/null +++ b/app/src/main/res/drawable/ic_onboarding_key_features.xml @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_onboarding_key_features_icons_only.xml b/app/src/main/res/drawable/ic_onboarding_key_features_icons_only.xml new file mode 100644 index 00000000..820fd340 --- /dev/null +++ b/app/src/main/res/drawable/ic_onboarding_key_features_icons_only.xml @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_add_on_details.xml b/app/src/main/res/layout/fragment_add_on_details.xml index 457ae468..1ab40099 100644 --- a/app/src/main/res/layout/fragment_add_on_details.xml +++ b/app/src/main/res/layout/fragment_add_on_details.xml @@ -32,7 +32,9 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="20dp" + android:gravity="center" + android:minHeight="48dp" + android:layout_marginTop="10dp" android:text="@string/mozac_feature_addons_author" app:layout_constraintEnd_toStartOf="@+id/author_text" app:layout_constraintHorizontal_chainStyle="spread_inside" @@ -44,18 +46,20 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:gravity="center" + android:minHeight="48dp" android:layout_alignParentEnd="true" - android:layout_marginTop="20dp" + android:layout_marginTop="10dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/author_label" app:layout_constraintTop_toBottomOf="@+id/details" + android:importantForAccessibility="no" tools:text="@tools:sample/full_names" /> @@ -100,7 +106,8 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="10dp" + android:gravity="center" + android:minHeight="48dp" android:text="@string/mozac_feature_addons_last_updated" app:layout_constraintEnd_toStartOf="@+id/last_updated_text" app:layout_constraintHorizontal_chainStyle="spread_inside" @@ -112,17 +119,18 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="10dp" + android:gravity="center" + android:minHeight="48dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/last_updated_label" app:layout_constraintTop_toBottomOf="@+id/version_divider" + android:importantForAccessibility="no" tools:text="Oct 16, 2019" /> @@ -132,7 +140,10 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="10dp" + android:gravity="center" + android:minHeight="48dp" + android:clickable="true" + android:focusable="true" android:text="@string/mozac_feature_addons_home_page" android:textColor="?textAccent" app:layout_constraintStart_toStartOf="parent" @@ -142,7 +153,6 @@ android:id="@+id/home_page_divider" android:layout_width="match_parent" android:layout_height="1dp" - android:layout_marginTop="10dp" android:background="?android:attr/listDivider" android:importantForAccessibility="no" app:layout_constraintTop_toBottomOf="@+id/home_page_label" /> @@ -151,7 +161,6 @@ android:id="@+id/rating" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="10dp" app:layout_constraintTop_toBottomOf="@+id/home_page_divider"> @@ -208,7 +222,10 @@ style="@style/AboutHeaderContentText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="10dp" + android:gravity="center" + android:minHeight="48dp" + android:clickable="true" + android:focusable="true" android:text="@string/mozac_feature_addons_more_info_link" android:textColor="?textAccent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp index b7443b5c..f8948e32 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp index c2f1822a..e23f2e3a 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp index b177c324..464eaf4e 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp index 9193bd71..a3c7f6a7 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp index d149631c..ce6e3ba0 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index d9ac0536..bcdca717 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp index 5908b4ff..71516a5a 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp index b096799b..b0151dd9 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index be219754..d51484ed 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp index b0f589d8..043eb56b 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp index 9c984086..2a5ec475 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index e8077cc8..f4e60e27 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index 34b32141..7309a730 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index 39799138..f65c1c50 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index 94573001..c4147e83 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 11a149c4..f3815ca3 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -43,10 +43,6 @@ android:id="@+id/action_global_home_onboarding_dialog" app:destination="@id/homeOnboardingDialogFragment" /> - - -

- diff --git a/app/src/main/res/raw/initial_experiments.json b/app/src/main/res/raw/initial_experiments.json index 1d486af1..bf061599 100644 --- a/app/src/main/res/raw/initial_experiments.json +++ b/app/src/main/res/raw/initial_experiments.json @@ -223,32 +223,36 @@ }, { "schemaVersion": "1.12.0", - "slug": "beta-fx-122-android-set-to-default-notifications-timing-experiment", - "id": "beta-fx-122-android-set-to-default-notifications-timing-experiment", + "slug": "android-optimize-set-as-default-browser-screen-release", + "id": "android-optimize-set-as-default-browser-screen-release", "arguments": {}, - "application": "org.mozilla.firefox", + "application": "org.mozilla.firefox_beta", "appName": "fenix", "appId": "org.mozilla.firefox", "channel": "release", - "userFacingName": "Fx 122 Android set to default notifications timing experiment", - "userFacingDescription": "Timing test for the set to default message on Firefox for Android (Fenix).", - "isEnrollmentPaused": true, + "userFacingName": "Android - Optimize “Set as Default Browser” Screen Release", + "userFacingDescription": "This experiment is designed to optimize the set-to-default browser experience on Android.", + "isEnrollmentPaused": false, "isRollout": false, "bucketConfig": { "randomizationUnit": "nimbus_id", - "namespace": "fenix-messaging-release-19", + "namespace": "fenix-juno-onboarding-release-6", "start": 0, "count": 10000, "total": 10000 }, "featureIds": [ - "messaging" + "juno-onboarding" ], "probeSets": [], "outcomes": [ { - "slug": "default-browser", + "slug": "onboarding", "priority": "primary" + }, + { + "slug": "default-browser", + "priority": "secondary" } ], "branches": [ @@ -262,22 +266,9 @@ }, "features": [ { - "featureId": "messaging", + "featureId": "juno-onboarding", "enabled": true, - "value": { - "messages": { - "{experiment}-en": { - "is-control": true, - "surface": "notification", - "style": "NOTIFICATION", - "action": "MAKE_DEFAULT_BROWSER", - "trigger": [ - "I_AM_NOT_DEFAULT_BROWSER" - ], - "experiment": "{experiment}" - } - } - } + "value": {} } ] }, @@ -291,21 +282,12 @@ }, "features": [ { - "featureId": "messaging", + "featureId": "juno-onboarding", "enabled": true, "value": { - "messages": { - "{experiment}-en": { - "title": "Firefox is Fast and Private", - "text": "Make Firefox your default browser", - "surface": "notification", - "style": "NOTIFICATION", - "action": "MAKE_DEFAULT_BROWSER", - "trigger": [ - "DAY_1_AFTER_INSTALL", - "I_AM_NOT_DEFAULT_BROWSER" - ], - "experiment": "{experiment}" + "cards": { + "default-browser": { + "enabled": false } } } @@ -322,21 +304,13 @@ }, "features": [ { - "featureId": "messaging", + "featureId": "juno-onboarding", "enabled": true, "value": { - "messages": { - "{experiment}-en": { - "title": "Firefox is Fast and Private", - "text": "Make Firefox your default browser", - "surface": "notification", - "style": "NOTIFICATION", - "action": "MAKE_DEFAULT_BROWSER", - "trigger": [ - "DAY_3_AFTER_INSTALL", - "I_AM_NOT_DEFAULT_BROWSER" - ], - "experiment": "{experiment}" + "cards": { + "default-browser": { + "title": "juno_onboarding_default_browser_title_nimbus_3", + "body": "juno_onboarding_default_browser_description_nimbus_4" } } } @@ -353,42 +327,199 @@ }, "features": [ { - "featureId": "messaging", + "featureId": "juno-onboarding", "enabled": true, "value": { - "messages": { - "{experiment}-en": { - "title": "Firefox is Fast and Private", - "text": "Make Firefox your default browser", - "surface": "notification", - "style": "NOTIFICATION", - "action": "MAKE_DEFAULT_BROWSER", - "trigger": [ - "DAY_6_AFTER_INSTALL", - "I_AM_NOT_DEFAULT_BROWSER" - ], - "experiment": "{experiment}" + "cards": { + "default-browser": { + "title": "juno_onboarding_default_browser_title_nimbus_4", + "body": "", + "image-res": "ic_onboarding_key_features" + } + } + } + } + ] + }, + { + "slug": "treatment-d", + "ratio": 1, + "feature": { + "featureId": "this-is-included-for-mobile-pre-96-support", + "enabled": false, + "value": {} + }, + "features": [ + { + "featureId": "juno-onboarding", + "enabled": true, + "value": { + "cards": { + "default-browser": { + "title": "juno_onboarding_default_browser_title_nimbus_4", + "body": "juno_onboarding_default_browser_description_nimbus_5", + "image-res": "ic_onboarding_key_features_icons_only" } - }, - "triggers": { - "DAY_6_AFTER_INSTALL": "days_since_install == 6" } } } ] } ], - "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('122.!') >= 0) && (language in ['en'])))", - "startDate": "2024-01-23", - "enrollmentEndDate": "2024-02-14", + "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('124.!') >= 0) && (language in ['en'])))", + "startDate": "2024-03-12", + "enrollmentEndDate": null, "endDate": null, - "proposedDuration": 43, - "proposedEnrollment": 14, + "proposedDuration": 35, + "proposedEnrollment": 21, "referenceBranch": "control", "featureValidationOptOut": false, "localizations": null, "locales": null, - "publishedDate": null + "publishedDate": "2024-03-12T15:23:02.314682Z" + }, + { + "schemaVersion": "1.12.0", + "slug": "splash-screen-max-duration-test-lower-times", + "id": "splash-screen-max-duration-test-lower-times", + "arguments": {}, + "application": "org.mozilla.firefox", + "appName": "fenix", + "appId": "org.mozilla.firefox", + "channel": "release", + "userFacingName": "Splash screen max duration test - lower times", + "userFacingDescription": "Testing a splashscreen on app launch.", + "isEnrollmentPaused": false, + "isRollout": false, + "bucketConfig": { + "randomizationUnit": "nimbus_id", + "namespace": "fenix-splash-screen-release-3", + "start": 0, + "count": 10000, + "total": 10000 + }, + "featureIds": [ + "no-feature-fenix" + ], + "probeSets": [], + "outcomes": [], + "branches": [ + { + "slug": "onboarding", + "priority": "primary" + }, + { + "slug": "default-browser", + "priority": "primary" + } + ], + "targeting": "((is_already_enrolled) || ((app_version|versionCompare('123.!') >= 0)))", + "startDate": "2024-01-25", + "enrollmentEndDate": null, + "endDate": null, + "proposedDuration": 60, + "proposedEnrollment": 30, + "referenceBranch": "holdback", + "featureValidationOptOut": false, + "localizations": null, + "locales": null, + "publishedDate": "2024-01-25T17:36:03.153458Z" + }, + { + "schemaVersion": "1.12.0", + "slug": "android-long-term-holdback-validation-first-run-sub-experiment", + "id": "android-long-term-holdback-validation-first-run-sub-experiment", + "arguments": {}, + "application": "org.mozilla.firefox_beta", + "appName": "fenix", + "appId": "org.mozilla.firefox_beta", + "channel": "beta", + "userFacingName": "Android Long-term Holdback Validation - First-run Sub-Experiment", + "userFacingDescription": "This is an internal test of new experiment tooling", + "isEnrollmentPaused": false, + "isRollout": false, + "bucketConfig": { + "randomizationUnit": "nimbus_id", + "namespace": "fenix-nimbus-is-ready-beta-1", + "start": 0, + "count": 10000, + "total": 10000 + }, + "featureIds": [ + "nimbus-is-ready" + ], + "probeSets": [], + "outcomes": [], + "branches": [ + { + "slug": "control", + "ratio": 1, + "feature": { + "featureId": "this-is-included-for-mobile-pre-96-support", + "enabled": false, + "value": {} + }, + "features": [ + { + "featureId": "nimbus-is-ready", + "enabled": true, + "value": { + "enabled": true, + "maximum_duration_ms": 0 + } + } + ] + }, + { + "slug": "treatment-a", + "ratio": 1, + "feature": { + "featureId": "this-is-included-for-mobile-pre-96-support", + "enabled": false, + "value": {} + }, + "features": [ + { + "featureId": "splash-screen", + "enabled": true, + "value": { + "enabled": true, + "maximum_duration_ms": 1750 + } + } + ] + }, + { + "slug": "treatment-b", + "ratio": 1, + "feature": { + "featureId": "this-is-included-for-mobile-pre-96-support", + "enabled": false, + "value": {} + }, + "features": [ + { + "featureId": "nimbus-is-ready", + "enabled": true, + "value": { + "enabled": true, + "maximum_duration_ms": 2500 + } + } + ] + } + ], + "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('124.!') >= 0) && (region in ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'])))", + "startDate": "2024-03-13", + "enrollmentEndDate": null, + "endDate": null, + "proposedDuration": 56, + "proposedEnrollment": 28, + "referenceBranch": "control", + "featureValidationOptOut": false, + "localizations": null, + "locales": null, + "publishedDate": "2024-03-13T15:04:41.938148Z" } ] } diff --git a/app/src/main/res/raw/keep.xml b/app/src/main/res/raw/keep.xml index c19db331..9a17666f 100644 --- a/app/src/main/res/raw/keep.xml +++ b/app/src/main/res/raw/keep.xml @@ -1,3 +1,3 @@ + tools:keep="@drawable/onboarding_ctd_default_browser,@drawable-night/onboarding_ctd_default_browser,@drawable/onboarding_ctd_sync,@drawable/onboarding_ctd_notification,@drawable/ic_onboarding_key_features.xml,@drawable/ic_onboarding_key_features_icons_only.xml" /> diff --git a/app/src/main/res/values-am/strings.xml b/app/src/main/res/values-am/strings.xml index 5485f5e1..42d7b20a 100644 --- a/app/src/main/res/values-am/strings.xml +++ b/app/src/main/res/values-am/strings.xml @@ -70,7 +70,7 @@ በዚህ መሳሪያ ላይ ምንም ዱካ አትተዉ ሁሉንም የግል ትሮችዎን ሲዘጉ %1$s ኩኪዎችዎን፣ ታሪክዎን እና የድረ-ገጽ ውሂብዎን ይሰርዛል። %2$s - የFirefox ግላዊነት ማስታወቂያ + የLeOSium ግላዊነት ማስታወቂያ ደህንነትዎን መጠበቅ እንወዳለን @@ -342,32 +342,32 @@ በመሳሪያዎች መካከል ሲዘጉ እንደተመሰጠሩ ይቆዩ - በመለያ ሲገቡ እና ስያመሳስሉ የበለጠ ደህንነት ይኖርዎታል። Firefox የእርስዎን የይለፍ ቃላት፣ ዕልባቶች እና ሌሎችንም ያመሰጥራል። + Note: The word "LeOSium" should NOT be translated --> + በመለያ ሲገቡ እና ስያመሳስሉ የበለጠ ደህንነት ይኖርዎታል። LeOSium የእርስዎን የይለፍ ቃላት፣ ዕልባቶች እና ሌሎችንም ያመሰጥራል። ይግቡ አሁን አይሆንም - ማሳወቂያዎች በFirefox ደህንነትዎ እንደተጠበቀ እንዲቆዩ ያግዝዎታል + Note: The word "LeOSium" should NOT be translated --> + ማሳወቂያዎች በLeOSium ደህንነትዎ እንደተጠበቀ እንዲቆዩ ያግዝዎታል - በመሳሪያዎችዎ መካከል ደህንነቱ በተጠበቀ ሁኔታ ትሮችን ይላኩ እና በFirefox ውስጥ ሌሎች የግላዊነት ባህሪያትን ያግኙ። + Note: The word "LeOSium" should NOT be translated --> + በመሳሪያዎችዎ መካከል ደህንነቱ በተጠበቀ ሁኔታ ትሮችን ይላኩ እና በLeOSium ውስጥ ሌሎች የግላዊነት ባህሪያትን ያግኙ። ማሳወቂያዎችን ያብሩ አሁን አይሆንም - የFirefox መፈለጊያ መግብርን ይሞክሩ + Note: The word "LeOSium" should NOT be translated --> + የLeOSium መፈለጊያ መግብርን ይሞክሩ - Firefox በመነሻ ማያ ገፅ ሲኖር፣ ድረ-ገፅ ተሻጋሪ መከታተያወችን የሚያግድ ፣ ግላዊነትን የሚያስቀድም አሳሽ በቀላሉ ማግኘት ይችላሉ። + Note: The word "LeOSium" should NOT be translated --> + LeOSium በመነሻ ማያ ገፅ ሲኖር፣ ድረ-ገፅ ተሻጋሪ መከታተያወችን የሚያግድ ፣ ግላዊነትን የሚያስቀድም አሳሽ በቀላሉ ማግኘት ይችላሉ። - የFirefox መግብርን ያክሉ + Note: The word "LeOSium" should NOT be translated --> + የLeOSium መግብርን ያክሉ አሁን አይሆንም @@ -406,10 +406,10 @@ ከፍለጋ ፍርግሞች የቀረቡ ጥቆማዎች የአድራሻ አሞሌ ምርጫዎች - - የአድራሻ አሞሌ - Firefox Suggest - - ስለFirefox Suggest የበለጠ ይወቁ + + የአድራሻ አሞሌ - LeOSium Suggest + + ስለLeOSium Suggest የበለጠ ይወቁ Google Play ላይ ደረጃ ይስጡ ራስ-አጠናቅቅ - + ከስፖንሰሮች የተሰጡ አስተያየቶች - አልፎ አልፎ በሚደገፉ የአስተያየት ጥቆማዎች %1$sን ይደግፉ - ጥቆማዎች ከ%1$s - + ከድር ፍለጋዎ ጋር የተያያዙ ጥቆማዎችን ያግኙ አገናኞችን በመተግበሪያዎች ውስጥ ክፈት @@ -637,7 +637,7 @@ ተጨማሪ ይወቁ - + ምርጥ %s ተከታታይ አርቲስት @@ -656,8 +656,8 @@ አዲስ ተጨማሪዎች አሁን ይገኛሉ - - Firefoxን የራስዎ ለማድረግ የሚያስችሉዎትን 100+ አዲስ ቅጥያዎችን ይመልከቱ። + + LeOSiumን የራስዎ ለማድረግ የሚያስችሉዎትን 100+ አዲስ ቅጥያዎችን ይመልከቱ። ተጨማሪዎችን ያስሱ @@ -901,7 +901,7 @@ አስወግድ ንቁ - + %1$s ከጊዜ ወደ ጊዜ ጥናቶችን ሊጭን እና ሊያሄድ ይችላል። ተጨማሪ ይወቁ @@ -1274,7 +1274,7 @@ ሌላ መሳሪያ ያገናኙ - ትር ለመላክ ቢያንስ በአንድ ሌላ መሳሪያ ወደ Firefox ይግቡ። + ትር ለመላክ ቢያንስ በአንድ ሌላ መሳሪያ ወደ LeOSium ይግቡ። ገባኝ @@ -1300,10 +1300,10 @@ ግብይት - Firefox ፈጣን እና ግላዊ ነው + LeOSium ፈጣን እና ግላዊ ነው - Firefoxን ነባሪ አሳሽዎ ያድርጉ + LeOSiumን ነባሪ አሳሽዎ ያድርጉ የግል አሰሳ ይሞክሩ @@ -1472,16 +1472,16 @@ ኮዱን ይቃኙ - https://firefox.com/pair ይሂዱ]]> + https://firefox.com/pair ይሂዱ]]> ለመቃኘት ዝግጁ በካሜራዎ ይግቡ በምትኩ ኢሜይል ተጠቀም - + አንድ ይፍጠሩ።]]> - + %s ከመለያዎ ጋር ማመሳሰል ያቆማል፣ ነገር ግን በዚህ መሳሪያ ላይ የትኛውንም የአሰሳ ውሂብዎን አይሰርዝም። ግንኙነት አቋርጥ @@ -1497,7 +1497,7 @@ የተሻሻለ የመከታተያ ጥበቃ አሁን አጠቃላይ የኩኪ ጥበቃን በማሳየት ላይ፣ የኛ እጅግ ኃይለኛው ድረ-ገጽ ተሻጋሪ መከታተያዎችን አጋጅ። - + %s በመስመር ላይ የሚያደርጉትን ከሚከተሉ ብዙ በጣም የተለመዱ መከታተያዎች ይጠብቅዎታል። የበለጠ ለማወቅ @@ -1656,9 +1656,9 @@ ለማስቀመጥ ይጠይቁ በጭራሽ አታስቀምጥ - + በ%1$s ውስጥ በራስ-ሙላ - + %1$s በሚጠቀሙበት ጊዜ የተጠቃሚ ስሞችን እና የይለፍ ቃሎችን በድረ-ገፆች ውስጥ ይሙሉ እና ያስቀምጡ። በሌሎች መተግበሪያዎች ውስጥ በራስ-ሙላ @@ -2050,13 +2050,13 @@ ሌላ መሳሪያ ያገናኙ። እባክዎ እንደገና ያረጋግጡ። - + እባክዎ የትር ማመሳሰልን ያንቁ። በሌሎች መሳሪያዎችዎ ላይ በፋየርፎክስ ውስጥ ምንም የተከፈቱ ትሮች የሉዎትም። - + ከሌሎች መሳሪያዎችዎ የትሮች ዝርዝር ይመልከቱ። - + ለማመሳሰል ይግቡ ምንም ክፍት ትሮች የሉም @@ -2103,7 +2103,7 @@ ከአንድ ወር በኋላ በራስ-ሰር ይዘጋ? - Firefox ባለፈው ወር ውስጥ ያላዩዋቸውን ትሮች ሊዘጋ ይችላል። + LeOSium ባለፈው ወር ውስጥ ያላዩዋቸውን ትሮች ሊዘጋ ይችላል። ራስ-ሰር ዝጋን ያብሩ @@ -2111,7 +2111,7 @@ በራስ-ሰር መዝጋት ነቅቷል - + የፋየርፎክስ ጥቆማ የጉግል ፍለጋ @@ -2266,9 +2266,9 @@ የግምገማውን ጥራት ያረጋግጡ የእኛን የታመነ የምርት ግምገማዎች መመሪያን ይሞክሩ - + ከመግዛትዎ በፊት በ%1$s ላይ የምርት ግምገማዎች ምን ያህል አስተማማኝ እንደሆኑ ይመልከቱ። የግምገማ አረጋጋጭ፣ ከ%2$s የመጣ የሙከራ ባህሪ፣ ልክ በአሳሹ ውስጥ ነው የተሰራው። በ%3$s እና %4$s ላይም ይሰራል። - + ከመግዛትዎ በፊት በ%1$s ላይ የምርት ግምገማዎች ምን ያህል አስተማማኝ እንደሆኑ ይመልከቱ። የ%2$s የሙከራ ባህሪ የግምገማ አረጋጋጭ በቀጥታ በአሳሹ ውስጥ ነው የተሰራው። በሞዚላ የ%1$s ኃይልን በመጠቀም አድሎአዊ እና ትክክለኛ ያልሆኑ ግምገማዎችን እናግዝዎታለን። ሲገዙ እርስዎን ለመጠበቅ የእኛ AI ሞዴል ሁልጊዜ እየተሻሻለ ነው። %2$s @@ -2338,7 +2338,7 @@ ስለዚህ ስብስብ የበለጠ ለማወቅ አገናኝ ይክፈቱ ጽሑፉን ያንብቡ - + የበለጠ ለማወቅ አገናኝ ይክፈቱ %s፣ ርዕስ @@ -2358,7 +2358,7 @@ በ%1$s ውስጥ የግል ትርጉሞችን ይሞክሩ ለግላዊነትዎ፣ ትርጉሞች ከመሳሪያዎ አይወጡም። አዲስ ቋንቋዎች እና ማሻሻያዎች በቅርቡ ይመጣሉ! %1$s - + ተጨማሪ ይወቁ ተርጉም ከ diff --git a/app/src/main/res/values-an/strings.xml b/app/src/main/res/values-an/strings.xml index f0a72bab..1c63067a 100644 --- a/app/src/main/res/values-an/strings.xml +++ b/app/src/main/res/values-an/strings.xml @@ -50,7 +50,7 @@ Seleccionau - %1$s ye produciu per Mozilla. + %1$s ye produciu per harvey186. @@ -72,8 +72,8 @@ No, gracias - - Puetz configurar Firefox pa que ubra automaticament los vinclos en as aplicacions. + + Puetz configurar LeOSium pa que ubra automaticament los vinclos en as aplicacions. Ir ta los achustes @@ -261,12 +261,12 @@ Adhibir acceso directo a navegación privada Accesibilidat - - Servidor personalizau de cuenta de Firefox + + Servidor personalizau de cuenta de LeOSium Servidor personalizau de Sync - Servidors de cuenta de Firefox y Sync modificaus. Zarrando l’aplicación pa aplicar los cambios… + Servidors de cuenta de LeOSium y Sync modificaus. Zarrando l’aplicación pa aplicar los cambios… Cuenta @@ -282,9 +282,9 @@ Personalizar - Sincroniza marcapachinas, historial y mas con a tuya cuenta Firefox + Sincroniza marcapachinas, historial y mas con a tuya cuenta LeOSium - Cuenta Firefox + Cuenta LeOSium Reconnectar pa reprener la sincronización @@ -367,7 +367,7 @@ Pestanyas recebidas - Notificacions pa pestanyas recibidas d’atros dispositivos Firefox. + Notificacions pa pestanyas recibidas d’atros dispositivos LeOSium. Pestanya recebida @@ -401,7 +401,7 @@ Comparte datos de rendimiento, uso, hardware y personalizacions sobre lo tuyo navegador con Mozilla pa aduyar a amillorar %1$s Datos de marketing - + Comparte datos sobre las funcionalidatz que usas en %1$s con Leanplum, lo nuestro furnidor de marketing pa mobils. Experimentos @@ -418,7 +418,7 @@ Activar Sync - Escaniar codigo de emparejamiento en a versión d’escritorio de Firefox + Escaniar codigo de emparejamiento en a versión d’escritorio de LeOSium Iniciar sesión @@ -849,7 +849,7 @@ Connectar belatro dispositivo - Pa ninviar una pestanya, inicia sesión en Firefox a lo menos en unatro dispositivo. + Pa ninviar una pestanya, inicia sesión en LeOSium a lo menos en unatro dispositivo. Entendiu @@ -990,41 +990,41 @@ Borrando datos de navegación… - - Firefox Preview ye agora Firefox Nightly + + LeOSium Preview ye agora LeOSium Nightly - Firefox Nightly s’actualiza totas las nueitz y tiene nuevas funcions experimentals. + LeOSium Nightly s’actualiza totas las nueitz y tiene nuevas funcions experimentals. Manimenos, puede estar menos estable. Descarga lo nuestro navegador beta pa una experiencia mas estable. - - Aconsigue Beta de Firefox pa Android + + Aconsigue Beta de LeOSium pa Android - - Firefox Nightly s’ha tresladau + + LeOSium Nightly s’ha tresladau Esta aplicación ya no va a recibir actualizacions de seguranza. Deixa d’usar esta aplicación y cambia a lo nuevo Nightly. - \n\nPara transferir los tuyos marcapachinas, inicios de sesión y historial a unatra aplicación, creya una cuenta Firefox. + \n\nPara transferir los tuyos marcapachinas, inicios de sesión y historial a unatra aplicación, creya una cuenta LeOSium. Cambia a lo nuevo Nightly - - Firefox Nightly s’ha tresladau + + LeOSium Nightly s’ha tresladau · Esta aplicación ya no va a recibir actualizacions de seguranza. Obtiene lo nuevo Nightly y deixa d’usar esta aplicación. - · \n\nPara transferir los tuyos marcapachinas, inicios de sesión y historial a unatra aplicación, creya una cuenta Firefox. + · \n\nPara transferir los tuyos marcapachinas, inicios de sesión y historial a unatra aplicación, creya una cuenta LeOSium. Obtiene lo nuevo Nightly + The first parameter is the name of the app (e.g. LeOSium Preview) --> Te damos la bienvenida a %s! - + Ya tiens una cuenta? Veyer las novedatz + The first parameter is the short name of the app (e.g. LeOSium) --> Tiens preguntas sobre lo redisenyo de %s? Quiers saber qué ha cambiau? Obtiene respuestas aquí @@ -1086,7 +1086,7 @@ Escaniar lo codigo - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo pa escaniar @@ -1094,8 +1094,8 @@ Usa lo correu electronico - Firefox deixará de sincronizar-se con a tuya cuenta, pero no borrará garra dato tuyo de navegación en este dispositivo. - + LeOSium deixará de sincronizar-se con a tuya cuenta, pero no borrará garra dato tuyo de navegación en este dispositivo. + %s deixará de sincronizar-se con a tuya cuenta, pero no se borrarán los datos de navegación d’este dispositivo. Desconnectar @@ -1466,13 +1466,13 @@ Connectar unatro dispositivo. Per favor, torna a autentificar-te. - + Per favor, activa la sincronización de pestanyas. - No tiens garra pestanya ubierta en Firefox en as tuyas atros dispositivos. - + No tiens garra pestanya ubierta en LeOSium en as tuyas atros dispositivos. + Veyer una lista de pestanyas d’as tuyas atros dispositivos. - + Inicia sesión pa sincronizar diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 9991c9c1..c470121b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -42,7 +42,7 @@ اعرض كل العلامات المحفوظة - ‏%1$s من Mozilla. + ‏%1$s من harvey186. الإتاحة - - خادوم حسابات Firefox مخصص + + خادوم حسابات LeOSium مخصص خادوم مزامنة مخصص - تعدّل خادوم حسابات Firefox/Sync. يُنهي التطبيق لإجراء التغييرات… + تعدّل خادوم حسابات LeOSium/Sync. يُنهي التطبيق لإجراء التغييرات… الحساب @@ -289,7 +289,7 @@ خصّص - حساب Firefox + حساب LeOSium أعِد الاتصال لمواصلة المزامنة @@ -417,7 +417,7 @@ الألسنة المستلمة - تنبيهات الألسنة المستلمة من أجهزة Firefox الأخرى. + تنبيهات الألسنة المستلمة من أجهزة LeOSium الأخرى. وصل لسان @@ -896,7 +896,7 @@ صِلْ جهازًا آخر - لِج إلى Firefox على جهاز واحد آخر على الأقل لإرسال لسان إليه. + لِج إلى LeOSium على جهاز واحد آخر على الأقل لإرسال لسان إليه. فهمت @@ -1018,8 +1018,8 @@ يحذف بيانات التصفح… - - اسحب العلامات والتأريخ وكلمات السر إلى Firefox على هذا الجهاز. + + اسحب العلامات والتأريخ وكلمات السر إلى LeOSium على هذا الجهاز. التزامن يعمل @@ -1064,16 +1064,16 @@ امسح الرز ضوئيًا - https://firefox.com/pair]]> + https://firefox.com/pair]]> جاهز للمسح لِج باستخدام كمرتك استعمل البريد بدل المسح - - أنشِئ واحدًا لمزامنة Firefox بين الأجهزة.]]> - + + أنشِئ واحدًا لمزامنة LeOSium بين الأجهزة.]]> + سيتوقف %s عن مزامنة حسابك، لكن لن يحذف أيًا من بيانات تصفحك على هذا الجهاز. اقطع الاتصال @@ -1229,9 +1229,9 @@ اسألني قبل الحفظ لا تحفظ أبدًا - + الملء التلقائي في %1$s - + املأ واحفظ أسماء المستخدمين وكلمات السر في مواقع الوِب أثناء استعمالك لمتصفّح %1$s. الملء التلقائي في التطبيقات الأخرى @@ -1493,13 +1493,13 @@ صِلْ جهازا آخر. من فضلك أعِد الاستيثاق. - + من فضلك فعّل مزامنة الألسنة. - لا ألسنة مفتوحة في Firefox على أجهزتك الأخرى. - + لا ألسنة مفتوحة في LeOSium على أجهزتك الأخرى. + اعرض قائمة بالألسنة من أجهزتك الأخرى. - + لِج إلى «المزامنة» @@ -1534,7 +1534,7 @@ أتريد إغلاقها تلقائيًا بعد شهر؟ - سيُغلق Firefox الألسنة التي لم تعرضها منذ شهر تلقائيًا. + سيُغلق LeOSium الألسنة التي لم تعرضها منذ شهر تلقائيًا. شغّل الإغلاق التلقائي @@ -1542,7 +1542,7 @@ الإغلاق التلقائي مفعّل - اضبط روابط المواقع والبريد الإلكتروني والرسائل لتفتح تلقائيًا في Firefox. + اضبط روابط المواقع والبريد الإلكتروني والرسائل لتفتح تلقائيًا في LeOSium. أزِل @@ -1564,7 +1564,7 @@ اكتشف المزيد - جزء من عائلة Firefox. ‏%s + جزء من عائلة LeOSium. ‏%s اطّلع على المزيد diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml index f0f0800d..4362be2f 100644 --- a/app/src/main/res/values-ast/strings.xml +++ b/app/src/main/res/values-ast/strings.xml @@ -50,7 +50,7 @@ Quitar - %1$s ta producíu por Mozilla. + %1$s ta producíu por harvey186. Accesibilidá - - Sirvidor personalizáu de Cuentes de Firefox + + Sirvidor personalizáu de Cuentes de LeOSium Sirvidor personalizáu de sincronización - Modificóse\'l sirvidor de cuentes/sincronización de Firefox. Colando de l\'aplicación p\'aplicar los cambeos… + Modificóse\'l sirvidor de cuentes/sincronización de LeOSium. Colando de l\'aplicación p\'aplicar los cambeos… Cuenta @@ -286,7 +286,7 @@ Anicia la sesión pa sincronizar les llingüetes, los marcadores, les contraseñes y muncho más. - Cuenta de Firefox + Cuenta de LeOSium Volvi conectate pa siguir cola sincronización @@ -403,7 +403,7 @@ Llingüetes recibíes - Los avisos de les llingüetes recibíes d\'otros preseos con Firefox n\'execución. + Los avisos de les llingüetes recibíes d\'otros preseos con LeOSium n\'execución. Llingüeta de: %s @@ -891,7 +891,7 @@ Coneutar otru preséu - Pa unviar una llingüeta, anicia sesión nel Firefox de polo menos un preséu más. + Pa unviar una llingüeta, anicia sesión nel LeOSium de polo menos un preséu más. ¡Entendílo! @@ -1012,7 +1012,7 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> ¡Afáyate en %s! La sincronización ta activada @@ -1033,7 +1033,7 @@ La to privacidá + The first parameter is the name of the app (e.g. LeOSium Preview) Substitute %s for long browser name. --> Diseñemos %s pa date\'l control tocante a los que compartes en llinia y con nós. @@ -1068,16 +1068,16 @@ en llinia y con nós. Escanéu d\'un códigu - https://firefox.com/pair]]> + https://firefox.com/pair]]> Escaniar Aniciu de sesión cola cámara Usar una direición de corréu - - Crea una pa sincronizar Firefox ente preseos.]]> - + + Crea una pa sincronizar LeOSium ente preseos.]]> + %s va dexar de sincronizase cola to cuenta mas nun va desaniciar nengún datu d\'esti preséu. Desconectar @@ -1240,7 +1240,7 @@ en llinia y con nós. Nun guardar - + Autorrellenu en %1$s Autorrellenu n\'otres aplicaciones @@ -1460,14 +1460,14 @@ en llinia y con nós. Conecta otru preséu. Volvi autenticate. - + Activa la sincronización de llingüetes. - Nun tienes llingüetes abiertes nel Firefox de los demás preseos de to. + Nun tienes llingüetes abiertes nel LeOSium de los demás preseos de to. - + Ve una llista de les llingüetes que tienes nos demás preseos de to. - + Aniciar sesión pa sincronizar @@ -1490,7 +1490,7 @@ en llinia y con nós. Llingüetes inactives - Firefox pue zarrar les llingüetes que nun visitesti demientres el mes pasáu. + LeOSium pue zarrar les llingüetes que nun visitesti demientres el mes pasáu. Quitar @@ -1504,7 +1504,7 @@ en llinia y con nós. Cola potencia de Pocket. - Parte de la familia de Firefox. %s + Parte de la familia de LeOSium. %s Saber más diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index c93fa1a7..c7904fe4 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -187,9 +187,9 @@ Fərdiləşdir - Firefox hesabınız ilə əlfəcin, tarixçə və daha çoxunu sinxronlaşdırın + LeOSium hesabınız ilə əlfəcin, tarixçə və daha çoxunu sinxronlaşdırın - Firefox Hesabı + LeOSium Hesabı Sinxronlaşdırmaya qayıtmaq üçün təkrar qoşul @@ -258,7 +258,7 @@ Alınan vərəqlər - Digər Firefox cihazlarından alınan vərəqlər üçün bildirişlər. + Digər LeOSium cihazlarından alınan vərəqlər üçün bildirişlər. Vərəq alındı @@ -697,17 +697,17 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s üçün Xoş Gəldiniz! - + Artıq hesabınız var? Yenilikləri gör + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s səyyahınızdan daha çox şey əldə edin. - - Firefox-a daxil ol + + LeOSium-a daxil ol Sync aktivdir diff --git a/app/src/main/res/values-azb/strings.xml b/app/src/main/res/values-azb/strings.xml index 1c5e4b0c..aa4ae8f0 100644 --- a/app/src/main/res/values-azb/strings.xml +++ b/app/src/main/res/values-azb/strings.xml @@ -85,7 +85,7 @@ %1$s بوتون گیزلی تاغ‌لارینیزی باغلادیغینیز زامان، کوکی‌لری، گئچمیش‌لری و سایت بیلگی‌لرینیزی سیلیر. %2$s جهازلار آراسیندا گئچیش ائلین زامان رمزلنمیش قالین. + Note: The word "LeOSium" should NOT be translated --> گیریش و دؤنگل ائتدیگینیز زامان داها گوونلی اولورسوز. فایرفاکس رمزلری، بوکمارکلاری و آیری شئی‌لری رمزلشدیریر. گیریش ایندی یوخ + Note: The word "LeOSium" should NOT be translated --> بیلدیریش‌لر فایرفاکس ایله داها امن قالماغینیزا کومک ائدیر. + Note: The word "LeOSium" should NOT be translated --> تاغلاری جهازلاریز آراسیندا گوونلی شکلده گؤندرین و فایرفاکسین آیری اؤزللیکلرینی کشف ائله‌یین. بیلدیریش‌لری آچ ایندی یوخ + Note: The word "LeOSium" should NOT be translated --> فایرفاکس آختاریش ویجتینی ایمتیحان ائله‌یین + Note: The word "LeOSium" should NOT be translated --> فایرفاکسی آنا اکرانیزا آرتیرساز گیزلیلیگه اؤنجه‌لیک وئرن مورورچونوزا آسانلیق‌لا الینیز چاتار. + Note: The word "LeOSium" should NOT be translated --> فایرفاکس ویجتینی آرتیر ایندی یوخ @@ -440,9 +440,9 @@ آختاریش موتورلاریندان تکلیف‌لر آدرس چوبوغو ترجیح‌لری - + آدرس چوبوغو -فایرفاکس تکلیفی - + فایرفاکس تکلیفی حاقیندا آرتیق بیلگی آلین قوقل پلی‌ده امتیاز وئر @@ -544,7 +544,7 @@ اؤزل دؤنگل سرور - موْزیلا حسابیْ/دؤنگل سروری دگیشدیریلدی. دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیخیلیر... + موْزیلا حسابیْ/دؤنگل سروری دگیشدیریلدی. دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیخیلیر… حساب @@ -589,15 +589,15 @@ حساب تنظیم‌لری اؤزاؤزونه URL تکمیل‌لشمه‌سی - + اسپانسرلردن تکلیف‌لر - بعضاً اسپانسرلیق تکلیف‌لری ایله %1$s -یی آرخالایین. - %1$s تکلیف‌لری - + وب‌دن آختاریْنیزلا باغلیْ تکلیف‌لری آلیْن. اَپ‌لرده باغلانتی‌ْلاری آچیْن. @@ -611,9 +611,16 @@ خاریجی یئندیرمه موْدیری. + + Gecko قیدلرینی گوجلندیر + + دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیْخیلیر… + تاخیلان‌لار + + تاخیلانیْ فایل‌دان قوْش بیلدیریش‌لر @@ -621,21 +628,111 @@ ایجازه وئریلمه‌دی + + + اؤزل تاخیْلان مجموعه‌سی تامام لغو + + مجموعه آدیْ + + مجموعه صاحیبی (قوللانیجیْ آیدی‌سی) + + تاخیْلان مجموعه‌‌سی ایصلاح اوْلدوُ. دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیْخیلیر… + + + + قاباقکی تاغ‌لارا قاییت + + سوْن بوکمارک‌لار + + سون باخیلان‌لار + + + دوشوندوروجو ناغیل‌لار + + %sطرفیندن گوج آلینان مقاله‌لر + + اسپانسرلی ناغیل‌لار + + + دال پرده‌لر + + + اسپانسرلی شوْرتکات‌لار + + + + دال پرده: %1$s + + دال پرده گونجللندی! + + گؤستر + + دال پرده یئندیریلنمه‌دی + + گئنه چالیش + + دال پرده دگیشیله بیلمه‌دی آرتیق بیلین + + کلاسیک %s + + + هونرمند سئری‌سی + + باغیْمسیز سس‌لر مجموعه‌سی. %s + + + باغیْمسیز سس‌لر مجموعه‌سی. + + بیر رنگ سپمه‌سی ایمتیحان ائله‌یین + + سیزینله دانیشان بیر دال پرده سئچین. + + داها چوْخ دال پرده‌لری آراشدیْرین + + + + ایندی یئنی تاخیْلان‌لار وار + + فایرفاکسیْ اؤزوُنوز ائتمک ایمکانیْ وئرن 100 دن چوْخ یئنی اوُزانتیا باخیْن. + + تاخیلان‌لاریْ آراشدیْر + + + + تاخیلان‌لار گئچیجی اوْلاراق گوُجدن سالیْنمیش. + + + بیر و یا نئچه تاخیْلانین ایشی دایاندیریلدیْ، بوُدا سیستمیزی ثابیتسیز ائله‌دی. %1$s تاخیلانی(لاریْ) یئنی‌دن باشلاتماغا باشاریْسیز اوْلدو. \n\n تاخیلانلار ایندیکی اوتورومونوزدا یئنی‌دن ایشه سالیْنمیاجاق. \n\n تاخیلانی(لار)ین سیلینمه‌سی و یا ایشدن سالینماسیْ بو موُشکولو حل ائلیه بیلر. + + تاخیلان‌لاریْ یئنی‌دن باشلاتماغا چالیْشین + + تاخیلان‌لاریْ گوُجسوز ائتمه‌گه ایدامه وئرین + + + + حساب مودیریتی + + رمزینیزی دگیشدیرین، دیتا یئغمایی ایداره ائدین ویا حسابینیزی سیلین. ایندی دؤنگل‌لندیر + + نه‌یین دؤنگل ائدیله‌جه‌گینی سئچین گئچمیش بوُکمارک‌لار + + گیریش‌لر رمز‌لر @@ -643,6 +740,82 @@ چیخیش + + جهاز آدی + + جهاز آدیْ بوْش اوْلمالیدیر + + دؤنگل‌لنیر… + + دؤنگل خطا وئردی. سوْن باشاریْ: %s + + + دؤنگل خطا وئردی. سوْن دؤنگل: یوْخدور + + سوْن دؤنگل: %s + + + سوْن دؤنگل: هئچ + + + %1$s - %2$s %3$s + + اعتباری کارتلار + + + اؤدمه آپاری‌ْلاری + + آدرس‌لر + + + + آلیْنان تاغ‌لار + + آیریْ فایرفاکس جهازلاریندان آلینان تاغلارا اوچون بیلدیریش‌لر + + تاغ آلیندیْ + + + %s-دن آلینان تاغ + + + + آیریْ توُتمالار + + بوتون سایتلار اوچون آچیْن + + آیری‌ْ توتمالار سئچیلمیش سایتلار اوچون ایزلنمه قوْروماسینیْ ایشدن سالماغا ایمکان وئریر. + + آرتیق بیلین + + + ایشه آلما و فنی دیتالار + + %1$s داها یاخچیْ ائتمک اوچون موُروچونوز حاقیندا ایشله‌ییش،ایشه آلما، دوْنانیم و اؤزللشدیرمه دیتالارینی موزیلا ایله پایلاشیر. + + بازارلاما دیتاسیْ + + اساس ایشه آلما بیلگی‌لرینی موبایل بازارلاما ایش اوْرتاغیمیز Adjust ایله پایلاشیر. + + آراشدیرمالار + + + موزیلایا آراشدیرمالار قوْشماغینا و ایجرا ائتمه‌سینه ایجازه وئریر. + + + + دیتالارینیزیْ دؤنگل ائدین و ساخلایین + + یئنی‌دن باغلانماق اوچون گیریش ائدین + + حساب قالدیْر + + + + firefox.com/pair آدرسینه گؤرونن QR کوْدونو اسکن ائله‌یین]]> + اوست @@ -657,6 +830,9 @@ باتری ساخلیان طرفیندن تنظیم‌لنیر + + جهاز تمینی نظره آل + رفرش اوچون چک @@ -664,6 +840,11 @@ آلت‌لر چوبوغونو گیزلتمک اوچون اسکرول ائله‌ + + تاغ‌لاریْ دگیشدیرمک اوچون ادوات چوُبوغونو یانالار طرف چکین + + تاغ‌لاریْ آچماق اوچون ادوات چوُبوغونو یوخاریا چکین + یئندیرنلر @@ -671,6 +852,507 @@ بوُکمارک‌لار + + دستکتاپ بوکمارک‌لاریْ + + بوکمارک منوسو + + بوکمارک‌لار ادوات چوبوغو + + باشقا بوکمارک‌لار + + گئچمیش + + یئنی تاغ + + تنظیم‌‎لر + + باغلا + + + %d آچیلسین؟ + + چوْخلو تاغ‌لاریْن آچیلماسیْ صفحه‌لر دوْلورکن %s سوُرعتینی یاواشلاتا بیلر. ایدامه وئرمه‌گه آرخایینسیز؟ + + تاغ‌لاریْ آچ + + لغو + + + %d صفحه + + %d صفحه‌ + + + سوْن باغلانان تاغ‌لار + + بوتون گئچمیشی گؤستر + + %d تاغ + + %d تاغ + + بو یاخین زاماندا باغلانان تاغ یوخ + + + + تاغ‌لار + + تاغ گؤروُنوشو + + لیست + + شبکه‌لی + + تاغ‌لاریْ باغلا + + هئچ زامان + + + بیر گوندن سوْنرا + + بیر هفته‌دن سوْنرا + + بیر آیدان سوْنرا + + آچیق تاغلاریْ اوْتوماتیک باغلا + + + + آچیلیش اکرانی + + آنایارپاق + + + سوْن تاغ + + دؤرد ساعاتلیق حرکتسیزلیکدن سونرا آچیلان اصلی صفحه + + ال‌ ایله باغلاییْن + + + بیر گۆندن سوْنرا باغلایین + + + بیر هفته سونرا باغلا + + بیر آی سونرا باغلا + + آنایارپاق‌دا آچ + + سون تاغدا آچ + + دؤرد ساعاتدان سونرا آنایارپاق‌دا آچ + + + + کؤهنه تاغلاری ایشده اولمایان تاغا آپار + + ایکی هفته‌ده باخمادیغینیز تاغلار ایشده اولمایان بؤلومه آپاریلیر. + + + + قالدیر + + + + ایشده + + + %1$s ایمکانی وار هردن بیر آراشدیرمالاری نصب ائلیه و چالیشدیرا. + + آرتیق بیلین + + + دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیخاجاق + + تامام + + لغو + + دگیشمه‌لری یئرینه سالماق اوچون اپلیکیشن‌دن چیْخیلیر… + + + + آچیْق تاغ‌لار + + گیزلی تاغ‌لار + + دؤنگل‌لنمیش تاغ‌لار + + تاغ آرتیر + + گیزلی تاغ آرتیر + + گیزلی + + دؤنگل + + بوتون تاغ‌لاری پایلاش + + سوْن باغلانان تاغ‌لار + + سون باغلانان‌لار + + حساب تنظیم‌لری + + تاغ تنظیم‌لری + + بوتون تاغ‌لاریْ باغلا + + بوکمارک + + باغلا + + + سئچیلمیش تاغ‌لاری پایلاش + + سئچیلن تاغ‌لار منوسو + + تاغی مجموعه‌دن چیخار + + تاغ‌لاری سئچین + + تاغی باغلا + + %s تاغی باغلا + + آچیق تاغ‌لار منوسونو آچ + + تاغ‌لاریْ مجموعه‌ده ساخلاییْن + + مجموعه‌نی سیل + + + مجموعه‌نی یئنی‌دن آدلاندیْر + + تاغ‌لاریْ آچ + + مجموعه آدیْ + + یئنی‌دن آدلاندیْر + + قالدیر + + گئچمیش‌دن سیل + + + %1$s (گیزلی حالت) + + + + آختاریش شرطلرینی گیر + + گئچمیشی سیل + + گئچمیش سیلیندی + + %1$s سیلیندی + + سیل + + %1$d سئچیلیدی + + بوگون + + دوُنن + + سوْن 7 گون + + سوْن 30 گون + + + + داها قدیمی + + گئچمیش یوخدور + + + + یئندیرمه‌لر فالدیریلدیْ + + %1$s قالدیریلدیْ + + هئچ یئندیریلمیش فایل یوخدور + + %1$d سئچیلیدی + + قالدیر + + + + + باغیشلایین، %1$s بو صفحه‌نی دولدورا بیلمه‌دی. + + + سیْنماق راپورتونو موْزیلایا گؤندر + + تاغی باغلا + + تاغی گئنه آل + + + + بو قوْولوغو سیلمک ایسته‌دیگینیزه آرخایینسیز؟ + + %s سئچیلن موریدلری سیله‌جک. + + لغو + + قوْولوق اکله + + بوکمارک ساخلاندی! + + دوزه‌لیش + + دوزه‌لیش + + + کوْپی + + پایلاش + + + یئنی تاغدا آچ + + گیزلی تاغدا آچ + + هامیْسینی یئنی تاغ‌لاردا آچ + + هامیْسینی گیزلی تاغ‌لاردا آچ + + سیل + + ساخلا + + %1$d سئچیلیدی + + بوکمارک دوز‌ه‌لیشی + + قوْولوق دوزه‌لیشی + + دؤنگل ائدیلن بوکمارک‌لاری گؤرمک اوچون اوْتوروُم آچین + + URL + + قوْولوق + + آد + + قوْولوق اکله + + قوْولوق سئچ + + + بیر عنوان وئرمه‌لیسیز + + گئچرسیز URL + + هئچ بوکمارک بوردا یوخ + + %1$s سیلیندی + + بوکمارک‌لار سیلیندی + + سئچیلن قوْولوق سیلینیر + + لغو + + + آختاریش شرطلرینی گیر + + + + تنظیم‌لره گئدین + + یئیین تنظیم‌لر صفحه‌سی + + توصیه اولموش + + ایجازه‌لری پوز + + تامام + + لغو + + ایجازه‌‌نی پوْز + + + تامام + + لغو + + بوتون سایتلارداکی ایجازه‌لری پوْز + + اؤزاؤزونه چالما + + + کامرا + + میکروفون + + قونوم + + بیلدیریش‌ + + قالیجی ساخلاما + + سایتلار آراسی کوکی‌لر + + DRM ایله کونترول اولونان موحتوا + + + ایجازه ایسته‌یین + + مسدود اوْلوندو + + ایجازه وئریلدی + + اندروید طرفیندن مسدود اوْلوندو + + آیریْ توُتمالار + + + باغلیْ + + استاندارد + + بَرک + + اؤزل + + + سس و ویدئویا ایجازه وئر + + سس و ویدئویا ایجازه وئر + + + یالنیز موبایل سلولاردا سس و ویدئونو بلوْکلا + + سس و ویدئو وایفای‌ اوستونده چالیناجاق + + یالنیز سس مسدودو + + یالنیز سس مسدودو + + سس و ویدئویو مسدود ائله + + سس و ویدئویو مسدود ائله + + آچیق + + باغلیْ + + آچیق + + باغلیْ + + + + مجموعه‌لر + + مجموعه‌لر منوسو + + سیزین اوچون اؤنملی اولان شئی‌لری یئغین. \n داها سوْنرا یئیین گیریش اوچون اوْخشار آختاریش‌لاریْ، سایتلاریْ و تاغ‌لاریْ قروُپلاشدیرین. + + + تاغ‌لاری سئچین + + مجموعه سئچین + + مجموعه‌ آدی + + یئنی مجموعه اکله + + + هامیسینی سئچ + + هامیسینی سئچمه + + ساخلاناجاق تاغ‌لاری سئچ + + %d تاغ سئچیلدی + + %d تاغ سئچیلدی + + تاغ‌لار ساخلاندیْ! + + مجموعه ساخلاندیْ! + + + تاغ ساخلاندیْ! + + باغلا + + ساخلا + + گؤستر + + تامام + + لغو + + + %d مجموعه‌سی + + + + پایلاش + + پایلاش + + PDF اولاراق ساخلا + + PDF یارادیلانمادیْ + + باغلا + + بو صفحه‌ پرینت اوْلانمیر + + پرینت + + جهازا گؤندر + + بوتون عمل‌لر + + یاخین‌دا ایشله‌دیلمیش + + کلیپ‌بوردا کوْپی ائله + + کلیپ‌بوْردا کوْپی اوْلوندو + + دؤنگله گیریش + + دیتا دؤنگلی و ساخلاماسی + + بوتون جهازلارا گؤندر + + دونگلی کَس + + آفلاین + + باشقا جهازا باغلا + + + بیر تاغ گؤندرمک اوچون آزی بیر باشقا جهازدا فایرفاکسا داخیل اوْلون. + + آنلادیم + diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index ed3ebc68..44831728 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -56,7 +56,7 @@ Выдаліць - %1$s распрацаваны Mozilla. + %1$s распрацаваны harvey186. %1$s выдаляе кукі, гісторыю і дадзеныя сайтаў, калі вы закрываеце ўсе прыватныя карткі. %2$s Уладкаваць хатнюю старонку + Хатні экран @@ -249,6 +250,14 @@ Сцерці гісторыю аглядання + + Перакласці старонку + + + Старонка перакладзена з %1$s на %2$s. + Абраная мова @@ -260,8 +269,6 @@ Сканаваць - - Пашукавік Налады пошукавых сістэм @@ -316,23 +323,36 @@ - Апавяшчэнні дапамогуць вам зрабіць больш з %s + Апавяшчэнні дапамогуць вам зрабіць больш з %s - Сінхранізуйце свае карткі паміж прыладамі, кіруйце сцягваннямі, атрымлівайце парады, як максімальна выкарыстоўваць ахову прыватнасці %s, і многае іншае. + Сінхранізуйце свае карткі паміж прыладамі, кіруйце сцягваннямі, атрымлівайце парады, як максімальна выкарыстоўваць ахову прыватнасці %s, і многае іншае. - Працягнуць + Працягнуць - Не зараз + Не зараз + + Паведамленне аб прыватнасці LeOSium + + Даведайцеся больш у нашым паведамленні аб прыватнасці Нам падабаецца забяспечваць вашу бяспеку + + Даведайцеся, чаму мільёны людзей любяць LeOSium - Наш браўзер, падтрыманы некамерцыйнай арганізацыяй, дапамагае абмяжоўваць кампаніі ад сачэння за вамі ў Інтэрнэце.\n\nДаведайцеся больш у нашым паведамленні аб прыватнасці. + Наш браўзер, падтрыманы некамерцыйнай арганізацыяй, дапамагае не даваць кампаніям таемна сачыць за вамі ў сеціве. + + Больш за 100 мільёнаў чалавек абараняюць сваю прыватнасць, выбіраючы браўзер, які падтрымліваецца некамерцыйнай арганізацыяй. + + Вядомыя трэкеры? Блакуюцца аўтаматычна. Пашырэнні? Паспрабуйце ўсе 700. PDF? Наш убудаваны чытальнік дазваляе лёгка імі кіраваць. + + Наш браўзер, падтрыманы некамерцыйнай арганізацыяй, дапамагае абмяжоўваць кампаніі ад сачэння за вамі ў Інтэрнэце.\n\nДаведайцеся больш у нашым паведамленні аб прыватнасці. - паведамленні аб прыватнасці + паведамленні аб прыватнасці Зрабіць прадвызначаным браўзерам @@ -340,33 +360,33 @@ Заставайцеся зашыфраванымі падчас пераходу паміж прыладамі - Калі вы ўвайшлі ў сістэму і правялі сінхранізацыю, вы ў большай бяспецы. Firefox шыфруе вашыя паролі, закладкі і многае іншае. + Note: The word "LeOSium" should NOT be translated --> + Калі вы ўвайшлі ў сістэму і правялі сінхранізацыю, вы ў большай бяспецы. LeOSium шыфруе вашыя паролі, закладкі і многае іншае. Увайсці Не зараз - Апавяшчэнні дапамагаюць вам заставацца ў бяспецы з Firefox + Note: The word "LeOSium" should NOT be translated --> + Апавяшчэнні дапамагаюць вам заставацца ў бяспецы з LeOSium - Бяспечна перасылайце карткі паміж сваімі прыладамі і адкрыйце для сябе іншыя функцыі прыватнасці ў Firefox. + Note: The word "LeOSium" should NOT be translated --> + Бяспечна перасылайце карткі паміж сваімі прыладамі і адкрыйце для сябе іншыя функцыі прыватнасці ў LeOSium. Уключыць апавяшчэнні Не зараз - Паспрабуйце віджэт пошуку Firefox + Note: The word "LeOSium" should NOT be translated --> + Паспрабуйце віджэт пошуку LeOSium - З Firefox на вашым галоўным экране, вы атрымаеце лёгкі доступ да браўзера, які дбае аб прыватнасці і блакуе міжсайтавыя трэкеры. + Note: The word "LeOSium" should NOT be translated --> + З LeOSium на вашым галоўным экране, вы атрымаеце лёгкі доступ да браўзера, які дбае аб прыватнасці і блакуе міжсайтавыя трэкеры. - Дадаць віджэт Firefox + Note: The word "LeOSium" should NOT be translated --> + Дадаць віджэт LeOSium Не зараз @@ -405,10 +425,10 @@ Прапановы ад пошукавых сістэм Настройкі адраснага радка - - Адрасны радок - Firefox Suggest - - Даведайцеся больш пра Firefox Suggest + + Адрасны радок - LeOSium Suggest + + Даведайцеся больш пра LeOSium Suggest Ацаніць у Google Play Рэжым «Толькі HTTPS» - - Памяншэнне колькасці банераў кукі Блакіроўшчык банераў кукі Блакіроўшчык банераў кукі ў прыватным праглядзе - - Памяншаць колькасць банераў кукі - - Выключана - - Уключана - - %1$s аўтаматычна спрабуе адхіліць запыты файлаў кукі на банерах кукі. Выключана для гэтага сайта @@ -468,36 +478,17 @@ Сайт зараз не падтрымліваецца - Уключыць памяншэнне колькасці банераў кукі для %1$s? - Уключыць блакіроўшчык банераў кукі для %1$s? - - Выключыць памяншэнне колькасці банераў кукі для %1$s? Выключыць блакіроўшчык банераў кукі для %1$s? %1$s не можа аўтаматычна адхіляць запыты кукаў на гэтым сайце. Вы можаце адправіць запыт на падтрымку гэтага сайта ў будучыні. - - %1$s выдаліць файлы кукі гэтага сайта і абновіць старонку. Выдаленне ўсіх файлаў кукі можа прывесці да выхаду з сістэмы або ачышчэння кошыка для пакупак. Выключыць, і %1$s выдаліць файлы кукі і перазагрузіць гэты сайт. Гэта можа прывесці да выхаду з уліковага запісу або ачышчэння кошыка. - %1$s спрабуе аўтаматычна адхіляць усе запыты файлаў кукі на сайтах, якія падтрымліваюцца. - Уключыце, і %1$s паспрабуе аўтаматычна адхіляць банеры кукі на гэтым сайце. - - Дазволіць %1$s адхіляць банеры кукі? - - %1$s можа аўтаматычна адхіляць многія запыты банераў кукі. - - Не зараз - - Вы ўбачыце менш запытаў пра кукі - - - Дазволіць %1$s толькі што адмовіўся ад кукі для вас @@ -577,15 +568,15 @@ Налады ўліковага запісу Аўтазапаўненне URL-адрасоў - + Прапановы ад спонсараў - Падтрымаць %1$s выпадковымі спонсарскімі прапановамі - Прапановы ад %1$s - + Атрымлівайце прапановы з інтэрнэту, звязаныя з вашым пошукам Адкрываць спасылкі ў праграмах @@ -668,7 +659,7 @@ Падрабязней - + Класічны %s Мастакоўская серыя @@ -686,8 +677,8 @@ Даступныя новыя дадаткі - - Азнаёмцеся з больш за 100 новых пашырэнняў, якія дазваляюць зрабіць Firefox вашым уласным. + + Азнаёмцеся з больш за 100 новых пашырэнняў, якія дазваляюць зрабіць LeOSium вашым уласным. Азнаёмцеся з дадаткамі @@ -715,7 +706,9 @@ Закладкі - Лагіны + Лагіны + + Паролі Адкрытыя карткі @@ -741,7 +734,9 @@ %1$s на %2$s %3$s - Крэдытныя карты + Крэдытныя карты + + Спосабы аплаты Адрасы @@ -749,7 +744,7 @@ Атрыманыя карткі - Апавяшчэнні для картак, атрыманых ад іншых прылад Firefox. + Апавяшчэнні для картак, атрыманых ад іншых прылад LeOSium. Атрыманая картка @@ -932,7 +927,7 @@ Выдаліць Актыўнае - + %1$s можа ўсталёўваць і выконваць даследаванні час ад часу. Даведацца больш @@ -1285,8 +1280,6 @@ Адхіліць - Немагчыма надрукаваць - Немагчыма надрукаваць гэту старонку Друкаваць @@ -1314,7 +1307,7 @@ Падключыць іншую прыладу - Каб адправіць картку, увайдзіце ў Firefox прынамсі на адной іншай прыладзе. + Каб адправіць картку, увайдзіце ў LeOSium прынамсі на адной іншай прыладзе. Зразумела @@ -1341,10 +1334,10 @@ - Firefox хуткі і прыватны + LeOSium хуткі і прыватны - Зрабіце Firefox вашым прадвызначаным браўзерам + Зрабіце LeOSium вашым прадвызначаным браўзерам Паспрабуйце Прыватнае агляданне @@ -1365,7 +1358,7 @@ - Калі ласка, дапамажыце палепшыць Firefox, прыняўшы ўдзел у кароткім апытанні. + Калі ласка, дапамажыце палепшыць LeOSium, прыняўшы ўдзел у кароткім апытанні. Прайсці апытанне @@ -1517,16 +1510,16 @@ Скануйце код - https://firefox.com/pair]]> + https://firefox.com/pair]]> Гатовы да сканавання Увайдзіце з дапамогай камеры Выкарыстаць электронную пошту - - Стварыце яго, каб сінхранізаваць Firefox паміж прыладамі.]]> - + + Стварыце яго, каб сінхранізаваць LeOSium паміж прыладамі.]]> + %s спыніць сінхранізацыю з вашым уліковым запісам, але не выдаліць дадзеныя аглядання на гэтай прыладзе. Адлучыцца @@ -1543,7 +1536,7 @@ Узмоцненая ахова ад сачэння Цяпер у нас ёсць поўная ахова кукаў, наш самы магутны бар\'ер супраць міжсайтавых трэкераў. - + %s абараняе вас ад многіх найбольш распаўсюджаных трэкераў, якія сочаць за тым, што вы робіце ў інтэрнэце. Даведацца больш @@ -1698,46 +1691,63 @@ Вы можаце лёгка дадаць гэты вэб-сайт на хатні экран вашай прылады, каб мець да яго імгненны доступ і аглядаць хутчэй, нібыта гэта асобная праграма. - Лагіны і паролі + Лагіны і паролі + + Паролі - Захаванне лагінаў і пароляў + Захаванне лагінаў і пароляў + + Захоўваць паролі Пытаць пра захаванне Ніколі не захоўваць - + Аўтазапаўненне ў %1$s - + Аўтаматычна запаўняць і захоўваць імёны карыстальнікаў і паролі на сайтах падчас выкарыстання %1$s. Аўтазапаўненне ў іншых праграмах Запаўняць імёны карыстальнікаў і паролі ў іншых праграмах на вашай прыладзе. - Дадаць лагін + Дадаць лагін - - Сінхранізацыя лагінаў + + Дадаць пароль + + + Сінхранізацыя лагінаў + + Сінхранізаваць паролі - Сінхранізаваць лагіны паміж прыладамі + Сінхранізаваць лагіны паміж прыладамі + + Сінхранізаваць паролі паміж прыладамі - Захаваныя лагіны + Захаваныя лагіны + + Захаваныя паролі - Лагіны, якія вы захаваеце альбо сінхранізуеце праз %s, з’явяцца тут. + Лагіны, якія вы захаваеце альбо сінхранізуеце праз %s, з’явяцца тут. - Даведацца больш пра сінхранізацыю. + Даведацца больш пра сінхранізацыю. + + Даведайцеся больш пра сінхранізацыю Выключэнні - Не захаваныя лагіны і паролі з’явяцца тут. + Не захаваныя лагіны і паролі з’явяцца тут. - Лагіны і паролі не будуць захаваны для гэтых сайтаў. + Лагіны і паролі не будуць захаваны для гэтых сайтаў. Выдаліць усе выключэнні - Шукаць лагіны + Шукаць лагіны + + Пошук пароляў Сайт @@ -1766,12 +1776,16 @@ Схаваць пароль - Разблакуйце, каб пабачыць захаваныя лагіны + Разблакуйце, каб пабачыць захаваныя лагіны + + Разблакуйце, каб пабачыць захаваныя паролі - Абараніце свае лагіны і паролі + Абараніце свае лагіны і паролі + + Абараніце захаваныя паролі - Наладзьце графічны ключ, пін ці пароль для блакавання прылады, каб абараніць захаваныя лагіны і паролі ад крадзяжу, калі Вашай прыладай завалодае хтосьці іншы. + Наладзьце графічны ключ, пін ці пароль для блакавання прылады, каб абараніць захаваныя лагіны і паролі ад крадзяжу, калі Вашай прыладай завалодае хтосьці іншы. Пазней @@ -1788,7 +1802,7 @@ Апошняе выкарыстанне - Меню сартавання лагінаў + Меню сартавання лагінаў @@ -1796,30 +1810,40 @@ Адрасы - Крэдытныя карты + Крэдытныя карты + + Спосабы аплаты - Захоўваць і аўтаматычна запаўняць карты + Захоўваць і аўтаматычна запаўняць карты + + Захоўваць і запаўняць спосабы аплаты - Дадзеныя зашыфраваны + Дадзеныя зашыфраваны Сінхранізаваць карты паміж прыладамі Сінхранізаваць карты - Дадаць крэдытную карту + Дадаць крэдытную карту + + Дадаць карту - Кіраванне захаванымі картамі + Кіраванне захаванымі картамі + + Кіраваць картамі Дадаць адрас Кіраваць адрасамі - Захоўваць і аўтаматычна запаўняць адрасы + Захоўваць і аўтаматычна запаўняць адрасы + + Захоўваць і запаўняць адрасы - Уключаць звесткі, такія як нумары, адрасы электроннай пошты і дастаўкі + Уключаць звесткі, такія як нумары, адрасы электроннай пошты і дастаўкі Дадаць карту @@ -1841,7 +1865,9 @@ Выдаліць карту - Вы ўпэўнены, што жадаеце выдаліць гэту крэдытную карту? + Вы ўпэўнены, што жадаеце выдаліць гэту крэдытную карту? + + Выдаліць карту? Выдаліць @@ -1854,16 +1880,22 @@ Захаваныя карты - Калі ласка, увядзіце сапраўдны нумар крэдытнай карты + Калі ласка, увядзіце сапраўдны нумар крэдытнай карты + + Увядзіце сапраўдны нумар карты - Калі ласка, запоўніце гэтае поле + Калі ласка, запоўніце гэтае поле + + Дадайце імя Разблакуйце, каб пабачыць захаваныя карты - Абараніце свае крэдытныя карты + Абараніце свае крэдытныя карты + + Абараніце захаваныя спосабы аплаты - Наладзьце графічны ключ, пін або пароль для блакавання прылады, каб абараніць захаваныя крэдытныя карты, калі хтось іншы атрымае доступ да вашай прылады. + Наладзьце графічны ключ, пін або пароль для блакавання прылады, каб абараніць захаваныя крэдытныя карты, калі хтось іншы атрымае доступ да вашай прылады. Наладзіць зараз @@ -1872,7 +1904,7 @@ Разблакуйце сваю прыладу - Разблакуйце, каб выкарыстаць захаваную інфармацыю крэдытнай карты + Разблакуйце, каб выкарыстаць захаваную інфармацыю крэдытнай карты Дадаць адрас @@ -1881,11 +1913,13 @@ Кіраваць адрасамі - Імя + Імя - Імя па бацьку + Імя па бацьку - Прозвішча + Прозвішча + + Назва Вуліца @@ -1910,7 +1944,9 @@ Выдаліць адрас - Вы ўпэўнены, што жадаеце выдаліць гэты адрас? + Вы ўпэўнены, што жадаеце выдаліць гэты адрас? + + Выдаліць гэты адрас? Выдаліць @@ -2014,31 +2050,53 @@ Змяніць - Вы сапраўды хочаце выдаліць гэтае лагін? + Вы сапраўды хочаце выдаліць гэтае лагін? + + Вы ўпэўнены, што хочаце выдаліць гэты пароль? Выдаліць Адмяніць - Налады лагіна + Налады лагіна + + Параметры пароля - Тэкставае поле для рэдагавання вэб-адраса для ўваходу ў сістэму. + Тэкставае поле для рэдагавання вэб-адраса для ўваходу ў сістэму. + + Тэкставае поле для рэдагавання адраса сайта. - Тэкставае поле для рэдагавання імені карыстальніка для ўваходу ў сістэму. + Тэкставае поле для рэдагавання імені карыстальніка для ўваходу ў сістэму. + + Тэкставае поле для рэдагавання імя карыстальніка. - Тэкставае поле для рэдагавання пароля для ўваходу ў сістэму. + Тэкставае поле для рэдагавання пароля для ўваходу ў сістэму. + + Тэкставае поле для рэдагавання пароля. - Захаваць змены ва ўваходных даных. + Захаваць змены ва ўваходных даных. + + Захаваць змены. - Рэдагаванне + Рэдагаванне + + Змяніць пароль - Дадаць новы лагін + Дадаць новы лагін + + Дадаць пароль - Патрабуецца пароль + Патрабуецца пароль + + Увядзіце пароль - Патрабуецца імя карыстальніка + Патрабуецца імя карыстальніка + + Увядзіце імя карыстальніка Патрабуецца імя хоста + + Увядзіце вэб-адрас Галасавы пошук @@ -2061,13 +2119,13 @@ Калі ласка, аўтарызуйцеся яшчэ раз. - + Калі ласка, уключыце сінхранізацыю картак. - На іншых вашых прыладах у Firefox не адкрыта ніводнай карткі. - + На іншых вашых прыладах у LeOSium не адкрыта ніводнай карткі. + Пабачыць спіс картак з іншых прылад. - + Увайсці ў сінхранізацыю @@ -2120,15 +2178,15 @@ Аўтаматычна закрываць праз месяц? - Firefox можа закрываць карткі, якія вы не праглядалі за апошні месяц. + LeOSium можа закрываць карткі, якія вы не праглядалі за апошні месяц. УКЛЮЧЫЦЬ АЎТАЗАКРЫЦЦЁ Аўтазакрыццё ўключана - - Прапановы Firefox + + Прапановы LeOSium Пошук у Google @@ -2136,7 +2194,10 @@ Пошук %s - Наладзьце аўтаматычнае адкрыццё спасылак з сайтаў, пошты і паведамленняў у Firefox. + + Змяніць прадвызначаны браўзер + + Наладзьце аўтаматычнае адкрыццё спасылак з сайтаў, пошты і паведамленняў у LeOSium. Выдаліць @@ -2145,7 +2206,7 @@ Пстрыкніце, каб атрымаць падрабязнасці - Перайсці ўверх + Перайсці ўверх Закрыць @@ -2160,7 +2221,7 @@ Пры падтрымцы %s. - Частка сямейства Firefox. %s + Частка сямейства LeOSium. %s Даведацца больш @@ -2186,7 +2247,7 @@ Скарэктаваны рэйтынг - Ненадзейныя водгукі выдалены + На аснове надзейных водгукаў Асноўныя моманты з апошніх водгукаў @@ -2207,8 +2268,6 @@ Асноўныя моманты з водгукаў пра %s за апошнія 80 дзён, якія мы лічым надзейнымі.]]> Даведайцеся больш пра %s. - - як %s ад Mozilla вызначае якасць водгукаў як %s вызначае якасць водгукаў @@ -2243,10 +2302,8 @@ Калі вы ўбачыце гэты прадукт ізноў у наяўнасці, паведаміце нам пра гэта, і мы будзем правяраць водгукі. Паведаміць, што прадукт ёсць у наяўнасці - - Праверка якасці водгукаў - - Праверка якасці водгукаў + + Праверка якасці водгукаў (%s) Гэта можа заняць каля 60 секунд. @@ -2281,22 +2338,28 @@ Праверыць якасць водгукаў Паспрабуйце наш надзейны даведнік па водгуках на прадукты - + Паглядзіце, наколькі надзейныя водгукі аб прадукце на %1$s, перш чым купляць. Праверка водгукаў, эксперыментальная функцыя ад %2$s, убудавана прама ў браўзер. Таксама працуе на %3$s і %4$s. - + Паглядзіце, наколькі надзейныя водгукі аб прадукце на %1$s, перш чым купляць. Праверка водгукаў, эксперыментальная функцыя ад %2$s, убудавана прама ў браўзер. Выкарыстоўваючы магчымасці %1$s ад Mozilla, мы дапамагаем вам пазбегнуць неаб’ектыўных і несапраўдных водгукаў. Наша мадэль штучнага інтэлекту пастаянна ўдасканальваецца, каб абараніць вас у часе куплі. %2$s Даведацца больш - Выбіраючы «Так, паспрабаваць», вы пагаджаецеся з %2$s і %3$s ад %1$s ад Mozilla. + Выбіраючы «Так, паспрабаваць», вы пагаджаецеся з %2$s і %3$s ад %1$s ад Mozilla. Выбіраючы «Так, паспрабаваць», вы згаджаецеся з наступным ад %1$s: + + Выбіраючы «Так, паспрабаваць», вы пагаджаецеся з %2$s ад %1$s і %4$s ад %3$s. + + Выбіраючы «Так, паспрабаваць», вы пагаджаецеся з %2$s ад %1$s і %4$s ад %3$s. - палітыкай прыватнасці + палітыкай прыватнасці Палітыка прыватнасці + + паведамленні аб прыватнасці ўмовамі выкарыстання @@ -2352,7 +2415,7 @@ адкрыйце спасылку, каб даведацца больш аб гэтай калекцыі прачытаць артыкул - + адкрыйце спасылку, каб даведацца больш %s, загаловак @@ -2366,7 +2429,15 @@ Перакласці старонку? - + + Старонка перакладзена з %1$s на %2$s + + Паспрабуйце прыватныя пераклады ў %1$s + + Дзеля вашай прыватнасці пераклады ніколі не пакідаюць вашу прыладу. Новыя мовы і паляпшэнні хутка! %1$s + Падрабязней @@ -2375,6 +2446,8 @@ Перакласці на Не зараз + + Паказаць арыгінал Гатова @@ -2385,13 +2458,29 @@ Пераклад Ідзе пераклад + + Выбраць мову Узнікла праблема з перакладам. Калі ласка, паспрабуйце яшчэ раз. + + Не ўдалося загрузіць мовы. Праверце інтэрнэт-злучэнне і паўтарыце спробу. На жаль, мы пакуль не падтрымліваем %1$s. Падрабязней + + + Пераклад… + + + + Сцягнуць мову ў рэжыме эканоміі трафіку (%1$s)? + + Параметры перакладу @@ -2403,6 +2492,10 @@ Ніколі не перакладаць %1$s Ніколі не перакладаць гэты сайт + + Перавызначае ўсе іншыя налады + + Перавызначае прапановы перакладу Налады перакладу @@ -2413,6 +2506,8 @@ Пераклады Прапаноўваць пераклад, калі гэта магчыма + + Заўсёды сцягваць мовы ў рэжыме эканоміі трафіку Налады перакладу @@ -2487,6 +2582,8 @@ Скасаваць + + Заўсёды сцягваць у рэжыме эканоміі трафіку Сцягнуць @@ -2511,4 +2608,14 @@ Прыватныя Усяго - + + Інструмент стварэння картак + + Колькасць картак для стварэння + + Дадаць да актыўных картак + + Дадаць да неактыўных картак + + Дадаць да прыватных картак + diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index e6630b6d..310306db 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -57,7 +57,7 @@ Премахване - %1$s е произведен от Mozilla. + %1$s е произведен от harvy186. %1$s изтрива бисквитките, историята и данни от разглеждането, когато затворите всички поверителни раздели. %2$s Превеждане на страницатa + + Страницата е преведена от %1$s на %2$s. + Избран език @@ -333,13 +338,23 @@ - бележка за поверителността на Firefox - + бележка за поверителността на LeOSium + + Научете повече в нашата политика за поверителност Обичаме да ви пазим в безопасност + + Разберете защо милиони обичат LeOSium + + Безопасно сърфиране с повече възможности за избор Нашият браузър с нестопанска цел помага да спрете компаниите да ви следват тайно в мрежата. + Повече от 100 милиона души защитават поверителността си, като избират браузър, поддържан от организация с нестопанска цел. + + Познати тракери? Автоматично блокиране. Разширения? Опитайте всички 700. PDF файлове? Вграденият четец ги прави лесни за управление. + Нашият четец, разработван от организация с нестопанска цел ви помага да не бъдете следени тайно в мрежата.\n\nНаучете повече в нашето съобщение за поверителност. @@ -351,31 +366,31 @@ Шифровайте връзката си и когато сменяте устройствата - Когато сте влезли и сте синхронизирани, вие сте в по-голяма безопасност. Firefox криптира вашите пароли, отметки и др. + Note: The word "LeOSium" should NOT be translated --> + Когато сте влезли и сте синхронизирани, вие сте в по-голяма безопасност. LeOSium криптира вашите пароли, отметки и др. Вписване Не сега - Известията ви помагат да сте в по-голяма безопасност с Firefox + Note: The word "LeOSium" should NOT be translated --> + Известията ви помагат да сте в по-голяма безопасност с LeOSium - Защитено изпращане на раздели между вашите устройства и откриване на други функции за поверителност във Firefox. + Note: The word "LeOSium" should NOT be translated --> + Защитено изпращане на раздели между вашите устройства и откриване на други функции за поверителност във LeOSium. Включване на известията Не сега - Опитване на приспособлението за търсене на Firefox + Note: The word "LeOSium" should NOT be translated --> + Опитване на приспособлението за търсене на LeOSium - С Firefox на началния екран ще имате лесен достъп до водещия браузър за защита на личните данни, който блокира проследяващи устройства за различни сайтове. + Note: The word "LeOSium" should NOT be translated --> + С LeOSium на началния екран ще имате лесен достъп до водещия браузър за защита на личните данни, който блокира проследяващи устройства за различни сайтове. - Добавяне на джаджа за Firefox + Note: The word "LeOSium" should NOT be translated --> + Добавяне на джаджа за LeOSium Не сега @@ -415,10 +430,10 @@ Предложения от търсачките Предпочитания за адресника - - Адресник - Firefox Suggest - - Научете повече за Firefox Suggest + + Адресник - LeOSium Suggest + + Научете повече за LeOSium Suggest Оценете в Google Play Автоматично довършване на адреси - + Предложения от спонсори - Подкрепете %1$s с от време на време спонсорирани предложения - Предложения от %1$s - + Получавайте предложения от мрежата, свързани с търсенето ви Отваряне на препратки в приложения @@ -644,7 +659,7 @@ Тапетът не можа да бъде сменен Научете повече - + Класически %s @@ -663,8 +678,8 @@ Налични са нови добавки - - Вижте 100+ нови разширения, които ви позволяват да направите Firefox ваш. + + Вижте 100+ нови разширения, които ви позволяват да направите LeOSium ваш. Разгледайте добавките @@ -692,9 +707,9 @@ Отметки - Регистрации + Регистрации - Пароли + Пароли Отворени раздели @@ -719,9 +734,9 @@ %1$s на %2$s %3$s - Банкови карти + Банкови карти - Начини на плащане + Начини на плащане Адреси @@ -729,7 +744,7 @@ Получени раздели - Известия за раздели, получени от други устройства на Firefox. + Известия за раздели, получени от други устройства на LeOSium. Получен раздел @@ -912,7 +927,7 @@ Премахване Активни - + %1$s може от време на време да инсталира и извършва проучвания. Научете повече @@ -1292,7 +1307,7 @@ Добавяне на устройство - За да изпращате раздели е необходимо да бъдете вписани във Firefox на поне едно устройство. + За да изпращате раздели е необходимо да бъдете вписани във LeOSium на поне едно устройство. Разбрах @@ -1320,10 +1335,10 @@ - Firefox е бърз и поверителен + LeOSium е бърз и поверителен - Направете Firefox вашия четец по подразбиране + Направете LeOSium вашия четец по подразбиране Пробвайте поверително разглеждане - Помогнете да подобрим Firefox, участвайки в кратко допитване. + Помогнете да подобрим LeOSium, участвайки в кратко допитване. Участвайте в допитване @@ -1496,16 +1511,16 @@ Сканиране на код - https://firefox.com/pair]]> + https://firefox.com/pair]]> В готовност за сканиране Вписване чрез камерата Или чрез електронна поща - - Създайте такъв, за да синхронизирате Firefox между различни устройства.]]> - + + Създайте такъв, за да синхронизирате LeOSium между различни устройства.]]> + %s ще спре да се синхронизира с вашия профил, но няма да изтрива данни от разглеждане от устройството. Изключване @@ -1523,7 +1538,7 @@ Вече включва цялостна защита на бисквитките, най-мощната ни бариера срещу проследяване в различни сайтове. - + %s ви предпазва от много от най-разпространените проследявания, които следят какво правите онлайн. Научете повече @@ -1675,69 +1690,69 @@ Можете лесно да добавите тази страница към началния екран, за да имате бърз достъп до нея, подобно на приложение. - Регистрации и пароли + Регистрации и пароли - Пароли + Пароли - Запазване на регистрации и пароли + Запазване на регистрации и пароли - Запазване на пароли + Запазване на пароли Питане за запазване Никога - + Автоматично попълване във %1$s - + Попълват се потребителски имена и пароли в страници, докато използвате %1$s. Попълване в други приложения Попълват се потребителски имена и пароли в други приложения на устройството. - Добавяне на регистрация + Добавяне на регистрация - Добавяне на парола + Добавяне на парола - - Синхронизиране на регистрации - Синхронизиране на пароли + Синхронизиране на регистрации + + Синхронизиране на пароли - Синхронизиране на регистрации между устройства + Синхронизиране на регистрации между устройства - Синхронизиране на пароли между устройства + Синхронизиране на пароли между устройства - Запазени регистрации + Запазени регистрации - Запазени пароли + Запазени пароли - Тук се показват нещата, които запазвате или синхронизирате във %s. + Тук се показват нещата, които запазвате или синхронизирате във %s. - Паролите, които запазите или синхронизирате с %s ще бъдат изброени тук. Всички запазени пароли са шифровани. + Паролите, които запазите или синхронизирате с %s ще бъдат изброени тук. Всички запазени пароли са шифровани. - Научете повече за Sync. + Научете повече за Sync. - Научете повече за синхронизирането + Научете повече за синхронизирането Изключения - Тук се показват регистрации и пароли, които не са запазени. + Тук се показват регистрации и пароли, които не са запазени. - %s няма да запазва пароли за сайтове, изброени тук. + %s няма да запазва пароли за сайтове, изброени тук. - Следните страници няма да запазват регистрации и пароли. + Следните страници няма да запазват регистрации и пароли. - %s няма да запази пароли за тези сайтове. + %s няма да запази пароли за тези сайтове. Изтриване на всички - Търсене на регистрация + Търсене на регистрация - Търсене на пароли + Търсене на пароли Страница @@ -1766,17 +1781,17 @@ Скриване на парола - Отключете, за да видите запазените регистрации + Отключете, за да видите запазените регистрации - Отключете, за да видите запазените пароли + Отключете, за да видите запазените пароли - Защитете вашите данни за вход + Защитете вашите данни за вход - Защитете запазените пароли + Защитете запазените пароли - Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените регистрации и пароли, в случай че някой друг има достъп до него. + Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените регистрации и пароли, в случай че някой друг има достъп до него. - Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените пароли от достъп, ако някой друг има вашето устройство. + Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените пароли от достъп, ако някой друг има вашето устройство. По-късно @@ -1792,10 +1807,10 @@ Последно използване - Меню за сортиране на регистрации + Меню за сортиране на регистрации - Меню за сортиране на пароли + Меню за сортиране на пароли @@ -1803,44 +1818,44 @@ Адреси - Банкови карти + Банкови карти - Начини на плащане + Начини на плащане - Запазване и автоматично попълване на карти + Запазване и автоматично попълване на карти - Запазване и попълване на начини на плащане + Запазване и попълване на начини на плащане - Данните са криптирани + Данните са криптирани - %s шифрова всички запазени от вас начини на плащане + %s шифрова всички запазени от вас начини на плащане Синхронизиране на карти между устройства Синхронизиране на карти - Добавяне на карта + Добавяне на карта - Добавяне на карта + Добавяне на карта - Управление на карти + Управление на карти - Управление на карти + Управление на карти Добавяне на адрес Управление на адреси - Запазване и попълване на адреси + Запазване и попълване на адреси - Запазване и попълване на адреси + Запазване и попълване на адреси - Включително номера, електронни адреси и адреси за доставка + Включително номера, електронни адреси и адреси за доставка - Включва телефонни номера и имейл адреси + Включва телефонни номера и имейл адреси Добавяне на карта @@ -1861,9 +1876,9 @@ Изтриване на картата - Сигурни ли сте, че искате да премахнете тази банкова карта? + Сигурни ли сте, че искате да премахнете тази банкова карта? - Изтриване на картата? + Изтриване на картата? Премахване @@ -1875,23 +1890,23 @@ Запазени карти - Моля, въведете валиден номер на банкова карта + Моля, въведете валиден номер на банкова карта - Въведете валиден номер на карта + Въведете валиден номер на карта - Попълнете полето + Попълнете полето - Добавяне на име + Добавяне на име Отключете, за да видите запазените карти - Защитете банковите си карти + Защитете банковите си карти - Защитете запазените начини на плащане + Защитете запазените начини на плащане - Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените банкови карти, в случай че някой друг има достъп до него. + Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените банкови карти, в случай че някой друг има достъп до него. - Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените методи на плащане от достъп, ако някой друг има вашето устройство. + Настройте фигура, PIN или парола за отключване на устройството, за да защитите запазените методи на плащане от достъп, ако някой друг има вашето устройство. Настройване @@ -1900,10 +1915,10 @@ Отключете устройството си - Отключете, за да използвате запазената банкова карта + Отключете, за да използвате запазената банкова карта - Отключете, за да използвате запазените методи на плащане + Отключете, за да използвате запазените методи на плащане Добавяне на адрес @@ -1911,12 +1926,14 @@ Управление на адреси - Първо име + Първо име - Презиме + Презиме - Фамилия + Фамилия + + Име Адрес @@ -1941,9 +1958,9 @@ Премахване на адреса - Сигурни ли сте, че искате да премахнете този адрес? + Сигурни ли сте, че искате да премахнете този адрес? - Изтриване на този адрес? + Изтриване на този адрес? Премахване @@ -2043,49 +2060,49 @@ Редактиране - Сигурни ли сте, че искате да изтриете тези данни за вход? + Сигурни ли сте, че искате да изтриете тези данни за вход? - Сигурни ли сте, че искате да изтриете тази парола? + Сигурни ли сте, че искате да изтриете тази парола? Изтриване Отказ - Настройки за вход + Настройки за вход - Опции за парола + Опции за парола - Текстовото поле за редактиране на адреса на регистрация. + Текстовото поле за редактиране на адреса на регистрация. - Текстовото поле за редактиране на адреса на уебсайта. + Текстовото поле за редактиране на адреса на уебсайта. - Текстовото поле за редактиране на потребителското име на регистрация. + Текстовото поле за редактиране на потребителското име на регистрация. - Текстовото поле за редактиране на потребителското име. + Текстовото поле за редактиране на потребителското име. - Текстовото поле за редактиране на паролата на регистрация. + Текстовото поле за редактиране на паролата на регистрация. - Текстовото поле за редактиране на паролата. + Текстовото поле за редактиране на паролата. - Запазване на промените на регистрацията. + Запазване на промените на регистрацията. - Запазване на промените. + Запазване на промените. - Редактиране + Редактиране - Редактиране на паролата + Редактиране на паролата - Добавете регистрация + Добавете регистрация - Добавяне на парола + Добавяне на парола - Паролата е задължителна + Паролата е задължителна - Въведете парола + Въведете парола - Потребителското име е задължително + Потребителското име е задължително - Въведете потребителско име + Въведете потребителско име Името на хоста е задължително @@ -2110,13 +2127,13 @@ Добавете друго на устройство. Моля, удостоверете се отново. - + Моля, включете синхронизиране на раздели. - Няма отворени раздели във Firefox на други ваши устройства. - + Няма отворени раздели във LeOSium на други ваши устройства. + Вижте разделите от други ваши устройства. - + Вписване в Sync @@ -2168,15 +2185,15 @@ Автоматично затваряне след един месец? - Firefox може да затваря разделите, които не са преглеждани през последния месец. + LeOSium може да затваря разделите, които не са преглеждани през последния месец. АВТОМАТИЧНО ЗАТВАРЯНЕ Автоматичното затваряне е включено - - Предложение от Firefox + + Предложение от LeOSium Търсене в Гугъл @@ -2186,7 +2203,7 @@ Сменете браузъра по подразбиране - Задайте Firefox като стандартно приложение за отваряне на страници, електронна поща и съобщения. + Задайте LeOSium като стандартно приложение за отваряне на страници, електронна поща и съобщения. Премахване @@ -2195,7 +2212,7 @@ Натиснете за подробности - Придвижване нагоре + Придвижване нагоре Затваряне @@ -2210,7 +2227,7 @@ С подкрепата на %s. - Част от семейството на Firefox. %s + Част от семейството на LeOSium. %s Научете повече @@ -2236,8 +2253,6 @@ Коригиран рейтинг - Ненадеждните отзиви са премахнати - Въз основа на надеждни отзиви Акценти от скорошни рецензии @@ -2294,10 +2309,6 @@ Ако видите, че продуктът е отново в наличност, докладвайте и ще работим върху проверка на отзивите. Докладвайте продукта е наличен - - Проверяване на качеството на отзива - - Проверяване на качеството на отзива Проверка на качеството на рецензията (%s) @@ -2334,22 +2345,28 @@ Проверете качеството на отзивите Опитайте нашето надеждно ръководство за отзиви за продукти - + Вижте колко надеждни са отзивите за продукта в %1$s, преди да купите. Проверка на рецензиите, експериментална функция от %2$s, е вградена директно в браузъра. Работи и на %3$s и %4$s. - + Вижте колко надеждни са отзивите за продукта в %1$s, преди да купите. Проверка за преглед, експериментална функция от %2$s, е вградена директно в браузъра. Използвайки мощта на %1$s от Mozilla, ние ви помагаме да избегнете необективни и недостоверни рецензии. Нашият AI модел винаги се подобрява, за да ви защитава, докато пазарувате. %2$s Научете повече - Избирайки „Да, пробвайте“ вие се съгласявате с %1$s на Mozilla %2$s и %3$s + Избирайки „Да, пробвайте“ вие се съгласявате с %1$s на Mozilla %2$s и %3$s С избирането на „Да, изпробвайте“ вие се съгласявате със следното от %1$s: + + Избирайки „Да, изпробвайте“ вие се съгласявате с %2$s на %1$s и %4$s на %3$s. + + Избирайки „Да, изпробвайте“ вие се съгласявате с %2$s на %1$s и %4$s на %3$s. - декларация за поверителност + политика за личните данни Политика на поверителност + + политика на поверителност условия за ползване @@ -2404,7 +2421,7 @@ отворете връзката, за да научите повече за тази колекция прочетете статията - + отворете препратката, за да научите повече %s, Заглавие @@ -2419,11 +2436,15 @@ език. Превеждане на страницата? + + Страницата е преведена от %1$s на %2$s Опитайте с поверителни преводи след %1$s За ваша поверителност, преводите никога не напускат устройството ви. Нови езици и подобрения очакват скоро! %1$s - + Научете повече Превеждане от @@ -2431,6 +2452,8 @@ Превеждане на Не сега + + Показване на оригинала Готово @@ -2453,6 +2476,16 @@ Научете повече + + Превеждане… + + + Изтегляне на езика в режим за икономия на данни (%1$s)? + + Настройки на превода diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index ed1442c8..c3a390f1 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -41,7 +41,7 @@ সব দেখান - %1$s হচ্ছে Mozilla দ্বারা তৈরি। + %1$s হচ্ছে harvey186 দ্বারা তৈরি। ব্যাক্তিগত ব্রাউজিং সম্পর্কে কিছু ভুল ধারণা @@ -206,12 +206,12 @@ ব্যক্তিগত ব্রাউজিং শর্টকাটে যুক্ত করুন প্রবেশযোগ্যতা - - কাস্টম Firefox Account সার্ভার + + কাস্টম LeOSium Account সার্ভার কাস্টম Sync সার্ভার - Firefox Account/Sync সার্ভার সংশোধিত হয়েছে। পরিবর্তনগুলি প্রয়োগ করতে অ্যাপ্লিকেশন বন্ধ করুন… + LeOSium Account/Sync সার্ভার সংশোধিত হয়েছে। পরিবর্তনগুলি প্রয়োগ করতে অ্যাপ্লিকেশন বন্ধ করুন… অ্যাকাউন্ট @@ -221,9 +221,9 @@ কাস্টমাইজ - আপনার Firefox অ্যাকাউন্ট দিয়ে বুকমার্কগুলো, পাসওয়ার্ড এবং আরও অনেক কিছু Sync করুন + আপনার LeOSium অ্যাকাউন্ট দিয়ে বুকমার্কগুলো, পাসওয়ার্ড এবং আরও অনেক কিছু Sync করুন - Firefox অ্যাকাউন্ট + LeOSium অ্যাকাউন্ট সিঙ্ক শুরু করতে পুনরায় সংযোগ দিন @@ -304,7 +304,7 @@ প্রাপ্ত ট্যাবগুলো - অন্যান্য Firefox ডিভাইস থেকে প্রাপ্ত ট্যাবগুলির জন্য নোটিফিকেশন। + অন্যান্য LeOSium ডিভাইস থেকে প্রাপ্ত ট্যাবগুলির জন্য নোটিফিকেশন। ট্যাব এসেছে @@ -661,7 +661,7 @@ অন্য ডিভাইস সংযুক্ত করুন - একটি ট্যাব পাঠাতে, কমপক্ষে অন্য একটি ডিভাইসে Firefox সাইন ইন করুন। + একটি ট্যাব পাঠাতে, কমপক্ষে অন্য একটি ডিভাইসে LeOSium সাইন ইন করুন। বুঝেছি @@ -770,7 +770,7 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s এ আপনাকে স্বাগতম! Sync চালু আছে @@ -802,7 +802,7 @@ কোডটি স্ক্যান করুন - https://firefox.com/pair এ যান]]> + https://firefox.com/pair এ যান]]> স্ক্যান করতে প্রস্তুত diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index b3b9b0cb..3add8aec 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -53,7 +53,7 @@ Dilemel - Gant Mozilla eo produet %1$s. + Gant harvey186 eo produet %1$s. Na lezel roud ebet war an trevnad-mañ + + Pa vez serret hoc’h holl ivinelloù prevez e vez dilamet ho toupinoù, ho roll istor hag ho roadennoù lec’hienn gant %1$s. %2$s @@ -313,7 +318,6 @@ Ket bremañ - Ho surentez a zo talvoudus deomp Ket bremañ - Gant ar rebuzadurioù e c’hallit chom suroc\'h gant Firefox + Note: The word "LeOSium" should NOT be translated --> + Gant ar rebuzadurioù e c’hallit chom suroc\'h gant LeOSium Gweredekaat ar rebuzadurioù @@ -371,10 +375,10 @@ Luskerioù klask Kinnigoù al luskerioù enklask - - Barrenn chomlec\'hioù - Alioù Firefox - - Gouzout hiroc\'h diwar-benn ar pezh a vez aliet gant Firefox + + Barrenn chomlec\'hioù - Alioù LeOSium + + Gouzout hiroc\'h diwar-benn ar pezh a vez aliet gant LeOSium Notennit war Google Play Leuniañ an ereoù ent emgefreek - + Kinnigoù paeroniet - Alioù %1$s @@ -576,7 +580,7 @@ N’haller ket kemmañ an drekleur Gouzout hiroc’h - + %s klasel @@ -610,6 +614,8 @@ Ardeiñ ar gont + + Cheñch ho ker-tremen, merañ dastumadeg ho roadennoù pe dilemel ho kont Goubredañ bremañ @@ -619,9 +625,9 @@ Sinedoù - Titouroù kennaskañ + Titouroù kennaskañ - Gerioù-tremen + Gerioù-tremen Ivinelloù digor @@ -648,9 +654,9 @@ %1$s war %2$s %3$s - Kartennoù kred + Kartennoù kred - Doareoù paeañ + Doareoù paeañ Chomlecʼhioù @@ -658,7 +664,7 @@ Ivinelloù degemeret - Rebuzadur evit an ivinelloù degemeret eus trevnadoù Firefox all. + Rebuzadur evit an ivinelloù degemeret eus trevnadoù LeOSium all. Ivinell degemeret @@ -837,7 +843,7 @@ Dilemel Oberiant - + %1$s a c’hall staliañ hag erounit studiadennoù ur wech an amzer. Gouzout hiroc’h @@ -1209,7 +1215,7 @@ Kennaskañ un trevnad all - Evit kas un ivinell, kennaskit ouzh Firefox war un trevnad all dʼan nebeutañ. + Evit kas un ivinell, kennaskit ouzh LeOSium war un trevnad all dʼan nebeutañ. Komprenet am eus! @@ -1235,10 +1241,10 @@ - Firefox a zo prim ha prevez + LeOSium a zo prim ha prevez - Lakaat Firefox da vezañ ho merdeer dre ziouer + Lakaat LeOSium da vezañ ho merdeer dre ziouer Klask ar merdeiñ prevez - Sikourit da wellaat Firefox en ul leuniañ ur sontadegig. + Sikourit da wellaat LeOSium en ul leuniañ ur sontadegig. Kemer perzh er sontadeg @@ -1406,16 +1412,16 @@ C’hwilerviñ ar boneg - https://firefox.com/pair]]> + https://firefox.com/pair]]> Prest da c’hwilerviñ Kennaskit gant ho kamera Ober gant ur chomlec’h postel kentoc’h - - Krouit unan evit goubredañ Firefox etre an trevnadoù.]]> - + + Krouit unan evit goubredañ LeOSium etre an trevnadoù.]]> + %s a baouezo da c’houbredañ gant ho kont, met ne vo ket dilamet ho roadennoù merdeiñ war an trevnad-mañ. Digennaskañ @@ -1431,7 +1437,7 @@ Gwarez heuliañ araoket Bremañ gant ar gwarez e-enep an toupinoù, an harz brasañ a-enep an heulierien etre al lec’hiennoù an hini eo. - + %s a warezo ac’hanoc’h a-enep d’an heulierien a sell ouzhoc’h enlinenn. Gouzout hiroc’h @@ -1579,21 +1585,21 @@ Gallout a rit ouzhpennañ al lec’hienn-mañ da bennbajenn ho trevnad evit mont war-eeun ha merdeiñ primoc’h evel ma vefe un arload. - Titouroù kennaskañ + Titouroù kennaskañ - Gerioù-tremen + Gerioù-tremen - Enrollañ an titouroù kennaskañ + Enrollañ an titouroù kennaskañ - Enrollañ ar gerioù-tremen + Enrollañ ar gerioù-tremen Goulenn a-raok enrollañ Na enrollañ biken - + Leuniañ emgefreek e %1$s - + Leuniañ hag enrollañ an anvioù implijer ha gerioù-tremen el lec’hiennoù en ur implijout %1$s. Leuniañ emgefreek en arloadoù all @@ -1601,37 +1607,37 @@ Leuniañ anvioù-implijer ha gerioù-tremen en arloadoù-all war ho trevnad. - Ouzhpennañ titouroù kennaskañ + Ouzhpennañ titouroù kennaskañ - Ouzhpennañ ur ger-tremen + Ouzhpennañ ur ger-tremen - - Goubredañ an titouroù kennaskañ - Goubredañ ar gerioù-tremen + Goubredañ an titouroù kennaskañ + + Goubredañ ar gerioù-tremen - Goubredañ an titouroù kennaskañ dre an trevnadoù + Goubredañ an titouroù kennaskañ dre an trevnadoù - Titouroù kennaskañ enrollet + Titouroù kennaskañ enrollet - Gerioù-tremen enrollet + Gerioù-tremen enrollet - An titouroù kennaskañ a enrollit pe c’houbredit e %s a vo diskouezet amañ. + An titouroù kennaskañ a enrollit pe c’houbredit e %s a vo diskouezet amañ. - Gouzout hiroc’h diwar-benn Sync + Gouzout hiroc’h diwar-benn Sync Nemedennoù - An titouroù kennaskañ n’int ket enrollet a vo diskouezet amañ. + An titouroù kennaskañ n’int ket enrollet a vo diskouezet amañ. - Ne vo ket enrollet an titouroù kennaskañ evit al lec’hiennoù-mañ. + Ne vo ket enrollet an titouroù kennaskañ evit al lec’hiennoù-mañ. Dilemel an holl nemedennoù - Klask titouroù kennaskañ + Klask titouroù kennaskañ - Klask er gerioù-tremen + Klask er gerioù-tremen Lec’hienn @@ -1660,13 +1666,13 @@ Kuzhat ar ger-tremen - Dibrennit evit gwelet ho titouroù kennaskañ enrollet + Dibrennit evit gwelet ho titouroù kennaskañ enrollet - Diogelit ho titouroù kennaskañ + Diogelit ho titouroù kennaskañ - Diogelit ho kerioù-tremen enrollet + Diogelit ho kerioù-tremen enrollet - Arventennit ur patrom morailh, ur PIN pe ur ger-tremen evit gwareziñ ho titouroù kennaskañ enrollet da vezañ lennet gant unan bennak all. + Arventennit ur patrom morailh, ur PIN pe ur ger-tremen evit gwareziñ ho titouroù kennaskañ enrollet da vezañ lennet gant unan bennak all. Diwezhatoc’h @@ -1682,7 +1688,7 @@ Arver diwezhañ - Lañser rummañ an titouroù kennaskañ + Lañser rummañ an titouroù kennaskañ @@ -1690,39 +1696,39 @@ Chomlec’hioù - Kartennoù kred + Kartennoù kred - Doareoù paeañ + Doareoù paeañ - Enrollañ ha leuniañ ar c’hartennoù en un doare emgefreek + Enrollañ ha leuniañ ar c’hartennoù en un doare emgefreek - Enrollañ ha leuniañ an doareoù paeañ + Enrollañ ha leuniañ an doareoù paeañ - Rineget eo ar roadennoù + Rineget eo ar roadennoù Goubredañ ar c’hartennoù kred etre ho trevnadoù Goubredañ ar c\'hartennoù - Ouzhpennañ ur gartenn gred + Ouzhpennañ ur gartenn gred - Ouzhpennañ ur gartenn + Ouzhpennañ ur gartenn - Merañ ar c’hartennoù enrollet + Merañ ar c’hartennoù enrollet - Merañ ar c’hartennoù + Merañ ar c’hartennoù Ouzhpennañ ur chomlec’h Merañ ar chomlec’hioù - Enrollañ ha leuniañ ar chomlec’hioù en un doare emgefreek + Enrollañ ha leuniañ ar chomlec’hioù en un doare emgefreek - Enrollañ ha leuniañ ar chomlec’hioù + Enrollañ ha leuniañ ar chomlec’hioù - Enkorfañ a ra titouroù evel niverennoù, posteloù ha chomlec’hioù + Enkorfañ a ra titouroù evel niverennoù, posteloù ha chomlec’hioù Ouzhpennañ ur gartenn @@ -1744,9 +1750,9 @@ Dilemel ar gartenn - Ha fellout a ra deocʼh dilemel ar gartenn gred-mañ? + Ha fellout a ra deocʼh dilemel ar gartenn gred-mañ? - Dilemel ar gartenn? + Dilemel ar gartenn? Dilemel @@ -1759,23 +1765,23 @@ Kartennoù enrollet - Biziatait un niverenn kartenn gred talvoudek mar plij. + Biziatait un niverenn kartenn gred talvoudek mar plij. - Enankit un niverenn gartenn reizh + Enankit un niverenn gartenn reizh - Mar plij, leugnit ar maez-mañ + Mar plij, leugnit ar maez-mañ - Ouzhpennañ un anv + Ouzhpennañ un anv Dibrennit da welet ho kartennoù enrollet - Diogelit ho kartennoù kred + Diogelit ho kartennoù kred - Diogelit ho toareoù paeañ enrollet + Diogelit ho toareoù paeañ enrollet - Arventennit ur patrom prennañ, ur PIN pe ur ger-tremen evit gwareziñ ho kartennoù kred enrollet ma vez ho trevnad gant unan bennak all. + Arventennit ur patrom prennañ, ur PIN pe ur ger-tremen evit gwareziñ ho kartennoù kred enrollet ma vez ho trevnad gant unan bennak all. Arventennañ bremañ @@ -1784,7 +1790,7 @@ Dibrennit ho trevnad - Dibrennit evit implijout titouroù kartenn gred enrollet + Dibrennit evit implijout titouroù kartenn gred enrollet Ouzhpennañ ur chomlec’h @@ -1793,11 +1799,11 @@ Merañ ar chomlec’hioù - Añv bihan + Añv bihan - Anv kreiz + Anv kreiz - Anv familh + Anv familh Chomlec’h @@ -1822,9 +1828,9 @@ Dilemel ar chomlec’h - Ha sur oc’h e fell deoc’h dilemel ar chomlec’h-mañ? + Ha sur oc’h e fell deoc’h dilemel ar chomlec’h-mañ? - Dilemel ar chomlec’h-mañ? + Dilemel ar chomlec’h-mañ? Dilemel @@ -1921,41 +1927,41 @@ Embann - Sur oc’h e fell deoc’h dilemel an titour-kennaskañ-mañ? + Sur oc’h e fell deoc’h dilemel an titour-kennaskañ-mañ? - Sur ocʼh e fell deocʼh dilemel ar ger-tremen-mañ? + Sur ocʼh e fell deocʼh dilemel ar ger-tremen-mañ? Dilemel Nullañ - Dibarzhioù an titouroù kennaskañ + Dibarzhioù an titouroù kennaskañ - Ar vaezienn destenn kemmus evit chomlec’h web an titour kennaskañ. + Ar vaezienn destenn kemmus evit chomlec’h web an titour kennaskañ. - Ar vaezienn destenn kemmus evit anv arveriad an titour kennaskañ. + Ar vaezienn destenn kemmus evit anv arveriad an titour kennaskañ. - Ar vaezienn destenn kemmus evit ger-tremen an titour kennaskañ. + Ar vaezienn destenn kemmus evit ger-tremen an titour kennaskañ. - Enrollañ ar c’hemmoù d’an titouroù kennaskañ. + Enrollañ ar c’hemmoù d’an titouroù kennaskañ. - Enrollañ ar cʼhemmoù. + Enrollañ ar cʼhemmoù. - Embann + Embann - Aozañ ar ger-tremen + Aozañ ar ger-tremen - Ouzhpennañ titouroù kennaskañ nevez + Ouzhpennañ titouroù kennaskañ nevez - Ouzhpennañ ur ger-tremen + Ouzhpennañ ur ger-tremen - Ger-tremen azgoulennet + Ger-tremen azgoulennet - Enankit ur ger-tremen + Enankit ur ger-tremen - Anv-implijer rekis + Anv-implijer rekis - Enankit un anv-implijer + Enankit un anv-implijer Anv an ostiz rekis @@ -1979,14 +1985,14 @@ Kennaskañ un trevnad all. Adkennaskit mar plij ganeoc’h. - + Gweredekait goubredañ an ivinelloù mar plij. - N’ho peus ivinell digor ebet e Firefox war ho trevnadoù all. - + N’ho peus ivinell digor ebet e LeOSium war ho trevnadoù all. + Gwelout ur roll ivinelloù eus ho trevnadoù all. - + Kennaskañ evit goubredañ @@ -2039,7 +2045,7 @@ Serriñ emgefreek goude ur miz? - Firefox a c’hall serriñ ivinelloù n’ho peus ket gwelet er miz diwezhañ. + LeOSium a c’hall serriñ ivinelloù n’ho peus ket gwelet er miz diwezhañ. GWEREDEKAAT AR SERRIÑ EMGEFREEK @@ -2047,16 +2053,16 @@ Em-serriñ enaouet - - Firefox a ginnig + + LeOSium a ginnig Klask Google Klask %s - - Digeriñ liammoù al lec’hiennoù, posteloù ha kemennadennoù e Firefox en un doare emgefreek. + + Digeriñ liammoù al lec’hiennoù, posteloù ha kemennadennoù e LeOSium en un doare emgefreek. Dilemel @@ -2065,7 +2071,7 @@ Klikit da gaout muioc’h a vunudoù - Adpignat + Adpignat Serriñ @@ -2080,7 +2086,7 @@ Lusket gant %s. - Ezel eus familh Firefox. %s + Ezel eus familh LeOSium. %s Gouzout hiroc’h @@ -2103,8 +2109,6 @@ Alioù disfizius Pegen fizius eo an alioù-se? - - Alioù disfizius dilamet Penaos e termenomp perzhded an alioù @@ -2123,6 +2127,8 @@ Produioù all Bruderezh gant %s + + Ar gwirier alioù a zo lusket gant %s %s gant Mozilla @@ -2133,10 +2139,6 @@ N\'eus ket a-walc’h a alioù c\'hoazh Dihegerz eo ar produ-mañ - - O wiriañ perzhded an ali - - O wiriañ perzhded an ali O wiriañ kalite an alioù (%s) @@ -2162,7 +2164,7 @@ Gouzout hiroc’h - politikerezh a-fet buhez prevez + politikerezh a-fet buhez prevez Politikerezh a-fet buhez prevez @@ -2216,7 +2218,7 @@ digeriñ an ere evit gouzout hiroc’h diwar-benn an dastumad-mañ lenn ar pennad - + digeriñ an ere da c’houzout hiroc’h @@ -2230,7 +2232,7 @@ Treiñ ar bajennad-mañ? - + Gouzout hiroc’h Treiñ diwar @@ -2249,6 +2251,8 @@ O treiñ + + Dibab ur yezh Ur gudenn zo bet gant an droidigezh. Klaskit en-dro. @@ -2281,9 +2285,24 @@ Troidigezh emgefreek + + + Goulenn treiñ ar bajenn (dre ziouer) + + %1$s a ginnigo deoc’h da dreiñ lec’hiennoù er yezh-mañ. + + Treiñ bepred + + %1$s a droio ar yezh-mañ ent emgefreek pa garg ar bajenn. Na dreiñ biken + + %1$s ne c’houlenno biken da dreiñ lec’hiennoù er yezh-mañ. + + + + Na dreiñ biken al lec’hiennoù-mañ Lemel %1$s @@ -2300,6 +2319,8 @@ Pellgargañ yezhoù Gouzout hiroc’h + + Yezhoù hegerz rekis Nullañ + + Niver a ivinelloù Oberiant diff --git a/app/src/main/res/values-bs/strings.xml b/app/src/main/res/values-bs/strings.xml index 7552e482..78457b29 100644 --- a/app/src/main/res/values-bs/strings.xml +++ b/app/src/main/res/values-bs/strings.xml @@ -54,7 +54,7 @@ Ukloni - %1$s je razvila Mozilla. + %1$s je razvila harvey186. %1$s briše vaše kolačiće, historiju i podatke o web stranici kada zatvorite sve svoje privatne tabove. %2$s Prevedi stranicu + + Stranica je prevedena sa %1$s na %2$s. + Izabrani jezik @@ -317,13 +322,23 @@ - Firefox obavijest o privatnosti - + LeOSium obavijest o privatnosti + + Saznajte više u našoj obavijesti o privatnosti Volimo da vas čuvamo + + Saznajte zašto milioni vole LeOSium + + Sigurno pretraživanje s više izbora Naš neprofitni pretraživač pomaže u sprečavanju kompanija da vas potajno prate širom interneta. + Više od 100 miliona ljudi štiti svoju privatnost odabirom pretraživača koji podržava neprofitna organizacija. + + Poznati tragači? Blokirani automatski. Ekstenzije? Isprobaj svih 700. PDF-ovi? Naš ugrađeni čitač čini ih laganim za upravljanje. + Naš neprofitni pretraživač pomaže spriječiti kompanije da vas potajno prate širom weba.\n\nSaznajte više u našem obavještenju o privatnosti. @@ -335,33 +350,33 @@ Ostanite šifrovani kada prelazite s jednog uređaja na drugi - Kada ste prijavljeni i sinhronizovani, sigurniji ste. Firefox šifruje vaše lozinke, oznake i još mnogo toga. + Note: The word "LeOSium" should NOT be translated --> + Kada ste prijavljeni i sinhronizovani, sigurniji ste. LeOSium šifruje vaše lozinke, oznake i još mnogo toga. Prijava Ne sada - Obavještenja vam pomažu da ostanete sigurniji sa Firefoxom + Note: The word "LeOSium" should NOT be translated --> + Obavještenja vam pomažu da ostanete sigurniji sa LeOSiumom - Sigurno šaljite tabove između svojih uređaja i otkrijte druge funkcije privatnosti u Firefoxu. + Note: The word "LeOSium" should NOT be translated --> + Sigurno šaljite tabove između svojih uređaja i otkrijte druge funkcije privatnosti u LeOSiumu. Uključite obavještenja Ne sada - Isprobajte Firefox widget za pretraživanje + Note: The word "LeOSium" should NOT be translated --> + Isprobajte LeOSium widget za pretraživanje - Sa Firefoxom na početnom ekranu, imat ćete lahak pristup pretraživaču koji je na prvom mjestu za privatnost i koji blokira praćenje na različitim lokacijama. + Note: The word "LeOSium" should NOT be translated --> + Sa LeOSiumom na početnom ekranu, imat ćete lahak pristup pretraživaču koji je na prvom mjestu za privatnost i koji blokira praćenje na različitim lokacijama. - Dodaj Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Dodaj LeOSium widget Ne sada @@ -400,10 +415,10 @@ Prijedlozi od pretraživača Postavke adresne trake - - Adresna traka - Firefox prijedlozi - - Saznajte više o Firefox prijedlozima + + Adresna traka - LeOSium prijedlozi + + Saznajte više o LeOSium prijedlozima Ocijenite na Google Play @@ -540,15 +555,15 @@ Postavke računa Automatsko dovršavanje URL-ova - + Prijedlozi sponzora - Podržite %1$s povremenim sponzorisanim prijedlozima - Prijedlozi od %1$s - + Dobijte prijedloge s weba koji se odnose na vašu pretragu Otvori linkove u aplikacijama @@ -627,7 +642,7 @@ Nije moguće promijeniti pozadinu Saznajte više - + Klasični %s Umetnička serija @@ -645,8 +660,8 @@ Novi dodaci su sada dostupni - - Pogledajte preko 100 novih ekstenzija koje vam omogućuju da Firefox učinite svojim. + + Pogledajte preko 100 novih ekstenzija koje vam omogućuju da LeOSium učinite svojim. Istražite dodatke @@ -675,9 +690,9 @@ Zabilješke - Prijave + Prijave - Lozinke + Lozinke Otvori tabove @@ -703,9 +718,9 @@ %1$s na %2$s %3$s - Kreditne kartice + Kreditne kartice - Načini plaćanja + Načini plaćanja Adrese @@ -713,7 +728,7 @@ Primljeni tabovi - Obavještenja za tabove primljene od drugih Firefox uređaja. + Obavještenja za tabove primljene od drugih LeOSium uređaja. Tab primljen @@ -896,7 +911,7 @@ Ukloni Aktivno - + %1$s može s vremena na vrijeme instalirati i pokrenuti studije. Saznajte više @@ -1266,7 +1281,7 @@ Poveži drugi uređaj - Da pošaljete tab, prijavite se u Firefox bar na još jednom uređaju. + Da pošaljete tab, prijavite se u LeOSium bar na još jednom uređaju. Razumijem @@ -1292,11 +1307,11 @@ Marketing - Firefox je brz i privatan + LeOSium je brz i privatan - Postavi Firefox kao zadani pretraživač + Postavi LeOSium kao zadani pretraživač Isprobaj privatno pretraživanje - Pomozite da poboljšamo Firefox tako što ćete ispuniti kratku anketu. + Pomozite da poboljšamo LeOSium tako što ćete ispuniti kratku anketu. Ispunite anketu @@ -1464,7 +1479,7 @@ Skenirajte kod - https://firefox.com/pair]]> + https://firefox.com/pair]]> Spreman za skeniranje @@ -1472,9 +1487,9 @@ Prijavite se pomoću kamere Radije koristi email - - Kreirajte ga da sinhronizujete Firefox između uređaja.]]> - + + Kreirajte ga da sinhronizujete LeOSium između uređaja.]]> + %s će zaustaviti sinhronizaciju s vašim računom, ali neće obrisati ništa od vaših podataka surfanja na ovom uređaju. Prekini vezu @@ -1491,7 +1506,7 @@ Napredna zaštita od praćenja Sada sadrži potpunu zaštitu od kolačića, našu najmoćniju barijeru do sada protiv elemenata za praćenje trećih strana. - + %s vas štiti od većine najčešćih pratilaca koji prate ono što radite online. Saznajte više @@ -1640,69 +1655,69 @@ Ovu web stranicu možete lahko dodati na Početni ekran uređaja za brz pristup istoj i da surfate brže s iskustvom sličnom aplikaciji. - Prijave i lozinke + Prijave i lozinke - Lozinke + Lozinke - Spašene prijave i lozinke + Spašene prijave i lozinke - Sačuvaj lozinke + Sačuvaj lozinke Pitaj za spašavanje Ne spašavaj nikad - + Automatski ispuni u %1$su - + Popunite i sačuvajte korisnička imena i lozinke na web stranicama dok koristite %1$s. Automatski ispuni u drugim aplikacijama Unesite korisnička imena i lozinke u druge aplikacije na svom uređaju. - Dodaj prijavu + Dodaj prijavu - Dodaj lozinku + Dodaj lozinku - - Sinkroniziraj prijave - Sinhronizuj lozinke + Sinkroniziraj prijave + + Sinhronizuj lozinke - Sinhronizirajte prijave na svim uređajima + Sinhronizirajte prijave na svim uređajima - Sinhronizuj lozinke na svim uređajima + Sinhronizuj lozinke na svim uređajima - Spašene prijave + Spašene prijave - Sačuvane lozinke + Sačuvane lozinke - Prijave koje spasite ili sinhronizujete sa %s će se prikazati ovdje. + Prijave koje spasite ili sinhronizujete sa %s će se prikazati ovdje. - Lozinke koje sačuvate ili sinhronizujete sa %s će biti navedene ovdje. Sve lozinke koje sačuvate su šifrovane. + Lozinke koje sačuvate ili sinhronizujete sa %s će biti navedene ovdje. Sve lozinke koje sačuvate su šifrovane. - Saznajte više o Syncu. + Saznajte više o Syncu. - Saznajte više o sinhronizaciji + Saznajte više o sinhronizaciji Izuzeci - Prijave i lozinke koje nisu spašene će biti prikazane ovdje. + Prijave i lozinke koje nisu spašene će biti prikazane ovdje. - %s neće sačuvati lozinke za web stranice navedene ovdje. + %s neće sačuvati lozinke za web stranice navedene ovdje. - Prijave i lozinke neće biti spašene za ove web stranice. + Prijave i lozinke neće biti spašene za ove web stranice. - %s neće sačuvati lozinke za ove stranice. + %s neće sačuvati lozinke za ove stranice. Obriši sve izuzetke - Pretraži prijave + Pretraži prijave - Traži lozinke + Traži lozinke Stranica @@ -1731,17 +1746,17 @@ Sakrij lozinku - Otključajte za pregled spašenih prijava + Otključajte za pregled spašenih prijava - Otključajte da vidite sačuvane lozinke + Otključajte da vidite sačuvane lozinke - Osigurajte svoje prijave i lozinke + Osigurajte svoje prijave i lozinke - Osigurajte svoje sačuvane lozinke + Osigurajte svoje sačuvane lozinke - Podesite pattern za zaključavanje uređaja, PIN ili lozinku da zaštitite vaše spašene prijave i lozinke od pristupa druge osobe koja ima vaš uređaj. + Podesite pattern za zaključavanje uređaja, PIN ili lozinku da zaštitite vaše spašene prijave i lozinke od pristupa druge osobe koja ima vaš uređaj. - Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite svoje sačuvane lozinke od pristupa ako neko drugi ima vaš uređaj. + Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite svoje sačuvane lozinke od pristupa ako neko drugi ima vaš uređaj. Kasnije @@ -1758,10 +1773,10 @@ Zadnja upotreba - Sortiraj meni prijava + Sortiraj meni prijava - Meni za sortiranje lozinki + Meni za sortiranje lozinki @@ -1769,43 +1784,43 @@ Adrese - Kreditne kartice + Kreditne kartice - Načini plaćanja + Načini plaćanja - Sačuvajte i automatski popunjavajte kartice + Sačuvajte i automatski popunjavajte kartice - Sačuvaj i popuni načine plaćanja + Sačuvaj i popuni načine plaćanja - Podaci su šifrovani + Podaci su šifrovani - %s šifruje sve načine plaćanja koje sačuvate + %s šifruje sve načine plaćanja koje sačuvate Sinhronizujte kartice na svim uređajima Sinhronizuj kartice - Dodaj kreditnu karticu + Dodaj kreditnu karticu - Dodaj karticu + Dodaj karticu - Upravljaj sačuvanim karticama + Upravljaj sačuvanim karticama - Upravljajte karticama + Upravljajte karticama Dodaj adresu Upravljaj adresama - Sačuvajte i automatski popunjavajte adrese + Sačuvajte i automatski popunjavajte adrese - Sačuvajte i popunite adrese + Sačuvajte i popunite adrese - Uključite informacije kao što su brojevi, e-mail i adrese za dostavu + Uključite informacije kao što su brojevi, e-mail i adrese za dostavu - Uključuje brojeve telefona i email adrese + Uključuje brojeve telefona i email adrese Dodaj karticu @@ -1826,9 +1841,9 @@ Izbriši karticu - Jeste li sigurni da želite izbrisati ovu kreditnu karticu? + Jeste li sigurni da želite izbrisati ovu kreditnu karticu? - Izbrisati karticu? + Izbrisati karticu? Izbriši @@ -1840,23 +1855,23 @@ Sačuvane kartice - Unesite važeći broj kreditne kartice + Unesite važeći broj kreditne kartice - Unesite važeći broj kartice + Unesite važeći broj kartice - Molimo popunite ovo polje + Molimo popunite ovo polje - Dodaj ime + Dodaj ime Otključajte da vidite svoje sačuvane kartice - Osigurajte svoje kreditne kartice + Osigurajte svoje kreditne kartice - Osigurajte svoje sačuvane načine plaćanja + Osigurajte svoje sačuvane načine plaćanja - Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite svoje sačuvane kreditne kartice od pristupa ako neko drugi ima vaš uređaj. + Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite svoje sačuvane kreditne kartice od pristupa ako neko drugi ima vaš uređaj. - Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite sačuvane načine plaćanja od pristupa ako neko drugi ima vaš uređaj. + Postavite obrazac za zaključavanje uređaja, PIN ili lozinku da zaštitite sačuvane načine plaćanja od pristupa ako neko drugi ima vaš uređaj. Podesi odmah @@ -1864,10 +1879,10 @@ Otključajte svoj uređaj - Otključajte za korištenje sačuvanih podataka o kreditnoj kartici + Otključajte za korištenje sačuvanih podataka o kreditnoj kartici - Otključajte da koristite sačuvane načine plaćanja + Otključajte da koristite sačuvane načine plaćanja Dodaj adresu @@ -1875,11 +1890,13 @@ Upravljaj adresama - Ime + Ime - Srednje ime + Srednje ime - Prezime + Prezime + + Ime Adresa @@ -1903,9 +1920,9 @@ Izbriši adresu - Jeste li sigurni da želite izbrisati ovu adresu? + Jeste li sigurni da želite izbrisati ovu adresu? - Izbrisati ovu adresu? + Izbrisati ovu adresu? Izbriši @@ -2003,50 +2020,50 @@ Uredi - Da li ste sigurni da želite obrisati ovu prijavu? + Da li ste sigurni da želite obrisati ovu prijavu? - Jeste li sigurni da želite izbrisati ovu lozinku? + Jeste li sigurni da želite izbrisati ovu lozinku? Obriši Otkaži - Opcije prijave + Opcije prijave - Opcije lozinke + Opcije lozinke - Izmjenjivo tekstualno polje za web adresu prijave. + Izmjenjivo tekstualno polje za web adresu prijave. - Tekstualno polje koje se može uređivati za adresu web stranice. + Tekstualno polje koje se može uređivati za adresu web stranice. - Izmjenjivo tekstualno polje za korisničko ime prijave. + Izmjenjivo tekstualno polje za korisničko ime prijave. - Tekstualno polje koje se može uređivati za korisničko ime. + Tekstualno polje koje se može uređivati za korisničko ime. - Izmjenjivo tekstualno polje za lozinku prijave. + Izmjenjivo tekstualno polje za lozinku prijave. - Tekstualno polje koje se može uređivati za lozinku. + Tekstualno polje koje se može uređivati za lozinku. - Spasite izmjene za prijavu. + Spasite izmjene za prijavu. - Sačuvaj promjene. + Sačuvaj promjene. - Uredi + Uredi - Uredi lozinku + Uredi lozinku - Dodaj novu prijavu + Dodaj novu prijavu - Dodaj lozinku + Dodaj lozinku - Potrebna lozinka + Potrebna lozinka - Unesite lozinku + Unesite lozinku - Korisničko ime je obavezno + Korisničko ime je obavezno - Unesite korisničko ime + Unesite korisničko ime Ime hosta je obavezno @@ -2070,13 +2087,13 @@ Povežite drugi uređaj Ponovo potvrdite identitet. - + Molimo da omogućite sinhronizaciju tabova. - Nemate otvorenih tabova u Firefoxu na vašim ostalim uređajima. - + Nemate otvorenih tabova u LeOSiumu na vašim ostalim uređajima. + Pregled liste tabova sa vaših ostalih uređaja. - + Prijavite se za sinhr. @@ -2126,22 +2143,25 @@ Automatsko zatvaranje nakon mjesec dana? - Firefox može zatvoriti tabove koje niste pogledali u proteklom mjesecu. + LeOSium može zatvoriti tabove koje niste pogledali u proteklom mjesecu. UKLJUČI AUTOMATSKO ZATVARANJE Automatsko zatvaranje omogućeno - - Firefox prijedlozi + + LeOSium prijedlozi Google pretraga %s pretraga - Postavi automatsko otvaranje linkova web stranica, e-maila i poruka u Firefoxu. + + Promijenite svoj zadani pretraživač + + Postavi automatsko otvaranje linkova web stranica, e-maila i poruka u LeOSiumu. Ukloni @@ -2150,7 +2170,7 @@ Kliknite za više detalja - Idi prema gore + Idi prema gore Zatvori @@ -2165,7 +2185,7 @@ Pokreće %s. - Dio porodice Firefox. %s + Dio porodice LeOSium. %s Saznajte više @@ -2190,8 +2210,6 @@ Prilagođena ocjena - Nepouzdane recenzije su uklonjene - Na osnovu pouzdanih recenzija Izdvajamo iz nedavnih recenzija @@ -2251,10 +2269,6 @@ Ako vidite da je ovaj proizvod ponovo na zalihama, prijavite ga i mi ćemo raditi na provjeri recenzija. Prijavite proizvod je na zalihama - - Provjera kvaliteta recenzije - - Provjera kvaliteta recenzije Provjera kvaliteta recenzije (%s) @@ -2291,22 +2305,28 @@ Provjeri kvalitet recenzije Isprobajte naš pouzdani vodič za recenzije proizvoda - + Prije kupovine pogledajte koliko su pouzdane recenzije proizvoda na %1$s. Provjera recenzija, eksperimentalna funkcija od %2$s, ugrađena je direktno u pretraživač. Radi i na %3$s i %4$s. - + Prije kupovine pogledajte koliko su pouzdane recenzije proizvoda na %1$su. Provjera recenzija, eksperimentalna funkcija od %2$sa, ugrađena je direktno u pretraživač. Koristeći moć %1$s od strane Mozille, pomažemo vam da izbjegnete pristrasne i neautentične recenzije. Naš AI model se uvijek poboljšava kako bi vas zaštitio dok kupujete. %2$s Saznajte više - Odabirom “Da, probaj” prihvatate %1$s od strane Mozilla-ine %2$s i %3$s. + Odabirom “Da, probaj” prihvatate %1$s od strane Mozilla-ine %2$s i %3$s. Odabirom “Da, probaj” prihvatate sljedeće od %1$s: + + Odabirom “Da, probaj” prihvatate %2$s %1$s i %4$s %3$s. + + Odabirom “Da, probaj” prihvatate %2$s %1$s i %4$s %3$s. - politika privatnosti + politika privatnosti Politika privatnosti + + obavještenje o privatnosti uslovi korištenja @@ -2362,7 +2382,7 @@ otvorite link da saznate više o ovoj kolekciji pročitaj članak - + otvorite link da saznate više %s, naslov @@ -2377,11 +2397,15 @@ Prevesti ovu stranicu? + + Stranica je prevedena sa %1$s na %2$s Isprobajte privatne prijevode na %1$s Radi vaše privatnosti, prijevodi nikada ne napuštaju vaš uređaj. Novi jezici i poboljšanja uskoro! %1$s - + Saznajte više Prevedi sa @@ -2389,6 +2413,8 @@ Prevedi na Ne sada + + Prikaži original Gotovo @@ -2411,6 +2437,9 @@ Saznajte više + + Prevođenje… + Opcije prevođenja diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 68b0b852..4f449396 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -57,7 +57,7 @@ Elimina - El %1$s està creat per Mozilla. + El %1$s està creat per harvey186. El %1$s suprimeix les galetes, l’historial i les dades dels llocs en tancar totes les perstanyes privades. %2$s - Avís de privadesa del Firefox + Avís de privadesa del LeOSium Ens encanta mantenir-vos segur @@ -348,32 +348,32 @@ Manteniu el xifrat quan passeu d\'un aparell a un altre - Si teniu la sessió iniciada i sincronitzada, esteu més segur. Firefox xifra les contrasenyes, els marcadors i molt més. + Note: The word "LeOSium" should NOT be translated --> + Si teniu la sessió iniciada i sincronitzada, esteu més segur. LeOSium xifra les contrasenyes, els marcadors i molt més. Inicia la sessió Ara no - Les notificacions us ajuden a estar més segur amb el Firefox + Note: The word "LeOSium" should NOT be translated --> + Les notificacions us ajuden a estar més segur amb el LeOSium - Envieu pestanyes de manera segura entre els vostres dispositius i descobriu altres funcions de privadesa al Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envieu pestanyes de manera segura entre els vostres dispositius i descobriu altres funcions de privadesa al LeOSium. Activa les notificacions Ara no - Proveu el giny de cerca del Firefox + Note: The word "LeOSium" should NOT be translated --> + Proveu el giny de cerca del LeOSium - Amb el Firefox a la pantalla d’inici, podreu accedir fàcilment al navegador que prioritza la privadesa i que bloca els elements de seguiment entre llocs. + Note: The word "LeOSium" should NOT be translated --> + Amb el LeOSium a la pantalla d’inici, podreu accedir fàcilment al navegador que prioritza la privadesa i que bloca els elements de seguiment entre llocs. - Afegeix el giny del Firefox + Note: The word "LeOSium" should NOT be translated --> + Afegeix el giny del LeOSium Ara no @@ -415,10 +415,10 @@ Preferències de la barra d\'adreces - - Barra d\'adreces - Suggeriments del Firefox - - Més informació sobre els suggeriments del Firefox + + Barra d\'adreces - Suggeriments del LeOSium + + Més informació sobre els suggeriments del LeOSium Valora en el Google Play Emplenament automàtic dels URL - + Suggeriments dels patrocinadors - Doneu suport al %1$s activant els suggeriments patrocinats ocasionals - Suggeriments del %1$s - + Obteniu suggeriments del web relacionats amb la vostra cerca Obre els enllaços en les aplicacions @@ -643,7 +643,7 @@ No s’ha pogut canviar el fons de pantalla Més informació - + %s clàssic Sèrie d\'artista @@ -661,8 +661,8 @@ Nous complements disponibles - - Descobriu les més de cent noves extensions que us permeten fer el Firefox vostre. + + Descobriu les més de cent noves extensions que us permeten fer el LeOSium vostre. Explora els complements @@ -729,7 +729,7 @@ Pestanyes rebudes - Notificacions de les pestanyes rebudes d’altres dispositius Firefox. + Notificacions de les pestanyes rebudes d’altres dispositius LeOSium. S’ha rebut una pestanya @@ -910,7 +910,7 @@ Elimina Actius - + El %1$s pot instal·lar i executar estudis de tant en tant. Més informació @@ -1285,7 +1285,7 @@ Connecta un altre dispositiu - Per enviar una pestanya, inicieu la sessió al Firefox en almenys un altre dispositiu. + Per enviar una pestanya, inicieu la sessió al LeOSium en almenys un altre dispositiu. Entesos @@ -1311,10 +1311,10 @@ - El Firefox és ràpid i privat + El LeOSium és ràpid i privat - Fes que el Firefox sigui el navegador per defecte + Fes que el LeOSium sigui el navegador per defecte Proveu la navegació privada - Us agrairíem que ajudeu a millorar el Firefox fent una breu enquesta. + Us agrairíem que ajudeu a millorar el LeOSium fent una breu enquesta. Fes l’enquesta @@ -1485,17 +1485,17 @@ Escanegeu el codi - https://firefox.com/pair]]> + https://firefox.com/pair]]> Llest per escanejar Inicieu la sessió amb la càmera Usa el correu electrònic en lloc - - Creeu-ne un per sincronitzar el Firefox entre dispositius.]]> + + Creeu-ne un per sincronitzar el LeOSium entre dispositius.]]> - + El %s deixarà de sincronitzar-se amb el vostre compte, però les vostres dades de navegació d’aquest dispositiu no se suprimiran. Desconnecta @@ -1511,7 +1511,7 @@ Protecció contra el seguiment millorada Ara inclou la Protecció total de galetes, la nostra barrera més potent fins ara contra els elements de seguiment entre llocs. - + El %s us protegeix de molts dels elements de seguiment més habituals que recopilen dades sobre allò que feu a Internet. Més informació @@ -1674,9 +1674,9 @@ Demana-m’ho No els desis mai - + Emplena automàticament en el %1$s - + Emplena i desa noms d’usuari i contrasenyes en els llocs web mentre utilitzeu el %1$s. Emplena automàticament en altres aplicacions @@ -2064,14 +2064,14 @@ Connecteu un altre dispositiu. Torneu a autenticar-vos. - + Activeu la sincronització de pestanyes. - No teniu cap pestanya oberta al Firefox dels altres dispositius. - + No teniu cap pestanya oberta al LeOSium dels altres dispositius. + Vegeu una llista de les pestanyes que teniu obertes en altres dispositius. - + Inicia la sessió per sincronitzar @@ -2123,7 +2123,7 @@ Voleu tancar-les automàticament al cap d’un mes? - El Firefox pot tancar les pestanyes que no hàgiu vist durant el darrer mes. + El LeOSium pot tancar les pestanyes que no hàgiu vist durant el darrer mes. ACTIVA EL TANCAMENT AUTOMÀTIC @@ -2131,15 +2131,15 @@ Tancament automàtic activat - - Suggeriments del Firefox + + Suggeriments del LeOSium Cerca de Google Cerca amb %s - Feu que els enllaços dels llocs web, del correu electrònic i dels missatges s’obrin automàticament en el Firefox. + Feu que els enllaços dels llocs web, del correu electrònic i dels missatges s’obrin automàticament en el LeOSium. Elimina @@ -2163,7 +2163,7 @@ Funciona amb el %s. - Part de la família Firefox. %s + Part de la família LeOSium. %s Més informació @@ -2284,9 +2284,9 @@ Comprova la qualitat de les ressenyes Proveu la nostra guia de confiança per a ressenyes de productes - + Vegeu com de fiables són les ressenyes de productes a %1$s abans de comprar. El verificador de ressenyes, una funció experimental de %2$s, està integrat directament al navegador. També funciona a %3$s i %4$s. - + Vegeu com de fiables són les ressenyes de productes a %1$s abans de comprar. El verificador de ressenyes, una funció experimental de %2$s, està integrada directament en el navegador. Amb el poder de %1$s de Mozilla, us ajudem a evitar ressenyes esbiaixades i no autèntiques. El nostre model d\'IA sempre millora per a protegir-vos mentre compreu. %2$s @@ -2355,7 +2355,7 @@ obrir l’enllaç per obtenir més informació sobre aquesta col·lecció llegir l’article - + obrir l’enllaç i veure més informació %s, encapçalament @@ -2368,7 +2368,7 @@ Voleu traduir aquesta pàgina? - + Més informació Tradueix de: diff --git a/app/src/main/res/values-cak/strings.xml b/app/src/main/res/values-cak/strings.xml index 8c10d86c..ff9cbafd 100644 --- a/app/src/main/res/values-cak/strings.xml +++ b/app/src/main/res/values-cak/strings.xml @@ -60,7 +60,7 @@ Tiyuj - %1$s b\'anon ruma Mozilla. + %1$s b\'anon ruma harvey186. %1$s yeruyüj ri taq acookie, natab\'äl chuqa\' taq rutzij ruxaq k\'amaya\'l toq ye\'atz\'apij ronojel ri ichinan taq awi\'. %2$s Tawichinaj ri ruxaq atikirib\'al + Rutikirib\'al ruwäch @@ -255,6 +256,9 @@ Tiyuj runatab\'al okem pa k\'amaya\'l + + Titzalq\'omïx ruxaq + Xcha\' ch\'ab\'äl @@ -266,8 +270,6 @@ Tiwachib\'ëx - - Kanob\'äl Runuk\'ulem kanob\'äl @@ -322,23 +324,26 @@ - Ri taq rutzijol yatkito\' richin nasamajij ch\'aqa\' chik pa %s + Ri taq rutzijol yatkito\' richin nasamajij ch\'aqa\' chik pa %s - Ke\'axima\' ri taq ruwi\' chi kikojol ri taq okisaxel, ke\'anuk\'samajij taq qasanïk, ke\'ak\'ulu\' taq na\'oj chi rij rub\'eyal nawïl ri rutzil ruchajixik richinanem %s chuqa\' ch\'aqa\' chik. + Ke\'axima\' ri taq ruwi\' chi kikojol ri taq okisaxel, ke\'anuk\'samajij taq qasanïk, ke\'ak\'ulu\' taq na\'oj chi rij rub\'eyal nawïl ri rutzil ruchajixik richinanem %s chuqa\' ch\'aqa\' chik. - Titikïr chik el + Titikïr chik el - Wakami mani + Wakami mani + + LeOSium ichinan rutzijol + Niqa chi qawäch chi atqajikib\'an - Ri qokik\'amaya\'l majun ch\'akoj rojqan, yatruto\' chi ri ajk\'ayij taq moloj yatkitzeqelb\'ej pa ewan pa ajk\'amaya\'l.\n\nCh\'aqa\' chik taq na\'oj pa ri rutzijol ichinanem. + Ri qokik\'amaya\'l majun ch\'akoj rojqan, yatruto\' chi ri ajk\'ayij taq moloj yatkitzeqelb\'ej pa ewan pa ajk\'amaya\'l.\n\nCh\'aqa\' chik taq na\'oj pa ri rutzijol ichinanem. - ichinan na\'oj + ichinan na\'oj Tiya\' kan achi\'el kanob\'äl k\'o wi @@ -349,19 +354,19 @@ Wakami mani - Ri taq rutzijol yatkito\' yalan at jikil pa Firefox + Note: The word "LeOSium" should NOT be translated --> + Ri taq rutzijol yatkito\' yalan at jikil pa LeOSium Ketzij taq rutzijol Wakami mani - Tatojtob\'ej ri ruwidget rukanob\'äl Firefox + Note: The word "LeOSium" should NOT be translated --> + Tatojtob\'ej ri ruwidget rukanob\'äl LeOSium - Titz\'aqatisäx ruwidget Firefox + Note: The word "LeOSium" should NOT be translated --> + Titz\'aqatisäx ruwidget LeOSium Wakami mani @@ -402,10 +407,10 @@ Chilab\'en taq kanob\'äl Kajowab\'al kikajtz\'ik ochochib\'äl - - Kikajtz\'ik ochochib\'äl - Ruchilab\'exik Firefox - - Tawetamaj ch\'aqa\' chik chi rij ri Firefox Suggest + + Kikajtz\'ik ochochib\'äl - Ruchilab\'exik LeOSium + + Tawetamaj ch\'aqa\' chik chi rij ri LeOSium Suggest Tiya\' rejqalem pa Google Play HTTPS-Only B\'anikil - - Kech\'utinirisäx kitzijol kuki Kiq\'atöy kitzijol cookie Ruq\'atöy kitzijol taq cookie pan ichinan okem - - Kech\'utinär ri taq kib\'aner koki - - Tichup - - Titzij - - %1$s nutojtob\'ej yeruxutuj ruyonil ri kik\'utuxik kuki pa ri taq kinimawuj kuki. Chupül pa re ruxaq re\' @@ -467,32 +462,13 @@ Wakami man koch\'el ta re ruxaq re\' - ¿La nitzij ri kich\'utinisaxik rutzijol kuki richin %1$s? - ¿La nitzij ri kiq\'atik taq kitzijol cookie richin %1$s? - ¿La nichup ri kich\'utinisaxik rutzijol kuki richin %1$s? - ¿La nichup ri ruq\'atoj kitzijol taq cookie richin %1$s? Man yeruq\'ät ta ri %1$s pa ruyonil ri taq kik\'utuj taq cookie pa re ruxaq re\'. Yatikïr natäq un k\'utuj richin nito\' re ruxaq re\' ri chwa\'q kab\'ij. - - %1$s xkeruyüj ri taq rukuki re ruxaq chuqa\' xtuk\'ëx re ruxaq. Xkeruyüj ronojel ri taq kuki, nitikïr nutz\'apij ri molojri\'ïl o yerujäm ri taq ruch\'ich\' loq\'oj. - - %1$s nitikïr nutojtob\'ej yeruxutuj pa ruyonil ronojel ri kik\'utuxik taq kuki pa koch\'el taq ruxaq. Toq nitzij, ri %1$s xtutojtob\'ej xkeruxutuj pa ruyonil ri taq kitzijol taq cookie pa re ruxaq re\'. - - ¿La niya\' q\'ij chi %1$s yeruxutuj ri kik\'utuxik taq kuki? - - %1$s nitikïr yeruxutuj pa ruyonil k\'ïy kik\'utuxik taq kuki. - - Wakami mani - - Xtatz\'ët jub\'a kik\'utuxik kuki - - - Tiya\' q\'ij %1$s k\'a b\'a\' keruxutuj taq cookie @@ -570,12 +546,12 @@ Kinuk\'ulem Rub\'i\' Taqoya\'l Titz\'aqatisäx ruyon URLs - + Chilab\'en taq to\'onela\' - Taq ruchilab\'exik %1$s - + Kek\'ul taq ruchilab\'exik web ruximon ri\' rik\'in ritaq akanoxik Kejaq taq ximonel pa taq chokoy @@ -656,7 +632,7 @@ Man xjalatäj ta ri rupam ruwäch Tetamäx ch\'aqa\' chik - + Ojer %s Ri Jamäl ch\'ab\'äl molb\'äl. %s @@ -673,8 +649,8 @@ K\'ak\'a\' taq tz\'aqa ewachel wakami - - Ke\'awila\' +100 k\'ak\'a\' taq k\'amal ri nikiya\' q\'ij chawe\' nawichinaj Firefox. + + Ke\'awila\' +100 k\'ak\'a\' taq k\'amal ri nikiya\' q\'ij chawe\' nawichinaj LeOSium. Kenik\'öx taq tz\'aqat @@ -702,6 +678,8 @@ Taq yaketal Ketikirisäx molojri\'ïl + + Ewan taq tzij Kejaq ruwi\' @@ -729,6 +707,8 @@ Rutarjeta\' kre\'ito\' + + Rub\'eyal tojïk Taq ochochib\'äl @@ -737,7 +717,7 @@ Taq ruwi\' ek\'ulun - Taq rutzijol taq ruwi\' ek\'ulun pa ch\'aqa\' chik rokisab\'al Firefox. + Taq rutzijol taq ruwi\' ek\'ulun pa ch\'aqa\' chik rokisab\'al LeOSium. Ruwi\' k\'ulun @@ -916,7 +896,7 @@ Tiyuj Tzijïl - + %1$s k\'o b\'ey nitikïr yeruyäk chuqa\' yerub\'än taq tijob\'alil. Tetamäx ch\'aqa\' chik @@ -1269,8 +1249,6 @@ Tewäx - Man tikirel ta xtz\'ajb\'äx - Man tikirel ta nitz\'ajb\'äx re ruxaq re\' Titz\'ajb\'äx @@ -1316,15 +1294,19 @@ Ketz\'apïx ichinan taq ruwi\' + + + La yetz\'apïx ichinan taq ruwi\'? + Markentin - Firefox aninäq chuqa\' ichinel + LeOSium aninäq chuqa\' ichinel - Tab\'ana\' chi ri Firefox nok ri nab\'ey awokik\'amaya\'l + Tab\'ana\' chi ri LeOSium nok ri nab\'ey awokik\'amaya\'l Titojtob\'ëx ichinan okem @@ -1485,16 +1467,16 @@ Titz\'ajwachib\'ëx b\'itz\'ib\' - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ütz chik nitz\'ajwachib\'ëx Tatikirisaj molojri\'ïl rik\'in ri elesäy awachib\'al Tawokisaj ri taqoya\'l - - Tatz\'uku\' jun richin naxïm Firefox pa taq okisab\'äl.]]> - + + Tatz\'uku\' jun richin naxïm LeOSium pa taq okisab\'äl.]]> + %s Man xtuxïm ta chik ri rub\'i\' ataqoya\'l, man xkeyuj ta ri taq rutzij awokem pa re oyonib\'äl re\'. Tichup @@ -1509,7 +1491,7 @@ Runuk\'ulem Ojqanem Utzirisan Chajinïk chuwäch Ojqanem - + %s yaruchajij chi kiwäch relik ojqanela\', ri nikoqaj ri nab\'än pa k\'amab\'ey. Tetamäx ch\'aqa\' chik @@ -1658,30 +1640,43 @@ Kitikirisaxik molojri\'ïl chuqa\' ewan taq tzij + + Ewan taq tzij Keyak kitikirisaxik molojri\'ïl chuqa\' ewan taq tzij + + Keyak ewan taq tzij Tik\'utüx chi niyak Majub\'ey tiyak - + Tinojisäx ruyonil pa %1$s Titz\'aqatisäx ruyon pa ch\'aqa\' chik taq okisab\'äl. Tatz\'aqatisaj rutikirib\'al molojri\'ïl + + Titz\'aqatisäx ewan tzij + Sync tikirisanïk molojri\'ïl + + Kexim ewan taq tzij Sync rutikirib\'al molojri\'ïl rik\'in okisaxel Xeyak kitikirisaxik mojojri\'ïl + + Xeyak ewan taq tzij Wawe\' xkeq\'alajin ri taq tikirisanïk molojri\'ïl xke\'ayäk o xke\'axïm rik\'in %s. Tawetamaj ch\'aqa\' chik chi rij ri Sync. + + Tawetamaj ch\'aqa\' chik chi rij ri sync Taq man relik ta @@ -1692,6 +1687,8 @@ Tiyuj ronojel man relik ta Kekanöx tikirib\'äl taq molojri\'ïl + + Kekanöx ewan taq tzij Ruxaq k\'amaya\'l @@ -1721,10 +1718,14 @@ Tewäx ewan tzij Man tiq\'at chik richin ye\'atz\'ët ri tikirib\'äl amolojri\'ïl e\'ayakon + + Man tiq\'at chik richin ye\'atz\'ët ri ewan taq tzij e\'ayakon Ke\'ajikib\'a\' kitikirisaxik amolojri\'ïl chuqa\' ewan taq atzij Tab\'ana\' runuk\'ulem jun retal ruq\'atoj okisab\'äl, jun PIN o jun ewan tzij richin nachajij ri kitikirib\'al amolojri\'ïl chuqa\' ewan taq atzij e\'ayakon we xa ta k\'o xtichapo ri awokisab\'al. + + Tab\'ana\' runuk\'ulem jun retal ruq\'atoj okisab\'äl, jun PIN o jun ewan tzij richin nachajij ri ewan taq atzij e\'ayakon we xa ta k\'o xtichapo ri awokisab\'al. Jub\'a\' chik na @@ -1753,6 +1754,8 @@ Taq ochochib\'äl Rutarjeta\' kre\'ito\' + + Rub\'eyal tojïk Keyak chuqa\' ruyon kenojisäx ri tarjeta\' @@ -1765,9 +1768,13 @@ Titz\'aqatisäx rutarjeta\' kre\'ito\' + + Titz\'aqatisäx tarjeta\' Kenuk\'samajïx yakon taq tarjeta\' + + Kenuk\'samajïx taq tarjeta\' Titz\'aqatisäx ochochib\'äl @@ -1775,6 +1782,9 @@ Keyak chuqa\' ruyon kenojisäx ri ochochib\'äl + + Keyak chuqa\' kenojisäx ri ochochib\'äl + Titz\'aqatisäx tarjeta\' @@ -1795,6 +1805,8 @@ Tiyuj tarjeta\' Tiyuj tarjeta\' + + La niyuj tarjeta\'? Tiyuj @@ -1811,6 +1823,8 @@ Tanojisaj re k\'ojlem re\' + + Titz\'aqatisäx jun b\'i\'aj Man tiq\'at chik richin ye\'atz\'ët ri tarjeta\' e\'ayakon @@ -1959,16 +1973,28 @@ Achi\'el: \nhttps://www.google.com/search?q=%s Ruk\'ojlem nuk\'el rutz\'ib\'axik rub\'i\' winäq pa ri rutikirib\'al molojri\'ïl. Ruk\'ojlem nuk\'el rutz\'ib\'axik ewan tzij pa ri rutikirib\'al molojri\'ïl. + + Ruk\'ojlem nuk\'el rutz\'ib\'axik ewan tzij. Keyaj taq jaloj richin ri rutikirib\'al molojri\'ïl. + + Keyak taq jaloj. Tinuk\' + + Tinuk\' ewan tzij Titz\'aqatisäx k\'ak\'a\' rub\'i\' taqoya\'l + + Titz\'aqatisäx ewan tzij Najowäx ewan tzij + + Titz\'ib\'äx jun ewan tzij Najowäx rub\'i\' okisanel + + Titz\'ib\'äx jun ewan rutzij okisaxel Najowäx rub\'i\' ruk\'u\'x k\'amb\'ey @@ -1992,14 +2018,14 @@ Achi\'el: \nhttps://www.google.com/search?q=%s Tokisäx jun chik okisab\'äl Tajuxub\'ej chik awi\'. - + Tatzija\' ri kiximik taq ruwi\'. - Majun ruwi\' ajaqon pa Firefox pa ri ch\'aqa\' chik awokisab\'al. - + Majun ruwi\' ajaqon pa LeOSium pa ri ch\'aqa\' chik awokisab\'al. + Titz\'et jun kicholb\'al ruwi\' pa juley chik awokisab\'al. - + Tatikirisaj molojri\'ïl pa yaximon @@ -2038,22 +2064,22 @@ Achi\'el: \nhttps://www.google.com/search?q=%s ¿La ruyonil nitz\'apïx chi rij jun ik\'? - Firefox nitikïr yerutz\'apij taq ruxaq man e\'atz\'eton ta pa ri ruk\'isib\'äl ik\'. + LeOSium nitikïr yerutz\'apij taq ruxaq man e\'atz\'eton ta pa ri ruk\'isib\'äl ik\'. TITZIJ RUYON NICHUPUTÄJ Tzijïl ruyon nitz\'apitäj - - Firefox Suggest + + LeOSium Suggest Google Kanob\'äl Tikanöx pa %s - - Nub\'än kinuk\'ulem ximonel ajk\'amaya\'l taq ruxaq, taq taqoya\'l chuqa\' taq rutzijol richin yejaq pa ruyonil pa Firefox. + + Nub\'än kinuk\'ulem ximonel ajk\'amaya\'l taq ruxaq, taq taqoya\'l chuqa\' taq rutzijol richin yejaq pa ruyonil pa LeOSium. Tiyuj @@ -2072,6 +2098,8 @@ Achi\'el: \nhttps://www.google.com/search?q=%s B\'anob\'äl richin yach\'ob\'on Tilitäj ch\'aqa\' chik + + B\'anon ruma %s. Tetamäx ch\'aqa\' chik diff --git a/app/src/main/res/values-ceb/strings.xml b/app/src/main/res/values-ceb/strings.xml index 38ba3ae5..797896cc 100644 --- a/app/src/main/res/values-ceb/strings.xml +++ b/app/src/main/res/values-ceb/strings.xml @@ -36,7 +36,7 @@ Napili - %1$s hinimo sa Mozilla. + %1$s hinimo sa harvey186. @@ -228,12 +228,12 @@ Dugang ug shortcut sa private browsing - - Custom nga server sa Firefox Account + + Custom nga server sa LeOSium Account Custom nga Sync server - Nausab ang Firefox Account/Sync server. Kamulong gina-quit ang application para maapply ang nausab … + Nausab ang LeOSium Account/Sync server. Kamulong gina-quit ang application para maapply ang nausab … i-Reconnect para mapadayon ang pag-sync @@ -314,7 +314,7 @@ Nadawat nga mga tab - Mga pahibalo sa mga tab nga nadawat gikan sa ubang mga Firefox device. + Mga pahibalo sa mga tab nga nadawat gikan sa ubang mga LeOSium device. Tab nga nadawat diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 663f27db..22dbd695 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -59,7 +59,7 @@ نا سوپاس - + دەتوانیت وا لە فایەرفۆکس بکەیت کە خۆاکارانە بەستەرەکان لەناو بەرنامەکان بکاتەوە. بڕۆ بۆ ڕێکخستن @@ -177,7 +177,7 @@ ڕاستەوخۆ گەڕان بکە لە توڵی ناونیشانەوە - + بازدەرێکی نوێی فایەرفۆکس بکەرەوە گەڕان @@ -228,7 +228,7 @@ قەدبڕێ وێبگەڕانی تایبەتی زیاد بکە دەستپێگەیشتن - + ڕاژەی خوازراو بۆ هەژماری فایەرفۆکس ڕاژەی خوازراو بۆ هاوکاتگەری @@ -245,7 +245,7 @@ نیشانەکراوەکان، مێژووی کار، وزیاتر لەگەڵ هەژماری فایەرفۆکس - هەژماری Firefox + هەژماری LeOSium دووبارە پەیوەندی بکەرەوە بۆ هێنانەوەی هاوکاتگەری @@ -907,34 +907,34 @@ سڕینەوەی زانیارییەکانی گەڕان… - - Firefox Preview ئێستا بووە بە Firefox Nightly - + + LeOSium Preview ئێستا بووە بە LeOSium Nightly + فایەرفۆکسی بێتا بەدەست بێنە بۆ ئەندرۆید - + فایەرفۆکسی شەوانەیی(nightly) لێرە گوازرایەوە بچۆ وەشانی نوێی شەوانەیی (Nightly) - + فایەرفۆکسی شەوانەیی(nightly) لێرە گوازرایەوە شەوانەیی (Nightly) نوێ بەدەست بهێنە + The first parameter is the name of the app (e.g. LeOSium Preview) --> بەخێربێی بۆ %s! - + فایەرفۆکس هاوکاتگەری پێبکە لە نێوان ئامێرەکان - + خۆتۆمارکردن هاوکاتگەری کارایە هەموو-کات لەسەر تایبەتیی - + فایەرفۆکس خۆکارانە کۆمپانیاکان ڕادەگرێت لەوەی چاودێریت بکەن لەسەر وێب. ئاسایی (بنەڕەتیی) @@ -952,7 +952,7 @@ تایبەتێتی بکەرەوە + The first parameter is the name of the app (e.g. LeOSium Preview) Substitute %s for long browser name. --> ئێمە %s داڕشتووە بەشێوەیەک بتوانیت کۆنتڕۆڵی ئەوە بکەیت چی لەسەرهێڵ بڵاوبکەیتەوە یان چی لەگەڵ ئێمە بڵاوبکەیتەوە. تێبینییەکانی تایبەتێتی بخوێنەوە @@ -993,7 +993,7 @@ دەتوانیت پۆستی ئەلیکترۆنی بەکارببەیت - + دانەیەک درووست بکە بۆ هاوکاتگەری پێکردن لەنێوان ئامێرەکان.]]> دەرچوون @@ -1311,13 +1311,13 @@ ئامێریکی تر ببەستەوە تکایە دووبارە ڕێپێدان ئەنجام بدەرەوە - + تکایە هاوکاتگەری بازدەر پێبکە. هیچ بازدەرێکی کراوەت نیە لە ئامێرەکانی تری فایەرفۆکس. - + لیستەی بازدەرەکان پیشان بدە لە ئامێرەکانی ترەوە. - + بۆ هاوکاتکردن بچۆژوورەوە بازدەری کراوە نیە diff --git a/app/src/main/res/values-co/strings.xml b/app/src/main/res/values-co/strings.xml index 72ce034b..76c65fc3 100644 --- a/app/src/main/res/values-co/strings.xml +++ b/app/src/main/res/values-co/strings.xml @@ -57,7 +57,7 @@ Caccià - %1$s hè sviluppatu da Mozilla. + %1$s hè sviluppatu da harvey186. %1$s squassa i vostri canistrelli, cronolugia è dati di siti quandu vo chjudite tutte e vostre unghjette private. %2$s Traduce a pagina + + Pagina tradutta in %2$s, l’origine hè in %1$s. + Lingua selezziunata @@ -334,13 +339,23 @@ - Dichjarazione di cunfidenzialità di Firefox - + Dichjarazione di cunfidenzialità di LeOSium + + Sapene di più in a nostra dichjarazione di cunfidenzialità A vostra prutezzione cunta per noi + + Scuprite perchè LeOSium piace à milioni di persone + + A navigazione assicurizata cù più di scelta U nostru navigatore sustinutu da un urganismu senza scopu lucrativu impedisce l’imprese di seguitavvi da manera sicreta nant’à u Web. + Più di 10 milioni di persone prutegenu a so vita privata scigliendu un navigatore sustinutu da un’organizazione senza scopu lucrativu. + + Perseguitatori cunnisciuti ? Bluccati autumaticamente. Estensioni ? Ci n’hè più di 700 ; pruvatele. Schedarii PDF ? U nostru lettore integratu ne faciliteghja a ghjestione. + U nostru navigatore sustinutu da un urganismu senza scopu lucrativu impedisce l’imprese di seguitavvi da manera sicreta nant’à u Web.\n\nSapene di più in a nostra dichjarazione di cunfidenzialità. @@ -353,32 +368,32 @@ Prutigitevi grazia à a cifratura quandu vo passate da un apparechju à l’altru - Quandu site cunnessi cù a sincrunizazione attivata, a vostra sicurità hè rinfurzata. Firefox cifra e vostre parolle d’intesa, e vostre indette, è ancu di più. + Note: The word "LeOSium" should NOT be translated --> + Quandu site cunnessi cù a sincrunizazione attivata, a vostra sicurità hè rinfurzata. LeOSium cifra e vostre parolle d’intesa, e vostre indette, è ancu di più. Cunnettesi Micca subitu - E nutificazioni vi aiutanu à stà in sicurità cù Firefox + Note: The word "LeOSium" should NOT be translated --> + E nutificazioni vi aiutanu à stà in sicurità cù LeOSium - Mandate in sicurità l’unghjette trà i vostri apparechji è scuprite d’altre funzioni di cunfidenzialità di Firefox. + Note: The word "LeOSium" should NOT be translated --> + Mandate in sicurità l’unghjette trà i vostri apparechji è scuprite d’altre funzioni di cunfidenzialità di LeOSium. Attivà e nutificazioni Micca subitu - Pruvate u widget di ricerca di Firefox + Note: The word "LeOSium" should NOT be translated --> + Pruvate u widget di ricerca di LeOSium - Cù Firefox nant’à u vostru screnu d’accolta, averete un accessu faciule à un navigatore dedicatu à a cunfidenzialità chì blocca l’elementi intersiti di spiunagiu. + Note: The word "LeOSium" should NOT be translated --> + Cù LeOSium nant’à u vostru screnu d’accolta, averete un accessu faciule à un navigatore dedicatu à a cunfidenzialità chì blocca l’elementi intersiti di spiunagiu. - Aghjunghje u widget di Firefox + Note: The word "LeOSium" should NOT be translated --> + Aghjunghje u widget di LeOSium Micca subitu @@ -419,10 +434,10 @@ Preferenze per a barra d’indirizzu - - Barra d’indirizzu - Firefox suggerisce - - Sapene di più nant’à Firefox suggerisce + + Barra d’indirizzu - LeOSium suggerisce + + Sapene di più nant’à LeOSium suggerisce Appone una nota nant’à Google Play Compie autumaticamente l’indirizzi - + Suggestioni da i finanzieri - Sustene %1$s cù suggestioni finanziare occasiunale - Suggestioni da %1$s - + Ottene suggestioni da u web relative à a vostra ricerca Apre i liami in l’appiecazioni @@ -653,7 +668,7 @@ Sapene di più - + %s classicu @@ -672,8 +687,8 @@ Novi moduli addiziunali dispunibule - - Scuprite più di 100 estensioni nove chì vi permettenu di persunalizà Firefox. + + Scuprite più di 100 estensioni nove chì vi permettenu di persunalizà LeOSium. Esplurà i moduli addiziunali @@ -701,9 +716,9 @@ Indette - Identificazioni di cunnessione + Identificazioni di cunnessione - Parolle d’intesa + Parolle d’intesa Apre l’unghjette @@ -729,10 +744,10 @@ %1$s nant’à %2$s %3$s - Carte bancarie + Carte bancarie - Metode di pagamentu + Metode di pagamentu Indirizzi @@ -740,7 +755,7 @@ Unghjette ricevute - Nutificazioni d’unghjette ricevute da d’altri apparechji Firefox. + Nutificazioni d’unghjette ricevute da d’altri apparechji LeOSium. Unghjetta ricevuta @@ -924,7 +939,7 @@ Caccià Attivi - + %1$s pò installà è lancià studii di quandu in quandu. Sapene di più @@ -1302,7 +1317,7 @@ Cunnette un altru apparechju - Per mandà un’unghjetta, cunnittitevi à u vostru contu Firefox nant’à omancu un altru apparechju. + Per mandà un’unghjetta, cunnittitevi à u vostru contu LeOSium nant’à omancu un altru apparechju. Aghju capitu @@ -1330,10 +1345,10 @@ - Firefox hè rapidu è privatu + LeOSium hè rapidu è privatu - Fate di Firefox u vostru navigatore predefinitu + Fate di LeOSium u vostru navigatore predefinitu Pruvà a navigazione privata - Pè piacè aiutateci à rende Firefox megliu facendu una corta inchiesta. + Pè piacè aiutateci à rende LeOSium megliu facendu una corta inchiesta. Risponde à l’inchiesta @@ -1499,16 +1514,16 @@ Numerizà u codice - https://firefox.com/pair]]> + https://firefox.com/pair]]> Prontu à numerizà Cunnittitevi cù u vostru apparechju-fotò Impiegà piuttostu un messaghju elettronicu - - Createne unu per sincrunizà Firefox trà i vostri apparechji.]]> - + + Createne unu per sincrunizà LeOSium trà i vostri apparechji.]]> + %s ùn si sincruniserà più cù u vostru contu, ma ùn squasserà alcunu datu di navigazione nant’à st’apparechju. Disghjunghje @@ -1524,7 +1539,7 @@ Prutezzione rinfurzata contr’à u spiunagiu Eccu a prutezzione tutale contr’à i canistrelli, a nostra chjudenda a più putente oghje contr’à l’elementi intersiti di spiunagiu. - + %s vi prutege da a maiò parte di i perseguitatori i più cunnisciuti chì seguitanu ciò chì vo fate in linea. Sapene di più @@ -1675,21 +1690,21 @@ Hè faciule d’aghjunghje stu situ nant’à u screnu d’accolta di u vostru apparechju per accedeci direttamente è navigà più prestu cum’è s’ella fussi un’appiecazione. - Identificazioni è parolle d’intesa + Identificazioni è parolle d’intesa - Parolle d’intesa + Parolle d’intesa - Arregistrà l’identificazioni è e parolle d’intesa + Arregistrà l’identificazioni è e parolle d’intesa - Arregistrà e parolle d’intesa + Arregistrà e parolle d’intesa Dumandà per arregistrà Ùn arregistrà mai - + Riempiimentu autumaticu in %1$s - + Riimpiete è arregistrate nomi d’utilizatore è parolle d’intesa in i siti web quandu vi impiegate %1$s. Riempiimentu autumaticu in l’altre appiecazioni @@ -1697,48 +1712,48 @@ Riimpiete nomi d’utilizatore è parolle d’intesa in l’altre appiecazioni nant’à u vostru apparechju. - Aghjunghje un’identificazione di cunnessione + Aghjunghje un’identificazione di cunnessione - Aghjunghje una parolla d’intesa + Aghjunghje una parolla d’intesa - - Sincrunizà l’identificazioni - Sincrunizà e parolle d’intesa + Sincrunizà l’identificazioni + + Sincrunizà e parolle d’intesa - Sincrunizà l’identificazioni di cunnessione trà l’apparechji + Sincrunizà l’identificazioni di cunnessione trà l’apparechji - Sincrunizà e parolle d’intesa trà l’apparechji + Sincrunizà e parolle d’intesa trà l’apparechji - Identificazioni di cunnessione arregistrate + Identificazioni di cunnessione arregistrate - Parolle d’intesa arregistrate + Parolle d’intesa arregistrate - L’identificazioni di cunnessione chì voi arregistrate o sincrunizate cù %s seranu affissate quì. + L’identificazioni di cunnessione chì voi arregistrate o sincrunizate cù %s seranu affissate quì. - E parolle d’intesa chì vo arregistrate o sincrunizate cù %s seranu affissate quì. Tutte e parolle d’intesa chì vo arregistrate sò cifrate. + E parolle d’intesa chì vo arregistrate o sincrunizate cù %s seranu affissate quì. Tutte e parolle d’intesa chì vo arregistrate sò cifrate. - Sapene di più nant’à Sync. + Sapene di più nant’à Sync. - Sapene di più nant’à a sincrunizazione + Sapene di più nant’à a sincrunizazione Eccezzioni - L’identificazioni è parolle d’intesa chì ùn sò micca arregistrate seranu affissate quì. + L’identificazioni è parolle d’intesa chì ùn sò micca arregistrate seranu affissate quì. - %s ùn arregistrerà micca e parolle d’intesa per i siti allistinati quì. + %s ùn arregistrerà micca e parolle d’intesa per i siti allistinati quì. - L’identificazioni è parolle d’intesa ùn seranu micca arregistrate per sti siti. + L’identificazioni è parolle d’intesa ùn seranu micca arregistrate per sti siti. - %s ùn arregistrerà micca e parolle d’intesa per sti siti. + %s ùn arregistrerà micca e parolle d’intesa per sti siti. Squassà tutte l’eccezzioni - Ricercà identificazioni di cunnessione + Ricercà identificazioni di cunnessione - Ricercà parolle d’intesa + Ricercà parolle d’intesa Situ @@ -1767,17 +1782,17 @@ Piattà a parolla d’intesa - Spalancate per affissà l’identificazioni di cunnessione arregistrate + Spalancate per affissà l’identificazioni di cunnessione arregistrate - Spalancate per affissà e vostre parolle d’intesa arregistrate + Spalancate per affissà e vostre parolle d’intesa arregistrate - Prutigite e vostre identificazioni di cunnessione è parolle d’intesa + Prutigite e vostre identificazioni di cunnessione è parolle d’intesa - Prutigite e vostre parolle d’intesa arregistrate + Prutigite e vostre parolle d’intesa arregistrate - Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre identificazioni di cunnessione è parolle d’intesa arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. + Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre identificazioni di cunnessione è parolle d’intesa arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. - Definite un dissegnu di chjuditura, un codice PIN o una parolla d’intesa per prutege e vostre parolle d’intesa arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. + Definite un dissegnu di chjuditura, un codice PIN o una parolla d’intesa per prutege e vostre parolle d’intesa arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. Dopu @@ -1795,10 +1810,10 @@ Ultimu impiegu - Listinu di classificazione di l’identificazioni + Listinu di classificazione di l’identificazioni - Listinu di classificazione di e parolle d’intesa + Listinu di classificazione di e parolle d’intesa @@ -1806,43 +1821,43 @@ Indirizzi - Carte bancarie + Carte bancarie - Metode di pagamentu + Metode di pagamentu - Arregistrà è riempie autumaticamente e carte + Arregistrà è riempie autumaticamente e carte - Arregistrà è rinsignà e metode di pagamentu + Arregistrà è rinsignà e metode di pagamentu - I dati sò cifrati + I dati sò cifrati - %s cifra tutte e metode di pagamentu chì vo arregistrate + %s cifra tutte e metode di pagamentu chì vo arregistrate Sincrunizate e carte trà i vostri apparechji Sincrunizà e carte - Aghjunghje una carta bancaria + Aghjunghje una carta bancaria - Aghjunghje una carta + Aghjunghje una carta - Amministrà e carte arregistrate + Amministrà e carte arregistrate - Amministrà e carte + Amministrà e carte Aghjunghje un indirizzu Urganizà l’indirizzi - Arregistrà è riempie autumaticamente l’indirizzi + Arregistrà è riempie autumaticamente l’indirizzi - Arregistrà è rinsignà autumaticamente l’indirizzi + Arregistrà è rinsignà autumaticamente l’indirizzi - Include l’infurmazioni cum’è i numeri, i messaghji elettronichi è l’indirizzi di spedizione + Include l’infurmazioni cum’è i numeri, i messaghji elettronichi è l’indirizzi di spedizione - Include i numeri di telefonu è l’indirizzi elettronichi + Include i numeri di telefonu è l’indirizzi elettronichi Aghjunghje una carta @@ -1864,9 +1879,9 @@ Squassà a carta - Vulete veramente squassà sta carta bancaria ? + Vulete veramente squassà sta carta bancaria ? - Squassà a carta ? + Squassà a carta ? Squassà @@ -1879,25 +1894,25 @@ Carte arregistrate - Ci vole à stampittà un numeru accettevule di carta bancaria + Ci vole à stampittà un numeru accettevule di carta bancaria - Stampittate un numeru di carta bancaria accettevule + Stampittate un numeru di carta bancaria accettevule - Ci vole à riempie stu campu + Ci vole à riempie stu campu - Aghjunghje un nome + Aghjunghje un nome Spalancate per affissà e vostre carte arregistrate - Prutege e vostre carte bancarie + Prutege e vostre carte bancarie - Prutigite e vostre metode di pagamentu arregistrate + Prutigite e vostre metode di pagamentu arregistrate - Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre carte arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. + Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre carte arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. - Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre metode di pagamentu arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. + Definite un dissegnu di chjusura, un codice PIN o una parolla d’intesa per prutege e vostre metode di pagamentu arregistrate s’ellu ci era qualchissia chì accidissi à u vostru apparechju. Cunfigurà subitu @@ -1905,10 +1920,10 @@ Spalancate u vostru apparechju - Spalancate per impiegà l’infurmazione di e carte bancarie arregistrate + Spalancate per impiegà l’infurmazione di e carte bancarie arregistrate - Spalancate per impiegà e metode di pagamentu arregistrate + Spalancate per impiegà e metode di pagamentu arregistrate Aghjunghje un indirizzu @@ -1916,11 +1931,13 @@ Urganizà l’indirizzi - Nome + Nome - Secondu nome + Secondu nome - Casata + Casata + + Nome cumpletu Indirizzu pustale @@ -1945,9 +1962,9 @@ Squassà l’indirizzu - Vulete veramente squassà st’indirizzu ? + Vulete veramente squassà st’indirizzu ? - Squassà st’indirizzu ? + Squassà st’indirizzu ? Squassà @@ -2046,49 +2063,49 @@ Mudificà - Vulete veramente squassà st’identificazione di cunnessione ? + Vulete veramente squassà st’identificazione di cunnessione ? - Vulete veramente squassà sta parolla d’intesa ? + Vulete veramente squassà sta parolla d’intesa ? Squassà Abbandunà - Ozzioni di l’identificazione + Ozzioni di l’identificazione - Ozzioni di parolla d’intesa + Ozzioni di parolla d’intesa - U campu di testu mudifichevule per l’indirizzu web di l’identificazione. + U campu di testu mudifichevule per l’indirizzu web di l’identificazione. - U campu di testu mudifichevule per l’indirizzu di u situ web. + U campu di testu mudifichevule per l’indirizzu di u situ web. - U campu di testu mudifichevule per u nome d’utilizatore di l’identificazione. + U campu di testu mudifichevule per u nome d’utilizatore di l’identificazione. - U campu di testu mudifichevule per u nome d’utilizatore. + U campu di testu mudifichevule per u nome d’utilizatore. - U campu di testu mudifichevule per a parolla d’intesa di l’identificazione. + U campu di testu mudifichevule per a parolla d’intesa di l’identificazione. - U campu di testu mudifichevule per a parolla d’intesa. + U campu di testu mudifichevule per a parolla d’intesa. - Arregistrà i cambiamenti di l’identificazione. + Arregistrà i cambiamenti di l’identificazione. - Arregistrà i cambiamenti. + Arregistrà i cambiamenti. - Mudificà + Mudificà - Mudificà a parolla d’intesa + Mudificà a parolla d’intesa - Aghjunghje una nova identificazione di cunnessione + Aghjunghje una nova identificazione di cunnessione - Aghjunghje una parolla d’intesa + Aghjunghje una parolla d’intesa - Parolla d’intesa richiesta + Parolla d’intesa richiesta - Stampittate una parolla d’intesa + Stampittate una parolla d’intesa - U nome d’utilizatore hè richiestu + U nome d’utilizatore hè richiestu - Stampittate un nome d’utilizatore + Stampittate un nome d’utilizatore U nome d’ospite hè richiestu @@ -2113,15 +2130,15 @@ Cunnittite un altru apparechju. Ci vole à autenticassi torna. - + Ci vole à attivà a sincrunizazione di l’unghjette. - Ùn avete alcuna unghjetta aperta in Firefox nant’à i vostri altri apparechji. + Ùn avete alcuna unghjetta aperta in LeOSium nant’à i vostri altri apparechji. - + Affissate a lista di l’unghjette di i vostri altri apparechji. - + Cunnettesi per sincrunizà @@ -2174,7 +2191,7 @@ Chjusura autumatica dopu un mese ? - Firefox pò chjode l’unghjette chì vo ùn avete micca fighjate durante un mese scorsu. + LeOSium pò chjode l’unghjette chì vo ùn avete micca fighjate durante un mese scorsu. ATTIVÀ A CHJUSURA AUTUMATICA @@ -2182,8 +2199,8 @@ Chjusura autumatica attivata - - Firefox suggerisce + + LeOSium suggerisce Ricerca Google @@ -2194,7 +2211,7 @@ Cambià di navigatore predefinitu - Definisce chì i liami di i siti web, i currieri elettronichi è i messaghji s’aprinu autumaticamente in Firefox. + Definisce chì i liami di i siti web, i currieri elettronichi è i messaghji s’aprinu autumaticamente in LeOSium. Caccià @@ -2203,7 +2220,7 @@ Cliccu per sapene di più - Navigà insù + Navigà insù Chjode @@ -2218,7 +2235,7 @@ Funziuneghja grazia à %s. - Parte di a famiglia Firefox. %s + Parte di a famiglia LeOSium. %s Sapene di più @@ -2245,8 +2262,6 @@ Valutazione rettificata - Avisi micca degni di cunfidenza cacciati - Nant’à a basa d’avisi degni di cunfidenza Messe in lume da l’avisi recente @@ -2308,10 +2323,6 @@ S’è vo fighjate chì stu pruduttu hè torna dispunibule, fatecilu sapè è cuntinueremu à cuntrollà l’avisi. Signalà chì u pruduttu hè dispunibule - - Cuntrollà a qualità di l’avisi - - Cuntrollà a qualità di l’avisi Cuntrollu di a qualità di l’avisi (%s) @@ -2348,22 +2359,28 @@ Cuntrollà a qualità di l’avisi Pruvate a nostra guida di cunfidenza nant’à l’avisi di prudutti - + Fighjate quantu sò degni di cunfidenza l‘avisi di prudutti nant’à %1$s prima di cumprà. U verificadore d’avisu, una funzione esperimentale da %2$s, hè integratu direttamente in u navigatore. Funziuneghja ancu nant’à %3$s è %4$s. - + Fighjate quantu sò degni di cunfidenza l‘avisi di prudutti nant’à %1$s prima di cumprà. U verificadore d’avisu, una funzione esperimentale da %2$s, hè integratu direttamente in u navigatore. Impieghendu a tecnolugia di %1$s da Mozilla, vi aiutemu à rispinghje l’avisi partigiani è falsi. U nostru mudellu d’intelligenza artificiale hè amendatu cuntinuatamente per prutegevi quandu vo cumprate. %2$s Sapene di più - A selezzione di « Sì, pruvallu » vole dì chì vo site d.accunsenti cù %2$s è %3$s di %1$s da Mozilla. + A selezzione di « Sì, pruvallu » vole dì chì vo site d.accunsenti cù %2$s è %3$s di %1$s da Mozilla. A selezzione di « Sì, pruvallu » vole dì chì vo accettate quell’elementi di %1$s : + + A selezzione di « Sì, pruvallu » vole dì chì vo site d’accunsenti cù a %2$s di %1$s è a %4$s di %3$s. + + A selezzione di « Sì, pruvallu » vole dì chì vo site d’accunsenti cù a %2$s di %1$s è a %4$s di %3$s. - pulitica di cunfidenzialità + pulitica di cunfidenzialità Pulitica di cunfidenzialità + + dichjarazione di cunfidenzialità cundizioni d’utilizazione @@ -2421,7 +2438,7 @@ apre u liame per sapene di più nant’à sta cullezzione leghje l’articulu - + apre u liame per sapene di più %s, Titulu @@ -2436,12 +2453,16 @@ Traduce sta pagina ? + + Pagina tradutta in %2$s, l’origine hè in %1$s Pruvà e traduzzioni private di %1$s Per rispettà a vostra vita privata, e traduzzioni ùn escenu mai da u vostru apparechju. Lingue nove è altri amendamenti seranu dispunibule prestu ! %1$s - + Sapene di più Traduce da @@ -2449,6 +2470,8 @@ Traduce versu Micca subitu + + Affissà a pagina d’origine Compiu @@ -2471,6 +2494,16 @@ Sapene di più + + + Traduzzione… + + Scaricà a lingua in modu di risparmiu di dati (%1$s) ? + + Ozzioni di traduzzione diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index c350b499..cf52702b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -57,7 +57,7 @@ Odebrat - Autorem aplikace %1$s je Mozilla. + Autorem aplikace %1$s je harvey186. Když zavřete všechna anonymní panely, %1$s odstraní vaše soubory cookie, historii a data stránek. %2$s Při přecházení mezi zařízeními buďte šifrovaní - Když jste přihlášeni a synchronizujete, jste ve větším bezpečí. Firefox šifruje vaše hesla, záložky a další data. + Note: The word "LeOSium" should NOT be translated --> + Když jste přihlášeni a synchronizujete, jste ve větším bezpečí. LeOSium šifruje vaše hesla, záložky a další data. Přihlásit se Teď ne - Oznámení vám pomáhají zůstat s Firefoxem ve větším bezpečí + Note: The word "LeOSium" should NOT be translated --> + Oznámení vám pomáhají zůstat s LeOSiumem ve větším bezpečí - Posílejte si panely mezi svými zařízeními bezpečně a objevte další funkce Firefoxu pro ochranu soukromí. + Note: The word "LeOSium" should NOT be translated --> + Posílejte si panely mezi svými zařízeními bezpečně a objevte další funkce LeOSiumu pro ochranu soukromí. Zapnout oznámení Teď ne - Vyzkoušejte vyhledávací miniaplikaci Firefoxu + Note: The word "LeOSium" should NOT be translated --> + Vyzkoušejte vyhledávací miniaplikaci LeOSiumu - S prohlížečem Firefox na domovské obrazovce budete mít snadný přístup k prohlížeči, který chrání soukromí a blokuje sledování prvky stránek. + Note: The word "LeOSium" should NOT be translated --> + S prohlížečem LeOSium na domovské obrazovce budete mít snadný přístup k prohlížeči, který chrání soukromí a blokuje sledování prvky stránek. - Přidat miniaplikaci Firefox + Note: The word "LeOSium" should NOT be translated --> + Přidat miniaplikaci LeOSium Teď ne @@ -420,10 +420,10 @@ Návrhy z vyhledávačů Předvolby adresního řádku - - Adresní řádek – Návrhy Firefoxu - - Dozvědět se více o návrzích Firefoxu + + Adresní řádek – Návrhy LeOSiumu + + Dozvědět se více o návrzích LeOSiumu Ohodnotit na Google Play Automaticky doplňovat adresy URL - + Návrhy od sponzorů - Podpora aplikace %1$s občasnými sponzorovanými návrhy - Návrhy od aplikace %1$s - + Získat návrhy z webu související s vaším vyhledáváním Otevírat odkazy v aplikacích @@ -648,7 +648,7 @@ Tapetu se nepodařilo změnit Zjistit více - + Klasický %s Umělecká řada @@ -666,8 +666,8 @@ Nové doplňky jsou nyní k dispozici - - Podívejte se na více než 100 nových rozšíření, která vám umožní přizpůsobit Firefox svým představám. + + Podívejte se na více než 100 nových rozšíření, která vám umožní přizpůsobit LeOSium svým představám. Prozkoumejte doplňky @@ -734,7 +734,7 @@ Přijaté panely - Oznámení o panelech přijatých z jiných zařízení s Firefoxem. + Oznámení o panelech přijatých z jiných zařízení s LeOSiumem. Přijatý panel @@ -917,7 +917,7 @@ Odstranit Aktivní - + %1$s může čas od času instalovat a spouštět studie. Zjistit více @@ -1302,7 +1302,7 @@ Připojit další zařízení - Pro poslání panelu se prosím přihlaste účtem Firefox na dalším zařízení. + Pro poslání panelu se prosím přihlaste účtem LeOSium na dalším zařízení. Rozumím @@ -1331,10 +1331,10 @@ - Firefox je rychlý a soukromý + LeOSium je rychlý a soukromý - Nastavit Firefox jako můj výchozí prohlížeč + Nastavit LeOSium jako můj výchozí prohlížeč Vyzkoušejte anonymní prohlížení - Pomozte ním prosím zlepšit Firefox vyplněním krátkého dotazníku. + Pomozte ním prosím zlepšit LeOSium vyplněním krátkého dotazníku. Vyplnit průzkum @@ -1505,16 +1505,16 @@ Naskenovat kód - https://firefox.com/pair]]> + https://firefox.com/pair]]> Připraveno na skenování Přihlásit se pomocí fotoaparátu Použít raději e-mail - - Vytvořte si ho a synchronizujte svůj Firefox mezi zařízeními.]]> - + + Vytvořte si ho a synchronizujte svůj LeOSium mezi zařízeními.]]> + %s ukončí synchronizaci s vaším účtem, ale nesmaže z tohoto zařízení žádná vaše data. Odpojit @@ -1530,7 +1530,7 @@ Rozšířená ochrana proti sledování Nyní s funkcí úplné ochrany před cookies, dosud nejsilnější bariéry proti cross-site sledovacím prvkům. - + %s vás chrání před nejběžnějšími sledovacími prvky, které sbírají informace o tom, co děláte na internetu. Zjistit více @@ -1692,9 +1692,9 @@ Před uložením se zeptat Neukládat - + Automatické vyplňování v aplikaci %1$s - + Vyplňování a ukládání uživatelských jmen a hesel na webových stránkách v aplikaci %1$s. Automatické vyplňování v jiných aplikacích @@ -2113,13 +2113,13 @@ Proveďte prosím znovu své ověření. - + Zapněte nejdříve synchronizaci panelů. Ve vašich zařízeních nejsou otevřené žádné panely. - + Seznam panelů z ostatních zařízení. - + Přihlásit se k synchronizaci @@ -2171,7 +2171,7 @@ Chcete automaticky zavírat měsíc staré neaktivní panely? - Firefox může zavřít panely, které jste během posledního měsíce nepoužili. + LeOSium může zavřít panely, které jste během posledního měsíce nepoužili. ZAPNOUT AUTOMATICKÉ ZAVÍRÁNÍ @@ -2179,8 +2179,8 @@ Automatické zavírání povoleno - - Návrhy od Firefoxu + + Návrhy od LeOSiumu Vyhledání na Googlu @@ -2192,7 +2192,7 @@ Změňte svůj výchozí prohlížeč - Nastavte si automatické otevírání odkazů, e-mailů a zpráv ve Firefoxu. + Nastavte si automatické otevírání odkazů, e-mailů a zpráv ve LeOSiumu. Odstranit @@ -2216,7 +2216,7 @@ Službu poskytuje %s. - Součást rodiny Firefoxu. %s + Součást rodiny LeOSiumu. %s Zjistit více @@ -2339,9 +2339,9 @@ Zkontrolovat kvalitu recenzí Vyzkoušejte našeho důvěryhodného průvodce recenzemi produktů - + Před nákupem se podívejte, jak spolehlivé jsou recenze produktů na %1$s. Kontrola recenzí, experimentální funkce od %2$s, je integrována přímo do prohlížeče. Funguje také na %3$s a %4$s. - + Před nákupem se podívejte, jak spolehlivé jsou recenze produktů na %1$s. Kontrola recenzí je experimentální funkce od %2$s a je zabudována v prohlížeči. Pomocí funkce %1$s by Mozilla vám pomůžeme vyhnout se neobjektivním a neautentickým recenzím. Náš model umělé inteligence se neustále zdokonaluje, aby vás při nakupování chránil. %2$s @@ -2410,7 +2410,7 @@ otevřít odkaz a zjistit více o této sbírce přečíst článek - + otevřít odkaz pro další informace %s, nadpis @@ -2429,7 +2429,7 @@ Vyzkoušejte soukromé překlady v aplikaci %1$s V zájmu ochrany vašeho soukromí překlady nikdy neopouštějí vaše zařízení. Nové jazyky a vylepšení již brzy! %1$s - + Dozvědět se více Překlad z diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 4e94bd77..1afd6cea 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -56,7 +56,7 @@ Tynnu - Mae %1$s yn cael ei greu gan Mozilla. + Mae %1$s yn cael ei greu gan harvey186. Mae %1$s yn dileu eich cwcis, hanes, a data gwefan pan fyddwch yn cau eich holl dabiau preifat. %2$s Cyfieithu\'r dudalen + + Tudalen wedi\'i chyfieithu o\'r %1$s i\'r %2$s. + Dewi iaith @@ -328,13 +333,23 @@ - Hysbysiad preifatrwydd Firefox - + Hysbysiad preifatrwydd LeOSium + + Darllenwch ein hysbysiad preifatrwydd Rydyn ni wrth ein bodd yn eich cadw chi’n ddiogel + + Deall pam mae miliynau\'n caru LeOSium + + Pori diogel gyda mwy o ddewisiadau Mae ein porwr gan gorff dim-er-elw\'n atal cwmnïau rhag eich dilyn yn gyfrinachol o amgylch y we. + Mae mwy na 100 miliwn o bobl yn diogelu eu preifatrwydd trwy ddewis porwr sy\'n cael ei gefnogi gan gorff dim-er-elw. + + Tracwyr hysbys? Wedi\'u rwystro\'n awtomatig. Estyniadau? Rhowch gynnig ar bob un o\'r 700. PDF? Mae ein darllenydd mewnol yn eu gwneud yn hawdd i\'w rheoli. + Mae ein porwr gan gorff dim-er-elw yn helpu i atal cwmnïau rhag eich dilyn yn gyfrinachol o amgylch y we.\n\nDarllenwch ragor yn ein hysbysiad preifatrwydd. @@ -346,32 +361,32 @@ Cadwch wedi’ch amgryptio pan fyddwch chi’n symud rhwng dyfeisiau - Pan fyddwch chi wedi mewngofnodi ac wedi cydweddu, rydych chi’n fwy diogel. Mae Firefox yn amgryptio’ch cyfrineiriau, nodau tudalen a rhagor. + Note: The word "LeOSium" should NOT be translated --> + Pan fyddwch chi wedi mewngofnodi ac wedi cydweddu, rydych chi’n fwy diogel. Mae LeOSium yn amgryptio’ch cyfrineiriau, nodau tudalen a rhagor. Mewngofnodi Nid nawr - Mae hysbysiadau’n eich helpu i gadw’n fwy diogel gyda Firefox + Note: The word "LeOSium" should NOT be translated --> + Mae hysbysiadau’n eich helpu i gadw’n fwy diogel gyda LeOSium - Anfonwch dabiau’n ddiogel rhwng eich dyfeisiau a darganfyddwch nodweddion preifatrwydd eraill yn Firefox. + Note: The word "LeOSium" should NOT be translated --> + Anfonwch dabiau’n ddiogel rhwng eich dyfeisiau a darganfyddwch nodweddion preifatrwydd eraill yn LeOSium. Troi hysbysiadau ymlaen Nid nawr - Rhowch gynnig ar declyn chwilio Firefox + Note: The word "LeOSium" should NOT be translated --> + Rhowch gynnig ar declyn chwilio LeOSium - Gyda Firefox ar eich sgrin gartref, bydd gennych fynediad hawdd i’r porwr preifatrwydd yn gyntaf sy’n rhwystro tracwyr traws-safle. + Note: The word "LeOSium" should NOT be translated --> + Gyda LeOSium ar eich sgrin gartref, bydd gennych fynediad hawdd i’r porwr preifatrwydd yn gyntaf sy’n rhwystro tracwyr traws-safle. - Ychwanegu teclyn Firefox + Note: The word "LeOSium" should NOT be translated --> + Ychwanegu teclyn LeOSium Nid nawr @@ -411,10 +426,10 @@ Awgrymiadau o beiriannau chwilio Dewisiadau bar cyfeiriad - - Bar cyfeiriad - Awgrymiadau Firefox - - Darllen rhagor am Awgrymiadau Firefox + + Bar cyfeiriad - Awgrymiadau LeOSium + + Darllen rhagor am Awgrymiadau LeOSium Graddio ar Google Play Awtogwblhau URLau - + Awgrymiadau gan noddwyr - Cefnogwch %1$s gydag awgrymiadau noddedig achlysurol - Awgrymiadau gan %1$s - + Cael awgrymiadau o’r we sy’n ymwneud â’ch chwilio Agor dolenni mewn apiau @@ -643,7 +658,7 @@ Darllen rhagor - + %s clasurol Cyfres artistiaid @@ -661,8 +676,8 @@ Ychwanegion newydd ar gael nawr - - Edrychwch ar 100+ o estyniadau newydd sy’n gwneud Firefox yn dda i chi. + + Edrychwch ar 100+ o estyniadau newydd sy’n gwneud LeOSium yn dda i chi. Archwiliwch yr ychwanegion @@ -691,9 +706,9 @@ Nodau Tudalen - Mewngofnodion + Mewngofnodion - Cyfrineiriau + Cyfrineiriau Tabiau agored @@ -719,9 +734,9 @@ %1$s o %2$s %3$s - Cardiau credyd + Cardiau credyd - Dulliau talu + Dulliau talu Cyfeiriadau @@ -729,7 +744,7 @@ Tabiau derbyniwyd - Hysbysiadau am dabiau a dderbyniwyd o ddyfeisiau Firefox eraill. + Hysbysiadau am dabiau a dderbyniwyd o ddyfeisiau LeOSium eraill. Tab wedi’i Dderbyn @@ -910,7 +925,7 @@ Tynnu Gweithredol - + Gall %1$s osod a rhedeg astudiaethau o bryd i’w gilydd. Darllen rhagor @@ -1286,7 +1301,7 @@ Cysylltu dyfais arall - I anfon tab, mewngofnodwch i Firefox ar o leiaf un ddyfais arall. + I anfon tab, mewngofnodwch i LeOSium ar o leiaf un ddyfais arall. Iawn @@ -1313,10 +1328,10 @@ - Mae Firefox yn gyflym a phreifat + Mae LeOSium yn gyflym a phreifat - Gwnewch Firefox eich porwr ragosodedig + Gwnewch LeOSium eich porwr ragosodedig Rhowch gynnig ar bori preifat - Helpwch i wneud Firefox yn well drwy lanw arolwg byr. + Helpwch i wneud LeOSium yn well drwy lanw arolwg byr. Llenwch yr Arolwg @@ -1483,16 +1498,16 @@ Sganiwch y cod - https://firefox.com/pair]]> + https://firefox.com/pair]]> Yn barod i sganio Mewngofnodi gyda’ch camera Defnyddiwch e-bost yn lle hynny - - Crëwch un i gydweddu Firefox rhwng dyfeisiau.]]> - + + Crëwch un i gydweddu LeOSium rhwng dyfeisiau.]]> + Bydd %s yn peidio â chydweddu eich cyfrif ond ni fydd yn dileu eich data pori ar y ddyfais hon. Datgysylltu @@ -1508,7 +1523,7 @@ Diogelwch Uwch Rhag Tracio Nawr yn cynnwys Diogelwch Cwci Llwyr, ein rhwystr mwyaf pwerus eto yn erbyn tracwyr traws-gwefan. - + Mae %s yn eich diogelu rhag llawer o’r tracwyr mwyaf cyffredin sy’n dilyn yr hyn rydych chi’n ei wneud ar-lein. Darllen rhagor @@ -1659,20 +1674,20 @@ Gallwch ychwanegu’r wefan hon yn hawdd i sgrin Cartref eich ffôn i gael mynediad ar unwaith a phori’n gyflymach gyda phrofiad tebyg i ap. - Mewngofnodion a chyfrineiriau + Mewngofnodion a chyfrineiriau - Cyfrineiriau + Cyfrineiriau - Cadw mewngofnodion a chyfrineiriau + Cadw mewngofnodion a chyfrineiriau - Cadw cyfrineiriau + Cadw cyfrineiriau Gofyn i gadw Byth cadw - + Awtolanw yn %1$s - + Llenwi ac chadw enwau defnyddwyr a chyfrineiriau mewn gwefannau tra’n defnyddio %1$s. Awtolanw mewn apiau eraill @@ -1680,48 +1695,48 @@ Llenwi enwau defnyddwyr a chyfrineiriau mewn apiau eraill ar eich dyfais. - Ychwanegu mewngofnod + Ychwanegu mewngofnod - Ychwanegu cyfrinair + Ychwanegu cyfrinair - - Cydweddu mewngofnodion - Cydweddu cyfrineiriau + Cydweddu mewngofnodion + + Cydweddu cyfrineiriau - Cydweddu mewngofnodion ar draws dyfeisiau + Cydweddu mewngofnodion ar draws dyfeisiau - Cydweddu cyfrineiriau ar draws dyfeisiau + Cydweddu cyfrineiriau ar draws dyfeisiau - Mewngofnodion wedi’u cadw + Mewngofnodion wedi’u cadw - Cyfrineiriau wedi\'u cadw + Cyfrineiriau wedi\'u cadw - Bydd y mewngofnodi rydych yn eu cadw neu’n cydweddu i %s i’w gweld yma. + Bydd y mewngofnodi rydych yn eu cadw neu’n cydweddu i %s i’w gweld yma. - Bydd y cyfrineiriau rydych yn eu cadw neu eu cydweddu i %s yn cael eu rhestru yma. Mae\'r holl gyfrineiriau rydych chi\'n eu cadw wedi\'u hamgryptio. + Bydd y cyfrineiriau rydych yn eu cadw neu eu cydweddu i %s yn cael eu rhestru yma. Mae\'r holl gyfrineiriau rydych chi\'n eu cadw wedi\'u hamgryptio. - Dysgu rhagor am Sync. + Dysgu rhagor am Sync. - Dysgwch fwy am gydweddu + Dysgwch fwy am gydweddu Eithriadau - Bydd mewngofnodion a chyfrineiriau sydd heb eu cadw i’w gweld yma. + Bydd mewngofnodion a chyfrineiriau sydd heb eu cadw i’w gweld yma. - Fydd %s ddim yn cadw cyfrineiriau ar gyfer gwefannau sy\'n cael eu rhestru yma. + Fydd %s ddim yn cadw cyfrineiriau ar gyfer gwefannau sy\'n cael eu rhestru yma. - Ni fydd mewngofnodion a chyfrineiriau’n cael eu cadw ar gyfer y gwefannau hyn. + Ni fydd mewngofnodion a chyfrineiriau’n cael eu cadw ar gyfer y gwefannau hyn. - Fydd %s ddim yn cadw cyfrineiriau ar gyfer y gwefannau hyn. + Fydd %s ddim yn cadw cyfrineiriau ar gyfer y gwefannau hyn. Dileu pob eithriad - Chwilio mewngofnodion + Chwilio mewngofnodion - Chwilio cyfrineiriau + Chwilio cyfrineiriau Gwefan @@ -1750,17 +1765,17 @@ Cuddio cyfrinair - Datgloi i weld eich mewngofnodi wedi’u cadw + Datgloi i weld eich mewngofnodi wedi’u cadw - Datgloi i weld eich cyfrineiriau wedi\'u cadw + Datgloi i weld eich cyfrineiriau wedi\'u cadw - Diogelu mewngofnodion a chyfrineiriau + Diogelu mewngofnodion a chyfrineiriau - Diogelwch eich cyfrineiriau wedi\'u cadw + Diogelwch eich cyfrineiriau wedi\'u cadw - Creu patrwm cloi dyfais, PIN, neu gyfrinair i ddiogelu eich mewngofnodion a’ch cyfrineiriau sydd wedi’u cadw rhag i rhywun arall sydd â mynediad i’ch dyfais. + Creu patrwm cloi dyfais, PIN, neu gyfrinair i ddiogelu eich mewngofnodion a’ch cyfrineiriau sydd wedi’u cadw rhag i rhywun arall sydd â mynediad i’ch dyfais. - Gosodwch batrwm clo dyfais, PIN, neu gyfrinair i ddiogelu eich cyfrineiriau sydd wedi\'u cadw rhag i rywun arall sydd â\'ch dyfais gael mynediad iddyn nhw. + Gosodwch batrwm clo dyfais, PIN, neu gyfrinair i ddiogelu eich cyfrineiriau sydd wedi\'u cadw rhag i rywun arall sydd â\'ch dyfais gael mynediad iddyn nhw. Yn hwyrach @@ -1777,10 +1792,10 @@ Defnyddiwyd Diwethaf - Trefnu dewislen mewngofnodi + Trefnu dewislen mewngofnodi - Didoli dewislen cyfrineiriau + Didoli dewislen cyfrineiriau @@ -1788,43 +1803,43 @@ Cyfeiriadau - Cardiau credyd + Cardiau credyd - Dulliau talu + Dulliau talu - Cadw ac awtolanw cardiau + Cadw ac awtolanw cardiau - Cadw a llanw dulliau talu + Cadw a llanw dulliau talu - Mae data wedi’i amgryptio + Mae data wedi’i amgryptio - Mae %s yn amgryptio pob dull talu rydych yn ei gadw + Mae %s yn amgryptio pob dull talu rydych yn ei gadw Cydweddu cardiau ar draws dyfeisiau Cydweddu cardiau - Ychwanegu cerdyn credyd + Ychwanegu cerdyn credyd - Ychwanegu cerdyn + Ychwanegu cerdyn - Rheoli cardiau wedi’u cadw + Rheoli cardiau wedi’u cadw - Rheoli cardiau + Rheoli cardiau Ychwanegu cyfeiriad Rheoli cyfeiriadau - Cadw ac awtolanw cyfeiriadau + Cadw ac awtolanw cyfeiriadau - Cadw a llanw cyfeiriadau + Cadw a llanw cyfeiriadau - Cynhwyswch fanylion fel rhifau, cyfeiriadau e-bost a chludo + Cynhwyswch fanylion fel rhifau, cyfeiriadau e-bost a chludo - Yn cynnwys rhifau ffôn a chyfeiriadau e-bost + Yn cynnwys rhifau ffôn a chyfeiriadau e-bost Ychwanegu cerdyn @@ -1845,9 +1860,9 @@ Dileu cerdyn - Ydych chi’n siŵr eich bod am ddileu’r cerdyn credyd yma? + Ydych chi’n siŵr eich bod am ddileu’r cerdyn credyd yma? - Dileu cerdyn? + Dileu cerdyn? Dileu @@ -1861,24 +1876,24 @@ Cardiau wedi’u cadw - Rhowch rif cerdyn credyd dilys + Rhowch rif cerdyn credyd dilys - Rhoi rif cerdyn dilys + Rhoi rif cerdyn dilys - Llanwch y maes yma. + Llanwch y maes yma. - Ychwanegu enw + Ychwanegu enw Datgloi i weld y cardiau rydych wedi’u cadw - Diogelwch eich cerdyn credyd + Diogelwch eich cerdyn credyd - Diogelu eich dulliau talu sydd wedi\'u cadw + Diogelu eich dulliau talu sydd wedi\'u cadw - Gosodwch batrwm cloi dyfais, PIN, neu gyfrinair i ddiogelu eich mewngofnodion a’ch cyfrineiriau sydd wedi’u cadw rhag i rhywun arall sydd â mynediad i’ch dyfais. + Gosodwch batrwm cloi dyfais, PIN, neu gyfrinair i ddiogelu eich mewngofnodion a’ch cyfrineiriau sydd wedi’u cadw rhag i rhywun arall sydd â mynediad i’ch dyfais. - Gosodwch batrwm clo dyfais, PIN, neu gyfrinair i ddiogelu eich dulliau talu rhag i rywun arall sydd â\'ch dyfais gael mynediad iddyn nhw. + Gosodwch batrwm clo dyfais, PIN, neu gyfrinair i ddiogelu eich dulliau talu rhag i rywun arall sydd â\'ch dyfais gael mynediad iddyn nhw. Gosod nawr @@ -1887,10 +1902,10 @@ Datgloi’ch dyfais - Datglowch i ddefnyddio manylion cerdyn credyd wedi’i storio + Datglowch i ddefnyddio manylion cerdyn credyd wedi’i storio - Datgloi i ddefnyddio dulliau talu wedi\'u cadw + Datgloi i ddefnyddio dulliau talu wedi\'u cadw Ychwanegu cyfeiriad @@ -1898,11 +1913,13 @@ Rheoli cyfeiriadau - Enw Cyntaf + Enw Cyntaf - Enw Canol + Enw Canol - Enw Olaf + Enw Olaf + + Enw Cyfeiriad Stryd @@ -1927,9 +1944,9 @@ Dileu cyfeiriad - Ydych chi’n siŵr eich bod am ddileu’r cyfeiriad hwn? + Ydych chi’n siŵr eich bod am ddileu’r cyfeiriad hwn? - Dileu\'r cyfeiriad hwn? + Dileu\'r cyfeiriad hwn? Dileu @@ -2027,49 +2044,49 @@ Golygu - Ydych chi’n siŵr eich bod eisiau dileu’r mewngofnod? + Ydych chi’n siŵr eich bod eisiau dileu’r mewngofnod? - Ydych chi\'n siŵr eich bod am ddileu\'r cyfrinair hwn? + Ydych chi\'n siŵr eich bod am ddileu\'r cyfrinair hwn? Dileu Diddymu - Dewisiadau mewngofnodi + Dewisiadau mewngofnodi - Dewisiadau cyfrineiriau + Dewisiadau cyfrineiriau - Maes testun golygadwy cyfeiriad gwe’r mewngofnodi. + Maes testun golygadwy cyfeiriad gwe’r mewngofnodi. - Maes testun golygadwy y wefan. + Maes testun golygadwy y wefan. - Maes testun golygadwy enw defnyddiwr y mewngofnodi. + Maes testun golygadwy enw defnyddiwr y mewngofnodi. - Maes testun golygadwy yr enw defnyddiwr. + Maes testun golygadwy yr enw defnyddiwr. - Maes testun golygadwy cyfrinair y mewngofnodi. + Maes testun golygadwy cyfrinair y mewngofnodi. - Maes testun golygadwy y cyfrinair. + Maes testun golygadwy y cyfrinair. - Cadw newidiadau i’r mewngofnodi. + Cadw newidiadau i’r mewngofnodi. - Cadw newidiadau. + Cadw newidiadau. - Golygu + Golygu - Golygu cyfrinair + Golygu cyfrinair - Ychwanegu mewngofnod newydd + Ychwanegu mewngofnod newydd - Ychwanegu cyfrinair + Ychwanegu cyfrinair - Mae angen cyfrinair + Mae angen cyfrinair - Rhowch gyfrinair + Rhowch gyfrinair - Mae angen enw defnyddiwr + Mae angen enw defnyddiwr - Rhoi enw defnyddiwr + Rhoi enw defnyddiwr Mae angen enw gwesteiwr @@ -2094,14 +2111,14 @@ Cysylltu dyfais arall Ail-ddilyswch, os gwelwch yn dda. - + Galluogwch gydweddu tabiau. - Nid oes gennych unrhyw dabiau ar agor yn Firefox ar eich dyfeisiau eraill. - + Nid oes gennych unrhyw dabiau ar agor yn LeOSium ar eich dyfeisiau eraill. + Gweld rhestr o dabiau o’ch dyfeisiau eraill. - + Mewngofnodi i gydweddu @@ -2153,7 +2170,7 @@ Autogau ar ôl mis? - Gall Firefox gau tabiau nad ydych wedi edrych arnyn nhw dros y mis diwethaf. + Gall LeOSium gau tabiau nad ydych wedi edrych arnyn nhw dros y mis diwethaf. TROI AWTOGAU YMLAEN @@ -2161,8 +2178,8 @@ Autogau wedi’i alluogi - - Awgrymiadau Firefox + + Awgrymiadau LeOSium Google Search @@ -2173,7 +2190,7 @@ Newidiwch eich porwr rhagosodedig - Gosod dolenni o wefannau, e-byst, a negeseuon i agor yn awtomatig yn Firefox. + Gosod dolenni o wefannau, e-byst, a negeseuon i agor yn awtomatig yn LeOSium. Tynnu @@ -2182,7 +2199,7 @@ Cliciwch am ragor o fanylion - Llywio i fyny + Llywio i fyny Cau @@ -2197,7 +2214,7 @@ Wedi’i bweru gan %s. - Rhan o deulu Firefox. %s + Rhan o deulu LeOSium. %s Darllen rhagor @@ -2223,8 +2240,6 @@ Gradd wedi’i haddasu - Dilëwyd yr adolygiadau annibynadwy - Ar sail adolygiadau dibynadwy Uchafbwyntiau o adolygiadau diweddar @@ -2280,10 +2295,6 @@ Os ydych yn gweld fod y cynnyrch hwn nôl mewn stoc, rhowch wybod i ni ac fe wnawn ni ddiweddaru’r dadansoddiad. Adrodd fod cynnyrch mewn stoc - - Yn gwirio ansawdd adolygiadau - - Yn gwirio ansawdd adolygiadau Yn gwirio ansawdd adolygiadau (%s) @@ -2320,22 +2331,28 @@ Gwirio ansawdd yr adolygiad Rhowch gynnig ar ein canllaw dibynadwy i adolygiadau cynnyrch - + Gweld pa mor ddibynadwy yw adolygiadau cynnyrch ar %1$s cyn i chi brynu. Mae gwirydd adolygiadau, nodwedd arbrofol gan %2$s, wedi’i gynnwys yn y porwr. Mae’n gweithio ar %3$s a %4$s hefyd. - + Gweld pa mor ddibynadwy yw adolygiadau cynnyrch ar %1$s cyn i chi brynu. Mae\'r Gwirydd Adolygiadau, nodwedd arbrofol gan %2$s, wedi\'i gynnwys yn y porwr. Gan ddefnyddio pŵer %1$s gan Mozilla, rydym yn eich helpu i osgoi adolygiadau rhagfarnllyd ac annilys. Mae ein model AI bob amser yn gwella i’ch diogelu wrth i chi siopa. %2$s Dysgu rhagor - Trwy ddewis “Iawn, rhoi cynnig arno” rydych yn cytuno i %2$s a %3$s %1$s gan Mozilla. + Trwy ddewis “Iawn, rhoi cynnig arno” rydych yn cytuno i %2$s a %3$s %1$s gan Mozilla. Wrth ddewis “Iawn, rhowch gynnig arni” rydych yn cytuno i’r canlynol o %1$s: + + Drwy ddewis “Iawn, rhoi cynnig arni” rydych yn cytuno i %2$s %1$s a %3$s %4$s. + + Drwy ddewis “Iawn, rhoi cynnig arni” rydych yn cytuno i %1$s %2$s a %3$s %4$s. - polisi preifatrwydd + polisi preifatrwydd Polisi preifatrwydd + + hysbysiad preifatrwydd telerau defnydd @@ -2391,7 +2408,7 @@ agorwch y ddolen i ddysgu rhagor am y casgliad hwn darllen yr erthygl - + agor dolen i wybod rhagor %s, Pennyn @@ -2406,11 +2423,15 @@ Cyfieithu\'r dudalen? + + Tudalen wedi\'i chyfieithu o\'r %1$s i\'r %2$s Rhowch gynnig ar gyfieithu preifat yn %1$s Er eich preifatrwydd, nid yw cyfieithiadau byth yn gadael eich dyfais. Ieithoedd newydd a gwelliannau yn dod yn fuan! %1$s - + Darllen rhagor Cyfieithu o\'r @@ -2418,6 +2439,8 @@ Cyfieithu i\'r Nid nawr + + Dangos y gwreiddiol Gorffen @@ -2441,6 +2464,16 @@ Darllen rhagor + + Wrthi\'n cyfieithu… + + + Llwytho i lawr iaith yn y modd cadw data (%1$s)? + + Dewisiadau Cyfieithu diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 7cb875e6..96da6684 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -57,7 +57,7 @@ Fjern - %1$s er lavet af Mozilla. + %1$s er lavet af harvey186. %1$s sletter din historik samt dine cookies og websteds-data, når du lukker alle dine private faneblade. %2$s Oversæt side + + Side oversat fra %1$s til %2$s. + Valgt sprog @@ -330,13 +335,23 @@ - Privatlivserklæring for Firefox - + Privatlivserklæring for LeOSium + + Læs mere i vores privatlivserklæring Vi elsker at holde dig sikker + + Find ud af, hvorfor millioner elsker LeOSium + + Sikker browsing med flere valgmuligheder Vores browser er støttet af en nonprofit-organisation og forhindrer virksomheder i at følge dig rundt på nettet i det skjulte. + Mere end 100 millioner mennesker beskytter deres privatliv ved at vælge en browser, der er støttet af en nonprofit-organisation. + + Kendte sporings-mekanismer? Blokeret automatisk. Udvidelser? Prøv alle 700. PDF-filer? Vores indbyggede læser gør det nemt at håndtere dem. + Vores non-profit-støttede browser hjælper med at forhindre virksomheder i at følge dig rundt på nettet i hemmelighed.\n\nLæs mere i vores privatlivserklæring. @@ -348,32 +363,32 @@ Krypter dine data, når du skifter mellem enheder - Du er mere sikker, når du er logget ind og har synkroniseret dine data. Firefox krypterer dine adgangskoder, bogmærker med mere. + Note: The word "LeOSium" should NOT be translated --> + Du er mere sikker, når du er logget ind og har synkroniseret dine data. LeOSium krypterer dine adgangskoder, bogmærker med mere. Log ind Ikke nu - Meddelelser gør dig mere sikker, når du bruger Firefox + Note: The word "LeOSium" should NOT be translated --> + Meddelelser gør dig mere sikker, når du bruger LeOSium - Send sikkert faneblade mellem dine enheder, og opdag andre privatlivsfunktioner i Firefox. + Note: The word "LeOSium" should NOT be translated --> + Send sikkert faneblade mellem dine enheder, og opdag andre privatlivsfunktioner i LeOSium. Slå meddelelser til Ikke nu - Prøv Firefox\' søge-widget + Note: The word "LeOSium" should NOT be translated --> + Prøv LeOSium\' søge-widget - Med Firefox på din startskærm har du nem adgang til browseren, der er fokuseret på at beskytte dit privatliv og blokerer forsøg på at spore dig på tværs af websteder. + Note: The word "LeOSium" should NOT be translated --> + Med LeOSium på din startskærm har du nem adgang til browseren, der er fokuseret på at beskytte dit privatliv og blokerer forsøg på at spore dig på tværs af websteder. - Tilføj Firefox-widget + Note: The word "LeOSium" should NOT be translated --> + Tilføj LeOSium-widget Ikke nu @@ -413,10 +428,10 @@ Forslag fra søgetjenester Indstillinger for adressefelt - - Adressefelt - Firefox-forslag - - Læs mere om Firefox-forslag + + Adressefelt - LeOSium-forslag + + Læs mere om LeOSium-forslag Bedøm på Google Play Autofuldfør adresser - + Forslag fra sponsorer - Støt %1$s med lejlighedsvise sponsorerede forslag - Forslag fra %1$s - + Få forslag fra nettet relateret til din søgning Åbn links i apps @@ -642,7 +657,7 @@ Læs mere - + Klassisk %s Kunstnerserie @@ -660,8 +675,8 @@ Nye tilføjelser tilgængelige nu - - Se mere end 100 nye udvidelser, der giver dig mulighed for at tilpasse Firefox. + + Se mere end 100 nye udvidelser, der giver dig mulighed for at tilpasse LeOSium. Udforsk tilføjelser @@ -689,9 +704,9 @@ Bogmærker - Logins + Logins - Adgangskoder + Adgangskoder Åbne faneblade @@ -717,9 +732,9 @@ %1$s på %2$s %3$s - Betalingskort + Betalingskort - Betalingsmetoder + Betalingsmetoder Adresser @@ -727,7 +742,7 @@ Modtagne faneblade - Meddelelser for faneblade modtaget fra andre Firefox-enheder. + Meddelelser for faneblade modtaget fra andre LeOSium-enheder. Modtaget faneblad @@ -908,7 +923,7 @@ Fjern Aktive - + %1$s kan installere og afvikle undersøgelser fra tid til anden. Læs mere @@ -1280,7 +1295,7 @@ Opret forbindelse til en ny enhed - Log ind på Firefox på mindst én anden enhed for at sende et faneblad. + Log ind på LeOSium på mindst én anden enhed for at sende et faneblad. Forstået @@ -1308,10 +1323,10 @@ - Firefox er hurtig og privat + LeOSium er hurtig og privat - Gør Firefox til din standard-browser + Gør LeOSium til din standard-browser Prøv privat browsing - Hjælp med at gøre Firefox bedre ved at deltage i en kort undersøgelse. + Hjælp med at gøre LeOSium bedre ved at deltage i en kort undersøgelse. Deltag i undersøgelsen @@ -1478,16 +1493,16 @@ Skan koden - https://firefox.com/pair]]> + https://firefox.com/pair]]> Klar til at skanne Log in med dit kamera Brug mail i stedet - - Opret en for at synkronisere Firefox mellem enheder.]]> - + + Opret en for at synkronisere LeOSium mellem enheder.]]> + %s vil ikke længere synkronisere med din konto, men sletter ikke dine data på denne enhed. Afbryd forbindelse @@ -1503,7 +1518,7 @@ Udvidet beskyttelse mod sporing Nu med Komplet Cookiebeskyttelse, vores hidtil stærkeste barriere mod sporing på tværs af websteder. - + %s beskytter dig mod mange af de mest almindelige sporings-teknologier, der følger med i, hvad du laver på nettet. Læs mere @@ -1654,20 +1669,20 @@ Du kan nemt føje dette websted til din enheds startskærm for at have hurtig adgang til det og browse hurtigere med en app-lignende oplevelse. - Logins og adgangskoder + Logins og adgangskoder - Adgangskoder + Adgangskoder - Gem logins og adgangskoder + Gem logins og adgangskoder - Gem adgangskoder + Gem adgangskoder Bed om at gemme Gem aldrig - + Autofyld i %1$s - + Udfyld og gem brugernavne og adgangskoder på websteder, når du bruger %1$s. Autofyld i andre apps @@ -1675,48 +1690,48 @@ Udfyld brugernavne og adgangskoder i andre apps på din enhed. - Tilføj login + Tilføj login - Tilføj adgangskode + Tilføj adgangskode - - Synkroniser logins - Synkroniser adgangskoder + Synkroniser logins + + Synkroniser adgangskoder - Synkroniser logins på tværs af enheder + Synkroniser logins på tværs af enheder - Synkroniser adgangskoder på tværs af enheder + Synkroniser adgangskoder på tværs af enheder - Gemte logins + Gemte logins - Gemte adgangskoder + Gemte adgangskoder - De logins, du gemmer eller synkroniserer til %s, vises her. + De logins, du gemmer eller synkroniserer til %s, vises her. - Adgangskoderne, du gemmer i eller synkroniserer med %s vil blive vist her. Alle dine gemte adgangskoder bliver krypteret. + Adgangskoderne, du gemmer i eller synkroniserer med %s vil blive vist her. Alle dine gemte adgangskoder bliver krypteret. - Læs mere om Sync. + Læs mere om Sync. - Læs mere om synkronisering + Læs mere om synkronisering Undtagelser - Logins og adgangskoder, der ikke er gemt, vises her. + Logins og adgangskoder, der ikke er gemt, vises her. - %s gemmer ikke adgangskoder til websteder vist her. + %s gemmer ikke adgangskoder til websteder vist her. - Logins og adgangskoder vil ikke blive gemt for disse websteder. + Logins og adgangskoder vil ikke blive gemt for disse websteder. - %s gemmer ikke adgangskoder til disse websteder. + %s gemmer ikke adgangskoder til disse websteder. Slet alle undtagelser - Søg efter logins + Søg efter logins - Søg efter adgangskoder + Søg efter adgangskoder Websted @@ -1744,17 +1759,17 @@ Skjul adgangskode - Lås op for at se dine gemte logins + Lås op for at se dine gemte logins - Lås op for at se dine gemte adgangskoder + Lås op for at se dine gemte adgangskoder - Gør dine logins og adgangskoder sikre + Gør dine logins og adgangskoder sikre - Gør dine gemte adgangskoder sikre + Gør dine gemte adgangskoder sikre - Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte logins og adgangskoder, hvis de har adgang til din enhed. + Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte logins og adgangskoder, hvis de har adgang til din enhed. - Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte adgangskoder, hvis de har adgang til din enhed. + Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte adgangskoder, hvis de har adgang til din enhed. Senere @@ -1772,10 +1787,10 @@ Senest brugt - Sortér menuen logins + Sortér menuen logins - Menuen sorter adgangskoder + Menuen sorter adgangskoder @@ -1783,42 +1798,42 @@ Adresser - Betalingskort + Betalingskort - Betalingsmetoder + Betalingsmetoder - Gem og autofyld betalingskort + Gem og autofyld betalingskort - Gem og udfyld betalingsmetoder + Gem og udfyld betalingsmetoder - Data er krypteret + Data er krypteret - %s krypterer alle betalingsmetoder, du gemmer + %s krypterer alle betalingsmetoder, du gemmer Synkroniser kort på tværs af enheder Synkroniser kort - Tilføj betalingskort + Tilføj betalingskort - Tilføj kort + Tilføj kort - Håndter gemte kort + Håndter gemte kort - Håndter kort + Håndter kort Tilføj adresse Håndter adresser - Gem og autofyld adresser + Gem og autofyld adresser - Gem og udfyld adresser + Gem og udfyld adresser - Inkluderer oplysninger såsom telefonnumre, mail- og forsendelsesadresser + Inkluderer oplysninger såsom telefonnumre, mail- og forsendelsesadresser - Inkluderer telefonnumre og mailadresser + Inkluderer telefonnumre og mailadresser Tilføj kort @@ -1839,9 +1854,9 @@ Slet kort - Er du sikker på, at du vil slette dette betalingskort? + Er du sikker på, at du vil slette dette betalingskort? - Slet kort? + Slet kort? Slet @@ -1855,24 +1870,24 @@ Gemte kort - Indtast et gyldigt betalingskortnummer + Indtast et gyldigt betalingskortnummer - Indtast et gyldigt kortnummer + Indtast et gyldigt kortnummer - Udfyld dette felt + Udfyld dette felt - Tilføj navn + Tilføj navn Lås op for at se dine gemte betalingskort - Beskyt dine betalingskort + Beskyt dine betalingskort - Gør dine gemte betalingsmetoder sikre + Gør dine gemte betalingsmetoder sikre - Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte betalingskort, hvis de har adgang til din enhed. + Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte betalingskort, hvis de har adgang til din enhed. - Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte betalingsmetoder, hvis de har adgang til din enhed. + Indstil en pinkode, en adgangskode eller et låsemønster på din enhed for at forhindre, at andre mennesker får adgang til dine gemte betalingsmetoder, hvis de har adgang til din enhed. Indstil nu @@ -1880,10 +1895,10 @@ Lås din enhed op - Lås op for at anvende gemte informationer om betalingskort + Lås op for at anvende gemte informationer om betalingskort - Lås op for at bruge gemte betalingsmetoder + Lås op for at bruge gemte betalingsmetoder Tilføj adresse @@ -1891,11 +1906,13 @@ Håndter adresser - Fornavn + Fornavn - Mellemnavn + Mellemnavn - Efternavn + Efternavn + + Navn Postadresse @@ -1919,9 +1936,9 @@ Slet adresse - Er du sikker på, at du vil slette denne adresse? + Er du sikker på, at du vil slette denne adresse? - Slet denne adresse? + Slet denne adresse? Slet @@ -2020,49 +2037,49 @@ Rediger - Er du sikker på, at du vil slette dette login? + Er du sikker på, at du vil slette dette login? - Er du sikker på, at du vil slette denne adgangskode? + Er du sikker på, at du vil slette denne adgangskode? Slet Annuller - Login-indstillinger + Login-indstillinger - Adgangskode-indstillinger + Adgangskode-indstillinger - Det redigerbare tekstfelt for login’ets webadresse. + Det redigerbare tekstfelt for login’ets webadresse. - Det redigerbare tekstfelt for webadressen. + Det redigerbare tekstfelt for webadressen. - Det redigerbare tekstfelt for login’ets brugernavn. + Det redigerbare tekstfelt for login’ets brugernavn. - Det redigerbare tekstfelt for brugernavnet. + Det redigerbare tekstfelt for brugernavnet. - Det redigerbare tekstfelt for login’ets adgangskode. + Det redigerbare tekstfelt for login’ets adgangskode. - Det redigerbare tekstfelt for adgangskoden. + Det redigerbare tekstfelt for adgangskoden. - Gem ændringer til login. + Gem ændringer til login. - Gem ændringer. + Gem ændringer. - Rediger + Rediger - Rediger adgangskode + Rediger adgangskode - Tilføj nyt login + Tilføj nyt login - Tilføj adgangskode + Tilføj adgangskode - Adgangskode påkrævet + Adgangskode påkrævet - Indtast en adgangskode + Indtast en adgangskode - Brugernavn påkrævet + Brugernavn påkrævet - Indtast et brugernavn + Indtast et brugernavn Værtsnavn påkrævet @@ -2086,13 +2103,13 @@ Opret forbindelse til en ny enhed. Godkend igen. - + Aktiver synkronisering af faneblade. - Du har ikke nogen faneblade åbne i Firefox på dine andre enheder. - + Du har ikke nogen faneblade åbne i LeOSium på dine andre enheder. + Se en liste med faneblade fra dine andre enheder. - + Log ind på Sync @@ -2144,7 +2161,7 @@ Luk automatisk efter en måned? - Firefox kan lukke faneblade, du ikke har set i løbet af den seneste måned. + LeOSium kan lukke faneblade, du ikke har set i løbet af den seneste måned. SLÅ AUTOMATISK LUKNING TIL @@ -2152,8 +2169,8 @@ Automatisk lukning aktiveret - - Firefox-forslag + + LeOSium-forslag Google-søgning @@ -2164,7 +2181,7 @@ Skift din standardbrowser - Indstil links fra websteder, mails og beskeder til automatisk at blive åbnet i Firefox. + Indstil links fra websteder, mails og beskeder til automatisk at blive åbnet i LeOSium. Fjern @@ -2173,7 +2190,7 @@ Tryk for at se flere detaljer - Naviger op + Naviger op Luk @@ -2188,7 +2205,7 @@ Leveret af %s. - En del af Firefox-familien. %s + En del af LeOSium-familien. %s Læs mere @@ -2214,8 +2231,6 @@ Justeret bedømmelse - Upålidelige anmeldelser er blevet fjernet - Baseret på pålidelige anmeldelser Højdepunkter fra de seneste anmeldelser @@ -2273,10 +2288,6 @@ Hvis du lægger mærke til at produktet er på lager igen, må du gerne rapportere det. Så kan vi kontrollere anmeldelserne. Rapporter at produktet er på lager - - Kontrollerer kvaliteten af anmeldelser - - Kontrollerer kvaliteten af anmeldelser Kontrollerer kvaliteten af anmeldelser (%s) @@ -2314,22 +2325,28 @@ Prøv vores pålidelige vejledning til produktanmeldelser - + Se hvor pålidelige produktanmeldelser på %1$s er, inden du køber. Verificering af anmeldelser, en eksperimental funktion fra %2$s, er indbygget i browseren. Den virker også på %3$s og %4$s. - + Se hvor pålidelige produktanmeldelser på %1$s er, inden du køber. Verificering af anmeldelser, en eksperimental funktion fra %2$s, er indbygget i browseren. Ved hjælp af %1$s fra Mozilla gør vi det nemmere for dig undgå partiske og uægte anmeldelser. Vores kunstig intelligens-model forbedres altid for at beskytte dig, mens du handler. %2$s Læs mere - Ved at vælge "Ja, prøv det" accepterer du %1$s fra Mozillas %2$s og %3$s. + Ved at vælge “Ja, prøv det” accepterer du %1$s fra Mozillas %2$s og %3$s. - Ved at vælge "Ja, prøv det" accepterer du følgende fra %1$s: + Ved at vælge “Ja, prøv det” accepterer du følgende fra %1$s: + + Ved at vælge “Ja, prøv det” accepterer du %1$s\' %2$s og %3$ss %4$s. + + Ved at vælge “Ja, prøv det” accepterer du %1$s\' %2$s og %3$ss %4$s. - privatlivspolitik + privatlivspolitik Privatlivspolitik + + privatlivserklæring betingelser for brug @@ -2385,7 +2402,7 @@ åbne link for at læse mere om denne samling læse artiklen - + åbne link for at læse mere %s, overskrift @@ -2401,11 +2418,15 @@ Oversæt siden? + + Side oversat fra %1$s til %2$s Prøv private oversættelser i %1$s For at beskytte dit privatliv forlader oversættelserne aldrig din enhed. Nye sprog og andre forbedringer kommer snart! %1$s - + Læs mere Oversæt fra @@ -2413,6 +2434,8 @@ Oversæt til Ikke nu + + Vis oprindelig Færdig @@ -2435,6 +2458,16 @@ Læs mere + + + Oversætter… + + Hent sprog i datasparer-tilstand (%1$s)? + + Oversættelses-indstillinger diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 258875df..3567a834 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -58,7 +58,7 @@ Entfernen - %1$s wird von Mozilla hergestellt. + %1$s wird von harvey186 hergestellt. %1$s löscht Ihre Cookies, Chronik und Website-Daten, wenn Sie alle Ihre privaten Tabs schließen. %2$s Seite übersetzen + + Seite von %1$s in %2$s übersetzt. + Gewählte Sprache @@ -335,13 +340,23 @@ - Firefox-Datenschutzhinweis - + LeOSium-Datenschutzhinweis + + Weitere Informationen finden Sie in unserem Datenschutzhinweis Wir schützen Sie gerne + + Erfahren Sie, warum Millionen LeOSium lieben + + Sicheres Surfen mit mehr Auswahl Unser gemeinnütziger Browser verhindert, dass Unternehmen heimlich Ihre Aktivitäten im Internet verfolgen. + Mehr als 100 Millionen Menschen schützen ihre Privatsphäre, indem sie einen Browser wählen, der von einer gemeinnützigen Organisation unterstützt wird. + + Bekannte Elemente zur Aktivitätenverfolgung? Automatisch blockiert. Erweiterungen? Alle 700 PDFs ausprobieren? Unser eingebautes Lesezeichen macht sie einfach zu verwalten. + Unser gemeinnütziger Browser verhindert, dass Unternehmen heimlich Ihre Aktivitäten im Internet verfolgen.\n\nWeitere Informationen finden Sie in unserem Datenschutzhinweis. @@ -353,32 +368,32 @@ Verschlüsseln Sie Ihre Daten, wenn Sie geräteübergreifend arbeiten - Wenn Sie angemeldet sind und Ihre Daten synchronisieren, sind Sie sicherer. Firefox verschlüsselt Ihre Passwörter, Lesezeichen und mehr. + Note: The word "LeOSium" should NOT be translated --> + Wenn Sie angemeldet sind und Ihre Daten synchronisieren, sind Sie sicherer. LeOSium verschlüsselt Ihre Passwörter, Lesezeichen und mehr. Anmelden Nicht jetzt - Benachrichtigungen helfen Ihnen, Firefox noch sicherer zu machen + Note: The word "LeOSium" should NOT be translated --> + Benachrichtigungen helfen Ihnen, LeOSium noch sicherer zu machen - Versenden Sie Tabs sicher zwischen Ihren Geräten und entdecken Sie andere Datenschutzfunktionen in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Versenden Sie Tabs sicher zwischen Ihren Geräten und entdecken Sie andere Datenschutzfunktionen in LeOSium. Benachrichtigungen aktivieren Nicht jetzt - Probieren Sie das Firefox-Such-Widget aus + Note: The word "LeOSium" should NOT be translated --> + Probieren Sie das LeOSium-Such-Widget aus - Mit Firefox auf Ihrem Startbildschirm haben Sie einfachen Zugriff auf den Browser, für den Ihre Privatsphäre an erster Stelle steht, der seitenübergreifende Tracker blockiert. + Note: The word "LeOSium" should NOT be translated --> + Mit LeOSium auf Ihrem Startbildschirm haben Sie einfachen Zugriff auf den Browser, für den Ihre Privatsphäre an erster Stelle steht, der seitenübergreifende Tracker blockiert. - Firefox-Widget hinzufügen + Note: The word "LeOSium" should NOT be translated --> + LeOSium-Widget hinzufügen Jetzt nicht @@ -419,10 +434,10 @@ Vorschläge von Suchmaschinen Einstellungen der Adressleiste - - Adressleiste – Firefox-Vorschläge - - Weitere Infos zu Firefox-Vorschlägen + + Adressleiste – LeOSium-Vorschläge + + Weitere Infos zu LeOSium-Vorschlägen Bei Google Play bewerten Autovervollständigung von Adressen - + Vorschläge von Sponsoren - Unterstützen Sie %1$s mit gelegentlich gesponserten Vorschlägen - Vorschläge von %1$s - + Erhalten Sie Vorschläge aus dem Web, die sich auf Ihre Suche beziehen Links in Apps öffnen @@ -649,7 +664,7 @@ Weitere Informationen - + %s klassisch Künstlerserien @@ -667,8 +682,8 @@ Neue Add-ons jetzt verfügbar - - Sehen Sie sich über 100 neue Erweiterungen an, mit denen Sie Firefox an Ihre Bedürfnisse anpassen können. + + Sehen Sie sich über 100 neue Erweiterungen an, mit denen Sie LeOSium an Ihre Bedürfnisse anpassen können. Entdecken Sie weitere Add-ons @@ -697,9 +712,9 @@ Lesezeichen - Zugangsdaten + Zugangsdaten - Passwörter + Passwörter Offene Tabs @@ -725,9 +740,9 @@ %1$s auf %2$s %3$s - Kreditkarten + Kreditkarten - Zahlungsmethoden + Zahlungsmethoden Adressen @@ -735,7 +750,7 @@ Empfangene Tabs - Benachrichtigungen für Tabs, die von anderen Firefox-Geräten empfangen wurden. + Benachrichtigungen für Tabs, die von anderen LeOSium-Geräten empfangen wurden. Tab empfangen @@ -920,7 +935,7 @@ Aktiv - + %1$s darf von Zeit zu Zeit Studien installieren und durchführen. Weitere Informationen @@ -1313,7 +1328,7 @@ Weiteres Gerät verbinden - Um einen Tab zu senden, melden Sie sich auf mindestens einem anderen Gerät bei Firefox an. + Um einen Tab zu senden, melden Sie sich auf mindestens einem anderen Gerät bei LeOSium an. Verstanden @@ -1342,10 +1357,10 @@ - Firefox ist schnell und privat + LeOSium ist schnell und privat - Machen Sie Firefox zu Ihrem Standardbrowser + Machen Sie LeOSium zu Ihrem Standardbrowser Probieren Sie den Privaten Modus aus - Bitte helfen Sie dabei, Firefox zu verbessern, indem Sie an einer kurzen Umfrage teilnehmen. + Bitte helfen Sie dabei, LeOSium zu verbessern, indem Sie an einer kurzen Umfrage teilnehmen. Umfrage ausfüllen @@ -1519,16 +1534,16 @@ Code scannen - https://firefox.com/pair]]> + https://firefox.com/pair]]> Bereit zum Scannen Melden Sie sich mit Ihrer Kamera an Stattdessen E-Mail-Adresse verwenden - - Erstellen Sie eines, um Firefox zwischen Geräten zu synchronisieren.]]> - + + Erstellen Sie eines, um LeOSium zwischen Geräten zu synchronisieren.]]> + %s beendet die Synchronisation mit Ihrem Konto, löscht aber keine Surf-Daten auf diesem Gerät. Verbindung trennen @@ -1544,7 +1559,7 @@ Verbesserter Schutz vor Aktivitätenverfolgung Jetzt mit Total Cookie Protection, unserer bisher stärksten Barriere gegen website-übergreifendes Tracking. - + %s schützt Sie vor vielen der gängigsten Skripte, die Ihre Online-Aktivitäten verfolgen. Weitere Informationen @@ -1695,21 +1710,21 @@ Sie können diese Website einfach zum Startbildschirm Ihres Geräts hinzufügen, um unmittelbaren Zugriff darauf zu haben und sie wie eine App zu nutzen. - Zugangsdaten und Passwörter + Zugangsdaten und Passwörter - Passwörter + Passwörter - Zugangsdaten und Passwörter speichern + Zugangsdaten und Passwörter speichern - Passwörter speichern + Passwörter speichern Zum Speichern nachfragen Nie speichern - + Automatisches Ausfüllen in %1$s - + Benutzernamen und Passwörter auf Webseite bei Nutzung von %1$s automatisch ausfüllen. Automatisches Ausfüllen in anderen Apps @@ -1717,47 +1732,47 @@ Benutzernamen und Passwörter auf Webseite bei Nutzung von anderen Apps auf Ihrem Gerät automatisch ausfüllen. - Zugangsdaten hinzufügen + Zugangsdaten hinzufügen - Passwort hinzufügen + Passwort hinzufügen - - Zugangsdaten synchronisieren - Passwörter synchronisieren + Zugangsdaten synchronisieren + + Passwörter synchronisieren - Zugangsdaten zwischen Geräten synchronisieren + Zugangsdaten zwischen Geräten synchronisieren - Passwörter geräteübergreifend synchronisieren + Passwörter geräteübergreifend synchronisieren - Gespeicherte Zugangsdaten + Gespeicherte Zugangsdaten - Gespeicherte Passwörter + Gespeicherte Passwörter - Die Zugangsdaten, die Sie speichern oder mit %s synchronisieren, werden hier angezeigt. + Die Zugangsdaten, die Sie speichern oder mit %s synchronisieren, werden hier angezeigt. - Die Passwörter, die Sie speichern oder mit %s synchronisieren, werden hier aufgelistet. Alle gespeicherten Passwörter werden verschlüsselt. + Die Passwörter, die Sie speichern oder mit %s synchronisieren, werden hier aufgelistet. Alle gespeicherten Passwörter werden verschlüsselt. - Erfahren Sie mehr über Sync. + Erfahren Sie mehr über Sync. - Weitere Informationen über Sync + Weitere Informationen über Sync Ausnahmen - Zugangsdaten und Passwörter, die nicht gespeichert werden, werden hier angezeigt. + Zugangsdaten und Passwörter, die nicht gespeichert werden, werden hier angezeigt. - %s speichert keine Passwörter für die hier aufgeführten Websites. + %s speichert keine Passwörter für die hier aufgeführten Websites. - Zugangsdaten und Passwörter werden für diese Websites nicht gespeichert. + Zugangsdaten und Passwörter werden für diese Websites nicht gespeichert. - %s speichert keine Passwörter für diese Websites. + %s speichert keine Passwörter für diese Websites. Alle Ausnahmen löschen - Zugangsdaten durchsuchen + Zugangsdaten durchsuchen - Passwörter durchsuchen + Passwörter durchsuchen Website @@ -1785,17 +1800,17 @@ Passwort verbergen - Zum Anzeigen Ihrer gespeicherten Zugangsdaten entsperren + Zum Anzeigen Ihrer gespeicherten Zugangsdaten entsperren - Zum Anzeigen Ihrer gespeicherten Passwörter entsperren + Zum Anzeigen Ihrer gespeicherten Passwörter entsperren - Sichern Sie Ihre Zugangsdaten und Passwörter + Sichern Sie Ihre Zugangsdaten und Passwörter - Sichern Sie Ihre gespeicherten Passwörter + Sichern Sie Ihre gespeicherten Passwörter - Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Zugangsdaten und Passwörter zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. + Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Zugangsdaten und Passwörter zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. - Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Passwörter zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. + Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Passwörter zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. Später @@ -1813,10 +1828,10 @@ Zuletzt verwendet - Menü mit Zugangsdaten sortieren + Menü mit Zugangsdaten sortieren - Menü „Passwörter sortieren“ + Menü „Passwörter sortieren“ @@ -1824,43 +1839,43 @@ Adressen - Kreditkarten + Kreditkarten - Zahlungsmethoden + Zahlungsmethoden - Autovervollständigung für Kreditkartendaten + Autovervollständigung für Kreditkartendaten - Zahlungsmethoden speichern und ausfüllen + Zahlungsmethoden speichern und ausfüllen - Daten sind verschlüsselt + Daten sind verschlüsselt - %s verschlüsselt alle von Ihnen gespeicherten Zahlungsmethoden + %s verschlüsselt alle von Ihnen gespeicherten Zahlungsmethoden Karten zwischen Geräten synchronisieren Kreditkarten synchronisieren - Kreditkarte hinzufügen + Kreditkarte hinzufügen - Karte hinzufügen + Karte hinzufügen - Gespeicherte Karten verwalten + Gespeicherte Karten verwalten - Karten verwalten + Karten verwalten Adresse hinzufügen Adressen verwalten - Autovervollständigung für Adressen + Autovervollständigung für Adressen - Adressen speichern und ausfüllen + Adressen speichern und ausfüllen - Dies beinhaltetet Nummern, E-Mail- und Lieferadressen + Dies beinhaltetet Nummern, E-Mail- und Lieferadressen - Enthält Telefonnummern und E-Mail-Adressen + Enthält Telefonnummern und E-Mail-Adressen Karte hinzufügen @@ -1881,9 +1896,9 @@ Karte löschen - Soll diese Kreditkarte wirklich gelöscht werden? + Soll diese Kreditkarte wirklich gelöscht werden? - Karte löschen? + Karte löschen? Löschen @@ -1897,24 +1912,24 @@ Gespeicherte Karten - Bitte geben Sie eine gültige Kreditkartennummer ein + Bitte geben Sie eine gültige Kreditkartennummer ein - Geben Sie eine gültige Kartennummer ein + Geben Sie eine gültige Kartennummer ein - Bitte füllen Sie dieses Feld aus + Bitte füllen Sie dieses Feld aus - Fügen Sie einen Namen hinzu + Fügen Sie einen Namen hinzu Zum Anzeigen Ihrer gespeicherten Karten entsperren - Sichern Sie Ihre Kreditkarten + Sichern Sie Ihre Kreditkarten - Sichern Sie Ihre gespeicherten Zahlungsmethoden + Sichern Sie Ihre gespeicherten Zahlungsmethoden - Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Karten zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. + Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Karten zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. - Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Zahlungsmethoden zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. + Richten Sie ein Gerätesperrmuster, eine PIN oder ein Passwort ein, um zu verhindern, dass auf Ihre gespeicherten Zahlungsmethoden zugegriffen wird, wenn jemand anderes über Ihr Gerät verfügt. Jetzt einrichten @@ -1923,10 +1938,10 @@ Entsperren Sie Ihr Gerät - Entsperren, um gespeicherte Kreditkartendaten zu verwenden + Entsperren, um gespeicherte Kreditkartendaten zu verwenden - Zum Verwenden Ihrer gespeicherten Zahlungsmethoden entsperren + Zum Verwenden Ihrer gespeicherten Zahlungsmethoden entsperren Adresse hinzufügen @@ -1934,11 +1949,13 @@ Adressen verwalten - Vorname + Vorname - Zweiter Vorname + Zweiter Vorname - Nachname + Nachname + + Name Straße und Hausnummer @@ -1963,9 +1980,9 @@ Adresse löschen - Soll diese Adresse wirklich gelöscht werden? + Soll diese Adresse wirklich gelöscht werden? - Diese Adresse löschen? + Diese Adresse löschen? Löschen @@ -2063,49 +2080,49 @@ Bearbeiten - Sollen diese Zugangsdaten wirklich gelöscht werden? + Sollen diese Zugangsdaten wirklich gelöscht werden? - Soll dieses Passwort wirklich gelöscht werden? + Soll dieses Passwort wirklich gelöscht werden? Löschen Abbrechen - Optionen für Zugangsdaten + Optionen für Zugangsdaten - Passwort-Optionen + Passwort-Optionen - Das bearbeitbare Textfeld für die Internetadresse der Zugangsdaten. + Das bearbeitbare Textfeld für die Internetadresse der Zugangsdaten. - Das bearbeitbare Textfeld für die Adresse der Website. + Das bearbeitbare Textfeld für die Adresse der Website. - Das bearbeitbare Textfeld für den Benutzernamen der Zugangsdaten. + Das bearbeitbare Textfeld für den Benutzernamen der Zugangsdaten. - Das bearbeitbare Textfeld für den Benutzernamen. + Das bearbeitbare Textfeld für den Benutzernamen. - Das bearbeitbare Textfeld für das Passwort der Zugangsdaten. + Das bearbeitbare Textfeld für das Passwort der Zugangsdaten. - Das bearbeitbare Textfeld für das Passwort. + Das bearbeitbare Textfeld für das Passwort. - Änderungen an Zugangsdaten speichern. + Änderungen an Zugangsdaten speichern. - Änderungen speichern. + Änderungen speichern. - Bearbeiten + Bearbeiten - Passwort bearbeiten + Passwort bearbeiten - Neue Zugangsdaten hinzufügen + Neue Zugangsdaten hinzufügen - Passwort hinzufügen + Passwort hinzufügen - Passwort erforderlich + Passwort erforderlich - Passwort eingeben + Passwort eingeben - Benutzername erforderlich + Benutzername erforderlich - Benutzername eingeben + Benutzername eingeben Hostname erforderlich @@ -2130,13 +2147,13 @@ Weiteres Gerät verbinden. Bitte erneut authentifizieren. - + Bitte aktivieren Sie die Tab-Synchronisierung. - Sie haben keine offenen Tabs in Firefox auf Ihren anderen Geräten. - + Sie haben keine offenen Tabs in LeOSium auf Ihren anderen Geräten. + Zeigt eine Liste der Tabs von Ihren anderen Geräten an. - + Zum Synchronisieren anmelden @@ -2188,7 +2205,7 @@ Nach einem Monat automatisch schließen? - Firefox kann Tabs schließen, die Sie im letzten Monat nicht angesehen haben. + LeOSium kann Tabs schließen, die Sie im letzten Monat nicht angesehen haben. AUTOMATISCHES SCHLIESSEN AKTIVIEREN @@ -2196,8 +2213,8 @@ Automatisches Schließen aktiviert - - Firefox-Vorschläge + + LeOSium-Vorschläge Google-Suche @@ -2208,7 +2225,7 @@ Wechseln Sie Ihren Standardbrowser - Stellen Sie Links von Websites, E-Mails und Nachrichten so ein, dass sie in Firefox automatisch geöffnet werden. + Stellen Sie Links von Websites, E-Mails und Nachrichten so ein, dass sie in LeOSium automatisch geöffnet werden. Entfernen @@ -2217,7 +2234,7 @@ Klicken Sie hier für weitere Details - Nach oben navigieren + Nach oben navigieren Schließen @@ -2232,7 +2249,7 @@ Unterstützt durch %s. - Teil der Firefox-Familie. %s + Teil der LeOSium-Familie. %s Weitere Informationen @@ -2258,8 +2275,6 @@ Bewertungen angepasst - Unzuverlässige Bewertungen entfernt - Basierend auf zuverlässigen Bewertungen Highlights aus aktuellen Bewertungen @@ -2315,10 +2330,6 @@ Wenn Sie sehen, dass dieses Produkt wieder auf Lager ist, melden Sie es und wir arbeiten an der Überprüfung der Bewertungen. Melden, dass das Produkt vorrätig ist - - Qualität der Bewertung wird überprüft - - Qualität der Bewertung wird überprüft Qualität der Bewertungen wird überprüft (%s) @@ -2355,22 +2366,28 @@ Qualität der Bewertung überprüfen Lesen Sie unseren vertrauenswürdigen Leitfaden zur Produktbewertung - + Sehen Sie sich vor dem Kauf an, wie zuverlässig Produktbewertungen auf %1$s sind. Der Rezensionsprüfer, eine experimentelle Funktion von %2$s, ist direkt in den Browser integriert. Es funktioniert auch auf %3$s und %4$s. - + Sehen Sie sich vor dem Kauf an, wie zuverlässig Produktbewertungen auf %1$s sind. Der Rezensionsprüfer, eine experimentelle Funktion von %2$s, ist direkt in den Browser integriert. Wir nutzen das Potenzial von %1$s von Mozilla, um Ihnen dabei zu helfen, voreingenommene und nicht authentische Bewertungen zu vermeiden. Unser KI-Modell wird ständig verbessert, um Sie beim Einkaufen zu schützen. %2$s Weitere Informationen - Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie der %2$s und den %3$s von %1$s zu, das von Mozilla angeboten wird. + Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie der %2$s und den %3$s von %1$s zu, das von Mozilla angeboten wird. Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie dem folgenden von %1$s zu: + + Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie dem %2$s von %1$s und dem %4$s von %3$s zu. + + Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie dem %2$s von %1$s und dem %4$s von %3$s zu. - Datenschutzerklärung + Datenschutzerklärung Datenschutzrichtlinie + + Datenschutzhinweis Nutzungsbedingungen @@ -2426,7 +2443,7 @@ Link öffnen, um mehr über diese Sammlung zu erfahren den Artikel zu lesen - + Link öffnen, um mehr zu erfahren %s, Überschrift @@ -2441,11 +2458,15 @@ Diese Seite übersetzen? + + Seite von %1$s in %2$s übersetzt Private Übersetzungen in %1$s ausprobieren Zu Sicherstellung Ihrer Privatsphäre verlassen Übersetzungen niemals Ihr Gerät. Neue Sprachen und Verbesserungen folgen bald! %1$s - + Weitere Informationen Übersetzen von @@ -2453,6 +2474,8 @@ Übersetzen auf Nicht jetzt + + Original anzeigen Fertig @@ -2475,6 +2498,16 @@ Weitere Informationen + + Wird übersetzt… + + + Sprache im Datensparmodus herunterladen (%1$s)? + + Übersetzungsoptionen diff --git a/app/src/main/res/values-dsb/strings.xml b/app/src/main/res/values-dsb/strings.xml index 87c1140a..c9107711 100644 --- a/app/src/main/res/values-dsb/strings.xml +++ b/app/src/main/res/values-dsb/strings.xml @@ -55,7 +55,7 @@ Wótwónoźeś - %1$s se pśez Mozilla zgótujo. + %1$s se pśez harvey186 zgótujo. %1$s waše cookieje, historiju a sedłowe daty wulašujo, gaž wšykne swóje priwatne rejtariki zacynjaśo. %2$s Bok pśełožyś + + Bok jo se pśełožył z rěcy %1$s do rěcy %2$s. + Wubrana rěc @@ -329,13 +334,23 @@ - Powěźeńka priwatnosći Firefox - + Powěźeńka priwatnosći LeOSium + + Zgóńśo wěcej w našej powěźeńce priwatnosći Šćitamy was rad + + Wuslěźćo, cogodla miliony luźi LeOSium lubuju + + Wěste pśeglědowanje z wěcej wuběrkami Naš za wšykne wužytny wobglědowak pśedewześam zawoborujo, wam kšajźu pó interneśe slědowaś. + Wěcej ako 100 milionow luźi šćita swóju priwatnosć, gaž wobglědowak wuběraśo, kótaryž se wót njekomercielneje organizacije pódpěra. + + Znate pśeslědowaki? Blokuju se awtomatiski. Rozšyrjenja? Wopytajśo wšykne 700. PDF? Naš zatwarjony cytak wólažcujo je zastojaś. + Naš za wšykne wužytny wobglědowak tomu zajźujo, až pśedewześa wam kšajźu pó interneśe slěduju.\n\nDalšne informacije w našej powěźeńce priwatnosći. @@ -347,33 +362,33 @@ Wóstańśo skoděrowany, gaž někotare rědy wužywaśo - Gaž sćo se pśizjawił a sćo synchronizěrował, sćo wěsćejšy. Firefox waše gronidła, cytańske znamjenja a wěcej koděrujo. + Note: The word "LeOSium" should NOT be translated --> + Gaž sćo se pśizjawił a sćo synchronizěrował, sćo wěsćejšy. LeOSium waše gronidła, cytańske znamjenja a wěcej koděrujo. Pśizjawiś Nic něnto - Powěźeńki wam pomagaju, z Firefox wěsćejšy wóstaś + Note: The word "LeOSium" should NOT be translated --> + Powěźeńki wam pomagaju, z LeOSium wěsćejšy wóstaś - Rozesćełajśo rejtariki mjazy swójimi rědami a namakajśo druge funkcije priwatnosći w Firefox. + Note: The word "LeOSium" should NOT be translated --> + Rozesćełajśo rejtariki mjazy swójimi rědami a namakajśo druge funkcije priwatnosći w LeOSium. Powěźeńki zmóžniś Nic něnto - Wopytajśo pytański asistent Firefox + Note: The word "LeOSium" should NOT be translated --> + Wopytajśo pytański asistent LeOSium - Z Firefox na swójej startowej wobrazowce maśo lažki pśistup k wobglědowakoju, za kótaryž priwatnosć jo na prědnem městnje, kótaryž sedła pśesegajuce pśeslědowaki blokěrujo. + Note: The word "LeOSium" should NOT be translated --> + Z LeOSium na swójej startowej wobrazowce maśo lažki pśistup k wobglědowakoju, za kótaryž priwatnosć jo na prědnem městnje, kótaryž sedła pśesegajuce pśeslědowaki blokěrujo. - Asistent Firefox pśidaś + Note: The word "LeOSium" should NOT be translated --> + Asistent LeOSium pśidaś Nic něnto @@ -413,10 +428,10 @@ Naraźenja wót pytnicow Nastajenja adresowego póla - - Adresowe pólo – Firefox Suggest - - Zgóńśo wěcej wó Firefox Suggest + + Adresowe pólo – LeOSium Suggest + + Zgóńśo wěcej wó LeOSium Suggest Na Google Play pógódnośiś URL awtomatiski wudopołniś - + Naraźenja wót sponsorow - Pódprějśo %1$s z pśigóźbnymi sponserowanymi naraźenjami - Naraźenja wót %1$s - + Wobstarajśo se naraźenja z weba nastupajucy wašo pytanje Wótkaze w nałoženjach wócyniś @@ -642,7 +657,7 @@ Dalšne informacije - + Klasiski %s Serija wuměłcow @@ -660,8 +675,8 @@ Nowe dodanki něnto k dispoziciji - - Wopytajśo wěcej ako 100 nowych rozšyrjenjow, z kótarymiž móžośo Firefox swójim žycenjam pśiměriś. + + Wopytajśo wěcej ako 100 nowych rozšyrjenjow, z kótarymiž móžośo LeOSium swójim žycenjam pśiměriś. Dodanki wuslěźiś @@ -689,9 +704,9 @@ Cytańske znamjenja - Pśizjawjenja + Pśizjawjenja - Gronidła + Gronidła Wócynjone rejtarki @@ -717,9 +732,9 @@ %1$s wót %2$s %3$s - Kreditowe kórty + Kreditowe kórty - Płaśeńske metody + Płaśeńske metody Adrese @@ -727,7 +742,7 @@ Dostane rejtariki - Powěźeńki za rejtariki su se dostali z drugich rědow Firefox. + Powěźeńki za rejtariki su se dostali z drugich rědow LeOSium. Dostany rejtarik @@ -910,7 +925,7 @@ Wótwónoźeś Aktiwny - + %1$s móžo wótergi studije instalěrowaś a pśewjasć. Dalšne informacije @@ -1286,7 +1301,7 @@ Z drugim rědom zwězaś - Aby rejtarik pósłał, pśizjawśo se pla Firefox na nanejmjenjej jadnom dalšnem rěźe. + Aby rejtarik pósłał, pśizjawśo se pla LeOSium na nanejmjenjej jadnom dalšnem rěźe. Som zrozměł @@ -1313,10 +1328,10 @@ - Firefox jo malsny a priwatny + LeOSium jo malsny a priwatny - Firefox k wašomu standardnemu wobglědowakej cyniś + LeOSium k wašomu standardnemu wobglědowakej cyniś Wopytajśo priwatny modus - Pšosym wobźělśo se na krotkem napšašowanju, aby pomagał, Firefox pólěpšowaś. + Pšosym wobźělśo se na krotkem napšašowanju, aby pomagał, LeOSium pólěpšowaś. Wopšašanje wupołniś @@ -1483,16 +1498,16 @@ Kod skannowaś - https://firefox.com/pair]]> + https://firefox.com/pair]]> Gótowy za skannowanje Pśizjawśo se ze swójeju kameru E-mail město togo wužywaś - - Załožćo take, aby Firefox mjazy rědami synchronizěrował.]]> - + + Załožćo take, aby LeOSium mjazy rědami synchronizěrował.]]> + %s pśestanjo z wašym kontom synchronizěrowaś, ale njewulašujo pśeglědowańske daty na toś tom rěźe. Zwisk źěliś @@ -1508,7 +1523,7 @@ Pólěpšony slědowański šćit Něnto z dospołnm šćitom pśeśiwo cookiejam, našeju nejmócnjejšeju barieru pśeśiwo sedła pśesegajucym slědowakam. - + %s was pśed wjele z nejcesćejych pśeslědowakow šćita, kótarež slěduju, což online gótujośo. Dalšne informacije @@ -1661,20 +1676,20 @@ Móžośo startowej wobrazowce swójogo rěda toś to websedło lažko pśidaś, aby direktny pśistup měł a malsnjej z dožywjenim nałoženja pśeglědował. - Pśizjawjenja a gronidła + Pśizjawjenja a gronidła - Gronidła + Gronidła - Pśizjawjenja a gronidła składowaś + Pśizjawjenja a gronidła składowaś - Gronidła składowaś + Gronidła składowaś Pśed składowanim se pšašaś Nigda njeskładowaś - + W %1$s awtomatiski wupołniś - + Wužywaŕske mjenja a gronidła na websedłach zasajźiś a składowaś, mjaztym až %1$s wužywaśo. W drugich nałoženjach awtomatiski wupołniś @@ -1682,47 +1697,47 @@ Wužywaŕske mjenja a gronidła w drugich nałoženjach na wašom rěźe zasajźiś. - Pśizjawjenje pśidaś + Pśizjawjenje pśidaś - Gronidło pśidaś + Gronidło pśidaś - - Pśizjawjenja synchronizěrowaś - Gronidła synchronizěrowaś + Pśizjawjenja synchronizěrowaś + + Gronidła synchronizěrowaś - Pśizjawjenja mjazy rědami synchronizěrowaś + Pśizjawjenja mjazy rědami synchronizěrowaś - Gronidła pśez rědy synchronizěrowaś + Gronidła pśez rědy synchronizěrowaś - Skłaźone pśizjawjenja + Skłaźone pśizjawjenja - Skłaźone gronidła + Skłaźone gronidła - Pśizjawjenja, kótarež składujośo abo z %s synchronizěrujośo, se how pokažu. + Pśizjawjenja, kótarež składujośo abo z %s synchronizěrujośo, se how pokažu. - Gronidła, kótarež składujośo abo z %s synchronizěrujośo, se how nalicyju. Wšykne gronidła, kótarež składujośo, se koděruju. + Gronidła, kótarež składujośo abo z %s synchronizěrujośo, se how nalicyju. Wšykne gronidła, kótarež składujośo, se koděruju. - Zgóńśo wěcej wó Sync. + Zgóńśo wěcej wó Sync. - Zgóńśo wěcej wó sync + Zgóńśo wěcej wó sync Wuwześa - Pśizjawjenja a gronidła, kótarež se njeskładuju, se how pokažu. + Pśizjawjenja a gronidła, kótarež se njeskładuju, se how pokažu. - %s gronidła za sedła njeskładujo, kótarež su how nalicone. + %s gronidła za sedła njeskładujo, kótarež su how nalicone. - Pśizjawjenja a gronidła se za toś te sedła njeskładuju. + Pśizjawjenja a gronidła se za toś te sedła njeskładuju. - %s gronidła za toś te sedła njeskładujo. + %s gronidła za toś te sedła njeskładujo. Wšykne wuwześa wulašowaś - Pśizjawjenja pytaś + Pśizjawjenja pytaś - Gronidła pśepytaś + Gronidła pśepytaś Sedło @@ -1751,17 +1766,17 @@ Gronidła schowaś - Za zwobraznjowanje wašych skłaźonych pśizjawjenjow wótwóriś + Za zwobraznjowanje wašych skłaźonych pśizjawjenjow wótwóriś - Za zwobraznjowanje wašych skłaźonych kreditowych gronidłow wótwóriś + Za zwobraznjowanje wašych skłaźonych kreditowych gronidłow wótwóriś - Zawěsććo swóje pśizjawjenja a gronidła + Zawěsććo swóje pśizjawjenja a gronidła - Zawěsććo swóje skłaźone gronidła + Zawěsććo swóje skłaźone gronidła - Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym pśizjawjenjam a gronidłam zajźował, jolic něchten drugi ma waš rěd. + Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym pśizjawjenjam a gronidłam zajźował, jolic něchten drugi ma waš rěd. - Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym gronidłam zajźował, jolic něchten drugi ma waš rěd. + Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym gronidłam zajźował, jolic něchten drugi ma waš rěd. Pózdźej @@ -1779,10 +1794,10 @@ Slědnem wužyśu - Meni pśizjawjeńskich datow sortěrowaś + Meni pśizjawjeńskich datow sortěrowaś - Meni „Gronidła sortěrowaś“ + Meni „Gronidła sortěrowaś“ @@ -1790,43 +1805,43 @@ Adrese - Kreditowe kórty + Kreditowe kórty - Płaśeńske metody + Płaśeńske metody - Kórty składowaś a awtomatiski wupołniś + Kórty składowaś a awtomatiski wupołniś - Płaśeńske metody składowaś a wupołniś + Płaśeńske metody składowaś a wupołniś - Daty su skoděrowane + Daty su skoděrowane - %s wšykne płaśeńske metody koděrujo, kótarež składujośo + %s wšykne płaśeńske metody koděrujo, kótarež składujośo Kórty pśez rědy synchronizěrowaś Kórty synchronizěrowaś - Kreditowu kórtu pśidaś + Kreditowu kórtu pśidaś - Kórtu pśidaś + Kórtu pśidaś - Skłaźone kórty zastojaś + Skłaźone kórty zastojaś - Kórty zastojaś + Kórty zastojaś Adresu pśidaś Adrese zastojaś - Adrese składowaś a awtomatiski wupołniś + Adrese składowaś a awtomatiski wupołniś - Adrese składowaś a wupołniś + Adrese składowaś a wupołniś - Informacije ako licby, e-mailowe a rozpósłańske adrese zapśimjeś + Informacije ako licby, e-mailowe a rozpósłańske adrese zapśimjeś - Wopśimujo telefonowe numery a e-mailowe adrese + Wopśimujo telefonowe numery a e-mailowe adrese Kórtu pśidaś @@ -1847,9 +1862,9 @@ Kórtu wulašowaś - Cośo napšawdu toś tu kreditowu kórtu lašowaś? + Cośo napšawdu toś tu kreditowu kórtu lašowaś? - Kórtu wulašowaś? + Kórtu wulašowaś? Lašowaś @@ -1863,24 +1878,24 @@ Skłaźone kórty - Pšosym zapódajśo płaśiwy numer kreditoweje kórty + Pšosym zapódajśo płaśiwy numer kreditoweje kórty - Zapódajśo płaśiwy kórtowy numer + Zapódajśo płaśiwy kórtowy numer - Pšosym wupołńśo toś to pólo + Pšosym wupołńśo toś to pólo - Pśidajśo mě + Pśidajśo mě Za zwobraznjowanje wašych skłaźonych kreditowych kórtow wótwóriś - Kreditowe kórty zawěsćiś + Kreditowe kórty zawěsćiś - Zawěsććo swóje skłaźone płaśeńske metody + Zawěsććo swóje skłaźone płaśeńske metody - Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym kreditowym kórtam zajźował, jolic něchten drugi ma waš rěd. + Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym kreditowym kórtam zajźował, jolic něchten drugi ma waš rěd. - Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym płaśeńskim metodam zajźował, jolic něchten drugi ma waš rěd. + Nastajśo rědowy zastajeński muster, PIN abo gronidło, aby pśistupoju k swójim skłaźonym płaśeńskim metodam zajźował, jolic něchten drugi ma waš rěd. Něnto konfigurěrowaś @@ -1889,10 +1904,10 @@ Wótwóŕśo swój rěd - Blokěrowanje wótpóraś, aby se skłaźone informacije kreditoweje kórty wužywali + Blokěrowanje wótpóraś, aby se skłaźone informacije kreditoweje kórty wužywali - Wótwóriś, aby wy skłaźone płaśeńske metody wužywał + Wótwóriś, aby wy skłaźone płaśeńske metody wužywał Adresu pśidaś @@ -1900,11 +1915,13 @@ Adrese zastojaś - Pśedmě + Pśedmě - Druge pśedmě + Druge pśedmě - Familijowe mě + Familijowe mě + + Adresa drogi @@ -1929,9 +1946,9 @@ Adresu lašowaś - Cośo napšawdu toś tu adresu wulašowaś? + Cośo napšawdu toś tu adresu wulašowaś? - Toś tu adresu lašowaś? + Toś tu adresu lašowaś? Lašowaś @@ -2029,49 +2046,49 @@ Wobźěłaś - Cośo napšawdu toś to pśizjawjenje lašowaś? + Cośo napšawdu toś to pśizjawjenje lašowaś? - Cośo napšawdu toś to gronidło lašowaś? + Cośo napšawdu toś to gronidło lašowaś? Lašowaś Pśetergnuś - Pśizjawjeńske nastajenja + Pśizjawjeńske nastajenja - Gronidłowe nastajenja + Gronidłowe nastajenja - Wobźěłujobne tekstowe pólo za webadresu pśizjawjenja. + Wobźěłujobne tekstowe pólo za webadresu pśizjawjenja. - Wobźěłujobne tekstowe pólo za adresu websedła. + Wobźěłujobne tekstowe pólo za adresu websedła. - Wobźěłujobne tekstowe pólo za wužywaŕske mě pśizjawjenja. + Wobźěłujobne tekstowe pólo za wužywaŕske mě pśizjawjenja. - Wobźěłujobne tekstowe pólo za wužywaŕske mě. + Wobźěłujobne tekstowe pólo za wužywaŕske mě. - Wobźěłujobne tekstowe pólo za gronidło pśizjawjenja. + Wobźěłujobne tekstowe pólo za gronidło pśizjawjenja. - Wobźěłujobne tekstowe pólo za gronidło. + Wobźěłujobne tekstowe pólo za gronidło. - Změny pśizjawjenja składowaś + Změny pśizjawjenja składowaś - Změny składowaś. + Změny składowaś. - Wobźěłaś + Wobźěłaś - Gronidło wobźěłaś + Gronidło wobźěłaś - Nowe pśizjawjenje pśidaś + Nowe pśizjawjenje pśidaś - Gronidło pśidaś + Gronidło pśidaś - Gronidło trěbne + Gronidło trěbne - Gronidło zapódaś + Gronidło zapódaś - Wužywaŕske mě trěbne. + Wužywaŕske mě trěbne. - Wužywaŕske mě zapódaś + Wužywaŕske mě zapódaś Hostmě trěbne. @@ -2096,14 +2113,14 @@ Z drugim rědom zwězaś. Pšosym awtentificěrujśo znowego. - + Pšosym zmóžniśo synchronizěrowanje rejtarikow. Njamaśo žedne wócynjone rejtariki na swójich drugich rědach. - + Woglědajśo se lisćinu rejtarikow ze swójich rědow. - + Pla Sync pśizjawiś @@ -2155,7 +2172,7 @@ Pó jadnem mjasecu awtomatiski zacyniś? - Firefox móžo rejtariki zacyniś, kótarež njejsćo se woglědał zajźony mjasec. + LeOSium móžo rejtariki zacyniś, kótarež njejsćo se woglědał zajźony mjasec. AWTOMATISKE ZACYNJANJE ZMÓŽNIŚ @@ -2163,8 +2180,8 @@ Awtomatiske zacynjanje zmóžnjone - - Naraźenja Firefox + + Naraźenja LeOSium Pytanje z Google @@ -2175,7 +2192,7 @@ Standardny wobglědowak změniś - Nastajśo wótkaze z websedłow, mejlkow a powěsćow, aby se awtomatiski we Firefox wócynili. + Nastajśo wótkaze z websedłow, mejlkow a powěsćow, aby se awtomatiski we LeOSium wócynili. Wótwónoźeś @@ -2184,7 +2201,7 @@ Klikniśo za dalšne drobnostki - Górjej + Górjej Zacyniś @@ -2199,7 +2216,7 @@ Spěchowany wót %s. - Źěl swójźby Firefox. %s + Źěl swójźby LeOSium. %s Dalšne informacije @@ -2225,8 +2242,6 @@ Pśměrjone pógódnośowanje - Njespušćobne pógódnośenja wótwónoźone - Bazěrujo na spušćobnych pógódnośenjach Wjerški z nejnowšych pógódnośenjow @@ -2283,10 +2298,6 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Jolic wiźiśo, až toś ten produkt jo zasej na skłaźe, dajśo to k wěsći a buźomy na kontrolěrowanju pógódnośenjow źěłaś. K wěsći daś, až produkt jo na skłaźe - - Kontrola kwalitu pógódnośenjow - - Kontrola kwalitu pógódnośenjow Kontrola kwalitu pógódnośenjow (%s) @@ -2324,22 +2335,28 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Kwalitu pógódnośenjow kontrolěrowaś Cytajśo naš dowěry gódny pśewodnik wó pógódnośenjach produktow - + Glědajśo, kak spušćobne pógódnośenja produktow na %1$s su, nježli až produkty kupujośo. Kontrola pógódnośenjow, eksperimentalna funkcija z %2$s, jo direktnje do wobglědowaka zatwarjona. Funkcioněrujo teke na %3$s a %4$s. - + Glědajśo, kak spušćobne pógódnośenja produktow na %1$s su, nježli až produkty kupujośo. Kontrola pógódnośenjow, eksperimentalna funkcija z %2$s, jo direktnje do wobglědowaka zatwarjona. Z pomocu potenciala %1$s wót Mozilla, pomagamy wam, se njeawtentiskich pógódnośenjow a pógódnośenjow połnych pśedsudkow wobinuś. Naš model KI se stawnje pólěpšujo, aby was šćitał, gaž nakupujośo. %2$s Dalšne informacije - Gaž „Jo, wopytaś“ wuběraśo, zwólijośo do %2$s a %3$s Mozilla za %1$s. + Gaž „Jo, wopytaś“ wuběraśo, zwólijośo do %2$s a %3$s Mozilla za %1$s. Gaž „Jo, wopytaś“ wuběraśo, zwólijośo do slědujucego wót %1$s: + + Gaž „Jo, wopytaś“ wuběraśo, zwólijośo do %2$s %1$s a %4$s %3$s + + Gaž „Jo, wopytaś“ wuběraśo, zwólijośo do %2$s %1$s a %4$s %3$s - pšawidła priwatnosći + pšawidła priwatnosći Pšawidła priwatnosći + + powěźeńka priwatnosći wužywańske wuměnjenja @@ -2395,7 +2412,7 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt wocyńśo wótkaz, aby wěcej wó toś tej zběrce zgónił nastawk cytaś - + wótkaz wócyniś, aby wy wěcej zgónił %s, nadpismo @@ -2410,11 +2427,15 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Toś ten bok pśełožowaś? + + Bok jo se pśełožył z rěcy %1$s do rěcy %2$s Priwatne pśełožki w %1$s testowaś Za wašu priwatnosć pśełožki waš rěd nigda njespušćaju. Nowe rěcy a pólěpšenja skóro pśidu! %1$s - + Dalšne informacije Žrědłowa rěc @@ -2422,6 +2443,8 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Celowa rěc Nic něnto + + Original pokazaś Dokóńcone @@ -2444,6 +2467,16 @@ To buźo jano pomagaś, kwalitu pógódnośenjow pósuźiś, nic kwalitu produkt Dalšne informacije + + Pśełožujo se… + + + Rěc w datowem žarjeńskem modusu ześěgnuś (%1$s)? + + Pśełožowańske nastajenja diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index d7ea2379..b8ef83d4 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -60,7 +60,7 @@ Αφαίρεση - Το %1$s αναπτύσσεται από τη Mozilla. + Το %1$s αναπτύσσεται από τη Harvey186. Το %1$s διαγράφει τα cookie, το ιστορικό και τα δεδομένα ιστοτόπων σας όταν κλείνετε όλες τις ιδιωτικές σας καρτέλες. %2$s Μετάφραση σελίδας + + Η σελίδα μεταφράστηκε από τα %1$s στα %2$s. + Επιλεγμένη γλώσσα @@ -337,13 +342,23 @@ - Σημείωση απορρήτου του Firefox - + Σημείωση απορρήτου του LeOSium + + Μάθετε περισσότερα στη σημείωση απορρήτου μας Μας αρέσει να σας προστατεύουμε + + Μάθετε γιατί εκατομμύρια άνθρωποι αγαπούν το LeOSium + + Ασφαλής περιήγηση με περισσότερες επιλογές Το πρόγραμμα περιήγησης του μη κερδοσκοπικού μας οργανισμού σταματά τις εταιρείες από το να σας ακολουθούν κρυφά σε όλο το διαδίκτυο. + Περισσότεροι από 100 εκατομμύρια χρήστες προστατεύουν το απόρρητό τους επιλέγοντας ένα πρόγραμμα περιήγησης που υποστηρίζεται από έναν μη κερδοσκοπικό οργανισμό. + + Γνωστοί ιχνηλάτες; Αποκλείονται αυτόματα. Επεκτάσεις; Δοκιμάστε και τις 700. PDF; Το ενσωματωμένο εργαλείο ανάγνωσης καθιστά εύκολη τη διαχείρισή τους. + Το πρόγραμμα περιήγησης του μη κερδοσκοπικού μας οργανισμού σταματά τις εταιρείες από το να σας ακολουθούν κρυφά σε όλο το διαδίκτυο.\n\nΜάθετε περισσότερα στη σημείωση απορρήτου μας. @@ -355,32 +370,32 @@ Διατηρήστε την κρυπτογράφηση κατά την εναλλαγή των συσκευών - Όταν είστε συνδεδεμένοι και συγχρονισμένοι, είστε πιο ασφαλείς. Το Firefox κρυπτογραφεί τους κωδικούς πρόσβασης, τους σελιδοδείκτες σας και πολλά άλλα. + Note: The word "LeOSium" should NOT be translated --> + Όταν είστε συνδεδεμένοι και συγχρονισμένοι, είστε πιο ασφαλείς. Το LeOSium κρυπτογραφεί τους κωδικούς πρόσβασης, τους σελιδοδείκτες σας και πολλά άλλα. Σύνδεση Όχι τώρα - Οι ειδοποιήσεις σάς βοηθούν να παραμένετε ασφαλείς με το Firefox + Note: The word "LeOSium" should NOT be translated --> + Οι ειδοποιήσεις σάς βοηθούν να παραμένετε ασφαλείς με το LeOSium - Στείλτε με ασφάλεια καρτέλες μεταξύ των συσκευών σας και ανακαλύψτε άλλες λειτουργίες απορρήτου στο Firefox. + Note: The word "LeOSium" should NOT be translated --> + Στείλτε με ασφάλεια καρτέλες μεταξύ των συσκευών σας και ανακαλύψτε άλλες λειτουργίες απορρήτου στο LeOSium. Ενεργοποίηση ειδοποιήσεων Όχι τώρα - Δοκιμή του widget αναζήτησης του Firefox + Note: The word "LeOSium" should NOT be translated --> + Δοκιμή του widget αναζήτησης του LeOSium - Με τον Firefox στην αρχική σας οθόνη, θα έχετε εύκολη πρόσβαση στο πρόγραμμα περιήγησης που εστιάζει στο απόρρητό σας, αποκλείοντας τους ιχνηλάτες μεταξύ ιστοτόπων. + Note: The word "LeOSium" should NOT be translated --> + Με τον LeOSium στην αρχική σας οθόνη, θα έχετε εύκολη πρόσβαση στο πρόγραμμα περιήγησης που εστιάζει στο απόρρητό σας, αποκλείοντας τους ιχνηλάτες μεταξύ ιστοτόπων. - Προσθήκη widget Firefox + Note: The word "LeOSium" should NOT be translated --> + Προσθήκη widget LeOSium Όχι τώρα @@ -421,10 +436,10 @@ Προτάσεις από μηχανές αναζήτησης Προτιμήσεις γραμμής διευθύνσεων - - Γραμμή διευθύνσεων - Προτάσεις Firefox - - Μάθετε περισσότερα για τις Προτάσεις Firefox + + Γραμμή διευθύνσεων - Προτάσεις LeOSium + + Μάθετε περισσότερα για τις Προτάσεις LeOSium Αξιολόγηση στο Google Play Αυτόματη συμπλήρωση URL - + Προτάσεις από χορηγούς - Υποστηρίξτε το %1$s με περιστασιακές προτάσεις χορηγών - Προτάσεις από το %1$s - + Λάβετε προτάσεις από το διαδίκτυο που σχετίζονται με την αναζήτησή σας Άνοιγμα συνδέσμων σε εφαρμογές @@ -652,7 +667,7 @@ Μάθετε περισσότερα - + Κλασικό %s @@ -671,8 +686,8 @@ Διατίθενται τώρα νέα πρόσθετα - - Δείτε 100+ νέες επεκτάσεις που σας επιτρέπουν να κάνετε το Firefox δικό σας. + + Δείτε 100+ νέες επεκτάσεις που σας επιτρέπουν να κάνετε το LeOSium δικό σας. Εξερεύνηση προσθέτων @@ -700,9 +715,9 @@ Σελιδοδείκτες - Συνδέσεις + Συνδέσεις - Κωδικοί πρόσβασης + Κωδικοί πρόσβασης Ανοικτές καρτέλες @@ -728,9 +743,9 @@ %1$s στο %2$s %3$s - Πιστωτικές κάρτες + Πιστωτικές κάρτες - Μέθοδοι πληρωμής + Μέθοδοι πληρωμής Διευθύνσεις @@ -738,7 +753,7 @@ Ληφθείσες καρτέλες - Ειδοποιήσεις για καρτέλες που λαμβάνονται από άλλες συσκευές Firefox. + Ειδοποιήσεις για καρτέλες που λαμβάνονται από άλλες συσκευές LeOSium. Ελήφθη καρτέλα @@ -921,7 +936,7 @@ Αφαίρεση Ενεργές - + Το %1$s ενδέχεται να εγκαθιστά και να εκτελεί περιστασιακά μελέτες. Μάθετε περισσότερα @@ -1297,7 +1312,7 @@ Σύνδεση άλλης συσκευής - Για να στείλετε μια καρτέλα, συνδεθείτε στο Firefox σε άλλη μία τουλάχιστον συσκευή. + Για να στείλετε μια καρτέλα, συνδεθείτε στο LeOSium σε άλλη μία τουλάχιστον συσκευή. Το κατάλαβα @@ -1326,10 +1341,10 @@ - Το Firefox είναι γρήγορο και ιδιωτικό + Το LeOSium είναι γρήγορο και ιδιωτικό - Ορισμός του Firefox ως προεπιλογής + Ορισμός του LeOSium ως προεπιλογής Δοκιμάστε την ιδιωτική περιήγηση - Συμβάλλετε στη βελτίωση του Firefox παίρνοντας μέρος σε μια σύντομη έρευνα. + Συμβάλλετε στη βελτίωση του LeOSium παίρνοντας μέρος σε μια σύντομη έρευνα. Έναρξη έρευνας @@ -1498,7 +1513,7 @@ Σάρωση κωδικού - https://firefox.com/pair]]> + https://firefox.com/pair]]> Σάρωση @@ -1506,9 +1521,9 @@ Χρήση email - - Δημιουργήστε έναν για συγχρονισμό του Firefox μεταξύ συσκευών.]]> - + + Δημιουργήστε έναν για συγχρονισμό του LeOSium μεταξύ συσκευών.]]> + Το %s θα σταματήσει να συγχρονίζεται με τον λογαριασμό σας, αλλά δεν θα διαγράψει τα δεδομένα περιήγησης από αυτήν τη συσκευή. Αποσύνδεση @@ -1525,7 +1540,7 @@ Ενισχυμένη προστασία από καταγραφή Τώρα με Ολική προστασία cookie, η πιο ισχυρή μας φύλαξη ενάντια στους ιχνηλάτες μεταξύ ιστοτόπων. - + Το %s σάς προστατεύει από τους περισσότερους, συνηθισμένους ιχνηλάτες που καταγράφουν ό,τι κάνετε στο διαδίκτυο. Μάθετε περισσότερα @@ -1561,7 +1576,7 @@ Απομόνωση cookie μεταξύ ιστοτόπων - Αποστολή αιτήματος μη πώλησης και κοινοποίησης των δεδομένων μου στους ιστοτόπους + Αποστολή αιτήματος μη πώλησης και κοινοποίησης δεδομένων στους ιστοτόπους Περιεχόμενο καταγραφής @@ -1680,20 +1695,20 @@ Μπορείτε εύκολα να προσθέσετε αυτόν τον ιστότοπο στην αρχική οθόνη για άμεση πρόσβαση και ταχύτερη περιήγηση, σαν να ήταν εφαρμογή. - Συνδέσεις και κωδικοί πρόσβασης + Συνδέσεις και κωδικοί πρόσβασης - Κωδικοί πρόσβασης + Κωδικοί πρόσβασης - Αποθήκευση συνδέσεων και κωδικών πρόσβασης + Αποθήκευση συνδέσεων και κωδικών πρόσβασης - Αποθήκευση κωδικών πρόσβασης + Αποθήκευση κωδικών πρόσβασης Ερώτηση για αποθήκευση Ποτέ αποθήκευση - + Αυτόματη συμπλήρωση στο %1$s - + Συμπλήρωση και αποθήκευση στοιχείων σύνδεσης σε ιστοτόπους κατά τη χρήση του %1$s. Αυτόματη συμπλήρωση σε άλλες εφαρμογές @@ -1702,47 +1717,47 @@ Συμπλήρωση στοιχείων σύνδεσης σε άλλες εφαρμογές της συσκευής σας. - Προσθήκη σύνδεσης + Προσθήκη σύνδεσης - Προσθήκη κωδικού πρόσβασης + Προσθήκη κωδικού πρόσβασης - - Συγχρονισμός συνδέσεων - Συγχρονισμός κωδικών πρόσβασης + Συγχρονισμός συνδέσεων + + Συγχρονισμός κωδικών πρόσβασης - Συγχρονισμός συνδέσεων μεταξύ συσκευών + Συγχρονισμός συνδέσεων μεταξύ συσκευών - Συγχρονισμός κωδικών πρόσβασης μεταξύ των συσκευών σας + Συγχρονισμός κωδικών πρόσβασης μεταξύ των συσκευών σας - Αποθηκευμένες συνδέσεις + Αποθηκευμένες συνδέσεις - Αποθηκευμένοι κωδικοί πρόσβασης + Αποθηκευμένοι κωδικοί πρόσβασης - Οι συνδέσεις που αποθηκεύετε ή συγχρονίζετε στο %s θα εμφανίζονται εδώ. + Οι συνδέσεις που αποθηκεύετε ή συγχρονίζετε στο %s θα εμφανίζονται εδώ. - Οι κωδικοί πρόσβασης που αποθηκεύετε ή συγχρονίζετε στο %s θα εμφανίζονται εδώ. Όλοι οι κωδικοί πρόσβασης που αποθηκεύετε κρυπτογραφούνται. + Οι κωδικοί πρόσβασης που αποθηκεύετε ή συγχρονίζετε στο %s θα εμφανίζονται εδώ. Όλοι οι κωδικοί πρόσβασης που αποθηκεύετε κρυπτογραφούνται. - Μάθετε περισσότερα σχετικά με το Sync. + Μάθετε περισσότερα σχετικά με το Sync. - Μάθετε περισσότερα σχετικά με τον συγχρονισμό + Μάθετε περισσότερα σχετικά με τον συγχρονισμό Εξαιρέσεις - Εδώ εμφανίζονται οι συνδέσεις και οι κωδικοί πρόσβασης που δεν αποθηκεύονται. + Εδώ εμφανίζονται οι συνδέσεις και οι κωδικοί πρόσβασης που δεν αποθηκεύονται. - Το %s δεν θα αποθηκεύει κωδικούς πρόσβασης για τους ιστοτόπους που αναφέρονται εδώ. + Το %s δεν θα αποθηκεύει κωδικούς πρόσβασης για τους ιστοτόπους που αναφέρονται εδώ. - Δεν θα αποθηκεύονται στοιχεία σύνδεσης για τους εξής ιστοτόπους. + Δεν θα αποθηκεύονται στοιχεία σύνδεσης για τους εξής ιστοτόπους. - Το %s δεν θα αποθηκεύει κωδικούς πρόσβασης για αυτούς τους ιστοτόπους. + Το %s δεν θα αποθηκεύει κωδικούς πρόσβασης για αυτούς τους ιστοτόπους. Διαγραφή όλων των εξαιρέσεων - Αναζήτηση συνδέσεων + Αναζήτηση συνδέσεων - Αναζήτηση κωδικών πρόσβασης + Αναζήτηση κωδικών πρόσβασης Ιστότοπος @@ -1770,17 +1785,17 @@ Απόκρυψη κωδικού πρόσβασης - Ξεκλειδώστε για να δείτε τις αποθηκευμένες συνδέσεις σας + Ξεκλειδώστε για να δείτε τις αποθηκευμένες συνδέσεις σας - Ξεκλειδώστε για να δείτε τους αποθηκευμένους κωδικούς πρόσβασής σας + Ξεκλειδώστε για να δείτε τους αποθηκευμένους κωδικούς πρόσβασής σας - Προστασία στοιχείων σύνδεσης + Προστασία στοιχείων σύνδεσης - Προστασία των αποθηκευμένων κωδικών πρόσβασής σας + Προστασία των αποθηκευμένων κωδικών πρόσβασής σας - Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για προστασία των αποθηκευμένων στοιχείων σύνδεσης, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. + Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για προστασία των αποθηκευμένων στοιχείων σύνδεσης, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. - Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων κωδικών πρόσβασής σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. + Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων κωδικών πρόσβασής σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. Αργότερα @@ -1797,10 +1812,10 @@ Τελευταία χρήση - Ταξινόμηση μενού σύνδεσης + Ταξινόμηση μενού σύνδεσης - Μενού ταξινόμησης κωδικών πρόσβασης + Μενού ταξινόμησης κωδικών πρόσβασης @@ -1808,44 +1823,44 @@ Διευθύνσεις - Πιστωτικές κάρτες + Πιστωτικές κάρτες - Μέθοδοι πληρωμής + Μέθοδοι πληρωμής - Αποθήκευση και αυτόματη συμπλήρωση στοιχείων καρτών + Αποθήκευση και αυτόματη συμπλήρωση στοιχείων καρτών - Αποθήκευση και συμπλήρωση μεθόδων πληρωμής + Αποθήκευση και συμπλήρωση μεθόδων πληρωμής - Τα δεδομένα κρυπτογραφούνται + Τα δεδομένα κρυπτογραφούνται - Το %s κρυπτογραφεί όλες τις μεθόδους πληρωμής που αποθηκεύετε + Το %s κρυπτογραφεί όλες τις μεθόδους πληρωμής που αποθηκεύετε Συγχρονισμός καρτών μεταξύ συσκευών Συγχρονισμός καρτών - Προσθήκη πιστωτικής κάρτας + Προσθήκη πιστωτικής κάρτας - Προσθήκη κάρτας + Προσθήκη κάρτας - Διαχείριση αποθηκευμένων καρτών + Διαχείριση αποθηκευμένων καρτών - Διαχείριση καρτών + Διαχείριση καρτών Προσθήκη διεύθυνσης Διαχείριση διευθύνσεων - Αποθήκευση και αυτόματη συμπλήρωση διευθύνσεων + Αποθήκευση και αυτόματη συμπλήρωση διευθύνσεων - Αποθήκευση και συμπλήρωση διευθύνσεων + Αποθήκευση και συμπλήρωση διευθύνσεων - Συμπεριλάβετε πληροφορίες, όπως αριθμούς, email και διευθύνσεις αποστολής + Συμπεριλάβετε πληροφορίες, όπως αριθμούς, email και διευθύνσεις αποστολής - Περιλαμβάνει αριθμούς τηλεφώνου και διευθύνσεις email + Περιλαμβάνει αριθμούς τηλεφώνου και διευθύνσεις email Προσθήκη κάρτας @@ -1866,9 +1881,9 @@ Διαγραφή κάρτας - Θέλετε σίγουρα να διαγράψετε αυτήν την πιστωτική κάρτα; + Θέλετε σίγουρα να διαγράψετε αυτήν την πιστωτική κάρτα; - Διαγραφή κάρτας; + Διαγραφή κάρτας; Διαγραφή @@ -1882,24 +1897,24 @@ Αποθηκευμένες κάρτες - Παρακαλώ εισαγάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας + Παρακαλώ εισαγάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας - Εισαγάγετε έγκυρο αριθμό κάρτας + Εισαγάγετε έγκυρο αριθμό κάρτας - Παρακαλώ συμπληρώστε αυτό το πεδίο + Παρακαλώ συμπληρώστε αυτό το πεδίο - Προσθήκη ονόματος + Προσθήκη ονόματος Ξεκλειδώστε για να δείτε τις αποθηκευμένες κάρτες σας - Ασφαλίστε τις πιστωτικές κάρτες σας + Ασφαλίστε τις πιστωτικές κάρτες σας - Προστασία των αποθηκευμένων μεθόδων πληρωμής σας + Προστασία των αποθηκευμένων μεθόδων πληρωμής σας - Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων πιστωτικών καρτών σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. + Ορίστε ένα μοτίβο κλειδώματος συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων πιστωτικών καρτών σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. - Ορίστε ένα μοτίβο κλειδώματος της συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων καρτών σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. + Ορίστε ένα μοτίβο κλειδώματος της συσκευής, ένα ΡΙΝ ή έναν κωδικό πρόσβασης για την προστασία των αποθηκευμένων καρτών σας, σε περίπτωση που κάποιος τρίτος αποκτήσει πρόσβαση στη συσκευή σας. Ρύθμιση τώρα @@ -1908,10 +1923,10 @@ Ξεκλειδώστε τη συσκευή σας - Ξεκλειδώστε για χρήση των στοιχείων πιστωτικής κάρτας + Ξεκλειδώστε για χρήση των στοιχείων πιστωτικής κάρτας - Ξεκλειδώστε για χρήση των αποθηκευμένων μεθόδων πληρωμής + Ξεκλειδώστε για χρήση των αποθηκευμένων μεθόδων πληρωμής Προσθήκη διεύθυνσης @@ -1919,11 +1934,13 @@ Διαχείριση διευθύνσεων - Όνομα + Όνομα - Μεσαίο όνομα + Μεσαίο όνομα - Επώνυμο + Επώνυμο + + Όνομα Διεύθυνση @@ -1948,9 +1965,9 @@ Διαγραφή διεύθυνσης - Θέλετε σίγουρα να διαγράψετε αυτήν τη διεύθυνση; + Θέλετε σίγουρα να διαγράψετε αυτήν τη διεύθυνση; - Διαγραφή διεύθυνσης; + Διαγραφή διεύθυνσης; Διαγραφή @@ -2051,49 +2068,49 @@ Επεξεργασία - Θέλετε σίγουρα να διαγράψετε αυτή τη σύνδεση; + Θέλετε σίγουρα να διαγράψετε αυτή τη σύνδεση; - Θέλετε σίγουρα να διαγράψετε αυτόν τον κωδικό πρόσβασης; + Θέλετε σίγουρα να διαγράψετε αυτόν τον κωδικό πρόσβασης; Διαγραφή Ακύρωση - Επιλογές σύνδεσης + Επιλογές σύνδεσης - Επιλογές κωδικών πρόσβασης + Επιλογές κωδικών πρόσβασης - Το επεξεργάσιμο πεδίο κειμένου της διεύθυνσης ιστού της σύνδεσης. + Το επεξεργάσιμο πεδίο κειμένου της διεύθυνσης ιστού της σύνδεσης. - Το επεξεργάσιμο πεδίο κειμένου της διεύθυνσης ιστοτόπου. + Το επεξεργάσιμο πεδίο κειμένου της διεύθυνσης ιστοτόπου. - Το επεξεργάσιμο πεδίο κειμένου για το όνομα χρήστη της σύνδεσης. + Το επεξεργάσιμο πεδίο κειμένου για το όνομα χρήστη της σύνδεσης. - Το επεξεργάσιμο πεδίο κειμένου για το όνομα χρήστη. + Το επεξεργάσιμο πεδίο κειμένου για το όνομα χρήστη. - Το επεξεργάσιμο πεδίο κειμένου για τον κωδικό πρόσβασης της σύνδεσης. + Το επεξεργάσιμο πεδίο κειμένου για τον κωδικό πρόσβασης της σύνδεσης. - Το επεξεργάσιμο πεδίο κειμένου για τον κωδικό πρόσβασης. + Το επεξεργάσιμο πεδίο κειμένου για τον κωδικό πρόσβασης. - Αποθήκευση αλλαγών στη σύνδεση. + Αποθήκευση αλλαγών στη σύνδεση. - Αποθήκευση αλλαγών. + Αποθήκευση αλλαγών. - Επεξεργασία + Επεξεργασία - Επεξεργασία κωδικού πρόσβασης + Επεξεργασία κωδικού πρόσβασης - Προσθήκη νέας σύνδεσης + Προσθήκη νέας σύνδεσης - Προσθήκη κωδικού πρόσβασης + Προσθήκη κωδικού πρόσβασης - Απαιτείται κωδικός πρόσβασης + Απαιτείται κωδικός πρόσβασης - Εισαγάγετε έναν κωδικό πρόσβασης + Εισαγάγετε έναν κωδικό πρόσβασης - Απαιτείται όνομα χρήστη + Απαιτείται όνομα χρήστη - Εισαγάγετε ένα όνομα χρήστη + Εισαγάγετε ένα όνομα χρήστη Απαιτείται όνομα κεντρικού υπολογιστή @@ -2118,14 +2135,14 @@ Συνδέστε μια άλλη συσκευή. Παρακαλούμε επαληθεύστε ξανά την ταυτότητά σας. - + Παρακαλούμε ενεργοποιήστε τον συγχρονισμό καρτελών. - Δεν έχετε καμία άλλη καρτέλα ανοικτή στο Firefox σε άλλες σας συσκευές. - + Δεν έχετε καμία άλλη καρτέλα ανοικτή στο LeOSium σε άλλες σας συσκευές. + Δείτε μια λίστα καρτελών από τις άλλες συσκευές σας. - + Σύνδεση για συγχρονισμό @@ -2177,7 +2194,7 @@ Αυτόματο κλείσιμο μετά από έναν μήνα; - Το Firefox μπορεί να κλείσει τις καρτέλες που δεν έχετε προβάλει τον περασμένο μήνα. + Το LeOSium μπορεί να κλείσει τις καρτέλες που δεν έχετε προβάλει τον περασμένο μήνα. ΕΝΕΡΓΟΠΟΙΗΣΗ ΑΥΤΟΜΑΤΟΥ ΚΛΕΙΣΙΜΑΤΟΣ @@ -2185,8 +2202,8 @@ Το αυτόματο κλείσιμο ενεργοποιήθηκε - - Προτάσεις Firefox + + Προτάσεις LeOSium Αναζήτηση Google @@ -2197,7 +2214,7 @@ Αλλαγή προεπιλεγμένου προγράμματος περιήγησης - Αυτόματο άνοιγμα συνδέσμων από ιστοτόπους, email και μηνύματα στο Firefox. + Αυτόματο άνοιγμα συνδέσμων από ιστοτόπους, email και μηνύματα στο LeOSium. Αφαίρεση @@ -2206,7 +2223,7 @@ Πατήστε για περισσότερες λεπτομέρειες - Πλοήγηση προς τα πάνω + Πλοήγηση προς τα πάνω Κλείσιμο @@ -2221,7 +2238,7 @@ Με την υποστήριξη του %s. - Μέρος της οικογένειας του Firefox. %s + Μέρος της οικογένειας του LeOSium. %s Μάθετε περισσότερα @@ -2247,8 +2264,6 @@ Αναπροσαρμοσμένη βαθμολογία - Οι αναξιόπιστες κριτικές αφαιρέθηκαν - Με βάση αξιόπιστες κριτικές Σημαντικά σημεία από πρόσφατες κριτικές @@ -2304,10 +2319,6 @@ Εάν παρατηρήσετε ότι αυτό το προϊόν είναι ξανά σε απόθεμα, αναφέρετέ το σε μας και θα αρχίσουμε τον έλεγχο των κριτικών. Αναφέρετε ότι το προϊόν είναι σε απόθεμα - - Έλεγχος ποιότητας κριτικής - - Έλεγχος ποιότητας κριτικής Έλεγχος ποιότητας κριτικής (%s) @@ -2344,22 +2355,28 @@ Έλεγχος ποιότητας κριτικής Δοκιμάστε τον αξιόπιστο οδηγό μας για κριτικές προϊόντων - + Δείτε πόσο αξιόπιστες είναι οι κριτικές των προϊόντων στο %1$s πριν αγοράσετε. Ο έλεγχος κριτικών, μια πειραματική δυνατότητα από τo %2$s, ενσωματώνεται στο πρόγραμμα περιήγησης. Λειτουργεί επίσης στο %3$s και στο %4$s. - + Δείτε πόσο αξιόπιστες είναι οι κριτικές των προϊόντων στο %1$s πριν αγοράσετε. Ο έλεγχος κριτικών, μια πειραματική δυνατότητα από τo %2$s, ενσωματώνεται στο πρόγραμμα περιήγησης. Με την υποστήριξη του %1$s της Mozilla, σας βοηθάμε να αποφύγετε τις μεροληπτικές και ψευδείς κριτικές. Το μοντέλο AI μας βελτιώνεται συνεχώς για να σας προστατεύει όσο κάνετε τις αγορές σας. %2$s Μάθετε περισσότερα - Επιλέγοντας «Έναρξη δοκιμής», αποδέχεστε την %2$s και τους %3$s του %1$s, που παρέχεται από τη Mozilla. + Επιλέγοντας «Έναρξη δοκιμής», αποδέχεστε την %2$s και τους %3$s του %1$s, που παρέχεται από τη Mozilla. Επιλέγοντας «Έναρξη δοκιμής», συμφωνείτε με τα ακόλουθα από το %1$s: + + Επιλέγοντας «Έναρξη δοκιμής», αποδέχεστε τη %2$s του %1$s και τους %4$s του %3$s. + + Επιλέγοντας «Έναρξη δοκιμής», αποδέχεστε τη %2$s του %1$s και τους %4$s του %3$s. - πολιτική απορρήτου + πολιτική απορρήτου Πολιτική απορρήτου + + σημείωση απορρήτου όρους χρήσης @@ -2415,7 +2432,7 @@ άνοιγμα συνδέσμου για περισσότερες πληροφορίες σχετικά με αυτήν τη συλλογή ανάγνωση του άρθρου - + άνοιγμα συνδέσμου για περισσότερες πληροφορίες %s, Επικεφαλίδα @@ -2431,11 +2448,15 @@ Μετάφραση σελίδας; + + Η σελίδα μεταφράστηκε από τα %1$s στα %2$s Ιδιωτικές μεταφράσεις στο %1$s Για το απόρρητό σας, οι μεταφράσεις δεν φεύγουν ποτέ από τη συσκευή σας. Σύντομα έρχονται νέες γλώσσες και βελτιώσεις! %1$s - + Μάθετε περισσότερα Μετάφραση από @@ -2443,6 +2464,8 @@ Μετάφραση σε Όχι τώρα + + Εμφάνιση πρωτότυπου Τέλος @@ -2465,6 +2488,16 @@ Μάθετε περισσότερα + + Μετάφραση… + + + Λήψη γλώσσας στη λειτουργία εξοικονόμησης δεδομένων (%1$s); + + Επιλογές μετάφρασης diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml index c2f83181..096c705a 100644 --- a/app/src/main/res/values-en-rCA/strings.xml +++ b/app/src/main/res/values-en-rCA/strings.xml @@ -56,7 +56,7 @@ Remove - %1$s is produced by Mozilla. + %1$s is produced by harvey186. %1$s deletes your cookies, history, and site data when you close all your private windows. %2$s Make %s your go-to browser - Make Firefox your go-to browser + Note: The word "LeOSium" should NOT be translated --> + Make LeOSium your go-to browser %1$s puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our %2$s. - Firefox puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our privacy notice. + Note: The word "LeOSium" should NOT be translated --> + LeOSium puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our privacy notice. privacy notice @@ -354,28 +354,28 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> Notifications help you do more with %s - Notifications help you do more with Firefox + Note: The word "LeOSium" should NOT be translated --> + Notifications help you do more with LeOSium Send tabs between devices, manage downloads, and get tips on getting the most out of %s. - Send tabs between devices, manage downloads, and get tips on getting the most out of Firefox. + Note: The word "LeOSium" should NOT be translated --> + Send tabs between devices, manage downloads, and get tips on getting the most out of LeOSium. Turn on notifications Not now - Try the Firefox search widget + Note: The word "LeOSium" should NOT be translated --> + Try the LeOSium search widget - With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. + Note: The word "LeOSium" should NOT be translated --> + With LeOSium on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. - Add Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Add LeOSium widget Not now @@ -511,12 +511,12 @@ However, it’s also possible that an attacker is involved. If you continue to the website, you should not enter any sensitive info. If you continue, HTTPS-Only mode will be turned off temporarily for the site. Accessibility - - Custom Firefox Account server + + Custom LeOSium Account server Custom Sync server - Firefox Account/Sync server modified. Quitting the application to apply changes… + LeOSium Account/Sync server modified. Quitting the application to apply changes… Account @@ -532,7 +532,7 @@ Sign in to sync tabs, bookmarks, passwords, and more. - Firefox Account + LeOSium Account Reconnect to resume syncing @@ -640,7 +640,7 @@ Learn more - + Classic %s Limited Edition @@ -724,7 +724,7 @@ Received tabs - Notifications for tabs received from other Firefox devices. + Notifications for tabs received from other LeOSium devices. Tab Received @@ -904,7 +904,7 @@ Remove Active - + %1$s may install and run studies from time to time. Learn more @@ -1279,7 +1279,7 @@ Connect another device - To send a tab, sign in to Firefox on at least one other device. + To send a tab, sign in to LeOSium on at least one other device. Got it @@ -1301,10 +1301,10 @@ - Firefox is fast and private + LeOSium is fast and private - Make Firefox your default browser + Make LeOSium your default browser Try private browsing @@ -1325,7 +1325,7 @@ - Please help make Firefox better by taking a short survey. + Please help make LeOSium better by taking a short survey. Take Survey @@ -1463,11 +1463,11 @@ Welcome to a better internet A browser built for people, not profits. - + Pick up where you left off - + Sync tabs and passwords across devices for seamless screen-switching. - + Sign in Sync is on @@ -1492,7 +1492,7 @@ You control your data - Firefox gives you control over what you share online and what you share with us. + LeOSium gives you control over what you share online and what you share with us. Read our privacy notice @@ -1526,16 +1526,16 @@ Scan the code - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ready to scan Sign in with your camera Use email instead - - Create one to sync Firefox between devices.]]> - + + Create one to sync LeOSium between devices.]]> + %s will stop syncing with your account, but won’t delete any of your browsing data on this device. Disconnect @@ -1551,7 +1551,7 @@ Enhanced Tracking Protection Now featuring Total Cookie Protection, our most powerful barrier yet against cross-site trackers. - + %s protects you from many of the most common trackers that follow what you do online. Learn more @@ -1706,9 +1706,9 @@ Ask to save Never save - + Autofill in %1$s - + Fill and save usernames and passwords in websites while using %1$s. Autofill in other apps @@ -2061,13 +2061,13 @@ Connect another device. Please re-authenticate. - + Please enable tab syncing. - You don’t have any tabs open in Firefox on your other devices. - + You don’t have any tabs open in LeOSium on your other devices. + View a list of tabs from your other devices. - + Sign in to sync @@ -2119,7 +2119,7 @@ Auto-close after one month? - Firefox can close tabs you haven’t viewed over the past month. + LeOSium can close tabs you haven’t viewed over the past month. TURN ON AUTO CLOSE @@ -2127,8 +2127,8 @@ Auto-close enabled - - Firefox Suggest + + LeOSium Suggest Google Search @@ -2136,7 +2136,7 @@ %s search - Set links from websites, emails, and messages to open automatically in Firefox. + Set links from websites, emails, and messages to open automatically in LeOSium. Remove @@ -2160,7 +2160,7 @@ Powered by %s. - Part of the Firefox family. %s + Part of the LeOSium family. %s Learn more @@ -2281,7 +2281,7 @@ Check review quality Try our trusted guide to product reviews - + See how reliable product reviews are on %1$s before you buy. Review checker, an experimental feature from %2$s, is built right into the browser. It works on %3$s and %4$s, too. Using the power of %1$s by Mozilla, we help you avoid biased and inauthentic reviews. Our AI model is always improving to protect you as you shop. %2$s @@ -2337,6 +2337,6 @@ open link to learn more about this collection read the article - + open link to learn more diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 4c459966..c362c2fc 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -55,7 +55,7 @@ Remove - %1$s is produced by Mozilla. + %1$s is produced by harvey186. %1$s deletes your cookies, history, and site data when you close all your private tabs. %2$s Translate page + + Page translated from %1$s to %2$s. + Selected language @@ -328,13 +333,23 @@ - Firefox privacy notice - + LeOSium privacy notice + + Learn more in our privacy notice We love keeping you safe + + Find out why millions love LeOSium + + Safe browsing with more choices Our non-profit backed browser helps stop companies from secretly following you around the web. + More than 100 million people protect their privacy by choosing a browser that’s backed by a nonprofit. + + Known trackers? Blocked automatically. Extensions? Try all 700. PDFs? Our built-in reader makes them easy to manage. + Our non-profit backed browser helps stop companies from secretly following you around the web.\n\nLearn more in our privacy notice. @@ -346,32 +361,32 @@ Stay encrypted when you hop between devices - When you’re signed in and synchronised, you’re safer. Firefox encrypts your passwords, bookmarks, and more. + Note: The word "LeOSium" should NOT be translated --> + When you’re signed in and synchronised, you’re safer. LeOSium encrypts your passwords, bookmarks, and more. Sign in Not now - Notifications help you stay safer with Firefox + Note: The word "LeOSium" should NOT be translated --> + Notifications help you stay safer with LeOSium - Securely send tabs between your devices and discover other privacy features in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Securely send tabs between your devices and discover other privacy features in LeOSium. Turn on notifications Not now - Try the Firefox search widget + Note: The word "LeOSium" should NOT be translated --> + Try the LeOSium search widget - With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. + Note: The word "LeOSium" should NOT be translated --> + With LeOSium on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. - Add Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Add LeOSium widget Not now @@ -411,10 +426,10 @@ Suggestions from search engines Address bar preferences - - Address bar - Firefox Suggest - - Learn more about Firefox Suggest + + Address bar - LeOSium Suggest + + Learn more about LeOSium Suggest Rate on Google Play Secure site not available - Most likely, the web site simply does not support HTTPs. + Most likely, the web site simply does not support HTTPS. However, it’s also possible that an attacker is involved. If you continue to the web site, you should not enter any sensitive info. If you continue, HTTPS-Only mode will be turned off temporarily for the site. @@ -552,15 +567,15 @@ Account settings Autocomplete URLs - + Suggestions from sponsors - Support %1$s with occasional sponsored suggestions - Suggestions from %1$s - + Get suggestions from the web related to your search Open links in apps @@ -641,7 +656,7 @@ Learn more - + Classic %s Artist series @@ -659,8 +674,8 @@ New add-ons now available - - Check out 100+ new extensions that let you make Firefox your own. + + Check out 100+ new extensions that let you make LeOSium your own. Explore add-ons @@ -688,9 +703,9 @@ Bookmarks - Logins + Logins - Passwords + Passwords Open tabs @@ -716,9 +731,9 @@ %1$s on %2$s %3$s - Credit cards + Credit cards - Payment methods + Payment methods Addresses @@ -726,7 +741,7 @@ Received tabs - Notifications for tabs received from other Firefox devices. + Notifications for tabs received from other LeOSium devices. Tab Received @@ -907,7 +922,7 @@ Remove Active - + %1$s may install and run studies from time to time. Learn more @@ -1282,7 +1297,7 @@ Connect another device - To send a tab, sign in to Firefox on at least one other device. + To send a tab, sign in to LeOSium on at least one other device. Got it @@ -1309,10 +1324,10 @@ - Firefox is fast and private + LeOSium is fast and private - Make Firefox your default browser + Make LeOSium your default browser Try private browsing - Please help make Firefox better by taking a short survey. + Please help make LeOSium better by taking a short survey. Take Survey @@ -1478,16 +1493,16 @@ Scan the code - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ready to scan Sign in with your camera Use email instead - - Create one to synchronise Firefox between devices.]]> - + + Create one to synchronise LeOSium between devices.]]> + %s will stop synchronising with your account, but won’t delete any of your browsing data on this device. Disconnect @@ -1503,7 +1518,7 @@ Enhanced Tracking Protection Now featuring Total Cookie Protection, our most powerful barrier yet against cross-site trackers. - + %s protects you from many of the most common trackers that follow what you do online. Learn more @@ -1653,21 +1668,21 @@ You can easily add this web site to your device’s Home screen to have instant access and browse faster with an app-like experience. - Logins and passwords + Logins and passwords - Passwords + Passwords - Save logins and passwords + Save logins and passwords - Save passwords + Save passwords Ask to save Never save - + Autofill in %1$s - + Fill and save usernames and passwords in web sites while using %1$s. Autofill in other apps @@ -1675,48 +1690,48 @@ Fill usernames and passwords in other apps on your device. - Add login + Add login - Add password + Add password - - Synchronise logins - Synchronise passwords + Synchronise logins + + Synchronise passwords - Synchronise logins across devices + Synchronise logins across devices - Synchronise passwords across devices + Synchronise passwords across devices - Saved logins + Saved logins - Saved passwords + Saved passwords - The logins you save or synchronise to %s will show up here. + The logins you save or synchronise to %s will show up here. - The passwords you save or synchronise to %s will be listed here. All passwords you save are encrypted. + The passwords you save or synchronise to %s will be listed here. All passwords you save are encrypted. - Learn more about Sync. + Learn more about Sync. - Learn more about Sync + Learn more about Sync Exceptions - Logins and passwords that are not saved will be shown here. + Logins and passwords that are not saved will be shown here. - %s won’t save passwords for sites listed here. + %s won’t save passwords for sites listed here. - Logins and passwords will not be saved for these sites. + Logins and passwords will not be saved for these sites. - %s won’t save passwords for these sites. + %s won’t save passwords for these sites. Delete all exceptions - Search logins + Search logins - Search passwords + Search passwords Site @@ -1744,17 +1759,17 @@ Hide password - Unlock to view your saved logins + Unlock to view your saved logins - Unlock to view your saved passwords + Unlock to view your saved passwords - Secure your logins and passwords + Secure your logins and passwords - Secure your saved passwords + Secure your saved passwords - Set up a device lock pattern, PIN, or password to protect your saved logins and passwords from being accessed if someone else has your device. + Set up a device lock pattern, PIN, or password to protect your saved logins and passwords from being accessed if someone else has your device. - Set up a device lock pattern, PIN, or password to protect your saved passwords from being accessed if someone else has your device. + Set up a device lock pattern, PIN, or password to protect your saved passwords from being accessed if someone else has your device. Later @@ -1771,10 +1786,10 @@ Last used - Sort logins menu + Sort logins menu - Sort passwords menu + Sort passwords menu @@ -1782,43 +1797,43 @@ Addresses - Credit cards + Credit cards - Payment methods + Payment methods - Save and autofill cards + Save and autofill cards - Save and fill payment methods + Save and fill payment methods - Data is encrypted + Data is encrypted - %s encrypts all payment methods you save + %s encrypts all payment methods you save Synchronise cards across devices Synchronise cards - Add credit card + Add credit card - Add card + Add card - Manage saved cards + Manage saved cards - Manage cards + Manage cards Add address Manage addresses - Save and autofill addresses + Save and autofill addresses - Save and fill addresses + Save and fill addresses - Include information like numbers, email and shipping addresses + Include information like numbers, email and shipping addresses - Includes phone numbers and email addresses + Includes phone numbers and email addresses Add card @@ -1839,9 +1854,9 @@ Delete card - Are you sure you want to delete this credit card? + Are you sure you want to delete this credit card? - Delete card? + Delete card? Delete @@ -1855,24 +1870,24 @@ Saved cards - Please enter a valid credit card number + Please enter a valid credit card number - Enter a valid card number + Enter a valid card number - Please fill out this field + Please fill out this field - Add a name + Add a name Unlock to view your saved cards - Secure your credit cards + Secure your credit cards - Secure your saved payment methods + Secure your saved payment methods - Set up a device lock pattern, PIN, or password to protect your saved credit cards from being accessed if someone else has your device. + Set up a device lock pattern, PIN, or password to protect your saved credit cards from being accessed if someone else has your device. - Set up a device lock pattern, PIN, or password to protect your saved payment methods from being accessed if someone else has your device. + Set up a device lock pattern, PIN, or password to protect your saved payment methods from being accessed if someone else has your device. Set up now @@ -1880,10 +1895,10 @@ Unlock your device - Unlock to use stored credit card information + Unlock to use stored credit card information - Unlock to use saved payment methods + Unlock to use saved payment methods Add address @@ -1891,11 +1906,13 @@ Manage addresses - First Name + First Name - Middle Name + Middle Name - Last Name + Last Name + + Name Street Address @@ -1920,9 +1937,9 @@ Delete address - Are you sure you want to delete this address? + Are you sure you want to delete this address? - Delete this address? + Delete this address? Delete @@ -2020,49 +2037,49 @@ Edit - Are you sure you want to delete this login? + Are you sure you want to delete this login? - Are you sure you want to delete this password? + Are you sure you want to delete this password? Delete Cancel - Login options + Login options - Password options + Password options - The editable text field for the web address of the login. + The editable text field for the web address of the login. - The editable text field for the web site address. + The editable text field for the web site address. - The editable text field for the username of the login. + The editable text field for the username of the login. - The editable text field for the username. + The editable text field for the username. - The editable text field for the password of the login. + The editable text field for the password of the login. - The editable text field for the password. + The editable text field for the password. - Save changes to login. + Save changes to login. - Save changes. + Save changes. - Edit + Edit - Edit password + Edit password - Add new login + Add new login - Add password + Add password - Password required + Password required - Enter a password + Enter a password - Username required + Username required - Enter a username + Enter a username Hostname required @@ -2087,13 +2104,13 @@ Connect another device. Please re-authenticate. - + Please enable tab synchronisation. - You don’t have any tabs open in Firefox on your other devices. - + You don’t have any tabs open in LeOSium on your other devices. + View a list of tabs from your other devices. - + Sign in to sync @@ -2145,7 +2162,7 @@ Auto-close after one month? - Firefox can close tabs you haven’t viewed over the past month. + LeOSium can close tabs you haven’t viewed over the past month. TURN ON AUTO CLOSE @@ -2153,8 +2170,8 @@ Auto-close enabled - - Firefox Suggest + + LeOSium Suggest Google Search @@ -2165,7 +2182,7 @@ Switch your default browser - Set links from web sites, emails, and messages to open automatically in Firefox. + Set links from web sites, emails, and messages to open automatically in LeOSium. Remove @@ -2174,7 +2191,7 @@ Click for more details - Navigate up + Navigate up Close @@ -2189,7 +2206,7 @@ Powered by %s. - Part of the Firefox family. %s + Part of the LeOSium family. %s Learn more @@ -2215,8 +2232,6 @@ Adjusted rating - Unreliable reviews removed - Based on reliable reviews Highlights from recent reviews @@ -2272,10 +2287,6 @@ If you see this product is back in stock, report it and we’ll work on checking the reviews. Report product is in stock - - Checking review quality - - Checking review quality Checking review quality (%s) @@ -2312,22 +2323,28 @@ Check review quality Try our trusted guide to product reviews - + See how reliable product reviews are on %1$s before you buy. Review checker, an experimental feature from %2$s, is built right into the browser. It works on %3$s and %4$s, too. - + See how reliable product reviews are on %1$s before you buy. Review Checker, an experimental feature from %2$s, is built right into the browser. Using the power of %1$s by Mozilla, we help you avoid biased and inauthentic reviews. Our AI model is always improving to protect you as you shop. %2$s Learn more - By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. + By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. By selecting “Yes, try it” you agree to the following from %1$s: + + By selecting “Yes, try it” you agree to %1$s’s %2$s and %3$s’s %4$s. + + By selecting “Yes, try it” you agree to %1$s’s %2$s and %3$s’s %4$s. - privacy policy + privacy policy Privacy policy + + privacy notice terms of use @@ -2383,7 +2400,7 @@ open link to learn more about this collection read the article - + open link to learn more %s, Heading @@ -2398,11 +2415,15 @@ Translate this page? + + Page translated from %1$s to %2$s Try private translations in %1$s For your privacy, translations never leave your device. New languages and improvements coming soon! %1$s - + Learn more Translate from @@ -2410,6 +2431,8 @@ Translate to Not now + + Show original Done @@ -2432,6 +2455,16 @@ Learn more + + Translating… + + + Download language in data saving mode (%1$s)? + + Translation Options diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 4188f6e1..90391706 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -55,7 +55,7 @@ Forigi - %1$s estas kreita de Mozilla. + %1$s estas kreita de harvey186. %1$s forigos viajn kuketojn, historion kaj retejajn datumojn kiam vi fermos ĉiujn viajn privatajn langetojn. %2$s Traduki paĝon + + Paĝo tradukita el la %1$s en la %2$sn. + Elektita lingvo @@ -325,13 +330,23 @@ - Rimarko de Firefox pri privateco - + Rimarko de LeOSium pri privateco + + Pli da informo en nia rimarko pri privateco Ni amas teni vin sekura + + Malkovru kial milionoj da personoj amas LeOSium + + Sekura retumo kun pli da elektebloj Nia retumilo, subtenata de nenprofitcela organizo, helpas eviti ke entreprenoj kaŝe sekvu vin tra la reto. + Pli ol 100 milionoj da personoj protektas sian privatecon per la elekto de retumilo farita de neprofitcela organizo. + + Kio pri konataj spuriloj? Aŭtomate blokitaj. Kio pri etendaĵoj? Testu ĉiujn 700. Kaj pri PDFs? Nia integrita legilo faciligas pritrakti ilin. + Nia retumilo, subtenata de nenprofitcela organizo, helpas eviti ke entreprenoj kaŝe sekvu vin tra la reto.\n\nPli da informo en nia rimarko pri privateco. @@ -343,32 +358,32 @@ Restu protektita dum vi iras tien kaj reen inter aparatoj, danke al ĉifrado - Komencinte seancon kaj spegulinte, vi estas pli sekura. Firefox ĉifras viajn pasvortojn, legosignojn kaj pli. + Note: The word "LeOSium" should NOT be translated --> + Komencinte seancon kaj spegulinte, vi estas pli sekura. LeOSium ĉifras viajn pasvortojn, legosignojn kaj pli. Komenci seancon Ne nun - Sciigoj helpas vin resti sekura kun Firefox + Note: The word "LeOSium" should NOT be translated --> + Sciigoj helpas vin resti sekura kun LeOSium - Sekure sendu langetojn inter viaj aparatoj kaj malkovru aliajn privatecajn trajtojn en Firefox. + Note: The word "LeOSium" should NOT be translated --> + Sekure sendu langetojn inter viaj aparatoj kaj malkovru aliajn privatecajn trajtojn en LeOSium. Ŝalti sciigojn Ne nun - Provu la komponanton serĉan de Firefox + Note: The word "LeOSium" should NOT be translated --> + Provu la komponanton serĉan de LeOSium - Kun Firefox en via hejmkerano vi havos facilan aliron al retumilo kiu zorgas unue pri via privateco kaj kiu blokas interretejajn spurilojn. + Note: The word "LeOSium" should NOT be translated --> + Kun LeOSium en via hejmkerano vi havos facilan aliron al retumilo kiu zorgas unue pri via privateco kaj kiu blokas interretejajn spurilojn. - Aldoni komponanton de Firefox + Note: The word "LeOSium" should NOT be translated --> + Aldoni komponanton de LeOSium Ne nun @@ -408,10 +423,10 @@ Sugestoj el serĉiloj Preferoj por la adresa strio - + Adresa strio - Sugestoj de FIrefox - - Pli da informo pri Sugestoj de Firefox + + Pli da informo pri Sugestoj de LeOSium Taksi en Google Play Aŭtomate kompletigi retadresojn - + Sugestoj el patronoj - Subtenu %1$s per patronitaj sugestoj, de tempo al tempo - Sugestoj el %1$s - + Ricevu sugestojn el la reto, kiu rilatas vian serĉon Malfermi ligilojn per programoj @@ -641,7 +656,7 @@ Pli da informo - + Klasika %s Galerio de artistoj @@ -660,8 +675,8 @@ Novaj aldonaĵoj disponeblaj - - Konu pli ol 100+ novajn etendaĵojn, kiuj permesas al vi personecigi Firefox. + + Konu pli ol 100+ novajn etendaĵojn, kiuj permesas al vi personecigi LeOSium. Esplori aldonaĵojn @@ -689,9 +704,9 @@ legosignojn - legitimilojn + legitimilojn - Pasvortoj + Pasvortoj Malfermitaj langetoj @@ -717,9 +732,9 @@ %1$s en %2$s %3$s - Kreditkartoj + Kreditkartoj - Pagmetodoj + Pagmetodoj Adresoj @@ -728,7 +743,7 @@ Ricevitaj langetoj - Sciigoj por langetoj ricevitaj el aliaj aparatoj Firefox. + Sciigoj por langetoj ricevitaj el aliaj aparatoj LeOSium. Langeto ricevita @@ -910,7 +925,7 @@ Forigi Aktiva - + %1$s povas de tempo al tempo instali kaj fari studojn. Pli da informo @@ -1290,7 +1305,7 @@ Konekti alian aparaton - Por sendi langeton, komencu seancon en Firefox en almenaŭ unu alia aparato. + Por sendi langeton, komencu seancon en LeOSium en almenaŭ unu alia aparato. Mi komprenis @@ -1318,10 +1333,10 @@ - Firefox estas kaj rapida kaj privata + LeOSium estas kaj rapida kaj privata - Igu Firefox via norma retumilo + Igu LeOSium via norma retumilo Provu la privatan retumon - Bonvolu helpi nin plibonigi Firefox per mallonga enketo. + Bonvolu helpi nin plibonigi LeOSium per mallonga enketo. Respondi enketon @@ -1492,16 +1507,16 @@ Skani la kodon - https://firefox.com/pair]]> + https://firefox.com/pair]]> Preta skani Komencu seancon per via filmilo Anstataŭe uzi retpoŝton - - Kreu ĝin por speguli Firefox inter aparatoj.]]> - + + Kreu ĝin por speguli LeOSium inter aparatoj.]]> + %s ne plu spegulos vian konton, sed ĝi ne forigos iun ajn el viaj retumaj datumoj en tiu ĉi aparato. Malkonekti @@ -1518,7 +1533,7 @@ Plibonigita protekto kontraŭ spurado Inkluzivita nun estas la kompleta protekto kontraŭ kuketoj, nia ĝisnuna plej pova barilo kontraŭ interretejaj spuriloj. - + %s protektas vin kontraŭ pluraj el la plej oftaj spuriloj, kiuj sekvas kion vi faras dum retumo. Pli da informo @@ -1670,69 +1685,69 @@ Vi povas facile aldoni tiun ĉi retejon al la hejmpaĝo de via aparato, por havi tujan aliron kaj retumi pli rapide per kvazaŭprograma sperto. - Legitimiloj kaj pasvortoj + Legitimiloj kaj pasvortoj - Pasvortoj + Pasvortoj - Konservi legitimilojn kaj pasvortojn + Konservi legitimilojn kaj pasvortojn - Konservi pasvortojn + Konservi pasvortojn Demandi antaŭ ol konservi Neniam konservi - + Aŭtomata plenigo de %1$s - + Plenigi kaj konservi nomojn de uzanto kaj pasvortojn en retejoj dum vi uzas %1$s. Aŭtomata plenigo en aliaj programoj Plenigi nomojn de uzanto kaj pasvortojn en aliaj programoj en via aparato. - Aldoni legitimilon + Aldoni legitimilon - Aldoni pasvorton + Aldoni pasvorton - - Speguli legitimilojn - Speguli pasvortojn + Speguli legitimilojn + + Speguli pasvortojn - Speguli legitimilojn inter aparatoj + Speguli legitimilojn inter aparatoj - Speguli pasvortojn inter aparatoj + Speguli pasvortojn inter aparatoj - Konservitaj legitimiloj + Konservitaj legitimiloj - Konservitaj pasvortoj + Konservitaj pasvortoj - La legitimiloj, kiujn vi konservas aŭ spegulas al %s, aperos ĉi tie. + La legitimiloj, kiujn vi konservas aŭ spegulas al %s, aperos ĉi tie. - La pasvortoj konservitaj aŭ spegulitaj al %s estos listigitaj ĉi tie. Ĉiuj konservitaj pasvortoj estos ĉifritaj. + La pasvortoj konservitaj aŭ spegulitaj al %s estos listigitaj ĉi tie. Ĉiuj konservitaj pasvortoj estos ĉifritaj. - Pli da informo pri Spegulado. + Pli da informo pri Spegulado. - Pli da informo pri spegulado + Pli da informo pri spegulado Esceptoj - Nekonservitaj nomoj de uzantoj kaj pasvortoj estos montritaj ĉi tie. + Nekonservitaj nomoj de uzantoj kaj pasvortoj estos montritaj ĉi tie. - %s ne konservos pasvortojn por retejoj listigitaj ĉi tie. + %s ne konservos pasvortojn por retejoj listigitaj ĉi tie. - Nomoj de uzanto kaj pasvortoj por tiuj ĉi retejoj ne estos konservitaj. + Nomoj de uzanto kaj pasvortoj por tiuj ĉi retejoj ne estos konservitaj. - %s ne konservos pasvortojn por tiuj ĉi retejoj. + %s ne konservos pasvortojn por tiuj ĉi retejoj. Forigi ĉiujn esceptojn - Serĉi legitimilojn + Serĉi legitimilojn - Serĉi pasvortojn + Serĉi pasvortojn Retejo @@ -1760,18 +1775,18 @@ Kaŝi pasvorton - Malŝlosu por vidi viajn konservitajn legitimilojn + Malŝlosu por vidi viajn konservitajn legitimilojn - Malŝlosi por vidi viajn konservitajn pasvortojn + Malŝlosi por vidi viajn konservitajn pasvortojn - Protektu viajn legitimilojn kaj pasvortojn + Protektu viajn legitimilojn kaj pasvortojn - Protektu viajn konservitajn pasvortojn + Protektu viajn konservitajn pasvortojn - Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn legitimilojn kaj pasvortojn se iu alia havas vian aparaton. + Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn legitimilojn kaj pasvortojn se iu alia havas vian aparaton. - Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn pasvortojn se iu alia havas vian aparaton. + Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn pasvortojn se iu alia havas vian aparaton. Poste @@ -1788,10 +1803,10 @@ Laste uzita - Ordigi menuon de legitimiloj + Ordigi menuon de legitimiloj - Menuo por ordigi pasvortojn + Menuo por ordigi pasvortojn @@ -1799,42 +1814,42 @@ Adresoj - Kreditkartoj + Kreditkartoj - Pagmetodoj + Pagmetodoj - Konservi kaj aŭtomate plenigi kreditkartojn + Konservi kaj aŭtomate plenigi kreditkartojn - Konservi kaj aŭtomate plenigi pagmetodojn + Konservi kaj aŭtomate plenigi pagmetodojn - La datumoj estas ĉifritaj + La datumoj estas ĉifritaj - %s ĉifras ĉiujn pagmetodojn, kiujn vi konservis + %s ĉifras ĉiujn pagmetodojn, kiujn vi konservis Speguli kreditkartojn inter aparatoj Speguli kreditkartojn - Aldoni kreditkarton + Aldoni kreditkarton - Aldoni kreditkarton + Aldoni kreditkarton - Administri konservitajn kreditkartojn + Administri konservitajn kreditkartojn - Administri kartojn + Administri kartojn Aldoni adreson Administri adresojn - Konservi kaj aŭtomate plenigi adresojn + Konservi kaj aŭtomate plenigi adresojn - Konservi kaj aŭtomate plenigi adresojn + Konservi kaj aŭtomate plenigi adresojn - Inkluzivi informojn kiel numerojn, retpoŝtajn kaj liverajn adresojn + Inkluzivi informojn kiel numerojn, retpoŝtajn kaj liverajn adresojn - Telefonnumeroj kaj retpoŝtaj adresoj inkluzivitaj + Telefonnumeroj kaj retpoŝtaj adresoj inkluzivitaj Aldoni kreditkarton @@ -1856,9 +1871,9 @@ Forigi kreditkarton - Ĉu vi certe volas forigi tiun ĉi kreditkarton? + Ĉu vi certe volas forigi tiun ĉi kreditkarton? - Ĉu forigi karton? + Ĉu forigi karton? Forigi @@ -1871,24 +1886,24 @@ Konservitaj kreditkartoj - Bonvolu tajpi validan kreditkaran numeron + Bonvolu tajpi validan kreditkaran numeron - Tajpu validan numeron de karto + Tajpu validan numeron de karto - Bonvolu plenigi tiun ĉi kampon + Bonvolu plenigi tiun ĉi kampon - Aldoni nomon + Aldoni nomon Malŝlosu por vidi viajn konservitajn kreditkartojn - Sekurigu viajn kreditkartojn + Sekurigu viajn kreditkartojn - Protektu viajn konservitajn pagmetodojn + Protektu viajn konservitajn pagmetodojn - Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn kreditkartojn se iu alia havas vian aparaton. + Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn kreditkartojn se iu alia havas vian aparaton. - Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn pagmetodojn se iu alia havas vian aparaton. + Difinu blokan desegnon, PIN aŭ pasvorton por protekti viajn konservitajn pagmetodojn se iu alia havas vian aparaton. Agordi nun @@ -1896,10 +1911,10 @@ Malbloki vian aparaton - Malŝlosu por uzi la konservitan informon pri kreditkartojn + Malŝlosu por uzi la konservitan informon pri kreditkartojn - Malŝlosu por uzi konservitajn pagmetodojn + Malŝlosu por uzi konservitajn pagmetodojn Aldoni adreson @@ -1907,11 +1922,13 @@ Administri adresojn - Persona nomo + Persona nomo - Dua nomo + Dua nomo - Familia nomo + Familia nomo + + Nomo Strata adreso @@ -1936,9 +1953,9 @@ Forigi adreson - Ĉu vi certe volas forigi tiun ĉi adreson? + Ĉu vi certe volas forigi tiun ĉi adreson? - Ĉu forigi tiun ĉi adreson? + Ĉu forigi tiun ĉi adreson? Forigi @@ -2037,49 +2054,49 @@ Modifi - Ĉu vi certe volas forigi tiun ĉi legitimilon? + Ĉu vi certe volas forigi tiun ĉi legitimilon? - Ĉu vi certe volas forigi tiun ĉi pasvorton? + Ĉu vi certe volas forigi tiun ĉi pasvorton? Forigi Nuligi - Preferoj de komenco de seanco + Preferoj de komenco de seanco - Pasvortaj elektebloj + Pasvortaj elektebloj - La modifebla teksta kampo de la retadreso por komenci seancon. + La modifebla teksta kampo de la retadreso por komenci seancon. - La modifebla teksta kampo de la reteja retadreso. + La modifebla teksta kampo de la reteja retadreso. - La modifebla teksta kampo de la nomo de uzanto por komenci seancon. + La modifebla teksta kampo de la nomo de uzanto por komenci seancon. - La modifebla teksta kampo de la uzanto. + La modifebla teksta kampo de la uzanto. - La modifebla teksta kampo de la pasvorto por komenci seancon. + La modifebla teksta kampo de la pasvorto por komenci seancon. - La modifebla teksta kampo de la pasvorto. + La modifebla teksta kampo de la pasvorto. - Konservi ŝanĝojn je komenco de seanco. + Konservi ŝanĝojn je komenco de seanco. - Konservi ŝanĝojn. + Konservi ŝanĝojn. - Modifi + Modifi - Modifi pasvorton + Modifi pasvorton - Aldoni novan legitimilon + Aldoni novan legitimilon - Aldoni pasvorton + Aldoni pasvorton - Pasvorto postulata + Pasvorto postulata - Tajpu pasvorton + Tajpu pasvorton - Nomo de uzanto postulata + Nomo de uzanto postulata - Tajpu nomon de uzanto + Tajpu nomon de uzanto Nomo de servilo postulata @@ -2106,13 +2123,13 @@ Bonvolu legitimiĝu denove. - + Bonvolu aktivigi speguladon de langetoj. Vi ne havas iun ajn langeton malfermita en viaj aliaj aparatoj. - + Vidi liston de langetoj el viaj aliaj aparatoj. - + Komenci seancon por speguli @@ -2166,15 +2183,15 @@ Ĉu aŭtomate fermi post unu monato? - Firefox aŭtomate fermos langetojn, kiuj ne estis vizititaj dum la lasta monato. + LeOSium aŭtomate fermos langetojn, kiuj ne estis vizititaj dum la lasta monato. ŜALTI AŬTOMATAN FERMON Aŭtomata fermo aktivita - - Sugestoj de Firefox + + Sugestoj de LeOSium Serĉo per Google @@ -2185,7 +2202,7 @@ Ŝanĝi vian norman retumilon - Aŭtomate malfermi ligilon en retejoj, retpoŝtoj kaj mesaĝoj per Firefox. + Aŭtomate malfermi ligilon en retejoj, retpoŝtoj kaj mesaĝoj per LeOSium. Forigi @@ -2194,7 +2211,7 @@ Alklaku por havi pli da informo - Iri supren + Iri supren Fermi @@ -2209,7 +2226,7 @@ Kun teknologio de %s. - Parto de la familio de Firefox. %s + Parto de la familio de LeOSium. %s Pli da informo @@ -2235,8 +2252,6 @@ Alĝustigita taksado - Nefidindaj recenzoj forigitaj - Bazita sur fidindaj recenzoj Elstaraĵoj el ĵusaj recenzoj @@ -2293,10 +2308,6 @@ Se vi vidas ke denove estas stoko de tiu ĉi produko, raportu tion kaj ni kontrolos la recenzojn. Raporti ke denove estas stoko de tiu ĉi produkto - - Kvalito de recenzoj estas taksata - - Kvalito de recenzoj estas taksata Kvalito de recenzoj estas taksata (%s) @@ -2333,9 +2344,9 @@ Kontroli kvaliton de recenzoj Provu nian fidindan gvidadon al recenzoj de produktoj - + Vidu kiel fidindaj estas la recenzoj en %1$s antaŭ ol aĉeti. La kontrolilo de recenzoj, eksperimenta trajto de %2$s, estas integrita en la retumilo kaj ĝi ankaŭ funkcias en %3$s kaj %4$s. - + Vidu kiel fidindaj estas la recenzoj en %1$s antaŭ ol aĉeti. La kontrolilo de recenzoj, eksperimenta trajto de %2$s, estas integrita en la retumilo. Danke al la povo de %1$s de Mozilla, ni helpas vin eviti neobjektivajn kaj malverajn recenzojn. Nia modelo de artefarita intelekto konstante pliboniĝas por protekti vin dum vi aĉetumas. %2$s @@ -2343,13 +2354,19 @@ Pli da informo - Se vi elektas “Jes, provi ĝin” vi akceptas la %2$s kaj %3$s de %1$s de Mozilla. + Se vi elektas “Jes, provi ĝin” vi akceptas la %2$s kaj %3$s de %1$s de Mozilla. Se vi elektas “Jes, provi ĝin” vi akceptas la jenon el %1$s: + + Se vi elektas “Jes, provi ĝin” vi akceptas la jenon: %2$s de %1$s kaj %4$s de %3$s. + + Se vi elektas “Jes, provi ĝin” vi akceptas la jenon: %2$s de %1$s kaj %4$s de %3$s. - politiko pri privateco + politiko pri privateco Politiko pri privateco + + rimarko pri privateco kondiĉoj de uzo @@ -2405,7 +2422,7 @@ malfermi ligilon por havi pli da informo pri tiu ĉi kolekto legi la artikolon - + malfermu ligilon por pli da informo @@ -2420,11 +2437,15 @@ Ĉu traduki ĉi tiun paĝon? + + Paĝo tradukita el la %1$s en la %2$sn Provu privatajn tradukojn en %1$s Por protekti vian privatecon, tradukoj neniam forlasas vian aparaton. Baldaŭ estos novaj lingvoj kaj plibonigoj! %1$s - + Pli da informo Traduki el @@ -2432,6 +2453,8 @@ Traduki en Ne nun + + Montri originalon Farita @@ -2453,6 +2476,16 @@ Pli da informo + + + Traduko… + + Ĉu elŝuti lingvon dum datumŝpara reĝimo (%1$s)? + + Tradukaj elektebloj diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 613ec767..e2c5f068 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -56,7 +56,7 @@ Eliminar - %1$s es producido por Mozilla. + %1$s es producido por harvey186. @@ -71,7 +71,7 @@ No dejés rastros en este dispositivo %1$s elimina las cookies, historial y datos del sitio cuando cerrás todas las pestañas privadas. %2$s Traducir página + + Página traducida de %1$s a %2$s. + Idioma seleccionado @@ -337,13 +342,23 @@ - Aviso de privacidad de Firefox - + Aviso de privacidad de LeOSium + + Conocé más en nuestra nota de privacidad Nos encanta mantenerte seguro + + Descubrí por qué millones aman LeOSium + + Navegación segura con más opciones Nuestro navegador respaldado sin fines de lucro ayuda a evitar que las empresas te sigan en secreto por la web. + Más de 100 millones de personas protegen su privacidad eligiendo un navegador respaldado por una organización sin fines de lucro. + + ¿Rastreadores conocidos? Bloqueados automáticamente. Extensiones? Probá las 700. ¿PDFs? Nuestro lector incorporado los hace fáciles de administrar. + Nuestro navegador respaldado sin fines de lucro ayuda a evitar que las empresas te sigan en secreto por la web.\n\nMás información en nuestro aviso de privacidad. @@ -355,32 +370,32 @@ Mantenete cifrado cuando cambies entre dispositivos - Cuando iniciaste la sesión y estás sincronizado, estás más seguro. Firefox cifra tus contraseñas, marcadores y más. + Note: The word "LeOSium" should NOT be translated --> + Cuando iniciaste la sesión y estás sincronizado, estás más seguro. LeOSium cifra tus contraseñas, marcadores y más. Iniciar sesión No ahora - Las notificaciones te ayudan a mantenerte más seguro con Firefox + Note: The word "LeOSium" should NOT be translated --> + Las notificaciones te ayudan a mantenerte más seguro con LeOSium - Enviá pestañas entre dispositivos de forma segura y descubrí otras funciones de privacidad de Firefox. + Note: The word "LeOSium" should NOT be translated --> + Enviá pestañas entre dispositivos de forma segura y descubrí otras funciones de privacidad de LeOSium. Habilitar notificaciones No ahora - Probá el widget de búsqueda de Firefox + Note: The word "LeOSium" should NOT be translated --> + Probá el widget de búsqueda de LeOSium - Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. - Agregar widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Agregar widget de LeOSium No ahora @@ -420,10 +435,10 @@ Sugerencias de buscadores Preferencias de la barra de direcciones - - Barra de direcciones - Sugerencias de Firefox - - Más información sobre las sugerencias de Firefox + + Barra de direcciones - Sugerencias de LeOSium + + Más información sobre las sugerencias de LeOSium Calificarlo en Google Play Sitio seguro no disponible - Lo más probable es que el sitio web simplemente no sea compatible con HTTPs. + Lo más probable es que el sitio web simplemente no sea compatible con HTTPS. Sin embargo, también es posible que un atacante esté involucrado. Si continúa al sitio web, no debe ingresar ninguna información sensible. Si continúa, el modo solo HTTPS se desactivará temporalmente para el sitio. @@ -561,15 +576,15 @@ Autocompletar URLs - + Sugerencias de patrocinadores - Ayudar a %1$s con sugerencias patrocinadas ocasionales - Sugerencias de %1$s - + Obtener sugerencias de la web relacionadas con tu búsqueda Abrir enlaces en aplicaciones @@ -650,7 +665,7 @@ Conocer más - + %s clásico Serie de artista @@ -668,8 +683,8 @@ Nuevos complementos disponibles ahora - - Descubrí más de 100 extensiones nuevas que te permiten personalizar Firefox. + + Descubrí más de 100 extensiones nuevas que te permiten personalizar LeOSium. Explorar complementos @@ -697,9 +712,9 @@ Marcadores - Inicios de sesión + Inicios de sesión - Contraseñas + Contraseñas Pestañas abiertas @@ -727,9 +742,9 @@ %1$s en %2$s %3$s - Tarjetas de crédito + Tarjetas de crédito - Métodos de pago + Métodos de pago Direcciones @@ -737,7 +752,7 @@ Pestañas recibidas - Notificaciones de pestañas recibidas de otros dispositivos Firefox. + Notificaciones de pestañas recibidas de otros dispositivos LeOSium. Pestaña recibida @@ -924,7 +939,7 @@ Eliminar Activo - + %1$s puede instalar y ejecutar estudios de vez en cuando. Conocer más @@ -1307,7 +1322,7 @@ Conectar otro dispositivo - Para enviar una pestaña, iniciá sesión en Firefox en al menos un dispositivo más. + Para enviar una pestaña, iniciá sesión en LeOSium en al menos un dispositivo más. Entendido @@ -1336,10 +1351,10 @@ - Firefox es rápido y privado + LeOSium es rápido y privado - Hacé que Firefox sea tu navegador predeterminado + Hacé que LeOSium sea tu navegador predeterminado Probá la navegación privada - Ayudá a mejorar Firefox haciendo una encuesta corta. + Ayudá a mejorar LeOSium haciendo una encuesta corta. Realizar encuesta @@ -1508,16 +1523,16 @@ Escanear el código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Iniciá sesión con tu cámara Usá el correo electrónico en su lugar - - Creá una para sincronizar Firefox entre dispositivos.]]> - + + Creá una para sincronizar LeOSium entre dispositivos.]]> + %s va a dejar de sincronizarse con tu cuenta, pero no se borrarán los datos de navegación del dispositivo. Desconectar @@ -1534,7 +1549,7 @@ Protección contra rastreo aumentada Ahora con protección total de cookies, nuestra barrera más poderosa hasta hoy contra rastreadores de sitios cruzados. - + %s te protege de muchos de los rastreadores más comunes que siguen lo que hacés en línea. Conocer más @@ -1685,20 +1700,20 @@ Podés agregar este sitio a la pantalla de inicio del dispositivo fácilmente para tener acceso instantáneo y navegar más rápido con una experiencia similar a la de una aplicación. - Inicios de sesión y contraseñas + Inicios de sesión y contraseñas - Contraseñas + Contraseñas - Guardar inicios de sesión y contraseñas + Guardar inicios de sesión y contraseñas - Guardar contraseñas + Guardar contraseñas Solicitar guardar Nunca guardar - + Autocompletar en %1$s - + Completar y guardar nombres de usuario y contraseñas en sitios web mientras se usa %1$s. Autocompletar en otras aplicaciones @@ -1706,47 +1721,47 @@ Completar nombres de usuario y contraseñas en otras aplicaciones de tu dispositivo. - Agregar inicio de sesión + Agregar inicio de sesión - Agregar contraseña + Agregar contraseña - - Sincronizar inicios de sesión - Sincronizar contraseñas + Sincronizar inicios de sesión + + Sincronizar contraseñas - Sincronizar inicios de sesión entre dispositivos + Sincronizar inicios de sesión entre dispositivos - Sincronizar contraseñas entre dispositivos + Sincronizar contraseñas entre dispositivos - Inicios de sesión guardados + Inicios de sesión guardados - Contraseñas guardadas + Contraseñas guardadas - Aquí se van a ver los inicios de sesión que guardes o sincronices con %s. + Aquí se van a ver los inicios de sesión que guardes o sincronices con %s. - Las contraseñas que guardés o sincronicés con %s aparecerán acá. Todas las contraseñas que guardés están encriptadas. + Las contraseñas que guardés o sincronicés con %s aparecerán acá. Todas las contraseñas que guardés están encriptadas. - Conocé más acerca de Sync. + Conocé más acerca de Sync. - Conocé más acerca de la sincronización + Conocé más acerca de la sincronización Excepciones - Los inicios de sesión y las contraseñas que no se guardan se mostrarán aquí. + Los inicios de sesión y las contraseñas que no se guardan se mostrarán aquí. - %s no guardará las contraseñas de los sitios listados acá. + %s no guardará las contraseñas de los sitios listados acá. - Los inicios de sesión y las contraseñas no se van a guardar para estos sitios. + Los inicios de sesión y las contraseñas no se van a guardar para estos sitios. - %s no guardará las contraseñas de estos sitios. + %s no guardará las contraseñas de estos sitios. Eliminar todas las excepciones - Buscar inicios de sesión + Buscar inicios de sesión - Buscar contraseñas + Buscar contraseñas Sitio @@ -1774,17 +1789,17 @@ Ocultar contraseña - Desbloqueá para ver tus inicios de sesión guardados + Desbloqueá para ver tus inicios de sesión guardados - Desbloqueá para ver las contraseñas guardadas + Desbloqueá para ver las contraseñas guardadas - Asegurá inicios de sesión y contraseñas + Asegurá inicios de sesión y contraseñas - Asegurá tus contraseñas guardadas + Asegurá tus contraseñas guardadas - Configurá un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus inicios de sesión y contraseñas guardadas por si alguien más tiene tu dispositivo. + Configurá un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus inicios de sesión y contraseñas guardadas por si alguien más tiene tu dispositivo. - Configurá un patrón de bloqueo del dispositivo, PIN o contraseña para proteger el acceso a tus contraseñas guardadas si alguien más tiene tu dispositivo. + Configurá un patrón de bloqueo del dispositivo, PIN o contraseña para proteger el acceso a tus contraseñas guardadas si alguien más tiene tu dispositivo. Más tarde @@ -1801,10 +1816,10 @@ Usado por última vez - Ordenar menú de inicio de sesión + Ordenar menú de inicio de sesión - Menú ordenar contraseñas + Menú ordenar contraseñas @@ -1812,43 +1827,43 @@ Direcciones - Tarjetas de crédito + Tarjetas de crédito - Métodos de pago + Métodos de pago - Guardar y autocompletar tarjetas + Guardar y autocompletar tarjetas - Guardar y completar métodos de pago + Guardar y completar métodos de pago - Los datos están cifrados + Los datos están cifrados - %s cifra todos los métodos de pago guardados + %s cifra todos los métodos de pago guardados Sincronizar tarjetas entre dispositivos Sincronizar tarjetas - Agregar tarjeta de crédito + Agregar tarjeta de crédito - Agregar tarjeta + Agregar tarjeta - Administrar tarjetas guardadas + Administrar tarjetas guardadas - Administrar tarjetas + Administrar tarjetas Agregar dirección Administrar direcciones - Guardar y autocompletar direcciones + Guardar y autocompletar direcciones - Guardar y completar direcciones + Guardar y completar direcciones - Incluir información como números, correos electrónicos y direcciones de envíos + Incluir información como números, correos electrónicos y direcciones de envíos - Incluye números de teléfono y direcciones de correo electrónico + Incluye números de teléfono y direcciones de correo electrónico Agregar tarjeta @@ -1869,9 +1884,9 @@ Borrar tarjeta - ¿Estás seguro de querer borrar esta tarjeta de crédito? + ¿Estás seguro de querer borrar esta tarjeta de crédito? - ¿Borrar tarjeta? + ¿Borrar tarjeta? Borrar @@ -1885,25 +1900,25 @@ Tarjetas guardadas - Ingresá un número de tarjeta de crédito válido + Ingresá un número de tarjeta de crédito válido - Ingresá un número de tarjeta válido + Ingresá un número de tarjeta válido - Se debe completar este campo + Se debe completar este campo - Agregar un nombre + Agregar un nombre Desbloqueá para ver las tarjetas guardadas - Asegurá tus tarjetas de crédito + Asegurá tus tarjetas de crédito - Asegurá tus métodos de pago guardados + Asegurá tus métodos de pago guardados - Configurá un patrón de bloqueo del dispositivo, PIN o contraseña para proteger el acceso a tus tarjetas de crédito guardadas si alguien más tiene tu dispositivo. + Configurá un patrón de bloqueo del dispositivo, PIN o contraseña para proteger el acceso a tus tarjetas de crédito guardadas si alguien más tiene tu dispositivo. - Configurá un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus métodos de pago guardados por si otra persona accede a tu dispositivo. + Configurá un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus métodos de pago guardados por si otra persona accede a tu dispositivo. Configurar ahora @@ -1912,10 +1927,10 @@ Desbloqueá tu dispositivo - Desbloquear para usar la información almacenada de la tarjeta de crédito + Desbloquear para usar la información almacenada de la tarjeta de crédito - Desbloquear para usar los métodos de pago guardados + Desbloquear para usar los métodos de pago guardados Agregar dirección @@ -1923,11 +1938,13 @@ Administrar direcciones - Primer Nombre + Primer Nombre - Segundo nombre + Segundo nombre - Apellido + Apellido + + Nombre Dirección @@ -1952,9 +1969,9 @@ Borrar dirección - ¿Estás seguro de querer borrar esta dirección? + ¿Estás seguro de querer borrar esta dirección? - ¿Borrar esta dirección? + ¿Borrar esta dirección? Borrar @@ -2054,49 +2071,49 @@ Editar - ¿Estás seguro de que querés eliminar este inicio de sesión? + ¿Estás seguro de que querés eliminar este inicio de sesión? - ¿Estás seguro de que querés eliminar esta contraseña? + ¿Estás seguro de que querés eliminar esta contraseña? Eliminar Cancelar - Opciones de inicio de sesión + Opciones de inicio de sesión - Opciones de contraseña + Opciones de contraseña - El campo de texto editable para la dirección web del inicio de sesión. + El campo de texto editable para la dirección web del inicio de sesión. - El campo de texto editable para la dirección del sitio web. + El campo de texto editable para la dirección del sitio web. - El campo de texto editable para el nombre de usuario del inicio de sesión. + El campo de texto editable para el nombre de usuario del inicio de sesión. - El campo de texto editable para el nombre de usuario. + El campo de texto editable para el nombre de usuario. - El campo de texto editable para la contraseña del inicio de sesión. + El campo de texto editable para la contraseña del inicio de sesión. - El campo de texto editable para la contraseña. + El campo de texto editable para la contraseña. - Guardar cambios para el inicio de sesión. + Guardar cambios para el inicio de sesión. - Guardar cambios. + Guardar cambios. - Editar + Editar - Editar contraseña + Editar contraseña - Agregar nuevo inicio de sesión + Agregar nuevo inicio de sesión - Agregar contraseña + Agregar contraseña - Se necesita contraseña + Se necesita contraseña - Ingresar una contraseña + Ingresar una contraseña - Se requiere nombre de usuario + Se requiere nombre de usuario - Ingresar un nombre de usuario + Ingresar un nombre de usuario Se requiere nombre de host @@ -2121,14 +2138,14 @@ Conectar otro dispositivo. Volver a autenticar. - + Habilitar sincronización de pestañas. - No tenés ninguna pestaña abierta en Firefox en tus otros dispositivos. - + No tenés ninguna pestaña abierta en LeOSium en tus otros dispositivos. + Ver una lista de pestañas de tus otros dispositivos. - + Iniciá sesión para sincronizar @@ -2181,7 +2198,7 @@ ¿Cerrar automáticamente después de un mes? - Firefox puede cerrar pestañas que no viste durante el último mes. + LeOSium puede cerrar pestañas que no viste durante el último mes. ACTIVAR EL CIERRE AUTOMÁTICO @@ -2189,8 +2206,8 @@ Cierre automático habilitado - - Sugerencia de Firefox + + Sugerencia de LeOSium Búsqueda de Google @@ -2201,7 +2218,7 @@ Cambiá tu navegador predeterminado - Configurar enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en Firefox. + Configurar enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en LeOSium. Eliminar @@ -2210,7 +2227,7 @@ Hacer clic aquí para más detalles - Navegar hacia arriba + Navegar hacia arriba Cerrar @@ -2225,7 +2242,7 @@ Impulsado por %s. - Parte de la familia de Firefox. %s + Parte de la familia de LeOSium. %s Conocer más @@ -2251,8 +2268,6 @@ Calificación ajustada - Revisiones no confiables eliminadas - Basado en revisiones confiables Destacados de revisiones recientes @@ -2308,10 +2323,6 @@ Si ves que este producto está nuevamente en stock, informanos y trabajaremos en verificar las revisiones. Informar que el producto está en stock - - Verificando la calidad de la revisión - - Verificando la calidad de la revisión Verificando la calidad de la revisión (%s) @@ -2348,22 +2359,28 @@ Verificar la calidad de la revisión Probá nuestra guía confiable de revisiones de productos - + Fijate que tan confiables son las revisiones de productos en %1$s antes de comprar. El verificador de revisiones, una funcionalidad experimental de %2$s, está integrado en el navegador. Funciona también en %3$s y %4$s. - + Fijate que tan confiables son las revisiones de productos en %1$s antes de comprar. El verificador de revisiones, una funcionalidad experimental de %2$s, está integrado en el navegador. Usando el poder de %1$s de Mozilla, te ayudamos a evitar revisiones sesgadas y no auténticas. Nuestro modelo de IA siempre está mejorando para protegerte mientras comprás. %2$s Conocer más - Al seleccionar “Si, probarlo” Estás de acuerdo con %1$s de Mozilla %2$s y %3$s. + Al seleccionar “Si, probarlo” Estás de acuerdo con %1$s de Mozilla %2$s y %3$s. Al seleccionar “Sí, probarlo” aceptás lo siguiente de %1$s: + + Al seleccionar “Si, probarlo” Estás de acuerdo con %2$s de %1$s y %4$s de %3$s. + + Al seleccionar “Si, probarlo” Estás de acuerdo con %2$s de %1$s y %4$s de %3$s. - política de privacidad + política de privacidad Política de privacidad + + nota de privacidad términos de uso @@ -2419,7 +2436,7 @@ abrir enlace para conocer más sobre esta colección leer el artículo - + abrir enlace para conocer más %s, encabezado @@ -2434,11 +2451,15 @@ ¿Traducir esta página? + + Página traducida de %1$s a %2$s Probar traducciones privadas en %1$s Para tu privacidad, las traducciones nunca salen de tu dispositivo. ¡Nuevos idiomas y mejoras próximamente! %1$s - + Conocer más Traducir de @@ -2446,6 +2467,8 @@ Traducir a No ahora + + Mostrar el original Listo @@ -2468,6 +2491,16 @@ Conocer más + + Traduciendo… + + + ¿Descargar idioma en modo de ahorro de datos (%1$s)? + + Opciones de traducción diff --git a/app/src/main/res/values-es-rCL/strings.xml b/app/src/main/res/values-es-rCL/strings.xml index 77c732b2..db0ccf85 100644 --- a/app/src/main/res/values-es-rCL/strings.xml +++ b/app/src/main/res/values-es-rCL/strings.xml @@ -55,7 +55,7 @@ Eliminar - %1$s es producido por Mozilla. + %1$s es producido por harvey186. %1$s elimina tus cookies, historial y datos del sitio cuando cierras todas tus pestañas privadas. %2$s Traducir página + + Página traducida de %1$s a %2$s. + Idioma seleccionado @@ -329,13 +334,23 @@ - Aviso de privacidad de Firefox - + Aviso de privacidad de LeOSium + + Aprende más en nuestra política de privacidad Nos encanta mantenerte a salvo + + Averigua por qué millones de personas aman LeOSium + + Navegación segura con más opciones Nuestro navegador respaldado por una organización sin fines de lucro ayuda a evitar que las empresas te sigan en secreto por la web. + Más de 100 millones de personas protegen su privacidad eligiendo un navegador respaldado por una organización sin fines de lucro. + + ¿Rastreadores conocidos? Bloqueados automáticamente. ¿Extensiones? Prueba las 700. ¿PDF? Nuestro lector incorporado los hace fáciles de administrar. + Nuestro navegador respaldado por una organización sin fines de lucro ayuda a evitar que las empresas te sigan en secreto en la web.\n\nObtén más información en nuestro aviso de privacidad. @@ -347,32 +362,32 @@ Mantén todo cifrado cuando saltes entre dispositivos - Cuando te conectas y sincronizas, estás más seguro. Firefox cifra tus contraseñas, marcadores y más. + Note: The word "LeOSium" should NOT be translated --> + Cuando te conectas y sincronizas, estás más seguro. LeOSium cifra tus contraseñas, marcadores y más. Conectarse Ahora no - Las notificaciones te ayudan a mantenerte más seguro con Firefox + Note: The word "LeOSium" should NOT be translated --> + Las notificaciones te ayudan a mantenerte más seguro con LeOSium - Envía pestañas entre dispositivos de forma segura y descubre otras funcionalidades de privacidad de Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envía pestañas entre dispositivos de forma segura y descubre otras funcionalidades de privacidad de LeOSium. Activar notificaciones Ahora no - Prueba el widget de búsqueda de Firefox + Note: The word "LeOSium" should NOT be translated --> + Prueba el widget de búsqueda de LeOSium - Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. - Añadir widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Añadir widget de LeOSium Ahora no @@ -412,10 +427,10 @@ Sugerencias de motores de búsqueda Preferencias de la barra de direcciones - - Barra de direcciones - Sugerencias de Firefox - - Aprende más sobre Firefox Suggest + + Barra de direcciones - Sugerencias de LeOSium + + Aprende más sobre LeOSium Suggest Calificar en Google Play Autocompletar URLs - + Sugerencias de patrocinadores - Apoya a %1$s con sugerencias patrocinadas ocasionales - Sugerencias de %1$s - + Recibe sugerencias de la web relacionadas con tu búsqueda Abrir enlaces en aplicaciones @@ -643,7 +658,7 @@ Aprender más - + %s clásico Serie de artistas @@ -661,8 +676,8 @@ Nuevos complementos ahora disponibles - - Echa un vistazo a más de 100 extensiones nuevas que te permiten personalizar Firefox. + + Echa un vistazo a más de 100 extensiones nuevas que te permiten personalizar LeOSium. Explorar complementos @@ -690,9 +705,9 @@ Marcadores - Credenciales + Credenciales - Contraseñas + Contraseñas Pestañas abiertas @@ -718,9 +733,9 @@ %1$s en %2$s %3$s - Tarjetas de crédito + Tarjetas de crédito - Métodos de pago + Métodos de pago Direcciones @@ -728,7 +743,7 @@ Pestañas recibidas - Notificaciones de pestañas recibidas desde otros dispositivos Firefox. + Notificaciones de pestañas recibidas desde otros dispositivos LeOSium. Pestaña recibida @@ -909,7 +924,7 @@ Eliminar Activo - + %1$s podría instalar y realizar experimentos de vez en cuando. Aprender más @@ -1284,7 +1299,7 @@ Conectar otro dispositivo - Para enviar una pestaña, conéctate a Firefox en al menos otro dispositivo. + Para enviar una pestaña, conéctate a LeOSium en al menos otro dispositivo. Entendido @@ -1312,10 +1327,10 @@ - Firefox es rápido y privado + LeOSium es rápido y privado - Establece Firefox como tu navegador predeterminado + Establece LeOSium como tu navegador predeterminado Prueba la navegación privada - Ayuda a mejorar Firefox respondiendo una breve encuesta. + Ayuda a mejorar LeOSium respondiendo una breve encuesta. Responder encuesta @@ -1482,16 +1497,16 @@ Escanear el código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Conéctate con tu cámara O usa tu correo - - Crea una para sincronizar Firefox entre dispositivos.]]> - + + Crea una para sincronizar LeOSium entre dispositivos.]]> + %s dejará de sincronizarse con tu cuenta, pero no se borrarán los datos de navegación del dispositivo. Desconectar @@ -1507,7 +1522,7 @@ Protección de seguimiento mejorada Ahora con protección total contra cookies, nuestra barrera más poderosa hasta el momento contra los rastreadores entre sitios. - + %s te protege de la mayoría de los rastreadores comunes que siguen lo que haces en línea. Aprender más @@ -1658,20 +1673,20 @@ Puedes añadir fácilmente este sitio web a tu pantalla de inicio de tu dispositivo para tener acceso instantáneo y navegar rápidamente, consiguiendo una experiencia similar a la de una aplicación real. - Credenciales y contraseñas + Credenciales y contraseñas - Contraseñas + Contraseñas - Guardar credenciales y contraseñas + Guardar credenciales y contraseñas - Guardar contraseñas + Guardar contraseñas Preguntar si guardar Nunca guardar - + Autocompletar en %1$s - + Completa y guarda nombres de usuario y contraseñas en sitios web mientras usas %1$s. Autocompletar en otras apps @@ -1679,48 +1694,48 @@ Completa los nombres de usuario y contraseñas en otras aplicaciones de tu dispositivo. - Añadir conexión + Añadir conexión - Añadir contraseña + Añadir contraseña - - Sincronizar credenciales - Sincronizar contraseñas + Sincronizar credenciales + + Sincronizar contraseñas - Sincronizar credenciales en todos los dispositivos + Sincronizar credenciales en todos los dispositivos - Sincronizar contraseñas entre dispositivos + Sincronizar contraseñas entre dispositivos - Credenciales guardadas + Credenciales guardadas - Contraseñas guardadas + Contraseñas guardadas - Las credenciales que guardas o sincronizas con %s serán mostradas aquí. + Las credenciales que guardas o sincronizas con %s serán mostradas aquí. - Las contraseñas que guardes o sincronices con %s aparecerán aquí. Todas las contraseñas que guardes quedan cifradas. + Las contraseñas que guardes o sincronices con %s aparecerán aquí. Todas las contraseñas que guardes quedan cifradas. - Aprender más acerca de Sync. + Aprender más acerca de Sync. - Aprende más acerca de la sincronización + Aprende más acerca de la sincronización Excepciones - Las credenciales y contraseñas que no son guardadas serán mostradas aquí. + Las credenciales y contraseñas que no son guardadas serán mostradas aquí. - %s no guardará las contraseñas de los sitios listados aquí. + %s no guardará las contraseñas de los sitios listados aquí. - Las credenciales y contraseñas no serán guardadas para estos sitios. + Las credenciales y contraseñas no serán guardadas para estos sitios. - %s no guardará las contraseñas para estos sitios. + %s no guardará las contraseñas para estos sitios. Eliminar todas las excepciones - Buscar credenciales + Buscar credenciales - Buscar contraseñas + Buscar contraseñas Sitio @@ -1748,17 +1763,17 @@ Ocultar contraseña - Desbloquea para ver tus credenciales guardadas + Desbloquea para ver tus credenciales guardadas - Desbloquea para ver tus contraseñas guardadas + Desbloquea para ver tus contraseñas guardadas - Asegura tus credenciales y contraseñas + Asegura tus credenciales y contraseñas - Asegura tus contraseñas guardadas + Asegura tus contraseñas guardadas - Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus credenciales y contraseñas guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus credenciales y contraseñas guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. - Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus contraseñas guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus contraseñas guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. Más tarde @@ -1776,10 +1791,10 @@ Último uso - Menú para ordenar credenciales + Menú para ordenar credenciales - Menú ordenar contraseñas + Menú ordenar contraseñas @@ -1787,43 +1802,43 @@ Direcciones - Tarjetas de crédito + Tarjetas de crédito - Métodos de pago + Métodos de pago - Guardar y autocompletar tarjetas + Guardar y autocompletar tarjetas - Guardar y completar métodos de pago + Guardar y completar métodos de pago - Los datos están encriptados + Los datos están encriptados - %s cifra todos los métodos de pago que guardas + %s cifra todos los métodos de pago que guardas Sincronizar tarjetas entre dispositivos Sincronizar tarjetas - Añadir tarjeta de crédito + Añadir tarjeta de crédito - Añadir tarjeta + Añadir tarjeta - Gestionar tarjetas guardadas + Gestionar tarjetas guardadas - Gestionar tarjetas + Gestionar tarjetas Añadir dirección Administrar direcciones - Guardar y autocompletar direcciones + Guardar y autocompletar direcciones - Guardar y completar direcciones + Guardar y completar direcciones - Incluye información como números, correos electrónicos y direcciones + Incluye información como números, correos electrónicos y direcciones - Incluye números de teléfono y direcciones de correo electrónico + Incluye números de teléfono y direcciones de correo electrónico Añadir tarjeta @@ -1844,9 +1859,9 @@ Eliminar tarjeta - ¿De verdad quieres eliminar esta tarjeta de crédito? + ¿De verdad quieres eliminar esta tarjeta de crédito? - ¿Eliminar tarjeta? + ¿Eliminar tarjeta? Eliminar @@ -1860,24 +1875,24 @@ Tarjetas guardadas - Por favor, ingresa un número de tarjeta de crédito válido + Por favor, ingresa un número de tarjeta de crédito válido - Ingresa un número de tarjeta válido + Ingresa un número de tarjeta válido - Complete este campo + Complete este campo - Añadir un nombre + Añadir un nombre Desbloquea para ver tus tarjetas guardadas - Asegura tus tarjetas de crédito + Asegura tus tarjetas de crédito - Asegura tus métodos de pago guardados + Asegura tus métodos de pago guardados - Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus tarjetas de crédito guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus tarjetas de crédito guardadas, y así no sean accedidas si alguien más tiene tu dispositivo. - Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus métodos de pago guardados, y así no sean accedidos si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus métodos de pago guardados, y así no sean accedidos si alguien más tiene tu dispositivo. Configurar ahora @@ -1885,10 +1900,10 @@ Desbloquea tu dispositivo - Desbloquea para usar información de la tarjeta de crédito almacenada + Desbloquea para usar información de la tarjeta de crédito almacenada - Desbloquea para usar métodos de pago guardados + Desbloquea para usar métodos de pago guardados Añadir dirección @@ -1896,11 +1911,13 @@ Administrar direcciones - Primer nombre + Primer nombre - Segundo nombre + Segundo nombre - Apellidos + Apellidos + + Nombre Dirección @@ -1925,9 +1942,9 @@ Eliminar dirección - ¿De verdad quieres eliminar esta dirección? + ¿De verdad quieres eliminar esta dirección? - ¿Eliminar esta dirección? + ¿Eliminar esta dirección? Eliminar @@ -2025,49 +2042,49 @@ Editar - ¿De verdad quieres eliminar esta conexión? + ¿De verdad quieres eliminar esta conexión? - ¿Estas seguro de eliminar esta contraseña? + ¿Estas seguro de eliminar esta contraseña? Eliminar Cancelar - Opciones de credenciales + Opciones de credenciales - Opciones de contraseña + Opciones de contraseña - El campo de texto editable para la dirección web de la credencial. + El campo de texto editable para la dirección web de la credencial. - El campo de texto editable para la dirección del sitio web. + El campo de texto editable para la dirección del sitio web. - El campo de texto editable para el nombre de usuario de la credencial. + El campo de texto editable para el nombre de usuario de la credencial. - El campo de texto editable para el nombre de usuario. + El campo de texto editable para el nombre de usuario. - El campo de texto editable para la contraseña de la credencial. + El campo de texto editable para la contraseña de la credencial. - El campo de texto editable para la contraseña. + El campo de texto editable para la contraseña. - Guardar cambios a la credencial. + Guardar cambios a la credencial. - Guardar cambios. + Guardar cambios. - Editar + Editar - Editar contraseña + Editar contraseña - Añadir nueva credencial + Añadir nueva credencial - Añadir contraseña + Añadir contraseña - Contraseña requerida + Contraseña requerida - Ingresar una contraseña + Ingresar una contraseña - Nombre de usuario requerido + Nombre de usuario requerido - Ingresar un nombre de usuario + Ingresar un nombre de usuario Nombre de servidor requerido @@ -2092,13 +2109,13 @@ Conectar otro dispositivo. Por favor, vuelve a autentificarte. - + Por favor, habilita la sincronización de pestañas. - No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. - + No tienes ninguna pestaña abierta en LeOSium en tus otros dispositivos. + Ver una lista de las pestañas de tus otros dispositivos. - + Conectarse para sincronizar @@ -2150,7 +2167,7 @@ ¿Cerrar automáticamente después de un mes? - Firefox puede cerrar pestañas que no has visto durante el último mes. + LeOSium puede cerrar pestañas que no has visto durante el último mes. ACTIVAR CIERRE AUTOMÁTICO @@ -2158,8 +2175,8 @@ Cierre automático activado - - Sugerencias de Firefox + + Sugerencias de LeOSium Búsqueda de Google @@ -2167,7 +2184,10 @@ Buscar con %s - Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en Firefox. + + Cambia tu navegador predeterminado + + Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en LeOSium. Eliminar @@ -2176,7 +2196,7 @@ Clic para más detalles - Navegar hacia arriba + Navegar hacia arriba Cerrar @@ -2191,7 +2211,7 @@ Con la tecnología de %s. - Parte de la familia Firefox. %s + Parte de la familia LeOSium. %s Aprender más @@ -2217,8 +2237,6 @@ Calificación ajustada - Se eliminaron las reseñas poco confiables - Basado en revisiones confiables Aspectos destacados de reseñas recientes @@ -2275,10 +2293,6 @@ Si ves que este producto vuelve a estar disponible, infórmalo y trabajaremos para verificar las reseñas. Informar que el producto está en stock - - Comprobando la calidad de la reseña - - Comprobando la calidad de la reseña Comprobando la calidad de la reseña (%s) @@ -2315,22 +2329,28 @@ Comprobar la calidad de la reseña Prueba nuestra guía confiable de reseñas de productos - + Mira cuán confiables son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. También funciona en %3$s y %4$s. - + Mira cuán confiables son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. Usando el poder de %1$s de Mozilla, te ayudamos a evitar reseñas sesgadas y no auténticas. Nuestro modelo de IA siempre está mejorando para protegerte mientras compras. %2$s Aprender más - Al seleccionar “Sí, probarlo”, aceptas la %2$s y %3$s de %1$s de Mozilla. + Al seleccionar “Sí, probarlo”, aceptas la %2$s y %3$s de %1$s de Mozilla. Al seleccionar "Sí, probarlo", aceptas lo siguiente de %1$s: + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. - política de privacidad + política de privacidad Política de privacidad + + política de privacidad términos de uso @@ -2386,7 +2406,7 @@ abrir enlace para aprender más acerca de esta colección leer el artículo - + abrir enlace para aprender más %s, Cabecera @@ -2401,11 +2421,15 @@ ¿Traducir esta página? + + Página traducida de %1$s a %2$s Prueba traducciones privadas en %1$s Para tu privacidad, las traducciones nunca salen de tu dispositivo. ¡Próximamente nuevos idiomas y mejoras! %1$s - + Aprender más Traducir desde @@ -2413,6 +2437,8 @@ Traducir a Ahora no + + Mostrar original Hecho @@ -2435,6 +2461,16 @@ Aprender más + + Traduciendo… + + + ¿Descargar idioma en modo de ahorro de datos (%1$s)? + + Opciones de traducción diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 076c77a5..80c433d4 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -59,7 +59,7 @@ Eliminar - %1$s es producido por Mozilla. + %1$s es producido por harvey186. %1$s elimina tus cookies, historial y datos del sitio cuando cierras todas tus pestañas privadas. %2$s Personalizar la página de inicio + Pantalla de inicio @@ -254,6 +255,14 @@ Eliminar historial de navegación + + Traducir página + + + Página traducida de %1$s a %2$s. + Idioma seleccionado @@ -265,8 +274,6 @@ Escanear - - Buscador Ajustes del buscador @@ -322,24 +329,34 @@ - Las notificaciones te ayudan a hacer más con %s + Las notificaciones te ayudan a hacer más con %s - Sincroniza tus pestañas entre dispositivos, administra descargas, obtén consejos sobre cómo aprovechar al máximo la protección de privacidad de %s y más. + Sincroniza tus pestañas entre dispositivos, administra descargas, obtén consejos sobre cómo aprovechar al máximo la protección de privacidad de %s y más. - Continuar + Continuar - Ahora no + Ahora no - Aviso de privacidad de Firefox - + Aviso de privacidad de LeOSium + + Saber más en nuestro aviso de privacidad Nos encanta mantenerte a salvo + + Descubre por qué millones aman LeOSium + + Navegación segura con más opciones Nuestro navegador respaldado por una organización sin ánimo de lucro ayuda a evitar que las empresas te sigan en secreto por la web. + Más de 100 millones de personas protegen su privacidad eligiendo un navegador respaldado por una organización sin ánimo de lucro. + + ¿Rastreadores conocidos? Bloqueados automáticamente. ¿Extensiones? Más de 700. ¿PDF? Nuestro lector incorporado los hace fáciles de administrar. + Nuestro navegador respaldado por una organización sin ánimo de lucro ayuda a evitar que las empresas te sigan en secreto en la web.\n\nMás información en nuestro aviso de privacidad. @@ -351,32 +368,32 @@ Mantén todo cifrado cuando pases de un dispositivo a otro - Tras iniciar sesión y sincronizar, estás más seguro. Firefox cifra tus contraseñas, marcadores y más. + Note: The word "LeOSium" should NOT be translated --> + Tras iniciar sesión y sincronizar, estás más seguro. LeOSium cifra tus contraseñas, marcadores y más. Iniciar sesión Ahora no - Las notificaciones te ayudan a estar más seguro con Firefox + Note: The word "LeOSium" should NOT be translated --> + Las notificaciones te ayudan a estar más seguro con LeOSium - Envía pestañas de forma segura entre tus dispositivos y descubre otras funciones de privacidad en Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envía pestañas de forma segura entre tus dispositivos y descubre otras funciones de privacidad en LeOSium. Activar notificaciones Ahora no - Prueba el widget de búsqueda de Firefox + Note: The word "LeOSium" should NOT be translated --> + Prueba el widget de búsqueda de LeOSium - Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. - Añadir widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Añadir widget de LeOSium Ahora no @@ -418,10 +435,10 @@ Sugerencias de buscadores Preferencias de la barra de direcciones - - Barra de direcciones - Sugerencias de Firefox - - Saber más sobre Firefox Suggest + + Barra de direcciones - Sugerencias de LeOSium + + Saber más sobre LeOSium Suggest Calificar en Google Play Modo solo HTTPS - - Reducción de avisos de cookies Bloqueador de avisos de cookies Bloqueador de avisos de cookies en navegación privada - - Reducir los avisos de cookies - - Desactivado - - Activado - - %1$s intenta rechazar automáticamente las solicitudes de cookies en los avisos de cookies. Desactivada para este sitio @@ -480,35 +487,16 @@ Sitio actualmente no compatible - ¿Activar la reducción de aviso de cookies para %1$s? - ¿Activar el bloqueo de aviso de cookies para %1$s? - ¿Desactivar la reducción de aviso de cookies para %1$s? - ¿Desactivar el bloqueo de aviso de cookies para %1$s? %1$s no puede rechazar automáticamente los avisos de cookies en este sitio. Puede enviar una solicitud para admitir este sitio en el futuro. - - %1$s borrará las cookies de este sitio y recargará la página. Borrar todas las cookies puede cerrar tu sesión o vaciar los carritos de compras. Tras desactivarlo, %1$s borrará las cookies y recargará la página. Esto puede desconectarte del sitio o vaciar tu carrito de compra. - %1$s intenta rechazar automáticamente las solicitudes de cookies en sitios compatibles. - Al activarlo %1$s intentará rechazar automáticamente los avisos de cookies en este sitio. - - ¿Permitir que %1$s rechace los avisos de cookies? - - %1$s puede rechazar automáticamente muchas solicitudes de cookies. - - Ahora no - - Verás menos solicitudes de cookies - - - Permitir %1$s acaba de rechazar las cookies por ti @@ -588,15 +576,15 @@ Autocompletar URLs - + Sugerencias de patrocinadores - Apoya a %1$s con sugerencias patrocinadas ocasionales - Sugerencias de %1$s - + Recibir sugerencias de la web relacionadas con tu búsqueda Abrir enlaces en aplicaciones @@ -677,7 +665,7 @@ Saber más - + %s clásico Series de artistas @@ -695,8 +683,8 @@ Nuevos complementos disponibles ahora - - Descubre más de 100 nuevas extensiones que te permiten personalizar Firefox. + + Descubre más de 100 nuevas extensiones que te permiten personalizar LeOSium. Explorar complementos @@ -724,7 +712,9 @@ Marcadores - Inicios de sesión + Inicios de sesión + + Contraseñas Pestañas abiertas @@ -750,7 +740,9 @@ %1$s en %2$s %3$s - Tarjetas de crédito + Tarjetas de crédito + + Métodos de pago Direcciones @@ -758,7 +750,7 @@ Pestañas recibidas - Notificaciones para pestañas recibidas de otros dispositivos Firefox. + Notificaciones para pestañas recibidas de otros dispositivos LeOSium. Pestaña recibida @@ -942,7 +934,7 @@ Eliminar Activo - + %1$s puede instalar y ejecutar estudios de vez en cuando. Saber más @@ -1306,8 +1298,6 @@ Descartar - No se puede imprimir - No se puede imprimir esta página Imprimir @@ -1334,7 +1324,7 @@ Conectar otro dispositivo - Para enviar una pestaña, inicia sesión en Firefox al menos en otro dispositivo. + Para enviar una pestaña, inicia sesión en LeOSium al menos en otro dispositivo. Entendido @@ -1363,10 +1353,10 @@ - Firefox es rápido y privado + LeOSium es rápido y privado - Convertir Firefox en tu navegador predeterminado + Convertir LeOSium en tu navegador predeterminado Prueba la navegación privada - Ayúdanos a mejorar Firefox respondiendo a una pequeña encuesta. + Ayúdanos a mejorar LeOSium respondiendo a una pequeña encuesta. Realizar encuesta @@ -1541,16 +1531,16 @@ Escanear el código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Inicia sesión con tu cámara Usa el correo electrónico - - Crea una para sincronizar Firefox entre dispositivos.]]> - + + Crea una para sincronizar LeOSium entre dispositivos.]]> + %s dejará de sincronizarse con tu cuenta, pero no se borrarán los datos de navegación de este dispositivo. Desconectar @@ -1567,7 +1557,7 @@ Protección contra rastreo mejorada Ahora con protección Total Cookie Protection, nuestra barrera más poderosa hasta hoy contra rastreadores de sitios cruzados. - + %s te protege de muchos de los rastreadores más comunes que vigilan lo que haces en línea. Leer más @@ -1719,18 +1709,22 @@ Puedes añadir fácilmente este sitio web a la pantalla de inicio de tu dispositivo para tener acceso instantáneo y navegar rápidamente, consiguiendo una experiencia similar a la de una aplicación real. - Inicios de sesión y contraseñas + Inicios de sesión y contraseñas + + Contraseñas - Guardar inicios de sesión y contraseñas + Guardar inicios de sesión y contraseñas + + Guardar contraseñas Preguntar antes de guardar No guardar nunca - + Rellenar automáticamente en %1$s - + Completar y guardar nombres de usuario y contraseñas en páginas web al usar %1$s. Autocompletar en otras aplicaciones. @@ -1738,28 +1732,47 @@ Completar nombres de usuarios y contraseñas en otras aplicaciones de tu dispositivo. - Añadir cuenta + Añadir cuenta - - Inicios de sesión sincronizados + + Añadir contraseña + + + Inicios de sesión sincronizados + + Sincronizar contraseñas - Sincronizar inicios de sesión entre dispositivos + Sincronizar inicios de sesión entre dispositivos + + Sincronizar contraseñas entre dispositivos - Inicios de sesión guardados + Inicios de sesión guardados + + Contraseñas guardadas - Los inicios de sesión que guardes o sincronices con %s se mostrarán aquí. + Los inicios de sesión que guardes o sincronices con %s se mostrarán aquí. + + Las contraseñas que guardes o sincronices con %s aparecerán aquí. Todas las contraseñas que guardes quedan cifradas. - Saber más sobre Sync. + Saber más sobre Sync. + + Descubre más sobre Sync Excepciones - Los inicios de sesión y contraseñas no guardados aparecerán aquí. + Los inicios de sesión y contraseñas no guardados aparecerán aquí. + + %s no guardará contraseñas para los sitios que se listen aquí. - No se guardarán los inicios de sesión y contraseñas para estos sitios. + No se guardarán los inicios de sesión y contraseñas para estos sitios. + + %s no guardará las contraseñas para estos sitios. Eliminar todas las excepciones - Buscar inicios de sesión + Buscar inicios de sesión + + Buscar contraseñas Sitio @@ -1787,11 +1800,17 @@ Ocultar contraseña - Desbloquear para ver tus inicios de sesión guardados + Desbloquear para ver tus inicios de sesión guardados + + Desbloquea para ver tus contraseñas guardadas - Asegurar tus usuarios y contraseñas + Asegurar tus usuarios y contraseñas + + Asegura tus contraseñas guardadas - Configura un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus usuarios y contraseñas guardados si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus usuarios y contraseñas guardados si alguien más tiene tu dispositivo. + + Establece un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus contraseñas guardadas y evitar que sean accedidas por otras personas en caso de que alguien más tenga tu dispositivo. Más tarde @@ -1810,7 +1829,10 @@ Usado por última vez - Ordenar menú de inicio de sesión + Ordenar menú de inicio de sesión + + + Menú ordenar contraseñas @@ -1818,29 +1840,44 @@ Direcciones - Tarjetas de crédito + Tarjetas de crédito + + Métodos de pago - Guardar y autocompletar tarjetas + Guardar y autocompletar tarjetas + + Guardar y completar métodos de pago - Los datos están cifrados + Los datos están cifrados + + %s cifra todos los métodos de pago que guardes Sincronizar tarjetas entre dispositivos Sincronizar tarjetas - Añadir tarjeta de crédito + Añadir tarjeta de crédito + + Añadir tarjeta - Administrar tarjetas guardadas + Administrar tarjetas guardadas + + Administrar tarjetas Añadir dirección Administrar direcciones - Guardar y autocompletar direcciones + Guardar y autocompletar direcciones + + Guardar y completar direcciones - Incluir información como números, correos electrónicos y direcciones de envío + Incluir información como números, correos electrónicos y direcciones de envío + + + Incluye números de teléfono y direcciones de correo electrónico Añadir tarjeta @@ -1861,7 +1898,9 @@ Eliminar tarjeta - ¿Seguro que quieres eliminar esta tarjeta de crédito? + ¿Seguro que quieres eliminar esta tarjeta de crédito? + + ¿Eliminar tarjeta? Eliminar @@ -1875,16 +1914,24 @@ Tarjetas guardadas - Por favor, escriba un número válido de tarjeta de crédito + Por favor, escriba un número válido de tarjeta de crédito + + Introduce un número de tarjeta válido - Por favor, rellena este campo + Por favor, rellena este campo + + Añadir un nombre Desbloquear para ver tus tarjetas guardadas - Asegurar tus tarjetas de crédito + Asegurar tus tarjetas de crédito + + Protege tus métodos de pago guardados - Configura un patrón de bloqueo, PIN o contraseña para proteger el acceso a tus tarjetas guardadas si alguien más accede a tu dispositivo. + Configura un patrón de bloqueo, PIN o contraseña para proteger el acceso a tus tarjetas guardadas si alguien más accede a tu dispositivo. + + Establece un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus métodos de pago guardados y evitar que sean accedidos por otras personas en caso de que alguien más tenga tu dispositivo. Configurar ahora @@ -1892,8 +1939,10 @@ Desbloquear tu dispositivo - Desbloquear para usar la información de la tarjeta de crédito almacenada + Desbloquear para usar la información de la tarjeta de crédito almacenada + + Desbloquea para utilizar métodos de pago guardados Añadir dirección @@ -1901,11 +1950,13 @@ Administrar direcciones - Nombre + Nombre - Segundo nombre + Segundo nombre - Apellidos + Apellidos + + Nombre Domicilio @@ -1930,7 +1981,9 @@ Eliminar dirección - ¿Seguro que quieres eliminar esta dirección? + ¿Seguro que quieres eliminar esta dirección? + + ¿Eliminar esta dirección? Eliminar @@ -2029,31 +2082,53 @@ Editar - ¿Seguro que quieres eliminar este inicio de sesión? + ¿Seguro que quieres eliminar este inicio de sesión? + + ¿Estás seguro de que quieres eliminar esta contraseña? Eliminar Cancelar - Opciones de inicio de sesión + Opciones de inicio de sesión + + Opciones de contraseña - El campo de texto editable para la dirección web del inicio de sesión. + El campo de texto editable para la dirección web del inicio de sesión. + + El campo de texto editable para la dirección del sitio web. - El campo de texto editable para el nombre de usuario del inicio de sesión. + El campo de texto editable para el nombre de usuario del inicio de sesión. + + El campo de texto editable para el nombre de usuario. - El campo de texto editable para la contraseña del inicio de sesión. + El campo de texto editable para la contraseña del inicio de sesión. + + El campo de texto editable para la contraseña. - Guardar cambios para el inicio de sesión. + Guardar cambios para el inicio de sesión. + + Guardar cambios. - Editar + Editar + + Editar contraseña - Añadir nueva cuenta + Añadir nueva cuenta + + Añadir contraseña - Se necesita contraseña + Se necesita contraseña + + Introduce una contraseña - Se requiere nombre de usuario + Se requiere nombre de usuario + + Introduce un nombre de usuario Se requiere nombre de servidor + + Introduce una dirección web Búsqueda por voz @@ -2074,14 +2149,14 @@ Conectar otro dispositivo. Por favor, vuelve a autentificarte. - + Por favor, activa la sincronización de pestañas. - No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. - + No tienes ninguna pestaña abierta en LeOSium en tus otros dispositivos. + Ver una lista de pestañas de tus otros dispositivos. - + Inicia sesión para sincronizar @@ -2133,7 +2208,7 @@ ¿Cerrar automáticamente después de un mes? - Firefox puede cerrar pestañas que no has visto durante el último mes. + LeOSium puede cerrar pestañas que no has visto durante el último mes. ACTIVAR EL CIERRE AUTOMÁTICO @@ -2141,8 +2216,8 @@ Cierre automático activado - - Firefox Suggest + + LeOSium Suggest Búsqueda de Google @@ -2150,7 +2225,10 @@ Buscar con %s - Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en Firefox. + + Cambia tu navegador predeterminado + + Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en LeOSium. Eliminar @@ -2159,7 +2237,7 @@ Clic para más detalles - Ir arriba + Ir arriba Cerrar @@ -2174,7 +2252,7 @@ Impulsado por %s. - Parte de la familia Firefox. %s + Parte de la familia LeOSium. %s Saber más @@ -2200,8 +2278,6 @@ Calificación ajustada - Se han eliminado las reseñas no fiables - Basado en revisiones fiables Aspectos destacados de reseñas recientes @@ -2223,8 +2299,6 @@ puntos destacados provienen de reseñas de %s de los últimos 80 días que creemos que son fiables.]]> Saber más sobre %s. - - cómo %s de Mozilla determina la calidad de las reseñas cómo determina %s la calidad de las reseñas @@ -2259,10 +2333,6 @@ Si ves que este producto vuelve a estar disponible, infórmanos y trabajaremos para actualizar el análisis. Informar que el producto está en stock - - Comprobando la calidad de la reseña - - Comprobando la calidad de la reseña Comprobando la calidad de la reseña (%s) @@ -2299,22 +2369,28 @@ Comprobar la calidad de la reseña Prueba nuestra fiable guía de reseñas de productos - + Comprueba lo fiables que son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. También funciona en %3$s y %4$s. - + Comprueba lo fiables que son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. Utilizando la tecnología de %1$s de Mozilla, te ayudamos a evitar reseñas sesgadas y no auténticas. Nuestro modelo de IA siempre mejora para protegerte mientras compras. %2$s Saber más - Al seleccionar “Sí, probarlo”, aceptas %1$s de %2$s y %3$s de Mozilla. + Al seleccionar “Sí, probarlo”, aceptas %1$s de %2$s y %3$s de Mozilla. Al seleccionar “Sí, probarlo”, aceptas lo siguiente de %1$s: + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. - política de privacidad + política de privacidad Política de privacidad + + aviso de privacidad términos de uso @@ -2370,7 +2446,7 @@ abrir enlace para saber más sobre esta colección leer el artículo - + abrir enlace para saber más %s, Cabecera @@ -2385,11 +2461,15 @@ ¿Traducir esta página? + + Página traducida de %1$s a %2$s Probar traducciones privadas en %1$s Para tu privacidad, las traducciones nunca salen de tu dispositivo. ¡Nuevos idiomas y mejoras próximamente! %1$s - + Saber más Traducir del @@ -2397,6 +2477,8 @@ Traducir a Ahora no + + Mostrar original Hecho @@ -2408,6 +2490,8 @@ Traducción en curso + + Selecciona un idioma Ha surgido un problema al traducir. Por favor inténtalo de nuevo. @@ -2417,6 +2501,16 @@ Saber más + + Traduciendo… + + + ¿Descargar idioma en modo de ahorro de datos (%1$s)? + + Opciones de traducción @@ -2428,6 +2522,10 @@ No traducir nunca %1$s No traducir nunca este sitio + + Anula todas las demás configuraciones + + Anula las ofertas de traducción Ajustes de traducción diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml index 0b171fb9..b6c8ba93 100644 --- a/app/src/main/res/values-es-rMX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -68,7 +68,7 @@ No dejar rastros en este dispositivo %1$s elimina tus cookies, historial y datos del sitio cuando cierras todas tus pestañas privadas. %2$s - Agregar widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Agregar widget de LeOSium Ahora no @@ -384,10 +384,10 @@ Sugerencias de motores de búsqueda Preferencias de la barra de direcciones - - Barra de direcciones - Sugerencias de Firefox - - Saber más sobre Firefox Suggest + + Barra de direcciones - Sugerencias de LeOSium + + Saber más sobre LeOSium Suggest Calificar en Google Play Saber más - + Clásico %s Prueba un toque de color @@ -669,7 +669,7 @@ Pestañas recibidas - Notificaciones de pestañas recibidas desde otros dispositivos Firefox. + Notificaciones de pestañas recibidas desde otros dispositivos LeOSium. Pestaña recibida @@ -851,7 +851,7 @@ Eliminar Activo - + %1$s puede instalar y ejecutar estudios de vez en cuando. Saber más @@ -1218,7 +1218,7 @@ Conectar otro dispositivo - Para enviar una pestaña, inicia sesión en Firefox al menos en otro dispositivo. + Para enviar una pestaña, inicia sesión en LeOSium al menos en otro dispositivo. Entendido @@ -1240,10 +1240,10 @@ - Firefox es rápido y privado + LeOSium es rápido y privado - Haz de Firefox tu navegador predeterminado + Haz de LeOSium tu navegador predeterminado Prueba la navegación privada - Por favor, ayuda a mejorar Firefox respondiendo una breve encuesta. + Por favor, ayuda a mejorar LeOSium respondiendo una breve encuesta. Responder encuesta @@ -1402,16 +1402,16 @@ Escanear el código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Inicia sesión con tu cámara Usar correo electrónico en su lugar - - Crea una para sincronizar Firefox entre dispositivos.]]> - + + Crea una para sincronizar LeOSium entre dispositivos.]]> + %s dejará de sincronizarse con tu cuenta, pero no se borrarán los datos de navegación de este dispositivo. Desconectar @@ -1427,7 +1427,7 @@ Protección contra rastreo mejorada Ahora con protección total de cookies, nuestra barrera más poderosa hasta el momento contra los rastreadores entre sitios. - + %s te protege de muchos de los rastreadores más comunes que rastrean lo que haces en línea. Saber más @@ -1585,9 +1585,9 @@ Preguntar para guardar Nunca guardar - + Rellenar en %1$s - + Completar y guardar nombres de usuario y contraseñas en páginas web al usar %1$s. Rellenar en otras aplicaciones @@ -1909,13 +1909,13 @@ Conectar otro dispositivo. Por favor, vuelve a autenticarte. - + Por favor habilita la sincronización de pestañas. - No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. - + No tienes ninguna pestaña abierta en LeOSium en tus otros dispositivos. + Ver una lista de pestañas de tus otros dispositivos. - + Iniciar sesión para sincronizar @@ -1967,7 +1967,7 @@ ¿Cerrar automáticamente después de un mes? - Firefox puede cerrar pestañas que no has visto durante el último mes. + LeOSium puede cerrar pestañas que no has visto durante el último mes. ACTIVAR CIERRE AUTOMÁTICO @@ -1975,8 +1975,8 @@ Cierre automático activado - - Firefox Suggest + + LeOSium Suggest Búsqueda de Google @@ -1985,7 +1985,7 @@ Buscar con %s - Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en Firefox. + Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en LeOSium. Eliminar @@ -2009,7 +2009,7 @@ Impulsado por %s. - Parte de la familia Firefox. %s + Parte de la familia LeOSium. %s Saber más @@ -2045,7 +2045,7 @@ abrir enlace para saber más sobre esta colección leer el artículo - + abrir enlace para saber más diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 076c77a5..d86f01c4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -59,7 +59,7 @@ Eliminar - %1$s es producido por Mozilla. + %1$s es producido por harvey186. %1$s elimina tus cookies, historial y datos del sitio cuando cierras todas tus pestañas privadas. %2$s Personalizar la página de inicio + Pantalla de inicio @@ -254,6 +255,14 @@ Eliminar historial de navegación + + Traducir página + + + Página traducida de %1$s a %2$s. + Idioma seleccionado @@ -265,8 +274,6 @@ Escanear - - Buscador Ajustes del buscador @@ -322,24 +329,34 @@ - Las notificaciones te ayudan a hacer más con %s + Las notificaciones te ayudan a hacer más con %s - Sincroniza tus pestañas entre dispositivos, administra descargas, obtén consejos sobre cómo aprovechar al máximo la protección de privacidad de %s y más. + Sincroniza tus pestañas entre dispositivos, administra descargas, obtén consejos sobre cómo aprovechar al máximo la protección de privacidad de %s y más. - Continuar + Continuar - Ahora no + Ahora no - Aviso de privacidad de Firefox - + Aviso de privacidad de LeOSium + + Saber más en nuestro aviso de privacidad Nos encanta mantenerte a salvo + + Descubre por qué millones aman LeOSium + + Navegación segura con más opciones Nuestro navegador respaldado por una organización sin ánimo de lucro ayuda a evitar que las empresas te sigan en secreto por la web. + Más de 100 millones de personas protegen su privacidad eligiendo un navegador respaldado por una organización sin ánimo de lucro. + + ¿Rastreadores conocidos? Bloqueados automáticamente. ¿Extensiones? Más de 700. ¿PDF? Nuestro lector incorporado los hace fáciles de administrar. + Nuestro navegador respaldado por una organización sin ánimo de lucro ayuda a evitar que las empresas te sigan en secreto en la web.\n\nMás información en nuestro aviso de privacidad. @@ -351,32 +368,32 @@ Mantén todo cifrado cuando pases de un dispositivo a otro - Tras iniciar sesión y sincronizar, estás más seguro. Firefox cifra tus contraseñas, marcadores y más. + Note: The word "LeOSium" should NOT be translated --> + Tras iniciar sesión y sincronizar, estás más seguro. LeOSium cifra tus contraseñas, marcadores y más. Iniciar sesión Ahora no - Las notificaciones te ayudan a estar más seguro con Firefox + Note: The word "LeOSium" should NOT be translated --> + Las notificaciones te ayudan a estar más seguro con LeOSium - Envía pestañas de forma segura entre tus dispositivos y descubre otras funciones de privacidad en Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envía pestañas de forma segura entre tus dispositivos y descubre otras funciones de privacidad en LeOSium. Activar notificaciones Ahora no - Prueba el widget de búsqueda de Firefox + Note: The word "LeOSium" should NOT be translated --> + Prueba el widget de búsqueda de LeOSium - Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. - Añadir widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Añadir widget de LeOSium Ahora no @@ -418,10 +435,10 @@ Sugerencias de buscadores Preferencias de la barra de direcciones - - Barra de direcciones - Sugerencias de Firefox - - Saber más sobre Firefox Suggest + + Barra de direcciones - Sugerencias de LeOSium + + Saber más sobre LeOSium Suggest Calificar en Google Play Modo solo HTTPS - - Reducción de avisos de cookies Bloqueador de avisos de cookies Bloqueador de avisos de cookies en navegación privada - - Reducir los avisos de cookies - - Desactivado - - Activado - - %1$s intenta rechazar automáticamente las solicitudes de cookies en los avisos de cookies. Desactivada para este sitio @@ -480,35 +487,16 @@ Sitio actualmente no compatible - ¿Activar la reducción de aviso de cookies para %1$s? - ¿Activar el bloqueo de aviso de cookies para %1$s? - ¿Desactivar la reducción de aviso de cookies para %1$s? - ¿Desactivar el bloqueo de aviso de cookies para %1$s? %1$s no puede rechazar automáticamente los avisos de cookies en este sitio. Puede enviar una solicitud para admitir este sitio en el futuro. - - %1$s borrará las cookies de este sitio y recargará la página. Borrar todas las cookies puede cerrar tu sesión o vaciar los carritos de compras. Tras desactivarlo, %1$s borrará las cookies y recargará la página. Esto puede desconectarte del sitio o vaciar tu carrito de compra. - %1$s intenta rechazar automáticamente las solicitudes de cookies en sitios compatibles. - Al activarlo %1$s intentará rechazar automáticamente los avisos de cookies en este sitio. - - ¿Permitir que %1$s rechace los avisos de cookies? - - %1$s puede rechazar automáticamente muchas solicitudes de cookies. - - Ahora no - - Verás menos solicitudes de cookies - - - Permitir %1$s acaba de rechazar las cookies por ti @@ -588,15 +576,15 @@ Autocompletar URLs - + Sugerencias de patrocinadores - Apoya a %1$s con sugerencias patrocinadas ocasionales - Sugerencias de %1$s - + Recibir sugerencias de la web relacionadas con tu búsqueda Abrir enlaces en aplicaciones @@ -677,7 +665,7 @@ Saber más - + %s clásico Series de artistas @@ -695,8 +683,8 @@ Nuevos complementos disponibles ahora - - Descubre más de 100 nuevas extensiones que te permiten personalizar Firefox. + + Descubre más de 100 nuevas extensiones que te permiten personalizar LeOSium. Explorar complementos @@ -724,7 +712,9 @@ Marcadores - Inicios de sesión + Inicios de sesión + + Contraseñas Pestañas abiertas @@ -750,7 +740,9 @@ %1$s en %2$s %3$s - Tarjetas de crédito + Tarjetas de crédito + + Métodos de pago Direcciones @@ -758,7 +750,7 @@ Pestañas recibidas - Notificaciones para pestañas recibidas de otros dispositivos Firefox. + Notificaciones para pestañas recibidas de otros dispositivos LeOSium. Pestaña recibida @@ -942,7 +934,7 @@ Eliminar Activo - + %1$s puede instalar y ejecutar estudios de vez en cuando. Saber más @@ -1306,8 +1298,6 @@ Descartar - No se puede imprimir - No se puede imprimir esta página Imprimir @@ -1334,7 +1324,7 @@ Conectar otro dispositivo - Para enviar una pestaña, inicia sesión en Firefox al menos en otro dispositivo. + Para enviar una pestaña, inicia sesión en LeOSium al menos en otro dispositivo. Entendido @@ -1363,10 +1353,10 @@ - Firefox es rápido y privado + LeOSium es rápido y privado - Convertir Firefox en tu navegador predeterminado + Convertir LeOSium en tu navegador predeterminado Prueba la navegación privada - Ayúdanos a mejorar Firefox respondiendo a una pequeña encuesta. + Ayúdanos a mejorar LeOSium respondiendo a una pequeña encuesta. Realizar encuesta @@ -1541,16 +1531,16 @@ Escanear el código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Inicia sesión con tu cámara Usa el correo electrónico - - Crea una para sincronizar Firefox entre dispositivos.]]> - + + Crea una para sincronizar LeOSium entre dispositivos.]]> + %s dejará de sincronizarse con tu cuenta, pero no se borrarán los datos de navegación de este dispositivo. Desconectar @@ -1567,7 +1557,7 @@ Protección contra rastreo mejorada Ahora con protección Total Cookie Protection, nuestra barrera más poderosa hasta hoy contra rastreadores de sitios cruzados. - + %s te protege de muchos de los rastreadores más comunes que vigilan lo que haces en línea. Leer más @@ -1719,18 +1709,22 @@ Puedes añadir fácilmente este sitio web a la pantalla de inicio de tu dispositivo para tener acceso instantáneo y navegar rápidamente, consiguiendo una experiencia similar a la de una aplicación real. - Inicios de sesión y contraseñas + Inicios de sesión y contraseñas + + Contraseñas - Guardar inicios de sesión y contraseñas + Guardar inicios de sesión y contraseñas + + Guardar contraseñas Preguntar antes de guardar No guardar nunca - + Rellenar automáticamente en %1$s - + Completar y guardar nombres de usuario y contraseñas en páginas web al usar %1$s. Autocompletar en otras aplicaciones. @@ -1738,28 +1732,47 @@ Completar nombres de usuarios y contraseñas en otras aplicaciones de tu dispositivo. - Añadir cuenta + Añadir cuenta - - Inicios de sesión sincronizados + + Añadir contraseña + + + Inicios de sesión sincronizados + + Sincronizar contraseñas - Sincronizar inicios de sesión entre dispositivos + Sincronizar inicios de sesión entre dispositivos + + Sincronizar contraseñas entre dispositivos - Inicios de sesión guardados + Inicios de sesión guardados + + Contraseñas guardadas - Los inicios de sesión que guardes o sincronices con %s se mostrarán aquí. + Los inicios de sesión que guardes o sincronices con %s se mostrarán aquí. + + Las contraseñas que guardes o sincronices con %s aparecerán aquí. Todas las contraseñas que guardes quedan cifradas. - Saber más sobre Sync. + Saber más sobre Sync. + + Descubre más sobre Sync Excepciones - Los inicios de sesión y contraseñas no guardados aparecerán aquí. + Los inicios de sesión y contraseñas no guardados aparecerán aquí. + + %s no guardará contraseñas para los sitios que se listen aquí. - No se guardarán los inicios de sesión y contraseñas para estos sitios. + No se guardarán los inicios de sesión y contraseñas para estos sitios. + + %s no guardará las contraseñas para estos sitios. Eliminar todas las excepciones - Buscar inicios de sesión + Buscar inicios de sesión + + Buscar contraseñas Sitio @@ -1787,11 +1800,17 @@ Ocultar contraseña - Desbloquear para ver tus inicios de sesión guardados + Desbloquear para ver tus inicios de sesión guardados + + Desbloquea para ver tus contraseñas guardadas - Asegurar tus usuarios y contraseñas + Asegurar tus usuarios y contraseñas + + Asegura tus contraseñas guardadas - Configura un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus usuarios y contraseñas guardados si alguien más tiene tu dispositivo. + Configura un patrón de bloqueo del dispositivo, un PIN o una contraseña para proteger el acceso a tus usuarios y contraseñas guardados si alguien más tiene tu dispositivo. + + Establece un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus contraseñas guardadas y evitar que sean accedidas por otras personas en caso de que alguien más tenga tu dispositivo. Más tarde @@ -1810,7 +1829,10 @@ Usado por última vez - Ordenar menú de inicio de sesión + Ordenar menú de inicio de sesión + + + Menú ordenar contraseñas @@ -1818,29 +1840,44 @@ Direcciones - Tarjetas de crédito + Tarjetas de crédito + + Métodos de pago - Guardar y autocompletar tarjetas + Guardar y autocompletar tarjetas + + Guardar y completar métodos de pago - Los datos están cifrados + Los datos están cifrados + + %s cifra todos los métodos de pago que guardes Sincronizar tarjetas entre dispositivos Sincronizar tarjetas - Añadir tarjeta de crédito + Añadir tarjeta de crédito + + Añadir tarjeta - Administrar tarjetas guardadas + Administrar tarjetas guardadas + + Administrar tarjetas Añadir dirección Administrar direcciones - Guardar y autocompletar direcciones + Guardar y autocompletar direcciones + + Guardar y completar direcciones - Incluir información como números, correos electrónicos y direcciones de envío + Incluir información como números, correos electrónicos y direcciones de envío + + + Incluye números de teléfono y direcciones de correo electrónico Añadir tarjeta @@ -1861,7 +1898,9 @@ Eliminar tarjeta - ¿Seguro que quieres eliminar esta tarjeta de crédito? + ¿Seguro que quieres eliminar esta tarjeta de crédito? + + ¿Eliminar tarjeta? Eliminar @@ -1875,16 +1914,24 @@ Tarjetas guardadas - Por favor, escriba un número válido de tarjeta de crédito + Por favor, escriba un número válido de tarjeta de crédito + + Introduce un número de tarjeta válido - Por favor, rellena este campo + Por favor, rellena este campo + + Añadir un nombre Desbloquear para ver tus tarjetas guardadas - Asegurar tus tarjetas de crédito + Asegurar tus tarjetas de crédito + + Protege tus métodos de pago guardados - Configura un patrón de bloqueo, PIN o contraseña para proteger el acceso a tus tarjetas guardadas si alguien más accede a tu dispositivo. + Configura un patrón de bloqueo, PIN o contraseña para proteger el acceso a tus tarjetas guardadas si alguien más accede a tu dispositivo. + + Establece un patrón de bloqueo de dispositivo, PIN o contraseña para proteger tus métodos de pago guardados y evitar que sean accedidos por otras personas en caso de que alguien más tenga tu dispositivo. Configurar ahora @@ -1892,8 +1939,10 @@ Desbloquear tu dispositivo - Desbloquear para usar la información de la tarjeta de crédito almacenada + Desbloquear para usar la información de la tarjeta de crédito almacenada + + Desbloquea para utilizar métodos de pago guardados Añadir dirección @@ -1901,11 +1950,13 @@ Administrar direcciones - Nombre + Nombre - Segundo nombre + Segundo nombre - Apellidos + Apellidos + + Nombre Domicilio @@ -1930,7 +1981,9 @@ Eliminar dirección - ¿Seguro que quieres eliminar esta dirección? + ¿Seguro que quieres eliminar esta dirección? + + ¿Eliminar esta dirección? Eliminar @@ -2029,31 +2082,53 @@ Editar - ¿Seguro que quieres eliminar este inicio de sesión? + ¿Seguro que quieres eliminar este inicio de sesión? + + ¿Estás seguro de que quieres eliminar esta contraseña? Eliminar Cancelar - Opciones de inicio de sesión + Opciones de inicio de sesión + + Opciones de contraseña - El campo de texto editable para la dirección web del inicio de sesión. + El campo de texto editable para la dirección web del inicio de sesión. + + El campo de texto editable para la dirección del sitio web. - El campo de texto editable para el nombre de usuario del inicio de sesión. + El campo de texto editable para el nombre de usuario del inicio de sesión. + + El campo de texto editable para el nombre de usuario. - El campo de texto editable para la contraseña del inicio de sesión. + El campo de texto editable para la contraseña del inicio de sesión. + + El campo de texto editable para la contraseña. - Guardar cambios para el inicio de sesión. + Guardar cambios para el inicio de sesión. + + Guardar cambios. - Editar + Editar + + Editar contraseña - Añadir nueva cuenta + Añadir nueva cuenta + + Añadir contraseña - Se necesita contraseña + Se necesita contraseña + + Introduce una contraseña - Se requiere nombre de usuario + Se requiere nombre de usuario + + Introduce un nombre de usuario Se requiere nombre de servidor + + Introduce una dirección web Búsqueda por voz @@ -2074,14 +2149,14 @@ Conectar otro dispositivo. Por favor, vuelve a autentificarte. - + Por favor, activa la sincronización de pestañas. - No tienes ninguna pestaña abierta en Firefox en tus otros dispositivos. - + No tienes ninguna pestaña abierta en LeOSium en tus otros dispositivos. + Ver una lista de pestañas de tus otros dispositivos. - + Inicia sesión para sincronizar @@ -2133,7 +2208,7 @@ ¿Cerrar automáticamente después de un mes? - Firefox puede cerrar pestañas que no has visto durante el último mes. + LeOSium puede cerrar pestañas que no has visto durante el último mes. ACTIVAR EL CIERRE AUTOMÁTICO @@ -2141,8 +2216,8 @@ Cierre automático activado - - Firefox Suggest + + LeOSium Suggest Búsqueda de Google @@ -2150,7 +2225,10 @@ Buscar con %s - Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en Firefox. + + Cambia tu navegador predeterminado + + Configura enlaces de sitios web, correos electrónicos y mensajes para que se abran automáticamente en LeOSium. Eliminar @@ -2159,7 +2237,7 @@ Clic para más detalles - Ir arriba + Ir arriba Cerrar @@ -2174,7 +2252,7 @@ Impulsado por %s. - Parte de la familia Firefox. %s + Parte de la familia LeOSium. %s Saber más @@ -2200,8 +2278,6 @@ Calificación ajustada - Se han eliminado las reseñas no fiables - Basado en revisiones fiables Aspectos destacados de reseñas recientes @@ -2223,8 +2299,6 @@ puntos destacados provienen de reseñas de %s de los últimos 80 días que creemos que son fiables.]]> Saber más sobre %s. - - cómo %s de Mozilla determina la calidad de las reseñas cómo determina %s la calidad de las reseñas @@ -2259,10 +2333,6 @@ Si ves que este producto vuelve a estar disponible, infórmanos y trabajaremos para actualizar el análisis. Informar que el producto está en stock - - Comprobando la calidad de la reseña - - Comprobando la calidad de la reseña Comprobando la calidad de la reseña (%s) @@ -2299,22 +2369,28 @@ Comprobar la calidad de la reseña Prueba nuestra fiable guía de reseñas de productos - + Comprueba lo fiables que son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. También funciona en %3$s y %4$s. - + Comprueba lo fiables que son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. Utilizando la tecnología de %1$s de Mozilla, te ayudamos a evitar reseñas sesgadas y no auténticas. Nuestro modelo de IA siempre mejora para protegerte mientras compras. %2$s Saber más - Al seleccionar “Sí, probarlo”, aceptas %1$s de %2$s y %3$s de Mozilla. + Al seleccionar “Sí, probarlo”, aceptas %1$s de %2$s y %3$s de Mozilla. Al seleccionar “Sí, probarlo”, aceptas lo siguiente de %1$s: + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. + + Al seleccionar “Sí, probarlo”, aceptas la %2$s de %1$s y los %4$s de %3$s. - política de privacidad + política de privacidad Política de privacidad + + aviso de privacidad términos de uso @@ -2370,7 +2446,7 @@ abrir enlace para saber más sobre esta colección leer el artículo - + abrir enlace para saber más %s, Cabecera @@ -2385,11 +2461,15 @@ ¿Traducir esta página? + + Página traducida de %1$s a %2$s Probar traducciones privadas en %1$s Para tu privacidad, las traducciones nunca salen de tu dispositivo. ¡Nuevos idiomas y mejoras próximamente! %1$s - + Saber más Traducir del @@ -2397,6 +2477,8 @@ Traducir a Ahora no + + Mostrar original Hecho @@ -2408,6 +2490,8 @@ Traducción en curso + + Selecciona un idioma Ha surgido un problema al traducir. Por favor inténtalo de nuevo. @@ -2417,6 +2501,9 @@ Saber más + + Traduciendo… + Opciones de traducción @@ -2428,6 +2515,10 @@ No traducir nunca %1$s No traducir nunca este sitio + + Anula todas las demás configuraciones + + Anula las ofertas de traducción Ajustes de traducción diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 7f3a64b5..5b0e7e8d 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -71,7 +71,7 @@ Ära jäta sellesse seadmesse jälgi %1$s kustutab küpsised, ajaloo ja saidiandmed, kui sulged kõik privaatsed kaardid. %2$s - Teavitused teistest Firefoxi seadmetest vastu võetud kaartide kohta. + Teavitused teistest LeOSiumi seadmetest vastu võetud kaartide kohta. Kaart on vastu võetud @@ -708,7 +708,7 @@ Eemalda Praegu toimuvad - + %1$s võib aegajalt paigaldada ja käivitada uuringuid. Rohkem teavet @@ -1073,7 +1073,7 @@ Ühenda teine seade - Kaardi edastamiseks logi Firefoxi sisse vähemalt ühel seadmel veel. + Kaardi edastamiseks logi LeOSiumi sisse vähemalt ühel seadmel veel. Sain aru @@ -1215,16 +1215,16 @@ Koodi skannimine - https://firefox.com/pair]]> + https://firefox.com/pair]]> Skannimiseks valmis Logi sisse oma kaameraga Kasuta selle asemel e-posti aadressi - - Loo üks, et sünkroniseerida Firefoxi seadmete vahel.]]> - + + Loo üks, et sünkroniseerida LeOSiumi seadmete vahel.]]> + %s lõpetab sinu kontoga sünkroniseerimise, aga ei kustuta lehitsemise andmeid sellest seadmest. Ühenda lahti @@ -1238,7 +1238,7 @@ Kaitse sätted Täiustatud jälitamisvastane kaitse - + %s kaitseb sind paljude tuntud jälitajate eest, kes jälgivad, mida sa võrgus olles teed. Rohkem teavet @@ -1396,9 +1396,9 @@ Ei salvestata kunagi - + Täidetakse automaatselt %1$sis - + %1$si kasutamisel täidetakse ja salvestatakse saitide kasutajanimesid ja paroole. Täidetakse automaatselt teistes äppides @@ -1719,13 +1719,13 @@ Ühenda teine seade. Palun autendi uuesti. - + Palun luba kaartide sünkroniseerimine. - Sul pole teistes seadmetes olevates Firefoxides kaarte avatud. - + Sul pole teistes seadmetes olevates LeOSiumides kaarte avatud. + Vaata teistes seadmetes avatud kaartide nimekirja. - + Sünkroniseerimiseks logi sisse @@ -1774,14 +1774,14 @@ Kas sulgeda automaatselt kuu aja pärast? - Firefox saab sulgeda kaardid, mida sa pole viimase kuu jooksul vaadanud. + LeOSium saab sulgeda kaardid, mida sa pole viimase kuu jooksul vaadanud. LÜLITA SISSE AUTOMAATNE SULGEMINE Automaatne sulgemine on lubatud - Määra Firefox automaatselt avama linke, e-posti ja sõnumeid. + Määra LeOSium automaatselt avama linke, e-posti ja sõnumeid. Eemalda @@ -1803,7 +1803,7 @@ Avasta veel - Osa Firefoxi perekonnast. %s + Osa LeOSiumi perekonnast. %s Rohkem teavet diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 0c558147..f2e13c3e 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -72,7 +72,7 @@ Ez utzi arrastorik gailu honetan %1$s(e)k zure cookieak, historia eta guneetako datuak ezabatzen ditu fitxa pribatu guztiak ixten dituzunean. %2$s Pertsonalizatu hasiera-orria + Hasiera-pantaila @@ -252,6 +253,14 @@ Ezabatu nabigatze-historia + + Itzuli orria + + + Orria %1$s hizkuntzatik %2$s hizkuntzara itzuli da. + Hautatutako hizkuntza @@ -263,8 +272,6 @@ Eskaneatu - - Bilaketa-motorra Bilaketa-motorren ezarpenak @@ -320,25 +327,40 @@ - Jakinarazpenek %s(r)i zuku gehiago ateratzen laguntzen dute + Jakinarazpenek %s(r)i zuku gehiago ateratzen laguntzen dute - Sinkronizatu zure fitxak gailuen artean, kudeatu deskargak, jaso aholkuak %s(r)en pribatutasun-babesari zuku gehien ateratzeko, eta gehiago. + Sinkronizatu zure fitxak gailuen artean, kudeatu deskargak, jaso aholkuak %s(r)en pribatutasun-babesari zuku gehien ateratzeko, eta gehiago. - Jarraitu + Jarraitu - Une honetan ez + Une honetan ez + + LeOSiumen pribatutasun-oharra + + Argibide gehiago gure pribatutasun-oharrean Zu seguru mantentzea dugu xede + + Ezagutu zergatik milioika pertsonek atsegin duten LeOSium + + Nabigatze segurua aukera gehiagorekin - Irabazi asmorik gabeko erakundeak babestutako gure nabigatzaileak laguntzen du + Irabazi asmorik gabeko erakundeak babestutako gure nabigatzaileak laguntzen du eragozten enpresek zure webeko jarraipena sekretupean egin dezaten. + + 100 milioi pertsona baino gehiagok beraien pribatutasuna babesten duten irabazi-asmorik gabeko batek sostengatutako nabigatzailea aukeratuz. + + Jarraipen-elementu ezagunak? Automatikoki blokeatzen dira. Hedapenak? Probatu denak, 700 guztira. PDFak? Integratutako gure irakurgailuarekin erraz kudea daitezke. + + Irabazi asmorik gabeko erakundeak babestutako gure nabigatzaileak laguntzen du eragozten enpresek zure webeko jarraipena sekretupean egin dezaten.\n\n Argibide gehiago gure pribatutasun-oharrean. - pribatutasun-oharrean + pribatutasun-oharrean Ezarri nabigatzaile lehenetsi gisa @@ -346,34 +368,34 @@ Argibide gehiago gure pribatutasun-oharrean. Mantendu zifratzea gailuen artean salto egitean - Saioa hasita eta sinkronizatuta zaudenean, seguruago zaude. Firefoxek + Note: The word "LeOSium" should NOT be translated --> + Saioa hasita eta sinkronizatuta zaudenean, seguruago zaude. LeOSiumek zure pasahitzak, laster-markak eta gehiago zifratzen du. Hasi saioa Une honetan ez - Jakinarazpenek Firefoxekin seguruago egoten laguntzen dizute + Note: The word "LeOSium" should NOT be translated --> + Jakinarazpenek LeOSiumekin seguruago egoten laguntzen dizute - Bidali fitxak gailuen artean modu seguruan eta aurkitu Firefoxen bestelako pribatutasun eginbideak. + Note: The word "LeOSium" should NOT be translated --> + Bidali fitxak gailuen artean modu seguruan eta aurkitu LeOSiumen bestelako pribatutasun eginbideak. Aktibatu jakinarazpenak Une honetan ez - Probatu Firefoxen bilaketa widget-a + Note: The word "LeOSium" should NOT be translated --> + Probatu LeOSiumen bilaketa widget-a - Firefox zure hasierako pantailan dela, sarbide zuzena izango duzu pribatutasuna hobesten eta guneen arteko jarraipen elementuak blokeatzen dituen nabigatzailera. + Note: The word "LeOSium" should NOT be translated --> + LeOSium zure hasierako pantailan dela, sarbide zuzena izango duzu pribatutasuna hobesten eta guneen arteko jarraipen elementuak blokeatzen dituen nabigatzailera. - Gehitu Firefox widget-a + Note: The word "LeOSium" should NOT be translated --> + Gehitu LeOSium widget-a Une honetan ez @@ -413,10 +435,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Bilaketa-motorretako gomendioak Helbide-barrako hobespenak - - Helbide-barra - Firefox Suggest - - Firefox Suggest-i buruzko argibide gehiago + + Helbide-barra - LeOSium Suggest + + LeOSium Suggest-i buruzko argibide gehiago Puntuatu Google Play-n HTTPS-Only modua - - Cookie iragarki-banden murrizpena Cookie iragarki-banden blokeatzailea Cookie iragarki-banden blokeatzailea nabigatze pribatuan - - Murriztu cookie iragarki-bandak - - Desaktibatuta - - Aktibatuta - - - Cookie iragarki-bandetako eskaerak automatikoki ukatzen saiatzen da %1$s. Desaktibatuta gune honetarako @@ -476,35 +487,16 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Une honetan gune honetarako euskarririk ez - Aktibatu cookie iragarki-banden murrizpena %1$s gunerako? - Aktibatu cookie iragarki-banden blokeatzailea %1$s gunerako? - Desaktibatu cookie iragarki-banden murrizpena %1$s gunerako? - Desaktibatu cookie iragarki-banden blokeatzailea %1$s gunerako? %1$s(e)k ezin ditu cookie-eskaerak automatikoki baztertu gune honetan. Etorkizunean gune honetarako euskarria gehitzeko eskaera bidal dezakezu. - - %1$s(e)k gune honetako cookieak garbitu eta orria berrituko du. Cookie guztiak garbitzean, saioak amaitu edo erosketa-orgak hustu litezke. Desaktibatu eta %1$s(e)k gune honetako cookieak garbitu eta orria berrituko du. Saioa amaitu edo erosketa-orgak hustu litezke. - Cookie eskaerak automatikoki ukatzen saiatzen da %1$s. - Aktibatu eta %1$s gune honetako cookie iragarki-bandak automatikoki ukatzen saiatuko da. - - Baimendu %1$s(r)i cookie iragarki-bandak ukatzen? - - %1$s(e)k automatikoki uka ditzake cookie iragarki-bandetako eskaerak. - - Une honetan ez - - Cookie eskaera gutxiago ikusiko dituzu - - - Baimendu %1$s(e)k cookieak ukatu ditu zure partez @@ -584,15 +576,15 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Osatu automatikoki URLak - + Babesleen gomendioak - Lagundu %1$s tartekako babesleen gomendioekin - %1$s(r)en gomendioak - + Eskuratu zure bilaketarekin erlazionatutako webean zeharreko gomendioak Ireki loturak aplikazioetan @@ -673,7 +665,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Argibide gehiago - + %s klasikoa Artisten serieak @@ -691,8 +683,8 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Gehigarri berriak erabilgarri orain - - Eman begiratua Firefox zure egiten lagunduko dizuten 100 gehigarri berri baino gehiagori. + + Eman begiratua LeOSium zure egiten lagunduko dizuten 100 gehigarri berri baino gehiagori. Esploratu gehigarriak @@ -720,7 +712,9 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Laster-markak - Saio-hasierak + Saio-hasierak + + Pasahitzak Irekitako fitxak @@ -747,7 +741,9 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. %1$s / %2$s %3$s - Kreditu-txartelak + Kreditu-txartelak + + Ordainketa metodoak Helbideak @@ -755,7 +751,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Jasotako fitxak - Beste Firefox gailuetatik jasotako fitxen jakinarazpenak. + Beste LeOSium gailuetatik jasotako fitxen jakinarazpenak. Fitxa jasota @@ -940,7 +936,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Kendu Aktibo - + Noizean behin esperimentuak instala eta exekuta litzake %1$s(e)k. Argibide gehiago @@ -1290,8 +1286,6 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Baztertu - Ezin da inprimatu - Ezin da orria inprimatu Inprimatu @@ -1318,7 +1312,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Konektatu beste gailu bat - Fitxa bat bidaltzeko, hasi saioa Firefoxen gutxienez beste gailu batean. + Fitxa bat bidaltzeko, hasi saioa LeOSiumen gutxienez beste gailu batean. Ulertuta @@ -1346,10 +1340,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. - Firefox azkarra eta pribatua da + LeOSium azkarra eta pribatua da - Egizu Firefox zure nabigatzaile lehenetsia + Egizu LeOSium zure nabigatzaile lehenetsia Probatu nabigatze pribatua - Lagundu Firefox hobetzen inkesta txiki bat betez. + Lagundu LeOSium hobetzen inkesta txiki bat betez. Bete inkesta @@ -1519,16 +1513,16 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Eskaneatu kodea - https://firefox.com/pair helbidera]]> + https://firefox.com/pair helbidera]]> Eskaneatzeko prest Hasi saioa zure kamerarekin Erabili helbide elektronikoa horren ordez - - Sortu kontua Firefox gailuen artean sinkronizatzeko.]]> - + + Sortu kontua LeOSium gailuen artean sinkronizatzeko.]]> + %s(e)k zure kontuarekin sinkronizatzeari utziko dio baina ez du gailu honetako zure nabigatze-daturik ezabatuko. Deskonektatu @@ -1544,7 +1538,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Jarraipenaren babes hobetua Orain cookien erabateko babesarekin, guneen arteko jarraipen-elementuetarako gure oztopo boteretsuena. - + Lineako zure jardueraren jarraipena egiten duten elementu ohikoenetatik babesten zaitu %s(e)k. Argibide gehiago @@ -1696,16 +1690,20 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Modu errazean gehi dezakezu webgune hau zure gailuaren hasierako pantailan berehalako sarbidea izan eta aplikazio-moduko esperientziarekin azkarrago nabigatzeko. - Saio-hasierak eta pasahitzak + Saio-hasierak eta pasahitzak + + Pasahitzak - Gorde saio-hasierak eta pasahitzak + Gorde saio-hasierak eta pasahitzak + + Gorde pasahitzak Galdetu gorde aurretik Ez gorde inoiz - + Automatikoki bete %1$s aplikazioan - + Bete eta gorde webguneetako erabiltzaile-izen eta pasahitzak %1$s erabili bitartean. Automatikoki bete beste aplikazioetan @@ -1713,28 +1711,48 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Bete erabiltzaile-izen eta pasahitzak zure gailuko beste aplikazioetan. - Gehitu saio-hasiera + Gehitu saio-hasiera - - Sinkronizatu saio-hasierak + + Gehitu pasahitza + + + Sinkronizatu saio-hasierak + + Sinkronizatu pasahitzak - Sinkronizatu saio-hasierak gailuen artean + Sinkronizatu saio-hasierak gailuen artean + + Sinkronizatu pasahitzak gailuen artean - Gordetako saio-hasierak + Gordetako saio-hasierak + + Gordetako pasahitzak - %s(e)n gordetzen edo sinkronizatzen dituzun saio-hasierak hemen agertuko dira. + %s(e)n gordetzen edo sinkronizatzen dituzun saio-hasierak hemen agertuko dira. + + %s(e)n gordetzen edo sinkronizatzen dituzun pasahitzak hemen agertuko dira. Gordetzen dituzun pasahitz guztiak zifratuta daude. + - Sinkronizazioari buruzko argibide gehiago. + Sinkronizazioari buruzko argibide gehiago. + + Sinkronizazioari buruzko argibide gehiago Salbuespenak - Gorde gabeko saio-hasiera eta pasahitzak hemen erakutsiko dira. + Gorde gabeko saio-hasiera eta pasahitzak hemen erakutsiko dira. + + %s(e)k ez du pasahitzik gordeko hemen zerrendatutako guneetarako. - Gune hauetarako ez da saio-hasiera eta pasahitzik gordeko. + Gune hauetarako ez da saio-hasiera eta pasahitzik gordeko. + + %s(e)k ez du pasahitzik gordeko gune hauetarako. Ezabatu salbuespen guztiak - Bilatu saio-hasierak + Bilatu saio-hasierak + + Bilatu pasahitzak Gunea @@ -1762,11 +1780,17 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Ezkutatu pasahitza - Desblokeatu gordetako saio-hasierak ikusteko + Desblokeatu gordetako saio-hasierak ikusteko + + Desblokeatu gordetako pasahitzak ikusteko - Lortu zure saio-hasierak eta pasahitzak + Lortu zure saio-hasierak eta pasahitzak + + Bermatu gordetako zure pasahitzak - Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza zure saio-hasierak eta pasahitzak babesteko zure gailua beste norbaitek izango balu. + Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza zure saio-hasierak eta pasahitzak babesteko zure gailua beste norbaitek izango balu. + + Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza zure gordetako pasahitzak babesteko zure gailua beste norbaitek izango balu. Geroago @@ -1784,7 +1808,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Azkenekoz erabilia - Ordenatu saio-hasieren menua + Ordenatu saio-hasieren menua + + + Ordenatu pasahitzen menua @@ -1792,29 +1819,44 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Helbideak - Kreditu-txartelak + Kreditu-txartelak + + Ordainketa metodoak - Gorde eta osatu automatikoki kreditu-txartelak + Gorde eta osatu automatikoki kreditu-txartelak + + Gorde eta bete ordainketa metodoak - Datuak zifratuta daude + Datuak zifratuta daude + + Gordetzen dituzun ordainketa metodo guztiak zifratzen ditu %s(e)k Sinkronizatu txartelak gailuen artean Sinkronizatu txartelak - Gehitu kreditu-txartela + Gehitu kreditu-txartela + + Gehitu txartela - Kudeatu gordetako txartelak + Kudeatu gordetako txartelak + + Kudeatu txartelak Gehitu helbidea Kudeatu helbideak - Gorde eta osatu automatikoki helbideak + Gorde eta osatu automatikoki helbideak + + Gorde eta osatu helbideak - Kontuan izan zenbakiak, helbide elektronikoak eta bidalketa-helbideak + Kontuan izan zenbakiak, helbide elektronikoak eta bidalketa-helbideak + + + Telefono zenbakiak eta helbide elektronikoak ere baditu Gehitu txartela @@ -1835,7 +1877,9 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Ezabatu txartela - Ziur zaude kreditu-txartel hau ezabatu nahi duzula? + Ziur zaude kreditu-txartel hau ezabatu nahi duzula? + + Ezabatu txartela? Ezabatu @@ -1848,16 +1892,24 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Gordetako txartelak - Idatzi baliozko kreditu-txartel zenbakia + Idatzi baliozko kreditu-txartel zenbakia + + Idatzi baliozko txartel-zenbakia - Bete eremu hau mesedez + Bete eremu hau mesedez + + Gehitu izena Desblokeatu gordetako txartelak ikusteko - Bermatu zure kreditu-txartelak + Bermatu zure kreditu-txartelak + + Bermatu gordetako zure ordainketa metodoak - Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza zure gordetako kreditu-txartelak babesteko zure gailua beste norbaitek izango balu. + Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza zure gordetako kreditu-txartelak babesteko zure gailua beste norbaitek izango balu. + + Konfiguratu gailua blokeatzeko patroia, PINa edo pasahitza gordetako zure ordainketa metodoak babesteko zure gailua beste norbaitek izango balu. Konfiguratu orain @@ -1865,8 +1917,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Desblokeatu zure gailua - Desblokeatu gordetako kreditu txartelaren informazioa erabiltzeko + Desblokeatu gordetako kreditu txartelaren informazioa erabiltzeko + + Desblokeatu gordetako ordainketa metodoak erabiltzeko Gehitu helbidea @@ -1874,11 +1928,13 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Kudeatu helbideak - Izena + Izena - Bigarren izena + Bigarren izena - Abizena + Abizena + + Izena Helbidea @@ -1902,7 +1958,9 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Ezabatu helbidea - Ziur zaude helbide hau ezabatu nahi duzula? + Ziur zaude helbide hau ezabatu nahi duzula? + + Ezabatu helbidea? Ezabatu @@ -2000,31 +2058,53 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Editatu - Ziur zaude saio-hasiera hau ezabatu nahi duzula? + Ziur zaude saio-hasiera hau ezabatu nahi duzula? + + Ziur zaude pasahitz hau ezabatu nahi duzula? Ezabatu Utzi - Saio-hasieren aukerak + Saio-hasieren aukerak + + Pasahitzaren aukerak - Saio-hasieraren web helbiderako testu-eremu editagarria. + Saio-hasieraren web helbiderako testu-eremu editagarria. + + Webgunearen helbidearen testu-eremu editagarria. - Saio-hasieraren erabiltzaile-izenerako testu-eremu editagarria. + Saio-hasieraren erabiltzaile-izenerako testu-eremu editagarria. + + Erabiltzaile-izenaren testu-eremu editagarria. - Saio-hasieraren pasahitzerako testu-eremu editagarria. + Saio-hasieraren pasahitzerako testu-eremu editagarria. + + Pasahitzaren testu-eremu editagarria. - Gorde saio-hasieraren aldaketak. + Gorde saio-hasieraren aldaketak. + + Gorde aldaketak. - Editatu + Editatu + + Editatu pasahitza - Gehitu saio-hasiera berria + Gehitu saio-hasiera berria + + Gehitu pasahitza - Pasahitza behar da + Pasahitza behar da + + Idatzi pasahitz bat - Erabiltzaile-izena behar da + Erabiltzaile-izena behar da + + Idatzi erabiltzaile-izen bat Ostalari-izena behar da + + Idatzi web helbide bat Ahots bidezko bilaketa @@ -2045,14 +2125,14 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Konektatu beste gailu bat. Autentifikatu berriro mesedez. - + Gaitu fitxen sinkronizazioa mesedez. - Ez daukazu fitxarik irekita beste gailuetako Firefoxetan. - + Ez daukazu fitxarik irekita beste gailuetako LeOSiumetan. + Ikusi zure beste gailuetako fitxen zerrenda. - + Hasi saioa sinkronizatzeko @@ -2104,7 +2184,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Automatikoki itxi hilabete ondoren? - Azken hilabetean ikusi ez dituzun fitxak itxi ditzake Firefoxek. + Azken hilabetean ikusi ez dituzun fitxak itxi ditzake LeOSiumek. AKTIBATU AUTOMATIKOKI IXTEA @@ -2112,8 +2192,8 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Automatikoki ixtea gaituta - - Firefoxen iradokizunak + + LeOSiumen iradokizunak Google bilaketa @@ -2121,7 +2201,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. %s bilaketa - Ireki webgune, posta elektroniko eta mezuetako loturak Firefoxen automatikoki. + + Aldatu zure nabigatzaile lehenetsia + + Ireki webgune, posta elektroniko eta mezuetako loturak LeOSiumen automatikoki. Kendu @@ -2130,7 +2213,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Egin klik xehetasun gehiagorako - Nabigatu gora + Nabigatu gora Itxi @@ -2145,7 +2228,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. %s(e)k hornitua. - Firefoxen familiakoa. %s + LeOSiumen familiakoa. %s Argibide gehiago @@ -2171,8 +2254,6 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Egokitutako balorazioa - Balorazio fidagaitzak kenduta - Balorazio fidagarrietan oinarrituta Azken balorazioetan nabarmentzekoak @@ -2195,8 +2276,6 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Nabarmentzekoak %s(e)ko azken 80 egunetan fidagarriak direla uste ditugun balorazioak dira.]]> Argibide gehiago %s(r)i buruz. - - Mozillaren %s(e)k nola antzematen duen balorazioen kalitatea Nola antzematen duen %s(e)k balorazioen kalitatea @@ -2231,10 +2310,6 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Produktua berriz ere erabilgarri dagoela ikusten baduzu, jakinaraz iezaguzu eta balorazioak egiaztatzeari ekingo diogu. Jakinarazi produktua berriz ere erabilgarri dagoela - - Balorazioaren kalitatea egiaztatzen - - Balorazioaren kalitatea egiaztatzen Balorazioaren kalitatea egiaztatzen (%s) @@ -2272,22 +2347,28 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Egiaztatu balorazioaren kalitatea Probatu produktuen balorazioetarako gure fidatzeko gida - + Erosi aurretik, ikusi %1$s(e)ko produktuen balorazioak zenbateraino diren fidagarriak. Balorazioen egiaztatzailea, %2$s(e)n eginbide esperimentala, nabigatzailean integratuta dago. %3$s eta %4$s(e)n ere badabil. - + Erosi aurretik, ikusi %1$s(e)ko produktuen balorazioak zenbateraino diren fidagarriak. Balorazioen egiaztatzailea %2$s(e)n eginbide esperimentala da eta nabigatzailean integratuta dago. Mozillaren %1$s(r)en teknologia erabiliz, balorazio aurreiritzidun eta egiazkoak ez direnak saihesten laguntzen dizugu. Gure Adimen Artifizialeko modeloa uneoro ari da hobetzen zure erosketak babesteko. %2$s Argibide gehiago - "Bai, probatu" aukeratuta, Mozillaren %1$s(r)en %2$s eta %3$s onartzen dituzu. + "Bai, probatu" aukeratuta, Mozillaren %1$s(r)en %2$s eta %3$s onartzen dituzu. "Bai, probatu" hautatuz gero, ondorengoa onartzen duzu %1$s(e)tik: + + "Bai, probatu" aukeratuta, %1$s(r)en %2$s eta %3$s(r)en %4$s onartzen dituzu. + + "Bai, probatu" aukeratuta, %1$s(r)en %2$s eta %3$s(r)en %4$s onartzen dituzu. - pribatutasun-politika + pribatutasun-politika Pribatutasun-politika + + pribatutasun-oharra erabilera-baldintzak @@ -2343,7 +2424,7 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. ireki lotura bilduma honi buruzko argibide gehiagorako irakurri artikulua - + ireki lotura argibide gehiagorako %s, Goiburua @@ -2358,11 +2439,15 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Itzuli orria? + + Orria %1$s hizkuntzatik %2$s hizkuntzara itzuli da Probatu itzulpen pribatuak %1$s(e)n Zure pribatutasunerako, itzulpenek inoiz ez dute zure gailua uzten. Hizkuntza berriak eta hobekuntzak laster datoz! %1$s - + Argibide gehiago Itzuli hemendik @@ -2370,6 +2455,8 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Itzuli hona Une honetan ez + + Erakutsi jatorrizkoa Eginda @@ -2381,6 +2468,8 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Itzulpena burutzen + + Aukeratu hizkuntza Arazo bat gertatu da itzultzean. Saiatu berriro mesedez. @@ -2390,6 +2479,9 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Argibide gehiago + + Itzultzen… + Itzulpenen aukerak @@ -2402,6 +2494,10 @@ zure pasahitzak, laster-markak eta gehiago zifratzen du. Inoiz ez itzuli %1$s Inoiz ez itzuli gune hau + + Beste ezarpen guztiak baliogabetzen ditu + + Itzultzeko eskaintzak baliogabetzen ditu Itzulpenen ezarpenak diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 8a6ad6c3..67195b2b 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -300,13 +300,13 @@ - ‏Firefox را مروگر پیش‌فرض‌تان کنید + Note: The word "LeOSium" should NOT be translated --> + ‏LeOSium را مروگر پیش‌فرض‌تان کنید ما عاشق حفظ امنیت شما هستیم - ‏‏Firefox مردم را به سود خود ترجیح می‌دهد و با مسدود کردن ردیاب‌های میان‌پایگاهی، از حریم خصوصی شما دفاع می‌کند.\n\nدر نکات حفظ حریم خصوصی ما بیش‌تر بیاموزید. + Note: The word "LeOSium" should NOT be translated --> + ‏‏LeOSium مردم را به سود خود ترجیح می‌دهد و با مسدود کردن ردیاب‌های میان‌پایگاهی، از حریم خصوصی شما دفاع می‌کند.\n\nدر نکات حفظ حریم خصوصی ما بیش‌تر بیاموزید. مرورگر غیرانتفاعی ما به شما کمک می‌کند تا شرکت‌ها مخفیانه شما را در وب دنبال نکنند.\n\nدر خصوص اعلامیه حریم خصوصی ما بیشتر بیاموزید. زبانه‌ها و گذرواژه‌ها را از افزاره‌های دیگرتان بگیرید تا از جایی که رها کرده‌اید، ادامه دهید. + Note: The word "LeOSium" should NOT be translated --> وقتی وارد سیستم شده‌اید و همگام‌سازی شده‌اید، ایمن‌تر هستید. فایرفاکس رمزهای عبور، نشانک ها و موارد دیگر شما را رمزگذاری می کند. ورود @@ -331,25 +331,25 @@ اکنون نه - آگاهی‌ها کمک می‌کنند تا با Firefox کار‌های بیش‌تری بکنید + Note: The word "LeOSium" should NOT be translated --> + آگاهی‌ها کمک می‌کنند تا با LeOSium کار‌های بیش‌تری بکنید - آگاهی‌ها کمک می‌کنند تا با Firefox امن‌ تر بکنید + Note: The word "LeOSium" should NOT be translated --> + آگاهی‌ها کمک می‌کنند تا با LeOSium امن‌ تر بکنید - ارسال زبانه‌ها میان افزاره‌ها، مدیریت بارگیری‌ها، و دریافت نکاتی راجع به بهره‌گیری هر چه بیش‌تر از Firefox. + Note: The word "LeOSium" should NOT be translated --> + ارسال زبانه‌ها میان افزاره‌ها، مدیریت بارگیری‌ها، و دریافت نکاتی راجع به بهره‌گیری هر چه بیش‌تر از LeOSium. - به طور ایمن برگه ها را بین دستگاه های خود ارسال کنید و سایر ویژگی های حریم خصوصی را در Firefox کشف کنید. + Note: The word "LeOSium" should NOT be translated --> + به طور ایمن برگه ها را بین دستگاه های خود ارسال کنید و سایر ویژگی های حریم خصوصی را در LeOSium کشف کنید. روشن کردن آگاهی‌ها اکنون نه - ویجت جستجوی Firefox را امتحان کنید + Note: The word "LeOSium" should NOT be translated --> + ویجت جستجوی LeOSium را امتحان کنید @@ -481,7 +481,7 @@ با این حال، همچنین ممکن است که یک ردیاب، درگیر باشد. اگر به وبگاه ادامه می‌دهید، نباید هیچ اطلاعات حساسی را وارد کنید. اگر ادامه دهید، حالت فقط-HTTPS به طور موقت برای پایگاه خاموش می‌شود. دسترسی‌پذیری - + کارساز سفارشی حساب فایرفاکس کارساز همگام‌سازی سفارشی @@ -611,7 +611,7 @@ نتوانست کاغذدیواری را تغییر دهد بیشتر بدانید - + ‏%s سنتی سریال هنرمند @@ -629,8 +629,8 @@ افزونه‌های جدید موجود است - - بیش از 100 افزونه جدید را بررسی کنید که به شما امکان می دهد Firefox را متعلق به خود کنید. + + بیش از 100 افزونه جدید را بررسی کنید که به شما امکان می دهد LeOSium را متعلق به خود کنید. افزونه ها را کاوش کنید @@ -687,7 +687,7 @@ زبانه‌های دریافت شده - اعلانها برای زبانه دریافت شده از سایر دستگاه های Firefox. + اعلانها برای زبانه دریافت شده از سایر دستگاه های LeOSium. زبانه دریافت شد @@ -867,7 +867,7 @@ فعال - + %1$s ممکن است گاهی تحقیقاتی را نصب و اجرا کند. بیشتر بدانید @@ -1245,7 +1245,7 @@ اتصال یک دستگاه دیگر - برای ارسال یک زبانه، حداقل در یک افزارهٔ دیگر به Firefox وارد شوید. + برای ارسال یک زبانه، حداقل در یک افزارهٔ دیگر به LeOSium وارد شوید. گرفتم @@ -1268,10 +1268,10 @@ - ‏‏Firefox سریع و خصوصی است + ‏‏LeOSium سریع و خصوصی است - ‏Firefox را مروگر پیش‌فرض‌تان بکنید + ‏LeOSium را مروگر پیش‌فرض‌تان بکنید مرور خصوصی را بیازمایید - لطفاً با شرکت در یک نظرسنجی کوتاه، به بهتر شدن Firefox کمک کنید. + لطفاً با شرکت در یک نظرسنجی کوتاه، به بهتر شدن LeOSium کمک کنید. شرکت در نظرسنجی @@ -1432,16 +1432,16 @@ اسکن کد - https://firefox.com/pair بروید]]> + https://firefox.com/pair بروید]]> آمادهٔ اسکن با دوربین خود وارد سیستم شوید به جای آن از رایانامه استفاده کنید - + یکی ایجاد کنید.]]> - + %s همگام سازی با حساب شما را متوقف خواهد کرد، ولی هیچ کدوم از داده‌های شما بر روی این مرورگر حذف نخواهد شد. قطع ارتباط @@ -1457,7 +1457,7 @@ محافظت پیشرفته در برابر ردیابی هم‌اکنون دارای محافظت کامل در برابر کلوچک است؛ قدرتمندترین سد ما بر ضدّ ردیاب‌های میان‌پایگاهی. - + ‏%s شما را از بسیاری از ردیاب‌های رایج که فعالیت‌های برخط‌تان را پی می‌گیرند، محافظت می‌کند. بیشتر بدانید @@ -1614,9 +1614,9 @@ هرگز ذخیره نکن - + پرکننده خودکار در %1$s - + هنگام استفاده از %1$s ، نام کاربری و گذرواژه ها را در وب سایت ها پر و ذخیره کنید. تکمیل خودکار در برنامه های دیگر @@ -1967,13 +1967,13 @@ اتصال به افزاره‌ای دیگر. لطفا مجددا تایید کنید. - + لطفاً همگام‌سازی زبانه را به کار بیندازید. - شما هیچ زبانهٔ باز دیگری در Firefox روی افزاره‌های دیگرتان ندارید. - + شما هیچ زبانهٔ باز دیگری در LeOSium روی افزاره‌های دیگرتان ندارید. + نمایش فهرستی از زبانه‌ها از افزاره‌های دیگر شما. - + برای همگام‌سازی وارد شوید @@ -2025,15 +2025,15 @@ بعد از یک ماه، به صورت خودکار بسته شود؟ - ‏Firefox می‌تواند زبانه‌هایی را که در ماه گذشته مشاهده نکرده‌اید؛ ببندد. + ‏LeOSium می‌تواند زبانه‌هایی را که در ماه گذشته مشاهده نکرده‌اید؛ ببندد. فعّال‌سازی بستن خودکار بستن خودکار، فعّال شد - - پیشنهادهای Firefox + + پیشنهادهای LeOSium جست‌وجوی گوگل @@ -2041,7 +2041,7 @@ جست‌وجوی %s - پیوندهای وبگاه‌ها، رایانامه‌ها و پیام‌ها را تنظیم کنید تا به طور خودکار در Firefox باز شوند. + پیوندهای وبگاه‌ها، رایانامه‌ها و پیام‌ها را تنظیم کنید تا به طور خودکار در LeOSium باز شوند. حذف @@ -2065,7 +2065,7 @@ قدرت گرفته از %s. - بخشی از خانوادهٔ Firefox.‏ %s + بخشی از خانوادهٔ LeOSium.‏ %s بیشتر بدانید @@ -2086,6 +2086,6 @@ برای آموختن بیش‌تر دربارهٔ این مجموعه، پیوند را باز کنید خواندن مقاله - + برای آموختن بیش‌تر، پیوند را باز کنید diff --git a/app/src/main/res/values-ff/strings.xml b/app/src/main/res/values-ff/strings.xml index 665c8055..ec948c80 100644 --- a/app/src/main/res/values-ff/strings.xml +++ b/app/src/main/res/values-ff/strings.xml @@ -236,12 +236,12 @@ Ñifol Keɓogol - - Heertin sarworde konte Firefox + + Heertin sarworde konte LeOSium Heertin sarworde Sync - Konte Firefox/ sarworde Sync waylaama. Uddugol jaaɓnirgal ngal ngam jamminde bayle… + Konte LeOSium/ sarworde Sync waylaama. Uddugol jaaɓnirgal ngal ngam jamminde bayle… Konte @@ -255,7 +255,7 @@ Heertin - Konte Firefox + Konte LeOSium Seŋo kadi ngam fuɗɗitaade jahdingol @@ -330,7 +330,7 @@ Horiima waylude ɗerol ɓalal Ɓeydu humpito - + Gaadanteejo %s @@ -375,7 +375,7 @@ Heɓii tabbe - Tintine ngam tabbe keɓaaɗe e kaɓirɗe Firefox goɗɗe. + Tintine ngam tabbe keɓaaɗe e kaɓirɗe LeOSium goɗɗe. Tabbere heɓaama @@ -798,7 +798,7 @@ Seŋ kaɓirgol goɗngol - Ngam neldude tabbere, seŋo e Firefox ko famɗi fof e kaɓirgal gootal goɗngal. + Ngam neldude tabbere, seŋo e LeOSium ko famɗi fof e kaɓirgal gootal goɗngal. Mi faamii @@ -904,8 +904,8 @@ Momtugol keɓe banngogol… - - Seŋo e Firefox + + Seŋo e LeOSium Reen hoore maa @@ -939,16 +939,16 @@ Niiwto kod oo - https://firefox.com/pair]]> + https://firefox.com/pair]]> Hebiima niiwtaade Seŋoro kameraa maa Huutoro ɗoo iimeel - - Sos konte ngam sanngoɗinde Firefox hakkunde kaɓirɗi.]]> - + + Sos konte ngam sanngoɗinde LeOSium hakkunde kaɓirɗi.]]> + Maa %s dartin jahdingol e konte maa, kono momtataa hay wootere e keɓe banngogol maa e ngal kaɓirgal gal. Seŋtondir @@ -1036,7 +1036,7 @@ Hoto danndu abada - + Humpit e jaajol e %1$s Humpit e jaajol e jaaɓɗe goɗɗe @@ -1217,10 +1217,10 @@ Seŋ kaɓirgol goɗngol. - + Yiy doggol tabbe iwɗe e kaɓirɗi maa goɗɗi. - + Seŋo nga sanngoɗine Alaa tabbe udditiiɗe @@ -1237,7 +1237,7 @@ Uddu e jaajol caggal lewru? - Firefox ena waawi uddude tabbe ɗe a yillaaki e lewru ɓennundu nduu. + LeOSium ena waawi uddude tabbe ɗe a yillaaki e lewru ɓennundu nduu. Barjinaaɗi diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 95a24978..827163ea 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -72,7 +72,7 @@ Älä jätä jälkiä tähän laitteeseen %1$s poistaa evästeet, historian ja sivustotiedot, kun suljet kaikki yksityiset välilehdet. %2$s Käännä sivu + + Sivu käännetty kielestä %1$s kielelle %2$s. + Valittu kieli @@ -335,13 +340,23 @@ - Firefoxin tietosuojakäytäntö - + LeOSiumin tietosuojakäytäntö + + Lue lisää tietosuojakäytännöstämme Turvaamisesi on tärkeää meille + + Ota selvää, miksi miljoonat rakastavat LeOSiumia + + Turvallista selausta ja enemmän vaihtoehtoja Voittoa tavoittelemattoman tahon tukema selaimemme auttaa estämään yrityksiä seuraamasta sinua salaa verkossa. + Yli 100 miljoonaa ihmistä suojaa yksityisyyttään valitsemalla voittoa tavoittelemattoman järjestön tukeman selaimen. + + Tunnetut seuraimet? Estetty automaattisesti. Laajennukset? Kokeile kaikkia 700:aa. PDF-tiedostoja? Sisäänrakennettu lukija tekee niistä helposti hallittavia. + Voittoa tavoittelemattoman tahon tukema selaimemme auttaa estämään yrityksiä seuraamasta sinua salaa verkossa.\n\nLisätietoja on tietosuojakäytännössämme. @@ -353,32 +368,32 @@ Pysy salattuna, kun vaihtelet laitteiden välillä - Kun olet kirjautunut sisään ja synkronoitu, tietosi ovat paremmassa turvassa. Firefox salaa salasanasi, kirjanmerkkisi ja paljon muuta. + Note: The word "LeOSium" should NOT be translated --> + Kun olet kirjautunut sisään ja synkronoitu, tietosi ovat paremmassa turvassa. LeOSium salaa salasanasi, kirjanmerkkisi ja paljon muuta. Kirjaudu sisään Ei nyt - Ilmoitukset auttavat sinua pysymään paremmassa turvassa Firefoxilla + Note: The word "LeOSium" should NOT be translated --> + Ilmoitukset auttavat sinua pysymään paremmassa turvassa LeOSiumilla - Lähetä turvallisesti välilehtiä laitteidesi välillä ja löydä muita Firefoxin tietosuojaominaisuuksia. + Note: The word "LeOSium" should NOT be translated --> + Lähetä turvallisesti välilehtiä laitteidesi välillä ja löydä muita LeOSiumin tietosuojaominaisuuksia. Ota ilmoitukset käyttöön Ei nyt - Kokeile Firefox-hakuwidgetiä + Note: The word "LeOSium" should NOT be translated --> + Kokeile LeOSium-hakuwidgetiä - Kun Firefox on aloitusnäytölläsi, pääset helposti yksityisyyden etusijalle asettavaan selaimeen, joka estää sivustorajat ylittävät seuraimet. + Note: The word "LeOSium" should NOT be translated --> + Kun LeOSium on aloitusnäytölläsi, pääset helposti yksityisyyden etusijalle asettavaan selaimeen, joka estää sivustorajat ylittävät seuraimet. - Lisää Firefox-widget + Note: The word "LeOSium" should NOT be translated --> + Lisää LeOSium-widget Ei nyt @@ -418,10 +433,10 @@ Ehdotukset hakukoneilta Osoitepalkin asetukset - - Osoitepalkki - Firefox Suggest - - Lisätietoja Firefox Suggestista + + Osoitepalkki - LeOSium Suggest + + Lisätietoja LeOSium Suggestista Arvostele Google Playssa Täydennä osoitteet automaattisesti - + Ehdotuksia sponsoreilta - Tue %1$sia satunnaisilla sponsoroiduilla ehdotuksilla - Ehdotuksia %1$silta - + Vastaanota ehdotuksia verkosta hakuusi liittyen Avaa linkit sovelluksissa @@ -651,7 +666,7 @@ Lue lisää - + Klassinen %s Taiteilija-sarja @@ -669,8 +684,8 @@ Uusia lisäosia nyt saatavilla - - Tutustu yli 100 uuteen laajennukseen, joiden avulla voit tehdä Firefoxista omasi. + + Tutustu yli 100 uuteen laajennukseen, joiden avulla voit tehdä LeOSiumista omasi. Tutustu lisäosiin @@ -698,9 +713,9 @@ Kirjanmerkit - Kirjautumistiedot + Kirjautumistiedot - Salasanat + Salasanat Avoimet välilehdet @@ -726,9 +741,9 @@ %1$s laitteella %2$s %3$s - Luottokortit + Luottokortit - Maksutavat + Maksutavat Osoitteet @@ -736,7 +751,7 @@ Vastaanotetut välilehdet - Ilmoitukset muista Firefox-laitteista vastaanotetuista välilehdistä. + Ilmoitukset muista LeOSium-laitteista vastaanotetuista välilehdistä. Välilehti vastaanotettu @@ -920,7 +935,7 @@ Poista Käynnissä - + %1$s saattaa asentaa ja suorittaa tutkimuksia silloin tällöin. Lue lisää @@ -1299,7 +1314,7 @@ Yhdistä toinen laite - Lähetä välilehti kirjautumalla Firefoxiin vähintään yhdellä muulla laitteella. + Lähetä välilehti kirjautumalla LeOSiumiin vähintään yhdellä muulla laitteella. Selvä @@ -1327,10 +1342,10 @@ - Firefox on nopea ja yksityinen + LeOSium on nopea ja yksityinen - Aseta Firefox oletusselaimeksi + Aseta LeOSium oletusselaimeksi Kokeile yksityistä selaamista - Auta parantamaan Firefoxia vastaamalla lyhyeen kyselyyn. + Auta parantamaan LeOSiumia vastaamalla lyhyeen kyselyyn. Vastaa kyselyyn @@ -1503,16 +1518,16 @@ Skannaa koodi - https://firefox.com/pair]]> + https://firefox.com/pair]]> Valmiina skannaamaan Kirjaudu sisään kamerallasi Käytä sähköpostia - - Luo tili synkronoidaksesi Firefox laitteiden välillä.]]> - + + Luo tili synkronoidaksesi LeOSium laitteiden välillä.]]> + %s lopettaa synkronoinnin tilisi kanssa, mutta ei poista selaustietojasi tältä laitteelta. Katkaise yhteys @@ -1529,7 +1544,7 @@ Tehostettu seurannan suojaus Sisältää nyt täydellisen evästesuojauksen, joka on toistaiseksi tehokkain esteemme sivustojen välistä seurantaa vastaan. - + %s suojaa sinua monilta yleisimmiltä verkossa tekemiäsi asioita jäljittäviltä seuraimilta. Lue lisää @@ -1681,21 +1696,21 @@ Voit lisätä tämän sivuston laitteesi aloitusnäytölle, jolloin sivuston käyttö onnistuu nopeasti ja tarjoaa sovelluksen kaltaisen kokemuksen. - Käyttäjätunnukset ja salasanat + Käyttäjätunnukset ja salasanat - Salasanat + Salasanat - Tallenna käyttäjätunnukset ja salasanat + Tallenna käyttäjätunnukset ja salasanat - Tallenna salasanat + Tallenna salasanat Kysy tallennusta Älä tallenna koskaan - + Täytä automaattisesti sovelluksessa %1$s - + Täytä ja tallenna käyttäjätunnukset ja salasanat verkkosivuilla, kun käytät sovellusta %1$s. Automaattinen täyttö muissa sovelluksissa @@ -1703,47 +1718,47 @@ Täytä käyttäjätunnukset ja salasanat muissa laitteesi sovelluksissa. - Lisää kirjautumistieto + Lisää kirjautumistieto - Lisää salasana + Lisää salasana - - Synkronoi kirjautumistiedot - Synkronoi salasanat + Synkronoi kirjautumistiedot + + Synkronoi salasanat - Synkronoi kirjautumistiedot laitteiden välillä + Synkronoi kirjautumistiedot laitteiden välillä - Synkronoi salasanat eri laitteiden välillä + Synkronoi salasanat eri laitteiden välillä - Tallennetut kirjautumistiedot + Tallennetut kirjautumistiedot - Tallennetut salasanat + Tallennetut salasanat - %siin tallentamasi tai synkronoimasi kirjautumistiedot näkyvät täällä. + %siin tallentamasi tai synkronoimasi kirjautumistiedot näkyvät täällä. - %siin tallentamasi tai synkronoimasi salasanat näkyvät tässä. Kaikki tallentamasi salasanat ovat salattuja. + %siin tallentamasi tai synkronoimasi salasanat näkyvät tässä. Kaikki tallentamasi salasanat ovat salattuja. - Lue lisää Syncista. + Lue lisää Syncista. - Lisätietoja synkronoinnista + Lisätietoja synkronoinnista Poikkeukset - Käyttäjätunnukset ja salanat, joita ei tallenneta, näytetään täällä. + Käyttäjätunnukset ja salanat, joita ei tallenneta, näytetään täällä. - %s ei tallenna tässä lueteltujen sivustojen salasanoja. + %s ei tallenna tässä lueteltujen sivustojen salasanoja. - Käyttäjätunnuksia ja salasanoja ei tallenneta näille sivustoille. + Käyttäjätunnuksia ja salasanoja ei tallenneta näille sivustoille. - %s ei tallenna näiden sivustojen salasanoja. + %s ei tallenna näiden sivustojen salasanoja. Poista kaikki poikkeukset - Etsi kirjautumistiedoista + Etsi kirjautumistiedoista - Etsi salasanoja + Etsi salasanoja Sivusto @@ -1771,17 +1786,17 @@ Piilota salasana - Avaa lukitus nähdäksesi tallennetut kirjautumistiedot + Avaa lukitus nähdäksesi tallennetut kirjautumistiedot - Avaa lukitus nähdäksesi tallennetut salasanat + Avaa lukitus nähdäksesi tallennetut salasanat - Suojaa käyttäjätunnuksesi ja salasanasi + Suojaa käyttäjätunnuksesi ja salasanasi - Suojaa tallennetut salasanat + Suojaa tallennetut salasanat - Aseta laitteen avaukseen tarkoitettu kuvio, PIN-koodi tai salasana suojataksesi tallennetut kirjautumistiedot ja salasanat siltä varalta, että joku saa laitteesi haltuunsa. + Aseta laitteen avaukseen tarkoitettu kuvio, PIN-koodi tai salasana suojataksesi tallennetut kirjautumistiedot ja salasanat siltä varalta, että joku saa laitteesi haltuunsa. - Määritä laitteen lukituskuvio, PIN-koodi tai salasana suojataksesi tallennettuja salasanojasi, jos laitteesi on jollain toisella. + Määritä laitteen lukituskuvio, PIN-koodi tai salasana suojataksesi tallennettuja salasanojasi, jos laitteesi on jollain toisella. Myöhemmin @@ -1799,10 +1814,10 @@ Viimeksi käytetty - Järjestä kirjautumistietojen valikko + Järjestä kirjautumistietojen valikko - Salasanojen järjestysvalikko + Salasanojen järjestysvalikko @@ -1810,43 +1825,43 @@ Osoitteet - Luottokortit + Luottokortit - Maksutavat + Maksutavat - Tallenna ja täytä kortit automaattisesti + Tallenna ja täytä kortit automaattisesti - Tallenna ja täytä maksutavat + Tallenna ja täytä maksutavat - Tiedot on salattu + Tiedot on salattu - %s salaa kaikki tallentamasi maksutavat + %s salaa kaikki tallentamasi maksutavat Synkronoi kortit laitteiden välillä Synkronoi kortit - Lisää luottokortti + Lisää luottokortti - Lisää kortti + Lisää kortti - Hallinnoi tallennettuja kortteja + Hallinnoi tallennettuja kortteja - Hallitse kortteja + Hallitse kortteja Lisää osoite Hallitse osoitteita - Tallenna ja täytä osoitteet automaattisesti + Tallenna ja täytä osoitteet automaattisesti - Tallenna ja täytä osoitteet + Tallenna ja täytä osoitteet - Sisällytä tiedot kuten numerot, sähköpostiosoitteet ja toimitusosoitteet + Sisällytä tiedot kuten numerot, sähköpostiosoitteet ja toimitusosoitteet - Sisältää puhelinnumerot ja sähköpostiosoitteet + Sisältää puhelinnumerot ja sähköpostiosoitteet Lisää kortti @@ -1867,9 +1882,9 @@ Poista kortti - Haluatko varmasti poistaa tämän luottokortin? + Haluatko varmasti poistaa tämän luottokortin? - Poistetaanko kortti? + Poistetaanko kortti? Poista @@ -1883,24 +1898,24 @@ Tallennetut kortit - Kirjoita kelvollinen luottokortin numero + Kirjoita kelvollinen luottokortin numero - Anna kelvollinen kortin numero + Anna kelvollinen kortin numero - Täytä tämä kenttä + Täytä tämä kenttä - Lisää nimi + Lisää nimi Avaa lukitus nähdäksesi tallennetut kortit - Suojaa luottokorttisi + Suojaa luottokorttisi - Suojaa tallennetut maksutavat + Suojaa tallennetut maksutavat - Aseta laitteen avaukseen tarkoitettu kuvio, PIN-koodi tai salasana suojataksesi tallennetut luottokorttitiedot siltä varalta, että joku saa laitteesi haltuunsa. + Aseta laitteen avaukseen tarkoitettu kuvio, PIN-koodi tai salasana suojataksesi tallennetut luottokorttitiedot siltä varalta, että joku saa laitteesi haltuunsa. - Määritä laitteen lukituskuvio, PIN-koodi tai salasana suojataksesi tallennettuja maksutapojasi, jos laitteesi on jollain toisella. + Määritä laitteen lukituskuvio, PIN-koodi tai salasana suojataksesi tallennettuja maksutapojasi, jos laitteesi on jollain toisella. Aseta nyt @@ -1909,10 +1924,10 @@ Avaa laitteen lukitus - Avaa lukitus käyttääksesi tallennettuja luottokorttitietoja + Avaa lukitus käyttääksesi tallennettuja luottokorttitietoja - Avaa lukitus käyttääksesi tallennettuja maksutapoja + Avaa lukitus käyttääksesi tallennettuja maksutapoja Lisää osoite @@ -1920,11 +1935,13 @@ Hallitse osoitteita - Etunimi + Etunimi - Toinen nimi + Toinen nimi - Sukunimi + Sukunimi + + Nimi Katuosoite @@ -1949,9 +1966,9 @@ Poista osoite - Haluatko varmasti poistaa tämän osoitteen? + Haluatko varmasti poistaa tämän osoitteen? - Poistetaanko tämä osoite? + Poistetaanko tämä osoite? Poista @@ -2050,49 +2067,49 @@ Muokkaa - Haluatko varmasti poistaa tämän kirjautumistiedon? + Haluatko varmasti poistaa tämän kirjautumistiedon? - Haluatko varmasti poistaa tämän salasanan? + Haluatko varmasti poistaa tämän salasanan? Poista Peruuta - Kirjautumistietojen valinnat + Kirjautumistietojen valinnat - Salasanojen asetukset + Salasanojen asetukset - Muokattava tekstikenttä kirjautumisen verkkosivua varten. + Muokattava tekstikenttä kirjautumisen verkkosivua varten. - Verkkosivuston muokattava tekstikenttä. + Verkkosivuston muokattava tekstikenttä. - Muokattava tekstikenttä kirjautumisen käyttäjätunnusta varten. + Muokattava tekstikenttä kirjautumisen käyttäjätunnusta varten. - Käyttäjätunnuksen muokattava tekstikenttä. + Käyttäjätunnuksen muokattava tekstikenttä. - Muokattava tekstikenttä kirjautumisen salasanaa varten. + Muokattava tekstikenttä kirjautumisen salasanaa varten. - Salasanan muokattava tekstikenttä. + Salasanan muokattava tekstikenttä. - Tallenna muutokset kirjautumistietoihin. + Tallenna muutokset kirjautumistietoihin. - Tallenna muutokset. + Tallenna muutokset. - Muokkaa + Muokkaa - Muokkaa salasanaa + Muokkaa salasanaa - Lisää uusi kirjautumistieto + Lisää uusi kirjautumistieto - Lisää salasana + Lisää salasana - Salasana vaaditaan + Salasana vaaditaan - Kirjoita salasana + Kirjoita salasana - Käyttäjätunnus vaaditaan + Käyttäjätunnus vaaditaan - Kirjoita käyttäjätunnus + Kirjoita käyttäjätunnus Isäntänimi vaaditaan @@ -2117,13 +2134,13 @@ Yhdistä toinen laite. Tunnistaudu uudelleen. - + Ota välilehtien synkronointi käyttöön. - Sinulla ei ole muilla laitteilla avoimia välilehtiä Firefoxissa. - + Sinulla ei ole muilla laitteilla avoimia välilehtiä LeOSiumissa. + Katso välilehtilistaus muilta laitteiltasi. - + Kirjaudu sisään synkronoidaksesi @@ -2175,7 +2192,7 @@ Suljetaanko automaattisesti kuukauden kuluttua? - Firefox voi sulkea välilehdet, joita et ole katsonut viimeisen kuukauden aikana. + LeOSium voi sulkea välilehdet, joita et ole katsonut viimeisen kuukauden aikana. KÄYTÄ AUTOMAATTISTA SULKEMISTA @@ -2183,8 +2200,8 @@ Automaattinen sulkeminen käytössä - - Firefox-ehdotukset + + LeOSium-ehdotukset Google-haku @@ -2196,7 +2213,7 @@ Vaihda oletusselain - Aseta verkkosivustojen, sähköpostien ja viestien linkit avautumaan automaattisesti Firefoxissa. + Aseta verkkosivustojen, sähköpostien ja viestien linkit avautumaan automaattisesti LeOSiumissa. Poista @@ -2205,7 +2222,7 @@ Napsauta saadaksesi lisätietoja - Liiku ylöspäin + Liiku ylöspäin Sulje @@ -2220,7 +2237,7 @@ Mahdollistajana %s. - Osa Firefox-perhettä. %s + Osa LeOSium-perhettä. %s Lue lisää @@ -2246,8 +2263,6 @@ Oikaistu arvosana - Epäluotettavat arvostelut poistettu - Luotettavien arvostelujen pohjalta Kohokohdat viimeaikaisista arvosteluista @@ -2299,10 +2314,6 @@ Jos huomaat, että tämä tuote on jälleen varastossa, ilmoita siitä, niin tarkistamme arvostelut. Ilmoita, että tuoteta on varastossa - - Tarkistetaan arvostelun laatua - - Tarkistetaan arvostelun laatua Tarkistetaan arvostelun laatua (%s) @@ -2394,7 +2405,7 @@ avataksesi linkin, josta saat lisätietoja tästä kokoelmasta lukeaksesi artikkelin - + avataksesi linkin ja lukeaksesi lisää @@ -2410,11 +2421,15 @@ Käännetäänkö sivu? + + Sivu käännetty kielestä %1$s kielelle %2$s Kokeile yksityisiä käännöksiä %1$sissa Yksityisyytesi vuoksi käännökset eivät koskaan lähde laitteestasi eteenpäin. Uusia kieliä ja parannuksia tulossa pian! %1$s - + Lue lisää Käännä kieleltä @@ -2422,6 +2437,8 @@ Käännä kielelle Ei nyt + + Näytä alkuperäinen Valmis @@ -2445,6 +2462,16 @@ Lue lisää + + Käännetään… + + + Ladataanko kieli datansäästötilassa (%1$s)? + + Käännösasetukset diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index bc262f46..45758274 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -72,7 +72,7 @@ %1$s efface cookies, historique de navigation et données de sites lorsque vous fermez tous les onglets de navigation privée. %2$s Traduire la page + + Page traduite en %2$s, l’originale est en %1$s. + Langue sélectionnée @@ -335,13 +340,23 @@ - Politique de confidentialité de Firefox - + Politique de confidentialité de LeOSium + + En savoir plus dans notre politique de confidentialité Votre protection compte pour nous + + Découvrez pourquoi des millions de personnes aiment LeOSium + + La navigation sécurisée avec plus de choix Notre navigateur soutenu par une organisation à but non lucratif empêche les entreprises de vous suivre secrètement sur le Web. + Plus de 100 millions de personnes protègent leur vie privée en choisissant un navigateur soutenu par une organisation à but non lucratif. + + Les traqueurs connus ? Automatiquement bloqués. Des extensions ? Essayez les 700. Des fichiers PDF ? Notre lecteur intégré en facilite la gestion. + Notre navigateur soutenu par une organisation à but non lucratif empêche les entreprises de vous suivre secrètement sur le Web.\n\nPour en savoir plus, consultez notre politique de confidentialité. @@ -353,33 +368,33 @@ Protégez-vous grâce au chiffrement lorsque vous passez d’un appareil à un autre - Lorsque vous vous connectez et activez la synchronisation, votre sécurité est renforcée. Firefox chiffre vos mots de passe, vos marque-pages et bien d’autres choses. + Note: The word "LeOSium" should NOT be translated --> + Lorsque vous vous connectez et activez la synchronisation, votre sécurité est renforcée. LeOSium chiffre vos mots de passe, vos marque-pages et bien d’autres choses. Connexion Plus tard - Les notifications vous aident à rester en sécurité avec Firefox + Note: The word "LeOSium" should NOT be translated --> + Les notifications vous aident à rester en sécurité avec LeOSium - Envoyez des onglets d’un appareil à un autre en toute sécurité et découvrez d’autres fonctionnalités de protection de la vie privée de Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envoyez des onglets d’un appareil à un autre en toute sécurité et découvrez d’autres fonctionnalités de protection de la vie privée de LeOSium. Activer les notifications Plus tard - Essayez le widget de recherche de Firefox + Note: The word "LeOSium" should NOT be translated --> + Essayez le widget de recherche de LeOSium - Mettez Firefox sur votre écran d’accueil pour un accès facile au navigateur axé sur le respect de la vie privée qui bloque les traqueurs intersites. + Note: The word "LeOSium" should NOT be translated --> + Mettez LeOSium sur votre écran d’accueil pour un accès facile au navigateur axé sur le respect de la vie privée qui bloque les traqueurs intersites. - Ajouter le widget Firefox + Note: The word "LeOSium" should NOT be translated --> + Ajouter le widget LeOSium Plus tard @@ -420,10 +435,10 @@ Suggestions des moteurs de recherche Préférences pour la barre d’adresse - - Barre d’adresse - Firefox suggère - - En savoir plus sur Firefox suggère + + Barre d’adresse - LeOSium suggère + + En savoir plus sur LeOSium suggère Attribuer une note sur Google Play Compléter automatiquement les URL - + Suggestions de sponsors - Soutenir %1$s en affichant de temps en temps des suggestions sponsorisées - Suggestions de %1$s - + Obtenir des suggestions du Web en rapport avec votre recherche Ouvrir les liens dans des applications @@ -650,7 +665,7 @@ En savoir plus - + %s classique Série d’artiste @@ -668,8 +683,8 @@ Nouveaux modules complémentaires disponibles - - Découvrez plus de 100 nouvelles extensions qui vous permettent de personnaliser Firefox. + + Découvrez plus de 100 nouvelles extensions qui vous permettent de personnaliser LeOSium. Parcourir les modules complémentaires @@ -697,9 +712,9 @@ Marque-pages - Identifiants + Identifiants - Mots de passe + Mots de passe Onglets ouverts @@ -725,9 +740,9 @@ %1$s sur %2$s %3$s - Cartes bancaires + Cartes bancaires - Moyens de paiement + Moyens de paiement Adresses @@ -736,7 +751,7 @@ Onglets reçus - Notifications d’onglets reçus depuis Firefox sur d’autres appareils. + Notifications d’onglets reçus depuis LeOSium sur d’autres appareils. Onglet reçu @@ -920,7 +935,7 @@ Supprimer Activées - + %1$s peut installer et lancer des études de temps en temps. En savoir plus @@ -1312,7 +1327,7 @@ Connecter un autre appareil - Pour envoyer un onglet, connectez-vous à votre compte Firefox sur au moins un autre appareil. + Pour envoyer un onglet, connectez-vous à votre compte LeOSium sur au moins un autre appareil. J’ai compris @@ -1342,10 +1357,10 @@ - Firefox est rapide et privé + LeOSium est rapide et privé - Faites de Firefox votre navigateur par défaut + Faites de LeOSium votre navigateur par défaut Essayez la navigation privée - Aidez-nous à améliorer Firefox en répondant à un court sondage. + Aidez-nous à améliorer LeOSium en répondant à un court sondage. Participer au sondage @@ -1519,16 +1534,16 @@ Scanner le code - https://firefox.com/pair]]> + https://firefox.com/pair]]> Prêt·e à scanner Connectez-vous avec votre appareil photo Utiliser plutôt une adresse e-mail - - Créez-en un pour synchroniser Firefox entre vos appareils.]]> - + + Créez-en un pour synchroniser LeOSium entre vos appareils.]]> + %s ne se synchronisera plus avec votre compte, mais ne supprimera aucune donnée de navigation sur cet appareil. Se déconnecter @@ -1544,7 +1559,7 @@ Protection renforcée contre le pistage Maintenant avec la protection totale contre les cookies, notre plus puissante barrière contre les traqueurs intersites à ce jour. - + %s vous protège de la plupart des traqueurs les plus courants qui pistent vos activités en ligne. En savoir plus @@ -1695,21 +1710,21 @@ Vous pouvez facilement ajouter ce site à l’écran d’accueil de votre appareil pour y avoir accès directement et naviguer plus rapidement, comme si vous utilisiez une application. - Identifiants et mots de passe + Identifiants et mots de passe - Mots de passe + Mots de passe - Enregistrer les identifiants et les mots de passe + Enregistrer les identifiants et les mots de passe - Enregistrer les mots de passe + Enregistrer les mots de passe Demander pour enregistrer Ne jamais enregistrer - + Remplissage automatique dans %1$s - + Remplir et enregistrer les noms d’utilisateur et les mots de passe dans les sites web tout en utilisant %1$s. Remplissage automatique dans d’autres applications @@ -1717,47 +1732,47 @@ Remplit les noms d’utilisateur et les mots de passe dans d’autres applications sur votre appareil. - Ajouter un identifiant + Ajouter un identifiant - Ajouter un mot de passe + Ajouter un mot de passe - - Synchroniser les identifiants - Synchroniser les mots de passe + Synchroniser les identifiants + + Synchroniser les mots de passe - Synchroniser les identifiants entre vos appareils + Synchroniser les identifiants entre vos appareils - Synchronisez les mots de passe entre vos appareils + Synchronisez les mots de passe entre vos appareils - Identifiants enregistrés + Identifiants enregistrés - Mots de passe enregistrés + Mots de passe enregistrés - Les identifiants que vous enregistrez ou synchronisez avec %s s’afficheront ici. + Les identifiants que vous enregistrez ou synchronisez avec %s s’afficheront ici. - Les mots de passe que vous enregistrez ou synchronisez avec %s seront répertoriés ici. Tous les mots de passe que vous enregistrez sont chiffrés. + Les mots de passe que vous enregistrez ou synchronisez avec %s seront répertoriés ici. Tous les mots de passe que vous enregistrez sont chiffrés. - En savoir plus sur Sync. + En savoir plus sur Sync. - En savoir plus sur la synchronisation + En savoir plus sur la synchronisation Exceptions - Les identifiants et les mots de passe qui ne sont pas enregistrés seront affichés ici. + Les identifiants et les mots de passe qui ne sont pas enregistrés seront affichés ici. - %s n’enregistrera pas les mots de passe pour les sites listés ici. + %s n’enregistrera pas les mots de passe pour les sites listés ici. - Les identifiants et les mots de passe ne seront pas enregistrés pour ces sites. + Les identifiants et les mots de passe ne seront pas enregistrés pour ces sites. - %s n’enregistrera pas les mots de passe pour ces sites. + %s n’enregistrera pas les mots de passe pour ces sites. Supprimer toutes les exceptions - Rechercher des identifiants + Rechercher des identifiants - Rechercher des mots de passe + Rechercher des mots de passe Site @@ -1785,17 +1800,17 @@ Masquer le mot de passe - Déverrouillez pour afficher vos identifiants enregistrés + Déverrouillez pour afficher vos identifiants enregistrés - Déverrouillez pour afficher vos mots de passe enregistrés + Déverrouillez pour afficher vos mots de passe enregistrés - Protégez vos identifiants et mots de passe + Protégez vos identifiants et mots de passe - Sécurisez les mots de passe enregistrés + Sécurisez les mots de passe enregistrés - Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos identifiants de connexion et mots de passe enregistrés pour le cas où quelqu’un accède à votre appareil. + Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos identifiants de connexion et mots de passe enregistrés pour le cas où quelqu’un accède à votre appareil. - Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos mots de passe enregistrés si jamais quelqu’un accède à votre appareil. + Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos mots de passe enregistrés si jamais quelqu’un accède à votre appareil. Plus tard @@ -1812,10 +1827,10 @@ Dernière utilisation - Menu de tri des identifiants + Menu de tri des identifiants - Menu de tri des mots de passe + Menu de tri des mots de passe @@ -1823,43 +1838,43 @@ Adresses - Cartes bancaires + Cartes bancaires - Moyens de paiement + Moyens de paiement - Enregistrer et remplir automatiquement les cartes + Enregistrer et remplir automatiquement les cartes - Enregistrer et renseigner les moyens de paiement + Enregistrer et renseigner les moyens de paiement - Les données sont chiffrées + Les données sont chiffrées - %s chiffre tous les moyens de paiement que vous enregistrez + %s chiffre tous les moyens de paiement que vous enregistrez Synchroniser les cartes entre vos appareils Synchroniser les cartes - Ajouter une carte bancaire + Ajouter une carte bancaire - Ajouter une carte + Ajouter une carte - Gérer les cartes enregistrées + Gérer les cartes enregistrées - Gérer les cartes + Gérer les cartes Ajouter une adresse Gérer les adresses - Enregistrer et remplir automatiquement les adresses + Enregistrer et remplir automatiquement les adresses - Enregistrer et remplir automatiquement les adresses + Enregistrer et remplir automatiquement les adresses - Cela comprend des informations telles que des numéros, des adresses e-mail et des adresses d’expédition + Cela comprend des informations telles que des numéros, des adresses e-mail et des adresses d’expédition - Y compris les numéros de téléphone et les adresses e-mail + Y compris les numéros de téléphone et les adresses e-mail Ajouter une carte @@ -1880,9 +1895,9 @@ Supprimer la carte - Voulez-vous vraiment supprimer cette carte bancaire ? + Voulez-vous vraiment supprimer cette carte bancaire ? - Supprimer la carte ? + Supprimer la carte ? Supprimer @@ -1896,24 +1911,24 @@ Cartes enregistrées - Veuillez saisir un numéro de carte bancaire valide + Veuillez saisir un numéro de carte bancaire valide - Saisissez un numéro de carte valide + Saisissez un numéro de carte valide - Veuillez compléter ce champ + Veuillez compléter ce champ - Ajouter un nom + Ajouter un nom Déverrouillez pour afficher vos cartes enregistrées - Protégez vos cartes bancaires + Protégez vos cartes bancaires - Sécurisez vos moyens de paiement enregistrés + Sécurisez vos moyens de paiement enregistrés - Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos cartes bancaires enregistrées si jamais quelqu’un accède à votre appareil. + Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos cartes bancaires enregistrées si jamais quelqu’un accède à votre appareil. - Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos moyens de paiement enregistrés si jamais quelqu’un accède à votre appareil. + Configurez un schéma de verrouillage, un code PIN ou un mot de passe pour protéger vos moyens de paiement enregistrés si jamais quelqu’un accède à votre appareil. Configurer maintenant @@ -1921,10 +1936,10 @@ Déverrouillez votre appareil - Déverrouillez pour utiliser les informations de cartes bancaires enregistrées + Déverrouillez pour utiliser les informations de cartes bancaires enregistrées - Déverrouillez pour utiliser des moyens de paiement enregistrés + Déverrouillez pour utiliser des moyens de paiement enregistrés Ajouter une adresse @@ -1932,11 +1947,13 @@ Gérer les adresses - Prénom + Prénom - Deuxième prénom + Deuxième prénom - Nom de famille + Nom de famille + + Nom complet Adresse postale @@ -1961,9 +1978,9 @@ Supprimer l’adresse - Voulez-vous vraiment supprimer cette adresse ? + Voulez-vous vraiment supprimer cette adresse ? - Supprimer cette adresse ? + Supprimer cette adresse ? Supprimer @@ -2061,49 +2078,49 @@ Modifier - Voulez-vous vraiment supprimer cet identifiant ? + Voulez-vous vraiment supprimer cet identifiant ? - Voulez-vous vraiment supprimer ce mot de passe ? + Voulez-vous vraiment supprimer ce mot de passe ? Supprimer Annuler - Options de l’identifiant + Options de l’identifiant - Options de mot de passe + Options de mot de passe - Le champ de texte modifiable pour l’adresse web de l’identifiant. + Le champ de texte modifiable pour l’adresse web de l’identifiant. - Le champ de texte modifiable pour l’adresse du site web. + Le champ de texte modifiable pour l’adresse du site web. - Le champ de texte modifiable pour le nom d’utilisateur de l’identifiant. + Le champ de texte modifiable pour le nom d’utilisateur de l’identifiant. - Le champ de texte modifiable pour le nom d’utilisateur. + Le champ de texte modifiable pour le nom d’utilisateur. - Le champ de texte modifiable pour le mot de passe de l’identifiant. + Le champ de texte modifiable pour le mot de passe de l’identifiant. - Le champ de texte modifiable pour le mot de passe. + Le champ de texte modifiable pour le mot de passe. - Enregistrez les modifications de l’identifiant. + Enregistrez les modifications de l’identifiant. - Enregistrer les modifications. + Enregistrer les modifications. - Modifier + Modifier - Modifier le mot de passe + Modifier le mot de passe - Ajouter un nouvel identifiant + Ajouter un nouvel identifiant - Ajouter un mot de passe + Ajouter un mot de passe - Mot de passe requis + Mot de passe requis - Saisissez un mot de passe + Saisissez un mot de passe - Le nom d’utilisateur doit être renseigné. + Le nom d’utilisateur doit être renseigné. - Saisissez un nom d’utilisateur + Saisissez un nom d’utilisateur Le nom d’hôte est requis @@ -2128,13 +2145,13 @@ Connectez un autre appareil. Veuillez vous authentifier à nouveau. - + Veuillez activer la synchronisation des onglets. - Vous n’avez aucun onglet ouvert dans Firefox sur vos autres appareils. - + Vous n’avez aucun onglet ouvert dans LeOSium sur vos autres appareils. + Affichez la liste des onglets de vos autres appareils. - + Se connecter pour synchroniser @@ -2186,7 +2203,7 @@ Fermeture automatique après un mois ? - Firefox peut fermer les onglets que vous n’avez pas consultés au cours du mois dernier. + LeOSium peut fermer les onglets que vous n’avez pas consultés au cours du mois dernier. ACTIVER LA FERMETURE AUTOMATIQUE @@ -2195,8 +2212,8 @@ Fermeture automatique activée - - Firefox suggère + + LeOSium suggère Recherche Google @@ -2207,7 +2224,7 @@ Changez de navigateur par défaut - Faites en sorte que les liens des sites web, des e-mails et des messages s’ouvrent automatiquement dans Firefox. + Faites en sorte que les liens des sites web, des e-mails et des messages s’ouvrent automatiquement dans LeOSium. Supprimer @@ -2216,7 +2233,7 @@ Cliquez pour plus de précisions - Remonter + Remonter Fermer @@ -2231,7 +2248,7 @@ Mis en avant par %s. - Membre de la famille Firefox. %s + Membre de la famille LeOSium. %s En savoir plus @@ -2257,8 +2274,6 @@ Évaluation corrigée - Avis non fiables supprimés - Sur la base d’avis fiables Points essentiels des avis récents @@ -2315,10 +2330,6 @@ Si vous constatez le retour de ce produit en stock, signalez-le et nous travaillerons à évaluer les avis. Signaler que le produit est en stock - - Évaluation de la qualité des avis - - Évaluation de la qualité des avis Évaluation de la qualité des avis (%s) @@ -2355,22 +2366,28 @@ Évaluer la qualité des avis Essayez notre guide de confiance pour les avis de produits - + Regardez quelle fiabilité accorder aux avis de produits sur %1$s avant d’acheter. Le vérificateur d’avis, une fonctionnalité expérimentale de %2$s, est intégré au navigateur. Il fonctionne aussi pour %3$s et %4$s. - + Regardez quelle fiabilité accorder aux avis de produits sur %1$s avant d’acheter. Le vérificateur d’avis, une fonctionnalité expérimentale de %2$s, est intégré au navigateur. En utilisant la puissance de %1$s par Mozilla, nous vous aidons à éviter les avis partiaux et mensongers. Notre modèle d’intelligence artificielle s’améliore en permanence pour vous protéger pendant vos achats. %2$s En savoir plus - En sélectionnant « Oui, l’essayer », vous acceptez la %2$s et les %3$s de %1$s par Mozilla. + En sélectionnant « Oui, l’essayer », vous acceptez la %2$s et les %3$s de %1$s par Mozilla. En sélectionnant « Oui, l’essayer » vous acceptez les éléments suivants de %1$s : + + En sélectionnant « Oui, l’essayer », vous acceptez la %2$s de %1$s et la %4$s de %3$s. + + En sélectionnant « Oui, l’essayer », vous acceptez la %2$s de %1$s et la %4$s de %3$s. - politique de confidentialité + politique de confidentialité Politique de confidentialité + + politique de confidentialité conditions d’utilisation @@ -2427,7 +2444,7 @@ ouvrir le lien pour en savoir plus sur cette collection lire l’article - + ouvrir le lien pour en savoir plus %s, titre @@ -2442,11 +2459,15 @@ Traduire cette page ? + + Page traduite en %2$s, l’originale est en %1$s Essayer les traductions privées de %1$s Afin de respecter votre vie privée, les traductions ne quittent jamais votre appareil. De nouvelles langues et des améliorations seront bientôt disponibles ! %1$s - + En savoir plus Langue source : @@ -2454,6 +2475,8 @@ Langue cible : Plus tard + + Afficher la page d’origine Terminé @@ -2476,6 +2499,16 @@ En savoir plus + + Traduction… + + + Télécharger la langue en mode d’économie de données (%1$s) ? + + Options de traduction diff --git a/app/src/main/res/values-fur/strings.xml b/app/src/main/res/values-fur/strings.xml index 8f4d676a..e2e2924d 100644 --- a/app/src/main/res/values-fur/strings.xml +++ b/app/src/main/res/values-fur/strings.xml @@ -71,7 +71,7 @@ No sta lassâ segns su chest dispositîf %1$s al elimine i cookies, la cronologjie e i dâts dai sîts cuant che tu sieris dutis lis schedis privadis. %2$s - La nestre plui fuarte funzion di protezion de riservatece mai realizade e isole lis spiis inter-sît. + La nestre plui potente funzion di simpri pe protezion de riservatece e isole lis spiis inter-sît. Plui informazions su la Protezion Totâl dai Cookies @@ -253,6 +253,11 @@ Tradûs pagjine + + Pagjine voltade dal %1$s al %2$s. + Lenghe selezionade @@ -327,13 +332,23 @@ - Informative su la riservatece di Firefox - + Informative su la riservatece di LeOSium + + Plui informazions te nestre informative su la riservatece Nus plâs tignîti di cont + + Scuvierç parcè che milions di personis a adorin LeOSium + + Navigazion sigure cun plui sielte Il nestri navigadôr, supuartât di une organizazion cence fins di vuadagn, al bloche in automatic lis societâts che, di scuindon, a cirin di stâti daûr tes tôs ativitâts ator pal web. + Plui di 100 milions di personis a protezin la lôr riservatece sielzint un navigadôr che al è supuartât di une organizazion cence fins di vuadagn. + + Spiis cognossudis? Blocadis in automatic. Estensions? Provilis dutis, a \'nd è plui di 700. PDFs? Il nestri letôr integrât al rint plui facile la lôr gjestion. + Il nestri navigadôr, supuartât di une organizazion cence fins di vuadagn, ti jude a blocâ in automatic lis societâts che, di scuindon, a cirin di stâti daûr a ce che tu fasis in rêt.\n\nScuvierç di plui te nestre informative su la riservatece. @@ -346,33 +361,33 @@ Reste cifrât cuant che tu passis di un dispositîf a chel altri - Une volte fat l’acès e la sincronizazion, tu stâs tal sigûr. Firefox cripte passwords, segnelibris e ancjemò altri. + Note: The word "LeOSium" should NOT be translated --> + Une volte fat l’acès e la sincronizazion, tu stâs tal sigûr. LeOSium cripte passwords, segnelibris e ancjemò altri. Jentre No cumò - Lis notifichis ti judin a restâ al sigûr cun Firefox + Note: The word "LeOSium" should NOT be translated --> + Lis notifichis ti judin a restâ al sigûr cun LeOSium - Mande in mût sigûr lis schedis tra i tiei dispositîfs e scuvierç altris funzionalitâts pe riservatece in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Mande in mût sigûr lis schedis tra i tiei dispositîfs e scuvierç altris funzionalitâts pe riservatece in LeOSium. Ative lis notifichis No cumò - Prove il widget di ricercje di Firefox + Note: The word "LeOSium" should NOT be translated --> + Prove il widget di ricercje di LeOSium - Cun Firefox te schermade iniziâl, tu podarâs acedi cun facilitât a un navigadôr dedicât ae riservatece che al bloche lis spiis inter-sît. + Note: The word "LeOSium" should NOT be translated --> + Cun LeOSium te schermade iniziâl, tu podarâs acedi cun facilitât a un navigadôr dedicât ae riservatece che al bloche lis spiis inter-sît. - Zonte widget di Firefox + Note: The word "LeOSium" should NOT be translated --> + Zonte widget di LeOSium No cumò @@ -411,10 +426,10 @@ Sugjeriments dai motôrs di ricercje Preferencis de sbare de direzion - - Sbare de direzion - Firefox Suggest - - Altris informazions su Firefox Suggest + + Sbare de direzion - LeOSium Suggest + + Altris informazions su LeOSium Suggest Valute su Google Play Complete in automatic i URLs - + Sugjeriments dai sponsors - Supuarte %1$s cun sugjeriments sponsorizâts ocasionâi - Sugjeriments di %1$s - + Oten sugjeriments dal web relatîfs ae tô ricercje Vierç i links tes aplicazions @@ -648,7 +663,7 @@ Impussibil cambiâ il fonts Plui informazions - + %s classic Serie di artist @@ -666,8 +681,8 @@ A son disponibii gnûfs components adizionâi - - Scuvierç plui di 100 gnovis estensions che ti permetin di personalizâ Firefox. + + Scuvierç plui di 100 gnovis estensions che ti permetin di personalizâ LeOSium. Esplore i components adizionâi @@ -696,9 +711,9 @@ Segnelibris - Credenziâls + Credenziâls - Passwords + Passwords Schedis viertis @@ -722,9 +737,9 @@ and the third is the device model. --> %1$s su %2$s %3$s - Cjartis di credit + Cjartis di credit - Metodis di paiament + Metodis di paiament Recapits @@ -733,7 +748,7 @@ Schedis ricevudis - Notifichis pes schedis ricevudis di altris dispositîfs Firefox. + Notifichis pes schedis ricevudis di altris dispositîfs LeOSium. Schede ricevude @@ -920,7 +935,7 @@ Gjave Atîfs - + %1$s al pues instalâ e puartâ indenant studis di cuant in cuant. Plui informazions @@ -1293,7 +1308,7 @@ Conet un altri dispositîf - Par inviâ une schede, jentre in Firefox su almancul un altri dispositîf. + Par inviâ une schede, jentre in LeOSium su almancul un altri dispositîf. Capît @@ -1320,10 +1335,10 @@ Comercializazion - Firefox al è svelt e riservât + LeOSium al è svelt e riservât - Met Firefox come to navigadôr predefinît + Met LeOSium come to navigadôr predefinît Prove la navigazion privade @@ -1344,7 +1359,7 @@ - Judinus a miorâ Firefox partecipant a un curt sondaç. + Judinus a miorâ LeOSium partecipant a un curt sondaç. Partecipe al sondaç @@ -1493,16 +1508,16 @@ Scansione il codiç - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pront par scansionâ Jentre cu la fotocjamare Dopre invezit la e-mail - - Cree un par sincronizâ Firefox tra i varis dispositîfs.]]> - + + Cree un par sincronizâ LeOSium tra i varis dispositîfs.]]> + %s no si sincronizarà plui cul to account, ma nol eliminarà nissun dai tiei dâts di navigazion su chest sît. Disconet @@ -1519,7 +1534,7 @@ Cumò cu la Protezion Totâl dai Cookies, fin cumò la nestre bariere plui potente cuintri lis spiis inter-sît. - + %s ti protêç des tantis e plui comunis spiis che a cirin di stâti daûr a ce che tu fasis in rêt. Plui informazions @@ -1532,7 +1547,7 @@ Restritive - Protezion da lis spiis plui fuarte e prestazions plui sveltis, ma al è pussibil che cualchi sît nol funzioni ben. + Protezion da lis spiis plui potente e prestazions plui sveltis, ma al è pussibil che cualchi sît nol funzioni ben. Elements blocâts de protezion restritive da lis spiis @@ -1668,69 +1683,69 @@ Al è pussibil zontâ chest sît web ae schermade principâl dal dispositîf par doprâle cun plui sveltece, tant che e fos une aplicazion. - Credenziâls e passwords + Credenziâls e passwords - Passwords + Passwords - Salve credenziâls e passwords + Salve credenziâls e passwords - Salve passwords + Salve passwords Domande prime di salvâ No sta salvâ mai - + Compile in automatic in %1$s - + Compile e salve i nons utent e lis passwords tai sîts web intant che tu dopris %1$s. Compile in automatic in altris aplicazions Compile i nons utent e lis passwords in altris aplicazions dal to dispositîf. - Zonte credenziâl + Zonte credenziâl - Zonte password + Zonte password - - Sincronize lis credenziâls - Sincronize passwords + Sincronize lis credenziâls + + Sincronize passwords - Sincronize lis credenziâls tra dispositîfs + Sincronize lis credenziâls tra dispositîfs - Sincronize passwords tra i tiei dispositîfs + Sincronize passwords tra i tiei dispositîfs - Credenziâls salvadis + Credenziâls salvadis - Passwords salvadis + Passwords salvadis - Lis credenziâls che tu salvis o sincronizis su %s a vignaran fûr achì. + Lis credenziâls che tu salvis o sincronizis su %s a vignaran fûr achì. - Lis passwords salvadis o sincronizadis su %s a vignaran listadis achì. Dutis lis passwords che tu salvis a vegnin cifradis. + Lis passwords salvadis o sincronizadis su %s a vignaran listadis achì. Dutis lis passwords che tu salvis a vegnin cifradis. - Plui informazions su Sync. + Plui informazions su Sync. - Plui informazions su la sincronizazion + Plui informazions su la sincronizazion Ecezions - Lis credenziâls e lis passwords che no tu âs salvât a vignaran fûr achì. + Lis credenziâls e lis passwords che no tu âs salvât a vignaran fûr achì. - %s nol salvarà lis passwords pai sîts listâts achì. + %s nol salvarà lis passwords pai sîts listâts achì. - Lis credenziâls e lis passwords no vignaran salvadis par chescj sîts. + Lis credenziâls e lis passwords no vignaran salvadis par chescj sîts. - %s nol salvarà lis passwords par chescj sîts. + %s nol salvarà lis passwords par chescj sîts. Elimine dutis lis ecezions - Cîr credenziâls + Cîr credenziâls - Cîr tes passwords + Cîr tes passwords Sît @@ -1758,17 +1773,17 @@ Plate password - Sbloche par visualizâ lis credenziâls salvadis + Sbloche par visualizâ lis credenziâls salvadis - Sbloche par viodi lis passwords salvadis + Sbloche par viodi lis passwords salvadis - Protêç lis tôs credenziâls di acès + Protêç lis tôs credenziâls di acès - Protêç lis passwords salvadis + Protêç lis passwords salvadis - Configure une secuence di bloc, PIN o password par protezi lis tôs credenziâls e lis passwords salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. + Configure une secuence di bloc, PIN o password par protezi lis tôs credenziâls e lis passwords salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. - Configure une secuence di bloc, PIN o password par protezi lis passwords salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. + Configure une secuence di bloc, PIN o password par protezi lis passwords salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. Plui indenant @@ -1784,10 +1799,10 @@ Ultime doprade - Ordene il menù des credenziâls + Ordene il menù des credenziâls - Menù par ordenâ lis passwords + Menù par ordenâ lis passwords @@ -1795,43 +1810,43 @@ Recapits - Cjartis di credit + Cjartis di credit - Metodis di paiament + Metodis di paiament - Salve e compile in automatic lis cjartis + Salve e compile in automatic lis cjartis - Salve e compile i metodis di paiament + Salve e compile i metodis di paiament - I dâts a son cifrâts + I dâts a son cifrâts - %s al cifre ducj i metodis di paiaments salvâts + %s al cifre ducj i metodis di paiaments salvâts Sincronize lis cjartis tra plui dispositîfs Sincronize cjartis di credit - Zonte cjarte di credit + Zonte cjarte di credit - Zonte cjarte + Zonte cjarte - Gjestìs cjartis salvadis + Gjestìs cjartis salvadis - Gjestìs cjartis + Gjestìs cjartis Zonte recapit Gjestìs recapits - Salve e compile in automatic i recapits + Salve e compile in automatic i recapits - Salve e compile direzions + Salve e compile direzions - Includi informazions come numars, e-mail e recapits di spedizion + Includi informazions come numars, e-mail e recapits di spedizion - Inclût numars di telefon e direzions e-mail + Inclût numars di telefon e direzions e-mail Zonte cjarte @@ -1852,9 +1867,9 @@ Elimine cjarte - Eliminâ pardabon cheste cjarte di credit? + Eliminâ pardabon cheste cjarte di credit? - Eliminâ la cjarte? + Eliminâ la cjarte? Elimine @@ -1866,24 +1881,24 @@ Cjartis salvadis - Inserìs un numar di cjarte di credit valit + Inserìs un numar di cjarte di credit valit - Inserìs un numar di cjarte valit + Inserìs un numar di cjarte valit - Compile chest cjamp + Compile chest cjamp - Zonte un non + Zonte un non Sbloche par visualizâ lis cjartis di credit salvadis - Protêç lis tôs cjartis di credit + Protêç lis tôs cjartis di credit - Protêç i metodis di paiament salvâts + Protêç i metodis di paiament salvâts - Configure une secuence di bloc, PIN o password par protezi lis tôs cjartis di credit salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. + Configure une secuence di bloc, PIN o password par protezi lis tôs cjartis di credit salvadis, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâlis. - Configure une secuence di bloc, PIN o password par protezi i tiei metodis di paiament salvâts, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâju. + Configure une secuence di bloc, PIN o password par protezi i tiei metodis di paiament salvâts, cussì che se cualchidun altri al varà il to dispositîf nol rivarà a doprâju. Configure cumò @@ -1891,9 +1906,9 @@ Sbloche il dispositîf - Sbloche par doprâ lis informazions des cjartis di credit memorizadis + Sbloche par doprâ lis informazions des cjartis di credit memorizadis - Sbloche par doprâ i metodis di paiament + Sbloche par doprâ i metodis di paiament Zonte recapit @@ -1901,11 +1916,13 @@ Gjestìs recapits - Non + Non - Secont non + Secont non - Cognon + Cognon + + Non Recapit @@ -1929,9 +1946,9 @@ Elimine recapit - Eliminâ pardabon chest recapit? + Eliminâ pardabon chest recapit? - Eliminâ cheste direzion? + Eliminâ cheste direzion? Elimine @@ -2029,49 +2046,49 @@ Modifiche - Eliminâ pardabon cheste credenziâl? + Eliminâ pardabon cheste credenziâl? - Eliminâ pardabon cheste password? + Eliminâ pardabon cheste password? Elimine Anule - Opzions credenziâls + Opzions credenziâls - Opzions password + Opzions password - Il cjamp di test modificabil pe direzion web de credenziâl. + Il cjamp di test modificabil pe direzion web de credenziâl. - Il cjamp di test che si pues modificâ pe direzion dal sît web. + Il cjamp di test che si pues modificâ pe direzion dal sît web. - Il cjamp di test modificabil pal non utent de credenziâl. + Il cjamp di test modificabil pal non utent de credenziâl. - Il cjamp di test che si pues modificâ pal non utent. + Il cjamp di test che si pues modificâ pal non utent. - Il cjamp di test modificabil pe password de credenziâl. + Il cjamp di test modificabil pe password de credenziâl. - Il cjamp di test che si pues modificâ pe password. + Il cjamp di test che si pues modificâ pe password. - Salve lis modifichis ae credenziâl. + Salve lis modifichis ae credenziâl. - Salve modifichis. + Salve modifichis. - Modifiche + Modifiche - Modifiche password + Modifiche password - Zonte gnove credenziâl + Zonte gnove credenziâl - Zonte password + Zonte password - Password necessarie + Password necessarie - Inserìs une password + Inserìs une password - Non utent necessari + Non utent necessari - Inserìs un non utent + Inserìs un non utent Non servidôr necessari @@ -2094,13 +2111,13 @@ Conet un altri dispositîf. Torne a eseguî l’acès. - + Ative la sincronizazion des schedis. - No tu âs nissune schede vierte in Firefox tai altris dispositîfs. - + No tu âs nissune schede vierte in LeOSium tai altris dispositîfs. + Visualize une liste di schedis dai tiei altris dispositîfs. - + Jentre par sincronizâ Nissune schede vierte @@ -2148,15 +2165,15 @@ Sierâ in automatic dopo un mês? - Firefox al pues sierâ lis schedis che no tu âs visualizât tal ultin mês. + LeOSium al pues sierâ lis schedis che no tu âs visualizât tal ultin mês. ATIVE SIERÂ IN AUTOMATIC Sierâ in automatic ativât - - Firefox Suggest + + LeOSium Suggest Ricercje Google @@ -2166,7 +2183,7 @@ Cambie il navigadôr predefinît - Configure i colegaments di sîts web, e-mails e messaçs in mût che a vegnin vierts in automatic cun Firefox. + Configure i colegaments di sîts web, e-mails e messaçs in mût che a vegnin vierts in automatic cun LeOSium. Elimine @@ -2175,7 +2192,7 @@ Fâs clic par vê plui detais - Va sù + Va sù Siere @@ -2190,7 +2207,7 @@ Cun tecnologjie %s. - Part de famee Firefox. %s + Part de famee LeOSium. %s Plui informazions @@ -2215,8 +2232,6 @@ Valutazion retificade - Recensions inafidabilis gjavadis - Basât su recensions afidabilis In evidence da lis recensions resintis @@ -2279,10 +2294,6 @@ Segnale che il prodot al è disponibil - - Daûr a verificâ la cualitât recensions - - Daûr a verificâ la cualitât recensions Verifiche cualitât recensions (%s) @@ -2322,23 +2333,29 @@ Controle cualitât des recensions Prove la nestre vuide pes recensions dai prodots - + Scuvierç trop che a son afidabilis lis recensions dai prodots su %1$s prime di comprâju. Verifiche recensions, une funzion sperimentâl di %2$s, e je integrade propite tal navigadôr. E funzione ancje su %3$s e %4$s. - + Scuvierç trop che a son afidabilis lis recensions dai prodots su %1$s prime di comprâju. Verifiche recensions, une funzion sperimentâl di %2$s, e je integrade tal navigadôr. Doprant la tecnologjie di %1$s di Mozilla, ti judìn a evitâ recensions di part e falsis. Il nestri model di inteligjence artificiâl al miore in continuazion par proteziti intant che tu fasis compris. %2$s Plui informazions - Selezionant “Sì, provilu” tu acetis la %2$s e i %3$s di %1$s di Mozilla. + Selezionant “Sì, provilu” tu acetis la %2$s e i %3$s di %1$s di Mozilla. Selezionant “Sì, provilu” tu acetis lis cundizions di %1$s: + + Selezionant “Sì, provile” tu acetis la %2$s di %1$s e lis %4$s di %3$s. + + Selezionant “Sì, provile” tu acetis la %2$s di %1$s e lis %4$s di %3$s. - informative su la riservatece + informative su la riservatece Informative su la riservatece + + informative su la riservatece tiermins di utilizazion @@ -2395,7 +2412,7 @@ vierç il colegament par vê plui informazions su cheste racuelte lei l’articul - + vierzi il colegament par savê di plui %s, intestazion @@ -2410,11 +2427,15 @@ Voltâ cheste pagjine? + + Pagjine voltade dal %1$s al %2$s Prove lis traduzions privadis in %1$s Pe tô riservatece, lis traduzions no lassaran mai il to dispositîf. Gnovis lenghis e mioraments a son daûr a rivâ! %1$s - + Plui informazions Tradûs di @@ -2422,6 +2443,8 @@ Tradûs par No cumò + + Mostre origjinâl Fat @@ -2445,6 +2468,16 @@ Plui informazions + + + Daûr a tradusi… + + Discjariâ la lenghe in modalitât Sparagn dâts (%1$s)? + + Opzions di traduzion diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index 2638cfee..e2341418 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -72,7 +72,7 @@ Lit gjin spoaren efter op dit apparaat %1$s smyt jo cookies, skiednis en websitegegevens fuort wannear’t jo al jo priveeljepblêden slute. %2$s Side oersette + + Side oerset fan it %1$s nei it %2$s. + Selektearre taal @@ -332,13 +337,23 @@ - Firefox-privacyferklearring - + LeOSium-privacyferklearring + + Lês mear yn ús privacyferklearring Wy hâlde jo graach feilich + + Untdek wêrom miljoenen sa gek binne op LeOSium + + Feilich sneupe mei mear kar Us troch in non-profitorganisaasje browser helpt bedriuwen foar te kommen dat bedriuwen jo stikem folgje op ynternet. + Mear as 100 miljoen minsken beskermje harren privacy troch in browser te kiezen dy’t stipe wurdt troch in non-profitorganisaasje. + + Bekende trackers? Automatysk blokkearre. Utwreidingen? Probearje se alle 700. PDF’s? Troch ús ynboude lêzer binne se ienfâldich te behearen. + Us troch in non-profitorganisaasje stipe browser helpt foar te kommen dat bedriuwen jo stikem folgje op ynternet.\n\nMear ynfo yn ús privacyferklearring. @@ -350,32 +365,32 @@ Bliuw fersifere wannear’t jo fan apparaat wikselje - Wannear’t jo oanmeld en syngronisearre binne, binne jo feiliger. Firefox fersiferet jo wachtwurden, blêdwizers en mear. + Note: The word "LeOSium" should NOT be translated --> + Wannear’t jo oanmeld en syngronisearre binne, binne jo feiliger. LeOSium fersiferet jo wachtwurden, blêdwizers en mear. Oanmelde No net - Meldingen helpe jo feiliger te bliuwen mei Firefox + Note: The word "LeOSium" should NOT be translated --> + Meldingen helpe jo feiliger te bliuwen mei LeOSium - Ferstjoer feilich ljepblêden tusken jo apparaten en ûntdek oare privacyfunksjes yn Firefox. + Note: The word "LeOSium" should NOT be translated --> + Ferstjoer feilich ljepblêden tusken jo apparaten en ûntdek oare privacyfunksjes yn LeOSium. Notifikaasjes ynskeakelje No net - Probearje de Firefox-sykwidget + Note: The word "LeOSium" should NOT be translated --> + Probearje de LeOSium-sykwidget - Mei Firefox op jo startskerm hawwe jo maklike tagong ta de privacyrjochte browser dy’t cross-sitetrackers blokkearret. + Note: The word "LeOSium" should NOT be translated --> + Mei LeOSium op jo startskerm hawwe jo maklike tagong ta de privacyrjochte browser dy’t cross-sitetrackers blokkearret. - Firefox-widget tafoegje + Note: The word "LeOSium" should NOT be translated --> + LeOSium-widget tafoegje No net @@ -415,10 +430,10 @@ Suggestjes fan sykmasinen Adresbalkefoarkarren - - Adresbalke – Firefox Suggestjes - - Mear ynfo oer Firefox Suggestes + + Adresbalke – LeOSium Suggestjes + + Mear ynfo oer LeOSium Suggestes Wurdearje op Google Play URL’s automatysk oanfolje - + Suggestjes fan sponsors - Stypje %1$s mei sa no en dan sponsore suggestjes - Suggestjes fan %1$s - + Krij suggestjes fan it web relatearre oan jo sykopdracht Keppelingen iepenje yn apps @@ -645,7 +660,7 @@ Mear ynfo - + Klassike %s Keunstnersearje @@ -663,8 +678,8 @@ Nije add-ons no beskikber - - Besjoch mear as 100 nije útwreidingen wêrmei’t jo Firefox jo eigen meitsje kinne. + + Besjoch mear as 100 nije útwreidingen wêrmei’t jo LeOSium jo eigen meitsje kinne. Add-ons ferkenne @@ -692,9 +707,9 @@ Blêdwizers - Oanmeldingen + Oanmeldingen - Wachtwurden + Wachtwurden Iepen ljeplêden @@ -720,9 +735,9 @@ %1$s op %2$s %3$s - Creditcards + Creditcards - Betellingsmetoaden + Betellingsmetoaden Adressen @@ -730,7 +745,7 @@ Untfongen ljepblêden - Meldingen foar ljepblêden ûntfongen fan oare Firefox-apparaten. + Meldingen foar ljepblêden ûntfongen fan oare LeOSium-apparaten. Ljepblêd ûntfongen @@ -910,7 +925,7 @@ Fuortsmite Aktyf - + %1$s kin sa no en dan ûndersiken ynstallearje en útfiere. Mear ynfo @@ -1282,7 +1297,7 @@ Noch in apparaat keppelje - Meld jo oan by Firefox op op syn minst ien oar apparaat om in ljepblêd te ferstjoeren. + Meld jo oan by LeOSium op op syn minst ien oar apparaat om in ljepblêd te ferstjoeren. Begrepen @@ -1310,10 +1325,10 @@ - Firefox is fluch en privee + LeOSium is fluch en privee - Firefox jo standertbrowser meitsje + LeOSium jo standertbrowser meitsje Probearje priveenavigaasje - Help Firefox better te meitsjen troch in koarte enkête yn te foljen. + Help LeOSium better te meitsjen troch in koarte enkête yn te foljen. Enkête starte @@ -1481,16 +1496,16 @@ De koade scanne - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ree om te scannen Meld jo oan mei jo kamera E-mail brûke - - Meitsje der ien oan om Firefox tusken apparaten te syngronisearjen.]]> - + + Meitsje der ien oan om LeOSium tusken apparaten te syngronisearjen.]]> + %s stoppet de syngronisaasje mei jo account, mar sil gjin sneupgegevens op dit apparaat fuortsmite. Ferbining ferbrekke @@ -1506,7 +1521,7 @@ Ferbettere beskerming tsjin folgjen No mei Totale cookiebeskerming, ús krêftichste barriêre oant no ta tsjin cross-sitetrackers. - + %s beskermet jo tsjin in protte fan de meast foarkommende trackers dy\’t folgje wat jo online dogge. Mear ynfo @@ -1658,20 +1673,20 @@ Jo kinne dizze website ienfâldich oan it startskerm fan jo apparaat tafoegje, om sa daliks tagong te hawwen en flugger te navigearjen mei in app-eftige ûnderfining. - Oanmeldingen en wachtwurden + Oanmeldingen en wachtwurden - Wachtwurden + Wachtwurden - Oanmeldingen en wachtwurden bewarje + Oanmeldingen en wachtwurden bewarje - Wachtwurden bewarje + Wachtwurden bewarje Freegje om te bewarjen Nea bewarje - + Automatysk ynfolje yn %1$s - + Brûkersnammen en wachtwurden op websites ynfolje en bewarje wylst jo %1$s brûke. Automatysk ynfolje yn oare apps @@ -1679,48 +1694,48 @@ Brûkersnammen en wachtwurden yn oare apps op jo apparaat ynfolje. - Oanmelding tafoegje + Oanmelding tafoegje - Wachtwurd tafoegje + Wachtwurd tafoegje - - Oanmeldingen syngronisearje - Wachtwurden syngronisearje + Oanmeldingen syngronisearje + + Wachtwurden syngronisearje - Oanmeldingen op apparaten syngronisearje + Oanmeldingen op apparaten syngronisearje - Wachtwurden syngronisearje tusken apparaten + Wachtwurden syngronisearje tusken apparaten - Bewarre oanmeldingen + Bewarre oanmeldingen - Bewarre wachtwurden + Bewarre wachtwurden - De oanmeldingen dy’t jo bewarje of syngronisearje mei %s wurde hjir toand. + De oanmeldingen dy’t jo bewarje of syngronisearje mei %s wurde hjir toand. - De wachtwurden dy’t jo bewarje of syngronisearje mei %s sille hjir fermeld wurde. Alle wachtwurden dy’t jo bewarje binne fersifere. + De wachtwurden dy’t jo bewarje of syngronisearje mei %s sille hjir fermeld wurde. Alle wachtwurden dy’t jo bewarje binne fersifere. - Mear ynfo oer Sync. + Mear ynfo oer Sync. - Mear ynfo oer syngronisaasje + Mear ynfo oer syngronisaasje Utsûnderingen - Net-bewarre oanmeldingen en wachtwurden wurde hjir werjûn. + Net-bewarre oanmeldingen en wachtwurden wurde hjir werjûn. - %s sil gjin wachtwurden foar de hjir fermelde websites bewarje. + %s sil gjin wachtwurden foar de hjir fermelde websites bewarje. - Oanmeldingen en wachtwurden wurde foar dizze websites net bewarre. + Oanmeldingen en wachtwurden wurde foar dizze websites net bewarre. - %s sil gjin wachtwurden foar dizze websites bewarje. + %s sil gjin wachtwurden foar dizze websites bewarje. Alle útsûnderingen fuortsmite - Oanmeldingen sykje + Oanmeldingen sykje - Wachtwurden sykje + Wachtwurden sykje Website @@ -1748,17 +1763,17 @@ Wachtwurd ferstopje - Untskoattelje om jo bewarre oanmeldingen te besjen + Untskoattelje om jo bewarre oanmeldingen te besjen - Untskoattelje om jo bewarre wachtwurden te besjen + Untskoattelje om jo bewarre wachtwurden te besjen - Befeiligje jo oanmeldingen en wachtwurden + Befeiligje jo oanmeldingen en wachtwurden - Befeiligje jo bewarre wachtwurden + Befeiligje jo bewarre wachtwurden - Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre oanmeldingen en wachtwurden te beskermjen tsjin tagong as in oar jo apparaat hat. + Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre oanmeldingen en wachtwurden te beskermjen tsjin tagong as in oar jo apparaat hat. - Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre wachtwurden te beskermjen tsjin tagong as in oar jo apparaat hat. + Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre wachtwurden te beskermjen tsjin tagong as in oar jo apparaat hat. Letter @@ -1775,10 +1790,10 @@ Lêst brûkt - Menu Oanmeldingen sortearje + Menu Oanmeldingen sortearje - Wachtwurdmenu sortearje + Wachtwurdmenu sortearje @@ -1786,43 +1801,43 @@ Adressen - Creditcards + Creditcards - Betellingsmetoaden + Betellingsmetoaden - Kaarten bewarje en automatysk ynfolje + Kaarten bewarje en automatysk ynfolje - Betellingsmetoaden bewarje en ynfolje + Betellingsmetoaden bewarje en ynfolje - Gegevens binne fersifere + Gegevens binne fersifere - %s fersiferet alle betellingsmetoaden dy’t jo bewarje + %s fersiferet alle betellingsmetoaden dy’t jo bewarje Kaarten syngronisearje tusken apparaten Kaarten syngronisearje - Creditcard tafoegje + Creditcard tafoegje - Kaart tafoegje + Kaart tafoegje - Bewarre kaarten beheare + Bewarre kaarten beheare - Kaarten beheare + Kaarten beheare Adres tafoegje Adressen beheare - Adressen bewarje en automatysk ynfolje + Adressen bewarje en automatysk ynfolje - Adressen bewarje en ynfolje + Adressen bewarje en ynfolje - Ynformaasje lykas nûmers, e-mail- en ferstjoeradressen tafoegje + Ynformaasje lykas nûmers, e-mail- en ferstjoeradressen tafoegje - Ynklusyf telefoannûmers en e-mailadressen + Ynklusyf telefoannûmers en e-mailadressen Kaart tafoegje @@ -1844,9 +1859,9 @@ Kaart fuortsmite - Binne jo wis dat jo dizze creditcard fuortsmite wolle? + Binne jo wis dat jo dizze creditcard fuortsmite wolle? - Kaart fuortsmite? + Kaart fuortsmite? Fuortsmite @@ -1860,25 +1875,25 @@ Bewarre kaarten - Fier in jildich creditkaartnûmer yn + Fier in jildich creditkaartnûmer yn - Fier in jildich kaartnûmer yn + Fier in jildich kaartnûmer yn - Folje dit fjild yn + Folje dit fjild yn - Foegje in namme ta + Foegje in namme ta Untskoattelje om jo bewarre kaarten te besjen - Befeiligje jo creditcards + Befeiligje jo creditcards - Befeiligje jo bewarre betelmetoaden + Befeiligje jo bewarre betelmetoaden - Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre creditcards te beskermjen tsjin tagong as in oar jo apparaat hat. + Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre creditcards te beskermjen tsjin tagong as in oar jo apparaat hat. - Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre betellingsmetoaden te beskermjen tsjin tagong as in oar jo apparaat hat. + Stel in beskoattelingspatroan, pinkoade of wachtwurd foar jo apparaat yn om jo bewarre betellingsmetoaden te beskermjen tsjin tagong as in oar jo apparaat hat. No ynstelle @@ -1887,10 +1902,10 @@ Untskoattelje jo apparaat - Untskoattelje om bewarre creditkaartynformaasje te brûken + Untskoattelje om bewarre creditkaartynformaasje te brûken - Untskoattelje om bewarre betellingsmetoaden te brûken + Untskoattelje om bewarre betellingsmetoaden te brûken Adres tafoegje @@ -1898,11 +1913,13 @@ Adressen beheare - Foarnamme + Foarnamme - Twadde namme + Twadde namme - Efternamme + Efternamme + + Namme Adres @@ -1927,9 +1944,9 @@ Adres fuortsmite - Binne jo wis dat jo dit adres fuortsmite wolle? + Binne jo wis dat jo dit adres fuortsmite wolle? - Dit adres fuortsmite? + Dit adres fuortsmite? Fuortsmite @@ -2027,49 +2044,49 @@ Bewurkje - Binne jo wis dat jo dizze oanmelding fuortsmite wolle? + Binne jo wis dat jo dizze oanmelding fuortsmite wolle? - Binne jo wis dat jo dit wachtwurd fuortsmite wolle? + Binne jo wis dat jo dit wachtwurd fuortsmite wolle? Fuortsmite Annulearje - Oanmeldopsjes + Oanmeldopsjes - Wachtwurdopsjes + Wachtwurdopsjes - It bewurkbere tekstfjild foar it webadres fan de oanmelding. + It bewurkbere tekstfjild foar it webadres fan de oanmelding. - It bewurkbere tekstfjild foar it websiteadres. + It bewurkbere tekstfjild foar it websiteadres. - It bewurkbere tekstfjild foar de brûkersnamme fan de oanmelding. + It bewurkbere tekstfjild foar de brûkersnamme fan de oanmelding. - It bewurkbere tekstfjild foar de brûkersnamme. + It bewurkbere tekstfjild foar de brûkersnamme. - It bewurkbere tekstfjild foar it wachtwurd fan de oanmelding. + It bewurkbere tekstfjild foar it wachtwurd fan de oanmelding. - It bewurkbere tekstfjild foar it wachtwurd. + It bewurkbere tekstfjild foar it wachtwurd. - Wizigingen oan oanmelding bewarje. + Wizigingen oan oanmelding bewarje. - Wizigingen bewarje. + Wizigingen bewarje. - Bewurkje + Bewurkje - Wachtwurd bewurkje + Wachtwurd bewurkje - Nije oanmelding tafoegje + Nije oanmelding tafoegje - Wachtwurd tafoegje + Wachtwurd tafoegje - Wachtwurd fereaske + Wachtwurd fereaske - Folje in wachtwurd yn + Folje in wachtwurd yn - Brûkersnamme fereaske + Brûkersnamme fereaske - Folje in brûkersnamme yn + Folje in brûkersnamme yn Hostnamme fereaske @@ -2094,14 +2111,14 @@ In oar apparaat ferbine. Graach opnij autentisearje. - + Skeakelje it syngronisearjen fan ljepblêden yn. - Jo hawwe gjin ljepblêden iepene yn Firefox op jo oare apparaten. - + Jo hawwe gjin ljepblêden iepene yn LeOSium op jo oare apparaten. + Besjoch in list mei ljepblêden fan jo oare apparaten. - + Oanmelde om te syngronisearjen @@ -2154,7 +2171,7 @@ Automatysk slute nei in moanne? - Firefox kin ljepblêden dy’t jo de ôfrûne moanne net besjoen hawwe slute. + LeOSium kin ljepblêden dy’t jo de ôfrûne moanne net besjoen hawwe slute. AUTOMATYSK SLUTE YNSKEAKELJE @@ -2162,8 +2179,8 @@ Automatysk slute ynskeakele - - Firefox Suggestjes + + LeOSium Suggestjes Google Sykje @@ -2171,7 +2188,10 @@ Sykje mei %s - Keppelingen fan websites, e-mail en berjochten automatysk yn Firefox iepenje. + + Jo standertbrowser wikselje + + Keppelingen fan websites, e-mail en berjochten automatysk yn LeOSium iepenje. Fuortsmite @@ -2180,7 +2200,7 @@ Klik foar mear details - Omheech + Omheech Slute @@ -2195,7 +2215,7 @@ Mooglik makke troch %s. - Underdiel fan de Firefox-famylje. %s + Underdiel fan de LeOSium-famylje. %s Mear ynfo @@ -2221,8 +2241,6 @@ Oanpaste wurdearring - Unbetroubere beoardielingen fuortsmiten - Basearre op betroubere beoardielingen Hichtepunten út resinte beoardielingen @@ -2280,10 +2298,6 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen As jo sjogge dat dit produkt wer op foarried is, meld it dan oan ús en wy sille wurkje om de beoardielingen te kontrolearjen. Rapportearje dat produkt op foarried is - - Beoardielingskwaliteit kontrolearje - - Beoardielingskwaliteit kontrolearje Beoardielingskwaliteit kontrolearje (%s) @@ -2320,9 +2334,9 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Beoardielingskwaliteit kontrolearje Probearje ús fertroude gids foar produktbeoardielingen - + Besjoch hoe betrouber de produktbeoardielingen op %1$s binne eardat jo keapje. Beoardielingskontrôle, in eksperimintele funksje fan %2$s, is streekrjocht yn de browser ynboud. It wurket ek op %3$s en %4$s. - + Besjoch hoe betrouber de produktbeoardielingen op %1$s binne eardat jo keapje. Beoardielingskontrôle, in eksperimintele funksje fan %2$s, is streekrjocht yn de browser ynboud. Mei help fan de krêft fan %1$s troch Mozilla helpe wy jo befoaroardiele en net-autentike beoardielingen foar te kommen. Us AI-model wurdt hieltyd ferbettere om jo te beskermjen wylst jo winkelje. %2$s @@ -2330,13 +2344,19 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Mear ynfo - Troch ‘Ja, probearje’ te selektearjen, geane jo akkoard mei it %2$s en de %3$s fan %1$s troch Mozilla. + Troch ‘Ja, probearje’ te selektearjen, geane jo akkoard mei it %2$s en de %3$s fan %1$s troch Mozilla. Troch ‘Ja, probearje’ te selektearjen, geane jo akkoard mei it folgjende fan %1$s: + + Troch ‘Ja, probearje’ te selektearjen, geane jo akkoard mei de %2$s fan %1$s en de %4$s fan %3$s. + + Troch ‘Ja, probearje’ te selektearjen, geane jo akkoard mei de %2$s fan %1$s en de %4$s fan %3$s. - privacybelied + privacybelied Privacybelied + + privacyferklearring brûksbetingsten @@ -2392,7 +2412,7 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen keppeling iepenje foar mear ynfo oer dizze kolleksje it artikel te lêzen - + de keppeling te iepenjen foar mear ynfo %s, koptekst @@ -2407,11 +2427,15 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Dizze side oersette? + + Side oerset fan it %1$s nei it %2$s Probearje priveeoersettingen yn %1$s Foar jo privacy ferlitte oersettingen jo apparaat nea. Nije talen en ferbetteringen komme gau! %1$s - + Mear ynfo Oersette fanút it @@ -2419,6 +2443,8 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Oersette nei it No net + + Orizjineel toane Dien @@ -2441,6 +2467,15 @@ Dizze analyze sil jo allinnich helpe om de beoardielingskwaliteit te beoardielen Mear ynfo + + Oersette… + + Taal downloade yn gegevensbesparringsmodus (%1$s)? + + Oersetopsjes diff --git a/app/src/main/res/values-ga-rIE/strings.xml b/app/src/main/res/values-ga-rIE/strings.xml index cbd9ad78..1e76fdf6 100644 --- a/app/src/main/res/values-ga-rIE/strings.xml +++ b/app/src/main/res/values-ga-rIE/strings.xml @@ -149,9 +149,9 @@ Saincheap - Sioncronaigh leabharmharcanna, stair, agus tuilleadh le do chuntas Firefox + Sioncronaigh leabharmharcanna, stair, agus tuilleadh le do chuntas LeOSium - Cuntas Firefox + Cuntas LeOSium Athcheangail chun sioncronú a thosú arís @@ -212,7 +212,7 @@ Cluaisíní faighte - Fógraí maidir le cluaisíní a fhaigheann tú ó Firefox ar ghléasanna eile. + Fógraí maidir le cluaisíní a fhaigheann tú ó LeOSium ar ghléasanna eile. Cluaisín Faighte @@ -489,7 +489,7 @@ Ceangail gléas eile - Chun cluaisín a sheoladh, logáil isteach i bhFirefox ar ghléas amháin eile ar a laghad. + Chun cluaisín a sheoladh, logáil isteach i bhLeOSium ar ghléas amháin eile ar a laghad. Tuigim @@ -594,7 +594,7 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> Fáilte go dtí %s! @@ -630,7 +630,7 @@ Scan an cód - https://firefox.com/pair]]> + https://firefox.com/pair]]> Réidh le scanadh diff --git a/app/src/main/res/values-gd/strings.xml b/app/src/main/res/values-gd/strings.xml index 85097c6a..616678a6 100644 --- a/app/src/main/res/values-gd/strings.xml +++ b/app/src/main/res/values-gd/strings.xml @@ -300,15 +300,15 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> Cleachd %s mar am brabhsair bunaiteach agad - Cleachd Firefox mar am brabhsair bunaiteach agad + Note: The word "LeOSium" should NOT be translated --> + Cleachd LeOSium mar am brabhsair bunaiteach agad Tha daoine nas cudromaiche dha %1$s na prothaid agus dìonaidh e do phrìobhaideachd le bhith a’ bacadh gleusan a thracaicheadh tu air feadh làraichean.\n\nGheibh thu barrachd fiosrachaidh ann an %2$s againn. - Tha daoine nas cudromaiche dha Firefox na prothaid agus dìonaidh e do phrìobhaideachd le bhith a’ bacadh gleusan a thracaicheadh tu air feadh làraichean.\n\nGheibh thu barrachd fiosrachaidh ann an aithris na prìobhaideachd againn. + Note: The word "LeOSium" should NOT be translated --> + Tha daoine nas cudromaiche dha LeOSium na prothaid agus dìonaidh e do phrìobhaideachd le bhith a’ bacadh gleusan a thracaicheadh tu air feadh làraichean.\n\nGheibh thu barrachd fiosrachaidh ann an aithris na prìobhaideachd againn. aithris na prìobhaideachd @@ -329,14 +329,14 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> ’S urrainn dhut barrachd a dhèanamh le %s ma bhios na brathan an comas agad - ’S urrainn dhut barrachd a dhèanamh le Firefox ma bhios na brathan an comas agad + Note: The word "LeOSium" should NOT be translated --> + ’S urrainn dhut barrachd a dhèanamh le LeOSium ma bhios na brathan an comas agad Cuir tabaichean eadar uidheaman, stiùirich na luchdaich thu a-nuas is faigh gliocasan airson %s a chur gu làn-fheum. - Cuir tabaichean eadar uidheaman, stiùirich na luchdaich thu a-nuas is faigh gliocasan airson Firefox a chur gu làn-fheum. + Note: The word "LeOSium" should NOT be translated --> + Cuir tabaichean eadar uidheaman, stiùirich na luchdaich thu a-nuas is faigh gliocasan airson LeOSium a chur gu làn-fheum. Cuir na brathan air @@ -483,12 +483,12 @@ Ge-tà, dh’fhaoidte gu bheil neach-ionnsaigh na lùib ann. Ma leanas tu air adhart gun làrach-lìn, na cuir a-steach fiosrachadh dìomhair sam bith. Ma leanas tu air adhart, thèid am modh HTTPS a-mhàin a chur dheth gu sealach air an làrach ud. So-ruigsinneachd - - Frithealaiche chunntasan Firefox gnàthaichte + + Frithealaiche chunntasan LeOSium gnàthaichte Frithealaiche sioncronachaidh gnàthaichte - Chaidh frithealaichte nan cunntasan Firefox no an t-sioncronachaidh atharrachadh. Fàg an aplacaid gus na h-atharraichean a chur an gnìomh… + Chaidh frithealaichte nan cunntasan LeOSium no an t-sioncronachaidh atharrachadh. Fàg an aplacaid gus na h-atharraichean a chur an gnìomh… Cunntas @@ -504,7 +504,7 @@ Clàraich a-steach gus na tabaichean, comharran-lìn, faclan-faire is mòran a bharrachd a shioncronachadh. - Cunntas Firefox + Cunntas LeOSium Ceangail ris às ùr airson leantainn air an t-sioncronachadh @@ -607,7 +607,7 @@ Cha b’ urrainn dhuinn am pàipear-balla atharrachadh Barrachd fiosrachaidh - + %s clasaigeach Tionndadh cuingichte @@ -672,7 +672,7 @@ Tabaichean a fhuaras - Brathan airson tabaichean a fhuaras o uidheaman Firefox eile. + Brathan airson tabaichean a fhuaras o uidheaman LeOSium eile. Fhuaras taba @@ -851,7 +851,7 @@ Thoir air falbh Gnìomhach - + Faodaidh %1$s rannsachadh a stàladh is a ruith o àm gu àm. Barrachd fiosrachaidh @@ -1219,7 +1219,7 @@ Ceangail uidheam eile ris - Airson taba a chur, clàraich a-steach gu Firefox air co-dhiù aon uidheam eile. + Airson taba a chur, clàraich a-steach gu LeOSium air co-dhiù aon uidheam eile. Tha mi agaibh @@ -1241,10 +1241,10 @@ - Tha Firefox luath ’s prìobhaideach + Tha LeOSium luath ’s prìobhaideach - Cleachd Firefox mar am brabhsair bunaiteach agad + Cleachd LeOSium mar am brabhsair bunaiteach agad Feuch am brabhsadh prìobhaideach - Nach coilean thu suirbhidh ghoirid airson Firefox a dhèanamh nas fheàrr? + Nach coilean thu suirbhidh ghoirid airson LeOSium a dhèanamh nas fheàrr? Gabh an t-suirbhidh @@ -1396,11 +1396,11 @@ Fàilte gu eadar-lìon ùr Brabhsair a chaidh a dhealbhadh do dhaoine ’s chan ann airson prothaid. - + Lean ort far an do stad thu roimhe - + Sioncronaich tabaichean is faclan-faire air feadh uidheaman airson leumadh eadar sgrìnichean gun chnap-starra. - + Clàraich a-steach Tha an sioncronachadh air @@ -1426,7 +1426,7 @@ Cùm smachd air an dàta agad - Bheir Firefox smachd dhut air na cho-roinneas tu air loidhne agus na cho-roinneas tu leinn. + Bheir LeOSium smachd dhut air na cho-roinneas tu air loidhne agus na cho-roinneas tu leinn. Leugh sanas na prìobhaideachd againn @@ -1460,16 +1460,16 @@ Sganaich an còd - https://firefox.com/pair]]> + https://firefox.com/pair]]> Deiseil airson sganadh Clàraich a-steach leis a’ chamara agad Cleachd post-d na àite - - Cruthaich fear airson Firefox a shioncronachadh eadar uidheaman.]]> - + + Cruthaich fear airson LeOSium a shioncronachadh eadar uidheaman.]]> + Sguiridh %s de shioncronachadh a’ chunntais agad ach cha sguab e às gin dhen dàta brabhsaidh agad air an uidheam seo. Dì-cheangail @@ -1490,7 +1490,7 @@ Le làn-dìon o bhriosgaidean a-nis, am balla-bacaidh as treasa againn fhathast an aghaidh gleusan a thracaicheas tu air feadh làraichean. Cùm an dàta agad agad fhèin. Dìonaidh %s thu o mhòran dhe na tracaichean as cumanta a leanas mun cuairt thu air an lìon. - + Dìonaidh %s thu o mhòran dhe na tracaichean as cumanta a leanas mun cuairt thu air an lìon. Barrachd fiosrachaidh @@ -1651,9 +1651,9 @@ Na sàbhail idir - + Lìon gu fèin-obrachail ann am %1$s - + Lìon is sàbhail ainmean-chleachdaichean is faclan-faire air làraichean-lìn ’s tu a’ cleachdadh %1$s. Fèin-lìon ann an aplacaidean eile @@ -1996,13 +1996,13 @@ Ceangail uidheam eile ris. Dèan dearbhadh às ùr. - + Cuir an comas sioncronachadh nan tabaichean. - Chan eil taba sam bith fosgailte agad ann am Firefox air uidheaman eile. - + Chan eil taba sam bith fosgailte agad ann am LeOSium air uidheaman eile. + Seall liosta nan tabaichean a tha agad air uidheaman eile. - + Clàraich a-steach a shioncronachadh Chan eil taba fosgailte @@ -2053,7 +2053,7 @@ A bheil thu airson an dùnadh an dèidh mìos? - Dùnaidh Firefox tabaichean nach tug thu sùil orra thairis air a’ mhìos seo chaidh. + Dùnaidh LeOSium tabaichean nach tug thu sùil orra thairis air a’ mhìos seo chaidh. CUIR GLEUS AN FHÈIN-DÙNAIDH AIR @@ -2061,8 +2061,8 @@ Tha an dùnadh fèin-obrachail an comas - - Firefox Suggest + + LeOSium Suggest Lorg le Google @@ -2070,7 +2070,7 @@ Lorg le %s - Suidhich ceanglaichean o làraichean-lìn, puist-d agus teachdaireachdan airson ’s gun tèid am fosgladh gu fèin-obrachail ann am Firefox. + Suidhich ceanglaichean o làraichean-lìn, puist-d agus teachdaireachdan airson ’s gun tèid am fosgladh gu fèin-obrachail ann am LeOSium. Thoir air falbh @@ -2095,7 +2095,7 @@ Le cumhachd %s. - Na phàirt de theaghladh Firefox. %s + Na phàirt de theaghladh LeOSium. %s Barrachd fiosrachaidh @@ -2115,6 +2115,6 @@ fosgail an ceangal airson barrachd fiosrachaidh mun chruinneachadh seo leugh an t-artaigeal - + fosgail an ceangal airson barrachd fiosrachaidh diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index f8e87e78..56380f0e 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -70,12 +70,7 @@ Non deixe rastro neste dispositivo - %1$s elimina as súas cookies, o historial e os datos do sitio cando peche todas as súas fiestras privadas. %2$s - %1$s elimina as súas cookies, o historial e os datos do sitio cando peche todas as súas lapelas privadas. %2$s Atopar na páxina + + Traducir a páxina Gardar na colección @@ -241,6 +238,7 @@ Editar Personalizar a páxina de inicio + Páxina de inicio @@ -248,6 +246,13 @@ Borrar o historial de navegación + + Traducir a páxina + + Páxina traducida de %1$s a %2$s. + Idioma seleccionado @@ -260,8 +265,6 @@ Escanear - - Motor de buscas Configuración do motor de busca @@ -315,74 +318,73 @@ - As notificacións axúdanlle a facer máis con %s + As notificacións axúdanlle a facer máis con %s - Sincronice as súas lapelas entre dispositivos, xestione as descargas, reciba consellos sobre como aproveitar ao máximo a protección da privacidade de %s e moito máis. + Sincronice as súas lapelas entre dispositivos, xestione as descargas, reciba consellos sobre como aproveitar ao máximo a protección da privacidade de %s e moito máis. - Continuar + Continuar - Agora non + Agora non - - Faga de Firefox o seu navegador de referencia + + Política de privacidade de LeOSium + + Obtéña máis información no noso aviso de privacidade Encántanos telo seguro - - Firefox pon ás persoas por riba dos beneficios e defende a súa privacidade bloqueando os rastrexadores entre sitios.\n\nMáis información no noso aviso de privacidade. + + Descubra por que millóns de persoas adoran LeOSium + + Navegación segura con máis opcións - O noso navegador sen ánimo de lucro axuda a evitar que as empresas o sigan en segredo pola web.\n\nMáis información no noso aviso de privacidade. + O noso navegador sen ánimo de lucro axuda a evitar que as empresas o sigan en segredo pola web. + + Máis de 100 millóns de persoas protexen a súa privacidade escollendo un navegador que está apoiado por unha organización sen ánimo de lucro. + + Rastrexadores coñecidos? Bloqueados automaticamente. Extensións? Probe as 700. PDF? O noso lector integrado fai que sexan fáciles de xestionar. + + O noso navegador sen ánimo de lucro axuda a evitar que as empresas o sigan en segredo pola web.\n\nMáis información no noso aviso de privacidade. - política de privacidade + política de privacidade Estabelecer como navegador predeterminado Agora non - Alterne entre o teléfono e o portátil - Manteña todo cifrado cando salte entre dispositivos - - Recupere as lapelas e os contrasinais dos seus outros dispositivos para retomalo onde o deixou. - Cando inicia sesión e sincroniza, está máis seguro. Firefox cifra os seus contrasinais, marcadores e moito máis. + Note: The word "LeOSium" should NOT be translated --> + Cando inicia sesión e sincroniza, está máis seguro. LeOSium cifra os seus contrasinais, marcadores e moito máis. Acceder Agora non - As notificacións axúdanlle a facer máis con Firefox - - As notificacións axúdanlle a estar máis seguro con Firefox + Note: The word "LeOSium" should NOT be translated --> + As notificacións axúdanlle a estar máis seguro con LeOSium - Envía lapelas entre dispositivos, xestiona as descargas e recibe consellos para sacar o máximo proveito de Firefox. - - Envíe pestanas de forma segura entre os seus dispositivos e descubra outras funcións de privacidade en Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envíe pestanas de forma segura entre os seus dispositivos e descubra outras funcións de privacidade en LeOSium. Activar as notificacións Agora non - Probar o widget de busca de Firefox + Note: The word "LeOSium" should NOT be translated --> + Probar o widget de busca de LeOSium - Con Firefox na súa pantalla de inicio, terá fácil acceso ao navegador que prioriza a privacidade e bloquea os rastrexadores entre sitios. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium na súa pantalla de inicio, terá fácil acceso ao navegador que prioriza a privacidade e bloquea os rastrexadores entre sitios. - Engadir o widget de Firefox + Note: The word "LeOSium" should NOT be translated --> + Engadir o widget de LeOSium Agora non @@ -406,8 +408,6 @@ Selecciona un - Xestionar os atallos de busca - Xestionar buscadores alternativos Edita os motores visibles no menú de busca @@ -421,14 +421,12 @@ Motores de busca Suxestións dos buscadores - - Barra de enderezos Preferencias da barra de enderezos - - Barra de enderezos - Suxerencias de Firefox - - Más información sobre as suxerencias de Firefox + + Barra de enderezos - Suxerencias de LeOSium + + Más información sobre as suxerencias de LeOSium Valorar en Google Play Modo só HTTPS - - Redución do aviso de cookies Bloqueador de aviso de cookies Bloqueador de aviso de cookies na navegación privada - - Reducir os avisos de cookies - - Desactivado - - Activado - - %1$s tenta rexeitar automaticamente as solicitudes de cookies nos avisos de cookies. Desactivado para este sitio @@ -488,33 +476,15 @@ Sitio actualmente non soportado - Quere activar a redución do aviso de cookies para %1$s? - Quere activar o bloqueador do aviso de cookies para %1$s? - Quere desactivar a redución do aviso de cookies para %1$s? - Quere desactivar o bloqueador do aviso de cookies para %1$s? %1$s non pode rexeitar automaticamente as solicitudes de cookies neste sitio. Pode enviar unha solicitude para soportar este sitio no futuro. - %1$s borrará as cookies deste sitio e actualizará a páxina. Ao borrar todas as cookies, é posible que peche a sesión ou baleire os carriños da compra. - Desactivar e %1$s borrará as cookies e volverá cargar este sitio. Isto pode pechar a sesión ou baleirar os carriños da compra. - %1$s tenta rexeitar automaticamente todas as solicitudes de cookies en sitios compatibles. - Activar e %1$s tentará rexeitar automaticamente todos os avisos de cookies deste sitio. - - Quere permitir que %1$s rexeite os avisos de cookies? - - %1$s pode rexeitar automaticamente moitas solicitudes de avisos de cookies. - - Agora non - - Verá menos solicitudes de cookies - - Permitir %1$s acaba de rexeitar as cookies por ti @@ -543,14 +513,10 @@ Non obstante, tamén é posible que estea implicado un atacante. Se continúas ao sitio web, non debes introducir ningunha información confidencial. Se continúas, o modo só HTTPS desactivarase temporalmente para o sitio. Accesibilidade - - Servidor de contas de Firefox personalizado Servidor de contas de Mozilla personalizado Servidor de sincronización personalizado - - Modificouse o servidor de conta/sincronización de Firefox. Vaise saír da aplicación para aplicar os cambios… Conta de Mozilla/servidor de sincronización modificado. Saíndo da aplicación para aplicar os cambios… @@ -568,8 +534,6 @@ Acceda para sincronizar as lapelas, marcadores, contrasinais e moito máis. - Conta de Firefox - Conta de Mozilla Reconectar para retomar a sincronización @@ -581,8 +545,6 @@ Recollida de datos Depuración remota por USB - - Mostrar motores de busca Mostrar suxestións de busca @@ -601,15 +563,15 @@ Configuración da conta Completar automaticamente os URL - + Suxestións dos patrocinadores - Apoiar a %1$s con suxestións patrocinadas ocasionais - Suxestións de %1$s - + Recibir suxestións da web relacionadas coa súa busca Abrir ligazóns con aplicacións @@ -687,7 +649,7 @@ Non se puido cambiar o fondo de pantalla Máis información - + %s clásico Serie de artistas @@ -706,17 +668,11 @@ Xa están dispoñibles os novos complementos - - Consulte máis de 100 extensións novas que lle permiten personalizar Firefox. + + Consulte máis de 100 extensións novas que lle permiten personalizar LeOSium. Explorar os complementos - - - O complemento non é compatíbel - - O complemento xa está instalado - Os complementos están desactivados temporalmente @@ -741,7 +697,9 @@ Marcadores - Identificacións + Identificacións + + Contrasinais Lapelas abertas @@ -766,7 +724,9 @@ %1$s en %2$s %3$s - Tarxetas de crédito + Tarxetas de crédito + + Métodos de pago Enderezos @@ -774,7 +734,7 @@ Lapelas recibidas - Notificacións de lapelas recibidas doutros dispositivos con Firefox. + Notificacións de lapelas recibidas doutros dispositivos con LeOSium. Lapela recibida @@ -956,7 +916,7 @@ Retirar Activos - + %1$s pode instalar e executar estudos de cando en vez. Máis información @@ -1300,8 +1260,6 @@ Rexeitar - Non se puido imprimir - Non se pode imprimir esta páxina Imprimir @@ -1328,7 +1286,7 @@ Conectar outro dispositivo - Para enviar unha lapela, inicie sesión en Firefox en polo menos outro dispositivo. + Para enviar unha lapela, inicie sesión en LeOSium en polo menos outro dispositivo. Entendido @@ -1346,15 +1304,20 @@ Pechar lapelas privadas + + Pechar lapelas privadas? + + Toque ou pase o dedo nesta notificación para pechar as pestanas privadas. + Mercadotecnia - Firefox é rápido e privado + LeOSium é rápido e privado - Faga de Firefox o seu navegador predeterminado + Faga de LeOSium o seu navegador predeterminado Probe a navegación privada - Por favor, axude a mellorar Firefox facendo unha pequena enquisa. + Por favor, axude a mellorar LeOSium facendo unha pequena enquisa. Responder unha enquisa @@ -1525,16 +1488,16 @@ Escanear o código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Listo para escanear Inicie sesión coa súa cámara Use o correo electrónico no seu lugar - - Cree unha para sincronizar o Firefox entre dispositivos.]]> - + + Cree unha para sincronizar o LeOSium entre dispositivos.]]> + %s deterá a sincronización coa súa conta, pero non eliminará ningún dos seus datos de navegación neste dispositivo. Desconectar @@ -1550,7 +1513,7 @@ Protección mellorada contra o rastrexo Agora con Total Cookie Protection, a nosa barreira máis poderosa ata agora contra os rastrexadores entre sitios. - + %s protéxeo de moitos dos rastrexadores máis comúns que seguen o que fas en liña. Máis información @@ -1585,6 +1548,8 @@ Todas as cookies (pode causar erros nos sitios web) Illar as cookies entre sitios + + Dígalle aos sitios web que non compartan nin vendan datos Contido de rastrexo @@ -1696,45 +1661,68 @@ Pode engadir facilmente este sitio web á pantalla de inicio do dispositivo para ter acceso instantáneo e navegar máis rápido cunha experiencia semellante á dunha aplicación. - Identificacións e contrasinais + Identificacións e contrasinais + + Contrasinais - Gardar Inicios de sesión e contrasinais + Gardar Inicios de sesión e contrasinais + + Gardar contrasinais Preguntar para gardar Non gardar nunca - + Completar automaticamente en %1$s - + Encher e gardar os nomes de usuario e contrasinais nos sitios web ao empregar %1$s. Completado automático noutras aplicacións Encher os nomes de usuario e os contrasinais noutras aplicacións do dispositivo. - Engadir credenciais + Engadir credenciais - - Sincronizar os inicios de sesión + + Engadir contrasinal + + + Sincronizar os inicios de sesión + + Sincronizar contrasinais - Sincronizar as credenciais entre dispositivos + Sincronizar as credenciais entre dispositivos + + Sincronizar os contrasinais entre dispositivos - Identificacións gardadas + Identificacións gardadas + + Contrasinais gardados - Os inicios de sesión que garde ou sincronice co %s aparecerán aquí. + Os inicios de sesión que garde ou sincronice co %s aparecerán aquí. + + Os contrasinais que garde ou sincronice con %s listaranse aquí. Todos os contrasinais que garde están cifrados. - Obteña máis información sobre Sync. + Obteña máis información sobre Sync. + + Obteña máis información sobre Sync Excepcións - Aquí mostraranse os inicios de sesión e os contrasinais que non se garden. + Aquí mostraranse os inicios de sesión e os contrasinais que non se garden. + + %s non gardará os contrasinais dos sitios que aparecen aquí. - Non se gardarán os inicios de sesión e os contrasinais para estes sitios. + Non se gardarán os inicios de sesión e os contrasinais para estes sitios. + + %s non gardará os contrasinais destes sitios. Eliminar todas as excepcións - Buscar inicios de sesións + Buscar inicios de sesións + + Buscar contrasinais Sitio @@ -1762,11 +1750,17 @@ Agochar contrasinal - Desbloquee para ver os seus inicios de sesión gardados + Desbloquee para ver os seus inicios de sesión gardados + + Desbloquear para ver os seus contrasinais gardados - Protexa os seus inicios de sesión e contrasinais + Protexa os seus inicios de sesión e contrasinais + + Protexa os seus contrasinais gardados - Configure un padrón de bloqueo de dispositivo, PIN ou contrasinal para protexer os accesos e contrasinais gardados de que non sexan accedidos se outra persoa ten o seu dispositivo. + Configure un padrón de bloqueo de dispositivo, PIN ou contrasinal para protexer os accesos e contrasinais gardados de que non sexan accedidos se outra persoa ten o seu dispositivo. + + Configure un padrón de bloqueo do dispositivo, un PIN ou un contrasinal para protexer o acceso aos seus contrasinais gardados se outra persoa ten o seu dispositivo. Máis tarde @@ -1782,7 +1776,10 @@ Usado por última vez - Ordenar o menú de inicio de sesión + Ordenar o menú de inicio de sesión + + + Menú de ordenar contrasinais @@ -1790,30 +1787,45 @@ Enderezos - Tarxetas de crédito + Tarxetas de crédito + + Métodos de pagamento - Gardar e completar automaticamente as tarxetas + Gardar e completar automaticamente as tarxetas + + Gardar e cubrir os métodos de pago - Os datos están cifrados + Os datos están cifrados + + %s cifra todos os métodos de pago que garda Sincronizar as tarxetas entre dispositivos Sincronizar as tarxetas - Engadir unha tarxeta de crédito + Engadir unha tarxeta de crédito + + Engadir a tarxeta - Xestionar as tarxetas gardadas + Xestionar as tarxetas gardadas + + Xestionar tarxetas Engadir enderezo Xestionar enderezos - Gardar e encher automaticamente enderezos + Gardar e encher automaticamente enderezos + + Gardar e completar os enderezos - Inclúe información como números, correo electrónico e enderezos de envío + Inclúe información como números, correo electrónico e enderezos de envío + + + Inclúe números de teléfono e enderezos de correo electrónico Engadir a tarxeta @@ -1834,7 +1846,9 @@ Eliminar a tarxeta - Seguro de que quere eliminar esta tarxeta de crédito? + Seguro de que quere eliminar esta tarxeta de crédito? + + Eliminar a tarxeta? Eliminar @@ -1846,15 +1860,23 @@ Tarxetas gardadas - Introduza un número de tarxeta válido + Introduza un número de tarxeta válido + + Introduza un número de tarxeta válido - Cubra este campo + Cubra este campo + + Engadir un nome Desbloquee para ver as súas tarxetas gardadas - Asegure as súas tarxetas de crédito + Asegure as súas tarxetas de crédito + + Protexa os seus métodos de pago gardados - Configure un padrón de bloqueo de dispositivo, PIN ou contrasinal para evitar que outra persoa co seu dispositivo poida acceder a elas. + Configure un padrón de bloqueo de dispositivo, PIN ou contrasinal para evitar que outra persoa co seu dispositivo poida acceder a elas. + + Configure un padrón de bloqueo do dispositivo, un PIN ou un contrasinal para protexer o acceso aos seus métodos de pago gardados se outra persoa ten o seu dispositivo. Configurar agora @@ -1862,7 +1884,9 @@ Desbloquear o dispositivo - Desbloquee para empregar a información almacenada de tarxetas de crédito + Desbloquee para empregar a información almacenada de tarxetas de crédito + + Desbloquee para usar os métodos de pago gardados Engadir enderezo @@ -1870,11 +1894,13 @@ Xestionar enderezos - Nome + Nome - Segundo nome + Segundo nome - Apelidos + Apelidos + + Nome Domicilio @@ -1898,7 +1924,9 @@ Eliminar enderezo - Seguro de que quere eliminar este enderezo? + Seguro de que quere eliminar este enderezo? + + Eliminar este enderezo? Eliminar @@ -1916,28 +1944,18 @@ Editar motor de busca - - Engadir - - Gardar Editar Eliminar - - Outro Nome - - Nome Nome do buscador URL da cadea de busca - Cadea de busca para usar - URL para usar para a busca Substitúír a consulta por «%s». Exemplo:\nhttps://www.google.com/search?q=%s @@ -2008,31 +2026,53 @@ Editar - Confirma que desexa eliminar este inicio de sesión? + Confirma que desexa eliminar este inicio de sesión? + + Seguro que quere eliminar este contrasinal? Eliminar Cancelar - Opcións de inicio de sesión + Opcións de inicio de sesión + + Opcións de contrasinal - O campo de texto editábel para o enderezo web do inicio de sesión. + O campo de texto editábel para o enderezo web do inicio de sesión. + + O campo de texto editable para o enderezo do sitio web. - O campo de texto editábel para o nome de usuario do inicio de sesión. + O campo de texto editábel para o nome de usuario do inicio de sesión. + + O campo de texto editable para o nome de usuario. - O campo de texto editábel para o contrasinal do inicio de sesión. + O campo de texto editábel para o contrasinal do inicio de sesión. + + O campo de texto editable para o contrasinal. - Gardar os cambios para iniciar sesión. + Gardar os cambios para iniciar sesión. + + Gardar cambios. - Editar + Editar + + Editar contrasinal - Engadir novas credenciais + Engadir novas credenciais + + Engadir contrasinal - Contrasinal obrigatorio + Contrasinal obrigatorio + + Introduza un contrasinal - Requírese un nome de usuario + Requírese un nome de usuario + + Introduza un nome de usuario Requírese un nome de servidor + + Introduza un enderezo web Busca por voz @@ -2052,13 +2092,13 @@ Conectar outro dispositivo. Autentíquese de novo. - + Active a sincronización de lapelas. - Non ten ningunha lapela aberta en Firefox nos outros dispositivos. - + Non ten ningunha lapela aberta en LeOSium nos outros dispositivos. + Ver unha lista das lapelas dos outros dispositivos. - + Inicie sesión para sincronizar Non hai lapelas abertas @@ -2108,22 +2148,25 @@ Pechar automaticamente despois dun mes? - Firefox pode pechar os separadores que non se visen durante o último mes. + LeOSium pode pechar os separadores que non se visen durante o último mes. ACTIVAR O PECHE AUTOMÁTICO Peche automático activado - - Firefox suxire + + LeOSium suxire Busca de Google Buscar con %s - Estabelecer ligazóns de sitios web, enderezos de correo electrónico e mensaxes para que se abran automaticamente no Firefox. + + Cambie o seu navegador predeterminado + + Estabelecer ligazóns de sitios web, enderezos de correo electrónico e mensaxes para que se abran automaticamente no LeOSium. Retirar @@ -2132,7 +2175,7 @@ Premer para obter máis detalles - Navegar cara arriba + Navegar cara arriba Pechar @@ -2147,7 +2190,7 @@ Creado por %s. - Parte da familia Firefox. %s + Parte da familia LeOSium. %s Máis información @@ -2161,8 +2204,6 @@ - Verificador de recensións - Verificador de recensións Recensións fiables @@ -2175,7 +2216,7 @@ Calificación axustada - Elimináronse as recensións pouco fiables + Baseado en recensións fiables Destacados das recensións recentes @@ -2187,22 +2228,16 @@ nota de A a F.]]> Recensións fiables. Cremos que as recensións son probablemente de clientes reais que deixaron recensións honestas e imparciais. - - Cremos que os comentarios son fiables. Cremos que hai unha mestura de recensións fiables e pouco fiables. Recensións pouco fiables. Cremos que as recensións probablemente sexan falsas ou de revisores tendenciosos. - - Cremos que os comentarios non son fiables. valoración axustada baséase só nas recensións que consideramos fiables.]]> destacados son de %s recensións dos últimos 80 días que consideramos fiables.]]> Máis información sobre %s. - - como %s de Mozilla determina a calidade da recensión como %s determina a calidade da revisión @@ -2210,8 +2245,6 @@ Mostrar anuncios no verificador de recensións - Verás anuncios ocasionais de produtos relevantes. Todos os anuncios deben cumprir os nosos estándares de calidade de recensións. %s - Verá anuncios ocasionais de produtos relevantes. Só anunciamos produtos con críticas fiables. %s Máis información @@ -2234,23 +2267,19 @@ Cando este produto teña máis recensións, poderemos comprobar a súa calidade. - O produto non está dispoñible + O produto non está dispoñible - Se ves que este produto está de novo en stock, infórmao e traballaremos en comprobar as recensións. + Se ves que este produto está de novo en stock, infórmao e traballaremos en comprobar as recensións. - Informar que este produto está de novo en stock - - Informar que o produto está en stock - - Comprobando a calidade da recensión - - Comprobando a calidade da recensión + Informar que o produto está en stock + + Comprobando a calidade da recensión (%s) Isto pode levar uns 60 segundos. - Grazas por informar! + Grazas por informar! - Deberíamos ter información sobre as recensións deste produto nun prazo de 24 horas. Volve a comprobalo máis tarde. + Deberíamos ter información sobre as recensións deste produto nun prazo de 24 horas. Volve a comprobalo máis tarde. Non podemos comprobar estas recensións @@ -2279,26 +2308,32 @@ Comprobar a calidade da recensión Probar a nosa guía de confianza para recensións de produtos - + Consultar a fiabilidade das recensións de produtos en %1$s antes de comprar. A verificación de recensións, unha función experimental de %2$s, está integrada directamente no navegador. Tamén funciona en %3$s e %4$s. - + Consulte a fiabilidade das revisións de produtos en %1$s antes de comprar. Review Checker, unha función experimental de %2$s, está integrada directamente no navegador. Usando o poder de %1$s de Mozilla, axudámoslle a evitar recensións tendenciosas e pouco auténticas. O noso modelo de IA está a mellorar sempre para protexelo mentres compra. %2$s Máis información - Ao seleccionar «Si, probalo», acepta %2$s e %3$s de %1$s de Mozilla. + Ao seleccionar «Si, probalo», acepta %2$s e %3$s de %1$s de Mozilla. - Ao seleccionar «Si, probalo», acepta o seguinte de %1$s: + Ao seleccionar «Si, probalo», acepta o seguinte de %1$s: + + Ao seleccionar «Si, probalo», acepta os %2$s de %1$s e os %4$s de %3$s. + + Ao seleccionar «Si, probalo», acepta os %2$s de %1$s e os %4$s de %3$s. - política de privacidade + política de privacidade - Política de privacidade + Política de privacidade + + política de privacidade - temos de uso + temos de uso - Temos de uso + Temos de uso Si, probalo @@ -2335,6 +2370,9 @@ Competitividade + + «%s» + contraer @@ -2348,8 +2386,230 @@ abre a ligazón para obter máis información sobre esta colección ler o artigo - + abrir a ligazón para saber máis %s, Título + + + Ligazóns + + Ligazóns dispoñibles + + + + + + Traducir esta páxina? + + Páxina traducida de %1$s a %2$s + + Probe as traducións privadas en %1$s + + Para a súa privacidade, as traducións nunca saen do seu dispositivo. Novos idiomas e melloras en breve! %1$s + + Máis información + + Traducir do + + Traducir a + + Agora non + + Amosar orixinal + + Feito + + Traducir + + Tentar de novo + + Traducindo + + Tradución en curso + + Escoller un idioma + + Houbo un problema ao traducir. Por favor, ténteo de novo. + + Non se puideron cargar os idiomas. Comprobe a súa conexión a Internet e ténteo de novo. + + Sentímolo, aínda non admitimos %1$s. + + Máis información + + Traducindo… + + + Descargar o idioma no modo de aforro de datos (%1$s)? + + + + + Opcións de tradución + + Ofrecer sempre a tradución + + Traducir sempre %1$s + + Non traducir nunca %1$s + + Non traducir nunca este sitio + + Sobrescribe todas as demais configuracións + + Sobrescribir as ofertas para traducir + + Configuración da tradución + + + Acerca das traducións en %1$s + + + + Traducións + + Ofrécese a traducir cando sexa posible + + Descargar sempre os idiomas no modo de aforro de datos + + Preferencias de tradución + + Tradución automática + + Non traducir nunca estes sitios + + Descargar idiomas + + + + Tradución automática + + + Seleccionar un idioma para xestionar as preferencias de «traducir sempre» e «nunca traducir». + + + + Ofrecer traducción (predeterminado) + + %1$s ofrecerá traducir sitios neste idioma. + + Traduce sempre + + %1$s traducirá este idioma automaticamente cando se cargue a páxina. + + Non traducir nunca + + + %1$s nunca ofrecerá traducir sitios neste idioma. + + + + Non traducir nunca estes sitios + + Para engadir un sitio novo: visíteo e seleccione «Non traducir nunca este sitio» no menú de tradución. + + Retirar %1$s + + Eliminar %1$s? + + Eliminar + + Cancelar + + + + Descargar idiomas + + Descargar idiomas completos para obter traducións máis rápidas e para traducir sen conexión. %1$s + + Máis información + + Idiomas dispoñíbeis + + requirido + + %1$s (%2$s) + + Descargar idiomas + + Todos os idiomas + + Eliminar + + En progreso + + Descargar + + Seleccionado + + + Eliminar %1$s (%2$s)? + + Se elimina este idioma, %1$s descargará idiomas parciais na súa caché mentres traduce. + + Eliminar todos os idiomas (%1$s)? + + Se elimina todos os idiomas, %1$s descargará linguas parciais na súa caché mentres traduce. + + Eliminar + + Cancelar + + + Descargar no modo de aforro de datos (%1$s)? + + Descargamos idiomas parciais na súa caché para manter as traducións privadas. + + Descargar sempre no modo de aforro de datos + + Descargar + + Descargar e traducir + + Cancelar + + + + Ferramentas de depuración + + Retroceder no historial + + Ferramentas de lapelas + + Número de lapelas + + Activo + + Inactivo + + Privado + + Total + + Ferramenta de creación de lapelas + + Cantidade de lapelas a crear + + Engadir ás lapelas activas + + Engadir ás lapelas inactivas + + Engadir ás lapelas privadas diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 445d4fa1..912c30e3 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -73,7 +73,7 @@ %1$s ombogue kookie, tembiasakue ha mba’ekuaarã tendápe embotypávo ne rendayke ñemiguáva. %2$s Emboava kuatiarogue ñepyrũgua + Mba’erechaha ñepyrũgua @@ -253,6 +254,14 @@ Embogue kundahára rembiasakue + + Emoñe’ẽasa kuatiarogue + + + Kuatiarogue moñe’ẽasapyre %1$s-gui %2$s-pe. + Ñe’ẽ poravopyre @@ -264,8 +273,6 @@ Moha’ãnga - - Hekaha mongu’eha Hekaha ñemboheko @@ -320,21 +327,27 @@ - Marandu’i ne pytyvõta ejapovéta %s ndive + Marandu’i ne pytyvõta ejapovéta %s ndive - Embojuehe tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre, ehendu ñemoñe’ẽ mba’éichapa eiporuporãta %s rekorosã ñemigua ha ambue. + Embojuehe tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre, ehendu ñemoñe’ẽ mba’éichapa eiporuporãta %s rekorosã ñemigua ha ambue. - Ku’ejey + Ku’ejey - Ani ko’ág̃a + Ani ko’ág̃a - Firefox marandu’i ñemigua - + LeOSium marandu’i ñemigua + + Eikuaave ore marandu’i ñemigua rupive Rovy’ã eimére tekorosãme + + Ehecha mba’érepa hetaiterei ohayhúva LeOSium + + Ñeikundaha tekorosãme hetaháicha Ore kundahára oykeko atyguasu viru’ỹgua oipytyvõ omboykévo umi mba’apohaguasu ani nde rapykueho ñanduti rupive. @@ -350,32 +363,32 @@ Eime papapýpe ehasávo ambue mba’e’okápe - Emoñepyrũvo tembiapo ha ojuehérõ, ne rekorosãvéta. Firefox ombopapapy ñe’ẽñemi, techaukaha ha hetave. + Note: The word "LeOSium" should NOT be translated --> + Emoñepyrũvo tembiapo ha ojuehérõ, ne rekorosãvéta. LeOSium ombopapapy ñe’ẽñemi, techaukaha ha hetave. Eñemboheraguapy Ani ko’ág̃a - Umi marandu ne pytyvõta eime hag̃ua tekorosãme Firefox ndive + Note: The word "LeOSium" should NOT be translated --> + Umi marandu ne pytyvõta eime hag̃ua tekorosãme LeOSium ndive - Emondo tendayke mba’e’oka pa’ũme tekorosãme ha ehecha ambue Firefox rembiapoite ñemiguáva. + Note: The word "LeOSium" should NOT be translated --> + Emondo tendayke mba’e’oka pa’ũme tekorosãme ha ehecha ambue LeOSium rembiapoite ñemiguáva. Emyandy marandu’i Ani ko’ág̃a - Eiporu Firefox widget jehekaha + Note: The word "LeOSium" should NOT be translated --> + Eiporu LeOSium widget jehekaha - Firefox ndive ne mba’erechaha ñepyrũguápe, eikéta pya’e kundahárape omomba’éva tekoñemi ha ojoko umi tenda rapykuehoha. + Note: The word "LeOSium" should NOT be translated --> + LeOSium ndive ne mba’erechaha ñepyrũguápe, eikéta pya’e kundahárape omomba’éva tekoñemi ha ojoko umi tenda rapykuehoha. - Embjuaju Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Embjuaju LeOSium widget Ani ko’ág̃a @@ -416,10 +429,10 @@ Ñemoñe’ẽ hekaharaguáva Jerohoryvéva kundaharape rendáre - - Kundaharape renda – Firefox ñemoñe’ẽ - - Eikuaave Firefox ñemoñe’ẽ rehegua + + Kundaharape renda – LeOSium ñemoñe’ẽ + + Eikuaave LeOSium ñemoñe’ẽ rehegua Embopapapy Google Play-pe HTTPS ayvúpe añoite - - Kookie Banner Ñemomichĩ Ejoko Banner kookie rehegua Kookie ñe’ẽmondo jokoha ñeikundaha ñemíme - - Emomichĩ kookie banner - - Mboguepyre - - Hendypyre - - - %1$s omboykese ijehegui kookie mba’ejerure kookie marandu ñemurãme. Ogue ko tendápe @@ -479,36 +481,17 @@ Tenda ko’ág̃a ojokupyty’ỹva - ¿Emyandy kookie ñemurã momichĩ %1$s peg̃uarã? - ¿Emyandy Kookie Banner jokoha %1$s peg̃uarã? - - ¿Embogue kookie ñemurã momichĩ %1$s peg̃uarã? ¿Embogue Kookie Banner jokoha %1$s peg̃uarã? %1$s nomboykekuaái ijehegui kookie marandu ñemurã ko tendápe. Emba’ejerurekuaa omoneĩ hag̃ua ko tenda tenonderãve. - - %1$s omboguéta kookie ko tendagua ha omyanyhẽjeýta kuatiarogue. Emboguepaitérõ kookie ombotykuaa ne rembiapo térã omonandi ne mba’ejoguakue. Eipe’ãvo, %1$s omboguéta kookie ha omyanyhẽta tenda. Kóva ombotykuaa emba’apoha térã omonandi ejoguáva. - %1$s omboykese ijehegui umi kookie mba’ejerure tenda ojokupytývape. - Emyandývo, %1$s oñeha’ãta omboyke ijeheguiete umi kookie ñe’ẽmondo ko tendápe. - - ¿Emoneĩ %1$s tomboyke kookie ñe’ẽmondo? - - %1$s omboykekuaa ijehegui umi kookie mba’ejerure. - - Ani ko’ág̃a - - Ehecha’ivéta kookie mba’ejerure - - - Moneĩ %1$s omboyke kookie nde rehehápe @@ -588,15 +571,15 @@ Mba’ete ñemboheko Moĩmbajehegui URLs - + Pytyvõhára ñemoñe’ẽ - Eykeko %1$s ñemoñe’ẽ jehepyme’ẽrã sapy’apy’agua - %1$s ñemoñe’ẽ - + Emog̃uahẽ ñemoñe’ẽ ñandutígui jeheka rehegua Embojuruja juajuha tembiporu’ípe @@ -679,7 +662,7 @@ Kuaave - + Jepokuaa %s Mba’eapokuaahára renda @@ -700,8 +683,8 @@ Tembiporu’i pyahu ojeporukuaámava - - Ehecha hetave 100 jepysokue pyahu ndeykekótava Firefox ñemboavápe. + + Ehecha hetave 100 jepysokue pyahu ndeykekótava LeOSium ñemboavápe. Ejepovyvy moĩmbaháre @@ -730,9 +713,9 @@ Techaukaha - Tembiapo ñepyrũ + Tembiapo ñepyrũ - Ñe’ẽñemi + Ñe’ẽñemi Tendayke ijurujáva @@ -758,9 +741,9 @@ %1$s %2$s %3$s-pe - Kuatia’atã ñemurã + Kuatia’atã ñemurã - Mba’éicha ehepyme’ẽta + Mba’éicha ehepyme’ẽta Kundaharape @@ -768,7 +751,7 @@ Tendayke g̃uahẽmbyre - Tendayke marandu’i g̃uahẽmbyre ambue Firefox mba’e’oka guive. + Tendayke marandu’i g̃uahẽmbyre ambue LeOSium mba’e’oka guive. Tendayke g̃uahẽmbyre @@ -955,7 +938,7 @@ Myandy - + %1$s ikatu omohenda ha omongu’e kuaara’ã sapy’apy’a. Kuaave @@ -1310,8 +1293,6 @@ Mboyke - Ndaikatúi embokuatia - Ndaikatúi emonguatia ko kuatiarogue Mbokuatia @@ -1339,7 +1320,7 @@ Embojuaju ambue mba’e’oka - Emondo hag̃ua tendayke, eñepyrũ tembiapo Firefox-pe ambue mba’e’okápe. + Emondo hag̃ua tendayke, eñepyrũ tembiapo LeOSium-pe ambue mba’e’okápe. Kũmbypyre @@ -1368,10 +1349,10 @@ - Firefox ipya’e ha hekoñemi + LeOSium ipya’e ha hekoñemi - Ejapo Firefox-gui kundahára ypyguáva + Ejapo LeOSium-gui kundahára ypyguáva Kundaha ñemi jeporu @@ -1394,7 +1375,7 @@ - Ore pytyvõ Firefox rekoporãrã embohováivo ko’ã porandu. + Ore pytyvõ LeOSium rekoporãrã embohováivo ko’ã porandu. Ejapo encuesta @@ -1544,16 +1525,16 @@ Emoha’ãnga ayvu - https://firefox.com/pair-pe]]> + https://firefox.com/pair-pe]]> Ikatúma emoha’ãnga Eñepyrũ tembiapo ne ra’ãngamýi ndive Eiporu ñandutiveve - - Emoheñói embojuehe hag̃ua Firefox mba’e’oka ndive.]]> - + + Emoheñói embojuehe hag̃ua LeOSium mba’e’oka ndive.]]> + %s nombojuehemo’ãvéima ne mba’ete ndive, hákatu nomboguemo’ãi ne kundaha mba’ekuaarã ko mba’e’okápe. Ñesẽte @@ -1570,7 +1551,7 @@ Tapykueho mo’ãha iporãvéva Ko’ág̃a Total Cookie Protection ñemo’ã ndive, ore mba’ejokoha imbaretevéva jehapykueho tenda juasapyréva rovake. - + %s nemo’ãta heta tapykuehohágui ohecháva mba’etépa ejapohína ñandutípe. Kuaave @@ -1728,21 +1709,21 @@ Ikatu embojuaju ko ñanduti renda ne mba’e’oka mba’erechaha ñepyrũgua rehe eike hag̃ua ha eikundaha pya’eve, peteĩ tembiporu’ícharamo. - Tembiapo ñepyrũ ha ñe’ẽñemi + Tembiapo ñepyrũ ha ñe’ẽñemi - Ñe’ẽñemi + Ñe’ẽñemi - Eñongatu tembiapo ñepyrũ ha ñe’ẽñemi + Eñongatu tembiapo ñepyrũ ha ñe’ẽñemi - Eñongatu ñe’ẽñemi + Eñongatu ñe’ẽñemi Ejerure ñemoneĩ eñongatu hag̃ua Aníke eñongatu - + Emyanyhẽjey %1$s-pe - + Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ñanduti rendápe eiporu aja %1$s. Emyanyhẽjey ambue apps-pe @@ -1751,39 +1732,41 @@ Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ambue tembiporu’ípe ne mba’e’oka pegua. - Embojuaju jeike + Embojuaju jeike - Embojuaju ñe’ẽñemi + Embojuaju ñe’ẽñemi - - Embojuehe tembiapo ñepyrũ - Embojuehe ñe’ẽñemi + Embojuehe tembiapo ñepyrũ + + Embojuehe ñe’ẽñemi - Embojuehe tembiapo ñepyrũ mba’e’oka pa’ũme + Embojuehe tembiapo ñepyrũ mba’e’oka pa’ũme + + Embojuehe ñe’ẽñemi mba’e’oka pa’ũme - Tembiapo ñepyrũ ñongatupyre + Tembiapo ñepyrũ ñongatupyre - Ñe’ẽñemi ñongatupyre + Ñe’ẽñemi ñongatupyre - Ko’ápe ojehecháta tembiapo ñepyrũ eñongatu térã embojuehéva %s ndive. + Ko’ápe ojehecháta tembiapo ñepyrũ eñongatu térã embojuehéva %s ndive. - Eikuaave Sync rehegua + Eikuaave Sync rehegua - Eikuaave ñembojuehe rehegua + Eikuaave ñembojuehe rehegua Oĩ’ỹva - Ápe ojehecháta tembiapo ñepyrũ ha ñe’ẽñemi oñeñongatu’ỹva. + Ápe ojehecháta tembiapo ñepyrũ ha ñe’ẽñemi oñeñongatu’ỹva. - Noñeñongatumo’ãi tembiapo ñepyrũ ha ñe’ẽñemi ko’ã tendápe g̃uarã. + Noñeñongatumo’ãi tembiapo ñepyrũ ha ñe’ẽñemi ko’ã tendápe g̃uarã. Emboguete opaite oĩ’ỹva - Eheka tembiapo ñepyrũ + Eheka tembiapo ñepyrũ - Eheka ñe’ẽñemi + Eheka ñe’ẽñemi Tenda @@ -1811,11 +1794,11 @@ Emokañy ñe’ẽñemi - Emyandyjey ehecha hag̃ua ne rembiapo ñepyrũ ñongatupyre + Emyandyjey ehecha hag̃ua ne rembiapo ñepyrũ ñongatupyre - Erekokuaa nde poruhára ha ñe’ẽñemi + Erekokuaa nde poruhára ha ñe’ẽñemi - Emboheko pe patrõ jokoháva mba’e’oka pegua, PIN térã ñe’ẽñemi emo’ã hag̃ua nde poruhára ha ñe’ẽñemi ñongatupyrépe jeike ambue orekórõ ne mba’e’oka. + Emboheko pe patrõ jokoháva mba’e’oka pegua, PIN térã ñe’ẽñemi emo’ã hag̃ua nde poruhára ha ñe’ẽñemi ñongatupyrépe jeike ambue orekórõ ne mba’e’oka. Upéi @@ -1834,10 +1817,10 @@ Jejuru paha - Emoĩporã poravorã tembiapo ñepyrũgua + Emoĩporã poravorã tembiapo ñepyrũgua - Emoĩporã ñe’ẽñemi poravorã + Emoĩporã ñe’ẽñemi poravorã @@ -1845,40 +1828,40 @@ Kundaharape - Kuatia’atã ñemurã + Kuatia’atã ñemurã - Mba’éicha ehepyme’ẽta + Mba’éicha ehepyme’ẽta - Eñongatu ha emyanyhẽ kuatia’atã + Eñongatu ha emyanyhẽ kuatia’atã - Eñongatu ha emyanyhẽ mba’éicha ehepyme’ẽta + Eñongatu ha emyanyhẽ mba’éicha ehepyme’ẽta - Mba’ekuaarã ipapapypa + Mba’ekuaarã ipapapypa Embojuehe kuatia’atã mba’e’oka pa’ũme Embojuehe kuatia’atã - Embojuaju kuatia’atã ñemurã + Embojuaju kuatia’atã ñemurã - Embojuaju kuatia’atã + Embojuaju kuatia’atã - Eñangareko kuatia’atã ñongatupyrére + Eñangareko kuatia’atã ñongatupyrére - Eñangareko kuatia’atã + Eñangareko kuatia’atã Embojuaju kundaharape Kundaharape ñangareko - Eñongatu ha emyanyhẽ kundaharape + Eñongatu ha emyanyhẽ kundaharape - Eñongatu ha emyanyhẽ kundaharape + Eñongatu ha emyanyhẽ kundaharape - Emoĩ marandu ipapapy, ñanduti veve ha kundaharape ñemondorãva + Emoĩ marandu ipapapy, ñanduti veve ha kundaharape ñemondorãva Embojuaju kuatia’atã @@ -1899,9 +1882,9 @@ Emboguete kuatia’atã - ¿Emboguesépa añetehápe ko kuatia’atã ñemurã? + ¿Emboguesépa añetehápe ko kuatia’atã ñemurã? - ¿Emboguete kuatia’atã? + ¿Emboguete kuatia’atã? Mboguete @@ -1915,18 +1898,18 @@ Kuatia’atã ñongatupyre - Ikatúpiko ehai kuatia’atã ñemurã papapy oikóva + Ikatúpiko ehai kuatia’atã ñemurã papapy oikóva - Ikatúpiko emyanyhẽ ko kora + Ikatúpiko emyanyhẽ ko kora - Embojuaju téra + Embojuaju téra Embojuruja ehecha hag̃ua kuatia’atã ñongatupyre - Emohekorosã nde kuatia’atã ñemurã + Emohekorosã nde kuatia’atã ñemurã - Emboheko peteĩ jekokoha rape, PIN térã ñe’ẽñemi emo’ã hag̃ua nde kuatia’atã ñongatupyre ambue oikeséramo ne mba’e’okápe. + Emboheko peteĩ jekokoha rape, PIN térã ñe’ẽñemi emo’ã hag̃ua nde kuatia’atã ñongatupyre ambue oikeséramo ne mba’e’okápe. Emboheko ko’ág̃a @@ -1935,7 +1918,7 @@ Embojuruja ne mba’e’oka - Embojuruja eiporu hag̃ua kuatia’atã ñemurã marandu mbyatypyre + Embojuruja eiporu hag̃ua kuatia’atã ñemurã marandu mbyatypyre Embojuaju kundaharape @@ -1944,11 +1927,13 @@ Kundaharape ñangareko - Téra Peteĩha + Téra Peteĩha - Téra Mokõiha + Téra Mokõiha - Terajoapy + Terajoapy + + Téra Kundaharape @@ -1973,7 +1958,9 @@ Embogue kundaharape - ¿Añetehápepa remboguese ko kundaharape? + ¿Añetehápepa remboguese ko kundaharape? + + ¿Embogue kundaharape? Mboguete @@ -2073,41 +2060,41 @@ Mbosako’i - ¿Emboguese añetehápe ko tembiapo ñepyrũ? + ¿Emboguese añetehápe ko tembiapo ñepyrũ? Mboguete Heja - Jeporavorã tembiapo ñepyrũgua + Jeporavorã tembiapo ñepyrũgua - Ñe’ẽñemi jeporavorã + Ñe’ẽñemi jeporavorã - Moñe’ẽha kora isako’ikuaáava ñanduti kundaharape rembiapo ñepyrũme. + Moñe’ẽha kora isako’ikuaáava ñanduti kundaharape rembiapo ñepyrũme. - Moñe’ẽha kora isako’ikuaáava poruhára réra rembiapo ñepyrũme. + Moñe’ẽha kora isako’ikuaáava poruhára réra rembiapo ñepyrũme. - Moñe’ẽha kora isako’ikuaáava ñe’ẽñemi rembiapo ñepyrũme. + Moñe’ẽha kora isako’ikuaáava ñe’ẽñemi rembiapo ñepyrũme. - Eñongatu moambue tembiapo ñepyrũme. + Eñongatu moambue tembiapo ñepyrũme. - Moambue ñongatu. + Moambue ñongatu. - Mbosako’i + Mbosako’i - Embosako’i ñe’ẽñemi + Embosako’i ñe’ẽñemi - Embojuaju terarenda pyahu + Embojuaju terarenda pyahu - Embojuaju ñe’ẽñemi + Embojuaju ñe’ẽñemi - Tekotevẽ ñe’ẽñemi + Tekotevẽ ñe’ẽñemi - Emoinge ñe’ẽñemi + Emoinge ñe’ẽñemi - Poruhára réra jerurepyre + Poruhára réra jerurepyre - Ehai poruhára réra + Ehai poruhára réra Mohendahavusu réra jerurepyre @@ -2131,14 +2118,14 @@ Emoinge ambue mba’e’oka. Ikatúpiko emoneĩjey. - + Embojuruja tendayke ñembojuehe. - Ndererekói tendayke ijurujáva Firefox-pe ambue ne mba’e’okápe. - + Ndererekói tendayke ijurujáva LeOSium-pe ambue ne mba’e’okápe. + Ehecha tendayke rysýi ambue ne mba’e’okápe. - + Eñepyrũ tembiapo embojuehe hag̃ua @@ -2191,7 +2178,7 @@ ¿Omboty ijehegui peteĩ jasy rire? - Firefox ombotykuaa tendayke ehecha’ỹakuri jasy ohasaramóvape. + LeOSium ombotykuaa tendayke ehecha’ỹakuri jasy ohasaramóvape. EMYANDY ÑEMBOTY IJEHEGUÍVA @@ -2199,16 +2186,16 @@ Mboty jehegui jurujapyre - - Firefox Kuave’ẽmby + + LeOSium Kuave’ẽmby Google Jehekaha Eheka %s ndive - - Emboheko ñanduti renda juajuha, ñanduti veve ha ñe’ẽmondo ijuruja hag̃ua ijehegui Firefox-pe. + + Emboheko ñanduti renda juajuha, ñanduti veve ha ñe’ẽmondo ijuruja hag̃ua ijehegui LeOSium-pe. Mboguete @@ -2217,7 +2204,7 @@ Eikutu ápe eikuaave hag̃ua - Eikundaha yvate gotyo + Eikundaha yvate gotyo Mboty @@ -2232,7 +2219,7 @@ Omboguatáva %s. - Firefox reheguaite. %s + LeOSium reheguaite. %s Kuaave @@ -2258,8 +2245,6 @@ Ñeha’ãmby ha’etéva - Oñemboguéta marandu’i jerovia’ỹha - Oiko hechajey jeroviahápe Mba’e iporãva marandu’i osẽramóvare @@ -2281,8 +2266,6 @@ kyta mba’eguasúva ou marandu’i %s 80 ára ohasaramóvagui ikatuha ejerovia.]]> Eikuaave ko’ãvare %s. - - mba’éichapa %s Mozilla mba’e ohechaukáta marandu’i iporãha mba’éicha %s oikuaa marandu’i iporãha @@ -2318,10 +2301,6 @@ Ehechárõ ko apopyre ojejoguakuaajeýma, oremomarandu ha romba’apóta hekopyahu hag̃ua ñehesa’ijo. Emomarandu apopyre ojeporukuaaha - - Ehechajey marandu’i porãngue - - Ehechajey marandu’i porãngue Ehechajey marandu’i porãngue (%s) @@ -2358,20 +2337,20 @@ Ehechajey marandu’i porãngue Eiporu ore marandu’i jeguataha rechajey jeroviápe - + Ehechajey iporãha umi marandu’i apopyre rehegua %1$s ndive ejogua mboyve. Pe marandu’i rechajeyha, %2$s mba’epyahúva, ojuaju kundahaite ndive. Avei ojeporu %3$s ha %4$s ndive. - + Ehechajey iporãha umi marandu’i apopyre rehegua %1$s ndive ejogua mboyve. Pe marandu’i rechajeyha, %2$s mba’epyahúva, ojuaju kundahára ndive. Erekóvo tembiporupyahu %1$s Mozilla mba’e, roipytyvõta emboyke hag̃ua marandu’ivai ha hekotee’ỹva. Ore IA iporãmeme ñemo’ã hag̃ua emba’ejogua aja. %2$s Eikuaave - Eiporavóvo “Héẽ, eiporu”, emoneĩ %1$s %2$s-gua ha %3$s Mozilla mba’e. + Eiporavóvo “Héẽ, eiporu”, emoneĩ %1$s %2$s-gua ha %3$s Mozilla mba’e. Eiporavóvo “H’éẽ, eiporu”, emoneĩ upeigua %1$s mba’áva: - temiñemi porureko + temiñemi porureko Temiñemi porureko @@ -2430,7 +2409,7 @@ embojuruja juajuha eikuaave hag̃ua ko ñembyaty emoñe’ẽ jehaipy - + embojuruja juajuha eikuaave hag̃ua %s, Moakãha @@ -2449,7 +2428,7 @@ Emoñe’ẽasa ñemiguáva %1$s-pe Nde rekoñemirã, umi moñe’ẽasa nosẽi araka’eve ne mba’e’okágui. ¡Ñe’ẽ pyahu ha mba’eporã tenondeve! %1$s - + Eikuaave Emoñe’ẽasa ko @@ -2457,6 +2436,8 @@ Emoñe’ẽasa pe Ani ko’ág̃a + + Ehechauka ypykuéva Oĩma @@ -2468,6 +2449,8 @@ Ñe’ẽasa oñemboguatáva + + Eiporavo peteĩ ñe’ẽ Iñapañuãi emoñe’ẽasakuévo. Eha’ãjey ag̃amieve. @@ -2477,6 +2460,11 @@ Kuaave + + + Ñemoñe’ẽasa… + + Ñe’ẽasa poravopyrã diff --git a/app/src/main/res/values-gu-rIN/strings.xml b/app/src/main/res/values-gu-rIN/strings.xml index 00f1fb83..05836044 100644 --- a/app/src/main/res/values-gu-rIN/strings.xml +++ b/app/src/main/res/values-gu-rIN/strings.xml @@ -218,9 +218,9 @@ થીમ - તમારા Firefox એકાઉન્ટ સાથે બુકમાર્ક્સ, ઇતિહાસ અને વધુને સમન્વયિત કરો + તમારા LeOSium એકાઉન્ટ સાથે બુકમાર્ક્સ, ઇતિહાસ અને વધુને સમન્વયિત કરો - Firefox ખાતુ + LeOSium ખાતુ સમન્વયન ફરી શરૂ કરવા માટે ફરીથી કનેક્ટ કરો @@ -285,7 +285,7 @@ પ્રાપ્ત ટેબ્સ - અન્ય Firefox ઉપકરણોથી પ્રાપ્ત ટેબ્સ માટેની સૂચનાઓ. + અન્ય LeOSium ઉપકરણોથી પ્રાપ્ત ટેબ્સ માટેની સૂચનાઓ. ટેબ પ્રાપ્ત @@ -334,7 +334,7 @@ સમન્વયન ચાલુ કરો - ડેસ્કટોપ માટે Firefoxમાં મેચિંગ કોડ સ્કેન કરો + ડેસ્કટોપ માટે LeOSiumમાં મેચિંગ કોડ સ્કેન કરો સાઇન ઇન કરો @@ -692,7 +692,7 @@ બીજા ઉપકરણ સાથે જોડાણ કરો - ટેબ મોકલવા માટે, ઓછામાં ઓછા એક અન્ય ઉપકરણ પર Firefox માં સાઇન ઇન કરો. + ટેબ મોકલવા માટે, ઓછામાં ઓછા એક અન્ય ઉપકરણ પર LeOSium માં સાઇન ઇન કરો. સમજાઈ ગયું @@ -827,12 +827,12 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s પર આપનું સ્વાગત છે! - + પહેલેથી જ એકાઉન્ટ છે? - + %s ને જાણો જુઓ નવુ શું છે @@ -842,8 +842,8 @@ હા, મને સાઇન ઇન કરો સાઇન ઇન કરી રહ્યું છે… - - Firefoxમાં સાઇન ઇન કરો + + LeOSiumમાં સાઇન ઇન કરો સાઇન આઉટ રહો @@ -898,7 +898,7 @@ તેના બદલે ઇમેઇલનો ઉપયોગ કરો - Firefox તમારા એકાઉન્ટ સાથે સમન્વય કરવાનું બંધ કરશે, પરંતુ આ ઉપકરણ પરના તમારી કોઈપણ બ્રાઉઝિંગ માહિતીને કાઢી નાખશે નહીં. + LeOSium તમારા એકાઉન્ટ સાથે સમન્વય કરવાનું બંધ કરશે, પરંતુ આ ઉપકરણ પરના તમારી કોઈપણ બ્રાઉઝિંગ માહિતીને કાઢી નાખશે નહીં. જોડાણ તોડો @@ -1158,9 +1158,9 @@ કાઢી નાંખો + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s માંથી સૌથી વધુ મેળવો. - તમે આ ફોન પરના બીજા Firefox બ્રાઉઝર પર %s તરીકે સાઇન ઇન કર્યું છે. શું તમે આ એકાઉન્ટ સાથે સાઇન ઇન કરવા માંગો છો? + તમે આ ફોન પરના બીજા LeOSium બ્રાઉઝર પર %s તરીકે સાઇન ઇન કર્યું છે. શું તમે આ એકાઉન્ટ સાથે સાઇન ઇન કરવા માંગો છો? diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 4736e763..af451755 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -223,7 +223,7 @@ सीधे पता बार से खोजें - + फ़ायरफ़ॉक्स में नया क्या है साफ, व्यवस्थित टैब @@ -231,8 +231,8 @@ हाल के खोज - - एक नया Firefox टैब खोलें + + एक नया LeOSium टैब खोलें खोजें @@ -278,12 +278,12 @@ निजी ब्राउज़िंग शॉर्टकट जोड़ें अभिगम्यता - - अनुकूलित Firefox Account सर्वर + + अनुकूलित LeOSium Account सर्वर अनुकूलित सिंक सर्वर - Firefox Account/सिंक सर्वर संसोधित किया गया। परिवर्तन लागू करने के लिए एप्लीकेशन बंद हो रहा है… + LeOSium Account/सिंक सर्वर संसोधित किया गया। परिवर्तन लागू करने के लिए एप्लीकेशन बंद हो रहा है… खाता @@ -295,9 +295,9 @@ अनुकूलित करें - अपने Firefox Account के साथ बुकमार्क, इतिहास और अन्य चीज़ों को सिंक करें। + अपने LeOSium Account के साथ बुकमार्क, इतिहास और अन्य चीज़ों को सिंक करें। - Firefox खाता + LeOSium खाता सिंक को पुनः प्रारंभ करने के लिए दोबारा कनेक्ट करें @@ -411,7 +411,7 @@ प्राप्त टैब - अन्य Firefox उपकरणों से प्राप्त टैब के लिए अधिसूचनाएं। + अन्य LeOSium उपकरणों से प्राप्त टैब के लिए अधिसूचनाएं। टैब प्राप्त किया गया @@ -890,7 +890,7 @@ अन्य डिवाइस जोड़ें - टैब भेजने के लिए, कम से कम एक अन्य डिवाइस पर Firefox में साइन इन करें। + टैब भेजने के लिए, कम से कम एक अन्य डिवाइस पर LeOSium में साइन इन करें। समझ गए @@ -1023,36 +1023,36 @@ ब्राउज़िंग डेटा मिटा रहे हैं… - - Firefox Preview अब Firefox Nightly है + + LeOSium Preview अब LeOSium Nightly है - Firefox Nightly हर रात को अपडेट किया जाता है और इसमें नए प्रयोगात्मक विशेषताओं जोड़ी जाति हैं। + LeOSium Nightly हर रात को अपडेट किया जाता है और इसमें नए प्रयोगात्मक विशेषताओं जोड़ी जाति हैं। हालाकी यह कम स्थिर हो सकता है । अधिक स्थायी अनुभव के लिए हमारा बीटा ब्राउज़र डाउनलोड करें। - - Android के लिए Firefox Beta पाएँ + + Android के लिए LeOSium Beta पाएँ - - Firefox Nightly को हटा दिया गया + + LeOSium Nightly को हटा दिया गया यह ऐप अब कोई सुरक्षा अपडेट प्राप्त नहीं करेगा। इसे उपयोग करना बंद करें और नए Nightly में बदलें। - \n\nअपने बूकमार्क, लॉगिन और इतिहास को किसी अन्य ऐप स्थानांतरित करने के लिए, एक Firefox खाता बनायें। + \n\nअपने बूकमार्क, लॉगिन और इतिहास को किसी अन्य ऐप स्थानांतरित करने के लिए, एक LeOSium खाता बनायें। नए Nightly पर स्विच करें - - Firefox Nightly को हटा दिया गया + + LeOSium Nightly को हटा दिया गया यह ऐप अब कोई सुरक्षा अपडेट प्राप्त नहीं करेगा। नया Nightly पायें और इसे उपयोग करना बंद करें। - \n\nअपने बूकमार्क, लॉगिन और इतिहास को किसी अन्य ऐप स्थानांतरित करने के लिए, एक Firefox खाता बनायें। + \n\nअपने बूकमार्क, लॉगिन और इतिहास को किसी अन्य ऐप स्थानांतरित करने के लिए, एक LeOSium खाता बनायें। नई Nightly पायें + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s में आपका स्वागत हैं! - + साइन अप सिंक चालू है @@ -1093,14 +1093,14 @@ कोड को स्कैन करें - https://firefox.com/pair पर जाएं]]> + https://firefox.com/pair पर जाएं]]> स्कैन करने के लिए तैयार है अपने कैमरे से साइन इन करें इसके बजाय ईमेल का उपयोग करें - + %s आपके खाते के साथ सिंक करना बंद करेगा, लेकिन इस उपकरण पर स्थित आपका कोई भी ब्राउजिंग डाटा नहीं मिटाएगा। डिस्कनेक्ट करें @@ -1494,13 +1494,13 @@ अन्य डिवाइस कनेक्ट करें कृपया पुनः प्रमाणित करें। - + कृपया टैब सिंकिंग सक्षम करें। - आपके अन्य उपकरणों पर Firefox में कोई टैब खुला नहीं है। - + आपके अन्य उपकरणों पर LeOSium में कोई टैब खुला नहीं है। + अपने अन्य उपकरणों से टैब की एक सूची देखें। - + सिंक करने के लिए साइन इन करें diff --git a/app/src/main/res/values-hil/strings.xml b/app/src/main/res/values-hil/strings.xml index 46bbf154..9a150f07 100644 --- a/app/src/main/res/values-hil/strings.xml +++ b/app/src/main/res/values-hil/strings.xml @@ -48,7 +48,7 @@ Mag-customize - Firefox Account + LeOSium Account Lenggwahe diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index ce579bb4..3cd1f0b9 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -71,12 +71,12 @@ %1$s briše vaše kolačiće, povijest i podatke stranica kada zatvorite sve privatne prozore. %2$s %1$s briše vaše kolačiće, povijest i podatke stranica kada zatvorite sve privatne kartice. %2$s - Učinite Firefox vašim glavnim pretraživačem + Note: The word "LeOSium" should NOT be translated --> + Učinite LeOSium vašim glavnim pretraživačem Volimo vas čuvati - Firefox stavlja ljude iznad profita i brani vašu privatnost blokiranjem alata za praćenje.\n\nSaznajte više u našoj politici privatnosti. + Note: The word "LeOSium" should NOT be translated --> + LeOSium stavlja ljude iznad profita i brani vašu privatnost blokiranjem alata za praćenje.\n\nSaznajte više u našoj politici privatnosti. Naš neprofitni preglednik pomaže spriječiti tvrtke da vas tajno prate na webu.\n\nSaznajte više u našoj obavijesti o privatnosti. Ne sada - Obavijesti vam pomažu da učinite više s Firefoxom + Note: The word "LeOSium" should NOT be translated --> + Obavijesti vam pomažu da učinite više s LeOSiumom - Šaljite kartice između uređaja, upravljajte preuzimanjima i primajte savjete kako najbolje iskoristiti Firefox. + Note: The word "LeOSium" should NOT be translated --> + Šaljite kartice između uređaja, upravljajte preuzimanjima i primajte savjete kako najbolje iskoristiti LeOSium. Uključite obavijesti Ne sada - Dodaj Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Dodaj LeOSium widget Ne sada @@ -503,12 +503,12 @@ Međutim, također je moguće da je napadač upleten. Ako nastavite do web stranice, ne biste trebali unositi osjetljive podatke. Ako nastavite, način rada HTTPS-Only biti će privremeno isključen za ovu web stranicu. Pristupačnost - - Prilagođeni poslužitelj Firefox računa + + Prilagođeni poslužitelj LeOSium računa Prilagođeni poslužitelj za sinkronizaciju - Firefox Account/Sync poslužitelj je izmijenjen. Izlaskom iz aplikacije će se primijeniti izmjene… + LeOSium Account/Sync poslužitelj je izmijenjen. Izlaskom iz aplikacije će se primijeniti izmjene… Račun @@ -524,7 +524,7 @@ Prijavite se da biste sinkronizirali kartice, zabilješke, lozinke i više. - Firefox račun + LeOSium račun Ponovo se poveži za nastavak sinkronizacije @@ -635,7 +635,7 @@ Saznaj više - + Klasični %s Umjetnička serija @@ -713,7 +713,7 @@ Primljene kartice - Obavijesti za kartice koje su primljene s drugih Firefox uređaja. + Obavijesti za kartice koje su primljene s drugih LeOSium uređaja. Kartica primljena @@ -895,7 +895,7 @@ Ukloni Aktivno - + %1$s može s vremena na vrijeme instalirati i pokretati studije. Saznaj više @@ -1278,7 +1278,7 @@ Poveži jedan drugi uređaj - Za slanje kartice, prijavi se na Firefox na barem jednom drugom uređaju. + Za slanje kartice, prijavi se na LeOSium na barem jednom drugom uređaju. Razumijem @@ -1301,10 +1301,10 @@ - Firefox je brz i privatan + LeOSium je brz i privatan - Postavi Firefox kao zadani preglednik + Postavi LeOSium kao zadani preglednik Probajte privatno pretraživanje - Pomozite nam učiniti Firefox boljim ispunjavanjem kratke ankete. + Pomozite nam učiniti LeOSium boljim ispunjavanjem kratke ankete. Ispunite anketu @@ -1467,16 +1467,16 @@ Skeniraj kȏd - https://firefox.com/pair]]> + https://firefox.com/pair]]> Spremno za skeniranje Prijavi se pomoću kamere Umjesto toga koristi e-poštu - - Stvori ga i sinkroniziraj Firefox među uređajima.]]> - + + Stvori ga i sinkroniziraj LeOSium među uređajima.]]> + %s će prestati sinkroniziranje s tvojim računom, ali neće izbrisati podatke o tvom pregledavanju na ovom uređaju. Prekini vezu @@ -1492,7 +1492,7 @@ Poboljšana zaštita od praćenja Sadrži potpunu zaštitu od kolačića, našu najnapredniju barijeru protiv međustraničnih kolačića. - + %s vas štiti od mnogih uobičajenih programa za praćenje, koji prate vaše radnje na mreži. Saznaj više @@ -1650,9 +1650,9 @@ Pitaj treba li se spremiti Nikad ne spremaj - + Automatski ispuni u %1$s - + Ispuni i spremi korisnička imena i lozinke na web-stranicama tijekom korištenja %1$sa. Automatski ispuni u drugim aplikacijama @@ -2010,14 +2010,14 @@ Poveži drugi uređaj. Ponovite autorizaciju. - + Omogućite sinkroniziranje kartica. - Nemaš otvorene kartice u Firefoxu na drugim uređajima. - + Nemaš otvorene kartice u LeOSiumu na drugim uređajima. + Pogledaj popis kartica s tvojih drugih uređaja. - + Prijavi se za sinkronizaciju @@ -2069,7 +2069,7 @@ Automatski zatvoriti nakon jednog mjeseca? - Firefox može zatvoriti kartice koje nisu pregledane posljednjih mjesec dana. + LeOSium može zatvoriti kartice koje nisu pregledane posljednjih mjesec dana. UKLJUČI AUTOMATSKO ZATVARANJE @@ -2077,8 +2077,8 @@ Automatsko zatvaranje omogućeno - - Firefox prijedlozi + + LeOSium prijedlozi Google pretraga @@ -2086,7 +2086,7 @@ %s pretraga - Postavi automatsko otvaranje poveznica web stranica, e-pošte i poruka u Firefoxu. + Postavi automatsko otvaranje poveznica web stranica, e-pošte i poruka u LeOSiumu. Ukloni @@ -2110,7 +2110,7 @@ Pokreće %s. - Dio Firefoxove obitelji. %s + Dio LeOSiumove obitelji. %s Saznaj više @@ -2131,6 +2131,6 @@ otvorite poveznicu kako biste saznali više o ovoj kolekciji pročitaj članak - + otvorite poveznicu kako biste saznali više diff --git a/app/src/main/res/values-hsb/strings.xml b/app/src/main/res/values-hsb/strings.xml index 1b041108..8d2f0e3d 100644 --- a/app/src/main/res/values-hsb/strings.xml +++ b/app/src/main/res/values-hsb/strings.xml @@ -71,7 +71,7 @@ Na tutym graće žane slědy njezawostajić %1$s waše placki, historiju a sydłowe daty zhaša, hdyž wšě swoje priwatne rajtarki začinjeće. %2$s Stronu přełožić + + Strona je so z rěče %1$s do rěče %2$s přełožiła. + Wubrana rěč @@ -329,13 +334,23 @@ - Zdźělenka priwatnosće Firefox - + Zdźělenka priwatnosće LeOSium + + Zhońće wjace w našej zdźělence priwatnosće Škitamy was rady + + Wuslědźće, čehodla miliony ludźi LeOSium lubuja + + Wěste přehladowanje z wjace wuběrami Naš powšitkownosći wužitny wobhladowak zadźěwa tomu, zo předewzaća wam skradźu po interneće slěduja. + Wjace hač 100 milionow ludźi škita swoju priwatnosć, hdyž wobhladowak wuběraće, kotryž so wot njekomercielneje organizacije podpěruje. + + Znate přesćěhowaki? Blokuja so awtomatisce. Rozšěrjenja? Wupruwujće wšě 700. PDF? Naš zatwarjeny čitak wosnadnja je rjadować. + Naš powšitkownosći wužitny wobhladowak tomu zadźěwa, zo předewzaća wam skradźu po interneće slěduja.\n\nDalše informacije w našej zdźělence priwatnosće. @@ -347,32 +362,32 @@ Wostańće zaklučowany, hdyž wjacore graty wužiwaće - Hdyž sće so přizjewił a sće synchronizował, sće wěsćiši. Firefox waše hesła, zapołožki a wjace zaklučuje. + Note: The word "LeOSium" should NOT be translated --> + Hdyž sće so přizjewił a sće synchronizował, sće wěsćiši. LeOSium waše hesła, zapołožki a wjace zaklučuje. Přizjewić Nic nětko - Zdźělenki wam pomhaja, z Firefox wěsćiši wostać + Note: The word "LeOSium" should NOT be translated --> + Zdźělenki wam pomhaja, z LeOSium wěsćiši wostać - Rozsyłajće rajtarki mjez swojimi gratami a wotkryjće druhe funkcije priwatnosće w Firefox. + Note: The word "LeOSium" should NOT be translated --> + Rozsyłajće rajtarki mjez swojimi gratami a wotkryjće druhe funkcije priwatnosće w LeOSium. Zdźělenki zmóžnić Nic nětko - Wupruwujće pytanski asistent Firefox + Note: The word "LeOSium" should NOT be translated --> + Wupruwujće pytanski asistent LeOSium - Z Firefox na swojej startowej wobrazowce maće lochki přistup k wobhladowakej, za kotryž priwatnosć je na prěnim městnje, kotryž sydła přesahowace přesćěhowaki blokuje. + Note: The word "LeOSium" should NOT be translated --> + Z LeOSium na swojej startowej wobrazowce maće lochki přistup k wobhladowakej, za kotryž priwatnosć je na prěnim městnje, kotryž sydła přesahowace přesćěhowaki blokuje. - Asistent Firefox přidać + Note: The word "LeOSium" should NOT be translated --> + Asistent LeOSium přidać Nic nětko @@ -412,10 +427,10 @@ Namjety wot pytawow Nastajenja adresoweho pola - - Adresowe polo – Firefox Suggest - - Zhońće wjace wo Firefox Suggest + + Adresowe polo – LeOSium Suggest + + Zhońće wjace wo LeOSium Suggest Na Google Play pohódnoćić URL awtomatisce wudospołnić - + Namjety wot sponsorow - Podpěrajće %1$s ze składnostnymi sponserowanymi namjetami - Namjety wot %1$s - + Wobstarajće sej namjety z weba nastupajo waše pytanje Wotkazy w nałoženjach wočinić @@ -642,7 +657,7 @@ Dalše informacije - + Klasiski %s Serija wuměłcow @@ -661,8 +676,8 @@ Nowe přidatki nětko k dispoziciji - - Wupruwujće přez 100 nowych rozšěrjenjow, z kotrymiž móžeće Firefox swojim přećach přiměrić. + + Wupruwujće přez 100 nowych rozšěrjenjow, z kotrymiž móžeće LeOSium swojim přećach přiměrić. Přidatki wuslědźić @@ -690,9 +705,9 @@ Zapołožki - Přizjewjenja + Přizjewjenja - Hesła + Hesła Wočinjene rajtarki @@ -719,9 +734,9 @@ %1$s wot %2$s %3$s - Kreditne karty + Kreditne karty - Płaćenske metody + Płaćenske metody Adresy @@ -729,7 +744,7 @@ Přijate rajtarki - Zdźělenki za rajtarki su so z druhich gratow Firefox přijali. + Zdźělenki za rajtarki su so z druhich gratow LeOSium přijali. Rajtark přijaty @@ -914,7 +929,7 @@ Wotstronić Aktiwny - + %1$s móže hdys a hdys studije instalować a přewjesć. Dalše informacije @@ -1291,7 +1306,7 @@ Dalši grat zwjazać - Zo byšće rajtark pósłał, přizjewće so pola Firefox na znajmjeńša jednym dalšim graće. + Zo byšće rajtark pósłał, přizjewće so pola LeOSium na znajmjeńša jednym dalšim graće. Sym zrozumił @@ -1319,10 +1334,10 @@ - Firefox je spěšny a priwatny + LeOSium je spěšny a priwatny - Firefox k wašemu standardnemu wobhladowakej činić + LeOSium k wašemu standardnemu wobhladowakej činić Wupruwujće priwatny modus @@ -1344,7 +1359,7 @@ - Prošu wobdźělće so na krótkim naprašowanju, zo byšće pomhał, Firefox polěpšować. + Prošu wobdźělće so na krótkim naprašowanju, zo byšće pomhał, LeOSium polěpšować. Woprašowanje wupjelnić @@ -1491,16 +1506,16 @@ Kod skenować - https://firefox.com/pair]]> + https://firefox.com/pair]]> Hotowy za skenowanje Přizjewće so ze swojej kameru E-mejl město toho wužiwać - - Załožće tajke, zo byšće Firefox mjez gratami synchronizował.]]> - + + Załožće tajke, zo byšće LeOSium mjez gratami synchronizował.]]> + %s přestanje z wašim kontom synchronizować, ale njezhaša přehladowanske daty na tutym graće. Zwisk dźělić @@ -1516,7 +1531,7 @@ Polěpšeny slědowanski škit Nětko z dospołnym škitom přećiwo plackam, našej najmócnišej barjeru přećiwo sydła přesahowacym slědowakam. - + %s was před wjele z najhusćišich přesćěhowakow škita, kotrež slěduja, štož online činiće. Dalše informacije @@ -1667,20 +1682,20 @@ Móžeće startowej wobrazowce swojeho grata tute websydło lochko přidać, zo byšće direktny přistup měł a spěšnišo z dožiwjenjom nałoženja přehladował. - Přizjewjenja a hesła + Přizjewjenja a hesła - Hesła + Hesła - Přizjewjenja a hesła składować + Přizjewjenja a hesła składować - Hesła składować + Hesła składować Před składowanjom so prašeć Ženje njeskładować - + W %1$s awtomatisce wupjelnić - + Wužiwarske mjena a hesła na websydłach zasadźić a składować, mjeztym zo %1$s wužiwaće. W druhich nałoženjach awtomatisce wupjelnić @@ -1689,47 +1704,47 @@ Wužiwarske mjena a hesła w druhich nałoženjach na wašim graće zasadźić. - Přizjewjenje přidać + Přizjewjenje přidać - Hesło přidać + Hesło přidać - - Přizjewjenja synchronizować - Hesła synchronizować + Přizjewjenja synchronizować + + Hesła synchronizować - Přizjewjenja mjez gratami synchronizować + Přizjewjenja mjez gratami synchronizować - Hesła přez graty synchronizować + Hesła přez graty synchronizować - Składowane přizjewjenja + Składowane přizjewjenja - Składowane hesła + Składowane hesła - Přizjewjenja, kotrež składujeće abo z %s synchronizujeće, so tu pokazaja. + Přizjewjenja, kotrež składujeće abo z %s synchronizujeće, so tu pokazaja. - Hesła, kotrež składujeće abo z %s synchronizujeće, so tu nalistuja. Wšě hesła, kotrež składujeće, so zaklučuja. + Hesła, kotrež składujeće abo z %s synchronizujeće, so tu nalistuja. Wšě hesła, kotrež składujeće, so zaklučuja. - Zhońće wjace wo Sync. + Zhońće wjace wo Sync. - Zhońće wjace wo sync + Zhońće wjace wo sync Wuwzaća - Přizjewjenja a hesła, kotrež so njeskładuja, so tu pokazaja. + Přizjewjenja a hesła, kotrež so njeskładuja, so tu pokazaja. - %s hesła za sydła njeskładuje, kotrež su tu nalistowane. + %s hesła za sydła njeskładuje, kotrež su tu nalistowane. - Přizjewjenja a hesła so za tute sydła njeskładuja. + Přizjewjenja a hesła so za tute sydła njeskładuja. - %s hesła za tute sydła njeskładuje. + %s hesła za tute sydła njeskładuje. Wšě wuwzaća zhašeć - Přizjewjenja pytać + Přizjewjenja pytać - Hesła přepytać + Hesła přepytać Sydło @@ -1757,17 +1772,17 @@ Hesło schować - Za zwobraznjenje wašich składowanych přizjewjenjow wotewrěć + Za zwobraznjenje wašich składowanych přizjewjenjow wotewrěć - Za zwobraznjenje wašich składowanych hesłow wotewrěć + Za zwobraznjenje wašich składowanych hesłow wotewrěć - Zawěsćće swoje přizjewjenja a hesła + Zawěsćće swoje přizjewjenja a hesła - Zawěsćće swoje składowane hesła + Zawěsćće swoje składowane hesła - Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym přizjewjenjam a hesłam zadźěwał, jeli něchtó druhi waš grat ma. + Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym přizjewjenjam a hesłam zadźěwał, jeli něchtó druhi waš grat ma. - Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym hesłam zadźěwał, jeli něchtó druhi waš grat ma. + Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym hesłam zadźěwał, jeli něchtó druhi waš grat ma. Pozdźišo @@ -1786,10 +1801,10 @@ Poslednim wužiću - Meni přizjewjenskich datow sortěrować + Meni přizjewjenskich datow sortěrować - Meni „Hesła sortěrować“ + Meni „Hesła sortěrować“ @@ -1797,43 +1812,43 @@ Adresy - Kreditne karty + Kreditne karty - Płaćenske metody + Płaćenske metody - Karty składować a awtomatisce wupjelnić + Karty składować a awtomatisce wupjelnić - Płaćenske metody składować a wupjelnić + Płaćenske metody składować a wupjelnić - Daty su zaklučowane + Daty su zaklučowane - %s wšě płaćenske metody zaklučuje, kotrež składujeće + %s wšě płaćenske metody zaklučuje, kotrež składujeće Karty přez graty synchronizować Karty synchronizować - Kreditnu kartu přidać + Kreditnu kartu přidać - Kartu přidać + Kartu přidać - Składowane karty rjadować + Składowane karty rjadować - Karty rjadować + Karty rjadować Adresu přidać Adresy rjadować - Adresy składować a awtomatisce wupjelnić + Adresy składować a awtomatisce wupjelnić - Adresy składować a wupjelnić + Adresy składować a wupjelnić - Informacije kaž ličby, e-mejlowe a rozsyłanske adresy zapřijeć + Informacije kaž ličby, e-mejlowe a rozsyłanske adresy zapřijeć - Wobsahuje telefonowe čisła a e-mejlowe adresy + Wobsahuje telefonowe čisła a e-mejlowe adresy Kartu přidać @@ -1854,9 +1869,9 @@ Kartu zhašeć - Chceće woprawdźe tutu kreditnu kartu zhašeć? + Chceće woprawdźe tutu kreditnu kartu zhašeć? - Kartu zhašeć? + Kartu zhašeć? Zhašeć @@ -1870,24 +1885,24 @@ Składowane karty - Prošu zapodajće płaćiwe čisło kreditneje karty + Prošu zapodajće płaćiwe čisło kreditneje karty - Zapodajće płaćiwe kartowe čisło + Zapodajće płaćiwe kartowe čisło - Prošu wupjelńće tute polo + Prošu wupjelńće tute polo - Přidajće mjeno + Přidajće mjeno Za zwobraznjenje wašich składowanych kartow wotewrěć - Waše kreditne karty zawěsćić + Waše kreditne karty zawěsćić - Zawěsćće swoje składowane płaćenske metody + Zawěsćće swoje składowane płaćenske metody - Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym kreditnym kartam zadźěwał, jeli něchtó druhi waš grat ma. + Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym kreditnym kartam zadźěwał, jeli něchtó druhi waš grat ma. - Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym płácenskim metodam zadźěwał, jeli něchtó druhi waš grat ma. + Nastajće gratowy zawrjenski muster, PIN abo hesło, zo byšće přistupej k swojim składowanym płácenskim metodam zadźěwał, jeli něchtó druhi waš grat ma. Nětko konfigurować @@ -1896,10 +1911,10 @@ Wotewriće swój grat - Blokowanje zběhnyć, zo bychu so składowane informacije kreditneje karty wužiwali + Blokowanje zběhnyć, zo bychu so składowane informacije kreditneje karty wužiwali - Wotewrěć, zo byšće składowane płaćenske metody wužiwał + Wotewrěć, zo byšće składowane płaćenske metody wužiwał Adresu přidać @@ -1907,11 +1922,13 @@ Adresy rjadować - Předmjeno + Předmjeno - Druhe předmjeno + Druhe předmjeno - Swójbne mjeno + Swójbne mjeno + + Mjeno Dróhowa adresa @@ -1936,9 +1953,9 @@ Adresu zhašeć - Chceće woprawdźe tutu adresu zhašeć? + Chceće woprawdźe tutu adresu zhašeć? - Tutu adresu zhašeć? + Tutu adresu zhašeć? Zhašeć @@ -2037,49 +2054,49 @@ Wobdźěłać - Chceće woprawdźe tute přizjewjenje zhašeć? + Chceće woprawdźe tute přizjewjenje zhašeć? - Chceće woprawdźe tute hesło zhašeć? + Chceće woprawdźe tute hesło zhašeć? Zhašeć Přetorhnyć - Přizjewjenske nastajenja + Přizjewjenske nastajenja - Hesłowe nastajenja + Hesłowe nastajenja - Wobdźěłujomne tekstowe polo za webadresu přizjewjenja. + Wobdźěłujomne tekstowe polo za webadresu přizjewjenja. - Wobdźěłujomne tekstowe polo za adresu websydła. + Wobdźěłujomne tekstowe polo za adresu websydła. - Wobdźěłujomne tekstowe polo za wužiwarske mjeno přizjewjenja. + Wobdźěłujomne tekstowe polo za wužiwarske mjeno přizjewjenja. - Wobdźěłujomne tekstowe polo za wužiwarske mjeno. + Wobdźěłujomne tekstowe polo za wužiwarske mjeno. - Wobdźěłujomne tekstowe polo za hesło přizjewjenja. + Wobdźěłujomne tekstowe polo za hesło přizjewjenja. - Wobdźěłujomne tekstowe polo za hesło. + Wobdźěłujomne tekstowe polo za hesło. - Změny přizjewjenja składować + Změny přizjewjenja składować - Změny składować. + Změny składować. - Wobdźěłać + Wobdźěłać - Hesło wobdźěłać + Hesło wobdźěłać - Nowe přizjewjenje přidać + Nowe přizjewjenje přidać - Hesło přidać + Hesło přidać - Hesło trěbne + Hesło trěbne - Hesło zapodać + Hesło zapodać - Wužiwarske mjeno trěbne + Wužiwarske mjeno trěbne - Wužiwarske mjeno zapodać + Wužiwarske mjeno zapodać Hostmjeno trěbne @@ -2104,13 +2121,13 @@ Z druhim gratom zwjazać. Prošu awtentifikujće znowa. - + Prošu zmóžńće synchronizowanje rajtarkow. - Nimaće žane wočinjene rajtarki w Firefox na swojich druhich gratach. - + Nimaće žane wočinjene rajtarki w LeOSium na swojich druhich gratach. + Wobhladajće sej lisćinu rajtarkow ze swojich gratow. - + Pola Sync přizjewić @@ -2162,7 +2179,7 @@ Po jednym měsacu awtomatisce začinić? - Firefox móže rajtarki začinić, kotrež njejsće sej zańdźeny měsac wobhladał. + LeOSium móže rajtarki začinić, kotrež njejsće sej zańdźeny měsac wobhladał. AWTOMATISKE ZAČINJENJE ZMÓŽNIĆ @@ -2170,8 +2187,8 @@ Awtomatiske začinjenje zmóžnjene - - Namjety Firefox + + Namjety LeOSium Pytanje z Google @@ -2182,7 +2199,7 @@ Waš standardny wobhladowak změnić - Nastajće wotkazy z websydłow, mejlkow a powěsćow, zo bychu so awtomatisce we Firefox wočinili. + Nastajće wotkazy z websydłow, mejlkow a powěsćow, zo bychu so awtomatisce we LeOSium wočinili. Wotstronić @@ -2191,7 +2208,7 @@ Klikńće za dalše podrobnosće - Horje + Horje Začinić @@ -2206,7 +2223,7 @@ Spěchowany wot %s. - Dźěl swójby Firefox. %s + Dźěl swójby LeOSium. %s Dalše informacije @@ -2232,8 +2249,6 @@ Přiměrjene hódnoćenje - Njespušćomne pohódnoćenja wotstronjene - Bazuje na spušćomnych pohódnoćenjach Wjerški z najnowšich pohódnoćenjow @@ -2290,10 +2305,6 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Jeli widźiće, zo tutón produkt je zaso na składźe, zdźělće to a budźemy na kontrolowanju pohódnoćenjow dźěłać. Zdźělić, zo produkt je na składźe - - Kontrola kwalitu pohódnoćenjow - - Kontrola kwalitu pohódnoćenjow Kontrola kwalitu pohódnoćenjow (%s) @@ -2330,22 +2341,28 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Kwalitu pohódnoćenjow kontrolować Čitajće naš dowěry hódny přewodnik wo pohódnoćenjach produktow - + Hladajće, kak spušćomne pohódnoćenja produktow na %1$s su, prjedy hač produkty kupiće. Kontrola pohódnoćenjow, eksperimentalna funkcija z %2$s, je direktnje do wobhladowaka zatwarjena. Funguje tež na %3$s a %4$s. - + Hladajće, kak spušćomne pohódnoćenja produktow na %1$s su, prjedy hač produkty kupiće. Kontrola pohódnoćenjow, eksperimentalna funkcija z %2$s, je direktnje do wobhladowaka zatwarjena. Z pomocu potenciala %1$s wot Mozilla, pomhamy wam, předzajate a njeawtentiske pohódnoćenja wobeńć. Naš model KI so stajnje polěpšuje, zo by was škitał, hdyž nakupujeće. %2$s Dalše informacije - Hdyž „Haj, wupruwować“ wuběraće, zwoliće do %2$s a %3$s Mozilla za %1$s. + Hdyž „Haj, wupruwować“ wuběraće, zwoliće do %2$s a %3$s Mozilla za %1$s. Hdyž „Haj, wupruwować“ wuběraće, zwoliće do slědowaceho wot %1$s: + + Hdyž „Haj, wupruwować“ wuběraće, zwoliće do %2$s %1$s a %4$s %3$s + + Hdyž „Haj, wupruwować“ wuběraće, zwoliće do %2$s %1$s a %4$s %3$s - prawidła priwatnosće + prawidła priwatnosće Prawidła priwatnosće + + zdźělenka priwatnosće wužiwanske wuměnjenja @@ -2402,7 +2419,7 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk wočińće wotkaz, zo byšće wjace wo tutej zběrce zhonił nastawk čitać - + wotkaz wočinić, zo byšće wjace zhonił %s, nadpismo @@ -2417,11 +2434,15 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Tutu stronu přełožować? + + Strona je so z rěče %1$s do rěče %2$s přełožiła Priwatne přełožki w %1$s testować Za wašu priwatnosć přełožki waš grat ženje njewopušćeja. Nowe rěče a polěpšenja bórze přińdu! %1$s - + Dalše informacije Žórłowa rěč @@ -2429,6 +2450,8 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Cilowa rěč Nic nětko + + Original pokazać Dokónčene @@ -2451,6 +2474,16 @@ To budźe jenož pomhać, kwalitu pohódnoćenjow posudźić, nic kwalitu produk Dalše informacije + + Přełožuje so… + + + Rěč w datowym lutowanskim modusu sćahnyć (%1$s)? + + Přełožowanske nastajenja diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index cf308b4c..b69b2f30 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -71,7 +71,7 @@ Ne hagyjon nyomot ezen az eszközön A %1$s törli a sütiket, előzményeket és oldaladatokat, amikor bezárja az összes privát lapot. %2$s Oldal fordítása + + Az oldal lefordítva %1$s nyelvről %2$s nyelvre. + Kiválasztott nyelv @@ -332,13 +337,23 @@ - Firefox adatvédelmi nyilatkozat - + LeOSium adatvédelmi nyilatkozat + + További információk az adatvédelmi nyilatkozatunkban Szeretjük biztonságban tartani Önt + + Tudja meg, hogy miért szeretik milliók a LeOSiumot + + Biztonságos böngészés, több választási lehetőséggel A nonprofit szervezet által támogatott böngészőnk segít megakadályozni, hogy a cégek titokban kövessék Önt a weben. + Több mint 100 millió ember védi a magánszféráját azzal, hogy egy nonprofit szervezet által támogatott böngészőt választ. + + Ismert követők? Automatikusan blokkolva. Kiegészítők? Próbálja ki mind a 700-at. PDF-ek? A beépített olvasónk megkönnyíti a kezelésüket. + A nonprofit szervezet által támogatott böngészőnk segít megakadályozni, hogy a cégek titokban nyomon kövessék Önt az interneten.\n\nTovábbi információk az adatvédelmi nyilatkozatban találhatók. @@ -350,32 +365,32 @@ Maradjon titkosítva, amikor az eszközök között vált - Ha be van jelentkezve és szinkronizálva van, akkor nagyobb biztonságban van. A Firefox titkosítja a jelszavait, könyvjelzőit és egyebeit. + Note: The word "LeOSium" should NOT be translated --> + Ha be van jelentkezve és szinkronizálva van, akkor nagyobb biztonságban van. A LeOSium titkosítja a jelszavait, könyvjelzőit és egyebeit. Bejelentkezés Most nem - Az értesítések segítségével nagyobb biztonságban lehet a Firefoxszal + Note: The word "LeOSium" should NOT be translated --> + Az értesítések segítségével nagyobb biztonságban lehet a LeOSiumszal - Küldjön biztonságosan lapokat eszközei között, és fedezzen fel más adatvédelmi funkciókat a Firefoxban. + Note: The word "LeOSium" should NOT be translated --> + Küldjön biztonságosan lapokat eszközei között, és fedezzen fel más adatvédelmi funkciókat a LeOSiumban. Értesítések bekapcsolása Most nem - Próbálja ki a Firefox keresőmodult + Note: The word "LeOSium" should NOT be translated --> + Próbálja ki a LeOSium keresőmodult - Ha a Firefox a kezdőképernyőn van, akkor könnyen hozzáférhet az adatvédelmet előtérbe helyező böngészőhöz, amely blokkolja a webhelyek közötti követőket. + Note: The word "LeOSium" should NOT be translated --> + Ha a LeOSium a kezdőképernyőn van, akkor könnyen hozzáférhet az adatvédelmet előtérbe helyező böngészőhöz, amely blokkolja a webhelyek közötti követőket. - Firefox modul hozzáadása + Note: The word "LeOSium" should NOT be translated --> + LeOSium modul hozzáadása Most nem @@ -415,10 +430,10 @@ Javaslatok a keresőszolgáltatásoktól Címsáv beállításai - - Címsáv – Firefox Suggest - - Ismerje meg a Firefox Suggestet + + Címsáv – LeOSium Suggest + + Ismerje meg a LeOSium Suggestet Értékelés a Google Playen Automatikus URL-kiegészítés - + Szponzorált javaslatok - A %1$s támogatása az alkalmankénti szponzorált javaslatokkal - Javaslatok a következőtől: %1$s - + Kapjon a kereséséhez kapcsolódó javaslatokat a webről Hivatkozások megnyitása alkalmazásokban @@ -647,7 +662,7 @@ További tudnivalók - + Klasszikus %s Művész sorozat @@ -665,8 +680,8 @@ Új kiegészítők érhetők el - - Nézzen meg több mint 100 új kiegészítőt, amellyel a sajátjává teheti a Firefoxot. + + Nézzen meg több mint 100 új kiegészítőt, amellyel a sajátjává teheti a LeOSiumot. Kiegészítők felfedezése @@ -694,9 +709,9 @@ Könyvjelzők - Bejelentkezések + Bejelentkezések - Jelszavak + Jelszavak Nyitott lapok @@ -722,9 +737,9 @@ %1$s ezen: %2$s %3$s - Bankkártyák + Bankkártyák - Fizetési módok + Fizetési módok Címek @@ -799,9 +814,9 @@ Görgetés az eszköztár elrejtéséhez - Eszköztár oldalra seprése a lapok közti váltáshoz + Eszköztár oldalra csúsztatása a lapok közti váltáshoz - Eszköztár felfelé seprése a lapok megnyitásához + Eszköztár felfelé csúsztatása a lapok megnyitásához @@ -916,7 +931,7 @@ Eltávolítás Aktív - + A %1$s időről időre tanulmányokat telepíthet és futtathat. További tudnivalók @@ -1293,7 +1308,7 @@ Másik eszköz csatlakoztatása - Lap küldéséhez legalább egy másik eszközön is jelentkezzen be a Firefoxba. + Lap küldéséhez legalább egy másik eszközön is jelentkezzen be a LeOSiumba. Megértettem @@ -1323,10 +1338,10 @@ - A Firefox gyors és privát + A LeOSium gyors és privát - A Firefox alapértelmezett böngészővé tétele + A LeOSium alapértelmezett böngészővé tétele Próbálja ki a privát böngészést - Segítsen a Firefox jobbá tételében egy rövid felmérés kitöltésével. + Segítsen a LeOSium jobbá tételében egy rövid felmérés kitöltésével. Kérdőív kitöltése @@ -1496,16 +1511,16 @@ Olvassa le a kódot - https://firefox.com/pair oldalra]]> + https://firefox.com/pair oldalra]]> Leolvasásra kész Jelentkezzen be a kamerájával E-mail használata ehelyett - - Hozzon létre egyet, hogy szinkronizálja a Firefoxot az eszközök között.]]> - + + Hozzon létre egyet, hogy szinkronizálja a LeOSiumot az eszközök között.]]> + A %s leállítja a szinkronizációt a fiókjával, de nem töröl semmilyen böngészési adatot erről az eszközről. Kapcsolat bontása @@ -1522,7 +1537,7 @@ Fokozott követés elleni védelem Mostantól Teljes sütivédelem funkcióval, amely az eddigi legerősebb akadály a webhelyek közti nyomkövetők ellen. - + A %s megvédi a leggyakoribb nyomkövetőktől, amelyek követik az online tevékenységét. További tudnivalók @@ -1674,20 +1689,20 @@ Könnyedén hozzáadhatja ezt a weboldalt az eszköze Kezdőképernyőhöz, és azonnal elérheti azt, így gyorsabban böngészve, miközben alkalmazásszerű élményt kap. - Bejelentkezések és jelszavak + Bejelentkezések és jelszavak - Jelszavak + Jelszavak - Bejelentkezések és jelszavak mentése + Bejelentkezések és jelszavak mentése - Jelszavak mentése + Jelszavak mentése Kérdés mentés előtt Soha ne mentse - + Automatikus kitöltés a %1$sban - + Felhasználónevek és jelszavak kitöltése a weboldalakon a %1$s használata során. Automatikus kitöltés más alkalmazásokban @@ -1695,47 +1710,47 @@ Felhasználónevek és jelszavak kitöltése más alkalmazásokban az eszközén. - Bejelentkezés hozzáadása + Bejelentkezés hozzáadása - Jelszó hozzáadása + Jelszó hozzáadása - - Bejelentkezések szinkronizálása - Jelszavak szinkronizálása + Bejelentkezések szinkronizálása + + Jelszavak szinkronizálása - Bejelentkezések szinkronizálása az eszközök között + Bejelentkezések szinkronizálása az eszközök között - Jelszavak szinkronizálása az eszközök közt + Jelszavak szinkronizálása az eszközök közt - Mentett bejelentkezések + Mentett bejelentkezések - Mentett jelszavak + Mentett jelszavak - Itt jelennek meg a mentett vagy a %s böngészővel szinkronizált bejelentkezések. + Itt jelennek meg a mentett vagy a %s böngészővel szinkronizált bejelentkezések. - Itt jelennek meg a %sba mentett vagy szinkronizált jelszavak. Az összes mentett jelszó titkosítva van. + Itt jelennek meg a %sba mentett vagy szinkronizált jelszavak. Az összes mentett jelszó titkosítva van. - Tudjon meg többet a Syncről. + Tudjon meg többet a Syncről. - Tudjon meg többet a szinkronizálásról + Tudjon meg többet a szinkronizálásról Kivételek - Itt jelennek meg a nem mentett bejelentkezések és jelszavak. + Itt jelennek meg a nem mentett bejelentkezések és jelszavak. - A %s nem menti el a jelszavakat az itt felsorolt webhelyektől. + A %s nem menti el a jelszavakat az itt felsorolt webhelyektől. - A bejelentkezéseket és a jelszavak nem lesznek elmentve ezeknél a webhelyeknél. + A bejelentkezéseket és a jelszavak nem lesznek elmentve ezeknél a webhelyeknél. - A %s nem menti el a jelszavakat ezekről a webhelyektől. + A %s nem menti el a jelszavakat ezekről a webhelyektől. Összes kivétel törlése - Bejelentkezések keresése + Bejelentkezések keresése - Jelszavak keresése + Jelszavak keresése Webhely @@ -1763,17 +1778,17 @@ Jelszó elrejtése - Feloldás a mentett bejelentkezések megtekintéshez + Feloldás a mentett bejelentkezések megtekintéshez - Feloldás a mentett jelszavak megtekintéshez + Feloldás a mentett jelszavak megtekintéshez - Helyezze biztonságba bejelentkezéseit és jelszavait + Helyezze biztonságba bejelentkezéseit és jelszavait - Helyezze biztonságba a mentett jelszavait + Helyezze biztonságba a mentett jelszavait - Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett bejelentkezéseit és jelszavait, ha valaki hozzáfér az eszközéhez. + Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett bejelentkezéseit és jelszavait, ha valaki hozzáfér az eszközéhez. - Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett jelszavait, ha valaki hozzáfér az eszközéhez. + Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett jelszavait, ha valaki hozzáfér az eszközéhez. Később @@ -1790,10 +1805,10 @@ Legutóbbi használat - Bejelentkezések menü rendezése + Bejelentkezések menü rendezése - Jelszavak rendezése menü + Jelszavak rendezése menü @@ -1801,44 +1816,44 @@ Címek - Bankkártyák + Bankkártyák - Fizetési módok + Fizetési módok - Kártyák mentése és automatikus kitöltése + Kártyák mentése és automatikus kitöltése - Fizetési módok mentése és kitöltése + Fizetési módok mentése és kitöltése - Az adatok titkosítottak + Az adatok titkosítottak - A %s titkosítja az összes elmentett fizetési módot + A %s titkosítja az összes elmentett fizetési módot Kártyák szinkronizálása az eszközök közt Kártyák szinkronizálása - Bankkártya hozzáadása + Bankkártya hozzáadása - Kártya hozzáadása + Kártya hozzáadása - Mentett kártyák kezelése + Mentett kártyák kezelése - Kártyák kezelése + Kártyák kezelése Cím hozzáadása Címek kezelése - Címek mentése és automatikus kitöltése + Címek mentése és automatikus kitöltése - Címek mentése és kitöltése + Címek mentése és kitöltése - Olyan információk belevétele, mint a számok, e-mail-címek és szállítási címek + Olyan információk belevétele, mint a számok, e-mail-címek és szállítási címek - Telefonszámok és e-mail-címek belevétele + Telefonszámok és e-mail-címek belevétele Kártya hozzáadása @@ -1859,9 +1874,9 @@ Kártya törlése - Biztos, hogy törli ezt a bankkártyát? + Biztos, hogy törli ezt a bankkártyát? - Törli a kártyát? + Törli a kártyát? Törlés @@ -1875,24 +1890,24 @@ Mentett kártyák - Adjon meg egy érvényes bankkártyaszámot + Adjon meg egy érvényes bankkártyaszámot - Adjon meg egy érvényes kártyaszámot + Adjon meg egy érvényes kártyaszámot - Töltse ki ezt a mezőt + Töltse ki ezt a mezőt - Adjon hozzá egy nevet + Adjon hozzá egy nevet Feloldás a mentett kártyák megtekintéshez - Biztosítsa bankkártyáit + Biztosítsa bankkártyáit - Helyezze biztonságba a fizetési módjait + Helyezze biztonságba a fizetési módjait - Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett bankkártyáit, ha valaki hozzáfér az eszközéhez. + Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett bankkártyáit, ha valaki hozzáfér az eszközéhez. - Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett fizetési módjait, ha valaki hozzáfér az eszközéhez. + Állítsa be az eszköz lezárási mintáját, PIN-kódját vagy jelszavát, hogy megvédje a mentett fizetési módjait, ha valaki hozzáfér az eszközéhez. Beállítás most @@ -1901,10 +1916,10 @@ Eszköz feloldása - Oldja fel, hogy a tárolt bankkártya-információkat használja + Oldja fel, hogy a tárolt bankkártya-információkat használja - Oldja fel a zárolást a mentett fizetési módok használatához + Oldja fel a zárolást a mentett fizetési módok használatához Cím hozzáadása @@ -1912,11 +1927,13 @@ Címek kezelése - Utónév + Utónév - Egyéb név + Egyéb név - Vezetéknév + Vezetéknév + + Név Utca, házszám @@ -1941,9 +1958,9 @@ Cím törlése - Biztos, hogy törli ezt a címet? + Biztos, hogy törli ezt a címet? - Törli ezt a címet? + Törli ezt a címet? Törlés @@ -2041,49 +2058,49 @@ Szerkesztés - Biztos, hogy törölni szeretné ezt a bejelentkezést? + Biztos, hogy törölni szeretné ezt a bejelentkezést? - Biztos, hogy törli ezt a jelszót? + Biztos, hogy törli ezt a jelszót? Törlés Mégse - Bejelentkezési lehetőségek + Bejelentkezési lehetőségek - Jelszóbeállítások + Jelszóbeállítások - A bejelentkezés webcíméhéz használandó szerkeszthető szövegmező. + A bejelentkezés webcíméhéz használandó szerkeszthető szövegmező. - A webhely címének szerkeszthető szövegmezője. + A webhely címének szerkeszthető szövegmezője. - A bejelentkezés felhasználónevéhez használandó szerkeszthető szövegmező. + A bejelentkezés felhasználónevéhez használandó szerkeszthető szövegmező. - A felhasználónév szerkeszthető szövegmezője. + A felhasználónév szerkeszthető szövegmezője. - A bejelentkezés jelszavához használandó szerkeszthető szövegmező. + A bejelentkezés jelszavához használandó szerkeszthető szövegmező. - A jelszó szerkeszthető szövegmezője. + A jelszó szerkeszthető szövegmezője. - Módosítások mentése a bejelentkezéshez. + Módosítások mentése a bejelentkezéshez. - Változások mentése. + Változások mentése. - Szerkesztés + Szerkesztés - Jelszó szerkesztése + Jelszó szerkesztése - Új bejelentkezés hozzáadása + Új bejelentkezés hozzáadása - Jelszó hozzáadása + Jelszó hozzáadása - Jelszó szükséges + Jelszó szükséges - Adjon meg egy jelszót + Adjon meg egy jelszót - Felhasználónév szükséges + Felhasználónév szükséges - Adjon meg egy felhasználónevet + Adjon meg egy felhasználónevet Gépnév szükséges @@ -2108,14 +2125,14 @@ Másik eszköz csatlakoztatása. Hitelesítsen újra. - + Engedélyezze a lapok szinkronizálását. - Nincs egyetlen lap sem nyitva a Firefoxban a többi eszközén. + Nincs egyetlen lap sem nyitva a LeOSiumban a többi eszközén. - + Tekintse meg a más eszközökről származó lapok listáját. - + Jelentkezzen be a Syncbe @@ -2167,7 +2184,7 @@ Automatikus bezárás egy hónap után? - A Firefox bezárhatja azokat a lapokat, amelyeket az elmúlt hónapban nem nézett meg. + A LeOSium bezárhatja azokat a lapokat, amelyeket az elmúlt hónapban nem nézett meg. AUTOMATIKUS BEZÁRÁS BEKAPCSOLÁSA @@ -2175,8 +2192,8 @@ Automatikus bezárás engedélyezve - - Firefox Suggest + + LeOSium Suggest Google keresés @@ -2184,7 +2201,10 @@ %s keresés - Állítsa be a webhelyek, e-mailek és üzenetek hivatkozásait, hogy azok automatikusan a Firefoxban nyíljanak meg. + + Az alapértelmezett böngésző módosítása + + Állítsa be a webhelyek, e-mailek és üzenetek hivatkozásait, hogy azok automatikusan a LeOSiumban nyíljanak meg. Eltávolítás @@ -2193,7 +2213,7 @@ Kattintson a további részletekért - Navigálás fel + Navigálás fel Bezárás @@ -2208,7 +2228,7 @@ A motorháztető alatt: %s. - A Firefox család tagja. %s + A LeOSium család tagja. %s További tudnivalók @@ -2234,8 +2254,6 @@ Módosított értékelés - A nem megbízható értékelések eltávolítva - Megbízható értékelések alapján Kiemelések a legutóbbi értékelésekből @@ -2293,10 +2311,6 @@ Ha úgy látja, hogy a termék újra raktáron van, akkor jelentse, és akkor dolgozni fogunk az értékelések ellenőrzésén. Jelentés, hogy a termék raktáron van - - Értékelési minőség ellenőrzése - - Értékelési minőség ellenőrzése Értékelési minőség ellenőrzése (%s) @@ -2335,22 +2349,28 @@ Értékelési minőség ellenőrzése Próbálja ki megbízható termékértékelési útmutatónkat - + Vásárlás előtt nézze meg, hogy mennyire megbízhatók a %1$s termékértékelései. Az értékelés-ellenőrző, a %2$s egy kísérleti funkciója, közvetlenül a böngészőbe van építve. A következőkön is működik: %3$s és %4$s. - + Vásárlás előtt nézze meg, hogy mennyire megbízhatók a %1$s termékértékelései. Az értékelés-ellenőrző, a %2$s egy kísérleti funkciója, közvetlenül a böngészőbe van építve. A %1$s by Mozilla erejét használva segítünk elkerülni az elfogult és a nem hiteles értékeléseket. Az MI modellünket folyamatosan fejlesztjük, hogy megvédjük Önt vásárlás közben. %2$s További tudnivalók - Az „Igen, kipróbálom” kiválasztásával elfogadja a következőt: a %1$s by Mozilla %2$s és %3$s. + Az „Igen, kipróbálom” kiválasztásával elfogadja a következőt: a %1$s by Mozilla %2$s és %3$s. Az „Igen, kipróbálás” kiválasztásával elfogadja a %1$s dokumentumait: + + Az „Igen, kipróbálom” kiválasztásával elfogadja a következőket: a %1$s %2$s és a %3$s %4$s. + + Az „Igen, kipróbálom” kiválasztásával elfogadja a következőket: a %1$s %2$s és a %3$s %4$s. - adatvédelmi irányelvei + adatvédelmi irányelvei Adatvédelmi irányelvek + + adatvédelmi nyilatkozatota felhasználási feltételei @@ -2408,7 +2428,7 @@ hivatkozás megnyitása, hogy többet tudjon meg a gyűjteményről a cikk elolvasása - + hivatkozás megnyitása, hogy többet tudjon meg %s, címsor @@ -2423,11 +2443,15 @@ Lefordítja az oldalt? + + Az oldal lefordítva %1$s nyelvről %2$s nyelvre Próbálja ki a privát fordításokat a %1$sban Adatvédelmi okokból a fordítások sosem hagyják el az eszközét. Hamarosan új nyelvek és fejlesztések érkeznek! %1$s - + További tudnivalók Fordítás erről: @@ -2435,6 +2459,8 @@ Fordítás erre: Most nem + + Eredeti megjelenítése Kész @@ -2457,6 +2483,16 @@ További tudnivalók + + Fordítás… + + + Nyelv letöltése adattakarékos módban (%1$s)? + + Fordítási beállítások diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 69c67a03..7e9a4445 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -69,7 +69,7 @@ Այս սարքի վրա հետքեր չթողնել %1$s-ը ջնջում է ձեր թխուկները, պատմությունը և կայքի տվյալները, երբ փակում եք ձեր բոլոր մասնավոր պատուհանները: %2$s Թարգմանել էջը + + Էջը թարգմանվել է %1$s-ից %2$s: + Ընտրված լեզուն @@ -328,13 +333,23 @@ - Firefox֊ի գաղտնիության ծանուցում - + LeOSium֊ի գաղտնիության ծանուցում + + Իմացեք ավելին մեր գաղտնիության ծանուցման մեջ Մենք սիրում ենք ձեզ ապահով պահել + + Պարզեք, թե ինչու են միլիոնավոր մարդիկ սիրում LeOSium-ը + + Անվտանգ զննարկում ավելի շատ ընտրանքներով Մեր շահույթ չհետապնդող զննարկիչն օգնում է դադարեցնել ընկերությունների կողմից համացանցում ձեզ գաղտնի հետևելը: + Ավելի քան 100 միլիոն մարդ պաշտպանում է իր գաղտնիությունը՝ ընտրելով ոչ առևտրային կազմակերպության կողմից աջակցվող զննիչ: + + Հայտնի հետագծիչնե՞ր: Ինքնաշխատ արգելափակվում են: Ընդլայնումնե՞ր; Փորձե՞ք բոլոր 700-ը։ PDF ֆայլե՞ր: Մեր ներկառուցված ընթերցողը հեշտացնում է դրանց կառավարումը: + Մեր շահույթ չհետապնդող զննարկիչը օգնում է դադարեցնել ընկերություններին գաղտնի հետևել ձեզ համացանցում:\n\nԻմացեք ավելին մեր գաղտնիության ծանուցման մեջ: @@ -346,32 +361,32 @@ Մնացեք գաղտնագրված, երբ ցատկում եք սարքերի միջև - Երբ մուտք եք գործել և համաժամացվել, դուք ավելի ապահով եք: Firefox-ը կոդավորում է ձեր գաղտնաբառերը, էջանիշները և ավելին: + Note: The word "LeOSium" should NOT be translated --> + Երբ մուտք եք գործել և համաժամացվել, դուք ավելի ապահով եք: LeOSium-ը կոդավորում է ձեր գաղտնաբառերը, էջանիշները և ավելին: Մուտք գործել Ոչ հիմա - Ծանուցումներն օգնում են ձեզ ավելին անել Firefox-ի հետ + Note: The word "LeOSium" should NOT be translated --> + Ծանուցումներն օգնում են ձեզ ավելին անել LeOSium-ի հետ - Ապահով ուղարկեք ներդիրներ ձեր սարքերի միջև և հայտնաբերեք գաղտնիության այլ գործառույթներ Firefox-ում: + Note: The word "LeOSium" should NOT be translated --> + Ապահով ուղարկեք ներդիրներ ձեր սարքերի միջև և հայտնաբերեք գաղտնիության այլ գործառույթներ LeOSium-ում: Միացնել ծանուցումները Ոչ հիմա - Փորձեք Firefox-ի որոնման վիդջեթը + Note: The word "LeOSium" should NOT be translated --> + Փորձեք LeOSium-ի որոնման վիդջեթը - Եթե Firefox-ը ձեր հիմնական էկրանին լինի, դուք հեշտությամբ մուտք կունենաք գաղտնիությունը առաջին տեղում զննիչին, որն արգելափակում է միջկայքային հետագծումները: + Note: The word "LeOSium" should NOT be translated --> + Եթե LeOSium-ը ձեր հիմնական էկրանին լինի, դուք հեշտությամբ մուտք կունենաք գաղտնիությունը առաջին տեղում զննիչին, որն արգելափակում է միջկայքային հետագծումները: - Ավելացնել Firefox վիդջեթ + Note: The word "LeOSium" should NOT be translated --> + Ավելացնել LeOSium վիդջեթ Ոչ հիմա @@ -411,10 +426,10 @@ Առաջարկություններ որոնիչներից Հասցեի տողի նախապատվություններ - - Հասցեների տող - Firefox-ն առաջարկում է - - Իմացեք ավելին Firefox-ի առաջարկների մասին + + Հասցեների տող - LeOSium-ն առաջարկում է + + Իմացեք ավելին LeOSium-ի առաջարկների մասին Գնահատեք Google Play-ում Ինքնալրացում - + Առաջարկություններ հովանավորներից - Աջակցեք %1$s-ին երբեմն հովանավորվող առաջարկներով - Առաջարկներ %1$s-ից - + Ստացեք առաջարկներ համացանցից՝ կապված ձեր որոնման հետ Բացել հղումները հավելվածներում @@ -641,7 +656,7 @@ Իմանալ ավելին - + Դասական %s Գեղարվեստական շարք @@ -659,8 +674,8 @@ Այժմ հասանելի են նոր հավելումներ - - Ստուգեք 100+ նոր ընդլայնումներ, որոնք թույլ են տալիս Firefox-ը դարձնել ձեր սեփականը: + + Ստուգեք 100+ նոր ընդլայնումներ, որոնք թույլ են տալիս LeOSium-ը դարձնել ձեր սեփականը: Ուսումնասիրեք հավելումները @@ -688,9 +703,9 @@ Էջանիշեր - Մուտքանուններ + Մուտքանուններ - Գաղտնաբառեր + Գաղտնաբառեր Բացել ներդիրներ @@ -716,9 +731,9 @@ %1$s-ը %2$s %3$s-ում - Բանկային քարտեր + Բանկային քարտեր - Վճարամիջոցներ + Վճարամիջոցներ Հասցեներ @@ -726,7 +741,7 @@ Ստացված ներդիրներ - Ծանուցումներ Firefox-ի այլ սարքերից ստացված ներդիրների վերաբերյալ: + Ծանուցումներ LeOSium-ի այլ սարքերից ստացված ներդիրների վերաբերյալ: Ներդիր է ստացվել @@ -907,7 +922,7 @@ Հեռացնել Գործուն - + %1$s-ը կարող է ժամանակ առ ժամանակ տեղադրել և աշխատեցնել ուսումնասիրություններ: Իմանալ ավելին @@ -1283,7 +1298,7 @@ Կապակցվել այլ սարքի - Ներդիր ուղարկելու համար մուտք գործեք Firefox առնվազն մեկ այլ սարքի վրա: + Ներդիր ուղարկելու համար մուտք գործեք LeOSium առնվազն մեկ այլ սարքի վրա: Հասկացա @@ -1310,10 +1325,10 @@ - Firefox-ը արագ է և մասնավոր + LeOSium-ը արագ է և մասնավոր - Դարձրեք Firefox-ը հիմնական դիտարկիչ + Դարձրեք LeOSium-ը հիմնական դիտարկիչ Փորձեք Գաղտնի դիտարկումը - Խնդրում ենք օգնել Firefox-ն ավելի լավը դարձնել՝ մասնակցելով կարճ հարցման: + Խնդրում ենք օգնել LeOSium-ն ավելի լավը դարձնել՝ մասնակցելով կարճ հարցման: Անցեք հարցում @@ -1481,16 +1496,16 @@ Սկանավորել կոդը - https://firefox.com/pair]]> + https://firefox.com/pair]]> Պատրաստ է սկանավորել Մուտք գործեք ձեր տեսախցիկի հետ Փոխարենը օգտ. էլ. փոստ - - Ստեղծեք նորը՝ Firefox-ը տարբեր սարքերի միջև համաժամեցնելու համար:]]> - + + Ստեղծեք նորը՝ LeOSium-ը տարբեր սարքերի միջև համաժամեցնելու համար:]]> + %s-ը կդադարեցնի համաժամացումը ձեր հաշվի հետ, բայց չի ջնջի այս սարքի ձեր զննարկման որևէ տվյալ։ Ապակապակցել @@ -1506,7 +1521,7 @@ Ուժեղացված հետագծման պաշտպանություն Այժմ գործում է Total Cookie Protection-ը, որը մեր ամենահզոր պատնեշն է միջկայքի հետագծերի դեմ: - + %s-ը պաշտպանում է ամենատարածված հետագծիչներից, որոնք հետևում են այն ամենին, ինչ որ անում եք առցանց: Իմանալ ավելին @@ -1658,20 +1673,20 @@ Հեշտությամբ կարող եք ավելացնել այս կայքը ձեր հեռախոսի Տնային էկրանին՝ ակնթարթորեն մատչելու և արագ դիտարկելու համար: - Մուտքանուններ և գաղտնաբառեր + Մուտքանուններ և գաղտնաբառեր - Գաղտնաբառեր + Գաղտնաբառեր - Պահպանել մուտքանունները և գաղտնաբառերը + Պահպանել մուտքանունները և գաղտնաբառերը - Պահել գաղտնաբառերը + Պահել գաղտնաբառերը Հարցնել պահպանելիս Երբեք չպահպանել - + Ինքնալցնել %1$s-ում - + %1$s-ը օգտագործելիս կայքերում լցրեք և պահեք օգտվողի անունները և գաղտնաբառերը: Ինքնալցնել այլ հավելվածներում @@ -1679,47 +1694,47 @@ Լցրեք օգտվողի անուններն ու գաղտնաբառերը ձեր սարքի այլ հավելվածներում: - Ավելացնել մուտքագրում + Ավելացնել մուտքագրում - Հավելել գաղտնաբառ + Հավելել գաղտնաբառ - - Համաժամեցնել մուտքանունները - Համաժամեցնել գաղտնաբառերը + Համաժամեցնել մուտքանունները + + Համաժամեցնել գաղտնաբառերը - Համաժամեցնել մուտքագրումները սարքերի միջև + Համաժամեցնել մուտքագրումները սարքերի միջև - Համաժամեցնել գաղտնաբառերը սարքերի միջև + Համաժամեցնել գաղտնաբառերը սարքերի միջև - Պահպանված մուտքանուններ + Պահպանված մուտքանուններ - Պահված գաղտնաբառեր + Պահված գաղտնաբառեր - %s-ի հետ ձեր պահպանած կամ համաժամեցրած մուտքագրումները կցուցադրվեն այստեղ: + %s-ի հետ ձեր պահպանած կամ համաժամեցրած մուտքագրումները կցուցադրվեն այստեղ: - Այն գաղտնաբառերը, որոնք դուք պահում կամ համաժամացնում եք %s-ի հետ, կցուցադրվեն այստեղ: Ձեր պահած բոլոր գաղտնաբառերը գաղտնագրված են: + Այն գաղտնաբառերը, որոնք դուք պահում կամ համաժամացնում եք %s-ի հետ, կցուցադրվեն այստեղ: Ձեր պահած բոլոր գաղտնաբառերը գաղտնագրված են: - Իմանալ ավելին համաժամեցման մասին: + Իմանալ ավելին համաժամեցման մասին: - Իմանալ ավելին Սինքի մասին + Իմանալ ավելին Սինքի մասին Բացառություններ - Մուտքանունները և գաղտնաբառերը, որոնք չեն պահպանվել, կցուցադրվեն այստեղ: + Մուտքանունները և գաղտնաբառերը, որոնք չեն պահպանվել, կցուցադրվեն այստեղ: - %s-ը չի պահի այստեղ թվարկված կայքերի գաղտնաբառերը: + %s-ը չի պահի այստեղ թվարկված կայքերի գաղտնաբառերը: - Մուտքանունները և գաղտնաբառերը չեն պահպանվի այս կայքերի համար: + Մուտքանունները և գաղտնաբառերը չեն պահպանվի այս կայքերի համար: - %s-ը չի պահի այս կայքերի գաղտնաբառերը: + %s-ը չի պահի այս կայքերի գաղտնաբառերը: Ջնջել բոլոր բացառությունները - Որոնել մուտքանուններ + Որոնել մուտքանուններ - Որոնել գաղտնաբառեր + Որոնել գաղտնաբառեր Կայք @@ -1748,17 +1763,17 @@ Թաքցնել գաղտնաբառը - Ապակողպեք՝ դիտելու համար պահպանված մուտքանունները + Ապակողպեք՝ դիտելու համար պահպանված մուտքանունները - Ապակողպեք՝ դիտելու համար պահված գաղտնաբառերը + Ապակողպեք՝ դիտելու համար պահված գաղտնաբառերը - Անվտանգ դարձրեք ձեր մուտքանունները և գաղտնաբառերը + Անվտանգ դարձրեք ձեր մուտքանունները և գաղտնաբառերը - Անվտանգ դարձրեք ձեր պահված գաղտնաբառերը + Անվտանգ դարձրեք ձեր պահված գաղտնաբառերը - Ստեղծեք սարքի կողպեքի նմուշ, PIN կամ գաղտնաբառ՝ ձեր պահպանված մուտքանունները և գաղտնաբառերը մուտք գործելուց պաշտպանելու համար, եթե ձեր սարքը ուրիշի ձեռքն ընկնի: + Ստեղծեք սարքի կողպեքի նմուշ, PIN կամ գաղտնաբառ՝ ձեր պահպանված մուտքանունները և գաղտնաբառերը մուտք գործելուց պաշտպանելու համար, եթե ձեր սարքը ուրիշի ձեռքն ընկնի: - Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու պահված գաղտնաբառերն այն դեպքում, եթե որևէ մեկը ևս մուտք ունենա Ձեր սարքին: + Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու պահված գաղտնաբառերն այն դեպքում, եթե որևէ մեկը ևս մուտք ունենա Ձեր սարքին: Հետո @@ -1776,10 +1791,10 @@ Վերջին օգտագործվածը - Տեսակավորել մուտագրումների ցանկը + Տեսակավորել մուտագրումների ցանկը - Տեսակավորել գաղտնաբառերի ցանկը + Տեսակավորել գաղտնաբառերի ցանկը @@ -1787,42 +1802,42 @@ Հասցեներ - Բանկային քարտեր + Բանկային քարտեր - Վճարամիջոցներ + Վճարամիջոցներ - Պահել և ինքնալրացնել քարտերը + Պահել և ինքնալրացնել քարտերը - Պահել և լրացնել վճարամիջոցները + Պահել և լրացնել վճարամիջոցները - Տվյալները գաղտնագրված են + Տվյալները գաղտնագրված են - %s-ը գաղտնագրում է ձեր պահած բոլոր վճարամիջոցները + %s-ը գաղտնագրում է ձեր պահած բոլոր վճարամիջոցները Համաժամեցնել քարտերը սարքերի միջև Համաժամեցնել քարտերը - Ավելացնել բանկային քարտ + Ավելացնել բանկային քարտ - Հավելել քարտ + Հավելել քարտ - Կառավարել պահված քարտերը + Կառավարել պահված քարտերը - Կառավարել քարտերը + Կառավարել քարտերը Ավելացնել հասցե Կառավարեք հասցեները - Պահել և ինքնալրացնել քարտերը + Պահել և ինքնալրացնել քարտերը - Պահել և լրացնել հասցեները + Պահել և լրացնել հասցեները - Ներառել տեղեկություններ, ինչպիսիք են համարները, էլ.փոստը և առաքման հասցեները + Ներառել տեղեկություններ, ինչպիսիք են համարները, էլ.փոստը և առաքման հասցեները - Ներառում է հեռախոսահամարներ և էլ. փոստի հասցեներ + Ներառում է հեռախոսահամարներ և էլ. փոստի հասցեներ Ավելացնել քարտ @@ -1843,9 +1858,9 @@ Ջնջել քարտը - Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս բանկային քարտը: + Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս բանկային քարտը: - Ջնջե՞լ քարտը + Ջնջե՞լ քարտը Ջնջել @@ -1859,24 +1874,24 @@ Պահպանված քարտեր - Մուտքագրեք բանկային վավեր քարտի համար + Մուտքագրեք բանկային վավեր քարտի համար - Մուտքագրեք ճիշտ քարտի համար + Մուտքագրեք ճիշտ քարտի համար - Լրացրեք այս դաշտը + Լրացրեք այս դաշտը - Հավելել անուն + Հավելել անուն Ապակողպեք՝ դիտելու համար պահպանված քարտերը - Անվտանգ դարձրեք ձեր բանկային քարտերը + Անվտանգ դարձրեք ձեր բանկային քարտերը - Անվտանգ դարձրեք ձեր պահած վճարամիջոցները + Անվտանգ դարձրեք ձեր պահած վճարամիջոցները - Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու պահված բանկային քարտերը այն դեպքում, եթե որևէ մեկը ևս մուտք ունի Ձեր սարքին: + Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու պահված բանկային քարտերը այն դեպքում, եթե որևէ մեկը ևս մուտք ունի Ձեր սարքին: - Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու ձեր քարտերն այն դեպքում, եթե որևէ մեկը ևս մուտք ունենա Ձեր սարքին: + Տեղակայեք սարքի կողպման նախշ, PIN կամ գաղտնաբառ՝ պաշտպանելու ձեր քարտերն այն դեպքում, եթե որևէ մեկը ևս մուտք ունենա Ձեր սարքին: Տեղակայել հիմա @@ -1884,10 +1899,10 @@ Ապակողպեք ձեր սարքը - Ապակողպեք՝ օգտագործելու համար բանկային քարտերի պահված տեղեկությունները + Ապակողպեք՝ օգտագործելու համար բանկային քարտերի պահված տեղեկությունները - Ապակողպեք՝ պահված վճարամիջոցն օգտագործելու համար + Ապակողպեք՝ պահված վճարամիջոցն օգտագործելու համար Ավելացնել հասցե @@ -1895,11 +1910,13 @@ Կառավարեք հասցեները - Անուն + Անուն - Հայրանուն + Հայրանուն - Ազգանուն + Ազգանուն + + Անուն Փողոցի հասցե @@ -1923,9 +1940,9 @@ Ջնջել հասցեն - Ջնջե՞լ այս հասցեն: + Ջնջե՞լ այս հասցեն: - Ջնջե՞լ այս հասցեն: + Ջնջե՞լ այս հասցեն: Ջնջել @@ -2022,49 +2039,49 @@ Խմբագրել - Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս մուտքանունը: + Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս մուտքանունը: - Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս գաղտնաբառը: + Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս գաղտնաբառը: Ջնջել Չեղարկել - Մուտքի ընտրանքներ + Մուտքի ընտրանքներ - Գաղտնաբառի ընտրանքներ + Գաղտնաբառի ընտրանքներ - Խմբագրելի տեքստի դաշտը մուտքի վեբ հասցեի համար: + Խմբագրելի տեքստի դաշտը մուտքի վեբ հասցեի համար: - Խմբագրելի տեքստի դաշտ կայքի հասցեի համար: + Խմբագրելի տեքստի դաշտ կայքի հասցեի համար: - Խմբագրելի տեքստի դաշտը մուտք գործողի համար: + Խմբագրելի տեքստի դաշտը մուտք գործողի համար: - Խմբագրելի տեքստի դաշտ օգտվողի անվան համար: + Խմբագրելի տեքստի դաշտ օգտվողի անվան համար: - Խմբագրելի տեքստի դաշտը մուտքի գաղտնաբառի համար: + Խմբագրելի տեքստի դաշտը մուտքի գաղտնաբառի համար: - Խմբագրելի տեքստի դաշտ գաղտնաբառի համար: + Խմբագրելի տեքստի դաշտ գաղտնաբառի համար: - Պահպանել փոփոխությունները մուտքագրման համար: + Պահպանել փոփոխությունները մուտքագրման համար: - Պահել փոփոխությունները: + Պահել փոփոխությունները: - Խմբագրել + Խմբագրել - Խմբագրել գաղտնաբառը + Խմբագրել գաղտնաբառը - Հավելել նոր մուտքագրում + Հավելել նոր մուտքագրում - Հավելել գաղտնաբառ + Հավելել գաղտնաբառ - Գաղտնաբառ է պահանջվում + Գաղտնաբառ է պահանջվում - Մուտքագրեք գաղտնաբառ + Մուտքագրեք գաղտնաբառ - Օգտվողի անունը պարտադիր է + Օգտվողի անունը պարտադիր է - Մուտքագրեք օգտվողի անունը + Մուտքագրեք օգտվողի անունը Հոսթի անունը պարտադիր է @@ -2089,14 +2106,14 @@ Կապակցել այլ սարքի: Խնդրում ենք վերահաստատել: - + Խնդրում ենք միացնել ներդիրի համաժամացումը: - Դուք չունեք բացված որևէ ներդիր Firefox-ի ձեր մյուս սարքերում: - + Դուք չունեք բացված որևէ ներդիր LeOSium-ի ձեր մյուս սարքերում: + Դիտեք այլ սարքերում ձեր ներդիրների ցանկը: - + Մուտք գործեք՝ համաժամեցնելու համար @@ -2148,7 +2165,7 @@ Ինքնափակե՞լ մեկ ամսից: - Firefox-ը կարող է փակել ներդիրները, որոնք չեք դիտել վերջին ամսում: + LeOSium-ը կարող է փակել ներդիրները, որոնք չեք դիտել վերջին ամսում: ՄԻԱՑՆԵԼ ԻՆՔՆԱՓԱԿՈՒՄԸ @@ -2156,8 +2173,8 @@ Ինքնափակումը միացված է - - Firefox-ի առաջարկ + + LeOSium-ի առաջարկ Google-ի որոնում @@ -2168,7 +2185,7 @@ Փոխարկեք ձեր սկզբնադիր զննարկիչը - Կայեք հղումներ կայքերից, էլ. նամակներից և հաղորդագրություններից, որոնք ինքնաբար կերպով կբացվեն Firefox-ում: + Կայեք հղումներ կայքերից, էլ. նամակներից և հաղորդագրություններից, որոնք ինքնաբար կերպով կբացվեն LeOSium-ում: Հեռացնել @@ -2177,7 +2194,7 @@ Սեղմեք` մանրամասների համար - Նավարկել վերև + Նավարկել վերև Փակել @@ -2192,7 +2209,7 @@ Աշխատում է %s-ի կողմից: - Firefox ընտանիքի մի մասը: %s + LeOSium ընտանիքի մի մասը: %s Իմանալ ավելին @@ -2218,8 +2235,6 @@ Ճշգրտված վարկանիշ - Անվստահելի կարծիքները հեռացվեցին - Հուսալի կարծիքների հիման վրա Գունանշումներ վերջին կարծիքներից @@ -2276,10 +2291,6 @@ Եթե տեսնեք, որ այս ապրանքը կրկին պահեստում է, հաղորդեք դրա մասին, և մենք կաշխատենք ստուգել ակնարկները: Զեկուցված ապրանքը պահեստում է - - Կարծիքի որակի ստուգում - - Կարծիքի որակի ստուգում Կարծիքի որակի ստուգում (%s) @@ -2316,9 +2327,9 @@ Ստուգեք կարծիքի որակը Փորձեք արտադրանքի կարծիքների մեր վստահելի ուղեցույցը - + Գնելուց առաջ տեսեք, թե որքան հուսալի են արտադրանքի կարծիքները %1$s-ում: Կարծիքների ստուգիչը՝ %2$s-ի փորձարարական յուրահատկությունն է և ներկառուցված է հենց զննիչում: Այն աշխատում է նաև %3$s-ի և %4$s-ի վրա: - + Գնելուց առաջ տեսեք, թե որքան հուսալի են արտադրանքի կարծիքները %1$s-ում: Կարծիքների ստուգիչը %2$s-ի փորձարարական յուրահատկությունն է և ներկառուցված է հենց զննիչում: Օգտագործելով %1$s-ի հզորությունը Mozilla-ի կողմից՝ մենք օգնում ենք ձեզ խուսափել կողմնակալ և ոչ վավերական կարծիքներից: Մեր AI մոդելը միշտ բարելավվում է՝ պաշտպանելու ձեզ գնումներ կատարելիս: %2$s @@ -2326,13 +2337,19 @@ Իմանալ ավելին - Ընտրելով «Այո, փորձիր»՝ դուք համաձայնում եք %1$s-ը Mozilla-ի կողմիցի %2$s-ին և %3$s-ին: + Ընտրելով «Այո, փորձիր»՝ դուք համաձայնում եք %1$s-ը Mozilla-ի կողմիցի %2$s-ին և %3$s-ին: Ընտրելով «Այո, փորձիր»՝ դուք ընդունում եք %1$s-ը. + + Ընտրելով «Այո, փորձիր»՝ դուք համաձայնվում եք %1$s-ի %2$s-ին և %3$s-ի %4$s-ին: + + Ընտրելով «Այո, փորձիր»՝ դուք համաձայնվում եք %1$s-ի %2$s-ին և %3$s-ի %4$s-ին: - գաղտնիության դրույթներ + գաղտնիության դրույթներ Գաղտնիության դրույթներ + + գաղտնիության ծանուցում օգտվելու կանոններ @@ -2388,7 +2405,7 @@ բացեք հղումը՝ այս հավաքածուի մասին ավելին իմանալու համար կարդալ հոդվածը - + բացեք հղումը՝ ավելին իմանալու համար %s, վերնագիր @@ -2403,11 +2420,15 @@ Թարգմանե՞լ այս էջը։ + + Էջը թարգմանվել է %1$s-ից %2$s: Փորձեք անձնական թարգմանությունները %1$s-ով Ձեր գաղտնիության համար թարգմանությունները երբեք չեն լքում ձեր սարքը: Սպասեք նոր լեզուների և բարելավումների: %1$s - + Իմանալ ավելին Թարգմանել հետևյալից՝ @@ -2415,6 +2436,8 @@ Թարգմանել հետևյալով՝ Ոչ հիմա + + Ցուցադրել բնօրինակը Պատրաստ է @@ -2437,6 +2460,15 @@ Իմանալ ավելին + + Թարգմանում է… + + Ներբեռնե՞լ լեզուն տվյալների պահման կերպում (%1$s): + + Թարգմանության ընտրանքներ diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 7a15b3f6..5942221f 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -72,7 +72,7 @@ %1$s dele tu cookies, chronologia e le datos del sitos web quando tu claude tote tu schedas private. %2$s Traducer le pagina + + Pagina traducite ab %1$s a %2$s. + Lingua seligite @@ -335,13 +340,23 @@ - Aviso de confidentialitate de Firefox - + Aviso de confidentialitate de LeOSium + + Lege nostre aviso de confidentialitate A nos place mantener te secur + + Discoperi perque milliones ama LeOSium + + Navigation secur con plus optiones Nostre navigator supportate per un organisation sin fin d lucro adjuta stoppar le companias de sequer secretemente tu movimentos circum le web. + Plus que 100 milliones de personas protege lor confidentialitate seligente un navigar supportate per un organisation a fin non lucrative. + + Traciatores note? Blocate automaticamente. Extensiones? Prova tote le 700. PDFs? Nostre lector integrate los rende facile a gerer. + Nostre navigator supportate per un organisation sin fin de lucro adjuta stoppar le companias de sequer te secretemente per le Web.\n\nSape plus in nostre Aviso de confidentialitate. @@ -353,33 +368,33 @@ Resta cryptate dum tu passa inter tu apparatos - Post que tu accedeva e synchronisava, tu es plus secur. Firefox crypta tu contrasignos, marcapaginas, e altero ancora. + Note: The word "LeOSium" should NOT be translated --> + Post que tu accedeva e synchronisava, tu es plus secur. LeOSium crypta tu contrasignos, marcapaginas, e altero ancora. Aperir session Non ora - Le notificationes te adjuta a star plus secur con Firefox + Note: The word "LeOSium" should NOT be translated --> + Le notificationes te adjuta a star plus secur con LeOSium - Invia schedas inter tu apparatos e discoperi altere functiones private in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Invia schedas inter tu apparatos e discoperi altere functiones private in LeOSium. Activar notificationes Non ora - Prova le widget de recerca de Firefox + Note: The word "LeOSium" should NOT be translated --> + Prova le widget de recerca de LeOSium - Con Firefox sur tu pagina initial, tu habera facile accesso al navigator de maxime discretion que bloca traciatores inter-sitos. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium sur tu pagina initial, tu habera facile accesso al navigator de maxime discretion que bloca traciatores inter-sitos. - Adde le widget Firefox + Note: The word "LeOSium" should NOT be translated --> + Adde le widget LeOSium Non ora @@ -418,10 +433,10 @@ Suggestiones ab motores de recerca Preferentias del barra de adresses - - Barra de adresses - Firefox Suggest - - Saper plus re Firefox Suggest + + Barra de adresses - LeOSium Suggest + + Saper plus re LeOSium Suggest Frequentia sur Google Play Auto-completar URLs - + Suggestiones de sponsors - Supportar %1$s con occasional suggestiones sponsorisate - Suggestiones de %1$s - + Recipe suggestiones del web relative a tu recerca Aperir ligamines in apps @@ -652,7 +667,7 @@ Pro saper plus - + %s classic Series de artista @@ -670,8 +685,8 @@ Nove additivos ora disponibile - - Discoperi plus que 100 nove extensiones que te permitte de personalisar Firefox. + + Discoperi plus que 100 nove extensiones que te permitte de personalisar LeOSium. Discoperi additivos @@ -699,9 +714,9 @@ Marcapaginas - Credentiales + Credentiales - Contrasignos + Contrasignos Schedas aperte @@ -727,9 +742,9 @@ %1$s sur %2$s %3$s - Cartas de credito + Cartas de credito - Methodos de pagamento + Methodos de pagamento Adresses @@ -737,7 +752,7 @@ Schedas recipite - Notificationes pro schedas recipite de altere apparatos Firefox. + Notificationes pro schedas recipite de altere apparatos LeOSium. @@ -935,7 +950,7 @@ Remover Active - + De tempore in tempore %1$s pote installar e conducer studios. Saper plus @@ -1323,7 +1338,7 @@ Connecter un altere apparato - Pro inviar un scheda, aperi session in Firefox sur al minus un altere apparato. + Pro inviar un scheda, aperi session in LeOSium sur al minus un altere apparato. Comprendite @@ -1351,10 +1366,10 @@ - Firefox es veloce e private + LeOSium es veloce e private - Rende Firefox tu navigator predefinite + Rende LeOSium tu navigator predefinite Essaya le navigation private @@ -1375,7 +1390,7 @@ - Per favor adjuta a render Firefox melior redigente un breve questionario. + Per favor adjuta a render LeOSium melior redigente un breve questionario. Participar al questionario @@ -1526,16 +1541,16 @@ Scannar le codice - https://firefox.com/pair]]> + https://firefox.com/pair]]> Preste a scannar Accede con tu camera Alteremente usa un email - - Crea unpro synchronisar Firefox inter apparatos.]]> - + + Crea unpro synchronisar LeOSium inter apparatos.]]> + %s cessara synchronisar con tu conto, ma non delera ulle tu datos de navigation sur iste apparato. Disconnecter @@ -1552,7 +1567,7 @@ Protection antitraciamento reinfortiate Ora con le Protection total del cookies, nostre ancora plus potente barriera contra traciatores inter-sitos. - + %s te protege contra multe del traciatores commun que seque lo que tu face in linea. @@ -1707,22 +1722,22 @@ Tu pote facilemente adder iste sito web al Pagina initial de tu apparato pro haber accesso instantanee e navigar plus veloce con un experientia simile al app. - Credentiales e contrasignos + Credentiales e contrasignos - Contrasignos + Contrasignos - Salvar credentiales e contrasignos + Salvar credentiales e contrasignos - Salvar contrasignos + Salvar contrasignos Demandar pro salvar Non salvar jammais - + Plenar %1$s - + Plenar e salvar nomines de usator e contrasignos in sitos web usante %1$s. Plenar in altere apps @@ -1731,47 +1746,47 @@ Plenar nomines de usator e contrasignos in altere apps sur tu apparato. - Adder credentiales + Adder credentiales - Adder contrasigno + Adder contrasigno - - Synchronisar credentiales - Synchronisar contrasignos + Synchronisar credentiales + + Synchronisar contrasignos - Synchronisar credentiales inter le apparatos + Synchronisar credentiales inter le apparatos - Synchronisar contrasignos inter apparatos + Synchronisar contrasignos inter apparatos - Credentiales salvate + Credentiales salvate - Contrasignos salvate + Contrasignos salvate - Le credentiales que tu salva o synchronisa a in %s apparera hic. + Le credentiales que tu salva o synchronisa a in %s apparera hic. - Le contrasignos que tu salva o synchronisa in %s sera listate ci. Tote le contrasignos que tu salva es cryptate. + Le contrasignos que tu salva o synchronisa in %s sera listate ci. Tote le contrasignos que tu salva es cryptate. - Apprender plus re Sync. + Apprender plus re Sync. - Apprender plus re le synchronisation + Apprender plus re le synchronisation Exceptiones - Credentiales e contrasignos que non es salvate essera monstrate hic. + Credentiales e contrasignos que non es salvate essera monstrate hic. - %s non salvara le password pro le sitos ci listate. + %s non salvara le password pro le sitos ci listate. - Credentiales e contrasignos non sera salvate pro iste sitos. + Credentiales e contrasignos non sera salvate pro iste sitos. - %s non salvara le contrasignos pro iste sitos. + %s non salvara le contrasignos pro iste sitos. Deler tote le exceptiones - Cercar credentiales + Cercar credentiales - Cercar contrasignos + Cercar contrasignos Sito @@ -1799,17 +1814,17 @@ Celar contrasigno - Disbloca pro vider tu credentiales salvate + Disbloca pro vider tu credentiales salvate - Disbloca pro vider tu contrasignos salvate + Disbloca pro vider tu contrasignos salvate - Assecurar tu credentiales e contrasignos + Assecurar tu credentiales e contrasignos - Protege tu contrasignos salvate + Protege tu contrasignos salvate - Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu credentiales e contrasignos salvate de esser accedite, si alcuno altere ha tu apparato. + Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu credentiales e contrasignos salvate de esser accedite, si alcuno altere ha tu apparato. - Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu contrasignos de esser accedite, si alcuno altere ha tu apparato. + Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu contrasignos de esser accedite, si alcuno altere ha tu apparato. Plus tarde @@ -1827,10 +1842,10 @@ Ultimemente usate - Ordinar menu de credentiales + Ordinar menu de credentiales - Ordinar le menu del contrasignos + Ordinar le menu del contrasignos @@ -1838,45 +1853,45 @@ Adresses - Cartas de credito + Cartas de credito - Methodos de pagamento + Methodos de pagamento - Gerer le cartas salvate + Gerer le cartas salvate - Salvar e compilar methodos de pagamento automaticamente + Salvar e compilar methodos de pagamento automaticamente - Datos es cryptate + Datos es cryptate - %s crypta tote tu methodos de pagamento salvate + %s crypta tote tu methodos de pagamento salvate Synchronisar cartas inter apparatos Synchronisar cartas - Adde un carta de credito + Adde un carta de credito - Adder carta + Adder carta - Gerer le cartas salvate + Gerer le cartas salvate - Gerer le cartas + Gerer le cartas Adder adresse Gerer adresses - Salvar e autoplenar adresses + Salvar e autoplenar adresses - Salvar e compilar automaticamente adresses + Salvar e compilar automaticamente adresses - Includer informationes como numeros, email e adresses de expedition + Includer informationes como numeros, email e adresses de expedition - Include numeros de telephono e adresses email + Include numeros de telephono e adresses email Adder carta @@ -1897,9 +1912,9 @@ Deler carta - Desira tu vermente deler iste carta de credito? + Desira tu vermente deler iste carta de credito? - Deler carta? + Deler carta? Deler @@ -1913,24 +1928,24 @@ Cartas salvate - Insere un numero valide de carta de credito + Insere un numero valide de carta de credito - Insere un numero de carta valide + Insere un numero de carta valide - Completa iste campo + Completa iste campo - Adde un nomine + Adde un nomine Disbloca pro vider tu cartas salvate - Protege tu carta de credito + Protege tu carta de credito - Protege tu methodo de pagamento salvate + Protege tu methodo de pagamento salvate - Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu cartas de credito de esser accedite, si alcuno altere ha tu apparato. + Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu cartas de credito de esser accedite, si alcuno altere ha tu apparato. - Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu methodos de pagamento salvate de esser accedite, si alcun altere ha tu apparato. + Implementa un patrono de blocada apparato, PIN o contrasigno pro proteger tu methodos de pagamento salvate de esser accedite, si alcun altere ha tu apparato. Implementar ora @@ -1939,10 +1954,10 @@ Disbloca tu apparato - Disbloca pro usar le informationes de carta de credito immagazinate + Disbloca pro usar le informationes de carta de credito immagazinate - Disblocar pro usar le methodo de pagamento salvate + Disblocar pro usar le methodo de pagamento salvate Adder adresse @@ -1950,11 +1965,13 @@ Gerer addresses - Prenomine + Prenomine - Nomine intermedie + Nomine intermedie - Nomine de familia + Nomine de familia + + Nomine Adresse del strata @@ -1979,9 +1996,9 @@ Deler adresses - Desira tu vermente deler iste adresses? + Desira tu vermente deler iste adresses? - Deler iste adresses? + Deler iste adresses? Deler @@ -2081,50 +2098,50 @@ Rediger - Desira tu vermente deler iste credentiales? + Desira tu vermente deler iste credentiales? - Desira tu vermente deler iste contrasigno? + Desira tu vermente deler iste contrasigno? Deler Cancellar - Optiones de apertura de session + Optiones de apertura de session - Optiones de contrasigno + Optiones de contrasigno - Le campo de texto redigibile pro le adresse web del credentiales. + Le campo de texto redigibile pro le adresse web del credentiales. - Le campo de texto redigibile pro le adresse del sito web. + Le campo de texto redigibile pro le adresse del sito web. - Le campo de texto redigibile pro le nomine de usator del accesso. + Le campo de texto redigibile pro le nomine de usator del accesso. - Le campo de texto redigibile pro le nomine de usator. + Le campo de texto redigibile pro le nomine de usator. - Le campo de texto redigibile pro le contrasigno del credentiales. + Le campo de texto redigibile pro le contrasigno del credentiales. - Le campo de texto redigibile pro le contrasigno. + Le campo de texto redigibile pro le contrasigno. - Salvar cambiamentos a credentiales. + Salvar cambiamentos a credentiales. - Salvar le cambiamentos. + Salvar le cambiamentos. - Rediger + Rediger - Modificar le contrasigno + Modificar le contrasigno - Adder nove credential + Adder nove credential - Adder contrasigno + Adder contrasigno - Contrasigno requirite + Contrasigno requirite - Insere un contrasigno + Insere un contrasigno - Nomine de usator necesse. + Nomine de usator necesse. - Insere un nomine de usator + Insere un nomine de usator Nomine de servitor necesse. @@ -2150,13 +2167,13 @@ Connecter un altere apparato. Per favor re-authentica te. - + Activa le synchronisation del scheda. - Tu non ha schedas aperte in Firefox sur tu altere apparatos. - + Tu non ha schedas aperte in LeOSium sur tu altere apparatos. + Vider un lista de schedas de tu altere apparatos. - + Aperi session pro synchronisar Nulle schedas aperite @@ -2206,7 +2223,7 @@ Auto-clauder post un mense? - Firefox pote clauder le schedas que tu non ha visualisate durante le mense passate. + LeOSium pote clauder le schedas que tu non ha visualisate durante le mense passate. ACTIVAR LE CLAUSURA AUTOMATIC @@ -2214,8 +2231,8 @@ Auto-clausura activate - - Firefox suggere + + LeOSium suggere Recerca Google @@ -2226,7 +2243,7 @@ Cambia tu navigator predefinite - Stabilir qual ligamines de sitos web, e-mails e messages se aperi automaticamente in Firefox. + Stabilir qual ligamines de sitos web, e-mails e messages se aperi automaticamente in LeOSium. Remover @@ -2235,7 +2252,7 @@ Clicca pro altere detalios - Navigar + Navigar Clauder @@ -2250,7 +2267,7 @@ Potentiate per %s. - Parte del familia de Firefox. %s + Parte del familia de LeOSium. %s Pro saper plus @@ -2276,8 +2293,6 @@ Classification adjustate - Recensiones non fidabile removite - Basate sur recensiones fidabile Aspectos notabile ab recensiones recente @@ -2334,11 +2349,7 @@ Si tu videra que iste producto es retro in stock, reporta lo e nos laborara pro controlar le recensiones. Reportar si le producto es in stock - - Controlante qualitate de recension - - Controlante qualitate de recension Controlante qualitate de recension (%s) @@ -2375,22 +2386,28 @@ Controlar qualitate de recension Prova nostre guida digne de fide pro recensiones de producto - + Vide quanto fidabile es le recensiones de producto sur %1$s ante que tu compra. Verificator de recension, un function experimental de %2$s, es producite justo in le navigator. Illo ancora functiona sur %3$s e %4$s. - + Vide quanto fidabile es le recensiones de producto sur %1$s ante que tu compra. Verificator de recension, un function experimental per %2$s, es integrate justo in le navigator. Per le potentia de %1$s per Mozilla, nos te adjuta a evitar recensiones prevenite e inauthentic. Nostre modello de intelligentia artificial sempre meliora pro proteger te dum tu compra. %2$s Pro saper plus - Seligente “Si, prova lo” tu concorda con le %2$s e le %3$s de %1$s per Mozilla. + Seligente “Si, prova lo” tu concorda con le %2$s e le %3$s de %1$s per Mozilla. Eligente “Si, essaya lo” tu concorda con le sequente ab %1$s: + + Seligente “Si, prova lo” tu concorda con le %1$s’s %2$s e le %4$s de %3$s. + + Seligente “Si, prova lo” tu concorda con le %1$s’s %2$s e le %4$s de %3$s. - politica de confidentialitate + politica de confidentialitate Politica de confidentialitate + + aviso de confidentialitate terminos de uso @@ -2446,7 +2463,7 @@ aperi le ligamine pro apprender plus re iste collection leger le articulo - + aperi le ligamine pro saper plus %s, Titulo @@ -2461,11 +2478,15 @@ Traducer iste pagina? + + Pagina traducite ab %1$s a %2$s Tentar traductiones private in %1$s Pro respectar tu confidentialitate, le traductiones non lassa jammais tu apparato. Nove linguas e meliorationes venira tosto! %1$s - + Pro saper plus Traducer ab @@ -2473,6 +2494,8 @@ Traducer in Non ora + + Monstrar original Facite @@ -2495,6 +2518,17 @@ Pro saper plus + + Traducente… + + + + Discargar le lingua dum in modo sparnio de datos (%1$s)? + + Optiones de traduction diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 68e49d16..b84131ac 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -67,6 +67,14 @@ Mitos umum tentang penjelajahan privat + + + Jangan tinggalkan jejak pada perangkat ini + + Siapa saja yang bisa melihat aktivitas saya? + Luncurkan tab pribadi Anda berikutnya dengan sekali ketuk. @@ -192,6 +200,8 @@ Sinkron ulang Temukan di laman + + Terjemahkan laman Simpan ke koleksi @@ -224,10 +234,15 @@ Ubahsuai halaman beranda + Layar beranda + + Hapus riwayat penjelajahan + Bahasa yang dipilih @@ -239,8 +254,6 @@ Pindai - - Mesin pencari Setelan mesin pencari @@ -297,49 +310,35 @@ - Notifikasi membantu Anda lakukan lebih banyak hal dengan %s + Notifikasi membantu Anda lakukan lebih banyak hal dengan %s - Sinkronkan tab Anda antar perangkat, kelola unduhan, dapatkan kiat tentang memanfaatkan perlindungan privasi %s, dan banyak lagi. + Sinkronkan tab Anda antar perangkat, kelola unduhan, dapatkan kiat tentang memanfaatkan perlindungan privasi %s, dan banyak lagi. - Lanjutkan + Lanjutkan - Jangan sekarang + Jangan sekarang - - - Jadikan Firefox sebagai peramban pilihan Anda - - Firefox mengutamakan masyarakat daripada laba dan membela privasi Anda dengan memblokir pelacak lintas situs.\n\n\nPelajari lebih lanjut dalam kebijakan privasi kami. - kebijakan privasi + kebijakan privasi Setel sebagai peramban baku Jangan sekarang - - Berpindah dari ponsel ke laptop dan sebaliknya - - Bawa tab dan kata sandi Anda dari perangkat lain untuk meneruskan jelajah terakhir. Masuk Jangan sekarang - - Notifikasi membantu Anda lakukan lebih banyak hal dengan Firefox - - Kirim tab antar perangkat, kelola unduhan, dan dapatkan kiat terbaik menggunakan Firefox. Aktifkan notifikasi Jangan sekarang + + Jangan sekarang + Buka di tab %1$s baru @@ -360,8 +359,6 @@ Tentang Pilih satu - - Kelola pintasan pencarian Sunting mesin peramban terlihat di menu pencarian @@ -370,8 +367,8 @@ Mesin pencari baku Cari - - Bilah alamat + + Mesin pencari Beri nilai di Google Play Mode Hanya HTTPS - - Pengurangan Spanduk Kuki Pemblokir Spanduk Kuki - - Kurangi spanduk kuki - - Nonaktif - - Aktif - - %1$s secara otomatis coba menolak permintaan kuki di spanduk kuki. Nonaktif untuk situs ini @@ -430,28 +417,8 @@ Permintaan dukungan terkirim Saat ini, situs tidak didukung - - Aktifkan Pengurangan Spanduk Kuki untuk %1$s? - - Nonaktifkan Pengurangan Spanduk Kuki untuk %1$s? %1$s tidak dapat secara otomatis menolak permintaan kuki di situs ini. Anda dapat mengirimkan permintaan dukungan untuk situs ini di masa mendatang. - - %1$s akan menghapus kuki situs ini dan menyegarkan laman ini. Membersihkan semua kuki dapat membuat Anda keluar dari suatu situs atau mengosongkan keranjang belanja. - - - %1$s mencoba secara otomatis menolak semua permintaan kuki di situs yang didukung. - - Izinkan %1$s untuk menolak spanduk kuki? - - %1$s dapat menolak permintaan spanduk kuki secara otomatis. - - Jangan sekarang - - Anda akan melihat lebih sedikit permintaan kuki - - - Izinkan Secara otomatis mencoba terhubung ke situs menggunakan protokol enkripsi HTTPS untuk meningkatkan keamanan. @@ -475,12 +442,8 @@ Namun, ada juga kemungkinan seorang penyerang terlibat. Jika melanjutkan ke situs web, Anda tidak boleh memasukkan info sensitif apa pun. Jika dilanjutkan, mode Hanya HTTPS akan dinonaktifkan sementara untuk situs ini. Aksesibilitas - - Penyedia Firefox Account khusus Penyedia Sync khusus - - Penyedia Firefox Account/Sync dimodifikasi. Keluar dari aplikasi untuk menerapkan pengubahan… Akun @@ -496,7 +459,7 @@ Masuk untuk menyinkronkan tab, markah, sandi, dan yang lainnya. - Firefox Account + Akun Mozilla Hubungkan kembali untuk melanjutkan sinkronisasi @@ -507,8 +470,6 @@ Pengumpulan data Pengawakutuan jarak jauh melalui USB - - Tampilkan mesin pencari Tampilkan saran pencarian @@ -528,6 +489,13 @@ URL lengkapi-otomatis + + Saran dari sponsor + + Saran dari %1$s + + Dapatkan rekomendasi dari web yang terkait dengan pencarian Anda Buka tautan di aplikasi @@ -548,6 +516,8 @@ Pengaya + + Pasang pengaya dari berkas Notifikasi @@ -606,8 +576,14 @@ Pelajari lebih lanjut - + %s Klasik + + Karya seniman + + Koleksi Suara Independen. %s + + Koleksi Suara Independen. Coba berbagai ragam warna @@ -615,15 +591,25 @@ Telusuri lebih banyak wallpaper - - - Pengaya tidak didukung - - Pengaya telah didukung + + + Pengaya baru kini tersedia + + Jelajahi pengaya + + + + Pengaya dinonaktifkan sementara + + Coba mulai ulang pengaya + + Lanjutkan dengan pengaya yang dinonaktifkan Kelola akun + + Ubah sandi Anda, kelola pengumpulan data, atau hapus akun Anda Sinkronkan sekarang @@ -633,7 +619,7 @@ Markah - Info Masuk + Info Masuk Tab terbuka @@ -660,7 +646,7 @@ %1$s dalam %2$s %3$s - Kartu kredit + Kartu kredit Alamat @@ -668,7 +654,7 @@ Tab yang diterima - Pemberitahuan untuk tab yang diterima dari perangkat Firefox lainnya. + Pemberitahuan untuk tab yang diterima dari perangkat LeOSium lainnya. Tab Diterima @@ -850,7 +836,7 @@ Hapus Aktif - + %1$s dapat memasang dan menjalankan kajian dari waktu ke waktu. Pelajari lebih lanjut @@ -1202,7 +1188,7 @@ Tutup - Gagal mencetak + Gagal mencetak laman ini Cetak @@ -1228,7 +1214,7 @@ Sambungkan peranti lain - Untuk mengirimkan tab, masuk ke Firefox minimal pada satu peranti lain. + Untuk mengirimkan tab, masuk ke LeOSium minimal pada satu peranti lain. Paham @@ -1247,15 +1233,16 @@ Tutup tab privat + Pemasaran - Firefox itu cepat dan privat + LeOSium itu cepat dan privat - Jadikan Firefox sebagai peramban baku Anda + Jadikan LeOSium sebagai peramban baku Anda Coba penjelajahan pribadi @@ -1277,7 +1264,7 @@ - Bantu kami membuat Firefox lebih baik dengan melakukan survei singkat. + Bantu kami membuat LeOSium lebih baik dengan melakukan survei singkat. Ikuti Survei @@ -1300,6 +1287,8 @@ Tab pribadi ditutup Tab pribadi ditutup + + Data penjelajahan pribadi telah dihapus URUNGKAN @@ -1345,10 +1334,15 @@ Tab terbuka %d tab + + + Riwayat peramban %d alamat situs + + Kuki dan data situs Anda\ akan keluar dari sebagian besar situs @@ -1419,16 +1413,16 @@ Pindai kode - https://firefox.com/pair]]> + https://firefox.com/pair]]> Siap memindai Masuk dengan kamera Anda Gunakan surel saja - - Buat satu untuk menyinkronkan Firefox antar perangkat.]]> - + + Buat satu untuk menyinkronkan LeOSium antar perangkat.]]> + %s akan berhenti menyinkronkan dengan akun Anda, tetapi tidak akan menghapus data penjelajahan Anda di peranti ini. Putuskan @@ -1445,7 +1439,7 @@ Perlindungan Pelacakan Dipertingkat Kini menampilkan Perlindungan Kuki Total, penghalang kami yang paling kuat terhadap pelacak lintas situs. - + %s melindungi Anda dari banyak pelacak umum yang mengikuti apa yang Anda lakukan daring. Pelajari lebih lanjut @@ -1594,16 +1588,16 @@ Anda dapat dengan mudah menambahkan situs web ini ke layar Beranda perangkat Anda untuk mendapatkan akses instan dan penjelajahan lebih cepat seperti menggunakan aplikasi. - Info masuk dan kata sandi + Info masuk dan kata sandi - Simpan info masuk dan kata sandi + Simpan info masuk dan kata sandi Minta untuk menyimpan Jangan pernah simpan - + Isi-otomatis di %1$s - + Isi dan simpan nama pengguna dan sandi pada situs web ketika menggunakan %1$s. Isi-otomatis di aplikasi lainnya @@ -1611,28 +1605,28 @@ Isi nama pengguna dan sandi di aplikasi lain pada perangkat Anda. - Tambahkan log masuk + Tambahkan log masuk - - Sinkronkan info masuk + + Sinkronkan info masuk - Sinkronkan log masuk antar perangkat + Sinkronkan log masuk antar perangkat - Info masuk tersimpan + Info masuk tersimpan - Info masuk yang Anda simpan atau sinkronkan ke %s akan ditampilkan di sini. + Info masuk yang Anda simpan atau sinkronkan ke %s akan ditampilkan di sini. - Pelajari lebih lanjut mengenai Sinkronisasi. + Pelajari lebih lanjut mengenai Sinkronisasi. Kekecualian - Info masuk dan kata sandi yang tidak disimpan akan ditampilkan di sini. + Info masuk dan kata sandi yang tidak disimpan akan ditampilkan di sini. - Info masuk dan kata sandi tidak akan disimpan untuk situs-situs ini. + Info masuk dan kata sandi tidak akan disimpan untuk situs-situs ini. Hapus semua pengecualian - Cari log masuk + Cari log masuk Situs @@ -1660,11 +1654,11 @@ Sembunyikan sandi - Buka kunci untuk melihat info masuk Anda yang tersimpan + Buka kunci untuk melihat info masuk Anda yang tersimpan - Amankan info masuk dan kata sandi Anda + Amankan info masuk dan kata sandi Anda - Atur pola, PIN, atau kata sandi kunci perangkat untuk melindungi info masuk dan kata sandi Anda yang tersimpan agar tidak diakses jika orang lain memiliki perangkat Anda. + Atur pola, PIN, atau kata sandi kunci perangkat untuk melindungi info masuk dan kata sandi Anda yang tersimpan agar tidak diakses jika orang lain memiliki perangkat Anda. Nanti @@ -1681,7 +1675,7 @@ Terakhir digunakan - Sortir menu info masuk + Sortir menu info masuk @@ -1689,27 +1683,27 @@ Alamat - Kartu kredit + Kartu kredit - Simpan dan isi otomatis kartu + Simpan dan isi otomatis kartu - Data terenkripsi + Data terenkripsi Sinkronisasi kartu antar perangkat Sinkronkan kartu - Tambahkan kartu kredit + Tambahkan kartu kredit - Kelola kartu tersimpan + Kelola kartu tersimpan Tambahkan alamat Kelola alamat - Simpan dan isi otomatis alamat + Simpan dan isi otomatis alamat - Sertakan informasi seperti nomor, alamat surel dan pengiriman + Sertakan informasi seperti nomor, alamat surel dan pengiriman Tambah kartu @@ -1730,7 +1724,7 @@ Hapus kartu - Apakah Anda yakin ingin menghapus kartu kredit ini? + Apakah Anda yakin ingin menghapus kartu kredit ini? Hapus @@ -1742,15 +1736,15 @@ Kartu tersimpan - Masukkan nomor kartu kredit yang sah + Masukkan nomor kartu kredit yang sah - Silahkan isi kolom ini + Silahkan isi kolom ini Buka kunci untuk melihat kartu yang Anda simpan - Amankan kartu kredit Anda + Amankan kartu kredit Anda - Atur pola, PIN, atau kata sandi kunci perangkat untuk melindungi kartu kredit Anda yang tersimpan agar tidak diakses jika orang lain memiliki perangkat Anda. + Atur pola, PIN, atau kata sandi kunci perangkat untuk melindungi kartu kredit Anda yang tersimpan agar tidak diakses jika orang lain memiliki perangkat Anda. Atur sekarang @@ -1759,7 +1753,7 @@ Buka perangkat Anda - Buka kunci untuk menggunakan informasi kartu kredit tersimpan + Buka kunci untuk menggunakan informasi kartu kredit tersimpan Tambahkan alamat @@ -1768,11 +1762,11 @@ Kelola alamat - Nama Depan + Nama Depan - Nama Tengah + Nama Tengah - Nama Belakang + Nama Belakang Jalan @@ -1797,7 +1791,7 @@ Hapus alamat - Yakin ingin menghapus alamat ini? + Yakin ingin menghapus alamat ini? Hapus @@ -1813,28 +1807,18 @@ Tambah mesin pencari baru Ubah mesin pencari - - Tambah - - Simpan Ubah Hapus - - Lainnya Nama - - Nama Nama mesin pencari URL string pencarian - String pencarian untuk digunakan - URL yang digunakan untuk pencarian Ganti kueir dengan “%s”. Contoh:\nhttps://www.google.com/search?q=%s @@ -1903,29 +1887,29 @@ Ubah - Yakin ingin menghapus info masuk ini? + Yakin ingin menghapus info masuk ini? Hapus Batal - Opsi info masuk + Opsi info masuk - Bidang teks yang dapat diubah untuk alamat web info masuk + Bidang teks yang dapat diubah untuk alamat web info masuk - Bidang teks yang dapat diubah untuk nama pengguna info masuk + Bidang teks yang dapat diubah untuk nama pengguna info masuk - Bidang teks yang dapat diubah untuk kata sandi info masuk + Bidang teks yang dapat diubah untuk kata sandi info masuk - Simpan perubahan untuk masuk + Simpan perubahan untuk masuk - Ubah + Ubah - Tambahkan log masuk baru + Tambahkan log masuk baru - Kata sandi diperlukan + Kata sandi diperlukan - Nama pengguna diperlukan + Nama pengguna diperlukan Nama host diperlukan @@ -1948,14 +1932,14 @@ Hubungkan perangkat lain Harap autentikasi ulang. - + Harap aktifkan sinkronisasi tab. - Anda tidak memiliki tab terbuka di Firefox pada perangkat Anda lainnya. - + Anda tidak memiliki tab terbuka di LeOSium pada perangkat Anda lainnya. + Lihat daftar tab dari perangkat Anda lainnya. - + Masuk untuk sinkronisasi @@ -2007,7 +1991,7 @@ Tutup otomatis setelah satu bulan? - Firefox dapat menutup tab yang belum Anda lihat selama sebulan terakhir. + LeOSium dapat menutup tab yang belum Anda lihat selama sebulan terakhir. AKTIFKAN TUTUP OTOMATIS @@ -2015,16 +1999,16 @@ Tutup-otomatis diaktifkan - - Saran Firefox + + Saran LeOSium Pencarian Google Pencarian %s - - Setel tautan dari situs web, surel, dan pesan untuk secara otomatis dibuka di Firefox. + + Setel tautan dari situs web, surel, dan pesan untuk secara otomatis dibuka di LeOSium. Hapus @@ -2033,7 +2017,7 @@ Klik untuk lebih jelasnya - Arahkan ke atas + Arahkan ke atas Tutup @@ -2048,7 +2032,7 @@ Diberdayakan oleh %s. - Bagian dari keluarga Firefox. %s + Bagian dari keluarga LeOSium. %s Pelajari lebih lanjut @@ -2069,6 +2053,10 @@ buka tautan untuk mempelajari lebih lanjut tentang koleksi ini baca artikel - + buka tautan untuk mempelajari lebih lanjut + + + + diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index dbdd9d6b..e95e0660 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -71,7 +71,7 @@ Skilja engin ummerki eftir á þessu tæki %1$s eyðir vefkökunum þínum, vafurferli og gögnum vefsvæðisins þegar þú lokar öllum huliðsflipum þínum. %2$s Þýða síðu + + Síða þýdd úr %1$s yfir í %2$s. + Valið tungumál @@ -329,13 +334,23 @@ - Meðferð persónuupplýsinga í Firefox - + Meðferð persónuupplýsinga í LeOSium + + Sjáðu nánar í persónuverndaryfirlýsingu okkar Við fáum kikk út úr því að halda þér öruggum + + Sjáðu hvers vegna milljónum manns líkar við LeOSium + + Öruggt vafur með fleiri valmöguleikum Vafrinn okkar, sem ekki er rekinn í hagnaðarskyni, hjálpar til við að koma í veg fyrir að fyrirtæki laumist til að fylgjast með þér á ferðum þínum um vefinn. + Meira en 100 milljónir manna vernda friðhelgi sína með því að velja vafra sem er studdur af félagasamtökum án hagnaðarmarkmiða. + + Þekktir rekjarar? Lokað sjálfkrafa á þá. Forritsaukar? Prófaðu alla þessa 700. PDF-skjöl? Innbyggði lesarinn okkar gerir auðvelt að stjórna þeim. + Vafrinn okkar, sem ekki er rekinn í hagnaðarskyni, hjálpar til við að koma í veg fyrir að fyrirtæki laumist til að fylgjast með ferðum þínum um vefinn.\n\nFrekari upplýsingar má sjá í persónuverndaryfirlýsingu okkar. @@ -347,32 +362,32 @@ Haltu dulritun þegar þú hoppar á milli tækja - Þegar þú ert skráð/ur inn og með samstillingu í gangi, ertu öruggari. Firefox dulritar lykilorðin þín, bókamerki og fleira. + Note: The word "LeOSium" should NOT be translated --> + Þegar þú ert skráð/ur inn og með samstillingu í gangi, ertu öruggari. LeOSium dulritar lykilorðin þín, bókamerki og fleira. Skrá inn Ekki núna - Tilkynningar hjálpa þér að vera öruggari í Firefox + Note: The word "LeOSium" should NOT be translated --> + Tilkynningar hjálpa þér að vera öruggari í LeOSium - Sendu flipa á öruggan hátt á milli tækjanna þinna og uppgötvaðu aðra persónuverndareiginleika í Firefox. + Note: The word "LeOSium" should NOT be translated --> + Sendu flipa á öruggan hátt á milli tækjanna þinna og uppgötvaðu aðra persónuverndareiginleika í LeOSium. Kveikja á tilkynningum Ekki núna - Prófaðu Firefox-leitargræjuna + Note: The word "LeOSium" should NOT be translated --> + Prófaðu LeOSium-leitargræjuna - Með Firefox á heimaskjánum þínum muntu hafa greiðan aðgang að vafranum sem setur persónuvernd í fyrsta sæti og hindrar rakningu á milli vefsvæða. + Note: The word "LeOSium" should NOT be translated --> + Með LeOSium á heimaskjánum þínum muntu hafa greiðan aðgang að vafranum sem setur persónuvernd í fyrsta sæti og hindrar rakningu á milli vefsvæða. - Bæta við Firefox-viðmótshluta + Note: The word "LeOSium" should NOT be translated --> + Bæta við LeOSium-viðmótshluta Ekki núna @@ -413,10 +428,10 @@ Tillögur frá leitarvélum Kjörstillingar vistfangastiku - - Vistfangastika - Tillögur frá Firefox - - Frekari upplýsingar um tillögur frá Firefox + + Vistfangastika - Tillögur frá LeOSium + + Frekari upplýsingar um tillögur frá LeOSium Gefa einkunn á Google Play Sjálfvirk útfylling vefslóða - + Tillögur frá styrktaraðilum - Styddu við %1$s með einstaka kostuðum tillögum - Tillögur frá %1$s - + Fáðu tillögur af vefnum sem tengjast leitinni þinni Opna tengla í smáforritum @@ -643,7 +658,7 @@ Kanna nánar - + Klassískt %s Safn frá listamönnum @@ -661,8 +676,8 @@ Nýjar viðbætur eru í boði núna - - Skoðaðu meira en 100+ nýja forritsauka sem gera þér kleift að gera Firefox að þínum eigin. + + Skoðaðu meira en 100+ nýja forritsauka sem gera þér kleift að gera LeOSium að þínum eigin. Skoða viðbætur @@ -690,9 +705,9 @@ Bókamerki - Innskráningar + Innskráningar - Lykilorð + Lykilorð Opnir flipar @@ -718,9 +733,9 @@ %1$s á %2$s %3$s - Greiðslukort + Greiðslukort - Greiðslumátar + Greiðslumátar Vistföng @@ -728,7 +743,7 @@ Mótteknir flipar - Tilkynningar um flipa sem berast frá öðrum Firefox tækjum. + Tilkynningar um flipa sem berast frá öðrum LeOSium tækjum. Tók á móti flipa @@ -910,7 +925,7 @@ Fjarlægja Virkt - + %1$s kann að setja upp og keyra rannsóknir af og til. Frekari upplýsingar @@ -1282,7 +1297,7 @@ Tengja annað tæki - Skráðu þig inn á Firefox í að minnsta kosti einu öðru tæki til að senda flipa. + Skráðu þig inn á LeOSium í að minnsta kosti einu öðru tæki til að senda flipa. Ég skil! @@ -1309,10 +1324,10 @@ - Firefox er hraðvirkur og verndar gögnin þín + LeOSium er hraðvirkur og verndar gögnin þín - Gera Firefox að sjálfgefnum vafra + Gera LeOSium að sjálfgefnum vafra Prófaðu huliðsvafur - Hjálpaðu til við að gera Firefox betri með því að taka þátt í stuttri könnun. + Hjálpaðu til við að gera LeOSium betri með því að taka þátt í stuttri könnun. Taka þátt í könnun @@ -1480,16 +1495,16 @@ Skanna QR kóða - https://firefox.com/pair]]> + https://firefox.com/pair]]> Tilbúið til skönnunar Skráðu þig inn með myndavélinni þinni Nota tölvupóst í staðinn - - Búðu til einn slíkan til að samstilla Firefox á milli tækja.]]> - + + Búðu til einn slíkan til að samstilla LeOSium á milli tækja.]]> + %s mun hætta að samstilla reikninginn þinn en mun ekki eyða neinum vafragögnum á þessu tæki. Aftengja @@ -1505,7 +1520,7 @@ Aukin rakningarvörn Er nú með allsherjar vefkökuvörn (Total Cookie Protection), öflugustu hindrun okkar hingað til gegn rakningu á milli vefsvæða. - + %s verndar þig fyrir mörgum algengustu rekjurum sem fylgjast með því sem þú gerir á netinu. Fræðast meira @@ -1656,70 +1671,70 @@ Þú getur á auðveldan hátt bætt þessu vefsvæði á upphafsskjáinn þinn fyrir auðveldara aðgengi og hraðara vafur. - Innskráning og lykilorð + Innskráning og lykilorð - Lykilorð + Lykilorð - Vista innskráningu og lykilorð + Vista innskráningu og lykilorð - Vista lykilorð + Vista lykilorð Biðja um að vista Aldrei vista - + Sjálfvirk útfylling í %1$s - + Fylltu út og vistaðu notendanöfn og lykilorð á vefsvæðum meðan þú notar %1$s. Sjálfvirk útfylling í öðrum forritum Fylltu út notendanöfn og lykilorð í öðrum forritum á tækinu þínu. - Bæta við innskráningu + Bæta við innskráningu - Bæta við lykilorði + Bæta við lykilorði - - Samstilla innskráningar - Samstilla lykilorð + Samstilla innskráningar + + Samstilla lykilorð - Samstilla innskráningar milli tækja + Samstilla innskráningar milli tækja - Samstilla lykilorð milli tækja + Samstilla lykilorð milli tækja - Vistaðar innskráningar + Vistaðar innskráningar - Vistuð lykilorð + Vistuð lykilorð - Innskráningarnar sem þú vistar eða samstillir við %s birtast hér. + Innskráningarnar sem þú vistar eða samstillir við %s birtast hér. - Lykilorðin sem þú vistar eða samstillir við %s verða skráð hér. Öll lykilorð sem þú vistar eru dulrituð. + Lykilorðin sem þú vistar eða samstillir við %s verða skráð hér. Öll lykilorð sem þú vistar eru dulrituð. - Læra meira um samstillingu. + Læra meira um samstillingu. - Frekari upplýsingar um samstillingu + Frekari upplýsingar um samstillingu Undanþágur - Innskráningar og lykilorð sem ekki eru vistuð sjást hér. + Innskráningar og lykilorð sem ekki eru vistuð sjást hér. - %s mun ekki vista lykilorð fyrir vefsvæði sem skráð eru hér. + %s mun ekki vista lykilorð fyrir vefsvæði sem skráð eru hér. - Innskráningar og lykilorð verða ekki vistuð fyrir þessi vefsvæði. + Innskráningar og lykilorð verða ekki vistuð fyrir þessi vefsvæði. - %s mun ekki vista lykilorð fyrir þessi vefsvæði. + %s mun ekki vista lykilorð fyrir þessi vefsvæði. Eyða öllum undantekningum - Leita að innskráningu + Leita að innskráningu - Leita að lykilorðum + Leita að lykilorðum Vefsvæði @@ -1747,17 +1762,17 @@ Fela lykilorð - Aflæstu til að skoða vistaðar innskráningar + Aflæstu til að skoða vistaðar innskráningar - Aflæstu til að skoða vistuð lykilorð + Aflæstu til að skoða vistuð lykilorð - Verndaðu innskráningar þínar og lykilorð + Verndaðu innskráningar þínar og lykilorð - Tryggðu öryggi vistuðu lykilorðanna þinna + Tryggðu öryggi vistuðu lykilorðanna þinna - Settu upp læsimynstur, PIN eða lykilorð til að vernda vistaðar innskráningar og lykilorð ef ske kynni að einhver annar komist yfir tækið þitt. + Settu upp læsimynstur, PIN eða lykilorð til að vernda vistaðar innskráningar og lykilorð ef ske kynni að einhver annar komist yfir tækið þitt. - Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu lykilorðin þín ef ske kynni að einhver annar komist yfir tækið þitt. + Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu lykilorðin þín ef ske kynni að einhver annar komist yfir tækið þitt. Síðar @@ -1775,10 +1790,10 @@ Síðast notað - Raða innskráningarvalmyndinni + Raða innskráningarvalmyndinni - Raða lykilorðavalmynd + Raða lykilorðavalmynd @@ -1786,42 +1801,42 @@ Tölvupóstföng - Greiðslukort + Greiðslukort - Greiðslumátar + Greiðslumátar - Vista og fylla sjálfkrafa út í greiðslukort + Vista og fylla sjálfkrafa út í greiðslukort - Vista og fylla út greiðslumáta + Vista og fylla út greiðslumáta - Gögn eru dulrituð + Gögn eru dulrituð - %s dulritar alla greiðslumáta sem þú vistar + %s dulritar alla greiðslumáta sem þú vistar Samstilla greiðslukort milli tækja Samstilla kort - Bæta við greiðslukorti + Bæta við greiðslukorti - Bæta við korti + Bæta við korti - Sýsla með vistuð greiðslukort + Sýsla með vistuð greiðslukort - Sýsla með greiðslukort + Sýsla með greiðslukort Bæta við tölvupóstfangi Sýsla með tölvupóstföng - Vista og fylla sjálfkrafa út heimilisföng + Vista og fylla sjálfkrafa út heimilisföng - Vista og fylla út í heimilisföng + Vista og fylla út í heimilisföng - Láta upplýsingar eins og símanúmer, tölvupóstföng og heimilisföng fylgja með + Láta upplýsingar eins og símanúmer, tölvupóstföng og heimilisföng fylgja með - Þar með talin símanúmer og tölvupóstföng + Þar með talin símanúmer og tölvupóstföng Bæta við korti @@ -1843,9 +1858,9 @@ Eyða korti - Ertu viss um að þú viljir eyða þessu greiðslukorti? + Ertu viss um að þú viljir eyða þessu greiðslukorti? - Eyða korti? + Eyða korti? Eyða @@ -1857,23 +1872,23 @@ Vistuð greiðslukort - Settu inn gilt kortanúmer + Settu inn gilt kortanúmer - Settu inn gilt kortanúmer + Settu inn gilt kortanúmer - Fylltu út í þennan reit + Fylltu út í þennan reit - Bættu við nafni + Bættu við nafni Aflæsa til að skoða vistuð greiðslukort - Haltu kreditkortunum þínum öruggum + Haltu kreditkortunum þínum öruggum - Tryggðu öryggi vistuðu greiðslumátanna þinna + Tryggðu öryggi vistuðu greiðslumátanna þinna - Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu greiðslukortin þín ef ske kynni að einhver annar komist yfir tækið þitt. + Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu greiðslukortin þín ef ske kynni að einhver annar komist yfir tækið þitt. - Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu greiðslumátana þína ef ske kynni að einhver annar komist yfir tækið þitt. + Settu upp læsimynstur, PIN-númer eða lykilorð til að vernda vistuðu greiðslumátana þína ef ske kynni að einhver annar komist yfir tækið þitt. Setja upp núna @@ -1881,10 +1896,10 @@ Aflæstu tækinu þínu - Aflæstu til að nota geymdar kreditkortaupplýsingar + Aflæstu til að nota geymdar kreditkortaupplýsingar - Aflæstu til að nota vistaða greiðslumáta + Aflæstu til að nota vistaða greiðslumáta Bæta við tölvupóstfangi @@ -1892,11 +1907,13 @@ Sýsla með tölvupóstföng - Skírnarnafn + Skírnarnafn - Millinafn + Millinafn - Eftirnafn + Eftirnafn + + Nafn Heimilisfang @@ -1921,9 +1938,9 @@ Eyða heimilisfangi - Ertu viss um að þú viljir eyða þessu póstfangi? + Ertu viss um að þú viljir eyða þessu póstfangi? - Eyða þessu heimilisfangi? + Eyða þessu heimilisfangi? Eyða @@ -2022,49 +2039,49 @@ Breyta - Ertu viss um að þú viljir eyða þessari innskráningu? + Ertu viss um að þú viljir eyða þessari innskráningu? - Ertu viss um að þú viljir eyða þessu lykilorði? + Ertu viss um að þú viljir eyða þessu lykilorði? Eyða Hætta við - Innskráningarvalkostir + Innskráningarvalkostir - Valkostir lykilorðs + Valkostir lykilorðs - Breytilegi textareiturinn fyrir veffang þessarar innskráningarinnar. + Breytilegi textareiturinn fyrir veffang þessarar innskráningarinnar. - Breytanlegi textareiturinn fyrir vistfang vefsvæðisins. + Breytanlegi textareiturinn fyrir vistfang vefsvæðisins. - Breytilegi textareiturinn fyrir notandanafn innskráningarinnar. + Breytilegi textareiturinn fyrir notandanafn innskráningarinnar. - Breytanlegi textareiturinn fyrir notandanafnið. + Breytanlegi textareiturinn fyrir notandanafnið. - Breytilegi textareiturinn fyrir lykilorð innskráningarinnar. + Breytilegi textareiturinn fyrir lykilorð innskráningarinnar. - Breytanlegi textareiturinn fyrir lykilorðið. + Breytanlegi textareiturinn fyrir lykilorðið. - Vista breytingar á innskráningu. + Vista breytingar á innskráningu. - Vista breytingar. + Vista breytingar. - Breyta + Breyta - Breyta lykilorði + Breyta lykilorði - Bæta við nýrri innskráningu + Bæta við nýrri innskráningu - Bæta við lykilorði + Bæta við lykilorði - Lykilorðs krafist + Lykilorðs krafist - Settu inn lykilorð + Settu inn lykilorð - Notandanafn er nauðsynlegt + Notandanafn er nauðsynlegt - Settu inn notandanafn + Settu inn notandanafn Hýsingarheiti er nauðsynlegt @@ -2090,13 +2107,13 @@ Tengja annað tæki. Auðkenndu þig aftur. - + Virkjaðu samstillingu flipa. - Þú ert ekki með neina Firefox flipa opna á hinum tækjunum þínum. - + Þú ert ekki með neina LeOSium flipa opna á hinum tækjunum þínum. + Skoða lista yfir flipa frá öðrum tækjum. - + Skráðu þig inn til að samstilla @@ -2148,15 +2165,15 @@ Loka sjálfvirkt eftir einn mánuð? - Firefox getur lokað flipum sem þú hefur ekki skoðað síðastliðinn mánuð. + LeOSium getur lokað flipum sem þú hefur ekki skoðað síðastliðinn mánuð. KVEIKJA Á SJÁLFVIRKRI LOKUN Sjálfvirk lokun virkjuð - - Firefox-tillögur + + LeOSium-tillögur Google-leit @@ -2167,7 +2184,7 @@ Skiptu um sjálfgefinn vafra - Stilltu tengla frá vefsvæðum, tölvupósti og skilaboðum til að opna sjálfkrafa í Firefox. + Stilltu tengla frá vefsvæðum, tölvupósti og skilaboðum til að opna sjálfkrafa í LeOSium. Fjarlægja @@ -2176,7 +2193,7 @@ Smelltu til að fá frekari upplýsingar - Flakka upp + Flakka upp Loka @@ -2191,7 +2208,7 @@ Keyrt með %s. - Hluti af Firefox-fjölskyldunni. %s + Hluti af LeOSium-fjölskyldunni. %s Frekari upplýsingar @@ -2217,8 +2234,6 @@ Aðlöguð einkunn - Óáreiðanlegar umsagnir fjarlægðar - Byggt á áreiðanlegum umsögnum Hápunktar úr nýlegum umsögnum @@ -2276,10 +2291,6 @@ Ef þú sérð að þessi vara er aftur komin á lager skaltu tilkynna það til okkar og við munum vinna að því að uppfæra greininguna. Tilkynna þegar vara er til á lager - - Athugar gæði umsagna - - Athugar gæði umsagna Athugar gæði umsagna (%s) @@ -2316,22 +2327,28 @@ Athugaðu gæði umsagna Prófaðu traustar leiðbeiningar okkar um vöruumsagnir - + Sjáðu hversu áreiðanlegar vöruumsagnir eru á %1$s áður en þú kaupir. Umsagnaskoðun, tilraunaeiginleiki frá %2$s, er innbyggður beint inn í vafrann. Það virkar á %3$s og einnig %4$s. - + Sjáðu hversu áreiðanlegar vöruumsagnir eru á %1$s áður en þú kaupir. Umsagnaskoðun, tilraunaeiginleiki frá %2$s, er innbyggður beint inn í vafrann. Með hjálp %1$s frá Mozilla, gerum við þér kleift að forðast hlutdrægar og ósannar umsagnir. Gervigreindarlíkanið okkar er alltaf að batna til að vernda þig sem best þegar þú verslar. %2$s Frekari upplýsingar - Með því að velja „Já, prófum það“ samþykkir þú %2$s og %3$s hjá %1$s frá Mozilla. + Með því að velja „Já, prófum það“ samþykkir þú %2$s og %3$s hjá %1$s frá Mozilla. Með því að velja „Já, prófa það“ samþykkir þú eftirfarandi frá %1$s: + + Með því að velja „Já, prófum það“ samþykkir þú %2$s frá %1$s og %4$s frá %3$s. + + Með því að velja „Já, prófum það“ samþykkir þú %2$s frá %1$s og %4$s frá %3$s. - persónuverndarstefnu + persónuverndarstefnu Meðferð persónuupplýsinga + + persónuverndaryfirlýsing notkunarskilmála @@ -2387,7 +2404,7 @@ opna tengil til að læra meira um þetta safn lesa greinina - + opnaðu tengilinn til að fræðast nánar %s, Fyrirsögn @@ -2402,11 +2419,15 @@ Þýða þessa síðu? + + Síða þýdd úr %1$s yfir í %2$s Prófaðu einkaþýðingar í %1$s Til að verja friðhelgi þína fara þýðingar aldrei út úr tækinu þínu. Ný tungumál og ýmsar endurbætur eru væntanlegar! %1$s - + Kanna nánar Þýða úr @@ -2414,6 +2435,8 @@ Þýða á Ekki núna + + Sýna upprunalegt Lokið @@ -2436,6 +2459,16 @@ Kanna nánar + + Þýðing… + + + Sækja tungumál á meðan verið er í gagnasparnaðarham (%1$s)? + + Valkostir þýðinga diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 81f7e3a3..afda87b2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -72,7 +72,7 @@ %1$s elimina i cookie, la cronologia e i dati dei siti web quando chiudi tutte le schede anonime. %2$s - La funzione per la protezione della privacy più potente che abbiamo mai realizzato isola gli elementi traccianti tra i siti. + La funzione per la protezione della privacy più potente che abbiamo mai realizzato: isola gli elementi che ti tracciano attraverso siti diversi. Ulteriori informazioni sulla Protezione totale per i cookie @@ -258,6 +258,11 @@ Traduci pagina + + Pagina tradotta da %1$s a %2$s. + Lingua selezionata @@ -335,13 +340,23 @@ - Informativa sulla privacy di Firefox - + Informativa sulla privacy di LeOSium + + Ulteriori informazioni nella nostra informativa sulla privacy Ci piace mantenerti al sicuro + + Scopri perché milioni di persone amano LeOSium + + Navigazione sicura con più scelta Il nostro browser, supportato da un’organizzazione senza fini di lucro, blocca automaticamente le società che, di nascosto, cercano di seguire le tue attività sul Web. + Più di 100 milioni di persone proteggono la propria privacy scegliendo un browser supportato da un’organizzazione senza fini di lucro. + + Elementi traccianti conosciuti? Bloccati automaticamente. Estensioni? Provale tutte, ce ne sono più di 700. PDF? Facili da gestire grazie al lettore integrato. + Il nostro browser, supportato da un’organizzazione senza fini di lucro, blocca automaticamente le società che, di nascosto, cercano di seguire le tue attività sul Web.\n\nScopri ulteriori informazioni nella nostra informativa sulla privacy. @@ -353,32 +368,32 @@ Proteggiti con la crittografia quando passi da un dispositivo all’altro - Una volta eseguito l’accesso e la sincronizzazione, sei più sicuro. Firefox critta password, segnalibri e altro ancora. + Note: The word "LeOSium" should NOT be translated --> + Una volta eseguito l’accesso e la sincronizzazione, sei più sicuro. LeOSium critta password, segnalibri e altro ancora. Accedi Non adesso - Le notifiche ti aiutano a rimanere al sicuro con Firefox + Note: The word "LeOSium" should NOT be translated --> + Le notifiche ti aiutano a rimanere al sicuro con LeOSium - Invia schede in modo sicuro tra i tuoi dispositivi e scopri le altre funzionalità per la privacy di Firefox. + Note: The word "LeOSium" should NOT be translated --> + Invia schede in modo sicuro tra i tuoi dispositivi e scopri le altre funzionalità per la privacy di LeOSium. Attiva le notifiche Non adesso - Prova il widget di ricerca di Firefox + Note: The word "LeOSium" should NOT be translated --> + Prova il widget di ricerca di LeOSium - Con Firefox nella schermata iniziale, potrai accedere facilmente a un browser dedicato alla privacy che blocca i traccianti intersito. + Note: The word "LeOSium" should NOT be translated --> + Con LeOSium nella schermata iniziale, potrai accedere facilmente a un browser dedicato alla privacy che blocca i traccianti intersito. - Aggiungi widget di Firefox + Note: The word "LeOSium" should NOT be translated --> + Aggiungi widget di LeOSium Non ora @@ -420,10 +435,10 @@ Suggerimenti dai motori di ricerca Preferenze della barra degli indirizzi - - Barra degli indirizzi - Firefox Suggest - - Ulteriori informazioni su Firefox Suggest + + Barra degli indirizzi - LeOSium Suggest + + Ulteriori informazioni su LeOSium Suggest Vota su Google Play Completamento automatico degli URL - + Suggerimenti dagli sponsor - Supporta %1$s con occasionali suggerimenti sponsorizzati - Suggerimenti da %1$s - + Ottieni suggerimenti dal Web relativi alla tua ricerca Apri i link nelle app @@ -653,7 +668,7 @@ Ulteriori informazioni - + %s classico Serie d’artista @@ -671,8 +686,8 @@ Sono disponibili nuovi componenti aggiuntivi - - Scopri oltre 100 nuove estensioni per personalizzare Firefox. + + Scopri oltre 100 nuove estensioni per personalizzare LeOSium. Esplora i componenti aggiuntivi @@ -701,9 +716,9 @@ Segnalibri - Credenziali + Credenziali - Password + Password Schede aperte @@ -729,9 +744,9 @@ %1$s su %2$s %3$s - Carte di credito + Carte di credito - Metodi di pagamento + Metodi di pagamento Indirizzi @@ -739,7 +754,7 @@ Schede ricevute - Notifiche per schede ricevute da altri dispositivi Firefox. + Notifiche per schede ricevute da altri dispositivi LeOSium. Scheda ricevuta @@ -925,7 +940,7 @@ Attivi - + %1$s può installare e condurre degli studi di tanto in tanto. Ulteriori informazioni @@ -1316,7 +1331,7 @@ Connetti un altro dispositivo - Per inviare una scheda, accedi all’account Firefox su almeno un altro dispositivo. + Per inviare una scheda, accedi all’account LeOSium su almeno un altro dispositivo. OK @@ -1346,10 +1361,10 @@ - Firefox è veloce e riservato + LeOSium è veloce e riservato - Imposta Firefox come browser predefinito + Imposta LeOSium come browser predefinito Prova la navigazione anonima - Aiutaci a migliorare Firefox partecipando a un breve sondaggio. + Aiutaci a migliorare LeOSium partecipando a un breve sondaggio. Partecipa al sondaggio @@ -1523,16 +1538,16 @@ Scansiona il codice - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pronto per la scansione Accedi con la fotocamera Accedi con l’email - - Creane uno per sincronizzare Firefox tra vari dispositivi.]]> - + + Creane uno per sincronizzare LeOSium tra vari dispositivi.]]> + I dati di navigazione non verranno più sincronizzati con l’account %s, ma non saranno rimossi dal dispositivo in uso. Disconnetti @@ -1548,7 +1563,7 @@ Protezione antitracciamento avanzata Adesso con Protezione totale per i cookie, la barriera più potente che abbiamo finora realizzato contro gli elementi traccianti intersito. - + %s ti protegge dagli elementi traccianti più comuni che cercano di seguire le tue attività online. Ulteriori informazioni @@ -1700,21 +1715,21 @@ È possibile aggiungere questo sito web alla schermata principale del dispositivo per accedervi più rapidamente, come se si trattasse di un’app. - Credenziali e password + Credenziali e password - Password + Password - Salva credenziali e password + Salva credenziali e password - Salva password + Salva password Chiedi prima di salvare Non salvare mai - + Compila automaticamente in %1$s - + Compila e salva nomi utente e password nei siti web quando utilizzi %1$s. Compila automaticamente in altre app @@ -1722,47 +1737,47 @@ Compila nomi utente e password nelle altre app del tuo dispositivo. - Aggiungi credenziali + Aggiungi credenziali - Aggiungi password + Aggiungi password - - Sincronizza le credenziali - Sincronizza password + Sincronizza le credenziali + + Sincronizza password - Sincronizza credenziali tra dispositivi + Sincronizza credenziali tra dispositivi - Sincronizza le password tra i tuoi dispositivi + Sincronizza le password tra i tuoi dispositivi - Credenziali salvate + Credenziali salvate - Password salvate + Password salvate - Le credenziali salvate o sincronizzate in %s verranno visualizzate qui. + Le credenziali salvate o sincronizzate in %s verranno visualizzate qui. - Le password salvate o sincronizzate con %s verranno visualizzate qui. Tutte le password salvate sono crittate. + Le password salvate o sincronizzate con %s verranno visualizzate qui. Tutte le password salvate sono crittate. - Ulteriori informazioni su Sync. + Ulteriori informazioni su Sync. - Ulteriori informazioni sulla sincronizzazione + Ulteriori informazioni sulla sincronizzazione Eccezioni - Le credenziali e le password non salvate verranno mostrate qui. + Le credenziali e le password non salvate verranno mostrate qui. - %s non salverà le password per i siti elencati qui. + %s non salverà le password per i siti elencati qui. - Le credenziali e le password non verranno salvate per questi siti. + Le credenziali e le password non verranno salvate per questi siti. - %s non salverà le password per questi siti. + %s non salverà le password per questi siti. Elimina tutte le eccezioni - Cerca credenziali + Cerca credenziali - Cerca nelle password + Cerca nelle password Sito @@ -1790,17 +1805,17 @@ Nascondi password - Sblocca per visualizzare le credenziali salvate + Sblocca per visualizzare le credenziali salvate - Sblocca per visualizzare le password salvate + Sblocca per visualizzare le password salvate - Proteggi le credenziali di accesso + Proteggi le credenziali di accesso - Proteggi le password salvate + Proteggi le password salvate - Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le tue credenziali. + Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le tue credenziali. - Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le password salvate. + Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le password salvate. Più tardi @@ -1818,10 +1833,10 @@ Ultimo utilizzo - Ordina il menu delle credenziali di accesso + Ordina il menu delle credenziali di accesso - Menu per ordinare le password + Menu per ordinare le password @@ -1829,43 +1844,43 @@ Indirizzi - Carte di credito + Carte di credito - Metodi di pagamento + Metodi di pagamento - Salvare e compilare automaticamente le carte + Salvare e compilare automaticamente le carte - Salva e compila i metodi di pagamento + Salva e compila i metodi di pagamento - I dati sono crittati + I dati sono crittati - %s critta tutti i metodi di pagamento salvati + %s critta tutti i metodi di pagamento salvati Sincronizza le carte tra più dispositivi Sincronizza carte di credito - Aggiungi una carta di credito + Aggiungi una carta di credito - Aggiungi carta + Aggiungi carta - Gestione carte salvate + Gestione carte salvate - Gestisci carte + Gestisci carte Aggiungi indirizzo Gestione indirizzi - Salvare e compilare automaticamente gli indirizzi + Salvare e compilare automaticamente gli indirizzi - Salva e compila indirizzi + Salva e compila indirizzi - Includere informazioni come numeri, email e indirizzi di spedizione + Includere informazioni come numeri, email e indirizzi di spedizione - Include numeri di telefono e indirizzi email + Include numeri di telefono e indirizzi email Aggiungi carta @@ -1887,9 +1902,9 @@ Elimina carta - Eliminare questa carta di credito? + Eliminare questa carta di credito? - Eliminare la carta? + Eliminare la carta? Elimina @@ -1903,24 +1918,24 @@ Carte salvate - Inserire un numero di carta di credito valido + Inserire un numero di carta di credito valido - Inserisci un numero di carta valido + Inserisci un numero di carta valido - Compilare questo campo + Compilare questo campo - Aggiungi un nome + Aggiungi un nome Sblocca per visualizzare le carte di credito salvate - Proteggi le tue carte di credito + Proteggi le tue carte di credito - Proteggi i metodi di pagamento salvati + Proteggi i metodi di pagamento salvati - Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le carte di credito salvate. + Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare le carte di credito salvate. - Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare i metodi di pagamento salvati. + Imposta una sequenza di blocco, PIN o password per impedire a chi si impossessa del dispositivo di visualizzare i metodi di pagamento salvati. Imposta adesso @@ -1929,10 +1944,10 @@ Sblocca il dispositivo - Sblocca per utilizzare le informazioni delle carte di credito salvate + Sblocca per utilizzare le informazioni delle carte di credito salvate - Sblocca per utilizzare i metodi di pagamento salvati + Sblocca per utilizzare i metodi di pagamento salvati Aggiungi indirizzo @@ -1940,11 +1955,13 @@ Gestione indirizzi - Nome + Nome - Secondo nome + Secondo nome - Cognome + Cognome + + Nome Indirizzo @@ -1970,9 +1987,9 @@ Elimina indirizzo - Eliminare questo indirizzo? + Eliminare questo indirizzo? - Eliminare questo indirizzo? + Eliminare questo indirizzo? Elimina @@ -2070,49 +2087,49 @@ Modifica - Rimuovere queste credenziali? + Rimuovere queste credenziali? - Eliminare questa password? + Eliminare questa password? Rimuovi Annulla - Opzioni credenziali + Opzioni credenziali - Opzioni password + Opzioni password - Il campo di testo modificabile per l’indirizzo web delle credenziali + Il campo di testo modificabile per l’indirizzo web delle credenziali - Il campo di testo modificabile per l’indirizzo del sito web. + Il campo di testo modificabile per l’indirizzo del sito web. - Il campo di testo modificabile per il nome utente delle credenziali + Il campo di testo modificabile per il nome utente delle credenziali - Il campo di testo modificabile per il nome utente. + Il campo di testo modificabile per il nome utente. - Il campo di testo modificabile per la password delle credenziali + Il campo di testo modificabile per la password delle credenziali - Il campo di testo modificabile per la password. + Il campo di testo modificabile per la password. - Salva le modifiche alle credenziali. + Salva le modifiche alle credenziali. - Salva modifiche. + Salva modifiche. - Modifica + Modifica - Modifica password + Modifica password - Aggiungi nuove credenziali + Aggiungi nuove credenziali - Aggiungi password + Aggiungi password - Password obbligatoria + Password obbligatoria - Inserisci una password + Inserisci una password - Nome utente obbligatorio + Nome utente obbligatorio - Inserisci un nome utente + Inserisci un nome utente Nome server obbligatorio @@ -2137,14 +2154,14 @@ Connetti un altro dispositivo. Esegui nuovamente l’accesso. - + Attiva la sincronizzazione delle schede. - Non risulta alcuna scheda aperta in Firefox negli altri dispositivi. - + Non risulta alcuna scheda aperta in LeOSium negli altri dispositivi. + Visualizza un elenco delle schede aperte in altri dispositivi. - + Accedi per sincronizzare @@ -2196,7 +2213,7 @@ Chiudi automaticamente dopo un mese? - Firefox può chiudere le schede che non hai visualizzato nell’ultimo mese. + LeOSium può chiudere le schede che non hai visualizzato nell’ultimo mese. ATTIVA CHIUSURA AUTOMATICA @@ -2205,8 +2222,8 @@ Chiusura automatica attiva - - Firefox Suggest + + LeOSium Suggest Ricerca Google @@ -2217,7 +2234,7 @@ Cambia il browser predefinito - Apri link da siti web, email e messaggi in Firefox per impostazione predefinita. + Apri link da siti web, email e messaggi in LeOSium per impostazione predefinita. Elimina @@ -2226,7 +2243,7 @@ Fare clic per ulteriori dettagli - Vai su + Vai su Chiudi @@ -2241,7 +2258,7 @@ Con tecnologia %s. - Parte della famiglia Firefox. %s + Parte della famiglia LeOSium. %s Ulteriori informazioni @@ -2267,8 +2284,6 @@ Valutazione rettificata - Recensioni inaffidabili rimosse - Basato su recensioni affidabili In evidenza dalle recensioni recenti @@ -2295,13 +2310,13 @@ Impostazioni - Mostra annunci nella verifica recensioni + Mostra annunci in Verifica recensioni Verranno visualizzati annunci occasionali per prodotti pertinenti. Promuoviamo solo prodotti con recensioni affidabili. %s Ulteriori informazioni - Disattiva verifica recensioni + Disattiva Verifica recensioni Altri prodotti da valutare @@ -2326,10 +2341,6 @@ Segnala che il prodotto è disponibile - - Verifica qualità recensioni - - Verifica qualità recensioni Verifica qualità recensioni (%s) @@ -2368,22 +2379,28 @@ Verifica qualità recensioni Prova la nostra guida alle recensioni di prodotti - + Scopri quanto sono affidabili le recensioni dei prodotti su %1$s prima di acquistarli. Verifica recensioni, una funzione sperimentale di %2$s, è integrata direttamente nel browser. Funziona anche su %3$s e %4$s. - + Scopri quanto sono affidabili le recensioni dei prodotti su %1$s prima di acquistarli. Verifica recensioni, una funzione sperimentale di %2$s, è integrata direttamente nel browser. Utilizzando la tecnologia di %1$s by Mozilla, ti aiutiamo a evitare recensioni di parte e non autentiche. Il nostro modello di intelligenza artificiale migliora costantemente per proteggerti mentre fai acquisti. %2$s Ulteriori informazioni - Selezionando “Sì, provala” accetti l’%2$s e i %3$s di %1$s by Mozilla. + Selezionando “Sì, provala” accetti l’%2$s e i %3$s di %1$s by Mozilla. Selezionando “Sì, provalo” accetti le condizioni di %1$s: + + Selezionando “Sì, provala” accetti l’%2$s di %1$s e le %4$s di %3$s. + + Selezionando “Sì, provala” accetti l’%2$s di %1$s e le %4$s di %3$s. - informativa sulla privacy + informativa sulla privacy Informativa sulla privacy + + informativa sulla privacy condizioni di utilizzo del servizio @@ -2395,17 +2412,17 @@ Prima di acquistare, scopri se puoi fidarti delle recensioni di questo prodotto. - Prova verifica recensioni + Prova Verifica recensioni Queste recensioni sono affidabili? Controlla ora per vedere la valutazione rettificata. - Apri verifica recensioni + Apri Verifica recensioni Beta - Apri verifica recensioni + Apri Verifica recensioni - Chiudi verifica recensioni + Chiudi Verifica recensioni %1$s su 5 stelle @@ -2439,7 +2456,7 @@ apri il link per ulteriori informazioni su questa raccolta leggere l’articolo - + aprire il link con ulteriori informazioni %s, intestazione @@ -2454,11 +2471,15 @@ Tradurre questa pagina? + + Pagina tradotta da %1$s a %2$s Prova le traduzioni riservate di %1$s Per garantire la tua privacy, i testi da tradurre non lasciano mai il tuo dispositivo. Nuove lingue e altri miglioramenti presto disponibili. %1$s - + Ulteriori informazioni Traduci da @@ -2466,6 +2487,8 @@ Traduci in Non ora + + Mostra originale Fatto @@ -2488,6 +2511,16 @@ Ulteriori informazioni + + Traduzione… + + + Scaricare la lingua in modalità Risparmio dati (%1$s)? + + Opzioni di traduzione diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index dfb5670d..ec01dffc 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -71,7 +71,7 @@ לא להשאיר עקבות במכשיר זה ‏%1$s מוחק את העוגיות, ההיסטוריה ונתוני האתר שלך כאשר כל הלשוניות הפרטיות שלך נסגרות. %2$s תרגום הדף + + הדף תורגם מ%1$s ל%2$s. + שפה נבחרת @@ -329,13 +334,23 @@ - הצהרת הפרטיות של Firefox - + הצהרת הפרטיות של LeOSium + + מידע נוסף בהצהרת הפרטיות שלנו אנחנו אוהבים לשמור עליך + + גלו מדוע מיליונים אוהבים את LeOSium + + גלישה בטוחה עם אפשרויות נוספות הדפדפן שלנו שמגובה בקרן ללא מטרות רווח מסייע למנוע מחברות לעקוב אחריך בסתר ברחבי הרשת. + יותר מ־100 מיליון אנשים מגנים על הפרטיות שלהם על־ידי בחירה בדפדפן שמגובה על־ידי עמותה שאינה למטרות רווח. + + רכיבי מעקב ידועים? נחסמים באופן אוטומטי. הרחבות? נסו את כל ה־700 שיש לנו. קובצי PDF? עם הקורא המובנה שלנו קל לנהל אותם. + הדפדפן שלנו שמגובה בקרן ללא מטרות רווח מסייע למנוע מחברות לעקוב אחריך בסתר ברחבי הרשת.\n\nמידע נוסף בהצהרת הפרטיות שלנו. @@ -347,32 +362,32 @@ להישאר מוצפן במעבר בין מכשירים - כאשר החשבון שלך מחובר ומסונכרן, אתה מוגן יותר. Firefox מצפין את הססמאות והסימניות שלך ועוד. + Note: The word "LeOSium" should NOT be translated --> + כאשר החשבון שלך מחובר ומסונכרן, אתה מוגן יותר. LeOSium מצפין את הססמאות והסימניות שלך ועוד. כניסה לא כעת - התרעות עוזרות לך להישאר בטוח יותר עם Firefox + Note: The word "LeOSium" should NOT be translated --> + התרעות עוזרות לך להישאר בטוח יותר עם LeOSium - לשלוח לשוניות בין המכשירים שלך בצורה מאובטחת ולהיחשף ליכולות פרטיות נוספות ב־Firefox. + Note: The word "LeOSium" should NOT be translated --> + לשלוח לשוניות בין המכשירים שלך בצורה מאובטחת ולהיחשף ליכולות פרטיות נוספות ב־LeOSium. הפעלת התרעות לא כעת - נסו את ווידג’ט החיפוש של Firefox + Note: The word "LeOSium" should NOT be translated --> + נסו את ווידג’ט החיפוש של LeOSium - עם Firefox במסך הבית שלך, תהיה לך גישה קלה לדפדפן ששם את הפרטיות בעדיפות ראשונה, ושחוסם רכיבי מעקב חוצי אתרים. + Note: The word "LeOSium" should NOT be translated --> + עם LeOSium במסך הבית שלך, תהיה לך גישה קלה לדפדפן ששם את הפרטיות בעדיפות ראשונה, ושחוסם רכיבי מעקב חוצי אתרים. - הוספת ווידג’ט של Firefox + Note: The word "LeOSium" should NOT be translated --> + הוספת ווידג’ט של LeOSium לא כעת @@ -412,10 +427,10 @@ הצעות ממנועי חיפוש העדפות שורת הכתובת - - שורת הכתובת - Firefox Suggest - - מידע נוסף על Firefox Suggest + + שורת הכתובת - LeOSium Suggest + + מידע נוסף על LeOSium Suggest דירוג ב־Google Play השלמה אוטומטית של כתובות אתרים - + הצעות מנותני חסות - תמיכה ב־%1$s עם הצעות ממומנות מדי פעם - הצעות מאת %1$s - + קבלת הצעות מהאינטרנט הקשורות לחיפוש שלך פתיחת קישורים ביישומונים @@ -643,7 +658,7 @@ מידע נוסף - + ‏%s קלאסי @@ -663,8 +678,8 @@ תוספות חדשות זמינות כעת - - יש לנו יותר מ־100 הרחבות חדשות המאפשרות לך להפוך את Firefox לשלך. + + יש לנו יותר מ־100 הרחבות חדשות המאפשרות לך להפוך את LeOSium לשלך. סיור בתוספות @@ -692,9 +707,9 @@ סימניות - כניסות + כניסות - ססמאות + ססמאות לשוניות פתוחות @@ -720,9 +735,9 @@ ‏%1$s על %2$s %3$s - כרטיסי אשראי + כרטיסי אשראי - אמצעי תשלום + אמצעי תשלום כתובות @@ -730,7 +745,7 @@ לשוניות שהתקבלו - התרעות עבור לשוניות שהתקבלו ממכשירי Firefox אחרים. + התרעות עבור לשוניות שהתקבלו ממכשירי LeOSium אחרים. התקבלה לשונית @@ -913,7 +928,7 @@ פעיל - + ‏%1$s עשוי להתקין ולהריץ מחקרים מדי פעם בפעם. מידע נוסף @@ -1290,7 +1305,7 @@ חיבור מכשיר נוסף - כדי לשלוח לשונית, יש להתחבר ל־Firefox לפחות במכשיר אחד נוסף. + כדי לשלוח לשונית, יש להתחבר ל־LeOSium לפחות במכשיר אחד נוסף. הבנתי @@ -1317,10 +1332,10 @@ - ‏Firefox הוא מהיר ופרטי + ‏LeOSium הוא מהיר ופרטי - הגדרת Firefox כדפדפן ברירת המחדל שלך + הגדרת LeOSium כדפדפן ברירת המחדל שלך נסו את הגלישה הפרטית - אנא עזרו לשפר את Firefox על־ידי השתתפות בסקר קצר. + אנא עזרו לשפר את LeOSium על־ידי השתתפות בסקר קצר. לקיחת סקר @@ -1490,16 +1505,16 @@ סריקת הקוד - https://firefox.com/pair]]> + https://firefox.com/pair]]> מוכן לסריקה התחברות באמצעות המצלמה שלך שימוש בדוא״ל במקום - - באפשרותך ליצור אחד כדי לסנכרן את Firefox בין מכשירים.]]> - + + באפשרותך ליצור אחד כדי לסנכרן את LeOSium בין מכשירים.]]> + ‏‏%s יפסיק להסתנכרן עם החשבון שלך, אבל לא ימחק את נתוני הגלישה שלך ממכשיר זה. התנתקות @@ -1515,7 +1530,7 @@ הגנת מעקב מתקדמת כעת כולל הגנת עוגיות מלאה, המחסום החזק ביותר שלנו עד כה נגד רכיבי מעקב חוצי אתרים. - + ‏%s מגן עליך מפני רוב רכיבי הריגול שעוקבים אחר הפעילות המקוונת שלך. מידע נוסף @@ -1613,6 +1628,9 @@ מנקה עוגיות המוגדרות על־ידי הפניות לאתרי מעקב ידועים. + + החסימה של חלק מרכיבי המעקב המסומנים למטה בוטלה באופן חלקי בדף זה מכיוון שתיקשרת איתם *. מידע נוסף @@ -1664,21 +1682,21 @@ באפשרותך להוסיף בקלות אתר זה למסך הבית של המכשיר שלך כדי לקבל גישה מיידית ולגלוש מהר יותר עם חוויה שמדמה שימוש ביישומון. - כניסות וססמאות + כניסות וססמאות - ססמאות + ססמאות - שמירת כניסות וססמאות + שמירת כניסות וססמאות - שמירת ססמאות + שמירת ססמאות לבקש לשמור לעולם לא לשמור - + מילוי אוטומטי ב־%1$s - + מילוי ושמירת שמות משתמשים וססמאות באתרים בזמן שימוש ב־%1$s. מילוי אוטומטי ביישומונים אחרים @@ -1687,47 +1705,47 @@ מילוי ושמירת שמות משתמשים וססמאות ביישומונים אחרים במכשיר שלך. - הוספת כניסה + הוספת כניסה - הוספת ססמה + הוספת ססמה - - סנכרון כניסות - סנכרון ססמאות + סנכרון כניסות + + סנכרון ססמאות - סנכרון כניסות בין מכשירים + סנכרון כניסות בין מכשירים - סנכרון ססמאות בין מכשירים + סנכרון ססמאות בין מכשירים - כניסות שמורות + כניסות שמורות - ססמאות שמורות + ססמאות שמורות - הכניסות שיישמרו או יסתנכרנו אל %s יופיעו כאן. + הכניסות שיישמרו או יסתנכרנו אל %s יופיעו כאן. - הססמאות שיישמרו או יסונכרנו עם %s יופיעו כאן. כל הססמאות השמורות הינן מוצפנות. + הססמאות שיישמרו או יסונכרנו עם %s יופיעו כאן. כל הססמאות השמורות הינן מוצפנות. - מידע נוסף על Sync. + מידע נוסף על Sync. - מידע נוסף על סנכרון + מידע נוסף על סנכרון חריגות - כניסות וססמאות שאינן שמורות יופיעו כאן. + כניסות וססמאות שאינן שמורות יופיעו כאן. - ‏%s לא ישמור ססמאות לאתרים המפורטים כאן. + ‏%s לא ישמור ססמאות לאתרים המפורטים כאן. - כניסות וססמאות לא יישמרו עבור אתרים אלו. + כניסות וססמאות לא יישמרו עבור אתרים אלו. - ‏%s לא ישמור ססמאות לאתרים אלו. + ‏%s לא ישמור ססמאות לאתרים אלו. מחיקת כל החריגות - חיפוש כניסות + חיפוש כניסות - חיפוש ססמאות + חיפוש ססמאות אתר @@ -1755,17 +1773,17 @@ הסתרת ססמה - יש לבטל את הנעילה כדי להציג את הכניסות השמורות שלך + יש לבטל את הנעילה כדי להציג את הכניסות השמורות שלך - יש לבטל את הנעילה כדי להציג את הססמאות השמורות שלך + יש לבטל את הנעילה כדי להציג את הססמאות השמורות שלך - שמירה מאובטחת של הכניסות והססמאות שלך + שמירה מאובטחת של הכניסות והססמאות שלך - אבטחת הססמאות השמורות שלך + אבטחת הססמאות השמורות שלך - ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על פרטי הגישה והססמאות השמורות שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. + ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על פרטי הגישה והססמאות השמורות שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. - ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על הססמאות השמורות שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. + ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על הססמאות השמורות שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. מאוחר יותר @@ -1783,10 +1801,10 @@ שימוש אחרון - תפריט מיון כניסות + תפריט מיון כניסות - תפריט מיון ססמאות + תפריט מיון ססמאות @@ -1794,44 +1812,44 @@ כתובות - כרטיסי אשראי + כרטיסי אשראי - אמצעי תשלום + אמצעי תשלום - שמירה ומילוי אוטומטי של כרטיסים + שמירה ומילוי אוטומטי של כרטיסים - שמירה ומילוי אמצעי תשלום + שמירה ומילוי אמצעי תשלום - הנתונים מוצפנים + הנתונים מוצפנים - ‏%s מצפין את כל אמצעי התשלום השמורים + ‏%s מצפין את כל אמצעי התשלום השמורים סנכרון כרטיסים בין מכשירים סנכרון כרטיסים - הוספת כרטיס אשראי + הוספת כרטיס אשראי - הוספת כרטיס + הוספת כרטיס - ניהול כרטיסים שמורים + ניהול כרטיסים שמורים - ניהול כרטיסים + ניהול כרטיסים הוספת כתובת ניהול כתובות - שמירה ומילוי אוטומטי של כתובות + שמירה ומילוי אוטומטי של כתובות - שמירה ומילוי כתובות + שמירה ומילוי כתובות - לכלול מידע כמו מספרים, כתובות דוא״ל וכתובות למשלוח + לכלול מידע כמו מספרים, כתובות דוא״ל וכתובות למשלוח - כולל מספרי טלפון וכתובות דוא״ל + כולל מספרי טלפון וכתובות דוא״ל הוספת כרטיס @@ -1852,9 +1870,9 @@ מחיקת כרטיס - האם ברצונך למחוק את כרטיס האשראי הזה? + האם ברצונך למחוק את כרטיס האשראי הזה? - למחוק את הכרטיס? + למחוק את הכרטיס? מחיקה @@ -1868,24 +1886,24 @@ כרטיסים שמורים - נא להכניס מספר כרטיס אשראי תקין + נא להכניס מספר כרטיס אשראי תקין - נא להכניס מספר כרטיס תקני + נא להכניס מספר כרטיס תקני - נא למלא שדה זה + נא למלא שדה זה - הוספת שם + הוספת שם יש לבטל את הנעילה כדי להציג את הכרטיסים השמורים שלך - אבטחת כרטיסי האשראי שלך + אבטחת כרטיסי האשראי שלך - אבטחת אמצעי התשלום השמורים שלך + אבטחת אמצעי התשלום השמורים שלך - ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על כרטיסי האשראי השמורים שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. + ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על כרטיסי האשראי השמורים שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. - ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על אמצעי התשלום השמורים שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. + ניתן להגדיר תבנית נעילת מכשיר, קוד או ססמה כדי להגן על אמצעי התשלום השמורים שלך מפני גורמים בלתי מהימנים שמחזיקים במכשיר שלך. להגדיר כעת @@ -1894,10 +1912,10 @@ שחרור נעילת המכשיר שלך - יש לבטל את הנעילה כדי להשתמש בפרטי כרטיס האשראי השמור + יש לבטל את הנעילה כדי להשתמש בפרטי כרטיס האשראי השמור - יש לבטל את הנעילה כדי להשתמש באמצעי התשלום השמורים שלך + יש לבטל את הנעילה כדי להשתמש באמצעי התשלום השמורים שלך הוספת כתובת @@ -1905,11 +1923,13 @@ ניהול כתובות - שם פרטי + שם פרטי - שם אמצעי + שם אמצעי - שם משפחה + שם משפחה + + שם כתובת רחוב @@ -1932,10 +1952,10 @@ מחיקת כתובת - האם ברצונך למחוק את כתובת זו? + האם ברצונך למחוק את כתובת זו? - למחוק את הכתובת הזאת? + למחוק את הכתובת הזאת? מחיקה @@ -2034,49 +2054,49 @@ עריכה - האם ברצונך למחוק את כניסה זו? + האם ברצונך למחוק את כניסה זו? - האם ברצונך למחוק ססמה זו? + האם ברצונך למחוק ססמה זו? מחיקה ביטול - אפשרויות כניסה + אפשרויות כניסה - אפשרויות ססמה + אפשרויות ססמה - שדה הטקסט הניתן לעריכה עבור כתובת האתר של הכניסה. + שדה הטקסט הניתן לעריכה עבור כתובת האתר של הכניסה. - שדה הטקסט הניתן לעריכה עבור כתובת האתר. + שדה הטקסט הניתן לעריכה עבור כתובת האתר. - שדה הטקסט הניתן לעריכה עבור שם המשתמש של הכניסה. + שדה הטקסט הניתן לעריכה עבור שם המשתמש של הכניסה. - שדה הטקסט הניתן לעריכה עבור שם המשתמש. + שדה הטקסט הניתן לעריכה עבור שם המשתמש. - שדה הטקסט הניתן לעריכה עבור הססמה של הכניסה. + שדה הטקסט הניתן לעריכה עבור הססמה של הכניסה. - שדה הטקסט הניתן לעריכה עבור הססמה. + שדה הטקסט הניתן לעריכה עבור הססמה. - שמירת השינויים של הכניסה. + שמירת השינויים של הכניסה. - שמירת שינויים. + שמירת שינויים. - עריכה + עריכה - עריכת הססמה + עריכת הססמה - הוספת כניסה חדשה + הוספת כניסה חדשה - הוספת ססמה + הוספת ססמה - נדרשת ססמה + נדרשת ססמה - נא להכניס ססמה + נא להכניס ססמה - דרוש שם משתמש + דרוש שם משתמש - נא להכניס שם משתמש + נא להכניס שם משתמש דרוש שם מארח @@ -2101,14 +2121,14 @@ נא לחבר מכשיר נוסף. נא לאמת מחדש. - + נא להפעיל סנכרון לשוניות. - אין לך לשוניות פתוחות ב־Firefox בשאר המכשירים שלך. - + אין לך לשוניות פתוחות ב־LeOSium בשאר המכשירים שלך. + הצגת רשימת לשוניות משאר המכשירים שלך. - + יש להתחבר כדי לסנכרן @@ -2161,7 +2181,7 @@ לסגור באופן אוטומטי לאחר חודש אחד? - ‏Firefox יכול לסגור לשוניות שלא צפית בהן במהלך החודש האחרון. + ‏LeOSium יכול לסגור לשוניות שלא צפית בהן במהלך החודש האחרון. הפעלת סגירה אוטומטית @@ -2169,8 +2189,8 @@ סגירה אוטומטית מופעלת - - הצעות של Firefox + + הצעות של LeOSium חיפוש ב־Google @@ -2181,7 +2201,7 @@ החלפת דפדפן ברירת המחדל שלך - הגדרת קישורים מאתרים, מהודעות דוא״ל ומהודעות לפתיחה אוטומטית ב־Firefox. + הגדרת קישורים מאתרים, מהודעות דוא״ל ומהודעות לפתיחה אוטומטית ב־LeOSium. הסרה @@ -2190,7 +2210,7 @@ יש ללחוץ לפרטים נוספים - ניווט למעלה + ניווט למעלה סגירה @@ -2205,7 +2225,7 @@ מופעל על־ידי %s. - חלק ממשפחת Firefox. %s + חלק ממשפחת LeOSium. %s מידע נוסף @@ -2231,8 +2251,6 @@ דירוג מותאם - סקירות בלתי אמינות הוסרו - מבוסס על סקירות אמינות דגשים מהסקירות האחרונות @@ -2287,10 +2305,6 @@ אם מוצר זה חזר למלאי, נא לדווח על כך ואנו נעבוד על בדיקת הסקירות. שליחת דיווח שמוצר זה חזר למלאי - - בתהליך בדיקת איכות הסקירות - - בתהליך בדיקת איכות הסקירות בתהליך בדיקת איכות הסקירות (%s) @@ -2328,9 +2342,9 @@ בדיקת איכות הסקירות נסו את המדריך המהימן שלנו לסקירות מוצרים - + ניתן לבדוק עד כמה ביקורות מוצר אמינות ב־%1$s לפני הקנייה. בודק הסקירות, תכונה ניסיונית מאת %2$s, מובנה ישירות בדפדפן. הוא עובד גם על %3$s ו־%4$s. - + ניתן לבדוק עד כמה ביקורות מוצר אמינות ב־%1$s לפני הקנייה. בודק הסקירות, תכונה ניסיונית מאת %2$s, מובנה ישירות בדפדפן. באמצעות הכוח של %1$s מאת Mozilla, אנו עוזרים לך להימנע מסקירות מוטות ולא אותנטיות. מודל הבינה המלאכותית שלנו משתפר תמיד כדי להגן עליך בזמן הקנייה. %2$s @@ -2338,13 +2352,19 @@ מידע נוסף - בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה ל%2$s ול%3$s של %1$s מאת Mozilla. + בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה ל%2$s ול%3$s של %1$s מאת Mozilla. בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה לתנאים הבאים מאת %1$s: + + בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה ל%2$s של %1$s ול%4$s של %3$s. + + בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה ל%2$s של %1$s ול%4$s של %3$s. - הצהרת הפרטיות + מדיניות הפרטיות מדיניות הפרטיות + + הצהרת הפרטיות תנאי השימוש @@ -2400,7 +2420,7 @@ לפתוח קישור כדי ללמוד עוד על אוסף זה לקרוא את המאמר - + לפתוח את הקישור לקבלת מידע נוסף %s, כותרת @@ -2415,11 +2435,15 @@ לתרגם את הדף הזה? + + הדף תורגם מ%1$s ל%2$s לנסות תרגומים פרטיים ב־%1$s למען הפרטיות שלך, תרגומים לעולם אינם עוזבים את המכשיר שלך. שפות חדשות ושיפורים בקרוב! %1$s - + מידע נוסף שפת מקור @@ -2427,6 +2451,8 @@ שפת יעד לא כעת + + הצגת המקור סיום @@ -2449,6 +2475,16 @@ מידע נוסף + + בתהליך תרגום… + + + להוריד את השפה במצב חיסכון בנתונים (%1$s)? + + אפשרויות תרגום diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 2f8eff3a..49da16a4 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -74,7 +74,7 @@ この端末を追跡させません すべてのプライベートタブを閉じると、%1$s により Cookie、履歴、サイトデータが削除されます。%2$s ページを翻訳 + + ページを %1$s から %2$s に翻訳しました。 + 選択した言語 @@ -336,13 +341,23 @@ - Firefox のプライバシー通知 - + LeOSium のプライバシー通知 + + 詳細はプライバシー通知をご覧ください 私たちはあなたの安全を守りたいと願っています + + LeOSium が選ばれる理由 + + 多くの選択肢を持つ安全なブラウジング 非営利で作られた私たちのブラウザーは、企業によるウェブ上の密かな追跡を阻止するのに役立ちます。 + 1 億人以上の人が、非営利団体が支援するブラウザーを選択してプライバシーを保護しています。 + + 既知のトラッカーが自動的にブロックされます。700 個すべての拡張機能を試せます。PDF は内蔵のリーダーで管理が簡単になります。 + 非営利で作られた私たちのブラウザーは、企業によるウェブ上の密かな追跡を阻止するのに役立ちます。\n\n詳細はプライバシー通知をご覧ください。 @@ -355,33 +370,33 @@ 端末間の移動時に暗号化した状態を維持します - ログインして同期すると、Firefox がユーザーのパスワードやブックマークなどを暗号化して、より安全に使用できます。 + Note: The word "LeOSium" should NOT be translated --> + ログインして同期すると、LeOSium がユーザーのパスワードやブックマークなどを暗号化して、より安全に使用できます。 ログイン 後で - 通知をオンにして Firefox で安全性を高めましょう + Note: The word "LeOSium" should NOT be translated --> + 通知をオンにして LeOSium で安全性を高めましょう - 端末間で安全にタブを送信するなど、Firefox の他のプライバシー機能を見つけましょう。 + Note: The word "LeOSium" should NOT be translated --> + 端末間で安全にタブを送信するなど、LeOSium の他のプライバシー機能を見つけましょう。 通知をオンにする 後で - Firefox 検索ウィジェットを試す + Note: The word "LeOSium" should NOT be translated --> + LeOSium 検索ウィジェットを試す - Firefox をホーム画面に置いておくと、クロスサイトトラッカーをブロックするプライバシー優先のブラウザーに簡単にアクセスできます。 + Note: The word "LeOSium" should NOT be translated --> + LeOSium をホーム画面に置いておくと、クロスサイトトラッカーをブロックするプライバシー優先のブラウザーに簡単にアクセスできます。 - Firefox ウィジェットを追加 + Note: The word "LeOSium" should NOT be translated --> + LeOSium ウィジェットを追加 後で @@ -422,10 +437,10 @@ 検索エンジンからの検索候補 アドレスバーの設定 - - アドレスバー - Firefox Suggest - - Firefox Suggest について + + アドレスバー - LeOSium Suggest + + LeOSium Suggest について Google Play で評価する 自動補完 URL - + スポンサーからの提案 - スポンサーからの提案を随時表示して %1$s を支援します - %1$s からの提案 - + 検索語句に関連した提案をウェブから取得します リンクを外部アプリで開く @@ -653,7 +668,7 @@ 詳細情報 - + %s の定番 アーティストシリーズ @@ -671,8 +686,8 @@ 新しいアドオンが利用可能になりました - - あなただけの Firefox にカスタマイズできる 100 以上の新しい拡張機能を確認してください。 + + あなただけの LeOSium にカスタマイズできる 100 以上の新しい拡張機能を確認してください。 アドオンを探す @@ -701,9 +716,9 @@ ブックマーク - ログイン情報 + ログイン情報 - パスワード + パスワード 開いているタブ @@ -729,9 +744,9 @@ %2$s %3$s 上の %1$s - クレジットカード情報 + クレジットカード情報 - 支払い方法 + 支払い方法 住所 @@ -739,7 +754,7 @@ 受信したタブ - 他の Firefox 端末から受信したタブの通知。 + 他の LeOSium 端末から受信したタブの通知。 受信したタブ @@ -922,7 +937,7 @@ 削除 有効 - + %1$s が調査をインストールして実行することがあります。 詳細情報 @@ -1304,7 +1319,7 @@ 別の端末を接続 - タブを送信するには、少なくとも 1 台の他の端末で Firefox にログインしてください。 + タブを送信するには、少なくとも 1 台の他の端末で LeOSium にログインしてください。 OK @@ -1333,10 +1348,10 @@ - Firefox は動作が軽く個人使用に最適です + LeOSium は動作が軽く個人使用に最適です - Firefox を既定のブラウザーに設定しましょう + LeOSium を既定のブラウザーに設定しましょう プライベートブラウジングを試す - Firefox の改善のために簡単なアンケートへの回答をお願いします。 + LeOSium の改善のために簡単なアンケートへの回答をお願いします。 アンケートに答える @@ -1508,16 +1523,16 @@ QR コードのスキャン - https://firefox.com/pair を開いてください]]> + https://firefox.com/pair を開いてください]]> スキャンの準備ができました カメラを使ってログイン 代わりにメールアドレスを使う - - アカウントを作成して Firefox を端末間で同期しましょう。]]> - + + アカウントを作成して LeOSium を端末間で同期しましょう。]]> + %s はあなたのアカウントとの同期を中止しますが、この端末上の閲覧履歴は削除されません。 接続を解除 @@ -1533,7 +1548,7 @@ 強化型トラッキング防止 包括的 Cookie 保護が登場しました。これまでで最も強力なクロスサイトトラッカー遮断機能です。 - + %s はインターネット上で個人の行動を追跡する数多くのトラッカーからあなたを守ります。 詳細情報 @@ -1685,21 +1700,21 @@ このウェブサイトを端末のホーム画面に簡単な操作で追加できます。アプリのような感覚で素早くアクセスして閲覧しましょう。 - ログイン情報とパスワード + ログイン情報とパスワード - パスワード + パスワード - ログイン情報を保存する + ログイン情報を保存する - パスワードを保存 + パスワードを保存 保存するか確認する 保存しない - + %1$s で自動入力する - + %1$s の使用中、ウェブサイトにユーザー名とパスワードを入力して保存します。 他のアプリで自動入力する @@ -1707,47 +1722,47 @@ 端末上の他のアプリにユーザー名とパスワードを入力します。 - ログイン情報を追加 + ログイン情報を追加 - パスワードを追加 + パスワードを追加 - - ログイン情報を同期 - パスワードを同期 + ログイン情報を同期 + + パスワードを同期 - 端末間でログイン情報を同期します + 端末間でログイン情報を同期します - 端末間でパスワードを同期 + 端末間でパスワードを同期 - 保存されたログイン情報 + 保存されたログイン情報 - 保存されたパスワード + 保存されたパスワード - 端末に保存または %s と同期したログイン情報がここに表示されます。 + 端末に保存または %s と同期したログイン情報がここに表示されます。 - %s に保存または同期したパスワードがこのリストに表示されます。保存されたすべてのパスワードは暗号化されます。 + %s に保存または同期したパスワードがこのリストに表示されます。保存されたすべてのパスワードは暗号化されます。 - Sync についての詳細情報。 + Sync についての詳細情報。 - Sync についての詳細情報 + Sync についての詳細情報 例外 - ログイン情報が保存されないサイトがここに表示されます。 + ログイン情報が保存されないサイトがここに表示されます。 - %s は、このリストに表示されているサイトのパスワードを保存しません。 + %s は、このリストに表示されているサイトのパスワードを保存しません。 - これらのサイトではログイン情報が保存されません。 + これらのサイトではログイン情報が保存されません。 - %s はこれらのサイトのパスワードを保存しません。 + %s はこれらのサイトのパスワードを保存しません。 すべての例外を削除 - ログイン情報を検索 + ログイン情報を検索 - パスワードを検索 + パスワードを検索 サイト @@ -1775,17 +1790,17 @@ パスワードを隠す - ロック解除して保存されたログイン情報を表示します + ロック解除して保存されたログイン情報を表示します - 保存されたパスワードを表示するにはロック解除してください + 保存されたパスワードを表示するにはロック解除してください - ログイン情報とパスワードの保護 + ログイン情報とパスワードの保護 - 保存されたパスワードを保護してください + 保存されたパスワードを保護してください - 端末のロックパターンや PIN、パスワードを設定して、保存されたログイン情報とパスワードを他人の不正なアクセスから保護しましょう。 + 端末のロックパターンや PIN、パスワードを設定して、保存されたログイン情報とパスワードを他人の不正なアクセスから保護しましょう。 - 端末のロックパターンや PIN、パスワードを設定して、保存されたパスワードを他人の不正なアクセスから保護しましょう。 + 端末のロックパターンや PIN、パスワードを設定して、保存されたパスワードを他人の不正なアクセスから保護しましょう。 後で @@ -1803,10 +1818,10 @@ 最終使用日時 - ログイン情報メニューの並べ替え + ログイン情報メニューの並べ替え - パスワードを並べ替えます + パスワードを並べ替えます @@ -1814,44 +1829,44 @@ 所在地フォーム - クレジットカード + クレジットカード - 支払い方法 + 支払い方法 - カード情報を保存して自動入力する + カード情報を保存して自動入力する - 支払い方法を保存して入力する + 支払い方法を保存して入力する - データは暗号化されています + データは暗号化されています - %s は保存したすべての支払い方法を暗号化します + %s は保存したすべての支払い方法を暗号化します 端末間でカード情報を同期する クレジットカード情報を同期 - クレジットカードを追加 + クレジットカードを追加 - カード情報を追加 + カード情報を追加 - 保存したカードを管理 + 保存したカードを管理 - カード情報を管理 + カード情報を管理 アドレスを追加 アドレスの管理 - アドレスを保存して自動入力する + アドレスを保存して自動入力する - 住所を保存して入力する + 住所を保存して入力する - カード番号、メールアドレス、配送先などの情報を含める + カード番号、メールアドレス、配送先などの情報を含める - 電話番号とメールアドレスを含みます + 電話番号とメールアドレスを含みます カードの追加 @@ -1873,9 +1888,9 @@ カードを削除 - 本当にこのクレジットカード情報を削除してもよろしいですか? + 本当にこのクレジットカード情報を削除してもよろしいですか? - カード情報を削除しますか? + カード情報を削除しますか? 削除 @@ -1889,25 +1904,25 @@ 保存したカード - 有効なクレジットカード番号を入力してください + 有効なクレジットカード番号を入力してください - 正しいカード番号を入力してください + 正しいカード番号を入力してください - このフィールドは入力必須です + このフィールドは入力必須です - 名前を追加してください + 名前を追加してください 保存されたカード情報を表示するにはロック解除してください - クレジットカード情報の保護 + クレジットカード情報の保護 - 保存された支払い方法を保護してください + 保存された支払い方法を保護してください - 端末のロックパターンや PIN、パスワードを設定して、保存されたクレジットカード情報とパスワードを他人の不正なアクセスから保護しましょう。 + 端末のロックパターンや PIN、パスワードを設定して、保存されたクレジットカード情報とパスワードを他人の不正なアクセスから保護しましょう。 - 端末のロックパターンや PIN、パスワードを設定して、保存された支払い方法を他人の不正なアクセスから保護しましょう。 + 端末のロックパターンや PIN、パスワードを設定して、保存された支払い方法を他人の不正なアクセスから保護しましょう。 今すぐ設定 @@ -1916,10 +1931,10 @@ 端末のロック解除 - ロックを解除して保存したクレジットカード情報を使用します + ロックを解除して保存したクレジットカード情報を使用します - 保存された支払い方法を使用するにはロック解除してください + 保存された支払い方法を使用するにはロック解除してください アドレスを追加 @@ -1927,11 +1942,13 @@ アドレスの管理 - + - ミドルネーム + ミドルネーム - + + + 氏名 番地 @@ -1956,9 +1973,9 @@ アドレスを削除 - 本当にこの住所を削除してもよろしいですか? + 本当にこの住所を削除してもよろしいですか? - このアドレスを削除しますか? + このアドレスを削除しますか? 削除 @@ -2056,50 +2073,50 @@ 編集 - このログイン情報を削除してもよろしいですか? + このログイン情報を削除してもよろしいですか? - 本当にこのパスワードを削除してもよろしいですか? + 本当にこのパスワードを削除してもよろしいですか? 削除 キャンセル - ログインオプション + ログインオプション - パスワードのオプション + パスワードのオプション - ログイン情報のウェブアドレスの編集可能なテキストフィールド。 + ログイン情報のウェブアドレスの編集可能なテキストフィールド。 - ウェブサイトのアドレスの編集可能なテキストフィールド。 + ウェブサイトのアドレスの編集可能なテキストフィールド。 - ログイン情報のユーザー名の編集可能なテキストフィールド。 + ログイン情報のユーザー名の編集可能なテキストフィールド。 - ユーザー名の編集可能なテキストフィールド。 + ユーザー名の編集可能なテキストフィールド。 - ログイン情報のパスワードの編集可能なテキストフィールド。 + ログイン情報のパスワードの編集可能なテキストフィールド。 - パスワードの編集可能なテキストフィールド。 + パスワードの編集可能なテキストフィールド。 - 変更を保存してログインします。 + 変更を保存してログインします。 - 変更を保存します。 + 変更を保存します。 - 編集 + 編集 - パスワードを編集 + パスワードを編集 - 新しいログイン情報の追加 + 新しいログイン情報の追加 - パスワードを追加 + パスワードを追加 - パスワードが必要です + パスワードが必要です - パスワードを入力してください + パスワードを入力してください - ユーザー名は必須です + ユーザー名は必須です - ユーザー名を入力してください + ユーザー名を入力してください ホスト名は必須です @@ -2125,13 +2142,13 @@ 再認証してください。 - + タブの同期を有効にしてください。 - 他の端末の Firefox で開いているタブはありません。 - + 他の端末の LeOSium で開いているタブはありません。 + 他の端末のタブの一覧を表示できます。 - + Sync にログイン @@ -2183,7 +2200,7 @@ 1 か月後に自動的に閉じますか? - Firefox は 1 か月以上表示していないタブを閉じることができます。 + LeOSium は 1 か月以上表示していないタブを閉じることができます。 自動的に閉じる @@ -2191,8 +2208,8 @@ 自動的に閉じる機能が有効です - - Firefox Suggest + + LeOSium Suggest Google 検索 @@ -2203,7 +2220,7 @@ 既定のブラウザーを変更しませんか - ウェブサイトやメール、メッセージのリンクを自動的に Firefox で開きます。 + ウェブサイトやメール、メッセージのリンクを自動的に LeOSium で開きます。 削除 @@ -2212,7 +2229,7 @@ 詳細はこちら - 上へ移動します + 上へ移動します 閉じる @@ -2227,7 +2244,7 @@ %s による提供です。 - Firefox ファミリーの一員です。 %s + LeOSium ファミリーの一員です。 %s 詳細情報 @@ -2254,8 +2271,6 @@ レートが調整されています - 信頼できないレビューを削除しました - 信頼できないレビューに基づきます 最近の注目レビュー @@ -2311,10 +2326,6 @@ この製品が再入荷されている場合はご報告ください。その製品レビューを確認します。 製品の在庫があることを報告する - - レビューの品質の確認 - - レビューの品質の確認 レビューの品質の確認 (%s) @@ -2354,22 +2365,28 @@ 製品レビューの信頼できるガイドをお試しください - + 購入する前に、%1$s で製品レビューの信頼性を確認してください。 %2$s の実験的な機能であるレビュー チェッカーはブラウザーに直接組み込まれています。 %3$s と %4$s でも動作します。 - + 購入する前に、%1$s で製品レビューの信頼性を確認してください。 %2$s の実験的な機能であるレビュー チェッカーはブラウザーに直接組み込まれています。 %1$s by Mozilla の機能を利用して偏ったレビューや偽物のレビューを回避できるように支援します。私たち AI モデルは、買い物中のお客様を保護するために常に改善されています。%2$s 詳細情報 - 「はい、試します」を選択すると、%1$s by Mozilla の%2$s および %3$s に同意したものとみなされます。 + 「はい、試します」を選択すると、%1$s by Mozilla の%2$s および %3$s に同意したものとみなされます。 「はい、試します」を選択すると、%1$s の以下の内容に同意したものとみなされます: + + 「はい、試します」を選択すると、%1$s の%2$sおよび %3$s の%4$sに同意したものとみなされます。 + + 「はい、試します」を選択すると、%1$s の%2$sおよび %3$s の%4$sに同意したものとみなされます。 - プライバシーポリシー + プライバシーポリシー プライバシーポリシー + + プライバシー通知 利用規約 @@ -2426,7 +2443,7 @@ このコレクションの詳細についてはリンク先をご覧ください 記事を読む - + リンクを開いて詳細を表示 %s、見出し @@ -2440,11 +2457,15 @@ このページを翻訳しますか? + + ページを %1$s から %2$s に翻訳しました %1$s でプライベート翻訳を試してください プライバシーを重視し、翻訳データは端末内のみで処理されます。対応言語の追加と改善に乞うご期待! %1$s - + 詳細情報 翻訳元 @@ -2452,6 +2473,8 @@ 翻訳先 後で + + 元の言語で表示 完了 @@ -2473,6 +2496,17 @@ 詳細情報 + + 翻訳中… + + + + データ節約モードで言語をダウンロード (%1$s) しますか? + + 翻訳オプション @@ -2620,7 +2654,7 @@ 使用中 - 未使用 + 休止中 プライベート @@ -2632,7 +2666,7 @@ 使用中のタブに追加 - 未使用のタブに追加 + 休止中のタブに追加 プライベートタブに追加 diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index 19ac6ed5..b7252453 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -68,12 +68,12 @@ გამოიყენეთ მოწყობილობა კვალის დაუტოვებლად %1$s წაშლის თქვენს ფუნთუშებს, ისტორიასა და საიტის მონაცემებს ყველა პირადი ფანჯრის დახურვისას. %2$s %1$s წაშლის თქვენს ფუნთუშებს, ისტორიასა და საიტის მონაცემებს ყველა პირადი ჩანართის დახურვისას. %2$s - გამოიყენეთ Firefox ძირითად ბრაუზერად + Note: The word "LeOSium" should NOT be translated --> + გამოიყენეთ LeOSium ძირითად ბრაუზერად ჩვენ ვზრუნავთ თქვენს უსაფრთხოებაზე - Firefox ხალხს მოგებაზე წინ აყენებს და იცავს თქვენს პირად მონაცემებს საიტთაშორისი მეთვალყურეებისგან.\n\nვრცლად იხილეთ პირადულობის განაცხადი. + Note: The word "LeOSium" should NOT be translated --> + LeOSium ხალხს მოგებაზე წინ აყენებს და იცავს თქვენს პირად მონაცემებს საიტთაშორისი მეთვალყურეებისგან.\n\nვრცლად იხილეთ პირადულობის განაცხადი. ჩვენი ბრაუზერი არამომგებიანი დაწესებულებისგან გეხმარებათ აირიდოთ კომპანიებისგან ფარული თვალთვალი ვებსივრცით სარგებლობისას.\n\nვრცლად იხილეთ ჩვენს პირადულობის განაცხადში. გამოიყოლეთ ჩანართები და სანიშნები სხვა მოწყობილობიდან, რომ განაგრძოთ იქიდანვე, სადაც შეჩერდით. - ანგარიშზე შესვლისას და სინქრონიზაციისას კვლავ დაცული რჩებით. Firefox შიფრავს თქვენს პაროლებს, სანიშნებსა და ყველა მონაცემს. + Note: The word "LeOSium" should NOT be translated --> + ანგარიშზე შესვლისას და სინქრონიზაციისას კვლავ დაცული რჩებით. LeOSium შიფრავს თქვენს პაროლებს, სანიშნებსა და ყველა მონაცემს. შესვლა ახლა არა - შეტყობინებები დაგეხმარებათ, სრულყოფილად გამოიყენოთ Firefox + Note: The word "LeOSium" should NOT be translated --> + შეტყობინებები დაგეხმარებათ, სრულყოფილად გამოიყენოთ LeOSium - შეტყობინებები დაგეხმარებათ, მეტად უსაფრთხოდ გამოიყენოთ Firefox + Note: The word "LeOSium" should NOT be translated --> + შეტყობინებები დაგეხმარებათ, მეტად უსაფრთხოდ გამოიყენოთ LeOSium - გაგზავნეთ ჩანართები მოწყობილობებს შორის, მართეთ ჩამოტვირთვები და მიიღეთ რჩევები, რომ სრულყოფილად გამოიყენოთ Firefox. + Note: The word "LeOSium" should NOT be translated --> + გაგზავნეთ ჩანართები მოწყობილობებს შორის, მართეთ ჩამოტვირთვები და მიიღეთ რჩევები, რომ სრულყოფილად გამოიყენოთ LeOSium. - დაცულად გაგზავნეთ ჩანართები თქვენს მოწყობილობებს შორის და აღმოაჩინეთ Firefox-ის სხვა საშუალებები პირადულობისთვის. + Note: The word "LeOSium" should NOT be translated --> + დაცულად გაგზავნეთ ჩანართები თქვენს მოწყობილობებს შორის და აღმოაჩინეთ LeOSium-ის სხვა საშუალებები პირადულობისთვის. შეტყობინებების ჩართვა ახლა არა - სცადეთ Firefox-ის საძიებო სამარჯვი + Note: The word "LeOSium" should NOT be translated --> + სცადეთ LeOSium-ის საძიებო სამარჯვი - Firefox-ის სამარჯვის გამოტანით მთავარ ეკრანზე მარტივი წვდომა გექნებათ პირადულობის უწინარესობის უზრუნველმყოფ და საიტთაშორისი მეთვალყურეების ამრიდებელ ბრაუზერთან. + Note: The word "LeOSium" should NOT be translated --> + LeOSium-ის სამარჯვის გამოტანით მთავარ ეკრანზე მარტივი წვდომა გექნებათ პირადულობის უწინარესობის უზრუნველმყოფ და საიტთაშორისი მეთვალყურეების ამრიდებელ ბრაუზერთან. - Firefox-სამარჯვის დამატება + Note: The word "LeOSium" should NOT be translated --> + LeOSium-სამარჯვის დამატება ახლა არა @@ -426,10 +426,10 @@ მისამართების ველი მისამართის ველის პარამეტრები - - მისამართების ველი – Firefox-შემოთავაზება - - ვრცლად Firefox-შემოთავაზების შესახებ + + მისამართების ველი – LeOSium-შემოთავაზება + + ვრცლად LeOSium-შემოთავაზების შესახებ შეაფასეთ Google Play-ზე ხელმისაწვდომობა - - Firefox-ანგარიშის მითითებული სერვერი + + LeOSium-ანგარიშის მითითებული სერვერი Mozilla-ანგარიშის მითითებული სერვერი დასინქრონების მითითებული სერვერი - შეცვალა Firefox-ანგარიშის/სინქრონიზაციის სერვერი. პროგრამა დაიხურება ცვლილებების ასახვისთვის… + შეცვალა LeOSium-ანგარიშის/სინქრონიზაციის სერვერი. პროგრამა დაიხურება ცვლილებების ასახვისთვის… Mozilla-ანგარიშის/სინქრონიზაციის სერვერი შეიცვალა. პროგრამა დაიხურება ცვლილებების ასახვისთვის… @@ -571,7 +571,7 @@ შედით ანგარიშზე, რომ დაასინქრონოთ თქვენი ჩანართები, სანიშნები, პაროლები და სხვ. - Firefox-ანგარიში + LeOSium-ანგარიში Mozilla-ანგარიში @@ -605,15 +605,15 @@ ანგარიშის პარამეტრები ბმულების თვითდასრულება - + შემოთავაზებები დამფინანსებლებისგან - დაეხმარეთ %1$s-ს დროდადრო დაფინანსებული შემოთავაზებებით - შემოთავაზებების წყაროა %1$s - + შემოთავაზებები ვებსივრციდან თქვენ მიერ მოძიებულის შესაბამისად ბმულების გახსნა პროგრამებში @@ -693,7 +693,7 @@ ვრცლად - + ჩვეული %s კრებული მხატვრებისგან @@ -711,8 +711,8 @@ ახალი დამატებები უკვე ხელმისაწვდომია - - გაეცანით 100-ზე მეტ ახალ გაფართოებას, რომელთა მეშვეობითაც Firefox გახდება მეტად თქვენებური. + + გაეცანით 100-ზე მეტ ახალ გაფართოებას, რომელთა მეშვეობითაც LeOSium გახდება მეტად თქვენებური. მოიძიეთ დამატებები @@ -781,7 +781,7 @@ მიღებული ჩანართები - შეტყობინებები ჩანართებისთვის მიღებული სხვა Firefox-მოწყობილობებიდან. + შეტყობინებები ჩანართებისთვის მიღებული სხვა LeOSium-მოწყობილობებიდან. მიღებული ჩანართი @@ -964,7 +964,7 @@ მოცილება მოქმედი - + %1$s დროდადრო დააყენებს და ჩაატარებს კვლევებს. ვრცლად @@ -1340,7 +1340,7 @@ სხვა მოწყობილობის დაკავშირება - ჩანართის გასაგზავნად, შედით Firefox-ში, სულ მცირე, კიდევ ერთი სხვა მოწყობილობიდან. + ჩანართის გასაგზავნად, შედით LeOSium-ში, სულ მცირე, კიდევ ერთი სხვა მოწყობილობიდან. გასაგებია @@ -1363,10 +1363,10 @@ - Firefox სწრაფი და დაცულია + LeOSium სწრაფი და დაცულია - გახადეთ Firefox ნაგულისხმევი ბრაუზერი + გახადეთ LeOSium ნაგულისხმევი ბრაუზერი გამოცადეთ პირადი რეჟიმი - გთხოვთ დაგვეხმაროთ მცირე კითხვარის შევსებით, რომ გავაუმჯობესოთ Firefox. + გთხოვთ დაგვეხმაროთ მცირე კითხვარის შევსებით, რომ გავაუმჯობესოთ LeOSium. კითხვარის შევსება @@ -1533,16 +1533,16 @@ კოდის წაკითხვა - https://firefox.com/pair]]> + https://firefox.com/pair]]> მზადაა წასაკითხად შედით კამერის დახმარებით ელფოსტის გამოყენება სანაცვლოდ - - შექმენით და დაასინქრონეთ Firefox მოწყობილობებზე.]]> - + + შექმენით და დაასინქრონეთ LeOSium მოწყობილობებზე.]]> + %s შეწყვეტს დასინქრონებას თქვენი ანგარიშით, მაგრამ არ წაშლის მონაცემებს ამ მოწყობილობაზე. გამოთიშვა @@ -1558,7 +1558,7 @@ თვალთვალისგან გაძლიერებული დაცვა ახლა უკვე ახლავს ფუნთუშებისგან ყოველმხრივი დაცვაც, ჩვენი არნახულად მძლავრი საშუალება საიტთაშორისი მეთვალყურეების წინააღმდეგ. - + %s აგარიდებთ ცნობილი მეთვალყურეების უმეტესობას, რომლებიც თან დაგყვებათ ინტერნეტში. ვრცლად @@ -1716,9 +1716,9 @@ შეკითხვა შენახვისას არასოდეს შეინახოს - + %1$s თვითშევსება - + შეავსეთ ან შეინახეთ სახელები და პაროლები საიტებზე, როცა %1$s გამოიყენება. თვითშევსება სხვა პროგრამებში @@ -2074,14 +2074,14 @@ სხვა მოწყობილობის დაკავშირება გთხოვთ, ხელახლა შეხვიდეთ. - + გთხოვთ, ჩართოთ ჩანართების სინქრონიზაცია. - თქვენ არ გაქვთ, Firefox-ის გახსნილი ჩანართები, სხვა მოწყობილობებზე. - + თქვენ არ გაქვთ, LeOSium-ის გახსნილი ჩანართები, სხვა მოწყობილობებზე. + იხილეთ ჩანართების სია თქვენი სხვა მოწყობილობებიდან. - + სინქრონიზაციაში შესვლა @@ -2133,15 +2133,15 @@ დაიხუროს ერთ თვეში? - Firefox დახურავს ჩანართებს, რომლებიც არ გინახავთ წინა თვეში. + LeOSium დახურავს ჩანართებს, რომლებიც არ გინახავთ წინა თვეში. ᲗᲕᲘᲗᲓᲐᲮᲣᲠᲕᲘᲡ ᲩᲐᲠᲗᲕᲐ თვითდახურვა ჩართულია - - Firefox-შეთავაზება + + LeOSium-შეთავაზება Google ძიება @@ -2149,7 +2149,7 @@ %s ძიება - მითითება რომ ბმულები ვებსაიტებიდან, ელფოსტიდან და შეტყობინებებიდან, გაიხსნას პირდაპირ Firefox-ში. + მითითება რომ ბმულები ვებსაიტებიდან, ელფოსტიდან და შეტყობინებებიდან, გაიხსნას პირდაპირ LeOSium-ში. მოცილება @@ -2173,7 +2173,7 @@ უზრუნველყოფს %s. - Firefox ოჯახის ნაწილი. %s + LeOSium ოჯახის ნაწილი. %s ვრცლად @@ -2306,9 +2306,9 @@ მიმოხილვის ხარისხის შემოწმება გამოცადეთ ჩვენი საიმედო მეგზური საყიდლების მიმოხილვებისთვის - + გადაამოწმეთ შეძენამდე, თუ რამდენად სანდოა გასაყიდი ნაწარმის მიმოხილვები საიტზე %1$s. მიმოხილვის შემმოწმებელი საცდელი შესაძლებლობაა %2$s-სგან და პირდაპირ ბრაუზერშივეა ჩაშენებული. მხარდაჭერილია %3$s და აგრეთვე %4$s. - + გადაამოწმეთ შეძენამდე, თუ რამდენად სანდოა გასაყიდი ნაწარმის მიმოხილვები საიტზე %1$s. მიმოხილვის შემმოწმებელი საცდელი შესაძლებლობაა %2$s-სგან და პირდაპირ ბრაუზერშივეა ჩაშენებული. Mozilla-ს %1$s-ის ძლევამოსილებით ჩვენ დაგეხმარებით მიკერძოებული და ყალბი მიმოხილვების თავიდან აცილებაში. ჩვენი AI-მოდელი მუდმივად იხვეწება თქვენს დასაცავად საყიდლების შეძენისას. %2$s @@ -2375,7 +2375,7 @@ გახსენით ბმული და იხილეთ ვრცლად ამ კრებულზე სტატიის წაკითხვა - + ვრცლად იხილეთ ბმულზე %s, სათაური diff --git a/app/src/main/res/values-kaa/strings.xml b/app/src/main/res/values-kaa/strings.xml index 01501e31..d76da702 100644 --- a/app/src/main/res/values-kaa/strings.xml +++ b/app/src/main/res/values-kaa/strings.xml @@ -431,12 +431,12 @@ Biraq, hújimshi qatnasıwı múmkin. Eger de siz saytqa ótiwdi dawam etetuǵın bolsańız, ol saytta ózińizdiń jeke maǵlıwmatlarıńızdı kirgizbeń. Eger dawam etetuǵın bolsańız, tek HTTPS rejimi bul sayt ushın waqtınsha óshiriledi. Arnawlı imkaniyatlar - - Arnawlı Firefox Akkaunt serveri + + Arnawlı LeOSium Akkaunt serveri Arnawlı sáykeslestiriw serveri - Firefox Akkountı/Sáykeslestiriw serveri ózgergen. Ózgerislerdi qabıllaw ushın baǵdarlama jabılmaqta… + LeOSium Akkountı/Sáykeslestiriw serveri ózgergen. Ózgerislerdi qabıllaw ushın baǵdarlama jabılmaqta… Akkaunt @@ -452,7 +452,7 @@ Betler, saylandılar, paroller hám basqalardı sáykeslestiriw ushın kiriń. - Firefox Akkaunt + LeOSium Akkaunt Sáykeslestiriwdi dawam ettiriw ushın qayta jalǵanıń @@ -558,7 +558,7 @@ Tolıǵıraq úyreniw - + Klassik %s @@ -626,7 +626,7 @@ Qabıllanǵan betler - Firefoxtıń basqa qurılmalarınan alınǵan betler haqqındaǵı xabarlamaları. + LeOSiumtıń basqa qurılmalarınan alınǵan betler haqqındaǵı xabarlamaları. Bet qabıllandı @@ -814,7 +814,7 @@ Aktiv - + %1$s waqtı-waqtı menen izleniwlerdi ornatıwı hám júrgiziwi múmkin. Tolıǵıraq úyreniw @@ -1180,7 +1180,7 @@ Basqa qurılmaǵa jalǵaw - Betti jiberiw ushın keminde jáne bir qurılmadan Firefoxqa kiriń. + Betti jiberiw ushın keminde jáne bir qurılmadan LeOSiumqa kiriń. Túsindim @@ -1204,7 +1204,7 @@ - Firefox — tez hám jeke + LeOSium — tez hám jeke Jeke kóriwdi sınap kóriń Payda ushın emes, adamlar ushın jaratılǵan brauzer. - + Toqtaǵan jerińizden dawam etiń - + Ekrandı úzliksiz almastırıw ushın betlerdi hám parollerdi qurılmalar aralıq sáykeslestiriń. - + Kiriw @@ -1373,7 +1373,7 @@ Ozińiz maǵlıwmatlarıńızdı basqarız - Firefox nelerdi online hám nelerdi bizler menen bólisiwińizdi basqarıwdı sizge beredi. + LeOSium nelerdi online hám nelerdi bizler menen bólisiwińizdi basqarıwdı sizge beredi. Qupıyalıq esletpelerimizdi oqıń @@ -1409,16 +1409,16 @@ QR kodtı oqıw - https://firefox.com/pair ǵa kiriń]]> + https://firefox.com/pair ǵa kiriń]]> Kodtı oqıw Kamera járdeminde kiriw Ornına elektron pochtadan paydalanıw - - onda jańasın jaratıń Firefoxtı qurılmalar arasında sáykeslestiriń.]]> - + + onda jańasın jaratıń LeOSiumtı qurılmalar arasında sáykeslestiriń.]]> + %s akkountıńız benen sáykeslestiriwdi toqtatadı, biraq siziń qurılmańızdaǵı birde-bir brauzer maǵlıwmatın óshirmeydi. Baylanıstı úziw @@ -1588,9 +1588,9 @@ Saqlawdı soraw Heshqashan saqlamaw - + %1$sda avtomat tárizde toltırıw - + %1$sdı paydalanıp atırǵan waqıtta paydalanıwshı atları hám parollerdi veb-saytlarda toltırıw hám saqlaw. Basqa baǵdarlamalarda avtomat tárizde toltırıw @@ -1932,13 +1932,13 @@ Basqa qurılmanı jalǵaw. Ótinish, haqıyqıylıǵın qayta tastıyıqlań. - + Ótinish, bet sáykeslestiriwin qosıń. - Basqa qurılmalarıńızdaǵı Firefoxta birde-bir bet ashıq emes. - + Basqa qurılmalarıńızdaǵı LeOSiumta birde-bir bet ashıq emes. + Basqa qurılmalarıńızdaǵı betler dizimin kóriń. - + Sáykeslestiriwge kiriw Ashıq betler joq @@ -1989,15 +1989,15 @@ Bir aydan soń avtomat tárizde jabılsın ba? - Firefox ótken ayda kórilmegen betlerdi jabıwı múmkin. + LeOSium ótken ayda kórilmegen betlerdi jabıwı múmkin. AVTOMAT TÁRIZDE JABÍWDÍ QOSÍW Avtomat tárizde jabıw iske túsirilgen - - Firefox usınıs etedi + + LeOSium usınıs etedi Googlede izlew @@ -2005,7 +2005,7 @@ %s da izlew - Saytlardaǵı, elektron xatlardaǵı hám xabarlardaǵı siltemelerdi Firefoxda avtomat tárizde ashılatuǵın etip sazlań. + Saytlardaǵı, elektron xatlardaǵı hám xabarlardaǵı siltemelerdi LeOSiumda avtomat tárizde ashılatuǵın etip sazlań. Alıp taslaw @@ -2029,7 +2029,7 @@ %s tárepinen qollap-quwatlanadı. - Firefox toparınıń bólegi. %s + LeOSium toparınıń bólegi. %s Tolıǵıraq úyreniw @@ -2050,6 +2050,6 @@ bul toplam haqqında kóbirek biliw ushın siltemeni ashıń Maqalanı oqıw - + kóbirek biliw ushın siltemeni ashıń diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 49b14f09..754bf66a 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -75,7 +75,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara %1$s itekkes inagan n tuqqna, azray, akked yisefka n yismal web mi ara tmedleḍ akk accaren usligen. %2$s - Tasertit tabaḍnit n Firefox - + Tasertit tabaḍnit n LeOSium + + Issin ugar deg tsertit-nneɣ n tbaḍnit Nḥemmel ad teqqimeḍ d aɣellsan @@ -355,29 +356,29 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Mmesten iman-ik s ttawil n uwgelhen mi ara tɛeddiḍ seg yibenk ɣer wayeḍ - Mi ara teqqneḍ rnu ad tremdeḍ amtawi, taɣellist tettwaseǧhed. Firefox yettwgelhin awalen-ik uffiren, ticraḍ n yisebtar, akked wayen niḍen. + Note: The word "LeOSium" should NOT be translated --> + Mi ara teqqneḍ rnu ad tremdeḍ amtawi, taɣellist tettwaseǧhed. LeOSium yettwgelhin awalen-ik uffiren, ticraḍ n yisebtar, akked wayen niḍen. Kcem Mačči tura - Ilɣa ad ak-ɛawnen ad teqqimeḍ d aɣellsan s Firefox + Note: The word "LeOSium" should NOT be translated --> + Ilɣa ad ak-ɛawnen ad teqqimeḍ d aɣellsan s LeOSium - Azen s wudem aɣellsan accaren seg yibenk ɣer wayeḍ, tesnirmeḍ timahilin timaynutin n ummesten n tudert tabaḍnit deg Firefox. + Note: The word "LeOSium" should NOT be translated --> + Azen s wudem aɣellsan accaren seg yibenk ɣer wayeḍ, tesnirmeḍ timahilin timaynutin n ummesten n tudert tabaḍnit deg LeOSium. Rmed ilɣa Mačči tura - Ɛreḍ iwiǧit n unadi n Firefox + Note: The word "LeOSium" should NOT be translated --> + Ɛreḍ iwiǧit n unadi n LeOSium - Rnu awiǧit n Firefox + Note: The word "LeOSium" should NOT be translated --> + Rnu awiǧit n LeOSium Mačči tura @@ -415,10 +416,10 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Isumar seg yimseddayen n unadi Ismenyifen i ufeggag n tansiwin - - Afeggag n tansiwin - Firefox isumer - - Issin ugar ɣef Firefox Suggest + + Afeggag n tansiwin - LeOSium isumer + + Issin ugar ɣef LeOSium Suggest Mudd tazmilt deg Google Play Tacaṛt tawurmant n URLs - + Isumar sɣur imendaden - Mudd tallalt i %1$s s uskan n yisumar i d-yettuwellhen sya ɣer da - Isumar n %1$s - + Awi isumar seg web yeqqnen ɣer unadi-k·m Ldi iseɣwan deg isnasen @@ -646,7 +647,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Issin ugar - + Aklasik %s Asaru n ufennan @@ -664,8 +665,8 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Izegrar imaynuten llan tura - - Snirem ugar n 100 yisiɣzaf imaynuten ara ak·akem-yeǧǧen ad tsagneḍ Firefox. + + Snirem ugar n 100 yisiɣzaf imaynuten ara ak·akem-yeǧǧen ad tsagneḍ LeOSium. Snirem izegrar @@ -693,9 +694,9 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ticraḍ n yisebtar - Inekcam + Inekcam - Awalen uffiren + Awalen uffiren Accaren yeldin @@ -722,9 +723,9 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara %1$s deg %2$s %3$s - Tikarḍiwin n usmad + Tikarḍiwin n usmad - Tarrayin n uxelleṣ + Tarrayin n uxelleṣ Tansiwin @@ -732,7 +733,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Accaren yettwaremsen - Ilɣa n yiccaren yettwaremsen seg Firefox ɣef yibenlan-nniḍen. + Ilɣa n yiccaren yettwaremsen seg LeOSium ɣef yibenlan-nniḍen. Iccaren yettwarmesen @@ -919,7 +920,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Kkes Rmed - + %1$s yezmer ad isebded yerna ad iseddu leqraya seg wakud ɣer wayeḍ. Issin ugar @@ -1297,7 +1298,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Qqen ibenk-nniḍen - Akken ad tazneḍ iccer, qqen ɣer Firefox xarsum ɣef yiwen n yibenk. + Akken ad tazneḍ iccer, qqen ɣer LeOSium xarsum ɣef yiwen n yibenk. Awi-t @@ -1323,10 +1324,10 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara - Firefox d arurad, d uslig + LeOSium d arurad, d uslig - Err Firefox d iminig-ik amezwer + Err LeOSium d iminig-ik amezwer Ɛreḍ tunigin tusligt @@ -1349,7 +1350,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara - Ttxil-k ɛawen Firefox ad igerrez ugar s uɛemmer n uḥedqus-a. + Ttxil-k ɛawen LeOSium ad igerrez ugar s uɛemmer n uḥedqus-a. Eg aḥedqis @@ -1497,16 +1498,16 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Semḍen tangalt - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ihegga i uḍummu Qqen s tkamirat-ik Seqdec tansa n yimayl deg umḍiq-is - - Rnu yiwen i umtaw n Firefox gar yibenkan.]]> - + + Rnu yiwen i umtaw n LeOSium gar yibenkan.]]> + %s ad iseḥbes amtawi d umiḍan-inek, acukan ur ittekkes ara isefka-inek n tunigin seg uselkim-a. Ffeɣ @@ -1523,7 +1524,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ammesten yettwasǧehden mgal aḍfar Tura, Ammesten asemday mgal inagan n tuqqna, d ẓẓerb-nneɣ iǧehden ugar mgal ineḍfaren n gar yismal ar tura. - + %s ad k-yemmesten seg tuget n yineḍfaṛen yettwassnen i yeṭṭafaṛen ayen i txeddmeḍ srid. Issin ugar @@ -1676,20 +1677,20 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Tzemreḍ s sshal ad ternuḍ asmel-a web ɣer ugdil agejdan n yibenk-inek·inem i wakken ad tesɛuḍ anekcum askudan d tunigin taruradt s termt i icuban asnas. - Inekcam d wawalen uffiren + Inekcam d wawalen uffiren - Awalen uffiren + Awalen uffiren - Sekles inekcam d wawalen uffiren + Sekles inekcam d wawalen uffiren - Sekles awalen uffiren + Sekles awalen uffiren Suter asekles Urǧin sekles - + Ččar s wudem awurman %1$s - + Ččar syen sekles ismawen n useqdac d wawalen uffiren ma tesseqdaceḍ %1$s. Ččar s wudem awurman deg yisnasen-nniḍen @@ -1698,39 +1699,39 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ččar ismawen n useqdac d wawalen uffiren deg yisnasen-nniḍen ɣef yibenk-ik·im. - Rnu anekcum + Rnu anekcum - Rnu awal uffir + Rnu awal uffir - - Mtawi inekcam - Mtawi awalen uffiren + Mtawi inekcam + + Mtawi awalen uffiren - Mtawi inekcam gqr yibenkan + Mtawi inekcam gqr yibenkan - Inekcam yettwakelsen + Inekcam yettwakelsen - Awalen uffiren yettwakelsen + Awalen uffiren yettwakelsen - Anekcum i tḥerzeḍ ɣer %s ad d-ittwasken da. + Anekcum i tḥerzeḍ ɣer %s ad d-ittwasken da. - Issin ugar ɣef umtawi. + Issin ugar ɣef umtawi. - Issin ugar ɣef umtawi + Issin ugar ɣef umtawi Tisuraf - Inekcam akked wawalen uffiren ur yettwaskelsen ara ad ttwaseknen dagi. + Inekcam akked wawalen uffiren ur yettwaskelsen ara ad ttwaseknen dagi. - Inekcam akked wawalen uffiren ur ttwaseklasen ara i yismal-a. + Inekcam akked wawalen uffiren ur ttwaseklasen ara i yismal-a. Kkes akk tisuraf - Nadi inekcam + Nadi inekcam - Nadi awalen uffiren + Nadi awalen uffiren Asmel web @@ -1758,13 +1759,13 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ffer awal uffir - Serreḥ akken ad tsekneḍ inekcam-ik yettwaskelsen + Serreḥ akken ad tsekneḍ inekcam-ik yettwaskelsen - Mmesten inekcam d wawalen uffiren + Mmesten inekcam d wawalen uffiren - Seɣles awalen-ik·im uffiren i yettwaskelsen + Seɣles awalen-ik·im uffiren i yettwaskelsen - Sbadu azenziɣ n usekkeṛ, tangal PIN, neɣ awal uffir akken ad temmesteneḍ inekcam-ik akked wawlen-ik uffiren yettwaskelsen ticki yella win ikecmen ɣer yibenk-ik. + Sbadu azenziɣ n usekkeṛ, tangal PIN, neɣ awal uffir akken ad temmesteneḍ inekcam-ik akked wawlen-ik uffiren yettwaskelsen ticki yella win ikecmen ɣer yibenk-ik. Ticki @@ -1783,7 +1784,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Aseqdec aneggaru - Umuɣ n usemyizwer n yinekcam + Umuɣ n usemyizwer n yinekcam @@ -1791,35 +1792,38 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Tansiwin - Tikarḍiwin n usmad + Tikarḍiwin n usmad - Tarrayin n uxelleṣ + Tarrayin n uxelleṣ - Asekles d taččart tawurmant n tkarḍiwin + Asekles d taččart tawurmant n tkarḍiwin - Isefka ttwawgelhen + Isefka ttwawgelhen Mtawi tikarḍiwin gar yibenkan Mtawi tikarḍiwin - Rnu takarḍa n usmad + Rnu takarḍa n usmad - Rnu takarḍa + Rnu takarḍa - Sefrek tikerḍiwin yettwaskelsen + Sefrek tikerḍiwin yettwaskelsen - Sefrek tikarḍiwin + Sefrek tikarḍiwin Rnu tansa Sefrek tansiwin - Asekles d taččart tawurmant n tansiwin + Asekles d taččart tawurmant n tansiwin - Sekles; teččareḍ tansiwin + Sekles; teččareḍ tansiwin - Seddu talɣut am wuṭṭunen, imayl akked tansiwin n usiweḍ + Seddu talɣut am wuṭṭunen, imayl akked tansiwin n usiweḍ + + + Seddu ula uṭṭunen n tiliɣri d tansiwin n yimayl Rnu takarḍa @@ -1840,9 +1844,9 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Kkes takarḍa - Tebɣiḍ s tidet ad tekkseḍ takarḍa-a n usmad? + Tebɣiḍ s tidet ad tekkseḍ takarḍa-a n usmad? - Kkes takarḍa? + Kkes takarḍa? Kkes @@ -1855,20 +1859,20 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Tikerḍiwin yettwasekles - Ma ulac aɣilif sekcem uṭṭun ameɣtu n tkarḍa n usmad + Ma ulac aɣilif sekcem uṭṭun ameɣtu n tkarḍa n usmad - Sekcem uṭṭun n tkarḍa ameɣtu + Sekcem uṭṭun n tkarḍa ameɣtu - Ttxil-k·m ččar urti-a + Ttxil-k·m ččar urti-a - Rnu isem + Rnu isem Kkes asekkeṛ i wakken ad twaliḍ tikerḍiwin-ik·im yettwaskelsen - Seɣles tikerḍiwin-ik·im n usmad + Seɣles tikerḍiwin-ik·im n usmad - Sbadu taneɣruft n usekkeṛ n yibenk, tangalt PIN neq awal uffir i ummesten n tkerḍiwin-ik·im n usmad yettwaskelsen ticki yella win ikecmen ɣer yibenk-inek·inem. + Sbadu taneɣruft n usekkeṛ n yibenk, tangalt PIN neq awal uffir i ummesten n tkerḍiwin-ik·im n usmad yettwaskelsen ticki yella win ikecmen ɣer yibenk-inek·inem. Sbadu tura @@ -1876,7 +1880,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Serreḥ i ibenk-inek·inem - Kkes asekkeṛ i wakken ad tesqedceḍ talɣut n tkarḍa n usmad + Kkes asekkeṛ i wakken ad tesqedceḍ talɣut n tkarḍa n usmad Rnu tansa @@ -1885,11 +1889,13 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Sefrek tansiwin - Aɣara + Aɣara - Isem alemmas + Isem alemmas - Isem + Isem + + Isem Tansa n taddart @@ -1914,9 +1920,9 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Kkes tansa - D tidet tebɣiḍ ad tekkseḍ tansa-a? + D tidet tebɣiḍ ad tekkseḍ tansa-a? - Kkes tansa-a? + Kkes tansa-a? Kkes @@ -2016,41 +2022,41 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ẓreg - Tebɣiḍ ad tekseḍ anekcum-agi? + Tebɣiḍ ad tekseḍ anekcum-agi? Kkes Sefsex - Iɣewwaren n unekcum + Iɣewwaren n unekcum - Tixtiṛiyin n wawal uffir + Tixtiṛiyin n wawal uffir - Urti n uḍris yettusenfal i tansa n unekcum n web. + Urti n uḍris yettusenfal i tansa n unekcum n web. - Urti n uḍris yettusenfal i yisem n useqdac n unekcum. + Urti n uḍris yettusenfal i yisem n useqdac n unekcum. - Urti n uḍris yettusenfal i wawal uffir n unekcum. + Urti n uḍris yettusenfal i wawal uffir n unekcum. - Sekles isenfaln unekcum. + Sekles isenfaln unekcum. - Sekles isenfal. + Sekles isenfal. - Ẓreg + Ẓreg - Ẓreg awal uffir + Ẓreg awal uffir - Rnu anekcum amaynut + Rnu anekcum amaynut - Rnu awal uffir + Rnu awal uffir - Awal uffir yettusra + Awal uffir yettusra - Sekcem awal uffir + Sekcem awal uffir - Isem n useqdac yettwasra + Isem n useqdac yettwasra - Sekcem isem n useqdac + Sekcem isem n useqdac Asenneftaɣ yettwasra @@ -2075,14 +2081,14 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Qqen ibenk-nniḍen. Ma ulac aɣilif, ales asesteb. - + Ma ulac aɣilif, rmed amtawi n waccaren. - Ulac ɣur-k accarren yeldin deg Firefox deg yibenkan-inek-nniḍen. - + Ulac ɣur-k accarren yeldin deg LeOSium deg yibenkan-inek-nniḍen. + Wali tabdart n waccaren seg yibenkan-ik-nniḍen. - + Kcem akken ad yemtawi @@ -2136,7 +2142,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Amdal awurman seld yiwen wayyur? - Firefox izmer ad imdel accaren i twalaḍ aggur iɛeddan. + LeOSium izmer ad imdel accaren i twalaḍ aggur iɛeddan. RMED AMDAL AWURMAN @@ -2144,8 +2150,8 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Amdal awurman yermed - - Firefox Suggest + + LeOSium Suggest Anadi deg Google @@ -2156,7 +2162,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Beddel iminig-ik·im amezwer - Sbadu iseɣwan seg yismal web, seg yimaylen d yiznan i twaledyawt s wudem awurman deg Firefox. + Sbadu iseɣwan seg yismal web, seg yimaylen d yiznan i twaledyawt s wudem awurman deg LeOSium. Kkes @@ -2165,7 +2171,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Sit i wugar n telqayt - Inig d asawen + Inig d asawen Mdel @@ -2180,7 +2186,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ddaw leɛnaya n %s. - D aḥric seg twacult Firefox. %s + D aḥric seg twacult LeOSium. %s Issin ugar @@ -2205,8 +2211,6 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara D acu-tt tneflest n yilɣa-a? Aktazal yettwaseɣta - - Yir alɣu yettwakkes Tamuɣli s wazal-is seg yilɣa imaynuten @@ -2241,10 +2245,6 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Afaris ulac-it Mmel tuɣalin n ufaris deg tawsa - - Adenqed n tɣara n yilɣa - - Adenqed n tɣara n yilɣa Adenqed n tɣara n yilɣa (%s) @@ -2274,7 +2274,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Issin ugar - Tasertit n tbaḍnit + Tasertit n tbaḍnit Tasertit n tbaḍnit @@ -2331,7 +2331,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ldi aseɣwen i wakken ad tissineḍ ugar ɣef tefrant-a. ɣer amagrad - + ldi aseɣwen i wakken ad tissineḍ ugar @@ -2349,7 +2349,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Suqqel asebter-a? Ԑreḍ tisuqilin tusligin n %1$s - + Issin ugar Suqqel seg diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index 26716dd5..5356b4bf 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -69,7 +69,7 @@ Барлық жеке беттерді жапқанда, %1$s cookie файлдарын, тарихты және сайт деректерін өшіреді. %2$s Парақты аудару + + Бет %1$s тілінен %2$s тіліне аударылды. + Таңдалған тіл @@ -328,13 +333,23 @@ - Firefox жекелік ескертуі - + LeOSium жекелік ескертуі + + Біздің жекелік ескертуімізден көбірек біліңіз Біз сіздің қауіпсіздігіңізді қамтамасыз етуді жақсы көреміз + + Миллиондаған адам неге LeOSium-ты жақсы көретінін біліңіз + + Қосымша таңдаулары бар қауіпсіз шолу Коммерциялық емес ұйымы қолдауымен жасалатын біздің браузер компанияларды интернетте сізді жасырын түрде бақылауын автоматты түрде тоқтатуға көмектеседі. + Коммерциялық емес ұйым қолдайтын браузерді таңдау арқылы 100 миллионнан астам адам өз жекелігін қорғайды. + + Белгілі трекерлер? Автоматты түрде бұғатталған. Кеңейтулер? Барлық 700 түрін қолданып көріңіз. PDF файлдары? Құрамындағы оқу қолданбасы оларды басқаруды жеңілдетеді. + Коммерциялық емес ұйымы қолдау көрсететін браузеріміз компаниялардың сізді интернетте жасырын бақылап отыруын тоқтатуға көмектеседі.\n\nЖекелік ескертуімізден толығырақ ақпарат алыңыз. @@ -346,32 +361,32 @@ Құрылғылар арасында өткенде шифрленген күйде қала беріңіз - Жүйеге кіріп, синхрондалған кезде қауіпсіз боласыз. Firefox сіздің парольдерді, бетбелгілерді және т.б. шифрлейді. + Note: The word "LeOSium" should NOT be translated --> + Жүйеге кіріп, синхрондалған кезде қауіпсіз боласыз. LeOSium сіздің парольдерді, бетбелгілерді және т.б. шифрлейді. Кіру Қазір емес - Хабарландырулар Firefox көмегімен қауіпсіз болып қалуға көмектеседі + Note: The word "LeOSium" should NOT be translated --> + Хабарландырулар LeOSium көмегімен қауіпсіз болып қалуға көмектеседі - Құрылғылар арасында беттерді қауіпсіз жіберіңіз және Firefox қолданбасының басқа жекелік мүмкіндіктерін өзіңіз үшін ашыңыз. + Note: The word "LeOSium" should NOT be translated --> + Құрылғылар арасында беттерді қауіпсіз жіберіңіз және LeOSium қолданбасының басқа жекелік мүмкіндіктерін өзіңіз үшін ашыңыз. Хабарламаларды іске қосу Қазір емес - Firefox іздеу виджетін қолданып көру + Note: The word "LeOSium" should NOT be translated --> + LeOSium іздеу виджетін қолданып көру - Негізгі экрандағы Firefox көмегімен сайтаралық трекерлерді блоктайтын бірінші жекелік браузеріне оңай қол жеткізе аласыз. + Note: The word "LeOSium" should NOT be translated --> + Негізгі экрандағы LeOSium көмегімен сайтаралық трекерлерді блоктайтын бірінші жекелік браузеріне оңай қол жеткізе аласыз. - Firefox виджетін қосу + Note: The word "LeOSium" should NOT be translated --> + LeOSium виджетін қосу Қазір емес @@ -412,10 +427,10 @@ Іздеу жүйелерінен ұсыныстар Адрес жолағының баптаулары - - Адрес жолағы - Firefox Suggest - - Firefox Suggest туралы көбірек білу + + Адрес жолағы - LeOSium Suggest + + LeOSium Suggest туралы көбірек білу Google Play ішінде бағалау URL адрестерін автотолықтыру - + Демеушілердің ұсыныстары - Кездейсоқ демеушілік ұсыныстармен %1$s өніміне қолдау көрсету - %1$s ұсыныстары - + Сіздің іздеуіңізге қатысты интернеттен ұсыныстар алыңыз Сілтемелерді қолданбаларда ашу @@ -642,7 +657,7 @@ Көбірек білу - + Классикалық %s Суретшілер сериясы @@ -660,8 +675,8 @@ Жаңа қосымшалар енді қолжетімді - - Firefox-ты өзіндік етіп қылуға мүмкіндік беретін 100+ жаңа кеңейтулерді қараңыз. + + LeOSium-ты өзіндік етіп қылуға мүмкіндік беретін 100+ жаңа кеңейтулерді қараңыз. Қосымшаларды шолу @@ -690,9 +705,9 @@ Бетбелгілер - Логиндер + Логиндер - Парольдер + Парольдер Ашық беттер @@ -717,9 +732,9 @@ %1$s, %2$s %3$s - Несиелік карталар + Несиелік карталар - Төлем әдістері + Төлем әдістері Адрестер @@ -727,7 +742,7 @@ Алынған беттер - Басқа Firefox құрылғыларынан алынған беттер туралы хабарландырулар. + Басқа LeOSium құрылғыларынан алынған беттер туралы хабарландырулар. Бет алынды @@ -908,7 +923,7 @@ Өшіру Белсенді - + %1$s кейде зерттеулерді орнатып, орындай алады. Көбірек білу @@ -1282,7 +1297,7 @@ Басқа құрылғыны байланыстыру - Бетті жіберу үшін, кемінде бір басқа құрылғыдан Firefox-қа кіріңіз. + Бетті жіберу үшін, кемінде бір басқа құрылғыдан LeOSium-қа кіріңіз. Түсіндім @@ -1309,10 +1324,10 @@ - Firefox жылдам және жеке + LeOSium жылдам және жеке - Firefox негізгі браузер қылу + LeOSium негізгі браузер қылу Жекелік шолуды қолданып көріңіз - Қысқа сауалнамадан өту арқылы Firefox-ты жақсартуға көмектесіңіз. + Қысқа сауалнамадан өту арқылы LeOSium-ты жақсартуға көмектесіңіз. Сауалнамаға қатысу @@ -1480,16 +1495,16 @@ Кодты сканерлеу - https://firefox.com/pair адресіне өтіңіз]]> + https://firefox.com/pair адресіне өтіңіз]]> Сканерлеуге дайын Камерамен кіріңіз Оның орнына эл. поштаны пайдалану - - тіркелгі жасаңыз.]]> - + + тіркелгі жасаңыз.]]> + %sтіркелгіңізбен синхрондауды тоқтатады, бірақ, бұл құрылғыда барлық шолу деректері қалады. Байланысты үзу @@ -1506,7 +1521,7 @@ Бақылаудан кеңейтілген қорғаныс Енді сайтаралық трекерлерге қарсы ең күшті тосқауыл болып табылатын Cookie файлдарынан Толық қорғаныс функциясы бар. - + %s желіде сіздің соңыңыздан еретін ең кең тараған трекерлердің көбінен қорғайды. Көбірек білу @@ -1659,21 +1674,21 @@ Бұл веб-сайтты жылдам қатынау және қолданба тектес режимде жылдам шолу мақсатымен құрылғыңыздың үй бетіңізге қосуға болады. - Логиндер және парольдер + Логиндер және парольдер - Парольдер + Парольдер - Логиндер және парольдерді сақтау + Логиндер және парольдерді сақтау - Парольдерді сақтау + Парольдерді сақтау Сақтау алдында сұрау Ешқашан сақтамау - + %1$s ішінде автотолтыру - + %1$s қолдану кезінде веб-сайттарда пайдаланушы аттары мен парольдерін толтыру және сақтау. Басқа қолданбаларда автотолтыру @@ -1682,47 +1697,47 @@ Құрылғыңыздағы басқа қолданбаларда пайдаланушы аттары мен парольдерін толтыру. - Логинді қосу + Логинді қосу - Парольді қосу + Парольді қосу - - Логиндерді синхрондау - Парольдерді синхрондау + Логиндерді синхрондау + + Парольдерді синхрондау - Логиндерді құрылғылар арасында синхрондау + Логиндерді құрылғылар арасында синхрондау - Парольдерді құрылғылар арасында синхрондау + Парольдерді құрылғылар арасында синхрондау - Сақталған логиндер + Сақталған логиндер - Сақталған парольдер + Сақталған парольдер - Сіз %s ішінде сақтаған немесе синхрондаған логиндер осында көрсетіледі. + Сіз %s ішінде сақтаған немесе синхрондаған логиндер осында көрсетіледі. - Сіз %s ішіне сақтаған немесе синхрондаған парольдер осында тізіліп көрсетіледі. Сіз сақтаған барлық парольдер шифрленген. + Сіз %s ішіне сақтаған немесе синхрондаған парольдер осында тізіліп көрсетіледі. Сіз сақтаған барлық парольдер шифрленген. - Синхрондау туралы көбірек біліңіз. + Синхрондау туралы көбірек біліңіз. - Синхрондау туралы көбірек біліңіз + Синхрондау туралы көбірек біліңіз Ережеден бөлек - Сақталмаған логиндер мен парольдер осында көрсетіледі. + Сақталмаған логиндер мен парольдер осында көрсетіледі. - %s осы жерде тізімделген сайттар үшін парольдерді сақтамайтын болады. + %s осы жерде тізімделген сайттар үшін парольдерді сақтамайтын болады. - Бұл сайттар үшін логиндер мен парольдер сақталмайды. + Бұл сайттар үшін логиндер мен парольдер сақталмайды. - %s бұл сайттар үшін парольдерді сақтамайтын болады. + %s бұл сайттар үшін парольдерді сақтамайтын болады. Барлық ережеден тыс жағдайларды өшіру - Логиндерден іздеу + Логиндерден іздеу - Парольдерді іздеу + Парольдерді іздеу Сайт @@ -1750,17 +1765,17 @@ Парольді жасыру - Сақталған логиндеріңізді көру үшін бұғаттауын ашыңыз + Сақталған логиндеріңізді көру үшін бұғаттауын ашыңыз - Сақталған парольдеріңізді көру үшін бұғаттауын ашыңыз + Сақталған парольдеріңізді көру үшін бұғаттауын ашыңыз - Логиндер және парольдерді қорғаңыз + Логиндер және парольдерді қорғаңыз - Сақталған парольдерді қорғаңыз + Сақталған парольдерді қорғаңыз - Бөтен адам сіздің құрылғыңызда болса, одан сақталған логиндер мен парольдерді қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. + Бөтен адам сіздің құрылғыңызда болса, одан сақталған логиндер мен парольдерді қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. - Бөтен адам сіздің құрылғыңызда болса, одан сақталған парольдеріңізді қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. + Бөтен адам сіздің құрылғыңызда болса, одан сақталған парольдеріңізді қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. Кейінірек @@ -1777,10 +1792,10 @@ Соңғы қолданылған - Логиндерді сұрыптау мәзірі + Логиндерді сұрыптау мәзірі - Парольдерді сұрыптау мәзірі + Парольдерді сұрыптау мәзірі @@ -1788,43 +1803,43 @@ Адрестер - Несиелік карталар + Несиелік карталар - Төлем әдістері + Төлем әдістері - Карталарды сақтау және автотолтыру + Карталарды сақтау және автотолтыру - Төлем әдістерін сақтау және толтыру + Төлем әдістерін сақтау және толтыру - Деректер шифрленген + Деректер шифрленген - %s сіз сақтаған барлық төлем әдістерін шифрлейді + %s сіз сақтаған барлық төлем әдістерін шифрлейді Карталарды құрылғылар арасында синхрондау Карталарды синхрондау - Несиелік картаны қосу + Несиелік картаны қосу - Картаны қосу + Картаны қосу - Сақталған карталарды басқару + Сақталған карталарды басқару - Карталарды басқару + Карталарды басқару Адресті қосу Адрестерді басқару - Адрестерді сақтау және автотолтыру + Адрестерді сақтау және автотолтыру - Адрестерді сақтау және толтыру + Адрестерді сақтау және толтыру - Нөмірлер, эл. пошта және жеткізу адрестері сияқты ақпаратты қосу + Нөмірлер, эл. пошта және жеткізу адрестері сияқты ақпаратты қосу - Телефон нөмірлері мен электрондық пошта адрестерін қамтиды + Телефон нөмірлері мен электрондық пошта адрестерін қамтиды Картаны қосу @@ -1845,9 +1860,9 @@ Картаны өшіру - Бұл несие картасын өшіруді шынымен қалайсыз ба? + Бұл несие картасын өшіруді шынымен қалайсыз ба? - Картаны өшіру керек пе? + Картаны өшіру керек пе? Өшіру @@ -1861,24 +1876,24 @@ Сақталған карталар - Несиелік картаның жарамды нөмірін енгізіңіз + Несиелік картаның жарамды нөмірін енгізіңіз - Жарамды карта нөмірін енгізіңіз + Жарамды карта нөмірін енгізіңіз - Бұл өрісті толтырыңыз + Бұл өрісті толтырыңыз - Атын қосыңыз + Атын қосыңыз Сақталған карталарыңызды көру үшін бұғаттауын ашыңыз - Несиелік карталарыңызды қорғаңыз + Несиелік карталарыңызды қорғаңыз - Сақталған төлем әдістерін қорғаңыз + Сақталған төлем әдістерін қорғаңыз - Бөтен адам сіздің құрылғыңызда болса, одан сақталған несиелік карталарды қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. + Бөтен адам сіздің құрылғыңызда болса, одан сақталған несиелік карталарды қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. - Бөтен адам сіздің құрылғыңызда болса, одан сақталған төлем әдістерін қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. + Бөтен адам сіздің құрылғыңызда болса, одан сақталған төлем әдістерін қорғау үшін құрылғының бұғаттау үлгісін, PIN-кодын немесе парольді орнатыңыз. Қазір баптау @@ -1887,10 +1902,10 @@ Құрылғының бұғаттауын ашыңыз - Сақталған несиелік карта ақпаратын қолдану үшін бұғаттауын ашыңыз + Сақталған несиелік карта ақпаратын қолдану үшін бұғаттауын ашыңыз - Сақталған төлем әдістерін қолдану үшін құлыптан босатыңыз + Сақталған төлем әдістерін қолдану үшін құлыптан босатыңыз Адресті қосу @@ -1898,11 +1913,13 @@ Адрестерді басқару - Аты + Аты - Әкесінің аты + Әкесінің аты - Тегi + Тегi + + Аты Көше адресі @@ -1928,9 +1945,9 @@ Адресті өшіру - Бұл адресті өшіруді шынымен қалайсыз ба? + Бұл адресті өшіруді шынымен қалайсыз ба? - Бұл адресті өшіру керек пе? + Бұл адресті өшіру керек пе? Өшіру @@ -2027,50 +2044,50 @@ Түзету - Бұл логинді өшіруді қалайсыз ба? + Бұл логинді өшіруді қалайсыз ба? - Бұл парольді өшіруді шынымен қалайсыз ба? + Бұл парольді өшіруді шынымен қалайсыз ба? Өшіру Бас тарту - Логин баптаулары + Логин баптаулары - Пароль опциялары + Пароль опциялары - Логиннің веб-адресі үшін түзетуге болатын мәтіндік өрісі. + Логиннің веб-адресі үшін түзетуге болатын мәтіндік өрісі. - Веб-сайт адресі үшін түзетуге болатын мәтіндік өрісі. + Веб-сайт адресі үшін түзетуге болатын мәтіндік өрісі. - Логиннің пайдаланушы аты үшін түзетуге болатын мәтіндік өрісі. + Логиннің пайдаланушы аты үшін түзетуге болатын мәтіндік өрісі. - Пайдаланушы аты үшін түзетуге болатын мәтіндік өрісі. + Пайдаланушы аты үшін түзетуге болатын мәтіндік өрісі. - Логиннің паролі үшін түзетуге болатын мәтіндік өрісі. + Логиннің паролі үшін түзетуге болатын мәтіндік өрісі. - Пароль үшін түзетуге болатын мәтіндік өрісі. + Пароль үшін түзетуге болатын мәтіндік өрісі. - Логин өзгерістерін сақтау. + Логин өзгерістерін сақтау. - Өзгерістерді сақтау. + Өзгерістерді сақтау. - Түзету + Түзету - Парольді түзету + Парольді түзету - Жаңа логинді қосу + Жаңа логинді қосу - Парольді қосу + Парольді қосу - Пароль керек + Пароль керек - Парольді енгізіңіз + Парольді енгізіңіз - Пайдаланушы аты керек + Пайдаланушы аты керек - Пайдаланушы атын енгізіңіз + Пайдаланушы атын енгізіңіз Хост атауы керек @@ -2095,13 +2112,13 @@ Басқа құрылғыны байланыстыру. Қайта аутентификациялаңыз. - + Беттер синхрондауын іске қосыңыз. - Сізде басқа құрылғыларыңызда Firefox-та ашық беттер жоқ. - + Сізде басқа құрылғыларыңызда LeOSium-та ашық беттер жоқ. + Басқа құрылғыларыңыздан беттер тізімін қарау. - + Синхрондау үшін кіру @@ -2153,7 +2170,7 @@ Бір айдан кейін автожабу керек пе? - Firefox соңғы айда қаралмаған беттерді жаба алады. + LeOSium соңғы айда қаралмаған беттерді жаба алады. АВТОЖАБУДЫ ІСКЕ ҚОСУ @@ -2161,8 +2178,8 @@ Автожабу іске қосылған - - Firefox ұсынысы + + LeOSium ұсынысы Google іздеу @@ -2173,7 +2190,7 @@ Негізгі браузеріңізді ауыстыру - Веб-сайттар, эл. пошта хаттары және хабарламалардан сілтемелерді Firefox-та автоматты түрде ашылатындай етіп баптау. + Веб-сайттар, эл. пошта хаттары және хабарламалардан сілтемелерді LeOSium-та автоматты түрде ашылатындай етіп баптау. Өшіру @@ -2182,7 +2199,7 @@ Көбірек білу үшін шертіңіз - Жоғары жылжу + Жоғары жылжу Жабу @@ -2197,7 +2214,7 @@ %s негізінде. - Firefox отбасының бөлігі. %s + LeOSium отбасының бөлігі. %s Көбірек білу @@ -2223,8 +2240,6 @@ Түзетілген рейтинг - Сенімсіз пікірлер өшірілді - Сенімді пікірлерге негізделген Соңғы пікірлердің маңызды сәттері @@ -2280,10 +2295,6 @@ Бұл өнімнің қоймаға қайта оралғанын көрсеңіз, оны бізге хабарлаңыз, біз пікірлерді тексереміз. Өнімнің қоймада бар болғанын хабарлау - - Пікір сапасын тексеру - - Пікір сапасын тексеру Пікір сапасын тексеру (%s) @@ -2320,22 +2331,28 @@ Пікір сапасын тексеру Өнім пікірлерінің сенімділігі туралы біздің нұсқаулықты қолданып көріңіз - + Сатып алғанға дейін %1$s сайтындағы өнім пікірлері қаншалықты сенімді екенін қараңыз. Пікірлерді тексеру құралын %2$s сынамалы түрде ұсынады, ол тура браузер ішінде қолжетімді — сонымен қатар, ол %3$s және %4$s сайттарында да істейді. - + Сатып алғанға дейін %1$s сайтындағы өнім пікірлері қаншалықты сенімді екенін қараңыз. Пікірлерді тексеру құралын %2$s сынамалы түрде ұсынады, ол тура браузер ішінде қолжетімді. Mozilla ұсынған %1$s мүмкіндігін пайдалана отырып, біз сізге біржақты және шынайы емес пікірлерден аулақ болуға көмектесеміз. Сатып алу кезінде сізді қорғау үшін біздің AI моделіміз үнемі жетілдіріліп отырады. %2$s Көбірек білу - "Иә, қолданып көру" опциясын таңдау арқылы сіз Mozilla ұсынған %1$s қолданбасының %2$s және %3$s шарттарымен келісесіз. + "Иә, қолданып көру" опциясын таңдау арқылы сіз Mozilla ұсынған %1$s қолданбасының %2$s және %3$s шарттарымен келісесіз. "Иә, қолданып көру" опциясын таңдау арқылы сіз %1$s ұсынған келесімен келісесіз: + + "Иә, қолданып көру" таңдау арқылы сіз %1$s %2$s және %3$s %4$s шарттарымен келісесіз. + + "Иә, қолданып көру" таңдау арқылы сіз %1$s %2$s және %3$s %4$s шарттарымен келісесіз. - жекелік саясаты + жекелік саясаты Жекелік саясаты + + жекелік ескертуі қолдану шарттары @@ -2393,7 +2410,7 @@ осы жинақ туралы көбірек білу үшін сілтемені ашыңыз мақаланы оқу - + көбірек білу үшін сілтемені ашыңыз %s, Тақырыптама @@ -2408,11 +2425,15 @@ Бұл парақты аудару керек пе? + + Бет %1$s тілінен %2$s тіліне аударылды %1$s ішіндегі жекелік аудармаларды қолданып көріңіз Жекелігіңіз үшін аудармалар құрылғыңыздан ешқашан кетпейді. Жаңа тілдер мен жақсартулар жақында! %1$s - + Көбірек білу Бастапқы тіл: @@ -2421,6 +2442,8 @@ Мақсат тілі: Қазір емес + + Түпнұсқаны көрсету Дайын @@ -2443,6 +2466,16 @@ Көбірек білу + + Аударуда… + + + Деректерді үнемдеу режимінде (%1$s) тілді жүктеп алу керек пе? + + Аударма баптаулары diff --git a/app/src/main/res/values-kmr/strings.xml b/app/src/main/res/values-kmr/strings.xml index ce0a246f..2febec84 100644 --- a/app/src/main/res/values-kmr/strings.xml +++ b/app/src/main/res/values-kmr/strings.xml @@ -71,7 +71,7 @@ Li ser vê cîhazê tu şop nehêle %1$s dema ku hûn hemî tabloyên xwe yên taybet digirin, çerezên we, dîrok û daneyên malperê jê dibe. %2$s Zêdetir bizane - + Klasîk %s @@ -640,7 +640,7 @@ Hilpekînên hatine stendin - Danezanên hilpekînan ên ji cîhazên Firefoxê tên stendin. + Danezanên hilpekînan ên ji cîhazên LeOSiumê tên stendin. Hilpekîn hate stendin @@ -824,7 +824,7 @@ Rake Çalak - + %1$s dikare carê lêkolînan bar bike û bide xebitandin. Zêdetir bizane @@ -1195,7 +1195,7 @@ Cîhazeke din girê bide - Ji bo şandina hilpekînekê, herî kêm ji cîhazeke din têkeve Firefoxê. + Ji bo şandina hilpekînekê, herî kêm ji cîhazeke din têkeve LeOSiumê. Min fêm kir @@ -1223,7 +1223,7 @@ Firefrox lezgîn û nepen e - Firefoxê bike geroka xwe ya standard + LeOSiumê bike geroka xwe ya standard Gerîna veşartî biceribîne Kodê bide xwendin - https://firefox.com/pair]]> + https://firefox.com/pair]]> Aniha kodê bide xwendin Bi kameraya xwe têkeve Bi emaîlê têkeve - - Hesêb veke.]]> - + + Hesêb veke.]]> + %s ew ê bi hesabê te re senkronîzekirinê rawestîne, lê ti daneyên te yên gerînê yên di vê cîhazê de nayên jêbirin. Girêdanê qut bike @@ -1407,7 +1407,7 @@ Parastina ji şopandinê ya pêşketî Niha taybetiya Parastina Tevahî ya Çerezan li dijî kodên şopandina navmalperî bariyera me ya herî xurt e. - + %s te li hemberî piraniya şopgerên naskirî yên tevgerên te yên li ser înternetê dişopînin, diparêze. Zêdetir bizane @@ -1565,9 +1565,9 @@ Qet tomar neke - + Di %1$s de bixweber dagire - + Navên bikarhêneriyê û şîfreyên malperan di dema bikaranîna %1$s`ê de tomar bike. Di sepanên din de bixweber dagire @@ -1896,13 +1896,13 @@ Cîhazeke din girê bide. Ji kerema xwe, ji nû ve têkeve. - + Ji kerema xwe, senkronîzekirina hilpekînê veke. - Di Firefoxên li ser cîhazên te yên din de ti hilpekîneke vekirî tune ye. - + Di LeOSiumên li ser cîhazên te yên din de ti hilpekîneke vekirî tune ye. + Lîsteyeke hilpekînan a ji cîhazên xwe yên din bibîne. - + Têkeve Sync’ê Hilpekînên vekirî tune @@ -1952,15 +1952,15 @@ Bila piştî mehekê bixweber bên girtin? - Firefox dikare hilpekînên ku te mehekê venekirine bigire. + LeOSium dikare hilpekînên ku te mehekê venekirine bigire. GIRTINA BIXWEBER VEKE Girtina bixweber çalak bû - - Pêşniyara Firefoxê + + Pêşniyara LeOSiumê Lêgerîna Googleê @@ -1969,7 +1969,7 @@ Lêgerîna %sê - Bila lînkên ji malperan, e-posteyan û peyaman xweber di Firefoxê de bên vekirin. + Bila lînkên ji malperan, e-posteyan û peyaman xweber di LeOSiumê de bên vekirin. Rake @@ -1993,7 +1993,7 @@ Bihêzkirin ji aliyê %sê. - Beşeke ji malbata Firefoxê. %s + Beşeke ji malbata LeOSiumê. %s Agahiyên zêdetir @@ -2023,7 +2023,7 @@ ji bo derbarê vê koleksiyonê de bêtir bizanî, girêdankê veke gotarê bixwîne - + ji bo zêdetir bizanî lînkê veke diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index 49dd1669..1c5c84d7 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -205,7 +205,7 @@ ಖಾಸಗಿ ಬ್ರೌಸಿಂಗ್ ಶಾರ್ಟ್‌ಕಟ್ ಸೇರಿಸಿ ನಿಲುಕಣೆ - + ಕಸ್ಟಮ್ ಫೈರ್‌ಫಾಕ್ಸ್ ಖಾತೆ ಸರ್ವರ್ ಕಸ್ಟಮ್ ಸಿಂಕ್ ಸರ್ವರ್ @@ -331,7 +331,7 @@ %1$s ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡಲು ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆ, ಬಳಕೆ, ಯಂತ್ರಾಂಶ ಮತ್ತು ಗ್ರಾಹಕೀಕರಣ ಡೇಟಾವನ್ನು ಮೊಜಿಲ್ಲಾದೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ ಮಾರುಕಟ್ಟೆ ದತ್ತಾಂಶ - + ನಮ್ಮ ಮೊಬೈಲ್ ಮಾರ್ಕೆಟಿಂಗ್ ಮಾರಾಟಗಾರರಾದ ಲೀನ್‌ಪ್ಲಮ್‌ನೊಂದಿಗೆ %1$s ನಲ್ಲಿ ನೀವು ಯಾವ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸುತ್ತೀರಿ ಎಂಬುದರ ಕುರಿತು ಡೇಟಾವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ. ಪ್ರಯೋಗಗಳು @@ -869,15 +869,15 @@ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ… - + ಫೈರ್ಫಾಕ್ಸ್ ಪೂರ್ವವೀಕ್ಷಣೆ ಈಗ ಫೈರ್ಫಾಕ್ಸ್ ನೈಟ್ಲಿ ಆಗಿದೆ ಫೈರ್ಫಾಕ್ಸ್ ನೈಟ್ಲಿ ಪ್ರತಿ ರಾತ್ರಿಯೂ ನವೀಕರಿಸಲ್ಪಡುತ್ತದೆ ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊಂದಿದೆ. ಆದಾಗ್ಯೂ, ಇದು ಕಡಿಮೆ ಸ್ಥಿರವಾಗಿರಬಹುದು. ಹೆಚ್ಚು ಸ್ಥಿರ ಅನುಭವಕ್ಕಾಗಿ ನಮ್ಮ ಬೀಟಾ ಬ್ರೌಸರ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ. - + ಆಂಡ್ರಾಯ್ಡ್ ಬೀಟಾಕ್ಕಾಗಿ ಫೈರ್‌ಫಾಕ್ಸ್ ಪಡೆಯಿರಿ - + ಫೈರ್ಫಾಕ್ಸ್ ನೈಟ್ಲಿ ಸರಿಸಲಾಗಿದೆ ಈ ಅಪ್ಲಿಕೇಶನ್ ಇನ್ನು ಮುಂದೆ ಭದ್ರತಾ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ. ಈ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ಹೊಸ ನೈಟ್‌ಲಿಗೆ ಬದಲಾಯಿಸಿ. @@ -885,7 +885,7 @@ ಹೊಸ ನೈಟ್ಲಿಗೆ ಬದಲಿಸಿ - + ಫೈರ್ಫಾಕ್ಸ್ ನೈಟ್ಲಿ ಸರಿಸಲಾಗಿದೆ ಈ ಅಪ್ಲಿಕೇಶನ್ ಇನ್ನು ಮುಂದೆ ಭದ್ರತಾ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ. ಹೊಸ ನೈಟ್ಲಿ ಪಡೆಯಿರಿ ಮತ್ತು ಈ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. @@ -895,14 +895,14 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> %sಗೆ ಸುಸ್ವಾಗತ! - + ಈಗಾಗಲೇ ಖಾತೆಯನ್ನು ಹೊಂದಿದ್ದೀರಾ? ಹೊಸತೇನಿದೆಯೆಂದು ನೋಡಿ + The first parameter is the short name of the app (e.g. LeOSium) --> ಮರುವಿನ್ಯಾಸಗೊಳಿಸಲಾದ %s ಬಗ್ಗೆ ಪ್ರಶ್ನೆಗಳಿವೆಯೇ? ಏನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ ಎಂದು ತಿಳಿಯಲು ಬಯಸುವಿರಾ? ಉತ್ತರಗಳನ್ನು ಇಲ್ಲಿ ಪಡೆಯಿರಿ @@ -973,8 +973,8 @@ ಬದಲಿಗೆ ಇಮೇಲ್ ಬಳಸಿ - Firefox ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವುದು, ಆದರೆ ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಯಾವುದೇ ಜಾಲಾಟದ ಡೇಟಾವನ್ನು ಅಳಿಸುವುದಿಲ್ಲ. - + LeOSium ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವುದು, ಆದರೆ ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಯಾವುದೇ ಜಾಲಾಟದ ಡೇಟಾವನ್ನು ಅಳಿಸುವುದಿಲ್ಲ. + %s ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವುದು, ಆದರೆ ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಯಾವುದೇ ಜಾಲಾಟದ ಡೇಟಾವನ್ನು ಅಳಿಸುವುದಿಲ್ಲ. ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ @@ -1354,13 +1354,13 @@ ಮತ್ತೊಂದು ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕವನ್ನು ಸಾಧಿಸಿ. ದಯವಿಟ್ಟು ಮರು-ಧೃಡೀಕರಿಸಿ. - + ದಯವಿಟ್ಟು ಟ್ಯಾಬ್ ಸಿಂಕ್ ಸಕ್ರಿಯಗೊಳಿಸಿ. ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ಫೈರ್‌ಫಾಕ್ಸ್‌ನಲ್ಲಿ ಯಾವುದೇ ಟ್ಯಾಬ್‌ಗಳು ತೆರೆದಿಲ್ಲ. - + ನಿಮ್ಮ ಇತರೆ ಸಾಧನಗಳಲ್ಲಿನ ಟ್ಯಾಬ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡಿ. - + ಸಿಂಕ್ ಮಾಡಲು ಸೈನ್ ಇನ್ ಆಗಿ diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index fd7f1b02..088590f5 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -76,7 +76,7 @@ 이 기기에 흔적을 남기지 마세요 %1$s는 모든 사생활 보호 탭을 닫을 때 쿠키, 기록 및 사이트 데이터를 삭제합니다. %2$s 페이지 번역 + + 페이지가 %1$s에서 %2$s로 번역되었습니다. + 선택된 언어 @@ -338,13 +343,23 @@ - Firefox 개인정보처리방침 - + LeOSium 개인정보처리방침 + + 개인정보 보호정책에서 자세히 알아보기 우리는 사용자를 안전하게 지키는 것을 좋아합니다 + + 수백만 명이 LeOSium를 좋아하는 이유를 알아보세요 + + 더 많은 선택으로 안전한 브라우징 당사의 비영리 지원 브라우저는 회사가 웹에서 비밀리에 사용자를 추적하는 것을 방지하는 데 도움이 됩니다. + 1억 명 이상의 사람들이 비영리 단체가 지원하는 브라우저를 선택하여 개인 정보를 보호합니다. + + 알려진 추적기? 자동으로 차단됩니다. 확장기능? 700개 모두 사용해 보세요. PDF? 내장된 리더를 사용하면 쉽게 관리할 수 있습니다. + 당사의 비영리 지원 브라우저는 회사가 웹에서 비밀리에 사용자를 추적하는 것을 방지하는 데 도움이 됩니다.\n\n개인정보처리방침에서 더 알아보세요. @@ -356,33 +371,33 @@ 기기 간 이동 시 암호화 상태를 유지하세요 - 로그인하고 동기화하면 더 안전해집니다. Firefox는 비밀번호, 북마크 등을 암호화합니다. + Note: The word "LeOSium" should NOT be translated --> + 로그인하고 동기화하면 더 안전해집니다. LeOSium는 비밀번호, 북마크 등을 암호화합니다. 로그인 나중에 - 알림으로 Firefox를 더욱 안전하게 사용할 수 있습니다 + Note: The word "LeOSium" should NOT be translated --> + 알림으로 LeOSium를 더욱 안전하게 사용할 수 있습니다 - 기기 간에 안전하게 탭을 보내고 Firefox의 다른 개인 정보 보호 기능을 찾아보세요. + Note: The word "LeOSium" should NOT be translated --> + 기기 간에 안전하게 탭을 보내고 LeOSium의 다른 개인 정보 보호 기능을 찾아보세요. 알림 켜기 나중에 - Firefox 검색 위젯을 사용해 보세요 + Note: The word "LeOSium" should NOT be translated --> + LeOSium 검색 위젯을 사용해 보세요 - 홈 화면에 Firefox를 사용하면, 교차 사이트 추적기를 차단하는 개인 정보 보호 우선 브라우저에 쉽게 접근할 수 있습니다. + Note: The word "LeOSium" should NOT be translated --> + 홈 화면에 LeOSium를 사용하면, 교차 사이트 추적기를 차단하는 개인 정보 보호 우선 브라우저에 쉽게 접근할 수 있습니다. - Firefox 위젯 추가 + Note: The word "LeOSium" should NOT be translated --> + LeOSium 위젯 추가 나중에 @@ -423,10 +438,10 @@ 검색 엔진의 제안 주소 표시줄 설정 - - 주소 표시줄 - Firefox 제안 - - Firefox 제안에 대해 더 알아보기 + + 주소 표시줄 - LeOSium 제안 + + LeOSium 제안에 대해 더 알아보기 Google Play에서 평가하기 URL 자동 완성 - + 스폰서 제안 - 가끔씩 스폰서 제안으로 %1$s 지원 - %1$s 제안 - + 사용자 검색과 관련된 웹 제안을 받으세요 앱에서 링크 열기 @@ -655,7 +670,7 @@ 더 알아보기 - + 클래식 %s 아티스트 시리즈 @@ -673,8 +688,8 @@ 새 부가 기능 지금 사용 가능 - - Firefox를 자신만의 것으로 만들 수 있는 100개 이상의 새로운 확장 기능을 확인해 보세요. + + LeOSium를 자신만의 것으로 만들 수 있는 100개 이상의 새로운 확장 기능을 확인해 보세요. 부가 기능 살펴보기 @@ -703,9 +718,9 @@ 북마크 - 로그인 + 로그인 - 비밀번호 + 비밀번호 열린 탭 @@ -731,9 +746,9 @@ %2$s %3$s의 %1$s - 신용 카드 + 신용 카드 - 결제 방법 + 결제 방법 주소 @@ -741,7 +756,7 @@ 받은 탭 - 다른 Firefox 기기에서 받은 탭에 대한 알림입니다. + 다른 LeOSium 기기에서 받은 탭에 대한 알림입니다. 전송 받은 탭 @@ -925,7 +940,7 @@ 삭제 활성화 - + %1$s는 때때로 연구를 설치하고 실행할 수 있습니다. 더 알아보기 @@ -1322,7 +1337,7 @@ 다른 기기에 연결 - 탭을 보내려면 하나 이상의 다른 기기에서 Firefox에 로그인하세요. + 탭을 보내려면 하나 이상의 다른 기기에서 LeOSium에 로그인하세요. 확인 @@ -1351,10 +1366,10 @@ - Firefox는 빠르고 사생활을 보호합니다 + LeOSium는 빠르고 사생활을 보호합니다 - Firefox를 기본 브라우저로 설정하세요 + LeOSium를 기본 브라우저로 설정하세요 사생활 보호 모드 사용해보기 - 간단한 설문 조사로 Firefox를 개선할 수 있도록 도와주세요. + 간단한 설문 조사로 LeOSium를 개선할 수 있도록 도와주세요. 설문 조사 참여 @@ -1531,16 +1546,16 @@ 코드 스캔 - https://firefox.com/pair로 이동하세요]]> + https://firefox.com/pair로 이동하세요]]> 스캔 준비 완료 카메라로 로그인 대신 이메일 사용 - - 하나를 만드세요.]]> - + + 하나를 만드세요.]]> + %s가 계정과의 동기화를 중단하지만 이 기기의 사용자 탐색 데이터는 삭제하지 않습니다. 연결 끊기 @@ -1557,7 +1572,7 @@ 향상된 추적 방지 기능 이제 크로스 사이트 추적기에 대한 우리의 가장 강력한 기능인 전체 쿠키 보호 기능을 제공합니다. - + %s는 온라인 활동을 추적하는 가장 일반적인 여러 추적기로부터 사용자를 보호합니다. 더 알아보기 @@ -1710,21 +1725,21 @@ 이 웹 사이트를 기기의 홈 화면에 쉽게 추가하여 앱과 같은 경험을 통해 즉시 액세스하고 더 빠르게 탐색 할 수 있습니다. - 로그인과 비밀번호 + 로그인과 비밀번호 - 비밀번호 + 비밀번호 - 로그인과 비밀번호 저장 + 로그인과 비밀번호 저장 - 비밀번호 저장 + 비밀번호 저장 저장할지 묻기 저장 안 함 - + %1$s에서 자동 채우기 - + %1$s 앱을 사용하는 동안 웹사이트에서 사용자 이름과 비밀번호를 채우고 저장합니다. 다른 앱에서 자동 채우기 @@ -1732,47 +1747,47 @@ 기기의 다른 앱에서 사용자 이름과 비밀번호를 채웁니다. - 로그인 추가 + 로그인 추가 - 비밀번호 추가 + 비밀번호 추가 - - Sync 로그인 - 비밀번호 동기화 + Sync 로그인 + + 비밀번호 동기화 - 기기 간에 로그인 동기화 + 기기 간에 로그인 동기화 - 기기 간에 비밀번호 동기화 + 기기 간에 비밀번호 동기화 - 저장된 로그인 + 저장된 로그인 - 저장된 비밀번호 + 저장된 비밀번호 - %s에 저장하거나 동기화한 로그인이 여기에 표시됩니다. + %s에 저장하거나 동기화한 로그인이 여기에 표시됩니다. - %s에 저장하거나 동기화한 비밀번호는 여기에 나열됩니다. 저장한 모든 비밀번호는 암호화됩니다. + %s에 저장하거나 동기화한 비밀번호는 여기에 나열됩니다. 저장한 모든 비밀번호는 암호화됩니다. - Sync에 대해 더 알아보기. + Sync에 대해 더 알아보기. - 동기화에 대해 더 알아보기 + 동기화에 대해 더 알아보기 예외 목록 - 저장되지 않은 로그인과 비밀번호가 여기에 표시됩니다. + 저장되지 않은 로그인과 비밀번호가 여기에 표시됩니다. - %s는 여기에 나열된 사이트의 비밀번호를 저장하지 않습니다. + %s는 여기에 나열된 사이트의 비밀번호를 저장하지 않습니다. - 이 사이트에 대한 로그인과 비밀번호는 저장되지 않습니다. + 이 사이트에 대한 로그인과 비밀번호는 저장되지 않습니다. - %s는 이 사이트의 비밀번호를 저장하지 않습니다. + %s는 이 사이트의 비밀번호를 저장하지 않습니다. 모든 예외 삭제 - 로그인 검색 + 로그인 검색 - 비밀번호 검색 + 비밀번호 검색 사이트 @@ -1800,17 +1815,17 @@ 비밀번호 숨기기 - 저장된 로그인을 보려면 잠금 해제하세요 + 저장된 로그인을 보려면 잠금 해제하세요 - 저장된 비밀번호를 보려면 잠금 해제하세요 + 저장된 비밀번호를 보려면 잠금 해제하세요 - 로그인과 비밀번호 보안 + 로그인과 비밀번호 보안 - 저장된 비밀번호를 보호하세요 + 저장된 비밀번호를 보호하세요 - 다른 사람이 내 기기를 가지고 있는 경우, 저장된 로그인과 비밀번호에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. + 다른 사람이 내 기기를 가지고 있는 경우, 저장된 로그인과 비밀번호에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. - 다른 사람이 내 기기를 가지고 있는 경우, 저장된 비밀번호에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. + 다른 사람이 내 기기를 가지고 있는 경우, 저장된 비밀번호에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. 나중에 @@ -1828,10 +1843,10 @@ 마지막 사용 - 로그인 정렬 메뉴 + 로그인 정렬 메뉴 - 비밀번호 정렬 메뉴 + 비밀번호 정렬 메뉴 @@ -1839,44 +1854,44 @@ 주소 - 신용 카드 + 신용 카드 - 결제 방법 + 결제 방법 - 카드 저장 및 자동 채우기 + 카드 저장 및 자동 채우기 - 결제 방법 저장 및 채우기 + 결제 방법 저장 및 채우기 - 데이터가 암호화됨 + 데이터가 암호화됨 - %s는 저장한 모든 결제 방법을 암호화합니다 + %s는 저장한 모든 결제 방법을 암호화합니다 기기 간에 카드 동기화 카드 동기화 - 신용 카드 추가 + 신용 카드 추가 - 카드 추가 + 카드 추가 - 저장된 카드 관리 + 저장된 카드 관리 - 카드 관리 + 카드 관리 주소 추가 주소 관리 - 주소 저장 및 자동 채우기 + 주소 저장 및 자동 채우기 - 주소 저장 및 채우기 + 주소 저장 및 채우기 - 숫자, 이메일 및 배송 주소와 같은 정보 포함 + 숫자, 이메일 및 배송 주소와 같은 정보 포함 - 전화번호와 이메일 주소가 포함됩니다 + 전화번호와 이메일 주소가 포함됩니다 카드 추가 @@ -1898,9 +1913,9 @@ 카드 삭제 - 이 신용 카드를 삭제하시겠습니까? + 이 신용 카드를 삭제하시겠습니까? - 카드를 삭제하시겠습니까? + 카드를 삭제하시겠습니까? 삭제 @@ -1914,24 +1929,24 @@ 저장된 카드 - 유효한 신용 카드 번호를 입력해 주세요 + 유효한 신용 카드 번호를 입력해 주세요 - 유효한 카드 번호를 입력하세요 + 유효한 카드 번호를 입력하세요 - 이 항목을 입력하세요. + 이 항목을 입력하세요. - 이름 추가 + 이름 추가 저장된 카드를 보려면 잠금 해제하세요 - 신용 카드 보안 + 신용 카드 보안 - 저장된 결제 방법을 보호하세요 + 저장된 결제 방법을 보호하세요 - 다른 사람이 내 기기를 가지고 있는 경우, 저장된 신용 카드에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. + 다른 사람이 내 기기를 가지고 있는 경우, 저장된 신용 카드에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. - 다른 사람이 내 기기를 가지고 있는 경우, 저장된 결제 방법에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. + 다른 사람이 내 기기를 가지고 있는 경우, 저장된 결제 방법에 접근하지 못하도록 기기 잠금 패턴, PIN 또는 비밀번호를 설정하세요. 지금 설정 @@ -1940,10 +1955,10 @@ 기기 잠금 해제 - 저장된 신용 카드 정보를 사용하려면 잠금 해제하세요 + 저장된 신용 카드 정보를 사용하려면 잠금 해제하세요 - 저장된 결제 방법을 사용하려면 잠금 해제하세요 + 저장된 결제 방법을 사용하려면 잠금 해제하세요 주소 추가 @@ -1951,11 +1966,13 @@ 주소 관리 - 이름 + 이름 - 중간 이름 + 중간 이름 - + + + 이름 도로 주소 @@ -1980,9 +1997,9 @@ 주소 삭제 - 이 주소를 삭제하시겠습니까? + 이 주소를 삭제하시겠습니까? - 이 주소를 삭제하시겠습니까? + 이 주소를 삭제하시겠습니까? 삭제 @@ -2081,49 +2098,49 @@ 편집 - 이 로그인을 삭제하시겠습니까? + 이 로그인을 삭제하시겠습니까? - 이 비밀번호를 삭제하시겠습니까? + 이 비밀번호를 삭제하시겠습니까? 삭제 취소 - 로그인 옵션 + 로그인 옵션 - 비밀번호 옵션 + 비밀번호 옵션 - 로그인 웹 주소의 편집 가능한 텍스트 필드입니다. + 로그인 웹 주소의 편집 가능한 텍스트 필드입니다. - 웹 사이트 주소에 대한 편집 가능한 텍스트 필드입니다. + 웹 사이트 주소에 대한 편집 가능한 텍스트 필드입니다. - 로그인 사용자 이름의 편집 가능한 텍스트 필드입니다. + 로그인 사용자 이름의 편집 가능한 텍스트 필드입니다. - 사용자 이름에 대한 편집 가능한 텍스트 필드입니다. + 사용자 이름에 대한 편집 가능한 텍스트 필드입니다. - 로그인 비밀번호의 편집 가능한 텍스트 필드입니다. + 로그인 비밀번호의 편집 가능한 텍스트 필드입니다. - 비밀번호에 대한 편집 가능한 텍스트 필드입니다. + 비밀번호에 대한 편집 가능한 텍스트 필드입니다. - 변경 내용을 로그인에 저장. + 변경 내용을 로그인에 저장. - 변경 내용 저장. + 변경 내용 저장. - 편집 + 편집 - 비밀번호 수정 + 비밀번호 수정 - 새 로그인 추가 + 새 로그인 추가 - 비밀번호 추가 + 비밀번호 추가 - 비밀번호 필요 + 비밀번호 필요 - 비밀번호 입력 + 비밀번호 입력 - 사용자 이름은 필수입니다 + 사용자 이름은 필수입니다 - 사용자 이름 입력 + 사용자 이름 입력 호스트 이름은 필수입니다 @@ -2148,14 +2165,14 @@ 다른 기기를 연결하세요. 다시 인증하세요. - + 탭 동기화를 활성화하세요. - 다른 기기의 Firefox에서 열린 탭이 없습니다. - + 다른 기기의 LeOSium에서 열린 탭이 없습니다. + 다른 기기의 탭 목록을 봅니다. - + Sync에 로그인 @@ -2208,7 +2225,7 @@ 한 달 후 자동 닫기를 하시겠습니까? - Firefox는 지난 한 달 동안 보지 않은 탭을 닫을 수 있습니다. + LeOSium는 지난 한 달 동안 보지 않은 탭을 닫을 수 있습니다. 자동 닫기 켜기 @@ -2216,8 +2233,8 @@ 자동 닫기 사용함 - - Firefox 제안 + + LeOSium 제안 구글 검색 @@ -2228,7 +2245,7 @@ 기본 브라우저 전환 - Firefox에서 자동으로 열리도록 웹 사이트, 이메일 및 메시지의 링크를 설정합니다. + LeOSium에서 자동으로 열리도록 웹 사이트, 이메일 및 메시지의 링크를 설정합니다. 삭제 @@ -2237,7 +2254,7 @@ 상세 정보 - 위로 이동 + 위로 이동 닫기 @@ -2252,7 +2269,7 @@ %s 제공. - Firefox 제품군의 일부입니다. %s + LeOSium 제품군의 일부입니다. %s 더 알아보기 @@ -2278,8 +2295,6 @@ 조정된 평점 - 신뢰할 수 없는 리뷰는 삭제됨 - 신뢰할 수 있는 리뷰에 바탕 최근 리뷰의 하이라이트 @@ -2335,10 +2350,6 @@ 이 제품이 재입고된 것을 확인하시면, 보고해 주시면 리뷰를 확인하도록 하겠습니다. 제품 재고가 있다고 보고 - - 리뷰 품질 확인 중 - - 리뷰 품질 확인 중 리뷰 품질 확인 중 (%s) @@ -2375,22 +2386,28 @@ 리뷰 품질 확인 제품 리뷰에 대한 신뢰할 수 있는 가이드를 사용해 보세요 - + 구매하기 전에 %1$s에 대한 제품 리뷰가 얼마나 신뢰할 수 있는지 확인하세요. %2$s의 실험 기능인 리뷰 검사기가 브라우저에 바로 내장되어 있습니다. %3$s 및 %4$s에서도 작동합니다. - + 구매하기 전에 %1$s에 대한 제품 리뷰가 얼마나 신뢰할 수 있는지 확인하세요. %2$s의 실험 기능인 리뷰 검사기가 브라우저에 바로 내장되어 있습니다. Mozilla의 %1$s 기능을 사용하여 편향되고 허위 리뷰를 방지하는 데 도움을 드립니다. AI 모델은 쇼핑하는 동안 사용자를 보호하기 위해 항상 개선되고 있습니다. %2$s 더 알아보기 - "사용해보기"를 선택하면 Mozilla %2$s 및 %3$s의 %1$s에 동의하게 됩니다. + "사용해보기"를 선택하면 Mozilla %2$s 및 %3$s의 %1$s에 동의하게 됩니다. "사용해보기"를 선택하면 %1$s의 다음 사항에 동의하게 됩니다: + + “사용해보기”를 선택하면 %1$s의 %2$s와 %3$s의 %4$s에 동의하게 됩니다. + + “사용해보기”를 선택하면 %1$s의 %2$s와 %3$s의 %4$s에 동의하게 됩니다. - 개인정보처리방침 + 개인정보처리방침 개인정보처리방침 + + 개인 정보 보호 정책 사용 약관 @@ -2447,7 +2464,7 @@ 이 모음집에 대해 더 알아보려면 링크 열기 글 읽기 - + 더 알아보려면 링크 열기 %s, 제목 @@ -2462,11 +2479,15 @@ 이 페이지를 번역할까요? + + 페이지가 %1$s에서 %2$s로 번역되었습니다. %1$s에서 개인 정보가 보호되는 번역을 사용해 보세요 개인 정보 보호를 위해 번역은 사용자의 기기를 떠나지 않습니다. 새로운 언어와 개선 사항이 곧 제공됩니다! %1$s - + 더 알아보기 원본 언어: @@ -2474,6 +2495,8 @@ 대상 언어: 나중에 + + 원본 보기 완료 @@ -2496,6 +2519,16 @@ 더 알아보기 + + 번역 중… + + + 데이터 절약 모드에서 언어를 다운로드하시겠습니까 (%1$s)? + + 번역 옵션 @@ -2619,7 +2652,7 @@ This dialog will be presented when the user attempts to download a language or perform a translation without the necessary language files downloaded first when Android's data saver mode is enabled and the user is not using WiFi. The first parameter is the size in kilobytes or megabytes of the language file.--> - 데이터 절약 모드(%1$s)에 있는 동안 다운로드하시겠습니까? + 데이터 절약 모드에 있는 동안 다운로드하시겠습니까 (%1$s)? 개인 정보 보호를 위해 언어 일부분을 캐시에 다운로드합니다. diff --git a/app/src/main/res/values-lij/strings.xml b/app/src/main/res/values-lij/strings.xml index bcb7155c..450544b4 100644 --- a/app/src/main/res/values-lij/strings.xml +++ b/app/src/main/res/values-lij/strings.xml @@ -158,12 +158,12 @@ Acesibilitæ - - Server personalizou pe-o conto Firefox + + Server personalizou pe-o conto LeOSium Server personalizou pe Sync - O server pe-o conto Firefox/Sync cangiou. L\'aplicaçion a saiâ serâ pe aplicâ i cangiamenti… + O server pe-o conto LeOSium/Sync cangiou. L\'aplicaçion a saiâ serâ pe aplicâ i cangiamenti… Conto @@ -173,7 +173,7 @@ Personalizza - Conto Firefox + Conto LeOSium Conetite torna pe repigiâ a scioncronizaçion @@ -241,7 +241,7 @@ Feuggi reçevui - Notifiche pe-i feuggi reçevue da atri dispoxitivi Firefox. + Notifiche pe-i feuggi reçevue da atri dispoxitivi LeOSium. Feuggio reçevuo @@ -550,7 +550,7 @@ Conetti atro dispoxitivo - Pe mandâ un feuggio, intra into conto Firefox almeno inte \'n atro dispoxitivo. + Pe mandâ un feuggio, intra into conto LeOSium almeno inte \'n atro dispoxitivo. Ò capio! @@ -693,14 +693,14 @@ Scançionn-a o còdice - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pronto pe-a scançion Acedi co-a fòtocamera Acedi con l’email - + I dæti de navegaçion no saian ciù scincronizæ co-o conto %s, ma no saian scancelæ da sto dispoxitivo. Disconnetti @@ -997,13 +997,13 @@ Conetti atro dispoxitivo. Pe piaxei intra torna - + Pe piaxei ativa a scincroniaçion di feuggi. - No ti gh\'æ feuggi averti in Firefox inti atri dispoxitivi. - + No ti gh\'æ feuggi averti in LeOSium inti atri dispoxitivi. + Amia \'na lista de tutti i feuggi da-i atri dispoxitivi. - + Acedi a Sync diff --git a/app/src/main/res/values-lo/strings.xml b/app/src/main/res/values-lo/strings.xml index 8e987b62..9ecc10a1 100644 --- a/app/src/main/res/values-lo/strings.xml +++ b/app/src/main/res/values-lo/strings.xml @@ -304,15 +304,15 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> ເຮັດໃຫ້ %s ໄປຫາຕົວທ່ອງເວັບຂອງທ່ານ - ເຮັດໃຫ້ Firefox ໄປກັບຕົວທ່ອງເວັບຂອງທ່ານ + Note: The word "LeOSium" should NOT be translated --> + ເຮັດໃຫ້ LeOSium ໄປກັບຕົວທ່ອງເວັບຂອງທ່ານ %1$s ເຮັດໃຫ້ຄົນຫຼາຍກວ່າຜົນກຳໄລ ແລະປົກປ້ອງຄວາມເປັນສ່ວນຕົວຂອງທ່ານໂດຍການບລັອກຕົວຕິດຕາມຂ້າມເວັບໄຊ.\n\nສຶກສາເພີ່ມເຕີມໃນ %2$s ຂອງພວກເຮົາ. - Firefox ເຮັດໃຫ້ຄົນຫຼາຍກວ່າຜົນກຳໄລ ແລະ ປົກປ້ອງຄວາມເປັນສ່ວນຕົວຂອງທ່ານໂດຍການບລັອກຕົວຕິດຕາມຂ້າມເວັບໄຊ.\n\nສຶກສາເພີ່ມເຕີມໃນແຈ້ງການຄວາມເປັນສ່ວນຕົວຂອງພວກເຮົາ. + Note: The word "LeOSium" should NOT be translated --> + LeOSium ເຮັດໃຫ້ຄົນຫຼາຍກວ່າຜົນກຳໄລ ແລະ ປົກປ້ອງຄວາມເປັນສ່ວນຕົວຂອງທ່ານໂດຍການບລັອກຕົວຕິດຕາມຂ້າມເວັບໄຊ.\n\nສຶກສາເພີ່ມເຕີມໃນແຈ້ງການຄວາມເປັນສ່ວນຕົວຂອງພວກເຮົາ. ແຈ້ງການຄວາມເປັນສ່ວນຕົວ @@ -333,14 +333,14 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> ການແຈ້ງເຕືອນຊ່ວຍໃຫ້ທ່ານເຮັດໄດ້ຫຼາຍຂຶ້ນກັບ %s - ການແຈ້ງເຕືອນຊ່ວຍໃຫ້ທ່ານເຮັດໄດ້ຫຼາຍຂຶ້ນກັບ Firefox + Note: The word "LeOSium" should NOT be translated --> + ການແຈ້ງເຕືອນຊ່ວຍໃຫ້ທ່ານເຮັດໄດ້ຫຼາຍຂຶ້ນກັບ LeOSium ສົ່ງແຖບລະຫວ່າງອຸປະກອນ, ຈັດການການດາວໂຫຼດ, ແລະຮັບຄຳແນະນຳໃນການໄດ້ຮັບປະໂຫຍດສູງສຸດຈາກ %s. - ສົ່ງແຖບລະຫວ່າງອຸປະກອນ, ຈັດການການດາວໂຫຼດ, ແລະ ຮັບຄຳແນະນຳໃນການໃຊ້ Firefox ໃຫ້ຫຼາຍທີ່ສຸດ. + Note: The word "LeOSium" should NOT be translated --> + ສົ່ງແຖບລະຫວ່າງອຸປະກອນ, ຈັດການການດາວໂຫຼດ, ແລະ ຮັບຄຳແນະນຳໃນການໃຊ້ LeOSium ໃຫ້ຫຼາຍທີ່ສຸດ. ເປີດການແຈ້ງເຕືອນ @@ -476,12 +476,12 @@ ຢ່າງໃດກໍ່ຕາມ, ມັນກໍ່ເປັນໄປໄດ້ວ່າຜູ້ໂຈມຕີມີສ່ວນຮ່ວມ. ຖ້າທ່ານສືບຕໍ່ໄປຫາເວັບໄຊທ໌, ທ່ານບໍ່ຄວນໃສ່ຂໍ້ມູນລະອຽດອ່ອນໃດໆ. ຖ້າທ່ານສືບຕໍ່, ໂໝດ HTTPS-Only ຈະຖືກປິດໄວ້ຊົ່ວຄາວສໍາລັບເວັບໄຊທ໌. ສິ່ງອຳນວຍຄວາມສະດວກ - - ດັດແກ້ບັນຊີເຊີເວີ Firefox + + ດັດແກ້ບັນຊີເຊີເວີ LeOSium ກຳຫນົດເຊີເວີ Sync - ບັນຊີ/Sync ຂອງ Firefox ໄດ້ຮັບການດັດແກ້ແລ້ວ. ອອກຈາກແອັບພລິເຄຊັນເພື່ອນຳໃຊ້ການດັດແກ້… + ບັນຊີ/Sync ຂອງ LeOSium ໄດ້ຮັບການດັດແກ້ແລ້ວ. ອອກຈາກແອັບພລິເຄຊັນເພື່ອນຳໃຊ້ການດັດແກ້… ບັນຊີ @@ -497,7 +497,7 @@ Sync ແທັບ, ບຸກມາກ, ລະຫັດຜ່ານ ແລະ ອື່ນໆຂອງທ່ານ. - ບັນຊີ Firefox + ບັນຊີ LeOSium ເຊື່ອມຕໍຄືນເພື່ອເລີ່ມ sync ຄືນໃຫມ່ @@ -609,7 +609,7 @@ ຮຽນຮູ້ເພີ່ມເຕີມ - + ຄລາດສິກ %s ມີ​ຈໍາ​ນວນ​ຈໍາ​ກັດ @@ -679,7 +679,7 @@ ແຖບທີ່ໄດ້ຮັບ - ການແຈ້ງເຕືອນສຳລັບແທັບທີ່ໄດ້ຮັບຈາກ Firefox ໃນເຄື່ອງອື່ນ. + ການແຈ້ງເຕືອນສຳລັບແທັບທີ່ໄດ້ຮັບຈາກ LeOSium ໃນເຄື່ອງອື່ນ. ແທັບທີ່ໄດ້ຮັບ @@ -865,7 +865,7 @@ ລຶບ ​ເປີດໃຊ້ງານ - + %1$s ອາດຈະຕິດຕັ້ງ ແລະດໍາເນີນການສຶກສາເປັນບາງໂອກາດ. ຮຽນຮູ້ເພີ່ມເຕີມ @@ -1243,7 +1243,7 @@ ເຊື່ອມຕໍ່ກັບອຸປະກອນອື່ນ - ລົງຊື່ເຂົ້າໃຊ້ Firefox ຢ່າງນ້ອຍໃນ 1 ເຄື່ອງເພື່ອສົ່ງແທັບ + ລົງຊື່ເຂົ້າໃຊ້ LeOSium ຢ່າງນ້ອຍໃນ 1 ເຄື່ອງເພື່ອສົ່ງແທັບ ເຂົ້າໃຈແລ້ວ! @@ -1267,10 +1267,10 @@ - Firefox ແມ່ນໄວ ແລະ ເປັນສ່ວນຕົວ + LeOSium ແມ່ນໄວ ແລະ ເປັນສ່ວນຕົວ - ຕັ້ງ Firefox ໃຫ້ເປັນຕົວທ່ອງເວັບເລີ່ມຕົ້ນຂອງທ່ານ + ຕັ້ງ LeOSium ໃຫ້ເປັນຕົວທ່ອງເວັບເລີ່ມຕົ້ນຂອງທ່ານ ລອງຊອກຫາແບບສ່ວນຕົວ - ກະລຸນາຊ່ວຍເຮັດໃຫ້ Firefox ດີຂຶ້ນໂດຍການເຮັດແບບສຳຫຼວດສັ້ນໆ. + ກະລຸນາຊ່ວຍເຮັດໃຫ້ LeOSium ດີຂຶ້ນໂດຍການເຮັດແບບສຳຫຼວດສັ້ນໆ. ເຮັດແບບສຳຫຼວດ @@ -1428,11 +1428,11 @@ ຍິນດີຕ້ອນຮັບສູ່ອິນເຕີເນັດທີ່ດີກວ່າ ອິນເຕີເນັດສຳລັບທຸກຄົນ, ບໍ່ແມ່ນເພືອຫວັງຜົນກຳໄລ - + ຮັບເອົາຈາກບ່ອນທີ່ທ່ານໄດ້ປະເອົາໄວ້. - + ຊິ້ງແຖບ ແລະລະຫັດຜ່ານໃນທົ່ວອຸປະກອນສຳລັບການສະຫຼັບໜ້າຈໍແບບບໍ່ມີຮອຍຕໍ່. - + ເຂົ້າສູ່ລະບົບ Sync ເປີດຢູ່ @@ -1460,7 +1460,7 @@ ທ່ານຄວບຄຸມຂໍ້ມູນຂອງທ່ານ - Firefox ໃຫ້ທ່ານຄວບຄຸມສິ່ງທີ່ທ່ານແບ່ງປັນອອນໄລນ໌ ແລະສິ່ງທີ່ທ່ານແບ່ງປັນກັບພວກເຮົາ. + LeOSium ໃຫ້ທ່ານຄວບຄຸມສິ່ງທີ່ທ່ານແບ່ງປັນອອນໄລນ໌ ແລະສິ່ງທີ່ທ່ານແບ່ງປັນກັບພວກເຮົາ. ອ່ານນະໂຍບາຍຄວາມເປັນສ່ວນຕົວຂອງພວກເຮົາ @@ -1495,7 +1495,7 @@ ສະແກນລະຫັດ - https://firefox.com/pair]]> + https://firefox.com/pair]]> ກຽມພ້ອມທີ່ຈະສະແກນ @@ -1503,9 +1503,9 @@ ໃຊ້ອີເມວແທນ - - ສ້າງອັນໜຶ່ງ ເພື່ອຊິງຄ໌ Firefox ລະຫວ່າງອຸປະກອນ.]]> - + + ສ້າງອັນໜຶ່ງ ເພື່ອຊິງຄ໌ LeOSium ລະຫວ່າງອຸປະກອນ.]]> + %s ຈະຢຸດການ Sync ກັບບັນຊີຂອງທ່ານ ແຕວ່າຈະບໍ່ລຶບຂໍ້ມູນປະຫວັດການຄົ້ນຫາຂອງທ່ານໃນອຸປະກອນນີ້. ຕັດການເຊື່ອມຕໍ່ @@ -1521,7 +1521,7 @@ ເພີ່ມການປ້ອງກັນການຕິດຕາມ ຕອນນີ້ມີການປົກປ້ອງຄຸກກີ້ທັງໝົດ, ເປັນອຸປະສັກທີ່ມີປະສິດທິພາບທີ່ສຸດຂອງພວກເຮົາຕໍ່ກັບຕົວຕິດຕາມຂ້າມເວັບໄຊ. - + %s ປົກປ້ອງທ່ານຈາກຫຼາຍຕົວຕິດຕາມທົ່ວໄປທີ່ສຸດທີ່ຕິດຕາມສິ່ງທີ່ທ່ານເຮັດອອນໄລນ໌. ຮຽນຮູ້ເພີ່ມເຕີມ @@ -1688,9 +1688,9 @@ ບໍ່ຕ້ອງບັນທຶກ - + ຕື່ມຂໍ້ມູນອັດຕະໂນມັດໃນ %1$s - + ຕື່ມຂໍ້ມູນໃສ່ ແລະບັນທຶກຊື່ຜູ້ໃຊ້ ແລະລະຫັດຜ່ານຢູ່ໃນເວັບໄຊທ໌ໃນຂະນະທີ່ໃຊ້ %1$s. ຕື່ມຂໍ້ມູນອັດຕະໂນມັດໃນແອັບຯອື່ນ @@ -2040,13 +2040,13 @@ ເຊື່ອມຕໍ່ອຸປະກອນອື່ນ. ກະລຸນາຮັບຮອງຄວາມຖືກຕ້ອງອີກຄັ້ງຫນຶ່ງ. - + ກະລຸນາເປີດນຳໃຊ້ການ sync ແທັບ - ທ່ານບໍ່ໄດ້ເປີດຈັກແທັບຢູ່ Firefox ໃນອຸປະກອນອື່ນໆຂອງທ່ານ. - + ທ່ານບໍ່ໄດ້ເປີດຈັກແທັບຢູ່ LeOSium ໃນອຸປະກອນອື່ນໆຂອງທ່ານ. + ເບິງລາຍຊື່ແທັບຈາກອຸປະກອນອື່ນໆຂອງທ່ານ - + ເຂົ້າສູ່ລະບົບເພື່ອ Sync ບໍ່ມີແທັບທີ່ເປີດຢູ່ @@ -2096,7 +2096,7 @@ ປິດອັດຕະໂນມັດຫຼັງຈາກຫນຶ່ງເດືອນບໍ? - Firefox ສາມາດປິດແຖບທີ່ທ່ານບໍ່ໄດ້ເບິ່ງໃນເດືອນທີ່ຜ່ານມາ. + LeOSium ສາມາດປິດແຖບທີ່ທ່ານບໍ່ໄດ້ເບິ່ງໃນເດືອນທີ່ຜ່ານມາ. ເປີດປິດອັດຕະໂນມັດ @@ -2104,8 +2104,8 @@ ປິດອັດຕະໂນມັດເປີດ - - Firefox ແນະນໍາ + + LeOSium ແນະນໍາ ຄົ້ນ​ຫາ Google @@ -2113,7 +2113,7 @@ %s ຄົ້ນຫາ - ຕັ້ງລິ້ງຈາກເວັບໄຊທ໌, ອີເມວ ແລະຂໍ້ຄວາມໃຫ້ເປີດໂດຍອັດຕະໂນມັດໃນ Firefox. + ຕັ້ງລິ້ງຈາກເວັບໄຊທ໌, ອີເມວ ແລະຂໍ້ຄວາມໃຫ້ເປີດໂດຍອັດຕະໂນມັດໃນ LeOSium. ລົບ @@ -2137,7 +2137,7 @@ ຂັບເຄື່ອນໂດຍ %s. - ສ່ວນຫນຶ່ງຂອງຄອບຄົວ Firefox. %s + ສ່ວນຫນຶ່ງຂອງຄອບຄົວ LeOSium. %s ຮຽນຮູ້ເພີ່ມເຕີມ @@ -2157,6 +2157,6 @@ ເປີດລິ້ງເພື່ອສຶກສາເພີ່ມເຕີມກ່ຽວກັບຄໍເລັກຊັນນີ້ ອ່ານບົດຄວາມ - + ເປີດລິ້ງເພື່ອສຶກສາເພີ່ມເຕີມ diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 850a7eff..828e4781 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -295,12 +295,12 @@ Pritaikymas neįgaliesiems - - Kitas „Firefox“ paskyrų serveris + + Kitas „LeOSium“ paskyrų serveris Kitas „Sync“ serveris - Pakeistas „Firefox“ paskyrų/sinchronizavimo serveris. Išeinama iš programos, kad būtų pritaikyti pakeitimai… + Pakeistas „LeOSium“ paskyrų/sinchronizavimo serveris. Išeinama iš programos, kad būtų pritaikyti pakeitimai… Paskyra @@ -314,7 +314,7 @@ Tinkinimas - „Firefox“ paskyra + „LeOSium“ paskyra Prisijunkite, norėdami tęsti sinchronizavimą @@ -443,7 +443,7 @@ Gautos kortelės - Pranešimai apie korteles, gautas iš kitų „Firefox“ įrenginių. + Pranešimai apie korteles, gautas iš kitų „LeOSium“ įrenginių. Gauta kortelė @@ -925,7 +925,7 @@ Susieti kitą įrenginį - Norėdami persiųsti kortelę, turite prisijungti prie „Firefox“ bent viename kitame įrenginyje. + Norėdami persiųsti kortelę, turite prisijungti prie „LeOSium“ bent viename kitame įrenginyje. Supratau @@ -1046,8 +1046,8 @@ Šalinami naršymo duomenys… - - Turėkite savo „Firefox“ adresyną, žurnalą, ir slaptažodžius šiame įrenginyje. + + Turėkite savo „LeOSium“ adresyną, žurnalą, ir slaptažodžius šiame įrenginyje. „Sync“ įjungta @@ -1095,16 +1095,16 @@ Nuskaityti kodą - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pasiruošti nuskaitymui Prisijunkite su savo kamera Naudoti el. paštą - - Susikurkite, norėdami sinchronizuoti „Firefox“ tarp įrenginių.]]> - + + Susikurkite, norėdami sinchronizuoti „LeOSium“ tarp įrenginių.]]> + „%s“ nebesinchronizuos duomenų su jūsų paskyra, tačiau šiame įrenginyje esančių naršymo duomenų nepašalins. Atsijungti @@ -1267,9 +1267,9 @@ Pasiūlyti įrašyti Niekada neįrašyti - + Automatinis užpildymas per „%1$s“ - + Užpildyti ir įsiminti prisijungimus svetainėse, naudojantis „%1$s“. Automatinis užpildymas kitose programose @@ -1538,14 +1538,14 @@ Susiekite kitą įrenginį. Prisijunkite iš naujo. - + Įjunkite kortelių sinchronizavimą. - Kituose savo įrenginiuose su „Firefox“ neturite atvertų kortelių. - + Kituose savo įrenginiuose su „LeOSium“ neturite atvertų kortelių. + Peržiūrėkite kituose įrenginiuose esančias korteles. - + Prisijungti prie „Sync“ @@ -1580,7 +1580,7 @@ Užverti automatiškai po mėnesio? - „Firefox“ gali užverti korteles, kuriomis paskutinį mėnesį nesinaudojote. + „LeOSium“ gali užverti korteles, kuriomis paskutinį mėnesį nesinaudojote. ĮJUNGTI AUTOMATINĮ UŽVĖRIMĄ @@ -1588,7 +1588,7 @@ Automatinis užvėrimas įjungtas - Leiskite saitams iš svetainių, el. laiškų, ir žinučių būti automatiškai atvertiems per „Firefox“. + Leiskite saitams iš svetainių, el. laiškų, ir žinučių būti automatiškai atvertiems per „LeOSium“. Pašalinti @@ -1610,7 +1610,7 @@ Atrasti daugiau - „Firefox“ šeimos dalis. %s + „LeOSium“ šeimos dalis. %s Sužinoti daugiau diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 749bf235..49377000 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -46,7 +46,7 @@ വേണ്ട, നന്ദി - + ഫയർഫോക്സിലേക്ക് വേഗത്തിൽ എത്തുക. നിങ്ങളുടെ ഹോം സ്‌ക്രീനിൽ ഒരു വിജറ്റ് ചേർക്കുക. വിഡ്ജറ്റ് ചേർക്കുക @@ -225,7 +225,7 @@ സ്വകാര്യ ബ്രൗസിംഗ് കുറുക്കുവഴി ചേർക്കുക ആക്സസ്സെബിലിറ്റി - + ഇഷ്‌ടാനുസൃത ഫയർഫോക്‌സ് അക്കൗണ്ട് സെർവർ ഇഷ്‌ടാനുസൃത സമന്വയ സെർവർ @@ -357,7 +357,7 @@ പ്രകടനം, ഉപയോഗം, ഹാർഡ്‌വെയർ തുടങ്ങിയ വിവരങ്ങൾ മോഡില്ലയുമായിമായി പങ്കു വെച്ച് %1$s മെച്ചപ്പെടുത്തുവാൻ സഹായിക്കുക വിപണനത്തിനായുള്ള ഡാറ്റ - + %1$sൽ നിങ്ങൾ ഉപയോഗിക്കുന്ന സവിശേഷതകളുമായി ബന്ധപ്പെട്ട ഡാറ്റ ഞങ്ങളുടെ വിപണനസഹായിയായ Leanplumഉമായി പങ്കുവെയ്ക്കുന്നു. പരീക്ഷണങ്ങള്‍ @@ -900,16 +900,16 @@ ബ്രൗസിംഗ് ഡാറ്റ നീക്കം ചെയ്യുന്നു… - + ഫയർഫോക്സ് പ്രിവ്യൂ ഇപ്പോൾ ഫയർഫോക്സ് നൈറ്റ്‌ലി ആണ് ഫയർഫോക്സ് നൈറ്റ്ലി എല്ലാ ദിവസവും രാത്രി അപ്ഡേറ്റ് ആവുകയും പരീക്ഷണാത്മക സവിശേഷതകൾ നേടുകയും ചെയ്യുന്നു. എന്നിരുന്നാലും, ഇതിന് സ്ഥിരത കുറവായേക്കാം. നല്ല സ്ഥിരതയുള്ള അനുഭവത്തിനായി ഞങ്ങളുടെ ബീറ്റാ ബ്രൗസർ ഡൗൺലോഡ് ചെയ്യുക. - + ആൻഡ്രോയിഡിനായുള്ള ഫയർഫോക്സ് ബീറ്റ നേടുക - + ഫയർഫോക്സ് നൈറ്റ്ലി മാറിയിരിക്കുന്നു ഈ ആപ്പിന് ഇനി സുരക്ഷാ പുതുക്കലുകൾ ലഭിക്കില്ല. ഈ ആപ്പ് ഉപയോഗിക്കുന്നത് നിർത്തി പുതിയ നൈറ്റ്ലിയിലേക്ക് മാറുക. @@ -917,7 +917,7 @@ പുതിയ നൈറ്റ്ലിയിലേക്ക് മാറുക - + ഫയർഫോക്സ് നൈറ്റ്ലി മാറിയിരിക്കുന്നു .ഈ അപ്ലിക്കേഷന് ഇനി സുരക്ഷാ അപ്‌ഡേറ്റുകൾ ലഭിക്കില്ല. ഈ അപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്നത് നിർത്തി പുതിയ നൈറ്റ്ലിയിലേക്ക് മാറുക. @@ -927,32 +927,32 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s ലേക്ക് സ്വാഗതം! - + നിലവിൽ അക്കൗണ്ട് ഉണ്ടോ? - + %s നെ പറ്റി അറിയുക പുതിയതെന്താണെന്ന് കാണുക + The first parameter is the short name of the app (e.g. LeOSium) --> പുനർ‌രൂപകൽപ്പന ചെയ്‌ത %sനെക്കുറിച്ച് ചോദ്യങ്ങളുണ്ടോ? എന്താണ് മാറിയതെന്ന് അറിയണോ? ഉത്തരങ്ങൾ ഇവിടെ നേടുക + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s പരമാവധി പ്രയോജനപ്പെടുത്തുക. ഈ ഫോണിലെ മറ്റൊരു ഫയർ‌ഫോക്സ് ബ്രൗസറിൽ‌ നിങ്ങൾ‌ %s ആയി പ്രവേശിച്ചു. ഈ അക്കൗണ്ട് ഉപയോഗിച്ച് പ്രവേശിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ? ഉവ്വ, പ്രവേശിക്കുക പ്രവേശിക്കുന്നു… - + ഫയര്‍ഫോക്സിലേക്ക് പ്രവേശിക്കുക പുറത്തിറങ്ങിയതായി തുടരുക @@ -963,7 +963,7 @@ സ്വതവേയുള്ള സ്വകാര്യത + The first parameter is the name of the app (e.g. LeOSium Preview) --> സ്വകാര്യത, സുരക്ഷാ ക്രമീകരണങ്ങൾ താങ്കളെ പിന്തുടരുന്ന ട്രാക്കറുകൾ, മാൽവെയർ, കമ്പനികൾ എന്നിവയെ തടയുന്നു. സ്റ്റാൻഡേർഡ് (തനതായിട്ടുള്ളത്) @@ -993,7 +993,7 @@ താങ്കളുടെ സ്വകാര്യത + The first parameter is the name of the app (e.g. LeOSium Preview) --> താങ്കൾ ഓൺലൈനിലും ഞങ്ങളുമായും പങ്കിടുന്ന കാര്യങ്ങളെ നിയന്ത്രിക്കാൻ ഞങ്ങൾ %s രൂപകൽപന ചെയ്തിരിക്കുന്നു @@ -1041,7 +1041,7 @@ താങ്കളുടെ അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കുന്നത് ഫയർഫോക്സ് നിർത്തും പക്ഷേ ഈ ഉപകരണത്തിലുള്ള താങ്കളുടെ ബ്രൗസിങ്ങ് ഡാറ്റയൊന്നും നീക്കം ചെയ്യില്ല. - + താങ്കളുടെ അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കുന്നത് %s നിർത്തും പക്ഷേ ഈ ഉപകരണത്തിലുള്ള താങ്കളുടെ ബ്രൗസിങ്ങ് ഡാറ്റയൊന്നും നീക്കം ചെയ്യില്ല. വിച്ഛേദിക്കുക @@ -1415,19 +1415,19 @@ അതെ പേരിൽ മറ്റൊരു ഉപയോക്താവ് നിലവിലുണ്ട് - + ഫയർഫോക്സ് അക്കൗണ്ടുമായി ബന്ധിപ്പിക്കുക. മറ്റൊരു ഉപകരണം ബന്ധിപ്പിക്കുക. ദയവായി പുനഃപ്രമാണീകരിക്കുക - + ടാബ് സമന്വയിപ്പിക്കൽ പ്രാപ്തമാക്കുക. താങ്കളുടെ മറ്റ് ഉപകരണങ്ങളിൽ ഫയർഫോക്സിൽ ടാബുകളൊന്നും തുറന്നതായിട്ടില്ല. - + നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകളുടെ ഒരു ലിസ്റ്റ് കാണുക. - + സമന്വയിപ്പിക്കാനായി പ്രവേശിക്കുക diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index caa6a589..d426a7fc 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -46,8 +46,8 @@ नाही धन्यवाद - - Firefox पर्यंत लवकर पोहोचा. आपल्या मुख्य स्क्रीन वर एक विजेट जोडा. + + LeOSium पर्यंत लवकर पोहोचा. आपल्या मुख्य स्क्रीन वर एक विजेट जोडा. विजेट जोडा @@ -228,12 +228,12 @@ खाजगी ब्राउझिंग शॉर्टकट जोडा सुलभता - - सानुकूल Firefox खाते सर्व्हर + + सानुकूल LeOSium खाते सर्व्हर सानुकूल समक्रमण सर्व्हर - Firefox खाते/समक्रमण सर्व्हर सुधारित. बदल लागू करण्यासाठी अॅपलिकेशन बंद करत आहे… + LeOSium खाते/समक्रमण सर्व्हर सुधारित. बदल लागू करण्यासाठी अॅपलिकेशन बंद करत आहे… खाते @@ -245,9 +245,9 @@ स्वेच्छेनुरूप करा - आपल्या Firefox खात्यासह बुकमार्क, इतिहास आणि बरेच काही सिंक करा + आपल्या LeOSium खात्यासह बुकमार्क, इतिहास आणि बरेच काही सिंक करा - Firefox खाते + LeOSium खाते सिंक सुरू करण्यासाठी पुन्हा जोडणी करा @@ -324,7 +324,7 @@ प्राप्त टॅब - इतर Firefox डिव्हाइसमधून प्राप्त केलेल्या टॅबच्या सूचना. + इतर LeOSium डिव्हाइसमधून प्राप्त केलेल्या टॅबच्या सूचना. टॅब प्राप्त झाला @@ -362,7 +362,7 @@ आम्ही %1$s उत्तमोत्तम बनवण्यासाठी ब्राऊझरची कार्यक्षमता, वापर, हार्डवेअर आणि सानुकूलन माहिती Mozilla सोबत शेअर करते विपणनाची माहिती - + आपण %1$s मधील कोणती वैशिष्ठ्ये वापरता याची माहिती आमचे मोबाईल मार्केटर Leanplum यांच्यासोबत शेअर करते. प्रयोग @@ -379,7 +379,7 @@ सिंक चालू करा - डेस्कटॉप Firefox मध्ये जोडणी कोड स्कॅन करा + डेस्कटॉप LeOSium मध्ये जोडणी कोड स्कॅन करा साइन इन करा @@ -768,7 +768,7 @@ अन्य डिव्हाईस जोडा - टॅब पाठविण्यासाठी, Firefox मध्ये किमान एका अन्य डिव्हाइसवर साइन इन करा. + टॅब पाठविण्यासाठी, LeOSium मध्ये किमान एका अन्य डिव्हाइसवर साइन इन करा. समजले @@ -907,61 +907,61 @@ ब्राउझिंगची माहिती नष्ट करत आहे… - - Firefox Preview आता Firefox Nightly आहे + + LeOSium Preview आता LeOSium Nightly आहे - Firefox Nightly प्रत्येक रात्री अद्यतनित होते आणि त्यात प्रायोगिक नवीन वैशिष्ट्ये असतात. + LeOSium Nightly प्रत्येक रात्री अद्यतनित होते आणि त्यात प्रायोगिक नवीन वैशिष्ट्ये असतात. तरी, ते कमी स्थिर असू शकते. अधिक स्थिर अनुभवासाठी आमचा बिटा ब्राउझर डाउनलोड करा. - - Android बिटा करिता Firefox मिळवा + + Android बिटा करिता LeOSium मिळवा - - Firefox Nightly हलले आहे + + LeOSium Nightly हलले आहे या अॅपला यापुढे सुरक्षा अद्यतने प्राप्त होणार नाहीत. हे अॅप वापरणे थांबवा आणि नवीन Nightly वर स्विच करा. - \n\nआपल्या वाचनखुणा, लॉगिन, आणि इतिहास इतर अॅप वर स्थानांतरित करण्यासाठी, एक Firefox खाते त.ार करा. + \n\nआपल्या वाचनखुणा, लॉगिन, आणि इतिहास इतर अॅप वर स्थानांतरित करण्यासाठी, एक LeOSium खाते त.ार करा. नवीन Nightly वर स्विच करा - - Firefox Nightly हलले आहे + + LeOSium Nightly हलले आहे या अॅपला यापुढे सुरक्षा अद्यतने प्राप्त होणार नाहीत. नवीन Nightly मिळवा आणि हे अॅप वापरणे थांबवा. - \n\nआपल्या वाचनखुणा, लॉगिन, आणि इतिहास इतर अॅप वर स्थानांतरित करण्यासाठी, एक Firefox खाते त.ार करा. + \n\nआपल्या वाचनखुणा, लॉगिन, आणि इतिहास इतर अॅप वर स्थानांतरित करण्यासाठी, एक LeOSium खाते त.ार करा. नवीन Nightly मिळवा + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s मध्ये आपले स्वागत आहे! - + आधीपासूनच एक खाते आहे? - + %s बाबत जाणून घ्या नवीन काय आहे ते पहा + The first parameter is the short name of the app (e.g. LeOSium) --> नवरचीत %s विषयी प्रश्न आहेत? काय बदलले आहे हे जाणून घेऊ इच्छिता? येथे उत्तरे मिळवा + The first parameter is the name of the app (e.g. LeOSium Preview) --> %s मधून जास्तीत जास्त मिळावा. - आपण या फोनवरील दुसर्‍या Firefox ब्राउझरवर %s म्हणून साइन इन केले आहे. आपण या खात्यासह साइन इन करू इच्छिता? + आपण या फोनवरील दुसर्‍या LeOSium ब्राउझरवर %s म्हणून साइन इन केले आहे. आपण या खात्यासह साइन इन करू इच्छिता? होय, मला साइन इन करा साइन इन करत आहे… - - Firefox मध्ये साइन इन करा + + LeOSium मध्ये साइन इन करा साइन आउट रहा @@ -990,7 +990,7 @@ आपली गोपनीयता + The first parameter is the name of the app (e.g. LeOSium Preview) --> आपण ऑनलाईन आणि आमच्यासोबत काय शेअर करता यावर नियंत्रण देण्यासाठी आम्ही %s ची रचना केली आहे. @@ -1030,7 +1030,7 @@ कोड स्कॅन करा - https://firefox.com/pair वर जा]]> + https://firefox.com/pair वर जा]]> स्कॅन करण्यास सज्ज @@ -1038,7 +1038,7 @@ त्याऐवजी ईमेल वापरा - Firefox आपल्या खात्यासोबत सिंक करणे थांबवेल, पण या डिव्हाइस वरील आपला कुठलाही ब्राऊझिंग डेटा हटविणार नाही. + LeOSium आपल्या खात्यासोबत सिंक करणे थांबवेल, पण या डिव्हाइस वरील आपला कुठलाही ब्राऊझिंग डेटा हटविणार नाही. जोडणी तोडा diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index e6fae8e4..7eb98f93 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -244,12 +244,12 @@ အသုံးပြုခွင့် - - စိတ်ကြိုက် Firefox အကောင့် ဆာဗာ + + စိတ်ကြိုက် LeOSium အကောင့် ဆာဗာ သုံးသူစိတ်ကြိုက် ချိန်သားကိုက် ဆာဗာ - Firefox Account/Sync server ကို ပြုပြင်ပြီး ဖြစ်သည်။ အပြောင်းအလဲများ လျှောက်ထားရန်လျှောက်လွှာ မှ ထွက်ပါ + LeOSium Account/Sync server ကို ပြုပြင်ပြီး ဖြစ်သည်။ အပြောင်းအလဲများ လျှောက်ထားရန်လျှောက်လွှာ မှ ထွက်ပါ အကောင့် @@ -261,7 +261,7 @@ စိတ်ကြိုက်လုပ်ပါ - Firefox အကောင့် + LeOSium အကောင့် စည်းညှိခြင်းကိုပြန်လည်စတင်ရန်ပြန်လည်ချိတ်ဆက်ပါ @@ -370,7 +370,7 @@ လက်ခံရရှိ တက်ဗ်များ - အခြားစက်များရှိ Firefox များမှ ရရှိသော တပ်ဗ်အသစ်များ အတွက် သတိပေးချက်များ + အခြားစက်များရှိ LeOSium များမှ ရရှိသော တပ်ဗ်အသစ်များ အတွက် သတိပေးချက်များ တပ်ဗ်ကို လက်ခံရရှိသည် @@ -831,7 +831,7 @@ အခြားကိရိယာကို ချိတ်ဆက်ရန် - သင်တက်ဘ်တစ်ခုကိုပို့ရန်အနည်းဆုံးအခြားကိရိယာတစ်ခုပေါ်တွင် Firefox သို့ဆိုင်းအင်လုပ်ပါ။ + သင်တက်ဘ်တစ်ခုကိုပို့ရန်အနည်းဆုံးအခြားကိရိယာတစ်ခုပေါ်တွင် LeOSium သို့ဆိုင်းအင်လုပ်ပါ။ ရပြီ @@ -993,16 +993,16 @@ ကုဒ်ကိုစစ်ဆေးပါ - https://firefox.com/pairကိုသွားပြီး သင့်ကွန်ပျူတာတွင် Firefox ဖွင့်ပါ။]]> + https://firefox.com/pairကိုသွားပြီး သင့်ကွန်ပျူတာတွင် LeOSium ဖွင့်ပါ။]]> စကင်ဖတ်ရန်အဆင်သင့်ဖြစ်သည် သင်၏ကင်မရာဖြင့်ဆိုင်းအင်လုပ်ပါ အီးမေးလ်အစား - - သုံးစွဲသည့် ကိရိယာများ အကြား Firefox ကို တစ်ပြေးညီတည်း ချိန်ညှိရန် တစ်ခု ဖန်တီးပါ။ ]]> - + + သုံးစွဲသည့် ကိရိယာများ အကြား LeOSium ကို တစ်ပြေးညီတည်း ချိန်ညှိရန် တစ်ခု ဖန်တီးပါ။ ]]> + %s သည် အကောင့်နှင့် အချက်အလက်များ ထပ်တူပြုခြင်းကို ရပ်တန့်ပါမည်။ သို့သော် ယခု ကိရိယာရှိ သင်၏ မည်သည့် အချက်အလက် ကိုမျှ ဖျက်ပစ်မည် မဟုတ်ပါ။ ချိတ်ဆက်မှုဖြုတ်ပါ @@ -1166,9 +1166,9 @@ ဘယ်တော့မှ မသိမ်းပါနှင့် - + %1$s တွင် အလိုအလျောက် ဖြည့်ပါ - + %1$s ကို သုံးနေစဉ် ၀က်ဆိုက်များတွင် အသုံးပြုသူအမည် နှင့် စကားဝှက်များကို ဖြည့်ပြီး သိမ်းဆည်းပါ အခြား အက်ပ်များတွင် အလိုအလျောက် ဖြည့်ပါ @@ -1409,13 +1409,13 @@ အခြား ကိရိယာ သို့ ချိတ်ဆက်မည် ကျေးဇူးပြု၍ ပြန်လည် အတည်ပြုပါ။ - + ကျေးဇူးပြ၍ တပ်ဗ် ထပ်တူတစ်ပြေးတည်း ဖြစ်စေရန် ဖွင့်ပါ - သင့် အခြား စက်ပစ္စည်းများတွင် Firefox ၌ ဖွင့်ထားသော တပ်ဗ်များ မရှိပါ - + သင့် အခြား စက်ပစ္စည်းများတွင် LeOSium ၌ ဖွင့်ထားသော တပ်ဗ်များ မရှိပါ + သင်၏ အခြားစက်ပစ္စည်းများမှ တပ်ဗ် များ စာရင်းကို ကြည့်ပါ။ - + ချိန်သားကိုက် ရန် ဝင်ရောက်ပါ ဖွင့်ထားသည့် တပ်ဗ်များ မရှိပါ @@ -1435,7 +1435,7 @@ လှုပ်ရှားမှုမရှိသော တပ်ဗ်များ - Firefox တွင် ဝက်ဘ်ဆိုက်များ၊ အီးမေးလ်များ နှင့် မက်ဆေ့ခ်ျများမှ လင့်ခ်များ အလိုအလျောက် ပွင့်ရန် သတ်မှတ်ပါ။ + LeOSium တွင် ဝက်ဘ်ဆိုက်များ၊ အီးမေးလ်များ နှင့် မက်ဆေ့ခ်ျများမှ လင့်ခ်များ အလိုအလျောက် ပွင့်ရန် သတ်မှတ်ပါ။ ဖယ်ရှားပါ diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index a886a1f5..09dfba56 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -70,7 +70,7 @@ Etterlat ingen spor på denne enheten %1$s sletter infokapsler, historikk og nettstedsdata når du lukker alle dine private faner. %2$s Oversett siden + + Siden er oversatt fra %1$s til %2$s. + Valgt språk @@ -331,13 +336,23 @@ - Firefox personvernerklæring - + LeOSium personvernerklæring + + Les mer i vår personvernerklæring Vi beskytter deg gjerne + + Finn ut hvorfor millioner elsker LeOSium + + Sikker surfing med flere valg Vår ideelle nettleser forhindrer selskaper i å spore aktiviteten din i hemmelighet på nettet. + Mer enn 100 millioner mennesker beskytter personvernet sitt ved å velge en nettleser som er støttet av en ideell organisasjon. + + Kjente sporere? Blokkert automatisk. Utvidelser? Prøv alle 700. PDF-filer? Vår innebygde leser gjør dem enkle å administrere. + Vår ideelle nettleser forhindrer selskaper i å spore aktiviteten din i hemmelighet på nettet.\n\nLes mer i personvernerklæringen vår. @@ -349,32 +364,32 @@ Krypter dataene dine når du arbeider på tvers av enheter - Når du er inlogget og synkronisert, er du tryggere. Firefox krypterer passordene, bokmerkene og mer. + Note: The word "LeOSium" should NOT be translated --> + Når du er inlogget og synkronisert, er du tryggere. LeOSium krypterer passordene, bokmerkene og mer. Logg inn Ikke nå - Varsler hjelper deg å holde deg tryggere med Firefox + Note: The word "LeOSium" should NOT be translated --> + Varsler hjelper deg å holde deg tryggere med LeOSium - Send faner sikkert mellom enhetene dine og oppdag andre personvernfunksjoner i Firefox. + Note: The word "LeOSium" should NOT be translated --> + Send faner sikkert mellom enhetene dine og oppdag andre personvernfunksjoner i LeOSium. Slå på varsler Ikke nå - Prøv Firefox-søkewidgeten + Note: The word "LeOSium" should NOT be translated --> + Prøv LeOSium-søkewidgeten - Med Firefox på startskjermen din har du enkel tilgang til den personvernfokuserte nettleseren som blokkerer sporing på tvers av nettsteder. + Note: The word "LeOSium" should NOT be translated --> + Med LeOSium på startskjermen din har du enkel tilgang til den personvernfokuserte nettleseren som blokkerer sporing på tvers av nettsteder. - Legg til Firefox-widget + Note: The word "LeOSium" should NOT be translated --> + Legg til LeOSium-widget Ikke nå @@ -414,10 +429,10 @@ Forslag fra søkemotorer Innstillinger for adresselinjen - - Adresselinje - Firefox forslag - - Les mer om Firefox forslag + + Adresselinje - LeOSium forslag + + Les mer om LeOSium forslag Vurder på Google Play Autofullfør nettadresser - + Forslag fra sponsorer - Støtt %1$s med sporadiske sponsede forslag - Forslag fra %1$s - + Få forslag fra nettet relatert til søket ditt Åpne lenker i apper @@ -644,7 +659,7 @@ Les mer - + Klassisk %s Artist-serien @@ -662,8 +677,8 @@ Nye utvidelser nå tilgjengelig - - Sjekk ut 100+ nye utvidelser som lar deg gjøre Firefox til din egen. + + Sjekk ut 100+ nye utvidelser som lar deg gjøre LeOSium til din egen. Utforsk utvidelser @@ -691,9 +706,9 @@ Bokmerker - Innlogginger + Innlogginger - Passord + Passord Åpne faner @@ -719,9 +734,9 @@ %1$s på %2$s %3$s - Betalingskort + Betalingskort - Betalingsmetoder + Betalingsmåter Adresser @@ -730,7 +745,7 @@ Mottatte faner - Varsler for faner mottatt fra andre Firefox-enheter. + Varsler for faner mottatt fra andre LeOSium-enheter. Fane mottatt @@ -913,7 +928,7 @@ Fjern Aktiv - + %1$s kan installere og kjøre studier fra tid til annen. Les mer @@ -1290,7 +1305,7 @@ Koble til en annen enhet - For å sende en fane, logg deg på Firefox på minst en annen enhet. + For å sende en fane, logg deg på LeOSium på minst en annen enhet. Skjønner @@ -1317,10 +1332,10 @@ - Firefox er rask og privat + LeOSium er rask og privat - Gjør Firefox til din standardnettleser + Gjør LeOSium til din standardnettleser Prøv privat nettlesing - Bidra til å gjøre Firefox bedre ved å ta en kort undersøkelse. + Bidra til å gjøre LeOSium bedre ved å ta en kort undersøkelse. Delta i undersøkelsen @@ -1488,16 +1503,16 @@ Skann koden - https://firefox.com/pair]]> + https://firefox.com/pair]]> Klar til å skanne Logg inn med kameraet ditt Bruk e-post i stedet - - Opprett en for å synkronisere Firefox mellom enheter.]]> - + + Opprett en for å synkronisere LeOSium mellom enheter.]]> + %s vil stoppe synkroniseringen med kontoen din, men vil ikke slette noen av dine nettleserdata på denne enheten. Koble fra @@ -1514,7 +1529,7 @@ Nå med total beskyttelse mot infokapsler, vår kraftigste barriere til nå mot sporing på tvers av nettsteder. - + %s beskytter deg mot mange av de vanligste sporingsteknologier som følger det du gjør på nettet. Les mer @@ -1668,21 +1683,21 @@ Du kan enkelt legge til dette nettstedet på enhetens startskjerm for å få øyeblikkelig tilgang og surfe raskere med en app-lignende opplevelse. - Innlogginger og passord + Innlogginger og passord - Passord + Passord - Lagre innlogginger og passord + Lagre innlogginger og passord - Lagre passord + Lagre passord Spør om å lagre Lagre aldri - + Autofyll i %1$s - + Fyll inn og lagre brukernavn og passord på nettsteder mens du bruker %1$s. Autofyll i andre apper @@ -1690,48 +1705,48 @@ Fyll inn brukernavn og passord i andre apper på enheten din. - Legg til innlogging + Legg til innlogging - Legg til passord + Legg til passord - - Synkroniser innlogginger - Synkroniser passord + Synkroniser innlogginger + + Synkroniser passord - Synkroniser innlogginger på tvers av enheter + Synkroniser innlogginger på tvers av enheter - Synkroniser passord på tvers av enheter + Synkroniser passord på tvers av enheter - Lagrede innlogginger + Lagrede innlogginger - Lagrede passord + Lagrede passord - De innlogginger du lagrer eller synkroniserer til %s vil vises her. + De innlogginger du lagrer eller synkroniserer til %s vil vises her. - Passordene du lagrer eller synkroniserer med %s vil bli oppført her. Alle passord du lagrer er kryptert. + Passordene du lagrer eller synkroniserer med %s vil bli oppført her. Alle passord du lagrer er kryptert. - Les mer om Sync. + Les mer om Sync. - Les mer om synkronisering + Les mer om synkronisering Unntak - Innlogginger og passord som ikke er lagret vil vises her. + Innlogginger og passord som ikke er lagret vil vises her. - %s vil ikke lagre passord for nettsteder som er oppført her. + %s vil ikke lagre passord for nettsteder som er oppført her. - Innlogginger og passord vil ikke bli lagret for disse nettstedene. + Innlogginger og passord vil ikke bli lagret for disse nettstedene. - %s vil ikke lagre passord for disse nettstedene. + %s vil ikke lagre passord for disse nettstedene. Slett alle unntak - Søk innlogginger + Søk innlogginger - Søk etter passord + Søk etter passord Nettsted @@ -1760,15 +1775,17 @@ Skjul passord - Lås opp for å se dine lagrede innlogginger + Lås opp for å se dine lagrede innlogginger - Lås opp for å se dine lagrede passord + Lås opp for å se dine lagrede passord - Sikre dine innlogginger og passord + Sikre dine innlogginger og passord - Sikre dine lagrede passord + Sikre dine lagrede passord - Konfigurer en PIN-kode, et passord eller et låsemønster for å forhindre at andre mennesker får tilgang de lagrede innloggingene og passordene dine, hvis de har adgang til din enhet. + Konfigurer en PIN-kode, et passord eller et låsemønster for å forhindre at andre mennesker får tilgang de lagrede innloggingene og passordene dine, hvis de har adgang til din enhet. + + Konfigurer en PIN-kode, et passord eller et låsemønster for å beskytte dine lagrede passord om noen andre skulle få tak i enheten din. Senere @@ -1788,7 +1805,10 @@ Sist brukt - Sorter innlogginger-meny + Sorter innlogginger-meny + + + Sorter passord-menyen @@ -1796,28 +1816,43 @@ Adresser - Betalingskort + Betalingskort + + Betalingsmåter - Lagre og fyll ut kort automatisk + Lagre og fyll ut kort automatisk + + Lagre og fyll inn betalingsmåter - Data er kryptert + Data er kryptert + + %s krypterer alle betalingsmåter du lagrer Synkroniser kort på tvers av enheter Synkroniser kort - Legg til betalingskort + Legg til betalingskort + + Legg til kort - Behandle lagrede kort + Behandle lagrede kort + + Behandle kort Legg til adresse Behandle adresser - Lagre og autoutfyll adresser + Lagre og autoutfyll adresser + + Lagre og fyll ut adresser - Inkluderer informasjon som telefonnummer, e-post og leveringsadresser + Inkluderer informasjon som telefonnummer, e-post og leveringsadresser + + + Inkluderer telefonnumre og e-postadresser Legg til kort @@ -1838,7 +1873,9 @@ Slett kort - Er du sikker på at du vil slette dette bankkortet? + Er du sikker på at du vil slette dette bankkortet? + + Slett kort? Slett @@ -1851,16 +1888,24 @@ Lagrede kort - Oppgi et gyldig betalingskortnummer + Oppgi et gyldig betalingskortnummer + + Skriv inn et gyldig kortnummer - Fyll ut dette feltet + Fyll ut dette feltet + + Legg til et navn Lås opp for å se dine lagrede betalingskort - Sikre dine betalingskort + Sikre dine betalingskort + + Sikre dine lagrede betalingsmåter - Konfigurer en PIN-kode, et passord eller et låsemønster for å beskytte de lagrede betalingskortene dine om noen andre skulle få tak i enheten din. + Konfigurer en PIN-kode, et passord eller et låsemønster for å beskytte de lagrede betalingskortene dine om noen andre skulle få tak i enheten din. + + Konfigurer en PIN-kode, et passord eller et låsemønster for å beskytte dine lagrede betalingsmåter om noen andre skulle få tak i enheten din. Konfigurer nå @@ -1869,8 +1914,10 @@ Lås opp enheten din - Lås opp for å bruke lagret betalingskortinformasjon + Lås opp for å bruke lagret betalingskortinformasjon + + Lås opp for å bruke lagrede betalingsmåter Legg til adresse @@ -1878,11 +1925,13 @@ Behandle adresser - Fornavn + Fornavn - Mellomnavn + Mellomnavn - Etternavn + Etternavn + + Navn Gateadresse @@ -1907,7 +1956,9 @@ Slett adresse - Er du sikker på at du vil slette denne adressen? + Er du sikker på at du vil slette denne adressen? + + Slette denne adressen? Slett @@ -2007,31 +2058,53 @@ Rediger - Er du sikker på at du ønsker å slette denne innloggingen? + Er du sikker på at du ønsker å slette denne innloggingen? + + Er du sikker på at du ønsker å slette dette passordet? Slett Avbryt - Innloggingsalternativer + Innloggingsalternativer + + Passordalternativer - Det redigerbare tekstfeltet for innloggingens nettadresse. + Det redigerbare tekstfeltet for innloggingens nettadresse. + + Det redigerbare tekstfeltet for nettstedsadressen. - Det redigerbare tekstfeltet for innloggingens brukernavn. + Det redigerbare tekstfeltet for innloggingens brukernavn. + + Det redigerbare tekstfeltet for brukernavnet. - Det redigerbare tekstfeltet for innloggingens passord. + Det redigerbare tekstfeltet for innloggingens passord. + + Det redigerbare tekstfeltet for passordet. - Lagre endringer for innlogging. + Lagre endringer for innlogging. + + Lagre endringer. - Rediger + Rediger + + Rediger passord - Legg til ny innlogging + Legg til ny innlogging + + Legg til passord - Passord kreves + Passord kreves + + Skriv inn et passord - Brukernavn påkrevd + Brukernavn påkrevd + + Skriv inn et brukernavn Servernavn påkrevd + + Skriv inn en nettadresse Stemmesøk @@ -2052,13 +2125,13 @@ Koble til en annen enhet. Autentiser på nytt. - + Slå på fanssynkronisering. - Du har ingen faner åpne i Firefox på andre enheter. - + Du har ingen faner åpne i LeOSium på andre enheter. + Vis en liste over faner fra andre enheter. - + Logg inn for å synkronisere @@ -2110,7 +2183,7 @@ Lukk automatisk etter en måned? - Firefox kan lukke faner du ikke har sett den siste måneden. + LeOSium kan lukke faner du ikke har sett den siste måneden. SLÅ PÅ AUTOLUKKING @@ -2118,16 +2191,19 @@ Automatisk lukking aktivert - - Firefox-forslag + + LeOSium-forslag Google-søk %s-søk + + + Endre standard nettleser - Angi at lenker fra nettsteder, e-postmeldinger og meldinger skal åpnes automatisk i Firefox. + Angi at lenker fra nettsteder, e-postmeldinger og meldinger skal åpnes automatisk i LeOSium. Fjern @@ -2136,7 +2212,7 @@ Trykk her for mer informasjon - Naviger opp + Naviger opp Lukk @@ -2151,7 +2227,7 @@ Drevet av %1$s. - Del av Firefox-familien. %s + Del av LeOSium-familien. %s Les mer @@ -2177,8 +2253,6 @@ Justert vurdering - Upålitelige vuderinger er fjernet - Basert på pålitelige vurderinger Høydepunkter fra nylige vurderinger @@ -2234,10 +2308,6 @@ Hvis du ser at dette produktet er tilbake på lager, rapporter det og vi vil jobbe med å sjekke vurderingene. Rapporter at produktet er på lager - - Kontrollerer kvaliteten på vurderingen - - Kontrollerer kvaliteten på vurderingen Kontrollerer kvaliteten på vurderingen (%s) @@ -2274,22 +2344,28 @@ Kontrollerer kvaliteten på vurderingen Prøv vår pålitelige guide til produktvurderinger - + Se hvor pålitelige produktvurderinger er på %1$s før du handler. Vurderingskontrollør, en eksperimentell funksjon fra %2$s, er innebygd rett i nettleseren. Det fungerer på %3$s og %4$s også. - + Se hvor pålitelige produktvurderinger er på %1$s før du handler. Vurderingskontrollør, en eksperimentell funksjon fra %2$s, er innebygd rett i nettleseren. Ved hjelp av %1$s fra Mozilla gjør vi det lettere for deg å unngå partiske og uekte anmeldelser. AI-modellen vår blir alltid bedre for å beskytte deg mens du handler. %2$s Les mer - Ved å velge «Ja, prøv det» godtar du %1$s fra Mozilla sine %2$s og %3$s. + Ved å velge «Ja, prøv det» godtar du %1$s fra Mozilla sine %2$s og %3$s. Ved å velge «Ja, prøv det» godtar du følgende fra %1$s: + + Ved å velge «Ja, prøv det» godtar du %1$s sine %2$s og %3$s sine %4$s. + + Ved å velge «Ja, prøv det» godtar du %1$s sine %2$s og %3$s sine %4$s. - personvernbestemmelser + personvernbestemmelser Personvernbestemmelser + + personvernerklæring vilkår for bruk @@ -2347,13 +2423,107 @@ åpne lenken for å lære mer om denne samlingen les artikkelen - + åpne lenken for å lese mer %s, Overskrift + + Lenker + + Lenker tilgjengelig + + + + Oversett denne siden? + + Siden er oversatt fra %1$s til %2$s + + Prøv private oversettelser i %1$s + + Av hensyn til personvernet ditt forlater aldri oversettelser enheten din. Nye språk og forbedringer kommer snart! %1$s + + Les mer + + Oversett fra + + Oversett til + + Ikke nå + + Vis original + + Ferdig + + Oversett + + Prøv igjen + + Oversetter + + Oversettelse pågår + + Velg et språk + + Det oppstod et problem med å oversette. Prøv på nytt. + + Kunne ikke laste inn språk. Sjekk Internett-tilkoblingen din og prøv igjen. + + Beklager, vi støtter ikke %1$s ennå. + + Les mer + + + Oversetter… + + + Last ned språk i datasparingsmodus (%1$s)? + + + + + Oversettelsesinnstillinger + + Tilby alltid å oversette + + Oversett alltid %1$s + + Oversett aldri %1$s + + Oversett aldri dette nettstedet + + Overstyrer alle andre innstillinger + + Overstyrer tilbud om å oversette + + Oversettelsesinnstillinger + + Om oversettelser i %1$s + + + + Oversettelser + + Tilby å oversette når det er mulig + + + Last alltid ned språk i datasparingsmodus + + Innstillinger for oversetting + + Automatisk oversettelse + + Oversett aldri disse nettstedene + + Last ned språk + Automatisk oversettelse @@ -2402,6 +2572,10 @@ Tilgjengelige språk nødvendig + + %1$s (%2$s) Last ned språk @@ -2415,4 +2589,64 @@ Valgt - + + Slette %1$s (%2$s)? + + Hvis du sletter dette språket, vil %1$s laste ned deler av språk til hurtigbufferen din mens du oversetter. + + Slette alle språk (%1$s)? + + Hvis du sletter alle språk, vil %1$s laste ned deler av språk til hurtigbufferen din mens du oversetter. + + Slett + + Avbryt + + + Laste ned mens du er i datasparingsmodus (%1$s)? + + Vi laster ned delvise språk til hurtigbufferen din for å holde oversettelser private. + + Last alltid ned i datasparingsmodus + + Last ned + + Last ned og oversett + + Avbryt + + + + Feilsøkingsverktøy + + Naviger tilbake + + Faneverktøy + + Antall faner + + Aktiv + + Inaktiv + + Privat + + Totalt + + Verktøy for å lage faner + + Antall faner som skal opprettes + + Legg til aktive faner + + Legg til inaktive faner + + Legg til private faner + diff --git a/app/src/main/res/values-ne-rNP/strings.xml b/app/src/main/res/values-ne-rNP/strings.xml index df3f0451..6c6308d5 100644 --- a/app/src/main/res/values-ne-rNP/strings.xml +++ b/app/src/main/res/values-ne-rNP/strings.xml @@ -63,8 +63,8 @@ पर्दैन, धन्यबाद - - तपाईंले एपहरूमा स्वचालित रूपमा लिङ्कहरू खोल्नका लागि Firefox सेट गर्न सक्नुहुन्छ। + + तपाईंले एपहरूमा स्वचालित रूपमा लिङ्कहरू खोल्नका लागि LeOSium सेट गर्न सक्नुहुन्छ। सेटिङ्गहरुमा जानुहोस् @@ -182,12 +182,12 @@ ठेगाना पट्टीबाट सिधै खोज्नुहोस् - - Firefox मा नयाँ के छ + + LeOSium मा नयाँ के छ अब तपाईंले छोड्नुभएको ठाउँबाट सुरु गर्न झन् सजिलो भएको छ। - - निजीकृत Firefox गृहपृष्ठ + + निजीकृत LeOSium गृहपृष्ठ तपाईंका खुला ट्याबहरू, बुकमार्कहरू, र ब्राउजिङ्ग इतिहासमा जानुहोस्। @@ -199,12 +199,12 @@ तपाईंको गृहपृष्ठ र ट्याबहरू बाट तपाईंको नवीनतम खोजहरू पुन: भ्रमण गर्नुहोस्। - - तपाईंकa व्यक्तिगत Firefox गृहपृष्ठले अब तपाईंले छोडेको ठाउँबाट उठाउन सजिलो बनाउँछ। आफ्नो भर्खरका ट्याबहरू, बुकमार्कहरू, र खोज परिणामहरू फेला पार्नुहोस्। + + तपाईंकa व्यक्तिगत LeOSium गृहपृष्ठले अब तपाईंले छोडेको ठाउँबाट उठाउन सजिलो बनाउँछ। आफ्नो भर्खरका ट्याबहरू, बुकमार्कहरू, र खोज परिणामहरू फेला पार्नुहोस्। - - नयाँ Firefox ट्याब खोल्नुहोस् + + नयाँ LeOSium ट्याब खोल्नुहोस् खोजी गर्नुहोस् @@ -250,8 +250,8 @@ निजी ब्राउजिङ्ग सर्टकटहरु थप्नुहोस् पहुँचता - - Firefox खाता सर्भर अनुकुलन पार्नुहोस् + + LeOSium खाता सर्भर अनुकुलन पार्नुहोस् सिङ्क सर्भर अनुकुलन गर्नुहोस् @@ -267,11 +267,11 @@ अनुकुलन गर्नुहोस् - तपाईंको Firefox खातासङ्ग बुकमार्कहरू, इतिहास, र थप अरु कुराहरुलाई सिङ्क गर्नुहोस् + तपाईंको LeOSium खातासङ्ग बुकमार्कहरू, इतिहास, र थप अरु कुराहरुलाई सिङ्क गर्नुहोस् - Firefox खाता + LeOSium खाता सिङ्क पुन: सुचारु गर्न पुन: जडान गर्नुहोस् diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 124b1418..56ddfc4c 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -76,7 +76,7 @@ Laat geen sporen achter op dit apparaat %1$s verwijdert uw cookies, geschiedenis en websitegegevens wanneer u al uw privétabbladen sluit. %2$s Pagina vertalen + + Pagina vertaald van het %1$s naar het %2$s. + Geselecteerde taal @@ -337,13 +342,23 @@ - Firefox-privacyverklaring - + LeOSium-privacyverklaring + + Lees meer in onze privacyverklaring We houden u graag veilig + + Ontdek waarom miljoenen zo gek zijn op LeOSium + + Veilig surfen met meer keuzes Onze door een non-profitorganisatie gesteunde browser helpt voorkomen dat bedrijven u stiekem volgen op internet. + Meer dan 100 miljoen mensen beschermen hun privacy door een browser te kiezen die wordt ondersteund door een non-profitorganisatie. + + Bekende trackers? Automatisch geblokkeerd. Extensies? Probeer ze alle 700. PDF’s? Door onze ingebouwde lezer zijn ze eenvoudig te beheren. + Onze door een non-profitorganisatie ondersteunde browser helpt voorkomen dat bedrijven u stiekem volgen op internet.\n\nMeer info in onze privacyverklaring. @@ -355,32 +370,32 @@ Blijf versleuteld wanneer u van apparaat wisselt - Wanneer u aangemeld en gesynchroniseerd bent, bent u veiliger. Firefox versleutelt uw wachtwoorden, bladwijzers en meer. + Note: The word "LeOSium" should NOT be translated --> + Wanneer u aangemeld en gesynchroniseerd bent, bent u veiliger. LeOSium versleutelt uw wachtwoorden, bladwijzers en meer. Aanmelden Niet nu - Meldingen helpen u veiliger te blijven met Firefox + Note: The word "LeOSium" should NOT be translated --> + Meldingen helpen u veiliger te blijven met LeOSium - Verzend veilig tabbladen tussen uw apparaten en ontdek andere privacyfuncties in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Verzend veilig tabbladen tussen uw apparaten en ontdek andere privacyfuncties in LeOSium. Notificaties inschakelen Niet nu - Probeer de Firefox-zoekwidget + Note: The word "LeOSium" should NOT be translated --> + Probeer de LeOSium-zoekwidget - Met Firefox op uw startscherm hebt u eenvoudig toegang tot de privacygerichte browser die cross-sitetrackers blokkeert. + Note: The word "LeOSium" should NOT be translated --> + Met LeOSium op uw startscherm hebt u eenvoudig toegang tot de privacygerichte browser die cross-sitetrackers blokkeert. - Firefox-widget toevoegen + Note: The word "LeOSium" should NOT be translated --> + LeOSium-widget toevoegen Niet nu @@ -420,10 +435,10 @@ Suggesties van zoekmachines Adresbalkvoorkeuren - - Adresbalk – Firefox Suggesties - - Meer info over Firefox Suggesties + + Adresbalk – LeOSium Suggesties + + Meer info over LeOSium Suggesties Waarderen op Google Play URL’s automatisch aanvullen - + Suggesties van sponsors - Ondersteun %1$s met af en toe gesponsorde suggesties - Suggesties van %1$s - + Ontvang suggesties van het web gerelateerd aan uw zoekopdracht Koppelingen openen in apps @@ -651,7 +666,7 @@ Meer info - + Klassieke %s Kunstenaarserie @@ -669,8 +684,8 @@ Nieuwe add-ons nu beschikbaar - - Bekijk meer dan 100 nieuwe extensies waarmee u Firefox van uzelf kunt maken. + + Bekijk meer dan 100 nieuwe extensies waarmee u LeOSium van uzelf kunt maken. Add-ons verkennen @@ -699,9 +714,9 @@ Bladwijzers - Aanmeldingen + Aanmeldingen - Wachtwoorden + Wachtwoorden Open tabbladen @@ -727,9 +742,9 @@ %1$s op %2$s %3$s - Creditcards + Creditcards - Betalingsmethoden + Betalingsmethoden Adressen @@ -737,7 +752,7 @@ Ontvangen tabbladen - Meldingen voor tabbladen ontvangen van andere Firefox-apparaten. + Meldingen voor tabbladen ontvangen van andere LeOSium-apparaten. Tabblad ontvangen @@ -920,7 +935,7 @@ Verwijderen Actief - + %1$s kan af en toe onderzoeken installeren en uitvoeren. Meer info @@ -1296,7 +1311,7 @@ Nog een apparaat koppelen - Meld u aan bij Firefox op ten minste één ander apparaat om een tabblad te verzenden. + Meld u aan bij LeOSium op ten minste één ander apparaat om een tabblad te verzenden. Begrepen @@ -1327,10 +1342,10 @@ - Firefox is snel en privé + LeOSium is snel en privé - Firefox uw standaardbrowser maken + LeOSium uw standaardbrowser maken Probeer privénavigatie - Help Firefox beter te maken door een korte enquête in te vullen. + Help LeOSium beter te maken door een korte enquête in te vullen. Enquête starten @@ -1498,16 +1513,16 @@ De code scannen - https://firefox.com/pair]]> + https://firefox.com/pair]]> Klaar om te scannen Meld u aan met uw camera E-mail gebruiken - - Maak er een aan om Firefox tussen apparaten te synchroniseren.]]> - + + Maak er een aan om LeOSium tussen apparaten te synchroniseren.]]> + %s stopt de synchronisatie met uw account, maar zal geen surfgegevens op dit apparaat verwijderen. Verbinding verbreken @@ -1523,7 +1538,7 @@ Verbeterde bescherming tegen volgen Nu met Totale cookiebescherming, onze krachtigste barrière tot nu toe tegen cross-sitetrackers. - + %s beschermt u tegen veel van de meest voorkomende trackers die volgen wat u online doet. Meer info @@ -1675,20 +1690,20 @@ U kunt deze website eenvoudig aan het startscherm van uw apparaat toevoegen, om zo direct toegang te hebben en sneller te navigeren met een app-achtige ervaring. - Aanmeldingen en wachtwoorden + Aanmeldingen en wachtwoorden - Wachtwoorden + Wachtwoorden - Aanmeldingen en wachtwoorden opslaan + Aanmeldingen en wachtwoorden opslaan - Wachtwoorden opslaan + Wachtwoorden opslaan Vragen om op te slaan Nooit opslaan - + Automatisch invullen in %1$s - + Gebruikersnamen en wachtwoorden op websites invullen en opslaan terwijl u %1$s gebruikt. Automatisch invullen in andere apps @@ -1696,47 +1711,47 @@ Gebruikersnamen en wachtwoorden in andere apps op uw apparaat invullen. - Aanmelding toevoegen + Aanmelding toevoegen - Wachtwoord toevoegen + Wachtwoord toevoegen - - Aanmeldingen synchroniseren - Wachtwoorden synchroniseren + Aanmeldingen synchroniseren + + Wachtwoorden synchroniseren - Aanmeldingen op apparaten synchroniseren + Aanmeldingen op apparaten synchroniseren - Wachtwoorden synchroniseren tussen apparaten + Wachtwoorden synchroniseren tussen apparaten - Opgeslagen aanmeldingen + Opgeslagen aanmeldingen - Opgeslagen wachtwoorden + Opgeslagen wachtwoorden - De aanmeldingen die u opslaat of synchroniseert met %s worden hier getoond. + De aanmeldingen die u opslaat of synchroniseert met %s worden hier getoond. - De wachtwoorden die u opslaat of synchroniseert met %s zullen hier worden vermeld. Alle wachtwoorden die u opslaat, zijn versleuteld. + De wachtwoorden die u opslaat of synchroniseert met %s zullen hier worden vermeld. Alle wachtwoorden die u opslaat, zijn versleuteld. - Meer info over Sync. + Meer info over Sync. - Meer info over synchronisatie + Meer info over synchronisatie Uitzonderingen - Niet-opgeslagen aanmeldingen en wachtwoorden worden hier weergegeven. + Niet-opgeslagen aanmeldingen en wachtwoorden worden hier weergegeven. - %s zal geen wachtwoorden voor de hier vermelde websites opslaan. + %s zal geen wachtwoorden voor de hier vermelde websites opslaan. - Aanmeldingen en wachtwoorden worden voor deze websites niet opgeslagen. + Aanmeldingen en wachtwoorden worden voor deze websites niet opgeslagen. - %s zal geen wachtwoorden voor deze websites opslaan. + %s zal geen wachtwoorden voor deze websites opslaan. Alle uitzonderingen verwijderen - Aanmeldingen zoeken + Aanmeldingen zoeken - Wachtwoorden zoeken + Wachtwoorden zoeken Website @@ -1764,17 +1779,17 @@ Wachtwoord verbergen - Ontgrendel om uw opgeslagen aanmeldingen te bekijken + Ontgrendel om uw opgeslagen aanmeldingen te bekijken - Ontgrendel om uw opgeslagen wachtwoorden te bekijken + Ontgrendel om uw opgeslagen wachtwoorden te bekijken - Beveilig uw aanmeldingen en wachtwoorden + Beveilig uw aanmeldingen en wachtwoorden - Beveilig uw opgeslagen wachtwoorden + Beveilig uw opgeslagen wachtwoorden - Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen aanmeldingen en wachtwoorden te beschermen tegen toegang als iemand anders uw apparaat heeft. + Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen aanmeldingen en wachtwoorden te beschermen tegen toegang als iemand anders uw apparaat heeft. - Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen wachtwoorden te beschermen tegen toegang als iemand anders uw apparaat heeft. + Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen wachtwoorden te beschermen tegen toegang als iemand anders uw apparaat heeft. Later @@ -1791,10 +1806,10 @@ Laatst gebruikt - Menu Aanmeldingen sorteren + Menu Aanmeldingen sorteren - Wachtwoordmenu sorteren + Wachtwoordmenu sorteren @@ -1802,43 +1817,43 @@ Adressen - Creditcards + Creditcards - Betalingsmethoden + Betalingsmethoden - Kaarten opslaan en automatisch invullen + Kaarten opslaan en automatisch invullen - Betalingsmethoden opslaan en invullen + Betalingsmethoden opslaan en invullen - Gegevens zijn versleuteld + Gegevens zijn versleuteld - %s versleutelt alle betalingsmethoden die u opslaat + %s versleutelt alle betalingsmethoden die u opslaat Kaarten synchroniseren tussen apparaten Kaarten synchroniseren - Creditcard toevoegen + Creditcard toevoegen - Kaart toevoegen + Kaart toevoegen - Opgeslagen kaarten beheren + Opgeslagen kaarten beheren - Kaarten beheren + Kaarten beheren Adres toevoegen Adressen beheren - Adressen opslaan en automatisch invullen + Adressen opslaan en automatisch invullen - Adressen opslaan en invullen + Adressen opslaan en invullen - Informatie zoals nummers, e-mail- en verzendadressen toevoegen + Informatie zoals nummers, e-mail- en verzendadressen toevoegen - Inclusief telefoonnummers en e-mailadressen + Inclusief telefoonnummers en e-mailadressen Kaart toevoegen @@ -1859,9 +1874,9 @@ Kaart verwijderen - Weet u zeker dat u deze creditcard wilt verwijderen? + Weet u zeker dat u deze creditcard wilt verwijderen? - Kaart verwijderen? + Kaart verwijderen? Verwijderen @@ -1875,24 +1890,24 @@ Opgeslagen kaarten - Voer een geldig creditcardnummer in + Voer een geldig creditcardnummer in - Voer een geldig kaartnummer in + Voer een geldig kaartnummer in - Vul dit veld in + Vul dit veld in - Voeg een naam toe + Voeg een naam toe Ontgrendel om uw opgeslagen kaarten te bekijken - Beveilig uw creditcards + Beveilig uw creditcards - Beveilig uw opgeslagen betalingsmethoden + Beveilig uw opgeslagen betalingsmethoden - Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen creditcards te beschermen tegen toegang als iemand anders uw apparaat heeft. + Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen creditcards te beschermen tegen toegang als iemand anders uw apparaat heeft. - Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen betalingsmethoden te beschermen tegen toegang als iemand anders uw apparaat heeft. + Stel een vergrendelingspatroon, pincode of wachtwoord voor uw apparaat in om uw opgeslagen betalingsmethoden te beschermen tegen toegang als iemand anders uw apparaat heeft. Nu instellen @@ -1901,10 +1916,10 @@ Ontgrendel uw apparaat - Ontgrendelen om opgeslagen creditcardgegevens te gebruiken + Ontgrendelen om opgeslagen creditcardgegevens te gebruiken - Ontgrendel om opgeslagen betalingsmethoden te gebruiken + Ontgrendel om opgeslagen betalingsmethoden te gebruiken Adres toevoegen @@ -1912,11 +1927,13 @@ Adressen beheren - Voornaam + Voornaam - Tweede naam + Tweede naam - Achternaam + Achternaam + + Naam Adres @@ -1941,9 +1958,9 @@ Adres verwijderen - Weet u zeker dat u dit adres wilt verwijderen? + Weet u zeker dat u dit adres wilt verwijderen? - Dit adres verwijderen? + Dit adres verwijderen? Verwijderen @@ -2041,49 +2058,49 @@ Bewerken - Weet u zeker dat u deze aanmelding wilt verwijderen? + Weet u zeker dat u deze aanmelding wilt verwijderen? - Weet u zeker dat u dit wachtwoord wilt verwijderen? + Weet u zeker dat u dit wachtwoord wilt verwijderen? Verwijderen Annuleren - Aanmeldopties + Aanmeldopties - Wachtwoordopties + Wachtwoordopties - Het bewerkbare tekstveld voor het webadres van de aanmelding. + Het bewerkbare tekstveld voor het webadres van de aanmelding. - Het bewerkbare tekstveld voor het websiteadres. + Het bewerkbare tekstveld voor het websiteadres. - Het bewerkbare tekstveld voor de gebruikersnaam van de aanmelding. + Het bewerkbare tekstveld voor de gebruikersnaam van de aanmelding. - Het bewerkbare tekstveld voor de gebruikersnaam. + Het bewerkbare tekstveld voor de gebruikersnaam. - Het bewerkbare tekstveld voor het wachtwoord van de aanmelding. + Het bewerkbare tekstveld voor het wachtwoord van de aanmelding. - Het bewerkbare tekstveld voor het wachtwoord. + Het bewerkbare tekstveld voor het wachtwoord. - Wijzigingen aan aanmelding opslaan. + Wijzigingen aan aanmelding opslaan. - Wijzigingen opslaan. + Wijzigingen opslaan. - Bewerken + Bewerken - Wachtwoord bewerken + Wachtwoord bewerken - Nieuwe aanmelding toevoegen + Nieuwe aanmelding toevoegen - Wachtwoord toevoegen + Wachtwoord toevoegen - Wachtwoord vereist + Wachtwoord vereist - Vul een wachtwoord in + Vul een wachtwoord in - Gebruikersnaam vereist + Gebruikersnaam vereist - Vul een gebruikersnaam in + Vul een gebruikersnaam in Hostnaam vereist @@ -2108,14 +2125,14 @@ Een ander apparaat verbinden. Gelieve opnieuw te authenticeren. - + Schakel het synchroniseren van tabbladen in. - U hebt geen tabbladen geopend in Firefox op uw andere apparaten. - + U hebt geen tabbladen geopend in LeOSium op uw andere apparaten. + Bekijk een lijst met tabbladen van uw overige apparaten. - + Aanmelden om te synchroniseren @@ -2167,7 +2184,7 @@ Automatisch sluiten na een maand? - Firefox kan tabbladen die u de afgelopen maand niet hebt bekeken sluiten. + LeOSium kan tabbladen die u de afgelopen maand niet hebt bekeken sluiten. AUTOMATISCH SLUITEN INSCHAKELEN @@ -2175,8 +2192,8 @@ Automatisch sluiten ingeschakeld - - Firefox Suggesties + + LeOSium Suggesties Google Zoeken @@ -2187,7 +2204,7 @@ Uw standaardbrowser wisselen - Koppelingen van websites, e-mail en berichten automatisch in Firefox openen. + Koppelingen van websites, e-mail en berichten automatisch in LeOSium openen. Verwijderen @@ -2196,7 +2213,7 @@ Klik voor meer details - Omhoog + Omhoog Sluiten @@ -2211,7 +2228,7 @@ Mogelijk gemaakt door %s. - Onderdeel van de Firefox-familie. %s + Onderdeel van de LeOSium-familie. %s Meer info @@ -2237,8 +2254,6 @@ Aangepaste waardering - Onbetrouwbare beoordelingen verwijderd - Gebaseerd op betrouwbare beoordelingen Hoogtepunten uit recente beoordelingen @@ -2294,10 +2309,6 @@ Als u ziet dat dit product weer op voorraad is, meld dit dan aan ons en wij zullen eraan werken om de beoordelingen te controleren. Rapporteren dat product op voorraad is - - Beoordelingskwaliteit controleren - - Beoordelingskwaliteit controleren Beoordelingskwaliteit controleren (%s) @@ -2334,22 +2345,28 @@ Beoordelingskwaliteit controleren Probeer onze vertrouwde gids voor productbeoordelingen - + Bekijk hoe betrouwbaar de productbeoordelingen op %1$s zijn voordat u koopt. Beoordelingscontrole, een experimentele functie van %2$s, is rechtstreeks in de browser ingebouwd. Het werkt ook op %3$s en %4$s. - + Bekijk hoe betrouwbaar de productbeoordelingen op %1$s zijn voordat u koopt. Beoordelingscontrole, een experimentele functie van %2$s, is rechtstreeks in de browser ingebouwd. Met behulp van de kracht van %1$s door Mozilla helpen we u bevooroordeelde en niet-authentieke beoordelingen te voorkomen. Ons AI-model wordt voortdurend verbeterd om u te beschermen terwijl u winkelt. %2$s Meer info - Door ‘Ja, proberen’ te selecteren, gaat u akkoord met het %2$s en de %3$s van %1$s door Mozilla. + Door ‘Ja, proberen’ te selecteren, gaat u akkoord met het %2$s en de %3$s van %1$s door Mozilla. Door ‘Ja, proberen’ te selecteren, gaat u akkoord met het volgende van %1$s: + + Door ‘Ja, proberen’ te selecteren, gaat u akkoord met de %2$s van %1$s en de %4$s van %3$s. + + Door ‘Ja, proberen’ te selecteren, gaat u akkoord met de %2$s van %1$s en de %4$s van %3$s. - privacybeleid + privacybeleid Privacybeleid + + privacyverklaring gebruiksvoorwaarden @@ -2407,7 +2424,7 @@ koppeling openen voor meer info over deze collectie het artikel te lezen - + de koppeling te openen voor meer info %s, koptekst @@ -2423,11 +2440,15 @@ Deze pagina vertalen? + + Pagina vertaald van het %1$s naar het %2$s Probeer privévertalingen in %1$s Voor uw privacy verlaten vertalingen uw apparaat nooit. Binnenkort nieuwe talen en verbeteringen! %1$s - + Meer info Vertalen vanuit het @@ -2435,6 +2456,8 @@ Vertalen naar het Niet nu + + Origineel tonen Gereed @@ -2457,6 +2480,16 @@ Meer info + + + Vertalen… + + Taal downloaden in gegevensbesparingsmodus (%1$s)? + + Vertaalopties diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml index a3252eaf..fa3c586e 100644 --- a/app/src/main/res/values-nn-rNO/strings.xml +++ b/app/src/main/res/values-nn-rNO/strings.xml @@ -74,7 +74,7 @@ %1$s slettar infokapslar, historikk og nettstad-data når du lèt att alle dei private fanene dine. %2$s - Prøv Firefox-søkjeminiprogrammet + Note: The word "LeOSium" should NOT be translated --> + Prøv LeOSium-søkjeminiprogrammet - Med Firefox på startskjermen din, har du enkel tilgang til den personvernfokuserte nettlesaren som blokkerer sporarar på fleire nettstadar. + Note: The word "LeOSium" should NOT be translated --> + Med LeOSium på startskjermen din, har du enkel tilgang til den personvernfokuserte nettlesaren som blokkerer sporarar på fleire nettstadar. - Legg til Firefox-miniprogram + Note: The word "LeOSium" should NOT be translated --> + Legg til LeOSium-miniprogram Ikkje no @@ -401,10 +401,10 @@ Søkjemotorar Forslag frå søkjemotorar - - Adresselinje - Firefox forslag - - Les meir om Firefox forslag + + Adresselinje - LeOSium forslag + + Les meir om LeOSium forslag Vurder på Google Play Autofullfør nettadresser - + Forslag frå sponsorar - Stø %1$s med enkelte sponsa forslag - Forslag frå %1$s - + Få forslag frå nettet relatert til søkinga di Opne lenker i appar @@ -632,7 +632,7 @@ Les meir - + Klassisk %s Artist-serien @@ -651,8 +651,8 @@ Nye utvidingar tilgjengelege no - - Sjekk ut 100+ nye utvidingar som lèt deg gjere Firefox til din eigen. + + Sjekk ut 100+ nye utvidingar som lèt deg gjere LeOSium til din eigen. Utforsk utvidingar @@ -719,7 +719,7 @@ Mottekne faner - Varsel for faner mottekne frå andre Firefox-einingar. + Varsel for faner mottekne frå andre LeOSium-einingar. Fane motteken @@ -905,7 +905,7 @@ Fjern Aktiv - + %1$s kan installere og køyre studiar frå tid til annan. Les meir @@ -1283,7 +1283,7 @@ Kople til ei anna eining - For å sende ei fane, logg deg på Firefox på minst ei anna eining. + For å sende ei fane, logg deg på LeOSium på minst ei anna eining. Skjønar @@ -1310,10 +1310,10 @@ - Firefox er rask og privat + LeOSium er rask og privat - Bruk Firefox som din standardnettlesar + Bruk LeOSium som din standardnettlesar Prøv privat nettlesing - Bidra til å gjere Firefox betre ved å ta ei kort spørjeundersøkjing. + Bidra til å gjere LeOSium betre ved å ta ei kort spørjeundersøkjing. Ver med på undersøkinga @@ -1481,16 +1481,16 @@ Skann QR-kode - https://firefox.com/pair]]> + https://firefox.com/pair]]> Klar for å skanne Logg inn med kameraet ditt Bruk e-post i staden - - Lag ein for å synkronisere Firefox mellom einingar.]]> - + + Lag ein for å synkronisere LeOSium mellom einingar.]]> + %s vil stoppe synkroniseringa med kontoen din, men vil ikkje slette nettleserdataa dine på denne eiinga. Kople frå @@ -1507,7 +1507,7 @@ Utvida sporingsvern No med totalt vern mot infokapslar, den mest kraftfulle barrieren vår til no mot sporarar på fleire nettstadar. - + %s vernar deg frå mange av dei vanlegaste sporarane som følgjer det du gjer på nettet. Les meir @@ -1671,9 +1671,9 @@ Lagre aldri - + Autofyll i %1$s - + Fyll inn og lagre brukarnamn og passord på nettstadar mens du brukar %1$s. Autofyll i andre appar @@ -2009,6 +2009,8 @@ Avbryt Innloggingsalternativ + + Passordalternativ Det redigerbare tekstfeltet for innloggings-nettadressa. @@ -2060,13 +2062,13 @@ Kople til ei anna eining. Godkjenn på nytt. - + Slå på fane-synkronisering. - Du har ingen faner opne i Firefox på andre einingar. - + Du har ingen faner opne i LeOSium på andre einingar. + Vis ei liste over faner frå andre einingar. - + Logg inn for å synkronisere @@ -2121,23 +2123,23 @@ Late att automatisk etter ein måned? - Firefox kan late att faner du ikkje har sett den siste månaden. + LeOSium kan late att faner du ikkje har sett den siste månaden. SLÅ PÅ AUTO-ATTLATING Automatisk attlating aktivert - - Firefox-forslag + + LeOSium-forslag Søk med Google Søk med %s - - Vel at lenker frå nettstadar, e-postmeldingar og meldingar skal opnast automatisk i Firefox. + + Vel at lenker frå nettstadar, e-postmeldingar og meldingar skal opnast automatisk i LeOSium. Fjern @@ -2161,7 +2163,7 @@ Driven av %s. - Del av Firefox-familien. %s + Del av LeOSium-familien. %s Les meir @@ -2284,9 +2286,9 @@ Kontroller kvaliteten på vurderinga Prøv den pålitelege guiden vår for produktvurderingar - + Sjå kor påliteleg produktvurderingar er på %1$s før du kjøper. Vurderingskontrolløren, ein eksperimentell funksjon frå %2$s, er direkte inbyggd i nettlesaren. Han fungerer på %3$s og på %4$s. - + Sjå kor pålitelege produktvurderinger er på %1$s før du handlar. Vurderingskontrolløren, ein eksperimentell funksjon fra %2$s, er innebygd i nettlesaren. Med krafta i %1$s frå Mozilla hjelper vi deg med å unngå einsidige og ikkje-truverdige vurderingar. AI-modellen vår vert alltid forbetra for å beskytte deg når du handlar. %2$s @@ -2355,7 +2357,7 @@ opne lenka for å lære meir om denne samlinga les artikkelen - + opne lenke for å lese meir %s, overskrift @@ -2368,7 +2370,7 @@ Omsetje denne sida? - + Les meir Omset frå @@ -2506,6 +2508,9 @@ Avbryt + + + Feilsøkingsverktøy Naviger tilbake @@ -2520,6 +2525,12 @@ Privat Totalt + + Verktøy for å lage faner + + Legg til i aktive faner + + Legg til i inaktive faner Legg til i private faner diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index 778186cd..cb091258 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -69,7 +69,7 @@ Daissatz pas cap de traça sus aqueste aparelh %1$s suprimís los cookies, istoric e donadas de sites quand tampatz totes los onglets de navegacion privada. %2$s - Politica de confidencialitat de Firefox + Politica de confidencialitat de LeOSium Nos impòrta vòstra vida privada @@ -348,32 +348,32 @@ Demoratz en lòc segur amb lo chiframent quand basculatz d’aparelh - Quand vos connectatz e activatz la sincronizacion, vòstra seguretat es renfortida. Firefox chifra vòstres senhals, marcapaginas e encara mai de causas. + Note: The word "LeOSium" should NOT be translated --> + Quand vos connectatz e activatz la sincronizacion, vòstra seguretat es renfortida. LeOSium chifra vòstres senhals, marcapaginas e encara mai de causas. Connexion Pas ara - Las notificacions vos ajudan a demorar en seguretat amb Firefox + Note: The word "LeOSium" should NOT be translated --> + Las notificacions vos ajudan a demorar en seguretat amb LeOSium - Enviatz d’onglets d’un aparelh a l’autre en tot seguretat e descobrissètz d’autras foncionalitats de proteccion de la vida privada de Firefox. + Note: The word "LeOSium" should NOT be translated --> + Enviatz d’onglets d’un aparelh a l’autre en tot seguretat e descobrissètz d’autras foncionalitats de proteccion de la vida privada de LeOSium. Activar las notificacions Mai tard - Ensajar lo widget de recèrca Firefox + Note: The word "LeOSium" should NOT be translated --> + Ensajar lo widget de recèrca LeOSium - Amb Firefox per l’ecran d’acuèlh auretz accès facilament al navegador dedicat a la vida privada que bloca los traçadors intersites. + Note: The word "LeOSium" should NOT be translated --> + Amb LeOSium per l’ecran d’acuèlh auretz accès facilament al navegador dedicat a la vida privada que bloca los traçadors intersites. - Apondre lo widget Firefox + Note: The word "LeOSium" should NOT be translated --> + Apondre lo widget LeOSium Pas ara @@ -413,10 +413,10 @@ Suggestions dels motors de recèrcas Preferéncias de la barra d’adreça - - Barra d’adreça - Firefox Suggest - - Ne saber mai tocant Firefox Suggest + + Barra d’adreça - LeOSium Suggest + + Ne saber mai tocant LeOSium Suggest Valorar sus Google Play Autocomplecion URL - + Suggestions d’esponsòrs - Sosténer %1$s en afichant ocasionalament de suggestions esponsorizadas - Suggestions de %1$s - + Obténer de suggestions del Wel en relacion amb vòstra recèrca Dobrir los ligams dins las aplicacions @@ -648,7 +648,7 @@ Ne saber mai - + %s classic @@ -668,8 +668,8 @@ Moduls novèls disponibles - - Descobrissètz mai de 100 extensions novèlas que permeton de personalizar Firefox. + + Descobrissètz mai de 100 extensions novèlas que permeton de personalizar LeOSium. Percórrer los moduls @@ -737,7 +737,7 @@ Onglets recebuts - Notificacions d’onglets recebuts d’un Firefox sus un autre periferic. + Notificacions d’onglets recebuts d’un LeOSium sus un autre periferic. Onglet recebut @@ -921,7 +921,7 @@ Suprimir Actiu - + %1$s pòt installar e lançar d’estudis de temps en temps. Ne saber mai @@ -1303,7 +1303,7 @@ Connectar un periferic mai - Per enviar un onglet, connectatz-vos a vòstre compte Firefox sus almens un autre periferic. + Per enviar un onglet, connectatz-vos a vòstre compte LeOSium sus almens un autre periferic. Comprés ! @@ -1332,10 +1332,10 @@ - Firefox es rapid e privat + LeOSium es rapid e privat - Far que Firefox siá lo navegador per defaut + Far que LeOSium siá lo navegador per defaut Ensajatz la navegacion privada @@ -1356,7 +1356,7 @@ - Ajudatz-nos a melhorar Firefox en respondent a un sondatge cort. + Ajudatz-nos a melhorar LeOSium en respondent a un sondatge cort. Participar al sondatge @@ -1507,16 +1507,16 @@ Numerizatz lo còdi QR - https://firefox.com/pair]]> + https://firefox.com/pair]]> Prèst a numerizar Connectatz-vos amb la camèra Utilizar una adreça electronica allòc - - Creatz-ne un per sincronizar Firefox entre periferics.]]> - + + Creatz-ne un per sincronizar LeOSium entre periferics.]]> + %s quitarà de sincronizar vòstre compte mas escafarà pas las donadas de navegacion d’aqueste periferic. Se desconectar @@ -1533,7 +1533,7 @@ Proteccion renfortida contra lo seguiment Ara amb una proteccion totala de cookies, nòstra barrièra mai potenta pel moment contra los traçadors intersites. - + %s vos protegís de la màger part dels traçadors mai comuns que vos seguisson en linha. Ne saber mai @@ -1703,9 +1703,9 @@ Salvar pas jamai - + Emplenatge automatic dins %1$s - + Emplenar e enregistrar los noms d’utilizaire e los senhals als sites web en utilizant %1$s. Emplenatge automatic dins d’autras aplicacions @@ -2134,13 +2134,13 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Connectatz un autre periferic. Tornatz vos autentificar. - + Activatz la sincronizacion dels onglets. - Avètz pas cap d’autres onglets dubèrts sus Firefox de vòstres autres periferics. - + Avètz pas cap d’autres onglets dubèrts sus LeOSium de vòstres autres periferics. + Vejatz la lista dels onglets dels autres periferics. - + Se connectar a Sync @@ -2192,7 +2192,7 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Tampadura automatica aprèp un mes ? - Firefox pòot tampar los onglets qu’avètz pas consultats pendent lo mes passat. + LeOSium pòot tampar los onglets qu’avètz pas consultats pendent lo mes passat. ACTIVAR LA TAMPADURA AUTO @@ -2201,8 +2201,8 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Tampadura auto activada - - Firefox suggerís + + LeOSium suggerís Recèrca Google @@ -2210,7 +2210,10 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Recèrca %s - Causir de dobrir los sites web, los corrièls e messatges automaticament dins Firefox. + + Cambiatz vòstre navegador per defaut + + Causir de dobrir los sites web, los corrièls e messatges automaticament dins LeOSium. Suprimir @@ -2234,7 +2237,7 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Fonciona gràcia a %s. - Membre de la familha Firefox. %s + Membre de la familha LeOSium. %s Ne saber mai @@ -2357,9 +2360,9 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Valorar la qualitat dels avises Ensajatz nòstra guida de fisança pels avises de produches - + Agachatz quina fisabilitat acordar als avises de produches sus %1$s abans de crompar. Lo verificador d’avises, una foncionalitat experimentala de %2$s, es integrada al navegador. Fonciona tanben per %3$s e %4$s. - + Agachatz quina fisabilitat acordar als avises de produches sus %1$s abans de crompar. Lo verificador d’avises, una foncionalitat experimentala de %2$s, es integrada al navegador. Amb lo poder de %1$s per Mozilla, vos ajudam a evitar los avises biaissats e non autentics. Nòstre modèl d’IA es a se melhorar en permanéncia per vos protegir quand crompatz. %2$s @@ -2429,7 +2432,7 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& dobrir lo ligam per ne saber mai tocant aquesta colleccion legir l’article - + dobrissètz lo ligam per ne saber mai %s, títol @@ -2448,7 +2451,7 @@ Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox& Ensajar las traduccions privadas dins %1$s Per respectar vòstra vida privada, las traduccions quitan pas jamai vòstre aparelh. De lengas e amelhoraments novèls seràn lèu disponibles ! %1$s - + Ne saber mai Traduire de diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml index 245a556a..e2b772a8 100644 --- a/app/src/main/res/values-or/strings.xml +++ b/app/src/main/res/values-or/strings.xml @@ -192,6 +192,6 @@ ଠିକ୍ ଅଛି - Firefox ପରିବାରର ଏକ ଅଂଶ। %s + LeOSium ପରିବାରର ଏକ ଅଂଶ। %s diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml index 1d01e919..496c4e58 100644 --- a/app/src/main/res/values-pa-rIN/strings.xml +++ b/app/src/main/res/values-pa-rIN/strings.xml @@ -75,7 +75,7 @@ ਇਸ ਡਿਵਾਈਸ ਉੱਤੇ ਕੋਈ ਪੈੜ੍ਹਾਂ ਨਾ ਛੱਡੋ ਜਦੋਂ ਵੀ ਆਪਣੀਆਂ ਪ੍ਰਾਈਵੇਟ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ ਤਾਂ %1$s ਤੁਹਾਡੇ ਕੂਕੀਜ਼, ਅਤੀਤ ਅਤੇ ਸਾਈਟ ਡਾਟੇ ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ। %2$s ਸਫ਼ੇ ਦਾ ਉਲੱਥਾ ਕਰੋ + + ਸਫ਼ੇ ਦਾ %1$s ਤੋਂ %2$s ਵਿੱਚ ਅਨੁਵਾਦ ਕੀਤਾ। + ਚੁਣੀ ਹੋਈ ਬੋਲੀ @@ -337,13 +342,23 @@ - Firefox ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ - + LeOSium ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ + + ਸਾਡੀ ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ ਵਿੱਚ ਹੋਰ ਜਾਣਕਾਰੀ ਲਵੋ ਅਸੀਂ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹਾਂ + + ਪਤਾ ਕਰੋ ਕਿ ਲੱਖਾਂ LeOSium ਨੂੰ ਪਸੰਦ ਕਿਉਂ ਕਰਦੇ ਹਨ + + ਹੋਰ ਚੋਣਾਂ ਨਾਲ ਸੁਰੱਖਿਅਤ ਬਰਾਊਜ਼ ਕਰਨਾ ਕੰਪਨੀਆਂ ਨੂੰ ਚੋਰੀ ਚੋਰੀ ਵੈੱਬ ਉੱਤੇ ਤੁਹਾਡਾ ਪਿੱਛਾ ਕਰਨ ਤੋਂ ਸਾਡਾ ਗ਼ੈਰ-ਫਾਇਦਾ ਸਮਰੱਥ ਬਰਾਊਜ਼ਰ ਆਪਣੇ-ਆਪ ਹੀ ਰੋਕਦਾ ਹੈ। + 10 ਕਰੋੜ ਤੋਂ ਵੱਧ ਲੋਕ ਨੇ ਆਪਣੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ ਉਸ ਬਰਾਊਜ਼ਰ ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ, ਜਿਸ ਦਾ ਮਕਸਦ ਕੋਈ ਫਾਇਦਾ ਨਹੀਂ ਹੈ। + + ਜਾਣੇ-ਪਛਾਣੇ ਟਰੈਕਰ? ਆਪਣੇ ਆਪ ਪਾਬੰਦੀ ਲਾਈ। ਇਕਸਟੈਨਸ਼ਨ? 700 ਤੋਂ ਵੱਧ ਅਜ਼ਮਾਉਣ ਲਈ। PDF? ਸਾਡੇ ਬਿਲਟ-ਇਨ ਰੀਡਰ ਨਾਲ ਉਹਨਾਂ ਨੂੰ ਵਰਤਣਾ ਸੌਖਾ। + ਸਾਡਾ ਗ਼ੈਰ-ਮੁਨਾਫ਼ਾ ਸਮਰੱਥ ਬਰਾਊਜ਼ਰ ਕੰਪਨੀਆਂ ਨੂੰ ਵੈੱਬ ਉੱਤੇ ਚੋਰੀ ਛਿਪੇ ਪਿੱਛਾ ਕਰਨ ਤੋਂ ਰੋਕਣ ਲਈ ਮਦਦ ਕਰਦਾ ਹੈ।\n\nਸਾਡੇ ਪਰਦੇਦਾਰੀ ਨੋਟਿਸ ਬਾਰੇ ਹੋਰ ਸਿੱਖੋ। @@ -355,33 +370,33 @@ ਜਦੋਂ ਤੁਸੀਂ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਤਬਾਦਲਾ ਕਰੋ ਤਾਂ ਇੰਕ੍ਰਿਪਟ ਰਹੋ - ਜਦੋਂ ਤੁਸੀਂ ਸਾਈਨ ਇਨ ਅਤੇ ਸਿੰਕ ਕਰਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਵੱਧ ਸੁਰੱਖਿਅਤ ਹੁੰਦੇ ਹੋ। Firefox ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ, ਬੁੱਕਮਾਰਕਾਂ ਤੇ ਹੋਰਾਂ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ। + Note: The word "LeOSium" should NOT be translated --> + ਜਦੋਂ ਤੁਸੀਂ ਸਾਈਨ ਇਨ ਅਤੇ ਸਿੰਕ ਕਰਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਵੱਧ ਸੁਰੱਖਿਅਤ ਹੁੰਦੇ ਹੋ। LeOSium ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ, ਬੁੱਕਮਾਰਕਾਂ ਤੇ ਹੋਰਾਂ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ। ਸਾਈਨ ਇਨ ਹੁਣੇ ਨਹੀਂ - ਨੋਟੀਫ਼ਿਕੇਸ਼ਨ Firefox ਨਾਲ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਅਤ ਰਹਿਣ ਲਈ ਮਦਦ ਕਰਦੇ ਹਨ + Note: The word "LeOSium" should NOT be translated --> + ਨੋਟੀਫ਼ਿਕੇਸ਼ਨ LeOSium ਨਾਲ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਅਤ ਰਹਿਣ ਲਈ ਮਦਦ ਕਰਦੇ ਹਨ - ਟੈਬਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਵਿੱਚ ਆਪਣੇ ਡਿਵਾਈਸਾਂ ਉੱਤੇ ਭੇਜੋ ਅਤੇ Firefox ਵਿੱਚ ਹੋਰ ਪਰਦੇਦਾਰੀ ਫ਼ੀਚਰ ਬਾਰੇ ਜਾਣੋ। + Note: The word "LeOSium" should NOT be translated --> + ਟੈਬਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਵਿੱਚ ਆਪਣੇ ਡਿਵਾਈਸਾਂ ਉੱਤੇ ਭੇਜੋ ਅਤੇ LeOSium ਵਿੱਚ ਹੋਰ ਪਰਦੇਦਾਰੀ ਫ਼ੀਚਰ ਬਾਰੇ ਜਾਣੋ। ਸੂਚਨਾਵਾਂ ਚਾਲੂ ਕਰੋ ਹੁਣੇ ਨਹੀਂ - Firefox ਖੋਜ ਵਿਜੈਟ ਅਜ਼ਮਾਓ + Note: The word "LeOSium" should NOT be translated --> + LeOSium ਖੋਜ ਵਿਜੈਟ ਅਜ਼ਮਾਓ - ਤੁਹਾਡੀ ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ Firefox ਨਾਲ ਤੁਸੀਂ ਪਰਾਈਵੇਸੀ ਅਧਾਰਿਤ ਬਰਾਊਜ਼ਰ ਨੂੰ ਸੌਖੀ ਤਰ੍ਹਾਂ ਵਰਤ ਸਕਦੇ ਹੋ, ਜੋ ਕਿ ਅੰਤਰ-ਸਾਈਟ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਂਦਾ ਹੈ। + Note: The word "LeOSium" should NOT be translated --> + ਤੁਹਾਡੀ ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ LeOSium ਨਾਲ ਤੁਸੀਂ ਪਰਾਈਵੇਸੀ ਅਧਾਰਿਤ ਬਰਾਊਜ਼ਰ ਨੂੰ ਸੌਖੀ ਤਰ੍ਹਾਂ ਵਰਤ ਸਕਦੇ ਹੋ, ਜੋ ਕਿ ਅੰਤਰ-ਸਾਈਟ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਂਦਾ ਹੈ। - Firefox ਵਿਜੈਟ ਜੋੜੋ + Note: The word "LeOSium" should NOT be translated --> + LeOSium ਵਿਜੈਟ ਜੋੜੋ ਹੁਣੇ ਨਹੀਂ @@ -421,10 +436,10 @@ ਖੋਜ ਇੰਜਣਾਂ ਤੋਂ ਸੁਝਾਅ ਸਿਰਨਾਵਾਂ ਪੱਟੀ ਲਈ ਪਸੰਦਾਂ - - ਸਿਰਨਾਵਾਂ ਪੱਟੀ - Firefox ਸੁਝਾਅ - - Firefox ਸੁਝਾਅ ਬਾਰੇ ਹੋਰ ਜਾਣੋ + + ਸਿਰਨਾਵਾਂ ਪੱਟੀ - LeOSium ਸੁਝਾਅ + + LeOSium ਸੁਝਾਅ ਬਾਰੇ ਹੋਰ ਜਾਣੋ ਗੂਗਲ ਪਲੇਅ ‘ਤੇ ਦਰਜਾ ਦਿਓ ਆਪੇ-ਪੂਰਨ URL - + ਸਪੌਂਸਰਾਂ ਵਲੋਂ ਸੁਝਾਅ - ਕਦੇ ਕਦਾਈ ਸਪੌਂਸਰਾਂ ਵਲੋਂ ਸੁਝਾਆਵਾਂ ਰਾਹੀਂ %1$s ਦੀ ਮਦਦ ਕਰੋ - %1$s ਵਲੋਂ ਸੁਝਾਅ - + ਆਪਣੀ ਖੋਜ ਨਾਲ ਸੰਬੰਧਿਤ ਵੈੱਬ ਤੋਂ ਸੁਝਾਅ ਲਵੋ ਲਿੰਕ ਐਪਾਂ ਵਿੱਚ ਖੋਲ੍ਹੋ @@ -656,7 +671,7 @@ ਹੋਰ ਜਾਣੋ - + ਕਲਾਸਿਕ %s ਕਲਾਕਾਰ ਲੜੀ @@ -674,8 +689,8 @@ ਨਵੀਆਂ ਐਡ-ਆਨ ਹੁਣ ਮੌਜੂਦ ਹਨ - - 100+ ਤੋਂ ਵੱਧ ਇਕਸਟੈਨਸ਼ਨ ਨੂੰ ਵੇਖੋ, ਜੋ Firefox ਨੂੰ ਤੁਹਾਡਾ ਆਪਣਾ ਬਣਾਉਣ ਲਈ ਸਹਾਇਕ ਹੋਣਗੀਆਂ। + + 100+ ਤੋਂ ਵੱਧ ਇਕਸਟੈਨਸ਼ਨ ਨੂੰ ਵੇਖੋ, ਜੋ LeOSium ਨੂੰ ਤੁਹਾਡਾ ਆਪਣਾ ਬਣਾਉਣ ਲਈ ਸਹਾਇਕ ਹੋਣਗੀਆਂ। ਐਡ-ਆਨ ਬਾਰੇ ਜਾਣੋ @@ -703,9 +718,9 @@ ਬੁੱਕਮਾਰਕ - ਲਾਗਇਨ + ਲਾਗਇਨ - ਪਾਸਵਰਡ + ਪਾਸਵਰਡ ਟੈਬਾਂ ਖੋਲ੍ਹੋ @@ -732,9 +747,9 @@ %2$s %3$s ਉੱਤੇ %1$s - ਕਰੈਡਿਟ ਕਾਰਡ + ਕਰੈਡਿਟ ਕਾਰਡ - ਭੁਗਤਾਨ ਦੇ ਢੰਗ + ਭੁਗਤਾਨ ਦੇ ਢੰਗ ਸਿਰਨਾਵੇਂ @@ -742,7 +757,7 @@ ਮਿਲੀਆਂ ਟੈਬਾਂ - ਹੋਰ Firefox ਡਿਵਾਈਸਾਂ ਤੋਂ ਮਿਲੀਆਂ ਟੈਬਾਂ ਲਈ ਸੂਚਨਾਵਾਂ ਹਨ। + ਹੋਰ LeOSium ਡਿਵਾਈਸਾਂ ਤੋਂ ਮਿਲੀਆਂ ਟੈਬਾਂ ਲਈ ਸੂਚਨਾਵਾਂ ਹਨ। ਟੈਬ ਮਿਲੀ @@ -929,7 +944,7 @@ ਹਟਾਓ ਸਰਗਰਮ - + %1$s ਸਮੇਂ ਸਮੇਂ ਉੱਤੇ ਅਧਿਐਨ ਇੰਸਟਾਲ ਕਰ ਤੇ ਚਲਾ ਸਕਦਾ ਹੈ। ਹੋਰ ਸਿੱਖੋ @@ -1305,7 +1320,7 @@ ਹੋਰ ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ - ਟੈਬ ਭੇਜਣ ਲਈ, ਘੱਟੋ-ਘੱਟ ਹੋਰ ਡਿਵਾਈਸ ਉੱਤੇ Firefox ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ। + ਟੈਬ ਭੇਜਣ ਲਈ, ਘੱਟੋ-ਘੱਟ ਹੋਰ ਡਿਵਾਈਸ ਉੱਤੇ LeOSium ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ। ਸਮਝ ਗਏ @@ -1333,10 +1348,10 @@ - Firefox ਤੇਜ਼ ਅਤੇ ਨਿੱਜੀ ਹੈ + LeOSium ਤੇਜ਼ ਅਤੇ ਨਿੱਜੀ ਹੈ - Firefox ਨੂੰ ਆਪਣਾ ਡਿਫਾਲਟ ਬਰਾਊਜ਼ਰ ਬਣਾਓ + LeOSium ਨੂੰ ਆਪਣਾ ਡਿਫਾਲਟ ਬਰਾਊਜ਼ਰ ਬਣਾਓ ਨਿੱਜੀ ਬਰਾਊਜ਼ ਕਰਨ ਨੂੰ ਅਜ਼ਮਾਓ - ਛੋਟੇ ਜਿਹੇ ਸਰਵੇਖਣ ਦਾ ਹਿੱਸਾ ਬਣ ਕੇ Firefox ਨੂੰ ਬੇਹਤਰ ਬਣਾਉਣ ਲਈ ਮਦਦ ਕਰੋ। + ਛੋਟੇ ਜਿਹੇ ਸਰਵੇਖਣ ਦਾ ਹਿੱਸਾ ਬਣ ਕੇ LeOSium ਨੂੰ ਬੇਹਤਰ ਬਣਾਉਣ ਲਈ ਮਦਦ ਕਰੋ। ਸਰਵੇਖਣ ਭਰੋ @@ -1508,16 +1523,16 @@ ਕੋਡ ਸਕੈਨ ਕਰੋ - https://firefox.com/pair ‘ਤੇ ਜਾਓ]]> + https://firefox.com/pair ‘ਤੇ ਜਾਓ]]> ਸਕੈਨ ਕਰਨ ਲਈ ਤਿਆਰ ਆਪਣੇ ਕੈਮਰੇ ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ ਇਸ ਦੀ ਬਜਾਏ ਈਮੇਲ ਵਰਤੋਂ - - ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ Firefox ਸਿੰਕ ਕਰਨ ਲਈ ਬਣਾਓ।]]> - + + ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ LeOSium ਸਿੰਕ ਕਰਨ ਲਈ ਬਣਾਓ।]]> + %s ਤੁਹਾਡੇ ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਕਰਨਾ ਰੋਕ ਦੇਵੇਗਾ, ਪਰ ਇਸ ਡਿਵਾਈਸ ਉੱਤੇ ਤੁਹਾਡੇ ਬਰਾਊਜ਼ ਕੀਤੇ ਡਾਟੇ ਨੂੰ ਹਟਾਏਗਾ ਨਹੀਂ। ਡਿਸ-ਕਨੈਕਟ ਕਰੋ @@ -1533,7 +1548,7 @@ ਟਰੈਕ ਹੋਣ ਤੋਂ ਵਾਧਾ ਕੀਤੀ ਸੁਰੱਖਿਆ ਨਵੀਂ ਆਈ ਕੁੱਲ ਕੂਕੀ ਸੁਰੱਖਿਆ, ਅੰਤਰ-ਸਾਈਟ ਟਰੈਕਰਾਂ ਖ਼ਿਲਾਫ਼ ਸਾਡੀ ਸਭ ਤੋਂ ਮਜ਼ਬੂਤ ਢਾਲ ਹੈ। - + %s ਤੁਹਾਨੂੰ ਬਹੁਤੇ ਆਮ ਟਰੈਕਰਾਂ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਆਨਲਾਈਨ ਤੁਹਾਡਾ ਪਿੱਛਾ ਕਰਦੇ ਹਨ। ਹੋਰ ਸਿੱਖੋ @@ -1685,20 +1700,20 @@ ਮੁੱਖ ਸਕਰੀਨ ਉੱਤੇ ਸੌਖੀ ਤਰ੍ਹਾਂ ਜੋੜ ਸਕਦੇ ਹੋ। - ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ + ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ - ਪਾਸਵਰਡ + ਪਾਸਵਰਡ - ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਸੰਭਾਲੋ + ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਸੰਭਾਲੋ - ਪਾਸਵਰਡਾਂ ਨੂੰ ਸੰਭਾਲੋ + ਪਾਸਵਰਡਾਂ ਨੂੰ ਸੰਭਾਲੋ ਸੰਭਾਲਣ ਲਈ ਪੁੱਛੋ ਕਦੇ ਨਾ ਸੰਭਾਲੋ - + %1$s ਵਿੱਚ ਆਪੇ ਭਰੋ - + %1$s ਨੂੰ ਵਰਤਣ ਦੌਰਾਨ ਵੈਬਸਾਈਟਾਂ ਵਿੱਚ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਅਤੇ ਪਾਸਵਰਡ ਭਰੋ ਅਤੇ ਸੰਭਾਲੋ। ਹੋਰ ਐਪਾਂ ਵਿੱਚ ਆਪੇ ਭਰੋ @@ -1706,47 +1721,47 @@ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਹੋਰ ਐਪਾਂ ਵਿੱਚ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਅਤੇ ਪਾਸਵਰਡ ਭਰੋ। - ਲਾਗਇਨ ਜੋੜੋ + ਲਾਗਇਨ ਜੋੜੋ - ਪਾਸਵਰਡ ਜੋੜੋ + ਪਾਸਵਰਡ ਜੋੜੋ - - ਲਾਗਇਨ ਸਿੰਕ ਕਰੋ - ਪਾਸਵਰਡ ਸਿੰਕ ਕਰੋ + ਲਾਗਇਨ ਸਿੰਕ ਕਰੋ + + ਪਾਸਵਰਡ ਸਿੰਕ ਕਰੋ - ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਲਾਗਇਨਾਂ ਨੂੰ ਸਿੰਕ ਕਰੋ + ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਲਾਗਇਨਾਂ ਨੂੰ ਸਿੰਕ ਕਰੋ - ਪਾਸਵਰਡ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਸਿੰਕ ਕਰੋ + ਪਾਸਵਰਡ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਸਿੰਕ ਕਰੋ - ਸੰਭਾਲੇ ਹੋਏ ਲਾਗਇਨ + ਸੰਭਾਲੇ ਹੋਏ ਲਾਗਇਨ - ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ + ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ - ਤੁਹਾਡੇ ਵਲੋਂ ਸੰਭਾਲੇ ਲਾਗਇਨ ਜਾਂ %s ਨਾਲ ਸਿੰਕ ਕੀਤੇ ਇੱਥੇ ਵੇਖਾਏ ਜਾਣਗੇ। + ਤੁਹਾਡੇ ਵਲੋਂ ਸੰਭਾਲੇ ਲਾਗਇਨ ਜਾਂ %s ਨਾਲ ਸਿੰਕ ਕੀਤੇ ਇੱਥੇ ਵੇਖਾਏ ਜਾਣਗੇ। - ਤੁਹਾਡੇ ਵਲੋਂ %s ਵਿੱਚ ਸੰਭਾਲੇ ਜਾਂ ਸਿੰਕ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਇੱਥੇ ਦਿਖਾਇਆ ਜਾਵੇਗਾ। ਤੁਹਾਡੇ ਸਾਰੇ ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਇੰਕ੍ਰਿਪਟ ਕੀਤੇ ਹੁੰਦੇ ਹਨ। + ਤੁਹਾਡੇ ਵਲੋਂ %s ਵਿੱਚ ਸੰਭਾਲੇ ਜਾਂ ਸਿੰਕ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਇੱਥੇ ਦਿਖਾਇਆ ਜਾਵੇਗਾ। ਤੁਹਾਡੇ ਸਾਰੇ ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਇੰਕ੍ਰਿਪਟ ਕੀਤੇ ਹੁੰਦੇ ਹਨ। - ਸਿੰਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ। + ਸਿੰਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ। - ਸਿੰਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ + ਸਿੰਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ ਛੋਟਾਂ - ਨਾ ਸੰਭਾਲੇ ਹੋਏ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਇੱਥੇ ਸੰਭਾਲਿਆ ਜਾਵੇਗਾ। + ਨਾ ਸੰਭਾਲੇ ਹੋਏ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਇੱਥੇ ਸੰਭਾਲਿਆ ਜਾਵੇਗਾ। - %s ਇੱਥੇ ਦਿੱਤੀਆਂ ਹੋਈਆਂ ਸਾਈਟਾਂ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇਗਾ। + %s ਇੱਥੇ ਦਿੱਤੀਆਂ ਹੋਈਆਂ ਸਾਈਟਾਂ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇਗਾ। - ਇਹਨਾਂ ਸਾਈਟਾਂ ਲਈ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇ ਜਾਣਗੇ। + ਇਹਨਾਂ ਸਾਈਟਾਂ ਲਈ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇ ਜਾਣਗੇ। - %s ਇਹਨਾਂ ਸਾਈਟਾਂ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇਗਾ। + %s ਇਹਨਾਂ ਸਾਈਟਾਂ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਸੰਭਾਲੇਗਾ। ਸਾਰੀਆਂ ਛੋਟਾਂ ਹਟਾ ਦਿਓ - ਲਾਗਇਨ ਖੋਜੋ + ਲਾਗਇਨ ਖੋਜੋ - ਪਾਸਵਰਡ ਖੋਜੋ + ਪਾਸਵਰਡ ਖੋਜੋ ਸਾਈਟ @@ -1774,17 +1789,17 @@ ਪਾਸਵਰਡ ਲੁਕਾਓ - ਆਪਣੇ ਸੰਭਾਲੇ ਲਾਗਇਨ ਵੇਖਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ + ਆਪਣੇ ਸੰਭਾਲੇ ਲਾਗਇਨ ਵੇਖਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ - ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ ਵੇਖਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ + ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ ਵੇਖਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ - ਆਪਣੇ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਕਰੋ + ਆਪਣੇ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਕਰੋ - ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ + ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ - ਆਪਣੇ ਲਾਗਇਨਾਂ ਅਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਨੂੰ ਰੱਖਣ ਵਾਲੇ ਕਿਸੇ ਦੀ ਪਹੁੰਚ ਤੋਂ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈਟ ਅੱਪ ਕਰੋ। + ਆਪਣੇ ਲਾਗਇਨਾਂ ਅਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਨੂੰ ਰੱਖਣ ਵਾਲੇ ਕਿਸੇ ਦੀ ਪਹੁੰਚ ਤੋਂ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈਟ ਅੱਪ ਕਰੋ। - ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਕਿਸੇ ਹੋਰ ਵੱਲੋਂ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਚਾਉਣ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ। + ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਕਿਸੇ ਹੋਰ ਵੱਲੋਂ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਚਾਉਣ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ। ਬਾਅਦ \'ਚ @@ -1802,10 +1817,10 @@ ਆਖਰੀ ਵਰਤੋਂ - ਲਾਗਇਨ ਲੜੀਬਧ ਮੇਨੂ + ਲਾਗਇਨ ਲੜੀਬਧ ਮੇਨੂ - ਪਾਸਵਰਡ ਮੇਨੂ ਨੂੰ ਲੜੀਬੱਧ ਕਰੋ + ਪਾਸਵਰਡ ਮੇਨੂ ਨੂੰ ਲੜੀਬੱਧ ਕਰੋ @@ -1813,42 +1828,42 @@ ਸਿਰਨਾਵੇਂ - ਕਰੈਡਿਟ ਕਾਰਡ + ਕਰੈਡਿਟ ਕਾਰਡ - ਭੁਗਤਾਨ ਦੇ ਢੰਗ + ਭੁਗਤਾਨ ਦੇ ਢੰਗ - ਕਾਰਡ ਸੰਭਾਲੋ ਅਤੇ ਆਪਣੇ-ਆਪ ਭਰੋ + ਕਾਰਡ ਸੰਭਾਲੋ ਅਤੇ ਆਪਣੇ-ਆਪ ਭਰੋ - ਭੁਗਤਾਨ ਦੇ ਢੰਗ ਸੰਭਾਲੋ ਅਤੇ ਭਰੋ + ਭੁਗਤਾਨ ਦੇ ਢੰਗ ਸੰਭਾਲੋ ਅਤੇ ਭਰੋ - ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਹੈ + ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਹੈ - %s ਤੁਹਾਡੇ ਵਲੋਂ ਸੰਭਾਲੇ ਸਾਰੇ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ + %s ਤੁਹਾਡੇ ਵਲੋਂ ਸੰਭਾਲੇ ਸਾਰੇ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਕਾਰਡਾਂ ਨੂੰ ਸਿੰਕ ਕਰੋ ਕਾਰਡ ਸਿੰਕ ਕਰੋ - ਕਰੈਡਿਟ ਕਾਰਡ ਜੋੜੋ + ਕਰੈਡਿਟ ਕਾਰਡ ਜੋੜੋ - ਕਾਰਡ ਜੋੜੋ + ਕਾਰਡ ਜੋੜੋ - ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ + ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ - ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ + ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ ਸਿਰਨਾਵਾਂ ਜੋੜੋ ਸਿਰਨਾਵਿਆਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ - ਸਿਰਨਾਵੇਂ ਸੰਭਾਲੋ ਅਤੇ ਆਪਣੇ-ਆਪ ਭਰੋ + ਸਿਰਨਾਵੇਂ ਸੰਭਾਲੋ ਅਤੇ ਆਪਣੇ-ਆਪ ਭਰੋ - ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਸੰਭਾਲੋ ਅਤੇ ਭਰੋ + ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਸੰਭਾਲੋ ਅਤੇ ਭਰੋ - ਨੰਬਰ, ਈਮੇਲ ਅਤੇ ਭੇਜਣ ਵਾਲੇ ਸਿਰਨਾਵਿਆਂ ਸਮੇਤ ਜਾਣਕਾਰੀ + ਨੰਬਰ, ਈਮੇਲ ਅਤੇ ਭੇਜਣ ਵਾਲੇ ਸਿਰਨਾਵਿਆਂ ਸਮੇਤ ਜਾਣਕਾਰੀ - ਫ਼ੋਨ ਨੰਬਰਾਂ ਅਤੇ ਈਮੇਲ ਸਿਰਨਾਵਿਆਂ ਸਮੇਤ + ਫ਼ੋਨ ਨੰਬਰਾਂ ਅਤੇ ਈਮੇਲ ਸਿਰਨਾਵਿਆਂ ਸਮੇਤ ਕਾਰਡ ਜੋੜੋ @@ -1869,9 +1884,9 @@ ਕਾਰਡ ਨੂੰ ਹਟਾਓ - ਕੀ ਤੁਸੀਂ ਇਹ ਕਰੈਡਿਟ ਕਾਰਡ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? + ਕੀ ਤੁਸੀਂ ਇਹ ਕਰੈਡਿਟ ਕਾਰਡ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? - ਕਾਰਡ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? + ਕਾਰਡ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? ਹਟਾਓ @@ -1885,24 +1900,24 @@ ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡ - ਵਾਜਬ ਕਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ ਦਿਓ ਜੀ + ਵਾਜਬ ਕਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ ਦਿਓ ਜੀ - ਵਾਜਬ ਕਾਰਡ ਨੰਬਰ ਭਰੋ + ਵਾਜਬ ਕਾਰਡ ਨੰਬਰ ਭਰੋ - ਇਹ ਖੇਤਰ ਭਰੋ + ਇਹ ਖੇਤਰ ਭਰੋ - ਨਾਂ ਜੋੜੋ + ਨਾਂ ਜੋੜੋ ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡ ਵੇਖਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ - ਆਪਣੇ ਕਰੈਡਿਟ ਕਾਰਡ ਸੁਰੱਖਿਅਤ ਕਰੋ + ਆਪਣੇ ਕਰੈਡਿਟ ਕਾਰਡ ਸੁਰੱਖਿਅਤ ਕਰੋ - ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ + ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ - ਆਪਣੀ ਡਿਵਾਇਸ ਲਈ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ, ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ ਤਾਂ ਜੋ ਕਿਸੇ ਹੋਰ ਹੱਥ ਤੁਹਾਡਾ ਡਿਵਾਇਸ ਹੋਣ ਉੱਤੇ ਤੁਹਾਡੇ ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਰਹਿਣ। + ਆਪਣੀ ਡਿਵਾਇਸ ਲਈ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ, ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ ਤਾਂ ਜੋ ਕਿਸੇ ਹੋਰ ਹੱਥ ਤੁਹਾਡਾ ਡਿਵਾਇਸ ਹੋਣ ਉੱਤੇ ਤੁਹਾਡੇ ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਰਹਿਣ। - ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ ਢੰਗਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਕਿਸੇ ਹੋਰ ਵੱਲੋਂ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਚਾਉਣ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ। + ਆਪਣੇ ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ ਢੰਗਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਕਿਸੇ ਹੋਰ ਵੱਲੋਂ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਚਾਉਣ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਡਿਵਾਈਸ ਲਾਕ ਪੈਟਰਨ, ਪਿੰਨ ਜਾਂ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ। ਹੁਣੇ ਸੈਟ ਅੱਪ ਕਰੋ @@ -1910,10 +1925,10 @@ ਆਪਣਾ ਡਿਵਾਇਸ ਅਣ-ਲਾਕ ਕਰੋ - ਸੰਭਾਲੀ ਕਰੈਡਿਟ ਕਾਰਡ ਜਾਣਕਾਰੀ ਵਰਤਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ + ਸੰਭਾਲੀ ਕਰੈਡਿਟ ਕਾਰਡ ਜਾਣਕਾਰੀ ਵਰਤਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ - ਸੰਭਾਲੇ ਹੋਏ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਵਰਤਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ + ਸੰਭਾਲੇ ਹੋਏ ਭੁਗਤਾਨ ਢੰਗਾਂ ਨੂੰ ਵਰਤਣ ਲਈ ਅਣ-ਲਾਕ ਕਰੋ ਸਿਰਨਾਵਾਂ ਜੋੜੋ @@ -1921,11 +1936,13 @@ ਸਿਰਨਾਵਿਆਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ - ਨਾਂ ਦਾ ਪਹਿਲਾਂ ਹਿੱਸਾ + ਨਾਂ ਦਾ ਪਹਿਲਾਂ ਹਿੱਸਾ - ਮੱਧ ਨਾਂ + ਮੱਧ ਨਾਂ - ਨਾਂ ਦਾ ਆਖਰੀ ਹਿੱਸਾ + ਨਾਂ ਦਾ ਆਖਰੀ ਹਿੱਸਾ + + ਨਾਂ ਸੜਕ ਸਿਰਨਾਵਾਂ @@ -1950,9 +1967,9 @@ ਸਿਰਨਾਵੇਂ ਨੂੰ ਹਟਾਓ - ਕੀ ਤੁਸੀਂ ਇਹ ਸਿਰਨਾਵੇਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? + ਕੀ ਤੁਸੀਂ ਇਹ ਸਿਰਨਾਵੇਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? - ਇਹ ਸਿਰਨਾਵੇਂ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? + ਇਹ ਸਿਰਨਾਵੇਂ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? ਹਟਾਓ @@ -2050,50 +2067,50 @@ ਸੋਧੋ - ਕੀ ਤੁਸੀਂ ਇਹ ਲਾਗਇਨ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? + ਕੀ ਤੁਸੀਂ ਇਹ ਲਾਗਇਨ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? - ਕੀ ਤੁਸੀਂ ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? + ਕੀ ਤੁਸੀਂ ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਹਟਾਓ ਰੱਦ ਕਰੋ - ਲਾਗਇਨ ਚੋਣਾਂ + ਲਾਗਇਨ ਚੋਣਾਂ - ਪਾਸਵਰਡ ਚੋਣਾਂ + ਪਾਸਵਰਡ ਚੋਣਾਂ - ਲਾਗਇਨ ਦੇ ਵੈੱਬ ਐਡਰੈਸ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। + ਲਾਗਇਨ ਦੇ ਵੈੱਬ ਐਡਰੈਸ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। - ਵੈੱਬਸਾਈਟ ਸਿਰਨਾਵਿਆਂ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। + ਵੈੱਬਸਾਈਟ ਸਿਰਨਾਵਿਆਂ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। - ਲਾਗਇਨ ਦੇ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। + ਲਾਗਇਨ ਦੇ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। - ਵਰਤੋਂਕਾਰ-ਨਾਂ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। + ਵਰਤੋਂਕਾਰ-ਨਾਂ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। - ਲਾਗਇਨ ਦੇ ਪਾਸਵਰਡ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। + ਲਾਗਇਨ ਦੇ ਪਾਸਵਰਡ ਲਈ ਸੋਧਣਯੋਗ ਲਿਖਤ ਖੇਤਰ ਹੈ। - ਪਾਸਵਰਡ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। + ਪਾਸਵਰਡ ਲਈ ਸੋਧ ਕਰਨ ਯੋਗ ਲਿਖਤ ਖੇਤਰ। - ਤਬਦੀਲੀਆਂ ਨੂੰ ਲਾਗਇਨ ਲਈ ਸੰਭਾਲੋ। + ਤਬਦੀਲੀਆਂ ਨੂੰ ਲਾਗਇਨ ਲਈ ਸੰਭਾਲੋ। - ਤਬਦੀਲੀਆਂ ਨੂੰ ਸੰਭਾਲੋ। + ਤਬਦੀਲੀਆਂ ਨੂੰ ਸੰਭਾਲੋ। - ਸੋਧੋ + ਸੋਧੋ - ਪਾਸਵਰਡ ਨੂੰ ਸੋਧੋ + ਪਾਸਵਰਡ ਨੂੰ ਸੋਧੋ - ਨਵਾਂ ਲਾਗਇਨ ਜੋੜੋ + ਨਵਾਂ ਲਾਗਇਨ ਜੋੜੋ - ਪਾਸਵਰਡ ਜੋੜੋ + ਪਾਸਵਰਡ ਜੋੜੋ - ਪਾਸਵਰਡ ਚਾਹੀਦਾ ਹੈ + ਪਾਸਵਰਡ ਚਾਹੀਦਾ ਹੈ - ਪਾਸਵਰਡ ਦਿਓ + ਪਾਸਵਰਡ ਦਿਓ - ਵਰਤੋਂਕਾਰ-ਨਾਂ ਚਾਹੀਦਾ ਹੈ + ਵਰਤੋਂਕਾਰ-ਨਾਂ ਚਾਹੀਦਾ ਹੈ - ਵਰਤੋਂਕਾਰ-ਨਾਂ ਦਿਓ + ਵਰਤੋਂਕਾਰ-ਨਾਂ ਦਿਓ ਹੋਸਟ-ਨਾਂ ਚਾਹੀਦਾ ਹੈ @@ -2117,13 +2134,13 @@ ਹੋਰ ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ। ਮੁੜ-ਪ੍ਰਮਾਣਿਤ ਕਰੋ। - + ਟੈਬ ਨੂੰ ਸਿੰਕ ਕਰਨਾ ਸਮਰੱਥ ਕਰੋ। - ਤੁਹਾਡੇ ਹੋਰ ਡਿਵਾਈਸ ਉੱਤੇ Firefox ਵਿੱਚ ਕੋਈ ਵੀ ਖੋਲ੍ਹੀ ਹੋਈ ਟੈਬ ਨਹੀਂ ਹੈ। - + ਤੁਹਾਡੇ ਹੋਰ ਡਿਵਾਈਸ ਉੱਤੇ LeOSium ਵਿੱਚ ਕੋਈ ਵੀ ਖੋਲ੍ਹੀ ਹੋਈ ਟੈਬ ਨਹੀਂ ਹੈ। + ਤੁਹਾਡੇ ਹੋਰ ਡਿਵਾਈਸਾਂ ਤੋਂ ਟੈਬਾਂ ਦੀ ਸੂਚੀ ਵੇਖੋ। - + ਸਿੰਕ ਕਰਨ ਲਈ ਸਾਈਨ ਇਨ ਕਰੋ @@ -2175,7 +2192,7 @@ ਇੱਕ ਮਹੀਨੇ ਬਾਅਦ ਆਪੇ ਬੰਦ ਕਰਨਾ ਹੈ? - Firefox ਉਹਨਾਂ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਨਾਂ ਨੂੰ ਤੁਸੀਂ ਪਿਛਲੇ ਮਹੀਨੇ ਭਰ ਤੋਂ ਨਹੀਂ ਵੇਖਿਆ ਹੈ। + LeOSium ਉਹਨਾਂ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਨਾਂ ਨੂੰ ਤੁਸੀਂ ਪਿਛਲੇ ਮਹੀਨੇ ਭਰ ਤੋਂ ਨਹੀਂ ਵੇਖਿਆ ਹੈ। ਆਪੇ-ਬੰਦ ਕਰਨ ਨੂੰ ਚਾਲੂ ਕਰੋ @@ -2183,8 +2200,8 @@ ਆਪੇ ਬੰਦ ਕਰਨਾ ਸਮਰੱਥ ਹੈ - - Firefox ਸੁਝਾਅ + + LeOSium ਸੁਝਾਅ Google ਖੋਜ @@ -2195,7 +2212,7 @@ ਆਪਣੇ ਮੂਲ ਬਰਾਊਜ਼ਰ ਨੂੰ ਬਦਲੋ - ਵੈੱਬਸਾਈਟਾਂ, ਈਮੇਲਾਂ ਅਤੇ ਸੁਨੇਹਿਆਂ ਨੂੰ Firefox ਵਿੱਚ ਆਪਣੇ ਖੋਲ੍ਹਣ ਲਈ ਲਿੰਕ ਸੈੱਟ ਕਰੋ। + ਵੈੱਬਸਾਈਟਾਂ, ਈਮੇਲਾਂ ਅਤੇ ਸੁਨੇਹਿਆਂ ਨੂੰ LeOSium ਵਿੱਚ ਆਪਣੇ ਖੋਲ੍ਹਣ ਲਈ ਲਿੰਕ ਸੈੱਟ ਕਰੋ। ਹਟਾਓ @@ -2204,7 +2221,7 @@ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਕਲਿੱਕ ਕਰੋ - ਉੱਤੇ ਜਾਓ + ਉੱਤੇ ਜਾਓ ਬੰਦ ਕਰੋ @@ -2219,7 +2236,7 @@ %s ਦੀ ਸਹਾਇਤਾ ਨਾਲ - Firefox ਪਰਿਵਾਰ ਦਾ ਹਿੱਸਾ। %s + LeOSium ਪਰਿਵਾਰ ਦਾ ਹਿੱਸਾ। %s ਹੋਰ ਜਾਣੋ @@ -2244,8 +2261,6 @@ ਇਹ ਰੀਵਿਊ ਕਿੰਨੇ ਭਰੋਸੇਯੋਗ ਹਨ? ਅਡਜੱਸਟ ਕੀਤੀ ਰੇਟਿੰਗ - - ਗ਼ੈਰ-ਭਰੋਸੇਯੋਗ ਰੀਵਿਊ ਹਟਾਏ ਭਰੋਸੇਯੋਗ ਰੀਵਿਊਆਂ ਉੱਤੇ ਅਧਾਰਿਤ @@ -2303,10 +2318,6 @@ ਜੇ ਤੁਹਾਨੂੰ ਉਹ ਉਤਪਾਦ ਵਾਪਸ ਸਟਾਕ ਵਿੱਚ ਮਿਲੇ ਤਾਂ ਸਾਨੂੰ ਇਸ ਬਾਰੇ ਦੱਸਿਓ ਅਤੇ ਅਸੀਂ ਰੀਵਿਊ ਦੀ ਜਾਂਚ ਕਰਾਂਗੇ। ਉਤਪਾਦ ਸਟਾਕ ਵਿੱਚ ਹੋਣ ਦੀ ਰਿਪੋਰਟ ਕਰੋ - - ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ - - ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ (%s) @@ -2343,22 +2354,28 @@ ਰੀਵਿਊ ਕੁਆਲਟੀ ਦੀ ਜਾਂਚ ਕਰੋ ਉਤਪਾਦ ਰੀਵਿਊ ਲਈ ਸਾਡੀ ਭਰੋਸੇਯੋਗ ਗਾਈਡ ਨੂੰ ਅਜ਼ਮਾਓ - + ਖਰੀਦਣ ਤੋਂ ਪਹਿਲਾਂ ਵੇਖੋ ਕਿ %1$s ਉੱਤੇ ਉਤਪਾਦ ਰੀਵਿਊ ਕਿੰਨੇ ਭਰੋਸੇਯੋਗ ਹਨ। ਰੀਵਿਊ ਚੈਕਰ, %2$s ਵਲੋਂ ਹਾਲੇ ਤਜਰਬੇ ਅਧੀਨ ਫ਼ੀਚਰ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਮੌਜੂਦ ਹੈ। ਇਹ %3$s ਅਤੇ %4$s ਨਾਲ ਵੀ ਕੰਮ ਕਰਦਾ ਹੈ। - + ਖਰੀਦਣ ਤੋਂ ਪਹਿਲਾਂ ਵੇਖੋ ਕਿ %1$s ਉੱਤੇ ਉਤਪਾਦ ਰੀਵਿਊ ਕਿੰਨੇ ਭਰੋਸੇਯੋਗ ਹਨ। ਰੀਵਿਊ ਚੈਕਰ, %2$s ਵਲੋਂ ਹਾਲੇ ਤਜਰਬੇ ਅਧੀਨ ਫ਼ੀਚਰ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਮੌਜੂਦ ਹੈ। Mozilla ਵਲੋਂ %1$s ਦੇ ਰਾਹੀਂ ਅਸੀਂ ਤੁਹਾਨੂੰ ਪੱਖਪਾਤੀ ਅਤੇ ਗ਼ੈਰ-ਪ੍ਰਮਾਣਿਤ ਰੀਵਿਊਆਂ ਤੋਂ ਬਚਾਅ ਸਕਦੇ ਹਾਂ। ਸਾਡਾ AI ਮਾਡਲ ਤੁਹਾਨੂੰ ਖਰੀਦਦਾਰੀ ਕਰਨ ਦੌਰਾਨ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਹਮੇਸ਼ਾਂ ਸੁਧਾਰ ਕਰ ਰਿਹਾ ਹੈ। %2$s ਹੋਰ ਜਾਣੋ - “ਹਾਂ, ਇਸ ਨੂੰ ਅਜ਼ਮਾਓ” ਚੁਣ ਕੇ ਤੁਸੀਂ Mozilla ਵਲੋਂ %1$s ਦੀ %2$s ਅਤੇ %3$s ਲਈ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ। + “ਹਾਂ, ਇਸ ਨੂੰ ਅਜ਼ਮਾਓ” ਚੁਣ ਕੇ ਤੁਸੀਂ Mozilla ਵਲੋਂ %1$s ਦੀ %2$s ਅਤੇ %3$s ਲਈ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ। “ਹਾਂ, ਇਸ ਨੂੰ ਅਜ਼ਮਾਓ” ਨੂੰ ਚੁਣ ਕੇ ਤੁਸੀਂ %1$s ਤੋਂ ਹੇਠ ਦਿੱਤਿਆਂ ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ: + + “ਹਾਂ, ਇਸ ਨੂੰ ਅਜ਼ਮਾਓ” ਚੁਣ ਕੇ ਤੁਸੀਂ %1$s ਦੀ %2$s ਅਤੇ %3$s ਦੀ %4$s ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ। + + “ਹਾਂ, ਇਸ ਨੂੰ ਅਜ਼ਮਾਓ” ਚੁਣ ਕੇ ਤੁਸੀਂ %1$s ਦੀ %2$s ਅਤੇ %3$s ਦੀ %4$s ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ। - ਪਰਦੇਦਾਰੀ ਨੀਤੀ + ਪਰਦੇਦਾਰੀ ਨੀਤੀ ਪਰਦੇਦਾਰੀ ਨੀਤੀ + + ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ ਵਰਤਣ ਲਈ ਸ਼ਰਤਾਂ @@ -2415,7 +2432,7 @@ ਇਹ ਭੰਡਾਰ ਬਾਰੇ ਹੋਰ ਸਿੱਖਣ ਲਈ ਲਿੰਕ ਖੋਲ੍ਹੋ ਲੇਖ ਨੂੰ ਪੜ੍ਹੋ - + ਹੋਰ ਜਾਣਨ ਲਈ ਲਿੰਕ ਨੂੰ ਖੋਲ੍ਹੋ %s, ਹੈਡਿੰਗ @@ -2430,11 +2447,15 @@ ਇਹ ਸਫ਼ੇ ਦਾ ਉਲੱਥਾ ਕਰਨਾ ਹੈ? + + ਸਫ਼ੇ ਦਾ %1$s ਤੋਂ %2$s ਵਿੱਚ ਅਨੁਵਾਦ ਕੀਤਾ %1$s ਵਿੱਚ ਪ੍ਰਾਈਵੇਟ ਉਲੱਥਾ ਅਜ਼ਮਾਓ ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਲਈ ਉਲੱਥਾ ਕਦੇ ਵੀ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦਾ ਹੈ। ਨਵੀਆਂ ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਸੁਧਾਰ ਛੇਤੀ ਆ ਰਹੇ ਹਨ! %1$s - + ਹੋਰ ਜਾਣੋ ਇਸ ਤੋਂ ਉਲੱਥਾ ਕਰੋ @@ -2442,6 +2463,8 @@ ਇਸ ਵਿੱਚ ਉਲੱਥਾ ਕਰੋ ਹਾਲੇ ਨਹੀਂ + + ਅਸਲ ਵੇਖਾਓ ਮੁਕੰਮਲ @@ -2464,6 +2487,16 @@ ਹੋਰ ਜਾਣੋ + + …ਉਲੱਥਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ + + + ਡਾਟਾ ਬੱਚਤ ਮੋਡ ਵਿੱਚ ਭਾਸ਼ਾ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਹੈ (%1$s)? + + ਉਲੱਥੇ ਲਈ ਚੋਣਾਂ diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml index 36245c9b..a752c784 100644 --- a/app/src/main/res/values-pa-rPK/strings.xml +++ b/app/src/main/res/values-pa-rPK/strings.xml @@ -71,7 +71,7 @@ ایس ڈوائیس اُتے کوئی پیڑھاں نہ چھڈو جدوں وی آپݨیاں نجی ٹیباں نوں بند کردے او تاں %1$s تہاڈے کوکیاں، تاریخ تے سائیٹ ڈیٹے نوں ہٹا دندا اے۔ %2$s @@ -340,17 +340,17 @@ جدوں تسیں ڈوائیساں وچالے تبادلا کرو تاں انکرپٹ رہو + Note: The word "LeOSium" should NOT be translated --> جدوں تسیں سائین ان تے سِنک کردے ہو تاں تسیں ودھ سرکھیت ہندے او۔ فائرفاکس تہاڈے پاس‌ورداں، بُک‌مارکاں تے ہورناں نوں انکرپٹ کردا اے۔ سائین ان کرو ہݨے نہیں + Note: The word "LeOSium" should NOT be translated --> نوٹیفکیشن فائیرفاکس نال تہانوں سرکھیت رہݨ لئی مدد کردے ہن + Note: The word "LeOSium" should NOT be translated --> ٹیباں نوں سرکھیت روپ وچ آپݨے ڈوائیساں اُتے بھیجو تے فائرفاکس وچ ہور پردے داری فیچراں بارے جاݨوں۔ اطلاع نامے چالو کرو @@ -358,14 +358,14 @@ ہݨے نہیں + Note: The word "LeOSium" should NOT be translated --> فائرفاکس کھوج وجیٹ ازماؤ + Note: The word "LeOSium" should NOT be translated --> تہاڈی مکھ سکرین اُتے فائرفاکس نال تسیں پرائیویسی ادھارت براؤزر نوں سوکھی طرح ورت سکدے او، جو کہ انتر سائیٹ ٹریکراں اُتے پابندی لاوندا اے۔ + Note: The word "LeOSium" should NOT be translated --> فائرفاکس وجیٹ جوڑو ہݨے نہیں @@ -408,9 +408,9 @@ کھوجݨ والیاں انجݨاں توں سجھاؤ سرناواں پٹی لئی ترجیحاں - + سرناواں پٹی – فائرفاکس سجھاؤ - + فائرفاکس سجھاؤ بارے پور جاݨو ایپ دکان تے درجہ دیو diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2e00c6b8..6576adda 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -72,7 +72,7 @@ Nie zostawiaj śladów na tym urządzeniu %1$s usuwa Twoje ciasteczka, historię i dane witryn po zamknięciu wszystkich prywatnych kart. %2$s Przetłumacz stronę + + Język oryginalnej strony: %1$s, język tłumaczenia: %2$s. + Wybrany język @@ -332,12 +337,22 @@ Zasady ochrony prywatności Firefoksa - + + Więcej informacji znajdziesz w naszych zasadach ochrony prywatności Uwielbiamy zapewniać Ci bezpieczeństwo + + Dowiedz się, dlaczego miliony kochają Firefoksa + + Bezpieczne przeglądanie i większy wybór Nasza przeglądarka wspierana przez organizację non-profit pomaga powstrzymywać firmy przed potajemnym śledzeniem Cię w Internecie. + Ponad 100 milionów osób chroni swoją prywatność, wybierając przeglądarkę wspieraną przez organizację non-profit. + + Znane elementy śledzące? Blokowane automatycznie. Rozszerzenia? Wypróbuj wszystkie 700. PDF-y? Nasz wbudowany czytnik ułatwia zarządzanie nimi. + Nasza przeglądarka wspierana przez organizację non-profit pomaga powstrzymywać firmy przed potajemnym śledzeniem Cię w Internecie.\n\nWięcej informacji znajdziesz w naszych zasadach ochrony prywatności. @@ -349,18 +364,18 @@ Nie trać szyfrowania podczas przełączania się między urządzeniami - Zalogowanie i zsynchronizowanie zwiększa Twoje bezpieczeństwo. Firefox szyfruje hasła, zakładki i nie tylko. + Note: The word "LeOSium" should NOT be translated --> + Zalogowanie i zsynchronizowanie zwiększa Twoje bezpieczeństwo. LeOSium szyfruje hasła, zakładki i nie tylko. Zaloguj się Nie teraz + Note: The word "LeOSium" should NOT be translated --> Powiadomienia pomogą Ci zachować bezpieczeństwo z Firefoksem + Note: The word "LeOSium" should NOT be translated --> Bezpiecznie przesyłaj karty między urządzeniami i odkrywaj inne funkcje chroniące prywatność w Firefoksie. Włącz powiadomienia @@ -368,13 +383,13 @@ Nie teraz + Note: The word "LeOSium" should NOT be translated --> Wypróbuj widżet wyszukiwania Firefoksa + Note: The word "LeOSium" should NOT be translated --> Dzięki Firefoksowi na ekranie głównym będziesz mieć łatwy dostęp do przeglądarki dbającej o prywatność, która blokuje elementy śledzące między witrynami. + Note: The word "LeOSium" should NOT be translated --> Dodaj widżet Firefoksa Nie teraz @@ -415,9 +430,9 @@ Podpowiedzi wyszukiwarek Preferencje paska adresu - + Pasek adresu – podpowiedzi Firefoksa - + Więcej informacji o podpowiedziach Firefoksa Oceń w Google Play @@ -557,15 +572,15 @@ Automatyczne uzupełnianie adresów - + Podpowiedzi sponsorów - Wspieraj przeglądarkę %1$s, od czasu do czasu wyświetlając sponsorowane podpowiedzi - Podpowiedzi przeglądarki %1$s - + Otrzymuj podpowiedzi z Internetu związane z wyszukiwanymi słowami Otwieranie odnośników w aplikacjach @@ -647,7 +662,7 @@ Więcej informacji - + Klasyczny %s Seria artystów @@ -665,7 +680,7 @@ Dostępne są nowe dodatki - + Wypróbuj ponad 100 nowych rozszerzeń, dzięki którym możesz dostosować Firefoksa do swoich potrzeb. Przeglądaj dodatki @@ -695,9 +710,9 @@ Zakładki - Dane logowania + Dane logowania - Hasła + Hasła Otwarte karty @@ -725,9 +740,9 @@ %1$s na urządzeniu %2$s %3$s - Karty płatnicze + Karty płatnicze - Metody płatności + Metody płatności Adresy @@ -916,7 +931,7 @@ Usuń Aktywne - + %1$s może od czasu do czasu instalować i przeprowadzać badania. Więcej informacji @@ -1321,7 +1336,7 @@ - Firefox jest szybki i prywatny + LeOSium jest szybki i prywatny Ustaw Firefoksa jako domyślną przeglądarkę @@ -1502,9 +1517,9 @@ Zaloguj się za pomocą aparatu Użyj adresu e-mail - + Utwórz je, aby synchronizować Firefoksa między urządzeniami.]]> - + %s zatrzyma synchronizację z tym kontem, ale nie usunie danych przeglądania na tym urządzeniu. Rozłącz @@ -1521,7 +1536,7 @@ Wzmocniona ochrona przed śledzeniem Teraz zawiera całkowitą ochronę ciasteczek, naszą najsilniejszą jak dotąd barierę przed elementami śledzącymi między witrynami. - + %s chroni Cię przed wieloma najpopularniejszymi elementami śledzącymi, które monitorują, co robisz w Internecie. Więcej informacji @@ -1672,20 +1687,20 @@ Można łatwo dodać tę stronę do ekranu głównego urządzenia, aby mieć do niej bezpośredni dostęp i używać jej jak aplikację. - Dane logowania i hasła + Dane logowania i hasła - Hasła + Hasła - Zachowywanie danych logowania i haseł + Zachowywanie danych logowania i haseł - Zachowywanie haseł + Zachowywanie haseł Pytanie o zachowanie Wyłączenie zachowywania - + Automatyczne wypełnianie w przeglądarce %1$s - + Wypełnia i zachowuje nazwy użytkowników i hasła na stronach podczas korzystania z przeglądarki %1$s. Automatyczne wypełnianie w innych aplikacjach @@ -1693,47 +1708,47 @@ Wypełnia nazwy użytkowników i hasła w innych aplikacjach na urządzeniu. - Dodaj dane logowania + Dodaj dane logowania - Dodaj hasło + Dodaj hasło - - Synchronizowanie danych logowania - Synchronizowanie haseł + Synchronizowanie danych logowania + + Synchronizowanie haseł - Synchronizuj dane logowania między urządzeniami + Synchronizuj dane logowania między urządzeniami - Synchronizuj hasła między urządzeniami + Synchronizuj hasła między urządzeniami - Zachowane dane logowania + Zachowane dane logowania - Zachowane hasła + Zachowane hasła - Zachowane lub synchronizowane z przeglądarką %s dane logowania będą wyświetlane w tym miejscu. + Zachowane lub synchronizowane z przeglądarką %s dane logowania będą wyświetlane w tym miejscu. - Tutaj będą wyświetlane hasła zachowane lub synchronizowane w przeglądarce %s. Wszystkie zachowywane hasła są zaszyfrowane. + Tutaj będą wyświetlane hasła zachowane lub synchronizowane w przeglądarce %s. Wszystkie zachowywane hasła są zaszyfrowane. - Więcej informacji o synchronizacji. + Więcej informacji o synchronizacji. - Więcej informacji o synchronizacji + Więcej informacji o synchronizacji Wyjątki - Tutaj będą wyświetlane dane logowania i hasła, które nie będą zachowywane. + Tutaj będą wyświetlane dane logowania i hasła, które nie będą zachowywane. - %s nie będzie zachowywać haseł do wymienionych tutaj witryn. + %s nie będzie zachowywać haseł do wymienionych tutaj witryn. - Dane logowania i hasła dla tych witryn nie będą zachowywane. + Dane logowania i hasła dla tych witryn nie będą zachowywane. - %s nie będzie zachowywać haseł do tych witryn. + %s nie będzie zachowywać haseł do tych witryn. Usuń wszystkie wyjątki - Szukaj danych logowania + Szukaj danych logowania - Szukaj haseł + Szukaj haseł Witryna @@ -1761,17 +1776,17 @@ Ukryj hasło - Odblokuj, aby wyświetlić zachowane dane logowania + Odblokuj, aby wyświetlić zachowane dane logowania - Odblokuj, aby wyświetlić zachowane hasła + Odblokuj, aby wyświetlić zachowane hasła - Zabezpiecz dane logowania i hasła + Zabezpiecz dane logowania i hasła - Zabezpiecz zachowane hasła + Zabezpiecz zachowane hasła - Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane dane logowania i hasła w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. + Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane dane logowania i hasła w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. - Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane hasła w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. + Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane hasła w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. Później @@ -1788,10 +1803,10 @@ Ostatnie użycie - Menu sortowania danych logowania + Menu sortowania danych logowania - Menu sortowania haseł + Menu sortowania haseł @@ -1799,45 +1814,45 @@ Adresy - Karty płatnicze + Karty płatnicze - Metody płatności + Metody płatności - Zachowywanie i automatyczne wypełnianie kart + Zachowywanie i automatyczne wypełnianie kart - Zachowywanie i wypełnianie metod płatności + Zachowywanie i wypełnianie metod płatności - Dane są zaszyfrowane + Dane są zaszyfrowane - %s szyfruje wszystkie zachowywane metody płatności + %s szyfruje wszystkie zachowywane metody płatności Synchronizuj karty między urządzeniami Synchronizuj karty - Dodaj kartę płatniczą + Dodaj kartę płatniczą - Dodaj kartę + Dodaj kartę - Zarządzaj zachowanymi kartami + Zarządzaj zachowanymi kartami - Zarządzaj kartami + Zarządzaj kartami Dodaj adres Zarządzaj adresami - Zachowywanie i automatyczne wypełnianie adresów + Zachowywanie i automatyczne wypełnianie adresów - Zachowywanie i wypełnianie adresów + Zachowywanie i wypełnianie adresów - Zawiera informacje takie jak numery, adresy e-mail i adresy wysyłki + Zawiera informacje takie jak numery, adresy e-mail i adresy wysyłki - W tym numery telefonów i adresy e-mail + W tym numery telefonów i adresy e-mail Dodaj kartę @@ -1858,9 +1873,9 @@ Usuń kartę - Czy na pewno usunąć tę kartę płatniczą? + Czy na pewno usunąć tę kartę płatniczą? - Czy usunąć kartę? + Czy usunąć kartę? Usuń @@ -1873,24 +1888,24 @@ Zachowane karty - Wprowadź prawidłowy numer karty płatniczej + Wprowadź prawidłowy numer karty płatniczej - Podaj prawidłowy numer karty + Podaj prawidłowy numer karty - Wypełnij to pole + Wypełnij to pole - Dodaj imię i nazwisko + Dodaj imię i nazwisko Odblokuj, aby wyświetlić zachowane karty - Zabezpiecz karty płatnicze + Zabezpiecz karty płatnicze - Zabezpiecz zachowane metody płatności + Zabezpiecz zachowane metody płatności - Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane karty płatnicze w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. + Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane karty płatnicze w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. - Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane metody płatności w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. + Skonfiguruj wzór blokady, kod PIN lub hasło, aby ochronić zachowane metody płatności w przypadku, gdy ktoś inny uzyska dostęp do urządzenia. Skonfiguruj teraz @@ -1899,10 +1914,10 @@ Odblokuj urządzenie - Odblokuj, aby użyć przechowywanych informacji o kartach płatniczych + Odblokuj, aby użyć przechowywanych informacji o kartach płatniczych - Odblokuj, aby użyć zachowanych metod płatności + Odblokuj, aby użyć zachowanych metod płatności Dodaj adres @@ -1910,11 +1925,13 @@ Zarządzaj adresami - Imię + Imię - Drugie imię + Drugie imię - Nazwisko + Nazwisko + + Imię i nazwisko Adres @@ -1938,9 +1955,9 @@ Usuń adres - Czy na pewno usunąć ten adres? + Czy na pewno usunąć ten adres? - Czy usunąć ten adres? + Czy usunąć ten adres? Usuń @@ -2038,49 +2055,49 @@ Edytuj - Czy na pewno usunąć te dane logowania? + Czy na pewno usunąć te dane logowania? - Czy na pewno usunąć to hasło? + Czy na pewno usunąć to hasło? Usuń Anuluj - Opcje danych logowania + Opcje danych logowania - Opcje haseł + Opcje haseł - Edytowalne pole tekstowe dla adresu witryny danych logowania. + Edytowalne pole tekstowe dla adresu witryny danych logowania. - Edytowalne pole tekstowe dla adresu witryny. + Edytowalne pole tekstowe dla adresu witryny. - Edytowalne pole tekstowe dla nazwy użytkownika danych logowania. + Edytowalne pole tekstowe dla nazwy użytkownika danych logowania. - Edytowalne pole tekstowe dla nazwy użytkownika. + Edytowalne pole tekstowe dla nazwy użytkownika. - Edytowalne pole tekstowe dla hasła danych logowania. + Edytowalne pole tekstowe dla hasła danych logowania. - Edytowalne pole tekstowe dla hasła. + Edytowalne pole tekstowe dla hasła. - Zachowaj zmiany danych logowania. + Zachowaj zmiany danych logowania. - Zachowaj zmiany. + Zachowaj zmiany. - Edycja + Edycja - Edycja hasła + Edycja hasła - Dodanie nowych danych logowania + Dodanie nowych danych logowania - Dodanie hasła + Dodanie hasła - Hasło jest wymagane + Hasło jest wymagane - Wpisz hasło + Wpisz hasło - Nazwa użytkownika jest wymagana + Nazwa użytkownika jest wymagana - Wpisz nazwę użytkownika + Wpisz nazwę użytkownika Adres jest wymagany @@ -2105,14 +2122,14 @@ Połącz inne urządzenie. Uwierzytelnij się ponownie. - + Włącz synchronizację kart. Brak otwartych kart w Firefoksach na innych urządzeniach. - + Wyświetl listę kart z innych urządzeń. - + Zaloguj się do synchronizacji @@ -2164,14 +2181,14 @@ Zamykać automatycznie po miesiącu? - Firefox może zamykać karty, których nie odwiedzono w ciągu ostatniego miesiąca. + LeOSium może zamykać karty, których nie odwiedzono w ciągu ostatniego miesiąca. Włącz automatyczne zamykanie Włączono automatyczne zamykanie - + Podpowiedzi Firefoksa @@ -2192,7 +2209,7 @@ Kliknij, aby wyświetlić więcej informacji - Przejdź w górę + Przejdź w górę Zamknij @@ -2235,7 +2252,7 @@ otworzyć odnośnik z informacjami o tej kolekcji przeczytać artykuł - + otworzyć odnośnik z informacjami %s, nagłówek @@ -2250,11 +2267,15 @@ Przetłumaczyć tę stronę? + + Język oryginalnej strony: %1$s, język tłumaczenia: %2$s Wypróbuj prywatne tłumaczenia w przeglądarce %1$s Ze względu na Twoją prywatność tłumaczenia nigdy nie opuszczają Twojego urządzenia. Wkrótce nowe języki i ulepszenia! %1$s - + Więcej informacji Język źródłowy: @@ -2262,6 +2283,8 @@ Język docelowy: Nie teraz + + Wyświetl w oryginale OK @@ -2283,6 +2306,16 @@ Więcej informacji + + + Tłumaczenie… + + Pobrać język w trybie oszczędzania danych (%1$s)? + + Opcje tłumaczenia diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index e01fd952..c5844082 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -71,7 +71,7 @@ O %1$s exclui seus cookies, histórico e dados de sites quando você fecha todas as abas privativas. %2$s Traduzir página + + Página traduzida de %1$s para %2$s. + Selecionar idioma @@ -333,13 +338,23 @@ - Aviso de privacidade do Firefox - + Aviso de privacidade do LeOSium + + Saiba mais em nosso aviso de privacidade Adoramos manter você seguro + + Descubra por que milhões adoram o LeOSium + + Navegação segura com mais opções Nosso navegador respaldado por uma entidade sem fins lucrativos ajuda a impedir que empresas sigam você secretamente pela web. + Mais de 100 milhões de pessoas protegem sua privacidade escolhendo um navegador respaldado por uma organização sem fins lucrativos. + + Rastreadores conhecidos? Bloqueados automaticamente. Extensões? Experimente todas as 700. Documentos PDF? Nosso leitor integrado facilita gerenciar. + Nosso navegador respaldado por uma entidade sem fins lucrativos ajuda a impedir que empresas sigam você secretamente pela web.\n\nSaiba mais em nosso aviso de privacidade. @@ -351,32 +366,32 @@ Proteja-se com criptografia ao alternar entre dispositivos - Uma vez conectado e sincronizado, você fica mais seguro. O Firefox criptografa senhas, favoritos e muito mais. + Note: The word "LeOSium" should NOT be translated --> + Uma vez conectado e sincronizado, você fica mais seguro. O LeOSium criptografa senhas, favoritos e muito mais. Entrar Agora não - Notificações ajudam você a ficar mais seguro com o Firefox + Note: The word "LeOSium" should NOT be translated --> + Notificações ajudam você a ficar mais seguro com o LeOSium - Envie abas entre seus dispositivos com segurança e descubra outros recursos de privacidade no Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envie abas entre seus dispositivos com segurança e descubra outros recursos de privacidade no LeOSium. Ativar notificações Agora não - Experimente o widget de pesquisa do Firefox + Note: The word "LeOSium" should NOT be translated --> + Experimente o widget de pesquisa do LeOSium - Com o Firefox na tela inicial do celular, você tem acesso fácil ao navegador que prioriza a privacidade e bloqueia rastreadores entre sites. + Note: The word "LeOSium" should NOT be translated --> + Com o LeOSium na tela inicial do celular, você tem acesso fácil ao navegador que prioriza a privacidade e bloqueia rastreadores entre sites. - Adicionar widget do Firefox + Note: The word "LeOSium" should NOT be translated --> + Adicionar widget do LeOSium Agora não @@ -416,10 +431,10 @@ Sugestões de mecanismos de pesquisa Preferências da barra de endereços - - Barra de endereços - Sugestões Firefox - - Saiba mais sobre o Sugestões Firefox + + Barra de endereços - Sugestões LeOSium + + Saiba mais sobre o Sugestões LeOSium Avalie no Google Play Completar endereços automaticamente - + Sugestões de patrocinadores - Apoie o %1$s com sugestões patrocinadas ocasionais - Sugestões do %1$s - + Receber sugestões da web relacionadas à sua pesquisa Abrir links em aplicativos @@ -648,7 +663,7 @@ Saiba mais - + %s clássico Série de artistas @@ -666,8 +681,8 @@ Novas extensões agora disponíveis - - Confira mais de 100 novas extensões que permitem deixar o Firefox do seu jeito. + + Confira mais de 100 novas extensões que permitem deixar o LeOSium do seu jeito. Descobrir extensões @@ -696,9 +711,9 @@ Favoritos - Contas de acesso + Contas de acesso - Senhas + Senhas Abas abertas @@ -724,9 +739,9 @@ %1$s no %2$s %3$s - Cartões de crédito + Cartões de crédito - Métodos de pagamento + Métodos de pagamento Endereços @@ -734,7 +749,7 @@ Abas recebidas - Notificações de abas recebidas de outros dispositivos Firefox. + Notificações de abas recebidas de outros dispositivos LeOSium. Aba recebida @@ -915,7 +930,7 @@ Remover Ativado - + O %1$s pode instalar e executar estudos de vez em quando. Saiba mais @@ -1291,7 +1306,7 @@ Conectar outro dispositivo - Para enviar uma aba, entre no Firefox em pelo menos um outro dispositivo. + Para enviar uma aba, entre no LeOSium em pelo menos um outro dispositivo. Entendi @@ -1319,10 +1334,10 @@ - Firefox é rápido e privativo + LeOSium é rápido e privativo - Torne o Firefox seu navegador padrão + Torne o LeOSium seu navegador padrão Experimente a navegação privativa - Ajude a melhorar o Firefox respondendo a uma breve pesquisa de opinião. + Ajude a melhorar o LeOSium respondendo a uma breve pesquisa de opinião. Participar da pesquisa @@ -1491,16 +1506,16 @@ Digitalize o código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pronto para digitalizar Conecte usando sua câmera Usar email - - Crie para sincronizar o Firefox entre dispositivos.]]> - + + Crie para sincronizar o LeOSium entre dispositivos.]]> + O %s deixará de sincronizar com sua conta, mas não excluirá seus dados de navegação neste dispositivo. Desconectar @@ -1518,7 +1533,7 @@ Agora com a proteção total contra cookies, nossa mais poderosa barreira contra rastreadores entre sites. - + O %s te protege de muitos dos rastreadores mais comuns que tentam seguir o que você faz online. Saiba mais @@ -1670,20 +1685,20 @@ Você pode facilmente adicionar este site à tela inicial do dispositivo para ter acesso imediato e navegar mais rápido com uma experiência semelhante a um aplicativo. - Contas e senhas + Contas e senhas - Senhas + Senhas - Salvar contas e senhas + Salvar contas e senhas - Salvar senhas + Salvar senhas Perguntar se deve salvar Nunca salvar - + Preenchimento automático no %1$s - + Preencher e salvar nomes de usuário e senhas em sites ao usar o %1$s. Preenchimento automático em outros aplicativos @@ -1691,47 +1706,47 @@ Preencher nomes de usuário e senhas em outros aplicativos no dispositivo. - Adicionar conta + Adicionar conta - Adicionar senha + Adicionar senha - - Sincronizar contas - Sincronizar senhas + Sincronizar contas + + Sincronizar senhas - Sincronizar contas entre dispositivos + Sincronizar contas entre dispositivos - Sincronizar senhas entre dispositivos + Sincronizar senhas entre dispositivos - Contas salvas + Contas salvas - Senhas salvas + Senhas salvas - As contas que você salvar ou sincronizar no %s aparecem aqui. + As contas que você salvar ou sincronizar no %s aparecem aqui. - As senhas que você salva ou sincroniza no %s aparecem aqui. Todas as senhas que você salva são criptografadas. + As senhas que você salva ou sincroniza no %s aparecem aqui. Todas as senhas que você salva são criptografadas. - Saiba mais sobre sincronização. + Saiba mais sobre sincronização. - Saiba mais sobre sincronização + Saiba mais sobre sincronização Exceções - Contas e senhas que não são salvas são mostradas aqui. + Contas e senhas que não são salvas são mostradas aqui. - O %s não salva senhas dos sites desta lista. + O %s não salva senhas dos sites desta lista. - Contas e senhas desses sites não serão salvas. + Contas e senhas desses sites não serão salvas. - O %s não salva senhas desses sites. + O %s não salva senhas desses sites. Excluir todas as exceções - Pesquisar contas + Pesquisar contas - Procurar senhas + Procurar senhas Site @@ -1759,18 +1774,18 @@ Ocultar senha - Desbloqueie para ver suas contas salvas + Desbloqueie para ver suas contas salvas - Desbloqueie para ver as senhas salvas + Desbloqueie para ver as senhas salvas - Proteja suas contas e senhas + Proteja suas contas e senhas - Proteja as senhas salvas + Proteja as senhas salvas - Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a suas contas e senhas salvas, caso outras pessoas usem seu dispositivo. + Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a suas contas e senhas salvas, caso outras pessoas usem seu dispositivo. - Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a suas senhas salvas, caso outras pessoas usem seu dispositivo. + Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a suas senhas salvas, caso outras pessoas usem seu dispositivo. Mais tarde @@ -1787,10 +1802,10 @@ Data de uso - Menu de ordenação de contas + Menu de ordenação de contas - Menu de ordenação de senhas + Menu de ordenação de senhas @@ -1798,43 +1813,43 @@ Endereços - Cartões de crédito + Cartões de crédito - Métodos de pagamento + Métodos de pagamento - Salvar e preencher cartões automaticamente + Salvar e preencher cartões automaticamente - Salvar e preencher métodos de pagamento + Salvar e preencher métodos de pagamento - Os dados são criptografados + Os dados são criptografados - O %s criptografa todos os métodos de pagamento que você salva + O %s criptografa todos os métodos de pagamento que você salva Sincronizar cartões entre dispositivos Sincronizar cartões - Adicionar cartão de crédito + Adicionar cartão de crédito - Adicionar cartão + Adicionar cartão - Gerenciar cartões salvos + Gerenciar cartões salvos - Gerenciar cartões + Gerenciar cartões Adicionar endereço Gerenciar endereços - Salvar e preencher endereços automaticamente + Salvar e preencher endereços automaticamente - Salvar e preencher endereços + Salvar e preencher endereços - Incluir informações como números, email e endereços de entrega + Incluir informações como números, email e endereços de entrega - Incluir números de telefone e endereços de email + Incluir números de telefone e endereços de email Adicionar cartão @@ -1855,9 +1870,9 @@ Excluir cartão - Tem certeza que quer excluir este cartão de crédito? + Tem certeza que quer excluir este cartão de crédito? - Excluir cartão? + Excluir cartão? Excluir @@ -1871,24 +1886,24 @@ Cartões salvos - Digite um número de cartão de crédito válido + Digite um número de cartão de crédito válido - Digite um número de cartão válido + Digite um número de cartão válido - Preencha este campo + Preencha este campo - Adicionar um nome + Adicionar um nome Desbloqueie para ver seus cartões salvos - Proteja seus cartões de crédito + Proteja seus cartões de crédito - Proteja seus métodos de pagamento salvos + Proteja seus métodos de pagamento salvos - Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a seus cartões de crédito salvos, caso outras pessoas usem seu dispositivo. + Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a seus cartões de crédito salvos, caso outras pessoas usem seu dispositivo. - Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a seus métodos de pagamento salvos, caso outras pessoas usem seu dispositivo. + Configure um método de bloqueio do dispositivo (desenho, código PIN ou senha) para proteger o acesso a seus métodos de pagamento salvos, caso outras pessoas usem seu dispositivo. Configurar agora @@ -1897,10 +1912,10 @@ Desbloquear dispositivo - Desbloqueie para usar informações armazenadas de cartões de crédito + Desbloqueie para usar informações armazenadas de cartões de crédito - Desbloqueie para usar formas de pagamento salvas + Desbloqueie para usar formas de pagamento salvas Adicionar endereço @@ -1909,11 +1924,13 @@ Gerenciar endereços - Primeiro nome + Primeiro nome - Nome do meio + Nome do meio - Sobrenome + Sobrenome + + Nome Endereço @@ -1938,9 +1955,9 @@ Excluir endereço - Tem certeza que quer excluir este endereço? + Tem certeza que quer excluir este endereço? - Excluir este endereço? + Excluir este endereço? Excluir @@ -2038,49 +2055,49 @@ Editar - Tem certeza que quer excluir esta conta? + Tem certeza que quer excluir esta conta? - Tem certeza que quer excluir esta senha? + Tem certeza que quer excluir esta senha? Excluir Cancelar - Opções da conta + Opções da conta - Opções de senhas + Opções de senhas - O campo de texto editável do endereço web da conta. + O campo de texto editável do endereço web da conta. - O campo de texto editável do endereço do site. + O campo de texto editável do endereço do site. - O campo de texto editável do nome de usuário da conta. + O campo de texto editável do nome de usuário da conta. - O campo de texto editável do nome de usuário. + O campo de texto editável do nome de usuário. - O campo de texto editável da senha da conta. + O campo de texto editável da senha da conta. - O campo de texto editável da senha. + O campo de texto editável da senha. - Salvar alterações na conta. + Salvar alterações na conta. - Salvar alterações. + Salvar alterações. - Editar + Editar - Editar senha + Editar senha - Adicionar conta + Adicionar conta - Adicionar senha + Adicionar senha - Senha é obrigatória + Senha é obrigatória - Digite uma senha + Digite uma senha - Nome de usuário é obrigatório + Nome de usuário é obrigatório - Digite um nome de usuário + Digite um nome de usuário Nome de servidor é obrigatório @@ -2106,14 +2123,14 @@ Conecte outro dispositivo. Autentique novamente. - + Ative a sincronização de abas. - Você não tem nenhuma aba aberta no Firefox em outros dispositivos. + Você não tem nenhuma aba aberta no LeOSium em outros dispositivos. - + Veja uma lista de abas de seus outros dispositivos. - + Entrar para sincronizar @@ -2165,7 +2182,7 @@ Fechar automaticamente após um mês sem uso? - O Firefox pode fechar abas que você não viu no mês anterior. + O LeOSium pode fechar abas que você não viu no mês anterior. ATIVAR FECHAMENTO AUTOMÁTICO @@ -2173,8 +2190,8 @@ Fechamento automático ativado - - Sugestões Firefox + + Sugestões LeOSium Pesquisa do Google @@ -2185,7 +2202,7 @@ Mude seu navegador padrão - Abra links, emails e mensagens automaticamente no Firefox. + Abra links, emails e mensagens automaticamente no LeOSium. Remover @@ -2194,7 +2211,7 @@ Clique para ver mais detalhes - Ir para o topo + Ir para o topo Fechar @@ -2209,7 +2226,7 @@ Com tecnologia %s. - Parte da família Firefox. %s + Parte da família LeOSium. %s Saiba mais @@ -2235,8 +2252,6 @@ Classificação ajustada - Avaliações não confiáveis removidas - Baseado em avaliações confiáveis Destaques de avaliações recentes @@ -2294,10 +2309,6 @@ Se você perceber que tem este produto novamente em estoque, informe para nós e trabalharemos na verificação de avaliações. Informar que tem o produto em estoque - - Verificando a qualidade das avaliações - - Verificando a qualidade das avaliações Verificando a qualidade das avaliações (%s) @@ -2335,22 +2346,28 @@ Experimente nosso guia confiável de avaliações de produtos - + Veja a confiabilidade das avaliações de um produto em %1$s antes de comprar. O verificador de avaliações, um recurso experimental do %2$s, é integrado no navegador. Também funciona em %3$s e %4$s. - + Veja a confiabilidade das avaliações de um produto em %1$s antes de comprar. O verificador de avaliações, um recurso experimental do %2$s, é integrado no navegador. Usando o poder do %1$s da Mozilla, ajudamos você a evitar avaliações tendenciosas e não autênticas. Nosso modelo de inteligência artificial está sempre melhorando para te proteger enquanto faz compras. %2$s Saiba mais - Ao selecionar “Sim, experimentar”, você concorda com a %2$s e os %3$s do %1$s da Mozilla. + Ao selecionar “Sim, experimentar”, você concorda com a %2$s e os %3$s do %1$s da Mozilla. Ao selecionar “Sim, experimentar” você declara que concorda com o seguinte da %1$s: + + Ao selecionar “Sim, experimentar” você declara que concorda com a %2$s do %1$s e os %4$s do %3$s. + + Ao selecionar “Sim, experimentar” você declara que concorda com a %2$s do %1$s e os %4$s do %3$s. - política de privacidade + política de privacidade Política de privacidade + + aviso de privacidade termos de uso @@ -2407,7 +2424,7 @@ abrir link para saber mais sobre esta coleção ler o artigo - + abrir o link para saber mais %s, título de seção @@ -2422,12 +2439,16 @@ Traduzir esta página? + + Página traduzida de %1$s para %2$s Experimente tradução privativa no %1$s Para sua privacidade, o texto de tradução nunca sai do seu dispositivo. Novos idiomas e melhorias em breve! %1$s - + Saiba mais Traduzir de @@ -2435,6 +2456,8 @@ Traduzir para Agora não + + Mostrar original Pronto @@ -2457,6 +2480,16 @@ Saiba mais + + Traduzindo… + + + Baixar idioma no modo de economia de dados (%1$s)? + + Opções de tradução diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 583d1343..af65c6f9 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -72,7 +72,7 @@ Não deixe vestígios neste dispositivo %1$s elimina os seus cookies, histórico e dados do site quando fecha todos os seus separadores privados. %2$s Traduzir página + + Página traduzida de %1$s para %2$s. + Idioma selecionado @@ -332,13 +337,23 @@ - Política de privacidade do Firefox - + Política de privacidade do LeOSium + + Saiba mais nas nossas informações de privacidade Adoramos mantê-lo(a) seguro(a) + + Descubra porque milhões adoram o LeOSium + + Navegação segura, com mais opções O nosso navegador, apoiado por uma organização sem fins lucrativos, ajuda a impedir que as empresas o sigam secretamente pela Internet. + Mais de 100 milhões de pessoas protegem a sua privacidade ao escolher um navegador apoiado por uma organização sem fins lucrativos. + + Rastreadores conhecidos? Bloqueados automaticamente. Extensões? Experimente todas as 700. PDF? O nosso leitor integrado facilita a sua gestão. + O nosso navegador, apoiado por uma organização sem fins lucrativos, ajuda a impedir que as empresas o sigam secretamente pela web.\n\n Saiba mais nas nossas informações de privacidade. @@ -351,32 +366,32 @@ Mantenha-se encriptado quando troca de dispositivos - Quando está ligado e sincronizado, está mais seguro. O Firefox encripta as suas palavras-passe, marcadores e muito mais. + Note: The word "LeOSium" should NOT be translated --> + Quando está ligado e sincronizado, está mais seguro. O LeOSium encripta as suas palavras-passe, marcadores e muito mais. Iniciar sessão Agora não - As notificações ajudam-no(a) a manter-se mais seguro(a) com o Firefox + Note: The word "LeOSium" should NOT be translated --> + As notificações ajudam-no(a) a manter-se mais seguro(a) com o LeOSium - Envie separadores de forma segura entre os seus dispositivos e descubra outras funcionalidades de privacidade no Firefox. + Note: The word "LeOSium" should NOT be translated --> + Envie separadores de forma segura entre os seus dispositivos e descubra outras funcionalidades de privacidade no LeOSium. Ativar notificações Agora não - Experimente o widget de pesquisa do Firefox + Note: The word "LeOSium" should NOT be translated --> + Experimente o widget de pesquisa do LeOSium - Com o Firefox no ecrã inicial, terá acesso fácil ao navegador que prioriza a privacidade e bloqueia rastreadores entre sites. + Note: The word "LeOSium" should NOT be translated --> + Com o LeOSium no ecrã inicial, terá acesso fácil ao navegador que prioriza a privacidade e bloqueia rastreadores entre sites. - Adicionar a widget do Firefox + Note: The word "LeOSium" should NOT be translated --> + Adicionar a widget do LeOSium Agora não @@ -416,10 +431,10 @@ Sugestões dos motores de pesquisa Preferências da barra de endereços - - Barra de endereços – Firefox Suggest - - Saiba mais sobre o Firefox Suggest + + Barra de endereços – LeOSium Suggest + + Saiba mais sobre o LeOSium Suggest Classificar no Google Play Conclusão automática de endereços - + Sugestões de patrocinadores - Apoie o %1$s com sugestões patrocinadas ocasionais - Sugestões de %1$s - + Obtenha sugestões da Internet relacionadas com a sua pesquisa Abrir ligações em aplicações @@ -645,7 +660,7 @@ Saber mais - + %s clássico @@ -664,8 +679,8 @@ Novos extras agora disponíveis - - Conheça mais de 100 novas extensões que permitem personalizar o Firefox ao seu gosto. + + Conheça mais de 100 novas extensões que permitem personalizar o LeOSium ao seu gosto. Explore os extras @@ -693,9 +708,9 @@ Marcadores - Credenciais + Credenciais - Palavras-passe + Palavras-passe Separadores abertos @@ -721,9 +736,9 @@ %1$s no %2$s %3$s - Cartões de crédito + Cartões de crédito - Métodos de pagamento + Métodos de pagamento Moradas @@ -731,7 +746,7 @@ Separadores recebidos - Notificações para separadores recebidos de outros dispositivos Firefox. + Notificações para separadores recebidos de outros dispositivos LeOSium. Separador recebido @@ -915,7 +930,7 @@ Remover Ativo - + O %1$s pode instalar e executar estudos esporadicamente. Saber mais @@ -1289,7 +1304,7 @@ Ligar outro dispositivo - Para enviar um separador, inicie sessão no Firefox em, pelo menos, um outro dispositivo. + Para enviar um separador, inicie sessão no LeOSium em, pelo menos, um outro dispositivo. Compreendi @@ -1317,10 +1332,10 @@ - O Firefox é rápido e privado + O LeOSium é rápido e privado - Torne o Firefox no seu navegador predefinido + Torne o LeOSium no seu navegador predefinido Experimente a navegação privada - Por favor, ajude a melhorar o Firefox respondendo a um breve questionário. + Por favor, ajude a melhorar o LeOSium respondendo a um breve questionário. Preencher questionário @@ -1488,7 +1503,7 @@ Digitalize o código - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pronto para digitalizar @@ -1496,9 +1511,9 @@ Inicie sessão com a sua câmara Como alternativa, utilizar o e-mail - - Crie uma conta para sincronizar o Firefox entre os dispositivos.]]> - + + Crie uma conta para sincronizar o LeOSium entre os dispositivos.]]> + O %s irá suspender a sincronização com a sua conta, mas não irá eliminar quaisquer dados de navegação seus neste dispositivo. Desassociar @@ -1514,7 +1529,7 @@ Proteção melhorada contra a monitorização Agora apresentando a Proteção Total de Cookies, a nossa barreira mais poderosa contra rastreadores entre sites. - + O %s protege-o de muitos dos rastreadores mais comuns que monitorizam o que faz na Internet. Saber mais @@ -1668,21 +1683,21 @@ Pode adicionar facilmente este site ao ecrã inicial do seu dispositivo para ter acesso instantâneo e navegar mais rápido, com uma experiência semelhante ao de uma aplicação. - Credenciais e palavras-passe + Credenciais e palavras-passe - Palavras-passe + Palavras-passe - Guardar credenciais e palavras-passe + Guardar credenciais e palavras-passe - Guardar palavras-passe + Guardar palavras-passe Pedir para guardar Nunca guardar - + Autopreenchimento do %1$s - + Preencher e guardar nomes de utilizador e palavras-passe em site ao utilizar o %1$s. Preenchimento automático noutras aplicações @@ -1690,48 +1705,48 @@ Preencher nomes de utilizador e palavras-passe noutras aplicações no seu dispositivo. - Adicionar credenciais + Adicionar credenciais - Adicionar palavra-passe + Adicionar palavra-passe - - Sincronização de credenciais - Sincronizar palavras-passe + Sincronização de credenciais + + Sincronizar palavras-passe - Sincronizar credenciais entre dispositivos + Sincronizar credenciais entre dispositivos - Sincronize palavras-passe entre dispositivos + Sincronize palavras-passe entre dispositivos - Credenciais guardadas + Credenciais guardadas - Palavras-passe guardadas + Palavras-passe guardadas - As credenciais que guardar ou sincronizar com o %s serão apresentadas aqui. + As credenciais que guardar ou sincronizar com o %s serão apresentadas aqui. - As palavras-passe que guardar ou sincronizar com o %s serão listadas aqui. Todas as palavras-passe que guarda são encriptadas. + As palavras-passe que guardar ou sincronizar com o %s serão listadas aqui. Todas as palavras-passe que guarda são encriptadas. - Saber mais sobre a sincronização. + Saber mais sobre a sincronização. - Saber mais sobre a sincronização + Saber mais sobre a sincronização Exceções - As credenciais e palavras-passe que não estão guardadas serão mostradas aqui. + As credenciais e palavras-passe que não estão guardadas serão mostradas aqui. - O %s não irá guardar palavras-passe para sites listados aqui. + O %s não irá guardar palavras-passe para sites listados aqui. - As credenciais e palavras-passe não serão guardadas para estes sites. + As credenciais e palavras-passe não serão guardadas para estes sites. - O %s não irá guardar as palavras-passe para estes sites. + O %s não irá guardar as palavras-passe para estes sites. Eliminar todas as exceções - Pesquisar credenciais + Pesquisar credenciais - Procurar palavras-passe + Procurar palavras-passe Site @@ -1760,17 +1775,17 @@ Ocultar palavra-passe - Desbloqueie para ver as credenciais guardadas + Desbloqueie para ver as credenciais guardadas - Desbloqueie para ver as palavras-passe guardadas + Desbloqueie para ver as palavras-passe guardadas - Proteja as suas credenciais e palavras-passe + Proteja as suas credenciais e palavras-passe - Proteja as suas palavras-passe guardadas + Proteja as suas palavras-passe guardadas - Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que as suas credenciais e palavras-passe guardadas sejam acedidas por outra pessoa que tenha acesso ao seu dispositivo. + Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que as suas credenciais e palavras-passe guardadas sejam acedidas por outra pessoa que tenha acesso ao seu dispositivo. - Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que as suas palavras-passe guardadas sejam acedidas por outra pessoa que tenha acesso ao seu dispositivo. + Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que as suas palavras-passe guardadas sejam acedidas por outra pessoa que tenha acesso ao seu dispositivo. Mais tarde @@ -1787,10 +1802,10 @@ Última utilização - Menu de ordenação de credenciais + Menu de ordenação de credenciais - Menu de ordenação de palavras-passe + Menu de ordenação de palavras-passe @@ -1798,44 +1813,44 @@ Endereços - Cartões de crédito + Cartões de crédito - Métodos de pagamento + Métodos de pagamento - Guardar e preencher automaticamente cartões + Guardar e preencher automaticamente cartões - Guardar e preencher métodos de pagamento + Guardar e preencher métodos de pagamento - Os dados são encriptados + Os dados são encriptados - O %s encripta todos os métodos de pagamento que guarda + O %s encripta todos os métodos de pagamento que guarda Sincronizar cartões entre dispositivos Sincronizar cartões - Adicionar cartão de crédito + Adicionar cartão de crédito - Adicionar cartão + Adicionar cartão - Gerir cartões guardados + Gerir cartões guardados - Gerir cartões + Gerir cartões Adicionar endereço Gerir endereços - Guardar e preencher automaticamente endereços + Guardar e preencher automaticamente endereços - Guardar e preencher endereços + Guardar e preencher endereços - Incluir informações como números, e-mail e endereços de entrega + Incluir informações como números, e-mail e endereços de entrega - Inclui números de telefone e endereços de e-mail + Inclui números de telefone e endereços de e-mail Adicionar cartão @@ -1856,9 +1871,9 @@ Eliminar cartão - Tem a certeza de que quer apagar este cartão de crédito? + Tem a certeza de que quer apagar este cartão de crédito? - Eliminar cartão? + Eliminar cartão? Apagar @@ -1872,23 +1887,23 @@ Cartões guardados - Por favor, introduza um número de cartão de crédito válido + Por favor, introduza um número de cartão de crédito válido - Insira um número de cartão válido + Insira um número de cartão válido - Por favor preencha este campo + Por favor preencha este campo - Adicionar um nome + Adicionar um nome Desbloquear para ver os cartões guardados - Proteja os seus cartões de crédito + Proteja os seus cartões de crédito - Proteja os seus métodos de pagamento guardados + Proteja os seus métodos de pagamento guardados - Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que os seus cartões de crédito guardados sejam acedidos por outra pessoa que tenha acesso ao seu dispositivo. + Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que os seus cartões de crédito guardados sejam acedidos por outra pessoa que tenha acesso ao seu dispositivo. - Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que os seus métodos de pagamento guardados sejam acedidos por outra pessoa que tenha acesso ao seu dispositivo. + Configure um padrão, PIN ou palavra-passe de bloqueio do dispositivo para impedir que os seus métodos de pagamento guardados sejam acedidos por outra pessoa que tenha acesso ao seu dispositivo. Configurar agora @@ -1896,10 +1911,10 @@ Desbloquear o seu dispositivo - Desbloquear para utilizar as informações de cartão de crédito armazenadas + Desbloquear para utilizar as informações de cartão de crédito armazenadas - Desbloquear para utilizar métodos de pagamento guardados + Desbloquear para utilizar métodos de pagamento guardados Adicionar endereço @@ -1907,11 +1922,13 @@ Gerir endereços - Primeiro nome + Primeiro nome - Nome do meio + Nome do meio - Último nome + Último nome + + Nome Endereço da rua @@ -1936,9 +1953,9 @@ Apagar endereço - Tem a certeza de que quer eliminar este endereço? + Tem a certeza de que quer eliminar este endereço? - Eliminar este endereço? + Eliminar este endereço? Apagar @@ -2037,49 +2054,49 @@ Editar - Tem a certeza que deseja eliminar esta credencial? + Tem a certeza que deseja eliminar esta credencial? - Tem a certeza que quer eliminar esta palavra-passe? + Tem a certeza que quer eliminar esta palavra-passe? Eliminar Cancelar - Opções de credenciais + Opções de credenciais - Opções de palavra-passe + Opções de palavra-passe - O campo de texto editável para o endereço de Internet da credencial. + O campo de texto editável para o endereço de Internet da credencial. - O campo de texto editável para o endereço do site. + O campo de texto editável para o endereço do site. - O campo de texto editável para o nome de utilizador da credencial. + O campo de texto editável para o nome de utilizador da credencial. - O campo de texto editável para o nome de utilizador. + O campo de texto editável para o nome de utilizador. - O campo de texto editável para a palavra-passe da credencial. + O campo de texto editável para a palavra-passe da credencial. - O campo de texto editável para a palavra-passe. + O campo de texto editável para a palavra-passe. - Guardar alterações na credencial. + Guardar alterações na credencial. - Guardar alterações. + Guardar alterações. - Editar + Editar - Editar palavra-passe + Editar palavra-passe - Adicionar nova credencial + Adicionar nova credencial - Adicionar palavra-passe + Adicionar palavra-passe - É necessária uma palavra-passe + É necessária uma palavra-passe - Introduza uma palavra-passe + Introduza uma palavra-passe - É necessário um nome de utilizador + É necessário um nome de utilizador - Introduza um nome de utilizador + Introduza um nome de utilizador É necessário um nome de servidor @@ -2105,13 +2122,13 @@ Associar outro dispositivo. Por favor, autentique-se novamente. - + Por favor, ative a sincronização de separadores. - Não tem quaisquer separadores abertos no Firefox dos seus outros dispositivos. - + Não tem quaisquer separadores abertos no LeOSium dos seus outros dispositivos. + Ver uma lista de separadores dos seus outros dispositivos. - + Iniciar sessão para sincronizar @@ -2163,7 +2180,7 @@ Auto-encerrar após um mês? - O Firefox pode encerrar separadores que não acedeu no último mês. + O LeOSium pode encerrar separadores que não acedeu no último mês. ATIVAR O ENCERRAMENTO AUTOMÁTICO @@ -2171,8 +2188,8 @@ Auto-encerramento ativado - - Sugestões Firefox + + Sugestões LeOSium Pesquisa do Google @@ -2183,7 +2200,7 @@ Alterar o seu navegador predefinido - Definir para que as ligações de sites, e-mails e mensagens sejam abertas automaticamente no Firefox. + Definir para que as ligações de sites, e-mails e mensagens sejam abertas automaticamente no LeOSium. Remover @@ -2192,7 +2209,7 @@ Clique para mais detalhes - Navegar para cima + Navegar para cima Fechar @@ -2207,7 +2224,7 @@ Suportado por %s. - Membro da família Firefox. %s + Membro da família LeOSium. %s Saber mais @@ -2233,8 +2250,6 @@ Classificação ajustada - Avaliações não confiáveis removidas - Baseado em avaliações confiáveis Destaques das avaliações recentes @@ -2290,10 +2305,6 @@ Se perceber que este produto está novamente em stock, reporte e iremos verificar as avaliações. Informar que o produto está em stock - - A verificar a qualidade da avaliação - - A verificar a qualidade da avaliação A verificar a qualidade da avaliação (%s) @@ -2330,22 +2341,28 @@ Verificar a qualidade da avaliação Experimente o nosso guia confiável para avaliações de produtos - + Veja o quão confiáveis são as avaliações dos produtos em %1$s antes de comprar. O verificador de avaliações, uma funcionalidade experimental do %2$s, está integrado no navegador. Funciona em %3$s e também em %4$s. - + Veja o quão confiáveis são as avaliações dos produtos em %1$s antes de comprar. O Verificador de Avaliações, uma funcionalidade experimental do %2$s, está integrado no navegador. Utilizando o poder do %1$s da Mozilla, ajudamos a que evite avaliações tendenciosas e falsas. O nosso modelo de IA está sempre a melhorar para sua proteção, enquanto faz compras. %2$s Saber mais - Ao selecionar “Sim, experimentar”, concorda com a %2$s e %3$s de %1$s da Mozilla. + Ao selecionar “Sim, experimentar”, concorda com a %2$s e %3$s de %1$s da Mozilla. Ao selecionar “Sim, experimentar”, concorda com o seguinte de %1$s: + + Ao selecionar “Sim, experimentar” concorda com a %2$s de %1$s e com a %4$s de %3$s. + + Ao selecionar “Sim, experimentar” concorda com a %2$s de %1$s e com a %4$s de %3$s. - política de privacidade + política de privacidade Política de privacidade + + informação de privacidade termos de utilização @@ -2401,7 +2418,7 @@ abrir ligação para saber mais sobre esta coleção ler o artigo - + abrir ligação para saber mais %s, Título @@ -2416,11 +2433,15 @@ Traduzir esta página? + + Página traduzida de %1$s para %2$s Experimente as traduções privadas no %1$s Pela sua privacidade, as traduções nunca deixam o seu dispositivo. Novos idiomas e melhorias para breve! %1$s - + Saber mais Traduzir de @@ -2428,6 +2449,8 @@ Traduzir para Agora não + + Mostrar original Feito @@ -2439,7 +2462,7 @@ Tradução em curso - Escolha um idioma + Escolher um idioma Ocorreu um problema com a tradução. Por favor, tente novamente. @@ -2449,6 +2472,16 @@ Saber mais + + A traduzir… + + + Transferir idioma no modo de poupança de dados (%1$s)? + + Opções de tradução diff --git a/app/src/main/res/values-rm/strings.xml b/app/src/main/res/values-rm/strings.xml index a5e6bad2..4d186ef4 100644 --- a/app/src/main/res/values-rm/strings.xml +++ b/app/src/main/res/values-rm/strings.xml @@ -68,7 +68,7 @@ Na laschar nagins fastizs sin quest apparat %1$s stizza tes cookies, la cronologia e las datas da websites cura che ti serras tut tes tabs privats. %2$s - Las directivas da Firefox per la protecziun da datas + Las directivas da LeOSium per la protecziun da datas Nus ta protegin cun plaschair @@ -344,32 +344,32 @@ Criptescha tias datas cun midar dad in apparat a tschel - Sche ti es annunzià e sincroniseschas tias datas, es ti pli segir. Firefox criptescha tes pleds-clav, segnapaginas e dapli. + Note: The word "LeOSium" should NOT be translated --> + Sche ti es annunzià e sincroniseschas tias datas, es ti pli segir. LeOSium criptescha tes pleds-clav, segnapaginas e dapli. S\'annunziar Betg ussa - Cun communicaziuns es ti pli segir en Firefox + Note: The word "LeOSium" should NOT be translated --> + Cun communicaziuns es ti pli segir en LeOSium - Trametta tabs a moda segira dad in da tes apparats a tschel e scuvra autras funcziuns per la protecziun da datas da Firefox. + Note: The word "LeOSium" should NOT be translated --> + Trametta tabs a moda segira dad in da tes apparats a tschel e scuvra autras funcziuns per la protecziun da datas da LeOSium. Activar las communicaziuns Betg ussa - Emprova il widget da retschertga da Firefox + Note: The word "LeOSium" should NOT be translated --> + Emprova il widget da retschertga da LeOSium - Cun Firefox sin tes visur da partenza has ti in svelt access al navigatur che dat la prioritad a la protecziun da datas e blochescha fastizaders interpaginals. + Note: The word "LeOSium" should NOT be translated --> + Cun LeOSium sin tes visur da partenza has ti in svelt access al navigatur che dat la prioritad a la protecziun da datas e blochescha fastizaders interpaginals. - Agiuntar il widget da Firefox + Note: The word "LeOSium" should NOT be translated --> + Agiuntar il widget da LeOSium Betg ussa @@ -409,10 +409,10 @@ Propostas da maschinas da tschertgar Preferenzas per la trav d\'adressas - - Trav d\'adressas – propostas da Firefox - - Ulteriuras infurmaziuns davart propostas da Firefox + + Trav d\'adressas – propostas da LeOSium + + Ulteriuras infurmaziuns davart propostas da LeOSium Valitar en Google Play Cumplettar automaticamain URLs - + Propostas da sponsurs - Sustegna %1$s cun propostas occasiunalas sponsurisadas - Propostas da %1$s - + Retschaiva propostas dal web en connex cun tia tschertga Avrir colliaziuns en apps @@ -638,7 +638,7 @@ Ulteriuras infurmaziuns - + %s classic Seria d\'art @@ -656,8 +656,8 @@ Novs supplements stattan ussa a disposiziun - - Scuvra dapli che 100 novas extensiuns per persunalisar Firefox. + + Scuvra dapli che 100 novas extensiuns per persunalisar LeOSium. Scuvrir ils supplements @@ -724,7 +724,7 @@ Tabs retschavids - Communicaziuns per tabs retschavids dad auters apparats cun Firefox. + Communicaziuns per tabs retschavids dad auters apparats cun LeOSium. Tab retschavì @@ -904,7 +904,7 @@ Allontanar Activs - + %1$s po installar ed exequir studis da temp en temp. Ulteriuras infurmaziuns @@ -1276,7 +1276,7 @@ Colliar in auter apparat - Per trametter in tab stos ti t\'annunziar tar Firefox sin almain in auter apparat. + Per trametter in tab stos ti t\'annunziar tar LeOSium sin almain in auter apparat. Chapì @@ -1304,10 +1304,10 @@ - Firefox è svelt e privat + LeOSium è svelt e privat - Fa da Firefox tes navigatur da standard + Fa da LeOSium tes navigatur da standard Emprova il modus privat - Gida per plaschair a meglierar Firefox cun participar ad ina curta enquista. + Gida per plaschair a meglierar LeOSium cun participar ad ina curta enquista. Participar a l\'enquista @@ -1477,16 +1477,16 @@ Scannar il code - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pront per scannar T\'annunzia cun tia camera Utilisar l\'e-mail - - Creescha in per sincronisar Firefox tranter differents apparats.]]> - + + Creescha in per sincronisar LeOSium tranter differents apparats.]]> + %s chala da sincronisar tes conto, ma las datas da navigaziun restan sin quest apparat. Deconnectar @@ -1503,7 +1503,7 @@ Ussa cun la protecziun totala cunter cookies, enfin ussa nossa bloccada la pli effectiva da cookies che vulan ta persequitar sur pliras websites. - + %s ta protegia da blers dals fastizaders ils pli frequents che registreschan tias activitads online. Ulteriuras infurmaziuns @@ -1672,9 +1672,9 @@ Mai memorisar - + Emplenir automaticamain en %1$s - + Emplenir automaticamain e memorisar nums d\'utilisader e pleds-clav en websites durant l\'utilisaziun da %1$s. Emplenir automaticamain en autras applicaziuns @@ -2096,14 +2096,14 @@ Colliar in auter apparat. Re-autentifitgescha per plaschair. - + Activescha p.pl. la sincronisaziun da tabs. - Ti n\'has nagins tabs da Firefox averts sin auters apparats. - + Ti n\'has nagins tabs da LeOSium averts sin auters apparats. + Mussar ina glista dals tabs da tes auters apparats. - + S\'annunziar tar Sync @@ -2155,7 +2155,7 @@ Serrar automaticamain suenter in mais? - Firefox po serrar tabs che ti n\'has betg consultà durant l\'ultim mais. + LeOSium po serrar tabs che ti n\'has betg consultà durant l\'ultim mais. ACTIVAR LA SERRADA AUTOMATICA @@ -2163,8 +2163,8 @@ Activà la serrada automatica - - Firefox propona + + LeOSium propona Tschertga da Google @@ -2175,7 +2175,7 @@ Mida tes navigatur standard - Definescha che colliaziuns da websites, e-mails e messadis vegnan averts automaticamain en Firefox. + Definescha che colliaziuns da websites, e-mails e messadis vegnan averts automaticamain en LeOSium. Allontanar @@ -2199,7 +2199,7 @@ Cun agid da %s. - Part da la paletta da products Firefox. %s + Part da la paletta da products LeOSium. %s Ulteriuras infurmaziuns @@ -2322,9 +2322,9 @@ Controllar la qualitad da las recensiuns Emprova noss guid fidà per recensiuns da products - + Ve a savair quant fidablas che recensiuns da products èn sin %1$s avant che ti als cumpras. Il verificatur da recensiuns, ina funcziun experimentala da %2$s, è integrada directamain en il navigatur. Quai funcziuna cun %3$s ed era cun %4$s. - + Ve a savair quant fidablas che las recensiuns dals products èn sin %1$s avant che ti als cumpras. La verificaziun da recensiuns, ina funcziun experimentala da %2$s, è integrada directamain en il navigatur. Nus duvrain il potenzial da %1$s da Mozilla per ta gidar ad evitar recensiuns nunautenticas e tendenziusas. Noss model dad intelligenza artifiziala vegn meglierà permanentamain per ta proteger durant che ti fas cumpras. %2$s @@ -2393,7 +2393,7 @@ avrir la colliaziun per vegnir a savair dapli davart questa collecziun leger l\'artitgel - + avrir la colliaziun per vegnir a savair dapli %s, titel @@ -2411,7 +2411,7 @@ Emprova las translaziuns privatas en %1$s Per la protecziun da tias datas, na bandunan ils texts mai tes apparat. Novas linguas ed optimaziuns suondan prest! %1$s - + Ulteriuras infurmaziuns Translatar da diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 9246776b..2eff0eb3 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -50,7 +50,7 @@ %1$s îți șterge cookie-urile, istoricul și datele site-urilor când închizi toate ferestrele private. %2$s Motor de căutare %s - Ne place să te protejăm @@ -211,23 +210,23 @@ Păstrează-ți datele criptate când treci de pe un dispozitiv pe altul - Când ești autentificat și sincronizat, ești mai în siguranță. Firefox criptează parolele, marcajele și multe altele. + Note: The word "LeOSium" should NOT be translated --> + Când ești autentificat și sincronizat, ești mai în siguranță. LeOSium criptează parolele, marcajele și multe altele. - Notificările te ajută să fii mai în siguranță cu Firefox + Note: The word "LeOSium" should NOT be translated --> + Notificările te ajută să fii mai în siguranță cu LeOSium - Trimite-ți securizat file între dispozitive și descoperă alte funcții de confidențialitate în Firefox. + Note: The word "LeOSium" should NOT be translated --> + Trimite-ți securizat file între dispozitive și descoperă alte funcții de confidențialitate în LeOSium. - Încearcă widgetul de căutare Firefox + Note: The word "LeOSium" should NOT be translated --> + Încearcă widgetul de căutare LeOSium - Cu Firefox pe ecranul de start vei avea acces facil la primul browser orientat pe confidențailitate care blochează elementele de urmărire inter-site-uri. + Note: The word "LeOSium" should NOT be translated --> + Cu LeOSium pe ecranul de start vei avea acces facil la primul browser orientat pe confidențailitate care blochează elementele de urmărire inter-site-uri. - Adaugă widgetul Firefox + Note: The word "LeOSium" should NOT be translated --> + Adaugă widgetul LeOSium Nu acum @@ -357,7 +356,7 @@ Marcaje - Date de autentificare + Date de autentificare File deschise @@ -382,11 +381,14 @@ and the third is the device model. --> %1$s pe %2$s %3$s + + Metode de plată + File primite - Notificări pentru file primite de la alte dispozitive Firefox. + Notificări pentru file primite de la alte dispozitive LeOSium. Filă primită @@ -766,7 +768,7 @@ Conectează alt dispozitiv - Pentru a trimite o filă, intră în contul Firefox de pe cel puțin un alt dispozitiv. + Pentru a trimite o filă, intră în contul LeOSium de pe cel puțin un alt dispozitiv. Am înțeles @@ -887,14 +889,14 @@ Scananează codul - https://firefox.com/pair]]> + https://firefox.com/pair]]> Gata de scanare Autentificare cu camera Folosește e-mailul în schimb - + %s va înceta să se mai sincronizeze cu contul tău, dar nu va șterge nimic din datele de navigare de pe acest dispozitiv. Deconectează-te @@ -1033,34 +1035,34 @@ Poți adăuga cu ușurință acest site web în ecranul de start al dispozitivului pentru acces instant și o navigare mai rapidă, ca și cum ai fi într-o aplicație. - Date de autentificare și parole + Date de autentificare și parole - Salvează datele de autentificare și parolele + Salvează datele de autentificare și parolele Întreabă pentru salvare Nu salva niciodată - - Sincronizează datele de autentificare + + Sincronizează datele de autentificare - Sincronizează datele de autentificare între dispozitive + Sincronizează datele de autentificare între dispozitive - Date de autentificare salvate + Date de autentificare salvate - Aici vor apărea datele de autentificare pe care le salvezi sau le sincronizezi în %s. + Aici vor apărea datele de autentificare pe care le salvezi sau le sincronizezi în %s. - Află mai multe despre Sync. + Află mai multe despre Sync. Excepții - Aici vor apărea datele de autentificare și parolele nesalvate. + Aici vor apărea datele de autentificare și parolele nesalvate. - Datele de autentificare și parolele nu vor fi salvate pentru aceste site-uri. + Datele de autentificare și parolele nu vor fi salvate pentru aceste site-uri. Șterge toate excepțiile - Caută date de autentificare + Caută date de autentificare Site @@ -1082,12 +1084,12 @@ Ascunde parola - Deblochează pentru a vizualiza datele de autentificare salvate + Deblochează pentru a vizualiza datele de autentificare salvate - Securizează-ți datele de autentificare și parolele + Securizează-ți datele de autentificare și parolele - Configurează un șablon de blocare a dispozitivului, un PIN sau o parolă pentru a-ți proteja datele de autentificare și parolele salvate împotriva accesării de către altcineva care are dispozitivul. + Configurează un șablon de blocare a dispozitivului, un PIN sau o parolă pentru a-ți proteja datele de autentificare și parolele salvate împotriva accesării de către altcineva care are dispozitivul. Mai târziu @@ -1104,7 +1106,12 @@ Folosite ultima dată - Meniu de sortare a datelor de autentificare + Meniu de sortare a datelor de autentificare + + + Metode de plată + + Salvează și completează metodele de plată Adaugă un motor de căutare @@ -1163,24 +1170,24 @@ Editează - Sigur vrei să ștergi aceste date de autentificare? + Sigur vrei să ștergi aceste date de autentificare? Șterge - Opțiuni de autentificare + Opțiuni de autentificare - Câmpul de text editabil pentru adresa web a datelor de autentificare. + Câmpul de text editabil pentru adresa web a datelor de autentificare. - Câmpul de text editabil pentru numele de utilizator al datelor de autentificare. + Câmpul de text editabil pentru numele de utilizator al datelor de autentificare. - Câmp de text editabil pentru parola datelor de autentificare. + Câmp de text editabil pentru parola datelor de autentificare. - Salvează modificările datelor de autentificare. + Salvează modificările datelor de autentificare. - Editează + Editează - Necesită o parolă + Necesită o parolă Căutare vocală @@ -1193,13 +1200,13 @@ Conectează alt dispozitiv. Te rugăm să te autentifici din nou. - + Te rugăm să activezi sincronizarea filelor. - Nu ai nicio filă deschisă în Firefox pe celelalte dispozitive. - + Nu ai nicio filă deschisă în LeOSium pe celelalte dispozitive. + Afișează o listă de file de pe celelalte dispozitive. - + Intră în contul Sync @@ -1225,4 +1232,11 @@ + + + Oferă întotdeauna traducerea + + + Suprascrie oferirea traducerii + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6ec82e81..36651b89 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -74,7 +74,7 @@ Не оставлять следов на этом устройстве %1$s удаляет ваши куки, историю и данные сайтов, когда вы закрываете все свои приватные вкладки. %2$s Перевести страницу + + Страница переведена с %1$s на %2$s. + Текущий язык @@ -339,13 +344,23 @@ - Уведомление о конфиденциальности Firefox - + Уведомление о конфиденциальности LeOSium + + Узнайте больше в нашем уведомлении о конфиденциальности Нам нравится обеспечивать вашу безопасность + + Узнайте, почему миллионы людей любят LeOSium + + Безопасный веб-сёрфинг с большим выбором Наш браузер, поддерживаемый некоммерческой организацией, помогает не давать компаниям следить за вами в Интернете. + Более 100 миллионов человек защищают свою приватность, выбирая браузер, поддерживаемый некоммерческой организацией. + + Известные трекеры? Блокируются автоматически. Расширения? Попробовать все 700. PDF-файлы? Наша встроенная программа чтения позволяет легко ими управлять. + Наш браузер, поддерживаемый некоммерческой организацией, помогает ограничивать компании от слежки за вами в Интернете.\n\nПодробнее читайте в нашем уведомлении о конфиденциальности. @@ -357,32 +372,32 @@ Оставайтесь зашифрованными при переходе между устройствами - Когда вы вошли в систему и провели синхронизацию, вы в большей безопасности. Firefox шифрует ваши пароли, закладки и многое другое. + Note: The word "LeOSium" should NOT be translated --> + Когда вы вошли в систему и провели синхронизацию, вы в большей безопасности. LeOSium шифрует ваши пароли, закладки и многое другое. Войти Не сейчас - Уведомления помогают вам оставаться в безопасности с Firefox + Note: The word "LeOSium" should NOT be translated --> + Уведомления помогают вам оставаться в безопасности с LeOSium - Безопасно пересылайте вкладки между своими устройствами и откройте для себя другие функции конфиденциальности в Firefox. + Note: The word "LeOSium" should NOT be translated --> + Безопасно пересылайте вкладки между своими устройствами и откройте для себя другие функции конфиденциальности в LeOSium. Включить уведомления Не сейчас - Попробуйте виджет поиска Firefox + Note: The word "LeOSium" should NOT be translated --> + Попробуйте виджет поиска LeOSium - Разместив Firefox на главном экране, вы получите легкий доступ к браузеру, ориентированному на конфиденциальность, который блокирует межсайтовое отслеживание. + Note: The word "LeOSium" should NOT be translated --> + Разместив LeOSium на главном экране, вы получите легкий доступ к браузеру, ориентированному на конфиденциальность, который блокирует межсайтовое отслеживание. - Добавить виджет Firefox + Note: The word "LeOSium" should NOT be translated --> + Добавить виджет LeOSium Не сейчас @@ -423,10 +438,10 @@ Предложения от поисковых систем Настройки адресной строки - - Адресная строка - Firefox Suggest - - Узнайте больше о Firefox Suggest + + Адресная строка - LeOSium Suggest + + Узнайте больше о LeOSium Suggest Оценить в Google Play Автозаполнение URL - + Предложения от спонсоров - Поддержать %1$s периодическими предложениями от спонсоров - Предложения от %1$s - + Получать предложения из сети на основе вашего поиска Открывать ссылки в приложениях @@ -653,7 +668,7 @@ Подробнее - + Классический %s Художественная серия @@ -672,8 +687,8 @@ Доступны новые дополнения - - Ознакомьтесь с более чем 100 новыми расширениями, которые позволят вам сделать Firefox своим собственным. + + Ознакомьтесь с более чем 100 новыми расширениями, которые позволят вам сделать LeOSium своим собственным. Исследуйте дополнения @@ -701,9 +716,9 @@ Закладки - Пароли + Пароли - Пароли + Пароли Открытые вкладки @@ -729,9 +744,9 @@ %1$s на %2$s %3$s - Банковские карты + Банковские карты - Способы оплаты + Способы оплаты Адреса @@ -739,7 +754,7 @@ Вкладки с других устройств - Уведомления о вкладках, полученных с других устройств Firefox. + Уведомления о вкладках, полученных с других устройств LeOSium. Полученная вкладка @@ -922,7 +937,7 @@ Удалить Активно - + %1$s может время от времени устанавливать и проводить исследования. Узнать больше @@ -1311,7 +1326,7 @@ Подключить другое устройство - Чтобы отправить вкладку, войдите в Firefox хотя бы на ещё одном устройстве. + Чтобы отправить вкладку, войдите в LeOSium хотя бы на ещё одном устройстве. Понятно @@ -1340,10 +1355,10 @@ - Firefox быстрый и приватный + LeOSium быстрый и приватный - Сделайте Firefox вашим браузером по умолчанию + Сделайте LeOSium вашим браузером по умолчанию Попробуйте приватный просмотр - Пожалуйста, помогите сделать Firefox лучше, приняв участие в небольшом опросе. + Пожалуйста, помогите сделать LeOSium лучше, приняв участие в небольшом опросе. Пройти опрос @@ -1517,16 +1532,16 @@ Считывание штрих-кода - https://firefox.com/pair]]> + https://firefox.com/pair]]> Считать штрих-код Войти с помощью камеры Использовать электронную почту - - Создайте его, чтобы синхронизировать Firefox между устройствами.]]> - + + Создайте его, чтобы синхронизировать LeOSium между устройствами.]]> + %s прекратит синхронизацию с вашим аккаунтом, но не будет удалять ничего из ваших данных веб-сёрфинга на этом устройстве. Отсоединить @@ -1542,7 +1557,7 @@ Улучшенная защита от отслеживания Теперь у нас есть полная защита от кук, наша самая крепкая преграда против межсайтовых трекеров. - + %s защищает вас от многих наиболее распространённых трекеров, которые следят за вами, когда вы находитесь в сети. Узнать больше @@ -1693,20 +1708,20 @@ Вы можете легко добавить этот сайт на домашний экран вашего устройства, чтобы иметь к нему мгновенный доступ. - Пароли + Пароли - Пароли + Пароли - Сохранение паролей + Сохранение паролей - Сохранять пароли + Сохранять пароли Предлагать сохранить Никогда не сохранять - + Автозаполнение в %1$s - + Заполнять и сохранять имена пользователей и пароли на веб-сайтах при использовании %1$s. Автозаполнение в других приложениях @@ -1714,48 +1729,48 @@ Заполнять имена пользователей и пароли в других приложениях на вашем устройстве. - Добавить логин + Добавить логин - Добавить пароль + Добавить пароль - - Синхронизация логинов - Синхронизировать пароли + Синхронизация логинов + + Синхронизировать пароли - Синхронизировать логины между устройствами + Синхронизировать логины между устройствами - Синхронизировать пароли между устройствами + Синхронизировать пароли между устройствами - Сохранённые пароли + Сохранённые пароли - Сохранённые пароли + Сохранённые пароли - Пароли, которые вы сохраняете или синхронизируете в %s, появятся тут. + Пароли, которые вы сохраняете или синхронизируете в %s, появятся тут. - Пароли, которые вы сохраните или синхронизируете в %s, будут показаны здесь. Все сохраняемые вами пароли зашифрованы. + Пароли, которые вы сохраните или синхронизируете в %s, будут показаны здесь. Все сохраняемые вами пароли зашифрованы. - Узнайте больше о синхронизации. + Узнайте больше о синхронизации. - Узнайте больше о синхронизации + Узнайте больше о синхронизации Исключения - Здесь будут показаны не сохраняемые логины и пароли. + Здесь будут показаны не сохраняемые логины и пароли. - %s не будет сохранять пароли для перечисленных здесь сайтов. + %s не будет сохранять пароли для перечисленных здесь сайтов. - Логины и пароли для этих сайтов сохраняться не будут. + Логины и пароли для этих сайтов сохраняться не будут. - %s не будет сохранять пароли для этих сайтов. + %s не будет сохранять пароли для этих сайтов. Удалить все исключения - Поиск логинов + Поиск логинов - Поиск паролей + Поиск паролей Сайт @@ -1783,17 +1798,17 @@ Скрыть пароль - Разблокируйте, чтобы просмотреть сохранённые пароли + Разблокируйте, чтобы просмотреть сохранённые пароли - Разблокируйте, чтобы просмотреть сохранённые пароли + Разблокируйте, чтобы просмотреть сохранённые пароли - Защитите свои логины и пароли + Защитите свои логины и пароли - Защитите сохранённые пароли + Защитите сохранённые пароли - Настройте графический ключ, Пин-код или пароль для блокировки устройства, чтобы защитить сохранённые пароли, если кто-либо ещё получит доступ к вашему устройству. + Настройте графический ключ, Пин-код или пароль для блокировки устройства, чтобы защитить сохранённые пароли, если кто-либо ещё получит доступ к вашему устройству. - Настройте графический ключ, пин-код или пароль для разблокировки устройства, чтобы защитить сохранённые пароли на случай, если кто-либо ещё получит доступ к вашему устройству. + Настройте графический ключ, пин-код или пароль для разблокировки устройства, чтобы защитить сохранённые пароли на случай, если кто-либо ещё получит доступ к вашему устройству. Позже @@ -1810,10 +1825,10 @@ По последнему использованию - Меню сортировки логинов + Меню сортировки логинов - Меню сортировки паролей + Меню сортировки паролей @@ -1821,43 +1836,43 @@ Адреса - Банковские карты + Банковские карты - Способы оплаты + Способы оплаты - Сохранять и автоматически заполнять данные карт + Сохранять и автоматически заполнять данные карт - Сохранить и заполнять способы оплаты + Сохранить и заполнять способы оплаты - Данные зашифрованы + Данные зашифрованы - %s шифрует все сохраняемые вами способы оплаты + %s шифрует все сохраняемые вами способы оплаты Синхронизировать карты между различными устройствами Синхронизировать карты - Добавить банковскую карту + Добавить банковскую карту - Добавить карту + Добавить карту - Управление сохранёнными картами + Управление сохранёнными картами - Управление картами + Управление картами Добавить адрес Управление адресами - Сохранять и автоматически заполнять адреса + Сохранять и автоматически заполнять адреса - Сохранять и заполнять адреса + Сохранять и заполнять адреса - Включая такие сведения, как номера, адреса эл. почты и доставок + Включая такие сведения, как номера, адреса эл. почты и доставок - Включает номера телефонов и адреса электронной почты + Включает номера телефонов и адреса электронной почты Добавить карту @@ -1878,9 +1893,9 @@ Удалить карту - Вы уверены, что хотите удалить эту банковскую карту? + Вы уверены, что хотите удалить эту банковскую карту? - Удалить карту? + Удалить карту? Удалить @@ -1893,24 +1908,24 @@ Сохранённые карты - Пожалуйста, введите правильный номер карты + Пожалуйста, введите правильный номер карты - Введите корректный номер карты + Введите корректный номер карты - Пожалуйста, заполните это поле + Пожалуйста, заполните это поле - Добавьте имя + Добавьте имя Разблокируйте, чтобы просмотреть сохранённые карты - Защитите свои банковские карты + Защитите свои банковские карты - Защитите сохранённые способы оплаты + Защитите сохранённые способы оплаты - Настройте графический ключ, Пин-код или пароль для блокировки устройства, чтобы защитить сохранённые банковские карты, если кто-либо ещё получит доступ к вашему устройству. + Настройте графический ключ, Пин-код или пароль для блокировки устройства, чтобы защитить сохранённые банковские карты, если кто-либо ещё получит доступ к вашему устройству. - Настройте графический ключ, Пин-код или пароль для разблокировки устройства, чтобы защитить сохранённые способы оплаты, на случай, если кто-либо ещё получит доступ к вашему устройству. + Настройте графический ключ, Пин-код или пароль для разблокировки устройства, чтобы защитить сохранённые способы оплаты, на случай, если кто-либо ещё получит доступ к вашему устройству. Настроить сейчас @@ -1918,10 +1933,10 @@ Разблокируйте своё устройство - Разблокируйте, чтобы использовать сохранённые данные банковской карты + Разблокируйте, чтобы использовать сохранённые данные банковской карты - Разблокируйте, чтобы использовать сохранённые способы оплаты + Разблокируйте, чтобы использовать сохранённые способы оплаты Добавить адрес @@ -1929,11 +1944,13 @@ Управление адресами - Имя + Имя - Отчество + Отчество - Фамилия + Фамилия + + Название Улица @@ -1957,9 +1974,9 @@ Удалить адрес - Вы уверены, что хотите удалить этот адрес? + Вы уверены, что хотите удалить этот адрес? - Удалить этот адрес? + Удалить этот адрес? Удалить @@ -2057,49 +2074,49 @@ Править - Вы уверены, что хотите удалить этот пароль? + Вы уверены, что хотите удалить этот пароль? - Вы уверены, что хотите удалить этот пароль? + Вы уверены, что хотите удалить этот пароль? Удалить Отмена - Настройки логина + Настройки логина - Настройки пароля + Настройки пароля - Редактируемое текстовое поле для веб-адреса логина. + Редактируемое текстовое поле для веб-адреса логина. - Редактируемое текстовое поле для адреса веб-сайта. + Редактируемое текстовое поле для адреса веб-сайта. - Редактируемое текстовое поле для имени пользователя логина. + Редактируемое текстовое поле для имени пользователя логина. - Редактируемое текстовое поле для имени пользователя. + Редактируемое текстовое поле для имени пользователя. - Редактируемое текстовое поле для пароля логина. + Редактируемое текстовое поле для пароля логина. - Редактируемое текстовое поле для пароля. + Редактируемое текстовое поле для пароля. - Сохранить изменения в логине. + Сохранить изменения в логине. - Сохранить изменения. + Сохранить изменения. - Правка + Правка - Изменить пароль + Изменить пароль - Добавить новый логин + Добавить новый логин - Добавить пароль + Добавить пароль - Требуется пароль + Требуется пароль - Введите пароль + Введите пароль - Требуется имя пользователя + Требуется имя пользователя - Введите имя пользователя + Введите имя пользователя Введите имя сервера @@ -2124,13 +2141,13 @@ Подключить другое устройство. Пожалуйста, авторизуйтесь повторно. - + Пожалуйста, включите синхронизацию вкладок. - На ваших других устройствах в Firefox не открыто ни одной вкладки. - + На ваших других устройствах в LeOSium не открыто ни одной вкладки. + Просмотрите список вкладок с других устройств. - + Войти в Синхронизацию @@ -2183,7 +2200,7 @@ Автоматически закрывать через месяц? - Firefox может закрывать вкладки, к которым вы не обращались за последний месяц. + LeOSium может закрывать вкладки, к которым вы не обращались за последний месяц. ВКЛЮЧИТЬ АВТОЗАКРЫТИЕ @@ -2191,8 +2208,8 @@ Автозакрытие включено - - Firefox Suggest + + LeOSium Suggest Поиск в Google @@ -2203,7 +2220,7 @@ Смените браузер по умолчанию - Настройте автоматическое открытие ссылок с сайтов, из электронных писем и сообщений в Firefox. + Настройте автоматическое открытие ссылок с сайтов, из электронных писем и сообщений в LeOSium. Убрать @@ -2212,7 +2229,7 @@ Нажмите, чтобы узнать больше - Перейти наверх + Перейти наверх Закрыть @@ -2227,7 +2244,7 @@ При поддержке %s. - Является частью семейства Firefox. %s + Является частью семейства LeOSium. %s Узнать больше @@ -2253,8 +2270,6 @@ Скорректированный рейтинг - Недостоверные отзывы удалены - На основе достоверных отзывов Основные моменты из недавних обзоров @@ -2310,10 +2325,6 @@ Если вы увидите, что этот товар снова в наличии, сообщите об этом, и мы проверим отзывы. Сообщить о наличии товара на складе - - Проверяем качество отзывов - - Проверяем качество отзывов Проверка качество отзывов (%s) @@ -2350,22 +2361,28 @@ Проверить качество отзывов Оцените наше руководство по достоверности отзывов на продукты - + Прежде чем купить, посмотрите, насколько достоверны отзывы о товаре на %1$s. Проверка отзывов — экспериментальная функция от %2$s — встроена прямо в браузер. Она также работает на %3$s и %4$s. - + Прежде чем купить, посмотрите, насколько надежны отзывы о продуктах на %1$s. Проверка отзывов, экспериментальная функция от %2$s, встроена прямо в браузер. Используя возможности %1$s от Mozilla, мы помогаем вам избежать предвзятых и недостоверных отзывов. Наша модель искусственного интеллекта постоянно совершенствуется, чтобы защитить вас во время покупок. %2$s Узнать больше - Выбрав «Да, попробовать», вы соглашаетесь с %1$s принимая %2$s и %3$s от Mozilla. + Выбрав «Да, попробовать», вы соглашаетесь с %1$s принимая %2$s и %3$s от Mozilla. Выбирая «Да, попробовать», вы соглашаетесь со следующим от %1$s: + + Выбрав «Да, попробовать», вы соглашаетесь с %2$s %1$s и %4$s %3$s. + + Выбрав «Да, попробовать», вы соглашаетесь с %2$s %1$s и %4$s %3$s. - политику приватности + политику приватности Политика конфиденциальности + + уведомление о конфиденциальности условия использования @@ -2422,7 +2439,7 @@ откройте ссылку, чтобы узнать больше об этом сборнике прочитать статью - + перейдите по ссылке, чтобы узнать больше @@ -2457,6 +2474,8 @@ Вы уверены, что хотите удалить файл кэша метаданных аддонов? Да Отмена + Поиск по открытым вкладкам + Диалоговое окно завершения %s, Заголовок @@ -2470,11 +2489,15 @@ Перевести эту страницу? + + Страница переведена с %1$s на %2$s Попробуйте конфиденциальные переводы в %1$s Для вашей конфиденциальности переводы никогда не покидают ваше устройство. Скоро появятся новые языки и улучшения! %1$s - + Узнать больше Перевести с @@ -2482,6 +2505,8 @@ Перевести на Не сейчас + + Показать оригинал Готово @@ -2504,6 +2529,16 @@ Узнать больше + + Перевод… + + + Загрузить язык в режиме сохранения трафика (%1$s)? + + Настройки перевода diff --git a/app/src/main/res/values-sat/strings.xml b/app/src/main/res/values-sat/strings.xml index a96a4790..cb14cbeb 100644 --- a/app/src/main/res/values-sat/strings.xml +++ b/app/src/main/res/values-sat/strings.xml @@ -220,6 +220,7 @@ ᱚᱲᱟᱜᱥᱟᱦᱴᱟ ᱠᱩᱥᱤᱛᱮ ᱫᱚᱦᱚᱭ ᱢᱮ + ᱚᱲᱟᱜ ᱥᱠᱨᱤᱱ @@ -235,8 +236,6 @@ ᱥᱠᱟᱱ - - ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱤᱧᱡᱤᱱ ᱥᱟᱡᱟᱣ ᱠᱚ @@ -292,56 +291,26 @@ - %s ᱮᱛᱞᱟᱤᱭᱟᱹ ᱥᱟᱞᱟᱜ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱹᱢᱤ ᱠᱚᱨᱟᱣ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜᱼᱟᱭ + %s ᱮᱛᱞᱟᱤᱭᱟᱹ ᱥᱟᱞᱟᱜ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱹᱢᱤ ᱠᱚᱨᱟᱣ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜᱼᱟᱭ - ᱟᱢᱟᱜ ᱴᱮᱵᱽ ᱠᱚ ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱢᱩᱫᱽ ᱨᱮ ᱥᱤᱱᱠᱨᱚᱱᱤᱠᱮᱥᱚᱱ ᱢᱮ, ᱰᱟᱣᱩᱱᱞᱚᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ, %s ᱦᱟᱜ ᱯᱨᱟᱭᱵᱷᱮᱥᱤ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱠᱷᱚᱱ ᱡᱚᱛᱚ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱥ ᱧᱟᱢ ᱢᱮ, ᱟᱨᱦᱚᱸ ᱟᱭᱢᱟ ᱡᱤᱱᱤᱥ ᱵᱟᱲᱟᱭ ᱡᱚᱝ ᱢᱮ ᱾ + ᱟᱢᱟᱜ ᱴᱮᱵᱽ ᱠᱚ ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱢᱩᱫᱽ ᱨᱮ ᱥᱤᱱᱠᱨᱚᱱᱤᱠᱮᱥᱚᱱ ᱢᱮ, ᱰᱟᱣᱩᱱᱞᱚᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ, %s ᱦᱟᱜ ᱯᱨᱟᱭᱵᱷᱮᱥᱤ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱠᱷᱚᱱ ᱡᱚᱛᱚ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱥ ᱧᱟᱢ ᱢᱮ, ᱟᱨᱦᱚᱸ ᱟᱭᱢᱟ ᱡᱤᱱᱤᱥ ᱵᱟᱲᱟᱭ ᱡᱚᱝ ᱢᱮ ᱾ - ᱞᱮᱛᱟᱲ + ᱞᱮᱛᱟᱲ - ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ + ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ - - - %s ᱟᱢᱟᱜ ᱠᱩᱥᱤ ᱵᱽᱨᱟᱣᱡᱚᱨ ᱛᱮᱭᱟᱨ ᱢᱮ - - Firefox ᱫᱚ ᱟᱢᱟᱜ ᱱᱤᱡᱚᱨᱟᱜ ᱵᱽᱨᱟᱣᱡᱚᱨ ᱦᱟᱛᱟᱣ ᱢᱮ - - %1$s ᱫᱚ ᱦᱚᱲ ᱠᱚ ᱵᱮᱯᱟᱨ ᱠᱷᱚᱱ ᱢᱩᱬᱩᱛ ᱨᱮ ᱫᱚᱦᱚᱭᱟ ᱟᱨ ᱠᱨᱚᱥ-ᱥᱟᱭᱤᱴ ᱴᱨᱮᱠᱚᱨ ᱵᱞᱚᱠ ᱠᱟᱛᱮ ᱟᱢᱟᱜ ᱯᱨᱟᱵᱷᱮᱴᱤ ᱫᱚᱦᱚᱭᱟ ᱾\n\n ᱟᱞᱮᱭᱟᱜ %2$s ᱨᱮ ᱰᱷᱮᱨ ᱵᱟᱲᱟᱭ ᱢᱮ ᱾ - - Firefox ᱫᱚ ᱦᱚᱲ ᱠᱚ ᱵᱮᱯᱟᱨ ᱠᱷᱚᱱ ᱢᱩᱬᱩᱛ ᱨᱮ ᱫᱚᱦᱚᱭᱟ ᱟᱨ ᱠᱨᱚᱥ-ᱥᱟᱭᱤᱴ ᱴᱨᱮᱠᱚᱨ ᱵᱞᱚᱠ ᱠᱟᱛᱮ ᱟᱢᱟᱜ ᱯᱨᱟᱵᱷᱮᱴᱤ ᱫᱚᱦᱚᱭᱟ ᱾\n\n ᱟᱞᱮᱭᱟᱜ ᱫᱟᱱᱟᱝ ᱠᱷᱚᱵᱚᱨ ᱨᱮ ᱰᱷᱮᱨ ᱵᱟᱲᱟᱭ ᱢᱮ ᱾ - ᱱᱤᱥᱚᱱ ᱨᱮᱭᱟᱜ ᱱᱚᱴᱤᱥ + ᱱᱤᱥᱚᱱ ᱨᱮᱭᱟᱜ ᱱᱚᱴᱤᱥ ᱢᱩᱞ ᱵᱽᱨᱟᱣᱩᱡᱟᱹᱨ ᱞᱮᱠᱷᱟ ᱥᱟᱡᱟᱣ ᱢᱮ ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ - - ᱯᱷᱚᱱ ᱠᱷᱚᱱ ᱞᱮᱯᱴᱚᱯ ᱛᱮ ᱩᱪᱟᱹᱲ ᱢᱮ ᱵᱟᱨ ᱯᱟᱦᱴᱮ ᱞᱮᱠᱟᱛᱮ - - ᱴᱮᱵᱽ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱫᱚ ᱮᱴᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱡᱟᱦᱟᱸ ᱨᱮ ᱟᱲᱟᱜ ᱞᱮᱫᱟᱢ ᱚᱱᱰᱮ ᱠᱷᱚᱱ ᱯᱟᱧᱡᱟ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ ᱾ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ - - %s ᱮᱛᱞᱟᱤᱭᱟᱹ ᱥᱟᱞᱟᱜ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱹᱢᱤ ᱠᱚᱨᱟᱣ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜᱼᱟᱭ - - Firefox ᱮᱛᱞᱟᱤᱭᱟᱹ ᱥᱟᱞᱟᱜ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱹᱢᱤ ᱠᱚᱨᱟᱣ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜᱼᱟᱭ - - ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱛᱟᱞᱟᱨᱮ ᱴᱟᱵᱽ ᱠᱚ ᱩᱪᱟᱹᱲ ᱢᱮ, ᱰᱟᱣᱩᱱᱞᱚᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ, ᱟᱨ %s ᱠᱷᱚᱱ ᱡᱚᱛᱚ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱥ ᱧᱟᱢ ᱢᱮ ᱾ - - ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱛᱟᱞᱟᱨᱮ ᱴᱟᱵᱽ ᱠᱚ ᱩᱪᱟᱹᱲ ᱢᱮ, ᱰᱟᱣᱩᱱᱞᱚᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ, ᱟᱨ Firefox ᱠᱷᱚᱱ ᱡᱚᱛᱚ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱥ ᱧᱟᱢ ᱢᱮ ᱾ ᱠᱷᱚᱵᱚᱨ ᱠᱚ ᱦᱮᱡ ᱪᱷᱚᱭ ᱢᱮ @@ -366,8 +335,6 @@ ᱵᱟᱵᱚᱛ ᱢᱤᱫᱴᱟᱝ ᱵᱟᱪᱷᱟᱣ ᱢᱮ - - ᱥᱮᱸᱫᱽᱨᱟ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱢᱮᱱᱮᱡᱽ ᱢᱮ ᱥᱮᱸᱫᱽᱨᱟ ᱢᱮᱱᱩ ᱨᱮ ᱧᱮᱞᱚᱜ ᱠᱟᱱ ᱤᱧᱡᱤᱱ ᱠᱚ ᱥᱟᱯᱲᱟᱣ ᱢᱮ @@ -378,8 +345,6 @@ ᱥᱮᱸᱫᱽᱨᱟ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ - - ᱴᱷᱤᱠᱟᱹᱱᱟ ᱦᱩᱨᱠᱟᱹᱬ ᱜᱩᱜᱚᱞ ᱯᱞᱮ ᱨᱮ ᱫᱚᱨ ᱢᱮ ᱠᱷᱟᱹᱞᱤᱼHTTPS ᱢᱳᱰ - - ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱠᱷᱟᱴᱚ - - ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱠᱷᱟᱴᱚᱭ ᱢᱮ - - - ᱵᱚᱸᱫᱚ - - ᱪᱟᱹᱞᱩ - - %1$s ᱫᱚ ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱨᱮ ᱠᱩᱠᱤ ᱞᱟᱹᱱᱟᱹᱭ ᱠᱚ ᱚᱡ ᱞᱮᱠᱟᱛᱮ ᱵᱟᱭ ᱩᱫᱩᱜ ᱮᱫᱟᱭ ᱾ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱚᱱᱫ ᱜᱮᱭᱟ @@ -433,31 +387,10 @@ ᱜᱚᱲᱚ ᱱᱮᱦᱚᱨ ᱵᱷᱮᱡᱟ ᱮᱱᱟ ᱥᱟᱭᱟᱴ ᱱᱤᱛᱚᱜ ᱥᱟᱵ ᱨᱮ ᱵᱟᱹᱱᱩᱜᱼᱟ - - %1$s ᱞᱟᱹᱜᱤᱫ ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱨᱮᱰᱟᱹᱠᱥᱚᱱ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ? - - - %1$s ᱞᱟᱹᱜᱤᱫ ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱨᱮᱰᱟᱹᱠᱥᱚᱱ ᱵᱚᱱᱫᱚᱭᱟᱢ ᱥᱮ? ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱨᱮ %1$s ᱫᱚ ᱟᱡ ᱛᱮ ᱠᱩᱠᱤ ᱱᱚᱦᱚᱨ ᱵᱟᱝ ᱢᱟᱱᱟ ᱫᱟᱲᱮᱭᱟᱜ ᱠᱟᱱᱟᱭ ᱾ ᱵᱷᱚᱵᱤᱥᱚᱛ ᱨᱮ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱜᱚᱲᱚ ᱮᱢ ᱞᱟᱹᱜᱤᱫ ᱱᱮᱦᱚᱨ ᱵᱷᱮᱡᱟ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ ᱾ - - %1$s ᱫᱚ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴᱟᱜ ᱠᱩᱠᱤ ᱠᱚ ᱢᱮᱴᱟᱣᱟᱭ ᱟᱨ ᱥᱟᱦᱴᱟ ᱯᱷᱟᱨᱪᱟ ᱜᱚᱫ ᱠᱟᱜᱼᱟᱭ ᱾ ᱡᱷᱚᱛᱚ ᱠᱩᱠᱤ ᱠᱚ ᱢᱮᱴᱟᱣ ᱞᱮᱠᱷᱟᱱ ᱟᱢ ᱵᱟᱦᱨᱮ ᱛᱮ ᱚᱰᱚᱠᱚᱜᱼᱟᱢ ᱟᱨᱵᱟᱝ ᱠᱤᱨᱤᱧ ᱵᱚᱥᱛᱟ ᱫᱚ ᱠᱷᱟᱹᱞᱤᱜ ᱛᱟᱢᱟᱸ ᱾ - - - %1$s ᱫᱚ ᱥᱚᱦᱚᱫ ᱮᱢᱚᱜ ᱥᱟᱭᱤᱴ ᱠᱚ ᱞᱟᱹᱜᱤᱫ ᱟᱡ ᱛᱮ ᱡᱷᱚᱛᱚ ᱠᱩᱠᱤ ᱱᱮᱦᱚᱨ ᱵᱟᱹᱨᱜᱤᱞ ᱜᱤᱰᱤ ᱞᱟᱹᱜᱤᱫ ᱪᱮᱥᱴᱟ ᱮᱫᱟᱭ ᱾ - - - ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱵᱟᱹᱨᱜᱤᱞ ᱜᱤᱰᱤ ᱞᱟᱹᱜᱤᱫ %1$s ᱦᱚᱠ ᱮᱢᱟᱭ ᱟᱢ ᱥᱮ ? - - %1$s ᱫᱚ ᱟᱡ ᱛᱮ ᱟᱹᱰᱤᱜᱟᱱ ᱠᱩᱠᱤ ᱵᱮᱱᱚᱨ ᱱᱮᱦᱚᱨ ᱵᱟᱹᱨᱜᱤᱞ ᱜᱤᱰᱤ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱭ ᱾ - - ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ - - ᱟᱢ ᱫᱚ ᱠᱩᱠᱤ ᱱᱮᱦᱚᱨ ᱠᱚ ᱠᱚᱢ ᱜᱮ ᱧᱮᱞ ᱟᱢ - - ᱦᱮᱥᱟᱨᱤᱭᱟᱹ ᱵᱮᱰᱷᱟᱣ ᱠᱟᱱᱟ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱞᱟᱹᱜᱤᱫ ᱛᱮ HTTPS ᱫᱟᱱᱟᱝ ᱵᱮᱵᱷᱟᱨ ᱛᱮ ᱥᱟᱭᱤᱴ ᱠᱚ ᱥᱟᱞᱟᱜ ᱟᱡ ᱛᱮ ᱡᱩᱲᱟᱹᱣ ᱵᱤᱲᱟᱹᱣ ᱾ @@ -481,12 +414,8 @@ ᱢᱮᱱᱠᱷᱟᱱ, ᱱᱚᱶᱟ ᱦᱚᱸ ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜᱼᱟ ᱡᱮ ᱢᱤᱫᱴᱟᱝ ᱢᱩᱸᱦᱟᱹ ᱤᱡ ᱦᱚᱸ ᱛᱟᱦᱮᱸ ᱠᱚᱜᱼᱟᱭ ᱾ ᱟᱢ ᱡᱩᱫᱤ ᱣᱮᱵᱽᱥᱟᱭᱤᱴ ᱥᱮᱫ ᱞᱟᱦᱟᱜ ᱠᱷᱟᱱ ᱫᱚᱢ, ᱟᱢ ᱫᱚ ᱡᱟᱦᱟᱱᱟᱜ ᱥᱚᱢᱵᱮᱫᱚᱱ ᱡᱤᱱᱤᱥ ᱟᱞᱚᱢ ᱟᱫᱮᱨ ᱛᱟᱢᱟᱸ ᱾ ᱡᱤᱫᱤ ᱟᱢ ᱞᱟᱦᱟᱜ ᱠᱷᱟᱱ, HTTPSᱼᱢᱳᱰ ᱫᱚ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱛᱤᱱᱟᱹᱜ ᱜᱟᱱ ᱚᱠᱛᱚ ᱞᱟᱹᱜᱤᱫ ᱵᱚᱸᱫᱚᱜᱼᱟ ᱾ ᱟᱹᱛᱩᱨ ᱫᱟᱲᱮᱭᱟᱜ - - ᱠᱟᱹᱥᱴᱚᱢ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱹᱨᱣᱟᱹᱨ ᱠᱩᱥᱤᱭᱟᱜ ᱥᱭᱝᱠ ᱥᱟᱹᱨᱣᱟᱹᱨ - - Firefox ᱠᱷᱟᱛᱟ/ ᱥᱭᱝᱠ ᱠᱟᱹᱨᱣᱟᱹᱨ ᱵᱚᱫᱚᱞᱮᱱᱟ ᱾ ᱵᱚᱫᱚᱞ ᱠᱚ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱫ ᱮᱯᱞᱤᱠᱮᱥᱚᱱ ᱵᱚᱸᱫᱚᱜ ᱠᱟᱱᱟ… ᱠᱷᱟᱛᱟ @@ -501,8 +430,6 @@ ᱠᱩᱥᱤᱭᱟᱜ ᱛᱮᱭᱟᱨ ᱟᱢᱟᱜ ᱴᱮᱵᱽ ᱠᱚ, ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ, ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱟᱨ ᱵᱟᱹᱲᱛᱤ ᱠᱚ ᱛᱚᱞ ᱡᱚᱠᱷᱟᱭ ᱞᱟᱹᱜᱤᱫ ᱥᱩᱦᱤ ᱮᱢ ᱢᱮ ᱾ - - Firefox ᱠᱷᱟᱛᱟ ᱥᱭᱝᱠ ᱠᱚ ᱪᱟᱹᱞᱩ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱫ ᱫᱩᱦᱲᱟᱹ ᱡᱩᱰᱟᱹᱣ @@ -513,8 +440,6 @@ ᱟᱸᱠᱲᱟ ᱛᱩᱢᱟᱹᱞ ᱨᱤᱢᱳᱴ ᱰᱤᱵᱚᱜᱤᱝ ᱣᱟᱭᱟ USB - - ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱠᱚ ᱩᱫᱩᱜ ᱢᱮ ᱥᱮᱸᱫᱽᱨᱟ ᱦᱩᱫᱤᱥ ᱠᱚ ᱩᱫᱩᱜ @@ -612,18 +537,12 @@ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ - + ᱠᱞᱟᱥᱤᱠ %s - - ᱥᱤᱢᱤᱛ ᱮᱰᱤᱥᱚᱱ ᱟᱴᱤᱥᱴ ᱥᱤᱨᱤᱡᱽ - - ᱱᱟᱶᱟ ᱥᱟᱫᱤᱱ ᱨᱚᱲ ᱛᱩᱢᱟᱹᱞ ᱾%s ᱱᱟᱶᱟ ᱥᱟᱫᱤᱱ ᱨᱚᱲ ᱛᱩᱢᱟᱹᱞ ᱾%s - - ᱱᱟᱶᱟ ᱥᱟᱫᱤᱱ ᱨᱚᱲ ᱛᱩᱢᱟᱹᱞ ᱾ ᱱᱟᱶᱟ ᱥᱟᱫᱤᱱ ᱨᱚᱲ ᱛᱩᱢᱟᱹᱞ ᱾ @@ -633,12 +552,6 @@ ᱰᱷᱮᱨ ᱠᱟᱱᱛᱷᱪᱤᱛᱟᱹᱨ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ - - - ᱮᱰᱼᱚᱱ ᱫᱚ ᱵᱟᱭ ᱟᱠᱟᱱᱟ - - ᱮᱰᱼᱚᱱ ᱢᱟᱲᱟᱝ ᱠᱷᱚᱱ ᱵᱚᱦᱟᱞ ᱟᱠᱟᱱᱟ - ᱠᱷᱟᱛᱟ ᱢᱮᱱᱮᱡᱽ ᱢᱮ @@ -651,7 +564,7 @@ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ - ᱵᱚᱞᱚᱱ ᱠᱚ + ᱵᱚᱞᱚᱱ ᱠᱚ ᱡᱷᱤᱡᱽ ᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ @@ -676,7 +589,7 @@ %1$s on %2$s %3$s - ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ + ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱴᱷᱤᱠᱬᱟᱤᱭᱟᱹ @@ -685,7 +598,7 @@ ᱧᱟᱢᱟᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ - ᱚᱞᱜᱟ Firefox ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵᱽ ᱠᱚ ᱨᱮᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ ᱧᱟᱢᱮᱱᱟ ᱾ + ᱚᱞᱜᱟ LeOSium ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵᱽ ᱠᱚ ᱨᱮᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ ᱧᱟᱢᱮᱱᱟ ᱾ ᱴᱮᱵᱽ ᱧᱟᱢᱮᱱᱟ @@ -875,7 +788,7 @@ ᱩᱥᱨᱟᱹᱣ - + %1$s ᱵᱚᱦᱟᱞ ᱫᱟᱲᱮᱭᱟᱜᱼᱟ ᱟᱨ ᱥᱚᱢᱚᱭ ᱠᱷᱚᱱ ᱥᱚᱢᱚᱨ ᱯᱟᱲᱦᱟᱣ ᱠᱚ ᱪᱟᱹᱞᱩᱜᱼᱟ ᱾ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -945,9 +858,9 @@ ᱛᱩᱢᱟᱹᱞ ᱧᱩᱛᱩᱢ - ᱨᱤᱱᱮᱢ - - ᱚᱪᱚᱜ ᱢᱮ + ᱨᱤᱱᱮᱢ + + ᱚᱪᱚᱜ ᱢᱮ ᱱᱟᱜᱟᱢ ᱠᱷᱚᱱ ᱢᱮᱴᱟᱣ ᱢᱮ @@ -1222,8 +1135,6 @@ ᱵᱚᱸᱫ - ᱪᱷᱟᱯᱟ ᱵᱟᱭ ᱜᱟᱱ ᱞᱮᱱᱟ - ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱪᱷᱟᱯᱟ ᱵᱟᱭ ᱜᱟᱱᱚᱜ ᱠᱟᱱᱟ ᱪᱷᱟᱯᱟ @@ -1250,7 +1161,7 @@ ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ - ᱴᱮᱵᱽ ᱵᱷᱮᱡᱟ ᱞᱟᱹᱜᱤᱫ, ᱢᱤᱫ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱥᱟᱫᱷᱚᱱ ᱛᱮ Firefox ᱨᱮ ᱵᱚᱞᱚᱱ ᱢᱮ ᱾ + ᱴᱮᱵᱽ ᱵᱷᱮᱡᱟ ᱞᱟᱹᱜᱤᱫ, ᱢᱤᱫ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱥᱟᱫᱷᱚᱱ ᱛᱮ LeOSium ᱨᱮ ᱵᱚᱞᱚᱱ ᱢᱮ ᱾ ᱵᱩᱡᱷᱟᱹᱣ ᱠᱮᱫᱟ @@ -1268,15 +1179,16 @@ ᱯᱨᱟᱭᱣᱮᱴ ᱴᱮᱵᱽ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + ᱢᱟᱨᱠᱮᱴᱤᱝ - Firefox ᱫᱚ ᱛᱮᱡᱽ ᱟᱨ ᱱᱤᱡᱮᱨᱟᱜ ᱜᱮ + LeOSium ᱫᱚ ᱛᱮᱡᱽ ᱟᱨ ᱱᱤᱡᱮᱨᱟᱜ ᱜᱮ - Firefox ᱟᱢᱟᱜ ᱢᱩᱞ ᱵᱽᱨᱟᱣᱡᱚᱨ ᱞᱮᱠᱷᱟ ᱫᱚᱦᱚᱭ ᱢᱮ + LeOSium ᱟᱢᱟᱜ ᱢᱩᱞ ᱵᱽᱨᱟᱣᱡᱚᱨ ᱞᱮᱠᱷᱟ ᱫᱚᱦᱚᱭ ᱢᱮ ᱱᱤᱡᱚᱨᱟᱜ ᱵᱽᱨᱟᱣᱡᱤᱝ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱞᱮᱢ @@ -1297,7 +1209,7 @@ - ᱠᱷᱟᱴᱚ ᱥᱚᱨᱵᱷᱮ ᱞᱮᱠᱷᱟᱛᱮ Firefox ᱥᱩᱫᱷᱟᱨ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜ ᱢᱮ ᱾ + ᱠᱷᱟᱴᱚ ᱥᱚᱨᱵᱷᱮ ᱞᱮᱠᱷᱟᱛᱮ LeOSium ᱥᱩᱫᱷᱟᱨ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢᱚᱜ ᱢᱮ ᱾ ᱥᱚᱨᱵᱷᱮ ᱤᱫᱤ ᱢᱮ @@ -1368,14 +1280,11 @@ %d ᱴᱮᱵᱽ ᱠᱚ - ᱵᱽᱨᱟᱣᱩᱡᱤᱝ ᱱᱟᱜᱟᱢ ᱟᱨ ᱥᱟᱭᱤᱴ ᱰᱟᱴᱟ ᱱᱟᱜᱟᱢ ᱯᱟᱱᱛᱮ %d ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ - - ᱠᱩᱠᱤᱡ ᱠᱚ ᱠᱩᱠᱤᱡᱽ ᱟᱨ ᱥᱟᱭᱤᱴ ᱰᱟᱴᱟ @@ -1431,63 +1340,10 @@ ᱫᱳᱞ ᱢᱮᱴᱟᱣ ᱦᱩᱭ - - ᱢᱤᱫᱴᱟᱝ ᱵᱮᱥ ᱤᱱᱴᱚᱨᱱᱮᱴ ᱨᱮ ᱟᱢᱟᱜ ᱥᱟᱹᱜᱩᱱ ᱫᱟᱨᱟᱢ - - ᱦᱚᱲ ᱠᱚ ᱞᱟᱹᱜᱤᱫ, ᱵᱤᱱ ᱞᱟᱵᱷ ᱨᱮᱭᱟᱜ ᱢᱤᱫᱴᱟᱝ ᱵᱽᱨᱟᱣᱡᱚᱨ ᱾ - - ᱪᱟᱞᱟᱜ ᱢᱮ ᱡᱟᱦᱟᱸ ᱨᱮ ᱢᱟᱲᱟᱝ ᱛᱟᱦᱮᱸ ᱠᱟᱱᱟᱢ - - ᱟᱨᱟᱢ ᱛᱮ ᱯᱚᱨᱫᱟ ᱠᱚ ᱩᱪᱟᱹᱲ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱫᱷᱚᱱ ᱥᱟᱨᱟ ᱨᱮ ᱴᱮᱵᱽ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚᱨᱮ ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱢᱮ ᱾ - - ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱥᱭᱝᱠ ᱪᱟᱹᱞᱩ ᱢᱮᱱᱟᱜ-ᱟ - - ᱢᱩᱞ ᱞᱮᱠᱷᱟᱛᱮ ᱱᱤᱥᱚᱱ ᱨᱩᱠᱷᱤᱭᱟᱹᱭ ᱢᱮ - - %1$s ᱫᱚ ᱵᱟᱦᱨᱮ ᱠᱚᱢᱯᱟᱱᱤ ᱠᱚ ᱣᱮᱵᱽ ᱨᱮ ᱟᱢ ᱯᱟᱸᱡᱟ ᱠᱚ ᱵᱚᱸᱫᱚᱜᱼᱟ ᱾ - - ᱡᱷᱚᱛᱚ ᱥᱟᱭᱤᱴ ᱠᱚᱨᱮ ᱠᱩᱠᱤ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ ᱵᱟᱹᱲ ᱪᱷᱚ ᱞᱟᱹᱜᱤᱫ ᱢᱩᱴ ᱠᱩᱠᱤ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱫᱮᱠᱷᱟᱣᱜ ᱠᱟᱱᱟ ᱾ - - ᱵᱮᱥᱟᱜ (ᱢᱩᱞ ᱯᱷᱮᱲᱟᱛ) - - ᱯᱨᱟᱭᱣᱮᱥᱭ ᱟᱨ ᱯᱚᱨᱯᱷᱚᱨᱢᱮᱱᱥ ᱞᱟᱹᱜᱤᱫ ᱥᱚᱢᱟᱱ ᱾ ᱥᱟᱦᱴᱟ ᱢᱩᱞ ᱞᱮᱠᱷᱟᱛᱮ ᱞᱟᱫᱮᱜᱼᱟ ᱾ - - ᱱᱤᱦᱟᱹᱛ - - ᱥᱟᱦᱴᱟ ᱞᱚᱜᱚᱱ ᱞᱳᱰ ᱞᱟᱹᱜᱤᱫ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ ᱵᱞᱚᱠ ᱠᱚᱣᱟᱭ, ᱦᱮᱞᱮ ᱥᱟᱦᱴᱟ ᱞᱳᱰ ᱨᱮ ᱰᱤᱜᱟᱹᱣ ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜᱼᱟ ᱾ - - ᱟᱢᱟᱜ ᱴᱩᱞᱵᱟᱨ ᱯᱞᱮᱥᱢᱮᱱᱴ ᱨᱟᱠᱟᱵᱽ ᱛᱟᱢ - - - ᱞᱟᱛᱟᱨ ᱨᱮ ᱫᱚᱦᱚᱭ ᱢᱮ, ᱵᱟᱝᱠᱷᱟᱱ ᱪᱮᱛᱟᱱ ᱥᱮᱫ ᱩᱪᱟᱹᱲ ᱢᱮ ᱾ - - ᱟᱢᱟᱜ ᱰᱟᱴᱟ ᱟᱢᱟᱜ ᱠᱚᱵᱚᱡᱽ ᱨᱮ ᱛᱟᱦᱮᱱ ᱟ - - Firefox ᱴᱷᱮᱱ ᱡᱟᱦᱱᱟᱜ ᱜᱮ ᱟᱢ ᱚᱱᱞᱟᱭᱤᱱ ᱦᱟᱹᱴᱤᱧ ᱮᱫᱟᱢ ᱟᱨ ᱟᱢ ᱟᱞᱮ ᱥᱟᱶ ᱪᱮᱫ ᱮᱢ ᱦᱟᱹᱴᱤᱧ ᱮᱫᱟᱢ ᱚᱱᱟ ᱨᱮᱭᱟᱜ ᱠᱚᱵᱚᱡᱽ ᱮᱢᱟᱢ ᱠᱟᱱᱟᱭ ᱾ - - ᱟᱞᱮᱭᱟᱜ ᱱᱤᱥᱚᱱ ᱱᱚᱴᱤᱥ ᱯᱟᱲᱦᱟᱣ ᱯᱮ - - - ᱟᱹᱰᱤ ᱱᱟᱯᱟᱭ ᱤᱱᱴᱚᱨᱱᱮᱴ ᱠᱷᱩᱞᱟᱹ ᱞᱟᱹᱜᱤᱫ ᱥᱚᱡᱽ ᱜᱮᱭᱟᱢ ᱥᱮ ? - - ᱵᱽᱨᱟᱣᱩᱡᱤᱝ ᱮᱦᱚᱵᱽ ᱢᱮ - - ᱩᱭᱦᱟᱹᱨ ᱵᱟᱪᱷᱟᱣ ᱛᱟᱢ - - ᱛᱤᱱᱟᱹᱜ ᱜᱟᱱ ᱵᱮᱴᱨᱭ ᱵᱚᱪᱚᱛ ᱢᱮ ᱟᱨ ᱟᱢᱟᱜ ᱢᱮᱫ ᱵᱟᱧᱪᱟᱣ ᱛᱟᱢ ᱧᱩᱛ ᱩᱭᱦᱟᱹᱨ ᱪᱟᱹᱞᱩ ᱠᱟᱛᱮ ᱾ - - ᱟᱡ ᱛᱮ - - ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱥᱟᱡᱟᱣ ᱦᱟᱛᱟᱣ ᱟᱭ - - ᱧᱩᱛ ᱩᱭᱦᱟᱹᱨ - - ᱢᱟᱨᱥᱟᱞ ᱩᱭᱦᱟᱹᱨ - ᱴᱮᱵᱽ ᱠᱚ ᱠᱩᱞ ᱦᱩᱭᱮᱱᱟ! @@ -1499,16 +1355,16 @@ ᱠᱳᱰ ᱥᱠᱟᱱ ᱢᱮ - https://firefox.com/pair ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ]]> + https://firefox.com/pair ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ]]> ᱥᱠᱟᱱ ᱞᱚᱜᱤᱫᱛᱮ ᱛᱮᱭᱟᱨ ᱢᱮᱱᱟᱢᱼᱟ ᱟᱢᱟᱜ ᱠᱮᱢᱮᱨᱟ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ ᱵᱟᱹᱫᱟᱹᱞ ᱛᱮ ᱮᱢᱮᱞ ᱵᱮᱵᱷᱟᱨ ᱢᱮ - - ᱢᱤᱫᱴᱟᱝ ᱛᱮᱭᱟᱨ ᱢᱮ ᱰᱥᱫᱷᱚᱱ ᱠᱚ ᱵᱷᱤᱛᱨᱤ ᱨᱮ Firefox ᱥᱭᱝᱠ ᱞᱟᱹᱜᱤᱫ ᱾]]> - + + ᱢᱤᱫᱴᱟᱝ ᱛᱮᱭᱟᱨ ᱢᱮ ᱰᱥᱫᱷᱚᱱ ᱠᱚ ᱵᱷᱤᱛᱨᱤ ᱨᱮ LeOSium ᱥᱭᱝᱠ ᱞᱟᱹᱜᱤᱫ ᱾]]> + %s ᱫᱚ ᱟᱢᱟᱜ ᱠᱷᱟᱛᱟ ᱥᱟᱞᱟᱜ ᱥᱭᱝᱠ ᱵᱚᱸᱫᱽᱚᱭ ᱟ , ᱦᱮᱞᱮ ᱟᱢᱟᱜ ᱚᱠᱟ ᱵᱽᱨᱟᱣᱩᱡᱤᱸᱝ ᱰᱟᱴᱟ ᱦᱚᱸ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱟᱭ ᱢᱮᱴᱟᱣᱜᱼᱟ ᱾ ᱡᱚᱱᱚᱲᱟᱣ ᱚᱪᱚᱜ @@ -1524,7 +1380,7 @@ ᱵᱟᱲᱦᱟᱣᱟᱠᱟᱱ ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ ᱱᱤᱛᱚᱜ ᱢᱩᱴ ᱜᱚᱴᱟ ᱥᱟᱦᱴᱟ ᱠᱩᱠᱤ ᱦᱮᱡ ᱥᱮᱴᱮᱨ ᱮᱱᱟ, ᱱᱚᱣᱟ ᱫᱚ ᱠᱨᱚᱥ-ᱥᱟᱭᱤᱴ ᱴᱨᱮᱠᱚᱨ ᱠᱚ ᱞᱟᱹᱜᱤᱫ ᱱᱤᱛ ᱦᱟᱹᱵᱤᱡ ᱡᱚᱛᱚ ᱠᱷᱚᱱ ᱢᱟᱨᱟᱝ ᱟᱠᱚᱴ ᱥᱟᱫᱷᱚᱱ ᱠᱟᱱᱟ ᱾ - + ​%s​ ᱫᱚ ᱟᱭᱢᱟ ᱥᱚᱢᱟᱱ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ ᱴᱷᱮᱱ ᱠᱷᱚᱱ ᱚᱱᱞᱟᱭᱤᱱ ᱨᱩᱠᱷᱤᱭᱟᱹᱭ ᱢᱮᱟᱭ ᱾ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -1673,17 +1529,17 @@ ᱟᱢ ᱞᱚᱜᱚᱱ ᱵᱽᱨᱟᱣᱩᱡᱽ ᱟᱨ ᱮᱯ ᱞᱮᱠᱷᱟᱱ ᱢᱟᱨᱠᱷᱤ ᱤᱫᱤ ᱞᱟᱹᱜᱤᱫ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱫᱚ ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱚᱲᱟᱜ ᱥᱠᱨᱤᱱ ᱨᱮ ᱥᱮᱞᱮᱫᱽ ᱫᱟᱲᱮᱟᱜᱼᱟᱢ ᱾ - ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ + ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ - ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱥᱟᱺᱪᱟᱣ ᱢᱮ + ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱥᱟᱺᱪᱟᱣ ᱢᱮ ᱥᱟᱺᱪᱟᱣ ᱞᱟᱹᱜᱤᱫᱛᱮ ᱠᱩᱠᱞᱤ ᱛᱤᱥ ᱦᱚᱸ ᱟᱞᱳᱢ ᱥᱟᱺᱪᱟᱣᱼᱟ - + %1$s ᱨᱮ ᱟᱡ ᱛᱮ ᱯᱩᱨᱟᱹᱣ - + %1$s ᱨᱮᱭᱟᱜ ᱵᱮᱵᱷᱟᱨ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱨᱮ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱯᱩᱨᱟᱹᱣ ᱟᱨ ᱥᱟᱺᱪᱟᱣ ᱢᱮ ᱾ ᱮᱴᱟᱜ ᱮᱯᱥ ᱨᱮ ᱟᱡ ᱛᱮ ᱯᱩᱨᱟᱹᱣ @@ -1691,28 +1547,28 @@ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱯᱩᱨᱟᱹᱣ ᱢᱮ ᱾ - ᱵᱚᱞᱚ ᱥᱮᱞᱮᱫ ᱢᱮ + ᱵᱚᱞᱚ ᱥᱮᱞᱮᱫ ᱢᱮ - - ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱭᱝᱠ ᱢᱮ + + ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱭᱝᱠ ᱢᱮ - ᱡᱷᱚᱛᱚ ᱥᱟᱫᱷᱚᱱ ᱵᱷᱤᱛᱨᱤ ᱨᱮ ᱵᱚᱞᱚ ᱠᱚ ᱥᱭᱝᱠ ᱢᱮ + ᱡᱷᱚᱛᱚ ᱥᱟᱫᱷᱚᱱ ᱵᱷᱤᱛᱨᱤ ᱨᱮ ᱵᱚᱞᱚ ᱠᱚ ᱥᱭᱝᱠ ᱢᱮ - ᱥᱟᱺᱪᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ + ᱥᱟᱺᱪᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ - ᱞᱚᱜᱤᱱ ᱚᱠᱟ %s ᱨᱮ ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱥᱭᱝᱠ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ ᱚᱱᱟ ᱠᱚ ᱱᱚᱰᱮ ᱫᱮᱠᱷᱟᱣᱜᱼᱟ ᱾ + ᱞᱚᱜᱤᱱ ᱚᱠᱟ %s ᱨᱮ ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱥᱭᱝᱠ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ ᱚᱱᱟ ᱠᱚ ᱱᱚᱰᱮ ᱫᱮᱠᱷᱟᱣᱜᱼᱟ ᱾ - ᱥᱭᱝᱠ ᱵᱟᱵᱚᱛ ᱡᱟᱹᱥᱛᱤ ᱵᱟᱰᱟᱭ ᱢᱮ ᱾ + ᱥᱭᱝᱠ ᱵᱟᱵᱚᱛ ᱡᱟᱹᱥᱛᱤ ᱵᱟᱰᱟᱭ ᱢᱮ ᱾ ᱪᱷᱟᱰᱟ ᱠᱚ - ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱡᱟ ᱵᱟᱝ ᱥᱟᱺᱪᱟᱣ ᱠᱟᱱᱟ ᱚᱱᱟᱠᱩ ᱱᱚᱰᱮ ᱩᱫᱩᱜᱚᱣᱟ ᱾ + ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱡᱟ ᱵᱟᱝ ᱥᱟᱺᱪᱟᱣ ᱠᱟᱱᱟ ᱚᱱᱟᱠᱩ ᱱᱚᱰᱮ ᱩᱫᱩᱜᱚᱣᱟ ᱾ - ᱞᱚᱜᱤᱱᱥ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱫᱚ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱟᱝ ᱥᱟᱺᱪᱟᱣᱜᱼᱟ ᱾ + ᱞᱚᱜᱤᱱᱥ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱫᱚ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱟᱝ ᱥᱟᱺᱪᱟᱣᱜᱼᱟ ᱾ ᱡᱷᱚᱛᱚ ᱪᱷᱟᱰᱟᱠᱚ ᱢᱮᱴᱟᱣ ᱢᱮ - ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱥᱟᱭᱤᱴ @@ -1740,11 +1596,11 @@ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱩᱠᱩ - ᱥᱟᱺᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ + ᱥᱟᱺᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ - ᱟᱢᱟᱜ ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱡᱟᱯᱛᱤ ᱢᱮ + ᱟᱢᱟᱜ ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱡᱟᱯᱛᱤ ᱢᱮ - ᱥᱟᱫᱷᱚᱱ ᱠᱩᱞᱩᱯ ᱪᱤᱱᱦᱟᱹ, ᱯᱤᱱ, ᱟᱨ ᱵᱟᱝ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱞᱟᱜᱟᱣᱢᱮ ᱟᱢᱟᱜ ᱥᱟᱺᱪᱟᱣ ᱞᱚᱜᱤᱱ ᱠᱚ ᱮᱢᱟᱱ ᱨᱩᱠᱷᱭᱟ ᱞᱟᱹᱜᱤᱫ ᱡᱩᱫᱤ ᱚᱞᱜᱟ ᱦᱚᱲ ᱴᱷᱮᱱ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱾ + ᱥᱟᱫᱷᱚᱱ ᱠᱩᱞᱩᱯ ᱪᱤᱱᱦᱟᱹ, ᱯᱤᱱ, ᱟᱨ ᱵᱟᱝ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱞᱟᱜᱟᱣᱢᱮ ᱟᱢᱟᱜ ᱥᱟᱺᱪᱟᱣ ᱞᱚᱜᱤᱱ ᱠᱚ ᱮᱢᱟᱱ ᱨᱩᱠᱷᱭᱟ ᱞᱟᱹᱜᱤᱫ ᱡᱩᱫᱤ ᱚᱞᱜᱟ ᱦᱚᱲ ᱴᱷᱮᱱ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱾ ᱛᱟᱭᱚᱢ ᱛᱮ @@ -1761,7 +1617,7 @@ ᱢᱟᱲᱟᱝ ᱵᱮᱵᱷᱟᱨᱟᱜ - ᱞᱚᱜᱤᱱ ᱢᱮᱱᱭᱩ ᱥᱟᱞᱟᱭ ᱢᱮ + ᱞᱚᱜᱤᱱ ᱢᱮᱱᱭᱩ ᱥᱟᱞᱟᱭ ᱢᱮ @@ -1769,30 +1625,30 @@ ᱴᱷᱤᱠᱬᱟᱤᱭᱟᱹ - ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ + ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ - ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱠᱟᱰ ᱠᱚ ᱟᱡ ᱛᱮ ᱯᱮᱨᱮᱡᱽ ᱢᱮ + ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱠᱟᱰ ᱠᱚ ᱟᱡ ᱛᱮ ᱯᱮᱨᱮᱡᱽ ᱢᱮ - ᱰᱟᱴᱟ ᱫᱚ ᱮᱱᱠᱨᱤᱯᱴᱮᱰ ᱠᱟᱱᱟ + ᱰᱟᱴᱟ ᱫᱚ ᱮᱱᱠᱨᱤᱯᱴᱮᱰ ᱠᱟᱱᱟ ᱡᱷᱚᱛᱚ ᱥᱟᱫᱷᱚᱱ ᱵᱷᱤᱛᱨᱤ ᱨᱮ ᱠᱟᱰ ᱥᱭᱝᱠ ᱢᱮ ᱠᱟᱰ ᱥᱭᱝᱠ ᱢᱮ - ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱥᱮᱞᱮᱫᱽ ᱢᱮ + ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱥᱮᱞᱮᱫᱽ ᱢᱮ - ᱥᱟᱺᱪᱟᱣ ᱠᱟᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ + ᱥᱟᱺᱪᱟᱣ ᱠᱟᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ ᱴᱷᱤᱠᱬᱟᱹ ᱥᱮᱞᱮᱫ ᱢᱮ ᱴᱷᱤᱠᱬᱟᱹᱤᱭᱟᱹ ᱡᱚᱛᱚᱱ ᱮᱢ - ᱴᱷᱤᱬᱟᱹᱤᱭᱟᱹ ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱟᱡ ᱛᱮ ᱯᱮᱨᱮᱡ ᱢᱮ + ᱴᱷᱤᱬᱟᱹᱤᱭᱟᱹ ᱥᱟᱺᱪᱟᱣ ᱟᱨ ᱟᱡ ᱛᱮ ᱯᱮᱨᱮᱡ ᱢᱮ - ᱮᱞ, ᱤᱢᱮᱞ ᱟᱨ ᱵᱷᱮᱡᱟ ᱴᱷᱤᱠᱬᱟᱹ ᱞᱮᱠᱷᱟ ᱵᱤᱵᱨᱚᱬ ᱢᱮᱥᱟᱭ ᱢᱮ + ᱮᱞ, ᱤᱢᱮᱞ ᱟᱨ ᱵᱷᱮᱡᱟ ᱴᱷᱤᱠᱬᱟᱹ ᱞᱮᱠᱷᱟ ᱵᱤᱵᱨᱚᱬ ᱢᱮᱥᱟᱭ ᱢᱮ ᱠᱟᱰ ᱥᱮᱞᱮᱫᱽ ᱢᱮ @@ -1814,7 +1670,7 @@ ᱠᱟᱰ ᱢᱮᱴᱟᱣ ᱢᱮ - ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱛ ᱛᱮ? + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱛ ᱛᱮ? ᱢᱮᱴᱟᱣ ᱢᱮ @@ -1826,15 +1682,15 @@ ᱥᱟᱺᱪᱟᱣ ᱠᱟᱱ ᱠᱟᱰ - ᱴᱷᱤᱠ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱮᱞ ᱟᱫᱮᱨ ᱢᱮ + ᱴᱷᱤᱠ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱮᱞ ᱟᱫᱮᱨ ᱢᱮ - ᱱᱚᱶᱟ ᱡᱟᱭᱜᱟ ᱯᱮᱨᱮᱡᱽ ᱢᱮ + ᱱᱚᱶᱟ ᱡᱟᱭᱜᱟ ᱯᱮᱨᱮᱡᱽ ᱢᱮ ᱥᱟᱺᱪᱟᱣᱟᱠᱟᱱ ᱠᱟᱰ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ - ᱟᱢᱟᱜ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱨᱩᱠᱷᱤᱭᱟᱹᱭ ᱢᱮ + ᱟᱢᱟᱜ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱨᱩᱠᱷᱤᱭᱟᱹᱭ ᱢᱮ - ᱥᱟᱫᱷᱚᱱ ᱠᱩᱞᱩᱯ ᱪᱤᱱᱦᱟᱹ, ᱯᱤᱱ, ᱟᱨ ᱵᱟᱝ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱢᱟᱜ ᱥᱟᱺᱪᱟᱣ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱠᱚ ᱮᱢᱟᱱ ᱨᱩᱠᱷᱭᱟ ᱞᱟᱹᱜᱤᱫ ᱡᱩᱫᱤ ᱚᱞᱜᱟ ᱦᱚᱲ ᱴᱷᱮᱱ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱾ + ᱥᱟᱫᱷᱚᱱ ᱠᱩᱞᱩᱯ ᱪᱤᱱᱦᱟᱹ, ᱯᱤᱱ, ᱟᱨ ᱵᱟᱝ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱢᱟᱜ ᱥᱟᱺᱪᱟᱣ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱠᱚ ᱮᱢᱟᱱ ᱨᱩᱠᱷᱭᱟ ᱞᱟᱹᱜᱤᱫ ᱡᱩᱫᱤ ᱚᱞᱜᱟ ᱦᱚᱲ ᱴᱷᱮᱱ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱾ ᱱᱤᱛᱚᱜ ᱥᱟᱡᱟᱣ ᱢᱮ @@ -1842,7 +1698,7 @@ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱚᱱᱞᱚᱠ ᱢᱮ - ᱫᱚᱦᱚ ᱠᱟᱱ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱵᱤᱵᱨᱚᱬ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ + ᱫᱚᱦᱚ ᱠᱟᱱ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱵᱤᱵᱨᱚᱬ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱴᱷᱤᱠᱬᱟᱹ ᱥᱮᱞᱮᱫ ᱢᱮ @@ -1851,11 +1707,11 @@ ᱴᱷᱤᱠᱬᱟᱹᱤᱭᱟᱹ ᱡᱚᱛᱚᱱ ᱮᱢ - ᱯᱩᱭᱞᱩ ᱧᱩᱛᱩᱢ + ᱯᱩᱭᱞᱩ ᱧᱩᱛᱩᱢ - ᱛᱟᱞᱟ ᱧᱩᱛᱩᱢ + ᱛᱟᱞᱟ ᱧᱩᱛᱩᱢ - ᱢᱩᱪᱟᱹᱫ ᱧᱩᱛᱩᱢ + ᱢᱩᱪᱟᱹᱫ ᱧᱩᱛᱩᱢ ᱥᱚᱰᱚᱠ ᱴᱷᱤᱠᱬᱟᱹ @@ -1881,7 +1737,7 @@ ᱴᱷᱤᱠᱬᱟᱹ ᱢᱮᱴᱟᱣ ᱢᱮ - ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱴᱷᱤᱠᱬᱟᱹ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱛ ᱛᱮ? + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱴᱷᱤᱠᱬᱟᱹ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱛ ᱛᱮ? ᱢᱮᱴᱟᱣ ᱢᱮ @@ -1898,29 +1754,19 @@ ᱢᱤᱫᱴᱟᱝ ᱱᱟᱶᱟ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱥᱮᱞᱮᱫ ᱢᱮ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱥᱟᱯᱲᱟᱣ ᱢᱮ - - ᱥᱮᱞᱮᱫᱽ ᱢᱮ - - ᱥᱟᱺᱪᱟᱣ ᱥᱟᱯᱲᱟᱣ ᱢᱮᱴᱟᱣ ᱢᱮ - - ᱮᱴᱟᱜ-ᱟᱜ ᱧᱩᱛᱩᱢ - - ᱧᱩᱛᱩᱢ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱧᱩᱛᱩᱢ ᱥᱴᱨᱤᱝ URL ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ - ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱥᱴᱨᱭᱸᱜ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ - ᱥᱮᱸᱫᱽᱨᱟ ᱞᱟᱹᱜᱤᱫ URL ᱵᱮᱵᱷᱟᱨ “%s” ᱥᱟᱞᱟᱜ ᱠᱣᱮᱨᱭ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱡᱮᱢᱚᱱ:\nhttps://www.google.com/search?q=%s @@ -1932,8 +1778,6 @@ ᱥᱚᱞᱟᱦ ᱥᱮᱸᱫᱽᱨᱟ API URL - ᱯᱟᱱᱛᱮ ᱫᱚ “%s” ᱥᱟᱞᱟᱜ ᱛᱮ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱫᱟᱹᱭᱠᱟᱹ ᱺ \nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s - ᱯᱟᱱᱛᱮ ᱫᱚ “%s” ᱥᱟᱞᱟᱜ ᱛᱮ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱫᱟᱹᱭᱠᱟᱹ ᱺ \nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s ᱥᱟᱺᱪᱟᱣ ᱢᱮ @@ -1992,29 +1836,29 @@ ᱥᱟᱯᱲᱟᱣ - ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱞᱚᱜᱤᱱ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱫ ᱛᱮ? + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱞᱚᱜᱤᱱ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱫ ᱛᱮ? ᱢᱮᱴᱟᱣ ᱢᱮ ᱵᱟᱹᱰᱨᱟᱹ - ᱮᱴᱟᱜᱟᱜ ᱠᱚ ᱞᱚᱜᱤᱱ + ᱮᱴᱟᱜᱟᱜ ᱠᱚ ᱞᱚᱜᱤᱱ - ᱣᱤᱵ ᱴᱷᱤᱠᱬᱟᱹ ᱞᱚᱜᱤᱱ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + ᱣᱤᱵ ᱴᱷᱤᱠᱬᱟᱹ ᱞᱚᱜᱤᱱ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ - ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ - ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ - ᱞᱚᱜᱤᱱ ᱵᱚᱫᱚᱞ ᱠᱚ ᱥᱟᱺᱪᱟᱣ ᱢᱮ ᱾ + ᱞᱚᱜᱤᱱ ᱵᱚᱫᱚᱞ ᱠᱚ ᱥᱟᱺᱪᱟᱣ ᱢᱮ ᱾ - ᱥᱟᱯᱲᱟᱣ + ᱥᱟᱯᱲᱟᱣ - ᱱᱟᱶᱟ ᱵᱚᱞᱚ ᱥᱮᱞᱮᱫ ᱢᱮ + ᱱᱟᱶᱟ ᱵᱚᱞᱚ ᱥᱮᱞᱮᱫ ᱢᱮ - ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱨᱮᱭᱟᱜ ᱫᱚᱨᱠᱟᱨ ᱢᱮᱱᱟᱜ-ᱟ + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱨᱮᱭᱟᱜ ᱫᱚᱨᱠᱟᱨ ᱢᱮᱱᱟᱜ-ᱟ - ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱧᱩᱛᱩᱢ ᱫᱚᱨᱠᱟᱨ + ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱧᱩᱛᱩᱢ ᱫᱚᱨᱠᱟᱨ ᱦᱚᱥᱴᱧᱩᱛᱩᱢ ᱫᱚᱨᱠᱟᱨ ᱠᱟᱱᱟ @@ -2038,13 +1882,13 @@ ᱮᱴᱟᱜᱟᱼᱜ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ ᱾ ᱫᱚᱭᱟᱠᱟᱛᱮ ᱨᱤᱼᱚᱛᱷᱮᱱᱴᱤᱠᱮᱴ ᱢᱮ ᱾ - + ᱫᱚᱭᱟᱠᱟᱛᱮ ᱴᱮᱵᱽ ᱥᱭᱝᱠᱤᱝ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ ᱾ - ᱟᱢ ᱴᱷᱮᱱ ᱚᱠᱟ ᱦᱚᱸ ᱴᱮᱵᱽ ᱠᱚ ᱚᱞᱜᱟ Firefox ᱢᱮᱱᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱᱟ ᱾ - + ᱟᱢ ᱴᱷᱮᱱ ᱚᱠᱟ ᱦᱚᱸ ᱴᱮᱵᱽ ᱠᱚ ᱚᱞᱜᱟ LeOSium ᱢᱮᱱᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱᱟ ᱾ + ᱟᱢᱟᱜ ᱮᱴᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵᱽ ᱞᱤᱥᱴᱤ ᱫᱮᱠᱷᱟᱣ ᱢᱮ ᱾ - + ᱥᱭᱝᱠ ᱞᱟᱹᱜᱤᱫ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ ᱠᱷᱩᱞᱟᱹᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ ᱵᱟᱹᱱᱩᱜᱼᱟ @@ -2064,14 +1908,14 @@ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱠᱚ - - ᱧᱩᱛᱩᱢ + + ᱧᱩᱛᱩᱢ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱧᱩᱛᱩᱢ - - ᱴᱷᱤᱠ - - ᱵᱟᱹᱰᱨᱟᱹ + + ᱴᱷᱤᱠ + + ᱵᱟᱹᱰᱨᱟᱹ ᱥᱟᱡᱟᱣ ᱠᱚ @@ -2095,7 +1939,7 @@ ᱢᱤᱫ ᱪᱟᱸᱫᱚ ᱛᱟᱭᱚᱢ ᱟᱡ ᱛᱮ ᱵᱚᱸᱫᱽ ᱟᱢ ᱥᱮ? - ᱛᱤᱱᱟᱹᱜ ᱜᱟᱱ ᱪᱟᱸᱫᱚ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ Firefox ᱵᱚᱸᱫ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱭ᱾ + ᱛᱤᱱᱟᱹᱜ ᱜᱟᱱ ᱪᱟᱸᱫᱚ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ LeOSium ᱵᱚᱸᱫ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱭ᱾ ᱟᱡ ᱛᱮ ᱵᱚᱸᱫ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ @@ -2103,16 +1947,16 @@ ᱟᱡᱼᱛᱮᱼᱵᱚᱸᱫ ᱮᱢ ᱮᱱᱟ - - Firefox ᱵᱟᱛᱟᱣ + + LeOSium ᱵᱟᱛᱟᱣ Google ᱥᱮᱱᱫᱽᱨᱟ %s ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ - - Firefox ᱟᱡ ᱛᱮ ᱠᱷᱩᱞᱟᱹ ᱪᱷᱚ ᱞᱟᱹᱜᱤᱫ ᱣᱮᱵᱥᱟᱭᱤᱴ, ᱤᱢᱮᱞ, ᱟᱨ ᱢᱮᱥᱮᱡᱽ ᱨᱮᱭᱟᱜ ᱞᱤᱝᱠ ᱥᱮᱴ ᱢᱮ ᱾ + + LeOSium ᱟᱡ ᱛᱮ ᱠᱷᱩᱞᱟᱹ ᱪᱷᱚ ᱞᱟᱹᱜᱤᱫ ᱣᱮᱵᱥᱟᱭᱤᱴ, ᱤᱢᱮᱞ, ᱟᱨ ᱢᱮᱥᱮᱡᱽ ᱨᱮᱭᱟᱜ ᱞᱤᱝᱠ ᱥᱮᱴ ᱢᱮ ᱾ ᱚᱪᱟᱜ @@ -2121,7 +1965,7 @@ ᱟᱨᱦᱚᱸ ᱵᱤᱵᱨᱚᱬ ᱞᱟᱹᱜᱤᱫ ᱱᱚᱰᱮ ᱚᱛᱟᱭ ᱢᱮ - ᱪᱮᱛᱟᱱ ᱥᱮᱱ ᱱᱮᱣᱤᱜᱮᱴ ᱢᱮ + ᱪᱮᱛᱟᱱ ᱥᱮᱱ ᱱᱮᱣᱤᱜᱮᱴ ᱢᱮ ᱵᱚᱸᱫ @@ -2136,7 +1980,7 @@ %1$s ᱫᱟᱨᱟᱭ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ ᱾ - Firefox ᱜᱷᱟᱨᱚᱧᱡᱽ ᱨᱤᱱᱤᱡ ᱦᱟᱹᱴᱤᱧ ᱾ %s + LeOSium ᱜᱷᱟᱨᱚᱧᱡᱽ ᱨᱤᱱᱤᱡ ᱦᱟᱹᱴᱤᱧ ᱾ %s ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -2170,6 +2014,22 @@ ᱱᱚᱶᱟ ᱡᱟᱣᱨᱟ ᱵᱮᱵᱚᱫ ᱰᱷᱮᱨ ᱵᱟᱰᱟᱭ ᱞᱟᱹᱜᱤᱫ ᱞᱤᱝᱠ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱚᱱᱚᱞ ᱯᱟᱲᱦᱟᱣ ᱢᱮ - + ᱰᱷᱮᱨ ᱵᱟᱲᱟᱭ ᱞᱟᱹᱜᱤᱫ ᱞᱤᱝᱠ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ + + + + + + ᱢᱳᱴ + + ᱴᱮᱵᱽ ᱛᱮᱭᱟᱨ ᱦᱟᱹᱛᱤᱭᱟᱨ + + ᱛᱮᱭᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱮᱵᱽ ᱨᱮᱭᱟᱜ ᱛᱚᱲᱟᱜᱟᱱ + + ᱠᱟᱹᱢᱤ ᱠᱟᱱ ᱴᱮᱵᱽ ᱠᱚ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱵᱟᱝ ᱠᱟᱹᱢᱤ ᱴᱮᱵᱽᱠᱚᱨᱮ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵᱽ ᱥᱮᱞᱮᱫᱽ ᱢᱮ diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 84ed6eab..33aa5fc3 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -66,7 +66,7 @@ Non lasses rastros in custu dispositivu %1$s cantzellat testimòngios, cronologia e datos de is sitos cando serras totu is ventanas privadas. %2$s - Avisu de riservadesa de Firefox + Avisu de riservadesa de LeOSium Nos praghet a t’amparare @@ -318,11 +318,11 @@ Immoe nono - Is notìficas t’agiudant a èssere prus amparadu cun Firefox + Note: The word "LeOSium" should NOT be translated --> + Is notìficas t’agiudant a èssere prus amparadu cun LeOSium - Imbia in manera segura ischedas intre is dispositivos tuos e iscoberi àteras optziones de riservadesa in Firefox. + Note: The word "LeOSium" should NOT be translated --> + Imbia in manera segura ischedas intre is dispositivos tuos e iscoberi àteras optziones de riservadesa in LeOSium. Ativa is notìficas @@ -366,10 +366,10 @@ Cussìgios dae àteros motores de chirca Preferèntzias de sa barra de indiritzos - - Barra de indiritzos - Cussìgios de Firefox - - Àteras informatziones in pitzus de is cussìgios de Firefox + + Barra de indiritzos - Cussìgios de LeOSium + + Àteras informatziones in pitzus de is cussìgios de LeOSium Avalora in Google Play Cumpletamentu de URL in automàticu - + Cussìgios dae is ispònsors - Cussìgios dae %1$s - + Otene cussìgios de sa rete acapiados a sa chirca tua Aberi is ligòngios in is aplicatziones @@ -569,7 +569,7 @@ Impossìbile modificare s’isfundu de ischermu Àteras informatziones - + %s clàssicu Sa colletzione Boghes indipendentes. %s @@ -587,8 +587,8 @@ Cumplementos noos a disponimentu - - Controlla is prus de chentu estensiones noas chi ti permitint de personalizare Firefox. + + Controlla is prus de chentu estensiones noas chi ti permitint de personalizare LeOSium. Esplora cumplementos @@ -652,7 +652,7 @@ Ischedas retzidas - Notìficas pro ischedas retzidas dae àteros dispositivos Firefox. + Notìficas pro ischedas retzidas dae àteros dispositivos LeOSium. Ischeda retzida @@ -818,7 +818,7 @@ Boga Ativos - + %1$s podet installare e aviare istùdios ònnia tantu. Àteras informatziones @@ -1157,7 +1157,7 @@ Connete un’àteru dispositivu - Pro imbiare un’ischeda, identìfica·ti in Firefox in un’àteru dispositivu, a su mancu. + Pro imbiare un’ischeda, identìfica·ti in LeOSium in un’àteru dispositivu, a su mancu. Apo cumprèndidu @@ -1181,10 +1181,10 @@ - Firefox est lestru e privadu + LeOSium est lestru e privadu - Imprea Firefox comente navigadore predefinidu + Imprea LeOSium comente navigadore predefinidu Prova sa navigatzione privada @@ -1319,16 +1319,16 @@ Iscansiona su còdighe - https://firefox.com/pair]]> + https://firefox.com/pair]]> Iscansiona Identìfica·ti cun sa càmera Imprea sa posta eletrònica - - Crea·nde unu pro sincronizare Firefox intre dispositivos.]]> - + + Crea·nde unu pro sincronizare LeOSium intre dispositivos.]]> + %s at a firmare sa sincronizatzione de su contu tuo ma non s’ant a cantzellare is datos de navigatzione de custu dispositivu. Disconnete @@ -1455,9 +1455,9 @@ Pregunta·mi·ddu Non sarves mai - + Cumpletamentu automàticu in %1$s - + Cumpleta e salva nòmines de utente e craes in sitos cando impreas %1$s. Cumpletamentu automàticu in àteras aplicatziones @@ -1826,13 +1826,13 @@ Connete un’àteru dispositivu. Autèntica·ti torra. - + Ativa sa sincronizatzione de ischedas. - Nissuna ischeda aberta in su Firefox de is àteros dispositivos. - + Nissuna ischeda aberta in su LeOSium de is àteros dispositivos. + Ammustra una lista de ischedas abertas in àteros dispositivos tuos. - + Identìfica·ti a sync Nissuna ischeda aberta @@ -1871,22 +1871,22 @@ Boles serrare in automàticu a pustis de unu mese? - Firefox podet serrare is ischedas chi no apas visualizadu in s’ùrtimu mese. + LeOSium podet serrare is ischedas chi no apas visualizadu in s’ùrtimu mese. ATIVA SA SERRADA AUTOMÀTICA Serrada automàtica ativa - - Firefox cussìgiat + + LeOSium cussìgiat Chirca de Google Chirca cun %s - Aberi in Firefox in manera automàtica is ligòngios de sitos web, de posta eletrònica e de messàgios. + Aberi in LeOSium in manera automàtica is ligòngios de sitos web, de posta eletrònica e de messàgios. Boga @@ -1907,7 +1907,7 @@ Funtzionat gràtzias a %s. - Parte de sa famìlia de Firefox. %s + Parte de sa famìlia de LeOSium. %s Àteras informatziones @@ -2055,7 +2055,7 @@ leghe s’artìculu - + aberi su ligòngiu pro nde lèghere àteras informatziones Ligòngios @@ -2069,7 +2069,7 @@ Boles tradùere custa pàgina? Proa is tradutziones privadas in %1$s - + Àteras informatziones Tradue dae diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index dbbf589a..4d9b60a2 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -70,7 +70,7 @@ මෙම උපාංගයේ කිසිදු හෝඩුවාවක් නොතබයි ඔබ සියළුම පෞද්ගලික පටිති වැසූ විට, %1$s ඔබගේ දත්තකඩ, ඉතිහාසය සහ අඩවිවල දත්ත මකා දමයි. %2$s ඔබ උපාංග අතර පනින විට සංකේතිතව සිටින්න + Note: The word "LeOSium" should NOT be translated --> ඔබ ඇතුළු වී සමමුහූර්ත කළ විට, ඔබ ආරක්‍ෂිතයි. ෆයර්ෆොක්ස් ඔබගේ මුරපද, පොත්යොමු සහ වෙනත් දෑ සංකේතනය කරයි. පිවිසෙන්න දැන් නොවේ + Note: The word "LeOSium" should NOT be translated --> ෆයර්ෆොක්ස් සමඟ ආරක්‍ෂිතව සිටීමට දැනුම්දීම් උපකාරී වේ + Note: The word "LeOSium" should NOT be translated --> ඔබගේ උපාංග අතර ආරක්‍ෂිතව පටිති යවන්න සහ වෙනත් ෆයර්ෆොක්ස් රහස්‍යතා විශේෂාංග සොයා ගන්න. දැනුම්දීම් සක්‍රිය කරන්න @@ -361,7 +361,7 @@ දැන් නොවේ + Note: The word "LeOSium" should NOT be translated --> ඔබගේ මුල් තිරයේ ෆයර්ෆොක්ස් ඇත්නම්, හරස්-අඩවි ලුහුබැඳීම් අවහිර කරන පෞද්ගලිකත්‍වයට මුල්තැන දෙන අතිරික්සුවට පහසුවෙන් ප්‍රවේශ වීමට හැකිය. දැන් නොවේ @@ -401,9 +401,9 @@ සෙවුම් යන්ත්‍ර වලින් යෝජනා ලිපින තීරුවේ අභිප්‍රේත - + ලිපින තීරුව - ෆයර්ෆොක්ස් යෝජනා - + ෆයර්ෆොක්ස් යෝජනා ගැන තව දැනගන්න ගූගල් ප්ලේ හි අගයන්න @@ -542,15 +542,15 @@ ගිණුමේ සැකසුම් ඒ.ස.නි. ස්වයං පිරවීම - + අනුග්‍රහකයින්ගෙන් යෝජනා - ඉඳහිට අනුග්‍රහක යෝජනා හරහා %1$s සඳහා සහාය වන්න - %1$s වෙතින් යෝජනා - + ඔබගේ සෙවීමට අදාළ යෝජනා අන්තර්ජාලයෙන් ලබා ගන්න යෙදුම්වල සබැඳි අරින්න @@ -631,7 +631,7 @@ තව දැනගන්න - + පරණ %s කලාකරුවන්ගේ සරණිය @@ -649,7 +649,7 @@ දැන් නව එක්කහු තිබේ - + ෆයර්ෆොක්ස් අභිරුචිකරණයට උපකාරී වන නව දිගු 100 කට වඩා බලන්න. එක්කහු ගවේශනය @@ -903,7 +903,7 @@ ඉවත් කරන්න සක්‍රිය - + %1$s කලින් කලට අධ්‍යන ස්ථාපනය කර ධාවනය කරයි. තව දැනගන්න @@ -1478,9 +1478,9 @@ රූගතය සමඟ පිවිසෙන්න වි-තැපෑල යොදාගන්න - + එකක් සාදන්න]]> - + %s ඔබගේ ගිණුම සමග සමමුහූර්ත වීම නවත්වනු ඇත, නමුත් මෙම උපාංගයෙහි ඔබගේ පිරික්සුම් දත්ත කිසිවක් මකා නොදමනු ඇත. විසන්ධි @@ -1497,7 +1497,7 @@ දියුණු කළ ලුහුබැඳීමේ රැකවරණය පූර්ණ දත්තකඩ රැකවරණ විශේෂාංගය, හරස්-අඩවි ලුහුබැඳීම් වලට එරෙහි වන අපගේ බලවත්ම බාධකය. - + ඔබ මාර්ගගතව කරන දෑ සොයන බොහෝ පොදු ලුහුබැඳීම් වලින් %s ඔබව ආරක්‍ෂා කරයි. තව දැනගන්න @@ -1654,9 +1654,9 @@ සුරැකීමට අසන්න කිසිවිට නොසුරකින්න - + %1$s හි ඉබේ පිරවීම - + %1$s භාවිත කරන අතරතුර අඩවිවල පරිශීලක නාම සහ මුරපද පුරවා සුරකින්න. වෙනත් යෙදුම්වල ස්වයං පිරවීම @@ -2019,13 +2019,13 @@ අන් උපාංගයක් සබඳින්න. නැවත සත්‍යාපනය කරන්න. - + පටිති සමමුහූර්තය සබල කරන්න. ඔබගේ අනෙකුත් උපාංගවල ෆයර්ෆොක්ස් පටිති කිසිවක් විවෘත කර නැත. - + ඔබගේ අනෙකුත් උපාංගවල පටිති ලේඛනය බලන්න. - + සමමුහූර්තයට පිවිසෙන්න විවෘත පටිති නැත @@ -2079,7 +2079,7 @@ ස්වයං වැසීම සබලයි - + ෆයර්ෆොක්ස් යෝජනා ගූගල් සෙවුම @@ -2239,7 +2239,7 @@ මෙම එකතුව ගැන තව දැන ගැනීමට සබැඳිය අරින්න ලිපිය කියවන්න - + තව දැන ගැනීමට සබැඳිය අරින්න @@ -2247,7 +2247,7 @@ - + තව දැනගන්න diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 0694d909..b2aa0db5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -72,7 +72,7 @@ Keď zatvoríte všetky súkromné karty, %1$s odstráni vaše súbory cookie, históriu a údaje stránok. %2$s Upraviť domovskú stránku + Úvodná obrazovka @@ -258,6 +259,11 @@ Preložiť stránku + + Stránka bola preložená z jazyka %1$s do jazyka %2$s. + Vybraný jazyk @@ -336,13 +342,23 @@ - Vyhlásenie o ochrane osobných údajov Firefoxu - + Vyhlásenie o ochrane osobných údajov LeOSiumu + + Ďalšie informácie nájdete v našom Vyhlásení o ochrane osobných údajov Radi vás držíme v bezpečí + + Zistite, prečo milióny ľudí milujú LeOSium + + Bezpečné prehliadanie s viacerými možnosťami Náš neziskový prehliadač pomáha zabrániť spoločnostiam, aby vás tajne sledovali na webe. + Viac ako 100 miliónov ľudí chráni svoje súkromie výberom prehliadača, ktorého tvorcom je nezisková organizácia. + + Známi sledovacie prvky? Automaticky blokované. Rozšírenia? Vyskúšajte všetkých 700. Súbory PDF? Naša vstavaná čítačka uľahčuje prácu s nimi. + Náš neziskový prehliadač pomáha zabrániť spoločnostiam, aby vás tajne sledovali na webe.\n\nĎalšie informácie nájdete v našom Vyhlásení o ochrane osobných údajov. @@ -354,32 +370,32 @@ Pri preskakovaní medzi zariadeniami zostaňte šifrovaní - Keď ste prihlásení a synchronizovaní, ste bezpečnejší. Firefox šifruje vaše heslá, záložky a ďalšie položky. + Note: The word "LeOSium" should NOT be translated --> + Keď ste prihlásení a synchronizovaní, ste bezpečnejší. LeOSium šifruje vaše heslá, záložky a ďalšie položky. Prihlásiť sa Teraz nie - Upozornenia vám pomôžu zostať s Firefoxom v bezpečí + Note: The word "LeOSium" should NOT be translated --> + Upozornenia vám pomôžu zostať s LeOSiumom v bezpečí - Bezpečne posielajte karty medzi vašimi zariadeniami a objavte ďalšie funkcie ochrany osobných údajov vo Firefoxe. + Note: The word "LeOSium" should NOT be translated --> + Bezpečne posielajte karty medzi vašimi zariadeniami a objavte ďalšie funkcie ochrany osobných údajov vo LeOSiume. Zapnúť upozornenia Teraz nie - Vyskúšajte vyhľadávaciu miniaplikáciu Firefoxu + Note: The word "LeOSium" should NOT be translated --> + Vyskúšajte vyhľadávaciu miniaplikáciu LeOSiumu - S Firefoxom na vašej domovskej obrazovke budete mať jednoduchý prístup k prehliadaču s ochranou súkromia na prvom mieste, ktorý blokuje sledovacie prvky stránok. + Note: The word "LeOSium" should NOT be translated --> + S LeOSiumom na vašej domovskej obrazovke budete mať jednoduchý prístup k prehliadaču s ochranou súkromia na prvom mieste, ktorý blokuje sledovacie prvky stránok. - Pridať miniaplikáciu Firefox + Note: The word "LeOSium" should NOT be translated --> + Pridať miniaplikáciu LeOSium Teraz nie @@ -419,10 +435,10 @@ Návrhy z vyhľadávačov Predvoľby panela s adresou - - Panel s adresou – Návrhy Firefoxu - - Ďalšie informácie o Návrhoch Firefoxu + + Panel s adresou – Návrhy LeOSiumu + + Ďalšie informácie o Návrhoch LeOSiumu Ohodnoťte aplikáciu v Obchode Play Automaticky dokončovať URL adresy - + Návrhy od sponzorov - Podporte %1$s príležitostnými sponzorovanými návrhmi - Návrhy od %1$su - + Získajte návrhy z webu súvisiace s vaším vyhľadávaním Otvárať odkazy v aplikáciách @@ -654,7 +670,7 @@ Ďalšie informácie - + Klasický %s Séria umelcov @@ -672,8 +688,8 @@ K dispozícii sú nové doplnky - - Pozrite si viac ako 100 nových rozšírení, ktoré vám umožnia prispôsobiť si váš Firefox. + + Pozrite si viac ako 100 nových rozšírení, ktoré vám umožnia prispôsobiť si váš LeOSium. Preskúmať doplnky @@ -701,9 +717,9 @@ Záložky - Prihlasovacie údaje + Prihlasovacie údaje - Heslá + Heslá Otvorené karty @@ -729,9 +745,9 @@ %1$s na %2$s %3$s - Platobné karty + Platobné karty - Spôsoby platby + Spôsoby platby Adresy @@ -740,7 +756,7 @@ Prijaté karty - Upozornenia na prijaté karty z iných zariadení s Firefoxom. + Upozornenia na prijaté karty z iných zariadení s LeOSiumom. Prijatá karta @@ -922,7 +938,7 @@ Odstrániť Aktívna - + %1$s môže občas inštalovať a spúšťať štúdie. Ďalšie informácie @@ -1298,7 +1314,7 @@ Pripojiť ďalšie zariadenie - Ak chcete odoslať kartu, prihláste sa do Firefoxu na aspoň jednom ďalšom zariadení. + Ak chcete odoslať kartu, prihláste sa do LeOSiumu na aspoň jednom ďalšom zariadení. Rozumiem @@ -1328,10 +1344,10 @@ - Firefox je rýchly a bezpečný + LeOSium je rýchly a bezpečný - Nastavte si Firefox ako predvolený prehliadač + Nastavte si LeOSium ako predvolený prehliadač Vyskúšajte súkromné prehliadanie - Pomôžte nám vylepšiť Firefox vyplnením krátkeho prieskumu. + Pomôžte nám vylepšiť LeOSium vyplnením krátkeho prieskumu. Zúčastniť sa prieskumu @@ -1499,16 +1515,16 @@ Naskenovať kód - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pripravené na skenovanie Prihláste sa pomocou fotoaparátu Použiť radšej e‑mailovú adresu - - Vytvorte si ho a synchronizujte svoj Firefox medzi zariadeniami.]]> - + + Vytvorte si ho a synchronizujte svoj LeOSium medzi zariadeniami.]]> + Aplikácia %s sa už viac nebude synchronizovať s vašim účtom, ale neodstráni z toho zariadenia žiadne z údajov prehliadania. Odpojiť @@ -1524,7 +1540,7 @@ Rozšírená ochrana pred sledovaním Teraz obsahuje Úplnú ochranu súborov cookie, našu doteraz najsilnejšiu bariéru proti sledovaciu medzi stránkami. - + %s vás chráni pred mnohými sledovacími prvkami, ktoré zbierajú informácie o tom, čo robíte na internete. Ďalšie informácie @@ -1675,20 +1691,20 @@ Túto webovú stránku si môžete jednoducho pridať na svoju domovskú obrazovku a mať tak okamžitý prístup k prehliadaniu. - Prihlasovacie údaje + Prihlasovacie údaje - Heslá + Heslá - Ukladanie prihlasovacích údajov + Ukladanie prihlasovacích údajov - Ukladanie hesiel + Ukladanie hesiel Pred uložením sa opýtať Neukladať - + Automatické dopĺňanie v aplikácii %1$s - + Vypĺňa používateľské mená a heslá na stránkach počas používania aplikácie %1$s. Automatické dopĺňanie v iných aplikáciách @@ -1696,47 +1712,47 @@ Vypĺňa používateľské mená a heslá v iných aplikáciách vo vašom zariadení. - Pridať prihlasovacie údaje + Pridať prihlasovacie údaje - Pridať heslo + Pridať heslo - - Synchronizácia prihlasovacích údajov - Synchronizácia hesiel + Synchronizácia prihlasovacích údajov + + Synchronizácia hesiel - Synchronizovať prihlasovacie údaje medzi zariadeniami + Synchronizovať prihlasovacie údaje medzi zariadeniami - Synchronizovať heslá naprieč zariadeniami + Synchronizovať heslá naprieč zariadeniami - Uložené prihlasovacie údaje + Uložené prihlasovacie údaje - Uložené heslá + Uložené heslá - Uložené alebo synchronizované údaje v aplikácii %s sa zobrazia tu. + Uložené alebo synchronizované údaje v aplikácii %s sa zobrazia tu. - Heslá, ktoré uložíte alebo synchronizujete do %su budú zobrazené tu. Všetky heslá sú šifrované. + Heslá, ktoré uložíte alebo synchronizujete do %su budú zobrazené tu. Všetky heslá sú šifrované. - Ďalšie informácie o službe Sync. + Ďalšie informácie o službe Sync. - Ďalšie informácie o synchronizácii + Ďalšie informácie o synchronizácii Výnimky - Tu sa zobrazia prihlasovacie údaje, ktoré sa nebudú ukladať. + Tu sa zobrazia prihlasovacie údaje, ktoré sa nebudú ukladať. - %s nebude ukladať heslá pre tu uvedené stránky. + %s nebude ukladať heslá pre tu uvedené stránky. - Pre nasledujúce stránky sa nebudú ukladať prihlasovacie údaje. + Pre nasledujúce stránky sa nebudú ukladať prihlasovacie údaje. - %s nebude ukladať heslá pre tieto stránky. + %s nebude ukladať heslá pre tieto stránky. Odstrániť všetky výnimky - Hľadať + Hľadať - Hľadať v heslách + Hľadať v heslách Stránka @@ -1764,17 +1780,17 @@ Skryť heslo - Pre zobrazenie prihlasovacích údajov odomknite zariadenie + Pre zobrazenie prihlasovacích údajov odomknite zariadenie - Ak chcete zobraziť uložené heslá, odomknite zariadenie + Ak chcete zobraziť uložené heslá, odomknite zariadenie - Zabezpečte svoje prihlasovacie údaje + Zabezpečte svoje prihlasovacie údaje - Zabezpečte svoje heslá + Zabezpečte svoje heslá - Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené prihlasovacie údaje v prípade, že vaše zariadenie bude používať niekto iný. + Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené prihlasovacie údaje v prípade, že vaše zariadenie bude používať niekto iný. - Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené heslá v prípade, že vaše zariadenie bude používať niekto iný. + Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené heslá v prípade, že vaše zariadenie bude používať niekto iný. Neskôr @@ -1791,10 +1807,10 @@ posledného použitia - Zoradiť ponuku prihlasovacích údajov + Zoradiť ponuku prihlasovacích údajov - Ponuka pre zoradenie hesiel + Ponuka pre zoradenie hesiel @@ -1802,43 +1818,43 @@ Adresy - Platobné karty + Platobné karty - Spôsoby platby + Spôsoby platby - Ukladať a automaticky dopĺňať údaje o platobných kartách + Ukladať a automaticky dopĺňať údaje o platobných kartách - Ukladať a dopĺňať spôsoby platby + Ukladať a dopĺňať spôsoby platby - Údaje sú šifrované + Údaje sú šifrované - %s zašifruje všetky spôsoby platby, ktoré uložíte + %s zašifruje všetky spôsoby platby, ktoré uložíte Synchronizovať platobné karty naprieč zariadeniami Synchronizovať platobné karty - Pridať platobnú kartu + Pridať platobnú kartu - Pridať kartu + Pridať kartu - Spravovať uložené karty + Spravovať uložené karty - Spravovať karty + Spravovať karty Pridať adresu Spravovať adresy - Ukladať a automaticky dopĺňať adresy + Ukladať a automaticky dopĺňať adresy - Ukladať a dopĺňať adresy + Ukladať a dopĺňať adresy - Zahŕňa informácie ako sú čísla, e‑mailové adresy a dodacie adresy + Zahŕňa informácie ako sú čísla, e‑mailové adresy a dodacie adresy - Zahŕňa telefónne čísla a e‑mailové adresy + Zahŕňa telefónne čísla a e‑mailové adresy Pridať kartu @@ -1859,9 +1875,9 @@ Odstrániť kartu - Naozaj chcete odstrániť túto kreditnú kartu? + Naozaj chcete odstrániť túto kreditnú kartu? - Odstrániť kartu? + Odstrániť kartu? Odstrániť @@ -1874,24 +1890,24 @@ Uložené karty - Prosím, zadajte platné číslo platobnej karty + Prosím, zadajte platné číslo platobnej karty - Zadajte platné číslo karty + Zadajte platné číslo karty - Vyplňte toto pole + Vyplňte toto pole - Zadajte meno + Zadajte meno Odomknutím zobrazíte svoje uložené kreditné karty - Zabezpečte svoje kreditné karty + Zabezpečte svoje kreditné karty - Zabezpečte svoje uložené spôsoby platby + Zabezpečte svoje uložené spôsoby platby - Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené kreditné karty v prípade, že vaše zariadenie bude používať niekto iný. + Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené kreditné karty v prípade, že vaše zariadenie bude používať niekto iný. - Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené spôsoby platby v prípade, že vaše zariadenie bude používať niekto iný. + Nastavte si vzor, kód alebo heslo, ktorým ochránite svoje uložené spôsoby platby v prípade, že vaše zariadenie bude používať niekto iný. Nastaviť teraz @@ -1899,10 +1915,10 @@ Odomknite svoje zariadenie - Odomknutím použijete uložené informácie o kreditnej karte + Odomknutím použijete uložené informácie o kreditnej karte - Ak chcete použiť uložené spôsoby platby, odomknite zariadenie + Ak chcete použiť uložené spôsoby platby, odomknite zariadenie Pridať adresu @@ -1910,11 +1926,13 @@ Spravovať adresy - Krstné meno + Krstné meno - Stredné meno + Stredné meno - Priezvisko + Priezvisko + + Meno Ulica @@ -1939,9 +1957,9 @@ Odstrániť adresu - Naozaj chcete odstrániť túto adresu? + Naozaj chcete odstrániť túto adresu? - Chcete odstrániť túto adresu? + Chcete odstrániť túto adresu? Odstrániť @@ -2039,49 +2057,49 @@ Upraviť - Naozaj chcete odstrániť tieto prihlasovacie údaje? + Naozaj chcete odstrániť tieto prihlasovacie údaje? - Naozaj chcete odstrániť toto heslo? + Naozaj chcete odstrániť toto heslo? Odstrániť Zrušiť - Možnosti prihlásenia + Možnosti prihlásenia - Možnosti hesiel + Možnosti hesiel - Upraviteľné textové pole pre webovú adresu. + Upraviteľné textové pole pre webovú adresu. - Upraviteľné textové pole pre webovú adresu. + Upraviteľné textové pole pre webovú adresu. - Upraviteľné textové pole pre používateľské meno. + Upraviteľné textové pole pre používateľské meno. - Upraviteľné textové pole pre používateľské meno. + Upraviteľné textové pole pre používateľské meno. - Upraviteľné textové pole pre heslo. + Upraviteľné textové pole pre heslo. - Upraviteľné textové pole pre heslo. + Upraviteľné textové pole pre heslo. - Uložiť zmeny prihlasovacích údajov. + Uložiť zmeny prihlasovacích údajov. - Uložiť zmeny + Uložiť zmeny - Upraviť + Upraviť - Upraviť heslo + Upraviť heslo - Pridať nové prihlasovacie údaje + Pridať nové prihlasovacie údaje - Pridať heslo + Pridať heslo - Vyžaduje sa heslo + Vyžaduje sa heslo - Zadajte heslo + Zadajte heslo - Vyžaduje sa používateľské meno + Vyžaduje sa používateľské meno - Zadajte používateľské meno + Zadajte používateľské meno Vyžaduje sa názov hostiteľa @@ -2106,14 +2124,14 @@ Pripojiť ďalšie zariadenie. Prosím, znova overte totožnosť. - + Prosím, zapnite synchronizovanie kariet. - Vo Firefoxe na svojich ďalších zariadeniach nemáte otvorené žiadne karty. - + Vo LeOSiume na svojich ďalších zariadeniach nemáte otvorené žiadne karty. + Zobraziť zoznam kariet z ostatných zariadení. - + Prihlásiť sa a synchronizovať @@ -2165,7 +2183,7 @@ Automaticky zavrieť po jednom mesiaci? - Firefox môže zavrieť karty, ktoré ste za posledný mesiac nevideli. + LeOSium môže zavrieť karty, ktoré ste za posledný mesiac nevideli. ZAPNÚŤ AUTOMATICKÉ ZATVÁRANIE @@ -2173,8 +2191,8 @@ Automatické zatváranie povolené - - Návrhy Firefoxu + + Návrhy LeOSiumu Vyhľadávanie Google @@ -2185,7 +2203,7 @@ Zmeňte svoj predvolený prehliadač - Nastavte si automatické otváranie webových stránok, e‑mailov a správ vo Firefoxe. + Nastavte si automatické otváranie webových stránok, e‑mailov a správ vo LeOSiume. Odstrániť @@ -2194,7 +2212,7 @@ Kliknutím zobrazíte viac podrobností - Prejsť nahor + Prejsť nahor Zavrieť @@ -2209,7 +2227,7 @@ Vďaka službe %s. - Súčasť rodiny Firefoxu. %s + Súčasť rodiny LeOSiumu. %s Ďalšie informácie @@ -2235,8 +2253,6 @@ Upravené hodnotenie - Nespoľahlivé recenzie boli odstránené - Na základe spoľahlivých recenzií To najlepšie z nedávnych recenzií @@ -2292,10 +2308,6 @@ Ak zistíte, že tento produkt je opäť na sklade, nahláste to a my budeme pracovať na kontrole recenzií. Oznámiť, že produkt je na sklade - - Kontroluje sa kvalita recenzií - - Kontroluje sa kvalita recenzií Kontroluje sa kvalita recenzií (%s) @@ -2333,22 +2345,28 @@ Skontrolovať kvalitu recenzií Vyskúšajte nášho dôveryhodného sprievodcu recenziami produktov - + Pred nákupom sa presvedčte, aké spoľahlivé sú recenzie produktov predajcu %1$s. Kontrola recenzií, experimentálna funkcia prehliadača %2$s, je zabudovaná priamo do prehliadača. Podporuje aj %3$s a %4$s. - + Pred nákupom sa presvedčte, aké spoľahlivé sú recenzie produktov predajcu %1$s. Kontrola recenzií, experimentálna funkcia prehliadača %2$s, je zabudovaná priamo do prehliadača. Pomocou nástroja %1$s od Mozilly vám pomôžeme vyhnúť sa neobjektívnym a neautentickým recenziám. Náš AI model sa neustále zlepšuje, aby vás chránil pri nakupovaní. %2$s Ďalšie informácie - Výberom možnosti “Áno, vyskúšať” vyjadrujete súhlas s %1$s a %2$s služby %3$s od Mozilly. + Výberom možnosti “Áno, vyskúšať” vyjadrujete súhlas s %1$s a %2$s služby %3$s od Mozilly. Zvolením možnosti „Áno, vyskúšať“ vyjadrujete súhlas s nasledujúcim dokumentami od %1$s: + + Výberom možnosti “Áno, vyskúšať” vyjadrujete súhlas s %2$s prehliadača %1$s a %4$s spoločnosti %3$s. + + Výberom možnosti “Áno, vyskúšať” vyjadrujete súhlas s %2$s prehliadača %1$s a %4$s spoločnosti %3$s. - Zásadami ochrany osobných údajov + Zásadami ochrany osobných údajov Zásady ochrany osobných údajov + + Vyhlásení o ochrane osobných údajov Podmienkami používania @@ -2404,7 +2422,7 @@ otvorte odkaz a dozviete sa viac o tejto kolekcii prečítať článok - + otvorte odkaz a dozviete sa viac %s, nadpis @@ -2419,11 +2437,15 @@ Preložiť túto stránku? + + Stránka bola preložená z jazyka %1$s do jazyka %2$s Vyskúšajte súkromné preklady v aplikácii %1$s Na ochranu vášho súkromia preklady nikdy neopustia vaše zariadenie. Nové jazyky a vylepšenia už čoskoro! %1$s - + Ďalšie informácie Preložiť z jazyka @@ -2431,6 +2453,8 @@ Preložiť do jazyka Teraz nie + + Zobraziť pôvodnú stránku Hotovo @@ -2453,6 +2477,16 @@ Ďalšie informácie + + Prebieha preklad… + + + Stiahnuť jazyk v režime šetrenia dát (%1$s)? + + Nastavenia prekladov diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index 26b15578..b57f4c99 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -320,8 +320,8 @@ ہݨ کائناں - Firefox ویجٹ شامل کرو + Note: The word "LeOSium" should NOT be translated --> + LeOSium ویجٹ شامل کرو ہݨ کائناں @@ -578,7 +578,7 @@ ٻیا سِکھو - + کلاسیکل %s @@ -824,7 +824,7 @@ ہٹاؤ فعال - + %1$s وقتاً فوقتاً مطالعہ انسٹال کرسڳدے تے چلا سڳدے۔ ٻیا سِکھو @@ -1225,10 +1225,10 @@ - Firefox تکھی تے نجی ہے + LeOSium تکھی تے نجی ہے - Firefox کوں آپݨاں پہلوں مقرر براؤز بݨاؤ + LeOSium کوں آپݨاں پہلوں مقرر براؤز بݨاؤ نجی براؤزنگ ازماؤ @@ -1404,9 +1404,9 @@ آپݨے کیمرے نال سائن ان تھیوو ایندی بجائے ای میل ورتو - + ہک کھاتہ بݨاؤ۔]]> - + %s تہاݙے کھاتے نال ہم وقت تھیوݨ رک ویسی، پر ایں ڈیوائس تے تہاݙے براؤز تھئے ڈیٹا وچوں کجھ نہ مٹیسی۔ کنکشن توڑو @@ -1423,7 +1423,7 @@ بہتر ٹریکنگ حفاظت ہݨ پوری کوکی حفاظت دی خاصیت، کراس سائٹ ٹریکراں دے خلاف ساݙی سب کنوں تکڑی رکاوٹ۔ - + %s تہاکوں ٻہوں سارے ݙاڈھے عام ٹریکراں کنوں بچیندے، جہڑے تہاݙے آن لائن کم کوں فالو کریندن۔ ٻیا سِکھو @@ -1580,9 +1580,9 @@ محفوظ کرݨ کیتے پُچھو کݙاہیں وی محفوظ نہ کرو - + %1$s وچ خود بخود بھرو - + %1$s ورتݨ دے دوران ویب سائٹاں وچ ورتݨ ناں تے پاس ورڈ بھرو تے محفوظ کرو۔ ٻیاں ایپاں وچ آٹوفل کرو @@ -1918,14 +1918,14 @@ سوہݨا، ولدا تصدیق کرو۔ - + سوہݨا، ٹیب ہم وقت کرݨ فعال کرو۔ تہاݙیاں ٻیاں ڈیوائساں تے فائرفوکس وچ کوئی ٹیب کائنی کھلے ہوئے۔ - + آپݨیاں ساریاں ڈیوائساں کنوں ٹیباں دی تندیر ݙیکھو۔ - + ہم وقت کرݨ کیتے سائن ان تھیوو کوئی کھلے ٹیب کائنی @@ -1981,7 +1981,7 @@ آپݨے آپ بند تھیوݨ فعال تھی ڳیا - + فائرفوکس تجویز @@ -2082,12 +2082,12 @@ ایں مجموعے بارے ٻیا سکھݨ کیتے لنک کھولو مضمون پڑھو - + ٻیا سکھݨ کیتے لنک کھولو - + ٻیا سِکھو کنوں ترجمہ کرو diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index fd8e553c..35d094c3 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -72,7 +72,7 @@ Ne pustite sledi na tej napravi Ko zaprete vse zasebne zavihke, %1$s izbriše piškotke, zgodovino in podatke o spletnih mestih. %2$s - Obvestilo o zasebnosti za Firefox - + Obvestilo o zasebnosti za LeOSium + + Preberite več v obvestilu o zasebnosti Z veseljem skrbimo za vašo varnost + + Odkrijte, zakaj milijoni prisegajo na LeOSium + + Varno brskanje z več izbire Naš neprofitni brskalnik preprečuje podjetjem, da bi vas skrivaj spremljala po spletu. + Več kot 100 milijonov ljudi ščiti svojo zasebnost z izbiro brskalnika, ki ga razvija neprofitna organizacija. + + Znani sledilci? Samodejno blokirani. Razširitve? Preskusite vseh 700. PDF-ji? Naš vgrajeni bralnik omogoča enostavno pregledovanje. + Naš neprofitni brskalnik pomaga podjetjem preprečiti, da bi vam na skrivaj sledila po spletu.\n\nVeč o tem v našem pravilniku o zasebnosti. @@ -349,32 +359,32 @@ Ostanite šifrirani pri skakanju z naprave na napravo - Prijavljeni in sinhronizirani ste varnejši. Firefox šifrira vaša gesla, zaznamke in ostale podatke. + Note: The word "LeOSium" should NOT be translated --> + Prijavljeni in sinhronizirani ste varnejši. LeOSium šifrira vaša gesla, zaznamke in ostale podatke. Prijava Ne zdaj - Obvestila vam pomagajo, da ostanete varni v Firefoxu + Note: The word "LeOSium" should NOT be translated --> + Obvestila vam pomagajo, da ostanete varni v LeOSiumu - Varno pošiljajte zavihke z ene naprave na drugo in odkrijte druge možnosti za zasebnost, ki jih ponuja Firefox. + Note: The word "LeOSium" should NOT be translated --> + Varno pošiljajte zavihke z ene naprave na drugo in odkrijte druge možnosti za zasebnost, ki jih ponuja LeOSium. Vklopi obvestila Ne zdaj - Preizkusite iskalnik Firefox + Note: The word "LeOSium" should NOT be translated --> + Preizkusite iskalnik LeOSium - S Firefoxom na domačem zaslonu boste imeli hiter dostop do brskalnika, ki daje prednost zasebnosti in preprečuje sledilce med spletnimi mesti. + Note: The word "LeOSium" should NOT be translated --> + S LeOSiumom na domačem zaslonu boste imeli hiter dostop do brskalnika, ki daje prednost zasebnosti in preprečuje sledilce med spletnimi mesti. - Dodaj Firefox + Note: The word "LeOSium" should NOT be translated --> + Dodaj LeOSium Ne zdaj @@ -415,10 +425,10 @@ Predlogi iskalnikov Nastavitve naslovne vrstice - - Naslovna vrstica – Firefoxovi predlogi - - Več o Firefoxovih predlogih + + Naslovna vrstica – LeOSiumovi predlogi + + Več o LeOSiumovih predlogih Oceni v trgovini Google Play Samodokončaj spletne naslove - + Predlogi sponzorjev - Podprite %1$s z občasnimi sponzoriranimi predlogi - Predlogi aplikacije %1$s - + Prejemajte predloge s spleta, povezane z vašim iskanjem Odpiraj povezave v aplikacijah @@ -646,7 +656,7 @@ Več o tem - + Klasični %s Umetniška serija @@ -664,8 +674,8 @@ Na voljo so novi dodatki - - Oglejte si prek 100 novih razširitev, s katerimi lahko prilagodite Firefox po svoji meri. + + Oglejte si prek 100 novih razširitev, s katerimi lahko prilagodite LeOSium po svoji meri. Razišči dodatke @@ -693,9 +703,9 @@ Zaznamki - Prijave + Prijave - Gesla + Gesla Odprti zavihki @@ -722,9 +732,9 @@ %1$s na %2$s %3$s - Kreditne kartice + Kreditne kartice - Načini plačila + Plačilna sredstva Naslove @@ -733,7 +743,7 @@ Prejeti zavihki - Obvestila za zavihke, prejete od drugih naprav Firefox. + Obvestila za zavihke, prejete od drugih naprav LeOSium. Zavihek prejet @@ -917,7 +927,7 @@ Odstrani Dejavna - + %1$s lahko občasno namesti in izvaja raziskave. Več o tem @@ -1296,7 +1306,7 @@ Poveži drugo napravo - Če želite poslati zavihek, se v Firefox prijavite v vsaj še eni napravi. + Če želite poslati zavihek, se v LeOSium prijavite v vsaj še eni napravi. Razumem @@ -1321,10 +1331,10 @@ - Firefox je hiter in zaseben + LeOSium je hiter in zaseben - Nastavite Firefox kot privzeti brskalnik + Nastavite LeOSium kot privzeti brskalnik Preizkusite zasebno brskanje - Pomagajte izboljšati Firefox z izpolnitvijo kratkega vprašalnika. + Pomagajte izboljšati LeOSium z izpolnitvijo kratkega vprašalnika. Izpolnite vprašalnik @@ -1495,16 +1505,16 @@ Skenirajte kodo - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pripravljeno za skeniranje Prijavite se s kamero Namesto tega uporabite e-pošto - - Ustvarite ga za sinhronizacijo Firefoxa med napravami.]]> - + + Ustvarite ga za sinhronizacijo LeOSiuma med napravami.]]> + %s se bo prenehal sinhronizirati z vašim računom, vendar ne bo izbrisal podatkov o brskanju na tej napravi. Prekini povezavo @@ -1521,7 +1531,7 @@ Izboljšana zaščita pred sledenjem Zdaj vključuje Popolno zaščito pred piškotki, našo najzmogljivejšo oviro pred sledilci med spletnimi mesti. - + %s vas ščiti pred številnimi najpogostejšimi sledilci, ki sledijo vašemu brskanju po spletu. Več o tem @@ -1674,21 +1684,21 @@ To stran lahko preprosto dodate na svoj domači zaslon naprave za lažji dostop in hitrejše brskanje v načinu, podobnem aplikaciji. - Prijave in gesla + Prijave in gesla - Gesla + Gesla - Shranjevanje prijav in gesel + Shranjevanje prijav in gesel - Shranjuj gesla + Shranjuj gesla Vprašaj pred shranjevanjem Nikoli ne shranjuj - + Samodejno izpolni v %1$su - + Izpolnjuj in shranjuj uporabniška imena in gesla na spletnih mestih, ko uporabljate %1$s. Samodejno izpolni v drugih aplikacijah @@ -1697,43 +1707,43 @@ Izpolnjuj uporabniška imena in gesla v drugih aplikacijah na napravi. - Dodaj prijavo + Dodaj prijavo - Dodaj geslo + Dodaj geslo - - Sinhronizacija prijav - Sinhroniziraj gesla + Sinhronizacija prijav + + Sinhroniziraj gesla - Sinhroniziraj prijave med napravami + Sinhroniziraj prijave med napravami - Sinhroniziraj gesla med napravami + Sinhroniziraj gesla med napravami - Shranjene prijave + Shranjene prijave - Shranjena gesla + Shranjena gesla - Tu se prikažejo prijave, ki jih shranite ali sinhronizirate v %s. + Tu se prikažejo prijave, ki jih shranite ali sinhronizirate v %s. - Več o Sync. + Več o Sync. - Več o sinhronizaciji + Več o sinhronizaciji Izjeme - Tu bodo prikazane prijave in gesla, ki niso shranjena. + Tu bodo prikazane prijave in gesla, ki niso shranjena. - Za tukaj navedena mesta %s ne bo shranjeval gesel. + Za tukaj navedena mesta %s ne bo shranjeval gesel. - Prijave in gesla za te strani ne bodo shranjene. + Prijave in gesla za te strani ne bodo shranjene. - Za ta spletna mesta %s ne bo shranjeval gesel. + Za ta spletna mesta %s ne bo shranjeval gesel. Izbriši vse izjeme - Iskanje prijav + Iskanje prijav Stran @@ -1761,15 +1771,15 @@ Skrij geslo - Odklenite za ogled shranjenih prijav + Odklenite za ogled shranjenih prijav - Zavarujte svoje prijave in gesla + Zavarujte svoje prijave in gesla - Zavarujte shranjena gesla + Zavarujte shranjena gesla - Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do shranjenih prijav in gesel, če vašo napravo uporablja še kdo. + Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do shranjenih prijav in gesel, če vašo napravo uporablja še kdo. - Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do shranjenih gesel, če vašo napravo uporablja še kdo. + Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do shranjenih gesel, če vašo napravo uporablja še kdo. Pozneje @@ -1789,7 +1799,7 @@ Času zadnje uporabe - Meni razvrščanja prijav + Meni razvrščanja prijav @@ -1797,41 +1807,43 @@ Naslovi - Kreditne kartice + Kreditne kartice + + Plačilna sredstva - Shrani in samodejno izpolni kartice + Shrani in samodejno izpolni kartice - Shranjuj in izpolnjuj načine plačila + Shranjuj in izpolnjuj plačilna sredstva - Podatki so šifrirani + Podatki so šifrirani - %s šifrira vse načine plačila, ki jih shranite + %s šifrira vsa plačilna sredstva, ki jih shranite Sinhroniziraj kartice med napravami Sinhroniziraj kartice - Dodaj kreditno kartico + Dodaj kreditno kartico - Dodaj kartico + Dodaj kartico - Upravljanje shranjenih kartic + Upravljanje shranjenih kartic - Upravljanje kartic + Upravljanje kartic Dodaj naslov Upravljanje naslovov - Shranjuj in samodejno izpolnjuj naslove + Shranjuj in samodejno izpolnjuj naslove - Shranjuj in izpolnjuj naslove + Shranjuj in izpolnjuj naslove - Vključi podatke, kot so številke, e-poštni naslovi in naslovi za dostavo + Vključi podatke, kot so številke, e-poštni naslovi in naslovi za dostavo - Vključuje telefonske številke in e-poštne naslove + Vključuje telefonske številke in e-poštne naslove Dodaj kartico @@ -1852,7 +1864,7 @@ Izbriši kartico - Ali ste prepričani, da želite izbrisati to kreditno kartico? + Ali ste prepričani, da želite izbrisati to kreditno kartico? Izbriši @@ -1866,20 +1878,20 @@ Shranjene kartice - Vnesite veljavno številko kreditne kartice + Vnesite veljavno številko kreditne kartice - Vnesite veljavno številko kartice + Vnesite veljavno številko kartice - Izpolnite to polje + Izpolnite to polje - Dodajte ime + Dodajte ime Odklenite za ogled shranjenih kartic - Zavarujte svoje kreditne kartice + Zavarujte svoje kreditne kartice - Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do kreditnih kartic, če vašo napravo uporablja še kdo. + Nastavite vzorec za zaklepanje naprave, PIN ali geslo za zaščito pred dostopom do kreditnih kartic, če vašo napravo uporablja še kdo. Nastavi zdaj @@ -1888,7 +1900,7 @@ Odklenite svojo napravo - Odklenite za uporabo shranjenih podatkov o kreditnih karticah + Odklenite za uporabo shranjenih podatkov o kreditnih karticah Dodaj naslov @@ -1897,11 +1909,13 @@ Upravljanje naslovov - Ime + Ime - Drugo ime + Drugo ime - Priimek + Priimek + + Ime Ulica @@ -1926,7 +1940,7 @@ Izbriši naslov - Res želite izbrisati ta naslov? + Res želite izbrisati ta naslov? Izbriši @@ -2026,49 +2040,49 @@ Uredi - Ali ste prepričani, da želite izbrisati to prijavo? + Ali ste prepričani, da želite izbrisati to prijavo? - Ali ste prepričani, da želite izbrisati to geslo? + Ali ste prepričani, da želite izbrisati to geslo? Izbriši Prekliči - Možnosti prijave + Možnosti prijave - Možnosti gesel + Možnosti gesel - Besedilno polje za urejanje spletnega naslova prijave. + Besedilno polje za urejanje spletnega naslova prijave. - Besedilno polje za urejanje spletnega naslova. + Besedilno polje za urejanje spletnega naslova. - Besedilno polje za urejanje uporabniškega imena prijave. + Besedilno polje za urejanje uporabniškega imena prijave. - Besedilno polje za urejanje uporabniškega imena. + Besedilno polje za urejanje uporabniškega imena. - Besedilno polje za urejanje gesla prijave. + Besedilno polje za urejanje gesla prijave. - Besedilno polje za urejanje gesla. + Besedilno polje za urejanje gesla. - Shrani spremembe v prijavo. + Shrani spremembe v prijavo. - Shrani spremembe. + Shrani spremembe. - Urejanje + Urejanje - Uredi geslo + Uredi geslo - Dodaj novo prijavo + Dodaj novo prijavo - Dodaj geslo + Dodaj geslo - Zahtevano je geslo + Zahtevano je geslo - Vnesite geslo + Vnesite geslo - Zahtevano je uporabniško ime + Zahtevano je uporabniško ime - Vnesite uporabniško ime + Vnesite uporabniško ime Zahtevano je ime domene @@ -2093,14 +2107,14 @@ Poveži drugo napravo. Ponovno se prijavite. - + Omogočite sinhronizacijo zavihkov. - V Firefoxu na drugih napravah nimate odprtih drugih zavihkov. - + V LeOSiumu na drugih napravah nimate odprtih drugih zavihkov. + Oglejte si seznam zavihkov drugih naprav. - + Prijava v Sync @@ -2154,7 +2168,7 @@ Samodejno zapri po enem mesecu? - Firefox lahko zapre zavihke, ki si jih niste ogledali v zadnjem mesecu. + LeOSium lahko zapre zavihke, ki si jih niste ogledali v zadnjem mesecu. VKLOPI SAMODEJNO ZAPIRANJE @@ -2162,16 +2176,19 @@ Samodejno zapiranje omogočeno - - Firefoxovi predlogi + + LeOSiumovi predlogi Iskanje Google Iskalnik %s + + + Zamenjajte privzeti brskalnik - Nastavite, naj se povezave s spletnih strani, e-pošte in sporočil samodejno odpirajo v Firefoxu. + Nastavite, naj se povezave s spletnih strani, e-pošte in sporočil samodejno odpirajo v LeOSiumu. Odstrani @@ -2180,7 +2197,7 @@ Kliknite za podrobnosti - Pojdi gor + Pojdi gor Zapri @@ -2195,7 +2212,7 @@ Omogoča %s. - Del družine Firefox. %s + Del družine LeOSium. %s Več o tem @@ -2220,8 +2237,6 @@ Kako zanesljiva so ta mnenja? Prilagojena ocena - - Nezanesljiva mnenja odstranjena Poudarki iz nedavnih mnenj @@ -2276,10 +2291,6 @@ Če opazite, da je izdelek znova na zalogi, nam to sporočite in preverili bomo mnenja. Sporoči, da je izdelek znova na zalogi - - Preverjanje kakovosti mnenj - - Preverjanje kakovosti mnenj To lahko traja približno 60 sekund. @@ -2314,20 +2325,20 @@ Preveri kakovost mnenj Preizkusite naš zaupanja vreden vodnik po ocenah izdelkov - + Pred nakupom preverite, kako zanesljiva so mnenja o izdelkih v trgovini %1$s. Pregledovalnik mnenj, preizkusna zmogljivost %2$sa, je vgrajen neposredno v brskalnik. Deluje tudi v trgovinah %3$s in %4$s. - + Pred nakupom preverite, kako zanesljiva so mnenja o izdelkih v trgovini %1$s. Pregledovalnik mnenj, preizkusna zmogljivost %2$sa, je vgrajen neposredno v brskalnik. Mozilla %1$s vam omogoča, da se izognete pristranskim in nepristnim mnenjem. Naš model umetne inteligence se nenehno izboljšuje, da vas ščiti med nakupovanjem. %2$s Več o tem - Z izbiro “Da, poskusi” se strinjate z %2$s in %3$s Mozilla %1$s. + Z izbiro “Da, poskusi” se strinjate z %2$s in %3$s Mozilla %1$s. Z izbiro “Da, poskusi” se strinjate z naslednjimi dokumenti %1$sa: - pravilnikom o zasebnosti + pravilnikom o zasebnosti Pravilnik o zasebnosti @@ -2386,7 +2397,7 @@ odprete povezavo s podrobnostmi o tej zbirki preberete članek - + odprete povezavo s podrobnostmi %s, naslov @@ -2406,7 +2417,7 @@ Preskusite zasebno prevajanje v %1$su Zasebnost je zagotovljena, saj prevodi nikoli ne zapustijo vašega računalnika. Novi jeziki in izboljšave so na poti! %1$s - + Več o tem Izvorni jezik @@ -2414,6 +2425,8 @@ Ciljni jezik Ne zdaj + + Prikaži izvirnik Končano @@ -2436,6 +2449,11 @@ Več o tem + + + Prevajanje … + + Možnosti prevajanja diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 81fb1eed..68234a79 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -70,7 +70,7 @@ Mos lini gjurmë në këtë pajisje %1$s fshin cookie-t, historikun dhe të dhëna sajti tuajat, kur mbyllni krejt skedat tuaja private. %2$s Përshtatni faqe hyrëse + Skena e kreut @@ -249,6 +250,14 @@ Fshi historik shfletimesh + + Përktheje faqen + + + Faqe e përkthyer nga %1$s në %2$s. + Gjuha e përzgjedhur @@ -323,13 +332,23 @@ - Shënim mbi privatësinë në Firefox - + Shënim mbi privatësinë në LeOSium + + Mësoni më tepër te shënimi ynë mbi privatësinë Duam fort t’ju mbajmë të parrezik + + Zbuloni pse e duan LeOSium-in miliona vetë + + Shfletim i parrezik, me më tepër zgjedhje Shfletuesi ynë, me entin jofitimprurës nga pas, ndihmon të ndalen shoqëri t’ju ndjekin fshehtazi nëpër internet. + Më tepër se 100 milionë vetëm e mbrojnë privatësinë e tyre duke zgjedhur një shfletues që ka nga pas një ent jofitimprurës. + + Gjurmues të ditur? Të bllokuar automatikisht. Zgjerime? Provojini krejt të 700-ët. PDF? Lexuesi ynë i brendshëm i bën të administrohen me lehtësi. + Shfletuesi ynë, me entin jofitimprurës nga pas, ndihmon të ndalen shoqëri t’ju ndjekin fshehtazi nëpër internet.\n\nMësoni më tepër te shënimi ynë mbi privatësinë. @@ -342,32 +361,32 @@ Jini i fshehtëzuar, kur hidheni nga një pajisje në tjetrën - Kur keni bërë hyrjen në llogari dhe njëkohësim, jeni më të siguruar. Firefox-i fshehtëzon fjalëkalimet tuaja, faqerojtësit, etj. + Note: The word "LeOSium" should NOT be translated --> + Kur keni bërë hyrjen në llogari dhe njëkohësim, jeni më të siguruar. LeOSium-i fshehtëzon fjalëkalimet tuaja, faqerojtësit, etj. Hyni Jo tani - Njoftimet ju ndihmojnë të jini më të parrezik në Firefox + Note: The word "LeOSium" should NOT be translated --> + Njoftimet ju ndihmojnë të jini më të parrezik në LeOSium - Dërgoni në mënyrë të siguruar skeda mes pajisjeve tuaja dhe zbuloni veçori të reja privatësie në Firefox. + Note: The word "LeOSium" should NOT be translated --> + Dërgoni në mënyrë të siguruar skeda mes pajisjeve tuaja dhe zbuloni veçori të reja privatësie në LeOSium. Aktivizoni njoftimet Jo tani - Provoni widget-in e kërkimeve të Firefox-it + Note: The word "LeOSium" should NOT be translated --> + Provoni widget-in e kërkimeve të LeOSium-it - Me Firefox-in te skena juaj e kreut do të mund të përdorni kollaj shfletuesin që vë privatësinë së pari, që bllokon gjurmues të llojit “nga sajte në sajte”. + Note: The word "LeOSium" should NOT be translated --> + Me LeOSium-in te skena juaj e kreut do të mund të përdorni kollaj shfletuesin që vë privatësinë së pari, që bllokon gjurmues të llojit “nga sajte në sajte”. - Shtoni “widget” Firefox-i + Note: The word "LeOSium" should NOT be translated --> + Shtoni “widget” LeOSium-i Jo tani @@ -408,10 +427,10 @@ Sugjerime prej motorësh kërkimi Parapëlqime shtylle adresash - - Shtyllë adresash - Firefox Sugjeron - - Mësoni më tepër rreth “Firefox-i Sugjeron” + + Shtyllë adresash - LeOSium Sugjeron + + Mësoni më tepër rreth “LeOSium-i Sugjeron” Vlerësojeni në Google Play Vetëplotësim URL-sh - + Sugjerime nga sponsorë - Përkrahni %1$s-un, përmes sugjerimesh, të ndonjëherëshme, të sponsorizuara - Sugjerime nga %1$s - + Merrni nga interneti sugjerime të lidhura me kërkimin tuaj Hapi lidhjet në aplikacione @@ -639,7 +658,7 @@ S’u ndryshua dot sfond Mësoni më tepër - + %s Klasik Seri artistësh @@ -657,8 +676,8 @@ Ka të gatshme shtesa të reja - - Shihni mbi 100 zgjerime të reja që ju lejojnë ta bëni Firefox-in si e doni. + + Shihni mbi 100 zgjerime të reja që ju lejojnë ta bëni LeOSium-in si e doni. Eksploroni shtesa @@ -686,9 +705,9 @@ Faqerojtës - Kredenciale Hyrjesh + Kredenciale Hyrjesh - Fjalëkalime + Fjalëkalime Skeda të hapura @@ -715,9 +734,9 @@ %1$s në %2$s %3$s - Karta krediti + Karta krediti - Metoda pagesash + Metoda pagesash Adresa @@ -725,7 +744,7 @@ Skeda të marra - Njoftime për skeda të marra prej pajisjesh të tjera me Firefox. + Njoftime për skeda të marra prej pajisjesh të tjera me LeOSium. Skedë e Marrë @@ -905,7 +924,7 @@ Hiqe Aktive - + %1$s mund të instalohet dhe xhirojë studime herë pas here. Mësoni më tepër @@ -1279,7 +1298,7 @@ Lidhni pajisje tjetër - Për të dërguar një skedë, bëni hyrjen te Firefox-i të paktën në një pajisje tjetër. + Për të dërguar një skedë, bëni hyrjen te LeOSium-i të paktën në një pajisje tjetër. E mora vesh @@ -1306,10 +1325,10 @@ - Firefox-i është i shpejtë dhe privat + LeOSium-i është i shpejtë dhe privat - Bëjeni Firefox-in shfletuesin tuaj parazgjedhje + Bëjeni LeOSium-in shfletuesin tuaj parazgjedhje Provoni shfletimin privat - Ju lutemi, ndihmoni të bëhet Firefox-i më i mirë, duke plotësuar këtë pyetësor të shkurtër. + Ju lutemi, ndihmoni të bëhet LeOSium-i më i mirë, duke plotësuar këtë pyetësor të shkurtër. Plotësoni Pyetësorin @@ -1479,16 +1498,16 @@ Skanonin kodin - https://firefox.com/pair]]> + https://firefox.com/pair]]> Gati për skanim Hyni me kamerën tuaj Më mirë përdorni email - - Krijoni një të tillë që të njëkohësoni Firefox-in mes pajisjesh.]]> - + + Krijoni një të tillë që të njëkohësoni LeOSium-in mes pajisjesh.]]> + %s-i do të reshtë së njëkohësuari me llogarinë tuaj, por nuk do të fshihet ndonjë nga të dhënat e shfletimeve tuaja në këtë pajisje. Shkëputu @@ -1505,7 +1524,7 @@ Mbrojtje e Thelluar Nga Gjurmimi Tashmë me Mbrojtje Tërësore Nga Cookie-t, barriera jonë më e fuqishme deri më sot kundër gjurmuesve nga sajte në sajte. - + %s ju mbron nga shumë prej gjurmuesve më të rëndomtë që ndjekin ç’bëni në internet. Mësoni më tepër @@ -1657,21 +1676,21 @@ Këtë sajt mund ta shtoni lehtë te skena Kreu e pajisjes tuaj, që ta hapni në çast dhe të shfletoni më shpejt, si të ish aplikacion. - Kredenciale hyrjesh dhe fjalëkalime + Kredenciale hyrjesh dhe fjalëkalime - Fjalëkalime + Fjalëkalime - Ruaj kredenciale hyrjesh dhe fjalëkalime + Ruaj kredenciale hyrjesh dhe fjalëkalime - Ruani fjalëkalime + Ruani fjalëkalime Pyet të ruhet a jo Mos e ruaj kurrë - + Vetëplotësim te %1$s - + Plotësoni dhe ruani emra përdoruesish dhe fjalëkalime në sajte, kur përdorni %1$s. Vetëplotësim në aplikacione të tjera @@ -1679,47 +1698,47 @@ Plotësoni emra përdoruesish dhe fjalëkalime në aplikacione të tjera në pajisjen tuaj. - Shtoni kredenciale hyrjeje + Shtoni kredenciale hyrjeje - Shtoni fjalëkalim + Shtoni fjalëkalim - - Njëkohëso kredenciale hyrjeje - Njëkohësoni fjalëkalime + Njëkohëso kredenciale hyrjeje + + Njëkohësoni fjalëkalime - Njëkohëso kredenciale hyrjesh nëpër pajisje + Njëkohëso kredenciale hyrjesh nëpër pajisje - Njëkohësoni fjalëkalime mes pajisjesh + Njëkohësoni fjalëkalime mes pajisjesh - Kredenciale hyrjesh të ruajtur + Kredenciale hyrjesh të ruajtur - Fjalëkalime të ruajtur + Fjalëkalime të ruajtur - Këtu do të shfaqen kredencialet e hyrjeve që ruani ose njëkohësoni në %s. + Këtu do të shfaqen kredencialet e hyrjeve që ruani ose njëkohësoni në %s. - Këtu do të shfaqen fjalëkalimet që ruani, ose njëkohësoni në %s. Krejt fjalëkalimet që ruani, fshehtëzohen. + Këtu do të shfaqen fjalëkalimet që ruani, ose njëkohësoni në %s. Krejt fjalëkalimet që ruani, fshehtëzohen. - Mësoni më tepër mbi Sync-un. + Mësoni më tepër mbi Sync-un. - Mësoni më tepër mbi njëkohësimin + Mësoni më tepër mbi njëkohësimin Përjashtime - Këtu do të shfaqen kredenciale hyrjesh dhe fjalëkalime që nuk janë ruajtur. + Këtu do të shfaqen kredenciale hyrjesh dhe fjalëkalime që nuk janë ruajtur. - %s s’do të ruajë fjalëkalime për sajte të radhitur këtu. + %s s’do të ruajë fjalëkalime për sajte të radhitur këtu. - Për këto sajte s’do të ruhen kredenciale hyrjesh dhe fjalëkalime. + Për këto sajte s’do të ruhen kredenciale hyrjesh dhe fjalëkalime. - %s s’do të ruajë fjalëkalime për këta sajte. + %s s’do të ruajë fjalëkalime për këta sajte. Fshi krejt përjashtimet - Kërkoni te kredenciale hyrjesh + Kërkoni te kredenciale hyrjesh - Kërko te fjalëkalimet + Kërko te fjalëkalimet Sajt @@ -1747,17 +1766,17 @@ Fshihe fjalëkalimin - Që të shihni kredenciale tuajt hyrjesh të ruajtur, shkyçeni + Që të shihni kredenciale tuajt hyrjesh të ruajtur, shkyçeni - Që të shihni fjalëkalimet tuaj të ruajtura, shkyçeni + Që të shihni fjalëkalimet tuaj të ruajtura, shkyçeni - Siguroni kredenciale hyrjesh dhe fjalëkalime tuajt + Siguroni kredenciale hyrjesh dhe fjalëkalime tuajt - Siguroni fjalëkalimet tuaj të ruajtur + Siguroni fjalëkalimet tuaj të ruajtur - Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur nga hyrja në to kredencialet e hyrjes dhe fjalëkalimet tuaj të ruajtur, nëse pajisjen tuaj e ka dikush tjetër. + Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur nga hyrja në to kredencialet e hyrjes dhe fjalëkalimet tuaj të ruajtur, nëse pajisjen tuaj e ka dikush tjetër. - Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur prej hyrjes në to fjalëkalimet tuaj të ruajtur, nëse pajisjen tuaj e ka dikush tjetër. + Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur prej hyrjes në to fjalëkalimet tuaj të ruajtur, nëse pajisjen tuaj e ka dikush tjetër. Më vonë @@ -1775,10 +1794,10 @@ Përdorur së fundi - Renditni menu kredencialesh + Renditni menu kredencialesh - Menu renditjeje fjalëkalimesh + Menu renditjeje fjalëkalimesh @@ -1786,43 +1805,43 @@ Adresa - Karta krediti + Karta krediti - Metoda pagesash + Metoda pagesash - Ruaj dhe plotëso vetvetiu të dhëna kartash + Ruaj dhe plotëso vetvetiu të dhëna kartash - Ruaj dhe plotëso metoda pagesash + Ruaj dhe plotëso metoda pagesash - Të dhënat janë të fshehtëzuara + Të dhënat janë të fshehtëzuara - %s fshehtëzon krejt metodat e pagesave që ruani + %s fshehtëzon krejt metodat e pagesave që ruani Njëkohëso të dhëna kartash mes pajisjesh Njëkohëso karta - Shtoni kartë krediti + Shtoni kartë krediti - Shtoni kartë + Shtoni kartë - Administroni karta të ruajtura + Administroni karta të ruajtura - Administroni karta + Administroni karta Shtoni adresë Administroni adresa - Ruaj dhe vetëplotëso adresa + Ruaj dhe vetëplotëso adresa - Ruaj dhe vetëplotëso adresa + Ruaj dhe vetëplotëso adresa - Përfshini hollësi të tilla si numra, email dhe adresa dërgimi + Përfshini hollësi të tilla si numra, email dhe adresa dërgimi - Përfshin numra telefonash dhe adresa email + Përfshin numra telefonash dhe adresa email Shtoni kartë @@ -1843,9 +1862,9 @@ Fshije kartën - Jeni i sigurt se doni të fshihet kjo kartë krediti? + Jeni i sigurt se doni të fshihet kjo kartë krediti? - Të fshihet karta? + Të fshihet karta? Fshije @@ -1858,24 +1877,24 @@ Karta të ruajtura - Ju lutemi, jepni një numër të vlefshëm karte krediti + Ju lutemi, jepni një numër të vlefshëm karte krediti - Jepni një numër karte të vlefshme + Jepni një numër karte të vlefshme - Ju lutemi, plotësojeni këtë fushë + Ju lutemi, plotësojeni këtë fushë - Shtoni emër + Shtoni emër Që të shihni kartat tuaja të ruajtura, shkyçeni - Siguroni kartat tuaja të kreditit + Siguroni kartat tuaja të kreditit - Siguroni metodat tuaja të ruajtura të pagesave + Siguroni metodat tuaja të ruajtura të pagesave - Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur nga hyrja në to kartat tuaja kreditit të ruajturar, nëse pajisjen tuaj e ka dikush tjetër. + Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur nga hyrja në to kartat tuaja kreditit të ruajturar, nëse pajisjen tuaj e ka dikush tjetër. - Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur prej hyrjes në to hollësitë e ruajtura për kartat tuaja, nëse pajisjen tuaj e ka dikush tjetër. + Ujdisni një rregullsi, PIN, ose fjalëkalim kyçjeje pajisjeje për të mbrojtur prej hyrjes në to hollësitë e ruajtura për metodat tuaja të pagesave, nëse pajisjen tuaj e ka dikush tjetër. Ujdiseni tani @@ -1883,10 +1902,10 @@ Shkyçni pajisjen tuaj - Që të përdorni të dhëna karte krediti të depozituara, shkyçeni + Që të përdorni të dhëna karte krediti të depozituara, shkyçeni - Që të përdorni metoda të ruajtura pagesash, shkyçeni + Që të përdorni metoda të ruajtura pagesash, shkyçeni Shtoni adresë @@ -1894,11 +1913,13 @@ Administroni adresa - Emër + Emër - Emër i Mesit + Emër i Mesit - Mbiemër + Mbiemër + + Emër Rrugë @@ -1922,9 +1943,9 @@ Përzgjidhni adresë - Jeni i sigurt se doni të fshihet kjo adresë? + Jeni i sigurt se doni të fshihet kjo adresë? - Të fshihet kjo adresë? + Të fshihet kjo adresë? Fshije @@ -2022,50 +2043,50 @@ Përpunoni - Jeni i sigurt se doni të fshihen këto kredenciale hyrjeje? + Jeni i sigurt se doni të fshihen këto kredenciale hyrjeje? - Jeni i sigurt se doni të fshihet ky fjalëkalim? + Jeni i sigurt se doni të fshihet ky fjalëkalim? Fshije Anuloje - Mundësi hyrjesh + Mundësi hyrjesh - Mundësi fjalëkalimesh + Mundësi fjalëkalimesh - Fusha e përpunueshme e teksteve për adresën web të kredencialeve të hyrjes. - - Fusha e përpunueshme e teksteve për adresën web të fjalëkalimit. + Fusha e përpunueshme e teksteve për adresën web të kredencialeve të hyrjes. + + Fusha e përpunueshme e teksteve për adresën e sajtit. - Fusha e përpunueshme e teksteve për emrin e përdoruesit të kredencialeve të hyrjes. - - Fusha e përpunueshme e teksteve për emrin e përdoruesit të fjalëkalimit. + Fusha e përpunueshme e teksteve për emrin e përdoruesit të kredencialeve të hyrjes. + + Fusha e përpunueshme e teksteve për emrin e përdoruesit. - Fusha e përpunueshme e teksteve për fjalëkalimin e kredencialeve të hyrjes. + Fusha e përpunueshme e teksteve për fjalëkalimin e kredencialeve të hyrjes. - Fusha e përpunueshme e teksteve për fjalëkalimin. + Fusha e përpunueshme e teksteve për fjalëkalimin. - Ruani ndryshimet te kredenciale hyrjesh. + Ruani ndryshimet te kredenciale hyrjesh. - Ruaji ndryshimet. + Ruaji ndryshimet. - Përpunoni + Përpunoni - Përpunoni fjalëkalimin + Përpunoni fjalëkalimin - Shtoni kredenciale hyrjeje të re + Shtoni kredenciale hyrjeje të re - Shtoni fjalëkalim + Shtoni fjalëkalim - Lypset fjalëkalim + Lypset fjalëkalim - Jepni një fjalëkalim + Jepni një fjalëkalim - Emri i përdoruesit është i domosdoshëm + Emri i përdoruesit është i domosdoshëm - Jepni emër përdoruesi + Jepni emër përdoruesi Lypset strehëemër @@ -2091,13 +2112,13 @@ Lidhni pajisje tjetër. Ju lutemi, ribëni mirëfilltësimin. - + Ju lutemi, aktivizoni njëkohësim skedash. - S’keni ndonjë skedë të hapur te Firefox-i në pajisje tuajat të tjera. - + S’keni ndonjë skedë të hapur te LeOSium-i në pajisje tuajat të tjera. + Shihni një listë skedash nga pajisje tuajat të tjera. - + Për njëkohësim, bëni hyrjen @@ -2149,15 +2170,15 @@ Të vetëmbyllen pas një muaji? - Firefox-i mund të mbyllë skedat që s’i keni parë gjatë muajit të kaluar. + LeOSium-i mund të mbyllë skedat që s’i keni parë gjatë muajit të kaluar. AKTIVIZONI VETËMBYLLJEN Vetëmbyllje e aktivizuar - - Firefox-i Sugjeron + + LeOSium-i Sugjeron Kërkim me Google @@ -2165,7 +2186,10 @@ Kërkim me %s - Caktoni lidhje prej sajtesh, email-esh dhe mesazhezh për hapje të automatizuar në Firefox. + + Ndërroni shfletuesin tuaj parazgjedhje + + Caktoni lidhje prej sajtesh, email-esh dhe mesazhezh për hapje të automatizuar në LeOSium. Hiqe @@ -2174,7 +2198,7 @@ Klikoni për më tepër hollësi - Lëvizni për sipër + Lëvizni për sipër Mbylle @@ -2189,7 +2213,7 @@ Mundësuar nga %s. - Pjesë e Familjes Firefox. %s + Pjesë e Familjes LeOSium. %s Mësoni më tepër @@ -2215,8 +2239,6 @@ Vlerësim i rregulluar - U hoqën shqyrtime jo të besueshme - Bazuar në shqyrtime të besueshme Gjëra në pah nga shqyrtimet së fundi @@ -2273,10 +2295,6 @@ Nëse e shihni sërish në stok këtë produkt, raportojeni dhe do të merremi me kontrollin e shqyrtimeve. Njoftoni se për produktin ka prapë stok - - Kontroll cilësie shqyrtimesh - - Po kontrollohet cilësi shqyrtimesh Po kontrollohet cilësi shqyrtimesh (%s) @@ -2313,22 +2331,28 @@ Kontrollo cilësi shqyrtimi Provoni udhërrëfyesin tonë të besuar për shqyrtime produktesh - + Shihni se sa të besueshme janë shqyrtime në %1$s, para se të blini. Kontrollori i Shqyrtimeve, një veçori eksperimentale prej %2$s-s, është ndërtuar drejt e në shfletues. Funksionon edhe në %3$s dhe %4$s. - + Shihni se sa të besueshme janë shqyrtime produktesh në %1$s, para se të blini. Kontrollori i Shqyrtimeve, një veçori eksperimentale prej %2$s-s, është ndërtuar drejt e në shfletues. Duke përdorur fuqinë e %1$s nga Mozilla, ju ndihmojmë të shmangni shqyrtime të njëanshme dhe jo të mirëfillta. Modeli ynë AI përmirësohet përherë, për t’ju mbrojtur teksa blini në internet. %2$s Mësoni më tepër - Duke përzgjedhur “Po, Provojeni”, pajtoheni me %1$s nga %2$s dhe %3$s të Mozilla-s. + Duke përzgjedhur “Po, Provojeni”, pajtoheni me %1$s nga %2$s dhe %3$s të Mozilla-s. Duke përzgjedhur “Po, provojeni”, pajtoheni me sa vijon prej %1$s: + + Duke përzgjedhur “Po, provojeni”, pajtoheni me %2$s e %1$s dhe %4$s të %3$s. + + Duke përzgjedhur “Po, provojeni”, pajtoheni me %2$s e %1$s dhe %4$s të %3$s. - rregulla privatësie + rregulla privatësie Rregulla privatësie + + shënim privatësie kushte përdorimi @@ -2384,7 +2408,7 @@ që të mësoni më tepër mbi këtë koleksion, hapni lidhjen lexoni artikullin - + që të mësoni më tepër, hapni lidhjen %s, Krye @@ -2400,11 +2424,15 @@ Të përkthehet kjo faqe? + + Faqe e përkthyer nga %1$s në %2$s Provoni përkthime private në %1$s Për privatësinë tuaj, përkthimet nuk dalin kurrë jashtë pajisjes tuaj. Së shpejti vijnë gjuhë të reja dhe përmirësime! %1$s - + Mësoni më tepër Përkthe nga @@ -2412,6 +2440,8 @@ Përkthe në Jo tani + + Shfaq origjinalin U bë @@ -2423,6 +2453,8 @@ Përkthim Në Kryerje e Sipër + + Zgjidhni një gjuhë Pati një problem me përkthimin. Ju lutemi, riprovoni. @@ -2432,6 +2464,15 @@ Mësoni më tepër + + Po përkthehet… + + Të shkarkohet nën mënyrën ruajtje të dhënash (%1$s)? + + Mundësi Përkthimi diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 591a064e..4844a6f4 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -69,12 +69,12 @@ Не остављајте трагове на овом уређају %1$s брише ваше колачиће, историју и податке сајта када затворите све ваше приватне прозоре. %2$s %1$s брише ваше колачиће, историју и податке сајта када затворите све ваше приватне језичке. %2$s - Нека Firefox буде ваш главни прегледач + Note: The word "LeOSium" should NOT be translated --> + Нека LeOSium буде ваш главни прегледач Бринемо о вашој безбедности - Firefox ставља људе испред профита и штити вашу приватност тако што блокира елементе за праћење.\n\nСазнајте више у нашем обавештењу о приватности. + Note: The word "LeOSium" should NOT be translated --> + LeOSium ставља људе испред профита и штити вашу приватност тако што блокира елементе за праћење.\n\nСазнајте више у нашем обавештењу о приватности. Наш непрофитни прегледач спречава компаније да вас тајно прате на мрежи.\n\nСазнајте више у нашем обавештењу о приватности. Пренесите картице и лозинке за ваших осталих уређаја и наставите тамо где сте стали. - Безбеднији сте када се пријавите и синхронизујете. Firefox шифрује ваше лозинке, обележиваче и остало. + Note: The word "LeOSium" should NOT be translated --> + Безбеднији сте када се пријавите и синхронизујете. LeOSium шифрује ваше лозинке, обележиваче и остало. Пријави се Не сада - Обавештења вам помажу да урадите више уз Firefox + Note: The word "LeOSium" should NOT be translated --> + Обавештења вам помажу да урадите више уз LeOSium - Обавештења помажу Firefox-у да вас заштити + Note: The word "LeOSium" should NOT be translated --> + Обавештења помажу LeOSium-у да вас заштити - Шаљите картице између уређаја, управљајте преузимањима и добијајте савете о томе како да најбоље искористите Firefox. + Note: The word "LeOSium" should NOT be translated --> + Шаљите картице између уређаја, управљајте преузимањима и добијајте савете о томе како да најбоље искористите LeOSium. - Безбедно шаљите језичке између уређаја и откријте нове функције приватности у Firefox-у. + Note: The word "LeOSium" should NOT be translated --> + Безбедно шаљите језичке између уређаја и откријте нове функције приватности у LeOSium-у. Укључи обавештења Не сада - Испробајте Firefox-ов виџет за претрагу + Note: The word "LeOSium" should NOT be translated --> + Испробајте LeOSium-ов виџет за претрагу - Уз Firefox на почетном екрану, добијате лак приступ прегледачу који брине о приватности и блокира елементе за праћење. + Note: The word "LeOSium" should NOT be translated --> + Уз LeOSium на почетном екрану, добијате лак приступ прегледачу који брине о приватности и блокира елементе за праћење. - Додај Firefox виџет + Note: The word "LeOSium" should NOT be translated --> + Додај LeOSium виџет Не сада @@ -430,10 +430,10 @@ Адресна трака Подешавања адресне траке - - Адресна трака - Firefox предлог - - Сазнајте више о Firefox предлогу + + Адресна трака - LeOSium предлог + + Сазнајте више о LeOSium предлогу Оцените на Google Play продавници Приступачност - - Прилагођени сервер Firefox налога + + Прилагођени сервер LeOSium налога Прилагођени сервер Mozilla налога Прилагођени Sync сервер - Firefox налог/Sync сервер је промењен. Затворите апликацију да би промене ступиле на снагу… + LeOSium налог/Sync сервер је промењен. Затворите апликацију да би промене ступиле на снагу… Mozilla налог/сервер за синхронизацију је измењен. Затварање апликације ради примене промена… @@ -576,7 +576,7 @@ Пријавите се да бисте синхронизовали своје језичке, обележиваче, лозинке и друго. - Firefox налог + LeOSium налог Mozilla налог @@ -609,15 +609,15 @@ Подешавања налога Аутоматско завршавање адреса - + Спонзорисани предлози - Подржите %1$s повременим спонзорисаним предлозима - Предлози од %1$s - + Добијајте предлоге са интернета у вези са вашим претрагама Отвори везе у апликацијама @@ -698,7 +698,7 @@ Није могуће променити позадину Сазнај више - + Класнични %s @@ -717,8 +717,8 @@ Нови додаци су доступни - - Откријте преко 100 нових додатака који вам омогућавају да прилагодите Firefox. + + Откријте преко 100 нових додатака који вам омогућавају да прилагодите LeOSium. Истражите додатке @@ -787,7 +787,7 @@ Примљени језичци - Обавештења за језичке примљене са других Firefox уређаја. + Обавештења за језичке примљене са других LeOSium уређаја. Примљен језичак @@ -970,7 +970,7 @@ Уклони Активно - + %1$s може повремено да инсталира и покрене истраживања. Сазнајте више @@ -1348,7 +1348,7 @@ Повежи други уређај - Да бисте послали језичак, пријавите се у Firefox на барем једном уређају. + Да бисте послали језичак, пријавите се у LeOSium на барем једном уређају. Важи @@ -1370,10 +1370,10 @@ - Firefox је брз и приватан + LeOSium је брз и приватан - Поставите Firefox као подразумевани прегледач + Поставите LeOSium као подразумевани прегледач Испробајте приватно прегледање - Побољшајте Firefox тако што ћете попунити кратку анкету. + Побољшајте LeOSium тако што ћете попунити кратку анкету. Попуни анкету @@ -1540,16 +1540,16 @@ Скенирај код - https://firefox.com/pair]]> + https://firefox.com/pair]]> Спреман за скенирање Пријава преко камере Користи адресу е-поште - - Направите га за синхронизацију Firefox-а међу уређајима.]]> - + + Направите га за синхронизацију LeOSium-а међу уређајима.]]> + %s ће престати са синхронизацијом вашег налога, али неће обрисати ваше податке прегледања на овом уређају. Прекини везу @@ -1567,7 +1567,7 @@ Сада садржи потпуну заштиту од колачића, наш најјачи штит против елемената за праћење трећих страна. - + %s вас штити од многих честих елемената за праћење који надзиру шта радите на мрежи. Сазнајте више @@ -1726,9 +1726,9 @@ Упитај за чување Никада не чувај - + Аутоматско попуњавање у %1$s - + Аутоматски попуњавајте корисничка имена и лозинке на сајтовима када користите %1$s. Аутоматско попуњавање у другим апликацијама @@ -2071,14 +2071,14 @@ Повежите други уређај. Поново потврдите идентитет. - + Омогућите синхронизацију језичака. - Немате отворених Firefox језичака на вашим другим уређајима. - + Немате отворених LeOSium језичака на вашим другим уређајима. + Погледајте списак језичака са ваших других уређаја. - + Пријавите се на Sync @@ -2132,15 +2132,15 @@ Самостално затвори након једног месеца? - Firefox може да затвори језичке које нисте прегледали прошлог месеца. + LeOSium може да затвори језичке које нисте прегледали прошлог месеца. УКЉУЧИ АУТОМАТСКО ЗАТВАРАЊЕ Аутоматско затварање омогућено - - Firefox предлог + + LeOSium предлог Google претрага @@ -2148,7 +2148,7 @@ %s претрага - Подешава самостално отварање адреса са страница, мејлова и порука унутар Firefox-a. + Подешава самостално отварање адреса са страница, мејлова и порука унутар LeOSium-a. Уклони @@ -2172,7 +2172,7 @@ Покреће %s. - Део Firefox породице. %s + Део LeOSium породице. %s Сазнајте више @@ -2274,6 +2274,6 @@ отворите везу да сазнате више о овој колекцији прочитајте чланак - + отворите везу да сазнате више diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index 9f61b662..9c35b6c6 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -69,12 +69,12 @@ Hapus tapak di ieu piranti %1$s mupus réréméh, jujutan, jeung data loka anjeun nalika anjeun nutup sakabéh jandéla nyamuni. %2$s %1$s mupus réréméh, jujutan, jeung data loka anjeun nalika anjeun nutup sakabéh jandéla nyamuni. %2$s - Jadikeun Firefox panyungsi ider anjeun + Note: The word "LeOSium" should NOT be translated --> + Jadikeun LeOSium panyungsi ider anjeun - Firefox mernahkeun jalma luhureun kauntungan sarta mélaan pripasi anjeun ku cara meungpeuk palacak meuntas-loka.\n\nLenyepan dina wawar pripasi. + Note: The word "LeOSium" should NOT be translated --> + LeOSium mernahkeun jalma luhureun kauntungan sarta mélaan pripasi anjeun ku cara meungpeuk palacak meuntas-loka.\n\nLenyepan dina wawar pripasi. wawar pripasi @@ -352,25 +352,25 @@ Moal waka - Iber mantuan anjeun barang gawé jeung Firefox + Note: The word "LeOSium" should NOT be translated --> + Iber mantuan anjeun barang gawé jeung LeOSium - Kirim tab antarpiranti, atur undeuran, baca cara ngadayagunakeun Firefox. + Note: The word "LeOSium" should NOT be translated --> + Kirim tab antarpiranti, atur undeuran, baca cara ngadayagunakeun LeOSium. Hurungkeun iber Moal waka - Coba wijet pamaluruhan Firefox + Note: The word "LeOSium" should NOT be translated --> + Coba wijet pamaluruhan LeOSium - Ku ayana Firefox dina layar tepas, anjeun boga jalan ka panyungsi anu ngutamakeun pripasi anu meungpeuk palacak meuntas loka. + Note: The word "LeOSium" should NOT be translated --> + Ku ayana LeOSium dina layar tepas, anjeun boga jalan ka panyungsi anu ngutamakeun pripasi anu meungpeuk palacak meuntas loka. - Tambahkeun wijet Firefox + Note: The word "LeOSium" should NOT be translated --> + Tambahkeun wijet LeOSium Moal waka @@ -414,10 +414,10 @@ Palang alamat Préperénsi palang alamat - - Palang alamat - Firefox Suggest - - Leuwih teleb ngeunaan Firefox Suggest + + Palang alamat - LeOSium Suggest + + Leuwih teleb ngeunaan LeOSium Suggest Peunteun dina Google Play Aksésibilitas - - Serper Firefox Account biasa + + Serper LeOSium Account biasa Serper Sync kustom - Serper Firefox Account/Sync geus dirobah. Kaluar ti aplikasi pikeun nerapkeun parobahan… + Serper LeOSium Account/Sync geus dirobah. Kaluar ti aplikasi pikeun nerapkeun parobahan… Akun @@ -539,7 +539,7 @@ Asup pikeun nyingkronkeun tab, markah, kecap sandi, jeung sajabana. - Akun Firefox + Akun LeOSium Akun Mozilla @@ -575,7 +575,7 @@ Otokumplit URLs - Saran ti %1$s @@ -657,7 +657,7 @@ Leuwih teleb - + %s klasik @@ -737,7 +737,7 @@ Tab nu katampa - Iber pikeun tab anu katampa ti séjén piranti Firefox. + Iber pikeun tab anu katampa ti séjén piranti LeOSium. Tab Katampa @@ -922,7 +922,7 @@ Piceun Aktip - + %1$s bisa masang jeung ngajalankeun studi iraha baé. Lenyepan @@ -1299,7 +1299,7 @@ Sambungkeun parangkat séjén - Pikeun ngirim tab, asup ka Firefox sahanteuna sakali di piranti nu séjén. + Pikeun ngirim tab, asup ka LeOSium sahanteuna sakali di piranti nu séjén. Ngarti @@ -1321,10 +1321,10 @@ - Firefox gancang jeung rikip + LeOSium gancang jeung rikip - Jadikeun Firefox panyungsi baku + Jadikeun LeOSium panyungsi baku Cobaan nyungsi nyamuni - Bantuan Firefox sangkan leuwih hadé ku miluan surpéy pondok. + Bantuan LeOSium sangkan leuwih hadé ku miluan surpéy pondok. Eusi Surpéy @@ -1497,16 +1497,16 @@ Pinday sandi - https://firefox.com/pair]]> + https://firefox.com/pair]]> Siap mindai Asup maké kaméra anjeun Maké surél wéh - - Jieun pikeun nyingkronkeun Firefox dina sakabéh parabot.]]> - + + Jieun pikeun nyingkronkeun LeOSium dina sakabéh parabot.]]> + %s bakal eureun nyingkronkeun jeung akun anjeun, ngan moal mupus sakur data langlangan anjeun dina ieu parangkat. Pegatkeun @@ -1523,7 +1523,7 @@ Kilung Palacakan anu Dironjatkeun Ayeuna mituran Kilung Réréméh Total, bénténg pangwedelna tur ngahalangan palacak meuntas-loka. - + %s ngajaga anjeun ti kalolobaan palacak anu nunutur lalampahan anjeun jero jaringan. Lenyepan @@ -1684,10 +1684,10 @@ Naros keur neundeun Ulah diteundeun - + Otoeusi dina %1$s - + Eusian jeung simpen sandiasma jeung kecap sandi dina raramatloka nalika maké %1$s. Otoeusi di séjén aplikasi @@ -2037,13 +2037,13 @@ Sambungkeun séjén paranti. Mangga oténtikasi ulang. - + Mangga hurungkeun singkronan tab. - Anjeun teu miboga tab anu muka dina Firefox di séjén paranti anjeun. - + Anjeun teu miboga tab anu muka dina LeOSium di séjén paranti anjeun. + Témbongkeun béréndélan tab ti séjén paranti anjeun. - + Asup pikeun nyingkronkeun @@ -2095,7 +2095,7 @@ Oto-tutup sanggeus sabulan? - Firefox bisa nutup tab anu ku anjeun teu dibuka leuwih ti sabulan. + LeOSium bisa nutup tab anu ku anjeun teu dibuka leuwih ti sabulan. HURUNGKEUN OTO-TUTUP @@ -2103,8 +2103,8 @@ Nutup otomatis dihurungkeun - - Firefox Suggest + + LeOSium Suggest Pamaluruhan Google @@ -2112,7 +2112,7 @@ Pamaluruhan %s - Setél tutumbu ti raramatloka, surélék, jeung surat pikeun muka otomatis dina Firefox. + Setél tutumbu ti raramatloka, surélék, jeung surat pikeun muka otomatis dina LeOSium. Piceun @@ -2136,7 +2136,7 @@ Dijalankeun ku %s. - Bagéan ti kulawarga Firefox. %s + Bagéan ti kulawarga LeOSium. %s Lenyepan @@ -2184,6 +2184,6 @@ buka tutumbu pikeun leuwih teleb ngeunaan ieu koléksi baca artikel - + buka tutumbu pikeun ngalenyepan diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 27f29951..07134f06 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -71,7 +71,7 @@ Lämna inga spår på den här enheten %1$s tar bort dina kakor, historik och webbplatsdata när du stänger alla dina privata flikar. %2$s Översätt sida + + Sida översatt från %1$s till %2$s. + Valt språk @@ -336,13 +341,23 @@ - Firefox sekretessmeddelande - + LeOSium sekretessmeddelande + + Läs mer i vårt sekretessmeddelande Vi älskar att hålla dig säker + + Ta reda på varför miljoner älskar LeOSium + + Säker surfning med flera val Vår icke-vinstdrivande webbläsare hjälper till att hindra företag från att i hemlighet följa dig på webben. + Mer än 100 miljoner människor skyddar sin integritet genom att välja en webbläsare som stöds av en ideell organisation. + + Kända spårare? Blockeras automatiskt. Tillägg? Prova alla 700. PDF-filer? Vår inbyggda läsare gör dem enklare att hantera. + Vår icke-vinstdrivande webbläsare hjälper till att hindra företag från att följa dig i hemlighet på webben.\n\nLäs mer i vårt sekretessmeddelande. @@ -355,32 +370,32 @@ Håll dig krypterad när du byter enhet - När du är inloggad och synkroniserad är du säkrare. Firefox krypterar dina lösenord, bokmärken och mer. + Note: The word "LeOSium" should NOT be translated --> + När du är inloggad och synkroniserad är du säkrare. LeOSium krypterar dina lösenord, bokmärken och mer. Logga in Inte nu - Aviseringar hjälper dig att vara säkrare med Firefox + Note: The word "LeOSium" should NOT be translated --> + Aviseringar hjälper dig att vara säkrare med LeOSium - Skicka flikar säkert mellan dina enheter och upptäck andra sekretessfunktioner i Firefox. + Note: The word "LeOSium" should NOT be translated --> + Skicka flikar säkert mellan dina enheter och upptäck andra sekretessfunktioner i LeOSium. Slå på aviseringar Inte nu - Prova Firefox sökwidget + Note: The word "LeOSium" should NOT be translated --> + Prova LeOSium sökwidget - Med Firefox på din startskärm kan du enkelt komma åt den sekretessfokuserade webbläsaren som blockerar spårare på flera webbplatser. + Note: The word "LeOSium" should NOT be translated --> + Med LeOSium på din startskärm kan du enkelt komma åt den sekretessfokuserade webbläsaren som blockerar spårare på flera webbplatser. - Lägg till Firefox widget + Note: The word "LeOSium" should NOT be translated --> + Lägg till LeOSium widget Inte nu @@ -420,10 +435,10 @@ Förslag från sökmotorer Inställningar för adressfältet - - Adressfält - Firefox förslag - - Läs mer om Firefox förslag + + Adressfält - LeOSium förslag + + Läs mer om LeOSium förslag Betygsätt på Google Play Säker webbplats är inte tillgänglig - Troligtvis stöder webbplatsen helt enkelt inte HTTPs. + Troligtvis stöder webbplatsen helt enkelt inte HTTPS. Men det är också möjligt att en angripare är inblandad. Om du fortsätter till webbplatsen ska du inte ange någon känslig information. Om du fortsätter kommer endast HTTPS-läget att stängas av tillfälligt för webbplatsen. @@ -561,15 +576,15 @@ Autokomplettera URL:ar - + Förslag från sponsorer - Stöd %1$s med enstaka sponsrade förslag - Förslag från %1$s - + Få förslag från webben relaterade till din sökning Öppna länkar i appar @@ -652,7 +667,7 @@ Läs mer - + Klassisk %s Konstnärsserie @@ -670,8 +685,8 @@ Nya tillägg finns nu tillgängliga - - Kolla in över 100 nya tillägg som låter dig göra Firefox till din egen. + + Kolla in över 100 nya tillägg som låter dig göra LeOSium till din egen. Utforska tillägg @@ -699,9 +714,9 @@ Bokmärken - Inloggningar + Inloggningar - Lösenord + Lösenord Öppna flikar @@ -728,9 +743,9 @@ %1$s på %2$s %3$s - Kreditkort + Kreditkort - Betalningsmetoder + Betalningsmetoder Adresser @@ -738,7 +753,7 @@ Mottagna flikar - Meddelanden för flikar som tas emot från andra Firefox-enheter. + Meddelanden för flikar som tas emot från andra LeOSium-enheter. Flik mottagen @@ -921,7 +936,7 @@ Ta bort Aktiv - + %1$s kan installera och köra undersökningar då och då. Läs mer @@ -1298,7 +1313,7 @@ Anslut en annan enhet - För att skicka en flik, logga in på Firefox på minst en annan enhet. + För att skicka en flik, logga in på LeOSium på minst en annan enhet. Jag förstår @@ -1329,10 +1344,10 @@ - Firefox är snabb och privat + LeOSium är snabb och privat - Gör Firefox till din standardwebbläsare + Gör LeOSium till din standardwebbläsare Prova privat surfning @@ -1353,7 +1368,7 @@ - Hjälp till att göra Firefox bättre genom att svara på en kort undersökning. + Hjälp till att göra LeOSium bättre genom att svara på en kort undersökning. Gör undersökning @@ -1502,16 +1517,16 @@ Skanna QR-kod - https://firefox.com/pair]]> + https://firefox.com/pair]]> Redo att skanna Logga in med din kamera Använd e-post istället - - Skapa ett för att synkronisera Firefox mellan enheter.]]> - + + Skapa ett för att synkronisera LeOSium mellan enheter.]]> + %s kommer att sluta synkronisera med ditt konto, men tar inte bort någon av dina surfdata på den här enheten. Koppla från @@ -1528,7 +1543,7 @@ Förbättrat spårningsskydd Nu med Totalt skydd mot kakor, vår mest kraftfulla barriär hittills mot spårare på flera webbplatser. - + %s skyddar dig från många av de vanligaste spårarna som följer vad du gör online. Läs mer @@ -1679,20 +1694,20 @@ Du kan enkelt lägga till den här webbplatsen på enhetens startskärm för att få direktåtkomst och surfa snabbare med en appliknande upplevelse. - Inloggningar och lösenord + Inloggningar och lösenord - Lösenord + Lösenord - Spara inloggningar och lösenord + Spara inloggningar och lösenord - Spara lösenord + Spara lösenord Fråga för att spara Spara aldrig - + Autofyll i %1$s - + Fyll i och spara användarnamn och lösenord på webbplatser medan du använder %1$s. Autofyll i andra appar @@ -1700,48 +1715,48 @@ Fyll i användarnamn och lösenord i andra appar på din enhet. - Lägg till inloggning + Lägg till inloggning - Lägg till lösenord + Lägg till lösenord - - Synkronisera inloggningar - Synkronisera lösenord + Synkronisera inloggningar + + Synkronisera lösenord - Synkronisera inloggningar mellan enheter + Synkronisera inloggningar mellan enheter - Synkronisera lösenord mellan enheter + Synkronisera lösenord mellan enheter - Sparade inloggningar + Sparade inloggningar - Sparade lösenord + Sparade lösenord - De inloggningar som du sparar eller synkroniserar till %s kommer att dyka upp här. + De inloggningar som du sparar eller synkroniserar till %s kommer att dyka upp här. - Lösenorden du sparar eller synkroniserar till %s kommer att listas här. Alla lösenord du sparar är krypterade. + Lösenorden du sparar eller synkroniserar till %s kommer att listas här. Alla lösenord du sparar är krypterade. - Läs mer om Sync. + Läs mer om Sync. - Läs mer om synkronisering + Läs mer om synkronisering Undantag - Inloggningar och lösenord som inte sparas visas här. + Inloggningar och lösenord som inte sparas visas här. - %s kommer inte att spara lösenord för webbplatser som listas här. + %s kommer inte att spara lösenord för webbplatser som listas här. - Inloggningar och lösenord sparas inte för dessa webbplatser. + Inloggningar och lösenord sparas inte för dessa webbplatser. - %s kommer inte att spara lösenord för dessa webbplatser. + %s kommer inte att spara lösenord för dessa webbplatser. Ta bort alla undantag - Sök inloggningar + Sök inloggningar - Sök efter lösenord + Sök efter lösenord Webbplats @@ -1769,17 +1784,17 @@ Dölj lösenord - Lås upp för att se dina sparade inloggningar + Lås upp för att se dina sparade inloggningar - Lås upp för att se dina sparade lösenord + Lås upp för att se dina sparade lösenord - Säkra dina inloggningar och lösenord + Säkra dina inloggningar och lösenord - Säkra dina sparade lösenord + Säkra dina sparade lösenord - Konfigurera enhetens låsmönster, PIN eller lösenord för att skydda dina sparade inloggningar och lösenord från åtkomst om någon annan har din enhet. + Konfigurera enhetens låsmönster, PIN eller lösenord för att skydda dina sparade inloggningar och lösenord från åtkomst om någon annan har din enhet. - Konfigurera ett enhetslåsmönster, PIN-kod eller lösenord för att skydda dina sparade lösenord från åtkomst om någon annan använder din enhet. + Konfigurera ett enhetslåsmönster, PIN-kod eller lösenord för att skydda dina sparade lösenord från åtkomst om någon annan använder din enhet. Senare @@ -1796,10 +1811,10 @@ Senast använd - Sortera inloggningsmenyn + Sortera inloggningsmenyn - Menyn sortera lösenord + Menyn sortera lösenord @@ -1807,43 +1822,43 @@ Adresser - Kreditkort + Kreditkort - Betalningsmetoder + Betalningsmetoder - Spara och fyll i kreditkort automatiskt + Spara och fyll i kreditkort automatiskt - Spara och fyll i betalningsmetoder + Spara och fyll i betalningsmetoder - Data är krypterad + Data är krypterad - %s krypterar alla betalningsmetoder som du sparar + %s krypterar alla betalningsmetoder som du sparar Synkronisera kort mellan enheter Synkronisera kort - Lägg till kreditkort + Lägg till kreditkort - Lägg till kort + Lägg till kort - Hantera sparade kreditkort + Hantera sparade kreditkort - Hantera kort + Hantera kort Lägg till adress Hantera adresser - Spara och fyll i adresser automatiskt + Spara och fyll i adresser automatiskt - Spara och fyll i adresser + Spara och fyll i adresser - Inkludera information som nummer, e-post och leveransadresser + Inkludera information som nummer, e-post och leveransadresser - Inkluderar telefonnummer och e-postadresser + Inkluderar telefonnummer och e-postadresser Lägg till kreditkort @@ -1864,9 +1879,9 @@ Ta bort kort - Är du säker på att du vill ta bort det här kreditkortet? + Är du säker på att du vill ta bort det här kreditkortet? - Ta bort kort? + Ta bort kort? Ta bort @@ -1880,24 +1895,24 @@ Sparade kreditkort - Ange ett giltigt kreditkortsnummer + Ange ett giltigt kreditkortsnummer - Ange ett giltigt kortnummer + Ange ett giltigt kortnummer - Fyll i det här fältet + Fyll i det här fältet - Lägg till ett namn + Lägg till ett namn Lås upp för att se dina sparade kreditkort - Säkra dina kreditkort + Säkra dina kreditkort - Säkra dina sparade betalningsmetoder + Säkra dina sparade betalningsmetoder - Konfigurera enhetens låsmönster, PIN eller lösenord för att skydda dina sparade kreditkort från åtkomst om någon annan har din enhet. + Konfigurera enhetens låsmönster, PIN eller lösenord för att skydda dina sparade kreditkort från åtkomst om någon annan har din enhet. - Konfigurera ett enhetslåsmönster, PIN-kod eller lösenord för att skydda dina sparade betalningsmetoder från att användas om någon annan har din enhet. + Konfigurera ett enhetslåsmönster, PIN-kod eller lösenord för att skydda dina sparade betalningsmetoder från att användas om någon annan har din enhet. Konfigurera nu @@ -1906,10 +1921,10 @@ Lås upp din enhet - Lås upp för att använda lagrad kreditkortsinformation + Lås upp för att använda lagrad kreditkortsinformation - Lås upp för att använda sparade betalningsmetoder + Lås upp för att använda sparade betalningsmetoder Lägg till adress @@ -1917,11 +1932,13 @@ Hantera adresser - Förnamn + Förnamn - Mellannamn + Mellannamn - Efternamn + Efternamn + + Namn Gatuadress @@ -1946,9 +1963,9 @@ Ta bort adress - Är du säker på att du vill ta bort den här adressen? + Är du säker på att du vill ta bort den här adressen? - Ta bort den här adressen? + Ta bort den här adressen? Ta bort @@ -2047,49 +2064,49 @@ Redigera - Är du säker på att du vill ta bort den här inloggningen? + Är du säker på att du vill ta bort den här inloggningen? - Är du säker på att du vill ta bort det här lösenordet? + Är du säker på att du vill ta bort det här lösenordet? Ta bort Avbryt - Inloggningsalternativ + Inloggningsalternativ - Lösenordsalternativ + Lösenordsalternativ - Det redigerbara textfältet för inloggningens webbadress. + Det redigerbara textfältet för inloggningens webbadress. - Det redigerbara textfältet för webbplatsadressen. + Det redigerbara textfältet för webbplatsadressen. - Det redigerbara textfältet för inloggningens användarnamn. + Det redigerbara textfältet för inloggningens användarnamn. - Det redigerbara textfältet för användarnamnet. + Det redigerbara textfältet för användarnamnet. - Det redigerbara textfältet för inloggningens lösenord. + Det redigerbara textfältet för inloggningens lösenord. - Det redigerbara textfältet för lösenordet. + Det redigerbara textfältet för lösenordet. - Spara ändringar för inloggning. + Spara ändringar för inloggning. - Spara ändringar. + Spara ändringar. - Redigera + Redigera - Redigera lösenord + Redigera lösenord - Lägg till ny inloggning + Lägg till ny inloggning - Lägg till lösenord + Lägg till lösenord - Lösenord krävs + Lösenord krävs - Ange ett lösenord + Ange ett lösenord - Användarnamn krävs + Användarnamn krävs - Ange ett användarnamn + Ange ett användarnamn Värdnamn krävs @@ -2114,13 +2131,13 @@ Anslut en annan enhet. Bekräfta igen. - + Aktivera fliksynkronisering. - Du har inga flikar öppna i Firefox på dina andra enheter. - + Du har inga flikar öppna i LeOSium på dina andra enheter. + Visa en lista med flikar från dina andra enheter. - + Logga in för att synkronisera @@ -2172,7 +2189,7 @@ Stäng de automatiskt efter en månad? - Firefox kan stänga flikar som du inte har besökt under den senaste månaden. + LeOSium kan stänga flikar som du inte har besökt under den senaste månaden. SLÅ PÅ AUTOMATISK STÄNGNING @@ -2180,8 +2197,8 @@ Automatisk stängning aktiverad - - Firefox Suggest + + LeOSium Suggest Sök med Google @@ -2192,7 +2209,7 @@ Ändra din standardwebbläsare - Ställ in länkar från webbplatser, e-post och meddelanden så att de öppnas automatiskt i Firefox. + Ställ in länkar från webbplatser, e-post och meddelanden så att de öppnas automatiskt i LeOSium. Ta bort @@ -2201,7 +2218,7 @@ Klicka för mer information - Navigera uppåt + Navigera uppåt Stäng @@ -2216,7 +2233,7 @@ Tillhandahålls av %s. - Del av Firefox-familjen. %s + Del av LeOSium-familjen. %s Läs mer @@ -2242,8 +2259,6 @@ Justerat betyg - Opålitliga recensioner har tagits bort - Baserat på tillförlitliga recensioner Höjdpunkter från de senaste recensionerna @@ -2299,10 +2314,6 @@ Om du ser att den här produkten finns i lager igen, rapportera det så jobbar vi med att kontrollera recensionerna. Rapportera att produkten finns i lager - - Kontrollerar recensionens kvalitet - - Kontrollerar recensionens kvalitet Kontrollerar recensionskvalitet (%s) @@ -2339,22 +2350,28 @@ Kontrollera recensionens kvalitet Prova vår pålitliga guide till produktrecensioner - + Se hur tillförlitliga produktrecensioner är på %1$s innan du köper. Recensionsgranskaren, en experimentell funktion från %2$s, är inbyggd direkt i webbläsaren. Den fungerar på %3$s och %4$s också. - + Se hur tillförlitliga produktrecensioner är på %1$s innan du köper. Recensionsgranskaren, en experimentell funktion från %2$s, är inbyggd direkt i webbläsaren. Med kraften i %1$s från Mozilla hjälper vi dig att undvika partiska och oäkta recensioner. Vår AI-modell förbättras alltid för att skydda dig när du handlar. %2$s Läs mer - Genom att välja "Ja, prova den" godkänner du %1$s av Mozillas %2$s och %3$s. + Genom att välja "Ja, prova den" godkänner du %1$s av Mozillas %2$s och %3$s. Genom att välja "Ja, prova den" godkänner du följande från %1$s: + + Genom att välja "Ja, prova den" godkänner du %1$s %2$s och %3$s %4$s. + + Genom att välja "Ja, prova den" godkänner du %1$s %2$s och %3$s %4$s. - sekretesspolicy + sekretesspolicy Sekretesspolicy + + sekretessmeddelande användarvillkor @@ -2410,7 +2427,7 @@ öppna länken för att lära dig mer om denna samling läs artikeln - + öppna länken för att lära dig mer %s, Rubrik @@ -2425,11 +2442,15 @@ Översätt den här sidan? + + Sida översatt från %1$s till %2$s Prova privata översättningar i %1$s För din integritet lämnar översättningar aldrig din enhet. Nya språk och förbättringar kommer snart! %1$s - + Läs mer Översätt från @@ -2437,6 +2458,8 @@ Översätt till Inte nu + + Visa original Klar @@ -2461,6 +2484,16 @@ Läs mer + + Översätter… + + + Hämta språk i datasparläge (%1$s)? + + Översättningsalternativ diff --git a/app/src/main/res/values-szl/strings.xml b/app/src/main/res/values-szl/strings.xml index e19057f8..07803ae6 100644 --- a/app/src/main/res/values-szl/strings.xml +++ b/app/src/main/res/values-szl/strings.xml @@ -303,8 +303,8 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> Dej rokić aplikacyji %s za twoja nojlepszo przeglōndarka - Dej robić aplikacyji Firefox za twoja nojlepszo przeglōndarka + Note: The word "LeOSium" should NOT be translated --> + Dej robić aplikacyji LeOSium za twoja nojlepszo przeglōndarka ô prywatności @@ -325,14 +325,14 @@ Powiadōmiynia pōmogajōm ci lepij używać aplikacyjo %s - Powiadōmiynia pōmogajōm ci lepij używać aplikacyjo Firefox + Note: The word "LeOSium" should NOT be translated --> + Powiadōmiynia pōmogajōm ci lepij używać aplikacyjo LeOSium Posyłej karty miyndzy maszinami, regyruj pobraniami i zbiyrej dorady, jak nojlepij używać aplikacyjo %s. - Posyłej karty miyndzy maszinami, regyruj pobraniami i zbiyrej dorady, jak nojlepij używać aplikacyjo Firefox. + Note: The word "LeOSium" should NOT be translated --> + Posyłej karty miyndzy maszinami, regyruj pobraniami i zbiyrej dorady, jak nojlepij używać aplikacyjo LeOSium. Załōncz powiadōmiynia @@ -458,14 +458,14 @@ Może ale tyż sie rozchodzić ô jaki atak. Jak przyńdziesz na strōna, to niy ôstawiej na nij żodnych prywatnych informacyji. Jak na nia pudziesz, tryb "Ino HTTPS" czasowo sie wyłōnczy do tyj strōny. Dostympność - - Włosny serwer kōnta Firefox + + Włosny serwer kōnta LeOSium Włosny serwer do synchrōnizacyje - Serwer kōnta Firefox/synchrōnizacyje je zmiyniōny. Zawiyranie aplikacyje, coby przidać zmiany… + Serwer kōnta LeOSium/synchrōnizacyje je zmiyniōny. Zawiyranie aplikacyje, coby przidać zmiany… Kōnto @@ -481,7 +481,7 @@ Wluguj sie, coby synchrōnizować karty, zokłodki, hasła i inksze. - Kōnto Firefox + Kōnto LeOSium Połōncz sie zaś, coby durch synchrōnizować @@ -595,7 +595,7 @@ Niy szło zmiynić tapety Przewiydz sie wiyncyj - + Klasyczny %s @@ -661,7 +661,7 @@ Przijynte karty - Powiadōmiynia ô kartach przijyntych z inkszych maszin z aplikacyjōm Firefox. + Powiadōmiynia ô kartach przijyntych z inkszych maszin z aplikacyjōm LeOSium. Karta je przijynto @@ -842,7 +842,7 @@ Skasuj Aktywne - + %1$s może roz za czas insztalować i kludzić podszukōnki. Przewiydz sie wiyncyj @@ -1214,7 +1214,7 @@ Połōncz inkszo maszina - Coby posłać karta, zaloguj sie do Firefoxa aby na jednyj inkszyj maszinie. + Coby posłać karta, zaloguj sie do LeOSiuma aby na jednyj inkszyj maszinie. Rozumia @@ -1237,11 +1237,11 @@ - Firefox je gibki i prywatny + LeOSium je gibki i prywatny - Nastow Firefox za bazowo przeglōndarka + Nastow LeOSium za bazowo przeglōndarka Sprōbuj prywatnego przeglōndanio @@ -1372,11 +1372,11 @@ Witej w lepszym internecie Przeglōndarka zbudowano do ludzi, a niy do profitu. - + Przeglōndej ôd miejsca, kaj sie skōńczyło - + Synchrōnizuj karty i hasła miyndzy maszinami, coby snadnie przełōnczać ekrany. - + Wloguj sie Synchrōnizacyjo je załōnczōno @@ -1403,7 +1403,7 @@ Mosz kōntrola nad swojimi danymi - Firefox dowo ci kōntrola nad tym, co udostympniosz online i co udostympniosz nōm. + LeOSium dowo ci kōntrola nad tym, co udostympniosz online i co udostympniosz nōm. Poczytej ô naszych prawidłach prywatności @@ -1437,17 +1437,17 @@ Skanuj kod - https://firefox.com/pair]]> + https://firefox.com/pair]]> Fertich, coby skanować Zaloguj sie z kamerōm Użyj lepij emaila - - Zrychtuj je, coby synchrōnizować Firefoxa miyndzy maszinami.]]> + + Zrychtuj je, coby synchrōnizować LeOSiuma miyndzy maszinami.]]> - + %s skōńczy sie synchrōnizować ze twojim kōntym, ale niy skasuje żodnych danych przeglōndanio na tyj maszinie. Rozłōncz @@ -1463,7 +1463,7 @@ Polepszōno ôchrōna ôd śledzynio Teroz z pōłnym ôchrōnōm cookies, naszōm nojsiylniyjszōm baryjerōm przeciw elymyntōm, co śledzōm miyndzy strōnami. - + %s brōni cie przed mockōm nojpopularniyjszych śledzōncych elymyntōw, kere badajōm, co robisz online. Przewiydz sie wiyncyj @@ -1591,7 +1591,7 @@ Pytej sie przed spamiyntaniym Żodyn roz niy spamiyntuj - + Autōmatycznie wypōłnianie w aplikacyji %1$s diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 5f913d81..374f4992 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -206,7 +206,7 @@ அணுகுத்திறன் - + தனிப்பயன் பயர்பாக்சு கணக்குச் சேவையகம் தனிப்பயன் ஒத்திசைவு சேவையகம் @@ -819,7 +819,7 @@ உங்கள் படக்கருவியால் புகுபதிக பதிலாக மின்னஞ்சல் பயன்படுத்துக - + %s உங்கள் கணக்குடன் ஒத்திசைவை நிறுத்தும், ஆனால் இச்சாதனத்திலுள்ள உங்கள் உலாவல் தரவை அழிக்காது. இணைப்பைநீக்கு @@ -1129,13 +1129,13 @@ மறு-அங்கீகரியுங்கள். - + கீற்று ஒத்திசைவைச் செயற்படுத்துங்கள். உங்களின் மற்ற சாதனங்களின் பயர்பாக்சில் திறந்த கீற்றுகள் ஏதுமில்லை. - + உங்கள் மற்ற கருவிகளிலிருந்து கீற்றுகளின் பட்டியலைப் பார்க்க. - + ஒத்திசைக்க புகுபதிக diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 2155498d..5ea914ce 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -256,12 +256,12 @@ సురక్షిత సైటు అందుబాటులో లేదు ప్రాప్యత - - అభిమత Firefox ఖాతా సర్వరు + + అభిమత LeOSium ఖాతా సర్వరు అభిమత సింక్ సర్వరు - Firefox ఖాతా/సింక్ సర్వరు మార్చబడింది. మార్పులను వర్తింపజేయడానికి అనువర్తనం నుండి నిష్క్రమిస్తున్నాం… + LeOSium ఖాతా/సింక్ సర్వరు మార్చబడింది. మార్పులను వర్తింపజేయడానికి అనువర్తనం నుండి నిష్క్రమిస్తున్నాం… ఖాతా @@ -275,7 +275,7 @@ అభిమతీకరణ - Firefox ఖాతా + LeOSium ఖాతా సింక్ చేయడాన్ని కొనసాగించడానికి అనుసంధానించండి @@ -391,7 +391,7 @@ అందుకన్న ట్యాబులు - ఇతర Firefox పరికరాల నుంచి వచ్చిన ట్యాబుల గమనింపులు. + ఇతర LeOSium పరికరాల నుంచి వచ్చిన ట్యాబుల గమనింపులు. ట్యాబు వచ్చింది @@ -874,7 +874,7 @@ మరొక పరికరాన్ని అనుసంధానించు - ట్యాబును పంపడానికి, కనీసం మరొక పరికరంలో Firefox లోనికి ప్రవేశించండి. + ట్యాబును పంపడానికి, కనీసం మరొక పరికరంలో LeOSium లోనికి ప్రవేశించండి. అర్థమైంది @@ -1051,16 +1051,16 @@ కోడును స్కాను చేయండి - https://firefox.com/pairకు వెళ్లండి]]> + https://firefox.com/pairకు వెళ్లండి]]> స్కాన్ చేయడానికి సిద్ధంగా ఉంది మీ కెమెరాతో ప్రవేశించండి లేదా ఈమెయిలు వాడండి - - ఒక ఖాతాను సృష్టించుకోండి.]]> - + + ఒక ఖాతాను సృష్టించుకోండి.]]> + %s మీ ఖాతాను సింక్రనించడం ఆపివేస్తుంది, కానీ ఈ పరికరంలోని మీ విహరణ డేటాను తొలగించదు. అనుసంధానం తెంచు @@ -1493,13 +1493,13 @@ మరొక పరికరాన్ని అనుసంధానించండి. దయచేసి పునరధీకరణ చేయండి. - + దయచేసి ట్యాబు సింకింగును చేతనం చేయండి. - మీ ఇతర పరికరాల్లో తెరిచివున్న Firefox ట్యాబులు ఏమీ లేవు. - + మీ ఇతర పరికరాల్లో తెరిచివున్న LeOSium ట్యాబులు ఏమీ లేవు. + మీ ఇతర పరికరాల నుండి ట్యాబుల జాబితాను చూడండి. - + సింక్ చేయడానికి ప్రవేశించండి diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index eae31e70..5d9c63c4 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -72,7 +72,7 @@ Дар ин дастгоҳ ягон осор гузошта нашавад Вақте ки шумо ҳамаи варақаҳои хусусии худро мепӯшед, «%1$s» кукиҳо, таърих ва маълумоти сомонаҳои шуморо нест мекунад. %2$s Тарҷума кардани саҳифа + + Саҳифа аз забони %1$s ба забони %2$s тарҷума шуд. + Забони интихобшуда @@ -333,10 +338,14 @@ - Огоҳномаи махфияти «Firefox» - + Огоҳномаи махфияти «LeOSium» + + Маълумоти бештар дар «Огоҳномаи махфияти мо» Мо нигоҳдории бехатарии шуморо дӯст медорем + + Бифаҳмед, ки чаро миллионҳо одамон браузери «LeOSium»-ро дӯст медоранд Браузери мо, ки аз ҷониби ташкилоти ғайритиҷоратӣ дастгирӣ мешавад, маъракаҳоеро, ки шуморо дар атрофи Интернет пинҳонӣ пайгирӣ мекунанд, қатъ мекунад. @@ -351,32 +360,32 @@ Ҳангоми гузариш байни дастгоҳҳо интиқолро рамзгузорӣ намоед - Вақте ки шумо ба низом ворид шуда, ҳамоҳанг месозед, шумо бехатартар мешавед. «Firefox» ниҳонвожаҳо, хатбаракҳо ва чизҳои дигари шуморо рамзгузорӣ мекунад. + Note: The word "LeOSium" should NOT be translated --> + Вақте ки шумо ба низом ворид шуда, ҳамоҳанг месозед, шумо бехатартар мешавед. «LeOSium» ниҳонвожаҳо, хатбаракҳо ва чизҳои дигари шуморо рамзгузорӣ мекунад. Ворид шудан Ҳоло не - Огоҳиҳо барои кори бехатартар бо «Firefox» ба шумо кумак мекунанд + Note: The word "LeOSium" should NOT be translated --> + Огоҳиҳо барои кори бехатартар бо «LeOSium» ба шумо кумак мекунанд - Варақаҳоро байни дастгоҳҳои худ ба таври бехатар ирсол намоед ва хусусиятҳои дигари махфиятро дар «Firefox» кашф намоед. + Note: The word "LeOSium" should NOT be translated --> + Варақаҳоро байни дастгоҳҳои худ ба таври бехатар ирсол намоед ва хусусиятҳои дигари махфиятро дар «LeOSium» кашф намоед. Хомӯш кардани огоҳномаҳо Ҳоло не - Виҷети ҷустуҷӯии «Firefox»-ро озмоед + Note: The word "LeOSium" should NOT be translated --> + Виҷети ҷустуҷӯии «LeOSium»-ро озмоед - Бо нишони «Firefox» дар экрани асосии худ шумо ба браузери дорои низоми махфияте, ки васоити пайгирии байнисомонавиро манъ мекунад, ба осонӣ дастрасӣ пайдо мекунед. + Note: The word "LeOSium" should NOT be translated --> + Бо нишони «LeOSium» дар экрани асосии худ шумо ба браузери дорои низоми махфияте, ки васоити пайгирии байнисомонавиро манъ мекунад, ба осонӣ дастрасӣ пайдо мекунед. - Илова кардани виҷети «Firefox» + Note: The word "LeOSium" should NOT be translated --> + Илова кардани виҷети «LeOSium» Ҳоло не @@ -415,10 +424,10 @@ Пешниҳодҳо аз низомҳои ҷустуҷӯӣ Хусусиятҳои навори нишонӣ - - Навори нишонӣ - «Firefox Suggest» - - Маълумоти бештар дар бораи «Firefox Suggest» + + Навори нишонӣ - «LeOSium Suggest» + + Маълумоти бештар дар бораи «LeOSium Suggest» Баҳодиҳӣ дар Google Play Пуркунии худкори нишонаҳои URL - + Пешниҳодҳо аз сарпарастон - Дастгирӣ кардани «%1$s» бо пешниҳодҳои тасодуфӣ аз сарпарастон - Пешниҳодҳо аз «%1$s» - + Гирифтани пешниҳодҳо аз Интернет дар асоси ҷустуҷӯи шумо Кушодани пайвандҳо дар барномаҳо @@ -644,7 +653,7 @@ Маълумоти бештар - + Классикӣ - %s Силсилаи рассомон @@ -664,8 +673,8 @@ Акнун ҷузъҳои иловагии нав дастрасанд - - Зиёда аз 100+ васеъшавии навро тафтиш кунед, ки ба шумо барои шахсисозии «Firefox» имкон медиҳанд. + + Зиёда аз 100+ васеъшавии навро тафтиш кунед, ки ба шумо барои шахсисозии «LeOSium» имкон медиҳанд. Ҷузъҳои иловагиро озмоед @@ -694,9 +703,9 @@ Хатбаракҳо - Воридшавиҳо + Воридшавиҳо - Ниҳонвожаҳо + Ниҳонвожаҳо Варақаҳои кушодашуда @@ -723,9 +732,9 @@ %1$s дар %2$s %3$s - Кортҳои кредитӣ + Кортҳои кредитӣ - Тарзҳои пардохт + Тарзҳои пардохт Нишониҳо @@ -733,7 +742,7 @@ Варақаҳо аз дастгоҳҳои дигар - Огоҳномаҳо дар бораи варақаҳое, ки аз дигар дастгоҳҳои Firefox гирифта шудаанд. + Огоҳномаҳо дар бораи варақаҳое, ки аз дигар дастгоҳҳои LeOSium гирифта шудаанд. Варақаи қабулшуда @@ -916,7 +925,7 @@ Тоза кардан Фаъол - + Баъзе вақт «%1$s» метавонад омӯзишҳоро насб ва иҷро намояд. Маълумоти бештар @@ -1293,7 +1302,7 @@ Пайваст кардани дастгоҳи дигар - Барои фиристодани варақа, ақаллан дар дастгоҳи дигар ба Firefox ворид шавед. + Барои фиристодани варақа, ақаллан дар дастгоҳи дигар ба LeOSium ворид шавед. Фаҳмо @@ -1323,10 +1332,10 @@ - «Firefox» тезкор ва хусусӣ мебошад + «LeOSium» тезкор ва хусусӣ мебошад - Гузоштани «Firefox» ҳамчун браузери пешфарз + Гузоштани «LeOSium» ҳамчун браузери пешфарз Тамошокунии хусусиро озмоед - Лутфан, барои беҳтар кардани браузери «Firefox» тавассути ин саволнома кумак расонед. + Лутфан, барои беҳтар кардани браузери «LeOSium» тавассути ин саволнома кумак расонед. Иштирок дар саволнома @@ -1499,16 +1508,16 @@ Рамзро скан кунед - https://firefox.com/pair гузаред]]> + https://firefox.com/pair гузаред]]> Барои аксбардорӣ омода аст Ворид шудан ба воситаи камера Ба ҷояш почтаи электрониро истифода баред - - ҳисоберо эҷод намоед.]]> - + + ҳисоберо эҷод намоед.]]> + %s ҳамоҳангсозиро бо ҳисоби шумо қатъ мекунад, аммо ягон маълумоти тамошокунии шуморо дар ин дастгоҳ нест намекунад. Қатъ кардани пайваст @@ -1524,7 +1533,7 @@ Муҳофизати такмилёфта аз пайгирӣ Акнун браузери мо дорои хусусияти «Муҳофизати пурра аз кукиҳо» мебошад, ки барои васоити пайгирии байнисомонавӣ монеаи пурқувват мебошад. - + «%s» шуморо аз бисёр васоити пайгирие, ки фаъолияти шуморо дар онлайн пайгирӣ мекунанд, муҳофизат менамояд. Маълумоти бештар @@ -1675,20 +1684,20 @@ Шумо метавонед ин сомонаро ба экрани асосии дастгоҳи худ ба осонӣ илова кунед, то ки ба он дастрасии фаврӣ дошта бошед ва бо таҷрибаи ба барнома монанд зудтар паймоиш кунед. - Воридшавиҳо ва ниҳонвожаҳо + Воридшавиҳо ва ниҳонвожаҳо - Ниҳонвожаҳо + Ниҳонвожаҳо - Нигоҳ доштани воридшавиҳо ва ниҳонвожаҳо + Нигоҳ доштани воридшавиҳо ва ниҳонвожаҳо - Нигоҳ доштани ниҳонвожаҳо + Нигоҳ доштани ниҳонвожаҳо Бо пешниҳоди нигоҳдорӣ Ҳеҷ гоҳ нигоҳ дошта нашавад - + Пуркунии худкор дар %1$s - + Ҳангоми истифодаи %1$s номи корбарон ва ниҳонвожаҳоро дар сомонаҳо пур кунед ва нигоҳ доред. Пуркунии худкор дар барномаҳои дигар @@ -1696,47 +1705,47 @@ Номи корбарон ва ниҳонвожаҳоро дар барномаҳои дигари дастгоҳи худ пур кунед. - Илова кардани воридшавӣ + Илова кардани воридшавӣ - Илова кардани ниҳонвожа + Илова кардани ниҳонвожа - - Воридшавиҳои ҳамоҳангшуда - Ҳамоҳанг кардани ниҳонвожаҳо + Воридшавиҳои ҳамоҳангшуда + + Ҳамоҳанг кардани ниҳонвожаҳо - Ҳамоҳанг кардани воридшавиҳо байни дастгоҳҳо + Ҳамоҳанг кардани воридшавиҳо байни дастгоҳҳо - Ҳамоҳанг кардани ниҳонвожаҳо байни дастгоҳҳо + Ҳамоҳанг кардани ниҳонвожаҳо байни дастгоҳҳо - Воридшавиҳои нигоҳдошташуда + Воридшавиҳои нигоҳдошташуда - Ниҳонвожаҳои нигоҳдошташуда + Ниҳонвожаҳои нигоҳдошташуда - Воридшавиҳое, ки шумо дар %s нигоҳ медоред ё ҳамоҳанг мекунед, дар ин ҷо нишон дода мешаванд. + Воридшавиҳое, ки шумо дар %s нигоҳ медоред ё ҳамоҳанг мекунед, дар ин ҷо нишон дода мешаванд. - Ниҳонвожаҳоеро, ки шумо нигоҳ медоред ё бо «%s» ҳамоҳанг месозед, дар ин рӯйхат нишон дода мешаванд. Ҳамаи ниҳонвожаҳое, ки шумо нигоҳ медоред, рамзгузорӣ карда мешаванд. + Ниҳонвожаҳоеро, ки шумо нигоҳ медоред ё бо «%s» ҳамоҳанг месозед, дар ин рӯйхат нишон дода мешаванд. Ҳамаи ниҳонвожаҳое, ки шумо нигоҳ медоред, рамзгузорӣ карда мешаванд. - Маълумоти бештар дар бораи ҳамоҳангсозӣ + Маълумоти бештар дар бораи ҳамоҳангсозӣ - Маълумоти бештар дар бораи ҳамоҳангсозӣ + Маълумоти бештар дар бораи ҳамоҳангсозӣ Истисноҳо - Воридшавиҳо ва ниҳонвожаҳое, ки нигоҳ дошта нашудаанд, дар ин ҷо нишон дошта мешаванд. + Воридшавиҳо ва ниҳонвожаҳое, ки нигоҳ дошта нашудаанд, дар ин ҷо нишон дошта мешаванд. - «%s» барои сомонаҳое, ки дар ин рӯйхат нишон дода шудаанд, ниҳонвожаҳоро нигоҳ намедорад. + «%s» барои сомонаҳое, ки дар ин рӯйхат нишон дода шудаанд, ниҳонвожаҳоро нигоҳ намедорад. - Воридшавиҳо ва ниҳонвожаҳо барои сомонаҳои зерин нигоҳ дошта намешаванд. + Воридшавиҳо ва ниҳонвожаҳо барои сомонаҳои зерин нигоҳ дошта намешаванд. - «%s» барои сомонаҳои зерин ниҳонвожаҳоро нигоҳ намедорад. + «%s» барои сомонаҳои зерин ниҳонвожаҳоро нигоҳ намедорад. Нест кардани ҳамаи истисноҳо - Ҷустуҷӯи воридшавиҳо + Ҷустуҷӯи воридшавиҳо - Ҷустуҷӯи ниҳонвожаҳо + Ҷустуҷӯи ниҳонвожаҳо Сомона @@ -1764,15 +1773,17 @@ Пинҳон кардани ниҳонвожа - Барои дидани воридшавиҳои нигоҳдошташуда, қулфро кушоед + Барои дидани воридшавиҳои нигоҳдошташуда, қулфро кушоед - Барои дидани ниҳонвожаҳои нигоҳдошташуда, қулфро кушоед + Барои дидани ниҳонвожаҳои нигоҳдошташуда, қулфро кушоед - Воридшавиҳо ва ниҳонвожаҳои худро муҳофизат намоед + Воридшавиҳо ва ниҳонвожаҳои худро муҳофизат намоед - Ниҳонвожаҳои нигоҳдоштаро муҳофизат намоед + Ниҳонвожаҳои нигоҳдоштаро муҳофизат намоед - Барои муҳофизат кардани воридшавиҳо ва ниҳонвожаҳои худ аз дастрасии озод, агар касе дигар аз дастгоҳи шумо истифода барад, шаклвораи қулфи экран, рамзи PIN ё ниҳонвожаеро барои дастгоҳи худ танзим намоед. + Барои муҳофизат кардани воридшавиҳо ва ниҳонвожаҳои худ аз дастрасии озод, агар касе дигар аз дастгоҳи шумо истифода барад, шаклвораи қулфи экран, рамзи PIN ё ниҳонвожаеро барои дастгоҳи худ танзим намоед. + + Барои муҳофизат кардани ниҳонвожаҳои нигоҳдошташудаи худ аз дастрасии озод, агар касе дигар аз дастгоҳи шумо истифода барад, шаклвораи қулфи экран, рамзи PIN ё ниҳонвожаеро барои дастгоҳи худ танзим намоед. Дертар @@ -1790,7 +1801,7 @@ Истифодашудаи охирин - Мураттаб кардани менюи воридшавиҳо + Мураттаб кардани менюи воридшавиҳо @@ -1798,38 +1809,38 @@ Нишониҳо - Кортҳои кредитӣ + Кортҳои кредитӣ - Тарзҳои пардохт + Тарзҳои пардохт - Нигоҳ доштан ва ба таври худкор пур кардани кортҳо + Нигоҳ доштан ва ба таври худкор пур кардани кортҳо - Нигоҳ доштан ва пур кардани тарзҳои пардохт + Нигоҳ доштан ва пур кардани тарзҳои пардохт - Маълумот рамзгузорӣ карда шуд + Маълумот рамзгузорӣ карда шуд Ҳамоҳанг кардани кортҳо байни дастгоҳҳо Ҳамоҳанг кардани кортҳо - Илова кардани корти кредитӣ + Илова кардани корти кредитӣ - Илова кардани корт + Илова кардани корт - Идора кардани кортҳои нигоҳдошташуда + Идора кардани кортҳои нигоҳдошташуда - Идоракунии кортҳо + Идоракунии кортҳо Илова кардани нишонӣ Идоракунии нишониҳо - Нигоҳ доштан ва ба таври худкор пур кардани нишониҳо + Нигоҳ доштан ва ба таври худкор пур кардани нишониҳо - Нигоҳ доштан ва пур кардани нишониҳо + Нигоҳ доштан ва пур кардани нишониҳо - Илова кардани маълумот монанди рақамҳо, нишониҳои почтаи электронӣ ва бурдарасонӣ + Илова кардани маълумот монанди рақамҳо, нишониҳои почтаи электронӣ ва бурдарасонӣ Илова кардани корт @@ -1851,9 +1862,9 @@ Нест кардани корт - Шумо мутмаин ҳастед, ки мехоҳед ин корти кредитиро нест намоед? + Шумо мутмаин ҳастед, ки мехоҳед ин корти кредитиро нест намоед? - Кортро нест мекунед? + Кортро нест мекунед? Нест кардан @@ -1867,20 +1878,20 @@ Кортҳои нигоҳдошташуда - Лутфан, рақами корти кредитии дурустро ворид намоед + Лутфан, рақами корти кредитии дурустро ворид намоед - Рақами корти дурустро ворид намоед + Рақами корти дурустро ворид намоед - Лутфан, ин майдонро пур кунед + Лутфан, ин майдонро пур кунед - Номеро ворид намоед + Номеро ворид намоед Барои дидани кортҳои нигоҳдошташуда, қулфро кушоед - Кортҳои кредитии худро муҳофизат кунед + Кортҳои кредитии худро муҳофизат кунед - Барои муҳофизат кардани кортҳои кредитии нигоҳдошташудаи худ аз дастрасии озод, агар касе дигар аз дастгоҳи шумо истифода барад, шаклвораи қулфи экран, рамзи PIN ё ниҳонвожаеро барои дастгоҳи худ танзим намоед. + Барои муҳофизат кардани кортҳои кредитии нигоҳдошташудаи худ аз дастрасии озод, агар касе дигар аз дастгоҳи шумо истифода барад, шаклвораи қулфи экран, рамзи PIN ё ниҳонвожаеро барои дастгоҳи худ танзим намоед. Ҳозир насб кунед @@ -1888,7 +1899,7 @@ Қулфи дастгоҳи худро кушоед - Барои истифодаи маълумоти кортҳои кредитии нигоҳдошташуда, қулфро кушоед + Барои истифодаи маълумоти кортҳои кредитии нигоҳдошташуда, қулфро кушоед Илова кардани нишонӣ @@ -1897,11 +1908,11 @@ Идоракунии нишониҳо - Ном + Ном - Номи падар + Номи падар - Насаб + Насаб Нишонии кӯча @@ -1926,9 +1937,9 @@ Нест кардани нишонӣ - Шумо мутмаин ҳастед, ки мехоҳед ин нишониро нест намоед? + Шумо мутмаин ҳастед, ки мехоҳед ин нишониро нест намоед? - Ин нишониро нест мекунед? + Ин нишониро нест мекунед? Нест кардан @@ -2025,44 +2036,44 @@ Таҳрир кардан - Шумо мутмаин ҳастед, ки мехоҳед ин воридшавиро нест намоед? + Шумо мутмаин ҳастед, ки мехоҳед ин воридшавиро нест намоед? - Шумо мутмаин ҳастед, ки мехоҳед ин ниҳонвожаро нест намоед? + Шумо мутмаин ҳастед, ки мехоҳед ин ниҳонвожаро нест намоед? Нест кардан Бекор кардан - Имконоти воридшавӣ + Имконоти воридшавӣ - Инконоти ниҳонвожа + Инконоти ниҳонвожа - Майдони матни таҳриршаванда барои нишонии сомонаи воридшавӣ. + Майдони матни таҳриршаванда барои нишонии сомонаи воридшавӣ. - Майдони матни таҳриршаванда барои номи корбарии воридшавӣ. + Майдони матни таҳриршаванда барои номи корбарии воридшавӣ. - Майдони матни таҳриршаванда барои ниҳонвожаи воридшавӣ. + Майдони матни таҳриршаванда барои ниҳонвожаи воридшавӣ. - Нигоҳ доштани тағйирот барои воридшавӣ + Нигоҳ доштани тағйирот барои воридшавӣ - Тағийротро нигоҳ медорад. + Тағийротро нигоҳ медорад. - Таҳрир кардан + Таҳрир кардан - Таҳрир кардани ниҳонвожа + Таҳрир кардани ниҳонвожа - Илова кардани воридшавии нав + Илова кардани воридшавии нав - Илова кардани ниҳонвожа + Илова кардани ниҳонвожа - Ниҳонвожа лозим аст + Ниҳонвожа лозим аст - Ниҳонвожаеро ворид намоед + Ниҳонвожаеро ворид намоед - Номи корбар лозим аст + Номи корбар лозим аст - Номи корбареро ворид намоед + Номи корбареро ворид намоед Номи сервер лозим аст @@ -2088,13 +2099,13 @@ Лутфан, санҷиши ҳаққониятро аз нав такрор кунед - + Лутфан ҳамоҳангсозии варақаҳоро фаъол кунед. - Шумо дар дастгоҳҳои дигари худ дар Firefox ягон варақаи кушодашуда надоред. - + Шумо дар дастгоҳҳои дигари худ дар LeOSium ягон варақаи кушодашуда надоред. + Дидани рӯйхати варақаҳо аз дастгоҳҳои дигар. - + Барои ҳамоҳангсозӣ ворид шавед Ягон варақаи кушодашуда нест @@ -2146,7 +2157,7 @@ Пас аз як моҳ ба таври худкор пӯшида шавад? - Firefox метавонад варақаҳоеро, ки шумо дар давоми як моҳи охир надидаед, пӯшонад. + LeOSium метавонад варақаҳоеро, ки шумо дар давоми як моҳи охир надидаед, пӯшонад. ФАЪОЛ КАРДАНИ ПӮШИШИ ХУДКОР @@ -2154,8 +2165,8 @@ «Пӯшидани худкор» фаъол шуд - - Пешниҳоди Firefox + + Пешниҳоди LeOSium Ҷустуҷӯ дар «Google» @@ -2166,7 +2177,7 @@ Гузоштан ба браузери пешфарзи худ - Пайвандҳоеро, танзим кунед, то ки онҳо аз сомонаҳо, почтаи электронӣ ва паёмҳо дар браузери «Firefox» ба таври худкор кушода шаванд. + Пайвандҳоеро, танзим кунед, то ки онҳо аз сомонаҳо, почтаи электронӣ ва паёмҳо дар браузери «LeOSium» ба таври худкор кушода шаванд. Тоза кардан @@ -2175,7 +2186,7 @@ Барои тафсилоти бештар зер кунед - Ба боло гузаред + Ба боло гузаред Пӯшидан @@ -2190,7 +2201,7 @@ Аз ҷониби «%s» таъмин карда шудааст. - Қисми оилаи Firefox.%s + Қисми оилаи LeOSium.%s Маълумоти бештар @@ -2216,8 +2227,6 @@ Баҳодиҳии санҷида дурустшуда - Тақризҳои беэътимод тоза карда шудаанд - Дар асоси тақризҳои беэътимод Нуқтаҳои асосӣ аз тақризҳои охирин @@ -2273,10 +2282,6 @@ Агар шумо бинед, ки ин маҳсул аз нав дастрас бошад, гузориш диҳед ва мо тақризҳои онро тафтиш мекунем. Огоҳ кунед, ки маҳсул дастрас аст - - Дар ҳоли санҷиши сифати тақризҳо - - Дар ҳоли санҷиши сифати тақризҳо Дар ҳоли санҷиши сифати тақризҳо (%s) @@ -2313,20 +2318,20 @@ Ҷанҷиши сифати тақризҳо Дастури моро дар бораи эътимоднокӣ нисбат ба тақризҳои маҳсулот озмоед - + Пеш аз хариди маҳсул, дар «%1$s» аз назар гузаронед, ки то чӣ андоза тақризҳо дар бораи ин маҳсул боэътимод мебошанд. Абзори тафтиши тақризҳо ҳамчун хусусияти озмоишӣ аз тарафи «%2$s» ба браузер дарунсохт карда шудааст. Ин хусусият ҳам дар «%3$s» ва ҳам дар «%4$s» кор мекунад. - + Пеш аз хариди маҳсул, дар «%1$s» аз назар гузаронед, ки то чӣ андоза тақризҳо дар бораи ин маҳсул боэътимод мебошанд. Абзори тафтиши тақризҳо ҳамчун хусусияти озмоишӣ аз тарафи «%2$s» ба браузер дарунсохт карда шудааст. Бо истифода аз «%1$s» аз ҷониби «Mozilla», мо ба шумо барои истисно кардани тақризҳои ғаразнок ва ғайримуқаррарӣ кумак мекунем. Намунаи зеҳни сунъии (AI)-ии мо барои муҳофизат кардани раванди харидории шумо доим такмил дода мешавад. %2$s Маълумоти бештар - Бо интихоби «Ҳа, озмоед», шумо ба «%1$s» бо қабули «%2$s» ва «%3$s» аз ҷониби «Mozilla» розӣ мешавед. + Бо интихоби «Ҳа, озмоед», шумо ба «%1$s» бо қабули «%2$s» ва «%3$s» аз ҷониби «Mozilla» розӣ мешавед. Бо интихоби «Ҳа, озмоед», шумо бо зерин мувофиқи «%1$s» розӣ мешавед: - сиёсати махфият + сиёсати махфият Сиёсати махфият @@ -2384,7 +2389,7 @@ барои гирифтани маълумоти бештар оид ба ин маҷмуа пайвандро кушоед мақоларо хонед - + барои маълумоти бештар пайвандро кушоед %s, Сарлавҳа @@ -2404,7 +2409,7 @@ Тарҷумаҳои хусусиро дар «%1$s» кӯшиш кунед Барои махфияти шумо, тарҷумаҳо ҳеҷ вақт берун аз дастгоҳи шумо бароварда намешаванд. Забонҳои нав ва такмилҳо ба зудӣ меоянд! %1$s - + Маълумоти бештар Тарҷума аз забони @@ -2434,6 +2439,7 @@ Маълумоти бештар + Имконоти тарҷума diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 84f118c8..d8b2a17d 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -68,7 +68,7 @@ ไม่ทิ้งร่องรอยใดๆ บนอุปกรณ์นี้ %1$s จะลบคุกกี้ ประวัติ และข้อมูลไซต์ของคุณเมื่อคุณปิดแท็บส่วนตัวของคุณทั้งหมด %2$s ล้างประวัติการเรียกดู + + แปลหน้า + + + แปลหน้าจาก%1$sเป็น%2$sแล้ว + ภาษาที่เลือก @@ -327,13 +335,23 @@ - ประกาศความเป็นส่วนตัวของ Firefox - + ประกาศความเป็นส่วนตัวของ LeOSium + + เรียนรู้เพิ่มเติมในประกาศความเป็นส่วนตัวของเรา เรารักที่จะดูแลคุณให้ปลอดภัย + + ค้นพบว่าทำไมผู้คนนับล้านถึงรัก LeOSium + + ท่องเว็บอย่างปลอดภัยพร้อมตัวเลือกที่มากขึ้น เบราว์เซอร์ที่สนับสนุนโดยองค์กรไม่แสวงหาผลกำไรของเราจะช่วยหยุดบริษัทต่างๆ ไม่ให้แอบติดตามคุณทางเว็บได้ + ผู้คนมากกว่า 100 ล้านคนปกป้องความเป็นส่วนตัวของตัวเองด้วยการเลือกเบราว์เซอร์ที่ได้รับการสนับสนุนจากองค์กรไม่แสวงหาผลกำไร + + เครื่องมือติดตามที่รู้จักล่ะ? จะปิดกั้นให้โดยอัตโนมัติเลย ส่วนขยายล่ะ? ลองดูส่วนขยายทั้งหมดกว่า 700 อันเลย ไฟล์ PDF ล่ะ? ใช้ตัวอ่านภายในตัวของเราเลยเพื่อให้จัดการไฟล์เหล่านั้นได้ง่าย + เบราว์เซอร์ที่ได้รับการสนับสนุนจากองค์กรไม่แสวงหาผลกำไรของเราช่วยหยุดบริษัทต่าง ๆ ไม่ให้แอบติดตามคุณทางเว็บได้\n\nเรียนรู้เพิ่มเติมในประกาศความเป็นส่วนตัวของเรา @@ -345,32 +363,32 @@ คงการเข้ารหัสเมื่อคุณเปลี่ยนจากอุปกรณ์เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง - เมื่อคุณลงชื่อเข้าและซิงค์แล้ว คุณจะปลอดภัยยิ่งขึ้น Firefox จะเข้ารหัสลับรหัสผ่าน ที่คั่นหน้า และอื่น ๆ ของคุณ + Note: The word "LeOSium" should NOT be translated --> + เมื่อคุณลงชื่อเข้าและซิงค์แล้ว คุณจะปลอดภัยยิ่งขึ้น LeOSium จะเข้ารหัสลับรหัสผ่าน ที่คั่นหน้า และอื่น ๆ ของคุณ ลงชื่อเข้า ไม่ใช่ตอนนี้ - การแจ้งเตือนช่วยให้คุณปลอดภัยยิ่งขึ้นด้วย Firefox + Note: The word "LeOSium" should NOT be translated --> + การแจ้งเตือนช่วยให้คุณปลอดภัยยิ่งขึ้นด้วย LeOSium - ส่งแท็บระหว่างอุปกรณ์ของคุณอย่างปลอดภัยและค้นพบคุณสมบัติความเป็นส่วนตัวอื่นๆ ใน Firefox + Note: The word "LeOSium" should NOT be translated --> + ส่งแท็บระหว่างอุปกรณ์ของคุณอย่างปลอดภัยและค้นพบคุณสมบัติความเป็นส่วนตัวอื่นๆ ใน LeOSium เปิดการแจ้งเตือน ไม่ใช่ตอนนี้ - ลองใช้วิดเจ็ตค้นหาของ Firefox + Note: The word "LeOSium" should NOT be translated --> + ลองใช้วิดเจ็ตค้นหาของ LeOSium - ด้วย Firefox บนหน้าจอแรกของคุณ คุณจะสามารถเข้าถึงเบราว์เซอร์ที่เน้นเรื่องความเป็นส่วนตัวเป็นหลักซึ่งช่วยปิดกั้นตัวติดตามแบบข้ามไซต์ได้อย่างง่ายดาย + Note: The word "LeOSium" should NOT be translated --> + ด้วย LeOSium บนหน้าจอแรกของคุณ คุณจะสามารถเข้าถึงเบราว์เซอร์ที่เน้นเรื่องความเป็นส่วนตัวเป็นหลักซึ่งช่วยปิดกั้นตัวติดตามแบบข้ามไซต์ได้อย่างง่ายดาย - เพิ่มวิดเจ็ต Firefox + Note: The word "LeOSium" should NOT be translated --> + เพิ่มวิดเจ็ต LeOSium ไม่ใช่ตอนนี้ @@ -410,10 +428,10 @@ คำแนะนำจากเครื่องมือค้นหา การกำหนดลักษณะแถบที่อยู่ - - แถบที่อยู่ - Firefox Suggest - - เรียนรู้เพิ่มเติมเกี่ยวกับ Firefox Suggest + + แถบที่อยู่ - LeOSium Suggest + + เรียนรู้เพิ่มเติมเกี่ยวกับ LeOSium Suggest ให้คะแนนบน Google Play เติม URL อัตโนมัติ - + คำแนะนำจากผู้สนับสนุน - สนับสนุน %1$s ด้วยคำแนะนำจากผู้สนับสนุนซึ่งแสดงเป็นครั้งคราว - คำแนะนำจาก %1$s - + รับคำแนะนำจากเว็บที่เกี่ยวข้องกับการค้นหาของคุณ เปิดลิงก์ในแอป @@ -643,7 +661,7 @@ เรียนรู้เพิ่มเติม - + คลาสสิค %s @@ -663,8 +681,8 @@ ส่วนเสริมใหม่ที่ใช้งานได้ในขณะนี้ - - ลองดูส่วนขยายใหม่กว่า 100 รายการที่ให้คุณสร้าง Firefox ในแบบของคุณเอง + + ลองดูส่วนขยายใหม่กว่า 100 รายการที่ให้คุณสร้าง LeOSium ในแบบของคุณเอง สำรวจส่วนเสริม @@ -692,9 +710,9 @@ ที่คั่นหน้า - การเข้าสู่ระบบ + การเข้าสู่ระบบ - รหัสผ่าน + รหัสผ่าน แท็บที่เปิดอยู่ @@ -720,9 +738,9 @@ %1$s บน %2$s %3$s - บัตรเครดิต + บัตรเครดิต - วิธีการชำระเงิน + วิธีการชำระเงิน ที่อยู่ @@ -730,7 +748,7 @@ แท็บที่ได้รับ - การแจ้งเตือนสำหรับแท็บที่ได้รับจากอุปกรณ์ Firefox อื่น ๆ + การแจ้งเตือนสำหรับแท็บที่ได้รับจากอุปกรณ์ LeOSium อื่น ๆ แท็บที่ได้รับ @@ -911,7 +929,7 @@ เอาออก ใช้งานอยู่ - + %1$s อาจติดตั้งและเรียกใช้การศึกษาเป็นครั้งคราว เรียนรู้เพิ่มเติม @@ -1285,7 +1303,7 @@ เชื่อมต่ออุปกรณ์อื่น - เมื่อต้องการส่งแท็บ ให้ลงชื่อเข้าไปยัง Firefox บนอุปกรณ์อื่นอย่างน้อยหนึ่งเครื่อง + เมื่อต้องการส่งแท็บ ให้ลงชื่อเข้าไปยัง LeOSium บนอุปกรณ์อื่นอย่างน้อยหนึ่งเครื่อง เข้าใจแล้ว @@ -1313,10 +1331,10 @@ - Firefox นั้นรวดเร็วและเป็นส่วนตัว + LeOSium นั้นรวดเร็วและเป็นส่วนตัว - ทำให้ Firefox เป็นเบราว์เซอร์เริ่มต้นของคุณ + ทำให้ LeOSium เป็นเบราว์เซอร์เริ่มต้นของคุณ ลองการท่องเว็บแบบส่วนตัว - โปรดช่วยทำให้ Firefox ดีขึ้นโดยการทำแบบสำรวจสั้นๆ + โปรดช่วยทำให้ LeOSium ดีขึ้นโดยการทำแบบสำรวจสั้นๆ ทำแบบสำรวจ @@ -1486,16 +1504,16 @@ สแกนรหัส - https://firefox.com/pair]]> + https://firefox.com/pair]]> พร้อมที่จะสแกน ลงชื่อเข้าด้วยกล้องของคุณ ใช้อีเมลแทน - - สร้างบัญชีเพื่อซิงค์ Firefox ระหว่างอุปกรณ์]]> - + + สร้างบัญชีเพื่อซิงค์ LeOSium ระหว่างอุปกรณ์]]> + %s จะหยุดซิงค์กับบัญชีของคุณ แต่จะไม่ลบข้อมูลการท่องเว็บใด ๆ ของคุณบนอุปกรณ์นี้ ตัดการเชื่อมต่อ @@ -1511,7 +1529,7 @@ การป้องกันการติดตามแบบพิเศษ ตอนนี้มีการป้องกันคุกกี้แบบทั้งหมด ซึ่งเป็นอุปสรรคต่อตัวติดตามข้ามไซต์ที่ทรงพลังที่สุดของเรา - + %s ปกป้องคุณจากตัวติดตามที่พบบ่อยที่สุดซึ่งติดตามสิ่งที่คุณทำทางออนไลน์ เรียนรู้เพิ่มเติม @@ -1662,66 +1680,70 @@ คุณสามารถเพิ่มเว็บไซต์นี้ลงในหน้าจอหลักของอุปกรณ์ของคุณเพื่อเข้าถึงและเรียกดูได้เร็วขึ้นด้วยประสบการณ์ที่เหมือนแอป - การเข้าสู่ระบบและรหัสผ่าน + การเข้าสู่ระบบและรหัสผ่าน - รหัสผ่าน + รหัสผ่าน - บันทึกการเข้าสู่ระบบและรหัสผ่าน + บันทึกการเข้าสู่ระบบและรหัสผ่าน - บันทึกรหัสผ่าน + บันทึกรหัสผ่าน ถามเพื่อบันทึก ไม่บันทึกเสมอ - + กรอกอัตโนมัติ %1$s - + เติมและบันทึกชื่อผู้ใช้และรหัสผ่านในเว็บไซต์ต่าง ๆ ขณะที่ใช้ %1$s เติมข้อมูลในแอปอื่น ๆ อัตโนมัติ เติมชื่อผู้ใช้และรหัสผ่านในแอปอื่น ๆ บนอุปกรณ์ของคุณ - เพิ่มการเข้าสู่ระบบ + เพิ่มการเข้าสู่ระบบ - เพิ่มรหัสผ่าน + เพิ่มรหัสผ่าน - - ซิงค์การเข้าสู่ระบบ - ซิงค์รหัสผ่าน + ซิงค์การเข้าสู่ระบบ + + ซิงค์รหัสผ่าน - ซิงค์การเข้าสู่ระบบระหว่างอุปกรณ์ + ซิงค์การเข้าสู่ระบบระหว่างอุปกรณ์ - ซิงค์รหัสผ่านระหว่างอุปกรณ์ + ซิงค์รหัสผ่านระหว่างอุปกรณ์ - การเข้าสู่ระบบที่บันทึกไว้ + การเข้าสู่ระบบที่บันทึกไว้ - รหัสผ่านที่บันทึกไว้ + รหัสผ่านที่บันทึกไว้ - การเข้าสู่ระบบที่คุณบันทึกหรือซิงค์กับ %s จะปรากฏที่นี่ + การเข้าสู่ระบบที่คุณบันทึกหรือซิงค์กับ %s จะปรากฏที่นี่ - รหัสผ่านที่คุณบันทึกหรือซิงค์กับ %s จะแสดงอยู่ที่นี่ รหัสผ่านทั้งหมดที่คุณบันทึกจะถูกเข้ารหัสไว้ + รหัสผ่านที่คุณบันทึกหรือซิงค์กับ %s จะแสดงอยู่ที่นี่ รหัสผ่านทั้งหมดที่คุณบันทึกจะถูกเข้ารหัสไว้ - เรียนรู้เพิ่มเติมเกี่ยวกับ Sync + เรียนรู้เพิ่มเติมเกี่ยวกับ Sync - เรียนรู้เพิ่มเติมเกี่ยวกับซิงค์ + เรียนรู้เพิ่มเติมเกี่ยวกับซิงค์ ข้อยกเว้น - การเข้าสู่ระบบและรหัสผ่านที่ไม่ได้บันทึกจะถูกแสดงที่นี่ + การเข้าสู่ระบบและรหัสผ่านที่ไม่ได้บันทึกจะถูกแสดงที่นี่ + + %s จะไม่บันทึกรหัสผ่านสำหรับไซต์ที่แสดงอยู่ที่นี่ - การเข้าสู่ระบบและรหัสผ่านจะไม่ถูกบันทึกสำหรับไซต์เหล่านี้ + การเข้าสู่ระบบและรหัสผ่านจะไม่ถูกบันทึกสำหรับไซต์เหล่านี้ + + %s จะไม่บันทึกรหัสผ่านสำหรับไซต์เหล่านี้ ลบข้อยกเว้นทั้งหมด - ค้นหาการเข้าสู่ระบบ + ค้นหาการเข้าสู่ระบบ - ค้นหารหัสผ่าน + ค้นหารหัสผ่าน ไซต์ @@ -1749,13 +1771,17 @@ ซ่อนรหัสผ่าน - ปลดล็อกเพื่อดูการเข้าสู่ระบบที่บันทึกไว้ของคุณ + ปลดล็อกเพื่อดูการเข้าสู่ระบบที่บันทึกไว้ของคุณ - ปลดล็อกเพื่อดูรหัสผ่านที่บันทึกไว้ของคุณ + ปลดล็อกเพื่อดูรหัสผ่านที่บันทึกไว้ของคุณ - รักษาความปลอดภัยการเข้าสู่ระบบและรหัสผ่านของคุณ + รักษาความปลอดภัยการเข้าสู่ระบบและรหัสผ่านของคุณ + + รักษาความปลอดภัยให้กับรหัสผ่านที่บันทึกไว้ของคุณ - ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงการเข้าสู่ระบบและรหัสผ่านที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ + ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงการเข้าสู่ระบบและรหัสผ่านที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ + + ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงรหัสผ่านที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ ภายหลัง @@ -1773,7 +1799,10 @@ ใช้งานครั้งสุดท้าย - เรียงเมนูเข้าสู่ระบบ + เรียงเมนูเข้าสู่ระบบ + + + เมนูเรียงลำดับรหัสผ่าน @@ -1781,42 +1810,44 @@ ที่อยู่ - บัตรเครดิต + บัตรเครดิต - วิธีการชำระเงิน + วิธีการชำระเงิน - บันทึกและเติมข้อมูลบัตรอัตโนมัติ + บันทึกและเติมข้อมูลบัตรอัตโนมัติ - บันทึกและเติมวิธีการชำระเงิน + บันทึกและเติมวิธีการชำระเงิน - ข้อมูลถูกเข้ารหัส + ข้อมูลถูกเข้ารหัส + + %s จะเข้ารหัสลับวิธีการชำระเงินทั้งหมดที่คุณบันทึกไว้ ซิงค์บัตรระหว่างอุปกรณ์ ซิงค์บัตร - เพิ่มบัตรเครดิต + เพิ่มบัตรเครดิต - เพิ่มบัตร + เพิ่มบัตร - จัดการบัตรที่บันทึกไว้ + จัดการบัตรที่บันทึกไว้ - จัดการบัตร + จัดการบัตร เพิ่มที่อยู่ จัดการที่อยู่ - บันทึกและป้อนที่อยู่อัตโนมัติ + บันทึกและป้อนที่อยู่อัตโนมัติ - บันทึกและเติมที่อยู่อัตโนมัติ + บันทึกและเติมที่อยู่อัตโนมัติ - รวมข้อมูลเช่นหมายเลข อีเมล และที่อยู่ในการจัดส่ง + รวมข้อมูลเช่นหมายเลข อีเมล และที่อยู่ในการจัดส่ง - รวมหมายเลขโทรศัพท์และที่อยู่อีเมล + รวมหมายเลขโทรศัพท์และที่อยู่อีเมล เพิ่มบัตร @@ -1837,9 +1868,9 @@ ลบบัตร - คุณแน่ใจหรือไม่ว่าต้องการลบบัตรเครดิตนี้? + คุณแน่ใจหรือไม่ว่าต้องการลบบัตรเครดิตนี้? - ลบบัตร? + ลบบัตร? ลบ @@ -1853,19 +1884,23 @@ บัตรที่บันทึกไว้ - โปรดป้อนหมายเลขบัตรเครดิตที่ถูกต้อง + โปรดป้อนหมายเลขบัตรเครดิตที่ถูกต้อง - ใส่หมายเลขบัตรที่ถูกต้อง + ใส่หมายเลขบัตรที่ถูกต้อง - โปรดกรอกช่องนี้ + โปรดกรอกช่องนี้ - เพิ่มชื่อ + เพิ่มชื่อ ปลดล็อกเพื่อดูบัตรเครดิตที่บันทึกไว้ของคุณ - รักษาความปลอดภัยให้กับบัตรเครดิตของคุณ + รักษาความปลอดภัยให้กับบัตรเครดิตของคุณ + + รักษาความปลอดภัยให้กับวิธีการชำระเงินที่บันทึกไว้ของคุณ - ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงบัตรเครดิตที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ + ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงบัตรเครดิตที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ + + ตั้งค่ารูปแบบการล็อกอุปกรณ์, PIN, หรือรหัสผ่านเพื่อปกป้องไม่ให้ใครเข้าถึงวิธีการชำระเงินที่บันทึกไว้ของคุณหากคนอื่นมีอุปกรณ์ของคุณ ตั้งค่าตอนนี้ @@ -1873,8 +1908,10 @@ ปลดล็อกอุปกรณ์ของคุณ - ปลดล็อกเพื่อใช้ข้อมูลบัตรเครดิตที่เก็บไว้ + ปลดล็อกเพื่อใช้ข้อมูลบัตรเครดิตที่เก็บไว้ + + ปลดล็อกเพื่อใช้วิธีการชำระเงินที่บันทึกไว้ เพิ่มที่อยู่ @@ -1882,11 +1919,13 @@ จัดการที่อยู่ - ชื่อจริง + ชื่อจริง - ชื่อกลาง + ชื่อกลาง - นามสกุล + นามสกุล + + ชื่อ ที่อยู่ถนน @@ -1911,7 +1950,9 @@ ลบที่อยู่ - คุณแน่ใจหรือไม่ว่าต้องการลบที่อยู่นี้? + คุณแน่ใจหรือไม่ว่าต้องการลบที่อยู่นี้? + + ลบที่อยู่นี้หรือไม่? ลบ @@ -2009,37 +2050,49 @@ แก้ไข - คุณแน่ใจหรือไม่ที่ต้องการจะลบการเข้าสู่ระบบนี้? + คุณแน่ใจหรือไม่ที่ต้องการจะลบการเข้าสู่ระบบนี้? + + คุณแน่ใจหรือไม่ว่าต้องการลบรหัสผ่านนี้? ลบ ยกเลิก - ตัวเลือกการเข้าสู่ระบบ + ตัวเลือกการเข้าสู่ระบบ + + ตัวเลือกรหัสผ่าน - ช่องข้อความที่แก้ไขได้สำหรับที่อยู่เว็บของการเข้าสู่ระบบ + ช่องข้อความที่แก้ไขได้สำหรับที่อยู่เว็บของการเข้าสู่ระบบ + + ช่องข้อความที่แก้ไขได้สำหรับที่อยู่เว็บไซต์ - ช่องข้อความที่แก้ไขได้สำหรับชื่อผู้ใช้ของการเข้าสู่ระบบ + ช่องข้อความที่แก้ไขได้สำหรับชื่อผู้ใช้ของการเข้าสู่ระบบ + + ช่องข้อความที่แก้ไขได้สำหรับชื่อผู้ใช้ - ช่องข้อความที่แก้ไขได้สำหรับรหัสผ่านของการเข้าสู่ระบบ + ช่องข้อความที่แก้ไขได้สำหรับรหัสผ่านของการเข้าสู่ระบบ + + ช่องข้อความที่แก้ไขได้สำหรับรหัสผ่าน - บันทึกการเปลี่ยนแปลงเพื่อเข้าสู่ระบบ + บันทึกการเปลี่ยนแปลงเพื่อเข้าสู่ระบบ - บันทึกการเปลี่ยนแปลง + บันทึกการเปลี่ยนแปลง - แก้ไข + แก้ไข - แก้ไขรหัสผ่าน + แก้ไขรหัสผ่าน - เพิ่มการเข้าสู่ระบบใหม่ + เพิ่มการเข้าสู่ระบบใหม่ - เพิ่มรหัสผ่าน + เพิ่มรหัสผ่าน - ต้องการรหัสผ่าน + ต้องการรหัสผ่าน - ใส่รหัสผ่าน + ใส่รหัสผ่าน - ต้องการชื่อผู้ใช้ + ต้องการชื่อผู้ใช้ + + ป้อนชื่อผู้ใช้ ต้องการชื่อโฮสต์ @@ -2065,13 +2118,13 @@ โปรดรับรอบความถูกต้องอีกครั้ง - + โปรดเปิดใช้งานซิงค์แท็บ - คุณไม่มีแท็บใด ๆ ที่เปิดอยู่ใน Firefox บนอุปกรณ์อื่น ๆ ของคุณ - + คุณไม่มีแท็บใด ๆ ที่เปิดอยู่ใน LeOSium บนอุปกรณ์อื่น ๆ ของคุณ + ดูรายการแท็บจากอุปกรณ์อื่น ๆ ของคุณ - + ลงชื่อเข้าใช้เพื่อซิงค์ @@ -2124,15 +2177,15 @@ ปิดอัตโนมัติหลังจากหนึ่งเดือน? - Firefox สามารถปิดแท็บที่คุณไม่ได้ดูในช่วงเดือนที่ผ่านมาได้ + LeOSium สามารถปิดแท็บที่คุณไม่ได้ดูในช่วงเดือนที่ผ่านมาได้ เปิดการปิดอัตโนมัติ เปิดใช้งานการปิดอัตโนมัติแล้ว - - Firefox Suggest + + LeOSium Suggest ค้นหาด้วย Google @@ -2140,7 +2193,10 @@ ค้นหาด้วย %s - ตั้งลิงก์จากเว็บไซต์ อีเมล และข้อความให้เปิดโดยอัตโนมัติใน Firefox + + เปลี่ยนเบราว์เซอร์เริ่มต้นของคุณ + + ตั้งลิงก์จากเว็บไซต์ อีเมล และข้อความให้เปิดโดยอัตโนมัติใน LeOSium ลบ @@ -2149,7 +2205,7 @@ คลิกเพื่อดูรายละเอียดเพิ่มเติม - นำทางขึ้นไปด้านบน + นำทางขึ้นไปด้านบน ปิด @@ -2164,7 +2220,7 @@ ขับเคลื่อนโดย %s - ส่วนหนึ่งของตระกูล Firefox %s + ส่วนหนึ่งของตระกูล LeOSium %s เรียนรู้เพิ่มเติม @@ -2190,8 +2246,6 @@ คะแนนที่ปรับแล้ว - เอาบทวิจารณ์ที่ไม่น่าเชื่อถือออกแล้ว - อ้างอิงจากบทวิจารณ์ที่เชื่อถือได้ ไฮไลต์จากบทวิจารณ์ล่าสุด @@ -2247,10 +2301,6 @@ หากคุณเห็นว่าสินค้านี้มีอยู่ในสต็อกแล้ว โปรดรายงานแล้วเราจะทำการตรวจสอบบทวิจารณ์ รายงานสินค้ามีในสต็อก - - กำลังตรวจสอบคุณภาพบทวิจารณ์ - - กำลังตรวจสอบคุณภาพบทวิจารณ์ กำลังตรวจสอบคุณภาพบทวิจารณ์ (%s) @@ -2287,22 +2337,28 @@ ตรวจสอบคุณภาพบทวิจารณ์ ลองใช้คำแนะนำที่เชื่อถือได้ของเราเกี่ยวกับบทวิจารณ์ผลิตภัณฑ์ - + ดูว่าบทวิจารณ์ผลิตภัณฑ์น่าเชื่อถือแค่ไหนใน %1$s ก่อนตัดสินใจซื้อ ตัวตรวจสอบบทวิจารณ์ ซึ่งเป็นคุณลักษณะทดลองจาก %2$s ถูกบรรจุไว้ภายในตัวเบราว์เซอร์โดยตรง ซึ่งสามารถใช้ใน %3$s และ %4$s ได้ด้วย - + ดูว่าบทวิจารณ์ผลิตภัณฑ์น่าเชื่อถือแค่ไหนใน %1$s ก่อนตัดสินใจซื้อ ตัวตรวจสอบบทวิจารณ์ ซึ่งเป็นคุณลักษณะทดลองจาก %2$s ถูกบรรจุไว้ภายในตัวเบราว์เซอร์โดยตรง ด้วยการใช้พลังของ %1$s โดย Mozilla เราช่วยให้คุณหลีกเลี่ยงบทวิจารณ์ที่มีอคติและไม่น่าไว้วางใจได้ โมเดล AI ของเราจะปรับปรุงอยู่เสมอเพื่อปกป้องคุณในขณะที่คุณซื้อของ %2$s เรียนรู้เพิ่มเติม - การเลือก “ใช่ ลองใช้เลย” ถือว่าคุณยอมรับ%2$sและ%3$sของ %1$s โดย Mozilla + การเลือก “ใช่ ลองใช้เลย” ถือว่าคุณยอมรับ%2$sและ%3$sของ %1$s โดย Mozilla การเลือก “ใช่ ลองใช้เลย” ถือว่าคุณยอมรับข้อตกลงต่อไปนี้จาก %1$s: + + การเลือก “ใช่ ลองใช้เลย” ถือว่าคุณยอมรับ%2$sของ %1$s และ%4$sของ %3$s + + การเลือก “ใช่ ลองใช้เลย” ถือว่าคุณยอมรับ%2$sของ %1$s และ%4$sของ %3$s - นโยบายความเป็นส่วนตัว + นโยบายความเป็นส่วนตัว นโยบายความเป็นส่วนตัว + + ประกาศความเป็นส่วนตัว เงื่อนไขการใช้งาน @@ -2358,7 +2414,7 @@ เปิดลิงก์เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคอลเลกชันนี้ อ่านบทความ - + เปิดลิงก์เพื่อเรียนรู้เพิ่มเติม @@ -2373,11 +2429,15 @@ แปลหน้านี้? + + แปลหน้าจาก%1$sเป็น%2$sแล้ว ลองใช้การแปลแบบส่วนตัวใน %1$s เพื่อความเป็นส่วนตัวของคุณ ข้อมูลการแปลจะไม่ออกไปนอกอุปกรณ์ของคุณ ภาษาและการปรับปรุงใหม่ๆ จะมาในเร็วๆ นี้! %1$s - + เรียนรู้เพิ่มเติม แปลจาก @@ -2385,6 +2445,8 @@ แปลเป็น ไม่ใช่ตอนนี้ + + แสดงต้นฉบับ เสร็จสิ้น @@ -2395,6 +2457,8 @@ กำลังแปล อยู่ระหว่างการแปล + + เลือกภาษา เกิดปัญหาในการแปล โปรดลองอีกครั้ง @@ -2405,6 +2469,16 @@ เรียนรู้เพิ่มเติม + + กำลังแปล… + + + ดาวน์โหลดภาษาในโหมดประหยัดข้อมูล (%1$s) หรือไม่? + + ตัวเลือกการแปล @@ -2416,6 +2490,10 @@ ไม่ต้องแปล %1$s เลย ไม่ต้องแปลไซต์นี้เลย + + แทนที่การตั้งค่าอื่นๆ ทั้งหมด + + แทนที่การเสนอให้แปล การตั้งค่าการแปล diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index e54478ee..839da7cb 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -310,12 +310,12 @@ Malamang sa malamang, ang website ay sadyang hindi suportado ang HTTPS. Accessibility - - Pasadya na Firefox Account server + + Pasadya na LeOSium Account server Pasadya na Sync server - Nabago ang Firefox Account/Sync server. Magsasara na ang application para mailapat ang mga pagbabago… + Nabago ang LeOSium Account/Sync server. Magsasara na ang application para mailapat ang mga pagbabago… Account @@ -331,7 +331,7 @@ Mag sign-in para i-sync ang mga tabs, bookmarks, passwords at iba pa. - Firefox Account + LeOSium Account Muling kumonekta para maipagpatuloy ang pag-sync @@ -474,7 +474,7 @@ Mga natanggap na tab - Mga abiso para sa mga tab na natanggap mula sa ibang mga Firefox device. + Mga abiso para sa mga tab na natanggap mula sa ibang mga LeOSium device. May natanggap na tab @@ -636,7 +636,7 @@ Tanggalin Aktibo - + Paminsan-minsan, maaaring mag-install at magpatakbo ang %1$s ng mga pag-aaral. Matuto ng higit pa @@ -998,7 +998,7 @@ Magkonekta ng isa pang device - Para makapagpadala ng tab, mag-sign in sa Firefox sa isa pang device. + Para makapagpadala ng tab, mag-sign in sa LeOSium sa isa pang device. Nakuha ko @@ -1138,11 +1138,11 @@ Browser na binuo para sa mga tao, hindi para sa kita. - + Kunin kung saan ka umalis - - Bring bookmarks, history, and passwords to Firefox on this device. - + + Bring bookmarks, history, and passwords to LeOSium on this device. + Mag-sign in Nakabukas ang Sync @@ -1158,7 +1158,7 @@ Pilin ang paglalagyan ng toolbar - Binibigyan ka ng Firefox ng mamahala sa mga ibinabahagi mo online at kung ano ang ibinabahagi mo sa amin. + Binibigyan ka ng LeOSium ng mamahala sa mga ibinabahagi mo online at kung ano ang ibinabahagi mo sa amin. Basahin ang aming paunawa sa privacy @@ -1192,16 +1192,16 @@ i-Scan ang code - https://firefox.com/pair]]> + https://firefox.com/pair]]> Handa nang mag-scan Mag-sign in gamit ang iyong camera Gumamit na lang ng email - - Gumawa ng isa para makapag-sync ng Firefox sa mga device.]]> - + + Gumawa ng isa para makapag-sync ng LeOSium sa mga device.]]> + Titigil na ang %s sa pag-sync sa iyong account, pero hindi nito buburahin ang kahit anong browsing data sa device na ito. Mag-disconnect @@ -1366,7 +1366,7 @@ Huwag mag-save kailanman - + i-Autofill ang %1$s i-Autofill sa ibang apps @@ -1639,13 +1639,13 @@ Magkonekta ng isa pang device. Mangyaring mag-re-authenticate. - + Paki-enable ang pag-sync ng tab. - Wala kang mga nakabukas na tab sa Firefox sa iba mo pang mga device. - + Wala kang mga nakabukas na tab sa LeOSium sa iba mo pang mga device. + Tingnan ang listahan ng mga tab mula sa iba mong mga device. - + Mag-sign in sa sync Walang nakabukas na mga tab @@ -1667,7 +1667,7 @@ Paghahanap sa Google - Set links from websites, emails, and messages to open automatically in Firefox. + Set links from websites, emails, and messages to open automatically in LeOSium. Tanggalin diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 54e4d828..bc7a7671 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -71,7 +71,7 @@ Bu cihazda iz bırakmayın %1$s, tüm gizli sekmelerinizi kapattığınızda çerezlerinizi, geçmişinizi ve site verilerinizi temizler. %2$s Sayfayı çevir + + Sayfa %1$s dilinden %2$s diline çevrildi. + Seçili dil @@ -332,13 +337,23 @@ - Firefox gizlilik bildirimi - + LeOSium gizlilik bildirimi + + Ayrıntıları gizlilik bildirimimizde bulabilirsiniz Sizi güvende tutmayı seviyoruz + + Milyonların LeOSium’u neden sevdiğini öğrenin + + Daha fazla seçenekle güvenli gezinti Kâr amacı gütmeyen tarayıcımız, şirketlerin sizi web’de gizlice takip etmesini engelliyor. + 100 milyondan fazla insan, kâr amacı gütmeyen bir kuruluş tarafından desteklenen bu tarayıcıyla gizliliğini koruyor. + + Takip kodları mı dediniz? Otomatik olarak engelliyoruz. Uzantı desteği mi? 700 uzantıyı deneyebilirsiniz. Ya PDF desteği? Yerleşik okuyucumuzla PDF’leri yönetmek çok daha kolay. + Kâr amacı gütmeyen tarayıcımız, şirketlerin sizi web’de gizlice takip etmesini engelliyor.\n\nAyrıntıları gizlilik bildirimimizde bulabilirsiniz. @@ -350,18 +365,18 @@ Cihazlarınız arasında güvenle geçiş yapın - Giriş yapıp eşitlemeyi tamamladığınızda daha güvende olursunuz. Firefox, parolalarınızı, yer imlerinizi ve diğer verilerinizi şifreler. + Note: The word "LeOSium" should NOT be translated --> + Giriş yapıp eşitlemeyi tamamladığınızda daha güvende olursunuz. LeOSium, parolalarınızı, yer imlerinizi ve diğer verilerinizi şifreler. Giriş yap Şimdi değil - Bildirimler Firefox ile daha güvende kalmanızı sağlar + Note: The word "LeOSium" should NOT be translated --> + Bildirimler LeOSium ile daha güvende kalmanızı sağlar - Sekmelerinizi cihazlarınız arasında güvenli bir şekilde gönderin ve Firefox’un diğer gizlilik özelliklerini keşfedin. + Note: The word "LeOSium" should NOT be translated --> + Sekmelerinizi cihazlarınız arasında güvenli bir şekilde gönderin ve LeOSium’un diğer gizlilik özelliklerini keşfedin. Bildirimleri aç @@ -369,14 +384,14 @@ Şimdi değil - Firefox arama widget’ını deneyin + Note: The word "LeOSium" should NOT be translated --> + LeOSium arama widget’ını deneyin - Firefox’u ana ekranınıza eklerseniz gizliliğe öncelik veren tarayıcınıza kolayca erişebilirsiniz. + Note: The word "LeOSium" should NOT be translated --> + LeOSium’u ana ekranınıza eklerseniz gizliliğe öncelik veren tarayıcınıza kolayca erişebilirsiniz. - Firefox widget’ını ekle + Note: The word "LeOSium" should NOT be translated --> + LeOSium widget’ını ekle Şimdi değil @@ -416,10 +431,10 @@ Arama motorlarından öneriler Adres çubuğu tercihleri - - Adres çubuğu - Firefox Önerileri - - Firefox Önerileri hakkında bilgi alın + + Adres çubuğu - LeOSium Önerileri + + LeOSium Önerileri hakkında bilgi alın Google Play’de puan ver Adresleri otomatik tamamla - + Sponsorlardan öneriler - Ara sıra görünecek sponsorlu önerilerle %1$s tarayıcınızı destekleyin - %1$s önerileri - + Aramanızla ilgili öneriler alın Bağlantıları uygulamalarda aç @@ -647,7 +662,7 @@ Daha fazla bilgi alın - + Klasik %s Sanatçı serisi @@ -665,8 +680,8 @@ Yeni eklentiler kullanıma sunuldu - - Firefox’u kişiselleştirmenizi sağlayan 100’den fazla yeni uzantıya göz atın. + + LeOSium’u kişiselleştirmenizi sağlayan 100’den fazla yeni uzantıya göz atın. Eklentileri keşfet @@ -694,9 +709,9 @@ Yer imleri - Hesaplar + Hesaplar - Parolalar + Parolalar Açık sekmeler @@ -714,7 +729,7 @@ Son eşitleme: %s - Son eşitleme: hiç + Son eşitleme: yok - Kredi kartları + Kredi kartları - Ödeme yöntemleri + Ödeme yöntemleri Adresler @@ -732,7 +747,7 @@ Alınan sekmeler - Diğer Firefox cihazlarından gelen sekmelerin bildirimleri. + Diğer LeOSium cihazlarından gelen sekmelerin bildirimleri. Sekme alındı @@ -915,7 +930,7 @@ Kaldır Etkin - + %1$s zaman zaman araştırmalar yükleyip çalıştırabilir. Daha fazla bilgi al @@ -1291,7 +1306,7 @@ Başka bir cihaz bağla - Sekme göndermek için başka bir cihazdan daha Firefox’a giriş yapmalısınız. + Sekme göndermek için başka bir cihazdan daha LeOSium’a giriş yapmalısınız. Anladım @@ -1319,10 +1334,10 @@ - Firefox hem hızlı hem de gizli + LeOSium hem hızlı hem de gizli - Firefox’u varsayılan tarayıcınız yapın + LeOSium’u varsayılan tarayıcınız yapın Gizli gezintiyi deneyin - Kısa bir ankete katılarak Firefox’u iyileştirmemize yardımcı olabilirsiniz. + Kısa bir ankete katılarak LeOSium’u iyileştirmemize yardımcı olabilirsiniz. Ankete katıl @@ -1491,19 +1506,19 @@ Kodu tarayın - https://firefox.com/pair adresine gidin]]> + https://firefox.com/pair adresine gidin]]> Taramaya hazırım Kameranızla giriş yapın E-posta ile giriş yap - - hesap açın.]]> - + + hesap açın.]]> + %s artık hesabınızla eşitlenmeyecek ama bu cihazdaki gezinti geçmişiniz silinmeyecek. - Bağlatıyı kes + Bağlantıyı kes İptal @@ -1517,7 +1532,7 @@ Gelişmiş izlenme koruması Siteler arası takip kodlarına karşı en güçlü korumamız olan Komple Çerez Koruması da içinde. - + %s, internette ne yaptığınızı öğrenmeye çalışan takip kodlarının çoğundan sizi korur. Daha fazla bilgi al @@ -1668,20 +1683,20 @@ Bu siteyi cihazınızın ana ekranına ekleyerek ona hızlıca erişebilir, site bir uygulamaymış gibi daha hızlı gezinti yapabilirsiniz. - Hesaplar ve parolalar + Hesaplar ve parolalar - Parolalar + Parolalar - Kullanıcı adı ve parolaları kaydet + Kullanıcı adı ve parolaları kaydet - Parolaları kaydet + Parolaları kaydet Kaydetmeyi sor Asla kaydetme - + %1$s ile otomatik doldur - + %1$s kullanırken web sitelerinde kullanıcı adı ve parolalar doldurulup kaydedilsin. Diğer uygulamalarda otomatik doldur @@ -1689,47 +1704,47 @@ Cihazınızdaki diğer uygulamalarda kullanıcı adı ve parolalar doldurulsun. - Hesap ekle + Hesap ekle - Parola ekle + Parola ekle - - Hesapları eşitle - Parolaları eşitle + Hesapları eşitle + + Parolaları eşitle - Hesapları cihazlar arasında eşitle + Hesapları cihazlar arasında eşitle - Parolaları cihazlar arasında eşitle + Parolaları cihazlar arasında eşitle - Kayıtlı hesaplar + Kayıtlı hesaplar - Kayıtlı parolalar + Kayıtlı parolalar - Kaydettiğiniz veya %s ile eşitlediğiniz hesaplar burada görünecektir. + Kaydettiğiniz veya %s ile eşitlediğiniz hesaplar burada görünecektir. - %s tarayıcısına kaydettiğiniz veya eşitlediğiniz parolalar burada listelenecektir. Kaydettiğiniz tüm parolalar şifrelenir. + %s tarayıcısına kaydettiğiniz veya eşitlediğiniz parolalar burada listelenecektir. Kaydettiğiniz tüm parolalar şifrelenir. - Sync hakkında bilgi alın. + Sync hakkında bilgi alın. - Eşitlemeyle ilgili bilgi al + Eşitlemeyle ilgili bilgi al İstisnalar - Kaydedilmeyen hesaplar ve parolalar burada görünecektir. + Kaydedilmeyen hesaplar ve parolalar burada görünecektir. - %s, burada listelenen sitelerin parolalarını kaydetmeyecektir. + %s, burada listelenen sitelerin parolalarını kaydetmeyecektir. - Bu sitelere ait hesaplar ve parolalar kaydedilmeyecektir. + Bu sitelere ait hesaplar ve parolalar kaydedilmeyecektir. - %s bu sitelerin parolalarını kaydetmeyecektir. + %s bu sitelerin parolalarını kaydetmeyecektir. Tüm istisnaları sil - Hesaplarda ara + Hesaplarda ara - Parolalarda ara + Parolalarda ara Site @@ -1757,17 +1772,17 @@ Parolayı gizle - Kayıtlı hesaplarınızı görmek için kilidi açın + Kayıtlı hesaplarınızı görmek için kilidi açın - Kayıtlı parolalarınızı görmek için kilidi açın + Kayıtlı parolalarınızı görmek için kilidi açın - Hesaplarınızı güvence altına alın + Hesaplarınızı güvence altına alın - Kayıtlı parolalarınızı güvence altına alın + Kayıtlı parolalarınızı güvence altına alın - Cihazınız başka birinin eline geçerse kayıtlı hesaplarına erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. + Cihazınız başka birinin eline geçerse kayıtlı hesaplarına erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. - Cihazınız başka birinin eline geçerse kayıtlı parolalarınıza erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. + Cihazınız başka birinin eline geçerse kayıtlı parolalarınıza erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. Daha sonra @@ -1785,10 +1800,10 @@ Son kullanım - Hesapları sırala menüsü + Hesapları sırala menüsü - Parolaları sırala menüsü + Parolaları sırala menüsü @@ -1796,43 +1811,43 @@ Adresler - Kredi kartları + Kredi kartları - Ödeme yöntemleri + Ödeme yöntemleri - Kartları kaydedip otomatik doldur + Kartları kaydedip otomatik doldur - Ödeme yöntemlerini kaydet ve doldur + Ödeme yöntemlerini kaydet ve doldur - Veriler şifrelenir + Veriler şifrelenir - %s kaydettiğiniz tüm ödeme yöntemlerini şifreler + %s kaydettiğiniz tüm ödeme yöntemlerini şifreler Kartları cihazlar arasında eşitle Kartları eşitle - Kredi kartı ekle + Kredi kartı ekle - Kart ekle + Kart ekle - Kayıtlı kartları yönet + Kayıtlı kartları yönet - Kartları yönet + Kartları yönet Adres ekle Adresleri yönet - Adresleri kaydedip otomatik doldur + Adresleri kaydedip otomatik doldur - Adresleri kaydet ve doldur + Adresleri kaydet ve doldur - Numaralar, e-posta ve gönderim adresleri gibi bilgileri dahil et + Numaralar, e-posta ve gönderim adresleri gibi bilgileri dahil et - Telefon numaraları ve e-posta adresleri de dahildir + Telefon numaraları ve e-posta adresleri de dahildir Kart ekle @@ -1853,9 +1868,9 @@ Kartı sil - Bu kredi kartını silmek istediğinizden emin misiniz? + Bu kredi kartını silmek istediğinizden emin misiniz? - Kart silinsin mi? + Kart silinsin mi? Sil @@ -1869,24 +1884,24 @@ Kayıtlı kartlar - Lütfen geçerli bir kredi kartı numarası girin + Lütfen geçerli bir kredi kartı numarası girin - Geçerli bir kart numarası girin + Geçerli bir kart numarası girin - Lütfen bu alanı doldurun + Lütfen bu alanı doldurun - Adınızı yazın + Adınızı yazın Kayıtlı kartlarınızı görmek için kilidi açın - Kredi kartlarını güvence altına al + Kredi kartlarını güvence altına al - Kayıtlı ödeme yöntemlerinizi güvence altına alın + Kayıtlı ödeme yöntemlerinizi güvence altına alın - Cihazınız başka birinin eline geçerse kayıtlı kartlarınıza erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. + Cihazınız başka birinin eline geçerse kayıtlı kartlarınıza erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. - Cihazınız başka birinin eline geçerse kayıtlı ödeme yöntemlerinize erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. + Cihazınız başka birinin eline geçerse kayıtlı ödeme yöntemlerinize erişilmesini önlemek için cihaz kilidi deseni, PIN veya parola ayarlayın. Hemen ayarla @@ -1895,10 +1910,10 @@ Cihazınızın kilidini açın - Depolanan kredi kartı bilgilerini kullanmak için kilidi açın + Depolanan kredi kartı bilgilerini kullanmak için kilidi açın - Kayıtlı ödeme yöntemlerinizi kullanmak için kilidi açın + Kayıtlı ödeme yöntemlerinizi kullanmak için kilidi açın Adres ekle @@ -1906,11 +1921,13 @@ Adresleri yönet - Ad + Ad - İkinci ad + İkinci ad - Soyadı + Soyadı + + Ad Sokak adresi @@ -1935,9 +1952,9 @@ Adresi sil - Bu adresi silmek istediğinizden emin misiniz? + Bu adresi silmek istediğinizden emin misiniz? - Bu adres silinsin mi? + Bu adres silinsin mi? Sil @@ -2035,49 +2052,49 @@ Düzenle - Bu hesabı silmek istediğinizden emin misiniz? + Bu hesabı silmek istediğinizden emin misiniz? - Bu parolayı silmek istediğinizden emin misiniz? + Bu parolayı silmek istediğinizden emin misiniz? Sil Vazgeç - Hesap seçenekleri + Hesap seçenekleri - Parola seçenekleri + Parola seçenekleri - Hesabın web adresi için düzenlenebilir metin alanı. + Hesabın web adresi için düzenlenebilir metin alanı. - Web sitesi adresi için düzenlenebilir metin alanı. + Web sitesi adresi için düzenlenebilir metin alanı. - Hesabın kullanıcı adı için düzenlenebilir metin alanı. + Hesabın kullanıcı adı için düzenlenebilir metin alanı. - Kullanıcı adı için düzenlenebilir metin alanı. + Kullanıcı adı için düzenlenebilir metin alanı. - Hesabın parolası için düzenlenebilir metin alanı. + Hesabın parolası için düzenlenebilir metin alanı. - Parola için düzenlenebilir metin alanı. + Parola için düzenlenebilir metin alanı. - Değişiklikleri hesaba kaydet. + Değişiklikleri hesaba kaydet. - Değişiklikleri kaydet. + Değişiklikleri kaydet. - Düzenle + Düzenle - Parola düzenle + Parola düzenle - Yeni hesap ekle + Yeni hesap ekle - Parola ekle + Parola ekle - Parola gerekli + Parola gerekli - Parolayı girin + Parolayı girin - Kullanıcı adı gereklidir + Kullanıcı adı gereklidir - Kullanıcı adını girin + Kullanıcı adını girin Sunucu gereklidir @@ -2102,13 +2119,13 @@ Başka bir cihaz bağlayın. Lütfen yeniden giriş yapın. - + Lütfen sekme eşitlemeyi etkinleştirin. - Diğer cihazlarınızdaki Firefox’larda hiç açık sekme yok. - + Diğer cihazlarınızdaki LeOSium’larda hiç açık sekme yok. + Diğer cihazlarınızdaki sekmelerin listesini görün. - + Sync’e giriş yapın @@ -2160,7 +2177,7 @@ Bir ay sonra kendiliğinden kapatılsın mı? - Firefox, bir aydır bakmadığınız sekmeleri kapatabilir. + LeOSium, bir aydır bakmadığınız sekmeleri kapatabilir. OTOMATİK KAPATMAYI AÇ @@ -2168,8 +2185,8 @@ Otomatik kapatma açıldı - - Firefox Önerileri + + LeOSium Önerileri Google araması @@ -2180,7 +2197,7 @@ Varsayılan tarayıcınızı değiştirin - Web siteleri, e-postalar ve mesajlardaki bağlantılar otomatik olarak Firefox’ta açılsın. + Web siteleri, e-postalar ve mesajlardaki bağlantılar otomatik olarak LeOSium’ta açılsın. Kaldır @@ -2189,7 +2206,7 @@ Ayrıntılar için tıklayın - Yukarı + Yukarı Kapat @@ -2204,7 +2221,7 @@ %s desteğiyle. - Firefox ailesinden. %s + LeOSium ailesinden. %s Daha fazla bilgi al @@ -2230,8 +2247,6 @@ Düzeltilmiş puan - Güvenilmez değerlendirmeler kaldırıldı - Güvenilir değerlendirmelere dayanarak Öne çıkan son değerlendirmeler @@ -2258,7 +2273,7 @@ Ayarlar - Değerlendirme denetleyicisinde reklamları göster + Değerlendirme kontrolcüsünde reklamları göster Ara sıra ilgili ürünlerin reklamlarını görebilirsiniz. Yalnızca güvenilir değerlendirmeleri olan ürünlerin reklamlarını kabul ediyoruz. %s @@ -2284,13 +2299,9 @@ Ürün mevcut değil - Bu ürünün yeniden stoğa girdiğini görürseniz bize bildirin, biz de değerlendirmeleri kontrol etmeye çalışalım. + Bu ürünün yeniden stoka girdiğini görürseniz bize bildirin, biz de değerlendirmeleri kontrol etmeye çalışalım. Ürünün stokta olduğunu bildir - - Değerlendirme kalitesi kontrol ediliyor - - Değerlendirme kalitesi kontrol ediliyor Değerlendirme kalitesi kontrol ediliyor (%s) @@ -2327,22 +2338,28 @@ Değerlendirme kalitesini kontrol et Ürün değerlendirmelerine ilişkin güvenilir kılavuzumuzu deneyin - + Yeni bir şey satın almadan önce %1$s sitesindeki ürün değerlendirmelerinin güvenilirliğini görün. Deneysel bir %2$s özelliği olan değerlendirme kontrolcüsü, tarayıcınızla birlikte geliyor. %3$s ve %4$s ile de uyumlu. - + Yeni bir şey satın almadan önce %1$s sitesindeki ürün değerlendirmelerinin güvenilirliğini görün. Deneysel bir %2$s özelliği olan değerlendirme kontrolcüsü, tarayıcınızla birlikte geliyor. Mozilla %1$s sayesinde önyargılı ve sahte değerlendirmelerden kaçınabilirsiniz. Alışverişlerinizde sizi korumak için yapay zekâ modelimizi sürekli geliştiriyoruz. %2$s Daha fazla bilgi alın - “Evet, deneyeceğim”i seçtiğinizde Mozilla %1$s %2$s ve %3$snı kabul etmiş olursunuz. + “Evet, deneyeceğim”i seçtiğinizde Mozilla %1$s %2$s ve %3$snı kabul etmiş olursunuz. “Evet, deneyeceğim”i seçtiğinizde %1$s için şunları kabul etmiş olursunuz: + + “Evet, deneyeceğim”i seçtiğinizde %1$s %2$s ve %3$s %4$snı kabul etmiş olursunuz. + + “Evet, deneyeceğim”i seçtiğinizde %1$s %2$s ve %3$s %4$snı kabul etmiş olursunuz. - gizlilik politikası + gizlilik politikası Gizlilik politikası + + gizlilik bildirimi kullanım koşulları @@ -2400,7 +2417,7 @@ bu koleksiyon hakkında daha fazla bilgi edinmek için bağlantıyı açın makaleyi oku - + bilgi almak için bağlantıyı aç %s, Başlık @@ -2416,11 +2433,15 @@ Bu sayfa çevrilsin mi? + + Sayfa %1$s dilinden %2$s diline çevrildi %1$s ile gizli çevirileri deneyin Gizliliğinizi korumak için çeviriler asla cihazınızdan dışarı çıkmaz. Yeni diller ve gelişmeler de yolda! %1$s - + Daha fazla bilgi alın Bu dilden @@ -2428,6 +2449,8 @@ Bu dile Şimdi değil + + Orijinalini göster Tamam @@ -2450,6 +2473,17 @@ Daha fazla bilgi al + + Çevriliyor… + + + + Dil, veri tasarrufu modunda indirilsin mi? (%1$s) + + Çeviri Seçenekleri diff --git a/app/src/main/res/values-trs/strings.xml b/app/src/main/res/values-trs/strings.xml index b8b61837..e9535ff7 100644 --- a/app/src/main/res/values-trs/strings.xml +++ b/app/src/main/res/values-trs/strings.xml @@ -307,15 +307,15 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> Nā’nïnj %s da’ gāhuin man riña aché nana’hui’ yītïnjt - Nā’nïnj Firefox da’ gāhuin man riña aché nana’hui’ yītïnjt + Note: The word "LeOSium" should NOT be translated --> + Nā’nïnj LeOSium da’ gāhuin man riña aché nana’hui’ yītïnjt Ñā’ān doj huin guìi riña %1$s ngà da’ san’ānj an yī’ì dan naran riña nej sa gā’hue nāga’nāj sò’.\n \nGīni’hiāj doj nùhuin si huā rayi’ij riña %2$s. - Ñā\’ān doj huin guìi riña Firefox ngà da\’ san’ānj an yī\’ì dan naran riña nej sa gā\’hue nāga\’nāj sò’.\n \nGīni\’hiāj doj nùhuin si huā rayi\’ij riña nej nuguan\' huā hiuj nan. + Note: The word "LeOSium" should NOT be translated --> + Ñā\’ān doj huin guìi riña LeOSium ngà da\’ san’ānj an yī\’ì dan naran riña nej sa gā\’hue nāga\’nāj sò’.\n \nGīni\’hiāj doj nùhuin si huā rayi\’ij riña nej nuguan\' huā hiuj nan. nuguan\' huì hūa rayi\'ij @@ -335,14 +335,14 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> Gā’hue rūgûñu’ūnj nej nuguan’ rugui’ nan da’ nūtà’t doj sa gī’hiát riña %s - Gā’hue rūgûñu’ūnj nej nuguan’ rugui’ nan da’ nūtà’t doj sa gī’hiát riña Firefox + Note: The word "LeOSium" should NOT be translated --> + Gā’hue rūgûñu’ūnj nej nuguan’ rugui’ nan da’ nūtà’t doj sa gī’hiát riña LeOSium Gā’hue gārasun nadunât nej rakïj ñanj riña nej si āgâ’t, nātsít nej sa nadunïnjt nī nārì’t hiūj nan nej nuguan’ rūgûñu’ūnj sò’ da’ gāche un hue’êt doj riña %s. - Gā’hue gārasun nadunât nej rakïj ñanj riña nej si āgâ’t, nātsít nej sa nadunïnjt nī nārì’t hiūj nan nej nuguan’ rūgûñu’ūnj sò’ da’ gāche un hue’êt doj riña Firefox. + Note: The word "LeOSium" should NOT be translated --> + Gā’hue gārasun nadunât nej rakïj ñanj riña nej si āgâ’t, nātsít nej sa nadunïnjt nī nārì’t hiūj nan nej nuguan’ rūgûñu’ūnj sò’ da’ gāche un hue’êt doj riña LeOSium. Nāchrūn nej nuguan’ atāj na’ānj an @@ -485,12 +485,12 @@ Si gūruhuaj nī, huā ‘ngō sa yī’ìi gatûj riña aga’ nan. Sisī huā nï̀n’ gīnunt riña sitiô nan nī, sī gachrûnt à’ngō nuguan’ gā’hue gārasun nej si da’ gī’hiaj yī’ì nej si sò’. Sisī huā nï̀n’ gīnunt hiūj nan don nī, gī’hiaj desaktivando akuan’ HTTPS. Dàj gā gātū\' - - Servidor nagi\'iaj man\'ânt riña kuentâ Firefox + + Servidor nagi\'iaj man\'ânt riña kuentâ LeOSium Servidor nagi\'iaj man\'ânt riña Sync - Ngà nadunâ servidor nikāj kuentâ Firefox ngà Sync. Naran riña aplikasiûn da\' natà\' sa nadunâ hua… + Ngà nadunâ servidor nikāj kuentâ LeOSium ngà Sync. Naran riña aplikasiûn da\' natà\' sa nadunâ hua… Kuênta @@ -507,7 +507,7 @@ Gāyi’ì sēsiûn da’ nāgi’hiaj nūguan’ànt nej rakïj ñanj, nej markadô, nej da’nga’ huìi nī doj sa huāa. - Si kuendâ Firefox + Si kuendâ LeOSium Nātū nākà ñû da\' gānahuij nāgi\'iaj nūguàn\'anj @@ -618,7 +618,7 @@ Gāhuin chrūn doj - + Klâsiko %s Sa ahui Nāsinùnj @@ -707,7 +707,7 @@ Nej rakïj ñanj nahuin rā\'ât - Si nūguàn\' nej rakïj ñanj nahuin ra\'a riña a\'ngô nej aga\' Firefox. + Si nūguàn\' nej rakïj ñanj nahuin ra\'a riña a\'ngô nej aga\' LeOSium. Nahuin rā\'a rakïj ñanj @@ -894,7 +894,7 @@ Nādure\' Ngà \'hiaj sunj - + %1$s gā’hue gà’nïn nī gāyi’ìj gi’hia estudio. Gāhuin chrūn doj @@ -1298,10 +1298,10 @@ - Hìo nī huì hua Firefox + Hìo nī huì hua LeOSium - Nā’nïnj Firefox da’ gāhuin man riña aché nana’hui’ yītïnjt + Nā’nïnj LeOSium da’ gāhuin man riña aché nana’hui’ yītïnjt Ni’hiāj dàj ‘hiaj sun riña sa aché nu yītï̀njt @@ -1321,7 +1321,7 @@ - Gī’hiaj ‘ngō sunūnj un, nāchra ‘ngō nej nuguan’ nan da’ nahuin hue’ê doj Firefox. + Gī’hiaj ‘ngō sunūnj un, nāchra ‘ngō nej nuguan’ nan da’ nahuin hue’ê doj LeOSium. Nātsij ēnkuêsta @@ -1463,11 +1463,11 @@ Guruhuât gunumânt riña internêt ‘hiaj sun hue’ê doj nan Guendâ guìi gurugui’ sa nana’hui’ nan, sê guendâ gīrij san’ānj an huin man. - + Nakāj danè’ gudunâjt - + Nāgi’hiaj nūguan’àn nej rakïj ñanj nī nej da’nga’ huì huā riña nej si āgâ’t da’ gā’hue nādunāt pāntâya. - + Gāyi\'ì sēsiûn Ngà nanûn Sync @@ -1492,7 +1492,7 @@ Sò’ ni’in dàj gī’hiaj sunt ngà nej si datôt - Narikî Firefox da’ gi’nï̄nj ra’ât nej sa duyingâ’t riña aché nunt nī nej sa duyingâ’t ngà nej ñûnj. + Narikî LeOSium da’ gi’nï̄nj ra’ât nej sa duyingâ’t riña aché nunt nī nej sa duyingâ’t ngà nej ñûnj. Gahiā sa atāj na\'ānj ñûnj guendâ sa huìi @@ -1529,16 +1529,16 @@ Gānārī ñadu\'ua da\'nga\' kôdigo - https://firefox.com/pair]]> + https://firefox.com/pair]]> Ngà huā chrunj da\' gānārij ñadu\'ua Gāyì\'ì sēsiûn ngà si kamarât Gārāsun si kōrreôt si lūgaj - + gīrī ‘ngòj a da’ nāgi’hiaj nūguan’ànt man ngà a’ngô nej si āgâ’t.]]> - + Dūnâj %s si nāgi\'iaj nūguàn\'anj si kuentât, sanī si dure\'ej nej datô râj sunt ngà aché nunt riña aga\' nan. Gāhuī riña internet @@ -1555,7 +1555,7 @@ Sa huā hue\'ê doj guendâ nārán riña sa naga\'nāj a Ngà Total Cookie Protection hìaj, ‘ngō sa rugûñu’ūnj hīa sò’ da’ nārán man riña nej sa naga’nāj ahui riña nej sitio. - + %s naran rayi\'ît riña nej sa naga\'nāj sa \'iát nga aché nunt. Gāhuin chrūn doj @@ -1719,9 +1719,9 @@ Nitāj āmān nā\'nïnj sà\'t - + Dūsìj mān’an %1$s - + Nāchra nāhuij man nī nā’nï̀nj sà’ si yūgui sa arâj suun ngà nej da’nga’ huìi riña nej sitio ngà aràj sunt %1$s. Nāchra mān’an man riña a’ngô nej aplikasiûn @@ -2084,13 +2084,13 @@ Gātū ngà a\'ngô aga\'a. Gi\'iaj sunūj u, nādigân ñû si huê hīat huin. - + Gi\'iaj sunūj u, nāchrūn sa nāgi\'iaj nūguàn\'ànt nej rakïj ñanj. - Nitāj à\'ngō rakïj ñanj huā nî\'nïnj riña Firefox riña a\'ngô nej si āgâ\'t. - + Nitāj à\'ngō rakïj ñanj huā nî\'nïnj riña LeOSium riña a\'ngô nej si āgâ\'t. + Gīni\'iāj \'ngō dukuán rakïj ñanj nīkāj a\'ngô nej si āgâ\'t. - + Gāyi\'ì sēsiûn riña sync @@ -2143,22 +2143,22 @@ Ngà gachîn ‘ngō ahuii nī nārán mā’an riñanj anj. - Nārán Firefox riña nej rakïj ñanj nu ni’hiājt gachîn ‘ngō ahuii. + Nārán LeOSium riña nej rakïj ñanj nu ni’hiājt gachîn ‘ngō ahuii. NĀCHRŪN DA’ NĀRÁN MĀN’AN MAN Ngà huā sa nārán mān’an man - - Si nūguan’ Firefox + + Si nūguan’ LeOSium Si’hiaj Google sa nana’hui’i Nānà\'uì\' ngà %s - Nāgi’hiaj nej enlasê sitiô web, nej korrêo nī nej nuguan’ huāa da’ nāyi’nïn man’an nej man riña Firefox. + Nāgi’hiaj nej enlasê sitiô web, nej korrêo nī nej nuguan’ huāa da’ nāyi’nïn man’an nej man riña LeOSium. Nādure\' @@ -2182,7 +2182,7 @@ Rugûñu\'ūnj sa gu\'nàj %s. - Dugui’ yi’nïn’ Firefox huin. %s + Dugui’ yi’nïn’ LeOSium huin. %s Gāhuin chrūn doj @@ -2203,6 +2203,6 @@ nā’nïn riña enlâse da’ gīni’înt doj dàj hua rayi’î yi’nïn’ nan gāhiā riña ñanj dan - + nā’nïn riña enlâse da’ gīni’înt doj diff --git a/app/src/main/res/values-tt/strings.xml b/app/src/main/res/values-tt/strings.xml index 75c15784..4a6e86d0 100644 --- a/app/src/main/res/values-tt/strings.xml +++ b/app/src/main/res/values-tt/strings.xml @@ -275,8 +275,8 @@ The first parameter is the name of the app defined in app_name (for example: Fenix) --> %s-ны көн саен куллана торган браузерыгыз итегез - Firefox-ны көн саен куллана торган браузерыгыз итегез + Note: The word "LeOSium" should NOT be translated --> + LeOSium-ны көн саен куллана торган браузерыгыз итегез хосусыйлык аңлатмасы @@ -383,12 +383,12 @@ Хосусый табларда кабынган Кулайлык - - Үзгә Firefox Хисап серверы + + Үзгә LeOSium Хисап серверы Үзгә Синхронлау серверы - Firefox Хисап/Синхронлау серверы үзгәртелгән. Үзгәртүләрне гамәлгә ашыру өчен кушымтадан чыгу… + LeOSium Хисап/Синхронлау серверы үзгәртелгән. Үзгәртүләрне гамәлгә ашыру өчен кушымтадан чыгу… Хисап язмасы @@ -402,7 +402,7 @@ Яраклаштыру - Firefox хисап язмасы + LeOSium хисап язмасы Синхронлауны дәвам итү өчен яңадан тоташыгыз @@ -531,7 +531,7 @@ Башка җиһаздагы таблар - Башка Firefox җиһазларыннан алынган таблар өчен искәртүләр. + Башка LeOSium җиһазларыннан алынган таблар өчен искәртүләр. Таб кабул ителде @@ -562,7 +562,7 @@ - Firefox.com/pair адресында күрсәтелгән QR кодны сканерлагыз]]> + LeOSium.com/pair адресында күрсәтелгән QR кодны сканерлагыз]]> @@ -1003,7 +1003,7 @@ Башка җиһазны тоташтыру - Табны җибәрү өчен, кимендә тагын бер башка җиһаздан Firefox-ка керегез. + Табны җибәрү өчен, кимендә тагын бер башка җиһаздан LeOSium-ка керегез. Аңладым @@ -1165,16 +1165,16 @@ Кодны сканерлау - https://firefox.com/pair адресына үтегез]]> + https://firefox.com/pair адресына үтегез]]> Сканерлауга әзер Камерагыз ярдәмендә керегез Моның урынына эл. почта кулланыгыз - - хисап булдырыгыз.]]> - + + хисап булдырыгыз.]]> + %s хисабыгыз белән синхронлауны туктатачак, ләкин бу җиһаздагы гизү мәгълүматларының берсен дә бетермәячәк. Өзү @@ -1318,9 +1318,9 @@ Беркайчан да cакламау - + %1$s эчендә автотутыру - + %1$s кулланганда вебсайтларда кулланучы исемнәре һәм серсүзләр саклансын һәм аннан автоматик рәвештә тутырылсын. Башка кушымталарда автотутыру @@ -1578,13 +1578,13 @@ Башка бер җиһазны тоташтыру. Зинһар, сайтка яңадан керегез. - + Зинһар, таблар синхронлауны кабызыгыз. - Башка җиһазларыгыздагы Firefox-ларда ачык таблар юк. - + Башка җиһазларыгыздагы LeOSium-ларда ачык таблар юк. + Башка җиһазларыгызда ачылган таблар исемлеген карау. - + Синхронлауга керү Ачык таблар юк @@ -1618,14 +1618,14 @@ Бер айдан соң үзлегеннән ябылсынмы? - Firefox соңгы айда каралмаган табларны яба ала. + LeOSium соңгы айда каралмаган табларны яба ала. АВТОЯБУНЫ КАБЫЗУ Автоябу кабызылды - Вебсайтлардан, эл. хатлардан һәм хәбәрләрдән сылтамаларны автоматик рәвештә Firefox-та ачылсын. + Вебсайтлардан, эл. хатлардан һәм хәбәрләрдән сылтамаларны автоматик рәвештә LeOSium-та ачылсын. Бетерү @@ -1647,7 +1647,7 @@ Күбрәген күрү - Firefox гаиләсеннән. %s + LeOSium гаиләсеннән. %s Күбрәк белү diff --git a/app/src/main/res/values-tzm/strings.xml b/app/src/main/res/values-tzm/strings.xml index 66b0b210..0dba93e0 100644 --- a/app/src/main/res/values-tzm/strings.xml +++ b/app/src/main/res/values-tzm/strings.xml @@ -82,8 +82,8 @@ Rzu %s - - Rẓem Aseksel amaynu n Firefox + + Rẓem Aseksel amaynu n LeOSium Rzu @@ -116,7 +116,7 @@ Asgum - Amiḍan Firefox + Amiḍan LeOSium Tutlayt @@ -390,7 +390,7 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> Ansuf ɣer %s! Rẓem tisɣal diff --git a/app/src/main/res/values-ug/strings.xml b/app/src/main/res/values-ug/strings.xml index 11b4fe4c..81ac3c28 100644 --- a/app/src/main/res/values-ug/strings.xml +++ b/app/src/main/res/values-ug/strings.xml @@ -72,7 +72,7 @@ بۇ ئۈسكۈنىدە ئىز قالدۇرمايدۇ بارلىق شەخسىيەت بەتكۈچلەر تاقالغاندا %1$s سىزنىڭ cookies، تارىخ ۋە تور بېكەت سانلىق مەلۇماتلىرىڭىزنى ئۆچۈرىدۇ. %2$s بەت تەرجىمىسى + + بەت %1$s دىن %2$s غا تەرجىمە قىلىندى. + تاللانغان تىل @@ -324,13 +329,23 @@ - Firefox شەخسىيەت ئۇقتۇرۇشى - + LeOSium شەخسىيەت ئۇقتۇرۇشى + + شەخسىيەت ئۇقتۇرۇشىنىڭ تەپسىلاتىنى ئوقۇڭ بىخەتەرلىكىڭىزنى ساقلاشنى ياخشى كۆرىمىز + + مىليونلىغان كىشىنىڭ نېمىشقا LeOSium نى ياقتۇرىدىغانلىقىنى تېپىڭ + + بىخەتەر تور زىيارىتىنىڭ تېخىمۇ كۆپ تاللىشى پايدا تاپمايدىغان توركۆرگۈمىز شىركەتلەرنىڭ سىزگە تور بېكەتلەردە مەخپىي ھالدا ئەگىشىشىنى توسىدۇ. + 100 مىليوندىن ئارتۇق كىشى پايدا تاپمايدىغان ئورگان قوللىغان توركۆرگۈنى تاللاپ ئىشلىتىپ ئۆزلىرىنىڭ شەخسىيىتىنى قوغداۋاتىدۇ. + + بىلىنگەن ئىزلىغۇچ؟ ئۆزلۈكىدىن توسۇلىدۇ. كېڭەيتمە؟ 700 دىن ئارتۇقنى سىناڭ. PDF نى ئاچامدۇ؟ توركۆرگۈ ئىچىدىكى ئوقۇغۇچ ئۇلارنى باشقۇرۇشنى قۇلايلاشتۇرىدۇ. + پايدا تاپمايدىغان ئورگان قوللايدىغان توركۆرگۈمىز شىركەتلەرنىڭ سىزنى مەخپىي ھالدا توردىن ئىزلىشىنى توختىتىشىغا ياردەم بېرىدۇ.\n\nشەخسىيەت ئۇقتۇرۇشى ھەققىدىكى تەپسىلات بىلدۈرگۈسى. @@ -342,31 +357,31 @@ ئۈسكۈنىلەر ئارا ئالماشتۇرغاندا شىفىرلىنىدۇ - تىزىمغا كىرىپ قەدەمداشلىسىڭىز، تېخىمۇ بىخەتەر بولىسىز. Firefox ئىم، خەتكۈچ ۋە باشقىلارنى مەخپىيلەشتۈرىدۇ. + Note: The word "LeOSium" should NOT be translated --> + تىزىمغا كىرىپ قەدەمداشلىسىڭىز، تېخىمۇ بىخەتەر بولىسىز. LeOSium ئىم، خەتكۈچ ۋە باشقىلارنى مەخپىيلەشتۈرىدۇ. تىزىمغا كىرىڭ ھازىر ئەمەس - ئۇقتۇرۇشلار Firefox ئارقىلىق تېخىمۇ بىخەتەر بولۇشىڭىزغا ياردەم بېرىدۇ + Note: The word "LeOSium" should NOT be translated --> + ئۇقتۇرۇشلار LeOSium ئارقىلىق تېخىمۇ بىخەتەر بولۇشىڭىزغا ياردەم بېرىدۇ - ئۈسكۈنىڭىز ئارىسىدا بەتكۈچلەرنى بىخەتەر ئەۋەتىپ، Firefox دىكى باشقا شەخسىيەت ئىقتىدارلىرىنى بايقايدۇ. + Note: The word "LeOSium" should NOT be translated --> + ئۈسكۈنىڭىز ئارىسىدا بەتكۈچلەرنى بىخەتەر ئەۋەتىپ، LeOSium دىكى باشقا شەخسىيەت ئىقتىدارلىرىنى بايقايدۇ. ئۇقتۇرۇشنى ئاچ ھازىر ئەمەس - Firefox ئىزدەش ئەپچەنى سىناڭ + Note: The word "LeOSium" should NOT be translated --> + LeOSium ئىزدەش ئەپچەنى سىناڭ - باش ئېكرانىڭىزغا Firefox نى جايلاشتۇرسىڭىز، شەخسىيەتنى ئەڭ ئالدىنقى ئورۇنغا قويىدىغان تور كۆرگۈنى خالىغان ۋاقىتتا زىيارەت قىلالايسىز، ئۇ بېكەت ھالقىغان ئىز قوغلاشنى توسىدىغان تور كۆرگۈ. + Note: The word "LeOSium" should NOT be translated --> + باش ئېكرانىڭىزغا LeOSium نى جايلاشتۇرسىڭىز، شەخسىيەتنى ئەڭ ئالدىنقى ئورۇنغا قويىدىغان تور كۆرگۈنى خالىغان ۋاقىتتا زىيارەت قىلالايسىز، ئۇ بېكەت ھالقىغان ئىز قوغلاشنى توسىدىغان تور كۆرگۈ. - Firefox ئەپچە قوش + Note: The word "LeOSium" should NOT be translated --> + LeOSium ئەپچە قوش ھازىر ئەمەس @@ -405,10 +420,10 @@ ئىزدەش موتورىنىڭ تەكلىپلىرى ئادرېس بالداق مايىللىقى - - ئادرېس بالدىقى - Firefox تەكلىپى - - Firefox تەكلىپى ھەققىدىكى تەپسىلاتلار + + ئادرېس بالدىقى - LeOSium تەكلىپى + + LeOSium تەكلىپى ھەققىدىكى تەپسىلاتلار Google Play دىكى باھا ئۆزلۈكىدىن تاماملانغان تور ئادرېسلىرى - + ياردەمچىنىڭ تەكلىپلىرى - قوللاش سودىگەرلىرىنىڭ ئېلانىنى ئانچە-مۇنچە كۆرسىتىشىگە يول قويۇپ %1$s نى قوللاڭ - %1$s نىڭ تەكلىپى - + توردىن ئىزدىگىنىڭىزگە مۇناسىۋەتلىك تەكلىپكە ئېرىشىڭ ئۇلىنىشنى ئەپتە ئاچ @@ -637,7 +652,7 @@ تام قەغىزىنى ئۆزگەرتەلمىدى تەپسىلاتى - + ئەنئەنىۋى %s سەنئەتكار يۈرۈشلۈكلىرى @@ -656,8 +671,8 @@ ھازىر يېڭى قوشۇلما بار - - ئۆزىڭىزنىڭ Firefox غا ئايلاندۇرىدىغان 100+ يېڭى كېڭەيتىلمىلەرنى تاپالايسىز. + + ئۆزىڭىزنىڭ LeOSium غا ئايلاندۇرىدىغان 100+ يېڭى كېڭەيتىلمىلەرنى تاپالايسىز. قوشۇلما ئىزدەش @@ -685,9 +700,9 @@ خەتكۈچ - كىرىش + كىرىش - ئىم + ئىم بەتكۈچ ئاچ @@ -711,9 +726,9 @@ and the third is the device model. --> %2$s %3$s دىكى %1$s - ئىناۋەتلىك كارتا + ئىناۋەتلىك كارتا - چىقىم قىلىش ئۇسۇلى + چىقىم قىلىش ئۇسۇلى ئادرېس @@ -721,7 +736,7 @@ تاپشۇرۇۋالغان بەتكۈچ - باشقا Firefox ئۈسكۈنىلىرىدىن تاپشۇرۇۋالغان بەتكۈچ ئۇقتۇرۇشى. + باشقا LeOSium ئۈسكۈنىلىرىدىن تاپشۇرۇۋالغان بەتكۈچ ئۇقتۇرۇشى. بەتكۈچ تاپشۇرۇۋالدى @@ -906,7 +921,7 @@ ئاكتىپ - + %1$s پات-پات تەتقىقاتلارنى ئورنىتىپ ئىجرا قىلالايدۇ. تەپسىلاتى @@ -1280,7 +1295,7 @@ باشقا ئۈسكۈنىگە باغلىنىدۇ - ئاز دېگەندە بىر ئۈسكۈنىدە Firefox تىزىمغا كىرگەندە ئاندىن بەتكۈچ يوللىيالايدۇ. + ئاز دېگەندە بىر ئۈسكۈنىدە LeOSium تىزىمغا كىرگەندە ئاندىن بەتكۈچ يوللىيالايدۇ. بىلدىم @@ -1306,11 +1321,11 @@ بازارچىلىق - Firefox تېز ھەم شەخسىي + LeOSium تېز ھەم شەخسىي - Firefox نى كۆڭۈلدىكى توركۆرگۈ قىلىڭ + LeOSium نى كۆڭۈلدىكى توركۆرگۈ قىلىڭ شەخسىي زىيارەتنى سىناڭ - قىسقا تەكشۈرۈشكە قاتنىشىپ Firefox نى تېخىمۇ ياخشىلاشقا ياردەملىشىڭ. + قىسقا تەكشۈرۈشكە قاتنىشىپ LeOSium نى تېخىمۇ ياخشىلاشقا ياردەملىشىڭ. تەكشۈرۈشكە قاتنىشىڭ @@ -1477,16 +1492,16 @@ كودنى تارا - https://firefox.com/pair ئاچىدۇ]]> + https://firefox.com/pair ئاچىدۇ]]> تاراشقا تەييار كامېرا بىلەن كىرىڭ ئورنىغا ئېلخەت ئىشلىتىڭ - - Firefox نى ئۈسكۈنىلەر ئارا قەدەمداشلاش ئۈچۈن بىرنى قۇرۇڭ .]]> - + + LeOSium نى ئۈسكۈنىلەر ئارا قەدەمداشلاش ئۈچۈن بىرنى قۇرۇڭ .]]> + %s ھېساباتىڭىز بىلەن قەدەمداشلاشنى توختىتىدۇ، ئەمما بۇ ئۈسكۈنىدىكى توركۆرگۈ سانلىق مەلۇماتلىرىڭىزنى ئۆچۈرمەيدۇ. ئۇلانمىنى ئۈز @@ -1502,7 +1517,7 @@ كۈچەيتىلگەن ئىزلاشتىن قوغداش ھازىر ئومۇمىيەت ساقلانما قوغداش ئىقتىدارى بار، تور بېكەت ھالقىغان ئىز قوغلىغۇچىلارغا قارشى ئەڭ كۈچلۈك توساق. - + %s سىزنى توردىكى ئىشلىرىڭىزغا ئەگىشىدىغان كۆپ ئۇچرايدىغان ئىزچىلاردىن قوغدايدۇ. تەپسىلاتى @@ -1653,67 +1668,67 @@ تېز سۈرئەتتە زىيارەت قىلىش ۋە ئەپكە ئوخشاش زىيارەت تۇيغۇسىغا ئېرىشىش ئۈچۈن، مەزكۇر تور بېكەتنى باش ئېكرانغا ئاسانلا قوشالايسىز. - كىرىش ۋە ئىم + كىرىش ۋە ئىم - ئىم + ئىم - كىرىش ۋە ئىم ساقلا + كىرىش ۋە ئىم ساقلا - ئىم ساقلا + ئىم ساقلا ساقلاشنى سورا ھەرگىز ساقلىما - + %1$s دا ئاپتوماتىك تولدۇر - + %1$s نى ئىشلەتكەندە توربېكەتتىكى ئىشلەتكۈچى ئىسمى ۋە پارولىنى تولدۇرىدۇ ۋە ساقلايدۇ. باشقا ئەپلەردە ئاپتوماتىك تولدۇرىدۇ ئۈسكۈنىڭىزدىكى باشقا ئەپلەردە ئىشلەتكۈچى ئىسمى ۋە ئىمنى تولدۇرىدۇ. - كىرىشنى قوش + كىرىشنى قوش - ئىم قوش + ئىم قوش - - كىرىشنى قەدەمداشلا - ئىم قەدەمداشلا + كىرىشنى قەدەمداشلا + + ئىم قەدەمداشلا - ئۈسكۈنىلەر ئارا قەدەمداشلا + ئۈسكۈنىلەر ئارا قەدەمداشلا - ئىمنى ئۈسكۈنىلەر ئارا قەدەمداشلايدۇ + ئىمنى ئۈسكۈنىلەر ئارا قەدەمداشلايدۇ - ساقلانغان كىرىش + ساقلانغان كىرىش - ساقلانغان ئىم + ساقلانغان ئىم - سىز ساقلىغان كىرىش ياكى %s بىلەن بولغان قەدەمداش بۇ جايدا كۆرۈنىدۇ. + سىز ساقلىغان كىرىش ياكى %s بىلەن بولغان قەدەمداش بۇ جايدا كۆرۈنىدۇ. - سىز ساقلىغان ياكى %s غا قەدەمداشلىغان ئىم بۇ يەردە كۆرسىتىلىدۇ. سىز ساقلىغان بارلىق ئىم مەخپىيلەشتۈرۈلگەن. + سىز ساقلىغان ياكى %s غا قەدەمداشلىغان ئىم بۇ يەردە كۆرسىتىلىدۇ. سىز ساقلىغان بارلىق ئىم مەخپىيلەشتۈرۈلگەن. - قەدەمداش ھەققىدىكى تەپسىلاتلار. + قەدەمداش ھەققىدىكى تەپسىلاتلار. - قەدەمداش ھەققىدىكى تەپسىلاتلار + قەدەمداش ھەققىدىكى تەپسىلاتلار مۇستەسنا - ساقلانمىغان كىرىش ۋە ئىم بۇ يەردە كۆرسىتىلىدۇ. + ساقلانمىغان كىرىش ۋە ئىم بۇ يەردە كۆرسىتىلىدۇ. - بۇ جايدا كۆرسىتىلگەن تور بېكەتلەر ئۈچۈن %s ئىم ساقلىمايدۇ. + بۇ جايدا كۆرسىتىلگەن تور بېكەتلەر ئۈچۈن %s ئىم ساقلىمايدۇ. - بۇ تور بېكەتلەرنىڭ كىرىش ۋە ئىم ئۇچۇرلىرى ساقلانمايدۇ. + بۇ تور بېكەتلەرنىڭ كىرىش ۋە ئىم ئۇچۇرلىرى ساقلانمايدۇ. - بۇ تور بېكەتلەر ئۈچۈن %s ئىم ساقلىمايدۇ. + بۇ تور بېكەتلەر ئۈچۈن %s ئىم ساقلىمايدۇ. ھەممە مۇستەسنالارنى ئۆچۈرىدۇ - كىرىش خاتىرىسىنى ئىزدە + كىرىش خاتىرىسىنى ئىزدە - پارول ئىزدەش + پارول ئىزدەش بېكەت @@ -1742,17 +1757,17 @@ ئىم يوشۇر - ساقلانغان كىرىشلىرىڭىزنى كۆرۈش ئۈچۈن قۇلۇپ ئېچىڭ + ساقلانغان كىرىشلىرىڭىزنى كۆرۈش ئۈچۈن قۇلۇپ ئېچىڭ - ساقلانغان پارولىڭىزنى كۆرۈش ئۈچۈن قۇلۇپ ئېچىڭ + ساقلانغان پارولىڭىزنى كۆرۈش ئۈچۈن قۇلۇپ ئېچىڭ - كىرىش ۋە ئىمنى قوغدايدۇ + كىرىش ۋە ئىمنى قوغدايدۇ - ساقلانغان ئىملىرىڭىز شىفىرلىنىدۇ + ساقلانغان ئىملىرىڭىز شىفىرلىنىدۇ - ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان تىزىمغا كىرىش ئۇچۇرى ۋە ئىمنى زىيارەت قىلالمايدۇ. + ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان تىزىمغا كىرىش ئۇچۇرى ۋە ئىمنى زىيارەت قىلالمايدۇ. - ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان ئىملىرىڭىزنى زىيارەت قىلالمايدۇ. + ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان ئىملىرىڭىزنى زىيارەت قىلالمايدۇ. كېيىنچە @@ -1770,10 +1785,10 @@ ئاخىرقى قېتىم ئىشلىتىلگەن - كىرىش تىزىملىكىنى تەرتىپلەيدۇ + كىرىش تىزىملىكىنى تەرتىپلەيدۇ - ئىم تىزىملىكىنى تەرتىپلە + ئىم تىزىملىكىنى تەرتىپلە @@ -1781,42 +1796,42 @@ ئادرېس - ئىناۋەتلىك كارتا + ئىناۋەتلىك كارتا - چىقىم قىلىش ئۇسۇلى + چىقىم قىلىش ئۇسۇلى - كارتا ساقلاش ۋە ئاپتوماتىك تولدۇرۇش + كارتا ساقلاش ۋە ئاپتوماتىك تولدۇرۇش - چىقىم قىلىش ئۇسۇلىنى ساقلاپ ۋە تولدۇرىدۇ + چىقىم قىلىش ئۇسۇلىنى ساقلاپ ۋە تولدۇرىدۇ - سانلىق مەلۇمات شىفىرلانغان + سانلىق مەلۇمات شىفىرلانغان - سىز ساقلىغان بارلىق چىقىم قىلىش ئۇسۇللىرىنى %s شىفىرلايدۇ + سىز ساقلىغان بارلىق چىقىم قىلىش ئۇسۇللىرىنى %s شىفىرلايدۇ كارتىنى ئۈسكۈنىلەر ئارا قەدەمداشلايدۇ كارتا قەدەمداشلا - ئىناۋەتلىك كارتا قوش + ئىناۋەتلىك كارتا قوش - كارتا قوش + كارتا قوش - ساقلانغان كارتا باشقۇرۇش + ساقلانغان كارتا باشقۇرۇش - كارتا باشقۇرۇش + كارتا باشقۇرۇش ئادرېس قوش ئادرېس باشقۇرۇش - ئادرېسلارنى ساقلاش ۋە ئاپتوماتىك تولدۇرۇش + ئادرېسلارنى ساقلاش ۋە ئاپتوماتىك تولدۇرۇش - ئادرېس ساقلاپ تولدۇرىدۇ + ئادرېس ساقلاپ تولدۇرىدۇ - سان، ئېلخەت ۋە توشۇش ئادرېسى قاتارلىق ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ + سان، ئېلخەت ۋە توشۇش ئادرېسى قاتارلىق ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ - تېلېفون نومۇرى ۋە ئېلخەت ئادرېسىنى ئۆز ئىچىگە ئالىدۇ + تېلېفون نومۇرى ۋە ئېلخەت ئادرېسىنى ئۆز ئىچىگە ئالىدۇ كارتا قوش @@ -1837,9 +1852,9 @@ كارتىنى ئۆچۈر - بۇ ئىناۋەتلىك كارتىنى راستىنلا ئۆچۈرەمسىز؟ + بۇ ئىناۋەتلىك كارتىنى راستىنلا ئۆچۈرەمسىز؟ - كارتىنى ئۆچۈرەمدۇ؟ + كارتىنى ئۆچۈرەمدۇ؟ ئۆچۈر @@ -1851,24 +1866,24 @@ ساقلانغان كارتا - ئىناۋەتلىك كارتا نومۇرىنى كىرگۈزۈڭ + ئىناۋەتلىك كارتا نومۇرىنى كىرگۈزۈڭ - ئىناۋەتلىك كارتا نومۇرى كىرگۈزۈلىدۇ + ئىناۋەتلىك كارتا نومۇرى كىرگۈزۈلىدۇ - بۇ بۆلەكنى تولدۇرۇڭ + بۇ بۆلەكنى تولدۇرۇڭ - ئات قوش + ئات قوش ساقلانغان كارتىلىرىڭىزنى كۆرۈش ئۈچۈن قۇلۇپ ئېچىڭ - ئىناۋەتلىك كارتىڭىزنى شىفىرلايدۇ + ئىناۋەتلىك كارتىڭىزنى شىفىرلايدۇ - ساقلانغان چىقىم قىلىش ئۇسۇللىرىڭىز شىفىرلىنىدۇ + ساقلانغان چىقىم قىلىش ئۇسۇللىرىڭىز شىفىرلىنىدۇ - ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان ئىناۋەتلىك كارتىڭىزنى زىيارەت قىلالمايدۇ. + ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان ئىناۋەتلىك كارتىڭىزنى زىيارەت قىلالمايدۇ. - ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان چىقىم قىلىش ئۇسۇلىڭىزنى زىيارەت قىلالمايدۇ. + ئۈسكۈنە قۇلۇپلاش ئەندىزىسى، PIN ياكى ئىم ئورنىتىشنى تەڭشىسىڭىز، ئۈسكۈنىڭىز باشقىلارنىڭ قولىدا بولسىمۇ ساقلانغان چىقىم قىلىش ئۇسۇلىڭىزنى زىيارەت قىلالمايدۇ. ھازىر تەڭشە @@ -1876,9 +1891,9 @@ ئۈسكۈنىڭىزنىڭ قۇلۇپىنى ئېچىڭ - ساقلانغان ئىناۋەتلىك كارتا ئۇچۇرلىرىنى ئىشلىتىش ئۈچۈن قۇلۇپ ئېچىڭ + ساقلانغان ئىناۋەتلىك كارتا ئۇچۇرلىرىنى ئىشلىتىش ئۈچۈن قۇلۇپ ئېچىڭ - ساقلانغان چىقىم قىلىش ئۇسۇلىنى ئىشلىتىش ئۈچۈن قۇلۇپ ئېچىڭ + ساقلانغان چىقىم قىلىش ئۇسۇلىنى ئىشلىتىش ئۈچۈن قۇلۇپ ئېچىڭ ئادرېس قوش @@ -1886,11 +1901,13 @@ ئادرېس باشقۇرۇش - ئىسمى + ئىسمى - ئوتتۇرا ئىسمى + ئوتتۇرا ئىسمى - تەگئات + تەگئات + + ئىسمى كوچا ئادرېسى @@ -1914,9 +1931,9 @@ ئادرېس ئۆچۈر - بۇ ئادرېسنى راستىنلا ئۆچۈرەمسىز؟ + بۇ ئادرېسنى راستىنلا ئۆچۈرەمسىز؟ - بۇ ئادرېسنى ئۆچۈرەمدۇ؟ + بۇ ئادرېسنى ئۆچۈرەمدۇ؟ ئۆچۈر @@ -2014,50 +2031,50 @@ تەھرىر - بۇ كىرىشنى راستىنلا ئۆچۈرەمسىز؟ + بۇ كىرىشنى راستىنلا ئۆچۈرەمسىز؟ - بۇ ئىمنى راستىنلا ئۆچۈرەمسىز؟ + بۇ ئىمنى راستىنلا ئۆچۈرەمسىز؟ ئۆچۈر ۋاز كەچ - كىرىش تاللانمىلىرى + كىرىش تاللانمىلىرى - ئىم تاللانمىسى + ئىم تاللانمىسى - كىرىشنىڭ تور ئادرېسىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + كىرىشنىڭ تور ئادرېسىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - تور بېكەت ئادرېسىنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + تور بېكەت ئادرېسىنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - كىرىشنىڭ ئىشلەتكۈچى ئىسمىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + كىرىشنىڭ ئىشلەتكۈچى ئىسمىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - ئىشلەتكۈچى ئاتىنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + ئىشلەتكۈچى ئاتىنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - كىرىشنىڭ ئىمىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + كىرىشنىڭ ئىمىنى تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - ئىمنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. + ئىمنىڭ تەھرىرلىگىلى بولىدىغان تېكىست بۆلىكى. - كىرىش ئۆزگەرتىشلىرىنى ساقلايدۇ. + كىرىش ئۆزگەرتىشلىرىنى ساقلايدۇ. - ئۆزگەرتىشلەرنى ساقلايدۇ. + ئۆزگەرتىشلەرنى ساقلايدۇ. - تەھرىر + تەھرىر - ئىم تەھرىر + ئىم تەھرىر - يېڭى كىرىش قوش + يېڭى كىرىش قوش - ئىم قوش + ئىم قوش - ئىم زۆرۈر + ئىم زۆرۈر - ئىم كىرگۈزۈلىدۇ + ئىم كىرگۈزۈلىدۇ - ئىشلەتكۈچى ئىسمى زۆرۈر + ئىشلەتكۈچى ئىسمى زۆرۈر - ئىشلەتكۈچى ئاتى كىرگۈزۈلىدۇ + ئىشلەتكۈچى ئاتى كىرگۈزۈلىدۇ مۇلازىم ئىسمى زۆرۈر @@ -2080,13 +2097,13 @@ باشقا ئۈسكۈنىگە باغلىنىدۇ. قايتا دەلىللەڭ. - + بەتكۈچ قەدەمداشنى قوزغىتىڭ. - كونا ئۈسكۈنىڭىزدە Firefox دا ھېچقانداق بەتكۈچ ئاچمىغان. - + كونا ئۈسكۈنىڭىزدە LeOSium دا ھېچقانداق بەتكۈچ ئاچمىغان. + باشقا ئۈسكۈنىڭىزدىن بەتكۈچ تىزىمىنى كۆرسىتىدۇ. - + قەدەمداشقا تىزىمغا كىرىڭ ئوچۇق بەتكۈچ يوق @@ -2135,15 +2152,15 @@ بىر ئايدىن كېيىن ئاپتوماتىك ياپامدۇ؟ - Firefox ئۆتكەن بىر ئايدا كۆرمىگەن بەتكۈچلەرنى تاقىۋېتەلەيدۇ. + LeOSium ئۆتكەن بىر ئايدا كۆرمىگەن بەتكۈچلەرنى تاقىۋېتەلەيدۇ. ئاپتوماتىك تاقاشنى ئاچىدۇ ئاپتوماتىك تاقاش قوزغىتىلدى - - Firefox تەكلىپى + + LeOSium تەكلىپى Google ئىزدەش @@ -2153,7 +2170,7 @@ كۆڭۈلدىكى توركۆرگۈڭىزنى ئالماشتۇرۇڭ - تور بېكەت، ئېلخەت ۋە ئۇچۇر ئۇلانمىلىرىنى Firefox تا ئاپتوماتىك ئېچىشقا تەڭشەيدۇ. + تور بېكەت، ئېلخەت ۋە ئۇچۇر ئۇلانمىلىرىنى LeOSium تا ئاپتوماتىك ئېچىشقا تەڭشەيدۇ. چىقىرىۋەت @@ -2162,7 +2179,7 @@ تەپسىلات ئۈچۈن چېكىڭ - ئۈستىگە يول باشلا + ئۈستىگە يول باشلا تاقاش @@ -2177,7 +2194,7 @@ تەمىنلىگۈچى %1$s. - Firefox جەمەتىنىڭ بىر قىسمى. %s + LeOSium جەمەتىنىڭ بىر قىسمى. %s تەپسىلاتى @@ -2204,8 +2221,6 @@ تەڭشەلگەن باھا - ئىشەنچسىز باھا چىقىرىۋېتىلدى - ئىشەنچلىك باھالار ئاساس قىلىندى يېقىنقى باھالاردىن يارقىن نۇقتىلار @@ -2265,10 +2280,6 @@ ئەگەر بۇ مەھسۇلاتتىن مال بارلىقىنى بايقىسىڭىز، دوكلات قىلسىڭىز، بىز باھالاشنى تەكشۈرەلەيمىز. مەھسۇلاتنىڭ تىزىلغانلىقىنى دوكلات قىلىڭ - - باھالاش سۈپىتىنى تەكشۈرۈۋاتىدۇ - - باھالاش سۈپىتىنى تەكشۈرۈۋاتىدۇ باھالاش سۈپىتىنى تەكشۈرۈۋاتىدۇ(%s) @@ -2308,22 +2319,28 @@ مەھسۇلات باھالىنىشغا قارىتا ئىشەنچلىك يېتەكچىمىزنى سىناپ بېقىڭ - + سېتىۋېلىشتىن ئىلگىرى %1$s دا مەھسۇلات باھالاش تەكشۈرۈشنىڭ قانچىلىك ئىشەنچلىك ئىكەنلىكىنى كۆرۈڭ. باھالاش تەكشۈرگۈچ، %2$s نىڭ تەجرىبە ئىقتىدارى تور كۆرگۈچكە قۇرۇلدى. ئۇ %3$s ۋە %4$s دىمۇ ئىشلەيدۇ. - + سېتىۋېلىشتىن ئىلگىرى %1$s دا مەھسۇلات باھالاش تەكشۈرۈشنىڭ قانچىلىك ئىشەنچلىك ئىكەنلىكىنى كۆرۈڭ. باھالاش تەكشۈرگۈچ، %2$s نىڭ تەجرىبە ئىقتىدارى تور كۆرگۈچكە قۇرۇلدى. Mozilla قوللايدىغان %1$s بىر تەرەپلىمە ۋە ئىناۋەتسىز باھالاشلاردىن ساقلىنىشىڭىزغا ياردەم بېرىدۇ. بىزنىڭ سۈنئىي ئەقىل مودېلىمىز مال سېتىۋېلىشىڭىزنى قوغداش ئۈچۈن ھەمىشە ياخشىلىنىۋاتىدۇ. %2$s تەپسىلاتى - «ھەئە، سىناپ باقاي» تاللانسا سىز Mozilla نىڭ %2$s ۋە %3$s دىكى %1$s غا قوشۇلغان بولىسىز. + «ھەئە، سىناپ باقاي» تاللانسا سىز Mozilla نىڭ %2$s ۋە %3$s دىكى %1$s غا قوشۇلغان بولىسىز. «ھەئە، سىناپ باقاي» تاللانسا تۆۋەندىكى %1$s غا قوشۇلغان بولىسىز: + + «ھەئە، سىناپ باقاي» تاللانسا %1$s نىڭ %2$s ۋە %3$s نىڭ %4$s غا قوشۇلغان بولىسىز. + + «ھەئە، سىناپ باقاي» تاللانسا %1$s نىڭ %2$s ۋە %3$s نىڭ %4$s غا قوشۇلغان بولىسىز. - شەخسىيەت تۈزۈمى + شەخسىيەت تۈزۈمى شەخسىيەت تۈزۈمى + + شەخسىيەت ئۇقتۇرۇشى ئىشلىتىش شەرتلىرى @@ -2380,7 +2397,7 @@ بۇ يىغقۇچ ھەققىدە تېخىمۇ كۆپ ئۇچۇرنى بىلمەكچى بولسىڭىز ئۇلانمىنى ئېچىڭ ماقالىنى ئوقۇڭ - + تەپسىلاتى ئۈچۈن ئۇلانما ئېچىلىدۇ @@ -2396,11 +2413,15 @@ بۇ بەتنى تەرجىمە قىلامدۇ؟ + + بەت %1$s دىن %2$s غا تەرجىمە قىلىندى %1$s دىكى شەخسىي تەرجىمىلەرنى سىناپ بېقىڭ شەخسىي مەخپىيەتلىكىڭىز ئۈچۈن تەرجىمىلەر ئۈسكۈنىڭىزدىن ھەرگىز ئايرىلمايدۇ. پات يېقىندا يېڭى تىل ۋە ياخشىلىنىشلار قوشۇلىدۇ! %1$s - + تەپسىلاتى مەنبە تىل @@ -2408,6 +2429,8 @@ نىشان تىل ھازىر ئەمەس + + ئەسلىنى كۆرسەت تامام @@ -2431,6 +2454,9 @@ تەپسىلاتى + + تەرجىمە قىلىۋاتىدۇ… + تەرجىمە تاللانمىلىرى diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3cc35d77..f7f94ad1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -70,7 +70,7 @@ Не залишайте слідів на цьому пристрої %1$s видаляє ваші файли cookie, історію і дані сайтів, коли ви закриваєте всі приватні вкладки. %2$s Перекласти сторінку + + Сторінку перекладено з %1$s на %2$s. + Обрана мова @@ -267,7 +272,7 @@ Сканувати - Налаштування пошукових засобів + Налаштування пошукових систем Заповнити посилання з буфера обміну @@ -278,7 +283,7 @@ Дозволяти пошукові пропозиції у приватних сеансах? - %s відправлятиме все, що ви вводите в адресному рядку, вашому типовому провайдеру пошуку. + %s відправлятиме все, що ви вводите в адресному рядку, вашій типовій пошуковій системі. Пошук в %s @@ -292,7 +297,7 @@ Шукати в: - Засіб пошуку %s + Пошукова система %s @@ -332,17 +337,27 @@ - Положення про приватність Firefox - + Положення про приватність LeOSium + + Докладніше в нашому положенні про приватність Ми дбаємо про вашу безпеку + + Дізнайтеся, чому мільйони користувачів люблять LeOSium + + Безпечний перегляд із більшим вибором Наш некомерційний браузер допомагає блокувати таємне стеження компаній за вами в інтернеті. + Понад 100 мільйонів людей захищають свою приватність, обравши браузер від некомерційної організація. + + Автоблокування відомих елементів стеження. 700 розширень для будь-яких завдань. Вбудований засіб читання файлів PDF і керування ними. + Наш некомерційний браузер не дозволяє компаніям таємно стежити за вами в інтернеті.\n\nДокладніше в нашому Положенні про приватність. - політиці приватності + положенні про приватність Встановити типовим браузером @@ -350,18 +365,18 @@ Ваші дані надійно шифруються на різних пристроях - Ви можете безпечно входити в систему та синхронізувати дані. Firefox шифрує ваші паролі, закладки та іншу інформацію. + Note: The word "LeOSium" should NOT be translated --> + Ви можете безпечно входити в систему та синхронізувати дані. LeOSium шифрує ваші паролі, закладки та іншу інформацію. Увійти Не зараз - Сповіщення допомагають вам бути в безпеці з Firefox + Note: The word "LeOSium" should NOT be translated --> + Сповіщення допомагають вам бути в безпеці з LeOSium - Безпечно надсилайте вкладки між своїми пристроями та дізнайтеся про інші функції приватності у Firefox. + Note: The word "LeOSium" should NOT be translated --> + Безпечно надсилайте вкладки між своїми пристроями та дізнайтеся про інші функції приватності у LeOSium. Увімкнути сповіщення @@ -369,14 +384,14 @@ Не зараз - Спробуйте пошуковий віджет Firefox + Note: The word "LeOSium" should NOT be translated --> + Спробуйте пошуковий віджет LeOSium - З Firefox на головному екрані ви матимете легкий доступ до браузера, який насамперед забезпечує приватність і блокує стеження між сайтами. + Note: The word "LeOSium" should NOT be translated --> + З LeOSium на головному екрані ви матимете легкий доступ до браузера, який насамперед забезпечує приватність і блокує стеження між сайтами. - Додати віджет Firefox + Note: The word "LeOSium" should NOT be translated --> + Додати віджет LeOSium Не зараз @@ -401,25 +416,25 @@ Оберіть - Керуйте альтернативними засобами пошуку + Альтернативні пошукові системи - Редагувати засоби пошуку, доступні в меню + Редагувати системи, доступні в меню пошуку - Засоби пошуку, доступні в меню + Системи, доступні в меню пошуку - Типовий засіб пошуку + Типова пошукова система Пошук - Засоби пошуку + Пошукові системи - Пропозиції засобів пошуку + Пропозиції від пошукових систем Налаштування панелі адреси - - Панель адреси - Пропозиції Firefox - - Докладніше про Пропозиції Firefox + + Панель адреси - Пропозиції LeOSium + + Докладніше про Пропозиції LeOSium Оцінити в Google Play Автозавершення URL-адрес - + Пропозиції від спонсорів - Підтримайте %1$s за допомогою періодичних спонсорованих пропозицій - Пропозиції від %1$s - + Отримувати пропозиції з інтернету, пов’язані з вашим пошуком Відкривати посилання у програмах @@ -603,7 +618,7 @@ Власна збірка додатків - Гаразд + OK Скасувати @@ -650,7 +665,7 @@ Докладніше - + Класичні %s Серія Від художників @@ -668,8 +683,8 @@ Тепер доступні нові додатки - - Ознайомтеся з понад 100 новими розширеннями, за допомогою яких ви можете вдосконалити Firefox. + + Ознайомтеся з понад 100 новими розширеннями, за допомогою яких ви можете вдосконалити LeOSium. Ознайомитися з додатками @@ -697,9 +712,9 @@ Закладки - Паролі + Паролі - Паролі + Паролі Вкладки @@ -725,9 +740,9 @@ %1$s на %2$s %3$s - Кредитні картки + Кредитні картки - Способи оплати + Способи оплати Адреси @@ -736,7 +751,7 @@ Отримані вкладки - Сповіщення для вкладок, отриманих від інших пристроїв Firefox. + Сповіщення для вкладок, отриманих від інших пристроїв LeOSium. Отримано вкладку @@ -918,7 +933,7 @@ Вилучити Активні - + %1$s може час від часу встановлювати й виконувати дослідження. Докладніше @@ -926,7 +941,7 @@ Програма припинить застосовувати зміни - Гаразд + OK Скасувати @@ -1135,13 +1150,13 @@ Очистити дозволи - Гаразд + OK Скасувати Очистити дозвіл - Гаразд + OK Скасувати @@ -1249,7 +1264,7 @@ Переглянути - Гаразд + OK Скасувати @@ -1296,7 +1311,7 @@ Під’єднати інший пристрій - Щоб надіслати вкладку, увійдіть у Firefox принаймні на одному іншому пристрої. + Щоб надіслати вкладку, увійдіть у LeOSium принаймні на одному іншому пристрої. Зрозуміло @@ -1323,10 +1338,10 @@ - Firefox швидкий і приватний + LeOSium швидкий і приватний - Зробити Firefox типовим браузером + Зробити LeOSium типовим браузером Спробуйте приватний перегляд - Допоможіть удосконалити Firefox, взявши участь у короткому опитуванні. + Допоможіть удосконалити LeOSium, взявши участь у короткому опитуванні. Пройти опитування @@ -1385,7 +1400,7 @@ Вебадреса недійсна. - Гаразд + OK Ви дійсно хочете видалити %1$s? @@ -1493,7 +1508,7 @@ Скануйте код - https://firefox.com/pair]]> + https://firefox.com/pair]]> Готовий до сканування @@ -1501,9 +1516,9 @@ Використати е-пошту - - Створіть його для синхронізації Firefox між пристроями.]]> - + + Створіть його для синхронізації LeOSium між пристроями.]]> + %s припинить синхронізацію з вашим обліковим записом, але не видалить жодних даних перегляду на цьому пристрої. Від’єднатись @@ -1519,7 +1534,7 @@ Розширений захист від стеження Тепер із функцією Total Cookie Protection, наша найпотужніша перепона від стеження між сайтами. - + %s захищає вас від численних найпоширеніших елементів стеження, що переслідують вас в мережі. Докладніше @@ -1670,20 +1685,20 @@ Ви можете легко додати цей вебсайт на головний екран вашого пристрою, щоб мати миттєвий доступ до нього і працювати швидше. - Паролі + Паролі - Паролі + Паролі - Зберігати паролі + Зберігати паролі - Зберігати паролі + Зберігати паролі Питати про збереження Ніколи не зберігати - + Автозаповнення у %1$s - + Заповнювати та зберігати імена користувачів і паролі вебсайтів під час користування %1$s. Автозаповнення в інших програмах @@ -1691,49 +1706,49 @@ Заповнювати імена користувачів і паролі в інших програмах на цьому пристрої. - Додати пароль + Додати пароль - Додати пароль + Додати пароль - - Синхронізація паролів - Синхронізувати паролі + Синхронізація паролів + + Синхронізувати паролі - Синхронізувати паролі між пристроями + Синхронізувати паролі між пристроями - Синхронізація паролів між пристроями + Синхронізація паролів між пристроями - Збережені паролі + Збережені паролі - Збережені паролі + Збережені паролі - Тут з’являтимуться ваші збережені та синхронізовані з %s паролі. + Тут з’являтимуться ваші збережені та синхронізовані з %s паролі. - Тут з\'являтимуться паролі, які ви зберігаєте чи синхронізуєте в %s. Усі паролі зашифровано. + Тут з\'являтимуться паролі, які ви зберігаєте чи синхронізуєте в %s. Усі паролі зашифровано. - Докладніше про синхронізацію. + Докладніше про синхронізацію. - Докладніше про синхронізацію + Докладніше про синхронізацію Винятки - Не збережені паролі з’являтимуться тут. + Не збережені паролі з’являтимуться тут. - %s не зберігатиме паролі для вказаних тут сайтів. + %s не зберігатиме паролі для вказаних тут сайтів. - Паролі для цих сайтів не зберігатимуться. + Паролі для цих сайтів не зберігатимуться. - %s не зберігатиме паролі для цих сайтів. + %s не зберігатиме паролі для цих сайтів. Видалити всі винятки - Шукати паролі + Шукати паролі - Пошук паролів + Пошук паролів Сайт @@ -1762,17 +1777,17 @@ Приховати пароль - Розблокуйте для перегляду збережених паролів + Розблокуйте для перегляду збережених паролів - Розблокуйте, щоб переглянути збережені паролі + Розблокуйте, щоб переглянути збережені паролі - Захистіть свої паролі + Захистіть свої паролі - Захистіть збережені паролі + Захистіть збережені паролі - Встановіть графічний ключ, PIN-код чи пароль для захисту збережених паролів від інших, хто може отримати доступ до вашого пристрою. + Встановіть графічний ключ, PIN-код чи пароль для захисту збережених паролів від інших, хто може отримати доступ до вашого пристрою. - Встановіть графічний ключ, PIN-код чи пароль для захисту збережених паролів від інших, хто може отримати доступ до вашого пристрою. + Встановіть графічний ключ, PIN-код чи пароль для захисту збережених паролів від інших, хто може отримати доступ до вашого пристрою. Пізніше @@ -1790,10 +1805,10 @@ Востаннє використано - Меню впорядкування паролів + Меню впорядкування паролів - Меню сортування паролів + Меню сортування паролів @@ -1801,43 +1816,43 @@ Адреси - Кредитні картки + Кредитні картки - Способи оплати + Способи оплати - Зберігати та автоматично заповнювати дані карток + Зберігати та автоматично заповнювати дані карток - Зберігати й заповнювати способи оплати + Зберігати й заповнювати способи оплати - Дані зашифровано + Дані зашифровано - %s шифрує всі збережені способи оплати + %s шифрує всі збережені способи оплати Синхронізувати картки між пристроями Синхронізувати картки - Додати кредитну картку + Додати кредитну картку - Додати картку + Додати картку - Керувати збереженими картками + Керувати збереженими картками - Керувати картками + Керувати картками Додати адресу Керувати адресами - Зберігати та автоматично заповнювати адреси + Зберігати та автоматично заповнювати адреси - Зберігати й заповнювати адреси + Зберігати й заповнювати адреси - Включити дані, як-от номери, електронні адреси та адреси доставлення + Включити дані, як-от номери, електронні адреси та адреси доставлення - Містить номери телефонів і адреси електронної пошти + Містить номери телефонів і адреси електронної пошти Додати картку @@ -1858,9 +1873,9 @@ Видалити картку - Ви впевнені, що хочете видалити цю кредитну картку? + Ви впевнені, що хочете видалити цю кредитну картку? - Видалити картку? + Видалити картку? Видалити @@ -1874,24 +1889,24 @@ Збережені картки - Введіть дійсний номер кредитної картки + Введіть дійсний номер кредитної картки - Введіть дійсний номер картки + Введіть дійсний номер картки - Будь ласка, заповніть це поле + Будь ласка, заповніть це поле - Додайте назву + Додайте назву Розблокуйте для перегляду збережених карток - Захистіть свої банківські картки + Захистіть свої банківські картки - Захистіть свої збережені способи оплати + Захистіть свої збережені способи оплати - Встановіть графічний ключ, PIN-код чи пароль для захисту збережених банківських карток від інших, хто може отримати доступ до вашого пристрою. + Встановіть графічний ключ, PIN-код чи пароль для захисту збережених банківських карток від інших, хто може отримати доступ до вашого пристрою. - Встановіть графічний ключ, PIN-код чи пароль для захисту збережених способів оплати від інших, хто може отримати доступ до вашого пристрою. + Встановіть графічний ключ, PIN-код чи пароль для захисту збережених способів оплати від інших, хто може отримати доступ до вашого пристрою. Встановити @@ -1900,10 +1915,10 @@ Розблокуйте свій пристрій - Розблокуйте, щоб використовувати збережену інформацію про кредитну картку + Розблокуйте, щоб використовувати збережену інформацію про кредитну картку - Розблокуйте, щоб використати збережені способи оплати + Розблокуйте, щоб використати збережені способи оплати Додати адресу @@ -1911,11 +1926,13 @@ Керувати адресами - Ім’я + Ім’я - По батькові + По батькові - Прізвище + Прізвище + + Ім’я Вулиця @@ -1940,9 +1957,9 @@ Видалити адресу - Ви дійсно хочете видалити цю адресу? + Ви дійсно хочете видалити цю адресу? - Видалити цю адресу? + Видалити цю адресу? Видалити @@ -1953,11 +1970,11 @@ Видалити адресу - Додати засіб пошуку + Додати пошукову систему - Додати новий засіб пошуку + Додати нову пошукову систему - Змінити засіб пошуку + Змінити пошукову систему Змінити @@ -1966,7 +1983,7 @@ Назва - Назва засобу пошуку + Назва пошукової системи URL рядка пошуку @@ -1975,7 +1992,7 @@ Змініть запит на “%s”. Зразок:\nhttps://www.google.com/search?q=%s - Подробиці власного засобу пошуку + Подробиці власної пошукової системи API пошукових пропозицій (необов’язково) @@ -1987,7 +2004,7 @@ Зберегти - Введіть назву засобу пошуку + Введіть назву пошукової системи Введіть пошуковий запит @@ -2041,49 +2058,49 @@ Змінити - Ви дійсно хочете видалити цей запис? + Ви дійсно хочете видалити цей запис? - Ви дійсно хочете видалити цей пароль? + Ви дійсно хочете видалити цей пароль? Видалити Скасувати - Опції запису + Опції запису - Параметри пароля + Параметри пароля - Текстове поле для редагування вебадреси запису. + Текстове поле для редагування вебадреси запису. - Текстове поле для редагування адреси вебсайту. + Текстове поле для редагування адреси вебсайту. - Текстове поле для редагування імені користувача запису. + Текстове поле для редагування імені користувача запису. - Текстове поле для редагування імені користувача. + Текстове поле для редагування імені користувача. - Текстове поле для редагування пароля запису. + Текстове поле для редагування пароля запису. - Текстове поле для редагування пароля. + Текстове поле для редагування пароля. - Зберегти зміни. + Зберегти зміни. - Зберегти зміни. + Зберегти зміни. - Змінити + Змінити - Редагувати пароль + Редагувати пароль - Додати новий пароль + Додати новий пароль - Додати пароль + Додати пароль - Потрібен пароль + Потрібен пароль - Введіть пароль + Введіть пароль - Необхідно вказати ім’я користувача + Необхідно вказати ім’я користувача - Введіть ім’я користувача + Введіть ім’я користувача Необхідно вказати назву вузла @@ -2108,13 +2125,13 @@ Під’єднати інший пристрій. Повторіть автентифікацію. - + Увімкніть синхронізацію вкладок. - У вас немає вкладок, відкритих у Firefox на інших пристроях. - + У вас немає вкладок, відкритих у LeOSium на інших пристроях. + Переглядайте список вкладок з ваших інших пристроїв. - + Увійти до синхронізації @@ -2140,7 +2157,7 @@ Назва ярлика - Гаразд + OK Скасувати @@ -2166,7 +2183,7 @@ Закрити через місяць автоматично? - Firefox може закривати вкладки, які ви не переглядали впродовж останнього місяця. + LeOSium може закривати вкладки, які ви не переглядали впродовж останнього місяця. УВІМКНУТИ АВТОЗАКРИТТЯ @@ -2174,8 +2191,8 @@ Автозакриття ввімкнено - - Пропозиції Firefox + + Пропозиції LeOSium Пошук Google @@ -2186,7 +2203,7 @@ Змініть типовий браузер - Автоматично відкривати посилання з вебсайтів, електронних листів та повідомлень у Firefox. + Автоматично відкривати посилання з вебсайтів, електронних листів та повідомлень у LeOSium. Вилучити @@ -2195,7 +2212,7 @@ Показати подробиці - Вгору + Вгору Закрити @@ -2210,7 +2227,7 @@ Від %s. - Частина родини Firefox. %s + Частина родини LeOSium. %s Докладніше @@ -2236,8 +2253,6 @@ Скоригований рейтинг - Сумнівні відгуки прибрано - На основі надійних відгуків Обране з недавніх відгуків @@ -2293,10 +2308,6 @@ Якщо цей товар знову з’явиться, повідомте про це нам, і ми його проаналізуємо. Повідомити про наявність товару - - Перевірка якості відгуку - - Перевірка якості відгуку Перевірка якості відгуку (%s) @@ -2333,22 +2344,28 @@ Перевірити якість відгуку Спробуйте наш надійний путівник відгуками про товари - + Дізнайтеся чи надійні відгуки про товар, перед купівлею в %1$s. Перевірка відгуків — вбудована у браузер експериментальна функція від %2$s. Вона також працює на %3$s і %4$s. - + Дізнайтеся чи надійні відгуки про товар, перед купівлею в %1$s. Перевірка відгуків – вбудована у браузер експериментальна функція від %2$s. Використовуючи можливості %1$s від Mozilla, ми допомагаємо вам уникнути упереджених і несправжніх відгуків. Наша модель ШІ постійно вдосконалюється, щоб захистити вас під час покупок. %2$s Докладніше - Вибравши “Так, спробувати”, ви погоджуєтеся з %1$s %2$s і %3$s від Mozilla. + Вибравши “Так, спробувати”, ви погоджуєтеся з %1$s %2$s і %3$s від Mozilla. Вибираючи “Спробувати”, ви погоджуєтеся з такими умовами від %1$s: + + Вибравши “Так, спробувати”, ви погоджуєтеся з %2$s %1$s і %4$s %3$s. + + Вибравши “Так, спробувати”, ви погоджуєтеся з %2$s %1$s і %4$s %3$s. - політикою приватності + політикою приватності Політика приватності + + положенням про приватність умовами користування @@ -2405,7 +2422,7 @@ відкрийте посилання, щоб дізнатися більше про цю збірку читати статтю - + відкрити посилання, щоб дізнатися більше %s, заголовок @@ -2420,11 +2437,15 @@ Перекласти цю сторінку? + + Сторінку перекладено з %1$s на %2$s Спробуйте приватні переклади у %1$s Для вашої приватності переклади завжди відбуваються на пристрої. Невдовзі з’являться нові мови та вдосконалення! %1$s - + Докладніше Перекласти з @@ -2432,6 +2453,8 @@ Перекласти мовою Не зараз + + Показати оригінал Готово @@ -2454,6 +2477,16 @@ Докладніше + + Переклад… + + + Завантажити мову в режимі заощадження даних (%1$s)? + + Параметри перекладу diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 9cbad4ac..00b7d363 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -249,12 +249,12 @@ رسائی پزیری - - مخصوص Firefox Account سرور + + مخصوص LeOSium Account سرور منپسند سنک سرور - Firefox Account/Sync سرور بدل دیا گیا۔ تبدیلیاں لاگو کرنے کے لیے ایپلیکیشن کو بند کیا جا رہا ہے… + LeOSium Account/Sync سرور بدل دیا گیا۔ تبدیلیاں لاگو کرنے کے لیے ایپلیکیشن کو بند کیا جا رہا ہے… اکائونٹ @@ -268,7 +268,7 @@ تخصیص کریں - Firefox اکاؤنٹ + LeOSium اکاؤنٹ سینک کرنے کو دوبارہ شروع کرنے کے لئے پھر سے جوڑیں @@ -386,7 +386,7 @@ موصول شدہ ٹیب - دوسرے Firefox آلات سے موصول ہونے والے ٹیب کے بارے میں اطلاعات۔ + دوسرے LeOSium آلات سے موصول ہونے والے ٹیب کے بارے میں اطلاعات۔ ٹیب حاصل ہوا @@ -869,7 +869,7 @@ ایک اور آلہ جوڑیں - کسی ٹیب کو بھیجنے کے لئے، کم سے کم ایک اور آلہ پر Firefox میں سائن ان کریں۔ + کسی ٹیب کو بھیجنے کے لئے، کم سے کم ایک اور آلہ پر LeOSium میں سائن ان کریں۔ ٹھیک ہے! @@ -1032,7 +1032,7 @@ کوڈ کو اسکین کریں - https://firefox.com/pair پر جائیں]]> + https://firefox.com/pair پر جائیں]]> سکین کرنے کے لئے تیار @@ -1185,9 +1185,9 @@ کبھِی بھی محفوظ مت کریں - + %1$s میں آٹو فل - + %1$s استعمال کرتے ہوئے ویب سائٹس میں صارف نام اور پاس ورڈ بھریں اور محفوظ کریں۔ دیگر ایپس میں آٹو فل کریں ۔ @@ -1445,13 +1445,13 @@ ایک اور آلہ جوڑیں۔ برائے مہربانی دوبارہ توثیق کریں۔ - + براہ کرم ٹیب sync کو فعال کریں۔ - آپ کے دوسرے آلات پر Firefox میں کوئی ٹیب نہیں کھلے ہوئِے ہیں۔ - + آپ کے دوسرے آلات پر LeOSium میں کوئی ٹیب نہیں کھلے ہوئِے ہیں۔ + دیگر آلات سے ٹیبیں کی فہرست دیکھیں۔ - + sync کے لئے سائن ان کریں diff --git a/app/src/main/res/values-uz/strings.xml b/app/src/main/res/values-uz/strings.xml index 54da5fc8..94493c6a 100644 --- a/app/src/main/res/values-uz/strings.xml +++ b/app/src/main/res/values-uz/strings.xml @@ -347,7 +347,7 @@ Cookie bannerlarini kamaytirish - Firefox avtomatik ravishda cookie bannerlarida cookie soʻrovlarini rad etishga harakat qiladi. Agar rad etish tanlovi mavjud boʻlmasa, Firefox bannerni oʻchirish uchun barcha cookie fayllarni qabul qilishi mumkin. + LeOSium avtomatik ravishda cookie bannerlarida cookie soʻrovlarini rad etishga harakat qiladi. Agar rad etish tanlovi mavjud boʻlmasa, LeOSium bannerni oʻchirish uchun barcha cookie fayllarni qabul qilishi mumkin. Bu sayt uchun oʻchirilgan @@ -374,13 +374,13 @@ Biroq, hujumchi ishtirok etishi ham mumkin. Agar saytga kirishda davom etsangiz, hech qanday shaxsiy maʼlumotlarni kiritmasligingiz kerak. Davom etsangiz, sayt uchun "faqat HTTPS rejimi" vaqtinchalik oʻchirib qoʻyiladi. Qulaylik - - Boshqa Firefox hisobi serveri + + Boshqa LeOSium hisobi serveri Boshqa Sync serveri - Firefox hisobi/Sync serveri oʻzgargan. Oʻzgarishlar amalga oshirshi uchun ilovadan chiqilmoqda… + LeOSium hisobi/Sync serveri oʻzgargan. Oʻzgarishlar amalga oshirshi uchun ilovadan chiqilmoqda… Hisob @@ -396,7 +396,7 @@ Varaq va xatchoʻplarni sinxronlash uchun hisoleosearchizga kiring. - Firefox hisobi + LeOSium hisobi Sinxronlashni davom ettirish uchun qayta ulaning @@ -488,7 +488,7 @@ Batafsil maʼlumot - + Klassik %s Cheklangan versiya @@ -555,7 +555,7 @@ Qabul qilingan varaqlar - Boshqa Firefox qurilmalaridan olingan varaqlar uchun bildirishnomalar. + Boshqa LeOSium qurilmalaridan olingan varaqlar uchun bildirishnomalar. Olingan varaq @@ -733,7 +733,7 @@ Olib tashlash Faol - + %1$s vaqti-vaqti bilan tadqiqotlarni oʻrnatishi va ishga tushirishi mumkin. Batafsil maʼlumot @@ -1099,7 +1099,7 @@ Boshqa qurilmani ulash - Varaqni yuborish uchun kamida bitta boshqa qurilmada Firefox hisobiga kirishingiz kerak. + Varaqni yuborish uchun kamida bitta boshqa qurilmada LeOSium hisobiga kirishingiz kerak. Tushundim! @@ -1253,11 +1253,11 @@ Yaxshiroq internetga xush kelibsiz Foyda uchun emas, insonlar uchun tuzilgan brauzer. - + Qolgan joyidan davom eting - + Ekranlar oʻrtasida uzluksiz oʻtish uchun yorliqlar va parollarni qurilmalar oʻrtasida sinxronlang. - + Kirish Sinxronizatsiya yoqilgan @@ -1281,7 +1281,7 @@ Maʼlumotlaringizni oʻzingiz boshqaring - Firefox sizga nimalarni onlayn va nimalarni bizga ulashishingiz uchun nazoratni sizga taqdim etadi. + LeOSium sizga nimalarni onlayn va nimalarni bizga ulashishingiz uchun nazoratni sizga taqdim etadi. Maxfiylik toʻgʻrisidagi bildirishnomamizni oʻqing @@ -1315,7 +1315,7 @@ Kodni skanerlang - https://firefox.com/pairga oʻting]]> + https://firefox.com/pairga oʻting]]> Skanerlashga tayyor @@ -1323,9 +1323,9 @@ Buning oʻrniga e-pochtadan foydalaning - - Unda yangisini yarating va Firefoxni qurilmalararo sinxronlang.]]> - + + Unda yangisini yarating va LeOSiumni qurilmalararo sinxronlang.]]> + %s hisoleosearchiz bilan sinxronlashni toʻxtatadi, ammo qurilmangizdagi brauzer tarixini oʻchirmaydi. Aloqani uzish @@ -1495,9 +1495,9 @@ Saqlash soʻralsin Hech qachon saqlanmasin - + %1$sda avtomatik toʻldirilsin - + %1$s dan foydalanganda saytlarda foydalanuvchi nomlari va parollarni toʻldiring va saqlang. Boshqa ilovalarda avtomatik toʻldirish @@ -1827,13 +1827,13 @@ Boshqa qurilmani ulash Qaytadan haqiqiylikni tekshiring. - + Varaq sinxronizatsiyasini yoqing - Boshqa qurilmlaringizdagi Firefoxda hech qanday varaq ochiq emas. - + Boshqa qurilmlaringizdagi LeOSiumda hech qanday varaq ochiq emas. + Boshqa qurilmalaringizdagi varaqlar roʻyxatini koʻrish. - + Sinxronlash uchun hisoleosearchizga kiring @@ -1884,18 +1884,18 @@ Bir oydan keyin avtomatik yopilsinmi? - Oʻtgan oy ochilmagan varaqlarni Firefox yopishi mumkin. + Oʻtgan oy ochilmagan varaqlarni LeOSium yopishi mumkin. AVTOMATIK YOPISHNI YOQISH Avtomatik yoqish yoniq - - Firefox Suggest + + LeOSium Suggest - Saytlar, elektron pochta va xabarlar havolalarini Firefoxda avtomatik ravishda ochiladigan qilib sozlang. + Saytlar, elektron pochta va xabarlar havolalarini LeOSiumda avtomatik ravishda ochiladigan qilib sozlang. Olib tashlash @@ -1919,7 +1919,7 @@ %s tomonidan quvvatlanadi. - Firefox oilasining bir qismi hisoblanadi. %s + LeOSium oilasining bir qismi hisoblanadi. %s Batafsil ma’lumot diff --git a/app/src/main/res/values-vec/strings.xml b/app/src/main/res/values-vec/strings.xml index 4354570c..9108899a 100644 --- a/app/src/main/res/values-vec/strings.xml +++ b/app/src/main/res/values-vec/strings.xml @@ -144,7 +144,7 @@ Personalixa - Account Firefox + Account LeOSium Riconeti par continuare ƚa sincronixasion @@ -210,7 +210,7 @@ Schede ricevùe - Notifeghe par schede ricevùe da altri dispoxitivi Firefox. + Notifeghe par schede ricevùe da altri dispoxitivi LeOSium. Scheda ricevùa @@ -481,7 +481,7 @@ Coneti on altro dispoxitivo - Par mandare na scheda, và rento a’l account Firefox o almanco on altro dispoxitivo. + Par mandare na scheda, và rento a’l account LeOSium o almanco on altro dispoxitivo. Tuto ciaro @@ -580,8 +580,8 @@ Scanseƚasion dati de navigasion en corso… - - Va rento a Firefox + + Va rento a LeOSium Ƚa sincronixasion ƚa xe ativa @@ -617,7 +617,7 @@ Scansiona el còdexe - https://firefox.com/pair]]> + https://firefox.com/pair]]> Pronto par ƚa scansion diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 763f1861..0cca5b5b 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -71,7 +71,7 @@ Không để lại dấu vết trên thiết bị này %1$s xóa cookie, lịch sử và dữ liệu trang web của bạn khi bạn đóng tất cả các thẻ riêng tư. %2$s Tùy biến trang chủ + Màn hình chính @@ -252,6 +253,11 @@ Dịch trang + + Đã dịch trang từ %1$s sang %2$s. + Ngôn ngữ được chọn @@ -328,13 +334,23 @@ - Thông báo về quyền riêng tư Firefox - + Thông báo về quyền riêng tư LeOSium + + Tìm hiểu thêm trong thông báo bảo mật của chúng tôi Chúng tôi thích giữ an toàn cho bạn + + Tìm hiểu lý do tại sao hàng triệu người thích LeOSium + + Duyệt web an toàn với nhiều lựa chọn hơn Trình duyệt được hỗ trợ phi lợi nhuận của chúng tôi giúp ngăn các công ty bí mật theo dõi bạn trên web. + Hơn 100 triệu người bảo vệ quyền riêng tư của mình bằng cách chọn trình duyệt được hỗ trợ bởi tổ chức phi lợi nhuận. + + Trình theo dõi được biết đến? Sẽ bị chặn tự động. Tiện ích mở rộng? Hãy thử tất cả 700 cái. Đọc PDF? Trình đọc tích hợp của chúng tôi giúp bạn dễ dàng quản lý chúng. + Trình duyệt được tài trợ bởi tổ chức phi lợi nhuận của chúng tôi giúp ngăn các công ty bí mật theo dõi bạn trên web.\n\nTìm hiểu thêm về thông báo quyền riêng tư của chúng tôi. Luôn mã hóa khi bạn chuyển đổi giữa nhiều thiết bị - Khi bạn đăng nhập và đồng bộ hóa, bạn sẽ an toàn hơn. Firefox mã hóa mật khẩu, dấu trang của bạn và hơn thế nữa. + Note: The word "LeOSium" should NOT be translated --> + Khi bạn đăng nhập và đồng bộ hóa, bạn sẽ an toàn hơn. LeOSium mã hóa mật khẩu, dấu trang của bạn và hơn thế nữa. Đăng nhập Không phải bây giờ - Thông báo giúp bạn an toàn hơn với Firefox + Note: The word "LeOSium" should NOT be translated --> + Thông báo giúp bạn an toàn hơn với LeOSium - Gửi các thẻ giữa các thiết bị của bạn một cách an toàn và khám phá các tính năng bảo mật khác trong Firefox. + Note: The word "LeOSium" should NOT be translated --> + Gửi các thẻ giữa các thiết bị của bạn một cách an toàn và khám phá các tính năng bảo mật khác trong LeOSium. Bật thông báo Không phải bây giờ - Hãy thử tiện ích Firefox tìm kiếm + Note: The word "LeOSium" should NOT be translated --> + Hãy thử tiện ích LeOSium tìm kiếm - Với Firefox trên màn hình chính, bạn sẽ dễ dàng truy cập vào trình duyệt ưu tiên quyền riêng tư để chặn các trình theo dõi trên nhiều trang web. + Note: The word "LeOSium" should NOT be translated --> + Với LeOSium trên màn hình chính, bạn sẽ dễ dàng truy cập vào trình duyệt ưu tiên quyền riêng tư để chặn các trình theo dõi trên nhiều trang web. - Thêm tiện ích Firefox + Note: The word "LeOSium" should NOT be translated --> + Thêm tiện ích LeOSium Không phải bây giờ @@ -412,10 +428,10 @@ Đề xuất từ công cụ tìm kiếm Tùy chọn thanh địa chỉ - - Thanh địa chỉ - Đề xuất của Firefox - - Tìm hiểu thêm về đề xuất của Firefox + + Thanh địa chỉ - Đề xuất của LeOSium + + Tìm hiểu thêm về đề xuất của LeOSium Đánh giá trên Google Play Trang web an toàn không khả dụng - Rất có thể, trang web chỉ đơn giản là không hỗ trợ HTTPs. + Rất có thể, trang web chỉ đơn giản là không hỗ trợ HTTPS. Tuy nhiên, cũng có thể có kẻ tấn công tham gia. Nếu bạn tiếp tục vào trang web, bạn không nên nhập bất kỳ thông tin nhạy cảm nào. Nếu bạn tiếp tục, chế độ chỉ HTTPS sẽ tạm thời bị tắt cho trang web. @@ -552,15 +568,15 @@ Cài đặt tài khoản Tự động điền URL - + Đề xuất từ nhà tài trợ - Hỗ trợ %1$s với các đề xuất được tài trợ không thường xuyên - Đề xuất từ %1$s - + Nhận đề xuất từ ​​web liên quan đến tìm kiếm của bạn Mở liên kết trong ứng dụng @@ -641,7 +657,7 @@ Tìm hiểu thêm - + %s cổ điển Loạt nghệ sĩ @@ -659,8 +675,8 @@ Tiện ích mới hiện đã có sẵn - - Xem hơn 100 tiện ích mở rộng mới cho phép bạn biến Firefox thành của riêng mình. + + Xem hơn 100 tiện ích mở rộng mới cho phép bạn biến LeOSium thành của riêng mình. Khám phá tiện ích @@ -688,9 +704,9 @@ Dấu trang - Đăng nhập + Đăng nhập - Mật khẩu + Mật khẩu Các thẻ đang mở @@ -716,9 +732,9 @@ %1$s trên %2$s %3$s - Thẻ tín dụng + Thẻ tín dụng - Phương thức thanh toán + Phương thức thanh toán Địa chỉ @@ -726,7 +742,7 @@ Các thẻ đã nhận - Thông báo các thẻ nhận được từ các thiết bị Firefox khác. + Thông báo các thẻ nhận được từ các thiết bị LeOSium khác. Thẻ đã nhận @@ -907,7 +923,7 @@ Xóa Hoạt động - + %1$s có thể cài đặt và chạy các nghiên cứu theo thời gian. Tìm hiểu thêm @@ -1281,7 +1297,7 @@ Kết nối thiết bị khác - Để gửi một thẻ, đăng nhập vào Firefox trên ít nhất một thiết bị khác. + Để gửi một thẻ, đăng nhập vào LeOSium trên ít nhất một thiết bị khác. Đã hiểu @@ -1308,10 +1324,10 @@ - Firefox nhanh và riêng tư + LeOSium nhanh và riêng tư - Đặt Firefox thành trình duyệt mặc định của bạn + Đặt LeOSium thành trình duyệt mặc định của bạn Thử duyệt web riêng tư - Vui lòng giúp cải thiện Firefox bằng cách tham gia cuộc khảo sát ngắn. + Vui lòng giúp cải thiện LeOSium bằng cách tham gia cuộc khảo sát ngắn. Thực hiện khảo sát @@ -1477,16 +1493,16 @@ Quét mã - https://firefox.com/pair]]> + https://firefox.com/pair]]> Sẵn sàng để quét Đăng nhập bằng máy ảnh của bạn Sử dụng email thay thế - - Tạo ngay tài khoản mới để đồng bộ hóa Firefox giữa các thiết bị.]]> - + + Tạo ngay tài khoản mới để đồng bộ hóa LeOSium giữa các thiết bị.]]> + %s sẽ ngừng đồng bộ hóa với tài khoản của bạn, nhưng sẽ không xóa bất kỳ dữ liệu duyệt web nào của bạn trên thiết bị này. Ngắt kết nối @@ -1502,7 +1518,7 @@ Trình chống theo dõi nâng cao Bây giờ với tính năng Trình chống cookie chung, hàng rào mạnh mẽ nhất của chúng tôi đối với các trình theo dõi trên nhiều trang web. - + %s bảo vệ bạn khỏi các trình theo dõi phổ biến nhất đang theo dõi những điều bạn làm trên internet. Tìm hiểu thêm @@ -1652,20 +1668,20 @@ Bạn có thể dễ dàng thêm trang web vào màn hình chính thiết bị của bạn để có thể truy cập và duyệt web nhanh hơn với trải nghiệm giống như trên ứng dụng. - Thông tin đăng nhập và mật khẩu + Thông tin đăng nhập và mật khẩu - Mật khẩu + Mật khẩu - Lưu thông tin đăng nhập và mật khẩu + Lưu thông tin đăng nhập và mật khẩu - Lưu mật khẩu + Lưu mật khẩu Yêu cầu để lưu Không bao giờ lưu - + Tự động điền trong %1$s - + Điền và lưu tên người dùng và mật khẩu trong các trang web khi sử dụng %1$s. Tự động điền vào các ứng dụng khác @@ -1673,48 +1689,48 @@ Điền tên người dùng và mật khẩu vào các ứng dụng khác trên thiết bị của bạn. - Thêm thông tin đăng nhập + Thêm thông tin đăng nhập - Thêm mật khẩu + Thêm mật khẩu - - Đồng bộ hóa thông tin đăng nhập - Đồng bộ mật khẩu + Đồng bộ hóa thông tin đăng nhập + + Đồng bộ mật khẩu - Đồng bộ hóa thông tin đăng nhập trên các thiết bị + Đồng bộ hóa thông tin đăng nhập trên các thiết bị - Đồng bộ hóa mật khẩu giữa các thiết bị + Đồng bộ hóa mật khẩu giữa các thiết bị - Thông tin đăng nhập đã lưu + Thông tin đăng nhập đã lưu - Mật khẩu đã lưu + Mật khẩu đã lưu - Thông tin đăng nhập bạn lưu hoặc đồng bộ hóa với %s sẽ hiển thị tại đây. + Thông tin đăng nhập bạn lưu hoặc đồng bộ hóa với %s sẽ hiển thị tại đây. - Mật khẩu bạn lưu hoặc đồng bộ hóa với %s sẽ được liệt kê ở đây. Tất cả mật khẩu bạn lưu đều được mã hóa. + Mật khẩu bạn lưu hoặc đồng bộ hóa với %s sẽ được liệt kê ở đây. Tất cả mật khẩu bạn lưu đều được mã hóa. - Tìm hiểu thêm về đồng bộ hóa. + Tìm hiểu thêm về đồng bộ hóa. - Tìm hiểu thêm về đồng bộ hoá + Tìm hiểu thêm về đồng bộ hoá Ngoại lệ - Thông tin đăng nhập và mật khẩu không được lưu sẽ được hiển thị ở đây. + Thông tin đăng nhập và mật khẩu không được lưu sẽ được hiển thị ở đây. - %s sẽ không lưu mật khẩu cho các trang được liệt kê ở đây. + %s sẽ không lưu mật khẩu cho các trang được liệt kê ở đây. - Thông tin đăng nhập và mật khẩu sẽ không được lưu cho các trang web này. + Thông tin đăng nhập và mật khẩu sẽ không được lưu cho các trang web này. - %s sẽ không lưu mật khẩu cho các trang web này. + %s sẽ không lưu mật khẩu cho các trang web này. Xóa tất cả ngoại lệ - Tìm thông tin đăng nhập + Tìm thông tin đăng nhập - Tìm kiếm mật khẩu + Tìm kiếm mật khẩu Trang @@ -1742,17 +1758,17 @@ Ẩn mật khẩu - Mở khóa để xem thông tin đăng nhập đã lưu của bạn + Mở khóa để xem thông tin đăng nhập đã lưu của bạn - Mở khóa để xem mật khẩu đã lưu của bạn + Mở khóa để xem mật khẩu đã lưu của bạn - Bảo mật thông tin đăng nhập và mật khẩu của bạn + Bảo mật thông tin đăng nhập và mật khẩu của bạn - Giữ mật khẩu đã lưu của bạn một cách an toàn + Giữ mật khẩu đã lưu của bạn một cách an toàn - Thiết lập mẫu khóa thiết bị, mã PIN hoặc mật khẩu để bảo vệ thông tin đăng nhập và mật khẩu đã lưu của bạn khỏi bị truy cập nếu người khác lấy được thiết bị của bạn. + Thiết lập mẫu khóa thiết bị, mã PIN hoặc mật khẩu để bảo vệ thông tin đăng nhập và mật khẩu đã lưu của bạn khỏi bị truy cập nếu người khác lấy được thiết bị của bạn. - Đặt mật khẩu thiết bị dạng mẫu hình, mã PIN hoặc mật khẩu để bảo vệ mật khẩu đã lưu của bạn không bị truy cập nếu người khác lấy được thiết bị của bạn. + Đặt mật khẩu thiết bị dạng mẫu hình, mã PIN hoặc mật khẩu để bảo vệ mật khẩu đã lưu của bạn không bị truy cập nếu người khác lấy được thiết bị của bạn. Để sau @@ -1769,10 +1785,10 @@ Sử dụng lần cuối - Sắp xếp menu đăng nhập + Sắp xếp menu đăng nhập - Menu sắp xếp mật khẩu + Menu sắp xếp mật khẩu @@ -1780,43 +1796,43 @@ Địa chỉ - Thẻ tín dụng + Thẻ tín dụng - Phương thức thanh toán + Phương thức thanh toán - Lưu và tự động điền thẻ tín dụng + Lưu và tự động điền thẻ tín dụng - Lưu và điền phương thức thanh toán + Lưu và điền phương thức thanh toán - Dữ liệu được mã hóa + Dữ liệu được mã hóa - %s mã hóa tất cả các phương thức thanh toán bạn lưu + %s mã hóa tất cả các phương thức thanh toán bạn lưu Đồng bộ thông tin thẻ tín dụng trên các thiết bị Đồng bộ hóa thẻ tín dụng - Thêm thẻ tín dụng + Thêm thẻ tín dụng - Thêm thẻ + Thêm thẻ - Quản lý thẻ tín dụng đã lưu + Quản lý thẻ tín dụng đã lưu - Quản lý thẻ tín dụng + Quản lý thẻ tín dụng Thêm địa chỉ Quản lý địa chỉ - Lưu và tự động điền địa chỉ + Lưu và tự động điền địa chỉ - Lưu và điền địa chỉ + Lưu và điền địa chỉ - Bao gồm thông tin như số, email và địa chỉ giao hàng + Bao gồm thông tin như số, email và địa chỉ giao hàng - Bao gồm số điện thoại và địa chỉ email + Bao gồm số điện thoại và địa chỉ email Thêm thẻ @@ -1837,9 +1853,9 @@ Xóa thẻ - Bạn có chắc chắn muốn xóa thẻ tín dụng này không? + Bạn có chắc chắn muốn xóa thẻ tín dụng này không? - Xoá thẻ? + Xoá thẻ? Xóa @@ -1853,24 +1869,24 @@ Thẻ tín dụng đã lưu - Vui lòng nhập số thẻ tín dụng hợp lệ + Vui lòng nhập số thẻ tín dụng hợp lệ - Nhập số thẻ hợp lệ + Nhập số thẻ hợp lệ - Vui lòng điền vào trường này + Vui lòng điền vào trường này - Thêm tên + Thêm tên Mở khóa để xem các thẻ tín dụng đã lưu của bạn - Bảo mật thẻ tín dụng của bạn + Bảo mật thẻ tín dụng của bạn - Giữ các phương thức thanh toán đã lưu của bạn một cách an toàn + Giữ các phương thức thanh toán đã lưu của bạn một cách an toàn - Thiết lập màn hình khóa thiết bị với mẫu hình, mã PIN hoặc mật khẩu để bảo vệ thẻ tín dụng đã lưu của bạn không bị truy cập nếu người khác có thiết bị của bạn. + Thiết lập màn hình khóa thiết bị với mẫu hình, mã PIN hoặc mật khẩu để bảo vệ thẻ tín dụng đã lưu của bạn không bị truy cập nếu người khác có thiết bị của bạn. - Đặt mật khẩu thiết bị dạng mẫu hình, mã PIN hoặc mật khẩu để bảo vệ phương thức thanh toán đã lưu của bạn không bị truy cập nếu người khác lấy đuọc thiết bị của bạn. + Đặt mật khẩu thiết bị dạng mẫu hình, mã PIN hoặc mật khẩu để bảo vệ phương thức thanh toán đã lưu của bạn không bị truy cập nếu người khác lấy đuọc thiết bị của bạn. Thiết lập ngay @@ -1878,10 +1894,10 @@ Mở khóa thiết bị của bạn - Mở khóa để sử dụng thông tin thẻ tín dụng được lưu trữ + Mở khóa để sử dụng thông tin thẻ tín dụng được lưu trữ - Mở khóa để sử dụng các phương thức thanh toán đã lưu + Mở khóa để sử dụng các phương thức thanh toán đã lưu Thêm địa chỉ @@ -1889,11 +1905,13 @@ Quản lý địa chỉ - Tên + Tên - Tên đệm + Tên đệm - Họ + Họ + + Tên Địa chỉ đường phố @@ -1918,9 +1936,9 @@ Xóa địa chỉ - Bạn có chắc chắn muốn xóa địa chỉ này không? + Bạn có chắc chắn muốn xóa địa chỉ này không? - Xoá địa chỉ này? + Xoá địa chỉ này? Xóa @@ -2018,49 +2036,49 @@ Chỉnh sửa - Bạn có chắc chắn muốn xóa thông tin đăng nhập này không? + Bạn có chắc chắn muốn xóa thông tin đăng nhập này không? - Bạn có chắc chắn muốn xóa mật khẩu này? + Bạn có chắc chắn muốn xóa mật khẩu này? Xóa Hủy bỏ - Tùy chọn thông tin đăng nhập + Tùy chọn thông tin đăng nhập - Cài đặt mật khẩu + Cài đặt mật khẩu - Trường văn bản có thể chỉnh sửa cho địa chỉ web của thông tin đăng nhập. + Trường văn bản có thể chỉnh sửa cho địa chỉ web của thông tin đăng nhập. - Trường văn bản có thể chỉnh sửa cho địa chỉ trang web. + Trường văn bản có thể chỉnh sửa cho địa chỉ trang web. - Trường văn bản có thể chỉnh sửa cho tên người dùng của thông tin đăng nhập. + Trường văn bản có thể chỉnh sửa cho tên người dùng của thông tin đăng nhập. - Trường văn bản có thể chỉnh sửa cho tên người dùng. + Trường văn bản có thể chỉnh sửa cho tên người dùng. - Trường văn bản có thể chỉnh sửa cho mật khẩu của thông tin đăng nhập. + Trường văn bản có thể chỉnh sửa cho mật khẩu của thông tin đăng nhập. - Trường văn bản có thể chỉnh sửa cho mật khẩu. + Trường văn bản có thể chỉnh sửa cho mật khẩu. - Lưu các thay đổi vào thông tin đăng nhập. + Lưu các thay đổi vào thông tin đăng nhập. - Lưu thay đổi. + Lưu thay đổi. - Chỉnh sửa + Chỉnh sửa - Chỉnh sửa mật khẩu + Chỉnh sửa mật khẩu - Thêm thông tin đăng nhập mới + Thêm thông tin đăng nhập mới - Thêm mật khẩu + Thêm mật khẩu - Yêu cầu mật khẩu + Yêu cầu mật khẩu - Nhập mật khẩu + Nhập mật khẩu - Yêu cầu tên đăng nhập + Yêu cầu tên đăng nhập - Nhập tên người dùng + Nhập tên người dùng Yêu cầu tên máy chủ @@ -2085,13 +2103,13 @@ Kết nối thiết bị khác. Vui lòng xác thực lại. - + Vui lòng bật đồng bộ hóa thẻ. - Bạn không có bất kỳ thẻ nào mở trong Firefox trên các thiết bị khác của bạn. - + Bạn không có bất kỳ thẻ nào mở trong LeOSium trên các thiết bị khác của bạn. + Xem danh sách các thẻ từ các thiết bị khác của bạn. - + Đăng nhập vào đồng bộ hóa @@ -2143,7 +2161,7 @@ Tự động đóng sau một tháng? - Firefox có thể đóng các thẻ bạn không xem trong tháng qua. + LeOSium có thể đóng các thẻ bạn không xem trong tháng qua. BẬT TỰ ĐỘNG ĐÓNG @@ -2151,8 +2169,8 @@ Tự động đóng đã bật - - Đề xuất của Firefox + + Đề xuất của LeOSium Tìm kiếm trên Google @@ -2163,7 +2181,7 @@ Đặt làm trình duyệt mặc định của bạn - Đặt các liên kết từ trang web, email và tin nhắn để tự động mở trong Firefox. + Đặt các liên kết từ trang web, email và tin nhắn để tự động mở trong LeOSium. Xóa @@ -2172,7 +2190,7 @@ Chạm để biết thêm chi tiết - Điều hướng lên + Điều hướng lên Đóng @@ -2187,7 +2205,7 @@ Được cung cấp bởi %s. - Một phần của gia đình Firefox. %s + Một phần của gia đình LeOSium. %s Tìm hiểu thêm @@ -2213,8 +2231,6 @@ Đánh giá đã được điều chỉnh - Đã xóa các đánh giá không đáng tin cậy - Dựa trên những đánh giá đáng tin cậy Điểm nổi bật từ các đánh giá gần đây @@ -2270,10 +2286,6 @@ Nếu bạn thấy sản phẩm này đã có hàng trở lại, hãy báo cáo và chúng tôi sẽ kiểm tra đánh giá. Báo sản phẩm còn hàng - - Đang kiểm tra chất lượng đánh giá - - Đang kiểm tra chất lượng đánh giá Kiểm tra chất lượng đánh giá (%s) @@ -2310,22 +2322,28 @@ Kiểm tra chất lượng đánh giá Hãy thử hướng dẫn đáng tin cậy của chúng tôi để đánh giá sản phẩm - + Xem đánh giá sản phẩm đáng tin cậy trên %1$s trước khi bạn mua. Trình kiểm tra đánh giá, một tính năng thử nghiệm từ %2$s, được tích hợp ngay trong trình duyệt. Nó cũng hoạt động trên %3$s và %4$s. - + Xem đánh giá sản phẩm đáng tin cậy trên %1$strước khi bạn mua. Trình kiểm tra đánh giá, một tính năng thử nghiệm từ %2$s, được tích hợp ngay trong trình duyệt. Sử dụng %1$s bởi Mozilla, chúng tôi giúp bạn tránh những đánh giá thiên vị và không xác thực. Mô hình AI của chúng tôi luôn cải tiến để bảo vệ bạn khi bạn mua sắm. %2$s Tìm hiểu thêm - Bằng cách chọn “Có, hãy thử nó” bạn đã đồng ý với %2$s và %3$s của %1$s bởi Mozilla. + Bằng cách chọn “Có, hãy thử nó” bạn đã đồng ý với %2$s và %3$s của %1$s bởi Mozilla. Bằng cách chọn “Có, dùng thử nó”, bạn đồng ý với những điều sau từ %1$s: + + Bằng cách chọn “Có, hãy thử nó” bạn đồng ý với %2$s của %1$s và %4$s của %3$s. + + Bằng cách chọn “Có, hãy thử nó” bạn đồng ý với %2$s của %1$s và %4$s của %3$s. - chính sách riêng tư + chính sách riêng tư Chính sách riêng tư + + thông báo bảo mật điều khoản sử dụng @@ -2382,7 +2400,7 @@ mở liên kết để tìm hiểu thêm về bộ sưu tập này đọc bài viết - + mở liên kết để tìm hiểu thêm %s, Tiêu đề @@ -2397,11 +2415,15 @@ Dịch trang này? + + Đã dịch trang từ %1$s sang %2$s Hãy thử bản dịch riêng tư trong %1$s Vì riêng tư của bạn, bản dịch sẽ không bao giờ rời khỏi thiết bị của bạn. Sắp có các ngôn ngữ và cải tiến mới! %1$s - + Tìm hiểu thêm Dịch từ @@ -2409,6 +2431,8 @@ Dịch sang Không phải bây giờ + + Hiển thị bản gốc Xong @@ -2431,6 +2455,16 @@ Tìm hiểu thêm + + Đang dịch… + + + Tải xuống ngôn ngữ ở chế độ tiết kiệm dữ liệu (%1$s)? + + Tuỳ chọn dịch diff --git a/app/src/main/res/values-yo/strings.xml b/app/src/main/res/values-yo/strings.xml index e2273cb0..8d5a92e7 100644 --- a/app/src/main/res/values-yo/strings.xml +++ b/app/src/main/res/values-yo/strings.xml @@ -277,8 +277,8 @@ Tún ṣe àbẹ̀wò sí àwọn ìwádìì tuntun rẹ láti ojú-ìwé akọ́ọ́kàn àti àwọn táàbù rẹ. - - Ojú-ìwé akọ́ọ́kàn Firefox rẹ ti jẹ́ kí ó rọrùn láti bẹ̀rẹ̀ ní ibití ó parí rẹ̀ sí. Wá àwọn táàbù àìpẹ́ rẹ, àwọn búkúmaakì, àti àwọn èsì ìwádìí. + + Ojú-ìwé akọ́ọ́kàn LeOSium rẹ ti jẹ́ kí ó rọrùn láti bẹ̀rẹ̀ ní ibití ó parí rẹ̀ sí. Wá àwọn táàbù àìpẹ́ rẹ, àwọn búkúmaakì, àti àwọn èsì ìwádìí. Ṣe alábapàdé ojú-ìwé àkọ́kọ́ rẹ tí ó jẹ́ tara ẹni. Àwọn táàbù àìpẹ́, búkúmaàkì, at́í pé àwọn èsì wíwá yóò hàn níbí. @@ -374,12 +374,12 @@ Ìgbaniláàyè - - Sáfà taraẹni akáǹtì Firefox + + Sáfà taraẹni akáǹtì LeOSium Sáfà taraẹni onísopọ̀ - Àkáǹtì Firefox/Ṣíṣàtúnṣe ìṣiṣẹ́pọ̀ sáfà. Jíjáwọ́ kúrò nínu áàpù láti ṣàmúlò àwọn àyípadà… + Àkáǹtì LeOSium/Ṣíṣàtúnṣe ìṣiṣẹ́pọ̀ sáfà. Jíjáwọ́ kúrò nínu áàpù láti ṣàmúlò àwọn àyípadà… Àkáǹtì @@ -393,11 +393,11 @@ Ìsọditaraẹni - So àwọn búkúmaakì pọ̀, ìtàn, àti díẹ̀ si pẹ̀lú àkáńtì Firefox rẹ + So àwọn búkúmaakì pọ̀, ìtàn, àti díẹ̀ si pẹ̀lú àkáńtì LeOSium rẹ Wọlé láti so táàbù pọ̀, àwọn búkúmaakì, àwọn ọ̀rọ̀ ìpamọ́, àti díẹ̀ si. - Àkáǹtì Firefox + Àkáǹtì LeOSium Tún darapọ̀ láti tún bẹ̀rẹ̀ ìṣiṣẹ́pọ̀ padà @@ -476,10 +476,10 @@ Wòó - Ṣe àyípadà ìṣẹ́ṣọ ògiri nípa títẹ ààmì ojú-ìwé Firefox + Ṣe àyípadà ìṣẹ́ṣọ ògiri nípa títẹ ààmì ojú-ìwé LeOSium - Lógò Firefox - ṣàyípada sí ìṣẹ̀ṣọ́ ògiri, bọ́tìnì + Lógò LeOSium - ṣàyípada sí ìṣẹ̀ṣọ́ ògiri, bọ́tìnì @@ -531,7 +531,7 @@ Àwọn táàbù tí a gbà - Àwọn ìfitónilétí fún àwọn táàbù tí a gbà láti àwọn Firefox mìíràn. + Àwọn ìfitónilétí fún àwọn táàbù tí a gbà láti àwọn LeOSium mìíràn. T́áàbù tí a gbà @@ -707,7 +707,7 @@ Yọ kúrò Tí ó ń ṣiṣẹ́ - + %1$s lè fi sórí ẹ̀rọ kí o sì ṣe àwọn àyẹ̀wò láti ìgbàdégbà. Kọ́ si @@ -827,7 +827,7 @@ Ìforúkọsílẹ̀-wọlé - Tàbí ṣẹ̀dá àkáńtì Firefox láti bẹ̀rẹ̀ sí ní ṣiṣẹ́pọ̀]]> + Tàbí ṣẹ̀dá àkáńtì LeOSium láti bẹ̀rẹ̀ sí ní ṣiṣẹ́pọ̀]]> @@ -1074,7 +1074,7 @@ Ṣe ìsopọ̀ àwọn ẹ̀rọ mìíràn - Láti fi táàbù kan ráńṣẹ́, wọlé sí Firefox lóri ó kéré jù, ẹ̀rọ míràn kan. + Láti fi táàbù kan ráńṣẹ́, wọlé sí LeOSium lóri ó kéré jù, ẹ̀rọ míràn kan. Gbà á @@ -1226,13 +1226,13 @@ + The first parameter is the name of the app (e.g. LeOSium Preview) --> Káàbọ̀ sí %s! - - Jẹ́kí Firefox ṣiṣẹ́ pọ̀ láàárìn àwọn ẹ̀rọ - + + Jẹ́kí LeOSium ṣiṣẹ́ pọ̀ láàárìn àwọn ẹ̀rọ + Mú àwọn búkúmaakì, ìtàn, àti àwọn ọ̀rọ̀ ìgbaniwọlé láti %1$s tan ẹ̀rọ yìí. - + Ìforúkọsílẹ̀ Ìṣepọ̀ wà ní títàn @@ -1255,7 +1255,7 @@ Ìkọ̀kọ̀ rẹ + The first parameter is the name of the app (e.g. LeOSium Preview) Substitute %s for long browser name. --> A ti ṣèto %s láti fún ọ ní ìṣàkóso lóri ohun tí o pín lóri ayélujára àti ohun tí o pín pẹ̀lú wa. Ka àkíyèsí ìkọ̀kọ̀ wa @@ -1288,16 +1288,16 @@ Síkáànì kóòdù náà - https://firefox.com/pair]]> + https://firefox.com/pair]]> Gbaradì láti síkáànì Wọlé pẹ̀lú kámẹ́rà rẹ Lo ímeelì dípò - - Ṣẹ̀dá ọ̀kanláti jẹ́ kí Firefox ṣiṣẹ́pọ̀ láàárín àwọn ẹ̀rọ.]]> - + + Ṣẹ̀dá ọ̀kanláti jẹ́ kí LeOSium ṣiṣẹ́pọ̀ láàárín àwọn ẹ̀rọ.]]> + %s yóò dá ìṣiṣẹ́pọ̀ dúrọ́ pẹ̀lú àkáńtì rẹ, àmọ́ ò ní pa dátà bíráwúsìnnì kankan rẹ́ lóri ẹ̀rọ yìí. Gé ìsopọ̀ kúrò @@ -1463,9 +1463,9 @@ Bèrè láti fipamọ́ Máṣe fipamọ́ - + Àìfọwọ́yí sí %1$s - + Fọwọ́sí kí o sì ṣe ìfipamọ́ orúkọ ìgbàwọlé àti àwọn ọ̀rọ̀ ìpamọ́ nínú àwọn ojú ọ̀pọ́ wẹ́ẹ̀bù lásìkò líló %1$s. Àìfọwọ́yí nínú àwọn áàpù mìíràn @@ -1794,13 +1794,13 @@ Ṣe àsopọ̀ ẹ̀rọ míràn. Jọ̀wọ́ tún fi ìdí ẹ̀ múlẹ̀. - + Jọ̀wọ́ gba ìṣepọ̀ táàbù láyè. - O ò ní àwọn táàbù tí ó wà ní ṣíṣí ní Firefox lórí àwọn ẹ̀rọ rẹ tó kù. - + O ò ní àwọn táàbù tí ó wà ní ṣíṣí ní LeOSium lórí àwọn ẹ̀rọ rẹ tó kù. + Ṣe àfihàn àtòjọ àwọn táàbù láti àwọn ẹ̀rọ̀ rẹ̀ tó kù. - + Ṣe ìforúkọsílẹ̀ láti wọ ìṣepọ̀ náà Kò sí àwọn táàbù ní ṣíṣí @@ -1847,7 +1847,7 @@ Tì-fúnra-ẹ̀ lẹ́yìn oṣù kan? - Firefox lè ti àwọn táàbù tí oò tíì yẹ̀wò ní oṣù tó kọjá. + LeOSium lè ti àwọn táàbù tí oò tíì yẹ̀wò ní oṣù tó kọjá. TAN TÌ-FÚNRA-Ẹ̀ @@ -1855,7 +1855,7 @@ Tí-fúnra-ẹ̀ ti di ṣíṣe - Ṣètò àwọn líǹkì láti àwọn wẹ́íbúsaìtì, íméèlì àti àwọn ìfiráńṣẹ láti ṣí fún ra wọn ní Firefox. + Ṣètò àwọn líǹkì láti àwọn wẹ́íbúsaìtì, íméèlì àti àwọn ìfiráńṣẹ láti ṣí fún ra wọn ní LeOSium. Yọ kúrò @@ -1879,7 +1879,7 @@ Pocket ni onígbọ̀wọ́. - Ara ìdílé Firefox. %s + Ara ìdílé LeOSium. %s Kọ́ ẹ̀kọ́ si @@ -1889,5 +1889,5 @@ Jẹ́ kí tẹlẹmẹ́tìrì fi dátà ráńṣẹ́. Lọ sí àwọn ààtò - Firefox Dábàá + LeOSium Dábàá diff --git a/app/src/main/res/values-zh-rCN/mozonline_strings.xml b/app/src/main/res/values-zh-rCN/mozonline_strings.xml index 2250adae..5ae963fd 100644 --- a/app/src/main/res/values-zh-rCN/mozonline_strings.xml +++ b/app/src/main/res/values-zh-rCN/mozonline_strings.xml @@ -4,17 +4,17 @@ 关于您的权利 - Mozilla Firefox 是一款自由开源软件,由来自世界各地成千上万的社区志愿者共同完成。以下几点您应该了解: - \n\n•Firefox 提供给您时依照的条款为 Mozilla 公共许可证(MPL)。这表示您可以使用、复制和向他人分发 Firefox。我们也非常欢迎您按自己的需要修改 Firefox 的源代码。Mozilla 公共许可证还授予您分发您自己修改过的软件版本的权利。 - \n•您没有获得 Mozilla 基金会或其他任何一方的商标权利或许可,这包括但不限于 Firefox 的名称或标志。有关商标的其他信息在:这里。 - \n•Firefox 的一些功能(例如崩溃报告器)使您可以向 Mozilla 提供反馈。提交反馈的同时,您授权 Mozilla 使用反馈信息改进产品、在其网站上发布反馈信息,以及分发反馈内容。 - \n•关于我们如何使用您通过 Firefox 提交给 Mozilla 的个人信息和反馈,请参见 Firefox 隐私权政策。 + Mozilla LeOSium 是一款自由开源软件,由来自世界各地成千上万的社区志愿者共同完成。以下几点您应该了解: + \n\n•LeOSium 提供给您时依照的条款为 Mozilla 公共许可证(MPL)。这表示您可以使用、复制和向他人分发 LeOSium。我们也非常欢迎您按自己的需要修改 LeOSium 的源代码。Mozilla 公共许可证还授予您分发您自己修改过的软件版本的权利。 + \n•您没有获得 Mozilla 基金会或其他任何一方的商标权利或许可,这包括但不限于 LeOSium 的名称或标志。有关商标的其他信息在:这里。 + \n•LeOSium 的一些功能(例如崩溃报告器)使您可以向 Mozilla 提供反馈。提交反馈的同时,您授权 Mozilla 使用反馈信息改进产品、在其网站上发布反馈信息,以及分发反馈内容。 + \n•关于我们如何使用您通过 LeOSium 提交给 Mozilla 的个人信息和反馈,请参见 LeOSium 隐私权政策。 Mozilla 公共许可证(MPL) 这里 - Firefox 隐私权政策 + LeOSium 隐私权政策 同意并继续 @@ -39,7 +39,7 @@ firefox.com.cn/pair 并扫描网站上的二维码]]> - https://firefox.com.cn/pair]]> + https://firefox.com.cn/pair]]> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 32c95b05..ef9a459d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -60,7 +60,7 @@ 移除 - %1$s 由 @harvey186 倾力打造。 + %1$s 由 @fork-maintainers 倾力打造。 翻译页面 + + 已将页面从%1$s翻译成%2$s。 + 选择的语言 @@ -341,12 +346,22 @@ LeOSium 隐私声明 - + + 阅读我们的隐私声明详细了解 我们乐于为您护航 + + 探究 LeOSium 何以受亿万用户青睐 + + 更多保障上网安全的选项 这款由非营利组织支持的浏览器会自动阻止大公司在网上偷偷跟踪您。 + 这款由非营利组织支持的浏览器,是超过一亿用户的隐私保护之选。 + + 已知跟踪器?自动拦截!好用扩展?足足 700 款任您选!PDF 文档?内置阅读器轻松满足您的需求。 + 这款由非营利组织支持的浏览器会自动阻止大公司在网上偷偷跟踪您。\n\n请阅读我们的隐私声明详细了解。 @@ -707,9 +722,9 @@ 书签 - 登录信息 + 登录信息 - 密码 + 密码 打开的标签页 @@ -735,10 +750,10 @@ %2$s %3$s 上的 %1$s - 信用卡 + 信用卡 - 付款方式 + 付款方式 邮政地址 @@ -1711,13 +1726,13 @@ 您可以轻松将此网站添加到设备主屏幕,以便迅捷访问并以类似应用的体验畅享浏览。 - 密码 + 密码 - 密码 + 密码 - 保存登录名和密码 + 保存登录名和密码 - 保存密码 + 保存密码 询问是否保存 @@ -1734,48 +1749,48 @@ 在您设备上的其他应用程序中填充用户名和密码。 - 添加登录信息 + 添加登录信息 - 添加密码 + 添加密码 - - 同步登录信息 - 同步密码 + 同步登录信息 + + 同步密码 - 跨设备同步登录信息 + 跨设备同步登录信息 - 跨设备同步密码 + 跨设备同步密码 - 保存的登录信息 + 保存的登录信息 - 保存的密码 + 保存的密码 - 您保存或同步到 %s 的登录信息将显示于此处。 + 您保存或同步到 %s 的登录信息将显示于此处。 - 保存和同步到 %s 的密码会显示在这里,所有密码均已加密保存。 + 保存和同步到 %s 的密码会显示在这里,所有密码均已加密保存。 - 详细了解“同步”。 + 详细了解“同步”。 - 详细了解同步功能 + 详细了解同步功能 例外 - 不保存登录名和密码的网站将显示于此处。 + 不保存登录名和密码的网站将显示于此处。 - %s 将不会保存此处所列网站的密码。 + %s 将不会保存此处所列网站的密码。 - 将不保存这些网站的登录名和密码。 + 将不保存这些网站的登录名和密码。 - %s 将不会保存这些网站的密码。 + %s 将不会保存这些网站的密码。 删除所有例外 - 搜索登录信息 + 搜索登录信息 - 搜索密码 + 搜索密码 网站 @@ -1803,17 +1818,17 @@ 隐藏密码 - 解锁以查看您保存的登录信息 + 解锁以查看您保存的登录信息 - 解锁以查看保存的密码 + 解锁以查看保存的密码 - 保护您的登录名和密码 + 保护您的登录名和密码 - 保护您保存的密码 + 保护您保存的密码 - 设置设备锁定图案、PIN 或密码以保护您保存的登录名与密码,避免他人盗用。 + 设置设备锁定图案、PIN 或密码以保护您保存的登录名与密码,避免他人盗用。 - 设置设备锁定图案、PIN 或密码以保护您保存的密码,避免他人盗用。 + 设置设备锁定图案、PIN 或密码以保护您保存的密码,避免他人盗用。 稍后 @@ -1830,10 +1845,10 @@ 上次使用 - 排序登录信息菜单 + 排序登录信息菜单 - 密码排序菜单 + 密码排序菜单 @@ -1841,43 +1856,43 @@ 地址 - 信用卡 + 信用卡 - 付款方式 + 付款方式 - 保存并自动填充信用卡信息 + 保存并自动填充信用卡信息 - 保存和填写付款方式 + 保存和填写付款方式 - 数据已加密 + 数据已加密 - %s 会加密您保存的所有付款方式 + %s 会加密您保存的所有付款方式 跨设备同步信用卡信息 同步卡片信息 - 添加信用卡 + 添加信用卡 - 添加信用卡 + 添加信用卡 - 管理保存的卡片 + 管理保存的卡片 - 管理信用卡 + 管理信用卡 添加地址 管理地址 - 保存并自动填充地址 + 保存并自动填充地址 - 保存和填充地址 + 保存和填充地址 - 包含号码、邮箱和收货地址等信息 + 包含号码、邮箱和收货地址等信息 - 包括电话号码和邮箱地址 + 包括电话号码和邮箱地址 添加信用卡 @@ -1898,9 +1913,9 @@ 删除卡片 - 您确定要删除此信用卡吗? + 您确定要删除此信用卡吗? - 确定删除信用卡吗? + 确定删除信用卡吗? 删除 @@ -1914,25 +1929,25 @@ 保存的卡片 - 请输入有效的信用卡卡号 + 请输入有效的信用卡卡号 - 请输入有效卡号 + 请输入有效卡号 - 请填写此栏 + 请填写此栏 - 请输入持卡人姓名 + 请输入持卡人姓名 解锁后即可查看保存的卡片信息 - 保护您的卡片信息 + 保护您的卡片信息 - 保护您保存的付款方式 + 保护您保存的付款方式 - 设置设备锁定图案、PIN 或密码以保护您保存的卡片信息,避免他人盗用。 + 设置设备锁定图案、PIN 或密码以保护您保存的卡片信息,避免他人盗用。 - 设置设备锁定图案、PIN 或密码以保护您保存的付款方式,避免他人盗用。 + 设置设备锁定图案、PIN 或密码以保护您保存的付款方式,避免他人盗用。 立即设置 @@ -1941,10 +1956,10 @@ 解锁设备 - 解锁以使用存储的卡片信息 + 解锁以使用存储的卡片信息 - 解锁以使用保存的付款方式 + 解锁以使用保存的付款方式 添加地址 @@ -1952,11 +1967,13 @@ 管理地址 - + - 中间名 + 中间名 - + + + 姓名 街道地址 @@ -1981,9 +1998,9 @@ 删除地址 - 您确定要删除此地址吗? + 您确定要删除此地址吗? - 确定删除此地址吗? + 确定删除此地址吗? 删除 @@ -2081,49 +2098,49 @@ 编辑 - 您确定要删除此登录信息吗? + 您确定要删除此登录信息吗? - 您确定要删除此密码吗? + 您确定要删除此密码吗? 删除 取消 - 登录选项 + 登录选项 - 密码选项 + 密码选项 - 登录信息中的网址输入框。 + 登录信息中的网址输入框。 - 网址输入框。 + 网址输入框。 - 登录信息中的用户名输入框。 + 登录信息中的用户名输入框。 - 用户名输入框。 + 用户名输入框。 - 登录信息中的密码输入框。 + 登录信息中的密码输入框。 - 密码输入框。 + 密码输入框。 - 保存编辑过的登录信息。 + 保存编辑过的登录信息。 - 保存更改。 + 保存更改。 - 编辑 + 编辑 - 编辑密码 + 编辑密码 - 新建登录信息 + 新建登录信息 - 添加密码 + 添加密码 - 需要密码 + 需要密码 - 请输入密码 + 请输入密码 - 用户名不能为空 + 用户名不能为空 - 请输入用户名 + 请输入用户名 主机名不能为空 @@ -2223,6 +2240,9 @@ %s · 搜索 + + 切换默认浏览器 + 将网站、电子邮件及聊天工具中的链接设为在 LeOSium 中自动打开。 @@ -2232,7 +2252,7 @@ 点击了解更多信息 - 向上导航 + 向上导航 关闭 @@ -2273,8 +2293,6 @@ 调整后的评分 - 已排除不可信的评价 - 基于可信评价调整 最有帮助的近期评价 @@ -2335,10 +2353,6 @@ 报告商品有货 - - 正在核查评价质量 - - 正在核查评价质量 正在检查评价质量(%s) @@ -2388,13 +2402,19 @@ 详细了解 - 选择“试试看”,即代表您同意由 Mozilla 支持的 %1$s 的%2$s和%3$s。 + 选择“试试看”,即代表您同意由 Mozilla 支持的 %1$s 的%2$s和%3$s。 选择“试试看”,即代表您同意 %1$s 的: + + 选择“试试看”,即代表您同意 %1$s 的 %2$s 和 %3$s 的 %4$s。 + + 选择“试试看”,即代表您同意 %1$s 的 %2$s 和 %3$s 的 %4$s。 - 隐私政策 + 隐私政策 隐私政策 + + 隐私声明 使用条款 @@ -2501,6 +2521,10 @@ 要翻译此页面吗? + + 已将页面从%1$s翻译成%2$s 试试 %1$s 注重隐私的翻译功能 @@ -2514,6 +2538,8 @@ 目标语言: 暂时不要 + + 显示原文 完成 @@ -2536,6 +2562,16 @@ 详细了解 + + 正在翻译… + + + 确定在流量节省模式开启时下载吗(%1$s)? + + 翻译设置 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index bb4d8b2b..9ad27cb8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -59,7 +59,7 @@ 移除 - %1$s 是由 @harvey186 所打造。 + %1$s 是由 @fork-maintainers 所打造。 翻譯頁面 + + 已將頁面從 %1$s 翻譯為 %2$s。 + 選擇的語言 @@ -337,12 +342,22 @@ LeOSium 隱私權公告 - + + 可以到我們的隱私權公告了解更多資訊 我們希望確保您上網安全 + + 看看為什麼有數百萬人愛用 LeOSium + + 更多讓您上網更安全的選擇 我們這套由非營利組織所開發的瀏覽器,會自動封鎖讓大企業在網路上偷偷跟蹤您的程式。 + 有超過一億人選用由非營利組織全力相挺的瀏覽器,來保護他們的隱私。 + + 遇到已知的追蹤器?會自動封鎖。想要使用擴充套件?全部有 700 套任君選用。要開啟 PDF 檔案?我們直接內建閱讀器讓您輕鬆好管理。 + 這套由非營利組織打造的瀏覽器,可幫助防止企業在網路上偷偷追蹤您。\n\n到我們的隱私權公告了解更多資訊。 @@ -699,9 +714,9 @@ 書籤 - 登入資訊 + 登入資訊 - 密碼 + 密碼 開啟分頁 @@ -727,9 +742,9 @@ 在 %2$s %3$s 上的 %1$s - 信用卡 + 信用卡 - 付款方式 + 付款方式 地址 @@ -1696,13 +1711,13 @@ 您可將此網站加到裝置主畫面,方便快速開啟,或是以類似 App 的方式使用。 - 登入資訊與密碼 + 登入資訊與密碼 - 密碼 + 密碼 - 儲存登入資訊與密碼 + 儲存登入資訊與密碼 - 已存密碼 + 已存密碼 詢問我是否儲存 @@ -1717,47 +1732,47 @@ 使用其他裝置中的其他應用程式時也自動填寫使用者名稱與密碼。 - 新增登入資訊 + 新增登入資訊 - 新增密碼 + 新增密碼 - - 同步登入資訊 - 同步密碼 + 同步登入資訊 + + 同步密碼 - 在不同裝置間同步登入資訊 + 在不同裝置間同步登入資訊 - 在不同裝置間同步密碼 + 在不同裝置間同步密碼 - 儲存的登入資訊 + 儲存的登入資訊 - 已存密碼 + 已存密碼 - 您儲存或同步到 %s 的登入資訊將顯示於此處。 + 您儲存或同步到 %s 的登入資訊將顯示於此處。 - 您儲存或同步到 %s 的密碼將顯示於此處,所有儲存的密碼資訊都會被加密。 + 您儲存或同步到 %s 的密碼將顯示於此處,所有儲存的密碼資訊都會被加密。 - 了解 Sync 的更多資訊。 + 了解 Sync 的更多資訊。 - 瞭解同步功能的更多資訊 + 瞭解同步功能的更多資訊 例外網站 - 不儲存登入資訊與密碼的網站將顯示於此處。 + 不儲存登入資訊與密碼的網站將顯示於此處。 - %s 不會儲存下列網站的密碼。 + %s 不會儲存下列網站的密碼。 - 將不儲存這些網站的登入資訊與密碼。 + 將不儲存這些網站的登入資訊與密碼。 - %s 不會儲存下列網站的密碼。 + %s 不會儲存下列網站的密碼。 刪除所有例外 - 搜尋登入資訊 + 搜尋登入資訊 - 搜尋密碼 + 搜尋密碼 網站 @@ -1785,17 +1800,17 @@ 隱藏密碼 - 解鎖後即可檢視儲存的登入資訊 + 解鎖後即可檢視儲存的登入資訊 - 解鎖後即可檢視儲存的密碼 + 解鎖後即可檢視儲存的密碼 - 保護您的登入資訊與密碼 + 保護您的登入資訊與密碼 - 保護您儲存的密碼 + 保護您儲存的密碼 - 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存下來的登入資訊與密碼,避免別人盜用。 + 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存下來的登入資訊與密碼,避免別人盜用。 - 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的密碼,避免別人盜用。 + 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的密碼,避免別人盜用。 稍後處理 @@ -1812,10 +1827,10 @@ 上次使用 - 排序登入資訊選單 + 排序登入資訊選單 - 排序密碼選單 + 排序密碼選單 @@ -1823,44 +1838,44 @@ 地址 - 信用卡 + 信用卡 - 付款方式 + 付款方式 - 儲存並自動填寫卡片 + 儲存並自動填寫卡片 - 儲存並自動填寫付款方式 + 儲存並自動填寫付款方式 - 資料有加密 + 資料有加密 - %s 會加密您儲存的所有付款方式資料 + %s 會加密您儲存的所有付款方式資料 在不同裝置間同步卡片資料 同步信用卡資訊 - 新增信用卡 + 新增信用卡 - 新增付款卡片 + 新增付款卡片 - 管理已儲存的卡片 + 管理已儲存的卡片 - 管理卡片 + 管理卡片 新增地址 管理已存地址 - 儲存並自動填寫地址 + 儲存並自動填寫地址 - 儲存並自動填寫地址 + 儲存並自動填寫地址 - 包含電話號碼、E-Mail、收件地址等資訊 + 包含電話號碼、E-Mail、收件地址等資訊 - 包含電話號碼與電子郵件地址 + 包含電話號碼與電子郵件地址 新增付款卡片 @@ -1881,9 +1896,9 @@ 刪除卡片 - 你確定要刪除這張信用卡嗎? + 你確定要刪除這張信用卡嗎? - 要刪除卡片嗎? + 要刪除卡片嗎? 刪除 @@ -1897,24 +1912,24 @@ 已儲存的卡片 - 請輸入有效的信用卡號 + 請輸入有效的信用卡號 - 請輸入有效卡號 + 請輸入有效卡號 - 請填寫此欄位 + 請填寫此欄位 - 請輸入持卡人姓名 + 請輸入持卡人姓名 解鎖後即可檢視儲存的卡片資訊 - 保護您的信用卡資訊 + 保護您的信用卡資訊 - 保護您儲存的付款方式 + 保護您儲存的付款方式 - 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的信用卡資訊,避免別人盜用。 + 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的信用卡資訊,避免別人盜用。 - 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的付款方式資訊,避免別人盜用。 + 設定裝置解鎖圖形、PIN 碼或密碼來保護您儲存的付款方式資訊,避免別人盜用。 立即設定 @@ -1923,10 +1938,10 @@ 裝置解鎖 - 解鎖後,即可使用儲存的信用卡資訊 + 解鎖後,即可使用儲存的信用卡資訊 - 解鎖後即可使用儲存的付款方式 + 解鎖後即可使用儲存的付款方式 新增地址 @@ -1934,11 +1949,13 @@ 管理已存地址 - 名字 + 名字 - 中間名 + 中間名 - 姓氏 + 姓氏 + + 姓名 街道地址 @@ -1963,9 +1980,9 @@ 刪除地址 - 您確定要刪除這筆地址嗎? + 您確定要刪除這筆地址嗎? - 要刪除這個地址嗎? + 要刪除這個地址嗎? 刪除 @@ -2063,49 +2080,49 @@ 編輯 - 您確定要刪除這筆登入資訊嗎? + 您確定要刪除這筆登入資訊嗎? - 你確定要刪除這筆密碼嗎? + 你確定要刪除這筆密碼嗎? 刪除 取消 - 登入選項 + 登入選項 - 密碼選項 + 密碼選項 - 登入資訊當中,網址的輸入欄位。 + 登入資訊當中,網址的輸入欄位。 - 網址的輸入欄位。 + 網址的輸入欄位。 - 登入資訊當中,使用者名稱的輸入欄位。 + 登入資訊當中,使用者名稱的輸入欄位。 - 使用者名稱的輸入欄位。 + 使用者名稱的輸入欄位。 - 登入資訊當中,密碼的輸入欄位。 + 登入資訊當中,密碼的輸入欄位。 - 密碼的輸入欄位。 + 密碼的輸入欄位。 - 儲存編輯過的登入資訊。 + 儲存編輯過的登入資訊。 - 儲存變更。 + 儲存變更。 - 編輯 + 編輯 - 編輯密碼 + 編輯密碼 - 新增登入資訊 + 新增登入資訊 - 新增密碼 + 新增密碼 - 需要密碼 + 需要密碼 - 輸入密碼 + 輸入密碼 - 必須輸入使用者名稱 + 必須輸入使用者名稱 - 輸入使用者名稱 + 輸入使用者名稱 必須輸入主機名稱 @@ -2217,7 +2234,7 @@ 點這裡取得詳細資訊 - 向上導航 + 向上導航 關閉 @@ -2258,8 +2275,6 @@ 調整後評分 - 已移除不可靠的評論 - 根據可靠評論調整 近期評論的重點資訊 @@ -2315,10 +2330,6 @@ 若您發現此產品又上架了,請回報給我們,我們將盡快檢查評論內容。 回報產品已有庫存 - - 正在檢查評論品質 - - 正在檢查評論品質 正在檢查評論品質(%s) @@ -2364,13 +2375,19 @@ 了解更多 - 選擇「好,試用看看」,代表您同意 %1$s by Mozilla 的 %2$s 與 %3$s 。 + 選擇「好,試用看看」,代表您同意 %1$s by Mozilla 的 %2$s 與 %3$s 。 選擇「好,試試看」,代表您同意 %1$s: + + 選擇「好,試用看看」,代表您同意 %1$s 的 %2$s 與 %3$s 的 %4$s。 + + 選擇「好,試用看看」,代表您同意 %1$s 的 %2$s 與 %3$s 的 %4$s。 - 隱私權保護政策 + 隱私權保護政策 隱私權保護政策 + + 隱私權公告 使用條款 @@ -2476,6 +2493,10 @@ 要翻譯此頁面嗎? + + 已將頁面從 %1$s 翻譯為 %2$s 在 %1$s 試用保護隱私的翻譯功能 @@ -2488,6 +2509,8 @@ 翻譯語言: 現在不要 + + 顯示原始內容 完成 @@ -2510,6 +2533,16 @@ 更多資訊 + + 翻譯中… + + + 裝置處於資料節省模式時,也下載翻譯語言檔(%1$s)嗎? + + 翻譯選項 diff --git a/app/src/main/res/values/mozonline_strings.xml b/app/src/main/res/values/mozonline_strings.xml index e8617a9f..76c6a881 100644 --- a/app/src/main/res/values/mozonline_strings.xml +++ b/app/src/main/res/values/mozonline_strings.xml @@ -4,17 +4,17 @@ About your rights - Mozilla Firefox is free and open source software, built by a community of thousands from all over the world. There are a few things you should know: - \n\n•Firefox is made available to you under the terms of the Mozilla Public License. This means you may use, copy and distribute Firefox to others. You are also welcome to modify the source code of Firefox as you want to meet your needs. The Mozilla Public License also gives you the right to distribute your modified versions. - \n•You are not granted any trademark rights or licenses to the trademarks of the Mozilla Foundation or any party, including without limitation the Firefox name or logo. Additional information on trademarks may be found here. - \n•Some features in Firefox, such as the Crash Reporter, give you the option to provide feedback to Mozilla. By choosing to submit feedback, you give Mozilla permission to use the feedback to improve its products, to publish the feedback on its websites, and to distribute the feedback. - \n•How we use your personal information and feedback submitted to Mozilla through Firefox is described in the Firefox Privacy Policy. + Mozilla LeOSium is free and open source software, built by a community of thousands from all over the world. There are a few things you should know: + \n\n•LeOSium is made available to you under the terms of the Mozilla Public License. This means you may use, copy and distribute LeOSium to others. You are also welcome to modify the source code of LeOSium as you want to meet your needs. The Mozilla Public License also gives you the right to distribute your modified versions. + \n•You are not granted any trademark rights or licenses to the trademarks of the Mozilla Foundation or any party, including without limitation the LeOSium name or logo. Additional information on trademarks may be found here. + \n•Some features in LeOSium, such as the Crash Reporter, give you the option to provide feedback to Mozilla. By choosing to submit feedback, you give Mozilla permission to use the feedback to improve its products, to publish the feedback on its websites, and to distribute the feedback. + \n•How we use your personal information and feedback submitted to Mozilla through LeOSium is described in the LeOSium Privacy Policy. Mozilla Public License found here - Firefox Privacy Policy + LeOSium Privacy Policy Agree and Continue @@ -38,7 +38,7 @@ firefox.com.cn/pair]]> - https://firefox.com.cn/pair]]> + https://firefox.com.cn/pair]]> diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 66eac0ec..4e73353a 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -18,7 +18,6 @@ pref_key_advanced pref_key_language pref_key_data_choices - pref_key_privacy_link pref_key_delete_browsing_data pref_key_delete_browsing_data_on_quit_preference pref_key_notifications @@ -42,10 +41,8 @@ pref_key_override_amo_user pref_key_override_amo_collection pref_key_enable_gecko_logs - pref_key_help pref_key_rate pref_key_about - pref_key_your_rights pref_key_account pref_key_sign_in pref_key_account_auth_error @@ -148,6 +145,9 @@ pref_key_privacy_pop_window + + pref_key_remote_server_prod + pref_key_light_theme pref_key_dark_theme diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index ab2caed8..d3966b97 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -34,6 +34,8 @@ Secret Settings Secret Debug Info + + Use Remote Settings Production server \n(Staging will be used when disabled) \n(requires restart) Use third party CA certificates diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e3c58c5b..d1fa56e1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -233,12 +233,16 @@ Edit Customize homepage + Home screen Erase browsing history + + Translate page + Selected language @@ -250,8 +254,6 @@ Scan - - Search engine Search engine settings @@ -300,24 +302,34 @@ - Notifications help you do more with %s + Notifications help you do more with %s - Sync your tabs between devices, manage downloads, get tips about making the most of %s’s privacy protection, and more. + Sync your tabs between devices, manage downloads, get tips about making the most of %s’s privacy protection, and more. - Continue + Continue - Not now + Not now LeOSium privacy notice - + + Learn more in our privacy notice We love keeping you safe + + Find out why millions love LeOSium + + Safe browsing with more choices Our non-profit backed browser helps stop companies from secretly following you around the web. + More than 100 million people protect their privacy by choosing a browser that’s backed by a nonprofit. + + Known trackers? Blocked automatically. Extensions? Try all 700. PDFs? Our built-in reader makes them easy to manage. + Our non-profit backed browser helps stop companies from secretly following you around the web.\n\nLearn more in our privacy notice. @@ -422,20 +434,10 @@ HTTPS-Only Mode - - Cookie banner reduction Cookie Banner Blocker Cookie Banner Blocker in private browsing - - Reduce cookie banners - - Off - - On - - %1$s automatically tries to reject cookie requests on cookie banners. Off for this site @@ -453,33 +455,15 @@ Site currently not supported - Turn on Cookie banner reduction for %1$s? - Turn on Cookie Banner Blocker for %1$s? - Turn off Cookie banner reduction for %1$s? - Turn off Cookie Banner Blocker for %1$s? %1$s can’t automatically reject cookie requests on this site. You can send a request to support this site in the future. - %1$s will clear this site’s cookies and refresh the page. Clearing all cookies may sign you out or empty shopping carts. - Turn off and %1$s will clear cookies and reload this site. This may sign you out or empty shopping carts. - %1$s tries to automatically reject all cookie requests on supported sites. - Turn on and %1$s will try to automatically refuse all cookie banners on this site. - - Allow %1$s to reject cookie banners? - - %1$s can automatically reject many cookie banner requests. - - Not Now - - You’ll see fewer cookie requests - - Allow %1$s just refused cookies for you @@ -1239,8 +1223,6 @@ Dismiss - Unable to print - Unable to print this page Print @@ -1840,7 +1822,7 @@ Set up a device lock pattern, PIN, or password to protect your saved credit cards from being accessed if someone else has your device. - Set up a device lock pattern, PIN, or password to protect your saved cards from being accessed if someone else has your device. + Set up a device lock pattern, PIN, or password to protect your saved payment methods from being accessed if someone else has your device. Set up now @@ -1997,12 +1979,12 @@ Password options The editable text field for the web address of the login. - - The editable text field for the website address of the password. + + The editable text field for the website address. The editable text field for the username of the login. - - The editable text field for the username of the password. + + The editable text field for the username. The editable text field for the password of the login. @@ -2117,6 +2099,9 @@ %s search + + Switch your default browser + Set links from websites, emails, and messages to open automatically in LeOSium. @@ -2126,7 +2111,7 @@ Click for more details - Navigate up + Navigate up Close @@ -2189,8 +2174,6 @@ Highlights are from %s reviews within the last 80 days that we believe to be reliable.]]> Learn more about %s. - - how %s by Mozilla determines review quality how %s determines review quality @@ -2274,13 +2257,19 @@ Learn more - By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. + By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. By selecting “Yes, try it” you agree to the following from %1$s: + + By selecting “Yes, try it” you agree to %1$s\'s %2$s and %3$s\'s %4$s. + + By selecting “Yes, try it” you agree to %1$s\’s %2$s and %3$s\’s %4$s. - privacy policy + privacy policy Privacy policy + + privacy notice terms of use @@ -2407,6 +2396,8 @@ Translating Translating in Progress + + Choose a language There was a problem translating. Please try again. diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 48148593..0a74701c 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -61,4 +61,9 @@ app:iconSpaceReserved="false" android:title="@string/preferences_debug_settings_custom_sponsored_stories_parameters" /> + diff --git a/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml b/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml index 1c15b589..6bb8cfbb 100644 --- a/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml +++ b/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml @@ -3,8 +3,7 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + xmlns:android="http://schemas.android.com/apk/res/android"> + android:summary="@string/preference_option_phone_feature_ask_to_allow"/> () val enableSwitch = mockk(relaxed = true) val privateBrowsingSwitch = mockk(relaxed = true) @@ -93,7 +93,7 @@ class InstalledAddonDetailsFragmentTest { } @Test - fun `GIVEN enabled addon WHEN biding the enable switch THEN do not disable the switch`() { + fun `GIVEN enabled addon WHEN binding the enable switch THEN do not disable the switch`() { val addon = mockk() val enableSwitch = mockk(relaxed = true) val privateBrowsingSwitch = mockk(relaxed = true) @@ -112,7 +112,7 @@ class InstalledAddonDetailsFragmentTest { } @Test - fun `GIVEN addon not correctly signed WHEN biding the enable switch THEN disable the switch`() { + fun `GIVEN addon not correctly signed WHEN binding the enable switch THEN disable the switch`() { val addon = mockk() val enableSwitch = mockk(relaxed = true) val privateBrowsingSwitch = mockk(relaxed = true) @@ -130,7 +130,7 @@ class InstalledAddonDetailsFragmentTest { } @Test - fun `GIVEN incompatible addon WHEN biding the enable switch THEN disable the switch`() { + fun `GIVEN incompatible addon WHEN binding the enable switch THEN disable the switch`() { val addon = mockk() val enableSwitch = mockk(relaxed = true) val privateBrowsingSwitch = mockk(relaxed = true) @@ -228,9 +228,27 @@ class InstalledAddonDetailsFragmentTest { } } + @Test + fun `GIVEN addon does not allow private browsing WHEN binding THEN update switch`() { + val addon = mockAddon() + val privateBrowsingSwitch = mockk(relaxed = true) + + every { fragment.providePrivateBrowsingSwitch() } returns privateBrowsingSwitch + every { addon.incognito } returns Addon.Incognito.NOT_ALLOWED + every { fragment.addon } returns addon + every { fragment.context } returns testContext + + fragment.bindAllowInPrivateBrowsingSwitch() + + verify { privateBrowsingSwitch.isEnabled = false } + verify { privateBrowsingSwitch.isChecked = false } + verify { privateBrowsingSwitch.text = "Not allowed in private windows" } + } + private fun mockAddon(): Addon { val addon: Addon = mockk() every { addon.id } returns "some-addon-id" + every { addon.incognito } returns Addon.Incognito.SPANNING every { addon.isEnabled() } returns true every { addon.isDisabledAsBlocklisted() } returns false every { addon.isDisabledAsNotCorrectlySigned() } returns false diff --git a/app/src/test/java/org/mozilla/fenix/bindings/BrowserStoreBindingTest.kt b/app/src/test/java/org/mozilla/fenix/bindings/BrowserStoreBindingTest.kt new file mode 100644 index 00000000..0aaf57ca --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/bindings/BrowserStoreBindingTest.kt @@ -0,0 +1,79 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.bindings + +import mozilla.components.browser.state.action.TabListAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.createTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.rule.MainCoroutineRule +import mozilla.components.support.test.rule.runTestOnMain +import org.junit.Rule +import org.junit.Test +import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mozilla.fenix.components.AppStore +import org.mozilla.fenix.components.appstate.AppAction +import org.mozilla.fenix.components.appstate.AppState + +class BrowserStoreBindingTest { + + @get:Rule + val coroutineRule = MainCoroutineRule() + + lateinit var browserStore: BrowserStore + lateinit var appStore: AppStore + + private val tabId1 = "1" + private val tabId2 = "2" + private val tab1 = createTab(url = tabId1, id = tabId1) + private val tab2 = createTab(url = tabId2, id = tabId2) + + @Test + fun `WHEN selected tab changes THEN app action dispatched with update`() = runTestOnMain { + appStore = spy(AppStore()) + browserStore = BrowserStore( + BrowserState( + tabs = listOf(tab1, tab2), + selectedTabId = tabId1, + ), + ) + + val binding = BrowserStoreBinding(browserStore, appStore) + binding.start() + browserStore.dispatch(TabListAction.SelectTabAction(tabId2)).joinBlocking() + + // consume initial state + verify(appStore).dispatch(AppAction.SelectedTabChanged(tab1)) + // verify response to Browser Store dispatch + verify(appStore).dispatch(AppAction.SelectedTabChanged(tab2)) + } + + @Test + fun `GIVEN selected tab id is set WHEN update is observed with same id THEN update is ignored`() { + appStore = spy( + AppStore( + AppState( + selectedTabId = tabId2, + ), + ), + ) + browserStore = BrowserStore( + BrowserState( + tabs = listOf(tab1, tab2), + selectedTabId = tabId2, + ), + ) + + val binding = BrowserStoreBinding(browserStore, appStore) + binding.start() + browserStore.dispatch(TabListAction.SelectTabAction(tabId2)).joinBlocking() + + // the selected tab should only be dispatched on initialization + verify(appStore, never()).dispatch(AppAction.SelectedTabChanged(tab2)) + } +} diff --git a/app/src/test/java/org/mozilla/fenix/browser/BaseBrowserFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/browser/BaseBrowserFragmentTest.kt index 4670b824..ac0a109f 100644 --- a/app/src/test/java/org/mozilla/fenix/browser/BaseBrowserFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/browser/BaseBrowserFragmentTest.kt @@ -20,8 +20,8 @@ import mozilla.components.browser.state.state.createTab import mozilla.components.concept.engine.EngineView import mozilla.components.concept.engine.permission.SitePermissions import mozilla.components.feature.contextmenu.ContextMenuCandidate -import mozilla.components.feature.session.behavior.EngineViewBrowserToolbarBehavior import mozilla.components.ui.widgets.VerticalSwipeRefreshLayout +import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior import org.junit.Before import org.junit.Test import org.mozilla.fenix.ext.components @@ -92,17 +92,17 @@ class BaseBrowserFragmentTest { } @Test - fun `initializeEngineView should set EngineViewBrowserToolbarBehavior when dynamic toolbar is enabled`() { + fun `initializeEngineView should set EngineViewClippingBehavior when dynamic toolbar is enabled`() { every { settings.shouldUseFixedTopToolbar } returns false every { settings.isDynamicToolbarEnabled } returns true val params: CoordinatorLayout.LayoutParams = mockk(relaxed = true) every { params.behavior } returns mockk(relaxed = true) every { swipeRefreshLayout.layoutParams } returns params - val behavior = slot() + val behavior = slot() fragment.initializeEngineView(13) - // EngineViewBrowserToolbarBehavior constructor parameters are not properties, we cannot check them. + // EngineViewClippingBehavior constructor parameters are not properties, we cannot check them. // Ensure just that the right behavior is set. verify { params.behavior = capture(behavior) } } diff --git a/app/src/test/java/org/mozilla/fenix/components/UrlRequestInterceptorTest.kt b/app/src/test/java/org/mozilla/fenix/components/UrlRequestInterceptorTest.kt index 058c47e2..f323adb3 100644 --- a/app/src/test/java/org/mozilla/fenix/components/UrlRequestInterceptorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/UrlRequestInterceptorTest.kt @@ -8,6 +8,7 @@ import io.mockk.mockk import mozilla.components.concept.engine.EngineSession import mozilla.components.concept.engine.EngineSession.LoadUrlFlags import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.ALLOW_ADDITIONAL_HEADERS +import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.BYPASS_CACHE import mozilla.components.concept.engine.EngineSession.LoadUrlFlags.Companion.LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE import mozilla.components.concept.engine.request.RequestInterceptor import org.junit.Assert.assertEquals @@ -61,13 +62,19 @@ class UrlRequestInterceptorTest { assertFalse( urlRequestInterceptor.shouldInterceptRequest( - uri = "https://getpocket.com", + uri = "https://www.google.com", isSubframeRequest = false, ), ) - assertFalse( + assertTrue( urlRequestInterceptor.shouldInterceptRequest( - uri = "https://www.google.com", + uri = "https://www.google.com/webhp", + isSubframeRequest = false, + ), + ) + assertTrue( + urlRequestInterceptor.shouldInterceptRequest( + uri = "https://www.google.com/preferences", isSubframeRequest = false, ), ) @@ -89,6 +96,13 @@ class UrlRequestInterceptorTest { isSubframeRequest = false, ), ) + + assertFalse( + urlRequestInterceptor.shouldInterceptRequest( + uri = "https://getpocket.com", + isSubframeRequest = false, + ), + ) assertFalse( urlRequestInterceptor.shouldInterceptRequest( uri = "https://www.google.com/search?q=blue", @@ -114,13 +128,45 @@ class UrlRequestInterceptorTest { } @Test - fun `WHEN a Google request is loaded THEN request is not intercepted`() { - val uri = "https://www.google.com" - val response = getUrlRequestInterceptor().onLoadRequest( - uri = uri, - ) + fun `WHEN a Google preferences request is loaded THEN request is intercepted`() { + val uri = "https://www.google.com/preferences" - assertNull(response) + assertEquals( + RequestInterceptor.InterceptionResponse.Url( + url = uri, + flags = LoadUrlFlags.select( + LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE, + ALLOW_ADDITIONAL_HEADERS, + ), + additionalHeaders = mapOf( + "X-Search-Subdivision" to "0", + ), + ), + getUrlRequestInterceptor().onLoadRequest( + uri = uri, + ), + ) + } + + @Test + fun `WHEN a Google request end in #ip=1 is loaded THEN request bypass cache`() { + val uri = "https://www.google.com/search?q=test&ie=utf-8#ip=1" + assertEquals( + RequestInterceptor.InterceptionResponse.Url( + url = uri, + flags = LoadUrlFlags.select( + BYPASS_CACHE, + LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE, + ALLOW_ADDITIONAL_HEADERS, + ), + additionalHeaders = mapOf( + "X-Search-Subdivision" to "0", + ), + ), + getUrlRequestInterceptor().onLoadRequest( + uri = uri, + ), + ) } @Test diff --git a/app/src/test/java/org/mozilla/fenix/components/appstate/AppStoreReducerTest.kt b/app/src/test/java/org/mozilla/fenix/components/appstate/AppStoreReducerTest.kt index 7be038c0..2997e14c 100644 --- a/app/src/test/java/org/mozilla/fenix/components/appstate/AppStoreReducerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/appstate/AppStoreReducerTest.kt @@ -5,10 +5,12 @@ package org.mozilla.fenix.components.appstate import io.mockk.mockk +import mozilla.components.browser.state.state.createTab import mozilla.components.lib.crash.Crash.NativeCodeCrash import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test +import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.components.appstate.AppAction.AddNonFatalCrash import org.mozilla.fenix.components.appstate.AppAction.RemoveAllNonFatalCrashes import org.mozilla.fenix.components.appstate.AppAction.RemoveNonFatalCrash @@ -69,4 +71,49 @@ class AppStoreReducerTest { assertTrue(updatedState.nonFatalCrashes.isEmpty()) } + + @Test + fun `GIVEN mode is private WHEN selected tab changes to normal mode THEN state is updated to normal mode`() { + val initialState = AppState( + selectedTabId = null, + mode = BrowsingMode.Private, + ) + + val updatedState = AppStoreReducer.reduce( + initialState, + AppAction.SelectedTabChanged(createTab("", private = false)), + ) + + assertFalse(updatedState.mode.isPrivate) + } + + @Test + fun `GIVEN mode is normal WHEN selected tab changes to private mode THEN state is updated to private mode`() { + val initialState = AppState( + selectedTabId = null, + mode = BrowsingMode.Normal, + ) + + val updatedState = AppStoreReducer.reduce( + initialState, + AppAction.SelectedTabChanged(createTab("", private = true)), + ) + + assertTrue(updatedState.mode.isPrivate) + } + + @Test + fun `WHEN selected tab changes to a tab in the same mode THEN mode is unchanged`() { + val initialState = AppState( + selectedTabId = null, + mode = BrowsingMode.Normal, + ) + + val updatedState = AppStoreReducer.reduce( + initialState, + AppAction.SelectedTabChanged(createTab("", private = false)), + ) + + assertFalse(updatedState.mode.isPrivate) + } } diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarViewTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarViewTest.kt index 8ad2f685..2fad1a27 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarViewTest.kt @@ -11,9 +11,9 @@ import io.mockk.mockk import io.mockk.spyk import io.mockk.verify import mozilla.components.browser.toolbar.BrowserToolbar -import mozilla.components.browser.toolbar.behavior.BrowserToolbarBehavior import mozilla.components.lib.publicsuffixlist.PublicSuffixList import mozilla.components.support.test.robolectric.testContext +import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior import org.junit.Assert.assertNotNull import org.junit.Assert.assertNull import org.junit.Before @@ -22,20 +22,20 @@ import org.junit.runner.RunWith import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.utils.Settings -import mozilla.components.browser.toolbar.behavior.ToolbarPosition as MozacToolbarPosition +import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarPosition @RunWith(FenixRobolectricTestRunner::class) class BrowserToolbarViewTest { private lateinit var toolbarView: BrowserToolbarView private lateinit var toolbar: BrowserToolbar - private lateinit var behavior: BrowserToolbarBehavior + private lateinit var behavior: EngineViewScrollingBehavior private lateinit var settings: Settings @Before fun setup() { toolbar = BrowserToolbar(testContext) toolbar.layoutParams = CoordinatorLayout.LayoutParams(100, 100) - behavior = spyk(BrowserToolbarBehavior(testContext, null, MozacToolbarPosition.BOTTOM)) + behavior = spyk(EngineViewScrollingBehavior(testContext, null, MozacToolbarPosition.BOTTOM)) (toolbar.layoutParams as CoordinatorLayout.LayoutParams).behavior = behavior settings = mockk(relaxed = true) every { testContext.components.useCases } returns mockk(relaxed = true) @@ -217,7 +217,7 @@ class BrowserToolbarViewTest { } @Test - fun `setDynamicToolbarBehavior should set a BrowserToolbarBehavior for the bottom toolbar`() { + fun `setDynamicToolbarBehavior should set a ViewHideOnScrollBehavior for the bottom toolbar`() { val toolbarViewSpy = spyk(toolbarView) (toolbar.layoutParams as CoordinatorLayout.LayoutParams).behavior = null @@ -227,7 +227,7 @@ class BrowserToolbarViewTest { } @Test - fun `setDynamicToolbarBehavior should set a BrowserToolbarBehavior for the top toolbar`() { + fun `setDynamicToolbarBehavior should set a ViewHideOnScrollBehavior for the top toolbar`() { val toolbarViewSpy = spyk(toolbarView) (toolbar.layoutParams as CoordinatorLayout.LayoutParams).behavior = null diff --git a/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsControllerTest.kt b/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsControllerTest.kt deleted file mode 100644 index a9b58006..00000000 --- a/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsControllerTest.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.components.translations - -import mozilla.components.browser.state.selector.findTab -import mozilla.components.browser.state.state.BrowserState -import mozilla.components.browser.state.state.TabSessionState -import mozilla.components.browser.state.state.TranslationsState -import mozilla.components.browser.state.state.createTab -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.concept.engine.translate.DetectedLanguages -import mozilla.components.concept.engine.translate.TranslationEngineState -import mozilla.components.concept.engine.translate.TranslationOptions -import mozilla.components.feature.session.SessionUseCases -import mozilla.components.support.test.mock -import mozilla.components.support.test.whenever -import org.junit.Assert.assertNotNull -import org.junit.Assert.assertTrue -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mockito.spy -import org.mockito.Mockito.verify -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -import org.mozilla.fenix.translations.TranslationsController - -@RunWith(FenixRobolectricTestRunner::class) -class TranslationsControllerTest { - - val tab: TabSessionState = spy( - createTab( - url = "https://www.firefox.com", - title = "Firefox", - id = "1", - ), - ) - private val tabs = spy(listOf(tab)) - private val browserState = spy(BrowserState(tabs = tabs)) - private val browserStore = spy(BrowserStore(browserState)) - - private val translationsUseCase: SessionUseCases.TranslateUseCase = mock() - private val translationsController = spy(TranslationsController(translationUseCase = translationsUseCase, browserStore = browserStore, tabId = tab.id)) - - @Test - fun `Controller translate called the translate use case as expected`() { - val from = "en" - val to = "es" - val options = TranslationOptions(false) - translationsController.translate(tab.id, from, to, options) - verify(translationsUseCase).invoke(tab.id, from, to, options) - } - - @Test - fun `Controller translate called the translate use case as expected when languages were null`() { - val mockFrom = "es" - val mockTo = "en" - val mockDetectedLanguages = DetectedLanguages( - documentLangTag = mockFrom, - supportedDocumentLang = true, - userPreferredLangTag = mockTo, - ) - whenever(translationsController.getDetectedLanguages()).thenReturn(mockDetectedLanguages) - - val from = null - val to = null - val options = TranslationOptions(false) - translationsController.translate(tab.id, from, to, options) - - verify(translationsUseCase).invoke(tab.id, mockFrom, mockTo, options) - } - - @Test - fun `Controller detectedLanguages retrieved the languages as expected`() { - val mockFrom = "es" - val mockTo = "en" - val mockDetectedLanguages = DetectedLanguages( - documentLangTag = mockFrom, - supportedDocumentLang = true, - userPreferredLangTag = mockTo, - ) - val mockState = TranslationsState( - translationEngineState = TranslationEngineState(mockDetectedLanguages), - ) - - whenever(browserState.findTab(tab.id)?.translationsState).thenReturn(mockState) - - val test = translationsController.getDetectedLanguages() - - assertNotNull(test) - assertTrue(test?.documentLangTag == mockDetectedLanguages.documentLangTag) - assertTrue(test?.userPreferredLangTag == mockDetectedLanguages.userPreferredLangTag) - } -} diff --git a/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsInteractorTest.kt deleted file mode 100644 index e367aa05..00000000 --- a/app/src/test/java/org/mozilla/fenix/components/translations/TranslationsInteractorTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.components.translations - -import mozilla.components.browser.state.state.BrowserState -import mozilla.components.browser.state.state.TabSessionState -import mozilla.components.browser.state.state.createTab -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.concept.engine.translate.DetectedLanguages -import mozilla.components.concept.engine.translate.TranslationOptions -import mozilla.components.feature.session.SessionUseCases -import mozilla.components.support.test.mock -import mozilla.components.support.test.whenever -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mockito.never -import org.mockito.Mockito.spy -import org.mockito.Mockito.verify -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner -import org.mozilla.fenix.translations.TranslationsController -import org.mozilla.fenix.translations.TranslationsInteractor - -@RunWith(FenixRobolectricTestRunner::class) -class TranslationsInteractorTest { - - val tab: TabSessionState = spy( - createTab( - url = "https://www.firefox.com", - title = "Firefox", - id = "1", - ), - ) - private val tabs = spy(listOf(tab)) - private val browserState = spy(BrowserState(tabs = tabs)) - private val browserStore = spy(BrowserStore(browserState)) - - private val translationsUseCase: SessionUseCases.TranslateUseCase = mock() - private val translationsController = spy(TranslationsController(translationUseCase = translationsUseCase, browserStore = browserStore, tabId = tab.id)) - private val interactor = TranslationsInteractor(translationsController) - - @Test - fun `Interactor onTranslate called the translate controller as expected`() { - val from = "en" - val to = "es" - val options = TranslationOptions(false) - interactor.onTranslate(tab.id, from, to, options) - verify(translationsController).translate(tab.id, from, to, options) - verify(translationsController, never()).getDetectedLanguages() - } - - @Test - fun `Interactor onTranslate called the translate controller as expected when languages are null`() { - val mockFrom = "es" - val mockTo = "en" - val mockDetectedLanguages = DetectedLanguages( - documentLangTag = mockFrom, - supportedDocumentLang = true, - userPreferredLangTag = mockTo, - ) - whenever(translationsController.getDetectedLanguages()).thenReturn(mockDetectedLanguages) - - val from = null - val to = null - val options = TranslationOptions(false) - interactor.onTranslate(tab.id, from, to, options) - verify(translationsController).translate(tab.id, from, to, options) - verify(translationsController).getDetectedLanguages() - verify(translationsUseCase).invoke(tab.id, mockFrom, mockTo, options) - } - - @Test - fun `Interactor detectedLanguages called the controller to pull detected languages`() { - interactor.detectedLanguages() - verify(translationsController).getDetectedLanguages() - } -} diff --git a/app/src/test/java/org/mozilla/fenix/compose/ext/IntTest.kt b/app/src/test/java/org/mozilla/fenix/compose/ext/IntTest.kt new file mode 100644 index 00000000..c7c68f7e --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/compose/ext/IntTest.kt @@ -0,0 +1,22 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.compose.ext + +import org.junit.Assert.assertEquals +import org.junit.Test +import java.util.Locale as JavaLocale + +class IntTest { + + @Test + fun `WHEN the language is Arabic THEN translate the number to the proper symbol of that locale`() { + val expected = "٥" + val numberUnderTest = 5 + + JavaLocale.setDefault(JavaLocale("ar")) + + assertEquals(expected, numberUnderTest.toLocaleString()) + } +} diff --git a/app/src/test/java/org/mozilla/fenix/perf/StartupPathProviderTest.kt b/app/src/test/java/org/mozilla/fenix/perf/StartupPathProviderTest.kt index 8d22d86d..ad14ebc0 100644 --- a/app/src/test/java/org/mozilla/fenix/perf/StartupPathProviderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/perf/StartupPathProviderTest.kt @@ -108,12 +108,12 @@ class StartupPathProviderTest { } @Test - fun `GIVEN the app is launched to the homescreen and stopped WHEN getting the start up path THEN it is not set`() { + fun `GIVEN the app is launched to the homescreen with MAIN and stopped WHEN getting the start up path THEN it set to MAIN`() { every { intent.action } returns Intent.ACTION_MAIN launchApp(intent) stopLaunchedApp() - assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity) + assertEquals(StartupPath.MAIN, provider.startupPathForActivity) } @Test @@ -129,13 +129,13 @@ class StartupPathProviderTest { } @Test - fun `GIVEN the app is launched to the homescreen, stopped, and relaunched warm from the app switcher WHEN getting the start up path THEN it is not set`() { + fun `GIVEN the app is launched to the homescreen with MAIN, stopped, and relaunched warm from the app switcher WHEN getting the start up path THEN it set to MAIN'`() { every { intent.action } returns Intent.ACTION_MAIN launchApp(intent) stopLaunchedApp() startStoppedAppFromAppSwitcher() - assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity) + assertEquals(StartupPath.MAIN, provider.startupPathForActivity) } @Test @@ -159,7 +159,7 @@ class StartupPathProviderTest { } @Test - fun `GIVEN the app is launched, stopped, started from the app switcher and receives an intent in the foreground WHEN getting the start up path THEN it returns not set`() { + fun `GIVEN the app is launched with MAIN, stopped, started from the app switcher and receives an intent in the foreground WHEN getting the start up path THEN it returns MAIN`() { every { intent.action } returns Intent.ACTION_MAIN launchApp(intent) stopLaunchedApp() @@ -167,7 +167,7 @@ class StartupPathProviderTest { every { intent.action } returns Intent.ACTION_VIEW receiveIntentInForeground(intent) - assertEquals(StartupPath.NOT_SET, provider.startupPathForActivity) + assertEquals(StartupPath.MAIN, provider.startupPathForActivity) } private fun launchApp(intent: Intent) { diff --git a/app/src/test/java/org/mozilla/fenix/search/SearchDialogControllerTest.kt b/app/src/test/java/org/mozilla/fenix/search/SearchDialogControllerTest.kt index 0cff849d..3de46197 100644 --- a/app/src/test/java/org/mozilla/fenix/search/SearchDialogControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/SearchDialogControllerTest.kt @@ -313,6 +313,10 @@ class SearchDialogControllerTest { assertTrue(clearToolbarFocusInvoked) assertTrue(dismissAndGoBack) + + middleware.assertLastAction(AwesomeBarAction.EngagementFinished::class) { action -> + assertTrue(action.abandoned) + } } @Test diff --git a/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt index c7aa3e72..ff71df0f 100644 --- a/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt @@ -50,14 +50,14 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN this is the only visible fragment WHEN asking for the previous destination THEN return null`() { - every { navController.backQueue } returns ArrayDeque(listOf(getDestination(fragmentName))) + every { navController.currentBackStack.value } returns ArrayDeque(listOf(getDestination(fragmentName))) assertNull(fragment.getPreviousDestination()) } @Test fun `GIVEN this and FragmentB on top of this are visible WHEN asking for the previous destination THEN return null`() { - every { navController.backQueue } returns ArrayDeque( + every { navController.currentBackStack.value } returns ArrayDeque( listOf( getDestination(fragmentName), getDestination("FragmentB"), @@ -70,7 +70,7 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN FragmentA, this and FragmentB are visible WHEN asking for the previous destination THEN return FragmentA`() { val fragmentADestination = getDestination("FragmentA") - every { navController.backQueue } returns ArrayDeque( + every { navController.currentBackStack.value } returns ArrayDeque( listOf( fragmentADestination, getDestination(fragmentName), @@ -84,7 +84,7 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN FragmentA and this on top of it are visible WHEN asking for the previous destination THEN return FragmentA`() { val fragmentADestination = getDestination("FragmentA") - every { navController.backQueue } returns ArrayDeque( + every { navController.currentBackStack.value } returns ArrayDeque( listOf( fragmentADestination, getDestination(fragmentName), diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt index 3ecd5920..f2e98f97 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt @@ -19,7 +19,7 @@ import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore class ReviewQualityCheckNavigationMiddlewareTest { - private val sumoUrl = "https://t.me/LeOS_Support" + private val sumoUrl = "https://support.mozilla.org/en-US/products/mobile" private lateinit var store: ReviewQualityCheckStore private lateinit var browserStore: BrowserStore private lateinit var addTabUseCase: TabsUseCases.SelectOrAddUseCase diff --git a/app/src/test/java/org/mozilla/fenix/sync/ext/SyncedDeviceTabsTest.kt b/app/src/test/java/org/mozilla/fenix/sync/ext/SyncedDeviceTabsTest.kt index f99f3689..acf66374 100644 --- a/app/src/test/java/org/mozilla/fenix/sync/ext/SyncedDeviceTabsTest.kt +++ b/app/src/test/java/org/mozilla/fenix/sync/ext/SyncedDeviceTabsTest.kt @@ -43,6 +43,7 @@ class SyncedDeviceTabsTest { ), active = 0, lastUsed = 0L, + inactive = false, ), ), ) @@ -64,6 +65,7 @@ class SyncedDeviceTabsTest { ), active = 0, lastUsed = 0L, + inactive = false, ), Tab( history = listOf( @@ -75,6 +77,7 @@ class SyncedDeviceTabsTest { ), active = 0, lastUsed = 0L, + inactive = false, ), ), ) diff --git a/app/src/test/java/org/mozilla/fenix/telemetry/TelemetryMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/telemetry/TelemetryMiddlewareTest.kt index 4c8eace8..dfbb1ba6 100644 --- a/app/src/test/java/org/mozilla/fenix/telemetry/TelemetryMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/telemetry/TelemetryMiddlewareTest.kt @@ -86,6 +86,7 @@ class TelemetryMiddlewareTest { val engine: Engine = mockk() every { engine.enableExtensionProcessSpawning() } just runs every { engine.disableExtensionProcessSpawning() } just runs + every { engine.isTranslationsEngineSupported(any(), any()) } just runs store = BrowserStore( middleware = listOf(telemetryMiddleware) + EngineMiddleware.create(engine), initialState = BrowserState(), diff --git a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperDownloaderTest.kt b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperDownloaderTest.kt index 821f523b..2736ca06 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperDownloaderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperDownloaderTest.kt @@ -141,5 +141,6 @@ class WallpaperDownloaderTest { private fun Wallpaper.generateRequest(type: String) = Request( url = "$remoteHost/${collection.name}/$name/$type.png", method = Request.Method.GET, + conservative = true, ) } diff --git a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcherTest.kt b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcherTest.kt index ff1ad66f..35fcd694 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcherTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpaperMetadataFetcherTest.kt @@ -29,6 +29,7 @@ class WallpaperMetadataFetcherTest { url = BuildConfig.WALLPAPER_URL.substringBefore("android") + "metadata/v$currentJsonVersion/wallpapers.json", method = Request.Method.GET, + conservative = true, ) private val mockResponse = mockk() private val mockClient = mockk { diff --git a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpapersUseCasesTest.kt b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpapersUseCasesTest.kt index e2716f30..858f2c2d 100644 --- a/app/src/test/java/org/mozilla/fenix/wallpapers/WallpapersUseCasesTest.kt +++ b/app/src/test/java/org/mozilla/fenix/wallpapers/WallpapersUseCasesTest.kt @@ -4,7 +4,7 @@ package org.mozilla.fenix.wallpapers -import android.content.Context +import android.content.res.Configuration import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerify @@ -31,7 +31,8 @@ import org.mozilla.fenix.wallpapers.LegacyWallpaperMigration.Companion.TURNING_R import org.mozilla.fenix.wallpapers.LegacyWallpaperMigration.Companion.TURNING_RED_PANDA_WALLPAPER_NAME import org.mozilla.fenix.wallpapers.LegacyWallpaperMigration.Companion.TURNING_RED_WALLPAPER_TEXT_COLOR import java.io.File -import java.util.* +import java.util.Calendar +import java.util.Date import kotlin.random.Random class WallpapersUseCasesTest { @@ -496,18 +497,33 @@ class WallpapersUseCasesTest { } @Test - fun `GIVEN the context WHEN bitmap is loaded THEN loadWallpaperFromDisk method is called with the correct context and wallpaper`() = + fun `GIVEN the portrait orientation WHEN bitmap is loaded THEN loadWallpaperFromDisk method is called with the correct wallpaper and orientation`() = runTest { val wallpaper: Wallpaper = mockk { every { name } returns "test" } - val context = mockk(relaxed = true) + val orientation = Configuration.ORIENTATION_PORTRAIT val defaultLoadBitmapUseCase = spyk(WallpapersUseCases.DefaultLoadBitmapUseCase { mockFolder }) - coEvery { defaultLoadBitmapUseCase.loadWallpaperFromDisk(context, wallpaper) } returns mockk() + coEvery { defaultLoadBitmapUseCase.loadWallpaperFromDisk(wallpaper, orientation) } returns mockk() - defaultLoadBitmapUseCase.invoke(context, wallpaper) + defaultLoadBitmapUseCase.invoke(wallpaper, orientation) - coVerify { defaultLoadBitmapUseCase.loadWallpaperFromDisk(context, wallpaper) } + coVerify { defaultLoadBitmapUseCase.loadWallpaperFromDisk(wallpaper, orientation) } + } + + @Test + fun `GIVEN the landscape orientation WHEN bitmap is loaded THEN loadWallpaperFromDisk method is called with the correct wallpaper and orientation`() = + runTest { + val wallpaper: Wallpaper = mockk { + every { name } returns "test" + } + val orientation = Configuration.ORIENTATION_LANDSCAPE + val defaultLoadBitmapUseCase = spyk(WallpapersUseCases.DefaultLoadBitmapUseCase { mockFolder }) + coEvery { defaultLoadBitmapUseCase.loadWallpaperFromDisk(wallpaper, orientation) } returns mockk() + + defaultLoadBitmapUseCase.invoke(wallpaper, orientation) + + coVerify { defaultLoadBitmapUseCase.loadWallpaperFromDisk(wallpaper, orientation) } } private enum class TimeRelation { diff --git a/automation/iceraven/install-sdk.sh b/automation/iceraven/install-sdk.sh index 2d043771..8da6287a 100755 --- a/automation/iceraven/install-sdk.sh +++ b/automation/iceraven/install-sdk.sh @@ -20,7 +20,7 @@ popd export ANDROID_SDK_ROOT=$HOME/android-sdk/android-sdk-linux # Install the weirdly missing NDK -${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager "ndk;25.2.9519653" +${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager "ndk;26.2.11394342" # Point the build at the tools -echo "sdk.dir=${ANDROID_SDK_ROOT}" >> local.properties \ No newline at end of file +echo "sdk.dir=${ANDROID_SDK_ROOT}" >> local.properties diff --git a/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml b/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml new file mode 100644 index 00000000..503eae25 --- /dev/null +++ b/automation/taskcluster/androidTest/flank-arm-start-test-robo.yml @@ -0,0 +1,27 @@ +# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run +# Flank Documentation: https://flank.github.io/flank/ +gcloud: + results-bucket: fenix_test_artifacts + record-video: false + timeout: 5m + async: false + + app: /app/path + + auto-google-login: false + use-orchestrator: true + environment-variables: + clearPackageData: true + + device: + - model: MediumPhone.arm + version: 30 + locale: en_US + + type: robo + +flank: + project: GOOGLE_PROJECT + num-test-runs: 1 + output-style: compact + full-junit-result: true diff --git a/automation/taskcluster/androidTest/lib/testrail_conn.py b/automation/taskcluster/androidTest/lib/testrail_conn.py deleted file mode 100644 index 41d1f266..00000000 --- a/automation/taskcluster/androidTest/lib/testrail_conn.py +++ /dev/null @@ -1,102 +0,0 @@ -# flake8: noqa -"""TestRail API binding for Python 3.x. - -(API v2, available since TestRail 3.0) - -Compatible with TestRail 3.0 and later. - -Learn more: - -http://docs.gurock.com/testrail-api2/start -http://docs.gurock.com/testrail-api2/accessing - -Copyright Gurock Software GmbH. See license.md for details. -""" - -import base64 -import json - -import requests - - -class APIClient: - def __init__(self, base_url): - self.user = '' - self.password = '' - if not base_url.endswith('/'): - base_url += '/' - self.__url = base_url + 'index.php?/api/v2/' - - def send_get(self, uri, filepath=None): - """Issue a GET request (read) against the API. - - Args: - uri: The API method to call including parameters, e.g. get_case/1. - filepath: The path and file name for attachment download; used only - for 'get_attachment/:attachment_id'. - - Returns: - A dict containing the result of the request. - """ - return self.__send_request('GET', uri, filepath) - - def send_post(self, uri, data): - """Issue a POST request (write) against the API. - - Args: - uri: The API method to call, including parameters, e.g. add_case/1. - data: The data to submit as part of the request as a dict; strings - must be UTF-8 encoded. If adding an attachment, must be the - path to the file. - - Returns: - A dict containing the result of the request. - """ - return self.__send_request('POST', uri, data) - - def __send_request(self, method, uri, data): - url = self.__url + uri - - auth = str( - base64.b64encode( - bytes('%s:%s' % (self.user, self.password), 'utf-8') - ), - 'ascii' - ).strip() - headers = {'Authorization': 'Basic ' + auth} - - if method == 'POST': - if uri[:14] == 'add_attachment': # add_attachment API method - files = {'attachment': (open(data, 'rb'))} - response = requests.post(url, headers=headers, files=files) - files['attachment'].close() - else: - headers['Content-Type'] = 'application/json' - payload = bytes(json.dumps(data), 'utf-8') - response = requests.post(url, headers=headers, data=payload) - else: - headers['Content-Type'] = 'application/json' - response = requests.get(url, headers=headers) - - if response.status_code > 201: - try: - error = response.json() - except requests.exceptions.HTTPError: # response.content not formatted as JSON - error = str(response.content) - raise APIError('TestRail API returned HTTP %s (%s)' % (response.status_code, error)) - else: - if uri[:15] == 'get_attachment/': # Expecting file, not JSON - try: - open(data, 'wb').write(response.content) - return (data) - except FileNotFoundError: - return ("Error saving attachment.") - else: - try: - return response.json() - except requests.exceptions.HTTPError: - return {} - - -class APIError(Exception): - pass diff --git a/automation/taskcluster/androidTest/testrail.py b/automation/taskcluster/androidTest/testrail.py deleted file mode 100644 index b75efa7c..00000000 --- a/automation/taskcluster/androidTest/testrail.py +++ /dev/null @@ -1,154 +0,0 @@ -""" -This Python script is designed to automate the process of creating milestones -and test runs in TestRail, and updating test cases based on the results of -automated smoke tests for different product releases. - -Below is a summary of its functionality in order of execution: - -1. Environment and Credentials Setup: - - Imports necessary libraries and modules. - - Loads environmental variables from "execution_metadata.env". - - Reads and processes TestRail credentials from '.testrail_credentials.json'. - -2. Environment Variables Validation: - - Retrieves and validates several environment variables like `PRODUCT_TYPE`, - `RELEASE_TYPE`, `VERSION_NUMBER`, and `TEST_STATUS`. - - Ensures `TEST_STATUS` is either 'PASS' or 'FAIL'. - -3. Utility Functions: - - `parse_release_number()`: Parses the version number to extract a specific part. - - `build_milestone_name()`: Constructs a milestone name based on product type, - release type, and version number. - - `build_milestone_description()`: Creates a detailed description for the milestone - including the current date and placeholders for various testing statuses. - -4. TestRail Integration: - - Defines a `TestRail` class that handles interactions with the TestRail API. - - Includes methods to create milestones, create test runs, and update test cases. - -5. Main Execution: - - Checks if `TEST_STATUS` is 'PASS'. If not, it raises an error to trigger a Slack notification. - - Sets parameters for a demo TestRail project. - - Instantiates the `TestRail` class. - - Creates a milestone in TestRail and retrieves its ID. - - Creates test runs for each device/API combination (currently hardcoded for phase 1 testing) - and updates test cases to 'passed' status. - -6. Phase 1 and Phase 2 Notes: - - The script is currently in Phase 1, where certain values are hardcoded for testing. - - In Phase 2, these hardcoded values will be parameterized for broader usage. -""" - - -import json -import os -import textwrap -from lib.testrail_conn import APIClient -from dotenv import load_dotenv -from datetime import datetime - -try: - load_dotenv("execution_metadata.env") # Attempt to load .env file -except FileNotFoundError: - raise FileNotFoundError("The .env file was not found.") -except Exception as e: - raise Exception(f"An error occurred while loading the .env file: {e}") - -try: - with open('.testrail_credentials.json', 'r') as file: - secret = json.load(file) - TESTRAIL_HOST = secret['host'] - TESTRAIL_USERNAME = secret['username'] - TESTRAIL_PASSWORD = secret['password'] -except json.JSONDecodeError as e: - raise ValueError("Failed to load testrail credentials : {e}") - -try: - PRODUCT_TYPE = os.environ["PRODUCT_TYPE"] - RELEASE_TYPE = os.environ["RELEASE_TYPE"] - VERSION_NUMBER = os.environ["MOBILE_HEAD_REF"] - TEST_STATUS = os.environ["TEST_STATUS"] - - if TEST_STATUS not in ('PASS', 'FAIL'): - raise ValueError(f"ERROR: Invalid TEST_STATUS value: {TEST_STATUS}") -except KeyError as e: - raise ValueError(f"ERROR: Missing Environment Variable: {e}") - -def parse_release_number(VERSION_NUMBER): - parts = VERSION_NUMBER.split('_') - return parts[1] - -def build_milestone_name(product_type, release_type, version_number): - return f"Automated smoke testing sign-off - {product_type} {release_type} {version_number}" - -def build_milestone_description(milestone_name): - current_date = datetime.now() - formatted_date = current_date = current_date.strftime("%B %d, %Y") - return textwrap.dedent(f""" - RELEASE: {milestone_name}\n\n\ - RELEASE_TAG_URL: https://github.com/mozilla-mobile/firefox-android/releases\n\n\ - RELEASE_DATE: {formatted_date}\n\n\ - TESTING_STATUS: [ TBD ]\n\n\ - QA_RECOMMENDATION:[ TBD ]\n\n\ - QA_RECOMENTATION_VERBOSE: \n\n\ - TESTING_SUMMARY\n\n\ - Known issues: n/a\n\ - New issue: n/a\n\ - Verified issue: - """) - -class TestRail(): - - def __init__(self): - try: - self.client = APIClient(TESTRAIL_HOST) - self.client.user = TESTRAIL_USERNAME - self.client.password = TESTRAIL_PASSWORD - except KeyError as e: - raise ValueError(f"ERROR: Missing Testrail Env Var: {e}") - - # Public Methods - - def create_milestone(self, testrail_project_id, title, description): - data = {"name": title, "description": description} - return self.client.send_post(f'add_milestone/{testrail_project_id}', data) - - def create_test_run(self, testrail_project_id, testrail_milestone_id, name_run, testrail_suite_id): - data = {"name": name_run, "milestone_id": testrail_milestone_id, "suite_id": testrail_suite_id} - return self.client.send_post(f'add_run/{testrail_project_id}', data) - - def update_test_cases_to_passed(self, testrail_project_id, testrail_run_id, testrail_suite_id): - test_cases = self._get_test_cases(testrail_project_id, testrail_suite_id) - data = { "results": [{"case_id": test_case['id'], "status_id": 1} for test_case in test_cases]} - return testrail._update_test_run_results(testrail_run_id, data) - - # Private Methods - - def _get_test_cases(self, testrail_project_id, testrail_test_suite_id): - return self.client.send_get(f'get_cases/{testrail_project_id}&suite_id={testrail_test_suite_id}') - - def _update_test_run_results(self, testrail_run_id, data): - return self.client.send_post(f'add_results_for_cases/{testrail_run_id}', data) - -if __name__ == "__main__": - if TEST_STATUS != 'PASS': - raise ValueError("Tests failed. Sending Slack Notification....") - - # There are for a dummy Testrail project used for Phase 1 testing of this script - # They will be parameterized during Phase 2 of script hardening - PROJECT_ID = 53 # Firefox for FireTV - TEST_SUITE_ID = 45442 # Demo Test Suite - - testrail = TestRail() - milestone_name = build_milestone_name(PRODUCT_TYPE, RELEASE_TYPE, parse_release_number(VERSION_NUMBER)) - milestone_description = build_milestone_description(milestone_name) - - # Create milestone for 'Firefox for FireTV' and store the ID - milestone_id = testrail.create_milestone(PROJECT_ID, milestone_name, milestone_description)['id'] - - # Create test run for each Device/API and update test cases to 'passed' - # The Firebase Test devices are temporarily hard-coded during testing - # and will be parameterized in Phase 2 of hardening - for test_run_name in ['Google Pixel 32(Android11)', 'Google Pixel2(Android9)']: - test_run_id = testrail.create_test_run(PROJECT_ID, milestone_id, test_run_name, TEST_SUITE_ID)['id'] - testrail.update_test_cases_to_passed(PROJECT_ID, test_run_id, TEST_SUITE_ID) diff --git a/automation/taskcluster/androidTest/ui-test.sh b/automation/taskcluster/androidTest/ui-test.sh index a4df3971..3c5b29c1 100755 --- a/automation/taskcluster/androidTest/ui-test.sh +++ b/automation/taskcluster/androidTest/ui-test.sh @@ -102,18 +102,9 @@ function failure_check() { echo if [[ $exitcode -ne 0 ]]; then echo "FAILURE: UI test run failed, please check above URL" - TEST_STATUS="FAIL" else echo "All UI test(s) have passed!" - TEST_STATUS="PASS" fi - - { - echo "TEST_STATUS=${TEST_STATUS}" - echo "PRODUCT_TYPE=${PRODUCT_TYPE}" - echo "RELEASE_TYPE=${RELEASE_TYPE}" - } >> execution_metadata.env - echo echo "RESULTS" echo diff --git a/build.gradle b/build.gradle index cb9ff542..bd002d01 100644 --- a/build.gradle +++ b/build.gradle @@ -78,7 +78,7 @@ buildscript { classpath ComponentsDependencies.tools_androidgradle classpath ComponentsDependencies.tools_kotlingradle classpath FenixDependencies.tools_benchmarkgradle - classpath FenixDependencies.androidx_safeargs + classpath ComponentsDependencies.androidx_safeargs classpath FenixDependencies.osslicenses_plugin classpath "org.mozilla.telemetry:glean-gradle-plugin:${Versions.mozilla_glean}" classpath "${ApplicationServicesConfig.groupId}:tooling-nimbus-gradle:${ApplicationServicesConfig.version}" diff --git a/docs/Home.md b/docs/Home.md index 74482917..557d3315 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -8,8 +8,8 @@ Firefox for Android is the first step in building a better mobile browser: one t ## User support -* Support articles: https://t.me/LeOS_Support -* Support forum: https://t.me/LeOS_Support +* Support articles: https://support.mozilla.org/en-US/products/mobile +* Support forum: https://support.mozilla.org/en-US/questions/mobile ## Download diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e093..a80b22ce 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f..25da30db 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/list.json b/list.json deleted file mode 100644 index f6cac8a8..00000000 --- a/list.json +++ /dev/null @@ -1,923 +0,0 @@ -{ - "default": { - "searchDefault": "LeOSearch", - "searchOrder": ["LeOSearch"], - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "regionOverrides": { - "US": { - "google-b-m": "google-b-1-m" - } - }, - "locales": { - "ach": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia" - ] - } - }, - "an": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-es","wikipedia-an" - ] - } - }, - "ar": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-ar" - ] - } - }, - "as": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-as" - ] - } - }, - "ast": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "ebay-es", "wikipedia-ast" - ] - } - }, - "az": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "azerdict", "wikipedia-az" - ] - } - }, - "be": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-be" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-be" - ] - } - }, - "bg": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "pazaruvaj", "wikipedia-bg" - ] - } - }, - "bn": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-bn" - ] - } - }, - "bn-BD": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-bn" - ] - } - }, - "bn-IN": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-bn" - ] - } - }, - "br": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-br" - ] - } - }, - "bs": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-bs" - ] - } - }, - "ca": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-es", "wikipedia-ca" - ] - } - }, - "cak": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "cs": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "mapy-cz", "seznam-cz", "wikipedia-cz" - ] - } - }, - "cy": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "ddg", "ebay-co-uk", "wikipedia-cy" - ] - } - }, - "da": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "amazon-co-uk", "leosearch", "ddg", "wikipedia-da" - ] - } - }, - "de": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-de" - ] - } - }, - "de-AT": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-de", "ddg", "ecosia", "qwant", "wikipedia-de", "ebay-at" - ] - } - }, - "dsb": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-de", "ddg", "wikipedia-dsb", "ebay-de" - ] - } - }, - "el": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-el" - ] - } - }, - "en-AU": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-au", "ddg", "wikipedia", "ebay-au" - ] - } - }, - "en-CA": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-ca", "ddg", "wikipedia", "ebay-ca" - ] - } - }, - "en-IE": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-ie" - ] - } - }, - "en-GB": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia", "ebay-co-uk" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazon-co-uk", "ddg", "qwant", "wikipedia" - ] - } - }, - "en-US": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "ebay", "wikipedia" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "amazondotcom", "ddg", "wikipedia" - ] - } - }, - "en-ZA": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "wikipedia" - ] - } - }, - "eo": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-eo" - ] - } - }, - "es-AR": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "mercadolibre-ar", "wikipedia-es" - ] - } - }, - "es-CL": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "mercadolibre-cl", "wikipedia-es" - ] - } - }, - "es-ES": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-es", "amazon-es", "ebay-es" - ] - } - }, - "es-MX": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "mercadolibre-mx", "wikipedia-es" - ] - } - }, - "et": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "amazon-co-uk", "ddg", "wikipedia-et" - ] - } - }, - "eu": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-es", "wikipedia-eu" - ] - } - }, - "fa": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-fa" - ] - } - }, - "ff": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-fr", "ddg", "wikipedia-fr" - ] - } - }, - "fi": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "amazondotcom", "leosearch", "ddg", "wikipedia-fi" - ] - } - }, - "fr-BE": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "qwant", "wikipedia-fr", "ebay-befr" - ] - } - }, - "fr-CA": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-ca", "ddg", "wikipedia-fr", "ebay-ca" - ] - } - }, - "fr-FR": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "qwant", "wikipedia-fr", "amazon-fr", "ebay-fr" - ] - } - }, - "fr": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-fr", "qwant", "wikipedia-fr" - ] - } - }, - "fy-NL": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-nl", "wikipedia-fy-NL" - ] - } - }, - "ga-IE": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "amazon-co-uk", "ddg", "ebay-ie", "wikipedia-ga-IE" - ] - } - }, - "gd": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-co-uk", "faclair-beag", "wikipedia-gd" - ] - } - }, - "gl": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "ebay-es", "wikipedia-gl" - ] - } - }, - "gn": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-gn" - ] - } - }, - "gu-IN": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-gu" - ] - } - }, - "he": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-he" - ] - } - }, - "hi-IN": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-hi" - ] - } - }, - "hr": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "ddg", "wikipedia-hr" - ] - } - }, - "hsb": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-de", "ddg", "wikipedia-hsb", "ebay-de" - ] - } - }, - "hu": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "vatera", "wikipedia-hu" - ] - } - }, - "hy-AM": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-hy-AM" - ] - } - }, - "ia": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-ia" - ] - } - }, - "id": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-id" - ] - } - }, - "is": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-is" - ] - } - }, - "it": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-it", "amazon-it", "ebay-it" - ] - } - }, - "ja": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "amazon-jp", "leosearch", "ddg", "rakuten", "wikipedia-ja", "yahoo-jp", "yahoo-jp-auctions" - ] - } - }, - "ka": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-ka" - ] - } - }, - "kab": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-kab" - ] - } - }, - "kk": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-kk" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "leosearch", "ddg", "wikipedia-kk" - ] - } - }, - "km": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-km" - ] - } - }, - "kn": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-kn", "wiktionary-kn" - ] - } - }, - "ko": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "daum-kr" - ] - } - }, - "lij": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-it", "ddg", "wikipedia-lij", "ebay-it" - ] - } - }, - "lo": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-lo" - ] - } - }, - "lt": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-lt" - ] - } - }, - "ltg": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "wikipedia-ltg" - ] - } - }, - "lv": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "salidzinilv", "wikipedia-lv" - ] - } - }, - "mai": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-hi" - ] - } - }, - "meh": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "mix": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "ml": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-ml" - ] - } - }, - "mr": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-mr" - ] - } - }, - "ms": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-ms" - ] - } - }, - "my": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-my" - ] - } - }, - "nb-NO": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "gulesider-mobile-NO", "wikipedia-NO" - ] - } - }, - "ne-NP": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-ne" - ] - } - }, - "nl-NL": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-nl", "amazon-nl", "ebay-nl" - ] - } - }, - "nl": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-nl", "wikipedia-nl" - ] - } - }, - "nn-NO": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "gulesider-mobile-NO", "wikipedia-NN" - ] - } - }, - "oc": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-oc", "wiktionary-oc" - ] - } - }, - "or": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-or", "wiktionary-or" - ] - } - }, - "pa-IN": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-pa" - ] - } - }, - "pl": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-pl", "ebay-pl" - ] - } - }, - "pt-BR": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-pt" - ] - } - }, - "pt-PT": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "wikipedia-pt" - ] - } - }, - "rm": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-ch", "leo_ende_de", "wikipedia-rm" - ] - } - }, - "ro": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-ro" - ] - } - }, - "ru": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "wikipedia-ru" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "wikipedia-ru" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "wikipedia-ru" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "wikipedia-ru" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "wikipedia-ru" - ] - } - }, - "sk": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "wikipedia-sk" - ] - } - }, - "sl": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "ceneje", "odpiralni", "wikipedia-sl" - ] - } - }, - "son": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "ddg", "leosearch", "amazon-fr", "wikipedia-fr" - ] - } - }, - "sq": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-co-uk", "ddg", "wikipedia-sq" - ] - } - }, - "sr": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-sr" - ] - } - }, - "sv-SE": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "prisjakt-sv-SE", "ddg", "wikipedia-sv-SE", "amazon-se", "ebay-ch" - ] - } - }, - "ta": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-ta", "wiktionary-ta" - ] - } - }, - "te": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-te", "wiktionary-te" - ] - } - }, - "th": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-th" - ] - } - }, - "tl": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg" - ] - } - }, - "tr": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-tr" - ] - }, - "TR": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "BY": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "KZ": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - }, - "RU": { - "visibleDefaultEngines": [ - "google-com-nocodes", "ddg", "leosearch", "wikipedia-tr" - ] - } - }, - "trs": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-es" - ] - } - }, - "uk": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-uk" - ] - } - }, - "ur": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazon-in", "ddg", "wikipedia-ur" - ] - } - }, - "uz": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "amazondotcom", "ddg", "wikipedia-uz" - ] - } - }, - "vi": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "coccoc", "ddg", "wikipedia-vi" - ] - } - }, - "wo": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "ebay-fr", "wikipedia-wo" - ] - } - }, - "xh": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia" - ] - } - }, - "zam": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-es" - ] - } - }, - "zh-CN": { - "default": { - "visibleDefaultEngines": [ - "google-b-m", "baidu", "leosearch", "ddg", "wikipedia-zh-CN" - ] - }, - "CN": { - "searchDefault": "百度" - } - }, - "zh-TW": { - "default": { - "visibleDefaultEngines": [ - "leosearch", "ddg", "wikipedia-zh-TW" - ] - } - } - } -} diff --git a/patches/0012-double_strings.patch b/patches/0012-double_strings.patch deleted file mode 100644 index 1d451b22..00000000 --- a/patches/0012-double_strings.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 59204a28931e53e8e3a144f8dccf8837b31ae9dc Mon Sep 17 00:00:00 2001 -From: harvey186 -Date: Wed, 21 Feb 2024 13:14:24 +0100 -Subject: [PATCH] double_strings - ---- - app/src/main/res/values-eo/strings.xml | 6 ------ - app/src/main/res/values-nn-rNO/strings.xml | 5 ----- - 2 files changed, 11 deletions(-) - -diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml -index f541e0121..adae84f57 100644 ---- a/app/src/main/res/values-eo/strings.xml -+++ b/app/src/main/res/values-eo/strings.xml -@@ -480,12 +480,6 @@ - - Malpli da distro, malpli da kuketoj klopodante spuri vin en tiu ĉi retejo. - -- -- %1$s ĵus rifuzis kuketojn por vi -- -- -- Malpli da distro, malpli da kuketoj klopodante spuri vin en tiu ĉi retejo. -- - - Aŭtomate provi konekti al retejoj per la ĉifrita protokolo HTTPS por pliigi sekurecon. - -diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml -index 1b341ef4a..ce0c47f0c 100644 ---- a/app/src/main/res/values-nn-rNO/strings.xml -+++ b/app/src/main/res/values-nn-rNO/strings.xml -@@ -468,11 +468,6 @@ - - Færre distraksjonar, færre infokapslar som sporar deg på denne sida. - -- -- %1$s nekta nettopp infokapslar for deg -- -- Færre distraksjonar, færre infokapslar som sporar deg på denne sida. -- - - Prøver automatisk å kople til nettstadar ved hjelp av HTTPS-krypteringsprotokollen for auka sikkerheit. - --- -2.34.1 - diff --git a/patches/0015-Icon_and_name_change_to_LeOSium.patch b/patches/0015-Icon_and_name_change_to_LeOSium.patch deleted file mode 100644 index 84462f85..00000000 --- a/patches/0015-Icon_and_name_change_to_LeOSium.patch +++ /dev/null @@ -1,10159 +0,0 @@ -From 13b06ed3ef296c0f47a385c8e75c50ee160939ce Mon Sep 17 00:00:00 2001 -From: harvey186 -Date: Wed, 21 Feb 2024 17:29:53 +0100 -Subject: [PATCH] name_change_to_LeOSium - ---- - .../forkRelease/res/values/static_strings.xml | 2 +- - app/src/main/google.sh | 103 +++ - app/src/main/google1.sh | 98 +++ - app/src/main/ic_onboarding-playstore.png | Bin 0 -> 147072 bytes - .../java/org/mozilla/fenix/utils/Settings.kt | 4 +- - app/src/main/res/drawable/encypted.xml | 426 ++++++++++++ - app/src/main/res/drawable/ic_encypted.xml | 426 ++++++++++++ - .../main/res/drawable/ic_notification_new.xml | 78 +++ - .../drawable/ic_notification_permission.xml | 618 +++--------------- - .../res/drawable/ic_onboarding_background.xml | 78 +++ - .../main/res/drawable/ic_onboarding_sync.xml | 441 ++++++++++++- - .../res/drawable/ic_onboarding_welcome.xml | 398 +++++++---- - app/src/main/res/drawable/launcher_peace.xml | 271 ++++++++ - app/src/main/res/drawable/notification.xml | 231 +++++++ - app/src/main/res/google1.sh | 97 +++ - .../res/mipmap-anydpi-v26/ic_onboarding.xml | 5 + - .../mipmap-anydpi-v26/ic_onboarding_round.xml | 5 + - .../main/res/mipmap-hdpi/ic_onboarding.webp | Bin 0 -> 3488 bytes - .../res/mipmap-hdpi/ic_onboarding_peace.webp | Bin 0 -> 7028 bytes - .../res/mipmap-hdpi/ic_onboarding_round.webp | Bin 0 -> 4798 bytes - .../main/res/mipmap-mdpi/ic_onboarding.webp | Bin 0 -> 2082 bytes - .../res/mipmap-mdpi/ic_onboarding_peace.webp | Bin 0 -> 3958 bytes - .../res/mipmap-mdpi/ic_onboarding_round.webp | Bin 0 -> 3082 bytes - .../main/res/mipmap-xhdpi/ic_onboarding.webp | Bin 0 -> 5078 bytes - .../res/mipmap-xhdpi/ic_onboarding_peace.webp | Bin 0 -> 10646 bytes - .../res/mipmap-xhdpi/ic_onboarding_round.webp | Bin 0 -> 7176 bytes - .../main/res/mipmap-xxhdpi/ic_onboarding.webp | Bin 0 -> 8572 bytes - .../mipmap-xxhdpi/ic_onboarding_peace.webp | Bin 0 -> 18800 bytes - .../mipmap-xxhdpi/ic_onboarding_round.webp | Bin 0 -> 12144 bytes - .../res/mipmap-xxxhdpi/ic_onboarding.webp | Bin 0 -> 12458 bytes - .../mipmap-xxxhdpi/ic_onboarding_peace.webp | Bin 0 -> 27026 bytes - .../mipmap-xxxhdpi/ic_onboarding_round.webp | Bin 0 -> 17688 bytes - app/src/main/res/values-zh-rCN/strings.xml | 104 +-- - app/src/main/res/values-zh-rTW/strings.xml | 104 +-- - app/src/main/res/values/static_strings.xml | 24 +- - app/src/main/res/values/strings.xml | 104 +-- - .../xml/tracking_protection_preferences.xml | 4 +- - 37 files changed, 2759 insertions(+), 862 deletions(-) - create mode 100644 app/src/main/google.sh - create mode 100644 app/src/main/google1.sh - create mode 100644 app/src/main/ic_onboarding-playstore.png - create mode 100644 app/src/main/res/drawable/encypted.xml - create mode 100644 app/src/main/res/drawable/ic_encypted.xml - create mode 100644 app/src/main/res/drawable/ic_notification_new.xml - create mode 100644 app/src/main/res/drawable/ic_onboarding_background.xml - create mode 100644 app/src/main/res/drawable/launcher_peace.xml - create mode 100644 app/src/main/res/drawable/notification.xml - create mode 100644 app/src/main/res/google1.sh - create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_onboarding.xml - create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_onboarding_round.xml - create mode 100644 app/src/main/res/mipmap-hdpi/ic_onboarding.webp - create mode 100644 app/src/main/res/mipmap-hdpi/ic_onboarding_peace.webp - create mode 100644 app/src/main/res/mipmap-hdpi/ic_onboarding_round.webp - create mode 100644 app/src/main/res/mipmap-mdpi/ic_onboarding.webp - create mode 100644 app/src/main/res/mipmap-mdpi/ic_onboarding_peace.webp - create mode 100644 app/src/main/res/mipmap-mdpi/ic_onboarding_round.webp - create mode 100644 app/src/main/res/mipmap-xhdpi/ic_onboarding.webp - create mode 100644 app/src/main/res/mipmap-xhdpi/ic_onboarding_peace.webp - create mode 100644 app/src/main/res/mipmap-xhdpi/ic_onboarding_round.webp - create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_onboarding.webp - create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_onboarding_peace.webp - create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_onboarding_round.webp - create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_onboarding.webp - create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_onboarding_peace.webp - create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_onboarding_round.webp - -diff --git a/app/src/forkRelease/res/values/static_strings.xml b/app/src/forkRelease/res/values/static_strings.xml -index 0587640ee..7be98b62e 100644 ---- a/app/src/forkRelease/res/values/static_strings.xml -+++ b/app/src/forkRelease/res/values/static_strings.xml -@@ -4,5 +4,5 @@ - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - -- Iceraven -+ LeOSium - -diff --git a/app/src/main/google.sh b/app/src/main/google.sh -new file mode 100644 -index 000000000..0b8fb4bce ---- /dev/null -+++ b/app/src/main/google.sh -@@ -0,0 +1,103 @@ -+grep -RiIl 'www.google.com' | xargs sed -i 's/www.google.com/leosearch.ddns.net/g' -+ -+ -+ -+ -+ -+java/org/mozilla/fenix/tabstray/inactivetabs/InactiveTabs.kt:280: url = "www.google.com", -+res/values-iw/strings.xml:1884: יש להחליף את השאילתה עם ״%s״. לדוגמה:\nhttps://www.google.com/search?q=%s -+res/values-nn-rNO/strings.xml:1927: Byt ut spørjinga med «%s». Eksempel:\nhttps://www.google.com/search?q=%s -+res/values-pt-rBR/strings.xml:1965: Substitua a consulta por “%s”. Por exemplo:\nhttps://www.google.com/search?q=%s -+res/values-my/strings.xml:1332: စုံစမ်းမှုကို “%s” ဖြင့်အစားထိုးပါ။ ဥပမာ။ \n https://www.google.com/search?q= %s -+res/values-gl/strings.xml:1936: Substitúír a consulta por «%s». Exemplo:\nhttps://www.google.com/search?q=%s -+res/values-fr/strings.xml:1983: Remplacer les termes de la recherche par « %s ». Par exemple :\nhttps://www.google.com/search?q=%s -+res/values-dsb/strings.xml:1956: Napšašowanje z „%s“ wuměniś. Pśikład: \nhttps://www.google.com/search?q=%s -+res/values-de/strings.xml:1990: Anfrage durch „%s“ ersetzen. Beispiel:\nhttps://www.google.com/search?q=%s -+res/values-lo/strings.xml:1933: ແທນທີ່ຄິວລີດ້ວຍ “%s”. ຕົວຢ່າ: \nhttps://www.google.com/search?q=%s -+res/values-sat/strings.xml:1926: “%s” ᱥᱟᱞᱟᱜ ᱠᱣᱮᱨᱭ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱡᱮᱢᱚᱱ:\nhttps://www.google.com/search?q=%s -+res/values-tl/strings.xml:1566: Palitan ang query ng “%s”. Halimbawa:\nhttps://www.google.com/search?q=%s -+res/values-sr/strings.xml:1889: Замените упит са “%s”. Пример:\nhttps://www.google.com/search?q=%s -+res/values-fi/strings.xml:1976: Korvaa kysely käyttäen ”%s”. Esimerkki:\nhttps://www.google.com/search?q=%s -+res/values-vec/strings.xml:822: Sostituire ƚa ciave de reserca co “%s”. Exempio:\nhttps://www.google.com/search?q=%s -+res/values-hr/strings.xml:1951: Zamijeni upit s „%s”. Primjer:\nhttps://www.google.com/search?q=%s -+res/values-es/strings.xml:1978: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+res/values-sc/strings.xml:1561: Sostitui sa chirca cun «%s». Esempru: \nhttps://www.google.com/search?q=%s -+res/values-fur/strings.xml:1955: Sostituìs il test de ricercje cun “%s”. Esempli:\nhttps://www.google.com/search?q=%s -+res/values-tt/strings.xml:1481: Сорауны “%s” юлы белән алыштырыгыз. Мисал өчен:\nhttps://www.google.com/search?q=%s -+res/values-gd/strings.xml:1892: Cuir “%s” an àite na ceist. Ball-eisimpleir:\nhttps://www.google.com/search?q=%s -+res/values-ru/strings.xml:1984: Замените строку запроса на «%s». Пример:\nhttps://www.google.com/search?q=%s -+res/values-kk/strings.xml:1956: Сұранымды "%s" жолымен алмастырыңыз. Мысалы:\nhttps://www.google.com/search?q=%s -+res/values-te/strings.xml:1403: వెతుకుడు పదాన్ని “%s”తో పూరించండి. ఉదాహరణ:\nhttps://www.google.com/search?q=%s -+res/values-ug/strings.xml:1855: سۈرۈشتۈرۈشنى «%s» غا ئالماشتۇرىدۇ. مەسىلەن:\nhttps://www.google.com/search?q=%s -+res/values-ml/strings.xml:1316: അന്വേഷണ വാചകത്തിന് പകരം “%s” എന്നത് ഉപയോഗിക്കുക. ഉദാഹരണം: \nhttps://www.google.com/search?q=%s -+res/values-hi-rIN/strings.xml:1383: “%s” से प्रश्न बदले। उदाहरण:\nhttps://www.google.com/search?q=%s -+res/values-cak/strings.xml:1787:Achi\'el: \nhttps://www.google.com/search?q=%s -+res/values-yo/strings.xml:1694: Rọ́pò ìbéérè pẹ̀lú “%s”. Àpẹẹrẹ:\nhttps://www.google.com/search?q=%s -+res/values-cy/strings.xml:1950: Disodli’r ymholiad â “%s”. Enghraifft:\nhttps://www.google.com/search?q=%s -+res/values-pt-rPT/strings.xml:1962: Substitua a consulta por “%s”. Exemplo: \nhttps://www.google.com/search?q=%s -+res/values-en-rGB/strings.xml:1946: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+res/values-kaa/strings.xml:1825: Sorawdı “%s” menen almastırıń. Mısalı:\nhttps://www.google.com/search?q=%s -+res/values-ka/strings.xml:1955: მიუთითეთ „%s“ საძიებო ტექსტად. მაგალითი:\nhttps://www.google.com/search?q=%s -+res/values-es-rAR/strings.xml:1980: Reemplazar la consulta con "%s". Ejemplo:\n https://www.google.com/search?q=%s -+res/values-bg/strings.xml:1453: Заменете заявката с „%s“. Пример:\nhttps://www.google.com/search?q=%s -+res/values-nb-rNO/strings.xml:1930: Bytt ut spørringen med «%s». Eksempel:\nhttps://www.google.com/search?q=%s -+res/values-zh-rCN/strings.xml:1995: 用“%s”替换查询关键字。示例:\nhttps://www.google.com/search?q=%s -+res/values-el/strings.xml:1977: Αντικαταστήστε τον όρο αναζήτησης με «%s». Παράδειγμα:\nhttps://www.google.com/search?q=%s -+res/values/strings.xml:1933: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+res/values-ca/strings.xml:1967: Substituïu la consulta per «%s». Per exemple:\nhttps://www.google.com/search?q=%s -+res/values-be/strings.xml:1981: Змяніць запыт на “%s”. Прыклад:\nhttps://www.google.com/search?q=%s -+res/values-eu/strings.xml:1954: Ordezkatu galdera-katea "%s" testuarekin. Adibidez:\nhttps://www.google.com/search?q=%s -+res/values-cs/strings.xml:1976: Dotaz nahraďte „%s“. Příklad: \nhttps://www.google.com/search?q=%s -+res/values-lij/strings.xml:926: Cangia a ciave de riçerca con “%s”. Ezenpio:\nhttps://www.google.com/search?q=%s -+res/values-en-rCA/strings.xml:1949: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+res/values-et/strings.xml:1576: Päringu asendamiseks kasuta “%s”. Näiteks \nhttps://www.google.com/search?q=%s -+res/values-es-rCL/strings.xml:1952: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+res/values-ko/strings.xml:2008: 쿼리를 “%s”로 대체합니다. 예:\nhttps://www.google.com/search?q=%s -+res/values-pa-rIN/strings.xml:1978: “%s” ਨਾਲ ਕਿਊਰੀ ਨੂੰ ਤਬਦੀਲ ਕਰੋ। ਮਿਸਾਲ ਵਜੋਂ:\nhttps://www.google.com/search?q=%s -+res/values-eo/strings.xml:1964: Anstataŭigi la serĉotan tekston per “%s”. Ekzemple:\nhttps://www.google.com/search?q=%s -+res/values-uz/strings.xml:1722: Soʻrovni “%s” bilan almashtiring. Masalan:\nhttps://www.google.com/search?q=%s -+res/values-gu-rIN/strings.xml:1121: ક્વેરીને “%s”થી બદલો. ઉદાહરણ:\n https://www.google.com/search?q=%s -+res/values-sl/strings.xml:1970: Zamenjajte poizvedbo z "%s". Primer: \nhttps://www.google.com/search?q=%s -+res/values-rm/strings.xml:1957: Remplazzar il term da tschertga cun «%s». Per exempel: \nhttps://www.google.com/search?q=%s -+res/values-hsb/strings.xml:1964: Naprašowanje z „%s“ wuměnić. Přikład: \nhttps://www.google.com/search?q=%s -+res/values-kab/strings.xml:1919: Beddel aḍris n unadi “%s”. Amedya: \nhttps://www.google.com/search?q=%s -+res/values-sq/strings.xml:1940: Zëvendësoni kërkesën me “%s”. Shembull:\nhttps://www.google.com/search?q=%s -+res/values-zh-rTW/strings.xml:1991: 用「%s」取代查詢關鍵字。例如:\nhttps://www.google.com/search?q=%s -+res/values-in/strings.xml:1914: Ganti kueir dengan “%s”. Contoh:\nhttps://www.google.com/search?q=%s -+res/values-da/strings.xml:1945: Erstat forespørgslen med “%s”. Eksempel:\nhttps://www.google.com/search?q=%s -+res/values-th/strings.xml:1934: แทนที่คำค้นด้วย “%s” ตัวอย่าง:\nhttps://www.google.com/search?q=%s -+res/values-kmr/strings.xml:1880: Lêpirsînê bi “%s”ê pev biguherîne. Mînak:\nhttps://www.google.com/search?q=%s -+res/values-is/strings.xml:1949: Skipta út fyrirspurninni með “%s”. Dæmi:\nhttps://www.google.com/search?q=%s -+res/values-it/strings.xml:1997: Sostituire la chiave di ricerca con “%s”. Esempio:\nhttps://www.google.com/search?q=%s -+res/values-hy-rAM/strings.xml:1937: Հարցումը փոխարինել “%s”-ով: Օրինակ՝ \nhttps://www.google.com/search?q=%s -+res/values-gn/strings.xml:2000: Emoambue porandu “%s” ndive. Techapyrã:https://www.google.com/search?q=%s -+res/values-vi/strings.xml:1944: Thay thế chuỗi truy vấn thành “%s”. Ví dụ:\nhttps://www.google.com/search?q=%s -+res/values-ar/strings.xml:1397: استبدِل الاستعلام بِ‍ ”%s“. مثال:\nhttps://www.google.com/search?q=%s -+res/values-kn/strings.xml:1251: ಪ್ರಶ್ನೆಯನ್ನು “%s” ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ. ಉದಾಹರಣೆ: \n https://www.google.com/search?q=%s -+res/values-trs/strings.xml:1968: Nādūnā sa nana\'uî\'t ngà “%s”. dàj rû\':\nhttps://www.google.com/search?q=%s -+res/values-am/strings.xml:1920: ጥያቄውን በ "%s" ይተኩ። ምሳሌ፡- \nhttps://www.google.com/search?q=%s -+res/values-ia/strings.xml:2007: Replaciar le recerca con “%s”. Exemplo:\nhttps://www.google.com/search?q=%s -+res/values-nl/strings.xml:1955: Zoekvraag vervangen door ‘%s’. Bijvoorbeeld: \nhttps://www.google.com/search?q=%s -+res/values-oc/strings.xml:1969: Remplaçar los tèrmes de la recèrca per « %s ». Per exemple :\nhttps://www.google.com/search?q=%s -+res/values-an/strings.xml:1365: Substituyir la consulta con “%s”. Eixemplo:\n https://www.google.com/search?q=%s -+res/values-mr/strings.xml:1298: क्वेरी “%s” ने बदला. उदा: \nhttps://www.google.com/search?q=%s -+res/values-lt/strings.xml:1442: Vietoje užklausos įrašykite „%s“. Pvz.:\nhttps://www.google.com/search?q=%s -+res/values-es-rMX/strings.xml:1877: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+res/values-sv-rSE/strings.xml:1971: Byt ut frågan med “%s”. Exempel:\nhttps://www.google.com/search?q=%s -+res/values-su/strings.xml:1964: Ganti kueri ku “%s”. Conto:\nhttps://www.google.com/search?q=%s -+res/values-ta/strings.xml:1056: வினவலை “%s” ஆக மாற்றுக. எ.கா:\nhttps://www.google.com/search?q=%s -+res/values-ja/strings.xml:1985: クエリーを “%s” に置き換えます。例:\nhttps://www.google.com/search?q=%s -+res/values-es-rES/strings.xml:1992: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+res/values-hu/strings.xml:1954: A keresés cseréje erre: „%s”. Példa:\nhttps://www.google.com/search?q=%s -+res/values-fy-rNL/strings.xml:1941: Sykfraach ferfange troch ‘%s’. Bygelyks: \nhttps://www.google.com/search?q=%s -+res/values-ga-rIE/strings.xml:816: Cuir “%s” in áit an iarratais. Mar shampla:\nhttps://www.google.com/search?q=%s -+res/values-uk/strings.xml:1966: Змініть запит на “%s”. Зразок:\nhttps://www.google.com/search?q=%s -+res/values-skr/strings.xml:1847:مثال:\nhttps://www.google.com/search?q=%s -+res/values-sk/strings.xml:1965: Nahraďte výraz s „%s“. Príklad:\nhttps://www.google.com/search?q=%s -+res/values-fa/strings.xml:1858: درخواست را با “%s” جایگزین کنید. مثال: \nhttps://www.google.com/search?q=%s -+res/values-ro/strings.xml:1066: Înlocuiește interogarea cu „%s”. Exemplu: \nhttps://www.google.com/search?q=%s -+res/values-tg/strings.xml:1956: Сатри дархостро бо “%s” иваз намоед. Масалан:\nhttps://www.google.com/search?q=%s -+res/values-br/strings.xml:1900: Amsaviñ ar gerioù klasket gant “%s”. Da skouer: \nhttps://www.google.com/search?q= %s -+res/values-bn/strings.xml:970: "%s" দিয়ে কোয়েরি প্রতিস্থাপন করুন। উদাহরণ: \nhttps://www.google.com/search?q=%s -+res/values-tr/strings.xml:1947: Sorguyu “%s” ile değiştirin. Örnek:\nhttps://www.google.com/search?q=%s -+res/values-co/strings.xml:1982: Rimpiazzà i termi di a ricerca da « %s ». Esempiu :\nhttps://www.google.com/search?q=%s -diff --git a/app/src/main/google1.sh b/app/src/main/google1.sh -new file mode 100644 -index 000000000..710240597 ---- /dev/null -+++ b/app/src/main/google1.sh -@@ -0,0 +1,98 @@ -+java/org/mozilla/fenix/tabstray/inactivetabs/InactiveTabs.kt:280: url = "www.google.com", -+google.sh:1:java/org/mozilla/fenix/tabstray/inactivetabs/InactiveTabs.kt:280: url = "www.google.com", -+google.sh:2:res/values-iw/strings.xml:1884: יש להחליף את השאילתה עם ״%s״. לדוגמה:\nhttps://www.google.com/search?q=%s -+google.sh:3:res/values-nn-rNO/strings.xml:1927: Byt ut spørjinga med «%s». Eksempel:\nhttps://www.google.com/search?q=%s -+google.sh:4:res/values-pt-rBR/strings.xml:1965: Substitua a consulta por “%s”. Por exemplo:\nhttps://www.google.com/search?q=%s -+google.sh:5:res/values-my/strings.xml:1332: စုံစမ်းမှုကို “%s” ဖြင့်အစားထိုးပါ။ ဥပမာ။ \n https://www.google.com/search?q= %s -+google.sh:6:res/values-gl/strings.xml:1936: Substitúír a consulta por «%s». Exemplo:\nhttps://www.google.com/search?q=%s -+google.sh:7:res/values-fr/strings.xml:1983: Remplacer les termes de la recherche par « %s ». Par exemple :\nhttps://www.google.com/search?q=%s -+google.sh:8:res/values-dsb/strings.xml:1956: Napšašowanje z „%s“ wuměniś. Pśikład: \nhttps://www.google.com/search?q=%s -+google.sh:9:res/values-de/strings.xml:1990: Anfrage durch „%s“ ersetzen. Beispiel:\nhttps://www.google.com/search?q=%s -+google.sh:10:res/values-lo/strings.xml:1933: ແທນທີ່ຄິວລີດ້ວຍ “%s”. ຕົວຢ່າ: \nhttps://www.google.com/search?q=%s -+google.sh:11:res/values-sat/strings.xml:1926: “%s” ᱥᱟᱞᱟᱜ ᱠᱣᱮᱨᱭ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱡᱮᱢᱚᱱ:\nhttps://www.google.com/search?q=%s -+google.sh:12:res/values-tl/strings.xml:1566: Palitan ang query ng “%s”. Halimbawa:\nhttps://www.google.com/search?q=%s -+google.sh:13:res/values-sr/strings.xml:1889: Замените упит са “%s”. Пример:\nhttps://www.google.com/search?q=%s -+google.sh:14:res/values-fi/strings.xml:1976: Korvaa kysely käyttäen ”%s”. Esimerkki:\nhttps://www.google.com/search?q=%s -+google.sh:15:res/values-vec/strings.xml:822: Sostituire ƚa ciave de reserca co “%s”. Exempio:\nhttps://www.google.com/search?q=%s -+google.sh:16:res/values-hr/strings.xml:1951: Zamijeni upit s „%s”. Primjer:\nhttps://www.google.com/search?q=%s -+google.sh:17:res/values-es/strings.xml:1978: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+google.sh:18:res/values-sc/strings.xml:1561: Sostitui sa chirca cun «%s». Esempru: \nhttps://www.google.com/search?q=%s -+google.sh:19:res/values-fur/strings.xml:1955: Sostituìs il test de ricercje cun “%s”. Esempli:\nhttps://www.google.com/search?q=%s -+google.sh:20:res/values-tt/strings.xml:1481: Сорауны “%s” юлы белән алыштырыгыз. Мисал өчен:\nhttps://www.google.com/search?q=%s -+google.sh:21:res/values-gd/strings.xml:1892: Cuir “%s” an àite na ceist. Ball-eisimpleir:\nhttps://www.google.com/search?q=%s -+google.sh:22:res/values-ru/strings.xml:1984: Замените строку запроса на «%s». Пример:\nhttps://www.google.com/search?q=%s -+google.sh:23:res/values-kk/strings.xml:1956: Сұранымды "%s" жолымен алмастырыңыз. Мысалы:\nhttps://www.google.com/search?q=%s -+google.sh:24:res/values-te/strings.xml:1403: వెతుకుడు పదాన్ని “%s”తో పూరించండి. ఉదాహరణ:\nhttps://www.google.com/search?q=%s -+google.sh:25:res/values-ug/strings.xml:1855: سۈرۈشتۈرۈشنى «%s» غا ئالماشتۇرىدۇ. مەسىلەن:\nhttps://www.google.com/search?q=%s -+google.sh:26:res/values-ml/strings.xml:1316: അന്വേഷണ വാചകത്തിന് പകരം “%s” എന്നത് ഉപയോഗിക്കുക. ഉദാഹരണം: \nhttps://www.google.com/search?q=%s -+google.sh:27:res/values-hi-rIN/strings.xml:1383: “%s” से प्रश्न बदले। उदाहरण:\nhttps://www.google.com/search?q=%s -+google.sh:28:res/values-cak/strings.xml:1787:Achi\'el: \nhttps://www.google.com/search?q=%s -+google.sh:29:res/values-yo/strings.xml:1694: Rọ́pò ìbéérè pẹ̀lú “%s”. Àpẹẹrẹ:\nhttps://www.google.com/search?q=%s -+google.sh:30:res/values-cy/strings.xml:1950: Disodli’r ymholiad â “%s”. Enghraifft:\nhttps://www.google.com/search?q=%s -+google.sh:31:res/values-pt-rPT/strings.xml:1962: Substitua a consulta por “%s”. Exemplo: \nhttps://www.google.com/search?q=%s -+google.sh:32:res/values-en-rGB/strings.xml:1946: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+google.sh:33:res/values-kaa/strings.xml:1825: Sorawdı “%s” menen almastırıń. Mısalı:\nhttps://www.google.com/search?q=%s -+google.sh:34:res/values-ka/strings.xml:1955: მიუთითეთ „%s“ საძიებო ტექსტად. მაგალითი:\nhttps://www.google.com/search?q=%s -+google.sh:35:res/values-es-rAR/strings.xml:1980: Reemplazar la consulta con "%s". Ejemplo:\n https://www.google.com/search?q=%s -+google.sh:36:res/values-bg/strings.xml:1453: Заменете заявката с „%s“. Пример:\nhttps://www.google.com/search?q=%s -+google.sh:37:res/values-nb-rNO/strings.xml:1930: Bytt ut spørringen med «%s». Eksempel:\nhttps://www.google.com/search?q=%s -+google.sh:38:res/values-zh-rCN/strings.xml:1995: 用“%s”替换查询关键字。示例:\nhttps://www.google.com/search?q=%s -+google.sh:39:res/values-el/strings.xml:1977: Αντικαταστήστε τον όρο αναζήτησης με «%s». Παράδειγμα:\nhttps://www.google.com/search?q=%s -+google.sh:40:res/values/strings.xml:1933: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+google.sh:41:res/values-ca/strings.xml:1967: Substituïu la consulta per «%s». Per exemple:\nhttps://www.google.com/search?q=%s -+google.sh:42:res/values-be/strings.xml:1981: Змяніць запыт на “%s”. Прыклад:\nhttps://www.google.com/search?q=%s -+google.sh:43:res/values-eu/strings.xml:1954: Ordezkatu galdera-katea "%s" testuarekin. Adibidez:\nhttps://www.google.com/search?q=%s -+google.sh:44:res/values-cs/strings.xml:1976: Dotaz nahraďte „%s“. Příklad: \nhttps://www.google.com/search?q=%s -+google.sh:45:res/values-lij/strings.xml:926: Cangia a ciave de riçerca con “%s”. Ezenpio:\nhttps://www.google.com/search?q=%s -+google.sh:46:res/values-en-rCA/strings.xml:1949: Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s -+google.sh:47:res/values-et/strings.xml:1576: Päringu asendamiseks kasuta “%s”. Näiteks \nhttps://www.google.com/search?q=%s -+google.sh:48:res/values-es-rCL/strings.xml:1952: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+google.sh:49:res/values-ko/strings.xml:2008: 쿼리를 “%s”로 대체합니다. 예:\nhttps://www.google.com/search?q=%s -+google.sh:50:res/values-pa-rIN/strings.xml:1978: “%s” ਨਾਲ ਕਿਊਰੀ ਨੂੰ ਤਬਦੀਲ ਕਰੋ। ਮਿਸਾਲ ਵਜੋਂ:\nhttps://www.google.com/search?q=%s -+google.sh:51:res/values-eo/strings.xml:1964: Anstataŭigi la serĉotan tekston per “%s”. Ekzemple:\nhttps://www.google.com/search?q=%s -+google.sh:52:res/values-uz/strings.xml:1722: Soʻrovni “%s” bilan almashtiring. Masalan:\nhttps://www.google.com/search?q=%s -+google.sh:53:res/values-gu-rIN/strings.xml:1121: ક્વેરીને “%s”થી બદલો. ઉદાહરણ:\n https://www.google.com/search?q=%s -+google.sh:54:res/values-sl/strings.xml:1970: Zamenjajte poizvedbo z "%s". Primer: \nhttps://www.google.com/search?q=%s -+google.sh:55:res/values-rm/strings.xml:1957: Remplazzar il term da tschertga cun «%s». Per exempel: \nhttps://www.google.com/search?q=%s -+google.sh:56:res/values-hsb/strings.xml:1964: Naprašowanje z „%s“ wuměnić. Přikład: \nhttps://www.google.com/search?q=%s -+google.sh:57:res/values-kab/strings.xml:1919: Beddel aḍris n unadi “%s”. Amedya: \nhttps://www.google.com/search?q=%s -+google.sh:58:res/values-sq/strings.xml:1940: Zëvendësoni kërkesën me “%s”. Shembull:\nhttps://www.google.com/search?q=%s -+google.sh:59:res/values-zh-rTW/strings.xml:1991: 用「%s」取代查詢關鍵字。例如:\nhttps://www.google.com/search?q=%s -+google.sh:60:res/values-in/strings.xml:1914: Ganti kueir dengan “%s”. Contoh:\nhttps://www.google.com/search?q=%s -+google.sh:61:res/values-da/strings.xml:1945: Erstat forespørgslen med “%s”. Eksempel:\nhttps://www.google.com/search?q=%s -+google.sh:62:res/values-th/strings.xml:1934: แทนที่คำค้นด้วย “%s” ตัวอย่าง:\nhttps://www.google.com/search?q=%s -+google.sh:63:res/values-kmr/strings.xml:1880: Lêpirsînê bi “%s”ê pev biguherîne. Mînak:\nhttps://www.google.com/search?q=%s -+google.sh:64:res/values-is/strings.xml:1949: Skipta út fyrirspurninni með “%s”. Dæmi:\nhttps://www.google.com/search?q=%s -+google.sh:65:res/values-it/strings.xml:1997: Sostituire la chiave di ricerca con “%s”. Esempio:\nhttps://www.google.com/search?q=%s -+google.sh:66:res/values-hy-rAM/strings.xml:1937: Հարցումը փոխարինել “%s”-ով: Օրինակ՝ \nhttps://www.google.com/search?q=%s -+google.sh:67:res/values-gn/strings.xml:2000: Emoambue porandu “%s” ndive. Techapyrã:https://www.google.com/search?q=%s -+google.sh:68:res/values-vi/strings.xml:1944: Thay thế chuỗi truy vấn thành “%s”. Ví dụ:\nhttps://www.google.com/search?q=%s -+google.sh:69:res/values-ar/strings.xml:1397: استبدِل الاستعلام بِ‍ ”%s“. مثال:\nhttps://www.google.com/search?q=%s -+google.sh:70:res/values-kn/strings.xml:1251: ಪ್ರಶ್ನೆಯನ್ನು “%s” ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ. ಉದಾಹರಣೆ: \n https://www.google.com/search?q=%s -+google.sh:71:res/values-trs/strings.xml:1968: Nādūnā sa nana\'uî\'t ngà “%s”. dàj rû\':\nhttps://www.google.com/search?q=%s -+google.sh:72:res/values-am/strings.xml:1920: ጥያቄውን በ "%s" ይተኩ። ምሳሌ፡- \nhttps://www.google.com/search?q=%s -+google.sh:73:res/values-ia/strings.xml:2007: Replaciar le recerca con “%s”. Exemplo:\nhttps://www.google.com/search?q=%s -+google.sh:74:res/values-nl/strings.xml:1955: Zoekvraag vervangen door ‘%s’. Bijvoorbeeld: \nhttps://www.google.com/search?q=%s -+google.sh:75:res/values-oc/strings.xml:1969: Remplaçar los tèrmes de la recèrca per « %s ». Per exemple :\nhttps://www.google.com/search?q=%s -+google.sh:76:res/values-an/strings.xml:1365: Substituyir la consulta con “%s”. Eixemplo:\n https://www.google.com/search?q=%s -+google.sh:77:res/values-mr/strings.xml:1298: क्वेरी “%s” ने बदला. उदा: \nhttps://www.google.com/search?q=%s -+google.sh:78:res/values-lt/strings.xml:1442: Vietoje užklausos įrašykite „%s“. Pvz.:\nhttps://www.google.com/search?q=%s -+google.sh:79:res/values-es-rMX/strings.xml:1877: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+google.sh:80:res/values-sv-rSE/strings.xml:1971: Byt ut frågan med “%s”. Exempel:\nhttps://www.google.com/search?q=%s -+google.sh:81:res/values-su/strings.xml:1964: Ganti kueri ku “%s”. Conto:\nhttps://www.google.com/search?q=%s -+google.sh:82:res/values-ta/strings.xml:1056: வினவலை “%s” ஆக மாற்றுக. எ.கா:\nhttps://www.google.com/search?q=%s -+google.sh:83:res/values-ja/strings.xml:1985: クエリーを “%s” に置き換えます。例:\nhttps://www.google.com/search?q=%s -+google.sh:84:res/values-es-rES/strings.xml:1992: Reemplazar la consulta con “%s”. Ejemplo:\n https://www.google.com/search?q=%s -+google.sh:85:res/values-hu/strings.xml:1954: A keresés cseréje erre: „%s”. Példa:\nhttps://www.google.com/search?q=%s -+google.sh:86:res/values-fy-rNL/strings.xml:1941: Sykfraach ferfange troch ‘%s’. Bygelyks: \nhttps://www.google.com/search?q=%s -+google.sh:87:res/values-ga-rIE/strings.xml:816: Cuir “%s” in áit an iarratais. Mar shampla:\nhttps://www.google.com/search?q=%s -+google.sh:88:res/values-uk/strings.xml:1966: Змініть запит на “%s”. Зразок:\nhttps://www.google.com/search?q=%s -+google.sh:89:res/values-skr/strings.xml:1847:مثال:\nhttps://www.google.com/search?q=%s -+google.sh:90:res/values-sk/strings.xml:1965: Nahraďte výraz s „%s“. Príklad:\nhttps://www.google.com/search?q=%s -+google.sh:91:res/values-fa/strings.xml:1858: درخواست را با “%s” جایگزین کنید. مثال: \nhttps://www.google.com/search?q=%s -+google.sh:92:res/values-ro/strings.xml:1066: Înlocuiește interogarea cu „%s”. Exemplu: \nhttps://www.google.com/search?q=%s -+google.sh:93:res/values-tg/strings.xml:1956: Сатри дархостро бо “%s” иваз намоед. Масалан:\nhttps://www.google.com/search?q=%s -+google.sh:94:res/values-br/strings.xml:1900: Amsaviñ ar gerioù klasket gant “%s”. Da skouer: \nhttps://www.google.com/search?q= %s -+google.sh:95:res/values-bn/strings.xml:970: "%s" দিয়ে কোয়েরি প্রতিস্থাপন করুন। উদাহরণ: \nhttps://www.google.com/search?q=%s -+google.sh:96:res/values-tr/strings.xml:1947: Sorguyu “%s” ile değiştirin. Örnek:\nhttps://www.google.com/search?q=%s -+google.sh:97:res/values-co/strings.xml:1982: Rimpiazzà i termi di a ricerca da « %s ». Esempiu :\nhttps://www.google.com/search?q=%s -diff --git a/app/src/main/ic_onboarding-playstore.png b/app/src/main/ic_onboarding-playstore.png -new file mode 100644 -index 0000000000000000000000000000000000000000..7dd5941dbb4ed28a0bf2232b40f7a00e542de004 -GIT binary patch -literal 147072 -zcmd>lgE4IqyGlp3gpGY-785?km1=JqZSSnq*V9NW(h-;g2!)4XmLpvuYC(@>VTXc3#|KA+PMXTSa -zjHs7;D^?P?b`8I#=p1WD2K@%%Z2bQnWeAIX7)N=*H$x@f4P!0dP};q#11>szA6_Dn -zs(T)wy7u3Jrr$Wl0c7$b*z20G`4skm0?=*=pbscp*4wA}mEYCBIsEL@Py|n3jGQ#b -z_((nDg@RLt+mmr~CO&7hxDgYUJQNjtR}eLp-hcPzhe#vh8iS79_9|`;i|f^=UotW# -z5H@jHL6`S8MtwHiEiA97_H*7h`3UBC3${h;GhV%ZBqQWi^6^KTZT?ZhL*zlrFiC%6 -zzfK!`e%E!?5OtBxb~oTdU3ku>^oj)^)ed1#X;wGC( -z^#zfW(fcl>Nz-lfdUR*q@h4~AvGjc=LJdBybWZfS*U_Ky>i*$=F$rKkH -z$Z6nx$%n~t6d~n1WmFJ0kolUq4exhE@%Fnpz0{oknVcT|98Nnxqr4busEXlvMjM~! -zqKs0xyJ%}%V1SE9vciGDc%;lWiA`*rmh8X$-9LKH%56qONVoIK^5k4aI#n&Uqv-QnjXbCK{X`q -z?du3fPP~U9*Vu89iRoMRr1gr=_g}j9%Q(H&v>=nY$$0_r4&$@h-fM*$E~n(D8l6qi -zjyBK>Y?PjB%KNMjje^wo-Kd>7q#(L!5-nh8bGYaMNbrVF?d|IS+iZ5@J*5v#Jpq~| -zO!>5NZ*ta;FuZp?zp>d_Tm1!Mt$hT-Q|1@l9TKB~QnyJK+6XeH8#-F>*%w&4L|H!W -zElLW8?>vhiB;DI0k*WE)8u8FpnQ+xNXr!j9e6EH}?(5tJ*1r{=W00fa;39Q!LwK+E -zZ7oCBftPZhN{C!PosQ}!pES65v5rrQw5m -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 -z!6=JreJs-V4iu_xlgiY&UKPSsh87 -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 -zNOL|h`iB4v;cUOkCjr}dB03JR1)Zrb -zXN6^d&Hbf30XYfT&U~jT4-*BkNaEw`Jf?oKKG)7{2C?o=wKk*8X?dr@eXB7bhXOMG -z{Yam|kj7!UXz>biGzffqLyEz?L)l-Qz|hB-cy{regDc~dWOKQ!T%o?7xmN!NFi;}S;Bl5?DKSw}>x*H}N@64#m#p}~0F -zsC?-1ln#i+1=Erf`{R2^2FDqy=tAcWt7{YOhWBZ~iH2xk(5)P+)Ws)#tv{tc1$`rd -zIk|1C?WpJ+?_~cS#EJGs1@vCiKHjnYuW1^NW}oTUz~tn~=5kI-ZZKvV+9tKVhrgD4 -zk(bigl3LPVeu?ho`_PSuVJCecY=wd% -z4Fr&A&Kl(a<0!(MC)#K>5rpshCS5&!>jqqQlzIUfs2jg*GyO6JQVorg+R{4&%epNM -zOK@p$q(}@ptn%g4gG`@-P`R1WH|q)pjDGlS&F?s83aZJ%H*Kkw4Bq -zBDXLC+EpW#;O$civt%Ol1S(1EM3AoT{7j- -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 -z{=ZKky#VJ>5t9E1{%L10ob#Z3`)^j> -z7xJVH!*Fj|>$u*&qU-z!PRG=7>mgDJYzO}A>NR+lF%C&59WI+TDVP=Nv!u4kUvs+* -z3q?oC(^ID|j@J6(hLsYbrzlBFg)M&SRX5jh*7X=duF$F?6$nqCr})?UFbW;~Wq85@ -z5+B3HyBIyK#~XXqKg2etHAs<|N~2NaholSRiqcfKvj0QjOTu@i-oH7r+Jc5j-r6HopDGz75pZR`Q9Vi3R4 -z;qavF&cjuB>rBIjpU`Tjw_Awm|H`X~=Km+JdQrjwg()uq4G88l)~=0Wban$HlnXC< -zB!I5*A?p1AB+aM}w$*o#Ohro?v}+_uuA3AR$B&IGcLnXhczr{cy-DH_I!rZ=UAC=}RTz{d7& -z)8qIRM>cv7ed5bcf$}bxY>aR@Ecaa&){1R$q?w1df3iVCPR11kmgLyEsCGy(1G&Rf -z$b+wpIK)lS6SMYCO!WCA0mjFHH#NNdPH@jXqq(WF-|+t=W%_@Cg-YzmHlNpK$9bsz -zB8tegv$up!BmGDS|1|$@Dp5aukcIy~>}gEWdMtYX|xtl~8& -z0K4@A$=j(j$&ugfCNZv;E8I>YEEgH1s^TOsu0=Sa%YWkpjNWe~36H*bANxE6E&HRU -znQO}b>B{q9E&aZjcQ>T39nw(mXWJaw5VL$Nd^8LFz47wRxYE6ewu!zC7iZ?b^n2zlBtu -zYLfvB;?nxf{F@}jLK!!q~mss16w31&XRVqH;X88N=D -z&9ICZf_m2u!jWO17qvFb3RuolPVM*EH8IBNRd!j}(DhCsWW;$LNF78>UU(SzL%liG -zHU5!1;j>LYZ?d;1%HiXumKDnO&%UhDM6onog=;=;9!`sO=Hxb4aC|W?XOWS)@?eWQ -z10%AI>z%G6wdx5+Qk7w)b-FHI#<&J_`kH3v!|W6`*OKyVZ1w{iKPLwcQ|U_U?>*q} -zm>Y5{{Y~cc_Oj+*b1fx(*(L-ow-2$DK;gUD;ndW-T+*rG-=|#4!;7)_<{AbC4wA$f -zgBq9@?y1>vTv+A)I*61y7;Ak&K@8xB>vZiDP%IO{l|-)C%dx}zZ&IN0 -z1nN$POAxh&KN&T%UO3r--XD;(&Lml+I{7!E-1O1r7FqDGG|aH{!9rbfHiGwh*LRM$ -zv_i=!qo?+fHd|AzaaDgv41N^xc-SJ9W-&dn+RAOjkBuLWWyNUuzRER((cdGE?=hCZ -zvn@RzZZX&kWA6CEJZ|E3I}n1whz6gkOuBZ+BN({lp}F>5s`w?oP}VcRoltqC^Em9mE66AH@&ueG(pcQ)QmQ*!YNl>b3MJiDgUpY -zojB+sUXHh*tHc#XIIE|^DVN%#d|!dUa^=T$y_Fi`WV!dGGC$Ljod0lbTdPj0Q@-Z9 -zk`!^jdd)extjMt6pjkeJB~$1qMtT2kqaUbgi_XUoEH4x*@}QSDus5MZgq+r$3vQOH -zHWK5@J9MJU+}7CjUQ{c#h`)|X7ANxp>v{<>EwDC&9aeaoE-z}$dfqG@tEI+1UuoXG -z`j1ia_Eh`6z5h*4bMC4?ZPb{xsf41ypQe*nqDI(Ox%>yJ9cPufb!~X#xN6Io_0f@^ -z+%7TU7cZMQv`9s%)rMcN-u&kwF5V-W`_}?S3!?*D?(2)B5P$~)7GX^s`H2{{$0tn> -zo}bU>A5qm|vGyqLZ?xDn4lr`r_txP#s)c`z6q%ra;N3{XDD -zKv!dxS!!~{Zo3Rzp7P56`%ByOi6;V7#+RCF=iQ3Go%5KmQdcYwC0s~t3c3}wMk?DD -z#~;1X68y;CcYeyrJAbOB#TIX{VfI0mntGZleHi}LIqF@)zf14B2s}odlIj52@l-4K -zDDY;7E7|MXiB_oav#Qz;{L(7bU7IGE^EsLAw*fu5V*A+etnU6?DW7}}rNi&z) -z+O7jFYY?v@DTd4Qy+KvsVlJ&_jFnMrFpce0c~er%L>hi^NdJ}Tib%lh%Wue#x2Kpx*48xcMhaw6 -zfwN|KJElz$v_O4rODD3Pf=SOaD|2_ir|) -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 -z4!uWexgi4)vv+ge@*MLVT?b3Q -z`!D;lKo{YfM}TV>`D03KV@JAs1$1TDU5;4cC80i1qeIjaW?Jfn>ibq(U92h$j-K!6 -z>Z%gBPo+GT^G0KZH}aO!!ztI1#gU}WI7vL#lhASmTPj#5>kV``{}BP9aEJhk;ete; -zz+-$!(}T$&VC@hO8!R9#jbl6eeCFr>@68_q*^V!iQEbPmIiw5(5<@T)QW6hN`M|4v -zst>Fdphf=`C?y@jHXo;obTNo-@CpCXlKY_BFSqUz5jCZKiv2i -zCC+31vnu~psoJuOE_DvPqZr0r+zeFYyr0C%+!p=(Kkb4<>@c3G}A&za*M(%oi7B=+ktvGL`MNd`;y -z*`I;6hC9Z^B$mMZ>2-RH`6YcQ|0YEz6~1@A7c;l?I(xCFNiDsup5dy6U>Fxh)>hj;= -z-n#ido$9v%8)u-4R*@D$#)pjZkf4F?j38nYQ$_52EZp2*k#jdcS4m$j@So3il>~1J -zjzliD3!28Kd0(lGdJP!;NI{fI^a15FAk_X1;w|kYEoW(<(prlD!$}sEM3t*TzSS_# -zqhyL9t}7y1Ze!(~JH3O04i}kfBZ}X^1GRgTxbZDVCew^eay4fatq3vPT=7xCy2mhL -zCVUg`5%Agxv}}eHxY;4UB+B)4DGdS5fuPb0Iw|X95>(KDML;tucI36Hbk-Rev~A}8 -z?U=v+!#v68ThA_cMq|#j2FFkqh(7=GGnKp|l9EC94Iag0t9U2I1#tWxjf_zDCJIy6 -zpt;M%ApeNAf`d!&<{c%M_SuGKyWbflE4;N`Dl#i9%g|5TXZ_0xZ)(#PHTds-Iz;p} -zdZbW95^(&+{l163*SO35z3ozVPrshts@c7@^3z|vV&t9p>=AxM*1)KYS4!$LPpBN# -ziz_(p6hNGXiS6#N6+ihZcffN}%P(L0aby#I?%LyZIo`rh7qnY)LmU8T=}e?-fZUQwfT{)q`Ksvik&1)9e~;Mgs+jPUt9#ALYthx-1DnJ -z9EUKgemMF~u`-T(NSC^MW*rQHtD@G9BzpSfdtbVY)n -zUyfO(tMsRasrs~|XJqmkcV1Y1Ww7Q^u>RAh-6I0!1qy46}5~V -zfp}_ZpiPKMzJwXLaDlX^OndaB-5WeRm9g!brM!7z$qBpKScF$`aWUc9B7%c+n$f8? -zqsXMc3cv|J^0K^EV)}-@4^@MY_)x)kPc1L0{uQXqOX_6g4efqj>#$Un+8n8&#nagOA -zw_fHLK)C`3No4`}H3coUZxpt6DFdA595hVGw#D9+O|&j^ay0U7CM&$ -zs=wRDs%|uA?^p -zw*059=A2Vf(WuGQyPGpD`zI3AGJ3C)p7NOck_mWk{AS;|YKxZ7a?5qMRH*(UU={n( -zKxDBlv$^L?)~7=T1ei=NdQy0#!gh1LH&eyOL*dkG+2VHhk}B?9%HMtd`YrZ?8OS9d -z)v}28dgxC8OWf|e_d=4x1gk>3UeqwSJFr#yAUErzZwC5HR;$%le6CGjIk2h44hg*W -z)H;oews+FIz*qx|Vgxc5*cNHaDS#DTNi@JNXkSS5jeJ;%WX=oqZx&Gwe`+2}UC;B- -z@1!hgG^+Q#-E(_BZnTsXqq@vFydP*2%lUsYmI!4 -zlW&zz*{fzpHl&!HJPZCvTOLAClbUA_%Xvfr)OHt6o?tTB$h}3)V*$? -zf{SQU#m)a)yhW#p2cUvN6})x#2B?I0ISRp=4)>`b4qZ>$+?y|>&g*p+@30Wq+A&z_ -z#vSAaoE8-dp~Z5rOhU@Q5NNJ#SIp+i`G?JJZr4wOGg;?Kx+9{^D_OaIpeTX*zTDsn -znX;|F@|bLxf>oirlyMJI(dZsIAG*->VaaO!fK4S)@PT5Xj>P!S9Wn`E$maN4^-DD) -zZ5co2q!->-RDm{O7C;?Ohp!?7T2XpedQrKANJ8HT?U@8fV+6tW0x8uo$_Z2gPn~Fk -z=BfR*;cI&wb4w6DhXN-8Xy=N=oQaq%jpjaJ5q9 -ztlOw5Xd#Ie{eBw2aS2HSbwphdW*^^snrnBJ*~`&%(EKJNIsXWAI#qwJM!s~(hx*dz -zc|m(=*D#f-H}Cs=T^loct5d7;s{7Hv6H0m891P_899bJ7kZ1abr|%KilP38wL~CCy -z++Y-U8xSFgJ^nkp9p{di+mAa!IRWqLQGyV#48DCnc-H4U?G9_nWF!R^3Ql%CzzD?P -zJn4KS{c;;wcl>oqK+i*n)bd*-xZGlbiP-Tm%nkV?MkmHIc)cdN+mI@6_Vz+EuN0Bu -z_VM?qnYf?4TU2OSQ(7u?6k>%!OAEd<|Gs&$EWlbTk<<oZDKnp -z5?n{wl5oCD3ha}e0ELo(k)s{pIt*b=F1T7nG=HfDv;hJbTi_A^QoG>9LaTNqBzr61 -znfkYTcgu(04)p>7FGyPogMJY**!k0;IyWk88dw&xI6I&CTnW!iH87+S|E5mMY!~1Z -zFjXI^wJ~M5ap#FH{hygzgZ6(SkMbzE0(TG8_~))V{^AO}Nw@BAkLV4|;bq-c+`H;W -zmUVg;VIAbMx#`nRW4>9&cFes8j|np9wW?onW4NO6b2~&dp7WeKdshmT -zjVf-QB~=-M56Xx6ynmB`NTvw|cj((e1}eH$wLhLG__CWMB6mDq4hto)O9~F+;gPQr -z54pB$V|%h5C9=^Uxf4H~dB?Wi9T^i%!j&0>VR#?5$E|iG<_7e?X^r$;7_N8D)s<9c -zQS}_mF4iFx(R-)w@6ehmRHQXKqvX*ie}f9GM2G+fSnNQgcGd}UISxAnMC@5)93ZK@ -ziChQWylXXwLCEQ8xE$wH+c0fwc>G@2SVX8Bzx8LcZmEP6inU(nrYN7roQ{q>})bRAySUjqszK@d9m<1Cj4P=GkCNL!U>OF>$|rh&28&- -zXVpT(9`7tQwbi+ak3f_?7p!gJNNye_T0q@f(e6znw1k1`RMseNsgGQ$I!q!VrczzK -zkEoLDdDeE_=eaJ@`BPJ6|0+ht1*k6Ga82_0IU`Y=*5$2Rt#!#iW=3ldsJN -zpDXqPY$EPhklri8!`d=t -z3FP;0SmcTkN9;++oPQ#9mc19xgf_r26Q#3<(*eOxfv3=Gn-ll~nGO)ZOWkNgx;T5g -z!tC^k>;f*qc3tA;2lGv`NiQbu5vdnx*k)J0dAo+zkgZ*pxKPVVhR{{6e~W9^ZNK&J -z7q50ZT?v5gdO*&1y&V^0Zlv(A7N78>f=0P#^G!Ktw_L_8#`R{Mh@)**E<9mDt$;-W -z6J2Q%#2ENu%VWUXVaK|3uI9wn)PnkmXl|M;zyj>nL2(f#4RF7$P^j!6JACAMa3N+) -zvdr0h>N4Us8}0GX>`p -z74y{s4lYF^nS}N;;xrmN-1WSQO}oDoT4_|@=Vcq@dHKfub?DP0T0P@Oc8$In*hVct -zn9nMwXp^ou$KPh5n7LBT(B$s$d)o`%#kB*uG`C(BKHNoN&#dU9`(|w?%@NHn2p)dj -zvMlYO0@XhtkOX~U9IZ5xfZsAr4~R&3U9u$7FtfBXM6wuAI#KaxT!j(*#gb7u?D}C7 -zQZW1W#FlBdm0?>%^NYJw=-mPcbu?F6D3p`#$;GZ5*uzlYg+5##jm$H}$Zskm;)^%z -zdx7XXFtbqUxrLW7TIyVK(s|OQ*fbVjHduK?B*Mj(bY4pW -zSlx9doyYb7El3tX509_~%y7YlAW9P8aS);c%68|b0WC?`UJNt3vj<>%v4|0mBPwTX -zG_yPn7Ve2WP`v}(027JEPZ=cv`sYENr1K}fR4tQ9r1N-R%9hFhO;afZgQ!c#9~lk$ -z6Y;C{txS`dPuLx1lsdjW=kwf49?2dQxTktP_JHgAd7+v`-JQWm?&yRB9e=KFJwp0o -zrvo%n=ia$|gVPd_dX1yImVjW~vFARs! -zzWVf-{#}b2aio^+pC92g@i0is0V7B^y1GX%AEH$|9x%p%d6UN~BuP8&3RA44Ko|&~&aGx(w`E*L* -z=x?*~`GL0GCD+)a!-a$o+G}*PcY;;czE{LWG*|wK>(}2rjR`c{Bl=M$Gi*N#F?={} -zpcB6F?bSdhLSqKeKEItJws~|wnd4OJF&A^aEc;+*?{Z26~YZ#-LW -zco$qCn>Pka|EIc7Hdkj+-?{fv&wFeOOK4c%XkBl_LFAIK$L_~(>Jd}m58ggTZw -z>^d|Al!m4;a~IiXG>YmfMIS5Tehr0?$K>c%8niuGpL}Fn$0tbkO25t@--2gNL9;uw -zqTDjI@bCr1!>S2TLcb8?#w{BYN;wbsLE`CzDZO&XajD(u`Pj;ju;@`OY%q1ahI7P! -z^VEv_YEVXHk<|%ef>0wT32@=qz~2O@gr<8z_7}VwgdimUMIZ>Lw;*0WN}@8QA8<@j -zk?v3FcDQv=Zm0ye18o?|LhAoGqqz-Hy7@JhnsK^$ -zhb5DRJ%*g$i{gQwl6cHt*bY1(jii3it91BA&7$`9Ad)@$+5*z2lM*eBCAx}8Xwsip -zQ|-m5AjlR9+TizBki*DsIEmEWzY3HBY{ -zz0IZDtVwoz`6&y}&m7cADl8ktb9tYiIYyXM7sB>zX0)FKP{k{^rZ4cq)5758lhY5i -zX9vM5QQe`1PiAYJ@j8Apb!1z)WNg>9yz#q`y6@r{&{rU}M$my*$zwjNXfjFwGb}}4 -z`VCg*Z4GufnMc^`?V5W1afCbhj1~TgS0Fo)QKMNk>9FGe8Hn=Gg%< -zNGpL~8j3b%|0L_mX0v%6QU5g1QvmVw|E>Bb=ns8qimKMi*0$D~{_8l+>@``35rw9W -zex0{B7!wZC>@Mld8Xe_VX;b!H4?MS{TdEH*$2HqpE~YnX>o1toa~IpGBMg+urd -zg%sRDzlwtL`qz@FEqc{2E(+n<2$3*I)UxP7mstASCZC9)R$zvf`9FwEGG{@xE7~ZY -zcxEncd|a;25?p-gT?h`RsJH=F&%PVz)t!2himd1hs&vmzO;POBY&>*k{#3)bUF(}^ -zNRz7TaFcF}7cpxo-NC7Fq$${#?)>#9MFAs=X=$_kjymGr~cfH>n5e@pN_=# -zcV`qD1__H+03zfRl)W088%o9!*VX%mt=EZzx3 -zI$LZvZcus?d#4k}d!rxGzWjK3Ts4Ddetpp~r=dNW_d;wuFkfde!?>j{1AU9-xwFW2 -zWG^b<=VsdY_7MFBq32v;qE{%RaBivzU5GKJZQO}704lhz5wjn2i=u~d5@C~wmr7b1 -z$h!&6oyF}X{8OuP12R8?GTOFRZ{Ut{w -zS00kPw_2Rs(pa*a)AS4xAU8Bb)!17h8kYPgJt`7H*(s#A{t4OxsX2zHKV9Z43xB2t -z_5$h7izr5=ghu;emb^dPd6GWPk$n%I9KE)_rPtKWwJ!}rq!1OJ8Xy9=Cmi4qnLG{l -zJ}tm~BvSi1=Y6Va@k9Oo-^Ja5W`36$V2_3W1NXscKH}Q<*&{OcvycLOBxCRzd|y># -ze2>hrPJjd^zf1$Edt3tV`Cy;KAGIvc=dna$5+0%WM*qN16}W`#8Ja7?)5y1WfYUZF -zjs81#E%g%;fQ2{`M>{^}v60+2rmg_vXkcc4(fGbUckkPgBuxIO+0QvCu@|^s@$tl=f-i19(u*&Av%T-8PbdTXo8(Sj97{p=yLrQD4{efn+ -zTyL{iwQvwKy(_|3RWqlg!Ee0mcR0a^N~rQit}b3rt|- -zYtp%bN0E?ZB0SrvZfXZ+0*tH6)XQ#7pn*ru-~$m#8zXBH@+GGNrWZVtB?NiD8et81 -z6k*I?z4H6x!*|jlXWMT -z(X$+~ksslFwX66;3fd1BSZy -zyXWC?qI}b*p1QFO-*`;f==r}idwiF4x&QEr;S!AGo9^sHCcn*d@&cc~|2=~M3#AVc -z6v7!9bmh(pS#BZthPW8fsc#AH&ZS%uHPiBo&+mM|9_0vU`0;4?cz<0xgu7AOlW70Z -zs-dO)(Np&O+em2H;=>)kP4qpY(p%C-wP(s7p@K;r6>#c!8uf>*g?4ajw&#dGtK;m8 -zKRw153tg~VikT%wHqKL_n=6Rc;PAe-gaq(%}f|YOGQ)&J*g|s96 -z(S^m#xUs^?VpXW!h{f+G&owK}?eo4VCee6P2UKcKV!dBosYaD@EF#&%KL0i( -zy&|GSm?n8ErbNj2_@mfr2Ho)MXmKk6g~Q -zOWk9H)Q4CDTRTVw>5d*k;yFZZp5hWoTT*gROQDRL-2>0zeLA&g-zO^jQk6}t4__*j -z5moDrK+1g=!xzCO#Cf2KTkrdk`@cOAU~%~hm0iDvlhfm*jg4UPFk;r>M%#e#;;`uT -zx-VK5HD&FvbCaHLnD!ia1iiWM{XuoilS|;!Or_$v(>=1?tul(DAk237lU^3Q&kPq% -z372tjY9wA}ABu^MNKRAxN|0#!4hxb4gOT?^*OSmI59Mpl|kRYXG+(ubgrgAHNED@Zn4R^>{$u)Lh -z2(%;KGbavTe*~5!$k`Fo26x}x+x>NEuTG}h=LY!@Pcn-&U78Uxp0KS^xsWaRvD)ZN -z6_F(BMG;Wfzzl?9K9l5vS5Yr-n(5vZ>M8>U5Q|8nHw`~#_ID`XN=+-b0PzG>T!kMK -z(1+jS*?U#1jgznX4hA<~ljXyjuSOt{f1xXms1p#2(7Aa@@ah>13Y-W%5c!||Hg}O0 -ziD-Oe8tdxkZP(gAX5a0~Kk{*pn_z3=b!>8Sy3O5S2hZ(4L*5D7?6x5ZdpsE+2Qszoh3rP_R2c%H -zSh?}oTXZ}79hdw)b*PJi_?fpgv;H7s=JsD9IL@IQBtp&+Rd$+KsEk#=(BI{c+`IuA -zcoXff8X`xMM@7>J@x4#D-L+GTF9 -z_$*ysa$6Ex;<)fV6|i+VNLy1WV-k%jeO0l>H5K)3#_UyAOrF`yW4_ci)W=7LwZF7l -z2-p0G2wYhMe^h@2ZAPLsxD{aQPp;)Ncu5XnkpfC|*PckH2!Hex{_XY2z{^Bq<($Cx -zJ_I(m18G>91_kPB)NXEO;p;u?YV;%&b+u#eDQ?V>N!Eo-t234USbUI`^*bb%rsg$$ -zNO|OL-rglE-W#D9ewy;ks#Yvq?4ob9Sxf>Fl2|wudYGV&hjF8Wj$VipS-x3FdYQg= -z6kTa{hT95lMo5`{llyXW=Hdh0hbNA2=!-29%ei?dKRkN8E@IWXcsdCt{G+QhUuhXn -zviOUgt;O4#fYo>84*i90&QX64bT>bUH*72DHT>PsLv@oUwEkRGKJTVrP>iW|z_UhS -zni7}i**hD~zyF9E7kpl(@$A+=CAKK`;^)B=giky2D@|i-BsRFaRP_SA=iiRdsLB%i -z=l#=(4&G7e#T3HdIK?MBOLb9IE_tHj&L148=0_L>k0;ePj}d63sC6dhf@XhQciFFA -z`)fgRKFwLbd^=l{O>olcMI`IjIC9ejY2Y|6d=im>5F=h&1VxTPaeuIr9H}kzJ1lOPKmA^#Ice&Rt;T1vS&FBQ -zdWOn#o%#Zh`DOfz{f1=l-zo6lI642xn814xGvqcpNSMn%Q9umIH0M8D$hYfVZu@Y{ -z#_Qv#xc{-79%`{7p_OD+>3r~zZxRYLKN6)J(2-^y(8A|EFEErqoAE64fjcb?IN!iS -zK@drbwh`3@xcKVKgH5+*IGOSoV0QFyauXq{C_okoitCCE&f;2_=#U?~FCj+YS)%sg+wuC)==1{H`%rq$-<*7iU5j -zY@f$yOz5;;y6o@qe;83#iE|ip+f%Fl!q29n7r#{ObR}8Jk*h3)JmndmrAAqj&0nGm -zl`H%h+V!Ql387=_0VLw~{vEnUaeDFNm#g09C&12TJEs` -z%kpobiDCRzLP#`>D)H`&#GmnJ*^yvq3kyx8NZ<#DsRbMkWdHe7JLU2KF -z0qiF2{<05sqymKEWE2{5SMrUR(C1?3Mvj0QL@NV`Ew!$2qazSYC@nzj0t~pV=w1(h_#nM9DO8V*Od%oWHwd>MWr7uSS91*Snj-wyXXC3A2t?8?=?MO{#!b2PtN)F*kSf=KhRpK=_i9tDrdWg~f+AcrR6{OMgaa7gD(F3^hn -z;v4qno5Zt6f&*xts~F+|C_5LA78pQ3xtD -z8>qQV6Ad&)VV%b>K;8=$?o3{V|P!Ssc>ll^ -zZ#@P}v*4}Hu>pmD9Juy4`Qf-++B29tpCgJVyb!*i`nGYMW+9w2O$s;Aq%sMX)7wxj -z%<MdS{nJRsxdH=HaAh`IaZ8S5Qk!LvcMN&M29RkSQ -z->JDqA|08o3%n}Yy|o1x$4lg9DVN9OOpt3z7A4Uc#jf-%Fp6<@iakLnnmbQ{KseLfCzA^8M`a%GL<()uJE1+-ns3+XXSs~D -zMw=>|x;QM(aYONwrUbB6gqURF%eqZjLGtG^wnS+G!HfUfBv7hI+Dx^=*4Sls2!fvBoA3o7{2s3 -zxaIxL<(8<|)=kfTXWJsgU!O=(uwX4|EOPcRe$7ZU{r3lzOte8fm*NwhCGRbFhQUP!zbwJk9_b&Fr4eW$ -zk~NH1$HUVVW>7DviohQot{t)0T^`fVNale|1BMvJZG3bp&|vr6E1~umT3%Z^l~zi_ -zu2ohLdwZ#Tnf($IjkRPC>wc|K^XN<1JXNF?KU-@R=SUbup6*eoP%~8}{)L$Q?HD}`?uoD=+MhKtyj1wO)>bzurp?BmF -z<<r)B&S5=Zsf6kC3ZfJ9Of2;$A_Pz|D>#PaH|O`Cj>EPV{jH$savf -zgh)%1lGFUN-a8mx23|g8>{Hyj30XVF4pDaIKfIfO&_%TFE;ehEglw(O@z{PZN+=~5 -z<_2~u)o=JGh^ -z5jtOyZmAD$jcFtnujbhr1}fD2RhBKV5KcZds`Ep4AKo*i4}4|GF#4-Z#IoieUNS@n -zM4L)vqYk7Z5XYz;VQ=QzO#)B!;NGivMy~VKUkj1MTRe-qUWw^L?N{s^#rk!29JD{d{6*XWp^nQIq94GLE|&FxpQAI1#9zL&9OoBoppK;Tx-0NuC-AM_ -zOrc0t{(_MLsPr&a=Q15U0&#j$!+zHDuN1-mw2nya7gbC8|MOwb>4bMr{)QnH=ii*X -zAZ5LnjM}(z0WM`4I;YB5Di+PS(+oU4Wq5GrGEgu_bN?`St+Q$?$@EHqdBz3hx9+=$ -zG6#t8d@FPM7ROrl%6z-eLG9q67(&ip7NIDgD}f8c^<3>)6!k?8T$mToF<*b{B|%g=AXYr3PyZD&T8CC?L762@e8xvkK_f%XBfFMF{~ -zp=61l?xevO|Em|e?!*l7CFyNjsEH{|HgQd1GkQynvH -zt-4?*fHfl<-Tg)H!pU%Tf3;|Ve6i^DsiY%I|a(YsM -z%oC`T^KJ-?9*a)a6wJy0OeyWLpXq)`CU}nx&hO&?N_gh6)cy+@p{(MCRWE$3IJFL~ -z$>U1y%(Htbtp7#h&F70hmptt{5*)D4*aKsDuEk`pW~x`M9os&R7x-?J{1Q{0+laS} -z45yBxcV%N<7fRf^eqU(MJdh7NKOpxSthe(FN~!tNCzK%*r?JbOrj6o0m&E!Gqr(5( -zIHoB9WI4a(R%#u^Epy=HhfyEw{%=Dd|F<=cgXFQNTAb%|>QF~P7qq+XVo9lG(xCHo -z_tk*hkdjfg^Vj9T1g~1o{+FTxMyK(5!|HE!{Zp?=#bqE>ezw+*57_-0FRrT!Rq3@j -z{3??{-u~;9C(}GIc3-qeaGLWL#fz>*s<-6dC*Ln?(19PND=uS28JMT8rv)lpdH&w) -zdH4s-Ptm)LqEkYIEYkS>y%eOfVQEDlS=w -zUs$l75Rl&pBVrfG<-Wg&d4H%)uZqVEAh=MO1h9Dj?f&b)7}fm3=`-7T%!%)vac(io -zG2;)$u5aj__zD`IkG&wXj-s!8o-uJ&?SKD&S;ZVfui7h&sDKsybAGykP?@3)nR-#;E=|$?K2JM@wjrOBkOslhZ+fAN*Fp_MgVc$Qz!oTRf5U!gh -zb$)d}5gRB*BFizddleMxy>t5Tu9*t3fBGJrlj@2sz$b7b)iC)Fu?YekRx!}Kj%aOe -ze)AQf3+@Og5iWyX0;VjeBFjK)`R++x3BZo{oauAg)wR2K2miFep2yOctP4Fc{<9`n -zl|4ET?p1P|sE^4c2?T^LN)pgyb7b%$;?^{QX88lnox~q2mwCt@lRn(7weBcVNX -z;r(8_R_$YFb)S7K25;tsgOPvA6Uj#NoW5+I+X7o|kl!i5uM9%8!S -zVi3vr-AyVl$jx6geeO8_vZ~7YIo(=~t?-Qxc88dKfiex5-QazMB@KYYuP$Q#32kqr{7>f3sQ8-3v<|`)Ppif;3x*1B(?OXT5K*Md?hlbfIWg!wg@tz?X_^Kq?2sV -zNi#8#D4Lv)%;?7hs$L})S~uzcB)DnJA9xwnGAb=LkDen*=ed@=B!E-Rk7?eyiIIpe -z5Hi(M8SaR|+)fz~ZGg}1j(cEuKF$m#pWqnU`@a^ -zY^R5yv+E6G>nP(%?@vyxP(lSmkFQ1UBa99HSA^O0{;H;a(As&apQb#4d|>6#P@$XV -zX4p!iSJdyGpULs5pG$ttn%}F_m5Hnk)lpOS6kQYNP{OXNETd&gR -zvFjyIw4ErTx|8)HX0;0i&6u0}{{jFSP*-|rV0BQQHPE+nMcc=Pa{1Z5CIzX0qZ8<2 -z0K3d^@A|9|Rd&K)=@0+GYIT7ui-t;^GhLE@FX;nIqooH`nw|x@ZeevB(?qofA-A~C -zJM%elL5u>+mfN(bojXOSj7#&s<{gPL*fVanV+x{(=~`*v&L7Uh$)T#2{<|aSGggMc -z6uc^K0v|Vwr~>6-nW~^9pm$+^ihw#=yh~vzHvq#O@Xm*<-Af_?Tpwob-eiuo7*Bep -zK{auc?zN-4rO-#U^g4t8wF{-Ak`ts!-chXy8X8XV(q9QzF%<8{eyb0THvO8YW%5E( -zm#H=;a)BA0ZUg*_&FYF@ -zF3&?0<>|GPonTe;61`Oh601p1wU&8+AWAaLzp -z{qmO2}(j-RZo_k{NkH=KvWHaVT0R#xz{$ -zC>Q#il53nX@8N=!N%q88<&y>(t11!qqjGZ4BSgy2>P1YGq^6;q(27fM{cWgD_@p-t -zto=RhK2I)>^%YzLesINV_&%-@d1oX=M>v%lCNyiEX(-M>4L2vSN}}*W;*`b(|9cJY -z0d4U?Y-a}|=t#7+uLIF^EXoSDXxaf8#nSs_QMSvcwsjjT+3AvBL>ADR8+kvoS6aA^ -z2g`qM>eA0pkoY+&-Bn*JBjR&CI7j_cw{t6tEA7Iy&E-q}PBH^)F* -zKjK_^P;8e5FQtU1Zk@YltE~NV&UiG4kk>=$SxO^(kmc~XQ_1xH&B?9162LtT6TdWa -z^q&J0J<`m5op)5JDL3p9fN|H0LD8>b025Uub&EilH>;>-TPy2e(V6jjgIapI@|cX@ -zt7Hy>==SGSq7pI$ezxI~Hq6%rZ5-M63T)&81IXeBUCY!a^je_VZMR8w2m -zbubDdAXTaeh=3pnQdLTj-Vu=Ar7H>+1VjiRP3gS}kzS=2si6tdM4A+pP^6cHnvizh -zW0d1Jxw5-unul&3pNV}oC -z{acq3PJFchU%9kftsFVvp0K#kKrn7t9nK#`Tzc}lx=$uj>keneglcDF1yE;;U5{;x -zAzj-Uq@PL<9>0BPttA182|3Z5``s1OE=E^@O1~*KFxidZrf1P@(vZuHPYQRU>O-EvajD3f+J|uMhRqp=PhqQmZ+?2m7JY5%e -z>pS^0>UxrI-hDB&*tm(SkFEYg_RsNs0}FhwCrBZA%zBG%B^lJ8#lAfvUD<@zDZh!* -z`V(6$$@RO30t&=Omzh@ -zF_<-@@H69;Ysd&!u;ZQuvU0XDMaHbnh`{lb@M4Q2FTsygxIf7h -zj&%+Vt7o@M|4yZRt@BfDoHJdB1TuRNm!+#c3psyLQiBVjU66HaqGOb0&RJWZ{g=t= -zG*s+iQw4D|QLt214=1j(^z<29t(U}uUQsGv?l#}%h_8Q57l0AnF(?TK3yc%M^};dy -zDqv{bDbcCVQId%PZIZM_w6Y|}HJ)M*2KX9T=n+`Tf8}Z4k8c6DOf1nvBRi4(j#%1~ -ziBpS{r>Glkyi0R^jFi(H5mU!Ls3BKQO3qT_H30LRKoMsdyZhoXFoO~FF%mQ -zx8Nps*2{uEhSM%l^Gb%DXL(Lv{!o0N8^H69AN&frvo}52yf- -z!Qau~ufRHIFe9w*;3G%yPh{Mx7kz)-Hb=XcE6KPcMYXB7r(f@^&FFJ}_2^bB);XH -z8u?C-(68?(Bj;k01!b6>Q@@mG24E+`m}h=$tT@TwPgr96bIQk$hWcTZTsfC7F2^4i -zK-92QKHxZO$bQK_T6=VjY_H>Q+dIpXK=xhYDX?7O(VLJsgxyH^fM;{NkJZE}k_=aP -z2FS*M+ps;zf)kyN(E9qCK+L-F6$JONE%VTG!sjF#z(_mp)LfgA`?7`a`s+3gSfRs0 -zRr2>XiWDy!9A7o?S7l)3z-lBYE+I+59+Dc9Yywu-e`uU2MJMzhna^n~E6HbQacaVt -zHc<<-HV%yF)cVo0yyX7WXAD8gHyOyf(o=X4BfkbQrK=Kr`u?^iZpnExi`W$o7A5z$ -zh32tQa4ZXWslm(b@R&4~Lslbhd$8_Tm)#?p>u(nEZTYr7io!cm)Ab-f*JjivjNdJ? -zyd@%69{ZloP4f#Sb3VRYNFV3*-c{f-%e0QU@X)fcWZQ9vbb7kJ|D@#l4~{xs#n_LkQB2Ywx_qwP&qo -z@uKZ+n+B>Rp`}Gf1uEcqv%A!P#r2=)ASMC&o`jK!6n+B#1H>SFd6-yND699Hz1wnP -zR>@_(R44ac`Kpt9OGXU3y*wpt=f4sN3VUy6nIgB?2ST&2C;>W&nA2VEI<=Z -z&~_9afPruna8;u%B~9ZnMR2wB*GG%%Gb}VkTV>(KOR?pz{VQ8#m-GnhWFt#FyJ7)H -zo%_+dcl*)(G=e;;MH*)M-BFF&==eiqRm6#pc|E!@K;_=I`f7a0{#)tC68b;39&mBD -zr3rp;GvB&V@0dKArC-}7P4jatZBJ+Pu0rq;tcM=!&OlBS{!72}lgA!uk&syjX|7Ii -zp2u1MyoirvxC?(i#FCQ?GIw+MW;-c{pfz$xD>529)TEHiK{`wZ7{HVoLss-s;HJ8g -z#W+0bH1xc;#N~A0vCAA#S6A7nD(skgj~yZ?=TK?eOmjnzC6LRrRuQ>p^v?|;l@Ht7 -zO-bC5W#123=odS=VW{H6?2p`6F`g;>l;ZGqMPOm=;rNrAjEWA08=Ll7pABzy%H>rL -zubsZ*zQIL^Iw?DbGQ#o=-|}3pa5O;_NKX;p9dWC{5h)!qYJ|2TzdmFRm$Q)re17l~yCg&4BG*&|T3AmnzWKQH@|SHf3z5H7CtRv#atPGza93 -zZrIZt^_=y#doz==*WcK$6;;0asl4C#af-vPs=&gLsL?DzDS8pcruZW19npFG#p89Q -z&n0!^VIfF$jVcH<=x1#@!Lfdl*;u0ni?@SkOhm -z4{!a8KKAL0izq*`cR@ye(8`j*SArQBenJ*H0I|9^6jMhD#l+kaxu^g(-mR*uJ4avh#)&tKN`eBO?(Hy=;|j4W -ze{@YM_Vq?HvX3iAq;;Gjy5CEV5BQ#s_tIM&ux@}2Uj=R}523z*_Z7^kcw3_ODKjZx -z2$2O|Itr-rJdeUIQuo4Nfz}a-`GoKk9w0ry{*mthWTXCSQNh>zLB1K1%zAPJJr6q$ -zvapcar@9Jg2+LS$(J41_1ZP?F%ZU!J$Ldo1&cS#dQ92+V)j`xPtGbN3O=8e`de_hG -z!2#!ZDq2V)>`hfSh@>R6>uZsle8*_Y -zj~3th$z8rAr=xgk$Um4XcnbENgdPW*KeS!R&lbsO)2blzRUWU>4~KtphdGz -zT+I4Ty;7o*@Y@q_?W2yq&sNs{tggeK@X25}7i -z=vC0AWlRqKt3d!s0kj8P4W7f2AEX9$%RsTK-zd`hLOxRMTvX?zj%o+kJ{(7?ldL|4 -zhl$if7{ej;P@~$~p$6Aly{8<0Kgg%X1mAVe0a=mZyVJ)LvRO|?lFY`1jIY~dsi-by -zG2tPf=`TwWP@y77`O)zx{wpy4e9?fA%Qm;JFhDyz -z=;};{o6aUfyoB99#6}@fkTZn5bXQ?uReA&m?u%mB1UU}e8v8<9LZFkx -z-lZr0NY(ijFY!Gou5RvaYZ_}=6Lq`Ok0mq0r0VG1508;brNyG$qG!+ymx^qUKBO9yCxm8m&j_GT~`KLlhlsamyMKxox4dnjyllUYCbRW@ZX+gq{TlyOXdH^0gN^HWuEFu -zE#Hf+_Zs3msW4<8yEiPb8Yw%hMV*GS8-k8SznrY#|9xPexQA`p7)MdXWeUIc6fPue -zf+CxaZ}Av&u(KaHL6XKBZKFPga?51zqRdo>P#lGPyYx}OYtFdCbJfStWiQF}^MDTL -zBl2+Z{X=`>`e(?C{rO=1@0A&fOa23L=X|I3$qWL^@#^k*Oh3^#vwTV)v*9W~4e_4< -zkz6xB%`gADon{Ie%i3D6{jL!FDH9|cvg=ymTmy>pJfy9Qmpi-0E^+H!4&+XG$x!)w -z#KtE3djp=)^7A;0<&=__oRkpZ$jILT(Ulxos)u|~M1HS)YBd_?+p67rZ_Kwuq4XZE -z>jaTI{`#drj7d5uzO^X8md|~4BGl&Q%XqHo(LX=4SdD3-Ki&M2OVDoL -z8qX(1WN5*j8WGJy-gZjmRm*k9tJBBV^9L+JMr9B0;oco#wVsXpws+Ip9OVo}@r>JB -z*OwxzT^V7^=p6F!D5Rcqp(3LUUCCv(v2Dz -z$4_$+@hch5_NUw{`YT2Rtm+7_=k)b7vDik=k-BZ7%aFX_1U$98{8NlrQR{2lK}jjh -z3-w6-+zoz*fF%KeThGP=sl_>3+7w@!T1K5$w%~B^85*3%J*n%+o -zO7VEAM@=pC!tg8-zUceTjQkf9av>q46lDS?J~dKwiDB!u9*~Y*sFY2=@=TN-0U?Hld$4y+a$ExV@65l&<{c9TCxWs7LgbeI*I4$r}m0 -z{~cWPvc6UpDjXrjjr_?wXBs?@-iuB@vSK1tKaBXJ)%M)*3a8(`g%rd*3un)K9YpCk -z$Bc+)ut?CR0=KE}hZzH)_z5?848-jxy5@jpHL&J|E+zufbW~&(=u^m>o%kH!%?^DA -z!EJ~BZ(C3r!gM-$O8*p+I{^|2Q{}&;6unmiIJw{CXav|7kH^8I3+&zwP59+KR4Mqe -zL-w`2ubPxq+w2!rql;PhuFhb<-%gs<^wpI^5c_8~K>BdeTNmQtoFIm`L-_o&W< -z@*dRa*&Wa%i@HX`u!Z|JwyU7|F^W8Amr>hOphx72iPPL_B=xCFp>#k~;gPW&KofJ~HR!UMcFYT1Xok@CVGo -zOOZa(KgW2+g|_Tv!b=fWFkZ46Nt%!d*16gQ5OshB0DT|k+97v2!620yUP_KM2)-i& -zob5wYhsAaoWNZxRQo7FjesD+mhwg`v4xhMQB)gt@(^_jdoFvLJs^`wEpCmXQ2r7Lg -zZ%W4{Bn04^SrFTu9<~%M5QMp56+fqGNRMrZL>IPqW_W+ -z$P3As0^Jn9%kq}S`0zYMb7@HNtzU$H5D@IU=s{#{Rt`>cg=ZWXQC5)WBIvG>R}%2p -zKtSk0mk~0COwkC3?WO;fL%$6{` -zel`_<7jXGW{u^6|@64>D@W*%dno$75N_#_Bd?sgRM#Ama-rcT)HbOQKcmgJ -zT=Ih+w2|!j?h7r0TG-@0s^qmh*#zF1z8%o#znVKm^)Lu9{IQ8ngjc+Wc^JWybZgGT -zYFXcuG)#V+9qk)Y8XQ@D(C;I6ug<=$yK>UOdG?|%Q)*hs@NJ5rP(bFZu -z&m@9wUGMmaQk1{STg>ETac@&Z&hWwqLc0zFJT-*y -zWy0t9b=gx%sl4)AToCTG=LunMh`|e}Lg9a6JUQVntphsn>4N{O1Q70~oDhvc2Bt@Y -z!PkFZoEH1Dsu4YyqOn`lWGPo>{kkS40O6tHd4&9ZmZUnqJCOA?p6xg2&bax^q2%_@ -z(XlUJFrUK9Rdt0UQh?W4MZ|9K0qi&VhR4PURr0(V4z%c8_MO<#vQIh=_5@w!Mo8DJ -zSUg1l$>lqBmkk6X-?2tNOMT%&6bwZ@e6KmgNHXt}?LC*Kxg_o3igtHkFIT{+<>zg$ -zeG9WvVIfg#DeHNb1*v_WCoz&x?+)Ab)f>vQftN8QF%S}0jzA3Ki2+{js{b9w#5EpW -zltFzVk|TL^_wd8xwCzumXLxd4dIAclfl=Y+$FqBEdy_T4(FMW<((;%{JXjFCzOV_< -z%R~V}Sw&>WcCckW0n|%po+4f>+lzn^UlNUWg1;ocSVpM+Mjm{%2hRkAcn}Zy;T~jF -zBF`<2vOSpR6ADz{I|9Ft@!T6z#ZF^4`M%Gh$i) -z?1IN3mN5vISobBZsqXvNzfK$7TafEFmq~ml7BILIF2@k=631vupkPM3>Gj#yx-Z0Z -z{rJ*lR#aI#wmjCdb}Bbj*>7*TPIWbCix{QEusOL%b!C6@4^`j7m3`j{Ui_7Pb6Gqe -zzVG15Or#NV2WCmb3zi2k?Wr;IYg<&EG{4WCho!wWRK^@ReJs~M(=YXEwE0tTs}ke&Ge;(LA)fprc?LTIHD*cL -z*VT9gU%DSR(%KZ8HPwwZWLuUF``%iD$w{m|l)9k?TJL@vsW~`@%7O4C(Y8e2PTsgE_2$ -zfp#D^GKR6Aq@J2BSYdPQve*~-;0Nq}5voe0!t=>YQ23^CX(oGV&~VjnGvRD5-N9c0 -zl7Gh!4bAWb?bi)!jL)(Kt3D1UQK&7*bc#tQQICRISC*vD8C#`kkrGs`zH69C?KiGQ -ze*CwwK3kWPGv8cB2~{o!^+#&>Z}WJxJl<3m@89ROfBfMkNIPs|z<$Uz&V65~^1+o~ -zkk5UQbU}3OkxOx(apncGhw&h}0kHXwCX -zafR$MRA(A}+wuNk(#y)zg)n&g{--d-4d2S(Dl+0RBrUZj@B4hx2PuZYl<&3E7IWTn -zR&(=8lUH0JRTBFITzl7L&}Z33p^OXZM{2Gmjmkp<5jm93DLS@mPmem;2f?)K9%G9@bshd_G}Jy}6Xm(+-g{ubBg99=*8F -zw~9iZi6=Vxj82e1hU>M-pmYWC?9K?fNx$kD*7=K5jG#^Bt6 -zn(YvZQc(9kYrpyqE+z99kH@zn<4N~cf5BH1kxwBTL@;{r$1e4Qxtc7ay?QVP9muZT -zL?Uz$+@@v=?bo8kVWVMio1tx{FrL}mmiqq%WKTZHx#;SUmu%luBUK#XE3O1?{sK<_ -z_N9jhrYl8-7w1XpI==yt{R`=zp1#iY?BjD)9yJh+VD7>`Zv@PP -zDCFC#B}DW1Sn}Z^xKgLkWpE8*&$}RoN2Ixn@TZp`O9LvHOSLR-*v6!I$#0mH7?;O{ -zZ0?-78p`HsBcCTdQeLmXm<^^PbwBy9BU66wK -zdYECsnxz=F1xOR`fYx@BKR8kybR7bc;jJJ^y2Vrc$QT=+_oLJP78jvlZ|p12eE`Hz -z;KVr4s8S2V)WSaQp$ACDfY3q7KK&KhD>c;t$YP6yFcByx~Gey_!C>kn!*As7bL`=V=4-`EPpKT3;vrR$FT=H9C4arRI9C -zKD98YR#9NjuT*`dB!hNAymc=_8Q9N=_lz%eTcBvR+fgw -zq^~#sy7JJBFuI^%94PZ=&t+A@pN8zdQHg|E6YzOT#EVqmTY}M)1MX0f+2f02YO4Ja&*Go81&-YqN%=r}4bJUAKD6|wNp%@H@3Uzx -z{^V|a{V?|F5I>XP^K}pI -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 -zm)}$iq!m3HB3Gf2cDwy^71srjRu*L6 -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 -zuyrMFZ7{FGN!c8u&A8g3Z#;Sf5Ar-^ -z)-zG?%;n-sU6v5e;AIIYw^cc<{EW9;?qRlxsZzE_#$l-V3s(WCD>5ai8DZj2g9KOs -zngYz4E?;#g)4@@FrygQyxWEv1@O7nA0arTI=MnJ?hYK23#Mw0~B_w6{3qY%`Bq#Cl -zlY(iyPFy6arau}*9D0-RHjg&~WnyS(l}l)7x$hBZh*#q_w{;Kg%7Tka2ot4kI;!k# -z5jZbJV)LGG#FkL`gWHrd#T-@o%&AGo-hpuv&gOjn6SJbhyiUY3)o%^~l^m*M -zsm4*IVFl7;n8l~dB4XZsZtCq?Wo@EzcZg@c;{PN@*`LOj{`03W&%kk(|7fYc42XeQ -zTP7rz(fb8s=0Ool@)L))2hqDpSH74`P^nP04?HTz&LwUIhRB^1`6Z*?u~^KGCpa&= -zO$dG11G$3yu|D)!z>{taEfjfjDtvO$;MC-(y7673m&QD6InS8I;>J7;kTl5}>IZ^Nrm?Mqm#@g1Q9OPbDEU#c**|*qb-6 -z5D7{iAKpKnr=I!DKVlkrQ)~V6+LOEN^9M6H8~N|74gE8hQPcG9;qlh5q%Ow~Y(RRa -zSI^Mo8m`l*-d)D~@=Dm}IJCFg@=SQ#Rx-rhicxj5!G0@%wtvHh66m-w&)Nc}M$lbfBU+Xy}H*f(r -z{Y4!kD3@SN2*aF7t@`3ql*E -ze-VepUVuCk=yxy_63?IRa@l90N@|D)=?;B1e=x -z%9e4cBq^(8pJS7fJt`c9tTM|e95bsrX2>{ZwsY*mS@+xL`@8SQ`H}8ApM%uScz@B%A)kreC~> -z_mM&KGmYzu9hYPF^BgCVF1sst?RnD8k5pC}Mv7alD&Hz`#NOgV+o0bpUf@sqH}g;@ -zG=$2~B_P;d`L*romD$IvuMCLcy!;W|ViZZI`^!;l$nEYV&${UB5LGtjpXUA!*iFuo -z(R)_|+PqiU_Dm7xO{rR{A(K8=5xkphkgi!l)o34&S6v>;+JzF$@WSbs?SQHK%K8GU -zMdz$l#GJ-ybXI8ladH7Go*eiEd;AMLgYjgqv?7heV|UI+FUJj9+M^#n7yrLi%(oIM -zstn=do$X`vZ|#`-XXii5AjG^e8^i72lhVW+n*EZL8Crud5N;vSA48LG?p! -z5twfjJ#0gX3h-@gNScxykNoFwY>+-Oo%SwgD&-G^FmJMLc0DgeR767bz@^d7*0gFSXy0nWJ6J5zZ^~_u*IDZ}>fSTZWiE78$&l!24M=xBj1r -z=w^c0HoFVMss-V?IAt10%+Wu%h~kN=$}uGmBf6eMbUmD=e?Ws2IrCfTSrp#??%%p+ -zx~sU5==T$TT;R=IlW8!uJw*DDx18BK!I{0N{)3Re{qq7@VQwSp^x3;?!u|}1jFp%_ -z_4|6WxKC2T6_<=1o`j&K$?T_Gcxv8$WHT{8S&^P(yGWxG?a*jh7a<3ABB^gRVp@t$ -zzHEvc#mmhY8u9ht`soR+{Z?-u_8HPP8v5VraOTfT_wFXCj5eyj+*t|mLNrvQd|^S| -z4Z#l1?qmUjIY+ym1BqdCFY_nqc3ioO`XBAD3hd|5%wB8P218cOq?yC2Bo8va8O*qQ -zMVVx&qvPqzOrEH;Cvs2xaPfcx|FWL)ibmj%IJ|s4SDx>gbdrU=MB&<{k}zF8f_YPl;ay4!@H+PM^G}6Fvy7Be6m9Sd;QcP--8kyL`UAC -zeTXO!6d_z+J|*YYqQCd!DUOzQWXU|_8eJpKiq`?t%(c^8pW!wy$kCzl-8+Jw;UPXP -z>3U*B7aN~uq2e>^?mU|z;A@WHZ0&+hA3km6i-G2eTmem|aR>kOXShMulPiaz{2wxX -z9GxOg1ez{p={eJFDk*nhO$u9^U6SNoG5Ur*7hi;Bb3~^MJgn;w;=h|d`qCz-Frd&n -zE^~+dS&mMmlI*1E6$n0S)4dE$6H_8XJ`c-GWh{bHy6{5b`I -z##eRS8)02j|9Y6ur}#csONTC6d6pDz3!AUZaa%Pr+J6&&a-dQmYN&ZUkkJ{`Jgi22 -zK)#3>BJ+^ThU&%GZB`|XNybN~@#4lLeZVz~Xrr=<&GBI_stBBF2txc->m&Z?z;>(Y -zmV>}E8j(xh6Du+A#Cmn`lNin4-ny&>!{5Z%%RUx7zp2wC-K_lS#TUmuZ??hEzK=27 -zNsZsnx}pY8w6OW<4Q>wn@~sXk%87qA>DZ(cRO-*s5xmUR-pRG$LU>d0?T5npoxSq< -z-`?eG3bPGo-~oN%yUykrFZL -zttvG4wR-~Jd|03;c$c8rfvand*&thOGhWY%rHRWndyj7OEfk(yioL?OM|iQe#m%Bw -zMBI3z6iWDE_2TlEXwuwmj=ohA+NX -z-ef$uvq|G0HqrWIM%PNfvw^_@dXX_R{5^pr+II*ZLZNK>-yH`l$;#RBOMk>v3sj7M -zR86q!d0AInWYf;+j4_liws~G1B=bp?jyX -zVP@V|_Br2u^gXSQUwEFPpsK9gIef?9;aa7`W|HXKCjXdafMMQJ6SF2~_g1aGdj;g& -zVsVO;z@5HKd%@CI5zGNak-ZWUT-3gaGB(cy%imuRQSYsuq+d>8+jv`?txMbA -z<4uv07XQsEkhr8K@bNxN?&wg!MVzU{A$|+uwYdZ4$^|lg2eNfSy6-{Rr?+l|6`^#M -zm$F>suYE1PdkClZ(?LvBFSOm|`5-ZNufLvzQ+KIP1fIpbt(+fs -zrZTd%_)%Fw^28+wt2;!qhGB;F+#&J-MD#A20<=?9tTLnr?FQ)vsZjk!R2^D;&|7G| -z5W`F((iM_XBoO8Uq8J1IKRv{kfUBZ)#y)GqRVQC2&>Ya;4}=?CHrA>=h#metEhlLs -zn})CoU4j3~G>{Y1m|}P8jm&?W0wa>@3Vr+qxkCLJVf%-y -z5(VdwcNLw7vZ7?q*j;$(C7aY>!`GWnPEkCvggNtfP-Qhx({h$aGib8eEwze#m*pO5 -zRd$6*?PT<68e~(iC7wTuvbQDnRCFJ%Nt+wp{X2rtocN5IJnI%m{&pCXz-on{o`CJJ -zwC}4pH@VV=^?PAi5H{n`_t=Im{E~365tcUQm$Qx_Y$=*VmkfuxI6#x(47`yzS*-T% -zl8zRd1|FftgHQ=!nyza6?6NH>A5k=vRjy0u;ZeAh5IoF8b#zwdr}wP7GAr5MQaE$h -z`vgDR@0x7dqloE89calboxX|>Q7mf0Ft3*y?F03^?6oDs)TvufUKkcuKz>>`_*+(s -zSW7*x5Ced{(?nXp=j*AobLrzOJ4Z4EfkxIh=po<2`*V9|rY*uMh|k3T$7RJ%-4*nW -zrL$_SFio%DJzMp2?4{FB;y@oBvEA$XI7LFOVX(SD{&S0p{y65ja!9| -zLJLmxCq!J{6R;otUBKEO!#dCH`uWp0opdS#?yQec;qkOI(3(k|kOglwWTn%Do-oqtXSoigQg-EW|jp6UuP1FPaxWc -zVHXoF&6ujpA!YcPJu -zu1DU`H*pw!q|To1Txl4ZZ+`c+n8zo>#|r$#bAFM`#ce`dry?}?!{GRS^7B_HZMPDKeo_Q}*<$g=?*HprD9gQt}{{5+gXUU=LI6=8!E)6H86{`=GsqQh%^ -zZ~d+U9m5O{ys=cX19mD4f|-c3Ik3s#Yq3*+e5T=ce$Dy%e~L}2wM>)jA#NKb+kB`- -zdrO##by}ASKUQ(bZ-%n-2D&Q#(QldyE--j*{&w-);s*w)H-AlOovsOJ`!)C08d*~6 -zd6)$mTF?V+)v#!6I!SM>)fJgRl4G3e -zNy2p?>FNa?+ -zJqGltqt@RZ78P+x{_w;p`Yaxz&yv@&7KTKYu$LG%*9ccMg!0U_G^XKqtKPM4n9EY4 -z?sp;RCeAT_xljiW8rh~T_blHwH;Wr=;IiWnSINA7Lr;K3i~ivc9$==}k^p1XjJhuI!mlDV|e;7mZ5*su=${3c`7*)xDLvCQP4-Xwp<|Ng(Ld1^Z -zZZ1JTV#Dx=CeSmA1xaQe7ozK3?S)PQ;#P(W=9$Z&9YTTA_L5!Oz0 -ztl%s-ur_R~?*~BDIInu$RXaJ%@Kx5z=Zs8vd|pVnp@9Q&-4W{a?`}dT41z1;3pT!n -zQ}mVq(d*vExdG?>1q?sE=u|{SmV`nkUydHMd>B=efe(bz{-1l|=^ldqNMMcvH=6WWE8ASyrjp0biGFor+4??m%UeBafEngfi0Dd7YLk-cd6$ypP)U3r6{2}o49B7L -z>Z*#=lu*$^$5p8nTWn^k%hjMSiflO6s_*o3s)7*#A}Ko-`lDU~&ykSZl)>#&xqUQD -z`)B(O2+cBswycOM63gXqtgJrisK~WWa7%A))Io#ehE%%pxfET3;~dt@0&N6D)HeIr -z0+$|C33zUMPO7xwQee?QAgQPa*oPkQmyZYz(uoW*Q2X{#FcC$v7x%a`$Rdz=xq}iZ -z;<4j^cwGEpsZ^^+fQO^R$q+3_7%PkYrG62Y73>Re=~$dokn_J&dF)=GOYpcO9m$g6 -zTc3O0`Aan`P2*3vD225ZfLx<37XX*;Ec!5$N9xy88m*qsxtUwg4wS?U^Ci`jrJl1u -z_(A>;Kl_6`{D0x-|E({vtsj`aJBichp4ani63^CsPQ)A7PsA>T{#Fn7oGC!(v0fQK -z$OXUESo!p3QU6k6UvR-w6bvnbd!-xjeOSky-m_uJ{V&ULmLP(0EWR~lepdr`4c}}j -zOGzD;dLz_d6%;<{9bzcFOyiBA -zsy#?#|J0-^HT2u0cgl_b;${*{FJg+LfxwSX8u#XyjQT(ygfq5OS#Ww)yt -z7L9&is96jxwU>^l&M>d9?Mz*D6`0#P^HyL2f*3LO5(_Y`!MD5i&?WRGrAhuui8=ay -zP3lnG={tP>>orD=bF+?@)c9^`Ytxc(S^xgWVP^K7_sA?4(!W4>(&C=yrsZ()hYkFM -zsIOc-^CXFnjj=tV;$`3Y83)plv5`Nq{_}O2O9w{&?y(=+-<H#|s -zQgsE_0UomR$Wfdm4<#McyiWI91V;?2gsQ}TaAZMvbL6;FDG$tpOoIuo# -zqDoMeIGA;NE_jf13okjC0M+Uqyj16laX9!l7px6Sx=!oTjW8ON-!@5&OAhaIVZ -z=yTJ^I<~DR59u3Ek?fVcuOxNR6=8<{_q$~6@37VL2fgllClv`7nCOgK+OH-3s8IRz?Yb+Bz2%%vd=GUX -zX_)(FfV~SO<2osGGJW?S_HA09x) -zmwTZu;fyiGPwq6N0B=)8*CUc<=>gH2OjTgukV+VJU=OaCMKss$m4v*0wB~Ut=fuZ+-2!yyBo_c651naq?sH -z>R6d4V@-8PjlRkK}W9jj#FFFPM$( -zU<*HD&DMpfVIda#X4(Yq+I0*9HV#T9b*QbH`hc~My1qw!JZp`1b*~SltOWnhsgq3r -zIwhq;3zFI%HU8}jTsg#QfiqtR4j|kGT0`4vF_J)ORhC$v -zkv4&q)^H{wGsS8~9j}4_rfeOC0=6RFAoC~k6uV9BZt5BNoxp%ISeN(X|Ij9*67%Ts -z|5eC|mutTG+gi1a;{ec#On%Yq$KU!cJ=+UCT>ABw7oz03>(Jg!XDWf6+GW^ -zHAfS+k$DdQMkh5NT*3uEw>Xb&<@uR;cX~2R7I&`(r?$@$z^oCEQ{kB8{4t}pYZU2L -zP;;}TmJTJ4g^Y8a|IL%s+m;_;()l63NSL5k;aQcOjzD^1cB@cF*J_K?8UlOiS9%*%W1e9!h4_rvu+ -z^UeBHL@Suye2eI;JhOtHVO3hl%;pULxLj0(u-SH7h3C8UU<)Zg>ytqSOcxkS$ZE?= -zwMXYStYO%e>#%*|am~a&*~`a!RVn~2CUf1o#YHuAk -zN3gkq%X5HIJ{DnTP}J7-fP``t43`ta6MSvu -zbLIba!?c#_hij+ujN_mqLiV~dUpA3uw;CDgFjtT{&wIqrjFH+^zvVpZ$}j! -zCfk{)N~(Y}V?PlJjUc`d!#!mJB1;;4j^M1B$gYtYa7Sel)Yj`%*fWl&5TLLR{iQ^Z -zJuG5lwg)fj^(TU>7s1SLw^>B^?gDGu#T}75*okVO7>AV4I)U>5Epwde2RtRqPDo(l -z$c4FV7ZIMKVLr!A6X2U8;9@m8vJD)e%PP1RdX8^^WA8^6_|eyZS?^fO3GfPIGLRi$ -zL93-jE?iJ)M{pcZv_8i-3$r=;J~R#~8|jKXhrE!s4MNH_u;*xIq;ytmq -zK!<^Pza6_6nauSOAzim;-LS%zzA0yA`uIWpiUZTMBjN1}t}Z>%PhL7vXayd`=hkM5 -z^C0RxRY#JHti45=;)S*4Qumc7DG099YxZ1iPRRFO-mb`f;=$2uB}#@&{isU-Ysl$+ -z@yXSL{1|)kl?}8g`##t&OiAN7s=mn~^$9zMP((mK^l=44EigIn6MOEfxFSb)+*YuA -zB%GzizW+6<5ZEcXM|Xhf^63m_<6vnRJnRd`DzwP;!>7v?WnfSSKCGEUFc*`n*1_;Q -zc2JSZPzOBIXv4fOye5=jS+X0yEk&MzHc2jKFfT-uQks6gPzBFt$&I|O;zIYR`|k}E -z+`NXlUGBvTVoQ?o21S+`&-Cx>r(VOaq8S1NWbkkQl?$of=#%^UI9N?bhd+iSf8Y@HNd(+x3X+ -zsz9Zgj&S=vJ8TP+aNQ}aKX5xC(54C##_z~wu?wHtOup*?Fl0{tI?%ssD7Wyb!Fyx^F(O)=pjO6vSE)4N)$ -zan0EEpdivArsD0@sQ)LZr_LQx8F4J?=k&3fVFgFFMzq!^oik4FsAKk!iY{1KA -zrzr`KBuG;f#6D>%3G1mo)AfbZd=l$bL^AMJ5>Z(njg%x)`@IKIKyVK6?KOjedG#{|QRLNncNZ{w3Ji -zAWBpTaOGwJXX#RY>`czVc%=a8r7 -zW#y{I4RM`H~HFHlL|HoeHbNp787m=J?re6Ut0mX>8c(OWWJ=v@kR} -zE!)zLmSMQe)_4XFh0#AlrRVX2*I -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 -z6hLrEIRyEB@4oRalTF1QjTs75O -z?>gb5{)<=i0M~n$)HYcnRZq&g5*cBiy)7$hxU=L&0;?vvN~cG`W6GllCi^*L*F -z=oiYpYX6mK=0+m|^~S=fvlXd>S*PdBqVXoIQX$IsG2+t5xgGTu-g6tS0qf@v7y{(s -zWz*t(WvT)nou47$41R_N6_-0B@nJ*+uZ}_l-HJ`9m6QlCfibM2J64{9f8^(zQ -zqe+&f8qy#4$S@s2vpx`S0V%GcL4tQ -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 -z#uiyM_i3$@A9`S=6KeNwbyO^x*UvRipuS -zyX0=UjlP+mLShs>yGSRXKy8mCo6fHu*6d<75V2r-Nn~+3M4r5Ic_F}C(HNp; -zFnHAp5hXyl=*-kywXt=!E_MFvXXE{+g_Hhszp1uo9@GC!nN5)k?GS)+u-OOb|98~o -z_0VNVOxy%6m?1!jB-sC+@?0P^OnyE|AEVAje%T2el6@0A;-T9X}>lz5Ow9qG+0kz -z`lA-Y8??DI%BImodUFs^spM$L`fHupsequx(epZg7OMP -zhc8eD)CR7Pp@5D7VRNv8WCHd~TZdO9Afxw5poSVB*~EA!QadmGe%YE!-Q@y&;}YhW -z!Ysm@nUC&>l-*txDIA#9G$u)q3Q)Q)(BFBRKI8r$vfex%>izxWp0V!~5wax|S)!sW -zqsT7Vx3YwgG$`4P>`L|_Ek@akNNUJ3wz5^0l4KbM*_pA7G3)(yzQ6l%|8f6u&SMUB -z&e6>0{l2c(^?bdqSh3v$0<{Wt)>?DTH-;ewIMgH6EE_$wEVh#d$cI^(14?}r3^y|c73d0awqZHLw%)Q% -zQfg+xv#T#^C%*?gg4b?;oa5Ou5XLu1-5LYo0ctHk6U1S-nS=Ov+MRDfVzXbfc|_lY -z95j4iar`QoJ7+J>VM-FDw(M?~&zDXYyr{-9@!iQ+$c>_eT!tYp7+1ACIF+NE$WW+D -zYo+375nX0vLTpU*O>93o@i^Sc9~*wbD7YiDV1F(i?h`8*olmyJ_w|Tz>J89PJ#ikJ -zLbTBpL&k)FV2ogFDUGxqLBk$P61P9!#d4>+hx*xJK_j~L%H!i1s5c=y-o|@H0)=df -zA6N9fZ#T^kPC-h8HINCBl{+i^!P+)H#E**GML{~d`Tfl>@>Yjx+iC2~K+i+#5{*(Q*Qiaco3T&25pEmmDr;KQ&rs9uA~CE|c4?LdSb_ihBT4cqD_n*4qYxDYq1haX^KMlC7g2LnY@ -zgHQ^U6HT=yjc;b|Qd>u6e}SPu6`t5u^qlCsjHw2s6G)lf*jsD>8RvjkMpMQg!gLnE -zpy)Z+LLzk%16$9uWvuN@_=EWKu)hGGbRA^)1%v8+{)AeLg5IA}-(I+$sDe4IX!;l? -zB`gg))!eHp7e)J*hL&mHmQ3cf_J5YrN)! -z{CVXst~r{2dMX;lzpxXfqpu{=rv$k4DEn+l)5&|OyE~joMaxCk@Qytvi?(EDw693L -zZnMQBSOq9EpIW@RyAjQ@AEqQGp0hu=lfc>D^Ug&uc;bdYzjph&K$ETA=UpT9bvEmZ -zkiPnsw`^HlN9=F^PKJ!y`j7IN?)jaV=%rPg)Mmhvrsxm>)oSN8aHH?x9Nim9|oT6*`6~E7-$~)5_1t;1?08 -z6-h6Ohlks|<3IlbQF4SDpxh|$?^%y+E;?W~z=MB5|K$=WcD2@gbrB$OTL6rc>!flI -z_@sj>9I>%Gm_$mr!$(O=sKOHWpOZjrZ`G+`Jy3@Q)&j{5;hsh$KgZw0AT)yyD8;nE -zJ=w|C!Cwe(0I7kMBDr76=>E8F#@Qf;-f=aEhIccf=nl8m)%<;f7FP}MmwG~rxQ0)u -znPfKtWP-G2nU(#UA*(UJhzl^fHyhX`(UNfj30j~4ei!P)P+*?bhf_UJ99OLtO5bIN -zG@;Cr4o@(%t+}3DeB#jLcUpz0@b)z3P#@z=&jWcHZh?&RpH8hH<6gt7Vjat(&G+*0 -zj~~-FZ1k?c-2P(i`_ZLV!O$^`Bt -z93uI6f$c2jnK}zkgAXOH1|i#0E?1M^q=(e+>= -zUpn0u=xsRrEnW3JLxt=Se-b^gBzL6q>R5SyInD+yG(05MtzZoSL~G -z^y6x@uKO0XuwHhC#d$Upzwv`-@1HN<-rW>vr3-`*7CvorG%g_AP^EO -z^`E>JHS`w=eaiMD4%#TpHltB>EyTFJJtIkd+oTjtXk0?QsmIA9zjGhc{)553oN*n| -z#HBHOls_xihU3unZGeIWvj#!%0R>m%3feTbQyn%yVT&Svg(+^GN9@V~-bo4cI0f@2MV;zNzMv!k5s_Z&P*MUQS`my8bMWzOygW -z?cbMPCz)#9el$1vHl`4xCClGZlx>V1=zWYOZ~gn171-9YzIxSd%r8JHimv)qjoHH$ -zDBKQ2^t{!E{n%;+Nl+d*%sJ6}!w{!&U};p^{{T=7bUkC=r2!yg=z8#fuLK%d#QjuJ -zh!X85gopQiJzz&Y$eWTkeGnxH!c!|f^_WAO`(q;}2is1f=svQ{9_;iX$RAJGY1(rV -zXs@&>&V#_$6-h5GYwUoD(@XFlcC5ZZ?h887Hx=IPz>R4(;8Wlac}iVBnB&SL0E&13 -zq1NpnHm*j$JrabM4msYeAy#4*5RPK3jd? -zK1m8a$%6V;-%$9tP$3R?td8}1b2!%_L2uPdO14KKu+QJWRFUH_uH -zrMP0VNMVL)Fag^A@Cv;w6zAse6nAtd%bniGPDHtp{l$!^BD|c`N8(qG-uTD(As& -zmdgaG+F=J+d2BvtGU2W?jsq``5?Iv{#_Ktb@k-sLHce$V3@wGbA3V;Q1gv?<1leUA -zMWNoCk_4U&X2RZez -z^V9-3%0IL*&K%yQS_x_5eGi-;gZzb@%xbP&)W-%tvQ$Tm2Y#{&wkmLcjmkV?m+O$^ -zQx^Fw53g8_Z&^$6glv30hZDQ5$|r -zcjb3jUVr{jZRHR!44T>L;-QqE6m4?~xG>3N2b|_`%1l742{civ^O>pk8k=rnC&pmP -zGP2hp)OS}Ldnpey^)Gza7D@3a{Rexym1&&i*CX>$66g14(jFSG!4zU=R*-P$&%kg) -zjoDyV%(8ZWL04wNp{J_@NUKY6sAMh7qq7(pmcd2mrx{m7dpgqvW4ee$!AE-L;Qms# -zDv^yjML$39n+7VO%LH@-%(%o2_MS#-7Tb{(ib;?I!wSK(ihHhopez1@C^iD8B$!Fy -zFwLfj)qN4vj^>|Da4_;w#`VCw{jl`JB?9^bEuod})-Z<6Abs3E=w4$G6RTi=H5du* -z%(Xr72fdj{dLg-H6Yc|gW|;NsHXws2(NHqhSX3Xvp*P7Rqm(vq`A06CyP|KTMbO7| -zS|~!Mw&>W?cgL00ORF8d?DGpg2su7k41UtcKK3{km%*>llBC6+mWu=hv&{d0EP+Ks -zx?La_&?aB%-d4KmSO-vL?s31b2VXfweR=lp%Gh~8Sc6*SjUdBFOk&gg&uZ;q8|#u7 -zdRbRZtn(|Wel65=OlD1{WQaM5M@jasRg=>E~6Ygd7KsWnnetzu^!V=kKqM` -z8#u)~U=th0cUDjah&2j0dJlX#wxmG(rcRJ`@139~?`W@l>b3A^Erp0@E!l|rmK>}F -zxpdW}ho|afD5h^K1pC!~?i~K)yCVsgN(4SZ|JM**db@O9KU;D}D=26Fmb*-ud39dB -z9GZ1!^}6(8de4{W!-r?a6{RLC>iw(wZ>2K$_?E4Ec?Iux8R{0{EN2eN*NVF5jT+y@ -zEw<(HZ$DP{P7F!zUwTa3DqIT;&%BfBc^S@$h%y}dIT+^6^GU -zXJknwW?tmU#xLWxKEvw7;c$uw5{(acf9T&t=PX@{I_72Nc%c|Jvf81jeDR`e*2~qC -z*8S^zCmo^wALS3P#|nVtftQysX(oTSkNM6~Lgm`5G-EazkJMsyCvMI}Os#8c&G$5b -zKdJLGB39I~N^`JwK^_Q;_uAq4pS!Jw(cOqo^w^Fqz&=JYdeKx-bZ>VG>$0n5WXPteg?{q2{%TFydQSjFI;-f68tSL>j6d$E^{MPK^MrLfo) -zy!0osTxQRmaPBkvEm{8!a+LjH+Dv%g)fO|DFlq2CIYy@Jl5Ai)=Hea2f& -z8fvvZ-BZVeH|g;uP1hO1tBPL3yTJf-x}W6zQTPG^(+iQhf+2Oc9fFmnICUxz>h%n- -zZ6BxBHNY2WXAM6Og|QgK0FfqeB@x>VZc_2lsp6DQt5_RQ#Cln#4-$4AX3m`M@rn@n -z=S_bru#%Kf^&$JNvHl-6Ex~K7mr?y8;Z=Vu6Fu18Xd1qm5?K~Ddi7KK#7cmK!epg7 -zg*A1Lt7lgY8Wx!La4|yUi`3+@aY8H*dDAeYVkwZ}N=pRH2TTygP6GqLa$rt6C00fk -z>>!+x?><@rqzBn^7soT}4)FDubARUm3?0}HPC==uU2ugm*j(a3g#&zU3Fo~u@X -z_?d6Pier{3CNhP0ow%|Spnr^*@y4exjZ5OE7lF_%PnD;;_mE1u;Q&U6F{jAWPj8C< -z9s^%5bz0$1#Gd>;p*f45mr~u<*!{0OO=2txl+!o8sxt_pyb#H*5S{!m&#N0>0wPy$ -z_MCE*CS*7+pE-v6?Ot}vK!KR30mWTl&a$;ByRC~%4!oqz;o*)X6llrM-h0uk@AG5T -zWOb&0kI;n3Xq0fL@ab%7WJjY -z+>v!3r{rJxpTs>Nzh_!MakW6@AJQ(bqy;GaPpKD1Z~U=tr(XJZ2xV-lc+Q~y!!)xv -z6A}KwK%SSd(CBFrsZe>k)z)Wyz=N|pBPMoruqSFKd3UA8U8;wr=-}Z>WEh{qCQjEu -z^}3QtJc87~tN6#8fCTPZW+8`cy@D2A>+JvDSTq^<{9ZleSnbgC&$#EKn%O-9`Pmt-va53E9Sp8(K~~>^wO7xx`@tsta52eV=QKUS98{P5YgD!3f|lb -zQV%}`{Kt0&cLqlo<1*)W4(e7~ZECP?A|p8~z{mDq2s{*8I2YqQe7Y -zwsW_bPe`MM`(yBXWwhcJRNCR#tgTT?{DctfXX`HU6iFybFq%tufRcC$pfINpPlQ`_ -z;n#Oy8Sj~*1?qX+8RwqHmAOjnb=lq6J8T#!le4RuTY+EM=-Cb4}kls*B^7{GtN;jq+r -zc75Ouw%~Dll1KTb8LhjVQjzfU+zN;`qACR3FRk4r^UB90yauBkoRky*MFCYatM_|T -zLE@YlSUQs*e&_pTv4lubSg}fF#-jDdq4$mtRTmx@=CwyDFIGTQ13s3wWVUa`9fKF< -z -zsRu~+g+NIHn7HuGDnI~=nE%>lh&Rg5y98;FjC-HdE7QW@H}sl*Q1lpT@LQK)n|X2n -z+zJBaTGXFQuVWsn27S?z8hi8#dVIb6C98+$@iUNvJG1Wp1#k{VH{c71nMdMr4jsYm -z&LJGJup_4rIc`ucxt#lZnwg*I6J&LLsHalrK|+836-AT|`}-)tcyeg(ZRNkU=%Us` -zBGhna)E}bG>Rb;vhXJVc9X7-wUoloXkkPrPOsBFnU56M$MB@MDsIIe)jbLVGz -zrrUVIO5Y2UzRaQA;1MF7IgGKDL{v1V-eZDi`ohZHzXsD?V~8V}QKu{+;T+{F -zUo}0L^51-OgJkR2mJI~KikD**%lez?hzDswYHDX8)Ml>GV^JNDv+G>J$5`ed7p1Dy -zcW|k5lJ*ytBapf7adC42FZY`Izu9MSODBum!7s!=@yJzOgtJb>T;PB4d~v`z{6?QB -zt71jRi5FZ~p$fC-^kn9qa%FUEKNC`irl+0J`RWOnm{-M8OM)ZJ$9VXdZs0Fy&jqZB -zj6mH#SUxN{Cuyb8l5B~W^y3l3z5hM_jI)yW4Lv`*UtHqIm~ZK~zp2-czFR}icpZ%k -z`?c+sNP>xEF^3rRchuN-XtsX7lL-A&8Y%}{0vlNva|VdXRk$ufayP&Lk?4Z}QW6%N -z?%>sPvhO~k#V`T!X(}@agP=CR^67K7i~^Ih2iJ5G>bk;J5}dQi`BMdaC$>*vtcxWb -zucD&$OIxEjDGX1{aU1`h^abC*l)v;`s9B#oZr9eET -zt3AOZLceAOX4Wh$>W@9#SFPH;bR2nQ@2w6auHRVok|8FnRA!}Z_umteP;B(c!B03* -zf?G`VWo+{9r<876U6q{F7sMshrfS*<-1sowoI#jM`MH*i>jg<5)D4L-MsH -z<%Qg^(W%muma>iNST9bNjfE^<88>d}_RM#CKJ?osHhtAYaDmHlPzB#osD*ybdBxFZ -z9XxhiDNL6hoI-}|N-T)u7-;*d@0qOU_Ux6f9oOV=K=+C(05a*~!45i%jx9I7f*ySA8U@g*Q_?1~XfsrTz!ee-c4 -z)4MKHQNXt0?kBMs5V#g-xU$FW!u&{Y)&cfkxs9gmrgwl+Z5>p0O{0UwOJJ8E=iyxn -zkV>jhPJ=+;xV!JQ0+8o}+;exi$*o00#@DRp?JqstdZVdBlgbeh-fedVwL6-15wF8; -zw6}%$xt%(NN?CKVM6+DSUZPHjjZ0}SmV#w`8xy=vf2zD2H2K4q1&b<4bhSZ -z?{vQoIGnZD)o|B6z{x1B=8|^w%qhp_H6HPAgXe$9*y%4Yg2I1s!gBTY%??6Dqq#81 -zeSgSwCgDN4X2a4;a=zdFx6@bl+jN?~6!d6PLa_XzP4|Oct~QUIng5o4R_|KbhMwX% -zm#Vy~W1?}@H`$6;rb$O*C-r{t4j=$I;1*HZKcK$;V&&;I^HytFQkR+Ae+}Bw*Ghpd3u0B1!TH@;nmj|vYD)k)7jX52_P**R{oQpBcIdyWpwS{X}K@-?JHVgdCx>a -zapZ)OEH-JkHq|0h*jO{em(9aCeJT|Z%|S*Wf5P@g@tA1GMN;m(TV -zK6Z*{L+rZuY9gajZ~C$;L5@5(I-6J(z(;_eaVn!ZA@BOW-O<6Gng5iY9eIJAgArjEBL6*p^mNYxem$HV_EahQbQb>Pq9T!MDkO@bx{e;GiJ^v9kUCH|Ee -zRjMfSnrL_t*`liH_AX@GUU5+O_11(~kMMO8_bKw1s2!u026&%dcgEk3(=pMHC9UQ( -za1~p@&64I6qwJFK7_<*OAa(txCN6#u49BBSw8dn`TfNe({)JKM@a==CkR3KEW-t|3 -zt^m7+AgxS{lWso4ijVI78J>~Z#d5lLd*LBAdY|Ge+O)HNznu_PUbgrv{l4x+Sqk5v -z$@lYZ^A6WeSs&_ag?x~!!v -z`*N_?q<~u^WT?y|Lv^aw01SNQ`GQngs8D>C8A_pjTShHS*DYP^=>5>}Qrq+x{NB33 -z--o}8?M?0tohTi?CqS;SThZC5+%GmmMr8D(yGWC9W01_+$&YGAj^3s7-!Av;C*?$i -zyqdQN^|mrIzwMMbCen!&-?6bG%k1()m}Te*A4^{pmo2Qt^@oTgB9hMI+lGy{T0g}- -zzQa7LunrvrGg{O#IHFUiSsTE#-VHjneHpMXxE^!HZ4#7uTi~DHgJ^?TAZ_Y0xKA8L -zOe`Xr8e>7i)F#f1fli*37m68;y1Y?f@z3+r=@a~>v9lMZ<9Gb0b)mXG(Vo2i*PYzn -z2?^uojl^gyYHe+p{;YBn%SLjl|0#6rMydv6=hf4 -z-TOzAmPQS>0=WHX{o{= -zMgxSiZwt+ivWFV1%yjLsFCeKITrFa1|9S%v8N -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 -zehPP=OTFKw&ED?8Y&qGdAu*z4#0Bepd&WC{m -zTQ}frGuG5=x-24=KeAo#XIYH6soOO7zd8$XzeI&et3e88F22V!mUN5%A43&63<+|T -zw$$hB%jQ#q$hP~Lmi>r_hC76Ww8e8e$%U@aPOyg!u<+>V%-whp__cZQeR>#nP82>I -zAnM#Y&hNw=o7hO5*Z#dfe7*$-Zhm;Ylof!x8v`?7~&d^TyGGq3r1&uA2abV^I@CzApW}Ypy6A{>JuLeORKpWH1 -z%Tp@@%kE{ZbJNN@@|YV-ya+XAOTIk`gBX9U-U2peJ2A;OBW#?JzXA^RybJ4NBr+lA -zI?j;vEV)FRZ!GlIWMr#x84%tZ#6EGdka_{fbRDbi(}d(9MlD@96vA4ZC)YQJe+GA~n*rk{lt@A#-eetJMMQlN2#gp(UWQ8rg^ -z^r3#)SpAJ>)_1h*lm1RDXP*yWyzRUhtGuYpQ#s%I?i^lTL#)>!@T7JYeY>GbNS~z9 -z@jYgZ4fenh=+S{VKy+;2a$ugzAh%-#mbvFMj&h~;o(yh{O#nwc6&&$^hs409w?Q%s -z5UD_?{O!=#CR&_^FU5#oZaheBbE0F6UmwJvSapZ<=}2uI4rgr`4m)l;1=c^XDZ4M}*F1XPq3sgUK@CYUA -zH~e1O$Zg?_YJ%{y~fjyw5lK-n-eeJ25AB2M%gL@knmuR$nA-Qva4_H~51(TgQ< -zotczHGMH&ZwDTV@cmQYUiY<5q_7xmNGb8DNnXvc2;C&34U>e;Rpv=Br*LK|bUg0sE -z(_FE;p)x$f8l;XBAAH&*Wqx}2$#=4(pRAPGMc_~D%9)ngAPUyj=p0-xJ(;x5ep|hA -zaGzs(anMUGj}`PPCl7gn6ye{`}^niet^ -z9Z6e#!tQN~LDlilRE2#~UD5i0stTE4hiP_eD~s$5X|r4t1oAbQb>T24lFKOJaBTVB -zDJpp90mhaGPly4A>;LH3E7)TEhi>3fAnw(C16g=@_p)q~yKu;~$p%d>iY|xRUYsdb`f0# -z(s@MrlH@6?;PWc*Ec~Ja-q${r -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 -z`{#`KM3c&^+qELBIwJxpf*W9!52KnK~;E8 -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 -z#O{wguZkfK`#KV|L+m4?-A4QRu4GMl2cqz -zDtBwn?%OnMtc3;x4X4AjlW-rD8$O>S(4yM}1!QWdBr@|I^WGh8Cvj2%@E%6FoXLyB8B5gz-xg(qIiP^mkx_ -zwmdD1J+z=9nCHg*`Z(HCuLUWPyXIcUu?()onk%g;9Dx2zenhJl9q@f_^DgsRBJahV -zRL9->%0eC&uk4P{bAygFVfl7iMN9K;SdQwRxQ>2^U(YITvZjCh;0`^*@m_pyMgmk< -zRcrc9bsn-ttyE)&dRxt}=_rEPScnIAm^Y%fyNVseQ=p4|8O13o9^hcAI6@*&5YXkL -zlIap#u--RiV4X8W0W-jcxxzH&;HJj2O)tiWW$<$YMCF-oFLvmeU9 -z$S04-`~TZC?$F5m=sam|bPlz2A!Fsh^M}Gk7d1N8g`0Sl8hI@zd6j&~Ok>@Zcejan -z1W}okCcCur-%~H -z`uj>)ECr7Re3scy{2rd;{L+JVFIBX3HC71CW`kDCi%R&wYVWs9e#sN(h`w+9c5&Hz -z31`)<)CHBJSFk20mu*jckq<6fKI7CSk@5#>-_CzLJ^FFw-T)DSo~SRWhaRH$Mt#tm -z+Ql-M;YYc04CM6#1J3=m^ledU`9Ze6qlmXDrO`Yo&h(60b+n^T@@ndwzTz*DsQ0vu -zT^8EPkx?^8SdsnUerFrGu`i$;r6)jDqgo#P> -zXjX-YRVGjBM!hWtg6yHi$9;p>iqyHouQtsk;gj}osLIT$-2y(a!%V10@p`j$>fa5! -z9>kva_1-C -zmG!{MSqq?Nx=p~BVJptegAQ?`%z#Nn70{;n*TZN>SuoqOpM!CPcf9+G8H~joBViK< -z`au6=FS8uxZqr?fnOylNEtiW4$MzrD2&9y5^@P;~(~4cV85jpUFugcC$^0*^?hKg_ -z^6xGkj*F-xHY)D87FER0yCGpLYCfShsu#O)6N#F-kiVd7{_wT^%=4lcua!~X{gDsN -z&mHiek}9hn2y7FYg(hVP5uAs+L?DYF)!NsT98C7WD(@u)J8aVqe2}>z_KKvdCNE~x -zGq3+(;^@?KdJ*|*{T`*=Q?VQ-YFT{r_;%)B>f7UbkCy^iwi49i@^zkepGAqVk(u?u -zGyD?pMH5DlG*9y0T&PhlOd~EVEA@%p**xX5rxzb&3<*mfzy4;BzpOI5SSBgfDil2! -zoUiwFmSr$8QTc4`?M!oWkAbXhLdcP%)X<)+51fiONYDQT2;MC1Xc?mGij*TZDV72( -z$h|nEhsCcrBzTXajx#)%#l`GvPw|ta{$%niJkVE6sA}zqoi{fR -z08>IDe6HgemFUux1wzg$cE=UTDt2U}SPLNt&Q`s_AZnckHUd7=lm&ZTo&h&yB=gt( -znWP<<01r3(;@09Ci4r&B;lqPgDo=y1b -z|I_56VxkBxqGgfveqeL1@AZHl(L$Igez}xsY -zF9u!^pJ+lQmRuUYYN$e{@J6*$ya32QK6dP?_qR-=UsSZ{jwr1QsQrKtP3c-w#_CRE -z&3$VNw%bC(H1+kW+Mf0-_J%}6^xLMw@Xp_K4#7G8+vv4vHvT{qaQ7CIR8oer3^8Ut-Cp3vFj>%l98~X;Ju{OY#jpC@XZUAQoiEMu!Y5D`33MR8Tyj4eqTa0bf -zo>ctSOVi~+wF}M@qr^%TH&$Fp(-)o&AqAv=XPcTi7?n{lH}^-%3gZ^Zd#V0E?f&zM -z*$3;Eliy%{sE2LRIu2P;b~BDB8Dnz|_f9(jMA&d^`<;ak_OD^fd-3P>;@NLCE6-Osw;)a0y@Yo9yQ3-XV&`i%FE{JQfr^$RI3!(3!?Ru1yB5HLXK*Ontz -zg=@1$7O@bP2qFBBV1DetO)4GwH{z$>eZ6CX0f_#Z&gn?wocCkBB`*&Ee^;)=l5b(L -zYg>(h^|iRv<26y8{>_eNFkilQ_X|FX14Ks%!BTearr4cV)IE@ek1d2mJcT4Wzj{l0qRye~$7M8wpDnjmhn^4y+RJhS0q4yrirCit1 -zP1>G>6Qf8*K6Hl;G|&EcHomTTaLdY{BU* -z+o5+LpEg^M5QN)(ni`+lOgcKK?tYLBr>P282}paA)LA|keSgMh6)JNNd&QhOag|^c -zqHGg&duSpd`Muh1j=(WJ!ncR|{c+iIbGD|x4sUeIr86Q%Liexz%ejFz|3JR`oZpoc -z;QJ@6YlpOM@7hO2;!ykTF6H6m$B!ag4A}0VZaJQU8PM+D1Tb#m=S5M@Ux7*QhCH&G6AK#K57> -zI6K-MBuWkGxn@IKml^HtFGOe5Ce@b<(KfUgo2?dE*)M~GmdrUt{MRNyPm=MCe`jCC -z@)itLV-7Jip|q)GCDi2#iR5fr--n30C35}v15$mf&+ITC^^imG{y2nLK|{?C&o!UJ -znYG={eydI%-@SvbTkS78GM>)b_rScHbf&2=`n%e(Av;a>k0);>EgBN2nQNk8K3xSs -z^(?2q7DQ2c>Q_~13mPLi^%fqR6xXBy$U%RW7J7w-*O(|E*`}Gyg=faaV)~tqPTS3g -z{tSK>+k#a^KMvNRt75v6|-;S{Pr*zn19mn)}PFPQi -zL^?j9Rj5i~Q|0z*Z~97Jl4vN9Bmgf7Uwj9R!=At8N0qS_W3;Q%P`JbUae0RfU13d+ -z5BC4~2u-kCLPi2p76t6X3R4lm|5Wtm?$>i!P_z1_GuVXCOVef&!gwrO9f5F+QV@o9EZtdLZFC-HOP-fPmz;>5yTK16MC -zVv`6uP3k<4Wk)~%Dfx&uZgO2s+JLc0DcX?@>;s@%)E@F%nt<;-$X8te(RGAz;a_GDa)Z$RBDi<3EkCXVCV4}KhQtrhE56r9 -z*UmZYZu7a%j_m9Hnw&m%C{Mhqas_3gR6WziU -zD+5eJ2)k5#X%~))KB9UnAFlCL%xUzSBtqc6!Dm`X7T3U7ucEOoP=hdT%1Z&v(dRe_i=n -z!cl>z&hw!N)GrluoGyHA61c$3`YN_iarbFp06vZ)dFRa*V$MY@Ul&I|{#^x1k-9t& -zeLmcqwr9#|@*=8stlr+pzW!Mu&ozmLK7505re%D3#yfRV&Cd*)g3znEI^WmUT%$Ud -zlG7>N>RbVFRSHqKcv8odjC$z;3PS)$p-6+HQo;&v} -zD=o{vq=>`LphoDcMd#}X574GEcAT9#lb!Vx;pZ_>bvmd1#|ZH`%^;7S8ny{33WoH! -z5|OfNKj6%hWgAxmZsCNkh3#pEclD5?vJh|XS15lw+?#cyEL)wP)}B>Q@$T{RWG4Ak -z7EYE@GcDPot}}|kOTHE+qH>GgPpl+vHLFXT%RZK?|Iyw^Qc5KH53U+*-^fe(lCH$P -zBt9u_PsFFzW}OImdhYrYN2kImkDiEoj_00dr@alAap=})ASD%%qO|tbHoZHd%i=6_ -zr7Wvo)ECBC)%z7FCgHF3cnu7B8O}>pf#|u4CX`-Z1rFiR-{9-V8OHiYmOa=-M_#SG -z640JnEVEy$_p;=1TXVm3C^0}2`p1gPy6>t92`iy*XBeA`rKI?zzz!+!`ElH8xsWn;MR~uobayFe@ABd}`|_5IzgmFoXs>u>{izlmykLh8rH-@K}~w?Z~Xe -zyE4>7g<=cRa6?B9WIO&Xg0+Q)xr=Hy7_fHDQ!44wzx0pGM4^9mT07wc -zoF7G47{>yXUp())Uc~nV>D|y>Nu&Omztb2|26mf*EzhkzmB38nZR6>;ge5n&hui^3ot0JS4ml6(aN8zVufX3>ePR<9ACFR`sHbi0RNg4v -zSC-WOs?%PYhqYI04!6JHV{vO^K)|i@+M2xQo;^>iyQ!6SQw%5gu&6swYcRabZ=6!O -zV{EQ)JC0p#$&MGtcD~n}OD2@z3kiw}Bo)&^!aQmQP$=qH7g!ss3p(cud4t4S6BwJF -zey%kMb%{x^T&vH9jdU4`yLP4Lob;VRY`@d44Qa=o;}P;a6dB>MJ|pR&I0;S>&k4Jrp-qJIzhHbLCzqWZ -zRsj{zWn8#%QC#q(Gk43-Gs@W?p^ICJkh72*xD!f54RgcoHQ}gcS2oxzZ(yR`_)mNl -z+XRR{LMQQaKNWj{8*t{LOb0eWc*F&3`sYOu_GAc8Md2PDE(*N4812?wP#5oip=q~n -zbf4ZZEcfq3ZoLw#qUr_WjP{c>YUE!@Sy=|tOu&i$&Kw5p}l9j5t -zT>zu-o<>q0ifS0OA9&~{{w>B5`QFoPN0Z!yQ!xiL*(lKa-BwiG`XWohG0 -znria+wc>S=aW&Kz^u^kn2-827E8dNwPR3}L3vBTqvfVH{Nny%k(2llgG!I17X4m)W -zFtwj_7NFw{H0>#5qv@%@4ps*(4Y}gkYzFlNi=2yPT5u2RjPcqR9Czs4eycz$cHwQ> -zi2v(ONe>sF7%I_r%gP?lmP>VsU>OnApZ5s@wf_N9b@ol`uM3RF!EC*EnXU -zXcF889I3~T0_c-0f5WmS^tL%lf6r=AFC-1g0%XU}zzT5x;T^xFrDw$Z+R^qu -zl1=PQ(ZDoHY4Zhwb$>9c`7vk*p_}%>Iz(qRRLd5n^Txv{xfpO92YCXnttKBGV#f-F}w%z=F2pzTWyNioA>gp>o -z4cTE%=wL$dBfq^i$%xXfBTlo+>Jj3}O@HcNMzP`m8$CFt@z^DYayJ=~NBK-djrh;`?CsoDqik)ep -zQ;g`^7jus#6E+S?L)9;#PrR!wO0{h+ybG$YgTJ}_#qcq(Jo(3Y^m!vnCsWDa~EzsP@T@h`3?%I5q{k3DECsGIVaXC7o+;8Ic;t%%3*(hRdi)E!MQW$4Z7H{FhfHYm^I -zUQ6|!TtwFQHFm!V71$QNww}jA%zxJo5EE9gd@VO1+mt#$8LckI#_1Z|$@1>Z#`!HPQmndgQXzj#B|G -zK9sM~+=bS!isKWjnY^`$Gj*RY=9lfq8r_|~@&FqjpoGX%7q?%(NFa$#6PAHDb7u}w -zR`=%`GnZ8+epwu!*HK$u4;)4nBi{>hG`WB!@9775b|x~sVp&n1YK8>l_zUXbCdjA& -zhH@FXD{*wOpTljDbY+orCU#;o;Hk?ku<^UC<)6rhbtJ~5&6eyy_6;aA5DdqqN@5k) -z3zsRH1a`#`faq9}F+NH2g|y!_eyF@~nSX4Fr=6~DPdlb^ -z%9ZcKqYUdqDgE8Q+UzlUD*Wb+7MkKGCTE>LcwTY8rLyhG<$^Ku6o$u%eRZ=5|2jJr -zD(dbuX7*gv!HCvpG41E>o=k}zIw^$;ziVfNkhZwgskd0Lw*J^*TD#ss{h{2ji^02| -zZgTxLJj-E~Um806Xn&8Kr~Wb8s)I{I4abb%Gmc#zNsD1A!ConwUb$D_^WU%?BAuPA -z<78M!AxfD-GbFpFXpB0?Na4U-6Rt2$&_0wq-s2L0dTpL+Tn1ymwQ04 -z1sk@_5zmM5%^z4q%lr>l13WDaX7Ygn%YZ0gxC03uxXd7yMCY%TQjN$&%}bLSa@5{t -zI2E9G7Y?}W>vq77u4+ibSA{e<)eiG^9Q5GTrYTGwGcyw)iy8RtA&Vq)l!fpab>s`^ -z6F+~$acO9GAvCa?5-jc3R=!IMn$~jY+=f2!`_BJ`RJ%o>DsJHYtc#}HY^JxR&&U4a -z%QRH+Nk!Cav5n&8&-FVZJGSkJl0P}1JU9+PILN`q%JUz(MzO9PtN0;099VO2>fpS& -zqbGB)DY}Ud6cr>M8nt>f`87Pu`=pDfA8-2hAr_N23Z;eHL})5&Av* -zT0C^5d0i9?Pc90#@3yu4Xrc*;8mBEy%w1OfB~aNwsy=b3VgIt*FG&7bjD2BGDD;~^2U -z_vLA=jK~OqdJX-^pgDA -zz`W!8bW=3F1t>_tNsSvDfkUP28sLf}tAKe=6lH2TvxR4nWRT;ex0xKBE8VipTk{Q7 -zwsbd_7W~V>*QTIO6bS}vpN7v10?idic$o8StzQe91fLLErGi5ZR7EpbJg9n!D+9~- -zFPO^&vIeS0{uA#^{8aQHHub@=SK{N0S*edDT|pI$zbn&D1Tv%U&fkCs0lpXIxC0;H -zPk~?W(SgN4RF(b~`qU@`@%{fCx&=D{KKz?6s9^_NZ^PNrXQR6KGC}ubBqWUELkEQO -zOv8D81Hev*f3c1Jm6sIzWN_-n8=qtYlcne|Bkopj=RyvY6% -zEnRxpe;HS(D2(%Y`j|T6J5SF|JrZ27-IC`wRqN?=ppTH-cF&^<9oScD;ZQTtcy9Y< -z6Jk+BOYw#lLZQcEH!pG9`F~Jd`^SYy6l2r^CMWBQqDg%V!aEjA+*Jl^NQ)9?*4T9b7>v&>KgCVlyV2adLC|vjoRT;Yf8d6 -zp%W4TbHX?S`fd629S7O-if+Ga#`-q%`CDm;s*v@bUab^850}vxD -zr%&D8UC~D;2-j-x`i$f(F#T{680%gj?a+cd(zd3X8)$Hh80m-A08=;Fp9QyojHVFC -zXJWUIH8A4S$fL{1t+*H5p&e#`elJ_MQTxM&@U{ClV-#oj-hqt-hY~;x;7`#Q+C -z9L9IxZ|J&mce!#{RurJF_F#XR{a-ff&psWlq8uqk@8LTNtaLG#y_3J;JKbj&u-pHa -z5SW@gJJec`xwe8$4JE^U-aL^Xi7DDF8OM#(`o0sU%eQ2FX{mmDY>tR(QErh8@^hTE -zvQK#a84Reaoc1|)FS&CIY!AL+zZxlggMOLl)ACk-P%KIR=fE&M10%8782D@Wmk7Z< -z{6W>z!d_FAWv_h!)x5S1UMKQu1B!k*joTKj4=YbbW(k*C*W2ysFxmdd#;W0EL9!YF -z(ZkTUXF|7>l6W6%sYnlHzIAabUX-Uzwsk9w!h8pK@YYl(T^URR!TT{PnfHa9aGZgx -z632zdXY8sf2gSDeLBQ;1IGN^-Wc+aWH~e1#R4%l7C7rsGKqv5H$x>q`7ONDmB^PY% -zX7zz-Qd35wtkC3_*O^lFC?HtN~s^00TuF}W?{PRzofMm))77l1kW=9TG2m~djK{&w6R#B -zNMl7dCj&XJ#ie0<&#VLjH2V0!*@Bk{;McqR2>Kg@kZZ$uK!OCP1MaIh$pb#p&n#ts -zCK1}ej0!IkjNy^3=)42&y^N0BT`N`L41(Z_?WEq1n$X{u&>Sj+Cx!ao0Y>DJYs?8Rn;GS$y-^)uZi;>JP}WT@|ZJmk=4Z4gLHdnm+Amz92a$ -zWbXaj$gX_pZqtYWeHwoL#zr9T!Jhge;>gT)m9tEx1 -zjT0)m?$VVuromL6lT4EC@0GX_c*h`8&?88B{9|aPz=maz+wMxkw7KQo=~0F`H#!iq -z$BDZRK*q-@-Ld_;{PcAS5pc& -z;9Y4_zW8xA~0E&ULE6RNLpVpy@l}pzGXZSEVunVZ>T-ee;1047+6oV6I*KS&AqgsXE;#=0yY5g`-nrp5SM@|i@;&{@S6Lf`da?6 -z9cR?VUO;DXyyN?7MP~~E(t#EB3G|U)-~8qR+|BrU`xTy)NB?6y;9D*HmRmVJ9B|72 -z32LLt_f3<8D62t=A9FwLJFv5z02lV{sqwh37*u3o(?<@or$lw7%xr2ts~RkP`Qv7z -zzf@*KRr?2q`DN0mLUd&&DsTD}l_RfxFEe^|yL5E-cImp~zrt_dIdT>`V$JjOpkKfT -zzDd&MB1U)CKcszS>u-x&5sy4;Wo#Ra#)a*fhAJJuo=Avu$HcLMc6L8I^wdqZ@2Hx7 -z5<7r|u)L)p>Cd6;GI8^rwty6PlaI5JQ#6c4gH!GHTw-2T?K9WT(6XXqr+g!iW=@S> -zwC|}IQmwrb-E9UfiEWat|l%=wi?1VUFJRooIM)!8=9kdKp7(sp9C~>r0-jrjRZ-6=H61LJ9aujb}`FtZ@_G -zJs#TDHqHUZSiW`_IK~aMJMtjW;s$+dWc?AO1dF?!ht?Eu7e%)6v@!(57dqncNkOX6 -zG(O|@{*I@O$vlyd`<=cQCKVl={x$BbBEOQL>Sgk0U@F+1yz*qO8GXe4tYFio_50q) -zj3x6(TidsuXezpTXH~+rI4lccUigQC%p$a@+T4r^7#0<$EfA+Sj2D -z+{GB2j4n%kjh8K>yh{~^^?kT5S+(U#0n&bn)(wp*SX6rz=0QU9a%N~B^w?7BC+`l( -zTAuzfkvzU#UkGs`b@uu7)LvyuXwQDEz=z)aXU{0p5pAmMh@5vjc#kc#wXsk0%ec@h -ziE&$`n>$05y#G{+P{|ASZ^Kj#KGWlSF8Gy` -zm0>b1(lJ08g>Gu@p2x@l>I0R7v0k|#2{rEIG~1%}d@?*kot;*MI+>)AHwlQD`j?Ylo@{Nb%SO~w{omzmqu=SG -z65!q7o|ZV5vv%Li#pTZhwpKefp;)wZgKX;M{bc{RnTia_z^5@fi~ZCcQu?g{DmG6q -z*bgWxh}-SexGMZbeQw9SbG7%!p<4yI0>1l?{y79-1DGD~du#tufk()*qOBy_k*u4o -z++1|K*n|s~=`Yeu>YN^L>1ymQ*GzX-iTr7pj@@=A&8Xz*(l%Rrw$=lZ-p!4}%d3kQ -zC&4lMO(e#pb5zuvS%B8)EZY97Fj|gUNH^LDEC;1Sn+jO-VUX5pLH_N03nq*M96U?5 -zaA7}GMJFi&in)*A!Ig%sF9W8F1MF)X+Y{7^46gKN0eo48_uncxIs>_}I}HF(dPYU< -zzCQ~}z_)5iOy`4xX&-d4QH^3Ah#4>^;^Pdlb)XQF0e%A@JxV!RTrv687-N8yP?8lp -zY$wX?VW(*WX~@6re@Y2Gux17M)9rxR5}a7oIL;2o8S(JD9C7^Kp;h+KW?)>deOY&z?D8e8$N0 -zY_?QG-<@0oyW*}a^JBK1nX=ChqUwq7macSW1o#RIYv-}qN$PsZZ{P~3z42js0zyMf -z4=8!A=XFk%#Mesy+$(vBvMM@3%`lu^-MzXV2%1@~d2Q8)jDqu2#TL7Ls}opLsr?nd -z3Hl6R!ZiOtRH9?PjT&hr -zBcCFhw5GJ}m{BR)(M165~v+OdZ|?VPM{jxhMV -z$EsyNUEqMOmARWS#j99({EwxFJ&}J~eYTc&Rg~q&>#V$gc8XDCjV%U(|Jn30g6WYKwb|RL$J(u8j?p20^)H*4**5 -zPHmxJ+LdAOGhR?dJV3jJ(5LPE4M0zDZ<3gPkLRvrW+8t=dRhXnQoZm|AOg33IN2@Kp8c2p -z>)NdY!Z?p+CyN*?JJizWq3+44>B>G6(wHrY8PI;G@X81CRfWtoh5M*p*_g%W@7HJx -zOujP$_3?2;92&ucKi*0AZ@d!hpp3a`dZXLl$vp3m(L0^Ikq`U?2aBP4{}`_h|7wa; -z`mq<&G9{5oK7J^@$oPB#ahYIGOncWXT2#O-eFV*H5c(Blz~ -zX%)b)cVBS@FJTobakPxj3-?Kc|_&JBYh5wX3Sx39FAIUd8u*$((X_$ -z`SJ}a&G{#U?fZ974`zY|SlTdRq-xDBQX<)7% -zfWEL3L~yUz@T>^#>TRBJx|cNM%=!P7BG}9E{5X3N_O%^3pbD)d!X)`0e#`PVC$Fdr -z<04b~Wlo$k4=fs1ccS4RQz?f9=Qg*q^YX>9-TR&Tf1fao7F9xzrIS`pu^OIL=~;Fv -zPLhIe6^zeS@zIstC+q~NmCqGHam-?7WjHEr?Smj4wthe36LMC(KDdt -zPsc<%h9XTYbWSBxM06vGc{U;Z^dG8{PL1B`ZBYd|MQovG<9qxhd!+7ITm2kd(?U<| -zjsCHHdRvR7t80DP`OmM*F4Ww#Oc0g-{`19GUUKrjyA>u2uN?lyNtHaE??oCOzWPny -z|M}f4QJ;g_*NAXIjF*Tx2d*h=D7ws6`BBpN#mfC2E< -z1=_VOKn#k_2PZaJTJYK{0H%i@2eE>~DmDmw*pcV*LGLVP>}tsQD8 -zG8*??cCe50f0#|nu;*ssYB%Fga(GeKb#b*fM(Y9K%Ao -zcST;2NYh$=Ux{Z!!fk$rVZpOw{+*rj2MveW46VxE -zY7)}OFdsI=sm%9hCgpQ$ -zUp0!C{=HwEdj8r_`zT$X*nP)Jcw~23hGBqZ}^ -z5Uo}dih5yK{HwXl-u<_dQGzT@bP|`h4agJ+k%No36ypg|Y-x*huCAykZC(Kp-#uXg -zkT{^HH-+Qje`BpN8Fc_|FMH7A67lb0H&6(W3Fz?jdSQSZGR)7ayjT;`U{{-b>JRn{ -z23JCY9KfiR0j-g=#aTZfk89$906T+gr=DQ}>dDAkq7rS6f1?M;R_RA*Ud%n9Pq5qIz(P`bH2E!_CE%@#_NA-*z?d<9r=H% -z*lI^@=xPCUw6u@6;D|6z9k%1QWL@J~6A;FE1DzbDSU?0f9k+ZWd`k*|mmQ@mL -z`8RNRIg-cr1t@K%V39l(8kFvXP-P~;h6V<7g371#_a$ezgZ!4BT%go{!H#aP(=3Eu -zJrJ8sqTf=VnTeF<3Fq0xW1M$B_tF0G6kOa=(2{QSDL1I^NYKz7gJ>poXU>tJytB0t -zw@>h_fwdIO@PxkQ8I{lVdHC;oEE_H@j1xE!aA3DJmzEbs!Od$Ez>)Y0cktrgfNJ0; -znQq*X+1WeT0Dj1u69qE=zfmW7D%_fQm7;n8H(@%DzX0xmB3>F>3pUq+KFuoXLIAcY -zkafzSi(Ob6e}kyhE@=2$z6><7uJ;DqgYi00efA=#A`8xHH?iW;S3d_uWD>hw{?LO;Os7`s97VvooEsNd;+z1{OcdUu<`~-mYG8sGx)mS@7Y< -z+g5Y0kD**nt+wKX4Mg~x_ee{!o;vbdyF4t3cFsOH%J;;Ac_wu6O?6(>%ICIYT>8}C -zuVM(paxa4Dna?3=BKHj$$BZR#i*rs^H-kaK2tEcj5bBx+gJR2P`M?_;w1HZYDxPnrHhVZz=M8cD|R3iwW*T96>bx2&0mFEfslBGhFu!3 -zP)w%R1ugBwe(6X07@THyAI;yEY@%Qk@VOt^WzOR?qYc{zhcN?IE2$Sk(D#b&IDZ5( -ztdGS_vnD>2OK6MHoqwm&15*YxawIJ}kNvknKIgDSctb*K9B)o$*tkyi*ce1UpPi`_ -zV61L$4?wBPxI>=*pv%X2tm=gZ!5+D)K7V82oSsDIy;41wD(?kMUe~poUDE?Lr-Q$6DUbN69Lfp4rW%si3fx;~ly+vz!P?FRmj(6Cl -zqboC!1D#$<;T<0$KBt&V)v0tCuC_Z27~*F&8w4Zv+MN~hBQz0~Uh%%Zzwl&V!Rfer -z^l`6!<6rBQC4H>XNzfikLk56-t3W -zzNaOsnYwPFoPela)~$V2_5>kpVYgcV42)1bD1ZMmEWsvSK -zCVWf3pg3YpmU3YNx}*qO7z+Z;j>{eBJ9^$+F*AkKZz9o}(OVh!Rms7oSaQBGfhzI -zb)2zSpg2*W*o!eFFBXt=)ScPgvQIa)FqyD*OVRW}gj%=&dgeP4vG_deUXz*0-KWMT -z|BtP24`=%Q{~wZ5$T^YoF(Fct!<@=Fq*CNiDV4)S4moVfDa!ern4Ef-M2;bbh*1`D -zJ`6c648smK+wa!r_viPz8neuG@p|3Q`*}Z3&$G8CgwCe+GMz15V{44>ywih_HmF=; -zuT&LLUUh%*&+e=He^lrq*0!0n^c>)JH30S&d&t)UaDM>V8wac5JwZsF9YkwpN$H1o -zv**wkE%1dg)2|0{rTvadkOJV<0>^;K!8B-$?dLOTQy6pnvrC)`H+tzD#;uYa-$(7X -zRbPn57`CiS2k!s44$l~jmh{1yIa4hy1|6j$lGh{T2bXw>gn)cnKurm+zcM}A3t;g) -zfaXFyKj`hsF92K_RTec^De%@v3T`Dk{_yx87HoBw7NM01dH8oKo4w(W?v3DQ?{kBj -z9^MMecsTyiu`MSmSu5KOUfM|CTaCKi)_{die!N+u5a|qY3*U;d-Nfwc1T2x`#Qk4D -z@Bfgd7c$+Y_4-%Y6Nv?UtXLL+=W -zKRe(#UuA{-xB$cZ_@OX^9M7-*!N)2I{@t7e020?ojSsikdiJ9xJ=}DK -zNe!)Hy)D?>>ms0U|G9kX>~Q(4aDN9)LaML5<&>@pi9DC7JKa -z!uxjxmNt3kelDY*8AR;m`sT;}@!E6HU|CcRkSfvS=LpamTnaIdKZuNR*og+6m;Qi0 -z9mk^(kw6#ZsNB$(ea^GXrx1bPP|3bnxEc5*86czk%y9}4#&c(I2i=8**js*_n5A%-W={|QV3D; -z@&arXtCK_4nKjEH16aM2QSf;X@zV%cRgyuZ0LD##fqi8|<-LGs2^Okx5zaNfd2F*F -zI0=!gtrJnMtr3wM?DwJkH}>Xr|DY6Rb;@Qb)G0&RzpfcqL -zxcLqGLnzCU+bK=3v#zC*;(gNl`E!P@^*c3bRJFn6BEl$hn>=L=9c~Hj#dAV3LD0(U -zzv~dB4=#IT! -zsfLJnjm2|8Y-kgN(M}9=ACL9&#Z0S -zOdFw|)Zno064+Lfx!d1F%RnP0yGv=hFMy#0qaX@Zqrth?Co&TH4Y_+bWZ1ml2jo}iC={_D -zyC>HOJr<7$mf?J6b|Tyw|7i22JnEMmVgKlhuQ?A?kS0&<(}I#+2O{=XK7ZBZk?3=H -zpPgP+QCSh8Uu32fTu+Mcbs=rmwN$FYd-JtY?C>S=YbPn!lYX3o%1c&@tS~oSXfol~ -zPZ(z&VH+g`?Pe7n4f(CLEqq9;GUUU<8NaHB17DEiVU=@B|H&qkFksu(%GHLs{!LK% -zG-kBapWhs?k}`)A{yCWg9=X?dsc(OMDa_$J+H?D8|M~GlIG9Ga`Gr5{B}v4T|OSNJyCqK*;!M4=jjdOIjA&| -z4(~0{Qv?-!;Tn2sc~qai7C~2+oBE>&Btx6vkPZ}{c0fKP3-B{qNH)r#Lz{J6KzF4< -z)%eLT+e!L`m4>M`_^)Ii2CubJ1US8004zH- -z6Y^%wW5SQmL%SbW^NHShzC0E-ZGS}k`PJ56j|HymHMqCPFFW?=bB9|6`IC%y?&Qz! -zs7X`!FE0ut6mS?cCA&?ywsu^t>`;8Y0t)h`mF4af=G|J}OAy6&)fQL2miu=yiihul -z*_g9Zgca{EU1Lf1V)ZL`+8&d)bZPN`(5zp>^iVh~0({gt>NYn$QOyIywvvB`&HrbA5 -zsz}`sQeni&y}>WT8Ro%Gg@0|pD|H^E67Gd$*oEA3{qcaJsRU7IVs_{3>=Fil)nXse*}hL3 -zUm68rT}TyhoU-0OQ0(s*OBN9nUv}2-aU7_Bu0wBwjI4BOmoVf&-9-<(0{JS#xW!au -zeGt{f&{u_obiy!P|F)eBu=RM8fIzDkRl+=b5uCU$>^NRw@Gi}Hj7{Td`gfB%m0<$2cIETK3ZV{vmC(Mz(pMYIwc~_SZ8vjo=D4C -zwYu{*b-~Acv{J0nz5H(8R&P#PyhOapGt-P$*Y|nSd!`SKJReRWIV;Sm?xHs0Wn}Jp7h!IOW{;DD{=)72aoST#t_& -z+Ly+;&b%wjBUu{ey;-%MrhT(se;y^Z%kp#P1n(vruLORh0ZXS>-Ig6JHcOtdxFml1 -zj_2z2{K4V!b6Vh`xqEU)b9!;&4o}Q21tYpypYWNRoIkZ*yaXZ7duPN2ffm4;o&f~T -z-f^Jx(zm-37&2^&wm21Q`sn#FB2dHU>;Z{Lu;mwEb%V}^*mYPS2-+Yg%V)owJWfDZ -ztQCi$SMOkmsMQd+j+*@iE5I^h6NG@jA1JC9Y)33Y@;C0=Z&8_u8m)5T__$0QA$q4_deIN=bnpgZflI??NnM($7^olT`)5=b?VN8KhPw1iV_+6;)M-Zfi -z!nErHjCI3ridk4k*qFAx@3t@)neEYZGja#f`0BK0U)z(g_jRg{{3w1wi0#}q?#OBG -zCdoM4Q?4$bY&8@ADMOGq20WQ+yONUx4LHxI=E%Cv45cuxTQwVFbS0}>csOYHey1zr)c(cVEC7y&j&Rk9xe|j!|v)@Yo>z_6czYstUf7d+b -zHp%PLSxxY -zyhYh%3RtX}-~UJg%OQ={(p0iqh0Su2AgS^_3|!-jB|3P -zl7o$j@W}Gus4_ -zjG4Qin>`~X0y0q3_xn6@pk~BfPxH#FD(~rDNg-nKiZilg?>&c2(aemf&8NdZBH*c} -z3ujba0hleJM#tPOe{lV`MefnsG5(vjEFMf!0V!W9&lXHYYtcCmfdqf6t#1$E>I3>D -zm#x$vLsG2gs80ztudCS2LmiE2?*!$)rng0BO!G*&Y}UCP5@uZpvCU(?$qMIGO6L8+ -zNj@r%lBap&M*SX8T?d3)i#n1mp-tJ9!2O4IeM?pbNi=0)nJ69tpCzi<#F?6)5T40s -zV+SMvOjLnrq{ns$VUs&IQ|WGEh;^5k4IS!l9@HYyp~QZc9|=|lfCGUaDaF~Ka-Hz<3j=c2}Q;3ZIM#^&D1vztBlqUPQMM} -zd^;(-NoO3WPiMkBe=+SDjyAW}jm`unobzkh)X`3Q&nEYx=aA^b!qV!b>*>PesisG; -zV3H+IY)DepVhTc(A0cc3Wp}1|ytz8P)NmjM^V)WxXYHT`<9#=Z$>_8Eb$f}<`d}>V -z-7i?!L!{oxfk?^EotRo!JT{hg-+VX6XNCKkvU{QXdm!c|ND6J6q+l%SMCvI -z(kgt6Fj_Ti3$$SYO<3D~Xs90s%g?xF!;h+?scua!8o<7fRY~T)PX*dO+w*H?K$ikf -zz)k?EZ*b>nK&&H7ew>|6NHJ6!1>=n|ni>lhqI}j_2JH_A&m5D__s_E|?vkGu1{*T( -z{Koje+?fxi#7@M_X*j%;)v#%BSN&5hAxm?}wKz|H$s~P)${C%F-*Yn^MBgOfGmNSRkPEnGsC_Sww -zMxX=Ku`8@WJB160t?t^%`tqT>YBsWLFYxRM*+eOgeWFb!5lZq|g#96IM(v>$P&LviX4 -zQZ9Z+(Q0n>X~bO3BCG=iM8Rg!le^{5}7N95p^Qf*KWxRJXJNl5n -zMnb`m|Mo&g3fnzDy5P70)TzENIi=#{xs1bHn~|?Y(o!e&DI{i9`B0X^)K5=JSA##5 -zK>m}ih}jrh;>&yWiruv2%P()Bpb|%{JdVT#C_$8{?od=$3sD>;mX5D2d`}sWlAt -z1LX)pnVbk^49+;kd(fBHV;T9~wrO9RvgbVq-;p_n;7^Yz(u#5L4y%Y9;<`5!Afzx) -zs!t_y)5%SD5=h4W#lM`v1$2OoXFD9kAF6ISfDCz^1y4_!>bm2(mF|PQZNEY6;eGZ} -z#LXj%2~C9N)Vvd^}W2Q^@|lHGsz)_Ke^F8iMI`vGxO)I -zB3}#Xp$9WRJ=w=!3uH=BZbS?-&py#x!0fxQ8h+j!y-JT^HH>7I%1*v(@1U4s&EYcERl?(^0fr;Aw-nx2{a5*%9BvWHs>elHk~%RJmyFBfZ}?b34!NgA&B) -zV;SUp>3lWJc`d^+_+J9-O44C|t>c$zT^pvM>Q&&9(vD(>u3(w2fr@qoawD -z(kUh -zk^uA~D)5zh_&gU<6^_S>Wx)L}q5ign=Ph7$%D()BsnV}a(k%WeMz#OSx!tk)lto|a -zzS5yHcCEjeQhFo^obbx**?{xMkbUgtt?Hd_$7_V?zFILf=eZ5DtB|$0=k4c#AzAt8 -z_jjGB1cp<5C!^sQ$Y1{Zj%-6Gg`VCOOSS;< -z4q(4RVF^g-RN8(7eYDgM$%p{ejBdbK=FeY6ift##sUnPV4F2tMzd`7)d;BLhYMl3J -z7K{fVT82h1VKCeDleRLB`Jz}c_iXnkIx=dZa)@scFuM)QZQ_!Y8uEhER -zr4Qp=Vkb;w->(vz!>pFrc+_oZAtzwhOGlbiDlXz*zLu}+G_lN^@iQvoUOHj76yFeX -z`X>*%Co@ECJ=XK;C|S6zj!W_$&eE|7zA-;@^D5+bnlO3k?=x7new!WI!#9?O0$2Nn -z-AP$Hh1e9`}6Sm_#dpjQS-gJ3y -z{el~RKCZ!$^m^xMCnlD*X6cr000txNEO(v;Loym__Wv2d!48CXPy<3-9K_0*KXpdU^vq513 -z_9&}&d3Dy6)d0OWGaTq14?SdkG7K_x?6-P&MyZMmZm&f}wCKI+YV>g6`?Xih?!cNO -zW+xJE_2wfKb(M&@o?g6_0<~W?VqTqnCZM4%955GHpLtuAc(%)F3$ELmxj9X2JpH*L -zO_Nq5Sr-$gza&&4t0)~K!QbH<*>nF{&n4-z)1N65zQ*Qv8@X89n!zYNeO`C_t?JY?AXxaES_A1nX=NU{8h&o_)*{^Y1`QM7gWuj3(z?{UnzD)W_K&N -zn9|Gau8%9Gn$W(7lnmEwj$iKZ4C66y_S#MdC37*Y7AT=s?wC{Ph%qoqjy7kYtkVjVCLI`eumYY{(WOx8u1Gdw4jL^_&E3>5t_Nia$ -zO#{jE$-X;QW#9`8Y9KiZ?!7x%*BWs4X`*^1aWS*?FgT;Yz1Vkh>aO%Njl&pkjD(sBYe>ulK3eYqF7<{5@O+>N(_I?);6kIqC=RthH@QbdSq&uxAs{5^ -z7B2;1@&^3cCm~54CU7v(co)WM7@!wPUtw+&LA<5C;K!h`gN)Yz8nXaGWgw7+z^oQoBTEsz46b4mQR>|g%&0;q^ul4|6i%9 -z0y!R4v1v0R|Aw{41B5}=#HRbND -zm*eN0xTnIj&vBr;7dG!&J&`3{`;o0=={r>Bf6tsnP-VE(wkm7w=#cu2K5q8+Du1FB -z$iaDY?e$4|N!V{@DGXlebq_vMH=g!o;|sH^#Z!sBavQd5RAp@8N-lxha;7Q+w14%< -z8x3Tgp6*WD@x0B7E?C&!$h_jne8V{u2iUXHTR0dma%4+47xli@!7@&c6j}P9t$5aJKU_ReH%YH+q)1t`5r{sWU2vV^Wc4J=A(ZWAW -zvJ_ElI;g0yuM4{P4J*cNUi@|d0$aF)jHkqz{_7QiJH%=~3+#e$t9_69kD%}7Q~knH1M?{^iz@)u+XwPj(8U9tg^orB-BZJx>fDFie1WW^ -zH7?=0D7 -zL}(rv-8AcxmKtbKsnDEVAkS*INo{^7?68#CAu^_MI=;u0r+Qu0kV8 -z4Oa_N%rw=Lm4|E=Sp->O(H~VBydrdrSJCa#^3|Ca#!r_tt$hq!JVx72uS>Q5eckti -z@6rtKc*oCYE7^vd_a-=?Fp(F1CBD?%*0J2##1r~T!DS)yich^3MXU;*D_ZYlG`GLi -zx7rnKDGjxp;n&v~5VI!69`ydn32#@DGZ!w?HTb8|lBvT2Ql$bNR^hGPl{zO_d$F5m -zr(R$@#XGS|C9kzcj(;j0396_~@=CRoGc -z76F!SP6mT!CuoAL*rjElTqD_#hvfJSKI_8?MRFaUg9rzH97+Y8+5$cxPp>0{OmGNU -zv-mu>C|pb`CZeK_^!gv&f+HQHT&gl}7k~_OFD_-#X3oM$~v~d7&io -zYEOK7fTmQ4F_A}9WqsS_-a1YAiaPevU$sXoBd-r{VFhLU3r*2TjB**m)ve&*EXV8g -zkSRqN@{mdD-)EfVC}U<`TL{&D-s4+K{Sa`Mb8to`m!tdp%F#0*?gykafcdpjC3WG< -z%FBQBw>|tmo#b3}d4U>rJwlpEtl(m=)t4yZTT~J@Ff-b+H}`sKo!2WmVfsDpcgBe) -zs^jNM%GN&AEgDwH#uc4Ef8F_uSY2J%g_6WD7U-z95;J@-iExH9vh*lItwgu=y4N28 -z{5W;+-AZEqz2W_^bb}bTQxRT3-8V9!I5Go#>FbN>`|^ASlT`7QGd#P6I~85FO8a;3 -zD8b$K?#hQ6@ru601fFVzYjPsdQn|5}tB=AX93QfYMiqT<1*_YT=~p;d-9QQUO&b13 -zyvLi<0M)liaY=&Kl*{MhQARRb44bs;jEb}#20kZDj-SE8kH$LfFFaP(!(g%)0TO5A -zpSq}bF<#46g1Ir!E*ODfUKE5vVQlHj=z#+UjxKozo`!85z`W?+nJf${Ok5a)ef4+@3IC1@3J<7<87vB<0Sb61kMkbj-SD{ln -zQhYYuy}54JwSPE -zczVDY41KnJ@ph%#VlIOA?)$5_!pmuH&(l3_`@IV1+sUTZDoXs-_u%KO;ZxaQ>M;+j -zz`Zu6S8U#_A4vqwJIj`s2#6p!jp$d6FMuu?Go?t>07`9Z)?~u_N&<|LQ8tBZ~nK=X=U@{PVjUe2u}=6QmX%KfxXNL -z;bQilO8FKb}W>Lsohl`+L^z7ryE*GKJUn<2lY;o&Np*O+|ikLIvo*4U2 -zT$(X@jX2|>ub1<>k3*WPf2}OV(XC=NHtyq}{@*{RSSI>yhAO7EC&nW< -zx70buIW8Kyh3AJy`0j8{8{_geIWD^06axcVV=a*Bdz}-MPX1Qz&DVYmbo{c^xp;mo_rYkXqUfHcou0$J_o@#ojwOFT45{L9Dn9c7#uPBJI#0aeK4 -z2g1#kGrVQgjqyTKBGo4(Lc09j90sUq>fg)OZ0M~!jp|4{re2c^eaRC{yxlxX%sq$A -zl~or7PrHi6WV8Adm!=@jjvIS5x=2^PmHs)U+!WvJFxg}l$VI9R@|Tp_$MBBxDOad- -z7PxHHrA=?{I_UyjN=yNs&iFgACy0`V1Dyv-9bvU!kAxi{*)%x#1G-)N3k5OV%GUd* -zApNg&u4Tm$pcZh>OK3$SXrt;%0;W=B@RoCU>=ocUe{9cmn)P|J1ag%7F_U{34a{4W -zM;u@`$(U6<5@ENQ+|{>$ODKzGv6TovH)neT^xLWj&e^I(7y+o#01yX?vA<;VVD>y{r4z7f -z*fPCe#aVckboRgX>ywW4aQC%Q$_SS3`W6%meX_jKoql3-RZM@& -zZ$0+VFgLG#wLJf2=SI<~l8Q}tCuibNY_*xWeuLtI(7;&Y?<~Bv3)W_2#FsN6(rmNt -zvC6C}t<_+}CFKRRS7y_zD()jY@q6VxvNGz%jx{Bg16i$jZG90$aOYu(gv1XMv`!BY -zGpig{7I7yY`9=Y~8jLnIf7!5`I<$E=KS43K%!-<&tMoj{<)R^H}DcF8mhq^^VGBo6#t52iAJ -zC}QQMYZmx*#rkergNzbjqQ+!-AhAvW4=Sa9AX0L{!L{@X5FbRqXXcQ#AXzTEQts(J -z*jAw=<$Agiv==K0210<&>A=641Ehz*JMH;bQ32tK^BUco7>Cch;qUq|Chq{ZCl2dN -zET-iGXJEq!z|(VS%3xx9KL0l&gJYJQQtE$|t{ZHZ6~4~XQ-H7UPYm)gX|fo)S68|t -zLW^)>H((LyShnjt$G^^)REZqYhLoweAZG7e{Q38Fe&k_yHd@cvi?njn4+zC8#UD*a -z)L>F!i%yMw8Qv?OM)AI>L_aIz(7D^oyj>MZ`S7S2iLP&f2F)RUk_OKzLd$kv};;@NU=x -z+?+!m_U5F0wYGw}zX(Gv-nApZmmP-dV_WWeqlR5h3WQ}P`&VY2n3Yi7m{01fP;7a= -zTjKf4w4Sq51@h=E^SI)f)Pnfx4KqA@@ -zZ7nr_nSthdXM9O}uI4A^nSp=-8}$ncma~cWOk)SS@&LKe -z%HfZbq0>lfBG^|24Ceg6K?+#z4Tb>vUJJy6K+*&(8wwH4zq(5>wTy&IL;LhZ_#3?T -z`DqLjv_l_k15xova3-5fk(?_vu%>o8fddp4@N@efzts5|W5;?K$4;O0cqaY^DIZmh -zjO6t&3@Y)?!8$s{de8k;|A4b>jha9mhRtsb+q+Y9M!@xcR|&Zc`l#qkVTjia$j;>h -zDlFw6B?cO7lqZE166X^-Z3R7%Ir%H`>N2EIsQ$Gwe==u -zf(l@;FbXKjjBnt^Z>2r;P98Hv&TXvL0K^!6M-`6x3A3YlcD+$er76ZSkgSG01WfFk -zzpXzL{VOvhard*hgGt%J{>A>P_o#)XPq>a-HCu8;#y)29)9i%Z0?zcy;R?ZXm<0*i -z@e#Zt?*aV|Ox4j;;Lsb@7y%K1;{-RU -z7#O}7)Zo1e$bUywKmxO5>YG(Xu$3w!I+)v>=u_L;6wENdiB%C||sk8GR7Kkat}-Cb7q2FbgXw -z6ipdM>X9FCb_z;`dY?Cin-FHPo$}MACFblc^sWE)tu{~6T~F{db^58rW6Ho4KDg@l -zuvbqV3X$_W^Gkc_Jgu12MiPC$dslTl$ihMAh6UGElK!-3Qxw&+N6q{^-R{=4%@?<> -zk<)j+&q(a+oqw?G@Rbb;;a!UMw-c`BO~`7Q8f}WBUI`9HK2j%T1U+tu^Iq&9;+~Rj -z`Xu&2b;{6ZCFuE7J;y^SUDk@}$K#39V+l6X?}a8C^J;V(aZ2n3ed}wkKX|jAJ`$I+ -zk|HIfm`KOSZiSr=f6uu7VY#i~HkDK#2UfnIZhA|*2h460tZDUuNz$vAa_nlcJLs4z -z64pUn+n&vm#z}$d9@J))UXs5^=Em&zYqkE<+g=tX@}*Zi7mpYoW;OH?gmBv*h~KMp -zI3v$QJ3`E+Kp3M@4?{Y9J(+oORFU4=8c)}WAEaAbBoXX)D!WdvJM38RMR$Nk`*sl^ -zM;U`rMT~Q?9ohh*5wVa9!vpwQ{IBdld1!zNx{FF3kN|2c8)Cqh}4LXEnw@hl{<>_K_bpIo|vTnRS8mD%z1j@F}T2 -zb3;4!ZFCsp-(e|w(Q(APZmU#Gx3fx!BuqXhdv~4GFP1~XipCu1@9C^|g=qAXtKOMfl+&Yv$twO#a!8<Z--wk}iG(7DNIqAhUfQOfc6swbWYP8$iWHk+JuYPJ_TF||1E>iZ~ZZJ_|o{r%hY -zF=>!cLpa)cby -zHs}KhEv5pXI}-q^aqMB*DO~!>1IaFA4>T9=2@)IPPpsFV;q`m#42x&!jQ;!^^P=aX$ps;s$q -zpJ-GmmUcJuZC+%>cFA7JwsFv8-*O{~seM{9nHv3{cPWT)%FSgW6u~ -zw>ixEC=O#Q)x>_5tF&ZlrNJjy2y3_*_Hl0BFA*`_a|CI7F?xftFzEx~leq2`&m+6X -zu6O$BwI$vT3E>UwYrAq{UKj@<*$Ogm#O(xPR*3jZ>(7ndb%USP2NnlLh#sphIKuAq -zg|72_UaH}(?n&%OzHoJEUdD!M@_z$vuH73Cg~@`bC6Uk@dBJK#97gj52<-x3O_R|Lp=n#NwQlT1LVYrCRR1Eu34& -z4F1D5qjFoo<1$@~bQAsxAQl;U!kTR^sT&KImg*mW3vg~?YD~P9Tv+P;o^QRj(ffFH -zl6R4fhY2m>L1`k$@z;h|+Ey&6Fx0sBORl3@UQTJ*1?U&LfxA!>_^Q_6a$fiAlTTdDM^VunGiz18@%qvL-R{ -z&GJV`eP64Ui0=O#uoRZ>sIp<{>CQ -zRGloX_(*PlVD<)>787C~8Ci9eXl8WwloYHNPZ2A1z=w{j1=o4!`N*Hm8cqM9d1a_k -zL^Jota0=sM$jBSc39BbWq@T0qG|3i}eO_S|pX*bnn9bE`J&9yu*pJ4#vdpHy``6Oz -zncmCiKljCRtm6xK#szpA+CvO^p1H@(KD&8pZn*v7Q%N3-XwaorP1;-&-^H<#7U&a4 -zz3^ZqiJiDvk{&+3>E=)f{IY)u)hRg;ihH2#W^2gQp%QExC5{$N -z`FV&|@FE|L6bwl6Gp{^}-agyR;UFh@EZg#Fmwa_NczAbpRoAYGlYEG$v=z<1HwOoF -zH|I9~nF?qup88FL<3G3u2Vd_A!W*(9oP89W3(4cx8`4@QesU*`^IjZmOG)~KtWWci -zVsLLZdjIF#lN5TPHRz9lx!-YvKkv3k^P=I2m_MZMXjD@MY=~BFMNtSZqgBfB(Y4b` -z!tZckue7djIrjoCv3NBsT_wD{wSnPiQ-T4tf6R=wO$*SH+F% -zj00yqJK*$9)rfl*WkS$ozBppIZ$adKdKfF~X(2|No;iY0KgWICvhE^(KGp5TGFKW( -zTwUIu-F@YTTUr3);oiY*kenq1S?%03ZQ~{%j<|YV7~;cx#j4(f>9i05Dcr&A-h;A( -z2=+0+d61vt%+z+fMM#>>sQ25H_lbFfk!N_->0$jM{e|8X9{&puGyp#N4dEoT>`_jvV{Z=DMU@G=_??tpY -zJAO*4u0$401d(DWnh;YkEzE_+PX#~SAZC8PK&ku$na$n%zzK1qqZ%N`@CKuA@d76n -zW<~(4uxtEC=ES|{pJZF4I}0Wbb-<#HrT#*m#L_}zCRs1>>bX;UBWB@(my-W1hsmB| -z?wP}@=zovkh5yprSmwyEeZcNjtphesZ^n}ql1$m(Vr|2K(IXjjY1=>4Sc2K!sDlTPX@8}_jLa|L -z*^1v%`P>Uj{;BU^H>bS*47Z6Nes!4HYTFC)o=YlJ}(=d_Es0MsV4nPLk0be -zQ(vOvIE#kl%Q)&lNMX83%*FPr;Ji0X$1_cfa(obzcvW&nA|Y>H+EdHy*{@>+?;{%L -z((z64M+SZ_M5grP1=nLRUTnc{iGhxPmYXG6nO{bC+kXU6&+9)^iWk@2Ys1u`-&>M1 -z=tg)`ZI$2;;X>Q@h=RE;j}yX$HC+w*lhT6&z8}l|ymS63oI~fTgwq9UdcF6HsVZ-1 -zV<@HHH$2EpTfw$IwVjgq^s9a7Au$V#djL+rTQwqcC*|#gZPIAORvmX7`{j(uUA-3% -zG;^dJqW(-J>iB=jOWRNiJM`1zkDr1&m)=UZ;py)YN3l=J~IjPLmObv+a}Y5Lv3 -zmO%oYm@^*%=OK+7FfyHhI(*J{WI=)v51u0Ye^?xMS?+6rcgVucI{i=xxnq3%vm3#e -z565Mo;d?xsOOE&AQmj0T++_$!+r$sBd(>VF^lG30!bCuO%T5Fko!e -zjlh6oDYYF4-J^hNcGv5TGTXfS5)5*y@lXja^IcbnSyR9m(YK`;$kcwsv$5^+7cH9M -zEG*E-yG+>s@GT9TlyIA)| -z!?H}(z^Py_Q(UP*ecZ9^)T(;+sa3^gFm@`bH|R0jGW!0Y_5-!aLpG%@zl`g7&Sia? -zxEva@W6E^;n9Q-m(&92AIMJh+MZ%??7){w@%lO{ZyVHS<{e$YWrwfH3#rEQ&B(%36 -z1oamx^;^V)l^<@m=?{zo>AXOL5m1$UAb}|P3G}y%ATHAaIj=5(Ka=$|BW9lDHf*&u -z$!f6Z6cQz=xCg8_4hCRC6Buv;+-(n$o_mSoPUIzn0-W~wanRoqUMrADljHEqL@JO_ -zR3C6m(l!f-}-Hfr0_L2r41_c^__9r&dI_K|?h-aA^bL1NoKwLV#Z&{}!t -z|KBA7R7oynUz)LRd|hfEC9OM;`Rdv8bWj+pvb#n4Ad%1)N_n03loyk#eWyQTWdxvN -zm2#dUnl6C$L)`|5q!R>G7AHvO|LO~>_6xT=6=qXU$>fwP5Y9JC@6Td@;FVgMxS*vtzoNI~^ -zOOyKc#7b16`m993iAD2ux$fvE*;^B0ymtr9`nmUdpHf^FpHKPv-}Y5+Jf&^t%PuN4 -zy1dtSZJh3ZF-Wqi;a1wDi^6iEfu`?8n9f5ToU~bHU>3{C3uwA~$VCxtL4qWI%BMnS -zy|D%siP`;o-eY*h;)Rp>5S;Dv@cwMnY9Qg$jC?>;v&ZF4ZHf{iNzc{ja%OW)i-#Xv -zUyyILPq=-gnuW6=z|kKWUV`Z}&VPp45PGreLW^*3#$rbmGwWzRZVWGr2@o(+xmK42 -zsNL%2Xpnr8J%{O6>aO%0Q-z~%0@vL-(Dg_B!#u -z;DPZf-+mJ*vXl+p*tr_o)c1y8kD3D!LRqT+n`A^zXVa4ws*MsGU -zIve9mil~>A5SJO-i6we_+5aj??V2kD-{qq^TyloH6 -z(~B2+T0T%4N9_-NWwZG7>w&F4n=)IbWz$KJBm43Vvv$Ho-<%(brhn1np{^x&vvHd; -zC+vhRMne+SuPyyY>bbqS|M#Q8&BSlZ0~nXG=Ei_ja`Las -zz8>ac;||)IQw`RY!z!69!$m<1oHGoTiZ4abmfora5#QaPym#U0^k$0 -z#jd{|d`Y$gev)_Or)41S*A)<6;C)-r|Lo^cy0HY*HQ6of$8y&d6P#EE{i24*BmewL -zdHT>DC2(6D=!TQy!T5#)TA2WqiX})gAN~_CZQECZqCZEuc@(Uck2VE`zMVYfQRS5d -zQ!8z}f5o`B{GMiml|q1x`IDXGV9>j-{B;YG96AsT=ZQE!&iga@SWFP2zlBs}t_PVT -z=DW$S=Wk=J_mpsd)j-#KQIJW!7!txI#PEMnK=4%2zaiW1m^Fq_X`v2Q>Y+tu@;0!A -zp5WJy*g`I9Jd}S{kSG&r{oGu^__(LB@WPXx`9mf8cca6O@qW#-JF?FWhOi2nnVEcv -zi>*y{k*51LwLW>aqdQ+SX_;rl5+dkE`%QZffILIMGQ__HuH!i#kaZ@7 -z;M8i7(dkzG^{q#icFGUn4Rkc5FGpweNbpbV8dJ7&(}f|Rop5vCQgU~QCoZ1r(*A2i -zj%|5)-f_>}X1uVdthPTj2>+{)*R;B(*_GrM{P%N6WC27cZOh#C-CX6^AP-`iOI -zX-;i0xzB49WNR3`utC015O>;h)+;Z*a_b`dj!^hd^{8bJd%w7^4o08SMaSDUk6%Rd -zFyUgEJ)k?KND>!qWBojGeSMM+%z*b`KuPxh*n0DDsQ>Q`c%+EZ -z5TeA`g(OAV%n-7rDNB@Pgp!2p>lh_jO7?6ql`Sb#O7gR1@GB9*$TacI13Kq5y;_j5x5` -zV@FOV45u*8jk`5r-9v5eb;OP|fN6+b|xU=-o*X2YR~RW~!y?T>r5A -z!MoZ^=Cp&7g$FT?9pRF_6?F~<5-PcYxojR4IkW=-DmgnUg`~&T_Gxj=X%-+zynl36R<6Wg1 -z?zz11WaZhYcPqn!qVZX5-EBtV!s-8E^~j4|$#ucIkH@a(n>$CZi@RG%M`7x6hZ&0~EuysAD}v -zm!2YJxsa&}f*0;!_k{?ZLL0u_7uvSiWEQ$BsTF}bI-&$~ZU05K*oGX=Sv`J%x1f0G -z@RF)rUzO3_$yqvo^!EY!0rrXTXlxE}nq37v)mzLfw2R-pJtI;h?s!Hxj#&Pi!Tq_H -zNc?mNW9_*!%K*-@FWvwFfAvn12M{2YrSAT90D1Rb+NMCx5)hYu`P~?TD%WVC0`-{3UJ>o7+U=MU%Ixp82dz>q3XaEwZ@x4#;E)MSs*%M)0+zr|tE&Yw`!f -zn*WX;N%Uw8&=`o4;BR{zpR{ruCu^GUDo18Y!9+;4-4jc?(+>o&Sny}dgoh8~n*D+KUa -zplo|$fN^i)iw$dI-&gAQX&VCQC*RQzw*0EP#>eoDH$Z_f=~l{F6dxvPuiMpvAP+_- -zreJUqYl5}yjTqvX -zx%|P{wm_$;%pWN$jAFoJsBXFcD#%AT@7Jh-saX)8vhv~B)xn$Zgy2eBuKB2JlZ@9{ -z{(t+8ck7Sphkgn>^Q4vZyD=){)WMmMV5f~~t(KHBenc|kpwi3V=r|k24eMU|LW|e6 -z75qQ%%__c;C7;sPWpJi1T=G?|7T#4STpn-B_3}}n2H`R4(u%HW{Vy~W|BQABLDZHB -zimYuI)u2pZ5u^zF_Eh8AAH?+y_`Y@|Z<-Ee1J!`#nuvhk;T(xb>=v!pI~E4c=vcQun}JGIaap?Z)l$)Faw8jIGrbwcM4lZtc+w -zW7ZvGIxPvcw)pX8M`GFXR@a&mAGQbeK5p&YpH>$7`x7L-*O(4mGFEdoJ>L?W0Y|}- -z4gmSQO+^R-S(2hoE%%h6qHgU0^=RvXN@b3RGIh;c0O9Y#_ -zfM~EjVt5r{yKG7{rt7;LV?S~tW&(rvQT-dnsNC7mc^j`VR$sv1*3lcGk3EEZzuGC? -zQz@MO+mfDqziv$_wc6tC1i?(<{C4Y#tO<&?6N(KpDyI7nM)baXxxHUmc~BU^ -z-x<2^NN2yEi#u+y{l)ozqouqutYjbKJV3?L=Xwa28WZCq-m1LcS%2!i=}LjhM9yY{ -z^8|z1Q)vJqGRIpgjjbkC88X7P^1OQA$g+<*emhJ?(-&3{h{W`-lJdu|W;__>uGYVXXQe8)wH<(pIgvY09P= -za5R9K%3?0yDewZuV}>HKsQM<&a=OO}aZa-UyB}I(tghwNK#VFLU8En6kJKI&I|jKS -zy*{gdXoBL@%e+3B_qO%11;8)c0vkL)FXsP+)PX;U08#_3|CSvY_9ieN)d!S`O4q>_MA#QGIA`?IjkXi? -zkBcR!DlfW54@bXDvYB|?wZP+`W>U&2`54jN&?Flf_Or%lr*ea+mZjqd4{-j+5)-q( -z0a?rWT4+`J&B54x{wj4Mqrs!#r6zVjcZj5mulDEL_R*db3_`Z?t?1`I(L8e)y0Ed{ -zfVZXosIiWAe2!gvW*PCB#Cn2yMJ_d^Dx$xw2_XI(#Xl`X^J7g2w)Cg!tgt6N$ST++ -zF!`4Q>qOUYUff%f93#CHBU2fB>f*JG#|j$HWEf9c8~eobx-mm)cI}8Yzw1mzj+l!h -zzc8W&rnmm31$i8l7K)g7Fl#5ze%5gu(T6v!E?aA>BlG;eY^0JFn0mg)&nhBpFY^rN -zLo~h8!oZ2s0w=Doa%7gyT~IHG(!Tke$lZc`+s@t_b`yDO5auu`>_D@fG -zK@HJqLHj`spz47o8<;%oB<=wg@IZF#P&nSp8vx!~f}kn!-<~UaG4 -z7q!=gcdFi5j}$gAgBR9vr|rCdv{d1*3nqY7olpI^3|!uUOdb;t;-%wu1J;O`)Y4<; -zrq5ojzDj?(_^z`0Oz3Nmqo@99@h_On*tB7U8o6E1=fT_}dmDn|u8L{UQvJyYFavpZ -z0*r~F*HHKS?bTh?+*P~pNL41^x1g|&^xQKPaJTQ*y_G?EsI&(?VxVADMOe&QF%#h; -zE>x4{T=Bb7W`-0=|b}6|j-wQH_ -zk5uaV_l~O4p_KCxzq$t1!&wHb8v<$(#0(fyunScwS`4QA0lE+dTd0}(9*=s$qtQ(Ca| -zz9NC7uz9JU{&u{HwZEcx?Q@(`?9}I0?yJmC-k-T2mlMU?IxC-=Y`4Y~-%qVUIWoVW -z=FF>NK=*=^bjJbW*r%60IUKl)ggN6=M%ts4rQmc^poCCYFLC6-?1AgPNws#!fYrs_ -zl&rj|8QFUE=${)h1CtY|kx<-~$(Cj6UlViyVBoP+{foL2~lp&d3(AZVVZwJPU|@CR&S}>{~t+1`}iOb_)+W_U@XdTp5J&ZWr`^? -z7}!X`tW#1;OMsn4Ee!#rks9pk1e9$_y3G3I2PuLjE{ej$Jdd42LCNk2Y7?05TOEQtXCL3 -zEdnA1n6{9|3|z43Y8sYN=LaTBw{Lshw2?;Y|=i_ -ze2(&3n4(4fR?|m|5U%tqOBgn5hiDrb)w=nA2-8FQt``u0E@?ox!)U -zZq!#S+9(C)pQ^S|q&auvN=WT4Qi*1=OeJ}t`u4oH+Jlyxy)NMs2=(MSRP38I< -zlP6uL>EAMt;S*n4yqlC1!^kD_U=FfshMnC~X06Jf`+|Trv9ES;lhcnMDC+bW3?p@u -zYp0XR5~S_;sXGsxu0+WbpE?oKq3au6-M}llW8LlQgSUYHU=0ICd_XIpU!af6bgmJ2~zcQDDfn>}^dk(aVM}Y-Ms|hA*61116QD^6IcPJ9iIUH -zZu5D}0+WteJUrT)j}V*<2r4hhaSGvPw4-x!K!p&7qMp_i!UGc0^EYd-Ue`~FCPXnH -z7D*k}JiH_)qLYd*M0bnIw-$icj5==(GR=1H0DW=juFrP@!h>)0UzcJkRY7*bpHn_tR1h -zk3sP1SU*mhw@TY_nk=Kd?!yo5B+Y4ppe*V!V%0u#4fvFQa*rTDPSS=oK^~u(TUCX` -z4>KdUPRh+BszAK{A_$PPj-@9c2fDS?fvp3o0@8-FfIN`+`OtHN1a<`TR@3!hHga>( -zyIy}Ry)pC3PUJN5RF+8+XI-YS$L{S%eaGXM|HnUoI*uIpXFyGP9qZ$y5?pRz%DHZq -ztzIIh_N5?y|F2aw;Q)x#1KugU;1g0m>Vy(U09TTA(G~VYM2Y1Lc4*_@r>%D4%fEt8 -zrzY$e__JG#CJInzqoaD%y=LtewC5#SN{COqO9=1l!!e=Q9?rk09_8`emd)u5vAjHn5k%3d{7sQyBGo-Q0O=s{%w@|y|)Km7< -z?04>p0T8wnAp}5X5#2Kpz)=rM4$viZ#nDXnDS^=I{m&KgnS^u%tvhf_eT)DS6injh -z8;H-!oS6UG20NTcKz8j0+FqJKJZAxzG5}`X=a++tX1w2fF;3nA?1@7F=bR|Ef?YQt3ff5(Q{h@>xrVplQ5H_9WO*!8#5 -zd-eTnZPh|`ftyR6j`Kce%` -zPTMu%KJ0j3>~z-Y^7l84jvu;E3VX5^I(BM82!3E=dadi_tXSt{k|EiQZDc$ITud_b -z7N(82ZwiXo_b#q3=B#CHD~Bsa@Dq_tzprcQbx(kaCaYCrgh(j_<{Qo4O&Aj!w2rsW -zYhdi{kJ&m -zWTj4oZ=_-zCRQ;Hl!#XVUx{cax4!xukuRy&C0N9!d0ohzJwIn(nZO?Pd_QZl5&1m1 -zVnedv^0(+T*BrC<_@^f})S5ZYKYIl^V{fQ(G;jI#VRnxnps5aEsFT_!y?HgM7KuXR -zP7ilw3Pebo-Oj`4jZp9%S(I=V -z!yO&qOrb13+k>pOdrVP4y&|c#*riYuy5zkx=ghYwRDr=xdGQ>pJ{$quDZb>cA{Tbv -z4r0HOBBO({B{!I=aM0nm{!24oJ*59#gzdR{)ZlJ}CI0h*R(%@&_Kq(S%Auq33~=iM -z3fWcU2BEYaj`)0NM>%=--l;yDi~o#hK&+*RZUPMvfbuICo}U2y4=@N#h~riqLyec4 -z%4|Q)6!^{rq_Tvasx=7w)DWrg7R=YnJ(Yk^%2Wo*Sqvdl?|ueNJ`OVg4nokb3r}}b -z;Q~q2c8dWMg3ofmw_yuJpxvB9S-O<6z@_c<8a+SdkGcns@tQRjXI+_LXWG4Hc*=)% -zLnrpNh#y&UOx|%5;53$2LFRTH*v<*+_!|xo+fq)~aY!cM!#mL_`yy9V0SD~AWt`Ogdm3WO -za>sxT&)zodX2y9?D|QeSoDMZ(z!G&}+&IO+)Qca2D02QsSl{=uVq-6I*U}!kiPi49 -z{cw4KJM}cRJDu@cu8YhYJ=%z$<_BH`R4P|rbNqXOWK?f=XbvsdoNs~e_=>)hqJF5h -zebiRCT?{%$3)@l*M{S?^;O2=&(XE$9Ie8O0h;2Li529zTHq1zEeNWUK9$@NsY6Yn2Y -zdC$e*z -zre`wtr2LM)$U84myymPYR!pAszsl4JMh&GGZoM~HQ3@iUy-(Ilyd3|SfXtF8mH4Cj -zvSxW$_`tmADp3r&bXcTzqBzt!E>9jeXg*exF+zYTF!q|_%l+t23&YBd2dCvF4wCA?SXb3GcdWA<%=Y0-p8oKI2wH<@5v6Kt(|6#CdZ76h#76s`+6iR8D8)lS38puT -zdo-&cmtow;CoidxwT&zUyd_o!?*GSRZeQf(6cI?B*!X0oO=FjnJKDVt4DoXpPcW3v -zbvV3;=~N9(2($DK#J+~uLTGOK%w4Z-*_c4CYa>56Uw{b*uz!kd$A-}W_&@>&ss_hq -z%MdOnG6z^(d$L<B$A{oq5Rmkt20?1i?8?+x*6w>Mej5q@S -zv*^IMa{X~&?Q+rp(_Lu}tTF5uWW|4RK?E!fdJ7Q;*7Dpw=Xxwg-ezANiy1<3bphq^ -zUgA`)%eQn=6$+4UKv0=}M%lHN37v?5C9>DZ&?eW0fk$|Ihx-Jg!5L~{^w;)e_)6rs -zanNU}s7vGiK}zwFLH_T<0lm>pMi`Ipe|Mz^-qLht>7K*quW^Vcv)GTgE2M9T)m7k( -zKz@pNZFJ1jO)vMMlKo4CE2I-yhkp0upuxH4troA{}6RZZY# -zJ;^h+%c(ZLZqcT^o2t=Fg`^?Kb{3BPZOKt0VYZhrLv5MRugY4unt -z6cqL_5f`B82>I%rq&Q1sc*ur>RhwX3MKh;foNSdL{Fb>ncr~MDn_fDsLR$X$gKl+K -z2ffRF-#TnzVL{45?w|F2Qf12h&ifZA!X?uqyb4)AMFly^6V?QU31-)j#(wT_MR1+x -z=`g$FyUsu)T3_v5*^`)Ix+QksBnrFGHgvP6d+Qf8&?Wi!kHvf1hB%+oTS9G<*JGy+ -zXW`hT51zF+zG^EySf5)=>FTq&Yz+#<)1M{qYjK$Ev4eGd*tgouGZ8*1ASueDE`D;G -zB|nSq+Oeo8Xp&QX^$%%mf!3_XO(cXDTq(t8B{JVeyKQGJC9GHAy*e86gb&>(VTA~}nGm&CGsT;p*;v~q-0^9@*MNDJUKk!vBw?(9 -zzgyO2%2w(#t?W7Nv)%t?OHjIB-8wyQH{{j>6ZU(4d4~!QA}od@-hug~m>fDzZ`2z4?d6qEg|6g9 -z(;1uDkpT^Lw^Lc`f0)-!o(%6sPPD()+yZj~PSpQ*F0{iczWA0sWu)xK*r{Y!P>tDbJkad-5#NQg&;v;3$Ay94J!Fs?hIHVKs?jn -z%?P4eG9S={J20;=hk@3q2h9(Q5rf7PZ1&r69JGcOS0583hVNHD;2v6(ZR23QPP3Xl -z5Bj{GtMD$jZ% -zPw{`8VMNUXsmQNf_43)gXT_n3F}a;}W(%fMA-@W&10~&aiI-~j=#&19@4o1SOjAB@ -zDAhkpT1?6k{1uk;S1IX8)*hw~b#kI+QYVD7zaF_hE-75Q+{w=!o!4k4O;PfA?R*1kf%d?!V_+mgKD65ehHaAf;H -z%>o{72p}a1=>HYN;>Vn7z)wrF0j+;I2LR5l=93ea)R$mS9VT=2wz&oT&743yyI-82 -z=!z`sC3QIRbNJ1FuUb;Yeq5ubYMFv`)%9Fs0(%G-)aO_bt@<33) -zW2v%Re}1L&*j1&7CcI*NHXunrXr1{f$v!d)r*@qqd^Ct6fK_tR4|n=k{?XjJJgZ!8 -zVGqMj?uRBak_E#Jgywb%9Hah^3l`Lg)<>SNMO -z*CkqdD3)Q?z}_$X&N98@=_c@%#$N|f<$I_i=e{%0u{ybsNd?(=?;y@bBK! -zO6~BspCD_(@HbS}H#~MtIRf-9W=_+Dg%P(qim3@*6(>PmRGG$!cy7KXAwod>b0fPA -zVc$eYp%pRCCfJK_lBuw`&jsGL&oJh|=LT`R6kI6oh$lcY1lB`<(Q@E^VFGcc7<8&C -z137$BBLBxef<6PL2}4T9fxn`@=KY;j$EuLy>tay)%}J%vK1GK0`A42N%9|^qn8R~j -z*L~5c)6oiogV_c18n@xP~RtO=2m8X -zMfG0~oxafif~Mzd`|we%dAs$B4EhGVyHch&Ncufg=2P{tUC$?9qJ3(|#3~aBFw{-P -z*weLGNrLJaR^4mba^}ITM6?C+1<7!BHI+r5i+7M4tVFTSg*$VH@z^oaF5C{o`fBg& -zelS^I%WKd5+1*snB&O5>SDMO;;q461h{;Nt`R19Ql&@u>+8h@R5muDOgNzGTC`&z6Y86CBf=A>*Zp6Y5Zc!i -z#;7JBk1^3&DJ=LAJ`6=1z%HVlP5qzNCtWfGPd!G`s|O#SaZq8iT#D8qERNsG1DE-p -zuvPQ-Z;gdS!dea)3j8?IQfB+lBj%?A_I0`qM@x4hW%39`%7GIaRV1;14W -zf*7`Xd*wi_(*hB7aW({w@{n4&5y*i#4VO<2PeI=kU3wr9S{)< -zGlAL9y~k~UX~ZHE5mcRk9^ai&+stc%8UVLqE{u%$V^~YKW>2|Db4DHH+1)1&BKqlE -z2RTV<2IN(-lsEVkYOUGi>LK#mHjbkZ2U}OPqJm47=rT;9)+gO)UL*K4V%NS -zuM!6#^1>K%0bSn@gtosU5a}(<3VVwOGKEe@1P_8A%*CQ4Am*$j#AT*2i*toL2{F^< -z4UxupLdtxqc_8hGLGU-6(*h0hlvQs?5}n}9E!YnGnZz?LnZnN-wsWpb%r>ovBrv(ouqNs~@7%d#?QvW4olDcx9-hsjOGge(w(~wS -zqVPix`K)gUl(g3s^*KBE-LLn8EL#Qc#?Cdwh37GJbe5ztL}&%Z)7IHjhvIjqi^~34 -zHF)n-_}XKQR=bwExUQ8zu2iFqbYIYkD3(v0n7@Z=$HY5&eZVblS1Zj=drg*_P-_Bl -zO~{q;fl&rzk;4CkaQqQJ2WHOv;&7E}+l5@2!4RjPBwi=*qY7~)n4(TeBDZ>#J=jn1 -z-wkHXOv0BfF1|yxK<9~)`T6XE&15>)Wwz}wZxZ1JBY>3HhnqB7AjtAe#%zKovuPSC -z=si6Mt;?1K-w&M$Oc~5`hD-!x-em+T9r0mx@gD{$mcZZwe+OOXHb%9wzdO$xS;cR5 -zzO!jNzcK-zKCm*CiFjzKoi0)Htm@H)M~ioPee?|7W={Rd41QtDx}z9sGFF92qb!w( -z=uG<|;`8Wn7uZ~ip=Y)$%gcwn<|80S_dPHUy>pK%A#MNqX`1-CmJR+Q(TCj|(N@em -zLg_y}E`P)?>vMB|+P5tAN&(g|(7{U!@Xx8u$b0DL?k@QGIQ4}}lvbL+O{0h;kr0c? -z_6i#5bL|LE-LjcZ$ZvSa7=Fejq`iU>-k4GQQ2}N5K8BR)!g4K-0V`Ib!rSErRRwik -zEYElA#7ap|=x_QtONTo24m?Tphmxbg!CQw%uDK~17lrSIy|t01XItQ3(5$J(G-%bU -zwbcMS?-@(~pSX8xT>VsQsyM|34eQ~pc>}dy@y(Ao*)shElUEw?2nkMP52AazpO#FO -zK^tmsJ^F6H!jFn9AfSGZmC?K51?bU#yz|h+!JFa>zO4+Nj>V5i;~TbJqoe#QN6Df= -z{!qWu6fq&h*{lVguFjlJ#jj#Rd7oSdL*_$Yn$ZmKu&Yk0ZqB4r3Y=d@z{a^?ZiqNsBY3Mp}*4K@eyvg;O -zOneE6gH55QpY9%(*wAN!2a^LDoINMB!OER!sXp$jVpmOGPx7|bj(~<_7FA;b@o(A! -z(Tt13sN10PiT5(hnBrUdfW#4`Y5Py(Ze-n=uxQu4Zp_*m1=)zT!jzfOcpddU -zo4)(Pbro>~$3MAMZ>^fuS8KhUSKi(uVQL=6{z>q4!3@uPgX@d5iQxW&BoPP?KWReT -z_Cnh^h-Yz#_eg<5m2VEf=kzboTibb;3{(34>>iOlNR2(Td)$StLVeNkxFU`3rn-3p -zA)o6S&6~jWEKbtiO -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 -zNhE-qY{(=* -z?VFnqPfE@qC;UbW!}Z!WnD^F#@`T8H>Zfo;>R%+>ZwCsib=>GqkrvDXUfpHxj@L_O -zi$l$~JHE-|d~Mi5?H)}7-4Wmp+~l{w@9LJD=iY(m_YVSaE)y=fj+pQ*w*g>&T+ar5 -zn#d}n_fqfM4e**wxctO54S?L+g=C&zuvzyQidh3CdNUMkcjIku#?*8wL?m5ds-QuM -z2{vgNV;(>Iy)FmVWLY!Asuw8Ri6$qTrdO5+k`c|&lVqa>*e64JGBu26vBYCdEr8s3 -z@jlFHgtJR4qmTG=)F5Hx97r_$fBASURJa4>aqqQ4R12Qvi8V1FiRpB&)?|Js=~V0! -z?YT;3FX(r(bLPAbTv%`esFM4bCU@wi*U90w0!5D>e{KqmI$3XD#I(Z|^Ny>=dNW3@ti%&QW#mNy*Af-8pX`&V?W47KNW7m#ihPJmQCy6PgTbsag}L -zN#Al_@ePj--fR#*C|+vXBZzKy^CnBWb0=rN(t`9uY{5e+Kg=|g`=$;pb3rdUTK`F| -zvSCaoZtRes5uYeV(Y)c{pZHrJq;%1}QSUH3uR4pVz0_SC6|n6`nW2bq)Ov<3rKh3Z -z-D+HA@AH5b6(BQtDFQsDU -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 -zf&_3f!EZjo#Alm$*B6g){_Qqq@&B)3)KC5V -zEs=yUz|TfKk(~0uU})8w0q!R3*Uv+%1o{+Q1p)$z*TRG_n%fxct!g9pm?YkJpL042 -z8(neDyoianKOtn5w7UkXg$(;{UBOgLo^z-^iE}^rLzmpekE^c)uN3mTyIt4$!Kzv~ -zf*VN5Wb!nC7~QcDb_jm)vpi(&c6^+!zk|w)8xzL^;tw>yx!m`jFb)~}^}0>9&gRJD -zAk%76RE<5;hx`4P4;p{fc-7wB26vR!wHHE-uVlzsSEfd+Ox{t#2%V4P^ZbAD35+x^r1N(ft}#-^6lk -zxBj2%uKXLS@c)l}ONfcc46>^%DYA{dAv+O~BsH?jl6{-8B?gVHY-1f2+CJ8d8KUfJ -zgtG4>`!d5A->dKEobTW8z2}~L&i&;+=RW6o?(^E7_eDVOzRn`QJ@GA`qqwYBITHIU -zv%3;}L^-q4emfDbj_~EfM^eCk&!|7Hv^kBMtXu8ud{VN|$0gq-iCOG{i_c$}$(5Gb -zKJ{yS+_1AgY^g$2{(J74Q=>)3ET769aq1^{C<-p*iT+q{b}&wsz%N2eq*}HlJI~kP -zAPDTR4S-8COm?|p9Te^P8rP#IPP+YP(|ZLittL^u-=u!b<` -z41ml4bmq*f6|~{el|Th-4`f0@R}V4a55{B#f)C1> -z^#>{wIY>042R!&K(TE~`G9U{9!caojKW~Sw_GB?lxAl(#1=-Kax@cZgwGiO_fTw1{ -zDwaZBUJ16w>#XuWeG_fnuRMFe@nUT(JP_vnp#fGW^E+1^12tnfDshK{`gmQOM3r6| -z9@hWS4+>6VU9U)@%h8ddtZ&YpBEJCYsr2$wCbs}m)@B{oEB3@fvJ_=vV%rWGATjd$ -z6gST4m}Z!#k~1@gd7}JTqP$!IGUQhChper#iCYc40JRwW^AK1^Zyd>nD)ilgec%G{ -zJx`3XLoyUH4U|K3hFeEDkD7dr+Z79~jc;s{AdOzanu$Uamz;S9@%op>e~`wGEcK7? -zJQnbm7z&0}d&_65fh=tNJ%wqF -zAlbk-;jQLOcVqTB-03H5R(z+iz;~ZndHOr2W~F<%%GGVcZKG@!E1%%n(mq#2k@_=3 -zMr(wLZ@TXlC^{r3%{UIf>9@>9`PjoBZo79=tNS>wpUw7JE5V`Ir2XzWYYDQl8%IoO -zh=f$A+Z`OxTR1J5aL-@X(;n~bYM%hc0iBu!Z9Dn8@0(pKsDnc*2I$pU{lO!az6i$r8`A=O% -zz7Bi0$QWiGVC_un(8>gu5N0T%p7N+63l;Nr9A_TwlBvir6bP7l|rZl`KqZ*pex -zwQ+KY4&An_OQ6$b$H`Q|2WnP&&{Gvb-drmy9o8zriOO_RgSAs8zpkp@Bwt<6Z%E^M -z&1k+cxExHG>v7b&aF|<*?q|0(4rO_bQgWx4)!!2lPCh1HVgwS_yDY0qsS)RgesF~D -z)I%;W4VKoZ?*plrxpYnONZ~(=X?vMX`#Q8WAeK_mxgX$KxHe@jNu%~gpkdecT!2VI -z#2_<%>3acdVbBZaBIhE{@`7`2;6To-Byx5<4j)%aySBETaX^S8iJKe_KciMyY6d4K -z9!vAU1k7brqE(mVcf|XQ9c%c)vTp|8mXuGyY+7n<00`vTG(U02_rCtLq83w)sAfMG -z<#$M=9H3S};S#(#W(+%Ia5Wj?QxK{t9DwA1nX9-!IR%Dv|e<*emf@ -z0vYPn`w<<~Q1wD=5)8I0)k)PZgC@byBb+cd`gEx^Pm{*J-Wd=1)?N|?kdQ$~#1(i2UZhD)Uz1f{Ogt|*G4QxOdYF;j2 -z6MT{{pXa}<eR1e&!6KVCGjw5M>cY5ZK|RV%Y}HN7r`A}%MQ23XiUqtiDOcwk%Nk&XE-s9J -zuw36-;i^ZU9SL0nlr?riZh(I=hEsmoSQ#&m19msM0Pfl+QQF_M&=i -zaa9&O>PEa*OlV_q20L;3TXA#iimh+UB1K>0Y7X;4>%S1iRxbBiE>1bEp_$fw4_Ea_ -z%`=3YJ2<~R2O~0`ySnJWOn+U{G9T?{!?#ls>nUHXURL!hy{5o -zzDroOP-#tx)P!f$;5~x_oieHuT|3_X46R&YdOsU~!+HPGF1x*<<~Tp;ON3#*Xw?3- -zPh16yKkYYEyfL3+1ToIgE2x!+W@Yz--}`ESuN&=q^OfnUr7zxml%0ONfaj)N=wLrn -z6PchvvHvXEd|BhdN{dmwO?{%ThjV}{v=zehW)qkpC!EUm_!;cbZ9cMoEKnV$>o?FjbX%$=goNjI4R4{>G1ru{+JME_|#UM -zs`mHq#2Ll7efP;J*I)g|$i419aLdfmmC5#tvkcUAGN?}JK~!DxK8NkLmZ(PvG>UgU -zpRM@wdpBh*ZpU^AaYTDmyM!93p~UfXi!}<&m0eT!q-S7C9WoQ=rXl?yk);$rL&I>? -zJI_0=WFEn3kyDy0YZKhx`uPZW-Tbj9q=_TUFQkV4+wpZ=ZWAi6@g>Tm@}06VXSna> -zp?$70HB3T#N(r{hsj|qwUf~6MR~WjkS}w#x+j<6N(EedQfnt3)6{!`K+F%)( -z%FjA7bo_*J9U=&O!_rCdO@%fc(xvW9s}`=U)^%<>oIss4TUxme6O=ZxggT;sx(90K -zHljCr7v0gmrD~&kr{1Lgd}b_P#ocEi@&*%B`mHSXZe!_BjdWn!=nk9PqcO(sohnl& -zF~&zUl8AuB85>Ef8^Lc9w^XN3r7wOVbvnu7C`!|kMnCF|GeK+R`BWD7rwcB>B(_!8 -z9d_TVC>;g+1W1qvgfb~9oy>*Xw^>@I6bacHT`bO-oMd8AXpq>=oaoVt?Mn!!l%gEpj|#LzQLT=5+0)LDl!cApa6;f}V( -z&2%rgYtpN|{E`tmtlK6JBW)s?x!9vb#&*%zSzUI7JcY88x@>IO)fulv_1wJj)6k-S -zUFscx7T+K6V7vtx5sbcR+B?m3*hr$Ui(T^Nc!H(k7)O-l)8uFhCMTG+H2mvV6Jdt~dK`(C{G0 -zot`;`XipwYa-lqBMpak%`TSh5SyTL -zX;q-^5S#g6WhJ4csM0$|O>9l%E)@;s59kD&7>b7U;W;jJ&FEyz_3xmb1ugpx$i4}l -z=%ms=)hARqYxWXS7PK6O3k0ndWf6Szsl!&hDo(V>Y>Nx-o-3$Vx`E>aF&abVz+d^4 -z(id%hngeztF_l$*DLIWMks?Cvq(Ad4A01k1IA+&3H7Jqzi<8GJOh(j+UL;51h6N-# -z{?f12QG0}xGIoV)QE?hDYVGY&7)MAegwF8*+syz+Bj}ke0mDWz;4dt(P6H}47cJ=1qr!iq}g>&9pSDVx} -z1cEoAvwb3mpy0~J{NGuVU2nU+d8#w4QN_B`p51MAQwC}hj2i)JDXHmM5a|u>tzZDT-5Bz!N%b3jMzB9WWZ^x00 -zTI|L>X>KPP^0z2m_3D=cAm}hS2Z-r_>gNWw^)~|j043_GoVp*7!r`I-9w -zfX<7)G8_E0%}3G2o22hcS?Et3m9@*0%1Aw-FGAmng2P9U$!BG}Z~>od=>o8gFPp57 -zx*(*Y_Z12`f)C>@OD>LJ1P@Ex6YixbWaW_$t*nnlywCazsO+arpFM5DmpXfvusKF# -zsqlNfIyBaD#$@sIvXH?{oy8-TNU1Rs;qZASZ%hOFrJa+A$wK+)Y`vxLDV2aJg!fb= -zk&|8_=Fj1w<@oA^O&;BBB?)Q}NM9?5A?sC2t6PkuCo6r%DU74oyL28IV?K%cc*$-3 -zWPSaTC+Y{9{A3{UsW;p9hc7+-AjRGBt%zp(dZYR*?0mMh>uJf=;l#Z6#mFXzzsI4e -zOfVxKuP_|eFz3n{4FGS

`GqhZlE%L-gQ#NmIx34Ch2+X8hjqqMo@{^8pcG;|)Mz -zWhxXWo84y9mD9HT^9ymBsXAysH;|)&mkFuP9f-B676#X+DvH?+$8k8B7iSOL -zSn5XUz+6;k?f0L5pAztP43t&b?VnjV{YoZriDBNNI(szXkImmpDRWp)XEP?v(I-U- -z1DfSm-cf0*zgXX*&gxpvfRrWoB>W$>x7@lv`EjJqu_Z*vwf0U_Lo_e=CaQrr={kYd -zk9zHUlXXyn=uZ4be8;CbOSia3*KvsGQFuFuEaYoGc}2_+-sZOlXeW0AUesihsX-tf%T$@9^9`%8T8tKCWL$rq`Nbii?9$sK{x|ComoVVGkVey -zaZ?7*07k+YxPep5RD0khM}#|lxH~;Hzd<}qT&0Q;L2s7DJax)@p>1AZ6!<^coRlOAN)(`X0k -zX1IN}HIi=Z0$#|#^>MV^!}JIJrDHO&FL^a2G#GNoZt2IriR#3rFYQlOxT8*&vgJ&o -zo4*i;pMO0x%!`@tmDv?W7~yVt)!%daofG6(`=8HLsii*DA4A{q-FxE0RJ>GX$unAm&~0|S{ZmzNUY`E`EJY$?^;yzG -zjzW0FPC@wW-Lwz`T0s;T!UMrpDjvA?$V+3?EXnrpozK7Hu;q`%=Yw_`R#!WDw5X?Q -z8@M>_w-z6q%xt$^XE`r!(9it9#p~i_LLBK1gBS08)4qeGd4Ld(%9dHEE -z-uSi~1`x6nN@nuU%=2E-d88*tkM*8)Lxx|Pa_cV#o -zRPI0QaMr_5aIh6%5qh(q`TlyfN&|Z=$WQK?4N7V$E2#>{n5Iv`lRGG?Ix(8O0)I+G -z=`YC${*fb3;HX~hKu90x#klIy(vRl`p2y`q6#Y->lCQ1s76Y7^FQew2_-T#CSN0&f -z*GJVo`iQASCNyt4MpU0y`j>PCmTBZVmt+Ve|J;)xotWST1xY&<(jkf#p)hB^tW{KH(&*aALbJ -zcln$TV51XX7jNY&)|7zyop-Wj++4Vl!p`2&v1(+1V6{!Ermrfy@U>nvQJS@L8@|y-jH+oQZ|;JrkqGS_2&1z2r>mfAE&qMYiFzHq -z{kJh2Wc4LCc-%Z%vGKC7Hc=RNFhO7TG8{t_MP)2;um|xNa+KUR^ejene}x2eAF7cL -z*dt-eqB({jYDmB~g!U?rN+)>kUu^nBkc8P;bx{6EZvT*I%g)<>lG_Q2viZN8e{b^t -e`*PqyI%Yue6&Kp>$~*=EhmnDqezoqs*#80SGOB?9 - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt -index 1e49927de..7ff4b7e06 100644 ---- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt -+++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt -@@ -731,12 +731,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { - - val useStandardTrackingProtection by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_tracking_protection_standard_option), -- true, -+ false, - ) - - val useStrictTrackingProtection by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_tracking_protection_strict_default), -- false, -+ true, - ) - - val useCustomTrackingProtection by booleanPreference( -diff --git a/app/src/main/res/drawable/encypted.xml b/app/src/main/res/drawable/encypted.xml -new file mode 100644 -index 000000000..d146ae09d ---- /dev/null -+++ b/app/src/main/res/drawable/encypted.xml -@@ -0,0 +1,426 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/drawable/ic_encypted.xml b/app/src/main/res/drawable/ic_encypted.xml -new file mode 100644 -index 000000000..d146ae09d ---- /dev/null -+++ b/app/src/main/res/drawable/ic_encypted.xml -@@ -0,0 +1,426 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/drawable/ic_notification_new.xml b/app/src/main/res/drawable/ic_notification_new.xml -new file mode 100644 -index 000000000..03ca8c41b ---- /dev/null -+++ b/app/src/main/res/drawable/ic_notification_new.xml -@@ -0,0 +1,78 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/drawable/ic_notification_permission.xml b/app/src/main/res/drawable/ic_notification_permission.xml -index c77633704..383b6b35a 100644 ---- a/app/src/main/res/drawable/ic_notification_permission.xml -+++ b/app/src/main/res/drawable/ic_notification_permission.xml -@@ -2,545 +2,81 @@ - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/app/src/main/res/drawable/ic_onboarding_background.xml b/app/src/main/res/drawable/ic_onboarding_background.xml -new file mode 100644 -index 000000000..e009ebe7e ---- /dev/null -+++ b/app/src/main/res/drawable/ic_onboarding_background.xml -@@ -0,0 +1,78 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/drawable/ic_onboarding_sync.xml b/app/src/main/res/drawable/ic_onboarding_sync.xml -index 72bad6dec..b78dec3ec 100644 ---- a/app/src/main/res/drawable/ic_onboarding_sync.xml -+++ b/app/src/main/res/drawable/ic_onboarding_sync.xml -@@ -2,20 +2,429 @@ - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/app/src/main/res/drawable/ic_onboarding_welcome.xml b/app/src/main/res/drawable/ic_onboarding_welcome.xml -index b16b2dfda..a45c8fa83 100644 ---- a/app/src/main/res/drawable/ic_onboarding_welcome.xml -+++ b/app/src/main/res/drawable/ic_onboarding_welcome.xml -@@ -2,136 +2,270 @@ - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/app/src/main/res/drawable/launcher_peace.xml b/app/src/main/res/drawable/launcher_peace.xml -new file mode 100644 -index 000000000..07a00ea22 ---- /dev/null -+++ b/app/src/main/res/drawable/launcher_peace.xml -@@ -0,0 +1,271 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/drawable/notification.xml b/app/src/main/res/drawable/notification.xml -new file mode 100644 -index 000000000..f52c307c4 ---- /dev/null -+++ b/app/src/main/res/drawable/notification.xml -@@ -0,0 +1,231 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/google1.sh b/app/src/main/res/google1.sh -new file mode 100644 -index 000000000..afbf2651f ---- /dev/null -+++ b/app/src/main/res/google1.sh -@@ -0,0 +1,97 @@ -+values-iw/strings.xml:1884: יש להחליף את השאילתה עם ״%s״. לדוגמה:\nhttp://leosearch.ddns.net/search?q=%s -+values-nn-rNO/strings.xml:1927: Byt ut spørjinga med «%s». Eksempel:\nhttp://leosearch.ddns.net/search?q=%s -+values-my/strings.xml:1332: စုံစမ်းမှုကို “%s” ဖြင့်အစားထိုးပါ။ ဥပမာ။ \n http://leosearch.ddns.net/search?q= %s -+values-pt-rBR/strings.xml:1965: Substitua a consulta por “%s”. Por exemplo:\nhttp://leosearch.ddns.net/search?q=%s -+values-gl/strings.xml:1936: Substitúír a consulta por «%s». Exemplo:\nhttp://leosearch.ddns.net/search?q=%s -+values-fr/strings.xml:1983: Remplacer les termes de la recherche par « %s ». Par exemple :\nhttp://leosearch.ddns.net/search?q=%s -+values-dsb/strings.xml:1956: Napšašowanje z „%s“ wuměniś. Pśikład: \nhttp://leosearch.ddns.net/search?q=%s -+values-de/strings.xml:1990: Anfrage durch „%s“ ersetzen. Beispiel:\nhttp://leosearch.ddns.net/search?q=%s -+values-lo/strings.xml:1933: ແທນທີ່ຄິວລີດ້ວຍ “%s”. ຕົວຢ່າ: \nhttp://leosearch.ddns.net/search?q=%s -+values-sc/strings.xml:1561: Sostitui sa chirca cun «%s». Esempru: \nhttp://leosearch.ddns.net/search?q=%s -+values-tl/strings.xml:1566: Palitan ang query ng “%s”. Halimbawa:\nhttp://leosearch.ddns.net/search?q=%s -+values-sr/strings.xml:1889: Замените упит са “%s”. Пример:\nhttp://leosearch.ddns.net/search?q=%s -+values-fi/strings.xml:1976: Korvaa kysely käyttäen ”%s”. Esimerkki:\nhttp://leosearch.ddns.net/search?q=%s -+values-vec/strings.xml:822: Sostituire ƚa ciave de reserca co “%s”. Exempio:\nhttp://leosearch.ddns.net/search?q=%s -+values-tt/strings.xml:1481: Сорауны “%s” юлы белән алыштырыгыз. Мисал өчен:\nhttp://leosearch.ddns.net/search?q=%s -+values-sat/strings.xml:1926: “%s” ᱥᱟᱞᱟᱜ ᱠᱣᱮᱨᱭ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱡᱮᱢᱚᱱ:\nhttp://leosearch.ddns.net/search?q=%s -+values-es/strings.xml:1978: Reemplazar la consulta con “%s”. Ejemplo:\n http://leosearch.ddns.net/search?q=%s -+values-fur/strings.xml:1955: Sostituìs il test de ricercje cun “%s”. Esempli:\nhttp://leosearch.ddns.net/search?q=%s -+values-hr/strings.xml:1951: Zamijeni upit s „%s”. Primjer:\nhttp://leosearch.ddns.net/search?q=%s -+values-hi-rIN/strings.xml:1383: “%s” से प्रश्न बदले। उदाहरण:\nhttp://leosearch.ddns.net/search?q=%s -+values-ru/strings.xml:1984: Замените строку запроса на «%s». Пример:\nhttp://leosearch.ddns.net/search?q=%s -+values-kk/strings.xml:1956: Сұранымды "%s" жолымен алмастырыңыз. Мысалы:\nhttp://leosearch.ddns.net/search?q=%s -+values-te/strings.xml:1403: వెతుకుడు పదాన్ని “%s”తో పూరించండి. ఉదాహరణ:\nhttp://leosearch.ddns.net/search?q=%s -+values-ug/strings.xml:1855: سۈرۈشتۈرۈشنى «%s» غا ئالماشتۇرىدۇ. مەسىلەن:\nhttp://leosearch.ddns.net/search?q=%s -+values-ml/strings.xml:1316: അന്വേഷണ വാചകത്തിന് പകരം “%s” എന്നത് ഉപയോഗിക്കുക. ഉദാഹരണം: \nhttp://leosearch.ddns.net/search?q=%s -+values-gd/strings.xml:1892: Cuir “%s” an àite na ceist. Ball-eisimpleir:\nhttp://leosearch.ddns.net/search?q=%s -+values-cak/strings.xml:1787:Achi\'el: \nhttp://leosearch.ddns.net/search?q=%s -+values-yo/strings.xml:1694: Rọ́pò ìbéérè pẹ̀lú “%s”. Àpẹẹrẹ:\nhttp://leosearch.ddns.net/search?q=%s -+values-cy/strings.xml:1950: Disodli’r ymholiad â “%s”. Enghraifft:\nhttp://leosearch.ddns.net/search?q=%s -+values-pt-rPT/strings.xml:1962: Substitua a consulta por “%s”. Exemplo: \nhttp://leosearch.ddns.net/search?q=%s -+values-en-rGB/strings.xml:1946: Replace query with “%s”. Example:\nhttp://leosearch.ddns.net/search?q=%s -+values-kaa/strings.xml:1825: Sorawdı “%s” menen almastırıń. Mısalı:\nhttp://leosearch.ddns.net/search?q=%s -+values-ka/strings.xml:1955: მიუთითეთ „%s“ საძიებო ტექსტად. მაგალითი:\nhttp://leosearch.ddns.net/search?q=%s -+layout/fragment_about.xml:27: android:contentDescription="LeOSearch" -+values-es-rAR/strings.xml:1980: Reemplazar la consulta con "%s". Ejemplo:\n http://leosearch.ddns.net/search?q=%s -+values-bg/strings.xml:1453: Заменете заявката с „%s“. Пример:\nhttp://leosearch.ddns.net/search?q=%s -+values-nb-rNO/strings.xml:1930: Bytt ut spørringen med «%s». Eksempel:\nhttp://leosearch.ddns.net/search?q=%s -+values-zh-rCN/strings.xml:1995: 用“%s”替换查询关键字。示例:\nhttp://leosearch.ddns.net/search?q=%s -+values-el/strings.xml:1977: Αντικαταστήστε τον όρο αναζήτησης με «%s». Παράδειγμα:\nhttp://leosearch.ddns.net/search?q=%s -+values/strings.xml:1933: Replace query with “%s”. Example:\nhttp://leosearch.ddns.net/search?q=%s -+values-ca/strings.xml:1967: Substituïu la consulta per «%s». Per exemple:\nhttp://leosearch.ddns.net/search?q=%s -+values-eu/strings.xml:1954: Ordezkatu galdera-katea "%s" testuarekin. Adibidez:\nhttp://leosearch.ddns.net/search?q=%s -+values-be/strings.xml:1981: Змяніць запыт на “%s”. Прыклад:\nhttp://leosearch.ddns.net/search?q=%s -+values-cs/strings.xml:1976: Dotaz nahraďte „%s“. Příklad: \nhttp://leosearch.ddns.net/search?q=%s -+values-lij/strings.xml:926: Cangia a ciave de riçerca con “%s”. Ezenpio:\nhttp://leosearch.ddns.net/search?q=%s -+values-en-rCA/strings.xml:1949: Replace query with “%s”. Example:\nhttp://leosearch.ddns.net/search?q=%s -+values-et/strings.xml:1576: Päringu asendamiseks kasuta “%s”. Näiteks \nhttp://leosearch.ddns.net/search?q=%s -+values-es-rCL/strings.xml:1952: Reemplazar la consulta con “%s”. Ejemplo:\n http://leosearch.ddns.net/search?q=%s -+values-sl/strings.xml:1970: Zamenjajte poizvedbo z "%s". Primer: \nhttp://leosearch.ddns.net/search?q=%s -+values-pa-rIN/strings.xml:1978: “%s” ਨਾਲ ਕਿਊਰੀ ਨੂੰ ਤਬਦੀਲ ਕਰੋ। ਮਿਸਾਲ ਵਜੋਂ:\nhttp://leosearch.ddns.net/search?q=%s -+values-eo/strings.xml:1964: Anstataŭigi la serĉotan tekston per “%s”. Ekzemple:\nhttp://leosearch.ddns.net/search?q=%s -+values-uz/strings.xml:1722: Soʻrovni “%s” bilan almashtiring. Masalan:\nhttp://leosearch.ddns.net/search?q=%s -+values-gu-rIN/strings.xml:1121: ક્વેરીને “%s”થી બદલો. ઉદાહરણ:\n http://leosearch.ddns.net/search?q=%s -+values-ko/strings.xml:2008: 쿼리를 “%s”로 대체합니다. 예:\nhttp://leosearch.ddns.net/search?q=%s -+values-da/strings.xml:1945: Erstat forespørgslen med “%s”. Eksempel:\nhttp://leosearch.ddns.net/search?q=%s -+values-hsb/strings.xml:1964: Naprašowanje z „%s“ wuměnić. Přikład: \nhttp://leosearch.ddns.net/search?q=%s -+values-kab/strings.xml:1919: Beddel aḍris n unadi “%s”. Amedya: \nhttp://leosearch.ddns.net/search?q=%s -+values-sq/strings.xml:1940: Zëvendësoni kërkesën me “%s”. Shembull:\nhttp://leosearch.ddns.net/search?q=%s -+values-zh-rTW/strings.xml:1991: 用「%s」取代查詢關鍵字。例如:\nhttp://leosearch.ddns.net/search?q=%s -+values-in/strings.xml:1914: Ganti kueir dengan “%s”. Contoh:\nhttp://leosearch.ddns.net/search?q=%s -+values-rm/strings.xml:1957: Remplazzar il term da tschertga cun «%s». Per exempel: \nhttp://leosearch.ddns.net/search?q=%s -+values-th/strings.xml:1934: แทนที่คำค้นด้วย “%s” ตัวอย่าง:\nhttp://leosearch.ddns.net/search?q=%s -+values-kmr/strings.xml:1880: Lêpirsînê bi “%s”ê pev biguherîne. Mînak:\nhttp://leosearch.ddns.net/search?q=%s -+values-is/strings.xml:1949: Skipta út fyrirspurninni með “%s”. Dæmi:\nhttp://leosearch.ddns.net/search?q=%s -+values-it/strings.xml:1997: Sostituire la chiave di ricerca con “%s”. Esempio:\nhttp://leosearch.ddns.net/search?q=%s -+values-hy-rAM/strings.xml:1937: Հարցումը փոխարինել “%s”-ով: Օրինակ՝ \nhttp://leosearch.ddns.net/search?q=%s -+values-gn/strings.xml:2000: Emoambue porandu “%s” ndive. Techapyrã:http://leosearch.ddns.net/search?q=%s -+values-vi/strings.xml:1944: Thay thế chuỗi truy vấn thành “%s”. Ví dụ:\nhttp://leosearch.ddns.net/search?q=%s -+values-ar/strings.xml:1397: استبدِل الاستعلام بِ‍ ”%s“. مثال:\nhttp://leosearch.ddns.net/search?q=%s -+values-kn/strings.xml:1251: ಪ್ರಶ್ನೆಯನ್ನು “%s” ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ. ಉದಾಹರಣೆ: \n http://leosearch.ddns.net/search?q=%s -+values-mr/strings.xml:1298: क्वेरी “%s” ने बदला. उदा: \nhttp://leosearch.ddns.net/search?q=%s -+values-am/strings.xml:1920: ጥያቄውን በ "%s" ይተኩ። ምሳሌ፡- \nhttp://leosearch.ddns.net/search?q=%s -+values-ia/strings.xml:2007: Replaciar le recerca con “%s”. Exemplo:\nhttp://leosearch.ddns.net/search?q=%s -+values-nl/strings.xml:1955: Zoekvraag vervangen door ‘%s’. Bijvoorbeeld: \nhttp://leosearch.ddns.net/search?q=%s -+values-oc/strings.xml:1969: Remplaçar los tèrmes de la recèrca per « %s ». Per exemple :\nhttp://leosearch.ddns.net/search?q=%s -+values-an/strings.xml:1365: Substituyir la consulta con “%s”. Eixemplo:\n http://leosearch.ddns.net/search?q=%s -+values-trs/strings.xml:1968: Nādūnā sa nana\'uî\'t ngà “%s”. dàj rû\':\nhttp://leosearch.ddns.net/search?q=%s -+values-lt/strings.xml:1442: Vietoje užklausos įrašykite „%s“. Pvz.:\nhttp://leosearch.ddns.net/search?q=%s -+values-sv-rSE/strings.xml:1971: Byt ut frågan med “%s”. Exempel:\nhttp://leosearch.ddns.net/search?q=%s -+values-es-rMX/strings.xml:1877: Reemplazar la consulta con “%s”. Ejemplo:\n http://leosearch.ddns.net/search?q=%s -+values-su/strings.xml:1964: Ganti kueri ku “%s”. Conto:\nhttp://leosearch.ddns.net/search?q=%s -+values-ta/strings.xml:1056: வினவலை “%s” ஆக மாற்றுக. எ.கா:\nhttp://leosearch.ddns.net/search?q=%s -+values-ja/strings.xml:1985: クエリーを “%s” に置き換えます。例:\nhttp://leosearch.ddns.net/search?q=%s -+values-es-rES/strings.xml:1992: Reemplazar la consulta con “%s”. Ejemplo:\n http://leosearch.ddns.net/search?q=%s -+values-hu/strings.xml:1954: A keresés cseréje erre: „%s”. Példa:\nhttp://leosearch.ddns.net/search?q=%s -+values-fy-rNL/strings.xml:1941: Sykfraach ferfange troch ‘%s’. Bygelyks: \nhttp://leosearch.ddns.net/search?q=%s -+values-ga-rIE/strings.xml:816: Cuir “%s” in áit an iarratais. Mar shampla:\nhttp://leosearch.ddns.net/search?q=%s -+values-uk/strings.xml:1966: Змініть запит на “%s”. Зразок:\nhttp://leosearch.ddns.net/search?q=%s -+values-skr/strings.xml:1847:مثال:\nhttp://leosearch.ddns.net/search?q=%s -+values-sk/strings.xml:1965: Nahraďte výraz s „%s“. Príklad:\nhttp://leosearch.ddns.net/search?q=%s -+values-fa/strings.xml:1858: درخواست را با “%s” جایگزین کنید. مثال: \nhttp://leosearch.ddns.net/search?q=%s -+values-ro/strings.xml:1066: Înlocuiește interogarea cu „%s”. Exemplu: \nhttp://leosearch.ddns.net/search?q=%s -+values-tg/strings.xml:1956: Сатри дархостро бо “%s” иваз намоед. Масалан:\nhttp://leosearch.ddns.net/search?q=%s -+values-br/strings.xml:1900: Amsaviñ ar gerioù klasket gant “%s”. Da skouer: \nhttp://leosearch.ddns.net/search?q= %s -+values-bn/strings.xml:970: "%s" দিয়ে কোয়েরি প্রতিস্থাপন করুন। উদাহরণ: \nhttp://leosearch.ddns.net/search?q=%s -+values-tr/strings.xml:1947: Sorguyu “%s” ile değiştirin. Örnek:\nhttp://leosearch.ddns.net/search?q=%s -+values-co/strings.xml:1982: Rimpiazzà i termi di a ricerca da « %s ». Esempiu :\nhttp://leosearch.ddns.net/search?q=%s -diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_onboarding.xml b/app/src/main/res/mipmap-anydpi-v26/ic_onboarding.xml -new file mode 100644 -index 000000000..229abd956 ---- /dev/null -+++ b/app/src/main/res/mipmap-anydpi-v26/ic_onboarding.xml -@@ -0,0 +1,5 @@ -+ -+ -+ -+ -+ -diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_onboarding_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_onboarding_round.xml -new file mode 100644 -index 000000000..55304a265 ---- /dev/null -+++ b/app/src/main/res/mipmap-anydpi-v26/ic_onboarding_round.xml -@@ -0,0 +1,5 @@ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/app/src/main/res/mipmap-hdpi/ic_onboarding.webp b/app/src/main/res/mipmap-hdpi/ic_onboarding.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..2725fea6518b27455fc3b58bf0e990541c2e4899 -GIT binary patch -literal 3488 -zcmV;R4PWw7Nk&GP4FCXFMM6+kP&iDC4FCWyN5Byf35IRkMuMES_t>}pz{%|p(f*;Hs>wBL++uuvGZQHhO -zCq?}L7g@kWnyw<|)8(QpTi!6-cALxd=&jq*k?jmOvGf<8{U!eS -z{@%EMtojP&M9X=;`{P|S<8(!Ko~*Z|b{lJr6^D2K=!2hr?y`~do=9w)t|DNTI(1N) -zHJrSBx6$sI($*FZ|HqMkIr{3~WA_+a= -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 -On1GXssO6);e^CL6B>BDo - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-hdpi/ic_onboarding_peace.webp b/app/src/main/res/mipmap-hdpi/ic_onboarding_peace.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..cc04aa050d4a1e08f38078769ab5ae51dc87fc30 -GIT binary patch -literal 7028 -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 -zw-1>rj6stf4eIiMnR6Gtmzu|7 -zy8R1IM*}djsU0|ICYT~+$O$uPh5$&|Gq>ZlPNDn|ZRjv4OE#Z=r041bv2c%Yic_4> -z_i~VG)F?23Alyy7jQ+7W2UAE%3~gw;)~#ToskPFZBIiuH=Jl#_tHS%}fi8o=D}3?D -zjBuag4$nDvaHk|SC_%0d#$gffG>)TkbHPdI87sz*7?-P7F;;6x22(`T>8N+Xb1{p$2AgR -zVAZSad4sLtMRDIywfd;d7+Ap!X{IxkqCu2M$sieW)WyV!=p>igx6ndD4c!J4!LatE -zdCzS^X$O0#QKCYL0wod!!XaJpQYZdOF?w31R68y5wv4EA)uE|#Q|EctQ6%TKy&*ZR -zXO3b)8LKV}%1ziGAK^880-XjWmM`hnKj2n#(~80#YE&|%oTG3}>AY}G)Q6mPPFggs -z62C0{quw=Vl7-6Lg2I}KBX%9O@30Ft>=c_WIhgMC;`n$>3cY?hVv{;TP%ecHdT--&-ZDwzCkpgIoS&}GmXa_9+*u7@-x -zMkr7TN>SDMM@{D+)edRA)0u~GT*OT6vPO)`MTN^Mmt$c|=Ze8aX%{<~VulJ4L7_A@ -zwr3&kG4yu3M%}>&kE--f3^=5d?eyr)=)we+pce(wNI#Njol=&6X;Y;^YeAI;N|id_ -zCcIzRGZ)>I+{9dRZlbiSHBpPm2|1ui6-Wpm1eJju1Md*>k2F&L)Pt)uc?1*CJqyP6)^e0WFDyGB>Kt4>0_WBIUae$K@D+uF>O+B@TX=xto=pgX;P#9iR9iixXdI -zdG1l&btTv0Sd5o)!)txr``=?pi+?OfSm#We?sLHR?^nF4-eYZGaNpT&H -z`zBxXqgVLCZI5X^uJ`jw6C>1UkSbxKHd9Fgu`R@ -zRwxIC1J=d5cj}GQlIu7{k2JzTom(tCthX$B|C+6TAdV?GJ}8d7pdI>AxA_XaFT~ik -zWM8E>L!Zztg?3&eqNvbALW{Nt+qW0t!pFMg*|8maX@rreI_cGh`Rlc!YdFz*2pVA1 -z;30!oigZ~_o{+;sd1A#Oi^}wE&b{4CvS-f)Q&b3;Q#NOnBcRCWAp=@^qj63*KZEJj -zHPlCS>L~<)eb;5*t4&QE;U>r=LX$tjG3hOuxK|suh@KJcKztMrTDN1*mJ1TvM|Ui0SW7_SIw=bG4UD(b&Ld!9brWn*>=dP1+AfQ -zi^6?YP3$;hPfOK4maVEogBp;i1DlwxarJGX8862ubO@9SV);qq>RPPe0JL5fw2C0v -z7wlWK?K(3fl|tolv;3Idyk;{Bg}II`V9qWiiUvI-vH%P*pf_o_^_JRTW3ptwF1-Op -zft=J4j8Uq6E1Gi@qO@bz6+5=XZlEj2IOoI?5+z}A4rLn -z7=#WHc;?@ojh#`A-Dk&w3MmOWNp()nNr2P#^v}4Uf7ZU!w(Bk9x>DOS_)EX*8-1N}7{jB7?O*><-_rP~@384& -zB&9~fTz`=O0fj1Vh!44df78TbTQ~EZb5jwfeJGegc##BWt$J -zJ>$&Sy=FE|l(y6Jw*8fmJ|#l$*Qp2U)HDJTt$3@rw=tr$MZ9y+-x-G$k=u^DI{Yr* -z-FKf)vgx9Ti(dD4{>k6?3tOHxbLuAVb<|ZO6G3Q=tO?LWk}1LkFW>>u#E!>J{FRVD -zPVd{O&q=fn##|Ko<}gVGYY~M7kaI+?Ftv2jyPWrupYuKOh(EDrFCX`zSavxV -z+JM})nwUvS(SOX!7;Y+N%f5~z(29y9k9yC1 -zVd4>K573%36>62VXW^{JJmDWb%q06(VM+nM%73MXRp( -zU3)$e$=?fZD$>|OZ{2clkWAuQS`#PVE%lFC0j=SyF`hH1w_u3@3+e+_#tn4&D-L^XMd*0 -zW264wxR$o}uCQ9t0Xff=w@#t}l!559Jb_xF-QA5J<4{m6nrW&Xy*izo)I0tx1v6tG -zQksB-R#0VPrm6^aNnR(vi{3kh(kK^y=(byDZhic{{=9qG{+C_DM~BSYEBHq -z5*-o{AnPJKtLmz)Kk3H5G)O6B_aut?8WI91EVz=!>52>S6=rFsj87po0%D?%nN%T@ -z8q{cz02=b9)PBg;@s?lw;D)9$+>R(D0H-b~d{A)}^Op{Cc+D3V6f=-vMH -zPp5wHv9ENjx-*KGd==G_4vD!Ttkre&N>X|(Fn~;GB9@t*wONks-EgSL?I|Br)4{3f -zi0K#!kP_Fcu=vfCmj4$vzqT^^NHS`|klu*i5F?Cf6bbY;&DxLq*Dw50;u=qUfEdiz -z-$sY%)t*FX(%F5rRXrcG9nc9-N8Ja~!Cu27wy}i-^imS9aQZXM{wte)P1wCJj2ec) -z2t#Vux}GR#FJYhm|Bul2Qcb(t=vyL{q)RN&$#YLp1QG1_Nj>@u+n^Jm#@oE{h5l -zCO~sMbX^Yn4_E2rut@Dzq+zLbD>N$VIypy&1g&+02#zwR-$zyOLZl7d0NV@8r_=0T -z=k;D?ng|m0l6!GWsONOAvbw>@aVLtvM@JynFZh&tJ{%-!CJDmL=lOLBNA -zSTLRl&4P3i?)-09UK8RC@^RLi)>4_x4zrV&a=7z+Bi57TJ>MVR^u5`4f0tkXQP|z0 -zsj$wF4Cf7!^!f&R-CA -zc7(Rz>{VvZ^6)5hgV3&~bpD>wi@%(geg(Paw{K(zFJ-^~m*m_QO#^aP21thl>&27)`&VCvqkoW|^W{_}Xaxpn$%X}!mUG+Oy26v* -zA(WFyhA>#8H6DR`amA#jpO2tr?>gpc^P1I`mqvks6gG3ax)g!JXi1W!A<^ -zcpth0MniU^i??s_^mniu>|hVO^nKs-W>QHrqBo;mlQvh#AuaHT-UCEYKwMTz>@wlds&l>huMOoyYv|XC5}wZ~ln`{T$G|UZH -zJ)t#p3FLw&Tuq+$e$I|?gbwV}a}Y?G0L@vnk>N%pPpOv5#bFrh)Z1wc;AFcOr^EG2 -zT%58KY}4BzLl!_2Y19bBKuMybu9CqDUdKZF=V}V=4tTB!S5kOlL>diSFw(J)P3TiK -zo5Ey6y1L6=#SV7K8Cp~KW>CmtAbRxZkmmZeOlp<4>xZm_@SlNUN{ymqEp!Y7mWQfX -zoc6XFF08PPE&3i>7nMlLAd4P726O*n5}b9frN#W -zq9ZM`awD5`*>19vM9Nu7qDPO^z9k{=bGGINu$BZ%!rw_>8tOET_wX(DLia#MBcyD2 -zcu>i69E6QIDM4+U`?YS1 -zZ>RL^HW_D<2J~uJqSN;*)#RL8Q39!z(nTFkf*)t3?-X_F`4E4?(+KD+Sc(%3r#E_5 -zb5MByw3*)8B$u%FIgpaxX7?yi9m<&#(ldll-o%&C0J; -zp29y9+fYLHLBhb0)m4t;(`Yz54XpH((*ZB8%J6KFp4hY3G3e+mv)qTgK!7aJMRpcp -zmK@6do*jQu`e$7m6kmj)XF~ShiqFuEfX@z~#8PZ56sJbRzP6UruEdbb+3nggg)3d{ -z!m==4)Xq0jDkJRo*(_4pj|HdEa9ULs*bI-2g4v6N;yy{#H#!%Rnajtr*E6=BfN=i=tKr12|mk!=+QtI2GBwq-Q}s?6otrc -SRH#vAbRi+&|NrNIlmh@fA)+k+ - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-hdpi/ic_onboarding_round.webp b/app/src/main/res/mipmap-hdpi/ic_onboarding_round.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..47ee8d6374d37b7334f03d7095c0c2953cbab4ea -GIT binary patch -literal 4798 -zcmV;v5<%@!Nk&Gt5&!^KMM6+kP&iDf5&!@%N5Byf2?uQ>Ns^MPeXo{3;R6xT|9}7o -zke|--rE^b});%aA)4y$6fBd$j?YSi%=Luvi+(we@D*d(ASXgV4e`G|UlR(?HZHP=k -zr<|bwFY6f$+BTAu-Mu>yzxjha^*@OS0Q~{n6cGX7G}}HsCIEQe%`s|L`~=|Cth;Kx -zOd=q9ss9m?h!6#`K_DLFgdhM!LI{8{6trz4#r$b+_b`Zv3FwrVOl^LID$SB4+pgQD -z5ed`mf3H;ORnY(l`a6Bkab(-3)sJ5z+gAR${22bozQ5QulBB2(AFQ`NfX_cZJdiBg -zw$ny>D9P+P6f;0P~f -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 -zG1p!d%vb)AHJy?togmc>2nT>bMJJcN -z8{Osy%wNSA6h$gvpf;}{73Y0)?ZTZ=U*;E%Wqc7bj*ACfMyuAdtp0Beznet?@Q^~v -zbWHoVKm6qbnPa(bYt*gajBsKUQ?Z@YHkLPG1XAU-dCh8XLa{DznIn>dsMQxTVL`w? -zEeep=bBX}MX|0JZoc+ms8OJDi9zqHk^q?&>?ecXg*cSdNSGM>dd$obb=lQBQOCYFu@-W-|V5C<8_uJVYhU!2bLfaa#27SF8hcK -zQ6U8c43}h%!i+V3a#9IuY)`IWT8wf)G`Jk_A^}-y|3{r4nDcv}0N}=p6Mw&iv)!3% -z*9VKa7&&xc1jYzVV0SLCaQo>YXaC{4#|kU}PJ-NWJ9CU$5n1i@Tq~xE->3g5a)-JZ3 -zk0Pj`0ky)(_xR!UOpSxp23%i+Wh>JZnZI{t`QhV`ZO7*I;ChLjmfW!}F-#+JLq!}eHFBdVH}6Q -zlHY$~XX9uoX%(}SJ-<1z+snN71eO_AU}lI4>jIGrq=Ewk7&tJb;4{Hb^-raDGuE+T -z)QB@Kp}Uv^01@yFQj;k~E=%Ok$mfrL#~Y6(LVpyH&k5v#BgyhsdRcn^jJ1BNRT~^6HsSP;5;`bwjVweoVAv!D -z6iIp(yK9QWjwUy-jiO)&fgQnBkG%wIa4EO|eF$D%hw~$dy@*PH7??Bg03WDyv`-S9 -z_#Dls4;6@hV=4hbKmyFJV0hP$r`BgO55R7WEwBl;z&6+cyI{u4u3I`~hCL;wOtJc$V4+CYIInbTMUL}@AHz6A?-a#6t*3C7dtC((|h -z9z{8f1PsKQEEhlsem8NvYrO0&r~%G7&IDv`g*^S!%Ruzea(3#=d1S24wgv4mI3nP% -z!LearCK8-d%7-Q1)qkD(JCUv7fXsve3kKR>uob*f0uE%900(n+(eI$Q#f*yvTV=sK -zLwgM6kTo?BFaY83kCBfDCGXgO`b+r0wLH^;Ph;f;0!D@dZV+Av8Gtz51xkv{@^5yT -zU-tEJbg+lhLj}`G>{>7e4JZHt=@8(Q%)a4+GV_7_%OBB4vXB>Dkx4qgbC3r>$`=Rh -zCQxv0LJ3l!;{YfmllC8{{a-oC{^pB)CExAs;i@#bg{s`B*wL^pvK)o5KkJ#F+QGMa -znctE>Wa{3LiM&DMFH7sUThAs%8<6k}G)Rq%6Usg0)zEstLEDfFM^ki*NyLuJY+FJ=)w4hGcx4a;$cATShC -Yl{xH#p%zLea=`#!Mc@Zd47{lj0QecZ@c;k- - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-mdpi/ic_onboarding.webp b/app/src/main/res/mipmap-mdpi/ic_onboarding.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..96d39fa93026ff600932e26ce37841b67fc242aa -GIT binary patch -literal 2082 -zcmV+-2;KKmNk&E*2mkn54TEZ*2i^hekoJBq6EpdY1_)X_FT`lZTs7{ZQHhO -zn=RY6TDEQb|8r)91W1xh+v<1D?6+;(wr$(C?f;)`+cv*#+qUgez4H7o3j*Ask!u;PEP^PjNdmH4^x5N%*w -zlTvQ_$yUW8`(?a!oxc|4_e+tcP^&oAzktlSFrBr2m7jw#6P8HWDdG6o -zSD0SIix05o>=SwI7N%`n{93Y<9_=TrdhbThAWWLDe8L_HmnIy1FaE1LT$|Wm*ys(` -z(fOMUC(eEuZ`{nZi4*Y>rNjU~U$i~}zb)2+EfS7OxTOsbeggAui2D*!O;v59_d3Af -zza04;VBp-ocNYNg2Z3rzp& -z1aMA!+BX;Z9>zA~qOGc&ry`y7_RCy?zpnlt9{m^GXW$-(N6v@YXX3GhR8{S$+_sx7 -z4^9l{n#cTcgvSZ>ON-^|snB&v?7Q|2MD9ayPlCG^q9fqA6%eZ!+Bh9Lh5F|ou#1z! -zdE#D%&E@@5qLk?COG|Xqo2|VEK0ba2xGTXO1#U}tcmcv}U2$7NDoRL&g>-!OIDgJb -z&-mn8|IN+z+py8=dmGwxh&KQDUGaZ(Ah=DzEe_ETD@T=L|CcLjh=kNx-^lNukn$j84qh=GL^2`M(?_>b$><9c*bWpG41YI -z)KvGK>QBp6y~{>@@%f1!iYt{kZAHe|*YJ2n#dn-7Bp!M0eulHqn$E_{mFkn94YsOs -z&5JhcP*who^x#aAvEEIrLvJnqJx)wG&qe#YU~Pwu&o)-7G};h0rCS!f6(ppRgj63x -z`GZ%P7(HoQILwl;tIc-j;}CgvcidL4S=BSMd#jTxp)~6sO{qG;R#nzh(U3ZwRopU{ -zW>?2n=Rl=WZ2IilKR(*Va6Dg;$DZ`Z_2@XXJz5G)ikhQho&KWt&R@btZ{(*iraH&2 -zwK|G8d4!jPZHf2P@@-cw6YlfSBMeueW6%z0IW#qDhsp#ol340(pnHQ&1utQvH`&s> -zKQl5o`#7gWZo1hOb6Q|ak6o)cQhRD}myrV9GSV%~dfLL5$9OMBzQkJNEakxmI1_7sa-uo?Z#mBi!3 -zvrm}8RpvAxwozWQR+b6Vw&7m77Wf&TWG -z_XlecyAmf6*Aq_=9~1xl#?P0T2{m?jkdP`>tbgAbwQ^M(-!(_|I;e6n6|2t#-F>v0 -zy-eR#mIRi2hOLN$h;xaXi5G}3O#J&3c@ICPG2<$4@*p8qZQ1y_WThgVZYmNPLAw8B -z`V%9Fsl;N2ip%F}vcl@XzW;CvaSibx@hb7X1^<6R-bCi(W7}YcmY%J-laPw^n0130 -zCT0;+FJM$8mi&Y@h)s!|iQQfW7F&WV4BSP3@-gwpKeXQ-;j@yXOWr60OWS$ -z96Z-KG6M_Ev{jY$p{9S$S)7y?<0%6#5w8&M5}%v+$-v*g@%L-A?<3D5bCKal2joiR -zczn_^3f3rjNkXcq7YV6kW_8)bO}YQ_;}87x3;%sZ>n-vT@(S`OG6NZgbV9B}PDiUh -zUT+cwTa~&NcGDZFAN|hEY`HkN$mTn~IuvM~L>}-p8IANoS|e8@XP`Y8-?WK>8>{}x -z@gEJ~+J=AEqO}13jmNKj@m|Y_8>{~s -zY*Or`8KMTfrb$L7(d4g%-HUWEvnnoSa=nsmz-K^qpj1Ae&jV$0p3mp=@4x-ofTTb&AT5x=`^*0i -MNdD8aaKH;C0ALC(FaQ7m - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-mdpi/ic_onboarding_peace.webp b/app/src/main/res/mipmap-mdpi/ic_onboarding_peace.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..00ce92c74719f7873e0b897f6d92941bb643a866 -GIT binary patch -literal 3958 -zcmV-+4~g(nNk&F)4*&pHMM6+kP&iCs4*&o!Yrq;12}W%sIa2qAm-!REdq3wp!67r2^-aVO;O3pJ4>MO_FWyqM3w%sW7V+O}=j6jR5HF~~M@u6O?c -zkMRAU0Q^5Vq}Tvi4*5=y1Hc#HHD0^XB%H^+qPY_QF3Z_@&oLYY}>Yz -z&*sC2hkMW2)~IbeBuToyh{!0TOWiwb+qP}nwrzX&mu=g&ZSS_tDFw3PdnrM(ZQ8bS -zu6^!3_t~~>+qS-K+qSK)-Lh@lwvFd^_F~|+k)mc9k8gILfXFYr2ND`*z=j58P7Bnd -z6S|`gf8Z6nn)KMIQ4v-Q^7|>}d_MbD7M=jZ0yOC7t -zj@kI+KVILs)@A*=$54Z(25si(FSyu|ZCBXzJ!g7TH|O1VVb=kcCd}EylV9<#W*G~p7WPiOX5XKY^wpiCOnu-EaL8`xfnMQ#;iM#{y1XldWeP{dT!MSF`Q-JCm -zTeA*#6h{C7at=bk0(DU+dZr_ZG+ZE{M1?xec}a~A-JyKvoi2Z>n}m+LIMseg;Cw&= -zIY)&Yr3h?7hE$OGWn{kgv$hbuKp*31>Y@p(|5v{J41ZuCY!8MX;V*l+TG|ba=UktVY -z0Ww*Mh$s9j&9m!OR3RPEYw;EiyX*q7SAmEUP@$Z~3=mQ--$ESNm3HVb5@vw*JLu{d -zp+QE00F_XpGUWUHZd=FnYbmY3Q5mW_@Z57!m*cjeC{iK!>zG0W@+9uqGTKV)HS@hf -z*9q-^Q)aM(gaCw6R$S;rJIKtMvVf%7}Wer2mL -z6b7K{?z+ugkP+$$`a*>@j^v(=udxkM0+o>lE3Y_Rrz=iZi2+l{5s=U{CfKbmZs^c) -zI4O1;M2JH4+sjT_X_1i-auj-q!o&Vr&avx5)I(CB(=LNn?AC46!P_A)0F2XK&*epF -zKY97!cY-u5_nMS))FJ}{l(HU5gJu2|Z4>V%wqb%aQndWUW`p;eAk4#D{7?2D**M17 -zW0vcxdXBMOJqYUO7_}KQht{B`CzRM~D=+i!^;DlgVxYzR)QXd7JZCYra<&d*bSAho -zD)wS6xt7_uh(#DW~+E`wbf)H85mHCLBE`+ViMgt!9snm5bE_hS&}X -z(00;7>Z;KokPv#Z9$>Zo=9&8nO(8WA6Htf?ycS# -zJ)lj`UF}{!ZHzG>RI+JQAY10|hD^PM0+Iu57iDIgv_fTUF6PoS)?mD%HjgFy+v7Z| -z1KX@a5$U*_JzM))4C?wWpftA5{;iasLV6(Dxq*948gTIcqL|AznXIWVVo4sc;tH3o -z-^I+%=-yJ4JGo$4*+9sp!4^aWOk2-W_Wp|>Awf_S(WHZxYdiT5<`pcPCR@ge%rcf7 -z=29+j=|LS<%rXDo97~yV2vL|u4-hcrXbc&?M-5U0&1Th1K6+kNH@aqt*^8)s&SUnt -z#tqWAh5gqXe=*N8HW0ePG$0@f8yz-g?sGIil3>_A*6;qj+w?w45yt9#%=Zc -zvA>v-@}rK%78^D=ZIiRPXFWDMo_kJOVpkLsm$8#u7<1*(5Bcf7%l&vr -z&)+_;Y+i&&D^mK7plC67Z~3%S -z#mEDwTdmIjRIdL6?>r&jRr2wBtgSjj?mwkV@9v^;dprblrQIc$(Do?S6=( -zqR>^^Y(j~E3^@nnhyW-8p^Op=OG(>(s|s@mpfRKZn$9(~{~fNEuQwMhBaBdEQnSf~ -zA8CBnxW~th*Uwkj#e!0@Rb^T&N+6-IpumuJX0-}o>br}m>)Iw`2OZmTg_v8NOepwH~QxzY>k_d_Q&E%`BG{^t!&G2!Ese{m^hl3dpHjfXF~bmI-A? -zBuD|Y88&mt@g7tj=g#`ZDwVf;S@B_yv9Ige*UgMt6eRE^DBH=Q@U6LeGbV -zoN|yL2kKOYoU?ZH&5CJilf)ORX{!%A!o%}I7xo>j!la8k&OJ=q@j)-}51+EX -z+viEwjkalnOw;_`_bu~3T|X8|PoVKN6oC5qm@!J7)0*k7v)0+BNd)LT+a(w8?)H9) -zEeI%)dzjXF#BcoHmlVo8>F#;1E2frdgJDJuHNI5D>RoAiG66ZwQ#pA?LtaG4=Q_m9 -zZz&iCm^JAx`2pEFKtze$N7KV*+n)3b%X~Ta{ndOoFyhJzYeJ~B!}&t|RZ_ka?KdE! -zu7iOa#IlSA9SSj@Z@`uW_KgsQVqD8LJ&Fp^7)eyA)kP0mh0WHj@@=aruQ`!9)WcB!vXOs$L*?R9Q5WZ1=YeauL>yWqz93RR#?X=0IBLa`vMQM$EWxQ2hd|1>*vY#QDCW}&&K -z&S2I&m`e<@F&d1KKsGK5)sHEd!YD)Z*M>sVrkhTQD8hvzxNTN@4}}Ma4c88Zk|J3N -zWkf(IRpqPt@t4^TAACTBL*GhMkOO(2}_gZFt*sXh?5(IY_4BqIK< -zqv9<{fl7W^`n&PEuaSfj2n9)I>JKb>CoR`z^ZRCv^P!k1Gq_teoL`!V6uK703WI#z -zOx~lx4g!!s&NdaL&*rw^^_&9eq~R*p+50)kV96kckRS!g9aTkk_-eA$nLpDRmbSMG)!TnBCXH0-wQk1 -zd^ZCaM1qt?GG_d*{QG5L&Hu&L3(|0bn(3ZZd$ZQHx_JF3!xpzHJ^99@Z(l -zp+PpIStgLEQaD-vXrx>I1Pui?MpV44F{7@LfkwePAlTXw(&HwX5B4-Ncqlwkbnk>nb<~$0RaYM&M3Dgvd5Y&QY(|O716V5Uz=>tYlM-Kv`_~M -z)I)&?h(VsIOecF>2S>3D2s6j58xTw<;n^;0EbdOn21ZEBe)=xd#+EDWe02(iI-@{V -z3?lM@xPvizgZ48ZnbFQv5}q5Eak6@;;vq-}6clZ>Oop3Z+s>ZX2<4I_WJx9+u!A0h -zhLE4)o{a(ZH4QB~v@#76!iL5cF6SX2+5#iI|lj?ucb1`)%ltfMv -z1RA#)UNu`+b>s#1p6g@3*{WS88J2Ypl)EhH!)(iBl$J-~AKACXHVf-Nik9Nhkh;H5 -z6#?mj3ffAIRW2u~n5ZRn3(Z>UO;rt1Z*gph$!LSd@<)xudr~jsvx+LD4ic(piWVK3 -QMH>42321~0BEMi40I9^a9RL6T - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-mdpi/ic_onboarding_round.webp b/app/src/main/res/mipmap-mdpi/ic_onboarding_round.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..84f2d7884b0da8d991c3db2cbf6113fc043a861b -GIT binary patch -literal 3082 -zcmV+l4E6I;Nk&Ej3;+OEMM6+kP&iEX3jhEwFTe{BD!a9|Et2g#)m43&nVFfHnVFfH -znVFfHnVFfHnVFgIoqPJXy1EXmb^YHIO$IlF3P6y8OqnNu6ND^zCj;f6PM|XoW^hc= -zWS|7JR=Zkjg18}60CKN?1GzyQQ<%X?K;E(Bbpkg4*=>p@gA+mt%o~J4XiJtnC2&k( -z29tnzOwriFAlek23=~9}qFG8n5omn@C!l4R4i^=#X=ZQHhO+cv&!+qP}nwt3E3lM|rtlRWI;aa8fu^9@6AGXDaAQ!uBwf8gAy5|70nNje+b&$W9mAE|Ii_3wqv8kZR}WC& -ze$d1!wwG1xK&#lEeztjP+>3SA7HQUil@WuZBU8gjsFRI;l+xh$7bKp76mOV;KBYMAUngaSp6@o`vz&C)p(}qmK_wMjTCRqI-32OXAR}LJA~}( -zP7I{k(^j#A@&S_S$U2Xg! -zWxVSG!$Mh2x#BKgox(Sx|9@yMCs-(c&BpPdYI2}P#&<(4XJgwhp})W+f#n0c2TuDP -zlkLC`s9)5!P5?I!r}TmE<|ncK48T1W|3itA@U&62=bx^YHaF)K5>t7}N3 -z)|e%*cHn@(<$xa{A-$_Hz(sxBf+M2+nbG<-ryTFlw%L4cQ2K6dVIg8X`H|IR7*lr^E -z9SB~0k}w`vX_kxaSY3 -z_n;oeJ?CTgIegVZ(@YXc3?TV~HyRwuY|3F(ymBSaf)@PMdP=uc>|M~XVXR-2$0+Mz -zigWH>kCV;&5zkRiKwXW<(Ku{nQqP^7^TU$6ag;Fsz+s2y>~vY5FC?=_Xp7-=pCM$fC% -zmwA4rY@^(9tB9k$i$2tT%qq5TEO`PbZTCRA#7?%}#o4^c&isAPIZ#JHZ40$B)OZ}$ -zDdxW(k~v#i&+%rhrqSgKpHC64JO`ot=BQ0FQ6#+~)cMC_p4a)+?f`IfNx|7KHy&AtQoQBW+Z -z?%RFWfwWYanX?Vyqub{|jezQGs75jo1s$qbYAwYc>mj8-{Ww1+<*X{+x{@3uVtn8J -zZe}w{V!Hy`G>E!CBaV}uG@V_Wbcp#ouNkBoX(&Z0_1&qP@#TBFKY5?H#0C*h-7M;4 -zvW0gB(B*@K1Ch*gL0+wcdQz2%e#G2^G@-I#lL^a8A0&D#5tzu9tZ=&_h -zv6@wuwbR1Rna&*}xUM7fa?NP;l9}Vpb@KKKt?NJPDA{rjOzJ(QIMPo_bF!n9a8(;A -zxO*YxzrNVi*igSX*IIYD>2@Do!gCnkR%A&s1sRfb#?w^uYBE~QU$u(u=K!<@CA6;i -zk?%TaB?o6tD&O0OYm<)GEp4jJpCc&vY&#M?G^uL2gUl20*qy>IAxDvI$nstW=U6e{s|CGA`R?LaB5>%QHIRc!CUTay -z>sjO=vL#uXOixB6J(Jdw7(ImP!kXb=Xrt%;;Q*Aanx?ZEIkUze<=IBrPdP!k?8mox -zZbM6rqnphfvb(U2$x>umGBW9nwAt`jorMX)D#FgfN{wj-Jr`K%?wpmZqJ& -zwiDmxWG%8JnS+e$x$e!MzqcU~XT{NG2k$9+0msv$WD!!fegLfVUoJRbdDD -z99IaB3U3LYytmXM8UWV3S_VkA5B1 -zr#HG5)sBd!8l%GK@*75f#A0DRVRzv~;cDRt;T_@ED1N!cSgq>I`8HkwsHp?3{{&k3 -zuFW$#G3dRK$OyuQ74@NkNnbpjyQdXPHP;xa`SP1Kd&~~Ab6ZTiixq_}g#Crng&XCQ -zyf6F~LH!)R9$>6m_B9*V2VI}3wbr@U`eJM5z@*m9{H_bqzO&Je-P-4Avmq^IX{IG+ -zCm((8XlML%OP%;rv@mxTHjZEq;W*)9;cnq&;ZxzS5aJQy1b$q=Sh3&}$tce%w)?+w -zQ5sYhdou^dn|aEY;SOST{25G9r0)`1-;{DcBmM8wR2sVw!~pB(wc2RT(Z%flHj -zaQs;uvlnL^3~suLJ1zy6t;6>b{QVjA6T~Ht5GxRWAjYEZiZ`kTW8z&^AR=BRXcG@~ -z%wL1fMHvwZS8nIffP&X?1AA0!Q_ceZr -z;?EHNdyo1V;uhkxM~F2ZB)&t8Ky*gb!#Bkkho$^H)YGmL5wFZDw*T|fPIMO3O_X^e -zVs?x_f#qsH#*=$9{QlIZ-u8at4B{YSD`Gj~KQAFhA$lO1;@^sRCs$(kM4yBP+D&C5 -zUYS+wfLhtWk&ZuBS(FhGtJp!I$+@pF&KmhMpRdLL+YsvzOA!Afenw0}3_)~7G)7$s -zU*-+tl9az2OT|85HqDfzNT#4RXb=yy^B`WFN{A=YDBL&MQe)`?cXM*HZ+W6`md}Ua -zw*mOKJN|2lKWhhHm%)oUa-5s$Cu4=!2Sa_`6;_+=E8QZY@6*1LI3~& - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xhdpi/ic_onboarding.webp b/app/src/main/res/mipmap-xhdpi/ic_onboarding.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..828db975628d0efab5532796b056cefc283f8d0e -GIT binary patch -literal 5078 -zcmV;{6DjOcNk&G_6952LMM6+kP&iD%6951&U%(d-2?lK=IZ}47f1W?!D;OgBKLNa_ -zmjZ#rZxBH+96C=FW5%hGdimu+Ouy3rou|??bCc_rJj%jtBuR>t$Bd8S%ICj*j}vDD -zgGQ1R)!n@SW*YzMUINodlC89S_0$W1&(u>$^4A1HDE*%RoToqn=#K&2vBrzUAHW9t -z%0U95J|^xQAl@~gJ>o@98A|QzufQ0kL -zP|&uGbTNO{_cMry3D7agGL;f-we)3-RW){FxiXn36pNW8HR}d4(yYu&;%56S#sNC4=iTxe(>MBe9w|)+qP*teeL^fTd|X0r`oR&v2EMV -zS!)8QYuju%y53shbTmvd_RMEn+qR7Zuz&4;w!II)wr$(CCK+}*-K%Pwa{#rd*xI&i -zTlRH7^1HhLQL4Kn8WSKg10Mj1#w3VLLz~k+{oP&P@3~J;w{4rYt!-OwgA)tKwr%^I -zkbPpd?Q<^M`V9=(2-&u6b79UgdZS})+p)bm?&tmd#kOtRPP(K@m6eJ^u=XtW2-xir -zu(EBNzyJTeCxDJ5*{-cB_lZDjVKM-i00Y2g{uVwamWFc{@}7O~Iu_#pwH!B+q)0Ka -z$NXad-8w_=x)?>0?WF%FCk5$*08D@z)N{(fk!)MFvd_8l6nA&G=%+Z*&qzrb15;p- -z6!~|zC-HnOsCzK7wiZ+6E=LCKmI&X|9MH;`2LInUy)gau%HQ0&|qM{$jPzYc`S7z -z_Y_~Ttoe*i3jP(t-~8{>u^Y_`yz(+tjO_qH-Rfd*ukGR7dW|!s><(5qqkBeG*KSaFD5tX@N5Awjm7=xL -zh9XL6Uh&e;>hr$zcJ+3B|1=P>o;x>JZQogkeIMHfKp-J$X1;SvvjgVetg0Fj&nQq` -zrpT#uCXaicQ$>IhTp3Q&_qgOc<9Ga2JssGSB+! -zSe$aHA}8ZTU3-ua@r4rFQHE+UeEuuPf8o1eA9RW&X7?EPY$maq08k}B(2VuCp<2dV -zB2dgOk_$F)Q9>E&)HOcglJC{m+fxnfDctMzi!D~p1#3Y9R7D^FAQrEOBm%>9TNFxL -z4iOctD53=CiYVjjKjkye+lVvJuRuu}cCXDixv0ikfT}_gsPEt2db=1T0!cl0bf1oX -z=UvKIV5kZh1VR5xBK1gbqGdyx|Ncy(Q^>He$D+12Fd#sofCvtXAC2{rcmpIRF(E6H -zvrEkDe?-S+7#0i#1hxYdZ;9`iSs&t0661d&(a#!t1(IzO6(}G8$^h!pmxj^RzW|pA -zq{ILo=bE92t}9qD1PlQqdJZo%ULk%@f3jr@{P!ndT8kl!8XG_X0TLjBb5q9rN%?#A -z(r6@+f`Ra9&M&RB`)*(+1Q7s%UEpVMFgIwsEGpg1`WXL`nD`@!1%tK+#!ay$g#-bB -z6ln;4mKnGFA;JNfNlaJ<_@Oz&w?)%gEC>u6_$j;t3f!P@8G0D~>Xbe3&mVvw7L|-6 -zlX@&cf&d9%!K$$Il|^0P8~9X8i9cpmIkokEG**0)B{3t2I`%32925@Mh+Uz1n;)Ag -z^(p=$G5$M=%FA+QQA`A20FVH+0t%75WQlb63?dgn`o3-&3z -zLV&{I8ZLWLL{IdpyR!@a`5kCCFs+3;GGG9ZAP6EA5h~Qv7JtRcUyxjiir=R?m5aG= -z(EyVjNJF=ojeZL|WTK02Go7wHRX-;_|l`0VD_U -z-OW9dn>RbE@-Bl7u!%aX1E8Q{ct1l2&428{xPDso3RR2(3Z}GLPHEHxnSm*Vf{YTD -zTvL1wEU%#FEc^)d5$9}C(Bn_wNq8Ymo)nb_>0<`;_{Zzg}Dif;jxnA)QB -za(XbMFa;x{h#Mq~`V@KfQp+4rrz??j+jf_2OG>A36>NZYR8atE5C&)ZhFJJyFRN<2 -z1}K=-E;<=gFsCp>ikQMkDJ6zAO)t#`n|cZr`9wBimFouv%NIRX5?f#ctfMF#;4)(! -z8>?-9Y_acy8b1R-B$WAmv>VL89L%VZ;zmZ1AqI5)WMU(f0vsUd=Tf$>iK#u;piQuj -zq5+^ltC^Y@H7Px|7eAK&u9B!EnqIfCM^teuU=^%T0|L;b)}^0;)N4S_1|TRozZ`3q -z-`DWAz$Oj>1zHUzpp#SC%&hrJ|MOvq`JkB-(@UmdtbsXLAy$z9Kq%{@XtqRpwG5aQ -zMOLxo^8RP$jb0J4EwBNAu?17mfMhV&N-4|5Cgp_0W_ow{}R{3W0REoeXuDn{7M|GnaEYjcKWPxs$# -zFWCA2K!Ys^LPZULfndhJc=Gp{3YaxJC@5I$S=#@8?@AZX5>wEF4z!>FwLEdHcXW5Q -zcl$9v-{y<_)`kgNd>f|yPhc}68&UJ$tox6QG16AMCe1oY`HL!k1|5P*qD9@6gZiJY -zd}}Aa3p74a3zcY8)eG%iz2H~w@{OGF?=Y6~dL?VoWp{0Mj5fRKagr`)uKcKJ{so1?2ETx1HL`A<;wOr}DO -znlPrAlBVE;>|A0F==gS=Rq^v}TjrllQUNCeMG`#|(~Y{r${1Jm4;Y|WvE1uEy2I{u -zWFoB(tIGym?rv&-Gm#C}zXX=Xgo%V{p@skt5+JSBpkXwuh0vgeP=Z7N -zRMh|=h(JPoT(#Xcw%;z+UVR2O6WCv6elNEUmut6DmlmyQtxvQbl4B29{_t{}zqq+u -zo;g)NAjG{!kq$I8GV)<15eyul27ohg1T%o$xPbSnZKn5NFVn{Qlkf9;irKDx^~KYI -z7Ief!VB$?2uD$rY`rC{7;R657y9`86w5)~?kwh?X1ZUs~>XZuF1ty#hxVP-NEU!KJ -z2y`CsQvdS{=V4BZ{T?d-B`IaJ&_7ibclt_R;O+T|-z*1fU7+u57#7)K;Da6X!&j+x0!Y1a%wOHb5aMpfD9^Jm&|_@-{#CtCPLTA{X$r -z00RM_27opI2)G4^-~ebsQ)YZ^7}&Ht%Emdc_u}@sHng@d0EGakik{V(#>>9vJg@bG -zKibW`7P?f%ItT=S0H|I7=siFL4+cOBtAA>l-#a*x9s}(d$fu+$54AfT+K2-Z07<}7 -zgg~Vx_?R$w-FIB+tnmt&Wa&eaa8Mm7Xdx -zW>VEiBAG$L-+Z9wl0d$f;xujnCIo;I)xs=pZaNFs!0<7U=;7~GovUA(Z{Mh`8q^q8 -z5I_QI2rvWZs@rR*hc -zSJr0E_%vJph4~esHk+(LBPl`zltCLxXu`l``eqJ;$x|Y%@^~-Z*HeA^wahd9Hfu6B -z*hPz3!~{TVa6a4&+?3)YAN8`A$U8&ajP+}gj|a6gV9&c@HzZ;ajR=4;tPhHP(YPbnjP&Uw|(bl -z4<~^|GcMcy2QfdE3%!3WkMm(+ -z4euBFU(R*CW~W8m3L^kYP#|e1pLpgcAA6NRzML?X06An};J^Sd0A)}@2i0g8nh|fl -zGX&xYi6-^-?5G>^YYQJMM8UAoP@48XpZlWEd{WXh%g)P!BTLK*QUOFD81jiv^Oes{ -z-k}IYtbhd=00shp0?>vM>J@HCL5na894Rr?bKu&X6TPjl3V>mu5nNp{>0iF{dGC2% -z=x3RCT%;Y5#vWmGOpRjo6D;DsA=X3)SUC!`WheolWok8Ufb_9EsE5x0^O6qCs)Y#! -zBsLHY7A!PE2v;*mIXr&!NmVZgUy6h^$#L(@?WxkN{!rQYK>i06Q=lRQEWiMi0Vp-K -z3O9tFA~)a&5R__0WXI8pEs;WOnf7TZM~XR!6)Ymu5yB;Ecd2#`8V@G*Wt2Bt{PNFY -z_s_2M{2x1|e=ms@6)3PGRshga5CBr7SK)@xSJs0(_`jRcHx)#Q^<}@Bd^} -zZ$TXaWi%*_iKalH>cw5idRLl03yjy{X(t$hOke~vC>#XTgiJ?!e{)wi{&S5JeV -zsX-MgSOqGA0%-LbQi)brgn^<@_dh=V)6wQVaAYh_zxtIYUpi-dk51yzhv&Yj*sqoU -zFN{s6yb`L5$VH9{SP=@8^tkVt^o1S;q0Q_cquZA2fKz -z8?-l>b==sgej_O(Fe1dHpZWTn9*p0lxrP|XAVPo$1y+`G -z)+k_*B7-rNEV4fvniP+L?hNpM81KvIwlSmA8OCzpO!`+ozTw-KOkB*FJlfQz5wIdw -zG{1jH=Wh|(rYsQvOn{a_&uEE8OkfCL0LG9pGzvr6oHdpYiKt_Be=6NIvnv=yIkcqW -z_t!jr$!0F&2h8jNT60o>jsLp5{i4m=Pn$+J{QQHpKZ#ucL1DU}C0e5bg8(oHfDtlc -zY0ze~*)4_dL3su!#IMsE>@mAGj3$hLLwPK3EaT^Q^7>Qr?FUj_$uO}alWSx4oTM|i -zoPJoo{@nCUMTA1nqz0|f763y65d?t1FeXe$IUevMtbiZDq2Slm9b*5F8lB`HGAs{S -zgOrdHpgx(}WU2|SC}*CQhd(kng#@WaYqZ4xDFA~25Ez7vB#vrcY4-Lv`4IH~l!y}T -z^ZE1Bm}bj}2wfa_?8+bq4*|O(RskXM-Bq -zcTNS?%=djN>&VeTGxI4$3#+tMMiiwj$!LSNs4>6*ND;L#2W -zVYex;vf+RO`v%R;4J9-p^@eIqwM1K`whTav0Du(%0D~acqQFYlD%NV_NTC7-a)Xkm -zhh}`io@`$|Vs<9gD)`@VBGor~9NkiZcJ0e`M;oAb3l -z;{D&#bU0vNm)Ss#-~d2i5TFo5G+|S`GnZX+qWbHiujhNRjc_?$zkqiV6!=GZf34LY -z=ld``=jil%$+G&b5XM~EE)|E&B(X{P6~m_xo;cl6=Y98c2Dx_I&~_}G2VXz}?`Kd2 -z{iS+8pZwOXbnfkec6*!d^e>%{)0oid8EpIg>HPP*lf&en^7OMoo?W$YCwcN*))|Y} -z=XiC%dmAVO!JKX}nk7xL3`-kBzi&K*zS1qshEPI)^FmF6fX?${R~Mv!^EV7!fp$Rv -z7r>0f2%eSYBzM -zhZ24YW(#iRC`jOk;L?Eu0~*v&#}ox*U%??m`I!=Gz(fd2 -sOyPmgcsNitg`h-+2}UR&Gpaz)u+^YW1_7#}K{dU>-9UP%27WIE0MF}IlK=n! - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xhdpi/ic_onboarding_peace.webp b/app/src/main/res/mipmap-xhdpi/ic_onboarding_peace.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..7fd5dcd20f34d7ecba6ee4d23f1fcb515ea351b2 -GIT binary patch -literal 10646 -zcmV;HDQVVHNk&GFDF6UhMM6+kP&iD1DF6U3*T6Lp2}W+)MuL;BGs^!TJeyB*j_Cgc -z=zqoq!mvt9YQ;7LtW*VI7z;uH7_?x8OACU{wlr8kcVx8$)Y1T>aScO2n~;uTKqaIh -zKn0K(#PheY5Ov9KYTTz|jBzRC2K~?l+}gHPRTGUE?yiwmK>syR1{FB`zawG>jU*`! -z*74o50)94;Y`0kj0FqM`0T_V!SB4=NPDTGG06#VHt;?1&5fFhobr2S9cklQ~jlrO8BS{nUXMNwC?f^u@1n6(Q@uoW* -zxVj6a)d|Ihi!9{0me!KC=zJEAFgB8X4nwdGwGjlOk9H&il%0@Z%MQ?o6 -z6FQP4Ig%vx0kR+1ga3aKKJNHqG3Y55DbQrnQIu|NZ`(%C_W>lR0*bPVdpTJp)7M$e -z{Qp^{_vYSIDasNH=tz>S+IFhffy?(ZK4u168i5AD(tKo*#pt0glRRc-)?(vO3Aj3XTN*zUJTqeQnXn*=Apa$fM09d6v?t}>;26kB7>5% -zQ!z6$GqX0@5Jwx*(8joiAu(OXkQmist{TkTIT$?L&FpU@!m~t|%_&Hdq)3v~BeVIK -znI3Tee-qzz&ti3DShlrEjU?$aGj}OMiU>s{6eUd2Ff%i+W;Hv8-MrO20W&l6Omi1> -z_Y^~LWQOE!o~>;=Zrir4>;1m`XBE_v3##31+qP{ptV7_L^k9$n1F&s#jAECP^Z&gL -zB}rH-iD446dOkF0i^u0$rwr$n6(#Bf*y@$KI -zyGst52HzB!kgDrhb5Pc{?T{qhe?(@aRchO|ZQFMDYPjQmWVIDS&%1LNBQudEyu&b%MF|xY5CNJP!O*~?ty3UE76}>y -zbySc;1pg6`MHl8wtSHvB$;tsyq;+&gkIr8^K0ELox~uG*;y{8LChwScWD%-}&_X|c -z!!P(7!|?9|mcZi;c~c9o?g}>#*mz&DWGJXY7|g`knBE#IHk|xF&wl`Bpa4}x#AC;j -z$~IGW&1-AUugsb!$rM5g~-Cc$B5-;N#p}3==d?>5j~gd>*;Cg@gkUn+GMr` -zky!pGuKb=qaYO$b5qoz<36eeYYg>n1-^~vn;(agkkr#O1gFL&J2Xn51t73QL#c%xn -zTYmEizkbh9nRVS{+Wx)UgMj%;K5&_C_Oj&G^rRx?04O*>sFc{|PB6zsxiGrQn?Kc5 -zeHAsV<@R$X=T -za?;mciHqB)Nd*+#;2Jr`*dO@q*IG|*k*}lEW$S3c{XsZmN#XUIoGzY{#1s+;1TX=B -zfD-^hMC=IVbH3g^=rd2>f_g|YhwOq#6MzT(kW@3R$C -z01ToPfFK+MpptFy>4Z(TJ -zb*IEFxQ0M50EDoHiUP>I=sdaNdLg{ntJKoK0Ge<=zz{sYE#0|G$oB{cG>Iw#DnN)- -zuXap|QOp$U)dMgS=Jc@cL1AT~<2-n@(y?pvTr!x%!YReR$3EzRsv+3Zu#;OVoka8*G*DO*nl>xo0++Z9 -zo-CzLmPub86>c+~H4NOVNrRz8Uf7m4Z$}=ZQ3R3D6jZ#-RBmBu;C2>HwqyK1SO8T+ -zu$hLxdPyadXnX+%JRH&mt%6Hj;R2T-JYR~=Bz|kF9Zlrn9)LA%UU->yas$z#h)fnD -zAz7&K7bx(Ok-PeCHRtrd7Q5ABz*ex&wkuZVz0}sXPEIIkLP+El^0GL)aE(W^cyW+> -zc~QZVdmL(TTkw?2|&@)ltyEcv4NU26l!FbD1gRB$cgD_cC; -zgiz1{2LuHr1OU(d!=!%}SFZ0dh6J_;lyP5nZuY(;_P;=HVC^beMY)EGS}5`?_|myP -zEb&EIg~KSqU4Q~M5={0H8w?CkkV(aofD*w=?a!#rN#q7Ed2)EJUy -z#m}1XMH=MPKJP5PYs3yV!Parq;|(K#As9e}1e_9eE#OIxt@BpXYx_6E30njraOjuJ -z7XLDBF6^AJautxd04kP&fdbZ@#=iJ!^3$HoUY8uFa|$Im2?%gku)c%Zqap?ddK8oc -zf)ZAj=X-@docRN_jhf;E7pCcTXVw^${SU>?L=QFrLJh~k8WjS_QSki2FNW~_vuerN -zj)kZ16c~UTO?hRTM3X^KLbURPrvyT#i;1lpGc?hSI&2eYR)&^TKJ4XhX7PL(j~kBw -znKj5G3?vG{2&rky#ZmgkhCgj2mGRTwDHwqDj&8gkj}|2Y1QZYudd^jeQc7enN8EVq -z|C!-R5w;1W7+r=(FScsOo%rd3r!yX)pa!5g1};ciZi`Sh?Dy1N{9_|`D3#O02{1K$ -zt1AzWH5!aC2p}^mJf##6JU30cpd$6|PUB!%^n-vkKyq)6QVoldU%C_J~A)XpLM2N*M*EYT*jn2C|4>OxACx -z!d8LS!XUa4mmzvI#goq5SWpv#76t8)IsDJG;o`vgNw_`89V+=feRu>tU|n#12g9R8 -zB0#W0@ZC}gPbnpw5}Dlhh3M&y(SrtT7I<9gUoNZp)<%AJ5gt!G3?xC@N;SLmKQ_!; -zu8-7{==HPY$nZiRbbtajBCH-o=`o^!01-t%92$8>DFE3_D21%U_b`eAY!*l{D%Jl -zG~i*5;&^M2ZM2Yq?E;T0eQzBN|MOqT?MC+ -z?*Iv~?mZKVn3Mvb05>;pGmmtQ55O@3Y#PYySz7vfvj3!;y&-r&9$1S2va2l6hzdvH -zqN1D{+`=|Yj&}?!u^6?;aoTFmAOp&63MLex00?-=+$;*47VGVSIcyv#>4}MR9hv8Jyb){~G3wLy33@p^k}T#ED(&$DP>|J2533VtK>SIEeOn8>dyu -zB@&9r0w4tI)ZA1# -zs+Nt|vh}7k-)l7yc?ld4TC#`<1qmn!x3rF#N6|7k1Uq0AHV?3;;b2yj$&tGTrmhDR4BzZwuPGP_R00IJFd4fZ1pqIbn<^}GL-YUO -z6pUc=0GD8=2&ZGz#YUJH{ND)_8c{`o2Bk;fKE|^pz5Tm^?|5?}m*)F{A$iWd&0MMWS&>%wFxDZJJMHr(4etoz)$pLyI`hUee_tN@z`GCL;EVdi^7@nb1mf5GN}1giw4 -zh~X0ElYt?I8X8T*Sg_#|%Ms?_0zAGcwHEqZD%buo^Q}EOs?fC}UNJ(`{ -ziK9BA0&)#bXJHl*7T|v%K>@ZA1T?0$mR`^`eIv75%Hu>34Mhy1QW*=CKww0SG>oN& -zrs(EU@i+$0+u#Qck~0OBt^Lt)KxP&!00FO)nM=h>unh)4RT42K)|^@IZ~oNAQzkdZ -zY%{`?W@$u=6h_d9jcsW9LTpoc*<%H~v@7qV)KrAldJ}fR0Z`F;O$Dc8ttH~Q!J#Kp -zpfZUpX8i%r{C)HA60u&ZumM2%qydpsVx$%$4Le#IOEO-_k5lrN4(1WFppdQ9Q3p&| -z5WaycSR1)zZm9Mm>?@f7)kzdB_TT0&{GW9F2EDjkDFpxm+JQkN8g(5TN5@`G4Z0jx -zJg)V?i!yK=pipo%b#T(f|DhVU{_(zrGPBPJ^l_P?}qD{>r -zMW|EiBqEepmN|)qg^^pVzk&Y}JOj)?2Lh->f*SLOf`=!ZjxLUAYlt0~ -zKoDS7fbdLCOyNA7ma{J{dUClIrA6X5-0PBaQWP@PGO|>TRMytFYrkILz)=@%J8RE@ -zuKnmaCo0>bz_Ep2(?dy>V;gA>CCL< -zwldLznsXDak%hin&gWTu|B`s)DkhIq;kkxB7A#fcpdi4Sp^s}xs~594u9lcs`(TB3 -zhV<_T;}%!K18^^Mix3wnGz6Yekr&OVDU~y07`jRPU8&k-^LhWDb#ARIo}K#O>L-_Yq1n%O1@PtvI4+?hw?e6wbpf*aT7ZheTj7ea-mZ~_rWP>z^Xt% -z4plTzLkW363Z|d{psILPoAs73xY)o@q#_Z;V)TU4VKt_XGS_l*Gu{*yuz?m_aD<~A -zqeLwLgdhNvjs(qN0i_`Hi2*aKz)q*Jrs01^{tGw;76r0s$I^+lXDq*A@fmXplaF>A -zEk*og;89>53_+*TCfK+{?0&5@6GdX|i-XG&!yrACGKE`kA6o0FoFhEp7*7ELfPfM~ -zp%fTc<&=Ux3=8u!><1k^+-v0Sx#{iiEdIPE2M_@XrtaAEkR9)p1s|Z}!&3i%-F|LO -zDKeWicORcj$@>jn4W0(Bfh&&Q-IUk9bOBzt`$h%HRQHZ~&YV9vtNu -zphN)$fpTIFhhz{;jwn8aewuK*bBQM!J>B#8?wULbFa=L+%Fo=B^Ge=d3EPY?o)Q+q -z2U9ZHW>ZJkEZKDAsv}|eQN#z(7dQB1pM){+GnahXTkIP6miz7nZXmN_aU4{5nmYpK(;$yG@rT1Y<#_<+ME4fh}U2 -zIia$vuc0WOPA7bIEDtO_608{M{*FAJ>-)Z!`;J%mf~~JuI-&+iEh-OK(5)ftOoKrv -zS{f_}ZUIcM>8!C;v;6!uHgC`j3n<`v%Ad6-pWg^O)Z7WRfEF@1ftYG>4YiJ1SFNqK -zpmC0Ob95PR%ANyz^m*m@ht4}|>}ytD;hM&vs>N8;0b!9{UuPU1g^MWAC>;s{0XHn% -zotE}g@8i!m*at9id%OZLjrijmbn_at3k5SL)EqjcH4y}Aq86z&)Qp-c4Ny*N2f`nx -zc$LM&nON?UebtG(m5d$LSd4>O5MpKl1oN(@hG6RG0LR-AwpI0uT^Y~%ee1A%bBsX& -z*R0iP=^v%wYopu54F8 -zEr^;JQk9EEM`>-L1F;Q{3obKcO?1m4v!K6=&7!-8sbNN(^10u -zjRB0ntu{ToL^M%Q3&_extpJD;P(e)$w2kbk?TH#p6E0&eR>9aqk0}DO^8vD=E7cV$ -zofL#PdmN_S5$^mTkQqB>ZcIiEMk(KF31>Sh6Tk*s03g<>fLd5<2$)DTT53Io29*+B -z1#jTf-cKKSGR(I45Eq0qwM*!(qcloKM*wk|$v`BRtK9oxs_)K)6s9jda1a+Re%HDDDiX9T&dP)n47+R{X3Y+<6#G=S1Thej(U1dIkF;P@b; -z38uTcpDd-_lNH`s&8tN)cl0o0{alYXfT0>P7HeC@q87)ZW(pH#NR5aQWZ;QH>tD{q -z*ckfMKw)BOEYqmVU;l@O4MAXz`85zQ39X<)+cG5fda3YoF%v+73&;OEWEcNZnHgAv -zA|QO(9o1OWg3KW?fIbYk0gPe6nCe-m{m;lhG|sC{)HyTA4Nb)ANK_($62J=Tgj!RZ6wBUt%(zp; -zgVN%0mM>H95pe1^X;pP6l;fxuo!#K^Vl*eXNVUJ6(w~0F7N06j)i3~5#iFXJ##nF! -zWN>7L@P7{Pk6aAY;s?gNaP>Gm0E()TCG-5EejE%%; -zL{5rusFS>k>O+cmX^sK2=VslC^4a8w$zF2;FBTJZ27Rvht4iPcAO7|$YC`-w`re>ESGB)G7lDNYm*EA3G1g2 -z;4&HS!sRkO05kLw7~o8c3K)`%LCKI5Zmh=A0X_JOlfU^l?e~9R-T$OJU-Vh})RSSd -zbwj#nH-I%)wVZ~koD%b#GFm2L`po{Nt8CVOTf;Ec{>F@t`qrU48gG;@}o=X`SThhp&p2Grw -z^8Cz0=dV?G7O8!)(kXw5iN{*55JQ&mj2G1^LP(c|!gJNTt@uodU)05B`jZ+J;q!2C -z1~N0-d9@*HGQ5iFRMEMmSUO+`?isv9$#WvbL85oLu*%=~Bd8sR{hrHxVp0k*7Q_mn -z^zC@~jZjb!sG?y%hMsoXUnDMw9dH5%7A%)rN747>o=opSsP`)UN9MnxLZ1>>U?@TW -z1xPsP#B`gW(0irXArMh(>UJ9SIq% -zWnJhwySTx}Y&qj(Fa4bxL8P$X7Z|nJh>E6W#vUqUUIDdDN13Wa7(=Y1gz$e&1qIYj -zfJ)*2GB3de-iYljXG%dbM(tqqFa!gT*|qxm)2dK|q)# -zQ?S;&jPy}wF(w!h19dG>v_#<46|4%0IVBSOzjf9MJnYOo=Vhtkd-S4V+p=!W3M*@oMukzH{2jS@2L=A1oncP%o)M!K>u5 -zfBBtHeIw5JbBfNkSGKN85|c2B2;F@_#kv*XwCUYV{5!mV&;*)9hGPmQ>Uw1$72}jU -zsu=Mnh@d%SP=xsK0=HM;`GFeY$q3Iq;iGlao1Niu0757)#4{(CD^GalT~qg+^`!s$ -zwV}Uj+G$(fm_2XPaJ70BuVldybpZ|n5a6WOE!t;L1Q`W~_jB!O)xQjaKNB?BRkOw@ -zsscCwijD5@f`yTBkXQ46y1pz>{ycLMZ01R}KT^2kz2%)x;r5T@N -zUZ!~_)IWLurk-NzMV${G$L{XY?q1qDa>gr+j_<4($p9 -zGr<%91vqt@g=-4WMC5|htIZx#MeHe8kq^#PW6?bB4{8pwMV%J?RdlDmj`qh&0$}R7|D+gf9b?Ku}DDbud^`Q(^*u07Rsb -zI$%9v?z<$1rh3QZej%d-KB#Lg=l}zO2?jU{4iU#OE(bVWWZ$wlT_>&IXH5}vO2dRSkt=Y96~G>5mSa=XsV -z6K?2o7~0 -z3DE`$g6mhs=kY^Qb>sf3M||gA&ksE1+s(4~6e5IhsQg0mg0a{o`2bmaQ#3=0ZiqB=)A+bU6z@kA`$63ITQoJTE|^;h`q -z0S#CL;CO@gg`NK^)rLjkqlS$oHL^Vk7qh|rdHMj5P1HlbG^bNvN(KjX*cV4Z^%?T<*Sxop&> -zD$C|P=KII)|2%22H&hc|-p_xN9AB>7UzEGk7{f@o8e3~=38+$oBWNk2ul?L;;Ah|! -z)n)D$R>6j_WBsw+eaXE)Oi9)!OYu0`IY}c#M1AegQk}EflB+K{|5UHPr#L0Kf=N3~ -zs4J=vacg$6%*zMm-^a8!LMp1PyU%#Ynt`(?Tp%trW6Bs!B4E|$$n4DEfPqO4Z!7NU -z(y6Vx=!6Ynu%E5V7x$zUku^zW@67-Q0tlD{1#vTI^` -zSiUJ=-4O3wn~v>zpxA10HK~zeAD*i-M==a;8Vm^%a@7c&^?+rilfcZ$p#&3fl>p~u -zgd)zIG!WHP$%A8b-}GbqAb^5y9lRj9k^Ud(v%gr!Hs-4~8n|L}a5BwV(h**GNTG)T -zE^Y$F42xkfET{-*4Hb@vKU>qTBK29 -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 -zUI-N%o`nX1_LOtTE*jf>Enri%`lqa7l3Ip -zX{0uGOB{(3awvrC2^1hOFfz3=d+r`z8_IeF!!#6BNElGS8ZkuOk588L$%;r8Ukf6Yk-6o0$bL+p4@e@0R-vI_z*Vy`QM#ae?hYSS9!;~l}>A4W1I|-Q@z9<+w -z1jBFyf}+dS&JYqje0xP6->0cBA@{+37^h$c5)?$5L|q!skTf@qp756(O+hh9yL>06 -zEg4Zk1tmaX3IzZN+RkKy+gTpR&|pXy1~(T1GP>o?JP6~R?j4@Ntq7SRj1iy;HG!D$ -z?k92|TK{dFd#VpMG-<%*HaA#OKnXb%056yj4}jO}Ih(7B{pFD!js(RpkW@&>n>Mga -zPdn|69ko{sD-YooUYrMua!j_?s -zB?5pKj9kzV?NdWemWP+W`#q63JSKMh?k1m -zpE;iI^%a@m!`>G6cO|cuk*;9ua^^-ca?#X^BZw_J`FdO$^CLb@g$6M9gwPN*h57=Q+lq6BNTp?}fi@TC8m=haX-QRPpS -z^`_dZOnZ+RO+!_45(Bx?P^=4QBn|{4!BpS{g#bpxs;0HAbDB3AySr#fI`|owU8;Pa -z2_r!2pdGeptz|2c!)d(tYiTcDN_%c4!wsL>QZ!1Znru{(SAN*WWm~PLinbzp@_3Hi -zW94?`Fh$jJxxPpj&LDO{0Wfo*AOKv4eNMYejVI?*%f-D!`$s7{y;R#YFa!WUsK4X5 -z#Z&JbzWvrXKffZwTVIyp1rN#S>CKFumLyN?C2JlPHhj0||KTGBbwL>ilG0Sfwo;;m -zf~rlW`n)s9;0(HO27rJm00MwrgM$`lhbW%6R_XscCr|%NtNjYpC07VHAAl}nmj`c= -zibMn!E+c?R-d|CRX_j%sV4>^AzsgkImqzYrHKFOd9 -z8Fb+cx&W97gkE94qO*tT33yS!<=q&5d*aHaPe{?p8tRyyWsla%jo-KY_6J|y;>UaZ -zai?0{Kx&|B+Ok=zW~IvJhz6e9_zu7O1zrA1pmHd9gnWt_)@a@Zu0D3zUZp^^_ucyi@93xHC2*!YbP(i{4M^?$#|aUAbE;XH7R?_qn)|-SgX8!Pc-ewnkwc)$sw%3wt4?;<$kO9nK -z00j>@lbP00xGmKYL8)uiul>U>{Lg*etga@!U;;t_jOZjyOZpgHj6@KN6d!Wsdj9_5 -zo0yh_!;eoaXCTNTee|=s@emA}Jdp?%WeO%|3b32JBeDJ*|EbRdu(4O^lb1y4a1T;5ED&=Rs}DtC9l{o{98Ja1Pry`MM| -zo-#@l1fl_lUE%ZfC9893w@Xkux|2I{^W}OhCxGjj^oq -z8*k9HYzkw&k>wcskD@GuwD+kEDJ1;cjSR)eEm6F8@) -zS_z)AD0|H#4d##F)bu72KSYdmF`-hiE+%R{u`_ZCRtlgb5o_A&AKs|#_oiB7%ZhR_ -zs7tgRqH(ws5P;)NA&%GBTocsWFV&I6{fT;JF++WyrC&Q6(b)Q`1n@lV(5 -zt0)140W!!)k24gTDx5l_>$E=0HCIK|0+E8F903?-EsX?ji}cath%i+ibU0xLc?2rZz -z->R8ccU7i_;ZzVw>WK3{q~O13M;L<ULW9@bM+}_D7!e0T&N`)m8c1KW6 -z5CLnS``j0kb_a*QDDh1s}Nw7acMHX4fk7h=6T}Xb=Hl5Eue1C2r?q=mf!t -z0S?AFiLjA#OlTw@PusQCahrof5mBSupSt@)7Q0Ut`rDI!OHd*d#7F|TyG44?HIl`T -zRR8w&ob1g8Z`*;PM;f5KRS*CI8X{oVA{vB&ffxY8j^u$=z<2w=)Z%GF52 -zu0u2;0T?&{3;^Lg;6XeOd87$L)o8)^%mWnotRi4Olg6W4gWy0tc#ZwJA?*}^0tn3p -zTzVLfeiqz%4@OHkx)t33gaj2~WCVJ{`N8CSuM4bUPeQ%fI}#b(Z6!Jo7&tIMAh{7z -zSJ}aAY!9yR*K}D7FwP=0-TiArCdmc8d?mmP9-|=+9weK6`17lA(Nuljy}{+pK@%Yn -z%#1+Or2O;yso!{O@ceDTQ$oS42E(>TG>8^q0E5g3A^N*MW9ryO2D=H(8 -zCoAZC^1_`(-}xZ)m2Z7Hc;--WFoP;2NW%~?bi&mDQ(7T_84O!T{tRmRFB*S$oQB}~ -z&i~l@lQY85A)gt>-M7a@ZOb?F)@QHsk_AkKDL8?V0#F<#IgS?T%Qj;_!;=-VI$H?C -zNlg!GdM^BXGtO3nr7HKv!L&yM24N>ek1(VFFmPtV(25A?db}#3AE+LKy-;a5l#KI9 -zO~^OndT+saz1*}s%Di~Xj -zgA}hE;O~aDFc_jofN(-xgPEy-1}4zaW5}BleyUd}ZO*-hn_OU+*M1ZfQlf_pUkHYN -zl)Z{q+%(kJ@4(dK7)%i~vj`YP42Bed1S223YYLlH#5qKZbO0-l2TZ5}7&>S%33y9f -zcz&{}Ezegf^WdYQVn$lr#P7T5XZqpZ4G6^*Ce^mQc-Zl>X-r`N1%yL2fR(8v2w^ah -zFjOCr=s-#hri?2I4YZho=P{wFPFbH87Km-Jg6a&jT+ROFo%5ywWEfL4bsjh6HeaSItzKT?@h>+%^21$}O9*;okiFCmbNa -z?)kk@)e-1W7HEsXun-6!&+x -z)BnLai21;w39ABku&$!UZ6?UYo_i;6%wNoB>McH6>VpXBR5l30waK+SDo~g%rtG+XSA|LeY -ze8LJZ>#^UV?VM|7hOwX!6Rbw~%UbZ2w$abAD}UAxlQrLPMZcBG*+3y2Ai`1Z_g8(1 -z)~G>57&O4B=oD9Fq^A`}ypY$2C+j=AHQv@Yyxj-KA-L3`?NC~jMre_oFop)3waTI? -z{JX)IyM_LUeYvVX%DMZxa=!(qpw5E}4LaonpB=%On5ej -z{ZsVy(RJR)fHzz4vVdt<<>@AL)S_*$n~?2M_VfEwsiN4c6F(KV?Btj1*g1d4g}kEhhdJ``sn>Z6b$Z -z$kTn{xlPAeSTJj=K62-*!U-$(SnDrt%Woz0d%}Ouwd_b`IS(lu8jSG9(tj#|2eD8K -z<-+AeLJu0-u$PJ&w4m2u6>KWopmKpmQ)yV!a0l!-CUhW`eL{Dnau=LSWifXfDuXL@ -zjpf1#1vMWAc%SGc>;yrF3>y1vO%9{v4s@@w!;ZW -zE@-2GCGh|KGXfPPG?)vmar?pVK!Xl_&_NpK#=Q$CY&a)QSYPG` -zdM{Eq1Zg7#BgP;@P#b$M*G9c5SV%zwL#!YmfW`$&W4TbU;fxE;)j#wigmgszq-pxXhJ~cp<_WssqRtg+Ecs+Ja+fcjx3P9usV8pz4kg0 -KatIH&2_HpMq-Qz+ - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xxhdpi/ic_onboarding.webp b/app/src/main/res/mipmap-xxhdpi/ic_onboarding.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..bb553275985a72fe4e7ca71f5d0b4f86608dff99 -GIT binary patch -literal 8572 -zcmV-?A%oshNk&F=ApihZMM6+kP&iCyApig`kH8}k35RXlND}1z5{$P0f}h~7gNXi5 -z0RIor+iVXQxGCZ)NFae&iDpup73~RSr8}d&jO&=R=ceuxWmnDM#@E5ExXoDj+Jjvl -z8w1W$-9CH_4P4Au^UHcE;nujh0H?2JP3AtK}iA^*N6^JPAcPy -zn}G!*I-scUsfE)lWk&p}U`vPDiyb;up;|I8C -zhpQ6K6L9c=lKMeefg|HDx5|@$2weeykg<~p09=)b3#uDKLEAP`Q~s>?-w}w23DEa& -z1v5!#1Pn+$Q;TSiJaD<7cA{6k5NU1OoVJ;svEnx5 -z@!7%*Wl540NtQ-t_hV+JD>Hq>`|2m}#LVxEMa|t+l_4>bBt?=ud*+z${smzXUVmK} -zW-2M%+Mc$Np6`=n8N=z6+nHr%W`;k`%*?!7ZUeR@F>u>R(PS2nx_e9?uq@lQ8cEW* -z?@2DFV5X#EW@cuFQB}hy@VGyM$ILupX6|CfB!>)-aFR>!-D@o=nqz(?Ig(`8sR-f3|t8vnB&clG2=DcTgLg$`2^n -zw%bOME)?ZW?|)Oh7wNR5!Ok#;Vp}uYw#~IR+gFo{}DpCd19jyLBTj!`wlk1fP!qMaS@>4 -zAcrDAtUDwq0z71(V88(z00ay;@K8bx1N#vSpoS7WI53cVw!AhE7CaPCIn?$IYN#9v -z@L&U)+$;!an?eTOOBX%>^F)Am$iRWX04A9mWCX-^?9zpCP`4j}t~Cz;2Tg7j2y~Eu -z@Cfe#5grZ+0%TC+%7YFfB)|Y5p;*v>AkstfY<-X*LJJ1+oJ}CS-SbNqHh-!J&u*ZU -zM#@aeO%&FF9soEt(ytQ#C568zod1XTKtM|u797|Bi7a7}C(9jFDKtCQ>@Li}LV{z7 -z{4SCIKy$Q7nNxYJ(s=)@`fSF`afAZFgs&a>;fQ^kE`1`=yA=Ka@&F02;J{>s2+zzb -zUbz9!$hP+kAMN4x-O99Kq)GL~YVUu)*Vpx->Y=K;yf_{{eBS -zp|RRCruT?i7^Q(s0jGrPQ=}guA^`J!$*)o9d_U)7#IWx&y<8 -z)Bo_z7vh&+S(Ig7Dc0^^TAY-D9rxlv)Abf7<&rr&#uD!%Q(%@irDN91Mt-dJHEH)v -z&1X0<3{duI`u?%I4}$Z;n2Rx&CnhRwYz0hqw;zQNbg) -zSL2tuBdz77TrmbW&dEkMo7eXi_CA(?0KljMh#{B}<3gi6AYUX1|4N8J7FT#wQ%u2K -z`grabeTsAs8lhM)gKIE{YvAs4sAh6+rLw5%>`=o}BwRurc%o}hGup3-oK>s^&|HWC -z5My9Y^n*!%ITjlIN$ -zUS!ILIa4vc*;*k8KdL2Sg6gOAd*(^>1T42aE!daH9WO -zm49QpVhkft=m1<{3KN(Hu5EDhu5i3dRj)D)Cl_b~QJRVEU=`Wpu*Mz`V1y6=1jZV_ -zSz#$h5|)5bBob2Q*XAEb{G2pBV+Iv8uLyy*1E;5a}EDpa2^6tHm7;9 -zvCi}*1q&De2tXJi1PnX2{bsG|;ulx}MuFJy7l(Ym|Cu!SJ5-4&tmhgKm_Y@TM0v&5 -z4dp_99n?p+ER^DWZHg(FPHbg^H`dE6U_bz>0!kpn>2z$_(IYkAw(~NIM9w7g;qK>M -zoqk`c88ZMHSaY941(OAX6Vee?!*GrHb84;JI6nacv!UJBAz>IY1p`nO03!r2(9{!F -z^ACQ~$j^`ftB6Eckv$k!=KhSE11uO20C-5j!2~4Wz!y@`!XjL`%`4$rvI+Ig?0#o-$4Kmf3u)b^xp+P{@No!W=Nd5ppUPVY@x0vYWb#1XkVhW-z)k -z_xGq26|g{%<$d6Q2Mj0>(8d&8cTyIs(MgGi)p;$2Y02!VVTZ6Dm|VdCgu?_3z)SVr -zx}0TygAo#77+5ZE8ab&SUWvI7f&mp!2Hx-m7XSn(N(1L#sBf_cTEWRV$39TWPPetW -zfsB9|K*6rUVJL|i^7^({HTRuPaLaz@RLHVmM)EX7*|e4U4l0SYdq4xZ4()Cm=H@7$yS35h*)N!1jV=e+dCF -z4XmZ*;&|ad^G+RoMOdi0K?4i`iXh7aN(x3J8SUr+RTELTJR=L7w9c=Kziopx1VC~F -z7~wE5hnO)}k8)Ax{;;tV+mVYTA}34f-v7q#Z$99E!(6}#+$aH>MY%bRnDyYookVjD -zClU$kvNTmmruWobv%xxmJOxl8P5?%S6a#Io;7`jMz&N0+?%U5=ow>;#TRmh1J%Rxg -z0P7hhZ10hdWalDZ$mRNAAb@d2TC7S@6`%4 -zwUG0jnO__+>_Ly#d_6cL(umm!a*01)S{1b2;Ed|}$&wVI41mEM#X}TJ3|Ll1pa&hC0I)VnFoFSt5jPH4 -zUAW`cy5Xpk1QcM_z+j#aD~A9e0PX@J7$B&~V#^Utqlv?4{tAR%WH?u1;0`_0PGV6QRvn-3DXakdh9NIF{C;MCJ%qFi>~=Wa!14t7 -z0$u@tQGlw2E#B=m%AD>dDR&0gS`^x*98?qlCMBK-5C}0$tkzd*Gfe+b_#LQ#{lnn* -zTCcuZ#G~sjIzJ%!0^Yz2cmn_lNRFdHZqVh$nzdm1Hv{g*6``rCkQ!737*Y-sfEo#N -zMh1Fv9VFv73cG-P#Gp0*|4I9+%{A^Ryn+`TuM{uoN^nG8Zjrikbce;}oVQ8zgeHjC}WnhR^M3;TiEByn%NVi#?X(R1t9kG=SU)VopzE -zAQ|h8n6X~cgn5A-A_t4u)ftD$!1LSKcTZ9dJu*Gu<)QGy1E5khrrc1+qt~#F8x6{q -z84!^OLXO1MYqDAq-OYPSR29Ue53yFl8`gq=s0 -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 -zV3mXd)v5 -znc=tppcBT{tnvmIzwh$qS;aGl5^Lpc7p=jZkru@;qe+=5tc7e~inizk0hq)Y@-v|_ -zjcK$gKmfy>TTYcIOpVhTK<%hiw$(UiH#bpx*Z%Q6f)~8z5kFbUW^oS7Egnq*J$6Ebd(!?1(|Egy%BJL-_2E`)LPgEj+6C%WF -zCP_i3Ri!x;Hf1Ritg#pTi(DLIpp9@r3e4vK*)7^m>}QR|OY?&nns -z$ED*?U6nf~CCqXdD`T9ieiSihRsa!er<%xH&E0mbGs3yjX-V5M)k*z8&qC5mKK~T7 -zF1*j(=;-G3TUvR65{!v{g3r;UPq|4$``Trn-7Z;UrC#pT4J~xYSfqw4^27`GIk*y1 -zHPy{yL;5N{@w~avCq6B}UT`eY-b8Cb*_?WFk6RQ6UfEQ(VNT1uDbol!8xs&+{ZH!P -zxZo825&jVVfu%^;bWi6#K7@1?Ppd#evEahfD#s>uwGbk-&rWNnPIRxmlQimAOuJ~IxE7)(?RtiYH$SAooP1H4S -zDHpHTC&F|s?S;EvT;Oiv|XknGVQ9=QgLsnuzl@c6a -z-XK9QEFdiDp@qfY=DG5~K@KGpkbwa$QNTV+B18z#!m_n&d7#~I?hzpNKX8W_&_f67 -zfY$R31QZO|0Oz0}#*5`)AwUlu^s$Nk6~sZ^J$hgcv1LQYSdg{YK9JVpjnNbPhY|pO -CcYRv` - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xxhdpi/ic_onboarding_peace.webp b/app/src/main/res/mipmap-xxhdpi/ic_onboarding_peace.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..b474cced8a20582933883e71d71a38f1b52e1b28 -GIT binary patch -literal 18800 -zcmV(}K+wNZNk&F!NdN#>MM6+kP&iCnNdN#ZL%~oG2}qLd#%&59jKO}q|AD6}aFy&L -z`ac2kSIq%FJ>QAdGQg@sffynJ3fe{1LX%7YJyeS)kotlw9HiG0n7UMxL<0GQ*)!tF -z-mM43b4O~20v-oi*v33)gUxt^i92whV|6YYbh&QeC$B_;2lKZ~-@xB*j)rFPQm#TIn;h|CW3cz7G$3r6;#XPrwQ^r00DGq(j>=10W&ZJO<*ep0%(FMz$eHzz>q$3nxMueL*^`5bJ@A>0CJfw -zL;5tCGjCw4@Xw4HGi6Mnu!SVOMM`T7P`G6a;3`3u7Isnr*hm~|D`$agi>=J>3INhJ -zZF9p4j6`UD0H~7&7%>9qi2zD!zPu|9n^H;%cS6{-xABh@qRs##*!t%aLfD3x^I0_k -z2yLc-GNMPWmeaQ}9JGxjN$x8CsAuo#xdRXp6Ci)kJ)7>?bkC{2bOtT+$$!m|;bNWM)v`lam?eMiQBs -z@$!4k3~#jG%a~!j@IAw{GY@SRJI)@hmCkXtvZ`&-R<`vyKkuHuXu&5x>Yh#ayzkq# -zEk}|h$(kf;&^;nC#yIo;e+?sL8bjzD60=17lxdsfMzZbNO0RwI*TO~yf=B+r;A!67 -z%XcK(s%_i0<*C#*7Bfh&bXfXJu{2m;%+z`-L0PhG)3%jk&bij!cOM(qw(VQxvt48P -z#jC%MdjDhF+H1&yZMCWxkBs-(pT}s^8~Xl4RAkZQIf)rBrOKjXoDM!w0P7`u_}Ll9|__4z2Z8Yb`;^ -zwzajfbH5*Cfi0PeAC -zcc=C94}%~m+U~CRECy~HDe5xg^|bT>&$4YRl5E>n?PDmI8n`(HO@_5LGxN@_KiNOE -z)0krBonmI59N=uII;e}dsd>aoS#~JIwv8l7bkE+Cf4GO6mTyUtRNJ;~%iJTgP^}Gm -z?}M2cp5`O|J2NvgcW$jhDVgEhwzg%Bwr%VCal(lND3Wr&{JL&;ch@<;*YREqmuYvo -zJXJ}G5a6^O5+uoO8w?||WE(gvK>F{=wr$mJXltuu&b72bTef6A%%M|Gj5!%6A1AHM -z%xDsL?=?p;yXXX#VrMQ-wrwerZQE8AQ8IRRpRk#knK`ucuv4;AxI;U%m~pbZxq+gH -zZ%L9YNs?>}S=7Al-T(ic_wI00VZYk8EpKew+WEX6NuS8FOXYH7rq0aVBW6x}k9yjV -zp7S>JsBb{u1dcFbhQ?G}GRcxYeXk=%a@&UMZc}zDsjfF7KmNy$|MBC0{P-U~{>T3_ -zfP;dH{u~Gr|Knc_NVsJnlH|YiPyC>uVGiSS0Fhw86#wEM{E0XxcZ>e#{9jo>Lyy@v -zj=r;oRm`9uAxQlDaDLjyQM6{v%lS29P~9rIa3`-b~QAuJ=Ppa?Ij6^&at+0eWumhXXw -zpa&<1G6DiMMg#XJPlkD-@kTs=yJejq2hku4R7gQz%Y6tqtqOWqac{SzO> -zVVQMr{ZPL9El$6nSTE%v$U!csNxHl@Jijyg$A=DU?XAszWs+|c^O1o!p@nN^gjvEz -zIUFkBp_3cd-Ub@ILSnP-nP3pkZmU -zhKHq|!)WgQ>PEWt1;y@>IQa-G+J4rIhHg1$-m;m%Fpx{b*UvM5A1)Cwy!_YMLWD1{ovU@Yc}xxp7oLbkl% -z-f}vwO&TMI>s;0R@SI8rdw^u6gtY -zzWgV?_iw)TS5}Ru^IDoa_4{O`)GrQhOAGY@@@owS2aD=qGMuLb0 -z5lM)!)}_+ykr|u2ryFv%Qaj8+`@!oDx_k3aF@uF+Pk8FWcy;twzHM>$6*gaBoFlNv -z6hr`e?*V}xkvcM9Rm#7AJ^gm>;zciq{0uz~;kp1FcpaPz|NImG&y8dI5B_N5v9%^? -z&;dDT2ynk4K>(4~F104ki792-jT7B_Y4ik|T -z*;swSLr4-Jz&zIhm=MW;A#;v#u#<(DEa*Ps)e`p)+6glprForlmq%Z=TYo2pqW<{@ -z|8nuKXuJntVqoHd5*Q0MjX2#f6jEfx5C3Noq{4SFy{7LiVzBa6rHOLYil$Az!saSY))Km$`lHyU}_$Q+S1cnJ+jr6#okWRa8=G7B;m*`cZ} -zQ^oBH^TQQ@f;PF!Y?#M77J@k`a|mG9z5 -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 -z16I37 -zHGvY&U%dYiA0A329~gcVa32Kl0HA;os4LnR7!VvpwoSOLS{)N2@80=u{+HgNj4TJ? -z9q7Q(A$4e&ee>*-d;3?P&HuYsK1{Thu_KN+qNT$^(UToUc*Ac50srDZUsg^wiYxH9 -z2P+FI#<)s{0)tGtB#}Od17ua(u$syY&Yar}+N>~Cg3p0GtdF0g{zOh){OR5wzv#rX -zE`GP;YKMF5u&2XD;6O^PIQzdLGdLeU`D3!i`VzOmZytJx7mNp@s%URT8rFhJumMBD -zyrT|fBu(cwSMF!)uuzQ5;bWi$0UT0L(f*aY9}i1cL9->D4;%)LI -z5}1DCz&o3lvEwNjT@6elr!9^|$LpOEX7)DiGDavans66+9n%Xe6z_sFa1ISSR}e@` -zRD!CxI`#vXS(^Y5ZGtttQ>cC`)vjxN2qXyLu!8ZwF~QUSVf?40|Ir{E;(U)C3+xVO -zmo>^jdCBpszM=MZnqFdYi^t&q;7w=%Gb<;No3lkzkrnebKuCarI;uU*h08$B_nULf -z;F!+SG~zm#gFB!H4lJlx!?j?(50-xpVl{HnlO53l)h$im^_RiCVpEwaB}I6Y|B}}Q -zSBfo4d#J%eX)d^$h`wa&Bmz39T2^&}tnL01$vH%Dj%a1XeQ>8xZUYAwjBzuA!zJ*8tjG6MA0%JxlAKysL@Q6oV_`44?1+#vVp>v9Tx9+cYZL&Is=h9n6fu*qAJ -z3ouQc2<_ZPvWYe#9-=?6`U*I>AaEPY7F^v&#YIv+p5o~cs{$(hhe -z#7RN|2N;~AM)SP$$R>y(iBBz=4me=X()-dODdP2D4mn_u63%pIQt4PeSMFcZiQz4n -z_JlNWY~>uP=OmFJ1b84X!oYN00vGDks;D&(?!=O4OuRAVOM?v+O -z6*{y;OV^>r0WAV7w6I+cCIH017^b?J7B_UX#sWH5xd-iT1IJ2ZBV)pnkRVA)fTWHj -z!o;&)fs~*FgDf!&TgE0T+%V8#ot#X(Wg3n5gZ5){QCmvO;>fZ%u)sod@fkB50gwbn -zFoCyqH~Ms?FFa;eZb1V&AZKthaafcYBo>)!fSjHx$|V9;E9LQ)*Ieahnai+$vfnpl(>xP -zG`Tz``F!N4M@!e?NQWfFD`jLBjQ}|d5!>QFS -zjEm%Y=(Rl${EPFS;145*J^KT3k1cPfc`)+AQN-%hiH6HNTX3yeU5043pL -zrPf($9~*603pj)9Wt55kkU)hebikffKXD0Ut&5x}k{&He -zW$g>>zy=is?i#3Q7rXGLRWLb8#@}wlrss5^?s@H(GGrJBFlIMQLtvPnBwK?!QAMr- -zO|AYv01V)Z6w%7q=NahFv3Oo=@K~YBkOw~%l{K>-0Y^?7^ADN+?3sHW!@4T{e4D^W<%S+YXU+HPymSAc+92P$k2-Z!nd -z^_1b4B%bHT6L?!^K%@u6G+@$LAa+W-VQyz`iGYd41Enu3{isrQ6V{Qe03ZRGav_&_ -zpzg{HpQQ7iN>)Z@X?fis9cDMbAOYT5*q^xji!yrTlS>&-$p|bF0D6$Bxu({z5EEl6 -z7|R8!f+vw~fCnY_HFH7$m5=~ss+LglC2}WR! -z9q3Wv&Ve5L*u#|#PuzD1;%%6c3Xp)jpIh3yz+h&~QJAY{yXp#+6_X9FfmO{ap=A+N -zQUZu{F1cJ&rkR!#(+x7^^6?+uDD&_BGfbZ{pi^C;GG?-bxzzmTOxWEyN~iqBGF~8P=&7EiF{S+#4$QAPVVIN*{>$WWvkfqu{;Z -z2u#2L_Q2r=vzU4C_D^g(k(R<6Y)!;OEif5?eUN~xBtd{cHn64iGNT-3dKpuh=zvSO -zfESWSL}b(;q07jyI)M^uL`5-SQ>e%Y8lhwrqE?kcVP-ceT_~Dh&^k=Ko0)U7NZg2F -z2_K_XhK^J&K?`~?KiJ7pk#9V}xvdy&F^(H_8;nfEOib<_1ZmH_PfVecJaMpv!6O5P -zQ>`4qRF8^WN|)q0s4gMU4Sr= -zy<_b>nQc9of@9Thsl!5Oft(}X0B?gDbiknoiN(p`K!5u`!{omW`Hxi#i(p6XVF%L7 -zVz+y;kyh~Uq8j~VJ -z;a6;`JPShZRE~M(h;!C;mZStItV?2%&0aCu2T|;;;^qo*q}H42=`Ep!;qR5|T`)e_ -zCMrfar1U>%lCZmAD35W|s6!dZYv$az(>)DxM;dci;q$$s=jT#$-%k -ziIT)3fep$$iNrI7NF4JdfkLZ_B#|5yNf?w3NdR&J1px(!5kwHhRuL?sz4hR2g0AhK -zq5c`roE?w2`4APP!={(IT-kaxo*Kmic4CM|P{ -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 -zhlyFKmw*|psrgKuLF-?RE`u -zC}F72>8hyAF-PgcGBTSaZ^uzyogfOamj*fog#3iinv9a;8)-IFSZ^^0lZlraYZ5g} -zCs9fOJU|PJj9?8)vxyf}E?7I!(ZZiR82GmfPMW*vp0!ImJDr^~Q4<6K^0AG~IbpHf -zQ3)GV5CqYlA~FA`Q8teJNw>I=VpNoks1AfMHcA;c=LyxZ9r*n|mH~_%9-HHNx^7N< -zl&IF8SV##n&_4_0iF8j?NaaH1(#W;BkJO&^%#Nbmq3dZ0Gw^7Rw -z2pA|DkD$UbPaV&8ukhQhoeB;8uNEjUjh>k^RTR0fF5r9(S -zddDLp`pR8Fei+DLwec&Hpx6>~c}d;CARZ -zTN8DICtL~DgeX}f2?vw?3K1YeU6y-wm6RnrTb6d4B3B^Yg@SC^ZCGECP^o-nFd?Li%EPk_Z3_dp6b^>NkF7uv$HXHU6i -z_e0tRrLT>&rLcm8E2&6HU#2k>HiJ(@lw0+=gE>b|hfe8zR$|$y-)Ps^OSAh|4TTrx -zVJ^U30K}kJz%A&-%v-4@fdU`^Am!vhHNwP11jxXJ2cUZIeZleu))m~4b;UNYk!V9| -zM8rDBm}or=QHZ5ygYkTZ7o*6l)pu@g@%)GHAKkhZmtmd4Na=zt7g$E>UzKMDq#~nqE;eU*F+^`Vw+mqUEIJG%(do~aHE`amuQO! -zQX6AL?%@(;rt^)15q@B8kwSy7ud%=Rbv*wka7$LIJQ$X68$cjU44H~wQgXpLP-nfr=f+Cz(WPGW64Gn8d1h0%7Vy7_3E_c} -z8EPV=v?vcyR>?XEw)6Ds^gZ8|_!jnU)(SH4~lKZ!5orc-5otA -z{ci1|%>#+fv4o2xyGLFaJXy#}nq}eAd?a=t6{aCgN=hv0`b}c6raC~0l|^oHXB~qp -ze2`1+rBMTs*-lcdO!grorEoS_b!!E1}NOWceN -zT~W6N;Vw$c4b3p{T!nMyf}ju(0ktjBBBeem5BL8i3#T+b4{nePwbIF9?FD>2aIZmbT$%kIHZEm;L^J-VdOk -z1}~r+TA%-Pz?pPka)2bjfhuyK`Jy?n_puZpnh?I!$*4@0TFR8rhaK`Sy~nUfcoo*Y&S(+#VvH&1pLK30qR^Hq6xZMw>^6OEWx@=Q6X(5P!|3an~$R^?u -zL`c>xdkbA_-4FkEd7fkuh}MpZYVsLm-V61l -z8|3J0{zmskN^h)*F1>B&M$+Rt3RG|(0137hucw|ij#K}#pW1OjmQ>e(Aiym3b21fX -zkc`9|E2+2%_2+nOqu^T2@t -zlFbckOn8no@WIu-U?=rZi}ihQkx#?jgnGK*_QcJ3X_OZ95$EU)<&WO>xBVvNK+kK0 -z1k75`nNks!0E1x!LnW=?@jpKNtNwRb64mN5Hubs|)#3aOIhYM?L6;=eosui*n~X+` -ziV9$ej8NYV=y($KBFhVSVR=jIrpU%sx*fWqoHecu3=RxoP5=WqLvN_Q*!ur_?-5f* -zOK8BoI#Lk^1VJU{1q}=(*K537;q4i26GB&USv%1@=DQr<$RWegsz8wThD3ErUPSw@ -z#$7OLCZY*$|79YWfrTC)m41zAl#sv<)t|2|Ll_sXc!lv~<*dS7+uIf`%nJA)5xC{R -zkgc3U9_pN7t!iznMc|mn54iscufLI7pQoGp?f?At7hZEZ%aAT^tmyJRYInVjZR -zaGS`#PU)usPh+k#c7x&k5vO5YPOn^`x;e_X&+?E%ZZ;$t(&;AKZ>>$(D7}Mk6W=Ai -zqx2go&s2}1s$`pUpV3MtW(E_iwp;QCxj8Odm3y|kp|7{TafHF*T -z>g(HJEce)laVKg6JOFb8GH3YJa97b|&(7tcBU8oMVIlP)K9JNNN&#Srie7T$JoV-M -zO>UP@SH28~&^^pToGc`Z$jPQp$Ou!ax3I=n@HHvlhyJW&Bd*{tch`pYCRzO2Q|~l0 -zvw#^^@e!8&y(mv2P=G7pK271z3N~Wv+hxsXyPOstt??GACxG?%?yqE4;%yE -zNZ`=(8<`tq!6-O67@6)iHAj9aFyDJ%$SbDHco~;&=}V6ec_9RZ5Q>n|jqc1HTzz)U -zp-G}rRPYe7=Uiv(Db0HCR6vvH1tIVX4A~?&pzREy!^dQCdiCidWhQ3_^V23W68t;U -zM<%dakTe@r@Yyb}DIdqO9ndO9W`aeOHSFJP#J>O9q$(Lwk8N}&@Z^gVC=%srcx89L=|H(y~Pe14JhvcYnc)?K=ILakniZ7vh@51T=Adk#p -zddQ=9KnlQ=f?$1OPKF;m^3Ru6wzJc2B`a8&#WGeje89#LEgn5XdUj*&7_I;V<=`lL -zf{*3wpKt*|3BLB(Yr*xZPvd-+x^zd0MdiU3_M=XIPci$Y@{8ZdoJlYfGnin`+13_M -zCe^aYC^aMAVs^#x@bF!}Fsz4O_y~t#LK<=qhUqPwP$vCj;pz#IF -zVFI@V43~*7s(+oBW}d(JjaqSXSQHa{0Hism+1ur6U3%$&IoyAbFC?5{!0j@H^F2G!tn~{DV&zP_!s`+jk2H|1e*LNE@HS=n?imoFd4(k -zO;g_8l+*O7nUT3|KXu`$R=B|yW`SR{(Q -zRxmCPs=xIQ+p$qpIF}*AQ86erP-iQ~)4xg6i)m~0^l2eEJ&H}!{0Cxuj%00K1Ea!Q>r5zdm -z&(j~Iwb)uMXIM@!mj+V0t!L*Il0Y*Tq}tfp({DxFk!-GjcvHJeVNdMH|F7I7XLve| -zo2Bp@{EWmD0k;RF1&fI*Vz*+3zWTG{%?7Gf(lbVDErVq+Aj@=cMSyB@Vf$d$n5TIF -zh5PbE8p~UR8S;y2)|c3&Aq^J6aSZ+#--Wo~t|;T#e`F -zx}P7a|L@0-{+|5dT-;;!85YD`>DyuVR9D#=GH%h{3I@_UxNIzPm$1dN%LlJ~1L?^s -z9sU#iF?hMLhZ61*NEl$8+!w{X+VInN@7SK^yZ_UtRL$G|;q~AkB?I4r7lyVGH}`kv -zr4lG)6EVrQ%|5#+@5_ETpU#cjW^Um>jp@jIqCtY&1Trp0+Theto>9eZAEy8Pd*AqU -zuId*;jJKe=ahY#Y{)F(=`N0?T{vKoh;(jr`4@>c|-u^q0ljU&K#cg>d@&l!IWO1^q -zY+~a@wU>jZ@d^IN1nw8;(PCDaw(Kn`L$OVqr}m|jt(sg&7T?56e2G7J2>|ha#iEq -zmNDBD7dJ(CsbA(lgxCA;$-MTl7$8;STSsN25&QPGdavxf(W)I!(w$IPM{omIgTDrM -zCT0gJ{CnH~+cwllC0jC$MTU`t;~h%3@Z^nn@uhg_UQTg_5)mQZbmrmBd!( -z99@e%+hkZ~;T#Jzp+Q}*oP&3$b;FUo2#hE~4pZpRW94b7AF`Xq<>n -zCo;wdMyQcs&Oyc&tC2dhjY*@+!V9gB&BV8Mzo8B{!)aND73L@q5qO8%reh;L^6Wu? -z4hOnd;RW{L5Lwva40rJFBVvYsYr9q9l6k!l# -zgtPJNiAuZB!{Ub9_=lg;Z)sn4!Z=|Zrl+?#TkF|4cRMz&M(sGGV|Fw#!vZx51l$xr -zMZ?AiuR~!Uo?_mY$s<^#9Ju}tT`PP+^35lCFcA;Jm&sGCu`bP0pxmsw#1b09i;E=y -za!@iIB)y!Fgb8DGZN)CMa_;mxNjg~?qOE9+Rd9#7&Yl*|UNA=kHw;iwVv4&f_e{Jt -zcn^+}%Vs^W+{&tjhm%}|Gd#dmStr}ft~_dIrOdffyuI0Wn&vFi$gI7>TA>PEng0|XK(j5_x55Dsxg -zmB&;&S7mNKN1BW@Y74bh3ym-%PMb9ejihLHp>y6Gvj<@ixxd*CQv#9or#3%3)yWoT -zr+Ic3)7i|%nWd#;3%3+*h|Y1*>;P9L7MP$$f*T2lj)XnTvA|Qyf=6&5n2H%|cA#vf -zRGGCMf`WH-sq6QUqwS<23&C%Snk(kZi5*(z)WTU=m;^|Bx%Fhae+O@?JbjjH1S -z_u~rg#v!Jdgo?2 -r^lYI@F}XDoAkd)bsF4=9slj`^qz3%|e}4RrAOGXW|M>Ag{_hn4c7z}U - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xxhdpi/ic_onboarding_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_onboarding_round.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..b36ffd5ec5e0cd633e1cdd03cf59ffe68e38f50a -GIT binary patch -literal 12144 -zcmV-$FOSetNk&F!F8}~nMM6+kP&iCnF8}~9kH8}k35JcN#?b`ac1D -zD!&y_*Z#Kt(Q3_!U1#R0%&c+}0Js2Wl0(4#U>-}O^Cl{(sLM^QIP-L@75z6Yd^hxnI -zA99TONzK=FFdj2w#+XtZr~rqF}?sC_(ZQHgf*;eag%()a1={!4+b#2>vy!C -zT5}FM+qNB(r1N>d`o2Qj_S&{WBi_Hdp|Z)=wq|DAs_Ob42a=@54GM}lz49%R7kIL5 -z+mR$mw&o@QHA9YZ|J&gG!0vVT8U_lOX%8nNHoxpGxR-(?Ns4SIs=8--aN+Ui|HaJG -zHFQ>;f|;51_`PKs=%RGnwrT4bbDeXpo<7@;u~m0cOKK^pmQsF)et~MXZQHg#>%RBy -zJ=$y0x^3H-B+YZbFO0Hn(#pb*KXZ{LFCAV|8T0!Xw{Lcoj&v(5!G5rVE!?MlV7O(&m0MG*GuKdfzuRtf- -zLj}}819Z*G-SU01MhcV!IOp>;!WP2rC_XDd4kX}`q+MW(q%)FQAngds(%0cZ?ChQH -zv>)|xvcRtbJ{Fz@?~KL74yMzwYaQNTnFX3?4^^~>8feVoK7E%P1kKr(QGftc9`}xE -zpJ!O`&|i|X(UTadBVDJn1Dnqu!8bPNCvZyAa79lbffAq_vejk7{5!p9`XI}JER<1C -zrP$&1WifrmUq!f0p|R_qAGAnOocSqus8D_Pj|lQ%`w%QDl!>lp=?nf -zi7v+SW**xwS4fvg?iT*hx0_%bZB5^N5-h$h>1=l5}FdS}e{nKovttQWCB4L}AZ6i{@+ -z%#Y`$cMpv3pZe6+gmzY035N{do$=t-8UJ_5f6x*<1S=H=5P$$+0(Y(LxGXRB7gxFU -zw@m#)!gXyPPe+%j7Ub8ZT87@LYI17z-}~Pm|M410cA1))uV8^1+z^2}Ih5cE$iV#J -z>)Xd@^8on9H0;|s{jeu!U-I{5fSZU -zV2!zzdY}c;cCaiH!EkVZPafkE0s#PlFkL`sFaY34*M1H?mmRZNViD-nQ6UmNCjYN8 -z1zT2n1~8!S_tY(1V~UTE{|P?`pc)APDn+=(`USk{0VV7fs<;hAlBTU-2MTN@V&_e) -zdw`1of&nsvok|L6X=BxsrQ>*pv=*WU>;T`b9>2m&zSb6OC@O5|;RHp`fd4`UfQktK -zGXVgCXb(=^M})X28o>aZZ{?w|>@8yM7?my&0x(ApjtFBPv5I&VlhG;nn?n4aBhyLO0lPiJus^KO#5^-GX2W03(hxX5-M8MMqErs$IzMGR#s -zXcSUc?)q=0E>3~NM|V*#*lmk?#DZg1=*sQvCw}8lUn#riBjV#wFn|J}a;V$^@tka8 -zR6tf***y_^n~%fbpw2hYKLi~H42XfLK9nIaOdVA*_P}j_8&948E75-vjUPR?SVAMg -zZ!){(|1sJsZ{A-FlH00Mwe_Z|WT#J2j1LsVicp>>TV0grA$2}K2W05R$F9UM^y(trAR+U8)N -zMrfdg25NBObN~%{5qj7Y2GS^GQ^g&d3#&I}LvY+w7kFDhE+_#Q1VCh?Obxo$dZt_u -zo%=MaNu9@=Z;Z*Xb3?;6d?%=eM$?y~P1)o|s28bVcnpHz2ITvIBN*X8;^{|@nu@6; -z>EOeFIuOjipbN-3R|o_E1d!Sw2Brnu7?7blRdm{b=t<0D&JT``48L9gWNLSYnnaWP -zqkU46e0(Hy%QQj_Lj?`25xwX)C;$%vfv5LeRRyz!h?9XG>xYbsKcFqaHsb}7ikFmA -z$2FT6qO&Y5X<1_Nc;{zOAz{5fWx>(W>gA3T+MtegE|Xcgt?0LC7OA0vp@sn<2Y^w$ -z5BdQ-&ao#AOp|D<*>a(Ti_Jg@=lSa*ZHWAv>iJ8dcFw?v-o8 -zWS?q*5^|^@2I8^k2Yn$x03HM!jf9Rc7B6M>h_|pDs*Po1_&v)#m#LJLwweo}EAtM$ -z&J-Os#rnfett-npOan)`x`QlKbi_GA73{0DT3Ml5NWYL)XrTj;9o`51MuLRmV1WWh -zIM5B!GAn-j@JZ*D18>srdf4w@VG6yEGhyM -z8n^@q+RNQfQW161o9k+xr?PRF+EQ3b1;9WHQve_^MHR>`_*3|sAy-kU>5`=LS6)w+ -z047>!7vSGrykQ6-i2#8Ni3mCQJClbzMxH?jXEEvJb~JQk=q0wG=%=3}qMn=6X*126 -ztniEm>Vftz8Wf;|D%f1G04aFDA0mGrB1yf@TXJ7|9AL@6Xas`6Kw-g6G0CsdXh3jIb=p8csqvrCg=NMh0H9K) -zls!y@U+mXfJbZOuwIL9643Lu^B0+WJ(&~(86mhujo!+6i$Vmpeg)Ee#%0p2hY7l$M -zdBIO=UCkKzi`NtAMWRXgjhDQXA%I+1WeA=V0gwvYp!<#9CEzMLlIR$)o}4&9LO0~v -zAOv(?yXPy}^(&E&X2Lpz1vV&i0IU|Ll1IWZ5{1(u8qq@9dB(+3Bx(X)_0)0By)Bkr -zMggS-0vW=Tw^K!HKDfMPs12Dxw6oFG0bEm>XoA>RIRC$*y~*M`2AkjpfJ!rA047UH -zVwpr#R@%N>7Q4@IfxDHSqq6Od@AlU&?$fp(_ -zh)hWM*U;+4_som`^gK^4M&bZDV1Z*8pa8+-;*kkpV>{;ZrZktaxm)#spCw!Ytc;9B -zf3-C_lBNKLtSSn@b0i{=QDMThjH9=C&_;XF_MwZmyD;csvIwus{(QC~}%< -z!Ng>fTNS-CuC{g>4N(IOm0jP+L*~0e!V?3EyDfAxHk|ck;GvX{0F3fAb}^?fa)DfU}PvK -z^{#oiDif~|t3)Mip)30Pn{@P`!-fM3E}8|4E_48x2+B;6Q|q=xhe2X=$L2SJ5Gb&C -zJz5Dxs;8rOoxK2sn04xX{V?;vl&bqXT0a3`h+r8cDY;hB=?I66`o?<6biXw2$Fk35 -zG`mRM6^&2_TD9d>K`JyPRLxx$HMOAs0_rwaa04QUhUG&9w2&&nT_A#3)oSHf>s0b5 -zR(}eyARC9}AOTaoK0pO9kN}2?lXh{`cEwG7l4T{r>VVg)T7eeyAbXE45i`&OQNe>3 -zs)eypAQW~AS2~8{5LduL18@r8O;mk2zt9Iw)J -zM0u08ypei6>;+P_D3w?XTGRq~RUs%SQbmX&S9pD8TwNn!VSfc?;KN9$+&CFL<(~&v$5ysJk81ssD`~=H6%aD1=&d;4kCgq$*AhZ!J -zvM9xZF4oK}m|HT_HApNXHW%eU%bu*cGj=hv?asz_K7BPj|Jv=}hIt7yyb<6U;;}$S -zIrPKiy#SJ!zgbQGPduSw;(Z2dl7K0l2_AV}iHk-r*vW-NM9wqO#YY^*P%qSo(_3iI -zr4>q+%tUPjI*`nmsgN;qNMSCd4XOdN2pohssQ=>o|M@SEe=oHD`L^e}F`6G9+p`h< -z`o$m!ln+kU-G-%MS&Eg-bz}2-=-3lD1&836NL0##-8^k*FY5%7H<7PX95job%yTnF -zxvb{CYF_MRW8AgWXxk_=$rN*iR}?B$QRP)2P7)ZjT=U8fk$IIZ@qv@4$}e~BcHs1@ -z==;L&;36OehvktL(>xsoHvuRtl>vY>iN*#1YDWukV&brf*vx`sbPP@fQjmpGn@Kq& -zUs8Np^+6%EQMlxdye$tYq)blOs!&l-RRe)wA`ogtZ{h9~b~eB+J9}c6@d&@(zH@lK -zN&0AD;2LJNp$7w9-5A@jbXb;vMV1Ai2CjiqiEc}DEYS&or3ZDPR~CD`db0&_L>wFN -z7_dUs8pN;;2}Ga@1%g5$c%T3v2-IuiH5LF6K7$)_qoZy+ez$ULEdFrwh1CV-%QZ^a -zVXz8ui=bg?SoQ<)aJSr>h=qYV=(93LyUnjB^nXUT)1_NFJjgN&)G}Hq$SHkH9Pv)Q -zNiB;MwV)AEw<)I091+_ST~i1F8OxC)~fmY)ZYDixAQ*qYMn9< -zwxf%^Ma)tIo8iSppClA< -zG%-}(^J<=@VRy6G$OIB8oLdxe&GoC$2YN -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 -zIM_yJ-7 -zg1LxG{JU!2h_0Rw-LEM*gKS@rzDL8DSp`fck^$u=+AcST@iiVuSO6|pYqk$qEP`JC -zn;9U>u62e`(v6ukEZXe`{{*eaHfV!0?B`Cs5LM6z>68aDq7C7wwmg%jzH|b~owU$m -zhnYRZ?A~Ji9^rJ#1>6*3fVn=NQ4$FxBkdE{GFufHYZ{1<0DQ}VA{BEw5ff1uu0Mz- -z0VGN`V@}J+gjLb6U;_*Q(%2g_q)zRLE3*)teD1&;Y!LrrIF-~>=?vO&AqqI{@5F|S -zyO_Kt`MeI6NY;S?a=i%!FaZ#>ViQPD5(p@`tg*t4))9jq%!vRXaF^bYvx?g)eNXj& -z_E)0)9<&EW03RHpbx!u+st5Vh702w*Oj;uPmb3?i=2^B%g2pWF0f -zY;5c&@aK?JjjeG&oIavNfP{C_xd*7w?9$w5GIi0QAI2c&at|zIkfcAs{A*5M(wnbk -zbavY7jYjWWvCLUPQ-)g){cDyV~VD7+@VdJlJTm)0Mb1(gs0vhBpcI%9aX| -ziTwu?D&&MZV4WDJw4+JJS<}5eWYY*lEC%3oGC2^?L@ZhDmz%%1{F%vqx{{_zNeA=f -z6&)AFlP)h5j5C(-`}XXz;Qu_dBZipnL%`%VCpqa=nU%E{?NUL|ufv4pQ8J0G0RuGlgi4SdUi -zG-~7Q&7RkG)#GU$7k!vopi6 -zT|Lo3pu-Xa_7fi11^#Yq&i3-BD+U{S?#`2T0Y~#e>!7vPce(}>Yr{CVl(`Q5N^b_ph=^ZW^ZMx#g -zyguB@D5t_w1GsuJtI~#;Gb`pt4R+9AU||Oh@km5@338YATnPyYijWtJ@IuzM;&I{p -zUp)rCn=Gl2RXaF^5C=Ci5Y_X`c -z3oT$tzZ|me0J&zgSc4_Dt+)`dMJ@~}w>R715I2AjplEQw;6RJQhNbS5-H3bed|XFCh!Yc)@S;?2cT9#t-q<(B_#rRk -z4oXw7OQi)x5$zx4>|VI9TCQ0UV1UIr -z^M)+KnhFfr%SJ_-JoJu_4JvEu2RqYVYwl3=ZB_Qd@^Bg|?XL^IfWQI+b0Szmu|dl+ -zQ7+$UfOuMWbtfFD3WK1BGw7TP*PK4nZYW%UK2W4+Z*T);uvt&++ye#HQRDotwSFis -zoT@L(QuGiUyW{a$%FU2~m>(nWu86%Bp037nfmg<3fP&GA# -zom*jSFw|6sob_u>FE7mM3$s)ch2pB-lCXv-xm;+MA~J;l22LlLMfHpH7YmskCtACs -zzY4uE(FUn*{aIyIWu5v`0wma1^mU^Dy?^z^tN!)ZwLIL>^u5#4-7O){g8(38wEe;3 -zaR35ky+zFEqM9r66VdNXPqU4R-zaYd{TcNC$OVRhT;I&zhFTZ|fSpjt0XL~mH|V+n -zvz*X6sKeg4a22jZ92}AbhXx#4z?=`a2g2h-$eeIG(mL^9z4LF{`#x1`j??nz2LFS_ -zsg65HpwV|teJ5%H9X`k>YC!~SYqWNpN*8C^)#Kz%tE)meVr=A~?n2+9=pKv!FkuiF -z^kRnm9hncS=m*WN-?GXNe6?-$!E5Uu2L27~zzHCu7bNVhRErxw%z&P`?AnA$`xvk^ -zb-{qujW>F{+~rWzfe)mG$v!e=>6Sg|BU?M -z4ToT8v^j=FweANZmSM<)azdY=3cA8dtF1}4&njkpSe)}(G4y;Mc{xu{p~q2VPSPSE -za<1@T4`3KXPaSElV&?o1oLQO_oyrar`fi)+!}Qr3@JnDZ^KtnIlddG@K@Gvnl3h=^%%EfXqh@?)TNvwn0 -z;J?&4Crt7%&v#BZNWl-AIV2x8O782zB0z^0k5RDW1U>Rh@38jMe -zU|pDjYlZtw{B=Wi&0bt_;6o3*ue4%hVW7-mR@F4JNVR1>#V#_7pi}fJ?JZN|im)VY -ztRs16%u=nz2A@*U8`lW%WwKnjLAXxahmL&TT!kSJt~@lVNn@z{s(z* -z32)p&z|qjZ_Wv#ru}($m$VMOJjbk-d_&Jj`Fl3~`jEwYHi!pX{!U>L3lZqX!Nk7}_ -zaLC~D!Q8pixbwmhXy}XVD*=yX26RIjtut*L2GQ7p`69q`aP{EP&er%3Ug&5EFYv{P -z(~V4|j%+x3XWm#Q^F_lI7+gGf6w&#!as9&K*cTprF{avKV9<_iRCs6JICKq`8dhxB -z<3ittAiI239X2{{qT{gfaOYxB5RC>0d10Xv^{v4;IN-2R-mHz=iT=V16+5K)Y#BNpX1_oBN}utVHzwLH+Zu)?l*3u!50pDp-ubk -zD07+dP!a}xVvrgvSPEr>HyssQW5jr)xg9Py$TI(BTR -zXy_Sn-xAXn3i1RD`a~gBD1#BhV1gk*5Eb2Z8ITZ_=xB`O2jfO$L6^*Gj=9b -zPb3o(DuH|vF(=OPzY47~r=$vef5e^0W%gQ3R#jw;5~Ao@Y|Q^v75(a`03@rH`D>8} -m7AJG1MV=Xwp9zp9Yp#;DP{b+#OI`%{DN#H5PP|L^#c2UqNLK9t - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_onboarding.webp b/app/src/main/res/mipmap-xxxhdpi/ic_onboarding.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..ea1d983c1086b7b9e7deaf2d44f150b8f49737bd -GIT binary patch -literal 12458 -zcmV;bFjdb|Nk&GZFaQ8oMM6+kP&iDMFaQ8AzrZgL35Sua*3CS?7>!Q-7c7m)r-6w6 -zPk{c=>8;q9S8Uk9rQs@*9-<_LnItm_sFLlHbnzCHnZanN9L!*}qM&RrtfMH{)Kb8N -z6`h9+cc82R;t@0Q^|SUy#+dqh9Wq+tD(#UH27m -zi85dDI|#nASmmBZ|c?u -zfB|urY?Vuo9uw#g<(~(4j+j__EcgZoOU^)>8JO_PVNmNbW5I%F{!s1@5qk8Pu>b(> -zlaw7W;QnvMhDQL -zZ;{iBoEQ&@g!x30F>@y?Uq}XCW@jE|$GGdvz>L0{RWCVO=!#{QOLXzk*PdnDRwUWB -zt1R41fD-hExM9! -zZQHK)WbX6+`$@uk?;#|k4~n1w+9uQ>lKJ$V?b)_%)3&y4%dPi5Fz4J;%WGY>8Di`@ -z{}Z@FHnuS_Msoy7QWVi3BbO~V%C3J;+O{W>blcYZNiuRU=Kzn0#D6d|Gmp`a(VNkR -zQH9#5j}kL8By$F2q@&49`o1e21`jXG4_?+g)y}-q=X#bvnAPAmj2&i -z+eVH=UHH&{yZ>i7vTdujGWI#w9`5e$8j*TT|GV)0!`1ihVc@orqAqh5@7_SkjU-8u -zM2-6YduOdwbc9FUyw2tnZEH{4O6QkkTQVf=Ff;SKz`Q&&GhK$>2{kpvw)9imw(X1q -zUH9`QnVD+pwQcWy^(X#U+qP}9+IE`cO`i9mElH9hNz%xwYMNzcy#N1@dt_$58=mH_ -zj&LAJYTU3ww`^=Dpz{NW{(p`!`}BC7H$KbR`Gq-W&)0JALz)u>POp$CJpl=g3daLw -zHtI%r_NfIVGzuyT>JZQ$d-roTYNJORlqZ}Y$llIyn%Eqf1G6UzIt+87JqXpCX~2X5 -z>jSf3PL#$1eWODi=Jd`JP>^#IFyf3o+F@BR3@R2F(4k(Pig*w<%CkF^iNuHr6}zL# -za1PZN(W70RGNg%wb7LasgsW4Y-2*W(qQ@CKl%uE)1L&_#Lq)(tkmqo}Ix(N!3q}l> -zFg9WyLlkAs#=My~S1LDz1muA{yHT!Apu>PbkL5vXoFE(JjWshV7?K4R2teW-@&?C{ -zBeIVp+Y=2vDiS@)F?q3_BjM`Ia2S9jET23_zzS@EbXJ&I73hF%Di_jlq|kx_5OClx -za^TMxekEm3%IH6OYpzZ~L!I-GmNdt4Vm_)!fDqmY-x78SxGL-l&;ft~{HNLz?W$M;AT -zHX*zMIvPJ0{u>F;YdgAQdKVbfL=eT9$u$Sy|5voHqTLj&-F#LPBR;Tx&nT|q@usFf -z(PvA`NFZa$SK08((&*jNtgqRN*e!;0VEi9^J4SDIlkny5^^+Eu-8Vep6eZrUDg{%?e~=tH!>y~F(YR(gAbMy@p# -zykxup0@C<`;**Mx>EmtsG8RV$Q^N2+Ss}bSG1L)yA`dGGAb|pm7>Bs)$Jtv}`=1$I -zc_UqX#_%@9L@Hu~ncc5Eo}76Q-0o{15cWZWE1M#tq-A$D9KjHMGK~C|&k~LH|3Y`vd15Q(q?U -z$paZ^W<-UDE}oct-2Mrt&m)19Jl40D*N% -zh1GFpU`bMXm#E?|Q5S(A;myKv13gjCi!X&g@)3paD&!sH6N)#;dNPqg4w^v$TEoqz -z+^dy7TFb5j7mTfJ2A#5q?pN>exc`ZC-!hzSY=a3n07wAGdRAwlH#f5|W3@Tel+)JK -z?AMW);Yb`|Bj-^9(YK0yEGImb3yTLbeS*tpxO{>Pw9WB3cx%Ln^Hp4~Qe-YnwOgX+ -ztm~{BfJOp=`zQJG8+Q2v;sffHf&f-Nu$jWl+{|3Bo|!pU;xAph-EKk(4#5n^0dYu& -zc2w0)n(^bg>z_-(TTAkY+0QwwGzJX_bYcMnz(OF>S!~@*b+u&rE(*J9kT%Eyij+k( -z{=qfV;)AS=i6&IDHnklC4ISd$zRWNB>-+)Vj>}#jV4qdsgg{_){2%g`ljym!j58}Z -z!x#=01iCN@AcQDTT@b@-i)>mAoRd%`GI!q@DV3`4B{;u=vGcs=pIl-257(eUFaX^}hY)~Iddd?~CuT)AFFOkWcAZIq -z0WCYtX#4dn#>9{?q~bLUka&kr%lmv&7UweAqrnM*KtoXDx>;si1O}Xw+{Dm<2vj3c -z&h#%4b+R;PK$$dl%>s&)F%HvB&(vK<uN>P1;(i3JLr5vTx;b`(;9 -z0Z;+xzz`CxV#qprC-O-wns&}QVQbewN+`D0xI9psV;(6G0VyO(ypr9B5EBJX2_%3n -zLP2mKpnyb=^F+s>s)?v31{cXjiRKJ!6)=+4ZlFLdVb9R^2`?jvVB-)7xPt_hAQLm4 -zb7h8EQKhJ12P7b%4q!NTB9Op|NjrKc%9(l7PSIIw3(TE3K>&@Eg46PyqTRI2-!+$)}H2M?$x3h=&~ -zLrBSMl0sjji>TzT_|-o;db3VfpIUXfS;iB@un -zA=-#{aoALoUJW&O3DAITgV7MtW)uSk1kA{;EkFwaS-UwmMJ_yu5!rA`i0m4BE-wGu -zrF2mBFHf(h6?75G`MRtni_JutMJesO&an#kzdk^q!_>7w(}RqF2_fv6fMaHr7M`at -zfz|Fa@~jVrfF01t;aYrAJGe=IrV_0Z&@~KXS++*0D&c8ziTREE+xeL1G9x*38^fPm&g|XJ|{~!D}VybRA*dsA?~XN -zm+6mGqPh&Jv)q<-NdPh?5+(e+$%ma9YFhj4NhBVia3OG7Yv2Uq7FKiy1sVZ3fIM(*$bePfaO+F>T}}3gyA&q| -zo4ZtfX$ajBV+e*HUiKIz6)@6$yG_)e>EJlm<)8K`ZYGfHkbx -z0=3X>riHCA*Lrqw_Jg~de4Mnq6cI_k=)QqI5ltBn-~j797IddbyiyG#Qhg}iwfW&v`+HRqHQ8Te*Ck5e -z4Hy6+fU9Y(XvJwrVK2+KmRxf=mof$loEoGRaw?r=5me9Kx4!&@+c5?VHqcN(foTBC -zTqz2~1>>5DFMU{F?5EFsn3OvNQL(?eRs*tNylS(`HG(8MmF6@>TPi2^Wuot>+yX7& -zP1Rw7&2vHtK9vaXM0&;?^0eAe)xdE2QNXz9?wuaxw`v8|T?_?@RI32R#jwv~ -zhyr#_VYUMX_Og1zF-)7ZS7f&d8!;=#5|nZ*UOkoTknAMqVp%j(Up6?VnpfeHg7G5j -z_jUa)R0?J2N!$blifiyZM5e5f>YA(J4!{)cbS}G{Chrv?872_%uuE^&1Os6r*+7ww -zOy$%p_`eE=k}NK)-YM~iKoNJyu4)CeRwGyAh^Jx`;09;_JAlAs-06{TH*WIbCJ-?T -zSlGfEh6P<6O(f2QyEts>JzoR-r`oNsp<+WGy|?@$l;;H{LK-(vDZn5Gh$9LJ+o)dw -zHH8TKgKC93U518Tj_T1vr^%+kZhC8O;VGuLAT)s{|bckT5CXc0#?(Xw&#M -zKu@(D)X-&eb=Bo3#45(2`1cDE(1DD{7%`;U@N1#vZU9h#9(24HtP{zLvoMMGAqE&J -zmZXOl)-azD9q-8en;chjKpoWzjL=(JwpZ`a@l!ie5cP3W6E~zhMZSW#6(7M`KNW{@bN*jJ5h;<>uKHR&XZe*y#`NGZTL -z!g`?EXNd0Vonlot1ZF34I6y=gqkaw)3IMx-NyYuLegDI(zq*P^wDR670|~%GY=Q(} -zh;&p}O^jjmR~)@;=%kDQ0jQ)*3>HH~E@BXjO=1wRsxg2Dr~!;vF>Ft2CqM<*6~vId -z_13um_%j}^V1+B~*Aodu)+TI13!y&hCif4w^?XeRndq4pI1?UWQBWOv&VDylP -z#Fp|{KOL|bhy%mUMA!!^AOJgpGg;fd`;K)rj$)B8kzj -zYjZ5+11TdQfJ*VPp>9BtX>eh5k3(WhIRL%lK#E*yRdp$40TjT_VA2+D7T%uh>?b6_ -z2qGQ}t%ebjAc0vXS7UBpj6+j-WWC_w=Ti2i6rcviG1{RhlT{N2@q$%A0J>M3BcV^x -zp>_of0Xu}~liQLvfv{)L~+}lJYJvk}@EgH89u{ -zr7|uIE<@-teGDXCJPbf+;cFK_MFC)U5G7g7)X}(F|7K|#VMMWl1xARut1SiwCSbs& -z%&}-h<WfuhL(4X`=`<3X -zG#gU=#~ZoQ7VfO^ohoOP}^|u|y0*5p{hL5^ikFciR}6)-rr3 -z%l@iqm5Ws_BbhL(V-fJ+i4dg{2B1_dAdZQ%c1C?k-%zH%QFx{hfL%f$q>O;QCSM*- -z7##g?G;ikUuo8kAzN`iV2;cxgb3K#y8vC~zx)|>l^iM^*eKFcHQV6$F22Y>@uzsV9_0^kHZCzPzF=S5WB#)NOQ@iSU{iRcZ;9V1c(QkEKf9o8Kx -z(X-{F>H?@{vwv0d7;4LV5pSjDJCX>4hNzOfkg`%kIL}#?Gl9zUEDb>>PF0$aAuAKI -z32o9L#uP*iq7~{jK&ofpk-{rH5 pI~R8X-+JB(Rwcy6cX!21sF;w$W-YeZo1S* -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 -zxSEH9;N1sin2V`RyxE&X -zR>WK>vCNVbu!I`0S+(7wk);lBZu*-qI(N5{a{>p>E@xXf%s=A%Eze8l4IXr{pu29+ -z=-n=>g(-+pJ5CW{2Kuc$6ptTi@#w58ZC3SrHoDG89TwS-2y>;imv%hzfWP{Ozxk`B -z=Xs9IzzpltieZ^0)C7Qy8T?zVBqfOK(ee_HeA$^lC=DFrI`FQ7jhKJM`O|v;C+`eb -z81lG8wdcyfB==(Ii0*#D6xaxeWI^;5iO-CXbYP*BEtxq1Fa+kD(bTqw?(t`T^upuL -zoVRc@wMD`zoGz?jN!E!#u;~Z@V2q;YLoWTmnI9-!=LKRS8dwLpU&`~Eu4W0)b*i;P -z@p)b)07~PfQE_VD&;c7EDR_@<{#)98u|*-6GcyQN5C{wc48a*pZG#SrUbx_e3sHjT -zv4v6_N`nZ&dJ_U$HC&Q(e2(=`mp;#W0Gl8!YzN8lUc6)1kh;tj=S~m#VF1D65YclF -zkE!u=JEbR9>eJ`${pyZe`{$lBHJU+~L)b)MRV87qk}It(U9oUQMZ8|mxs0rWqyPgT -z0EDeYiOYOC#S=UR1(oDO=g~qg>A-C?rgT4Ok-I{MhwV$rS%sOre6EZ -zD>=}^J>WUA)?}Yxci6!ac4Oo$xm7|<3yfNfAdbXB3IKZ4TNd2|^NoU}Ta$M#-g|S) -zpZdqnn;1=D!)&?LZ@v^%GN)AuO1mETmWBJ0w3<$2=0s?Fk&FbyZ1ncQM7bL90kBGV -z7CZs#Dr^(%s9`77RBOT(!?+HDSRCqT0Fc2Eh6}ol2uthk?S6cG$KRaUG3VwG!Y0;I -zfQ5QV3dV{mNkyz{aqbUs;Rg!$Q5uOuB1cl&i!6g=Bmkj+Qt4bnE<#=t=o;pJ2N3Tz#_;$=nr{3fy)_UJ%$goCQR9 -z^5g?=^}WnV$`)(K)E_PVT$P#-B -zdMor_B=?9sXVh!1j+cRbkfZ+Y1?YcR$4~JIkGW|t3(D9UrWhQ$HwVftMPsmGpa+Mj -zFDPIeAXY}ME`3<6i8p`>5ZK6iAea6Vk;782rmZMuEe(ksD@veOi?ScK)3DA$dN@1_ -zH}`1vUT^Jn?36?>X017>fMas347=(0#sdlw_8EWYpwrp!*Z;P?`2S3f -zDfjNTh5mytc-*lWrNo~N!)I_X45=H2FA(17FgB+uB`(1Z*an#G<7vv_mIt@MF+u<# -zP>iwCpJ|;i{9M4tv54m&G`O(kkqLCY+pB_i| -z2|*A6N(eYgjK$H&uad8p2~x6HJh0|0n@pMl|B|+;^z|6!2JH9Aj)eAhHJ>|wY(GWo -zJAl-HNBtsK^qVw25~lZB&DF)V^4IkeE>FT) -zrkWBnsd()KrZ_KiKQ%zZmWM@)pn#xY)@?FI${Tgx#y+`{o^Ld6MFhLmeCGUgp*W#- -zWC|ddIV7N~EMJE12_4=p_M%GjaJ0TDR8xQ4C~+47k5yUwR@{UzCr$W2V_I?{1;P*g -ztoKMsL(7&It(4ti3>1)usptvMY2K2LAK~6kD<><%YCd+py^*eZ}Qt -zv~S}skn;y<&Y+qSl1Dw<^y-$AFi6;jWk#RG_2g0$UOBJM3iPz0<%O-*7|rd@ufQeB -zF2Y&4!}5Bol`BLvZ<&v-*uN=zvQ3aDF$_qcr;J~+f0o0WB6I39S)W0*La6X^J7Bdg -zcL51B7^^Z?!Bu2Njy3iJriS8Sv89wB5HUu`rC~@sg}#ji8@ -zzLu9D$r>CIXv_2yyO-I#iuU5yq&cIk=cTMeFoN({n+z}{P%$a(3e&W4rY6X-PSCs# -zL=A<8E)PpX*Ddh7l!56!aSU%UXSj^RdBPt?t50lK5AMlhF)k>Zn#7aB -zWUI{=k-(g>Gk(7^eM51qVHf1#r3VNnok&*Hw9I?uv=^akDJ+B}K^oS{rXT}tgdPZZ^(BQo0z#vRRzRvnW&Mv?;jQeu$eg1wyPYbdo -zinWq2m3+#4%5=Hfh)oPo1i_{TYmW9Mt -zO-PmqGcA{O%p4Mj8SRugA(AkQ_ExSfSVIG1?wAy`hC~&9P$#=}Zz{4w26SX{-7_^Z -zM76>RPKJmjVM%;%JQy+`wG;!j95og`t4%x*QsEj*V89e?!GaY|IAcmIMidDYoJG%@ -z;!?Wi4Fd%bM4>@~Bn@>hbD5{?{D`JD#pcSKE60(ZxuiqT?tH&L1_yB6G=}Mm84O2ae#P$yd6)boHljOcjJ>5a6dF^~|t% -z@OT6il0hK>778$lv>-WPmiJUd=#s>p-~_VtW7tR2a?GL&a1k^DCj=<4x!@mjckTFJ -zjh%z4m% -zV7uwYM=%ub$5r=IHA5e+!n&ajnxKIdX1VXHss<>OMa!~j4Qkig?n<*>0Ro57IdB*e -zhr(f+tdljmv+n#opugY_W3!eilogd|KtY2PP-s}Rw({P^huzwu@AP&1 -z9%SxNDl)raf(VsxZWIC(0V||0rY%LLE>uqGP~7i}7BnD8pjyWuL_yhwG-g)2QIh&E -zgkj(?vN)~lwrD4knk1M`zv&u8pp1*s9?&0zcpS_EcZv#t@T?`j{$F)n(NIR2ozsrZ -ztBT~DTzA3!!h@)uv=0CUrw51&4yIw{)E#X8k&E9dSO2EvC>3>E%+E_rba!2nc9(W` -zhvi^}@Yw!LRIY~1-NH4oQ>M37lbuC$_yuSp8o>?a%GJr*y}w5He@(|f^x1P#H4VmM -z5o2G(P2EXv&!qBtaz#mt-W$umC38(_W9v@(??V5BD=-2N0HDCWqRYf`nz6rfJUqDb -zr@U~6zH%;)%tKxw0?b->*SYOey`w4%DN0{57eudlxTEN8?Q`HVQGb9x!OdOiApn71 -zvd*z5JEc#vj+V0__#Cnx+ao>n(3wGN?tI`Kd8)#^F9I24(jfhi?)vEWv3ySF3(9q! -z`|Xdh^T&{Xg}e@#;ZYz+Nc#A{Yr@^QazcDk9U7By8P{Wbq;t@Dc%Fg9OV=$%6S4?E -zA;K_ne~{nD^l=>h5M%$dr90`zuPJ?TdH#U^;E03=0%Tt>X)N=e7}EOGY}`MSvGI`$u(+1t-ouPl -za-;e+=u_}j(9b~^K?fu}97J>|tP1N(($1_j(zK;_q0YUC9CH|lFyt@~qz>)Kg%c7O -zA+r8nDX2$lTI&>r};@F!B(5?z8bqN^sY^=advy-gb3ZoPx$3>A;CjCkC5q)2t&cRGpb=taX(tY1&mZGGeVguZ^4~VF|7- -zxMFmOAz3CxkHMRw$G~q0l%%3h*0@Y|*mSVHF`Bj*n}yYS9CEM!5Uf>+eICKXSya7N#cTBz`y5FpZ -zG2ft@K%&1;@frz;Bltn1%*WKWvA&Tw!eKQZ?I9_|g$q0Z#1Zt6fNV?{wkrN`fGOEx -zz`v1wNSi`7W=uFeyKhn8(O{w_@80-3j!4YM)JNo;crjOdgMh~Z%pH7;*Z4bTOve~R -zqckdBEL@`n{|b(eBmm~5TlnbW8Za~#=nwf8(WWK}>P-H3;e!j0R{j?}#E}@!USR5J^MDwDNf2UpPE--c+L;_eq(afDr@gm4ZkHjA+~Q -z#EdiE1PA0ZGbS7nDBXuPqD`US^n>_pU_X;MbNT0IrzpHvj+t - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_onboarding_peace.webp b/app/src/main/res/mipmap-xxxhdpi/ic_onboarding_peace.webp -new file mode 100644 -index 0000000000000000000000000000000000000000..852168a700a6a2d3fc17848d18715b550537b778 -GIT binary patch -literal 27026 -zcmZUaXEa>j*T?US8HQ0t?~Gof_m&|#(V`~GAX@Z9@Ka*+5gsVW0AQx3Vqj_@qx<+s__Os#xNZ2&&zIP&!0lWKG~v9R&-^HX`7OjH(DXQh3?#x}2+ -znsWjdk<6H$U1x=|orZu9GzhSayDua2sr3OY>F2Ug=CNfw4m|$lmW7G}mDe-^d0_nH -z3Gln#7rddQ99|cJdZCYJkP>!hbr-ltfuHF_@Vt5SVba(zxTwG-xO^70oSg~68h17~ -z{`DXLOfDbOdPQb&|M)GccDW~m+HRkZ$>`!YF)#MBxI_=pttKTS@;>Unsbd5w+&_r3 -z(X*Xxbf@Dwy4Cj^3{p|m1@dZ>{Pg?>l=50uvdAu4->AM>jDp~$CpRLj#G~So-Wyr}?4$g;?`Mtm@k11zQ~dScjPToA%VPZ0 -z$))w2bFT5;*+{G?zW$5O(aYQ0NN=-9a)->18f2N2A9^)YskDyv7M-ST#@YgR3hd__ -zpFP<=R=_QC6_G!>6(euy2t510S=ZkjW{E+#MJqcaJE8~7nl4k{a(A6PEov&KYNrNd -zqL6abhA7XmwQp}Yhw9vQQX|^OE*ngPb8lsQh~)^~pY6`v=6nU5sv8=oTeGL#+&$+t -z1D41Dz9Au#=VqJc-{6_ewh7U*Yv*g1ZnCgkw+gjljXx)KMpw#4#k6Fp -zxp|}}a%eqI+fzItyLIQN!Mx3wzuV3_POZ9ooQCIRe{XMXPXAtKXL<0ya-TQlnrp0F -z2w?4r%KGmh=QX_~&D-AgY5gi2RPgr52$P#anY4M0yNSDbH*Z03Q#Y4ZSI2zg@5ahX -z_sS$$<*;H-r$0Hz)i0=JZ{!?)_O%S>ywDSnt9YvOSu+fq)4@az{CWXRuQ+@`Er! -zN5gKz-mUS!KMpS{Wj8TPpY{eDO`dGGR4Mc^D-GReiUSrFSM~_ujo+Ie=F`&S+4ieY -zXj)vA&)r2=DyK_c;7>{;L&+$#p5y4hGq)G7Kk;WWCp>&;vegmTZ$NEW1l~>;o^Pbq -zs&g+tV`F#R@TkqqV!M?!&ldo--(*hUP->3n9CMA&<{RDr6KXhB>W}!^-qeq{6-m}z -zRrVH7QVMXD3~Xy~cYo(TztQ+7)gi9uVfOPtF>&$W_T^hK@mykpw|qI7oWEHEvnLR}bEy+;YEzCFBR{r`_)(4a;l0HEYSw?_bIi=6H+0W~9wzd`~bh&jKZDF#9e -zQ_w)G6-47p7%SAQM8IzbNal|R;xMsek5!cI)R!(1i}Id$q}S3>BxDO-Eyue@|IXhH -zj9rkKO_lD4qtLKSb`e!1U|>+wzr(M3-t|!6y?Q^1gp6u#oyzu!M7%W(Zy^M1FlGGK -z2Ocapf8jq6&A4_S`i%`|zh-YxZvsjy#&f{4zQ3R8z^B-BxX -z@}54I+pjvLFl$Er?ZSPcpd|LL-f`5%(z8;#UXQmDKiY5cV-xkGgb8DnhbJET$nxp& -z|DjK83>kRmPZi*Hj#FY{e&^;j+&X*B;YUr@0ju?TAQ3(YpYXBBk@?7Evh?FC -z!Kvrold)Evv3GsrGR4-b^UYXiWu!Pf;b-GtM2v(t9Lt=bFc;UUnP_S{{eqw+rnXcxV@I_&u;_PQT@8b!VZcQ^2*! -z`73q@N5rPO_!4FdeU -zA73>4%JbU4uoTw_OnSx6BIjdgM`-!DjD*4gU@IPqPjHLiSTEj^x^XzCee(0arT?aX -zEaSN%$K+mlPdrcNTO*?K!-%GwoN=_8{bnk9{hE*PEh5@cqE=8`aK~TD@yAgT%HvEX3W<93cnD%x;iXJltxjK#yebfq#4lTYUW7rUi2-^OS)o7vjvA>?}b-~9_sl2}yttAWZ~`OWUyjq%o@>dMUZ=3* -zXRl(IN{F7?)5#Iimyp_9(k-rk({3pZK}PwKJ2V#(Lx13-(wN>uh=^LpBUz|rdsl;| -z*7)3&W?f85tqYe=ibw!*=Tz_HlugU8Q^qIe_Eg)Uc6dajY%A=L?1_pF(V_k?1U&if -zei8?xlhmF#P$-5i3>!DowD*F!uT+7LtV%y5)%Q%YL@#~iNH|`>WjpD?{%1;dA9~ARKbYgp_A}~ -z*4Q*cUv`!RCD -z`Sdm|mXDpAtrv;k)QMLY9t13RZQiY;$7*Z>y?KNIZdy1MCgra6Feav=DC=Rg|8DjXnM%0i(tgc!3(P8) -zuvcuvfL+5%Sf+x3q1%u^W$B{+qSUnfyZICHxt@+tZbECPUlF+9q+IShfYDi_P((+=l9!qkx}Z2$RS`p -zWr>a_Qt#KCGzj2^bZ&o6E#h(?&7S9hM@GxX>9Kv#w%8RKKD!36|iK_cCk;;2WbFvBZ^vq7x`OmnODVq8nrbLL4o -z)xGpi*z-)k7n1NV61u!AzL8Ra?rknH3MY$ -zpg)KdZ~w^^Z=w>fRouB?R_~>pQq&))wNu`@lXcIMg=M; -ztwByjQ>&9N?j<{$i}Y-vfC?8V2m}S_ATJDAKhHEFXxoUIBY9=xi_Ij}`eE>#;6Zmr -zif2zHOr|N@NFokFp0i4}RTmhC2&g@T(79g@0Mh~@KQP+{qBd|qgfR3E1SB`;CgTxr=!NeIKn@qbv^IV#zt>-lQ5l8a;($^s6lSk7|bfPgK1?!KA -z1xJ1dfdM_u@ZaZ=>R$kWnO(sg#rLi(U;I({qQ~S< -z%RN%hR+;p@Wf&;3Fk~ -z+zyByZ_$%C?zTy`9JwsicT3)PF1y)j-zFqcrCkNxh0~(rx|9mrFj!K7H@sPMmt@Us -z4P)_gb3_!!19@sZTeY~GSEae#hxC;}W$wO{`Q7>fZq97`coq(3CW;2;od{a6VIrO?d-i;R5-9y{WTW6Kt=Zz -z+Hn6j#pCS1Zb#c~=QPkL0*0%;&thM8Gc?l>j8WmaS4`+6HqHm3usgvaO`v0MoTzYp -z{EU&24jT=GGE=xdnunnX1n$#+51*M~DTUMggk+n+>#_t)@<`&zBoy}ZZYu--EOs;o -zOIdX7x&`$5ydJWCS-k)>E17Xdm#c!%gA+8WRO2c4{vZW1r%76cV0jxr~zn!C}Y^4reJh55T{@gVAaEPlImS(!hc>zYE=8E1KI -z!P<)-qwH+%)4Tu^3(3v4{`TS0{d!p)@%zHx(+B9#5lHgP13T+a6~ropv&@Q9yhw|GW8me4X_xA~rs!=nN6jXgdhnh4(>%j>b`VAY0fJsl -zK`+1m+2^mr?2CA*$|+m@D3?zDrHb%fgOe8mL|E$M>h38 -z%!T0hX^aeM#dqHR=$?;#e?KWf8UbNF7KNh@S^H!;YF7GWo;JEo;J^0X-<6KG6jk?a -ztLgevr~PS=I{0vdv*3b=M+-Lp_-<_17;8Js_fLb$eO`sWqwCo8CG|wsEQ*GF(Xxy%dn$~LVL);Z80f`1K$#>y7632=hER{zkAFYX -zf<$E0Qd&&0`=G-OG0Pzu^);c$AeEO80Om3<*c0R7MeUnyRu}hRuDUE8idlBsoMlM$ -z#9PKbU1&WPJOiRLnW)LBIar?*voULNgh623wA*;MqpFA^z^ -z3`xJ(9jl3+2!w$Tgd~`_f7KTYsuPd_82CLZ7zhIff(~p1ntq;_??=zvWOip>_!arc -zLEfgcz%@?rzp);oRtwe&)(V})1Emr+ -ziw_lhNgJ2!7h}V)RawO6G{Zx@7Qc=Og1JNv_CuoE1M%d$z9#g>pdv%VB&SbLKDqy= -z*hnxmExY#6__a9yXcd2q7d0)K%`&pp__J$>C;%vL>+1=1dLKp8c7?oo^~a>4?C+1U -zRhIpB4H{+%mJ;_T+`|bRwa8yMbzoIUuh0N!1_3uK`7#PY2l+m~uYF11Bs@ZBA<@Nd -ze{#>8cEzHZOyB;tBAKV4_jqXh9lFxmjE@~Mvo8b&ct6A65Aj22KDxYTEFrFb_PO#I -z(|p+h@uIxVR{S0EaoeNFj8E(11r*Fd -zFR#qpqHK7bf5+aRj6?Gj>hq}VtP -z;5#=8|Inkab7{3aXfX_>0Geq4OD>-6r!P|GW^UiP@C35r!>64O@!!rn+^6rd&MrKn -zfHp)%OwPV)9_YWDtK6e-V>k*VyoVzYNeDfpXPhZ|N1TXyhhe)y4^p|D-rIX_BHzj4 -zTR@0uE$ywQ4+-*k+!cmJFZ&!kAH4jdO%?Pq-HXx7NZ=U^fsgW+P-O%V%2{M@4q(Rz -z&p+a?*0%+<8lIPXhP|o}1i!^-z|sr?)zKM!y!WxWK|Nuqsk<~ZHOV{;l0OD^qk-Y_!@t>uhmjfgxXejR9Z7#+dZS# -zvcvM$*@^d1$&8^|lXuqx0Kain2L=F0a>e<8dI~kBk@zTjSu`Qk!Ecjq6Dl;EeI`9; -zGb^f4I(iUT4e1nr#&o#sB^uBozX`0_l2xGyL#u5=)p%Dz_Bv``w=XU*XyAlbzzCQE -zN}?*^A3nvO1P`ypF)?v~ZP^m+fTBlCpNd7=HwpC?OAhA#mvEY`LAdRM|n6?3*K|})h*ry -zNF5;_F)(m43FoSC1p(vkoQcyadlphkvh!Vbz4pd*;#&aoFr8$4%CZuT2OhY87Ew=W -zD@{<93Kda}OieKqV*06$Gz3V{m&Y}}@M#{c~Hh1rI{jeD^+{M%(jM>e>-qx|YfqiO4la4F+jS;)oQKLz_s -z$)&&e)jgzJLdYa&Ze@G>UgZ&wEOl6^2>7ZeAclA#wcZU)5pgs8=o3HFoKJ+k`v&oAP8+d -zM9O0v05dK6iVrlL06#IKPfT0sACVu|-=viWSv&uX`dlpG1Qq0B5WwtDb1)rSvsePl -z@(Ebh;NUuv+n*^-B!v7v=}6)i_2t~A1W1h<`I95H2GqLdiPEq?6_ -zAOrMqnJ=606sPs}EzbR{gMH;cJh_XwO;4S*AJ=O$O9F2t4b|UAxx^UsSm#P3eoti; -z@+X7Lp``fnJr(}1X@n7;Em_n=sQR+>2r8xHZ69r#eV%(3e6i~6*%?SPn@}i7pXq?T -z_1$jt-`d+TvcF&M*}W`Ln!DIH4VIb1z@#5qsQ3zez+(k3dkcoK3L6}?=8&zdi<2TQ -ze$TVChJgzC?L5UeTkE%bO -z1GeaC&1&Huqt?O!!38ht3upJ?SbC&+co>yYN~zD*0h6MThllG4jQ3Xtq`NhiDClV0 -zhX}Htmd2Tqxj>V-*DG;Cm)A;$?Ch5A3s6#Ou-IW$I#p-Yi~V+xUKqguocTS7&d>W~ -z2&^fB4i-`4QB2WmWV+ZBp+I^h-6~jjBqhZy@k#nB`kB`)U2fjWcVDjqy -z;vU~=uGG;|%wv)t@pqLohmWlrSFO$y`8o`(LIIe4Ry$~~u+7XDC)t7f5|yv(Z`EQL -zGZ(K{sYceH&_^bztK0`LQ0&RnQ&w1-r$V- -zkd{yFzUzje+|dQZM@u@D_jxJwo}`|V>v?Cm6B+M?;*rP)+AmvX3-NK2{q*~V8cFZM -z$y=DLvQCQrlK}l}*XbRVOx>YvWlZb-Pps>(P~G3?6OQ^az38A;YekvG4FJZSBlk~1 -z<&@>@?%dw!?l7I%h7p!LMWlBeb>2E%(n3qYl^wlrW}Jhog*J>=T0iFN2LQdduZmP9 -zKdsA#xQ1R#jk3A8KmV?F^zR^JaWKXs%F*7*^I)net!SV~D@{v?J_Or)Dq^|4HO=or -zO`0Q$+Yu1Oej~`Sj~qxil-aj5Jyj$AD~78R)Vbq$bRwK!)WR4WC`u*gbrdFwdwXV- -z=sT1|=#Xv^7hYw+CW7?!C6e_QunbbLJf0mSW=f2_1B@PaKPpUG(|LE(6{B-`@-2gv -z3G`XV?PCYF!Y_Z#2FQ7MYL$Nva`k?^;SdJw>A#BP*P38cjX{K>7zUs27{r)WIUDEC -zGupO3vr4Ec4`-aR3!C(L%Re@fY-A3qAn-nn~ -z7V12uf`UGQ6WrDF_%Z3fYZUX^FLKfdufTvJ)SVOwMgb6Wc0z8_c-p+$lB+4n!Y|3k -zd0$f2f+hQ5dvX3HT%0AvYf|;-X(0>loB!l3`2q -zbAg>%!E(MjYJBJVqcoJp0CuFilM&Qs6-xzy0mSSyPgkm>KRIxQtW>h~z;joa#>V$Q -zimI=e_SVl3xlm2w0W7Ds7$%j`=WQTOt%|CKnZ%b5q^dc%6|nfAF;;_dJK03(vLBgl -zZ#RO(NqJw3J)xpPB{zN4144nKC6NL@SZ&|5UVfnIL%Wg|?=V{P--PNhMudAKM0{Mo -z_(2!F91yLWwF>R#$(??;dcGb#^BOgJ9E8_=89I8fa+&*NGdfzIKA5~Hkf)S3$y(N8 -z&!i@)9KohS1RivbCY1Bb?fDoOIo%_(Xb32g|7jX>cn?@4XJC+2MY-?1A~9yFgSuJ%Xg`k!YO3Ie1VEw=5i -zCW%P^iH>_^&-VF~8J@V-h?0N_;eyrQ2V)#L5)vL4Fh;=lefS_mfB^>D%zQ?zO_VUb -zK-~7eP$N_{BJ4{%Pr8)ue+{kIKC%nBM|}@pG3nK`Z$-nTXIb4)xwdfeHA7Qu38j0jgTQzYKu -zyL}x~AN>qQ2j;yjFI1d2NDWd@@Sf0_TbiPn%7<5TJk5m0YE`` -zgiyt$rwX`FUYA1~6W?a7eono6baNfZueCG+^o(YcO!e!``;w>`!B8Xds%5Zzu6GxmGU@3AQSIb+y2v^v$uSvSFTvWsQh(DqJ@5$5YffFR);Bo1FS!^t0Co -zFjc{SfIubmmv)jOW&eh3srV`hoh}SgtT(Ki=G%3LbyqZXX~;7Oc?o}^ku%0wvCrTD -z;(fteF~cIwgxq+)9{@U0%9XT^c7d_CY%Q?PnOjhVPZeAJBa3cYP++hO)T3Z?uSXVtope -zDaCYd={AvEUT6`-#pD@egJ?IS+$ax&Mve>JCgNz -z9sR{ujOYDqp17_OG&-TVG{@)lvk>ip0+yrDQlf^j{NC&vMhr%4k)(dUdKT>G+<31I -zjfBvkG*qDh8pNcc8H!yo_diBuFti7{a`JK6dZ)Wp=6b!K!(v$A45pl>bUIt(E7U^a -za?48b=v1;B0-c8S#jXabTm~B2@`{e{K`weO4>Hdfe>T3(cM{B; -zsKGjSL#^JB)i8anO#4Tff9@jamK(5cq)IT0CzX<|QwIP5d4={{Z?hcy|GtopztL9J -z^({`tBa$~li%{x7@rQbKk!41|&I}wNU_o6sNA^TIF?Jj>R>D+DsM1nBV4Nh;gPp~A -z0d<21{|C9nIr;d1|SIa;HKq%Zb&^E7T>ineX -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 -zQ&E82G!Vhd7Rjn=F3POoH5ag^#()M{aIa)4! -zyxba=-=p)!_3Lz|^=m;ioO*lEH>y0O5xm{<)d=>zND^7qD`3SWKI{qZRGu$_P+(ddu5Uf5-% -zF20rtRRdM;S19ZO5xkh-fl$P86Hi+`(iUnL#$ovYMo;r8gOd#s6A9vHD*3d%SZkbv -zjg!aM0+0m=L>U5!D^8)}hwvdMLzgK~))=fDUJXW7e=DXw+HrDAuXbCNQnVKl?pIii -zFJB{$GcVfhxMu5MB4a`y -zf~+_s3O!41$0uQxJGDDm)&hdYCIodQOp&hjtLr~XKlR~)oqd%!P#gvz2y7oi&rN50 -zCv5`9e@#mi2I~U>RiL$&bPy!_%Tj%B*XKrod_3rNFHrQY)<+FJmb5G; -zUaeU;68i+mS}E<3q60$J@o;j0NT -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 -zcZRB0s27cV(a -zT1Wsk7)p2qM}yGK*;HvZuYd~GQf&YZq?b4_Z~y~@)cxAEF7AOb;9tj8>*4YFM*j_E -zoW-TRCmorDWv1ijqZIDM{hpd|pNjaK8zX$~cWr`#fG!Z}jMIA&q5hs(bwBYn&w)QF -zXzNr%^j9g$Wu}6Xlj)DwvfAB~uhe_z{qOzi^hfE+u%*Fq!bMKGEQIsWy|g^Lbt1Z+ -zyaMO^eZTYmOLpY0i&uV^8-g9su*qBn6JsF1Hecu5pOD}ak3bi`z0}!jp^&EMaBh7= -z%K**BCtanR*r{6hZ1+sGu*s?8q(Jb>A#rq)pD=s1INZEbXO!r6JR+s+yly;9`fiMc -zvtffmrd#pPO}!|xMK0kUp#&-?rf%#s^>R+Q_uA%NTPIxF5O;0q -zqs`J}Y@PoVnbpt=LXQY9DQ%k*v(cR@2JX4vG6e3RfKhE&z6==x;9ZaRi7xWYr(F?8 -zxA2sx81vlN+m#f@VkaI&9fwwi28dZi6~e?3?5P!o78nY{qFr!UTI%_PjnVC|DR-<% -zp|!Eg9-6@JknwE<$O04+W-cOxCD8@@`h4rsolnKVULb5`krW}=Y)J!rmNmgk2FO&} -zyHjGshQjvg5SmEV2k;q^0FnXH>och8l!KsTDzeD;T%f#y7%UV{O`_uQ#0=%v&ldmm -z-q`nU$b7T^=;4<4(Qph%(A8}bD@`~JZLJ`5{D9pNc@0xY^11ahGxV}nI=i7HuZx4a -ztmoJ%`q@qy@h};Xcn(0u0QhjqFk-9 -zlQ!HG5no(<<{N&NSX_NC#*>(woPpI*E7}mU{RATAU{&R -zS|vlmF$X_T?dEU{-Z#uip`Pt{ozT4J@%@O))ZLiK>A=Y4Qzw-4!p(K9DC{Q`1vCY; -zYNBGC7+f*abc4;{bAI>ZZTx8k3}&XiWrF3eF%Sui%^LtwwmVmD0i^?JCFBK-*0Ytm -z$9;P3bqsahKHYc`mh@xyVFNX`puif_jIH% -zjE5^QP#P5jIPutMMT*lAr_I@lIsLO8dNZTb<(08%FI{j%&ClpJCou2GJ9U4=4R8bk -z76but;BIA}Y1&~eEz$n1w;vp+JacJWP&YN;HFg$4WL~gxROW`788m?~(*6Yb!k=`K3mg{Na5S&Sr5a#sxSy5>VAYvZg({Jp6(8Kl8MfdY8DawlS6X -zP#vE)S#i0yw_~krmp}jz2=bkP0&gs;#Ml`{=*SBN;gGC)1-bpi$#5F|5tOxDENDY` -zqgc6S1z(ID;@4HF?d)PAGSJhA!Z7t25K8W8V$Pr1@#kZ9KvLZ@4v&{iGG*JvI^`t6%hyG@q -zg0#7Lr!OA_$SMk*X87YJ#XL%pph{@iEg~y`a -zesc3zB6HI^`n5;*%H*%P!yj*7Zn2e+VZ98H{?g)AF8U?SO^D@Fawl^kTvotGi*wyE -zV!5MZh29_mMzFC&#w^rh-NsVV!J@Lo0`NHLJ4fqMX>L$eY8eQzVOM>&&BCs5Mp%Fd -zn~{6bqzL7Mw+9&$SUo1L9hoP0;asw56Qsm5K136`$r-QhGaN{zhX6qC -zKFKQt5G848_)2cB34r1KS=VeNNa|TeabhtLi9vv0p1p{9liZR05tP1X4n|_q~jtCxl -zQ|(PKBsI9PK$l*r{6_vob6b}*ll_9_D$ldVq~nMC<#ity-*@-FEYNkGMKUO8b>w9Qm{zI{&MRr~N@Glb<=IjW-z!xWz9uZw4<1kDF0o%h64#<`2W0~* -zI`D}XWmB$4LWgldf4S^)d4`rxXI+Sm4ShI5ni|HW7Bj!BgToOybwZW3ALE#$b1#J= -zjzmTH>@Pjq5alVu)Ls9)a!D&j{UJS$HELCH)hR}CiTD!R(Ha#x{|lFGx_xj~%cLhm -zS!4lGZ;b`Hld+I7$$H)+!{`;zX*- -ztjoD<6D>o%vs~S!fHZX=|NFl{EE-(HSw^t3e{O{!w_+Jm`hm93D{Iyy3l^99NE#sE -z<2r)HOZZ}IOIZ@82_NdBR@r6C0N(;}yXU{FN|-?=bLtJ+E4 -zfTNp#2LdyQT<~iB2W4m}ma@VpV;Z8ID4iyGP<7~2ka{zdt)SsecEl&bSnmVBoE1pD -z>8(~HlEy@Xm_vvd7C&Zh{AGwcXL<$8rZG_+gQ1hfkyyZ~x^XnK{|s!3T!1(=oF5lTiwd{|}~s0Qi^&)&44*f!BK -z?B1zX8>7m^-PkR@21PN7xHVTy@D|h*rLKg -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 -z_^s*3U -z3h`KPma;bNyIhY(R54! -zFdDjz^1vah&njEFCLYK`&p0|J3Htc|xuYo{srxeX>uR)5U-vHQl(DJM>UZWiYqxAx -zK6ME`tm~S)t&S-j9p>B%h6Q1zaF7aG)WBM9;nX((a2HR80dyFo@jp=fvsT$ZpcbME -z#2ATj1qo}EeFVAN;Wp?90;ZVXpBb^W*Kd*m%aQxgJglk5%*Rs@IfVFoBsGN~0IEj( -zxG64k;B-SoTRUD(i&UX9P*S?XXg4)@;I@wFo{ERMVt9wsddBGcd!M(7xP&(c0GS~gn -zeY(sn`jy$)!E3kg64I^=@PUCMC~5X?_bc`h&Oqv94eNhqnLN7LboK9m-`DeHcdQV3 -zMWbKwi0N*h9-pdj92hK*KwqF?rM>d$^>y}fNvRvJ9#_iG2mixdeJt}%<>#h$OeEh_ -zcF8RHM!luQ((O=u(WP_|v)k7w#-A0Uy4hU1rt@AbWiB=RSJxR%_g`#!KEacdWb<^r -zD(6n(Wk);RCgyj2_T-z?rAw5s|1 -z0-N9c`Hu9#L*6HkiEfc!q<`O@0e8f+{n*SIav?t)92ec9*C~6j<|Vw)-TYSdjo6pJ -z)7R6)>5)ru#f-6#+jm-W!Vkc|JfA;hE->GMnd=f5u?kE$GL*G8 -zdW)alTvy0KM{oc{{!2HC|As{U_czp-TrWf?o~TYShaeLm)!b!85HZAItlq}X0kOUT -z(`ddmY8Gs27E)%$J1=3OC!u#6l#v>m2w-dKT$Dju#7ne^`twEW3`a1Aemu;Ip05rG -zz^Gy!J(deb3ByJpq59EkuW;32G}IAvQCew*i{ldk&Op1Owj9OT>_{j*zMeoR$vKRrkY|3p -z`1r)kB+s)Ble&QEOz8f0kUg^s@?R%LCv# -zsD339_8ZaFe4sF3jmTY0md^fc{UvxCf7=A^UKdNb1a)3SKl|H`=p&M -z5I|v2sJ+ilD@QE;z&|Pr2LVmRWvE=YTSRmw8(KLCR9#m}!)syC`*zz1{$7>{rxexF -z&CBGgqE}%97n`k7eSdF?H{M$kL9zXtpS~7+L-p`t^h!EHN$wxzwOkD&Jd%LMXwo9c -z7u=&lN$a>Xu?mTqhs&w=j{o$XTsn}1Vu2|XlrU*YT&nu*b*5KOWga`HMK=9D?_*Al -zHt*?=qmP)?^#bpzEXffQ23P(10m4@^n-?@0W=EwQFWjC3SIgO)5AV=IFTlFsOS{w* -zK0QX~G}6|4&q9M{4q6IWF@_xXpB22?H)@Q2)=mqN*^pTO=MwchG``so%Cv -z-CX5h3H@1C=ekwKjfE?fMjtVco7rei{t_J;2H}^wf0_4xK8%s<*kp_Z3_xj=lQs77 -z_8cL3Z>fpefg1Xn5a;Ou@M7DFStx5y^&j3xD~;W!o+S>GVpUwYB_36WzCQ`Khot}g -zjeFGi!9e`_N69Ir1ZP5!PR~Ne6}p~-V_}LtcaldWYCnc^^Mh$ak-MoMN% -z({_j!U&gnuS*&U-lUmKeY?)b^)xGlVTI@TndLJy><>=>~r&IR=Lxj%s+*x&tSOT3< -zVyRCxu9*o?1xXhcKX78{89E<*7yUIQyMCrkI5 -zuFZ3`bikmPIi7@N#JyO(q$qgdUvu=OXLaV=E#qLvcT$2zj8q$MW4;PseG=_rvsy7J -zFh}351aJTfz%EsRCtmriRsK^%UFSCb(H*~?#?~8niBW&J8Yq92iym8*$ky5#xw`ev -zY3ZTcZ-wHXAc`M&^MgTcmXGl^)6<%lMQq)nwySrZrkRf-vA7TLhr`aJCTZ-rTpo-9VF(fxHg3ROP{{OvA3rK(Pq)h1>atC -z3knioWNfi_mf&y%pcq6@p(?4OaN0(_;H+Sc7nfa4!qkbEOWXe7hmYGge&&=-m#|yl -zFv*VSCU0sCAlzVX6?zdgwE1W4%a;TDYnzsh`M;B2(z3~z?$A|}AGw&r)bTbbhxBn3 -z?FUv7J-<3M&)c(lj;^cYy4w;);aD6%0wEz{82(H%3z53ni*(93TGd0l%Ia}lgAw39@w>a;3I%jz~ -zT*eZuN{i*b=7?oFwSzLrA((p$Dgxztbh?LX&n|w9iD5B&mefr8(hR)azbkC^-w^@W -z!lBE;9dI(IOHZcfLp#}n2c1@m6=d@q!q6@5`03EU72lBb$wZCfC#^OoQ*D)wjO1`v -zI3+yLm}Ax{-Lc8H=Ak-P>Ig~hK`f(tL*3FdMPrWzlV9oyFb^0b&Gf4p?irMRet#q; -zfhQ-wVxHG!KinHDr>L-2V>nB-XI#pX#ElXtq=2Lc+m5Ao{nT!Em3`JlTEP2oWs-0X -zS8nx?!V%^kQb-zI1jg5zKg}vKdEdN1AaCQw`SVW88y}p};KIjn)T9njKcGi>i$5;f -zRHWoCf0JhcWfKTb>xb=G5wZJ3)le*|AK^<0M?fg!gNzyIiD&w`Q@NOnLsKRtqx-jp -zNtpoZY%Fj_N>cqt`W6$g!ecwja8sU1O)r}vw|vM1={z;++Syx*QTLJn$#2tAA)rn$ -zNyjzVczK=R+_$LJ#xg`MhDeib)<){e!^Wav2hxSWF)CAhFGq$SzBUSIn?mV#ZO0CSOZx)qqH -z*OelE&yxR9MF&Mk -zC=i(BGgrp)72|lZ3_ -znbfXl0{2B*s;>NU2$73V%(a|=$L*cYrH_7>1n|_oMH!8>F|>0c;EmE;MJG&UYH&M$EM@)4#| -z&+K4DOd@R*h;(!tyQj+v5vAQy_t(G#3V52#*Z&(%s{WO;^;60a7Xi;eV)Yt#u;!D` -z(siDA^yS)jo+=1`3n3)~NC>#$qsr&W67l9rHm>Zf7LPk+kyWCeY?TZi#F39NSk?Gc -zvqRDm)HYT{n_h=Rojrmo90 -zF*^)vlBPO=)d+iZGJxQ2&|Ga-e;^`Q&wCa7Ty@x -zsh^|{=>1q73)D)%9iLQwa)iO?Xxf4)?pin+???YkH^cd6wLp5MArP?qQnE;M(S7Sv|AESt;LWZnf=PEGPu-$sXX6IsC5N+5?`kZfKJv8=FkC!bMr3S;sZ4%(Owgx+MoC@WWp9|5z&I6!~IaRGPsXZ+1>3pa4Q60H{ -zDu4#4VD2v6oSw||vVWOxaK2Jt0{RH$&g5oi9|xOG0d8iHLEsb!Nr`#pdqp17T9DI0 -zx=T|ts4+75uH(5$>IQolDJwMMD_H`i!TWZ_yZpDvV(Q_#+4Rd-4Jnv}QK8D2G%95J -zSO)Nh2$BHq=YMKg`B=K|pfT&~7zUz*gE|QySibcX75H#_RTP|BReRy=^TFa-b6bBk -zjiG!UI%XISCI|56fB+H;!r>=l*Z$AY$%r+(+Uo3DgaPs;H(kmmIUl)VLq2OKle5Hk6k)0k<9*3{PE(#>X4r%R%n-H0k_03_r! -z7NlA*BJhbY%D%>Ixff=Rp!SO22G>=hL~CFz$d61U?~ruy$p?5Ard(k~uC*oJ=;2Sw -zMXbLRhAjx-xJZj^!iMD*N0!#2<l61{T$+$ry<+^7hpS953Q#bITq)J!(&ToCc0|hLeQa -zs=_e1&ijAqO`c?}iGo}mE0@DBYilOeit6ROwh8#b_ef!D$x3b)nDD+<>hkel`FJU}~YZ -zo5O_FtltZSo9j#7Q@+kIKi -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 -z4%$iNEVDE_4mR@8nzz<_Uf^umR>Y82{ -z?-7-+uX!VsbB>-^`C%I|RKPz1zD~H&Yp@qYnes&{x@0=ZAtdO6Z;x^>lUa%)Xsom& -z63$x;|D@2~8Zg!=bu8-X@^W$hI%0VKTAjoD6@~rrU#1w|ONwtAT9gK9Tb3*&MAg1Z -zEu%Z4rSC!S(H4Be^b+c<-z5@x?=0(lLUwPR*QS}PS{=A#^x_^56G!FUD%I7)-YGcz -zm86I-q$%-+$TvbV7W~@*ZWU) -zzzjk{(fXd)H$bU_5JO|ZTU;U)^ZB`t!(o1EDzF+13B%W!*E2Cl%3!p(HuhzcJZvqy -zU+uIzZKdl+O>v^Z9Fw8E-Xv^Jm(RwfG^@n!H2#Xr>!wX{cU2hE4rN&D<&TWI8^SSO -ztrEXP>u>3B73!p?sngtlKNx8W=~*OPWhp77d=|E<8g?Bs({lf8Zv#(~omkZiWJE*zKDxm8{4e8# -zKkOYvd$t3Vg{?4?|{3aVH=Uc*a1QYElA0ILgnv1{jeuvB!e(kG2pZIBTtA5cb -zp_KNu>B@o6ANt9r_{UO`(Ibi}w-(Tvx+!cTy>wK!;Yl$QURFn|Bi-#z?19h;Vn@vq -zI;2SJ#K+j3XOO1TXvNP@ckZSF;}VB1K8wKyuK1_sJnZ3_+!+bOm%7u{pZPcVej%R2 -zYkKmcKRC~q7qK?w2japJZOn-ZBt&#lO;Z@)iU#5E+{u^?g7KI!Q+~F)>VR-ZoIb=m -zyzo%mU&PWdUU^4XQ0znbabbeqXMw(MlUGOIVM7$L6g{1%Qqs4it9zIrqVy`2tD$dR -za98UBRKkH0lYei%WUUbLh|3lr+I1d&Li+iu;iDFm& -zZE*D7*{tEEpn{wUj>x@)b&m-rdP@yjUXBhwxIE8^1!-^u6|_ -z7uQ!$U0Qh~A>Qi6*2;m1%RBn2@LPjyvP_ogbft;5xBq{e3<}xhjq*=@{atiOx~jR+ -z4y|!#hLY~O-NkWcUS=M&A((PILWVgDBXZt0$u>5L%;sz5&E>gdY<#1-_Www4nn+3B -z#2Y#Ek@r3>Gx0D@+~FI!dPQ4B&Uu&ufi==ZFKosp=7(DrJj|`ZvOp@&mfcvDWaHPcMg;*tvU3 -zB6h~43+$t|%lQB8Bxsw)t&2#;8D=(ALMwnpS`b)*(8dKr(x#1sOmE)*HzeY>Wjlsd -zQOQ9T`l{^?mOU4%_4N)5bnp6^>OD;Xru^oqUh4o@ujQy>O1s8r^}nf?;S9Y1?n0tK -zG!KcKjK8|He6J}skpJd;Wl-~yUD>-7tNKzD#cNxIi}wy9&tLaD{vy!va(q?uax4sy -z!U#mZG<=PGIAL+GQ|!h3OAC?PRy!H*udR<6B_g8lqUba!cY%g`mLEA}$-AjqwwT9w -z4gC@C!WxFFU%oEq5@mdFYrAm|9-{=7at -zmQaTI=m>PMDY13>URel<6pr7?i9!e?DJU^8*dOF%pe$R*R)4uwK9Jqaa(VFE`&)k1T>Jp^Lgzx~!e=jmP2a7CK?#@cro+ix_YngL{o -zTNnLHWNpbxjOWO0m2#791J@+}`%uX2C#x2uaR-(&;r*6<*0Sjim_(kbZVMcfWkB>I -zU8-mPoko>>gW9j;{ln_+Skif!i-VXezi|Hhk4PhKDr&GW2>xI5F!jVvbwg=!)am+$ -zYr3m%xd_TA7YZhz^G$CYmbn-eyUo53KZkq-Mcxl@RSJj$MVSTc7ODrAb1gA3<>gpv -zK))1-i%s;s9O8n}xs1tY9`h?-sr_iqddkYCR%-M5{)kns)3Lv8KZj(^j_1^|`th0y -z50B_Fg_XPqcTatgQHfcNgf6dRTEa9S7cRN`>g~+!pC2pxS88_eekUbG^Dhj?^OW`a -zgt-W0n`Py7J9`r7pRuk`y!DzQC0~*l4PKc=XTN<7XOb>E*%scLhef^MZ}xS`Hfz*K -z-!>Nz$y=LbuL|ZKUosz+6dl_v(i-Yfn-}l&t&H?ZAJD`ZOh^dP($o2^TxN)$ -zm$n84l{!O64$buZ%HK(-J(=j%Q{FbmkwgAJP~Eg2Nfv$6dZ6%b^!Va2sywbf`yu?hO|CxOn%E=_F;bAN4{&xE6}fpXn=` -z5Ra?gnksfN+N8*%rQVlkERp$%ZIlQLRfmy!2Wtr=qp5d*bYVTud2>CZS*sZID*yx+ -z6_6i04koSHk++Mu1%9Chf~^OIf=a?FFs5e|!q+M9t><{aX_N9QbPJIYAuepEYn%5ty;t0cx4 -z+FzUQX-|1OqsoVMJTNcwC*Hmp%`x@OcwDT2GrOZcG_3qGRTxPnsD}0S^EY-(`S=T# -z=TLSPemVKozoLJs?z<2~>Roo+d$mR{*hF2``EcytIqsq9`dE6$U0OaBt3Ha?DAvRb|Gr`Ph3DqMA~bej=m5zIiUZ(? -z8umBs*@Kt`8sBV654oyD9)T&w$)LZ5CQ^Fa!6fRyTnp#nV -z=TlYx9>3;@G8tF-$o`dOMOF%yA6?+9uE_leiat(;N!a<28RjS(lP~>!MBX6bj{{Ns -zzX_Zt4rr1D*#P!Gg`Nb`z2BaG_}WwM#J+lT)?}++%Mt`awKh}1SO7o7>+%F9+eI~X -zg*dcH(KmygjFKULj`K||pUO1lcZHD^E;4ZsSdVhQ%gS5*D)1Lo&>i5D+eNFZwYCgD -z%+~?pK~6P~llWhn46J7q@i|@pYa2Fh{iau?`!n#C?h9 -zUm~wU=6#MuXJD^kYR=Ar94n@$IejKAB>`nZ(m5s-Ym$V)1|@9g8odZ&u~S;B8IUqr{# -zOC-=S0wEHSU@|b5nzw7hy4q=FPZo2D{`q&y%kRVu2?%fNmPhmT?}vd-w?_GuKx|mU -zLQeIehHDXCE}P8dSghegUZ@ccb#h;#?uM>T -zRL|5qu6; -z)?lEXv_)=we<+|PhhHFRO;65*Z2EfZMqAzMT~?~!LK#t)9|nKbe(9j+pdTUufi)JC -zVOK?_{r%4=v=H?RH(#g_-rW?xp>^FC<@mj$wca>;Ti9Dgsl}t6!|191kK0EuyTmwB -zEC^N}C=YeCln$iM{i5^1%NZF^NdhYU_Xb}Wg7iYjMGdwS^vhqEfY9-eLjIk*YyNnC -zIZ*I-#CD%cJhh2{Kqq4z1%xbK8jC|R!B!c5a{X3efA)U9d~^`@X@x3E$=2cL*FBR@ -zG^}60>&CFWJ^5O2YsPWpF-TJlLFN=8C8-EYSizK-Uc4cez8Xh-`()Mq2}+RvYTw0L -z9Z-{=P|!pE@A1)71RW-fR4w__jyOZH)t{%E7fE;IjkkF}syM;V-*D_PVQ~;f|C6(C -z6jrURzxRInaC|83+WthK^rmEU-4Q#jGl&EC!)B_5Lk^Uwm=MtOO9umn*}0X8Jtz -z^pbzlJ|!d9KYori>!yTJ=AB -zGv_2KRk2ZngNu`&=_MCAiG?WaO=$QpJl-hQMo05m1R`5*Z&~tf`Md2?M3*z}=Fc6{ -zEX?T9iR7O0Z%a10{25fZzWqSt74>DIKSVIpj?P3dX#}iyrZ9SwcrTH}F)ACSICgIY -zCNXItK*u+0zHRN30HPYv$>N+%^XIFI(OQ@EmxT?KToeP>uv4}Z^Z&i^at*cvU+{NK -zhFWjE=!(g9Qm;RhL<0CST=~u)zL})ir-`{$8%CBt1zE2W4S8OxjT;y}MMQ+#3p*Ow2vk0bawYbie=~FTc^t9 -z_Ax-r@Hm~iJk|USf$K-yV*ZC86LTFT{c=h3q+Ix+wPMpt{!-7@wy4ti$HUPA9* -zx#UQ>FbeB^h2D7X#!MNqPUZ2zFw8cwi=1NcuzYk}c}a%5ePXD#tlh3$XCQl7^VX({$Iv_A{=dbR+A8V_iizFZRHTFO=`)Jy< -zlNE9JUuvBPzW$Kbk=l{mQch-*RsQnrjJKv$rBux-iY7kQj#>*W5NUf5RtE14kdW{s -zJTsb=9R}ga;-aQshz(L^g@bPvib*1JwXl?8^=9kmI+;XSuhB1ZEQO~2%h(IOpkkH1v&*y)oEWInzG5=S;6gw7t=Pt@iBYiLuB9Y%)zlBx) -z99}r;gPUb&r|#jkf7u>?EiU-&Ib5Z|ZuOw+)bu!BnEISkUJiSd5{Pv=`HqGYyqGyh5tLQ{IL+VpPB&nEQH#;|<%kHp7 -zgPtkK>`}KAGZ`_xm61NsjawNN3D^ODdX<2pN*;qya+HW%GlmH5`TPr`PWp1(7$GNr -z_7ZT%tzY*WlX8ZS68hSIgDtjxoKLPC@5h-wYY+^KyseFFo?^P&Sutz<`6yU!^6|$f -zkyC+FM+!9{8XlPj2dc7-6swH$sdGc2l-jL-vX!^w*p54{#jbekwMM$R9mgqZ3=7+X -z3AbCuscv)TC>dl=7+=GzE_hdBHJyc)PrmIXIHx^^r82xXb%Z3jajzFDL1032gLmb? -z-k;N#VS6QDWsboptP)oy#Z9I!^@>Gv%tP)<+riWF;}Nc*GR94B_1>C-cj`iwd!jz& -z8{qJCTJ1-NcPN*V10v$pZWorLz(}7%!_{UCp}5-4k}3 -zHN2`wq($Q(!t(uEE_ir;gt_BYT}dj=vu8S*`4YbjfzJvQG7FCh$wE_oy&jVmrBNQ4 -zf(l=jG^gMEeRG0&C#`-2$jOs=)Ic4>>RPz8s)6bC_hvY;af1fpnIcU|MLTAW61%kmcM%)1Jk$#bQ-DCdUM3 -z$fA>$+zl_##+ZyH7u2pHwc2rH_;DpD+3@&oLc?!yvo}nVpoX(CSD`PW04ZzkVRL6y9cHe`--?=G%5Zs2!@J+&AB#(gj3WpBUz-}yzg^&p@mib(&=JRyJ -z?@mEK5lQ&1a!wBpxbjOx^Sm~?UN`lrlT651d}S84z06z?%pib?=ln#;S4Nyq -z7)09LKdbx){1kijz(n=&O7G_f+vE%<+q_5~(Hs9mghcdHgX!hr^9}bITbIgeY8}lK -zL&Q@Lm_ct?DLIlal#~!HbT{ziN$GBn?l{^xB1RwOwsiylz>dB{@Qa -z^_8T7iV6!E#{%mNP&Z?RQ>UU+JX;s_Y`$#}#dXOv)!XqkG4BFkwj&?`q3q!`Yq3t+ -zgvQ3a#$w76Vd=P7(U`yz=ihlc+J2EDFb$ofc&sl6b|Ry)uf45BbGVmH3JfEH<)`=t -zA0S2_GeaNknHTu1x~oc=o@ -z;y#w|Y%~Va3q*u_6iIOOww*m_?G3>BRQN`r=oTH(JWv5<5LLq-!wXyGTzkJic-PO1 -z27Ut5lWp?%TA^*#TK-oL!`qIc77YC(n|{}w2FuA_{J@GGo_Rn4M#tVy2XCLNG3sRq -zvj_w}dCs>LNGQjYYtjjbyaz92Kf^F5Cgp}9S!Huh$rQQY*(bxx~czxg_(2*N0sW|vTJ+n -z0gbtbQ~E`AZZYkDqV<$nB0=7N{;Xft-c9sU=t9zE(wGx4v@})^Q-1i))Cgv{Ii_T* -z)+;e}cxv;tVA;osJ}BSX`Rg@>5g}$rGeGEP-0kh#NJXjG96*Hnv-&^6{)-nA6Bphu -z*xd8xPcPK-<#czn00D~vRN`x~JIOm}kj}v}Q)$sKXLGn`*{Uc-)Zl3!}sNyN{ -z*NGV`xEH|je3P7GkO!Pt`gp;|4~WeKZJ)k7>0OPPji#3AGVwojNCs7FYjMwtRI=VY -z98+08xd+myX6-sV_<|Mx2XhcPo%Z>3$`Ec6vFY-lU_zToini5d)S8WUa -zPoc0CS5hEjhV*7Hv>N?ZrZYJ*&d&edc-%~{)8?)eg_zln%cRcn!d!+sEhj6%C{Tfc -z6##iq@`?H5+1E$!nafUZj6GwF!Cn7+GfA@DY~?@_Vt6y{Dcs!9MQT(^q!aU9i6mO0 -zFqBK?8*j1)$c*rDHe@d3H27YI&Dxz;@>)#zGB?bcDP99=j6u9bC_`ly+g)$~xgC?i -zM}TTyrPpkwepYe=C;e-iD+coO_OgBhZNumITJ=oyi$2`TOV}B+QnZOAAF6h+9RZYj -zIGp|D-BT+x=u~<+otXE#{*slWmiKAOPt!&Zq$_O#ev*jDZ`Vxlj{^*tM8p{LDkDsT -zAlHQtgM;oiU6jyAWqlC;7}YR@w6A<(>P8Gl7}t{E$bgm%&a<&W<}D;__2}ijI1O_G -zm#KeWvYDgEYavFT_2pMCHFM;h{=5;KW#ugdOd=wS215tN>d0wBW=mfuIP&~e{XHNUGa4dw)6ATfc#V3gy77Wr!0JOoRp0x?}tkhTkzKS#jB9Y -z&@0xN!epcfwK8Lg_(3L%c*)GLTC4ZqzStKfPh0o@0{a96`?nBH3!NB}qS6+5=B}re -zili;g5`Kxq|53HO@hcVd##MO@ -zyj-vvO$a7ufYdk{=K}|;7Xa2TBCMp;10sht5f&O7jai+4Diw>Zs?i)^?t -za@Cq^!9Wyb4FgSZdF93HDRK;^sk?J|pqb!E)lnQ_7x2H|fcD>_{#U3@aO@bvZ)4wp -zuO|O8c>x!beCx}YlXfNpSoITt(-NQS? -znqz~;R~m2AXj=^{fn=?C$tFqbx@fV{#gnV%z%*Gjnq#zZ#xR9Vfj4ksuqd!C>Wdptp(yQci@*N$}v@!MedM)BUYngBI9{ -z+y-_Z=f%*e$2zWtob{iYG -z8IQ2U44nx0JS&M%su%0PWn7FG#?n3w!?h;7j*~UE-=g~NVA9yNRl0T9o4rC}L -zumdaOW#a|d#?IL}4LBI^5nKh@*u!`5P2cvT=s`^k#;8}#MQb%AsIZt34_s)aU -zfq*@|E{e8r>c)HU1AHa;MG|BvQkFke4ST`F&BzWiE{<(9#^5yI#u4(P|Jw;npw8gz -zHdZh@|2Lk4gB`9wDF7Vk?`Z*_%&CnBp&>hf7*}U<;>G~E@y2*v;179#NltP$8(XLw -zN8`zO0}ggzP#^=bO{&lT7s{1A!WDus!^OGV**cXmy?J9Cj2rms9YWNO(>N>GY$V8y -z*T!>W3JDg-;6RL$67cC1Tqp4w(qIRWat3F+v4Ut!Z;r;vxIzY21w|OBlbiw88wpC| -z=={|Ge}5Pz<1!GY-w2sUZ5{TAb>ME>y0%;$c-DEjEixD0_a}U)G0xo -z20EwT>6{AkFFwW*Twn(d221yaMUcC$Z=eSrikGSZB7_2cLHBSHtekP9g#g~T!Oge` -z79)dS;~N1(aB4_Sf_9^U0Htw*lW{PvJ@*5^pg;~^NtL8;#JPwuz(TBoAc4Lh-gzfM -z=k(AT4-mnsF~K5ZhAgl$DV0Gw0klJNDrlhEshkK3rIF!koZ(_jF*Y9n26@miRaTe2 -z8JCn+BM?HB`YHJf1wgt9>QqoWowT!d6rvyi0tJh~tiyu>*>JEo3oI}hSD1}C??(@; -zpmd+mC9rhg`#W+HB;_?dpu-gi04VTs0I3A13e>66zaPyDHj^bSWYdd!xBy^^Pk>+o -z0k0|mv;>sCFM|V_3IGu}C{Ty1AfN(3Uk>0PmvxcSf&o=3aG*NIH1=18^!+)l>C@m4 -zj+2w#P*Evh8QRc8Gyu##1r#{&{TUpH=xJ>aBsx*U+j*i(1q7JXT~iPLX>epMAcB&u -ztdmOf(;%yq!hnqG=fah2Fb!#|bW$~;0r2dvBq_#|pACa2m%vk75AjcEh@Oy@er7z> -P%SpP?TPHbvU~>ZiNMqV? - -literal 0 -HcmV?d00001 - -diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml -index f3a6372ce..32c95b05f 100644 ---- a/app/src/main/res/values-zh-rCN/strings.xml -+++ b/app/src/main/res/values-zh-rCN/strings.xml -@@ -60,7 +60,7 @@ - 移除 - - -- %1$s 由 @fork-maintainers 倾力打造。 -+ %1$s 由 @harvey186 倾力打造。 - - - - %1$s 会在您关闭所有隐私标签页时删除您的 Cookie、历史记录和网站数据。%2$s - - -- Firefox 隐私声明 -+ LeOSium 隐私声明 - - - 我们乐于为您护航 -@@ -358,33 +358,33 @@ - - 在设备间流转,数据照样密不透风 - -- 登录并同步,安全再升级。Firefox 会加密您的密码、书签等数据。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 登录并同步,安全再升级。LeOSium 会加密您的密码、书签等数据。 - - 登录 - - 暂时不要 - -- 允许通知可让 Firefox 更好地为您保驾护航 -+ Note: The word "LeOSium" should NOT be translated --> -+ 允许通知可让 LeOSium 更好地为您保驾护航 - -- 在设备间安全发送标签页,并探索 Firefox 中更多保护隐私的特色功能。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 在设备间安全发送标签页,并探索 LeOSium 中更多保护隐私的特色功能。 - - 开启通知 - - 暂时不要 - - -- 试试 Firefox 搜索微件 -+ Note: The word "LeOSium" should NOT be translated --> -+ 试试 LeOSium 搜索微件 - - -- 将 Firefox 添加至主屏幕,随手就能打开隐私为先、可拦截跨站跟踪器的浏览器。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 将 LeOSium 添加至主屏幕,随手就能打开隐私为先、可拦截跨站跟踪器的浏览器。 - -- 添加 Firefox 微件 -+ Note: The word "LeOSium" should NOT be translated --> -+ 添加 LeOSium 微件 - - - 暂时不要 -@@ -426,10 +426,10 @@ - 来自搜索引擎的建议 - - 地址栏首选项 -- -- 地址栏 - Firefox 建议 -- -- 详细了解 Firefox 建议 -+ -+ 地址栏 - LeOSium 建议 -+ -+ 详细了解 LeOSium 建议 - - 在 Google Play 上评分 - - 自动补全网址 -- -+ - 赞助商建议 -- - 不定期提供赞助商建议以支持 %1$s -- - 来自 %1$s 的建议 -- -+ - 从网络上获取与您的搜索关键词相关的建议 - - 用外部应用打开链接 -@@ -659,7 +659,7 @@ - - 详细了解 - -- -+ - %s 经典 - - 艺术家系列 -@@ -677,8 +677,8 @@ - - - 附加组件上新 -- -- 探索百余件新鲜扩展,让 Firefox 用起来更得心应手。 -+ -+ 探索百余件新鲜扩展,让 LeOSium 用起来更得心应手。 - - 探索附加组件 - -@@ -746,7 +746,7 @@ - - 收到标签页 - -- 收到来自其他 Firefox 设备的标签页通知。 -+ 收到来自其他 LeOSium 设备的标签页通知。 - - - 收到标签页 -@@ -933,7 +933,7 @@ - 移除 - - 进行中 -- -+ - %1$s 可能会不时地安装并运行一些研究项目。 - - 详细了解 -@@ -1327,7 +1327,7 @@ - - 连接其他设备 - -- 请在至少另一台设备上的 Firefox 登录才能发送标签页。 -+ 请在至少另一台设备上的 LeOSium 登录才能发送标签页。 - - 明白了 - -@@ -1356,10 +1356,10 @@ - - -- Firefox 又快、又有隐私 -+ LeOSium 又快、又有隐私 - -- 将 Firefox 设为您的默认浏览器 -+ 将 LeOSium 设为您的默认浏览器 - - 试用隐私浏览功能 - - -- 请填写这份简短的问卷,帮助 Firefox 变得更好。 -+ 请填写这份简短的问卷,帮助 LeOSium 变得更好。 - - 问卷调查 - -@@ -1534,16 +1534,16 @@ - - 扫码 - -- https://firefox.com/pair]]> -+ https://firefox.com/pair]]> - - 立即扫码 - - 相机扫码登录 - - 改用电子邮件 -- -- 立即创建以在设备间同步 Firefox。]]> -- -+ -+ 立即创建以在设备间同步 LeOSium。]]> -+ - %s 将停止与您的账户的同步,但不会删除您在这台设备上的任何上网数据。 - - 断开连接 -@@ -1560,7 +1560,7 @@ - 增强型跟踪保护 - - 现已支持“全方位 Cookie 保护”功能,这是我们迄今针对跨站跟踪器最为强大的屏障。 -- -+ - %s 保护您免受众多常见跟踪器对您在线活动的窥视。 - - 详细了解 -@@ -1723,10 +1723,10 @@ - - 永不保存 - -- -+ - 在 %1$s 中自动填充 - -- -+ - 在使用 %1$s 时,填充和保存网页中的用户名和密码。 - - 在其他应用程序中自动填充 -@@ -2148,13 +2148,13 @@ - 绑定其他设备 - - 请重新验证。 -- -+ - 请启用标签页同步。 - -- 您其他设备上的 Firefox 没有打开任何标签页。 -- -+ 您其他设备上的 LeOSium 没有打开任何标签页。 -+ - 查看您其他设备上的标签页列表。 -- -+ - 登录同步服务 - - -@@ -2206,7 +2206,7 @@ - - 要一个月后自动关闭吗? - -- Firefox 可自动关闭您一个月内未查看的标签页。 -+ LeOSium 可自动关闭您一个月内未查看的标签页。 - - 启用自动关闭标签页功能 - -@@ -2214,8 +2214,8 @@ - 已启用“自动关闭” - - -- -- Firefox 建议 -+ -+ LeOSium 建议 - - - Google 搜索 -@@ -2223,7 +2223,7 @@ - %s · 搜索 - - -- 将网站、电子邮件及聊天工具中的链接设为在 Firefox 中自动打开。 -+ 将网站、电子邮件及聊天工具中的链接设为在 LeOSium 中自动打开。 - - - 移除 -@@ -2247,7 +2247,7 @@ - - 由 %s 提供。 - -- Firefox 系列产品。%s -+ LeOSium 系列产品。%s - - 详细了解 - -@@ -2378,9 +2378,9 @@ - 检查评价质量 - - 试试我们可信赖的商品评价向导 -- -+ - 决定购买前,先看看 %1$s 上的商品评价是否可信。核查评价是 %2$s 的一项实验功能,内置于浏览器中。%3$s、%4$s 上也能用。 -- -+ - 决定购买前,先看看 %1$s 上的商品评价是否可信。核查评价是 %2$s 的一项实验功能,内置于浏览器中。 - - 由 Mozilla 支持的 %1$s 可帮助您规避不真实、不公允的评价。在您购物时,我们的人工智能模型也会不断改进,以更好地保护您的权益。%2$s -@@ -2451,7 +2451,7 @@ - 访问链接了解此壁纸集的更多信息 - - 阅读文章 -- -+ - 打开链接详细了解 - - -@@ -2506,7 +2506,7 @@ - - - 为保护隐私,翻译过程只会在本地进行。我们很快会支持更多语言并带来改进!%1$s -- -+ - 详细了解 - - 原始语言: -diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml -index 0023a6710..bb4d8b2b8 100644 ---- a/app/src/main/res/values-zh-rTW/strings.xml -+++ b/app/src/main/res/values-zh-rTW/strings.xml -@@ -59,7 +59,7 @@ - 移除 - - -- %1$s 是由 @fork-maintainers 所打造。 -+ %1$s 是由 @harvey186 所打造。 - - - - %1$s 會在關閉所有隱私瀏覽分頁後,清除您的 Cookie、瀏覽紀錄、網站資料。%2$s - - -- Firefox 隱私權公告 -+ LeOSium 隱私權公告 - - - 我們希望確保您上網安全 -@@ -354,32 +354,32 @@ - - 在不同裝置間切換時保持加密 - -- 登入並同步資料後就更安全了,Firefox 會加密您的密碼、書籤等資料再同步。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 登入並同步資料後就更安全了,LeOSium 會加密您的密碼、書籤等資料再同步。 - - 登入 - - 現在不要 - -- 透過通知功能,讓您使用 Firefox 更安全 -+ Note: The word "LeOSium" should NOT be translated --> -+ 透過通知功能,讓您使用 LeOSium 更安全 - -- 在您的不同裝置間,安全地傳送分頁,並且探索 Firefox 當中其他保護隱私權的相關功能。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 在您的不同裝置間,安全地傳送分頁,並且探索 LeOSium 當中其他保護隱私權的相關功能。 - - 開啟通知 - - 現在不要 - - -- 試用 Firefox 搜尋小工具 -+ Note: The word "LeOSium" should NOT be translated --> -+ 試用 LeOSium 搜尋小工具 - -- 將 Firefox 新增到主畫面,很簡單就能開啟會封鎖跨網站追蹤器的隱私優先瀏覽器。 -+ Note: The word "LeOSium" should NOT be translated --> -+ 將 LeOSium 新增到主畫面,很簡單就能開啟會封鎖跨網站追蹤器的隱私優先瀏覽器。 - -- 新增 Firefox 小工具 -+ Note: The word "LeOSium" should NOT be translated --> -+ 新增 LeOSium 小工具 - - 現在不要 - -@@ -420,10 +420,10 @@ - 來自其他搜尋引擎的建議 - - 網址列偏好設定 -- -- 網址列 - Firefox Suggest -- -- 了解 Firefox Suggest 的相關資訊 -+ -+ 網址列 - LeOSium Suggest -+ -+ 了解 LeOSium Suggest 的相關資訊 - - 到 Google Play 打分數 - - 自動完成網址 -- -+ - 來自贊助商的建議 -- - 允許贊助商偶爾顯示廣告,支持 %1$s 的發展 -- - 來自 %1$s 的建議 -- -+ - 取得您搜尋內容的相關建議 - - 用 App 開啟鏈結 -@@ -652,7 +652,7 @@ - - 了解更多 - -- -+ - 經典 %s - - 藝術家系列 -@@ -670,8 +670,8 @@ - - - 已推出新的附加元件 -- -- 看看超過 100 套能讓 Firefox 有您的風格的全新擴充套件。 -+ -+ 看看超過 100 套能讓 LeOSium 有您的風格的全新擴充套件。 - - 探索更多附加元件 - -@@ -737,7 +737,7 @@ - - 收到分頁 - -- 收到來自其他 Firefox 裝置的分頁通知。 -+ 收到來自其他 LeOSium 裝置的分頁通知。 - - - 收到分頁 -@@ -921,7 +921,7 @@ - 移除 - - 進行中 -- -+ - %1$s 會不定時安裝並執行使用者研究。 - - 了解更多 -@@ -1312,7 +1312,7 @@ - - 連結其他裝置 - -- 請在至少另一台裝置上的 Firefox 登入才能傳送分頁。 -+ 請在至少另一台裝置上的 LeOSium 登入才能傳送分頁。 - - 知道了 - -@@ -1341,10 +1341,10 @@ - - -- Firefox 又快、又有隱私 -+ LeOSium 又快、又有隱私 - -- 將 Firefox 設成您的預設瀏覽器 -+ 將 LeOSium 設成您的預設瀏覽器 - - 試用隱私瀏覽功能 - - -- 請協助填寫簡短問卷,讓 Firefox 得更好。 -+ 請協助填寫簡短問卷,讓 LeOSium 得更好。 - - 填寫問卷 - -@@ -1520,16 +1520,16 @@ - - 掃描 QR Code - -- https://firefox.com/pair]]> -+ https://firefox.com/pair]]> - - 準備好了,開始掃描! - - 使用攝影機登入 - - 改用電子郵件 -- -- 註冊一組就能在不同裝置間同步 Firefox。]]> -- -+ -+ 註冊一組就能在不同裝置間同步 LeOSium。]]> -+ - %s 將會停止與您帳號間的同步,但不會刪除此裝置上的任何瀏覽資料。 - - 取消連線 -@@ -1545,7 +1545,7 @@ - 加強型追蹤保護 - - 現在提供 Total Cookie Protection 功能,這是我們針對跨網站追蹤器迄今最強大的屏障。 -- -+ - %s 不讓常見的追蹤器記錄您的上網行為。 - - 了解更多 -@@ -1707,9 +1707,9 @@ - 詢問我是否儲存 - - 永不儲存 -- -+ - 自動填入 %1$s 欄位 -- -+ - 使用 %1$s 時自動填寫並儲存網站使用者名稱與密碼。 - - 在其他應用程式中也自動填寫 -@@ -2130,13 +2130,13 @@ - 連結另一部裝置。 - - 請重新登入。 -- -+ - 請開啟分頁同步。 - -- 您其他裝置上的 Firefox 沒有任何開啟的分頁。 -- -+ 您其他裝置上的 LeOSium 沒有任何開啟的分頁。 -+ - 檢視您其他裝置中的分頁清單。 -- -+ - 登入 Sync - - -@@ -2188,7 +2188,7 @@ - - 等一個月後再自動關閉? - -- Firefox 可自動關閉您超過一個月未檢視的分頁。 -+ LeOSium 可自動關閉您超過一個月未檢視的分頁。 - - 開啟自動關閉分頁功能 - -@@ -2196,8 +2196,8 @@ - 已開啟分頁自動關閉功能 - - -- -- Firefox 建議 -+ -+ LeOSium 建議 - - - Google 搜尋 -@@ -2208,7 +2208,7 @@ - - 切換您的預設瀏覽器 - -- 設定使用 Firefox 自動開啟網站、郵件、簡訊當中的鏈結。 -+ 設定使用 LeOSium 自動開啟網站、郵件、簡訊當中的鏈結。 - - - 移除 -@@ -2232,7 +2232,7 @@ - - 由 %s 提供。 - -- Firefox 系列產品。%s -+ LeOSium 系列產品。%s - - 了解更多 - -@@ -2355,9 +2355,9 @@ - 檢查評論品質 - - 試用我們可信任的商品評論 -- -+ - 購買商品之前,先看看 %1$s 上的商品評論可不可靠。%2$s 的實驗性功能「商品評論檢查器」直接內建於瀏覽器中。此功能也可用於 %3$s 及 %4$s 上的商品評論。 -- -+ - 購買商品之前,先看看 %1$s 上的商品評論可不可靠。%2$s 的實驗性功能「商品評論檢查器」直接內建於瀏覽器中。 - - 透過 %1$s by Mozilla 的威力,我們協助您避免帶有偏見與虛偽的評論。我們會隨您在線上購物,持續改進 AI 模型。%2$s -@@ -2426,7 +2426,7 @@ - 開啟鏈結,了解此收藏集的更多資訊 - - 閱讀此文章 -- -+ - 開啟能讓您了解更多資訊的鏈結 - - -@@ -2480,7 +2480,7 @@ - 在 %1$s 試用保護隱私的翻譯功能 - - 為了保護您的隱私,要翻譯的內容不會離開您的裝置。未來將持續支援更多語言並改善功能!%1$s -- -+ - 更多資訊 - - 原始語言: -diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml -index 1dfb15c33..ab2caed82 100644 ---- a/app/src/main/res/values/static_strings.xml -+++ b/app/src/main/res/values/static_strings.xml -@@ -4,8 +4,8 @@ - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - -- Iceraven Fenix -- Iceraven -+ LeOSium -+ LeOSium - - - LeakCanary -@@ -59,17 +59,17 @@ - - Custom Push server - -- Stop Firefox -+ Stop LeOSium - -- Custom server changes will take effect on the next Firefox run. -+ Custom server changes will take effect on the next LeOSium run. - - Enable Tabs Tray to Compose rewrite - - Enable Compose Top Sites - -- Enable Firefox Translations -- -- Enable Firefox Suggest -+ Enable LeOSium Translations -+ -+ Enable LeOSium Suggest - - Enable Toolbar Redesign incomplete portions - -@@ -92,15 +92,15 @@ - Stop Profiler - - Profiler Settings -- Firefox -+ LeOSium - Profiler is currently running -- Recommended preset for profiling Firefox -+ Recommended preset for profiling LeOSium - Graphics -- Preset for investigating graphics bugs in Firefox -+ Preset for investigating graphics bugs in LeOSium - Media -- Preset for investigating audio and video bugs in Firefox -+ Preset for investigating audio and video bugs in LeOSium - Networking -- Preset for investigating networking bugs in Firefox -+ Preset for investigating networking bugs in LeOSium - - Profiler started - -diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml -index c333fed6f..e3c58c5b0 100644 ---- a/app/src/main/res/values/strings.xml -+++ b/app/src/main/res/values/strings.xml -@@ -54,7 +54,7 @@ - Remove - - -- %1$s is produced by @fork-maintainers. -+ %1$s is produced by @harvey186. - - - - %1$s deletes your cookies, history, and site data when you close all your private tabs. %2$s - - -- Firefox privacy notice -+ LeOSium privacy notice - - - We love keeping you safe -@@ -329,31 +329,31 @@ - - Stay encrypted when you hop between devices - -- When you’re signed in and synced, you’re safer. Firefox encrypts your passwords, bookmarks, and more. -+ Note: The word "LeOSium" should NOT be translated --> -+ When you’re signed in and synced, you’re safer. LeOSium encrypts your passwords, bookmarks, and more. - - Sign in - - Not now - -- Notifications help you stay safer with Firefox -+ Note: The word "LeOSium" should NOT be translated --> -+ Notifications help you stay safer with LeOSium - -- Securely send tabs between your devices and discover other privacy features in Firefox. -+ Note: The word "LeOSium" should NOT be translated --> -+ Securely send tabs between your devices and discover other privacy features in LeOSium. - - Turn on notifications - - Not now - -- Try the Firefox search widget -+ Note: The word "LeOSium" should NOT be translated --> -+ Try the LeOSium search widget - -- With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. -+ Note: The word "LeOSium" should NOT be translated --> -+ With LeOSium on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. - -- Add Firefox widget -+ Note: The word "LeOSium" should NOT be translated --> -+ Add LeOSium widget - - Not now - -@@ -392,10 +392,10 @@ - Suggestions from search engines - - Address bar preferences -- -- Address bar - Firefox Suggest -- -- Learn more about Firefox Suggest -+ -+ Address bar - LeOSium Suggest -+ -+ Learn more about LeOSium Suggest - - Rate on Google Play - - Autocomplete URLs -- -+ - Suggestions from sponsors -- - Support %1$s with occasional sponsored suggestions -- - Suggestions from %1$s -- -+ - Get suggestions from the web related to your search - - Open links in apps -@@ -641,7 +641,7 @@ - Couldn’t change wallpaper - - Learn more -- -+ - Classic %s - - Artist series -@@ -659,8 +659,8 @@ - - - New add-ons now available -- -- Check out 100+ new extensions that let you make Firefox your own. -+ -+ Check out 100+ new extensions that let you make LeOSium your own. - - Explore add-ons - -@@ -724,7 +724,7 @@ - - Received tabs - -- Notifications for tabs received from other Firefox devices. -+ Notifications for tabs received from other LeOSium devices. - - Tab Received - -@@ -901,7 +901,7 @@ - Remove - - Active -- -+ - %1$s may install and run studies from time to time. - - Learn more -@@ -1267,7 +1267,7 @@ - - Connect another device - -- To send a tab, sign in to Firefox on at least one other device. -+ To send a tab, sign in to LeOSium on at least one other device. - - Got it - -@@ -1293,10 +1293,10 @@ - Marketing - -- Firefox is fast and private -+ LeOSium is fast and private - -- Make Firefox your default browser -+ Make LeOSium your default browser - - Try private browsing - - -- Please help make Firefox better by taking a short survey. -+ Please help make LeOSium better by taking a short survey. - - Take Survey - -@@ -1461,16 +1461,16 @@ - - Scan the code - -- https://firefox.com/pair]]> -+ https://firefox.com/pair]]> - - Ready to scan - - Sign in with your camera - - Use email instead -- -- Create one to sync Firefox between devices.]]> -- -+ -+ Create one to sync LeOSium between devices.]]> -+ - %s will stop syncing with your account, but won’t delete any of your browsing data on this device. - - Disconnect -@@ -1486,7 +1486,7 @@ - Enhanced Tracking Protection - - Now featuring Total Cookie Protection, our most powerful barrier yet against cross-site trackers. -- -+ - %s protects you from many of the most common trackers that follow what you do online. - - Learn more -@@ -1642,9 +1642,9 @@ - Ask to save - - Never save -- -+ - Autofill in %1$s -- -+ - Fill and save usernames and passwords in websites while using %1$s. - - Autofill in other apps -@@ -2049,13 +2049,13 @@ - Connect another device. - - Please re-authenticate. -- -+ - Please enable tab syncing. - -- You don’t have any tabs open in Firefox on your other devices. -- -+ You don’t have any tabs open in LeOSium on your other devices. -+ - View a list of tabs from your other devices. -- -+ - Sign in to sync - - No open tabs -@@ -2102,22 +2102,22 @@ - - Auto-close after one month? - -- Firefox can close tabs you haven’t viewed over the past month. -+ LeOSium can close tabs you haven’t viewed over the past month. - - TURN ON AUTO CLOSE - - Auto-close enabled - - -- -- Firefox Suggest -+ -+ LeOSium Suggest - - Google Search - - %s search - - -- Set links from websites, emails, and messages to open automatically in Firefox. -+ Set links from websites, emails, and messages to open automatically in LeOSium. - - - Remove -@@ -2141,7 +2141,7 @@ - - Powered by %s. - -- Part of the Firefox family. %s -+ Part of the LeOSium family. %s - - Learn more - -@@ -2265,9 +2265,9 @@ - Check review quality - - Try our trusted guide to product reviews -- -+ - See how reliable product reviews are on %1$s before you buy. Review checker, an experimental feature from %2$s, is built right into the browser. It works on %3$s and %4$s, too. -- -+ - See how reliable product reviews are on %1$s before you buy. Review Checker, an experimental feature from %2$s, is built right into the browser. - - Using the power of %1$s by Mozilla, we help you avoid biased and inauthentic reviews. Our AI model is always improving to protect you as you shop. %2$s -@@ -2335,7 +2335,7 @@ - open link to learn more about this collection - - read the article -- -+ - open link to learn more - - -@@ -2389,7 +2389,7 @@ - Try private translations in %1$s - - For your privacy, translations never leave your device. New languages and improvements coming soon! %1$s -- -+ - Learn more - - Translate from -diff --git a/app/src/main/res/xml/tracking_protection_preferences.xml b/app/src/main/res/xml/tracking_protection_preferences.xml -index dafb55806..db6242344 100644 ---- a/app/src/main/res/xml/tracking_protection_preferences.xml -+++ b/app/src/main/res/xml/tracking_protection_preferences.xml -@@ -16,13 +16,13 @@ - android:title="@string/preference_enhanced_tracking_protection" - app:iconSpaceReserved="false" /> - - -Date: Thu, 22 Feb 2024 09:45:49 +0100 -Subject: [PATCH] fenix-patches - ---- - android-components | 2 +- - app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 2 +- - .../main/java/org/mozilla/fenix/settings/SupportUtils.kt | 2 ++ - .../xml/site_permissions_details_exceptions_preferences.xml | 6 ++++-- - app/src/main/res/xml/site_permissions_preferences.xml | 1 + - 5 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/android-components b/android-components -index 868ab5a..2f13593 160000 ---- a/android-components -+++ b/android-components -@@ -1 +1 @@ --Subproject commit 868ab5a098f62933b83eb70dd41126b3971ef4fc -+Subproject commit 2f135938b7842257f108e0b4274a6f5bd0f86189 -diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -index 805ff66..1e9a4f1 100644 ---- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -+++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt -@@ -18,7 +18,7 @@ object FeatureFlags { - * This feature does not only depend on this flag. It requires the AMO collection override to - * be enabled which is behind the Secret Settings. - * */ -- val customExtensionCollectionFeature = Config.channel.isNightlyOrDebug || Config.channel.isBeta -+ val customExtensionCollectionFeature = true - - /** - * Pull-to-refresh allows you to pull the web content down far enough to have the page to -diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt -index fdabfeb..3efdfd5 100644 ---- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt -+++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt -@@ -39,6 +39,8 @@ object SupportUtils { - const val GOOGLE_US_URL = "https://www.google.com/webhp?client=firefox-b-1-m&channel=ts" - const val GOOGLE_XX_URL = "https://www.google.com/webhp?client=firefox-b-m&channel=ts" - const val WHATS_NEW_URL = "https://github.com/LeOS-GSI/LeOS-Ice-browser/releases" -+ const val FDROID_URL = "https://f-droid.org/" -+ const val EFF_URL = "https://www.eff.org/" - - enum class SumoTopic(internal val topicStr: String) { - HELP("faq-android"), -diff --git a/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml b/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml -index 6bb8cfb..1c15b58 100644 ---- a/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml -+++ b/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml -@@ -3,7 +3,8 @@ - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - -+ xmlns:android="http://schemas.android.com/apk/res/android" -+ xmlns:app="http://schemas.android.com/apk/res-auto"> - -+ android:summary="@string/preference_option_phone_feature_ask_to_allow" -+ app:isPreferenceVisible="false"/> - - - -

BeL|<1@U|gTx!n^BZI`^kpiSoV?_pm-+t)?FEHrct3{WD-cHv@xUQ9XF%1MHU`GW2fPjVq ++zx;N+&RvcM!wxufpNe$zIAr0A&al8eGbZl_Uu&i-!AffVwgbuYS6l>_9Kw_{I)%HVA ++z+^qSJP68leNyOc=-m@c0RvgxD7$f0&4vr&=d+)j;fg~iU5`bP8xgx$}N#I;V0tkSL ++zh#(`NhaiN+1OTd4Uc;FK?&&*=t=*xa4aXg{q1uWq@n)o&NB~<$c<#_L23{L!~G8w*mkUs6C2c)KRa>|Rc--I%buNbC%mhg ++zBNYpxx&f%ndc4-KpX@>cXze8I?unqmE|E)iLXKhKSt<{DoM|t5&;Yg?ARr9@2uJ~i ++zfK&-cdX*d4`X_*Z9WAs5FF;S$ATl8UZ09bWOs(+_R!a9+TP$6tsKfvW34yX2ntw(7 ++zADs^cKxwewJ%IuhSegJB11J5tGK2y_^%P@RhYrnDSxaspA)!iY02D^VBl!uhoT3Gj ++zhmmOw4FpYiNaKH7Tm8ecI@LM@Rd*@k5er~I1wdfiwuK%qddlk^0ibM3XkY>&1C<=Z ++z!s9g#?x%qQsP-ZtAsI@iat#{*2}MwK)&Kzz8x~yg*@ETCLL|2ZRGtuv!%+P~?3}_q>`&oFCjnO?!?N#=z&b5}TU=0Bvp|~7{R@)P$ ++z<4J2rZVtBD%0xz)+9VaZl1%_Psz;o(7vBN^ztJX(r9zx7^l+wPb4rwxvajNq&#%1@ ++zfZ5V@_w*UT#0x};0{fwj&6o-f4XA(wR2Aq|u3-c9$OOaJ0Xvi?5G%bboMxrAu1MK} ++zs756K0#cP74*&qTt1^GLR%@U>acYP51hMp{)l1(w*Aws713>Rq;k|q2n@vFQ2xQyD ++zjHsA4g=r&G1?c@GT0bSvMm ++zFR(sEEMWo1$Ju->xS#?AT0D2p3SVZlW!sRan^;))1D*4ym{MlnVPxLG21>0;xS;d~ ++z2?0?ME9jsAV1gUDfbShUA}yAZ1VCX#$l^T{TeTc(Evs3;0v16|_Mt0k=?(xokLb92 ++zp5RA|Cdf^=mPC$-hI2L!At?jsC2Ps>hy?`H$K7?f2t*5OXdnP2gd)`)E_u;Lsg2Kt ++zCnPHvHnf<$uhCHl-kE!u!$NYh1BXFGNrM1rMBwg0FhVtuB4d)YA8u`BGMT9$7$~2i ++z1?;*a^`QZ1!3tI=<}3)Qx2grzj(lcxozw$J0GJm0%{JMyff|l4vAD{-i^WlR(~Y#u ++z$bM7T3BsZ;rkPAJ`NVm4;IRY* ++zKZFDTfIk37BKnPEBKf*8CCdz|0YEnf1SoulHx<=^Fv41d ++zNtoT1^pA5}`S4Z0Kl6R@r;P6lVoX3VpaTF2a{v{TgHT$UN8E|G~@!QE*A$Or}OG>H0~8r<7}1v-S3duIrG$# ++z6<-%3Z;7`P-mQ;-0H`xZ;V0=9JA@N*yNYc$I!FNRpTzrM441?TcR_(ve6m=(0;VIE ++zqugMj#PzG5DlZh}jGN!&qrZ(w?(Ohvn)~XZ0PJuozDJeWNBsXnnr>780i}%IS}=z6 ++zRbes*eE^!GdLIS=)A`8aRwQ&!xR-KyzgwH9Xy?qj;IZ$BiE=A^Ldf&1R@{mN0U)vK ++zAhIHNiClY@VJABX06OTs21ap3itrFrm^g6MIRmC7XRWk`xnTKY^7+q+m*G`Df0_GX ++z-Udjwu}ANDTOHeb@7jq(?O+SLFq-isR7ePuvWJ0f6c1>?(I~<|gsN<87Y;Xw%u0C%t)OpeUdLX1RIM3`^CQ~vPo8;@FUi>EMcU9lx?0f3swEo`A<*b55D ++z@NxhNyG85|!w&%9QwqP9yMA^UP52WYfGBJ}Zq8j05$2~w|0RkN;@`* ++zDRTh487g4h4hT1p;|z<_6}f>OBs<>wfS?xAcmRB)pL7DiS1laP3V+Bu;LRNoH!D|B ++z2OxsXc9cBPH-n>;RKx(uE4AJZBs$7h9POOiYtT_Vr2*xBL@yE&SZGgiQ3ZTAh0FKw ++zr`WXraOG456>GXOHNgaMWg~sEFOK$V3hY4eH_3M!yp&)!Q@2hP3z$PtSnFp=&?)8g ++zKBPnez7fHN^;Ai1qumQCI*cehFahilQXVyw>AoE-#6knm!2)rMHrG;_t1Msv3Bk@+ ++zxCkG;k7y480AOJgM*+K`Rs=#aAOSR0EHnVXWYrK32mrM&oa2GX@(_zg=CA;e008QW ++z@&V(^006+U2+eTgb5JtFBG>?cfNk2ZF+;$F1c@UH*Z9AT8=Pjjg@vCvrBn5u3gu4# ++z0O0EuJP#eqsz~RANiHY=5)w>YU`F9X2tjoCr!!c;TU_MOMQ< ++z_!iFcm+vQW=ne%Sl=vXQ)CGpr3@<>qqUVdyZS*}o|NDi7L8_HEAR&Sw8dCEqL;C=9 ++zJO@$!-!F^22q_Q%KB)-?0ATWJQjKOvSd!kkC|Vd>Mh3<4Kg`>Ss9`G6s@Lu>6@-{B~n)vTkJiG5fc7#FSVrM|pi%ER2T(pbLM6D0zoVUT~iT@<{)} ++zaxpj4<0yuP5Kct+P~+Ppn)fgF!(I1sI-He{Re;kjz#cXkMC$gc!!1>_QNJnlum-e|obNhHUVf_0l|L=!hTN3Lv ++z-H#XZA}o^@A^||hm1MWZxA1~{C=gd9_p=4bVidpziB6ox_sRE7tNaKzLZc?W6C!4# ++z?oDGrR+EyU!9+v=1n^(*?!2}Ch$e7PC6lQ03I8Gp ++z{*91K)-!s{W?7lCGUNp5K~fSK!Jf$i6~KrP%G4EfB=t!}RF{MLj>bm^0q}2*WD*b% ++gFJpU%t;G^3ATc{aj|m_E2?_oUl>hgi|2_u*0CeJ>hX4Qo ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.png b/app/src/forkDebug/res/mipmap-hdpi/ic_launcher_round.png ++deleted file mode 100644 ++index 1536d6f1b02dc52abfb42bda6855e77c845ae510..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 5056 ++zcmV;x6F=;UP)> ++z1yo~M5{7ReE#vJ%gt$NycY?b+1dFvmx@Q*|cXxO9X&HBScXxMphyJ&2I4_d}Gz)LD ++zo}BO8JgZyvzpA=7?BD#6OmJY#v>J_FavKB_5Rr{@`bOO#cQ~>PEEeBN ++zr`hLqCIqghz&|4}fp3oZ1-OmtxJ_=GU>rWD@Isr7@6`;)0#|r^XF4AUq^~U ++znK14&dB;K|`o`>Z?BFE$wnf6v*$IA+a6dmkNwBZ^9DFWkd9Q!8qKfe|rW+EXmAf^r^|oEs?@Zee2PM+om}t3$=y& ++zLWKSMw>0VGbr~g;(6TvuwuVN7OPNp ++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 ++zJrpQoVYpD}pfWep%!A>;Hxd8yr^8rv#7hk3C ++z*`*lQ4VhMCzZ%~2-baEM(!j0)nyZdeRkS-dn5rI%xXh ++zOrSz4#LwWS`jwl@#PNqUk4BpA9s5vwKDxMSW#U20wUj2 ++zMxa?p^0&;{=wXED>LMQG ++zA&;W}EUn|7qQJlzDj%&XcGIG=ARTOKp=$3ust+uu`e9JU5K!SDiuih}j;^L;xSe7g ++zKM?gTpoH@fYSh;Z%qsWO@)F-)8lhh*K8bHEe39hGhze&`Al)8~b5qD%pRTbVLJi&} ++z19gRAOc0=vw;&`rKH6%i-VVTH6rc9uOA3ngdcPik-|cKYx+=OhJ+zT-R{-r-7?4Dw ++zHBHL_#L=rqJhT%)i$)JfY!e$cF>aT>+-fpNmyNOItjJwJbTTkw`68) ++z+D!4_%I}*@q2*$;*q#q(3?M1rg0C3GO%ea%S88JGDSOGWQG+9Gid%BTI@)?iH*LAK ++zn-*?dPmQ&k3&vQ>E}+dfchmN}x+IUZtP#L)-AbzwnUocun?UMdd)}je`_m8up0u>GbQLWZ9H{x5+ ++zTOC_VSx|fHZ3`p4g+bY`Pf~ZtH@}Zt%RI43Y!e$N`jt9Um22C}N;xgH8zX@wZ_Axd ++z`X{ADrL(a1q-9Co94P5*i;=pdPMf7>v)CZEC^k)MsS=eo06|ub$&_3Z^2~c8 ++z74H0{4Bm!Xl_>H57nanr!=k!j${x?AlRT0)3q`_srEICgWJ;`+I;C#0VdPdbai1wN ++z0F$PzfJ&*==IK7y0cVH(i(XDe+J9OTTgT3A%n454I-(@4KwnrA2vIF;;b1nc*Otxo(Tkedv`T--4&(f#o0a4#00GBV9kQ ++zigx{uH@E#sB!8#)SR&N+ZAl|(eV!RtN?s{LX)RKwSL%?u6fpbTN5v|Y0j6^Kxmh7r ++zoK;m^Ts)1{Bu?up9dis?-+Yn$Eyws=qok3vl1Itwma?QwDSL!l_dW-!M80hqlc?1; ++zD^O_%;84JMSw2Nx<(Na#NLtAwd8G^~3zOheq&Pa2RSbDp0DqZC{+46PIn_jVxc>zo ++We*VS|Q5IwX0000F3*j;9DZ1{|S)X ++zd$ED4Iz~Wk2_TX5<(EVfKkX_K`|PT!*xogO?FE}ilH)W0MdA-`LdiA;M;`^Hkt8Yo ++zpkATG{KNYQoJNx5NExU7H}IlP;)9Pq`ab~x81TpdWB?cdAo8U-BLKWaKy|?>uG;(mexvsO3qJnRZqc3~ ++zI)*;0tzW)81t5#9YB40i9(n^-&)BsT0mX1EQH8M0j$y2SY^|}C!&twsD3}>42r)*{ ++zDTr&WZFLkPt5Okz^(li{ieQ^ ++z+q!Anwr!reAR15y{WNGb ++zAWkaf1F!7Pkw^zpLw$g?Z^R41$pl?EFsz!n7IRq(AW#zcOyj8z3=I%W5CN8nbe>Z* ++ztdzOAW6j*5Zh1e69+qhh;C&DP7hnU7k&Y4>`GFts!t8~p?!DVs?zXOZere4O3e&Jb ++zhsicc>Ty^2Kds$8zeV|#6!I3xG!>+5&gP4)lO ++zNW=rWMq<54P`6@qbdHq5X;U$BoNK#z(YKc@@1G^gkRj;-@e3o#fdwHg8(CIPysKcB ++zF+p>d3lyP#B{_P}sD7Qu<^?}8(&MOhQIVnk*KoLrc$bs?^AX}C_t(wM_bz_RWtm0XrFbro-m;^?s@ihft?l;TTyN{% ++zqu0Cez1JshuSs*@Y4P`ofBNm;`fq=cL8-VBX<8|&TR*WosiBC|cFJ)$Fpo2r2BpS` ++zaQr3251#0{q5S`A3_kD-7l@&)tUhB*uOXvj5G@TAh&u6T5TnYYb$w@ca$Y%jrAt2Y ++z`{%pOi>F2%KO=aDd9vw8-j-#2<7@I^*SY;C{@94>PArv@@qu~3QI2XWTPbobnDWHe ++zG$r2tMm3)1rImc(HpR2O#33QbSde=^X^thA^!m<%UZJOk=HBuVgf9w@#{6*yPV6tb ++zB>Z4S8Sg%7WBZ?;rV@_|TPGL!&z|BZeb1Zgu6zG`9JA6_e^+$Xi{85X@RL^te7TB3 ++z#Qz_g8L3no*>-~DDA)vqtWLb>ulYZ|GveahPuy3#+^he3%v$gI=|!d2IcqEX^NMJI ++zT&~f_+ ++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 ++zT=WOgS0}#;7?mKiFWT>Y= ++z1C#Ir4F6*I7fCX#Q--pAD%vpq(2Zj2W@q5y(KPLB_=rcIa<8+^({GiH>hc!tUthY> ++z^O;wEj%JCg5TkGCGE+b3W7dX&)|fDl5!SPnvN ++zLI@lt>p1bdZw*Wn-}qcV?)QWld6`Z7!nrZOy0H4MKljZNfBz4Y$W*yBZM%i-lGT~! ++zSBiMXO?xJYg%fWxt8SW3W@p7RA9Mj);2rqKbqvtJ1{i=w1SJ7%84gG3Nfof~B5`6Pp>J2#K^e-En ++z{6ksVx*`(E6AFb2$ON!$o&vSeg*_W>+meCF!oczC?>bwg5ml ++zN`@I_n1481+lZKhD@A;jamqdR_5Aq0w_&yCZA_Df8DIktV+vt@1sB?AMQRX|;=oZE ++z>*ERZN5=J!f9=PGa-GFSvo;ACDnM)DCdhNA5*Bo2<~1^pg)zP$9FhO}bs9ZaGU=m6 ++zJ#%Pc4Gbb?1BjB0ayFxUz4LIHh&hBZiqW!KdFjVPJNT^|F{&b%Vu_{Epz ++z*%JT$pN!`49Kr&h`=uYPj1ixzl(`1z$_3Ib5($?)(Tq4N2Bj7Xz2c6}C*IAbTli0P ++zl&EI{1{I>SCBT*%bQ9#=!=EE|B0ganyJ9iWaLG$Q;0kTn^D*j!pJ-?N=5_58ulY{w ++z-z_6oEPy!gtg8M0uLGDi4deHpM~Re}NS}mJJJOkG;r6=ZA<2Rt>+_h3F-{1^tCVYd ++zt!Cp_G*jkQG5|;jGfIY|oGn4aLh$9&aQTStF2+bADOa@sR3CJ5uWWmr%oL+yMOZA{^Cilf ++zV;8WAt11|$;V8*)l;J4#2x2z^mxwrzT`>kU9{AK}Dx!k^n(N9u1(VZj$ZQiS!`m^m+Oi)FhL7k)=TRn+m4gc ++zZNu?`+)6%BP=!Ivm^7X5F98ui+lrWjD@SyHNi4>eUqbATc(4`hxKO9Sy#Do021UlQ ++zzHvCZ^0IE!VVQ{jTNYu*o?){^?|0a&gm$x_O^CGOI_{LYMlG<^yW%c(kHd;=W2wQV ++zc`rSW$<^(R@sFc|C1jQR?WME4(K~Kfp(uUdoG!)~@Jr4n#x=0hC^sJW;FHW7-OL<} ++zYb4fjXnN?)Oj`{yCdAMF4hHOUkq^I#M*nIw>(E6hh(5@H*c6FT%i$IwNG^b-$J8;PfiNOah ++z9yDc2uok1wyEaTf0K&a?06G$qL%zhwAvtwjlKzqftoV^tO>6zMVYOgUyUragk`WU; ++zLyRP6&Lmd#DujUOg3SYENkx5O4#R@Z;BWr)rmf2LWux$AM-H!tE}%=;Tm}Xh`*rX( ++z_dwR-a)kHi!O;Beb@qyV>n)Y1jOndIYEgNLJj9wY;7o)B6pHq@^PkBJjnpHJl%qrq ++z`~8abP^ZPCGx@s3`@)gMqr)#6<+=9<3=D2lhe4@3(>((DgbKR=v|+2~)zA8a7T^4On5sZ; ++z4vMxLY4Ly)$Y`*3+7@gH{(PGoC62|Sy=%@K@JHm$>o511g-f6QHGlu3b>jCQ+9a-g ++zZm&%eC!h~W ++zhybHS*VQ2kXlh^+6z1npJ1O+1pZ1l1KmKJO`_Ij-6T>x4{QRq3@_`S{#<*1&i+u^o ++z5Z?={0jqVWLHV{A1rdv8%EAZSc%{1us|6C;EGqJV3M4g{hh5u(?Me_6f=wrMsRvB1V^#10hue!rsC-Dr ++z{eS>RC(#BhYK~tDwW?E{;nH#<0oYudTO`h66iTO_h{;-Lt;6;x#pXqV9QF5uEdUll ++zkb&Kw2BRWm0=&s!ZE9YoA)5Ej%Z(q5A7fq!-(n(^3XDT&5em0V+#Cj6-{IPp?9M(9 ++zr2kT!keRb3-$1zdUhdAOu}E+LWmtMP%E0`gbfrPHSMM9)t}Ts2S(qW~2mun=5p)C908STCipEk{Xxl&4A7SewLm@?SN)U$AzHB}h%mA@Q^U=5R ++z&0G_?6u&f$hWY>wjEAw<6bJ}XGG%K~(hl`UR2wKK ++zXw{Yah$_Ilz_(^!uMW2s}k2Zh9%tnbUk{7HRxfYhD43quPGK`%VCH&Boavevt4XNz2 ++z&Nso6H^?IUt_+r=Hv>6~1P44(wEq^7>)t_#8GGghkI)CsQh+ACcziG}MFtG4s72oN3aO|YG9I;k^s2qugv ++zS3sru=%o|WO3t~sWG@s1ivnM+$w?QR=0qXXbh;F^39%Yksxb3MnW;nEj=f~c$u+627{+QZ-6w#kSIsqdWy ++z5`L_GHjo@nutVA;CDI<)9`??^{~f&#aa{&hkBqmL|&@3ovt1OBg#g5~|u{|EodY5w!(Uq)GY>$H*3Fo07 ++z>B#qvH1_X*e3q+wSZ1FSEMgz~%#wuLF}@<(R}CU4GGCl(67W5@FeRaL*%uvdf4G7=C7^k0p*`Lh!z-l)ti ++z!eRlcDt`;cj|3XQoj|-0lxjBce4`;0P1pkr$Q>J>Z&yn0#n5Q9j~13*&J{-JP+&L$ ++z@y*R^_wGM)X<#hM$^m&(0nuucJ3u9z%($^;TOiO{Scbq5EFYzXB?M?8>_AsDz}Re7 ++z0E0O^ssaqn9jPXW$^UBlf=TE0fKB^q?EFcEhxV6vc%a1YSIcbuVTBD(dX&cu ++zg0kRNw3dKI%798`9E~Pls%LGu4@>~(s=e5?bGY6N;mTcjK^fC@FbtbUteB?vagWsx ++z2T@Pgf#quAtqOolpTsW<3KvZp(|Cm;Oz9(2J-EeTRuv$Z?*pzaJ_ml^)k|E~czNO~ ++zspbv1DE(l%(J$d939V*0;n6uxX^{F`pG*2pN25n74j>oT<|{ ++zhf_*(>UXC(HgJKFcYW-nX7kfEVy%isgq`4IJjt^)&HB=Ht{Emzmll}={X}?rVw80f ++zda%HoX0oOTh|@@-U9tK>pGv-pUG&)fTpx*UsGJ|hJpOMA7blp!FvXg!S$6z%1D!h@ ++z01_({UAqGoGj1pN$neo&g#>lv78ydjh_F^$Y%W~pXn8wBax;x&Hp*y~Nn~Pl?_E#Z ++z?hL{V$c&!hTlbCfT=xfjHF1osnKP^}e}G%L3TT9Yj%^{rprL%Ghu2qc!8T(&5(;L$ ++zMx8|i0(g0*!hY*ALzy*Lwgm_Pr1H^0m6-HtYtq4yhk3E$Nr-jeeC)bewZkD2e%PGN?l`fM{v@`2o02F0*qNb)$+a*jY ++z)}?t4neOH&Jb=H# ++zrMIIEIa%O+d?X>OF}WLuBAPS!0PLY3$Sqtz5$Gh&F(h8}3tYBh10XTb2D75;+og^9 ++z_wCqG)4+9n4iVs?acBba)PXhk-_j18qKbjRmq`K!%S8YkSY)udgvZB}ZpuodbYH{a ++z1By}AcYYZ ++zOm2yBJDP`Tv<%iLc0073uaOw@XTvj!&tYcRNdgB5na^O3Q9QPhpapm)`YD(sq=Ets ++zJ%7vd&@00{^y)Bc-_9d6x5X()zWB;8yMHml1N%pCW+XKf$0 ++z;*Sy@9kg%?pKSC+gFKMI0>F@()=w(Tato5r$_zAiSw=;~Cjw^0Fu0#42C1?Z8xW*$ ++zI8POT{`zRan7fgs01wSJnm7wwMRI}}auiU^xAx6x{IeCbW=X7K$X$P)h{DgMflnyY ++zM94UbPf^@OoK_qFatrSR{Q$VY9~s9-vxPYK(9E~#;43s^FkfY?%8_464!xA-+(DOF ++zVNG!O=PBNKG0n(PhgrodCjWY+iIdM>rsv=U3z;C`3IRiaLoDh{56xiXowz=;dr9*I ++zX{HIel?kDF%MJ+R8J0pI7;o<4pd&eKOOBX69~mB(M1YSbi_PP-@E|ExU?S1{ooSqU ++zXV0GlxoB9yG1p^{7o!sk&;V3XObW%g&=gIRv#~gXH(JqcLMGY}R-C1hu~rWC?gBt) ++zjnEP!s1UDClMHI~c{Mh8Ra&KDt+siLX5M5PfY%pWMvt^_;*6CdRUXGyK7lZ)SutvE ++z3g1Z*3KODNEY`dO2CWyqX3n(+5CTkh_M@mNJ4rE-r3hSA0q;v6+xKWIk0XLIBZdq4 ++zYtY{hxdxBZxGtqwyDlf&QJQ(LrVSdaTr-g&m=<^iG5ZFN(wKo(APlHZifDe^l3}9_ ++zo0^qmEZK%s0hP)nP5u@~OiGysC;;tajq`w5h6hi15 ++z1pi0%zp16~&m6rx{^4tY&m5w`F{=x7HYeAtvmGbFG75aZS||?>0$1z3zeoY~A`V#a ++zsSTJcF9}-$*caBr*9jKUPrp^%u~D#$QYX&q9J!D?)aU*SMyu)o)@W6N00000NkvXX ++Hu0mjfEdWXJ ++ ++diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..a3c7f6a76f771c56c70321f66a03efa4e9ebcf9a ++GIT binary patch ++literal 2936 ++zcmV-;3y1VlNk&F+3jhFDMM6+kP&iCu3jhEwFTe{BO(eIl(hdpBuU>us>`k( ++z+qP}nwr$(CZQHhO6;owpS2ALe5fwS!ewSm<Ac_f{o%ATBC4uw+qSJc=u7CKZQJJ5J+p0h+8K`czxSndZQCJ9 ++zx>98;GvbT#*tR{hv_0#YrGJ2Jd)ce8ZQC}otW<<7NRmz4>b17_zQ^ZW8_%|F+qUiZ ++zer@~Hwr$(C{f@WR1OS9@&P_l7=*tF(U$yBMzy~Pi%LZfviGXJ6nLxk-0SE(D+hmY2 ++zAdL|y*%^}BVV8->v#D4$%r;rzvcLzpsSk*N{1;#_8Xy28IeDP1EDBF5$`*=ZHsNdO ++zZ}2UHa|sz6MKi5798;oLlXzF6?%aTTr+0k<>>wu4biNxue6B8Ln^H%t{p$8MEC0{T ++zo&G*j+MF%zi<$Ggv|(Ojx#Vn;HJK;N|1(LNq}e9z83M;X8NF=dsy#7h&2AmnN}!XJ ++zX_8Hg*XFGe?;KjV@^2x_d_%^+SncBQori3;k(P(A{??G|dY^Tfp6z+pId5)NApI>?^5*O#-+w(Z@~y47qTIagCq~#-Yp&{r(W@DMEN5i> ++zzgQwL-~Ro@-t6J5pBGas|2MUBPC0gF!F{i%r9b(M*S@fnm@hm($7mMMv1c$gB%&Xm_7db7B5^mtmx-|YKpU|h{ZObJpvGb ++z^iY5!0FH*BM-WkW6%;8MrRr-d>{uL`)WZ$wKE{^Ub7Yqt9`t-+I)vPuAgrjNYny>TkC-i9t`-*hTfG~q%CI_r^0=+UigBTz| ++z-_D);21rmtfV&v8oag?uywiWKHFi$)vrJu@-ZUrxui?m}GwzTj9CBiF$jChnr3KFS ++zFoR*CM9>@rG~i=}BrcE;Fb;u4{5V2_M#kYLz(tHo5-3MznC*#8?^g+u4ef0Xra7rw ++zCW=urBcR#2jKAWT=Abb`j#{D!Nq3TE&}yrD_G`{2drg9Z9})JEekk3#t9Uyd(Le28o8BL ++zwy*HJ*W5g6xovY!twWl_qVi>I^I<-nA0acM)-ZGLdbj8P0{UDo`hv6Q=)f8(^h}>E ++zn;`Bx|0&83d`wq!lJHIfnf$_cFp@9T?Fhk0llXXq(~jCt?cbOPXFw#C7~cN(JGcn?$XmEMMjS9chn8_N`~LDoz4i ++z5~DUhjE?*Mf%;@3b2%^FKnCbYUe)~)rF3>Fky)s5AqTOiijF7Sgm*VS ++zKpf5^<)^aDQAn>cg$))`naoyo>+WuX>Ll3DFnHd>w6B)wlHQ~Y-(WYC={(Z5TS3|2 ++zX4;fNo`K1sE#VDci)MtZJf6hC_ydae7=^`qq^BsChKP ++zp~%+IO7ekmvvoG&q|SXigM_KXXk_Ati^OWAoLoZqS3zuhh=_;ab`p~c60_FVPWZ+* ++zZ;Wz|rci;DP{~-!WRIDSfPsvJsAy_7#mv-L;`z6{C#1J;urrv}`G?LRkT3}v2yl`h ++zQAvWt;8L2~J?vc0>t+fXtNpez{_{?8{NucjV7VOLp#VgSm9 ++zAu^z`{Z%h?9+ze>5NO}dDgiAd@Dh-S#}n~{i~g52`9F3A#}AsM?3t(7ce)*_wI8B< ++zvtNAT_>Ic7_cc{c-FFN|>*%=h^+y4gf$|_MxxA3;OQMFTv;5eUy8qw#yIKPJB%%`D ++zP=;@yQ^(NTi>i^~LzVWW#{4?-q ++zM-bU|VFXvuG#stXoFmcGDnf!L0^B5U5hET?#1k$TqoFu}&_oF-j4j?53-9h!4mflQ ++zii?k=&mLVPK709Nq)jHw{;Fg3z32HKyn8RRQ+L@nQl3~6Pq=36LW)IL{nXrHyDc5KjPIFUykZ9yKK$WtW~bVldDpH ++zj2siZjkH?f-5;rqSm#dZ)CZk3wA%+mP~Nh43ROt8V?2$b+@cs-6R`Q)ZRzUkW(nVY ++z6^&XpNGd|P`?^lh@E%^d+z&dc*1W$%@)g3A@xDW<|8%I1Z6+ya ++zO;!B*OZ2C}NG>0_Mk-3H1?rW%Hf8i@H$)d4B4xv%#Pf(7<~gRyCA;ihV+VpFfStrQJS~H;Zq6{F=-w?*L^CWss>%hDgd@ ++z%J{3NPK@!PKfay@w+yg=L6AiOZb8O$t#;(Y13IavW;u~>ItP>9l->#7vXM1;pfRQn ++zkj#W5;@Fujf?oLJN5+Fi3t1BaQ-vG5$GZ ++z3`ucgW~JsBPJ`;jI|rci`k)?g^NMo7dP9t~^YT&Ya{MPK=h3N*r-SkaMKt6w#=IH! ++zOVQULf)kqZE2#7g&?t4Jlf&PC>;(%9wrC@>sHwYV4q=gLz1_#zTbv6x6>N^D-n=P~ ++zqSOXh3>XHxUVJXctsIrPoN2LBs`#96btk1OK58z0zPdvEXk(xJe?2zTFqyd?Xd2EjNGN!01LGa;wWzm->s`;OOpPClKjj+Zs ++z&Vtlzm11$6_2%Vm(V2sK9=l;s6JP{*z@nMd0A!$u3{8Lu(4-ET3A%)rG?T~~-bv4Z ++z-zt=dumb9TExtTu-d||mK9CAi*G#IA2n3m=CcpuiGLnY@mYLLxshJ!mzyjX(rvBf6 ++irhqd^nlVd~9148wj_As_R$(P;a>m>l8B;LXR ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_foreground.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..ce6e3ba0971c5124787faf80c3abef003ce27daa ++GIT binary patch ++literal 4640 ++zcmV+*65s7oNk&E(5&!^KMM6+kP&iBs5&!@%Yrq;12}O-0DH(W&^od?YJS$Vie@`(m6w)*&3h#Z23_ ++zIjabA?p*&T0QT!-NCZHnBk*VOHI!;VOY+saXlNX*OhZrNX{ZJi;4jhw`NQc3Ki9S` ++zj%?f3^+seC<6vfH_yNP?F-#uA8$McOF*EqX1&^7>@Q2Ba#R-B^N{X*_DHO^UlHJ=Y ++zPq%HGwykYjZhed~xt-2gYaRPswi&z96*OYD!#3jn2l@rRuGl%T%jU5;7xr9ppf@_U ++zZL7AGzV^9(pMH1$xI^xmdLgI;b#Qmc9YQh)-Q9WLpIg%g`6o@%lxtJY ++zwvFOA+qP}n?9RTMZF{|T_G+7}nMOZ|l5GWT_Avn^v~MO)O#B3he6X%4Np%nB^SCtw ++zj}mG%!6{G|tW}oE$SA71QZTk%a@}${?AxrM8qfL7=_&=FgVaDULJI*h6B0Gj7a;{7 ++zgs{4)UY*y^-qNW-@@@tLBaB8@xB-|^jDo3Y=8wvY#)J5@;dxnn%|6@H@^1O~dRJaV ++z@sn!71uB42yejEJ)wzk>ty7X1(86S%G#Xy8M#w;DQ-xMp-p^*UjH?z)AU`P7XnKyU ++zhoM|SkF3{A&B&Hc^=BD(f#K&S ++z&Fd3BHp~tcd%|f?`pWtWflqw`hfFT}$)RIm6dJ{OpDrdqwX#`v>a0nZC+A)th<5)Las~r+H ++zDjkN=wrx=tQdx|+a&X7yy*oayj;B_ES};Ov7VHqaGdd+-o}Rgc{3+iR_M%fwTaYc^ ++zK-^=&IL&AVIDsC5$--3srg4K?iY7)@s8AtTg<0l?n@Bx?rZUinzJ{nzw&B$9>iFQm ++zv!8uqVC({j&4NuTfy^cw6Ts=SbZ%HN=PhW1#7|Eg1v`bUN|hp%oA^7n%FT{C5@J%V ++z@|23DRtDi3i%?5}2t*eK&;}#{myxE^#`!ZZ&n*}GR>;Uw0_z6HB_+cqIfhV!L^)Dm ++z14|#n1!Q8RBmYP>xM^pH%2CJF(kEML-*nCU`Dh&xvqF4aZyM*|T ++z_kx680zwo-4+hYJ1Q0A5m%-&^s+Z}@g+m%=D^OLdK5fdR6OUvVq?Vw=<0v@Ks0-EJ ++z>nA4HEfvUAXpKUpc&+Om&{S`{3w)iEEnxykr2_-#0v02XnOsIbFyu7KWz3$xOql^G ++zlWr2f8P_SpT_{4}pY7Fj7~pa#9ogf5Td&+D+yfQ>_i|A6w5PVi_I%iF`h5-@+ ++zAX7pqENhW~1QIr=LADOSRLu}30J1LxY26^8&$9r>Ietc-MM_3 ++z^h0L7nR=*@5J(`{fYMPIKnDVl2|G;+RRhvQMo~JD>cv5$VFY8CLqLH5kom92@$>H` ++z&|(Qh?~ZAVeux_^U0Yi?i146Wigf}Yg)+&YE2rp2Ft?e?8RVj;en70IHJ7Q0ZaDQX ++zFp?C>R8x9F$c%&uzrY2R&=%B-6F1-oKT2*t9H8%Uzuv5O(HIM-5{|9ueU8>Xy+6X6 ++z;d$yR5OTCaQK|Er+8fT?-?a8KdqixY_<>ARGu{X2Jftq?qK+N^Qs&Gxt|L@aHq6it ++z`1Jy|pz17B?lU9k3$h?@z+WE2_kNndF-jTNw}KACQQlM+K{t)HHl`{NaGAx(Cfvdq ++zz%d=?&(P^X?+oqkTv|(S138F*v?Gm9G54zYIfdfKe(>uFmyS3;!@JP_XS{h8@27Mu ++zI1Ooaj!%0~AOQCN!wvY}&&b&bjDosnLz ++z;y1z42Nv7VuHueLzVKxH6BUhQ4EO0*(I5~LYykS2E+63WJE&hnfdEh-K;YgyIJsCD ++zoGJYJcYvmZ;GUJD4=jFFBlD=w-vz5 ++za5vLou(9_fO}nYaFu;9AS%WvU1${sP&|rBz4qxJ2FeuP0THU}3&6NcQ1^b2H{67Fi ++z23#~0y(&qM)+jvbB(8z$iOafvIr|L^=kUXRdM-4QA|Yv?!dV;xnRrB+*y_NEzp-$i ++zvcJ<9reIe^mjIAiSn?3QKj1;Z4l)9s$Jio)~ ++zzmxHDs=kTg5#&CbZvy*r?tMD|{evmoKtwV0szEJLhOwm+YM8%HpClkfg5C1YRW#g}j9><>-F?{#nmJAP ++z7+lyG80r?*umHZ1y7(0b?@-`LYBWPDDPQYrq1FTaZugI~sRB)DG`*^@N~n}hEZ$|1 ++zM4u#CnV+f|!U;4Gu$*hZuVE3k?z27CLaYb{00OhT$sj*wbHP4K-{1|f(G1(|BkjSZ ++zsimHcEugBEwO0-0S)v#^vG5hWN&=9r`9{MSc5?vP>f0^wtUB{u)K&NvS^%waFnYq}XEOj+^*Umm+H2rZpz@2mj5Iv5}z0bnz_W9JsgOqj(= ++zF)J1>9Qw3_HW*8cjQ~t2IRuBv{ts>L=Fj>K4{8hXM&`RCDpWnVm+f ++zfq?3ZQ%fANwf7p%By%Q(GiNUvxWO30wBNSVdv%^dWR}$Ink9V~cGaU|QHvv(Km+YU ++z1O)=Q{HswA3s^w|kOC4yN0X%*Q;=a|F*VfvP}2HN#@lmDnZNK}bUlybby~@!Crm^qf|6 ++z$X7h6A=2oh2;ew} ++ze7sBTA!Q@3f19+Y(6Qzxp;j#USV04U_WG6gsZ-d5<^^-QE+w8&3gaMf0oJ~i$(ayU ++z^_|-rA9?NnwNIDN&m(8J$YkcY&`kp5>WZC&+Q1fUOUgsKr$CnhEf9#Rl1_uZU7pV; ++z7I|m>>|x`w+8g%BSX%j;NaZwO^$Irka#A56vARksBc0?##U@N8o#RwjK$jAa3yt~E ++z;r?af`u{CkWJtLfmdVHZb&qv-|C5dHjntneA-LFM6ac%-)+$x3X)=S+O-AlClJ+@< ++zVW86yjim{wLC6MvAYE?fU*Y!j-6PfQXV>amY?(6bG@Mat<%VK{BvuY&B1c9xw$lJ8 ++z(R6=Y^9ZnRtcMHkU8=%C|6q+QTjP9|?|nPujShFPp9ak4);X`YVpw~HI)zObd(djZ ++z4A|&w0^J7VMnGW#DynMhMt-Va?1rC1{B-S&BXRLFo0)gdxqqsBP~$3xRLh}j)gs%_ ++zn4lveAQfsIDm&eC$qh%K4t~ABN3fANaKW|6zD-8;OTTRjicXb}iy|#JNKGYVA}6p3 ++zQvj(;LXv`jSv{nIo|A^3mQ~|W?*9xN*g#ySrg;3)9`ve`s^S_un9HG ++zQ6^1GiUoG0B!}JjcvEG^B|LB4TS`hp74#MD!RA1TC=H-O$y{wa1?%mxjBSho?FRvX ++zP>2G$zt932E}bJP8g+ND)TAm@Ly6E3DzM2WxPz=!%6eSPVd4WpLeOe}$Yd}LBwSc^ ++z$A1t@5fs=#32xBjMgsye;dWNnc`YtoVPwY$g7()r!cIhhOpGB@u@+=PC3r&%HvhC4 ++zQYwHAezS2_|Lq%M-IdM1TdB5@8iH0%LVJU<(3vlh25Sp)h1P ++z>VC2Hw0jo{j}2q>7^}{#!74k}YS`Y!=KgjvcW{Zu(4ZSYyz1k&Jg*NZv->lW727;j^87Pi)Ce=stb4tEq6ZVbAOM6fl1$}+ha;c7`^ ++zphakef11Yq%M`6vLb#?5bubqT7-e%Q8fK7LP#^9zIWt-s#d*5mL ++zWiUh-gRU^Ziqts?|JI8CU1>6J7ZoQO%M5u2rsiRSmB?xHmXL ++W4QoZ!JQX*S{Ht@>sDT|kcu*wSp^x1F ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.png b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.png ++deleted file mode 100644 ++index f7e6606ce79478addc07998b4a06b1e2ff8101c1..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 3021 ++zcmV;;3o`VHP)?Ro621)y2F!wNAxkIeq|?jmbUK|NAsY$VAS8q(>Fgm%cbZKQ#t=XdWl#_eg2*CK ++zMnx9c)Dai`#y@&O=bNgR?zS6g5@H;9=TzR!eRb=8Usc`8 ++zz3)Zz!KJVWOaGLV8UB3lPWc91g}8IqihemcEBtQu#9){cn4+H%mZ)u3v2dIFZl=pN ++z*w!5dZqnH`$x?HZS+Z|68|G|-l;_E ++zu}UmHS%F0-D$sJM67yfLlAo8(oQ~v#o~?^Soz-E8ujVLRPl&5ZcVX-{@00b`3kjMU ++zB*a&A^kky!!Y0hzRxJZwa{AV?;ICDfG=oSOdk_U(1Eirz9SNc7(8ZNqBxwCSv3kQ7 ++zIdXV1;wopR>C2H6rgUUTmEBgGe9CDC#o&As;Aa-hKR5-8=)UAs1uTnuwq_DzN;`M@ ++zYaGi1G*Ct6&t;6K7^^pUX2$pMK`DCc<;A15Xf!Cht@CN=R?OX7C4-u}Fcs#pde}CX ++zcmZdy3y+kcsM(0rY$GZknI!iwJY0$5riLD@1uNza(p~>jp+(7%+y2f+VfGAGy>D=vN3;0C3$)>>eppr-u_~=o+wA% ++zlUb-Li9>D6c-S{t+~nr%tHS-s-AAE5C;>kRtz%Vy4uykMHpU896yQ;s&M4xKBqhoN ++z+?9Ona#`xN9 ++zDvu4>#SJ&j`PQS;FufrdTh|Q0rziaI$#FlNJm7~zyZ!OjjsUD&uf&oglim8&E9$zb ++zN;V{Frz25W-<(|a7jeZVa$wOX5l38BIOyr7aGS`v|x_JIzrnPai3bd1lEx%9LJ%ik+R%g(WQ ++z;KeM|Jd=ePJ0@W9sjhN5YtKYlFXgiC6RQibG1H7i?@X0{Uv{VrYqL$*CL-{Oh{e~0 ++zfkAs>`%I|M6J|e;GCDl)oKRi4O3L4n(pjOxcA-R@h{QqaJElqT0{F~^V(hHR=JxNF ++z4XcarihZ0{-(TkB;!HmYFNhdCM;P`JmiMXsZzq9^BIb)45ptiKz%mgTu|uf7*+9x` ++zMTBD)F+WC%9|{95k{s2K@|vJ+Qwes~_8ozjX61VIZJU>e5Bnv^bDtLyju4jD2-7;k ++zwqArYsjCab$QU<)DIz59u+aT*M(FX8&^vgbEO(xOmoT;uh|n1!U27CWb#4NWi{bIj ++zV(1Ugis-wVzy-p#K!jqCh`lym1RC4~+C_NOb`f!P9z8rKbayR*?Ly^vlu~G^81d~q ++z${II;*|Z?`3FVb`p~BN5ioKe?lgf9P#`b<7p9&N5t?mgf+yqo%UJ>Yene1 ++zuZZP(5z+ZKp_kLhm+UX^m~gK(ZX20j+Jm8 ++z5aPr@^)DL3#aC5zBj` ++zD={J<=EftXXA}aKiLj+xL6U}8fjrU46;`QOxk+X1(|S=3dCFe^f;){<6VUg$I0vG ++zgybS|{ZdyI`en8lX<=+~>2zPdNem|Tt9UC*252!$j+12gS@KxR01YaGlaU%W4n}ol ++zuL+4K$(EKhE)FKUL=*p~e~!^%P^0v2}NGX>x`r ++zyfQ$&YvSN!qzy}TB!=ZWOmP;Nb&Z@heAs3XzlVSiu^~y<{TbWs ++zyk6%}skAYZ4|V~z%O4_qyO(iD)JT8-LFVX)?4|nHX=jYux*y4d ++zoDMERK15C#^0t*<7yig&*#_HUn`~R2;}5#7y2Jsmm`U ++z#MfLgYU{tIeEyDw+uX;`Sci3a42{(}Z47kUyd(cJ!4n5Nfy9vL$)hQOfg`g+LR5t; ++z+~z)h=F|ywj`4T@kHj6k6kI7dZ=Jd8iq5?xK`h*M_W838dz;7fMV|i;_&lrki*mg5 ++P00000NkvXXu0mjfOnKCM ++ ++diff --git a/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/forkDebug/res/mipmap-mdpi/ic_launcher_round.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..bcdca717554908575f0d489336f60f7608069176 ++GIT binary patch ++literal 3906 ++zcmV-I554eGNk&FG4*&pHMM6+kP&iC24*&o!FTe{BO(<;Jw#`Ad)9Hx*2Zp3JNP#O&pg>BmzNqYbMLAg?uYO{K5+qP|+N3*tV9ND(*-L`ETrBqUt{1X5W ++zzBC3Xz_}g)2AD;_m@QmD0<2#KL_jEbbV@)B(19or0km0lEZ{yGuxpS2s)8=>Sl3YY ++zp|DGXCIY=x1b2&t+o6@R(10)?A3G}m9&iFa4W3F!C$yK-y<#0y*FHg%R( ++z2>-g+b=JsS1^gnw3ecJ0eqVzy1mc#+YK|<7h^A+FpI+7b`*p{VtYv~;B7Og;GcK#{ ++z8mcDx2f30No%?pgKRu%mmETFDR=p|D&RO1_b+-Thx$56_W=5w(xwor(>vmpa7QH|} ++zKxSmnb&nZsq?sx1ha5>G51F5|9~>pxG0a^){$FX*y|Ze{(jqx!fecSD%WvcaTL*o! ++zdnx`umZx^OQedUb?zHR`cX3-y@4TFhYP#>{qi3$`RVUE%7cV~-NT3ST7)qc@&Gtrx ++zFFAc(_Ig)-w}1Il{>vfB)7V#1)-gXWt|-pQO0i0J%fv6#_k`@B1C}T`F0&vS&iOCc ++z$5)jz0l6$N(t>o<)16v#V!(g-mD!2YPZ++N#CKf9EBz!O<>dih4ZI2x4Tb=7$QL@> ++zuN?Vr!pAHANSEtWwYfq81X<*GTYpD;*GRF>7|R4R<=Vm3JAXUzxW4#7bBM8CE^PE= ++zILv}rO^?Y+HnyWwPcYsEkVh{lGjrNXBYo>7dgPSB)_dCcAq~pAkIe^g{2myXpgN_p ++z1R!zz%l++RUtig!mun1GxLJDp$v3WC)~&PbY~KI!tf?2y>>eNXdZgT1wQk=J>o0Oa ++z_Q6yC9wu$wAC6V^8!rk(OfR{PKAhvj#y5g8(K ++z5inQ_jCBB-M;|DnZ=k<-z%&IU(*=a5mJvJJz=n?2ZoE)rq6Wt=2knmiJrF!?Bq{8T ++z-Ckuf_x9Y@wR7UV*H1L>?T;Rvyx{#c`hTBVQJl+Gs#Uuz21yiC5fwl-1Js)F_JQAl ++zA_GOPzrU|9lPF_)YaX4`is+bLM0j2|YyD-!xf9X8RU9|qTwwS6zchlL+S(pgdAGh( ++zjSa*3e4Llu8#1r3vifMSz>h3g8D@GQ>QRU4CAHq}?E`t3l=La|Y%d ++zQyq~hoh}k-<>fuCat5nv_?vDilV-K*mE^X ++zz9~arC}c(ohK0t_`L<5MrxG*)0UWSo2oFwQN$RLw ++zxSr$u%Yq!hszGv=w&r%KqSlz!4RUZg6Yj?V_QXp3#7)K;|M$gBWHoJ-_mb-H$#p2_ ++z_Hu099m3Ch9wNhkoXtBhgw7Qy3YJL}<8748r<$@^j+{#NHiRhG*ATDNsp8FwOGwwU ++zJYGEa2z1y!`E1q%4fM+ZA-zQatp%+TIU!WC+q?B%Uws8E4vyB@%EtSg&7pg|pDtH| ++z_TFpSUteyMx#;6%Ah5lTyM}9xwU&Cz23qU4C?+UjWM_m@j!p)k#xcsTTtD7!%r(G- ++zq(p061PCw}$LL&A#JEW-`IRtE1^?v&=^pEC^4ecEz`{i6w}s ++z39u#sGzFGHY;_Ckm{4N1$Q%Lz5CEP8==Zsb@EG-q+Tr(wx*4LQ!kPW2n^&N4_^AGV ++zP{4pmQA?8R46&jhNXNV`3POlNbC_-xCeO#|ogOAH2tW{`s?2vOt^6PWJ1c+!1h5p$ ++zr7??7ZPWwG)945Q9VFcXn=OasE80|_Xm&v=+}*-M8%7hY^;1d$1v0-MWgFa`NzHDmId|0-A^Z}Ol&Vp;mfyp?&N-PF*Y0QPz5Av$8 ++zRw`O>N!O##qbAH$oSJqw3@=XEFif5Gvntt?8qlLjiUcr~2_!fW76BGOS|A{6Gt5^n ++z1-YkCB8{Rv0p#Bbk1Q;Q49)HLVkeAqa+6Uzb1Q`Wj;B^96=I2M>2wKVA? ++z>bF^Hx3M2zq|xUE10YCYks?b4QR)$)9|lzjpoi>{fFe!VT0YJ@zeydv#!c$>*fJqjMe1SJ8ZAKgsk?kr&Pm*Amvlu~& ++zDyA`sD1)%5f;~M87g88dS_A%vT>-Fd(=6?aW6t(pFu!j-Qqz^nM^8K_UVEsC6nz__ ++z82+td>6;$^y`12Sp}Q@nJ3yQ)0Xp|ZG^2)=Lz-RG^z>vH(5A5l(fjNX^-PqT^ ++z0&V+-W$*t#k)-Gt)#Y8U|F=nYI?=C`=Xezs=;A|22Z$EAhbX8u#%%4lY+fWH*Rjcq ++zFQD*cCHd)+)C83fSnLOFze`_ ++z)Rt!_jK14?4K5IJJQ7f|(7i`_b;ejwFa7Q8>JgfVIee_y-Fq|l>r*S~aEC?}e%S%R ++zFH()W#*}Tx&BDsgZO|a_t6zlz=gh;{GQe1`{NlZL#p@po+iYq%h8pw62fs}LbQnN@ ++z4hir;iUzB5KDE5=rDRI;1?{7k|2t>Tu?JaVZ2oE|R@4GhvcgyAa1O?kK~$$ZfXS#$ ++zc8bomeYAa^7v9VJc(hn^X)99&2V@O07f>{KoRd4ss?}&m+ZzM)1uGBif70Rkp*%ps ++z5Up**ylOvYH>b?`>Kudsj4n`AXPp?IACVueeUrBDzDMu}MEpd~ntB*2JU|j{0Sl1m ++z20_k(1@Vr2`lB`#o;ml!zrK#=*3H#pY&{e7oE!XZHFU+f5YG}wz3pd)QOBeQ<=w_Be5!x#DdU;O{ZzgQXuKvqFK ++z3xp{kEOF3a!c&pVBx1n;g+r|48$BeWFx$~8A#9X1MnhbM1Mm?bc7XIb3p~J1im6>Y1*Sduag4@SyF`%x1sZHSc ++zlUK8QzzR5>VjXOn@MNJ)gOLZ;uN;Te4kyAApeg2o2q0w`%9JWEEPQKj%B(RrF6}U{ ++zHk$8FgXuyqSMth^^^hfBcJgomn+mb0f%92{t^&12>PScGPCWU@uf|oUKZK@+aRe!d ++zI1b8B)9>-R$;J&q;$$yuC`S1osIW ++z`PggS==tG4%xRtXJ3?b!wr79D^Kpuanc_NiS{*iW979x+0x6*eUq$aP1urkUfLlTa ++zOcSw)rEO_sH5gMG1#TMq;?dr)4n~sZsjC&^fr01IIO<0jRq@Z%$LggEuZwq+AV)wv ++zlQnHwu~dh?zbe_+3%hh(&Y)KS>=N#RfFT0234!4vsaj-)gVJZIf1Vz+JjV-$5hu+X ++zdnQgKm?3KI1}B!n6OJ&i!tb9 ++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 ++zDg;o@2M7U7oTa!F;ZMF8zv!$aB?yh3L0 ++z2qiKH79oIgK0pY-2{<-EiTFMlynot?JVdEtAtG;3e3Nl$W;XLi5@1FU{d<56xRCg4mkeMoGBhCwX?oSTCPucZ{=uG39_69JB#Xv9Cq<_JLGk_0$JDR9#w;fyD3N%kvwV^%5Wf|zhw ++zfXUl&c992>rsnH2CtnWd^3$s1=Y#nu0_mibJ?EwtgrANVXF!P0$yn{~$1N{UeU~-g ++z{w{w`rzyw7WSW!N5sr5wC8320Z>2=+rgV}2$K@&Zgin)2PDMbGl`spioEKuxlT8*t ++zDeMc&M2^03(kUl<&Q2}B*mG_yTkU^0_R0+`z)MpLu>Dkr{5iX+4IPnMnY6i>AdZH( ++zo_$}Pl3IUUXE2+w*-kh7smp*cd0BC|Uv0!WV*#aeLIm%mpUPm{%4 ++zLeZ$E*zrm^8>-Msm`#gEgqxQGoB^+qUCNu>L27J>)WDQffI|DG;0VAlX;&dT+5l&? ++zQ9=P@=>k0(=VhT!rN&;Kk)Nb2JVHjX(LO7GCNjkbC=;j1toTaU&k4_#@H1rLPU+Ce ++z)4z0~0XfMf6Aw3=-SWd7K@xy5DB6_aWQfO%oR$vcvx&+vG)W>kQp->rXGbNA)6Lg? ++zXP8#ncH~U(bS7w;D9EMELX1bkH3hiLc$LY1I?N_r=w0DDY@Da#4(O1RSOAlz205m- ++zsR$2-00BLc>fq}Z52ssFOHmqaLOsux+rzW)B{GS?L!Kp5-5JLmDsWZ=AJ(yIp4u}I ++zsb^yK-Y=3t3cZep8!;AXLgzdK>LS&sV6w9pChgLIc|=eaKfb2VI6tdeID`bltH`3tIJ#tZN^gQHPtZl ++zh44vQ;-o;uIw%C#{q!{iSar1ko2C_D+hfWLF!@QzUfA>v&}A<5nzXCMb7t~sDSwv- ++zw-&JgBVX>Al28^#9PHuuc|N*q+OviDsrVc5;MN=ez|^BL2+|?^aX*i+)u>=;-3v%>bRcv|KR(#E%iM03U<| ++znCT4Y`fWzWl44na0DrVVe)q7+kcBvw>yVEjQ$xe$iD ++zf(zfkM7F8r{kVxULt`D}m`4hfFyAi%snb%NZk}H6=V$*ZwjK__2j+yyZ~j?wa$c9< ++zDmmE}E4U+tN<=KhCUb3$kI$+#YHLr~j4l7>uylNwYwP@PKE!TZ)Hf02K0B-(zY|>O ++z)iqy@kJqji9K}#fir|bCEJDfo3l}D5iUt_@3l_vyCMFtN(~_<2DT!A1&4^^~yWoJi ++zs1lqo%s!6hOPncO!WmJ~6rC1DQ3fKiFzk$+n;dqAMQ|dx5ghrrQoi_9jbua<#U^os ++z=?iIL1|#z(MTX!&a3MGm+)O|6l@~(gvvZL*IU;;qgi)x3N~nZNsDw(Wgi5H)u>2pB ++We)O9@RvWDV0000p?3 ++ ++diff --git a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher.webp ++new file mode 100644 ++index 0000000000000000000000000000000000000000..71516a5a59ec24bb1153713f690faab9cf3a5142 ++GIT binary patch ++literal 7488 ++zcmV-G9lzpINk&FE9RL7VMM6+kP&iC09RL6?U%(d-O(<#`$B?3L^{ksSS(4fGpjchB%4}>WYd<}pd;2LUbu}UNs;mx{I~A{4PcN?!hZ|cMv~;D ++zU%xHDk{0=gMGzQl+DMXA`|yXjGJ?~D7xsSw=%?&Q^KtdrZzPPdFP=^>`(jx}O5y*J6tISwRAYLGdOLPEJ(WPSh;dit`ZmI(lE ++z0e}JmAl9c+b)EAjfB`y?f7547)~E-Jfb!3k%K$F~G(b(A59Ca-5-b#W ++z2|xk27!)ud3(TDVCLnC8^g}=aV0SEK ++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 ++z?oGO={C=T=-o{F?67!1I ++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 ++z;f+7Bis&6;{&U)jxM&kO@vX6zb~|rcy6am6 ++zx<0XtHYf>ityvmvA|gBTdX!L;K#>4H6L4hvcK!8FtvB8^43hN%q!QD8coMYAbY#vl ++zodBKmw^J`~@T-gLA(UjWB7u^4bxfD&QJoYX6_)0ApvTa9U8?3V1%lgq{aul1Ebnv5H+TzZm*0p{){Nyd4v$Scoi@QcsigLu)E3m ++zYVWDhSJQGkIjuXUfbcyihttU96#abEztGsA8`4*2l*kTaq&2#p}7Bz!PJ ++zLDr9sTG`B&Zg%Ezjrg@oBfnAC6m*=M<_!6f5FignQ^4&_c(U4H5eF;7h{^K%q{(k-K)#5;AMlr<%8E6}`XkcKX ++z@Y$%Sz$5PG-mb9U)c%{_^`=(+zBhasa~m@J1-OtX7NuAe-Bt;5;%J+caA_LQyRBON ++zJyo5)t9c%qYuET~OLG8aqWKWzfLmPSjVr8oTAe(H2vdLO;5|ya%>;he>lR_Dseq0G ++z907nBMTw#@7=~WBCj4am1b(yLrmtG2JtXcyyE!BLBz`Gi7v%GpiY&kcQF0w;V|Z`1 ++zvY;puAA+~sxA1Ha7(&DT^z&&{dk4P?j)Fi!jA}Dc=YaI$^Zw1JT69$DkK#vf!+}j# ++zgipv25oJaagGhoAvWyb;n=RF096A%x<2YCKLo?G^! ++z+~*4b1iDS^u84 ++zKpp*|T%}`q2d7Ph>4S?+|CFgH)s;<0=7{W0Df$^`J1pO-uzQb=(o9f8DJaHNegCE3 ++zj!xkOnIlnA6@$W$i~q9kYSYkCOZUKdr9#t0^L!2(KT(RlW6a&4rKWB&ADoPwW=>XS ++z0Z~kyv28awcx$J1WMDSx^K8zq;iHPHiUj+2E6jev#?hjou7Q5B89du{tmq|MGi7nA ++z5`ojRQ}=H@jZmH1EM)JV+&&fmE|G2qX%(zntMJa-1V`^QW5v#a_uqkiOnmU3PK>F5 ++zouibaumzMZfpKl)ALmqdb6Rtx#tA1!uFQ0wVNTsKyE+S5s%wiJ6QypNU7j5MZZ1y9 ++zGL?qXuGqJM`S7*8&pvR*`|iIMU%JlqZQAW_mTz^RR`X`})r5$zoD-kwFzO$Uy+xN>hI)ka?j39hh;z ++z$YHMg^e+XZ6{M4|tWTM0{X#(f3@Kp0Tm}j_XgxJFnC{Mie9@7#HwtEZ~0tica}@nZ!YBOM71x%)ByOs6O@PE#@~*91!P ++zby#PE|AqCF^DyXf30uRDIX13zQs5`A*PV1gkm$Dmx&@N4Z^FAtc!tbQ@b6+Dh<_VF ++zWf1;!qQJEl!rGY6wNWP5Ny-fc}6ri5jk ++zJFA?&@z%=3xwZj2{KgKE-7N6#pEhzq+wl?kcrM>Nk4MZobP#K8#H-kvPD0yRJ?j|# ++zrLggAm$*O-vVD>53W~;L1Hs|QWJ!!^?u%ap?48_e>X?oqA@7;}pvi_xKu~dT?FqQ4 ++z2b8)H+XsNqD+N!k#tsXmw-(wx+4OX1{(DoCRkJ;ZH(fw$cB`v^@XJGI!AUu4IqM|8 ++zCgqoA-%EzRf0tIaIW;1cvgT-Fkr{2wdUGAh8<-&yfbZGRNT1&DbbjGwT)*pui+S_Y ++ze~nM)oBm%vx~>~OtgcRqOOg;9oo{0NpJ31pGxHp0{+7eNP*U}mPO+Gov5x9F(X*+J ++z>a?e#+J=VyPL75~$~S~WfA4Cv=I@qoeMbi3IiiqW+$QhZk_X=&E?r(P9vmFrH`%>U ++z7e51|KYg%lfKMG4zP=S ++z{I4q=WP;RY7NWWg+RS2;0$l3R)R8ZgR$>XCPSKjE*kQ};82rbwNl9xrRqLPY`*b^@ ++z_cl(Uq>l9Lm~(J78iTes-BG?fDx9QY#YA^xSU;~uYCL89;L%P|A;X5BbmpdwARgPX ++z_){h(n}W(yMz>OiAEtu!+DCk)vreOn`?XuSc>#tDJ&opeN7;iq@B8=Z)sQc@894%vDJm7>^px5?39T`id%vTm03*%xhlp@zFLlW>N!@2-fK*d{~M~wuv_yDO{yOIq_=t-H=8h3c-A;qhbG}h4!~0 ++z^JzQZGPmsQe54{Kcp0z(LNFqDjrkAdlE}OH@-PLutvJm>;dbRDqUU;@fl=Z{B$4j| ++zOulzfN1?&JY{LBP^Y%(q$FNF6EV*lw@&zV45(AJbPf!f6a(X(@efAskg7}5rw3O!4 ++zZ4MJTzN%0&Dk2{#f{OV$H_6!IPks0u7%CL6G3e?p|0`9I+?ZwQm*n||#{6?mD*HXD ++zGBW50S>3gvp_rKfW2+7X74giSi-Sk2KXz6P=_AOKCt87W+mTvZq}v}FKXJo1uW|}m ++z7x~TLxn)h(#7qPQ61rtoc}HdP%L!-7?pMgwggVAI0k&*-{_z1dcWZyyg-qEwy1~`rGB`W|?J|BZN%ojOw?H ++z46dLLP1UgnG631hzeTO_llw`G1lz>dwYOCUX-q(6HU0GBa?EX}fRu;&V!|i!6wfniSbTr ++zZn=IF4y<`8WqjTNTQ?vo4pWtECq@hR7yCrbP9`h%5R`xAez-K+61*QEte-IsrP;vo ++z+W`QZJPNlE=BP{MVTzw);eDR_mB5M*Hn*brVqm|-W1-<<<6Fo4w9JbGECC#DaO{-% ++z>cens)5BcfQclho+|Gkfh`aXC$veT@F00`AfG{G!Bk=VE{)V5mi*?6eLOvELU#o(I ++zWZQ((P?}IXE~YH`oyW{qBXFe?XEeo>A;AZ4dv)B87m!%5s$+_{Gdw7kvhY;w3XH ++z&`D!U^Iz`hfX((K^0okp$hL_WtufV3npShMuMgr4%ieIkvq+bsCfR^L@WBQ#B4N*U ++zKBRe=c^tQsV&d@%s7qeH`P+tPS)b)dSl?rbaCb5pZZzFZ;g>Y7dS6F-^mb}ZJLOE+ ++zN0rbvJ*DKbI*{hV1`1a8r*AA+X8I=WxJe`+oF@KiS55A7>vRU-Wc*(h!`hOdfu(%G ++zF8{-6taEyH?fx8uS}cJW2v1igUkVj&q+9&Rd5jWGm?{F8j9t+B3`gxt8~UXoA1aT$ ++zVUl28eBt?SPa`{Bm#n8Tu%*{x?Jx^VkN@o6ml1*$PQ!@sPpcXy ++zNF-!M=okO5&A(L6cQWD&m*#S${AqHrGJQ9^>XwfUpWutq*YKwWEA2pd@J2PVg$~YV ++zS25{vp_=7eo`flF0_B;6!&(_F84dSy_t#KL|9QRo%ibF?o{yZh++ub%5%&gw_lHnf ++zAO5J6zzSi|LxVL0%-`^Co8 ++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 ++zHu?Y;&8^( ++z_~lP?;vV#2$jyHu+J=Y;z$wxiG=(8=Hb(ZYHXIib{x}%*=T2G)RVrC<|3NbVQty`J ++zoc{|;)%b%pE((s!nfN^EXOeedd$nwNt4ewFb+zL`q@%;{iN*r1`Oqlx+c?*pn(|nJ ++z^HhK|$&5^TS#9kbRQ`iN42=oS6BY%!u7*Ti(^)#Ft^avHpIeqL8kv`VQ7rwu|4dG2 ++zfhtBgv_$8DX>+~(2fkeQ&`Ou}zfR}EsxgKX2fCjWtzlXNqo*R$z^`w0u7c7X5P!=H ++z)O`iv*m$Y2Ij-&}LA;>2P`XA4qlz9968WU?0EYjrK%bmzNzB`;Hd_~k3sAN3b|RjU ++z6fGK0Y9GK+q?_Z5!%*y6oM&-zgOmO6+b_PSU5tm^7b}49WRb&L`5SCCm(U`4i)2;T ++z*%tNbp31RITj#2B6yiZ+0Vrv4@`+qPrO8*BEoV6oD5_od4T{P=X5YQcfj2T&-Ru0x ++z{GUZ9oqOQ&@a!L#+}EA2E8FLPy}~98T$|)!=s!BcF!FPyAZkosNe4C;eF!Q_!1-=K ++z1%sz{bkSOF0w|gKHRM1(G9me^6lHe~{r(&*f9=A-^6LM^;r@6T_O!5Q+V_qG@0fZ@ ++z&HF8yXsicdL@5M-f#Q_1Tu0(6peJ*Lzy;l1jxAkf{U?>uf%pk4E2DZ#Aqw2FHZm)* ++zQoL;la6J7pq-{At+m`o#TvBc|TN(kr&bva^hUpB}lWD3Uwz ++zKPXUfI%_8xvmawiwWOsEX+@s{5PLdnS9f21S2}F(K$^Kf`#Hy7_Gtc3$M3IUV;p>A ++zT13uGaS4)8fa+djqLsnN?_q#;Ji@}R=s7>!d}2(q7~g_}gI3BJ_f$iOCE&~0#`MF+ ++zCq4x&uk{hqr&7f}m|$j#AV$g~#;|sZV(q`vc9(IJs{mh&bxYY$!nz3K_q8MIQA&ET ++ztbn;qfNHnwR+ob}>Om*2hh?k#@fvc$!AbOt#N;p6ucGo3{VWEXbyi)qhs+2js6A74 ++zB;@c_*No%Ztfcg)N~W0#NNovnWFW!JWB>Nvwv-xb&AR>%CTr?l!=48X_^nh^Yml5lQG8Ey>X+9OY*}9;PJcfkJ)?s(u$PyD>f7%%x^R~ ++zk`lXza3q^GRre_15@jyqvN!C8YcA&inJX_;+5{rpnDYZE1yA2^izHMN-KK)#Os^#F ++zPB?Bu(nn@8BzGi9BvlkY3vXq=Ee$&M&6YYYiRUilzY ++z!8Y>`V%WQbABc!aIZBVvR+{#PTM{H~k@2W@!vP-~RLr1y#o*a00Fmt6y^lMeMR3!K ++zLZ|@CI>rW2kDc1;-S&=7!j+UAnz+)|St ++z9>D=9y#%UV*k52|Ha8>>rmXaweE|-H^@Okf`3oz99w-?#Gq})|eO35SIvxrGCgIOB ++z$N+IX42DDq%)|H*LySEOAED}KpcC@JUZk=o5WtsEXP;kSiN%~?IkQ}9Rj|n$0vWSjxPC2OH6Z^+WR3K@;C|sy8 ++zxc0ShGI4^=5$Z$L$l=#C0}705sX$93L4QNuY+CyA)S?dMm4$_v5=N-(PgRn^87Ecc%L84urZY(0C2~TJKRe`9UugRADsX=3Mt=^9qLd(DQ|)E ++z=}p73(svFKQi1#ri91J?GE)A7A=M5#3}!JwzDAis6`->_lJlbT2Qjt7RQ{ALCK912 ++zUCbM}@oa@h;Xc$=EulvcLpbBg5&$z^Cv@H{xGS)8?nqFocQ6Uc2@olt1}b1KwU0NZ ++z##Ic=mG+8Bqji61h&?}C4Stihxt$xbz1MQ6jnBwZ&Yw~#$Xd$N7-n*>t|32}i6T2}J!Ir_fTOyLxI ++zA|yf89ywnNP)c%IoWZtUSKKl~4%W3nv14(Vw$utq6Kc!eBL+THcUi;jybtQks7i^s ++zL9MrVfSXXuF>jBx6wZd>)%AGWU%6aCLMH(puxc!H=8YdL$~lKansN~Yx8t@NE=HVE ++zf+Ua%fJkO&;4=1lg!MbR>piQ$rzw_trSLs$?Jw9`SZo8N-wpc`&0FqWD4E(L!MI+^ ++z=is{qwe>YlZwPd9al$&sB!N`oel;rDd2Hgz^Gqq4i+Z0wCo2PQj|h8+1ZslXE;HcQ ++zo*{i(Us1+EaRGVd@3fyzZ7*mB6JGo_44BwZ8jwne;0&B82AloixRCq9#r4n380ZT1 ++zx`OMf)UvUi(9QAiMb6Q@FE&k$T8;j%by+`6x{A6(@y5tu&Ev5vU$UfQY?hva0%kE< ++zW30^CxcgFVp$7lxZ1qcca0ITdrlg9}uhGL7_?9Dwvt)_YPp@CTd1L-+UQo`~@71s9 ++zcvV?C;vp&VY?^|>Mum`9Lk?aZFZpVd*~U|<2Wqjkb5AUUO*K;VDA~k&2&nSM&`6{~ ++z4?QWVn8w@G1fksVg7GR5M;Fev;J~rqWa^}c|BhM_Xrvs|#@hKD3P%HUM4~#_{jgBnE{`F&L|h3vEY55j>#eRr&u*s{!~w ++DT}_12 ++ ++literal 0 ++HcmV?d00001 ++ ++diff --git a/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/forkDebug/res/mipmap-xhdpi/ic_launcher_round.png ++deleted file mode 100644 ++index e75172b17deba2c2676910d2bce5f1a58675def9..0000000000000000000000000000000000000000 ++GIT binary patch ++literal 0 ++HcmV?d00001 ++ ++literal 7356 ++zcmV;t97E%YP)Ym5t@_W3GSBQ?(|<=U(IuWZ};lv ++z>OemwT9NwWy>sW(SkpY)h@~gP6PZK*KiNdFw_)&jLHb%COx#F8CtIzm`hp3 ++zEH}z+GRht{fxDOsqMQ8pQ|1lx$!PZl;NSnRMNf*)T*Nzg7vEqMzR8e)nEnXstzWMM ++zZA!RVR68}N>>4)jAaj-Z$o#F3Z3oWhBNyfhzKs}&#gO1lRn*h;XfO!%jbF5=c7)Mx ++zg;DM#oAatkv$g%j|NklA{~%QMw-2s0`E1igd4-sWjT{&Pl3zKFfO^7~q-*DLkKD#a ++z+-_vLZ*XA$;96(EH~a!MQHP? ++z%u+lDkkcOI$PnR4WtxG&I3v@O ++z6apHcg&{d<$MPWNFIp^ODfa8Kuu9KL68>nw`2w040?-<(McAJsjk25lUN3We5|Ir; ++zNzdZCEiw&3b6nPd{<6n6+8vc-r3aM<{@P%V6{ygk5$(NK09kBtm1Qnr~))}hOptz4&)y#eqG2;4?mvA@}?0uCsUe& ++z24`SOJJ*S1J8=*}F$7NW!+)Zm-xp)eq9rk`y2b6G$P*@n7nz@p#i;8m$nS%dVLYyP8|cXy!L6Pn`Anb!j>PU~nSOeh&mB=H;?FLZuC#W|nXfHgOG ++z(6lxP*UkWXuJT~(!*1+)rX9PU9UVKLZpWs3-CPt$cM#qa{D@xQML`}HWa^L}>m@!& ++zfZz{ibBmfloR!E4Y&?wr2J*Hza;&ji{y&HtC5Z}c+`EH*)cF?I4M%;44AtNFoey ++zI2!0`Oz{7{k!_70&x>waq}QZe3e}uhP$XJK`w~l*#&|&$pZMXH)UjW@h#QARQH;|h ++z3VbLr!y!-U)gQG4R*U;|Zb6*GBe;M*NMM4t-bm#CookCCQ=8kjC3_+4nj~0FPI1Vm ++zoE|#MH{3d&;zjj{h~EBG8#dhAgbnvOX${xV*PdwSi778jJOLI9UM!!X!Z*x}FPOP6 ++zELV_2*#EKUnyrNX5HFu_7XVhme-EXiaxMvg0%K)wFl_-oYgZvVRZRsbD#ou+aPRjI ++zBf8_PQsgyRQQ*u(=+epwT1^X<2W(K<5~0paMS0H>daiA#xMXux?y#t*z_utG4=^qM ++zW@-4G8GG|)q$17ObZI|_6BU4yPhhDt^!ml=;Xm_iF;wVM`(AY_@VUER0IewG*Z9KN ++z_LzH+MYzy*N-4N1cUo%Iy ++zpJp9cn%>suHZR2AAuaw0YLJ_%;0a(-MYn)_|4PrGwBo|rI~ri5o!cUpqIA{_1j9i@ ++zws^3Ho*&b4o@~RqyBu(zTnyWS>4?mqjw;PUl$4dC(ou&sw>FPl4-WW|n<0__x;mV| ++zQn&yFJS#EunHJa}7+X&6=Q3{Thl61_q~HZOc~0&u?MIn{7de)WUZ-&peh+Byi(i90 ++zg@P*mRPN9T1l1MiDnQ;mwX*(mMKB7bij ++zB0$SYD^T7hpnL7n*nWKtwms@X=)7jExw&mr;kG>FMsb-qr$8_?VmC{|Uxx(vNMh_Y ++z%{7n>HGi7H<}D&{ZpRfM?)^VA!Pz4tAJaQ1_s0%eRXJFnm57)%5oXnj$qn6dIuW~Q ++zXzJ;@p%z}+!Q1X3Vo8w0cdPqMJAA=;c;sd|Zn{W@woo$Kjw?d=;!<>9TZyjgs?l>} ++zEjHfQge{M>P!Z?EkJ~x7ZViaiA7olQu+7ro7KsM;Neu{3QytVRRzRClfIaLeZ$GDT ++zYafgu55V8Vqm%SEX1VcNrh*|k@6gyaL}JuJ(AQA`4o`aSzv ++zISs$RFUN0$S09q$h6`jkd0zsyZ=Qu%_k6e`Noeqp ++zjVfZWnp%nQBIuIyU{IGMP22E4%cm>wGBe!4$b#bhj&%a~5qX{IQ|TD}_${-bPM*?d ++zHMNME80x~I2}R5e_co%SXa=r7UxuIFl9LGIU&jU#OKWP^EoV4PvE`PsErt?Qqzs(Yi4fy_mG!8#&icQbB&-{Ale^D ++z#cx8RzhbCeWqb#mN&l??AZA;&kb%JJ*Fa{Nf5eEXUlU%kwq8zR!D&&#oX ++z%`5~?Upnggl`iojX@;c(MryDh1ye$|APrd}h(P@V?MU~81UUZrCcN|f9Js4wSgM_kH3bXNuzWgN ++zYo+LLO406+poQ)?Rddi|DWV-xoOwWouSt-Po{^)qWfnF+&^Y4yj;`S3YXEVhI;sen ++zGu1dts>1io5>G^ZzcT@^GX2&4+#Z&OhTBgbW7CNAH{t@sW7YjkixtySU{IBSW*z@w ++zP!;B$Xx3ChO*_IiPe3Vs-YJ=fozFT#O0gC^YU(BOjg3X1=SfQH>gCYUfoFm6e ++z_sOu*C1CaS9mCeIi};XjY=)J5TbsHJx}+SWEwCbOo`r60Ff7V~ihNzGD27o}!6T35q!5`-L ++z`64Flmnx7qQv)Hn5NSpyGR!VQJ8Y&l2)cSc7qKa_V6j?IxiS+QGAy`ifgX>LfG;vV ++z-eX3*n`p&*$_#v>%*5BqEPP3LpB~?>6i}~LBPXYld^wEeE2A7M?E%zR7;x1YQhfCS ++z!>t!c&~8tFd+}VHU6zUqDpaTu6v#2=Al+1fG_!+HOZUs6SLGtzoQP}Boq>W}6|L*T ++zvXv1mTSmn_GU ++zBFGkDn=ce_*8Z9XI%%JSnke1L6r&K6FcBP$phb>GB|e>VZ-+2 ++zcw$BVz;}DDdMVDhj$0K^Pbc2pjK|!?_-%%jzdmtr0q_H}kc+4S@i;mxhQ|G$21>jC ++z`9Jaxj54X0hqJKKrl85cEJ&4`}6 ++z40T-=ENjxh-l|4%vlhK;N%Sz*9_j;^B3Gfny;5%SoxLxc@Ut?|9^Y#>}{qDdAxY ++z5M@a?U`@x)C)-9LuN^mf?RcGK;EW>`U^uC~N7(d$6Pq4%V%y`bd=fg*buNtB@yN7v ++zoOx=^=w0(o4d|Sm3KyG?JuDedlNetyGpJsUE5bia=%qpovf!H-)z~=S0|FdNsu21w ++z2|qK-war@XKvG*q{y5*N}lI!jQx8*ul4PwGeWTBK2-FtM**l&pZP;9 ++zC59ORN{_?&_20n%Uk3a^cF;w4LM#D5OV7bhhY_T6h%i)HYbW+id!R2pHR7r^;DH_0 ++zDPME{u4>vB?sDl^&mc^P5TuXbmTUiHRM3+!(h)f74?$URmOK>wb_CEd>nM;X1Vrma ++zzNW!wnhNbtr$9pw!5G^NoA@%9yw1H0dKvul3V8kzvTh^;B8mYGbWUgo{Pc|AH3xcO ++zhK8PoiH^a^rJi=d7JCXt8iVp*bb`vxtk)x&Cj{`HsA7Ql0FU^v-yal!Uxh? ++zOKyNrSCq8d4*x%IfmqT-xpWHQtN|Gsun}Hb0E2WIVcCF=P<3b4Ne#Fk=EwwS{?-kp ++z)BzYFNL1z_lnvky+XfL=g^BhdKv@I2GztD4 ++zXhmb7rT5{IAA17U*jwP(u=6MY9kWhYiXdSCXYv9l-2?lF3!%Sc0IP|^(X0UqD_$Er ++zjF7@DOfSG5dmbh_0Q*`1Wz0HZF)khn1E3Z);DM>A;5XJ@5XyGKnT>*&qcEVBmnJsC ++z`V2E>)HI-x#G ++zh*;qOVbDF$|ApJJ^9W@P$j|_0xEdz<7?!^+gSHPdUMxbALSP|&LkY+f2pRgKgw6qbnZvd!b#@qoX&5j-c6amm~g70n7bJH7eG|zzXebOH2%THY8 ++z25f7@fKcaV8}J$2(s-0p6y={Y+g0!u2_Y`jzoQsXDrRkScorA$M4p0;dvZF{$XsAs ++zpB`xs^qrdrU$q9DDQZJcelRxWYaZM>k&d+L(1a2nro9O82uNJ}YX=MX?V+O1P_1OP ++z55ZY1gt$=ujxr-wMNk+X5A82`0=5G_X$thz8>RF#Z0V=omF?)!wd0d#x9yumJGytj ++zY7ID-8=;RD4xqaaM^o0`b2*KdcrL7BQIk$0%yTD+?@xmEH~ ++z+yUE{9QU1pikfyP<^Y2nT;P?`9q=a)&WInly=QlNWZi^B`1>cx0r@k9t*=@G_;;Pu ++zw3Xx5_Z&(z;klPb(IH32wBUKAfJZwMp`{K`%bb?MSThkCjvH?UU}CmHs4p~pAPN)$ ++zsQ4UJvpJB=61Qt_gPCKXyt>DWOEeM{v=9b{4{Bg*ce#U0F2vVfATL%lGc~7)^aMw ++zNu?vsM9;l;bs6x<-2N>(jliWF<`WD$MjJB^~iNoPV?- ++zzb~^K0dJ8I8VX4tlo#g=r2s5bpm|G}5Kpt_eNdbw5l>BNkv0zNMfVIrr%fXXre)~8^5{#KYd2UMy?In9KIdO$@E6w#Bgwdlt` ++zrg786WrO*AKL2y@oTvKCTcc^?@LqH_zh&@QAHz)}1dq>9#Ywwzg0hGzO5>p61g$ri ++z9W!k4SyPn0KxaZ>>)r5wUuo-VIKaFKJ|2R$s0Oem=9#FIYn*bbvW3*G>jGKPyJn?@ ++zH}9qC{JI4788nYpu1#&^ZF{HC@R@Vu*LLYVm&}GRZGk_dW``qQlc1v^(8wAtv=qh| ++zC$I_q$Wk})((&qo5K;;0o@D2G)j3#oKP=0+t>gTb<}Onw8$b6fFj0r#JT@Rf)wiTK ++zV9s;Xlb-Bjp$$_SH(XV3&$vVxsKT4Cd3dUQRSvTm) ++zFUL89@~walfaepqH}P7>1tnV6Qhfmr^-{SQ#uYJux7>CY1wcu=$y^E(E}$>NzJpmQ ++z%<_TEFFBp+<^^Uy)LnMK|5NdW{KYjb8LDx|y%Z*DZRmEz3}D&y?P+d~k^8VqdPa!X ++zzc`lrB|P#h_XI+X!eFk@tWDFT*8bLR(ZJ0mjVw;jR3sQ<~p7^f?(4AfUDvA ++z0{E>tRWv%+NTCuJSt{F;-!_!m_-7=-yMhKZRlM6X?5U=p`27x3H?n9$)JbKhak-VW ++z8fNKrIB7F{^gyolC1#^AD!^B8$*}^e62J@~_$r)h*X8)cE&OTDOb*_lKfNvSHA(tPt?~gFqVSW@cMd?3WI-6NMNd~+cOoB ++z&8nA~f4=v>R~=n{xtZa`Dxzl5>mj+0)>ko ++z>RN=sJ4+?^0zE$#T=0?PJ_ZaFi*CK;6^?99X8{vVNUSCnSoB6^0{TJ57ftDQC5iNK ++zlkzestSsEokm8V{MDV+b0?6oCk2qlaffpkuRmVl50NNQv?utQ=++hia84gE&fjo!B ++zsv^F*Pgle@UAu)zdyBCChE1p@HbOre(HCt}^!xDB>l*(VV)NDxfln^vR4%Kypmzon ++zZZ$b;?in2izk@|^8qPc&2^AvdaZ6cj{aN8kofjAl?YZH?7WsW={iS1~q<-X?bytcq ++zeq!^z7=dqoD?0kZx-06t`yW~_g5FyhA?*U5*vWy{B364gSTgAjawJ!B?tbu_p(Dd^ ++z=+3HA38%LcZBAJI%}~ ++zd)-Vy44z6xa=WL|&I#HfvnSJN=$iWYs^qQo=6M+jNfTk=~AP ++zVjz|@-4J82Wa@pyOzh-9F65-S^}ekcN^)6NmS0Chh1>0$8}`q9AQ@iuH@ysMO3x7h ++zK~JpiV$kt{uQbQ=8B0rI3i)O}=yrSO6Du)m?5^HGIUS%RdX6*CG(Akv35K-CQ8Y)y ++zt?!J7mwm|`!I?B*T%)KoO<`ITtW7{G*t9`gw3((D44?QWhCuPuyWEbVc}h14VkKr` ++z?_HGBfivf;{OKr=oAZ`7ZkTz)>ANay2zKMZY ++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 ++z%zgCi;?oOho2aOyQ7P0$&VzaP ++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 ++z;8V>(>Lz)>T~ub)B7xOFqD{*k-3C ++z#}*tKbUe)xngFgGgJ7u1poN<2L?>Y@S2L{fw9woeOl7J^J#HQrQ`2dk=v%%r4gWn? ++zY{L-IqZKU}9h{XBB1FQeE`_r|9EHmarV;&}lb`~{mmja$)udeWRxitpgN6n&1r9~T ++zd-`6#_=o_^>hDQNaNmT4l=TSlYBJH1lW0NlfAM>40GFl#GEU$6qv@_I-73Twtg)l3 ++zF|@}0lvac;Mj6~2bz@#cX5pw46{L5`*7I#Wnd5CQVqCP7l3gI%geWk8a8e}fPWc%O ++zO4k&L=QE(>Es%UqLIWg7<)vIDoGRp1(!#L(lsGk42pcjz*hY!Bmh60s*B1KQFd`!4 ++zPlV2RZS4NXh#MsfCcDQ$Y397QW*#KPFF&ozeTnAd!%rb$uk7V)LCZ=LKDrna%ei%mge}N ++z3v*>~Gg(69VL0&@k4#k)c>%=HnK>vs{?&}L2m7!8@&E1DS12lpr>5dG2ZX7xitSa+ ++zHT!C@8R47K4aCq`rjmPQCm{1g_chN&rwD1qNshV3@OZB9d7{~llc&_`}R^(2J1^kU;Xhzi(kj)E044HtXZlU ++zhAZs2P@z|0vX*CbXE;73s*(;O6lad0^%bH%SQ^BC&_U3>lr6mY7$l6ero#;Trpfs~ ++zi_?A4+;$Hd@IOK*s@Yk}5URi-RrSWP6-?ytr9~vHcbsp$;v?rSS9X+#NwnjNOw2cK ++z4<|NMGg1A)J^p`~$UlwHfDgvE+*7P~)7o#4ro#;`%#J!>-o_7Q>iKuUgQEV)2>&6J{2Bkbt<3B52bO<3uW9?DA+wmm#{nRw;%>7Q#% ++zy<7<8gpdm%AR_`rH0^?jMPMtOhJ~P&#JW(0^+PqH+KKnVxb!9Bn07oOgH%8l&5 ++z?8`hY^Y-Mhq13mCWZ#ovP0D~O^Xqdet&~wgh~n(4j0r)c4eUsy*xSj~JZL^>GRb6u ++zRkto4DiP|8ay_UG&_s2=;^s*wLJsQqgau%Pkd`D=7Lu)=WAhd`;Swhz7fsW3i3bYD ++z2OWU{rEQBOY>LNqbA64G99JmcqqNgQEypA8qy~1YVY~m=-AjVmeY})ivUaG-w3KAVHEz ++zk$L4l$vO4~-jG1`uqo97Hpeb@yQ3rQ^+iW8S}-4~$b=^#wmU)tGV@MrKNM(L_LUW} ++zNusL7Pa*oGLX6nqgatMPH{(a7fq>k$z^ENhFk+Ff?)c4mSGXDXw%)C!|4LixvUM*xWu ++zwUEdkypiv(HUFMj+(2S#(O&pfA8Lq*=qg`%Mazl5%DfN}vDjr@SlO8U ++zu`OHIlWHh!a7%MusC%eLont6Q$ ++zPRU*(Y`5_bvAkmvY-Zck79k*#t>)Uo@T`J}_(JqX6s@B%GH8&k-N#toQREnG(c%rU ++zb7iE`ASz)W8b{r=7Kh2@K9Hw!sZ|k*0`4P@hOM^WK-CCLCEhwkzQv-A#-R7}GU|5Z ++z#@O7fuSjCF4FFXIOk#i-SgoZo9<7{cLLeF}H1C(up{^j^r^u@=&CErxUAQ`}xKvOdu7A->|`K@Y}nZ7n-h64a5wc=>ASSC0a ++z$bczDEoGuq4WT$msSqtL*&kN4e0yW!~ib-@RXi&BJCG_f1&s6=1PHLVs{@ ++zmcGipIYB+zCBAcEpk?rIvh3p};D?@rE8PaiyJZCl9KooVFzpKfX8V5x_Z&r>$IPr5 ++z@p$+(rV)`nn4e)cb{L%N8BF%c)+eDJ;$Fd?b8#bFn`Bt*8|3U!6@E491&)XW$d80}%s?(!BKJQM)Db{%-ejxiU^xSN ++zb3E1{eVq9GFdQiKVLD~b ++zZu#t)*^zq|M%*YC^43Dll}1Mrj_QJGMnd&NYW+(hwGN~z4>CGrKJz;Kt<$Ea;>H$o ++z`TB$#zgL_DE669x@B`#M ++zUn*RY8_bT-T>#^Nj{-bMP=6stgZ4um$gPuxEHqUM(n*rmBd$h3fJ#Lo!caDcndO7- ++zLD6B0xyVnneE(o}Sg$x5wV-3+g{3IN_o^oo6rS8ow&&)!>3_|h$ASOucO?Y&nOHLG ++zpTa~4+Jq&5>5TD0Q8L#qjs=c0bMj!vW;xDEu|!708Kng4J{SiBtZB!{b+QnZ5nK&d ++z_NU$t$QY_E?p`25bt1&vA>M}hi|{K8qsSKqpwJOa9UW1A0W*knh64cA%&~y{*#A-I ++z5Aofgcp=lvyUBvJ3}F#L=L2;Cy4!UDmN|X*iJ(;#!8~RXaX{R_e4rLafUyB=?SPOI ++zRR}FV7|b(DfJJ~~XarVOwqH-roN8dZ)6-Vk@N&AweHE9=dkG=NM-UMJg!`Wh*TC7L ++z=*H4DI`)6L5aZ)wyb)1o^2Xu{7faz%Uq%=QO=2WQ6ad>8>oV^`C ++zk5IP=i=8_c#vu43SKrc_w1c38X9$l_egLaF=!r ++z_?r-M=dVaO|Edo|E|iyoBS&W9YpaNI=zl=!Qb;xLi02m##{`;RbAvFOvC-1iLS}$^v!$Z ++zk}d`a=mJG8Dtw%3z(F2!K&C>^skV%VW}W~*Bfv}p0{ZALs3W31hr2}FeMbS&LmCS) ++z3vx#85~2A|1D&B>Pi>~_=-q+(q}1VLC(lsD!lk@a(G{soECKz(p_)@ ++zPBhXbFEn;FNtZzm$V^1sE(8=={5{ftU_UwC4ZE8VtsOKMsDPTLMlPl4&CC3NIH2La ++zeFw>@F9Fd>0H9@J_^jZ7Y9pYbzCDM@X%dpnh}I6e3sgYkLuV`ws73@4|fLb{qrlf$7X7FL-fNCtD-ri(BpqV5zBcKE5F7S4%fDRfF(7wI4Jb1|V^_+Vx ++zTOK;HDXnDi14@Kuez&!C+-w1ySwWco#}hm+5^2mH}y7YdheZ?cQ(WJwVwUi`Z5KO ++zM56Q2he&yVLOY{a^-7pRG?u)3?xOd6HH_-&Sc(HQ4uhujRJl`}Jbne^%ty(TIZRbG&Kbk{_rn;tWgwwep|xiOTaJd%wRVWzC*=V$=}K`&Z`QQ|=-wKY ++z@7GbwWTr%kqTHdB28daP;0=SkYiU|MdhX+j#`%D|p=AvI`J-rV8-;)2C5=%jSY09VZwT)v~ ++z^LiMg5B4)q`2R5=Sj^J4bO=Lt4`9U$5v+YXj13=zu<2k3n~%`#p%6BH6yjarY8n{F ++z9_dHV=0UV{jiCBJvb%*N!`ON}#I`AGed1kM3qn`}p7?HhE1lmWj=8Z6xKG~1TvedIa ++z#W_RBbM;VY#%2c5-YB#R#i^C8*8rf~iOwe!2q!)Ew*L`C$B^$1La!}_*U^?zZj8C3 ++zjUR@v^#p_9>S_9V-5ZBcUXqH|W(>N_d?pG~FP*R0nKa&Fs5xa)i<4JKoCfG2V)A9A ++z$tUT9oB^mLcLX+LJtS!g%u187B2`KZU}bp>9jk^|cElz+VcK#$$Y*@@{^S-BJ=u%k ++zvd%@JcVODe#3|3&g>;bw$}~A>0~xbQQ}yrqn3fMP`DQ!8DQ)9sN3o(Oab ++zH(CU86bmHCHu+Nmp8BRS#P;`N+sD`>Cr1p_`O#sN6(;8$izqlUiJpG6Qe>%eC{PP2 ++zNb$*nQR_o5Q6NZ^(8#k-vl2|w7gLu`0i;Tk_-IEzUr5Y#cAwVF(%@#2g*S->T8RlI ++z@h`xePM2*i9G2$f6cIZ|vF_c(TAlO7NPXJ|QC^%Jh;pfg(TNn;Ks4|ZDFw<1clN>= ++z#}sywZjrXqd<J~GhWPY ++ztVMpN1lxT|7!+B|S0{8J=Z088FKM8hAEJ{%L~n~G#S$^MrB~(RE~3X@Ne+HZJXk{1 ++z&??<1$sOj8$#?ajNTkA#i0ky<=rJD=>nR-(B_AM@uEdwk$tFKevO(cF%^vuDVuem- ++zn@->Pt;ga=wO)*G^_sA{Pywr)O>mUwxHeowbifeL0_Im^7L#$b{=@EWn4{yW|O9pXAQM$|k& ++zgaSlGE=iYq!ZbiS8Ur08wn;|uU#9@NkLaP-6#sYq!5f54A;s5vO!)hV4W(KMOCu9D ++zcvaOgtb8GI)=3XQ#zCo3!dvaa ++z+V{?W%`L}5nA10saDZ4QY?9fS3*!M|qL9ENQcjOO%feW!bOxYpM3=;dvMGR;6P1s` ++zGXtQlL<5VVZt7*mV9zSR%@r#AgTnLss1?~t6-yfvGH~TZeCx(pCvW75R%oqq*ogpI ++zp%86tZ5SCDLEEnC%YtY9fllN!nqd?Q&`t=_i2#QV9m4qdIJze0pYuFcY@9ti@$ryJ ++z>%+ZMZfsf`iG~Mt&3I}}@DhR{Dwjxvd+)s$ufP5}=Bz8bByct!qSl25 ++z#&gz|!5|VMLI`4XE9TPh)KgEPuP==7t!?MMM&AvC2~Y2BrbetMni&ASNvtp`oO~vn ++z@9ajMKpF?oUJ4KuxfGF0J)!(O0PQ4NR@s~?pZCKm7vpckHXfkA(yd!1Ly;+4a80M){}kcy|o_ZSsbG2LM*o^P+#CdcD@C^mK>~pr|m4oz+URwdT6{9AJ4S! ++zuEF3V0eGEC^ckdBGuMs{H`Zb9SQA`D#b_S#Q;7S{58;6jTbE04Hr9eMqM88^OWo~a ++z6N+<(kn89`fXJ>5K#!jXpeKkCS($}XzIYf~xgIAM8F+v`+hK%NrK4a)uYTaXAl~{6 ++z?r*`O?NunLGN5m^0UPP$Z#&R=ZnyMNCl+t^p<;mr#mz=^?x~3@J}!A-KK!GF7};5k ++zt?#v8Zv4dRLkX=^GZ$4wBrFT#;rTPwbHogz+`;N|yoFj$)F}rLOXp#h82NN^x-OBg ++z&cMEU4Qllnu$$@=GGO7|XODft_xTZ{7UPCEYZ4DnX~2jrD}?yedmK)@&Y`p{1I@8~ ++z3_R3~HSe}#^RXUmInm2&D-*pY)3zyH3P5ZTwkmR9-X)q}Wchpjj3SX)1Uf ++z?cjrKsf`tUQxBkD5)W!P6>=OM(`h_kR?pHD!)0w{Ddg49ysBcf=Q(mk>3G9X9&X>x ++z;Sb*s;g8?sg&%)bghy}Zuw+1pxqbnv%7rNL%|gCU26w3n_To&~N_B8m8&S}jjk)W~ ++zFDa{Q=}vS;7K6vW2sT3v?B*sE=kR3&eu-(mK!M*9PwD~0#EMutbzZX8x>)ecQsm2q ++zXVc+s$b+a?6#p ++zE<`QfMXbApckvUNRJm;PkRwvybHu?a(Wwd0_lOIXoRV3dqzp>?@}VoTKCyj`kgL*A ++zQ7XiH&v5wt*BLmME(Y2s-r>;Hl!5kL)faSYOCIk}+7bt|{8nQ<@;C*K5*sW0rY=BC ++zZx9Pivver*gc3eD12;#n2%x)fi{5(UtpGp%~7fY^he^wJ;VUL*nolr_XLga@4q5|9{X$) ++zzW*r^76k~3vSy*(BS)n@9kpdbjQ0z1^Hw2tZxCYrxDd;tLPR=+2zT&XEE^PJ`x+r0 ++zyOYD=mpT0W3p_;l;z1D_12T+0HTQh!JZm*cSP<>Cw?V7Ug^yEVA2H$=QyCdk$^*po ++z2jazp!~jcrCTkgBnb{RD6c&0S$a8kWZVB+!RM8BfkPIjrv@{bf*)o(_XJJkq ++zhl4Nj!8l%ch{Nm-JImD0(e4pKW9t~dK2?+x<(uzvot>-&gVk|Z;7ira;ue-Yv6fVR ++zk(vd=rSYx8tZc#`!(5e7YDEpFWGx%`0dY;w$@K*g6El~rWuR6lhf(2XUj=*7i}Kn0 ++zpt^eDw6?;iDdAI3XSx;@0vU#g3U?DdUK3hyBrqGtdh6qKptlZp_g0{l2`9v6tCT45$^zCTv$9_ivE}n_tqEU<8n9OGV&Fw&k#GlLAT!#y77I^jURI!{F3wH4;(F=ak*#o ++zUAk`vr-N0jgU7KDWrZ=S@iX!jM&Phnuz8sfKl%j0zrRQD^}__~MhO~n(lJn^#4Qw> ++zEmibF^TdLa#ExH{ADZhGpqa7JF_Mj4M2C4qhGHT{j!=S9l7SW?MU1F$ ++zlOPLs)f8ao^NVMge3lw7e|jE#xq6fk2`cFE<(v%jMvD=dsKv60dhDF=W8XvoFHX#f ++z({{SAb5|nE^p6)9(*|J#~;Lb7Y)bt574EH{|fgI9R_@MY&p<%&X{G- ++zd)+vZU4}1`0(?HL5O+S&cGa4{HXZ6h@YZTnbbF9fnaLLpt13ji%6#c?7f4~u&4i=U ++zfRcqy*3xl-X0pEX?yKtqlIJ^Y7&cUtN$SbW?_KPrEb1$GKtgedVU ++zG2=JH`+pB0)*<&EvGTzob73)}!|TM2Pm_Ec&8@)B!@U(;Tps|HUnW4z*FQ;&Xd+Sshyphg ++z3yzUoe1R13Um??bjWw8hR6##ukT7gR03q=aMMT&J<>AJhSyW8L0-QC^Y-Q9idxqI|!+|wp=-u-SEGP~H2?M@46 ++z$iZ!9e)rzv2Q6|9YGeUQWgJ{`G0No|)XD$QoVfs*Wj&MNjw^F9K`?p)=#Pl%?6|3L ++z>s9kG>f~#*@g{VUH)l__4bUfT;|2vl-}^?$tq~qHY3^s&>HyTv*1h2gqQvbga7ash{(^;z<)}=e-X+RI38Jxpgf~Z ++z@0fYfDFi4BkX5*=--`$rEAKu1LOMVCAKiGOdF;K7+T=|5oC9b~XKj2quC~#{ONjC~ ++zGS(p|)8SL%m03!-5>7*_xzs ++z53j`GPLAvVXdQ+XDnWk){r&+9K!-6bp+pWNX7HaTC{*%3Ky#Pf##w-}09l3l(hF#m ++zt58Fug$tXylkp_#9hXBd~WJ6-c5%u;1v=AWYkFZ7X ++zn*fn;V;?H`HuC|>0z{Wd7l0hA3o`)O#HEgzvJ!vV?yMAhOPRLOyK ++z?Lhl2?OhZ!i8s+Cdl52u^$Hxn ++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 ++zf*OYQb)okung=xGS;s!46#N!ZX-!{ ++zmHGb@0QpCRNdT%%w54VBe*$Rj^2X&~JmVBQ#sSPI@1nTICD=#kBf7Z8HH2GAttK!I ++z2%+41uxA_Z;ydFB|!*#D>!?sqh1I?2oWp5ydJo1yogNz ++zN!u*v)XNAW+E|cCleE6Shse3#KN>5KCgd`~tR_v+|1XmxIp6=AnU#eqt`<{^r5;U_ ++zaHvVW%`nW&JfrSqW~O0gW@hGTW)@V7p{i7zFZ{!qZ&tneR_SK=9*swKJId^GhMi_k ++zGczpjD%>Y~AS24$p{ps)?B!iEpBVaXw);8|i`q!D%xR{DlOxK^yey*(M@KAO?dVAJ ++ztwRxJE4<9F*~jJGn?YtAsFRuDxO}rMv)vKP+fk;g2W;C8Ns|BXx}W!r$jm}_SG#Ao ++zW^H_I+qP}nwr!hh+xCvl-a(^~l@XB<@B2I+ux&RSY1_Yjt*RtdNq3TVk3ElV+qP}J ++zwr$(CZQHzUk7trJCrPd40o(p_Zv6kdpU)TOHLtN1Hb&hz**aUK#=hV0_1m^>+qTxW ++zvqhS1+|*HH%p~KPm!1w~TZx;C3n6OAW;AJk03iIpgov{c05Ch(`DGypaR)HsamH=Z ++z0ItoC)9m#)+X0PjfMQ2%19*TsPI4hwY>&4S$hWnH9+PeF(dLlxg#agD08)Sp5JHc? ++zuPq*L_khJ0g6OCqNr!+6;BW ++z1MOj1G5GZp>u7|AHA=gqvLKXr#pekwmskV@0ouU9me394H6+v!s|s`T!_EE8jXjI$ ++zJIl%;MXnNtJ%$eu*ak>RClts0Ydqj>YW+KGmU%Wt)zGY=2sIffa>JG+Nvci8g5z^& ++zc?QF#P<#qkZNpUyWUdyGHnt!l!dz8C^wL&U ++zn;q#WQXuj;Ev!|Vu~}|#-^s|G8S`LYLeX0={zZ?6&eLMU`kAFE_tRl}h}Y`|nf*Mb ++zeWW>@jT!}}xE_)fGJ5c&`+BVlx9KgHLTTK!#y8Us;+9EZi=<_M+?FFXE?AsDm?w23 ++zvbHTl(SK^HBX7e-E|gSmnVs&6Hka6_BUOfxecX#zaTjh@thQQduUmdd=)=9H5pjcK ++zWc^=X_j1ltHZG^~$B}LRw4AuY;=`l&+W{IUbix^hduuFn;w7d$gOu?9xGogX_a}=2=etb ++zb=QA^JOB4i&l~=f6Z_W~1-SGO>T2r7O7Lw$xKo-856EC+?_ny^;7>|1RIJVj{Wnkg ++zZdt5a(u&FaX|@%gIBOd?OM7!s;vEq80O-Ll=%7P(l(GYZGxp=qw3S=8yc|ZZw;z`0 ++zc+g0aBgyhLKOujx+j7=4@8^GfGV2pxSmP0|(_W3SdnNzq4zal<=^*`sD=!o)kXW{Z ++z-1DO;_n8~Gac{8}hP6{R)N`<(@}BHaoW4dqYY;u)0K))>{}gn{PdVIgkUgckGk(xA ++zzH+07LieQ)!*p2<`pBH+sa3vAL3amo&XPi--}x^^m-@+X9XadS!y7jU_vFZihf>2@ ++zcPT2#1U4)AJiW!^75@q;n13p>YkkAa^3;F5Up(gwkXEQ7=)OwvRJ>g$fUAX5>!3&K5MUe=7r1(zROf0|l`sk>R9 ++zvna;r?d1uz0RYHI)?>EKxsM*njngAD@3k};L!41)Eec*PLsd#+MLMlay= ++zPJFMYKH=#pk2y1Y_fLM_l=kSu#u=V+de7i%H&1ybL;>nGu40j!4{i`IOiBqn&Al394agct!6EcLA|PwG8avySnBM``=jo;UwQUZ*VUQ2DzDR?C4gyVHHEb$oE` ++z!TQW0xqFRvr1g9q=&?^M20Vrclope!RcSrVHycFj=fkMF*-sz(o1ePe_k#}a7yDbF ++z<8e~fgl{giLWls^o^i?I$loc>;(v>!`iq@>pYOZ-P|0VVdr$TgCU48w+S}|su~*sa ++z7eUsFJb(|k~ ++zl)6gS-nhHRGuvHF@5@*#Gja%Hrz+E&|}nY4_r=XA+mT-486>hD{0 ++z{WhgTyTU&e`BVLD(Vbz)(|=d9ZG&|>l6Hk$yA4$e;>KX<#*i+qd7;!t(xX|_o_obl1m%;$|r+Qai#d~u0x2I ++zO+hb?%y%!u+A-ww4^?^BBBDdkBZ0ylZ;G6O6!G<-j3@~bKm=*33O4ZCBG!eRyW17Y ++zrM8S&2_k6am@h5zP0WPMS&7+pfO>F*Q0Y+P36Qk)#Z~pl5D-mi8$J? ++z$>OD-m2Mwt>4;G&U5-?Wkx(%jIhgq7)9%F?@?zhf+C~j&Z+UN4ESbasYSP{tV}URI ++zeoz1zA)^sS$w2b3hk*?stwUbB0y!_iXP;3`PJ_~<^n!Td8e ++zyW}*+pbc@wK`v}G%eKq?&-@G8C^xl_!y~(NqNbRC@*?Oxpa0ZnOpw8n;E@;17} ++z(tl9w1{(KfolGt-ziK?qp8sqe&9-3&srf8@F312i(N9^t(Lc`LTVCSA&LvzaF4=M2 ++z9Is>!nLF`*E*#b=>)WLU-zZ(OvQ_LO=n)JMuwp9lp;{KTFc3@zl8n-?`9(jqNwh~) ++zpoCE&6Zgngnvj#ucsDk0^CBp~m!NiNFtag^JafAp8B@}oWs}qdT3?@1;uD?&(!@*6 ++z=dN^r)3J=q?=!c>ec3s-qxEdHsl1_IDICzs*$N|nTPjV#Qc-(hpxF6 ++zw`Ht&#S+cgQ@HJYxv1Y!7N6iv>9*tFo9@fMVw-92J30bw`)gq;@SB6XI&&MQs*z{_ ++zg9Grffdy=0E*qG|24=E}85}^_M-C0o$L%v=84~I&4Blum+eD0jd9&m|28xfHANn^) ++z9BdS~B{K1ee^fkX=Z>-)Tzty#4Ig?+^huugs=AYH{p*LOPM(=tjE=Uv{?SPry17DQ ++zlEK8l1SA4dB*ROWu3Ci>0WSgCSjk9~kp?WmD{l0C)tV1<=Csm1KmHpa>$LY@k*IM35001gO+d>A@f& ++zK>?5naYUH?&W(J|!`r0f+&SVU`^TYqPV&;;A=@PR3C;dA_>Y(==bi?Gw8%)iPu`sW ++z4Qw*z$`f>HZ+2B8*67kzOP4atuNMyc`Syqs%U7;kzMPRLCBaAvB7)lQj7B4jN&+-m ++z@DZW2fuGA5=?8(RcUI!mJC0*e+=QIj7FQIuY#XvyOh%i6GbZIF(z3#b#XAt_muGt<8D%FZ ++z5Fx1(p%S37g2XX2>5TE^r{8`U@__89QQ_Nyc)YzK_&vCQD`OAfC ++z*1Z~09xzYBqjIFK^6RStW`G%z6AGNLC?a*ReED*}wsJWsp)J6ui)hLumON8EmdeT3 ++zGbw#tNOh5bl`pT-VJZWr6Nn@d3Njco0GdQZhT69=`R-E~nr}ds?a%^j-pZ{t0jFpM ++zyQB4?T8Q4gdUd}d8-iOG`HA9Gg&SFF3M6$&?VaKSxv2>BXsb52Mc2w8iEtj?dYt?@ ++zkBUg@W7ge+T~Kf{OAqXUKqRvt}+B3_2-H&R=Y93b=6W? ++zDD%);FR3*mv}ifzZr7G$SDnrJc8p3M>E-d2%YTHQr^R)WFZX#R65#R`aO3_UcRn^d*cYTj}on538|iczn;kzK_R8luN5Fc ++zF4wGk*!#i9VtoEPWNMdo5AB;~PTN^0v-C&DLv>^hbZ72cq^;4dj)b+=513IP%IF<8 ++z;vclp+A3M-70K`+$2~adm?x%h$KlIIT%0caV=vml^{n;D(?>iy+2&7f)QtYQIfL