diff --git a/Cargo.lock b/Cargo.lock
index 6f54a9380da50603f3b2ed12da8081582e72dd97..9c60ca8280c3c95f3bd174d114771fcd401ba4e8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -864,9 +864,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
 dependencies = [
  "crossbeam-epoch",
  "crossbeam-utils 0.7.2",
diff --git a/accessible/ipc/win/handler/HandlerData.idl b/accessible/ipc/win/handler/HandlerData.idl
index 06f6a8ac21f56e66e0977e9208f0c590d2d2962b..0cf51d9468dae45c2132c4fa2bd1ba9d37a9036c 100644
--- a/accessible/ipc/win/handler/HandlerData.idl
+++ b/accessible/ipc/win/handler/HandlerData.idl
@@ -6,6 +6,7 @@
 
 #include "mozilla-config.h"
 #include "AccessibleHandler.h"
+#include "HandlerDataUUID.h"
 
 import "ocidl.idl";
 import "servprov.idl";
@@ -65,65 +66,6 @@ typedef struct _DynamicIA2Data
 
 interface IGeckoBackChannel;
 
-// We define different CLSIDs and IIDs depending on channel and officiality.
-// This prevents handlers from installing overtop one another when multiple
-// channels are present. Note that we do not do this for all UUIDs in this IDL,
-// just the ones that are written to the registry (coclass and interfaces that
-// have the [object] annotation)
-#if defined(USE_LOCAL_UUID)
-
-# if defined(DEBUG)
-
-// Local debug builds
-#  define HANDLER_CLSID 398ffd8d-5382-48f7-9e3b-19012762d39a
-#  define IHANDLERCONTROL_IID a218497e-8b10-460b-b668-a92b7ee39ff2
-#  define ASYNCIHANDLERCONTROL_IID ca18b9ab-04b6-41be-87f7-d99913d6a2e8
-#  define IGECKOBACKCHANNEL_IID 231c4946-4479-4c8e-aadc-8a0e48fc4c51
-
-# else
-
-// Local non-debug builds
-#  define HANDLER_CLSID ce573faf-7815-4fc2-a031-b092268ace9e
-#  define IHANDLERCONTROL_IID 2b715cce-1790-4fe1-aef5-48bb5acdf3a1
-#  define ASYNCIHANDLERCONTROL_IID 8e089670-4f57-41a7-89c0-37f17482fa6f
-#  define IGECKOBACKCHANNEL_IID 18e2488d-310f-400f-8339-0e50b513e801
-
-# endif
-
-#elif defined(NIGHTLY_BUILD)
-
-// Nightly Builds
-# define IHANDLERCONTROL_IID c57343fc-e011-40c2-b748-da82eabf0f1f
-# define ASYNCIHANDLERCONTROL_IID 648c92a1-ea35-46da-a806-6b55c6247373
-# define HANDLER_CLSID 4629216b-8753-41bf-9527-5bff51401671
-# define IGECKOBACKCHANNEL_IID e61e038d-40dd-464a-9aba-66b206b6911b
-
-#elif defined(USE_BETA_UUID)
-
-// Beta Builds
-# define IHANDLERCONTROL_IID 119149fa-d212-4f22-9517-082eecc1a084
-# define ASYNCIHANDLERCONTROL_IID 4e253d9b-59cf-4b32-a973-38bc85495d61
-# define HANDLER_CLSID 21e9f98d-a6c9-4cb5-b288-ae2fd2a96c58
-# define IGECKOBACKCHANNEL_IID 77b75c7d-d1c2-4469-864d-31aaebb67cc6
-
-#elif defined(RELEASE_OR_BETA)
-
-// Release Builds
-# define IHANDLERCONTROL_IID ce30f77e-8847-44f0-a648-a9656bd89c0d
-# define ASYNCIHANDLERCONTROL_IID dca8d857-1a63-4045-8f36-8809eb093d04
-# define HANDLER_CLSID 1baa303d-b4b9-45e5-9ccb-e3fca3e274b6
-# define IGECKOBACKCHANNEL_IID b32983ff-ef84-4945-8f86-fb7491b4f57b
-
-#else
-
-// Catch-all
-# define IHANDLERCONTROL_IID 3316ce35-f892-4832-97c5-06c52c03cdba
-# define ASYNCIHANDLERCONTROL_IID 15b48b76-ad38-4ad3-bd1a-d3c48a5a9947
-# define HANDLER_CLSID 4a195748-dca2-45fb-9295-0a139e76a9e7
-# define IGECKOBACKCHANNEL_IID dd2e4a89-999e-4d65-8b65-440c923ddb61
-
-#endif
-
 [uuid(2b0e83b3-fd1a-443f-9ed6-c00d39055b58)]
 interface HandlerData
 {
diff --git a/accessible/ipc/win/handler/HandlerDataUUID.h.in b/accessible/ipc/win/handler/HandlerDataUUID.h.in
new file mode 100644
index 0000000000000000000000000000000000000000..234c3d6114fb1ece48c0eecf61be95b053389892
--- /dev/null
+++ b/accessible/ipc/win/handler/HandlerDataUUID.h.in
@@ -0,0 +1,16 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* 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/. */
+
+// We use different CLSIDs and IIDs depending on channel and officiality.
+// This prevents handlers from installing overtop one another when multiple
+// channels are present. Note that we only do this for the UUIDs that are
+// written to the registry.
+// The specific UUIDs are defined in branding configuration.
+
+#define HANDLER_CLSID @MOZ_HANDLER_CLSID@
+#define IHANDLERCONTROL_IID @MOZ_IHANDLERCONTROL_IID@
+#define ASYNCIHANDLERCONTROL_IID @MOZ_ASYNCIHANDLERCONTROL_IID@
+#define IGECKOBACKCHANNEL_IID @MOZ_IGECKOBACKCHANNEL_IID@
diff --git a/accessible/ipc/win/handler/moz.build b/accessible/ipc/win/handler/moz.build
index 46f3cb95a469917847b56c8818753b8e3645ceca..4e99d4e687729a052c40f34e8f02f362d1d0410c 100644
--- a/accessible/ipc/win/handler/moz.build
+++ b/accessible/ipc/win/handler/moz.build
@@ -18,13 +18,11 @@ LOCAL_INCLUDES += [
 
 # We want to generate distinct UUIDs on a per-channel basis, so we need
 # finer granularity than the standard preprocessor definitions offer.
-# These defines allow us to separate local builds from automated builds,
-# as well as separate beta from release.
+# This generated include allow us to separate local builds from automated
+# builds, separate beta from release, and use different UUIDs in downstream
+# projects such as Thunderbird.
+CONFIGURE_SUBST_FILES += ["HandlerDataUUID.h"]
 flags = []
-if CONFIG["MOZ_UPDATE_CHANNEL"] == "default":
-    flags += ["-DUSE_LOCAL_UUID"]
-elif CONFIG["MOZ_UPDATE_CHANNEL"] == "beta":
-    flags += ["-DUSE_BETA_UUID"]
 
 GeneratedFile(
     "HandlerData.h",
@@ -46,6 +44,8 @@ GeneratedFile(
         TOPSRCDIR + "/other-licenses/ia2",
         "-I",
         SRCDIR,
+        "-I",
+        OBJDIR,
         "-acf",
         SRCDIR + "/HandlerData.acf",
         "-dlldata",
@@ -68,6 +68,7 @@ SOURCES += [
 EXPORTS += [
     "!HandlerData.h",
     "!HandlerData_i.c",
+    "!HandlerDataUUID.h",
 ]
 
 # Give some symbols a unique name in each translation unit, to avoid
diff --git a/accessible/tests/browser/telemetry/browser_HCM_telemetry.js b/accessible/tests/browser/telemetry/browser_HCM_telemetry.js
index 072047ec5edd488af68d6ef487d7aec971a620b3..357abfcf199d52a92ae6fe6c9d23d06c07dbf696 100644
--- a/accessible/tests/browser/telemetry/browser_HCM_telemetry.js
+++ b/accessible/tests/browser/telemetry/browser_HCM_telemetry.js
@@ -95,11 +95,11 @@ async function setBackgroundColor(color) {
 add_task(async function testInit() {
   const dialogWin = await openColorsDialog();
   const menulistHCM = dialogWin.document.getElementById("useDocumentColors");
-  if (AppConstants.platform == "win" || AppConstants.platform == "macosx") {
+  if (AppConstants.platform == "win") {
     is(
       menulistHCM.value,
       "0",
-      "HCM menulist should be set to only with HCM theme on startup for windows and mac"
+      "HCM menulist should be set to only with HCM theme on startup for windows"
     );
 
     // Verify correct default value
@@ -113,7 +113,7 @@ add_task(async function testInit() {
     is(
       menulistHCM.value,
       "1",
-      "HCM menulist should be set to never on startup for other platforms"
+      "HCM menulist should be set to never on startup for non-windows platforms"
     );
 
     // Verify correct default value
diff --git a/accessible/xul/XULTreeGridAccessible.cpp b/accessible/xul/XULTreeGridAccessible.cpp
index 0790dcca3956f3b069c653524809acd40fe3766c..c4729cfc9bff5f7c866ed305290ee5479a700d46 100644
--- a/accessible/xul/XULTreeGridAccessible.cpp
+++ b/accessible/xul/XULTreeGridAccessible.cpp
@@ -174,7 +174,7 @@ void XULTreeGridAccessible::UnselectRow(uint32_t aRowIdx) {
 // XULTreeGridAccessible: LocalAccessible implementation
 
 role XULTreeGridAccessible::NativeRole() const {
-  RefPtr<nsTreeColumns> treeColumns = mTree->GetColumns();
+  RefPtr<nsTreeColumns> treeColumns = mTree->GetColumns(FlushType::None);
   if (!treeColumns) {
     NS_ERROR("No treecolumns object for tree!");
     return roles::NOTHING;
@@ -316,7 +316,7 @@ XULTreeGridCellAccessible* XULTreeGridRowAccessible::GetCellAccessible(
 
 void XULTreeGridRowAccessible::RowInvalidated(int32_t aStartColIdx,
                                               int32_t aEndColIdx) {
-  RefPtr<nsTreeColumns> treeColumns = mTree->GetColumns();
+  RefPtr<nsTreeColumns> treeColumns = mTree->GetColumns(FlushType::None);
   if (!treeColumns) return;
 
   bool nameChanged = false;
diff --git a/browser/actors/AboutReaderChild.jsm b/browser/actors/AboutReaderChild.jsm
index e59a1174295f82cda71283dd5273a15d396bcb18..49d2d53387ed17506019812bc4907aa40a2f0468 100644
--- a/browser/actors/AboutReaderChild.jsm
+++ b/browser/actors/AboutReaderChild.jsm
@@ -223,7 +223,10 @@ class AboutReaderChild extends JSWindowActorChild {
 
     // Only send updates when there are articles; there's no point updating with
     // |false| all the time.
-    if (Readerable.isProbablyReaderable(document)) {
+    if (
+      Readerable.shouldCheckUri(document.baseURIObject, true) &&
+      Readerable.isProbablyReaderable(document)
+    ) {
       this.sendAsyncMessage("Reader:UpdateReaderButton", {
         isArticle: true,
       });
diff --git a/browser/actors/ContentSearchParent.jsm b/browser/actors/ContentSearchParent.jsm
index 0d339a900fa37d3dd7381bcfee54bfbbd200b83c..30d6a10615f9733a18fb62acfd17fb3c9e97e052 100644
--- a/browser/actors/ContentSearchParent.jsm
+++ b/browser/actors/ContentSearchParent.jsm
@@ -352,9 +352,11 @@ let ContentSearch = {
     }
 
     if (window) {
-      state.isPrivateWindow = PrivateBrowsingUtils.isContentWindowPrivate(
+      state.isInPrivateBrowsingMode = PrivateBrowsingUtils.isContentWindowPrivate(
         window
       );
+      state.isAboutPrivateBrowsing =
+        window.gBrowser.currentURI.spec == "about:privatebrowsing";
     }
 
     return state;
@@ -422,8 +424,9 @@ let ContentSearch = {
   _onMessageGetEngine({ actor, browser }) {
     return this.currentStateObj(browser.ownerGlobal).then(state => {
       this._reply(actor, "Engine", {
-        isPrivateWindow: state.isPrivateWindow,
-        engine: state.isPrivateWindow
+        isPrivateEngine: state.isInPrivateBrowsingMode,
+        isAboutPrivateBrowsing: state.isAboutPrivateBrowsing,
+        engine: state.isInPrivateBrowsingMode
           ? state.currentPrivateEngine
           : state.currentEngine,
       });
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index d53189b3654a98b40e4245c1b293a0084da79342..97b994ccd9ac69e0ee03976251a78edbd7068b53 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1299,13 +1299,6 @@ var gKeywordURIFixup = {
     let hostName = fixedURI.displayHost;
     // and the ascii-only host for the pref:
     let asciiHost = fixedURI.asciiHost;
-    // Normalize out a single trailing dot - NB: not using endsWith/lastIndexOf
-    // because we need to be sure this last dot is the *only* dot, too.
-    // More generally, this is used for the pref and should stay in sync with
-    // the code in URIFixup::KeywordURIFixup .
-    if (asciiHost.indexOf(".") == asciiHost.length - 1) {
-      asciiHost = asciiHost.slice(0, -1);
-    }
 
     let isIPv4Address = host => {
       let parts = host.split(".");
@@ -1371,7 +1364,15 @@ var gKeywordURIFixup = {
             callback() {
               // Do not set this preference while in private browsing.
               if (!PrivateBrowsingUtils.isWindowPrivate(window)) {
-                let pref = "browser.fixup.domainwhitelist." + asciiHost;
+                let prefHost = asciiHost;
+                // Normalize out a single trailing dot - NB: not using endsWith/lastIndexOf
+                // because we need to be sure this last dot is the *only* dot, too.
+                // More generally, this is used for the pref and should stay in sync with
+                // the code in URIFixup::KeywordURIFixup .
+                if (prefHost.indexOf(".") == prefHost.length - 1) {
+                  prefHost = prefHost.slice(0, -1);
+                }
+                let pref = "browser.fixup.domainwhitelist." + prefHost;
                 Services.prefs.setBoolPref(pref, true);
               }
               openTrustedLinkIn(fixedURI.spec, "current");
@@ -1389,9 +1390,19 @@ var gKeywordURIFixup = {
       },
     };
 
+    // For dotless hostnames, we want to ensure this ends with a '.' but don't
+    // want the . showing up in the UI if we end up notifying the user, so we
+    // use a separate variable.
+    let lookupName = hostName;
+    if (
+      UrlbarPrefs.get("dnsResolveFullyQualifiedNames") &&
+      !lookupName.includes(".")
+    ) {
+      lookupName += ".";
+    }
     try {
       gDNSService.asyncResolve(
-        hostName,
+        lookupName,
         Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
         0,
         null,
@@ -4556,8 +4567,10 @@ function FillHistoryMenu(aParent) {
     }
   }
 
+  // If session history in parent is available, use it. Otherwise, get the session history
+  // from session store.
   let sessionHistory = gBrowser.selectedBrowser.browsingContext.sessionHistory;
-  if (sessionHistory) {
+  if (sessionHistory?.count) {
     // Don't show the context menu if there is only one item.
     if (sessionHistory.count <= 1) {
       return false;
@@ -6651,6 +6664,7 @@ const nodeToTooltipMap = {
   "appMenu-zoomReset-button2": "zoomReset-button.tooltip",
   "appMenu-zoomReduce-button": "zoomReduce-button.tooltip",
   "appMenu-zoomReduce-button2": "zoomReduce-button.tooltip",
+  "reader-mode-button": "reader-mode-button.tooltip",
   "reader-mode-button-icon": "reader-mode-button.tooltip",
   "print-button": "printButton.tooltip",
 };
@@ -6677,6 +6691,7 @@ const nodeToShortcutMap = {
   "appMenu-zoomReset-button2": "key_fullZoomReset",
   "appMenu-zoomReduce-button": "key_fullZoomReduce",
   "appMenu-zoomReduce-button2": "key_fullZoomReduce",
+  "reader-mode-button": "key_toggleReaderMode",
   "reader-mode-button-icon": "key_toggleReaderMode",
   "print-button": "printKb",
 };
diff --git a/browser/base/content/test/backforward/browser_history_menu.js b/browser/base/content/test/backforward/browser_history_menu.js
index bc81269ea24cf363065d9207e05603a9f2a13945..04554052905eebc4b9e1d5373152db96ed07109b 100644
--- a/browser/base/content/test/backforward/browser_history_menu.js
+++ b/browser/base/content/test/backforward/browser_history_menu.js
@@ -12,6 +12,35 @@ add_task(async function contextmenu_back() {
   await testBackForwardMenu(true);
 });
 
+async function openHistoryMenu(useContextMenu) {
+  let backButton = document.getElementById("back-button");
+  let rect = backButton.getBoundingClientRect();
+
+  info("waiting for the history menu to open");
+
+  let popupShownPromise = BrowserTestUtils.waitForEvent(
+    useContextMenu ? document.getElementById("backForwardMenu") : backButton,
+    "popupshown"
+  );
+  if (useContextMenu) {
+    EventUtils.synthesizeMouseAtCenter(backButton, {
+      type: "contextmenu",
+      button: 2,
+    });
+  } else {
+    EventUtils.synthesizeMouseAtCenter(backButton, { type: "mousedown" });
+  }
+
+  EventUtils.synthesizeMouse(backButton, rect.width / 2, rect.height, {
+    type: "mouseup",
+  });
+  let popupEvent = await popupShownPromise;
+
+  ok(true, "history menu opened");
+
+  return popupEvent;
+}
+
 async function testBackForwardMenu(useContextMenu) {
   let tab = await BrowserTestUtils.openNewForegroundTab(
     gBrowser,
@@ -40,30 +69,7 @@ async function testBackForwardMenu(useContextMenu) {
       SessionStore.getSessionHistory(gBrowser.selectedTab, resolve)
     );
 
-    let backButton = document.getElementById("back-button");
-    let rect = backButton.getBoundingClientRect();
-
-    info("waiting for the history menu to open");
-
-    let popupShownPromise = BrowserTestUtils.waitForEvent(
-      useContextMenu ? document.getElementById("backForwardMenu") : backButton,
-      "popupshown"
-    );
-    if (useContextMenu) {
-      EventUtils.synthesizeMouseAtCenter(backButton, {
-        type: "contextmenu",
-        button: 2,
-      });
-    } else {
-      EventUtils.synthesizeMouseAtCenter(backButton, { type: "mousedown" });
-    }
-
-    EventUtils.synthesizeMouse(backButton, rect.width / 2, rect.height, {
-      type: "mouseup",
-    });
-    let popupEvent = await popupShownPromise;
-
-    ok(true, "history menu opened");
+    let popupEvent = await openHistoryMenu(useContextMenu);
 
     // Wait for the session data to be flushed before continuing the test
     await new Promise(resolve =>
@@ -133,3 +139,25 @@ async function testBackForwardMenu(useContextMenu) {
 
   gBrowser.removeTab(tab);
 }
+
+// Make sure that the history popup appears after navigating around in a preferences page.
+add_task(async function test_preferences_page() {
+  let tab = await BrowserTestUtils.openNewForegroundTab(
+    gBrowser,
+    "about:preferences"
+  );
+
+  openPreferences("search");
+  let popupEvent = await openHistoryMenu(true);
+
+  is(popupEvent.target.children.length, 2, "Correct number of history items");
+
+  let popupHiddenPromise = BrowserTestUtils.waitForEvent(
+    popupEvent.target,
+    "popuphidden"
+  );
+  popupEvent.target.hidePopup();
+  await popupHiddenPromise;
+
+  gBrowser.removeTab(tab);
+});
diff --git a/browser/base/content/test/performance/browser_startup_syncIPC.js b/browser/base/content/test/performance/browser_startup_syncIPC.js
index 4362c1da08784df31c57cf926a0afe040c196f1a..902a0952d418f34e1f30f62ea1b7aca21a66820d 100644
--- a/browser/base/content/test/performance/browser_startup_syncIPC.js
+++ b/browser/base/content/test/performance/browser_startup_syncIPC.js
@@ -31,7 +31,7 @@ const startupPhases = {
   "before first paint": [
     {
       name: "PLayerTransaction::Msg_GetTextureFactoryIdentifier",
-      condition: (MAC && !WEBRENDER) || LINUX,
+      condition: (MAC || LINUX) && !WEBRENDER,
       maxCount: 1,
     },
     {
@@ -46,7 +46,7 @@ const startupPhases = {
     },
     {
       name: "PWebRenderBridge::Msg_EnsureConnected",
-      condition: MAC && WEBRENDER,
+      condition: (MAC || LINUX) && WEBRENDER,
       maxCount: 1,
     },
     {
@@ -242,7 +242,7 @@ const startupPhases = {
     },
     {
       name: "PWebRenderBridge::Msg_EnsureConnected",
-      condition: WIN && WEBRENDER,
+      condition: (WIN || LINUX) && WEBRENDER,
       ignoreIfUnused: true,
       maxCount: 1,
     },
diff --git a/browser/branding/aurora/configure.sh b/browser/branding/aurora/configure.sh
index 19d4ff057f73bec2cec17df1aacaee08193ed4d3..c7df8c65dad76c62ee4675a7ab350db5edcf8a35 100644
--- a/browser/branding/aurora/configure.sh
+++ b/browser/branding/aurora/configure.sh
@@ -5,3 +5,9 @@
 MOZ_APP_DISPLAYNAME="Firefox Developer Edition"
 MOZ_APP_REMOTINGNAME=firefox-dev
 MOZ_DEV_EDITION=1
+
+# Devedition builds - use same as release channel
+MOZ_HANDLER_CLSID="1baa303d-b4b9-45e5-9ccb-e3fca3e274b6"
+MOZ_IHANDLERCONTROL_IID="ce30f77e-8847-44f0-a648-a9656bd89c0d"
+MOZ_ASYNCIHANDLERCONTROL_IID="dca8d857-1a63-4045-8f36-8809eb093d04"
+MOZ_IGECKOBACKCHANNEL_IID="b32983ff-ef84-4945-8f86-fb7491b4f57b"
diff --git a/browser/branding/nightly/configure.sh b/browser/branding/nightly/configure.sh
index 7c7f2cf8c82070f6270eb6c324e59f536f5c5779..f51ece572b275a63b3af639e3e1411d2b46c73b3 100644
--- a/browser/branding/nightly/configure.sh
+++ b/browser/branding/nightly/configure.sh
@@ -4,3 +4,8 @@
 
 MOZ_APP_DISPLAYNAME="Firefox Nightly"
 MOZ_MACBUNDLE_ID=nightly
+
+MOZ_HANDLER_CLSID="4629216b-8753-41bf-9527-5bff51401671"
+MOZ_IHANDLERCONTROL_IID="c57343fc-e011-40c2-b748-da82eabf0f1f"
+MOZ_ASYNCIHANDLERCONTROL_IID="648c92a1-ea35-46da-a806-6b55c6247373"
+MOZ_IGECKOBACKCHANNEL_IID="e61e038d-40dd-464a-9aba-66b206b6911b"
diff --git a/browser/branding/official/configure.sh b/browser/branding/official/configure.sh
index 92ef14e03f4010a81b3a644cd8ccc29bc6b9b19f..1fbe981c9c5ac8d321b6f90856d485bf2569c4a8 100644
--- a/browser/branding/official/configure.sh
+++ b/browser/branding/official/configure.sh
@@ -3,3 +3,17 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MOZ_APP_DISPLAYNAME=Firefox
+
+if test "$MOZ_UPDATE_CHANNEL" = "beta"; then
+  # Official beta builds
+  MOZ_HANDLER_CLSID="21e9f98d-a6c9-4cb5-b288-ae2fd2a96c58"
+  MOZ_IHANDLERCONTROL_IID="119149fa-d212-4f22-9517-082eecc1a084"
+  MOZ_ASYNCIHANDLERCONTROL_IID="4e253d9b-59cf-4b32-a973-38bc85495d61"
+  MOZ_IGECKOBACKCHANNEL_IID="77b75c7d-d1c2-4469-864d-31aaebb67cc6"
+else
+  # Official release/esr builds
+  MOZ_HANDLER_CLSID="1baa303d-b4b9-45e5-9ccb-e3fca3e274b6"
+  MOZ_IHANDLERCONTROL_IID="ce30f77e-8847-44f0-a648-a9656bd89c0d"
+  MOZ_ASYNCIHANDLERCONTROL_IID="dca8d857-1a63-4045-8f36-8809eb093d04"
+  MOZ_IGECKOBACKCHANNEL_IID="b32983ff-ef84-4945-8f86-fb7491b4f57b"
+fi
diff --git a/browser/branding/unofficial/configure.sh b/browser/branding/unofficial/configure.sh
index edd3bd3e86e50aade832687ffaf58db76189ff2b..c0acfc9bca3e21864915e2bb2e4944548396ad9f 100644
--- a/browser/branding/unofficial/configure.sh
+++ b/browser/branding/unofficial/configure.sh
@@ -3,3 +3,19 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 MOZ_APP_DISPLAYNAME=Nightly
+
+if test "$DEVELOPER_OPTIONS"; then
+  if test "$MOZ_DEBUG"; then
+    # Local debug builds
+    MOZ_HANDLER_CLSID="398ffd8d-5382-48f7-9e3b-19012762d39a"
+    MOZ_IHANDLERCONTROL_IID="a218497e-8b10-460b-b668-a92b7ee39ff2"
+    MOZ_ASYNCIHANDLERCONTROL_IID="ca18b9ab-04b6-41be-87f7-d99913d6a2e8"
+    MOZ_IGECKOBACKCHANNEL_IID="231c4946-4479-4c8e-aadc-8a0e48fc4c51"
+  else
+    # Local non-debug builds
+    MOZ_HANDLER_CLSID="ce573faf-7815-4fc2-a031-b092268ace9e"
+    MOZ_IHANDLERCONTROL_IID="2b715cce-1790-4fe1-aef5-48bb5acdf3a1"
+    MOZ_ASYNCIHANDLERCONTROL_IID="8e089670-4f57-41a7-89c0-37f17482fa6f"
+    MOZ_IGECKOBACKCHANNEL_IID="18e2488d-310f-400f-8339-0e50b513e801"
+  fi
+fi
diff --git a/browser/components/enterprisepolicies/Policies.jsm b/browser/components/enterprisepolicies/Policies.jsm
index 5c8f0c97a36e042ebc881c767b2e21e4778be5e0..9908d90132719d2f2689feec202dab8dbb5f4f5d 100644
--- a/browser/components/enterprisepolicies/Policies.jsm
+++ b/browser/components/enterprisepolicies/Policies.jsm
@@ -2423,6 +2423,14 @@ function installAddonFromURL(url, extensionID, addon) {
         log.debug(`Installation succeeded - ${url}`);
       },
     };
+    // If it's a local file install, onDownloadEnded is never called.
+    // So we call it manually, to handle some error cases.
+    if (url.startsWith("file:")) {
+      listener.onDownloadEnded(install);
+      if (install.state == AddonManager.STATE_CANCELLED) {
+        return;
+      }
+    }
     install.addListener(listener);
     install.install();
   });
diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_addon_update.js b/browser/components/enterprisepolicies/tests/xpcshell/test_addon_update.js
index 30947af740a48e5b9c547b943ee04c6da85c7ac7..87dd4c03aff9044b27ba36c9d5373bc14511061c 100644
--- a/browser/components/enterprisepolicies/tests/xpcshell/test_addon_update.js
+++ b/browser/components/enterprisepolicies/tests/xpcshell/test_addon_update.js
@@ -45,7 +45,7 @@ add_task(async function test_local_addon_update() {
     setupPolicyEngineWithJson({
       policies: {
         ExtensionSettings: {
-          "updatable@test": {
+          "updatable1@test": {
             installation_mode: "force_installed",
             install_url: Services.io.newFileURI(tmpDir).spec + "/" + TEST_NAME,
           },
@@ -74,7 +74,7 @@ add_task(async function test_local_addon_update() {
     setupPolicyEngineWithJson({
       policies: {
         ExtensionSettings: {
-          "updatable@test": {
+          "updatable1@test": {
             installation_mode: "force_installed",
             install_url: Services.io.newFileURI(tmpDir).spec + "/" + TEST_NAME,
           },
diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js b/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js
index f6c1bc90da283e9eff60d5cb0fdf541a39834834..16fdfd7dfae751a82e0d98d48b3bdf170aebb26d 100644
--- a/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js
+++ b/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js
@@ -19,6 +19,8 @@ const BASE_URL = `http://example.com/data`;
 let addonID = "policytest2@mozilla.com";
 let themeID = "policytheme@mozilla.com";
 
+let fileURL;
+
 add_task(async function setup() {
   await AddonTestUtils.promiseStartupManager();
 
@@ -33,6 +35,9 @@ add_task(async function setup() {
   });
 
   server.registerFile("/data/policy_test.xpi", webExtensionFile);
+  fileURL = Services.io
+    .newFileURI(webExtensionFile)
+    .QueryInterface(Ci.nsIFileURL);
 });
 
 add_task(async function test_extensionsettings() {
@@ -253,3 +258,34 @@ add_task(async function test_theme() {
   let addon = await AddonManager.getAddonByID(themeID);
   await addon.uninstall();
 });
+
+add_task(async function test_addon_normalinstalled_file() {
+  await Promise.all([
+    AddonTestUtils.promiseInstallEvent("onInstallEnded"),
+    setupPolicyEngineWithJson({
+      policies: {
+        ExtensionSettings: {
+          "policytest2@mozilla.com": {
+            installation_mode: "normal_installed",
+            install_url: fileURL.spec,
+          },
+        },
+      },
+    }),
+  ]);
+  let addon = await AddonManager.getAddonByID(addonID);
+  notEqual(addon, null, "Addon should not be null");
+  equal(addon.appDisabled, false, "Addon should not be disabled");
+  equal(
+    addon.permissions & AddonManager.PERM_CAN_UNINSTALL,
+    0,
+    "Addon should not be able to be uninstalled."
+  );
+  notEqual(
+    addon.permissions & AddonManager.PERM_CAN_DISABLE,
+    0,
+    "Addon should be able to be disabled."
+  );
+
+  await addon.uninstall();
+});
diff --git a/browser/components/extensions/test/browser/browser.ini b/browser/components/extensions/test/browser/browser.ini
index aedf127e24e803d9b14eada249121ec86d8ca72e..b986706308f837f1c206a85d9ebc3c0607810581 100644
--- a/browser/components/extensions/test/browser/browser.ini
+++ b/browser/components/extensions/test/browser/browser.ini
@@ -45,7 +45,7 @@ support-files =
   ../../../../../toolkit/components/reader/test/readerModeNonArticle.html
   ../../../../../toolkit/components/reader/test/readerModeArticle.html
 skip-if =
-  fission && os == "linux" && asan  # Bug 1713895 - new Fission platform triage
+  os == "linux" && asan  # Bug 1713895 - new Fission platform triage
   os == "win" && os_version == "6.1" && webrender # Bug 1717249
 
 [browser_ExtensionControlledPopup.js]
diff --git a/browser/components/newtab/test/unit/asrouter/ASRouterTargeting.test.js b/browser/components/newtab/test/unit/asrouter/ASRouterTargeting.test.js
index dbdb72dc395413ab46d4e5a040fabb800ef73f1d..c519df4e0661bf079fc38a4774e02e5f5f655150 100644
--- a/browser/components/newtab/test/unit/asrouter/ASRouterTargeting.test.js
+++ b/browser/components/newtab/test/unit/asrouter/ASRouterTargeting.test.js
@@ -346,19 +346,17 @@ describe("#mainPingSubmissions", () => {
     );
   });
   it("should allow for pings < 24hrs apart but on different days", async () => {
-    let startTime = new Date("2020-02-20").getTime();
-    let oneDay = 86400000;
+    let startTime = new Date().setHours(0);
+    let previousDay = new Date(startTime - 60 * 60 * 1000).getTime();
     promiseArchivedPingList = sandbox.stub().resolves([
       {
         id: "5c8c786b-eca5-734b-a755-7ec0f022aaaa",
-        // Using oneDay / 2 because timezone of browser running the test
-        // affects the calculation
-        timestampCreated: startTime - oneDay / 2,
+        timestampCreated: startTime,
         type: "main",
       },
       {
         id: "5c8c786b-eca5-734b-a755-7ec0f022aaac",
-        timestampCreated: startTime + 1000,
+        timestampCreated: previousDay,
         type: "main",
       },
     ]);
diff --git a/browser/components/places/PlacesUIUtils.jsm b/browser/components/places/PlacesUIUtils.jsm
index 0ac391963dcae21cc57909e2f8d7a9b7b40014bd..e5ee80dcf6acae6e88598e3c15628d3703299db6 100644
--- a/browser/components/places/PlacesUIUtils.jsm
+++ b/browser/components/places/PlacesUIUtils.jsm
@@ -1418,7 +1418,9 @@ var PlacesUIUtils = {
       menupopup._view.destroyContextMenu();
     }
 
-    PlacesUIUtils.lastContextMenuTriggerNode = null;
+    if (menupopup.id == "placesContext") {
+      PlacesUIUtils.lastContextMenuTriggerNode = null;
+    }
   },
 
   openSelectionInTabs(event) {
diff --git a/browser/components/preferences/tests/browser.ini b/browser/components/preferences/tests/browser.ini
index 61030b0c6d973adec32be5ed2d583214e2eaa7fc..ec0453801aec2af7d51e8ae8654c2f17e6091088 100644
--- a/browser/components/preferences/tests/browser.ini
+++ b/browser/components/preferences/tests/browser.ini
@@ -115,6 +115,7 @@ skip-if =
 [browser_spotlight.js]
 [browser_site_login_exceptions.js]
 [browser_permissions_dialog.js]
+[browser_permissions_dialog_default_perm.js]
 [browser_statePartitioning_PBM_strings.js]
 [browser_statePartitioning_strings.js]
 [browser_subdialogs.js]
diff --git a/browser/components/preferences/tests/browser_permissions_dialog_default_perm.js b/browser/components/preferences/tests/browser_permissions_dialog_default_perm.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c44a1c2b9d51a2e3a955374079551f3fe921074
--- /dev/null
+++ b/browser/components/preferences/tests/browser_permissions_dialog_default_perm.js
@@ -0,0 +1,148 @@
+"use strict";
+
+/* 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/. */
+
+const PERMISSIONS_URL =
+  "chrome://browser/content/preferences/dialogs/permissions.xhtml";
+
+let sitePermissionsDialog;
+
+let principal = Services.scriptSecurityManager.createContentPrincipal(
+  Services.io.newURI("http://www.example.com"),
+  {}
+);
+let pbPrincipal = Services.scriptSecurityManager.principalWithOA(principal, {
+  privateBrowsingId: 1,
+});
+let principalB = Services.scriptSecurityManager.createContentPrincipal(
+  Services.io.newURI("https://example.org"),
+  {}
+);
+
+/**
+ * Replaces the default permissions defined in browser/app/permissions with our
+ * own test-only permissions and instructs the permission manager to import
+ * them.
+ */
+async function addDefaultTestPermissions() {
+  // create a file in the temp directory with the defaults.
+  let file = Services.dirsvc.get("TmpD", Ci.nsIFile);
+  file.append("test_default_permissions");
+
+  await IOUtils.writeUTF8(
+    file.path,
+    `origin\tinstall\t1\t${principal.origin}\norigin\tinstall\t1\t${pbPrincipal.origin}\n`
+  );
+
+  // Change the default permission file path.
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      ["permissions.manager.defaultsUrl", Services.io.newFileURI(file).spec],
+    ],
+  });
+
+  // Call the permission manager to reload default permissions from file.
+  Services.obs.notifyObservers(null, "testonly-reload-permissions-from-disk");
+
+  registerCleanupFunction(async () => {
+    // Clean up temporary default permission file.
+    await IOUtils.remove(file.path);
+
+    // Restore non-test default permissions.
+    await SpecialPowers.popPrefEnv();
+    Services.obs.notifyObservers(null, "testonly-reload-permissions-from-disk");
+  });
+}
+
+async function openPermissionsDialog() {
+  let dialogOpened = promiseLoadSubDialog(PERMISSIONS_URL);
+
+  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function() {
+    let doc = content.document;
+    let settingsButton = doc.getElementById("addonExceptions");
+    settingsButton.click();
+  });
+
+  sitePermissionsDialog = await dialogOpened;
+  await sitePermissionsDialog.document.mozSubdialogReady;
+}
+
+add_task(async function setup() {
+  await addDefaultTestPermissions();
+});
+
+/**
+ * Tests that default (persistent) private browsing permissions can be removed.
+ */
+add_task(async function removeAll() {
+  await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
+  await openPermissionsDialog();
+
+  let doc = sitePermissionsDialog.document;
+  let richlistbox = doc.getElementById("permissionsBox");
+
+  // First item in the richlistbox contains column headers.
+  Assert.equal(
+    richlistbox.itemCount,
+    2,
+    "Should have the two default permission entries initially."
+  );
+
+  info("Adding a new non-default install permission");
+  PermissionTestUtils.add(principalB, "install", Services.perms.ALLOW_ACTION);
+
+  info("Waiting for the permission to appear in the list.");
+  await BrowserTestUtils.waitForMutationCondition(
+    richlistbox,
+    { childList: true },
+    () => richlistbox.itemCount == 3
+  );
+
+  info("Clicking remove all.");
+  doc.getElementById("removeAllPermissions").click();
+
+  info("Waiting for all list items to be cleared.");
+  await BrowserTestUtils.waitForMutationCondition(
+    richlistbox,
+    { childList: true },
+    () => richlistbox.itemCount == 0
+  );
+
+  let dialogClosePromise = BrowserTestUtils.waitForEvent(
+    sitePermissionsDialog,
+    "dialogclosing",
+    true
+  );
+
+  info("Accepting dialog to apply the changes.");
+  doc
+    .querySelector("dialog")
+    .getButton("accept")
+    .click();
+
+  info("Waiting for dialog to close.");
+  await dialogClosePromise;
+
+  info("Waiting for all permissions to be removed.");
+  await TestUtils.waitForCondition(
+    () =>
+      PermissionTestUtils.getPermissionObject(principal, "install") == null &&
+      PermissionTestUtils.getPermissionObject(pbPrincipal, "install") == null &&
+      PermissionTestUtils.getPermissionObject(principalB, "install") == null
+  );
+
+  info("Opening the permissions dialog again.");
+  await openPermissionsDialog();
+
+  Assert.equal(
+    richlistbox.itemCount,
+    0,
+    "Permission list should still be empty."
+  );
+
+  // Cleanup
+  BrowserTestUtils.removeTab(gBrowser.selectedTab);
+  Services.perms.removeAll();
+});
diff --git a/browser/components/resistfingerprinting/test/browser/browser.ini b/browser/components/resistfingerprinting/test/browser/browser.ini
index c198f59ee9d6c3f4e5fb669cb3140e48791b0b4e..1e2af10588ee00354f3569836dc7ed184863f87b 100644
--- a/browser/components/resistfingerprinting/test/browser/browser.ini
+++ b/browser/components/resistfingerprinting/test/browser/browser.ini
@@ -17,6 +17,7 @@ support-files =
 [browser_cross_origin_isolated_reduce_time_precision.js]
 [browser_dynamical_window_rounding.js]
 skip-if = (os == "mac") #Bug 1570812
+[browser_math.js]
 [browser_navigator.js]
 skip-if =
   os == "win" && debug && bits == 32  # fails on win10-32/debug
diff --git a/browser/components/resistfingerprinting/test/browser/browser_math.js b/browser/components/resistfingerprinting/test/browser/browser_math.js
new file mode 100644
index 0000000000000000000000000000000000000000..66a71145907fe53c7b3385b4004927f38c622130
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/browser_math.js
@@ -0,0 +1,107 @@
+/**
+ * Bug 531915 - A test for verifying that the JS Math fingerprint is constant
+ *              when using fdlibm for Math.sin, Math.cos, and Math.tan.
+ */
+
+async function test_math(rfp_pref, fdlibm_pref) {
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      ["javascript.options.use_fdlibm_for_sin_cos_tan", fdlibm_pref],
+      ["privacy.resistFingerprinting", rfp_pref],
+    ],
+  });
+
+  let tab = await BrowserTestUtils.openNewForegroundTab(
+    gBrowser,
+    TEST_PATH + "file_dummy.html"
+  );
+
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async function() {
+    // override is to check strict equality like we would do in a JS ref test.
+    function strictly_is(a, b) {
+      ok(a === b);
+    }
+
+    //
+    // Tests adapted from https://github.com/arkenfox/TZP/blob/5e3f5ff2c64b4edc7beecd8308aa4f7a3efb49e3/tests/math.html#L158-L319
+    //
+    strictly_is(Math.cos(1e251), -0.37419577499634155);
+    strictly_is(Math.cos(1e140), -0.7854805190645291);
+    strictly_is(Math.cos(1e12), 0.7914463018528902);
+    strictly_is(Math.cos(1e130), -0.767224894221913);
+    strictly_is(Math.cos(1e272), -0.7415825695514536);
+    strictly_is(Math.cos(1), 0.5403023058681398);
+    strictly_is(Math.cos(1e284), 0.7086865671674247);
+    strictly_is(Math.cos(1e75), -0.7482651726250321);
+    strictly_is(Math.cos(Math.PI), -1);
+    strictly_is(Math.cos(-1e308), -0.8913089376870335);
+    strictly_is(Math.cos(13 * Math.E), -0.7108118501064332);
+    strictly_is(Math.cos(57 * Math.E), -0.536911695749024);
+    strictly_is(Math.cos(21 * Math.LN2), -0.4067775970251724);
+    strictly_is(Math.cos(51 * Math.LN2), -0.7017203400855446);
+    strictly_is(Math.cos(21 * Math.LOG2E), 0.4362848063618998);
+    strictly_is(Math.cos(25 * Math.SQRT2), -0.6982689820462377);
+    strictly_is(Math.cos(50 * Math.SQRT1_2), -0.6982689820462377);
+    strictly_is(Math.cos(21 * Math.SQRT1_2), -0.6534063185820198);
+    strictly_is(Math.cos(17 * Math.LOG10E), 0.4537557425982784);
+    strictly_is(Math.cos(2 * Math.LOG10E), 0.6459044007438142);
+
+    strictly_is(Math.sin(1e251), -0.9273497301314576);
+    strictly_is(Math.sin(1e140), -0.6188863822787813);
+    strictly_is(Math.sin(1e12), -0.6112387023768895);
+    strictly_is(Math.sin(1e130), 0.6413781736901984);
+    strictly_is(Math.sin(1e272), 0.6708616046081811);
+    strictly_is(Math.sin(1), 0.8414709848078965);
+    strictly_is(Math.sin(1e284), -0.7055234578073583);
+    strictly_is(Math.sin(1e75), 0.66339975236386);
+    strictly_is(Math.sin(Math.PI), 1.2246467991473532e-16);
+    strictly_is(Math.sin(39 * Math.E), -0.7181630308570678);
+    strictly_is(Math.sin(35 * Math.LN2), -0.765996413898051);
+    strictly_is(Math.sin(110 * Math.LOG2E), 0.9989410140273757);
+    strictly_is(Math.sin(7 * Math.LOG10E), 0.10135692924965616);
+    strictly_is(Math.sin(35 * Math.SQRT1_2), -0.3746357547858202);
+    strictly_is(Math.sin(21 * Math.SQRT2), -0.9892668187780497);
+
+    strictly_is(Math.tan(1e251), 2.478247463217681);
+    strictly_is(Math.tan(1e140), 0.7879079967710036);
+    strictly_is(Math.tan(1e12), -0.7723059681318761);
+    strictly_is(Math.tan(1e130), -0.8359715365344825);
+    strictly_is(Math.tan(1e272), -0.904635076595654);
+    strictly_is(Math.tan(1), 1.5574077246549023);
+    strictly_is(Math.tan(1e284), -0.9955366596368418);
+    strictly_is(Math.tan(1e75), -0.8865837628611647);
+    strictly_is(Math.tan(-1e308), 0.5086861259107568);
+    strictly_is(Math.tan(Math.PI), -1.2246467991473532e-16);
+    strictly_is(Math.tan(6 * Math.E), 0.6866761546452431);
+    strictly_is(Math.tan(6 * Math.LN2), 1.6182817135715877);
+    strictly_is(Math.tan(10 * Math.LOG2E), -3.3537128705376014);
+    strictly_is(Math.tan(17 * Math.SQRT2), -1.9222955461799982);
+    strictly_is(Math.tan(34 * Math.SQRT1_2), -1.9222955461799982);
+    strictly_is(Math.tan(10 * Math.LOG10E), 2.5824856130712432);
+
+    //
+    // Tests adapted from https://github.com/fingerprintjs/fingerprintjs/blob/7096a5589af495f1f46067963e13ad27d887d185/src/sources/math.ts#L32-L64
+    //
+    strictly_is(Math.acos(0.123124234234234242), 1.4473588658278522);
+    strictly_is(Math.acosh(1e308), 709.889355822726);
+    strictly_is(Math.asin(0.123124234234234242), 0.12343746096704435);
+    strictly_is(Math.asinh(1), 0.881373587019543);
+    strictly_is(Math.atanh(0.5), 0.5493061443340548);
+    strictly_is(Math.atan(0.5), 0.4636476090008061);
+    strictly_is(Math.sin(-1e300), 0.8178819121159085);
+    strictly_is(Math.sinh(1), 1.1752011936438014);
+    strictly_is(Math.cos(10.000000000123), -0.8390715290095377);
+    strictly_is(Math.cosh(1), 1.5430806348152437);
+    strictly_is(Math.tan(-1e300), -1.4214488238747245);
+    strictly_is(Math.tanh(1), 0.7615941559557649);
+    strictly_is(Math.exp(1), 2.718281828459045);
+    strictly_is(Math.expm1(1), 1.718281828459045);
+    strictly_is(Math.log1p(10), 2.3978952727983707);
+  });
+
+  BrowserTestUtils.removeTab(tab);
+}
+
+add_task(test_math.bind(null, false, true));
+add_task(test_math.bind(null, true, false));
+add_task(test_math.bind(null, true, true));
diff --git a/browser/components/search/SearchOneOffs.jsm b/browser/components/search/SearchOneOffs.jsm
index ccf34cd847c5b7358b00bf7c3fb50efee2a800de..56a3f0618973ef8e802dc509d66c70661b73bcb1 100644
--- a/browser/components/search/SearchOneOffs.jsm
+++ b/browser/components/search/SearchOneOffs.jsm
@@ -37,7 +37,6 @@ class SearchOneOffs {
       </hbox>
       <box class="search-panel-one-offs-container">
         <hbox class="search-panel-one-offs" role="group"/>
-        <hbox class="search-one-offs-spacer"/>
         <button class="searchbar-engine-one-off-item search-setting-button" tabindex="-1" data-l10n-id="search-one-offs-change-settings-compact-button"/>
       </box>
       <box>
@@ -72,8 +71,6 @@ class SearchOneOffs {
 
     this.settingsButtonCompact = this.querySelector(".search-setting-button");
 
-    this.spacerCompact = this.querySelector(".search-one-offs-spacer");
-
     this.contextMenuPopup = this.querySelector(".search-one-offs-context-menu");
 
     /**
@@ -463,8 +460,6 @@ class SearchOneOffs {
       return;
     }
 
-    this.spacerCompact.setAttribute("flex", "1");
-
     // Ensure we can refer to the settings buttons by ID:
     let origin = this.telemetryOrigin;
     this.settingsButtonCompact.id = origin + "-anon-search-settings";
diff --git a/browser/components/search/content/contentSearchHandoffUI.js b/browser/components/search/content/contentSearchHandoffUI.js
index a7d60afe5774a8f5fc54e11580ef00337c49c2b6..cd99f4961c884e514f5ee954fe3f28ee2269a900 100644
--- a/browser/components/search/content/contentSearchHandoffUI.js
+++ b/browser/components/search/content/contentSearchHandoffUI.js
@@ -5,7 +5,8 @@
 "use strict";
 
 function ContentSearchHandoffUIController() {
-  this._isPrivateWindow = false;
+  this._isPrivateEngine = false;
+  this._isAboutPrivateBrowsing = false;
   this._engineIcon = null;
 
   window.addEventListener("ContentSearchService", this);
@@ -24,19 +25,20 @@ ContentSearchHandoffUIController.prototype = {
     return this._defaultEngine;
   },
 
-  _onMsgEngine({ isPrivateWindow, engine }) {
-    this._isPrivateWindow = isPrivateWindow;
+  _onMsgEngine({ isPrivateEngine, isAboutPrivateBrowsing, engine }) {
+    this._isPrivateEngine = isPrivateEngine;
+    this._isAboutPrivateBrowsing = isAboutPrivateBrowsing;
     this._updateEngine(engine);
   },
 
   _onMsgCurrentEngine(engine) {
-    if (!this._isPrivateWindow) {
+    if (!this._isPrivateEngine) {
       this._updateEngine(engine);
     }
   },
 
   _onMsgCurrentPrivateEngine(engine) {
-    if (this._isPrivateWindow) {
+    if (this._isPrivateEngine) {
       this._updateEngine(engine);
     }
   },
@@ -67,20 +69,20 @@ ContentSearchHandoffUIController.prototype = {
     if (!engine.isAppProvided) {
       document.l10n.setAttributes(
         fakeButton,
-        this._isPrivateWindow
+        this._isAboutPrivateBrowsing
           ? "about-private-browsing-handoff-no-engine"
           : "newtab-search-box-handoff-input-no-engine"
       );
       document.l10n.setAttributes(
         fakeInput,
-        this._isPrivateWindow
+        this._isAboutPrivateBrowsing
           ? "about-private-browsing-handoff-text-no-engine"
           : "newtab-search-box-handoff-text-no-engine"
       );
     } else {
       document.l10n.setAttributes(
         fakeButton,
-        this._isPrivateWindow
+        this._isAboutPrivateBrowsing
           ? "about-private-browsing-handoff"
           : "newtab-search-box-handoff-input",
         {
@@ -89,7 +91,7 @@ ContentSearchHandoffUIController.prototype = {
       );
       document.l10n.setAttributes(
         fakeInput,
-        this._isPrivateWindow
+        this._isAboutPrivateBrowsing
           ? "about-private-browsing-handoff-text"
           : "newtab-search-box-handoff-text",
         {
diff --git a/browser/components/search/content/contentSearchUI.js b/browser/components/search/content/contentSearchUI.js
index b1f81dc12fc9c8793610c8433bb9e03053a99b08..aa92c327b14339c1d5a85567f0a167e62f028207 100644
--- a/browser/components/search/content/contentSearchUI.js
+++ b/browser/components/search/content/contentSearchUI.js
@@ -47,7 +47,7 @@ this.ContentSearchUIController = (function() {
     this._idPrefix = idPrefix;
     this._healthReportKey = healthReportKey;
     this._searchPurpose = searchPurpose;
-    this._isPrivateWindow = false;
+    this._isPrivateEngine = false;
 
     let tableID = idPrefix + "searchSuggestionTable";
     this.input.autocomplete = "off";
@@ -636,13 +636,13 @@ this.ContentSearchUIController = (function() {
     _onMsgState(state) {
       // Not all state messages broadcast the windows' privateness info.
       if ("isPrivateWindow" in state) {
-        this._isPrivateWindow = state.isPrivateWindow;
+        this._isPrivateEngine = state.isPrivateEngine;
       }
 
       this.engines = state.engines;
 
       let currentEngine = state.currentEngine;
-      if (this._isPrivateWindow) {
+      if (this._isPrivateEngine) {
         currentEngine = state.currentPrivateEngine;
       }
 
@@ -662,7 +662,7 @@ this.ContentSearchUIController = (function() {
     },
 
     _onMsgCurrentEngine(engine) {
-      if (this._isPrivateWindow) {
+      if (this._isPrivateEngine) {
         return;
       }
       this.defaultEngine = engine;
@@ -670,7 +670,7 @@ this.ContentSearchUIController = (function() {
     },
 
     _onMsgCurrentPrivateEngine(engine) {
-      if (!this._isPrivateWindow) {
+      if (!this._isPrivateEngine) {
         return;
       }
       this.defaultEngine = engine;
diff --git a/browser/components/search/test/browser/browser_contentSearchUI_default.js b/browser/components/search/test/browser/browser_contentSearchUI_default.js
index 6783e55b0f93cf83e29862def3236360e3a2f2fa..13c9a3761075f757b70ce57018300e250afd059c 100644
--- a/browser/components/search/test/browser/browser_contentSearchUI_default.js
+++ b/browser/components/search/test/browser/browser_contentSearchUI_default.js
@@ -144,3 +144,17 @@ add_task(async function test_content_search_attributes_in_private_window() {
 
   await BrowserTestUtils.closeWindow(win);
 });
+
+add_task(async function test_content_search_permanent_private_browsing() {
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      [HANDOFF_PREF, true],
+      ["browser.privatebrowsing.autostart", true],
+    ],
+  });
+
+  let win = await BrowserTestUtils.openNewBrowserWindow();
+  await runNewTabTest(true);
+  await BrowserTestUtils.closeWindow(win);
+  await SpecialPowers.popPrefEnv();
+});
diff --git a/browser/components/urlbar/UrlbarPrefs.jsm b/browser/components/urlbar/UrlbarPrefs.jsm
index bccdde1de696dbf8e0b0fe84e818f6725954c3fd..2b2df5c1aa15494169001fc564cccef454cc035a 100644
--- a/browser/components/urlbar/UrlbarPrefs.jsm
+++ b/browser/components/urlbar/UrlbarPrefs.jsm
@@ -71,6 +71,10 @@ const PREF_URLBAR_DEFAULTS = new Map([
   // but this would mean flushing layout.)
   ["disableExtendForTests", false],
 
+  // Ensure we use trailing dots for DNS lookups for single words that could
+  // be hosts.
+  ["dnsResolveFullyQualifiedNames", true],
+
   // Controls when to DNS resolve single word search strings, after they were
   // searched for. If the string is resolved as a valid host, show a
   // "Did you mean to go to 'host'" prompt.
diff --git a/browser/components/urlbar/UrlbarProviderInputHistory.jsm b/browser/components/urlbar/UrlbarProviderInputHistory.jsm
index e4a49656218bd8bf16e197df0c5e91acf1cd3cfc..222bb3da335169d4b9727129485c0a76e6bde7ee 100644
--- a/browser/components/urlbar/UrlbarProviderInputHistory.jsm
+++ b/browser/components/urlbar/UrlbarProviderInputHistory.jsm
@@ -6,9 +6,9 @@
 
 /**
  * This module exports a provider that offers input history (aka adaptive
- * history) results. These results map typed search string to history results.
- * That way, a user can find a particular history result again by typing the
- * same string.
+ * history) results. These results map typed search strings to Urlbar results.
+ * That way, a user can find a particular result again by typing the same
+ * string.
  */
 
 var EXPORTED_SYMBOLS = ["UrlbarProviderInputHistory"];
@@ -97,7 +97,12 @@ class ProviderInputHistory extends UrlbarProvider {
    * @returns {boolean} Whether this provider should be invoked for the search.
    */
   isActive(queryContext) {
-    return UrlbarPrefs.get("suggest.history") && !queryContext.searchMode;
+    return (
+      (UrlbarPrefs.get("suggest.history") ||
+        UrlbarPrefs.get("suggest.bookmark") ||
+        UrlbarPrefs.get("suggest.openpage")) &&
+      !queryContext.searchMode
+    );
   }
 
   /**
@@ -151,10 +156,14 @@ class ProviderInputHistory extends UrlbarProvider {
         continue;
       }
 
-      let resultSource = UrlbarUtils.RESULT_SOURCE.HISTORY;
+      let resultSource;
       if (bookmarked && UrlbarPrefs.get("suggest.bookmark")) {
         resultSource = UrlbarUtils.RESULT_SOURCE.BOOKMARKS;
         resultTitle = bookmarkTitle || historyTitle;
+      } else if (UrlbarPrefs.get("suggest.history")) {
+        resultSource = UrlbarUtils.RESULT_SOURCE.HISTORY;
+      } else {
+        continue;
       }
 
       let resultTags = tags
diff --git a/browser/components/urlbar/tests/browser/browser_inputHistory.js b/browser/components/urlbar/tests/browser/browser_inputHistory.js
index af13eff90b96e9532ec3f1199e73d20f7426a677..3974da3d2c80b2c86c6e850161eda8df68dc4e5d 100644
--- a/browser/components/urlbar/tests/browser/browser_inputHistory.js
+++ b/browser/components/urlbar/tests/browser/browser_inputHistory.js
@@ -279,19 +279,20 @@ add_task(async function test_adaptive_behaviors() {
   await PlacesUtils.bookmarks.eraseEverything();
 
   // Add an adaptive entry.
-  await bumpScore("http://site.tld/1", "site", { visits: 1, picks: 1 });
+  let historyUrl = "http://site.tld/1";
+  await bumpScore(historyUrl, "site", { visits: 1, picks: 1 });
 
-  let url = "http://bookmarked.site.tld/1";
+  let bookmarkURL = "http://bookmarked.site.tld/1";
   let bm = await PlacesUtils.bookmarks.insert({
     parentGuid: PlacesUtils.bookmarks.unfiledGuid,
     title: "test_book",
-    url,
+    url: bookmarkURL,
   });
 
   await SpecialPowers.pushPrefEnv({
     set: [
       // Search only bookmarks.
-      ["browser.urlbar.suggest.bookmarks", true],
+      ["browser.urlbar.suggest.bookmark", true],
       ["browser.urlbar.suggest.history", false],
     ],
   });
@@ -299,8 +300,101 @@ add_task(async function test_adaptive_behaviors() {
     window: win,
     value: "site",
   });
-  let result = await UrlbarTestUtils.getDetailsOfResultAt(win, 1);
-  Assert.equal(result.url, url, "Check bookmarked result");
+  let result = (await UrlbarTestUtils.waitForAutocompleteResultAt(win, 1))
+    .result;
+  Assert.equal(result.payload.url, bookmarkURL, "Check bookmarked result");
+  Assert.notEqual(
+    result.providerName,
+    "InputHistory",
+    "The bookmarked result is not from InputHistory."
+  );
+  Assert.equal(
+    UrlbarTestUtils.getResultCount(win),
+    2,
+    "Check there are no unexpected results"
+  );
+  await PlacesUtils.bookmarks.remove(bm);
+
+  // Repeat the previous case but now the bookmark has the same URL as the
+  // history result. We expect the returned result comes from InputHistory.
+  bm = await PlacesUtils.bookmarks.insert({
+    parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+    title: "test_book",
+    url: historyUrl,
+  });
+  await UrlbarTestUtils.promiseAutocompleteResultPopup({
+    window: win,
+    value: "sit",
+  });
+  result = (await UrlbarTestUtils.waitForAutocompleteResultAt(win, 1)).result;
+  Assert.equal(result.payload.url, historyUrl, "Check bookmarked result");
+  Assert.equal(
+    result.providerName,
+    "InputHistory",
+    "The bookmarked result is from InputHistory."
+  );
+  Assert.equal(
+    result.source,
+    UrlbarUtils.RESULT_SOURCE.BOOKMARKS,
+    "The input history result is a bookmark."
+  );
+
+  Assert.equal(
+    UrlbarTestUtils.getResultCount(win),
+    2,
+    "Check there are no unexpected results"
+  );
+
+  await SpecialPowers.popPrefEnv();
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      // Search only open pages. We don't provide an open page, but we want to
+      // enable at least one of these prefs so that UrlbarProviderInputHistory
+      // is active.
+      ["browser.urlbar.suggest.bookmark", false],
+      ["browser.urlbar.suggest.history", false],
+      ["browser.urlbar.suggest.openpage", true],
+    ],
+  });
+
+  await UrlbarTestUtils.promiseAutocompleteResultPopup({
+    window: win,
+    value: "site",
+  });
+  Assert.equal(
+    UrlbarTestUtils.getResultCount(win),
+    1,
+    "There is no adaptive history result because it is not an open page."
+  );
+  await SpecialPowers.popPrefEnv();
+
+  // Clearing history but not deleting the bookmark. This simulates the case
+  // where the user has cleared their history or is using permanent private
+  // browsing mode.
+  await PlacesUtils.history.clear();
+  await SpecialPowers.pushPrefEnv({
+    set: [
+      ["browser.urlbar.suggest.bookmark", true],
+      ["browser.urlbar.suggest.history", false],
+      ["browser.urlbar.suggest.openpage", false],
+    ],
+  });
+  await UrlbarTestUtils.promiseAutocompleteResultPopup({
+    window: win,
+    value: "sit",
+  });
+  result = (await UrlbarTestUtils.waitForAutocompleteResultAt(win, 1)).result;
+  Assert.equal(result.payload.url, historyUrl, "Check bookmarked result");
+  Assert.equal(
+    result.providerName,
+    "InputHistory",
+    "The bookmarked result is from InputHistory."
+  );
+  Assert.equal(
+    result.source,
+    UrlbarUtils.RESULT_SOURCE.BOOKMARKS,
+    "The input history result is a bookmark."
+  );
 
   Assert.equal(
     UrlbarTestUtils.getResultCount(win),
@@ -314,8 +408,6 @@ add_task(async function test_adaptive_behaviors() {
 
 add_task(async function test_adaptive_mouse() {
   info("Check adaptive results are updated on mouse picks");
-  await PlacesUtils.history.clear();
-
   let url1 = "http://site.tld/1";
   let url2 = "http://site.tld/2";
 
diff --git a/browser/config/version.txt b/browser/config/version.txt
index 11a4e3cb2d045b03f3615d4cda1b0d0f055d2067..087a4d143896662020b038d325073cf82288db76 100644
--- a/browser/config/version.txt
+++ b/browser/config/version.txt
@@ -1 +1 @@
-91.0.1
+91.1.0
diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt
index 4a7ef9c550de530e99693ff803aa8260263e07d4..4c5254403b66c6aaa41ae6e1c20140589b7a2a5e 100644
--- a/browser/config/version_display.txt
+++ b/browser/config/version_display.txt
@@ -1 +1 @@
-91.0.1esr
+91.1.0esr
diff --git a/browser/extensions/screenshots/background/analytics.js b/browser/extensions/screenshots/background/analytics.js
index a0b48daab678ddd2d74cc1cee3a23523f412c735..a225b93b1643ce8b98324ffd3a9e65c60f97829e 100644
--- a/browser/extensions/screenshots/background/analytics.js
+++ b/browser/extensions/screenshots/background/analytics.js
@@ -9,14 +9,9 @@
 this.analytics = (function() {
   const exports = {};
 
-  const GA_PORTION = 0.1; // 10% of users will send to the server/GA
-  // This is set from storage, or randomly; if it is less that GA_PORTION then we send analytics:
   let myGaSegment = 1;
   let telemetryPrefKnown = false;
   let telemetryEnabled;
-  // If we ever get a 410 Gone response (or 404) from the server, we'll stop trying to send events for the rest
-  // of the session
-  let hasReturnedGone = false;
   // If there's this many entirely failed responses (e.g., server can't be contacted), then stop sending events
   // for the rest of the session:
   let serverFailedResponses = 3;
@@ -33,9 +28,7 @@ this.analytics = (function() {
   };
 
   function shouldSendEvents() {
-    return (
-      !hasReturnedGone && serverFailedResponses > 0 && myGaSegment < GA_PORTION
-    );
+    return false;
   }
 
   function flushEvents() {
@@ -364,7 +357,6 @@ this.analytics = (function() {
       .then(response => {
         if (response.status === 410 || response.status === 404) {
           // Gone
-          hasReturnedGone = true;
           pendingEvents = [];
           pendingTimings = [];
         }
diff --git a/browser/installer/windows/moz.build b/browser/installer/windows/moz.build
index 30d4c23bba093c133804c07f90fab0cee717d4b4..cd49c282ba9a7736bd560bcf9a23ff230b1495b3 100644
--- a/browser/installer/windows/moz.build
+++ b/browser/installer/windows/moz.build
@@ -10,6 +10,8 @@ DEFINES["MOZ_APP_NAME"] = CONFIG["MOZ_APP_NAME"]
 DEFINES["MOZ_APP_DISPLAYNAME"] = CONFIG["MOZ_APP_DISPLAYNAME"]
 DEFINES["MOZILLA_VERSION"] = CONFIG["MOZILLA_VERSION"]
 
+DEFINES["MOZ_HANDLER_CLSID"] = "{%s}" % CONFIG["MOZ_HANDLER_CLSID"]
+
 if CONFIG["MOZ_DEFAULT_BROWSER_AGENT"]:
     DEFINES["MOZ_DEFAULT_BROWSER_AGENT"] = CONFIG["MOZ_DEFAULT_BROWSER_AGENT"]
 
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
index d15f6713c9dd6f97ce5abd8e25615bea91c804eb..8f0467b1a47394951e480175ae0b3b7ed7729958 100644
--- a/browser/installer/windows/nsis/defines.nsi.in
+++ b/browser/installer/windows/nsis/defines.nsi.in
@@ -59,25 +59,7 @@
 !define UpdateChannel "@MOZ_UPDATE_CHANNEL@"
 !endif
 
-# AccessibleHandler.dll uses a different CLSID depending on release channel.
-# These defines must match HANDLER_CLSID defined in
-# accessible/ipc/win/handler/HandlerData.idl
-
-!if "@MOZ_UPDATE_CHANNEL@" == "default"
-#ifdef DEBUG
-!define AccessibleHandlerCLSID "{398FFD8D-5382-48F7-9E3B-19012762D39A}"
-#else
-!define AccessibleHandlerCLSID "{CE573FAF-7815-4FC2-A031-B092268ACE9E}"
-#endif
-!else if "@MOZ_UPDATE_CHANNEL@" == "nightly"
-!define AccessibleHandlerCLSID "{4629216B-8753-41BF-9527-5BFF51401671}"
-!else if "@MOZ_UPDATE_CHANNEL@" == "beta"
-!define AccessibleHandlerCLSID "{21E9F98D-A6C9-4CB5-B288-AE2FD2A96C58}"
-!else if "@MOZ_UPDATE_CHANNEL@" == "release"
-!define AccessibleHandlerCLSID "{1BAA303D-B4B9-45E5-9CCB-E3FCA3E274B6}"
-!else
-!define AccessibleHandlerCLSID "{4A195748-DCA2-45FB-9295-0A139E76A9E7}"
-!endif
+!define AccessibleHandlerCLSID "@MOZ_HANDLER_CLSID@"
 
 #ifdef MOZ_LAUNCHER_PROCESS
 !define MOZ_LAUNCHER_PROCESS
diff --git a/browser/modules/test/browser/browser_ContentSearch.js b/browser/modules/test/browser/browser_ContentSearch.js
index 5a674dd449aea3c8a5594ea842ba0a2ad3806ecd..a3c26cbff1fbac633d8331e8d1028195b0da4735 100644
--- a/browser/modules/test/browser/browser_ContentSearch.js
+++ b/browser/modules/test/browser/browser_ContentSearch.js
@@ -476,7 +476,8 @@ var currentStateObj = async function(isPrivateWindowValue, hiddenEngine = "") {
     });
   }
   if (typeof isPrivateWindowValue == "boolean") {
-    state.isPrivateWindow = isPrivateWindowValue;
+    state.isInPrivateBrowsingMode = isPrivateWindowValue;
+    state.isAboutPrivateBrowsing = isPrivateWindowValue;
   }
   return state;
 };
diff --git a/browser/modules/test/browser/browser_TabUnloader.js b/browser/modules/test/browser/browser_TabUnloader.js
index 5b5ec4f17167939d06e1426e0fa970d0cab17209..e90d8a6fb3cff03e806291b8b652fc092ca35a94 100644
--- a/browser/modules/test/browser/browser_TabUnloader.js
+++ b/browser/modules/test/browser/browser_TabUnloader.js
@@ -9,10 +9,25 @@ const BASE_URL = "https://example.com/browser/browser/modules/test/browser/";
 
 async function play(tab) {
   let browser = tab.linkedBrowser;
+
+  let waitForAudioPromise = BrowserTestUtils.waitForEvent(
+    tab,
+    "TabAttrModified",
+    false,
+    event => {
+      return (
+        event.detail.changed.includes("soundplaying") &&
+        tab.hasAttribute("soundplaying")
+      );
+    }
+  );
+
   await SpecialPowers.spawn(browser, [], async function() {
     let audio = content.document.querySelector("audio");
     await audio.play();
   });
+
+  await waitForAudioPromise;
 }
 
 async function addTab(win = window) {
diff --git a/browser/themes/osx/customizableui/panelUI.css b/browser/themes/osx/customizableui/panelUI.css
index 052cf48238145b421ee7a4a1b0cb2b81a652a74f..25ab33fc579b3e0e533ba07755bb0edcd76a28be 100644
--- a/browser/themes/osx/customizableui/panelUI.css
+++ b/browser/themes/osx/customizableui/panelUI.css
@@ -65,6 +65,14 @@ panelmultiview .toolbaritem-combined-buttons > spacer.before-label {
   display: none;
 }
 
+#BMB_bookmarksPopup .subviewbutton > .menu-iconic-left {
+  margin-inline-end: 3px;
+}
+
+#BMB_bookmarksPopup .subviewbutton > .menu-iconic-text {
+  padding-inline-start: 0;
+}
+
 #BMB_bookmarksPopup menupopup[placespopup=true]:-moz-lwtheme {
   appearance: none;
   background: transparent;
diff --git a/browser/themes/shared/UITour.inc.css b/browser/themes/shared/UITour.inc.css
index c03956bfc1d77e1d006afc3c6aab454406bfb09d..f47a9db8cfc4cbb7b63ecd74f80970e71f0f0682 100644
--- a/browser/themes/shared/UITour.inc.css
+++ b/browser/themes/shared/UITour.inc.css
@@ -8,7 +8,12 @@
 
 #UITourHighlightContainer {
   appearance: none;
+
+  /* Resets the native styles in windows and macOS */
+  border: none;
+  background-color: transparent;
   -moz-window-shadow: none;
+
   --panel-border-color: transparent;
   --panel-background: transparent;
   /* This is a buffer to compensate for the movement in the "wobble" effect,
diff --git a/browser/themes/shared/browser.inc.css b/browser/themes/shared/browser.inc.css
index fbbfa44c11c978403b1849d9574ab50292f90161..b345560225ee8619524481c4570540746be9fcba 100644
--- a/browser/themes/shared/browser.inc.css
+++ b/browser/themes/shared/browser.inc.css
@@ -280,12 +280,14 @@ menupopup::part(drop-indicator) {
 
 /* Find bar */
 
+.browserContainer > findbar > #findbar-close-container,
 .browserContainer > findbar {
   background-color: var(--toolbar-non-lwt-bgcolor);
   color: var(--toolbar-non-lwt-textcolor);
   text-shadow: none;
 }
 
+:root:not([lwtheme-image]) .browserContainer > findbar:-moz-lwtheme > #findbar-close-container,
 :root:not([lwtheme-image]) .browserContainer > findbar:-moz-lwtheme {
   background-color: var(--lwt-accent-color);
   background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor));
@@ -293,6 +295,7 @@ menupopup::part(drop-indicator) {
   color: var(--toolbar-color);
 }
 
+:root:not([lwtheme-image]) .browserContainer > findbar:-moz-lwtheme:-moz-window-inactive > #findbar-close-container,
 :root:not([lwtheme-image]) .browserContainer > findbar:-moz-lwtheme:-moz-window-inactive {
   background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color));
 }
diff --git a/browser/themes/shared/customizableui/panelUI.inc.css b/browser/themes/shared/customizableui/panelUI.inc.css
index 39b8c15f9a4d2a3b2c2cd93bad52884ac27ba153..e1d64c707518b306f26e71a2c923f7e157ddd31b 100644
--- a/browser/themes/shared/customizableui/panelUI.inc.css
+++ b/browser/themes/shared/customizableui/panelUI.inc.css
@@ -956,9 +956,7 @@ panelmultiview[mainViewId="PanelUI-fxa"] #PanelUI-remotetabs-syncnow {
 
 .PanelUI-fxa-signin-button > .toolbarbutton-text,
 .PanelUI-remotetabs-button > .toolbarbutton-text {
-  /* !important to override ".cui-widget-panel toolbarbutton > .toolbarbutton-text" above. */
-  text-align: center !important;
-  text-shadow: none;
+  display: -moz-box;
 }
 
 #PanelUI-remotetabs[mainview] { /* panel anchored to toolbar button might be too skinny */
@@ -1070,6 +1068,7 @@ panelview .toolbarbutton-1,
   padding-block: 0;
 }
 
+#BMB_bookmarksPopup .subviewbutton > .menu-iconic-text,
 .addon-banner-item > .toolbarbutton-text,
 .subviewbutton-iconic > .toolbarbutton-text,
 .subviewbutton[image] > .toolbarbutton-text,
@@ -1416,10 +1415,6 @@ menuitem.panel-subview-footer@menuStateActive@,
   color: inherit;
 }
 
-#BMB_bookmarksPopup .subviewbutton > .menu-iconic-left {
-  margin-inline-end: 3px;
-}
-
 /* Disabled (empty) item is always alone and never has an icon, so fix its left padding */
 #BMB_bookmarksPopup menupopup[emptyplacesresult] .bookmark-item.subviewbutton {
   padding-left: 6px;
diff --git a/browser/themes/shared/downloads/downloads.inc.css b/browser/themes/shared/downloads/downloads.inc.css
index 8deab7b9a3c5ad46463aab8ac3f8015dcaf4f379..3af764cb9396252d9c48c512425463d3f556fe7e 100644
--- a/browser/themes/shared/downloads/downloads.inc.css
+++ b/browser/themes/shared/downloads/downloads.inc.css
@@ -277,12 +277,13 @@ button.downloadButton {
 /*** Blocked subview ***/
 #downloadsPanel-blockedSubview-title {
   font-size: calc(100% / var(--downloads-item-font-size-factor));
+  margin-bottom: 1.5em;
 }
 
 #downloadsPanel-blockedSubview-details1,
 #downloadsPanel-blockedSubview-details2 {
   font-size: calc(100% * var(--downloads-item-font-size-factor));
-  margin-bottom: 16px;
+  margin-bottom: 1em;
   opacity: var(--downloads-item-details-opacity);
 }
 
diff --git a/browser/themes/shared/searchbar.inc.css b/browser/themes/shared/searchbar.inc.css
index 651b74c9e4f353fc1d2e38e0fb6b8d2c37beb4c8..ae7716b4471d59d5fd5ea33f02ca1dc8370842de 100644
--- a/browser/themes/shared/searchbar.inc.css
+++ b/browser/themes/shared/searchbar.inc.css
@@ -145,7 +145,7 @@
 .search-setting-button {
   max-height: 32px;
   align-self: end;
-  margin-inline: var(--arrowpanel-menuitem-margin);
+  margin-inline: 0;
 }
 
 .search-setting-button > .button-box > .button-icon {
diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
index 17381f3950b3f58dbfef34c07eae2426a68fb38e..67ba4342952a723a5becde77b0a6808514069513 100644
--- a/browser/themes/shared/urlbarView.inc.css
+++ b/browser/themes/shared/urlbarView.inc.css
@@ -445,6 +445,9 @@
 .urlbarView-title {
   overflow: hidden;
   white-space: nowrap;
+  /* Explicitly set line-height to avoid excessively tall rows if the title triggers use of
+     fallback fonts with extreme metrics. */
+  line-height: 1.4;
 }
 
 .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-title {
@@ -665,15 +668,11 @@
   margin-inline-end: 0;
 }
 
-#urlbar .search-setting-button-compact {
+#urlbar .search-setting-button {
   /* Force empty space before the button */
   margin-inline-start: calc(32px - /* settings start padding */ 8px );
 }
 
-#urlbar .search-one-offs-spacer {
-  flex-grow: 1;
-}
-
 .urlbarView-row[source="bookmarks"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon,
 #urlbar-engine-one-off-item-bookmarks {
   list-style-image: url("chrome://browser/skin/bookmark.svg");
diff --git a/comm/.gecko_rev.yml b/comm/.gecko_rev.yml
index 6be9c335e6d4c7a06ae26eb2633ac3617f7831e1..0eeb27ae7ba542b80993a998108da23aa53f782a 100644
--- a/comm/.gecko_rev.yml
+++ b/comm/.gecko_rev.yml
@@ -1,8 +1,8 @@
 ---
 GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified
 GECKO_HEAD_REPOSITORY: https://hg.mozilla.org/releases/mozilla-esr91
-GECKO_HEAD_REF: FIREFOX_91_0_1esr_RELEASE
-GECKO_HEAD_REV: 8046f1ae74749dd164478750e0d7a0d529313403
+GECKO_HEAD_REF: FIREFOX_91_1_0esr_BUILD1
+GECKO_HEAD_REV: d015edeaf1a75b6bd672f9f9a413251482b715d6
 
 ### For comm-central
 # GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified
diff --git a/comm/calendar/base/content/agenda-listbox.js b/comm/calendar/base/content/agenda-listbox.js
index 8be0546dbf6b0b13f8dd23aa314ddeb9206e0ed5..18833b3686fc2c1007ba1d6b7a08ec54a9ae0de2 100644
--- a/comm/calendar/base/content/agenda-listbox.js
+++ b/comm/calendar/base/content/agenda-listbox.js
@@ -267,6 +267,7 @@
         `)
       );
       this.mOccurrence = null;
+      this.setAttribute("tooltip", "itemTooltip");
       this.initializeAttributeInheritance();
     }
     setOccurrence(aItem, aPeriod) {
diff --git a/comm/calendar/base/content/calendar-command-controller.js b/comm/calendar/base/content/calendar-command-controller.js
index dd6c0e556eb89cbaff2a9e8269f978d15f0f2cec..d41784b7031f2a479abb98bffa13836587dcb06e 100644
--- a/comm/calendar/base/content/calendar-command-controller.js
+++ b/comm/calendar/base/content/calendar-command-controller.js
@@ -79,7 +79,6 @@ var calendarController = {
     "calendar_month-view_command",
 
     "calendar_task_filter_command",
-    "calendar_task_filter_todaypane_command",
     "calendar_reload_remote_calendars",
     "calendar_show_unifinder_command",
     "calendar_toggle_completed_command",
diff --git a/comm/calendar/base/content/calendar-commands.inc.xhtml b/comm/calendar/base/content/calendar-commands.inc.xhtml
index 55d44333cf6b0aa1e41312245a7281e0c1ce9de3..77c77de79ca7c44b9311a457f8a33f05680170c1 100644
--- a/comm/calendar/base/content/calendar-commands.inc.xhtml
+++ b/comm/calendar/base/content/calendar-commands.inc.xhtml
@@ -81,7 +81,6 @@
   <command id="calendar_toggle_minimonthpane_command" oncommand="document.getElementById('minimonth-pane').togglePane(event)"/>
   <command id="calendar_toggle_calendarlist_command" oncommand="document.getElementById('calendar-list-pane').togglePane(event)"/>
   <command id="calendar_task_filter_command" oncommand="taskViewUpdate(event.target.getAttribute('value'))"/>
-  <command id="calendar_task_filter_todaypane_command" oncommand="TodayPane.updateCalendarToDoUnifinder(event.target.getAttribute('value'))"/>
   <command id="calendar_toggle_filter_command" oncommand="document.getElementById('task-filter-pane').togglePane(event)"/>
   <command id="calendar_view_next_command" oncommand="goDoCommand('calendar_view_next_command')"/>
   <command id="calendar_view_today_command" oncommand="currentView().moveView()"/>
diff --git a/comm/calendar/base/content/calendar-context-menus-and-tooltips.inc.xhtml b/comm/calendar/base/content/calendar-context-menus-and-tooltips.inc.xhtml
index 4c67b0565fe63eb90c2fcc021a5c15ab7b2b1278..f61225a76c95607e5405b1441b877b15deb34aef 100644
--- a/comm/calendar/base/content/calendar-context-menus-and-tooltips.inc.xhtml
+++ b/comm/calendar/base/content/calendar-context-menus-and-tooltips.inc.xhtml
@@ -725,61 +725,54 @@
     <menu id="task-context-menu-filter-todaypane"
           label="&calendar.tasks.view.filtertasks.label;"
           accesskey="&calendar.tasks.view.filtertasks.accesskey;">
-      <menupopup id="task-context-menu-filter-todaypane-popup">
+      <menupopup id="task-context-menu-filter-todaypane-popup"
+                 oncommand="TodayPane.updateCalendarToDoUnifinder(event.target.getAttribute('value'))">
         <menuitem id="task-context-menu-filter-todaypane-current"
                   name="filtergrouptodaypane"
                   value="throughcurrent"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.current.label;"
                   accesskey="&calendar.task.filter.current.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-today"
                   name="filtergrouptodaypane"
                   value="throughtoday"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.today.label;"
                   accesskey="&calendar.task.filter.today.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-next7days"
                   name="filtergrouptodaypane"
                   value="throughsevendays"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.next7days.label;"
                   accesskey="&calendar.task.filter.next7days.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-notstarted"
                   name="filtergrouptodaypane"
                   value="notstarted"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.notstarted.label;"
                   accesskey="&calendar.task.filter.notstarted.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-overdue"
                   name="filtergrouptodaypane"
                   value="overdue"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.overdue.label;"
                   accesskey="&calendar.task.filter.overdue.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-completed"
                   name="filtergrouptodaypane"
                   type="radio"
                   value="completed"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.completed.label;"
                   accesskey="&calendar.task.filter.completed.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-open"
                   name="filtergrouptodaypane"
                   type="radio"
                   value="open"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.open.label;"
                   accesskey="&calendar.task.filter.open.accesskey;"/>
         <menuitem id="task-context-menu-filter-todaypane-all"
                   name="filtergrouptodaypane"
                   value="all"
                   type="radio"
-                  command="calendar_task_filter_todaypane_command"
                   label="&calendar.task.filter.all.label;"
                   accesskey="&calendar.task.filter.all.accesskey;"/>
       </menupopup>
diff --git a/comm/calendar/base/content/dialogs/calendar-creation.js b/comm/calendar/base/content/dialogs/calendar-creation.js
index 668517ad0752bd6e073e272723cfdd9dd9cc4f3d..25a9ee853fd9ff60bf7dce4ab47f4b5687b708a8 100644
--- a/comm/calendar/base/content/dialogs/calendar-creation.js
+++ b/comm/calendar/base/content/dialogs/calendar-creation.js
@@ -688,6 +688,7 @@ function onDetectionSuccess(providerMap) {
       .map(calendar => calendar.uri.spec)
   );
 
+  let calendarsMap = new Map();
   for (let [provider, calendars] of providerMap.entries()) {
     let newCalendars = calendars.map(calendar => {
       let newCalendar = prepareNetworkCalendar(calendar);
@@ -697,19 +698,19 @@ function onDetectionSuccess(providerMap) {
       return newCalendar;
     });
 
-    providerMap.set(provider, newCalendars);
+    calendarsMap.set(provider.type, newCalendars);
   }
 
-  if (!providerMap.size) {
+  if (!calendarsMap.size) {
     selectNetworkStatus("notfound");
     return;
   }
 
   // Update the panel with the results from the provider map.
-  setSingleProvider(providerMap.size <= 1);
-  findCalendars.lastResult = providerMap;
+  setSingleProvider(calendarsMap.size <= 1);
+  findCalendars.lastResult = calendarsMap;
 
-  let selectedItem = fillProviders([...providerMap.keys()]);
+  let selectedItem = fillProviders([...calendarsMap.keys()]);
   selectProvider(selectedItem.value);
 
   // Select the panel and validate the fields.
diff --git a/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.js b/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.js
index c48a70214d7b3c9b128e6f36c14ee127f17fc53f..bb40ed829018305057a3e63cb56ccfe898708476 100644
--- a/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.js
+++ b/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.js
@@ -544,7 +544,7 @@ function setLeftAndWidth(element, startTime, endTime) {
         "src",
         "chrome://calendar/skin/shared/calendar-event-dialog-attendees.png"
       );
-      this.roleIcon.setAttribute("role", "REQ-PARTICIPANT");
+      this.roleIcon.setAttribute("attendeerole", "REQ-PARTICIPANT");
       this._updateTooltip(this.roleIcon);
       this.roleIcon.addEventListener("click", this);
 
@@ -586,7 +586,7 @@ function setLeftAndWidth(element, startTime, endTime) {
         attendee.commonName = address.name;
       }
       attendee.isOrganizer = this.isOrganizer;
-      attendee.role = this.roleIcon.getAttribute("role");
+      attendee.role = this.roleIcon.getAttribute("attendeerole");
       let userType = this.userTypeIcon.getAttribute("usertype");
       attendee.userType = userType == "INDIVIDUAL" ? null : userType; // INDIVIDUAL is the default
 
@@ -602,7 +602,7 @@ function setLeftAndWidth(element, startTime, endTime) {
         this.value = value.id.replace(/^mailto:/, "");
       }
       this.isOrganizer = value.isOrganizer;
-      this.roleIcon.setAttribute("role", value.role);
+      this.roleIcon.setAttribute("attendeerole", value.role);
       this._updateTooltip(this.roleIcon);
       this.userTypeIcon.setAttribute("usertype", value.userType || "INDIVIDUAL");
       this._updateTooltip(this.userTypeIcon);
@@ -744,8 +744,8 @@ function setLeftAndWidth(element, startTime, endTime) {
 
         let target = event.target;
         if (target == this.roleIcon) {
-          let nextValue = cycle(EventAttendee.roleCycle, target.getAttribute("role"));
-          target.setAttribute("role", nextValue);
+          let nextValue = cycle(EventAttendee.roleCycle, target.getAttribute("attendeerole"));
+          target.setAttribute("attendeerole", nextValue);
           this._updateTooltip(target);
         } else if (target == this.userTypeIcon) {
           if (!this.isOrganizer) {
@@ -759,7 +759,7 @@ function setLeftAndWidth(element, startTime, endTime) {
     _updateTooltip(targetIcon) {
       let tooltip;
       if (targetIcon == this.roleIcon) {
-        let role = targetIcon.getAttribute("role");
+        let role = targetIcon.getAttribute("attendeerole");
         const roleMap = {
           "REQ-PARTICIPANT": "required",
           "OPT-PARTICIPANT": "optional",
diff --git a/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.xhtml b/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.xhtml
index d127690da30a9e599ede46497905218c941aed34..ed1759043020a995b62e94f457d25cbea9f1120f 100644
--- a/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.xhtml
+++ b/comm/calendar/base/content/dialogs/calendar-event-dialog-attendees.xhtml
@@ -77,7 +77,7 @@
           <tr>
             <td>
               <img class="role-icon"
-                   role="REQ-PARTICIPANT"
+                   attendeerole="REQ-PARTICIPANT"
                    src="chrome://calendar/skin/shared/calendar-event-dialog-attendees.png"
                    alt="" />
             </td>
@@ -86,7 +86,7 @@
           <tr>
             <td>
               <img class="role-icon"
-                   role="OPT-PARTICIPANT"
+                   attendeerole="OPT-PARTICIPANT"
                    src="chrome://calendar/skin/shared/calendar-event-dialog-attendees.png"
                    alt="" />
             </td>
@@ -95,7 +95,7 @@
           <tr>
             <td>
               <img class="role-icon"
-                   role="NON-PARTICIPANT"
+                   attendeerole="NON-PARTICIPANT"
                    src="chrome://calendar/skin/shared/calendar-event-dialog-attendees.png"
                    alt="" />
             </td>
@@ -104,7 +104,7 @@
           <tr>
             <td>
               <img class="role-icon"
-                   role="CHAIR"
+                   attendeerole="CHAIR"
                    src="chrome://calendar/skin/shared/calendar-event-dialog-attendees.png"
                    alt="" />
             </td>
diff --git a/comm/calendar/base/content/today-pane.js b/comm/calendar/base/content/today-pane.js
index 61e49802963f7c3c24c068b2ac714a686b1ade05..bd37460320dbe8f19174f6788e65acf92fad97d9 100644
--- a/comm/calendar/base/content/today-pane.js
+++ b/comm/calendar/base/content/today-pane.js
@@ -147,7 +147,7 @@ var TodayPane = {
     tree.setAttribute("filterValue", filter);
 
     document
-      .querySelectorAll('menuitem[command="calendar_task_filter_todaypane_command"][type="radio"]')
+      .querySelectorAll("#task-context-menu-filter-todaypane-popup > menuitem")
       .forEach(item => {
         if (item.getAttribute("value") == filter) {
           item.setAttribute("checked", "true");
diff --git a/comm/calendar/base/modules/utils/calInvitationUtils.jsm b/comm/calendar/base/modules/utils/calInvitationUtils.jsm
index bc7ae773dc2a70c8f88f5b1603459674db43cc7b..ba79ec7bcdfa5957a72cbac726a3318c41c6f216 100644
--- a/comm/calendar/base/modules/utils/calInvitationUtils.jsm
+++ b/comm/calendar/base/modules/utils/calInvitationUtils.jsm
@@ -143,7 +143,7 @@ var calinvitation = {
     icon.classList.add("itip-icon");
     icon.setAttribute("partstat", partstat);
     icon.setAttribute("usertype", userType);
-    icon.setAttribute("role", role);
+    icon.setAttribute("attendeerole", role);
     attendeeLabel.appendChild(icon);
 
     let text = doc.createElement("div");
diff --git a/comm/calendar/base/modules/utils/calItipUtils.jsm b/comm/calendar/base/modules/utils/calItipUtils.jsm
index 10a19523db3cef70c57b4eb5e30b003b83a655cb..76519ebe131dc8207eb1dcc704666d11bda1340d 100644
--- a/comm/calendar/base/modules/utils/calItipUtils.jsm
+++ b/comm/calendar/base/modules/utils/calItipUtils.jsm
@@ -388,7 +388,7 @@ var calitip = {
         }
         if (delTime) {
           data.label = cal.l10n.getLtnString("imipBarReplyToRecentlyRemovedItem", [
-            delTime.toString(),
+            cal.dtz.formatter.formatTime(delTime),
           ]);
         } else {
           data.label = cal.l10n.getLtnString("imipBarReplyToNotExistingItem");
diff --git a/comm/calendar/base/modules/utils/calProviderDetectionUtils.jsm b/comm/calendar/base/modules/utils/calProviderDetectionUtils.jsm
index 9725ff25192cb5d04ea124862c06993c0d478375..70021e87b0cceac592349b5ba7fae4bc1b2b880e 100644
--- a/comm/calendar/base/modules/utils/calProviderDetectionUtils.jsm
+++ b/comm/calendar/base/modules/utils/calProviderDetectionUtils.jsm
@@ -134,8 +134,8 @@ var calproviderdetection = {
           aExtraProperties
         );
         return detectionResult.then(
-          result => ({ type: provider.type, status: Cr.NS_OK, detail: result }),
-          failure => ({ type: provider.type, status: Cr.NS_ERROR_FAILURE, detail: failure })
+          result => ({ provider, status: Cr.NS_OK, detail: result }),
+          failure => ({ provider, status: Cr.NS_ERROR_FAILURE, detail: failure })
         );
       })
     );
@@ -144,10 +144,10 @@ var calproviderdetection = {
     let lastError;
     let results = new Map(
       resolutions.reduce((res, resolution) => {
-        let { type, status, detail } = resolution.value || resolution.reason;
+        let { provider, status, detail } = resolution.value || resolution.reason;
 
         if (Components.isSuccessCode(status) && detail && detail.length) {
-          res.push([type, detail]);
+          res.push([provider, detail]);
         } else {
           failCount++;
           if (detail instanceof DetectionError) {
diff --git a/comm/calendar/base/public/calICalendarProvider.idl b/comm/calendar/base/public/calICalendarProvider.idl
index 88fc1b3b5bc6f1ff8dedfa2af1bc6c6cd14c0e0b..319fc32fde8d018361a14e6d6bbec986c45a4353 100644
--- a/comm/calendar/base/public/calICalendarProvider.idl
+++ b/comm/calendar/base/public/calICalendarProvider.idl
@@ -29,6 +29,14 @@ interface calICalendarProvider : nsISupports
    */
   readonly attribute AUTF8String displayName;
 
+  /**
+   * The way to refer to this provider in the UI when needing to display a short
+   * label to describe the type (eg "CalDAV", "ICS", etc.). This is different
+   * from the type attribute as it's not meant to be used as unique identifier
+   * but only as a shorter non-localized label.
+   */
+  readonly attribute AUTF8String shortName;
+
   /**
    * Create a new empty calendar. This will typically create a new empty
    * file, and then call getCalendar()
diff --git a/comm/calendar/base/themes/common/calendar-attendees.css b/comm/calendar/base/themes/common/calendar-attendees.css
index 2647f33f27f1e3389cd3f32841963ebe34bc8c6f..ae66b0c8ca597e3e068e60f14da6b4d925ba2eed 100644
--- a/comm/calendar/base/themes/common/calendar-attendees.css
+++ b/comm/calendar/base/themes/common/calendar-attendees.css
@@ -101,16 +101,16 @@ html|input.textbox-addressingWidget:disabled {
 .itip-icon[usertype="UNKNOWN"] {
   --itip-icon-usertype: -96px;
 }
-.itip-icon[role="REQ-PARTICIPANT"] {
+.itip-icon[attendeerole="REQ-PARTICIPANT"] {
   --itip-icon-role: 0px;
 }
-.itip-icon[role="OPT-PARTICIPANT"] {
+.itip-icon[attendeerole="OPT-PARTICIPANT"] {
   --itip-icon-role: -16px;
 }
-.itip-icon[role="NON-PARTICIPANT"] {
+.itip-icon[attendeerole="NON-PARTICIPANT"] {
   --itip-icon-role: -32px;
 }
-.itip-icon[role="CHAIR"] {
+.itip-icon[attendeerole="CHAIR"] {
   --itip-icon-role: -32px;
   --itip-icon-usertype: -16px;
 }
@@ -140,31 +140,31 @@ html|span.ac-emphasize-text {
   object-position: top 0 left -138px;
 }
 
-.role-icon[role="REQ-PARTICIPANT"] {
+.role-icon[attendeerole="REQ-PARTICIPANT"] {
   object-position: top 0 left -138px;
 }
-.role-icon[role="REQ-PARTICIPANT"][disabled="true"] {
+.role-icon[attendeerole="REQ-PARTICIPANT"][disabled="true"] {
   object-position: top 0 left -138px;
 }
 
-.role-icon[role="OPT-PARTICIPANT"] {
+.role-icon[attendeerole="OPT-PARTICIPANT"] {
   object-position: top 0 left -159px;
 }
-.role-icon[role="OPT-PARTICIPANT"][disabled="true"] {
+.role-icon[attendeerole="OPT-PARTICIPANT"][disabled="true"] {
   object-position: top 0 left -159px;
 }
 
-.role-icon[role="CHAIR"] {
+.role-icon[attendeerole="CHAIR"] {
   object-position: top 0 left -180px;
 }
-.role-icon[role="CHAIR"][disabled="true"] {
+.role-icon[attendeerole="CHAIR"][disabled="true"] {
   object-position: top 0 left -180px;
 }
 
-.role-icon[role="NON-PARTICIPANT"] {
+.role-icon[attendeerole="NON-PARTICIPANT"] {
   object-position: top 0 left -201px;
 }
-.role-icon[role="NON-PARTICIPANT"][disabled="true"] {
+.role-icon[attendeerole="NON-PARTICIPANT"][disabled="true"] {
   object-position: top 0 left -201px;
 }
 
diff --git a/comm/calendar/locales/en-US/chrome/lightning/lightning.properties b/comm/calendar/locales/en-US/chrome/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/comm/calendar/locales/en-US/chrome/lightning/lightning.properties
+++ b/comm/calendar/locales/en-US/chrome/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/comm/calendar/providers/caldav/CalDavCalendar.jsm b/comm/calendar/providers/caldav/CalDavCalendar.jsm
index 49449c0cd4de0a5f5b60724712910a0221628017..9a1b6586534df73f8789978b18dd9980e0d499c4 100644
--- a/comm/calendar/providers/caldav/CalDavCalendar.jsm
+++ b/comm/calendar/providers/caldav/CalDavCalendar.jsm
@@ -154,6 +154,10 @@ CalDavCalendar.prototype = {
     return cal.l10n.getCalString("caldavName");
   },
 
+  get shortName() {
+    return "CalDAV";
+  },
+
   createCalendar() {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/caldav/CalDavProvider.jsm b/comm/calendar/providers/caldav/CalDavProvider.jsm
index 954ee1aa5e716ea0ad85984cd30e532921a9858c..6acff7651edfc9174d326df82da868bcef815847 100644
--- a/comm/calendar/providers/caldav/CalDavProvider.jsm
+++ b/comm/calendar/providers/caldav/CalDavProvider.jsm
@@ -28,6 +28,10 @@ var CalDavProvider = {
     return cal.l10n.getCalString("caldavName");
   },
 
+  get shortName() {
+    return "CalDAV";
+  },
+
   createCalendar(aName, aUri, aListener) {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/composite/CalCompositeCalendar.jsm b/comm/calendar/providers/composite/CalCompositeCalendar.jsm
index a723a1fe5063b8889cf17302cb6bd31cfc5208d4..6829cb8d82bd7b488ce8cbe1f722c12273baa6d2 100644
--- a/comm/calendar/providers/composite/CalCompositeCalendar.jsm
+++ b/comm/calendar/providers/composite/CalCompositeCalendar.jsm
@@ -82,10 +82,15 @@ CalCompositeCalendar.prototype = {
   get prefChromeOverlay() {
     return null;
   },
+
   get displayName() {
     return cal.l10n.getCalString("compositeName");
   },
 
+  get shortName() {
+    return this.displayName();
+  },
+
   createCalendar() {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/ics/CalICSCalendar.jsm b/comm/calendar/providers/ics/CalICSCalendar.jsm
index d0d07faf0d1103eb61c3006904302c4c66101557..b534f2e14706357fd61e50dc7a5767b8e8ee36be 100644
--- a/comm/calendar/providers/ics/CalICSCalendar.jsm
+++ b/comm/calendar/providers/ics/CalICSCalendar.jsm
@@ -88,6 +88,10 @@ CalICSCalendar.prototype = {
     return cal.l10n.getCalString("icsName");
   },
 
+  get shortName() {
+    return "ICS";
+  },
+
   createCalendar() {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/ics/CalICSProvider.jsm b/comm/calendar/providers/ics/CalICSProvider.jsm
index 2f8b7313819ae1f5d45b2055e26f403fbfe08215..bbc6bbb39bb73c02c6d99188732fd23f7fdd072c 100644
--- a/comm/calendar/providers/ics/CalICSProvider.jsm
+++ b/comm/calendar/providers/ics/CalICSProvider.jsm
@@ -28,6 +28,10 @@ var CalICSProvider = {
     return cal.l10n.getCalString("icsName");
   },
 
+  get shortName() {
+    return "ICS";
+  },
+
   createCalendar(aName, aUri, aListener) {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/memory/CalMemoryCalendar.jsm b/comm/calendar/providers/memory/CalMemoryCalendar.jsm
index 056070147d8b9c185597fe7b4900edee4b047b55..d505df7f0c4e98f176a3ec70631e490d6e2807d0 100644
--- a/comm/calendar/providers/memory/CalMemoryCalendar.jsm
+++ b/comm/calendar/providers/memory/CalMemoryCalendar.jsm
@@ -60,6 +60,10 @@ CalMemoryCalendar.prototype = {
     return cal.l10n.getCalString("memoryName");
   },
 
+  get shortName() {
+    return this.displayName();
+  },
+
   createCalendar() {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/providers/storage/CalStorageCalendar.jsm b/comm/calendar/providers/storage/CalStorageCalendar.jsm
index 03b0942b58edcb5f74592104c306f2c7df3fbdca..ecd2ee084d9707c4d61f55823c5830b7d877b42d 100644
--- a/comm/calendar/providers/storage/CalStorageCalendar.jsm
+++ b/comm/calendar/providers/storage/CalStorageCalendar.jsm
@@ -79,6 +79,10 @@ CalStorageCalendar.prototype = {
     return cal.l10n.getCalString("storageName");
   },
 
+  get shortName() {
+    return "SQLite";
+  },
+
   createCalendar() {
     throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
   },
diff --git a/comm/calendar/test/unit/test_invitationutils.js b/comm/calendar/test/unit/test_invitationutils.js
index 5b2c345d82d809ac613d23264ec80d9636de9506..ef9dda0b842a650d4e8c25dbec0c3b57e603d262 100644
--- a/comm/calendar/test/unit/test_invitationutils.js
+++ b/comm/calendar/test/unit/test_invitationutils.js
@@ -553,7 +553,7 @@ add_task(async function createInvitationOverlay_test() {
               "Attendee 1 <attendee1@example.net> is an optional " +
               "participant. Attendee 1 still needs to reply.",
             icon: {
-              role: "OPT-PARTICIPANT",
+              attendeerole: "OPT-PARTICIPANT",
               usertype: "INDIVIDUAL",
               partstat: "NEEDS-ACTION",
             },
@@ -564,7 +564,7 @@ add_task(async function createInvitationOverlay_test() {
               "attendee2@example.net (group) is a non-participant. " +
               "attendee2@example.net has confirmed attendance.",
             icon: {
-              role: "NON-PARTICIPANT",
+              attendeerole: "NON-PARTICIPANT",
               usertype: "GROUP",
               partstat: "ACCEPTED",
             },
@@ -576,7 +576,7 @@ add_task(async function createInvitationOverlay_test() {
               "participant. attendee3@example.net has confirmed attendance " +
               "tentatively.",
             icon: {
-              role: "REQ-PARTICIPANT",
+              attendeerole: "REQ-PARTICIPANT",
               usertype: "RESOURCE",
               partstat: "TENTATIVE",
             },
@@ -587,7 +587,7 @@ add_task(async function createInvitationOverlay_test() {
               "attendee4@example.net (room) is an optional participant. " +
               "attendee4@example.net has declined attendance.",
             icon: {
-              role: "OPT-PARTICIPANT",
+              attendeerole: "OPT-PARTICIPANT",
               usertype: "ROOM",
               partstat: "DECLINED",
             },
@@ -599,7 +599,7 @@ add_task(async function createInvitationOverlay_test() {
               "attendee5@example.net has delegated attendance to " +
               "attendee4@example.net.",
             icon: {
-              role: "OPT-PARTICIPANT",
+              attendeerole: "OPT-PARTICIPANT",
               usertype: "UNKNOWN",
               partstat: "DELEGATED",
             },
@@ -610,7 +610,7 @@ add_task(async function createInvitationOverlay_test() {
               "attendee6@example.net is a required participant. " +
               "attendee6@example.net still needs to reply.",
             icon: {
-              role: "REQ-PARTICIPANT",
+              attendeerole: "REQ-PARTICIPANT",
               usertype: "INDIVIDUAL",
               partstat: "NEEDS-ACTION",
             },
@@ -621,7 +621,7 @@ add_task(async function createInvitationOverlay_test() {
               "attendee7@example.net is a required participant. " +
               "attendee7@example.net still needs to reply.",
             icon: {
-              role: "REQ-PARTICIPANT",
+              attendeerole: "REQ-PARTICIPANT",
               usertype: "INDIVIDUAL",
               partstat: "NEEDS-ACTION",
             },
@@ -650,7 +650,7 @@ add_task(async function createInvitationOverlay_test() {
             "The Organizer <organizer@example.net> chairs the event. " +
             "The Organizer has confirmed attendance.",
           icon: {
-            role: "CHAIR",
+            attendeerole: "CHAIR",
             usertype: "INDIVIDUAL",
             partstat: "ACCEPTED",
           },
diff --git a/comm/mail/actors/LinkHandlerParent.jsm b/comm/mail/actors/LinkHandlerParent.jsm
index cb7dc9a6ff9605ef5c06d902b6fb026d498b916f..cf932606298913e8c5450a4fada5d855c7d1cc57 100644
--- a/comm/mail/actors/LinkHandlerParent.jsm
+++ b/comm/mail/actors/LinkHandlerParent.jsm
@@ -32,7 +32,7 @@ class LinkHandlerParent extends JSWindowActorParent {
 
   setIconFromLink(gTabmail, browser, { canUseForTab, iconURL }) {
     let tab = gTabmail.getTabForBrowser(browser);
-    if (!tab) {
+    if (tab?.mode?.type != "contentTab") {
       return;
     }
 
diff --git a/comm/mail/actors/VCardChild.jsm b/comm/mail/actors/VCardChild.jsm
index bb8141103b127b383b10ca0fd53649f86a08039c..db43b6c145aabd7f85e1ce8ad68bac73ee4e7148 100644
--- a/comm/mail/actors/VCardChild.jsm
+++ b/comm/mail/actors/VCardChild.jsm
@@ -12,7 +12,7 @@ class VCardChild extends JSWindowActorChild {
     // This link comes from VCardMimeConverter.convertToHTML in VCardUtils.jsm.
     if (event.target.classList.contains("moz-vcard-badge")) {
       if (event.button == 0) {
-        // The href is a data:text/x-vcard URL.
+        // The href is a data:text/vcard URL.
         let href = event.target.href;
         href = href.substring(href.indexOf(",") + 1);
         this.sendAsyncMessage("addVCard", href);
diff --git a/comm/mail/base/content/aboutDialog.css b/comm/mail/base/content/aboutDialog.css
index ddb49d98fb57f0c5b9cba29fdf368e1635c62506..5f4663494f51134425336bf7deadcb1e64b3c813 100644
--- a/comm/mail/base/content/aboutDialog.css
+++ b/comm/mail/base/content/aboutDialog.css
@@ -4,7 +4,7 @@
 
 :root {
   --dialog-background: #fefefe;
-  --client-box-color: #222;
+  --dialog-box-color: #222;
   --client-box-background: #f7f7f7;
   --link-color: -moz-nativehyperlinktext;
   --link-decoration: inherit;
@@ -13,7 +13,7 @@
 @media (prefers-color-scheme: dark) {
   :root {
     --dialog-background: #222;
-    --client-box-color: #f7f7f7;
+    --dialog-box-color: #f7f7f7;
     --client-box-background: #444;
     --link-color: #f7f7f7;
     --link-decoration: underline;
@@ -23,7 +23,7 @@
 @media (prefers-contrast) {
   :root {
     --dialog-background: -moz-Dialog;
-    --client-box-color: -moz-DialogText;
+    --dialog-box-color: -moz-DialogText;
     --client-box-background: -moz-Dialog;
     --link-color: -moz-nativehyperlinktext;
     --link-decoration: inherit;
@@ -39,6 +39,7 @@
 }
 
 #aboutDialogContainer {
+  color: var(--dialog-box-color);
   background-color: var(--dialog-background);
   /* Needed to hide a 1px line on macOS. */
   margin-bottom: -1px;
diff --git a/comm/mail/base/content/mailCommands.js b/comm/mail/base/content/mailCommands.js
index 507de7d078e2a30595c4b241fa43ce1cd34ff4b2..bbb77bad6bcecd5abe506be994e238a29d549432 100644
--- a/comm/mail/base/content/mailCommands.js
+++ b/comm/mail/base/content/mailCommands.js
@@ -243,12 +243,23 @@ async function ComposeMessage(type, format, folder, messageArray) {
             Ci.nsIMsgCompType.ReplyToList,
           ].includes(type)
         ) {
-          let from = hdr.getStringProperty("replyTo") || hdr.author;
+          let replyTo = hdr.getStringProperty("replyTo");
+          let from = replyTo || hdr.author;
           let fromAddrs = MailServices.headerParser.parseEncodedHeader(
             from,
             null
           );
           let email = fromAddrs[0]?.email;
+          if (type == msgComposeType.ReplyToList) {
+            // ReplyToList is only enabled for current message (if at all), so
+            // using currentHeaderData is ok.
+            // List-Post value is of the format <mailto:list@example.com>
+            let listPost = currentHeaderData["list-post"]?.headerValue;
+            if (listPost) {
+              email = listPost.replace(/.*<mailto:(.+)>.*/, "$1");
+            }
+          }
+
           if (
             /^(.*[._-])?(do[._-]?not|no)[._-]?reply([._-].*)?@/i.test(email)
           ) {
diff --git a/comm/mail/base/content/messenger.xhtml b/comm/mail/base/content/messenger.xhtml
index 2436e27d53bb7a9787b86e879ae23150c566e4e5..f3fadfa9a7db2129a59eafb905124d4bd1296cb1 100644
--- a/comm/mail/base/content/messenger.xhtml
+++ b/comm/mail/base/content/messenger.xhtml
@@ -615,8 +615,7 @@
                     data-l10n-id="folder-pane-toolbar"
                     data-l10n-attrs="toolbarname"
                     toolboxid="mail-toolbox"
-                    align="center"
-                    collapsed="true">
+                    align="center">
                 <label data-l10n-id="folder-pane-header-label" flex="1"/>
                 <toolbarbutton id="folderPaneOptionsButton"
                                data-l10n-id="folder-pane-toolbar-options-button"
diff --git a/comm/mail/branding/nightly/configure.sh b/comm/mail/branding/nightly/configure.sh
index d482e65adfa3e6a3055e6c718e753ccc7ea7f848..2d4267b001c0f632dd7a3e9c17db39af3cf1862f 100644
--- a/comm/mail/branding/nightly/configure.sh
+++ b/comm/mail/branding/nightly/configure.sh
@@ -4,3 +4,12 @@
 
 MOZ_APP_DISPLAYNAME="Thunderbird Daily"
 MOZ_MACBUNDLE_ID="thunderbird-daily"
+
+# Only shippable builds from comm-central will set the update channel to "nightly"
+if test "$MOZ_UPDATE_CHANNEL" = "nightly"; then
+  # Official nightly (shippable) builds
+  MOZ_HANDLER_CLSID="e5643070-8ec1-4978-8e6c-f0f1753e329e"
+  MOZ_IHANDLERCONTROL_IID="d1324f09-3446-404e-ae12-a3128ba8580e"
+  MOZ_ASYNCIHANDLERCONTROL_IID="15f84f27-8a4c-4bdf-ae0a-c0fea8fefe91"
+  MOZ_IGECKOBACKCHANNEL_IID="6ab50aef-8ad3-460f-9235-e4b72e7e2e7e"
+fi
diff --git a/comm/mail/branding/nightly/content/aboutDialog.css b/comm/mail/branding/nightly/content/aboutDialog.css
index 7ab1113332cb365866c2b667c9304ddb33460ed3..a968ce7228f26a872f63fc6645b8910731fc8f30 100644
--- a/comm/mail/branding/nightly/content/aboutDialog.css
+++ b/comm/mail/branding/nightly/content/aboutDialog.css
@@ -4,7 +4,6 @@
 
 #clientBox {
   background-color: var(--client-box-background);
-  color: var(--client-box-color);
 }
 
 #leftBox {
diff --git a/comm/mail/branding/thunderbird/configure.sh b/comm/mail/branding/thunderbird/configure.sh
index f0718c97baa26259e10956d59113ea0b2dac2b38..d704c9986da970ae93f0d5962bd76ccde512bbdb 100644
--- a/comm/mail/branding/thunderbird/configure.sh
+++ b/comm/mail/branding/thunderbird/configure.sh
@@ -1 +1,20 @@
+# 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/.
+
 MOZ_APP_DISPLAYNAME=Thunderbird
+
+# Only shippable builds will set the update channels to "beta" and "release"
+if test "$MOZ_UPDATE_CHANNEL" = "beta"; then
+  # Official beta builds
+  MOZ_IHANDLERCONTROL_IID="5a6e864b-5c25-49b3-9e78-0d4cad17f866"
+  MOZ_ASYNCIHANDLERCONTROL_IID="5da761f6-9aca-4f2f-b22a-062ee46265b4"
+  MOZ_HANDLER_CLSID="fd54d983-72e8-48d7-96a0-5c23a47f772c"
+  MOZ_IGECKOBACKCHANNEL_IID="e14a4035-43b9-4751-8ad8-c3e74c088882"
+else
+  # Official release builds
+  MOZ_IHANDLERCONTROL_IID="127c0620-d3a7-45f1-8478-13d58249d68f"
+  MOZ_ASYNCIHANDLERCONTROL_IID="fe46dfa3-16b6-4780-93cc-4f6c174dc10d"
+  MOZ_HANDLER_CLSID="6e5ac413-1ef1-4985-87c2-f02e86e3ecdb"
+  MOZ_IGECKOBACKCHANNEL_IID="0a8c4e6c-903f-41a9-b5d0-3520db8f936b"
+fi
diff --git a/comm/mail/branding/thunderbird/content/aboutDialog.css b/comm/mail/branding/thunderbird/content/aboutDialog.css
index 7ab1113332cb365866c2b667c9304ddb33460ed3..a968ce7228f26a872f63fc6645b8910731fc8f30 100644
--- a/comm/mail/branding/thunderbird/content/aboutDialog.css
+++ b/comm/mail/branding/thunderbird/content/aboutDialog.css
@@ -4,7 +4,6 @@
 
 #clientBox {
   background-color: var(--client-box-background);
-  color: var(--client-box-color);
 }
 
 #leftBox {
diff --git a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml
index ba19c751ed427393a6eeae9aa4c16cb01c0f1ab7..7df01972d2bf5cae8954236bbec1a8e2ce79277b 100644
--- a/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml
+++ b/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml
@@ -42,6 +42,7 @@
     <mimetype>message/rfc822</mimetype>
     <mimetype>x-scheme-handler/mailto</mimetype>
     <mimetype>text/calendar</mimetype>
+    <mimetype>text/vcard</mimetype>
     <mimetype>text/x-vcard</mimetype>
   </mimetypes>
 
diff --git a/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js b/comm/mail/components/accountcreation/ExchangeAutoDiscover.jsm
similarity index 94%
rename from comm/mail/components/accountcreation/content/exchangeAutoDiscover.js
rename to comm/mail/components/accountcreation/ExchangeAutoDiscover.jsm
index 7ef7797fb8435ff59b1f011a19ba96c7c2f1ab9f..52c8fb15be7f338c7606b3f6d41baebb98439a91 100644
--- a/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js
+++ b/comm/mail/components/accountcreation/ExchangeAutoDiscover.jsm
@@ -3,13 +3,36 @@
  * 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/. */
 
-/* import-globals-from accountSetup.js */
+const EXPORTED_SYMBOLS = ["fetchConfigFromExchange", "getAddonsList"];
 
-var { FetchHTTP } = ChromeUtils.import(
-  "resource:///modules/accountcreation/FetchHTTP.jsm"
+var { AccountCreationUtils } = ChromeUtils.import(
+  "resource:///modules/accountcreation/AccountCreationUtils.jsm"
+);
+var { XPCOMUtils } = ChromeUtils.import(
+  "resource://gre/modules/XPCOMUtils.jsm"
 );
 
-var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+XPCOMUtils.defineLazyModuleGetters(this, {
+  AccountConfig: "resource:///modules/accountcreation/AccountConfig.jsm",
+  FetchHTTP: "resource:///modules/accountcreation/FetchHTTP.jsm",
+  GuessConfig: "resource:///modules/accountcreation/GuessConfig.jsm",
+  Sanitizer: "resource:///modules/accountcreation/Sanitizer.jsm",
+  Services: "resource://gre/modules/Services.jsm",
+  setTimeout: "resource://gre/modules/Timer.jsm",
+});
+
+var {
+  Abortable,
+  assert,
+  ddump,
+  deepCopy,
+  Exception,
+  gAccountSetupLogger,
+  getStringBundle,
+  PriorityOrderAbortable,
+  SuccessiveAbortable,
+  TimeoutAbortable,
+} = AccountCreationUtils;
 
 /**
  * Tries to get a configuration from an MS Exchange server
@@ -25,6 +48,8 @@ var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
  * @param {string} username - (Optional) The user's login name.
  *         If null, email address will be used.
  * @param {string} password - The user's password for that email address
+ * @param {Function(domain, okCallback, cancelCallback)} confirmCallback - A
+ *        callback that will be called to confirm redirection to another domain.
  * @param {Function(config {AccountConfig})} successCallback - A callback that
  *         will be called when we could retrieve a configuration.
  *         The AccountConfig object will be passed in as first parameter.
@@ -40,6 +65,7 @@ function fetchConfigFromExchange(
   emailAddress,
   username,
   password,
+  confirmCallback,
   successCallback,
   errorCallback
 ) {
@@ -99,6 +125,7 @@ function fetchConfigFromExchange(
       emailAddress,
       username,
       password,
+      confirmCallback,
       config => {
         config.subSource = `exchange-from-${call.foundMsg}`;
         return detectStandardProtocols(config, domain, successCallback);
@@ -179,7 +206,7 @@ function fetchConfigFromExchange(
       call3ErrorCallback(new Exception("Redirected"));
       dialogSuccessive.current = new TimeoutAbortable(
         setTimeout(() => {
-          dialogSuccessive.current = confirmExchange(
+          dialogSuccessive.current = confirmCallback(
             redirectDomain,
             () => {
               // User agreed.
@@ -221,6 +248,7 @@ function readAutoDiscoverResponse(
   emailAddress,
   username,
   password,
+  confirmCallback,
   successCallback,
   errorCallback
 ) {
@@ -248,6 +276,7 @@ function readAutoDiscoverResponse(
       // not the redirected address (if not already overridden).
       username || emailAddress,
       password,
+      confirmCallback,
       successCallback,
       errorCallback
     );
diff --git a/comm/mail/components/accountcreation/content/accountSetup.js b/comm/mail/components/accountcreation/content/accountSetup.js
index d661c99f1f62af668c94cb0d9b7330a244946dbb..58d14c1a8943c15503cbe4cd3bc549a3cf083da6 100644
--- a/comm/mail/components/accountcreation/content/accountSetup.js
+++ b/comm/mail/components/accountcreation/content/accountSetup.js
@@ -6,11 +6,12 @@
 /* global MozElements */
 
 /* import-globals-from ../../../../mailnews/base/prefs/content/accountUtils.js */
-/* import-globals-from exchangeAutoDiscover.js */
-
 var { AccountCreationUtils } = ChromeUtils.import(
   "resource:///modules/accountcreation/AccountCreationUtils.jsm"
 );
+var { fetchConfigFromExchange, getAddonsList } = ChromeUtils.import(
+  "resource:///modules/accountcreation/ExchangeAutoDiscover.jsm"
+);
 var { XPCOMUtils } = ChromeUtils.import(
   "resource://gre/modules/XPCOMUtils.jsm"
 );
@@ -146,23 +147,15 @@ function confirmExchange(domain, okCallback, cancelCallback) {
     { domain }
   );
 
-  document.getElementById("exchangeDialogConfirmButton").addEventListener(
-    "click",
-    () => {
-      dialog.close();
-      okCallback();
-    },
-    { once: true }
-  );
+  document.getElementById("exchangeDialogConfirmButton").onclick = () => {
+    dialog.close();
+    okCallback();
+  };
 
-  document.getElementById("exchangeDialogCancelButton").addEventListener(
-    "click",
-    () => {
-      dialog.close();
-      cancelCallback(new UserCancelledException());
-    },
-    { once: true }
-  );
+  document.getElementById("exchangeDialogCancelButton").onclick = () => {
+    dialog.close();
+    cancelCallback(new UserCancelledException());
+  };
 
   // Show the dialog.
   dialog.showModal();
@@ -673,6 +666,7 @@ var gAccountSetup = {
         emailAddress,
         this._exchangeUsername,
         this._password,
+        confirmExchange,
         call.successCallback(),
         (e, allErrors) => {
           // Must call error callback in any case to stop the discover mode.
@@ -2435,7 +2429,7 @@ var gAccountSetup = {
       for (let calendar of calendars) {
         let cal_provider = document.createElement("span");
         cal_provider.classList.add("protocol-type");
-        cal_provider.textContent = provider;
+        cal_provider.textContent = provider.shortName;
 
         let cal_name = document.createElement("span");
         cal_name.classList.add("list-item-name");
@@ -2541,36 +2535,28 @@ var gAccountSetup = {
     calendarRefresh.value = calendar.getProperty("refreshInterval") || 30;
 
     // Set up the dialog's action buttons.
-    document.getElementById("calendarDialogConfirmButton").addEventListener(
-      "click",
-      () => {
-        // Update the attributes of the calendar in case the user changed some
-        // values.
-        calendar.name = nameInput.value;
-        calendar.setProperty("color", colorInput.value);
-        if (calendar.canRefresh) {
-          calendar.setProperty("refreshInterval", calendarRefresh.value);
-        }
+    document.getElementById("calendarDialogConfirmButton").onclick = () => {
+      // Update the attributes of the calendar in case the user changed some
+      // values.
+      calendar.name = nameInput.value;
+      calendar.setProperty("color", colorInput.value);
+      if (calendar.canRefresh) {
+        calendar.setProperty("refreshInterval", calendarRefresh.value);
+      }
 
-        calendar.readOnly = readOnlyCheckbox.checked;
-        calendar.setProperty("suppressAlarms", !remindersCheckbox.checked);
-        if (!alwaysCache) {
-          calendar.setProperty("cache.enabled", offlineCheckbox.checked);
-        }
+      calendar.readOnly = readOnlyCheckbox.checked;
+      calendar.setProperty("suppressAlarms", !remindersCheckbox.checked);
+      if (!alwaysCache) {
+        calendar.setProperty("cache.enabled", offlineCheckbox.checked);
+      }
 
-        this._setupCalendar(button, calendar);
-        dialog.close();
-      },
-      { once: true }
-    );
+      this._setupCalendar(button, calendar);
+      dialog.close();
+    };
 
-    document.getElementById("calendarDialogCancelButton").addEventListener(
-      "click",
-      () => {
-        dialog.close();
-      },
-      { once: true }
-    );
+    document.getElementById("calendarDialogCancelButton").onclick = () => {
+      dialog.close();
+    };
 
     dialog.showModal();
   },
diff --git a/comm/mail/components/accountcreation/content/accountSetup.xhtml b/comm/mail/components/accountcreation/content/accountSetup.xhtml
index 96bda3c21f655183e398843f95eeee55031701e9..ce6288f9a7282de5b99a89e826a2774ca5562d24 100644
--- a/comm/mail/components/accountcreation/content/accountSetup.xhtml
+++ b/comm/mail/components/accountcreation/content/accountSetup.xhtml
@@ -22,7 +22,6 @@
   <script defer="defer" src="chrome://global/content/globalOverlay.js"></script>
   <script defer="defer" src="chrome://global/content/editMenuOverlay.js"></script>
   <script defer="defer" src="chrome://messenger/content/accountcreation/accountSetup.js"></script>
-  <script defer="defer" src="chrome://messenger/content/accountcreation/exchangeAutoDiscover.js"></script>
   <script defer="defer" src="chrome://messenger/content/accountUtils.js"></script>
 </head>
 
diff --git a/comm/mail/components/accountcreation/jar.mn b/comm/mail/components/accountcreation/jar.mn
index 773c46208692312871d029b1dec5f5ede6264833..dad83e2fb6955458818556a6813a265c12c9b420 100644
--- a/comm/mail/components/accountcreation/jar.mn
+++ b/comm/mail/components/accountcreation/jar.mn
@@ -5,4 +5,3 @@
 messenger.jar:
   content/messenger/accountcreation/accountSetup.js       (content/accountSetup.js)
   content/messenger/accountcreation/accountSetup.xhtml    (content/accountSetup.xhtml)
-  content/messenger/accountcreation/exchangeAutoDiscover.js        (content/exchangeAutoDiscover.js)
diff --git a/comm/mail/components/accountcreation/moz.build b/comm/mail/components/accountcreation/moz.build
index d3d9341e18b8c8db07a2a7abde77b243b06c688e..dfff0fb9616e9c391e52daf0520b34a129ad6dca 100644
--- a/comm/mail/components/accountcreation/moz.build
+++ b/comm/mail/components/accountcreation/moz.build
@@ -9,6 +9,7 @@ EXTRA_JS_MODULES.accountcreation += [
     "AccountConfig.jsm",
     "AccountCreationUtils.jsm",
     "CreateInBackend.jsm",
+    "ExchangeAutoDiscover.jsm",
     "FetchConfig.jsm",
     "FetchHTTP.jsm",
     "GuessConfig.jsm",
diff --git a/comm/mail/components/addrbook/content/aboutAddressBook.js b/comm/mail/components/addrbook/content/aboutAddressBook.js
index f80bb8c4fa20aaa0b5e0c89d4baf02cb56326b4d..703e28e9befb724ccfa36f0c855e9c1cd58dfc40 100644
--- a/comm/mail/components/addrbook/content/aboutAddressBook.js
+++ b/comm/mail/components/addrbook/content/aboutAddressBook.js
@@ -1140,14 +1140,14 @@ var cardsPane = {
         // A card implementation may throw NS_ERROR_NOT_IMPLEMENTED.
         // Don't break drag-and-drop if that happens.
         let vCard = card.translateTo("vcard");
-        event.dataTransfer.setData("text/x-vcard", decodeURIComponent(vCard));
+        event.dataTransfer.setData("text/vcard", decodeURIComponent(vCard));
         event.dataTransfer.setData(
           "application/x-moz-file-promise-dest-filename",
           card.displayName + ".vcf"
         );
         event.dataTransfer.setData(
           "application/x-moz-file-promise-url",
-          "data:text/x-vcard," + vCard
+          "data:text/vcard," + vCard
         );
         event.dataTransfer.setData(
           "application/x-moz-file-promise",
@@ -1173,7 +1173,7 @@ var cardsPane = {
     getFlavorData(aTransferable, aFlavor, aData) {
       if (aFlavor == "application/x-moz-file-promise") {
         let primitive = {};
-        aTransferable.getTransferData("text/x-vcard", primitive);
+        aTransferable.getTransferData("text/vcard", primitive);
         let vCard = primitive.value.QueryInterface(Ci.nsISupportsString).data;
         aTransferable.getTransferData(
           "application/x-moz-file-promise-dest-filename",
diff --git a/comm/mail/components/addrbook/test/browser/new/browser_drag_drop.js b/comm/mail/components/addrbook/test/browser/new/browser_drag_drop.js
index 2a70e488d8ccf7db11063e172f8c44b83b5e4e21..ed4454e4a42852009928d692add9f915fd3b096f 100644
--- a/comm/mail/components/addrbook/test/browser/new/browser_drag_drop.js
+++ b/comm/mail/components/addrbook/test/browser/new/browser_drag_drop.js
@@ -150,7 +150,7 @@ add_task(async function test_drag() {
   let transferUnicode = dataTransfer.getData("text/unicode");
   Assert.equal(transferUnicode, "contact 1 <contact.1@invalid>");
 
-  let transferVCard = dataTransfer.getData("text/x-vcard");
+  let transferVCard = dataTransfer.getData("text/vcard");
   Assert.stringContains(transferVCard, `\r\nUID:${contact1.UID}\r\n`);
 
   dragService.endDragSession(true);
@@ -178,7 +178,7 @@ add_task(async function test_drag() {
     "contact 1 <contact.1@invalid>,contact 2 <contact.2@invalid>,contact 3 <contact.3@invalid>"
   );
 
-  transferVCard = dataTransfer.getData("text/x-vcard");
+  transferVCard = dataTransfer.getData("text/vcard");
   Assert.stringContains(transferVCard, `\r\nUID:${contact1.UID}\r\n`);
 
   dragService.endDragSession(true);
diff --git a/comm/mail/components/compose/content/MsgComposeCommands.js b/comm/mail/components/compose/content/MsgComposeCommands.js
index 8902685dbb0505ba046aed780f90e42244250121..c6f4bd3e001ecb70b68ff30522470ea441c10520 100644
--- a/comm/mail/components/compose/content/MsgComposeCommands.js
+++ b/comm/mail/components/compose/content/MsgComposeCommands.js
@@ -398,8 +398,12 @@ function updateEditableFields(aDisable) {
   } else {
     gMsgCompose.editor.flags &= ~Ci.nsIEditor.eEditorReadonlyMask;
 
-    let checker = GetCurrentEditor().getInlineSpellChecker(true);
-    checker.enableRealTimeSpell = gSpellCheckingEnabled;
+    try {
+      let checker = GetCurrentEditor().getInlineSpellChecker(true);
+      checker.enableRealTimeSpell = gSpellCheckingEnabled;
+    } catch (ex) {
+      // An error will be thrown if there are no dictionaries. Just ignore it.
+    }
   }
 
   // Disable all the input fields nad labels.
diff --git a/comm/mail/config/version.txt b/comm/mail/config/version.txt
index 74c5fc18120f5c01ab35a3a1628f0ffaf7ab9ac3..087a4d143896662020b038d325073cf82288db76 100644
--- a/comm/mail/config/version.txt
+++ b/comm/mail/config/version.txt
@@ -1 +1 @@
-91.0.2
+91.1.0
diff --git a/comm/mail/config/version_display.txt b/comm/mail/config/version_display.txt
index 74c5fc18120f5c01ab35a3a1628f0ffaf7ab9ac3..087a4d143896662020b038d325073cf82288db76 100644
--- a/comm/mail/config/version_display.txt
+++ b/comm/mail/config/version_display.txt
@@ -1 +1 @@
-91.0.2
+91.1.0
diff --git a/comm/mail/confvars.sh b/comm/mail/confvars.sh
index abaa24ff382d8752178d092086583ada088312ca..8c72273edf8ffe0e56b01110448eab80e0f17232 100755
--- a/comm/mail/confvars.sh
+++ b/comm/mail/confvars.sh
@@ -19,6 +19,34 @@ MOZ_OFFICIAL_BRANDING_DIRECTORY=$commreltopsrcdir/mail/branding/thunderbird
 
 MOZ_APP_ID={3550f703-e582-4d05-9a08-453d09bdfdc6}
 
+# Windows AccessibleHandler.dll GUIDs differ depending on product, channel,
+# and officiality. This prevents handlers from installing overtop one another
+# when multiple products and channels are present.
+# These GUIDs are used for non-official and non-release builds.
+# GUIDs used for official shippable builds are in the branding directories.
+# This file is evaluated before the branding/configure.sh files.
+if test "$DEVELOPER_OPTIONS"; then
+  if test "$MOZ_DEBUG"; then
+    # Local debug builds
+    MOZ_HANDLER_CLSID="276382b8-078f-4a75-b95f-ebcc41b4e561"
+    MOZ_IHANDLERCONTROL_IID="55960b36-86ff-4b46-90eb-11e66a8251a0"
+    MOZ_ASYNCIHANDLERCONTROL_IID="78b9a700-787e-406a-b94a-e656a2d4595f"
+    MOZ_IGECKOBACKCHANNEL_IID="68966673-f742-4f1d-8f1c-d0517f282d8a"
+  else
+    # Local non-debug builds
+    MOZ_HANDLER_CLSID="54b33546-ee72-4ab7-8710-200c4ec74742"
+    MOZ_IHANDLERCONTROL_IID="6ee6f1c5-d331-4fa2-8e95-b9680a0f0264"
+    MOZ_ASYNCIHANDLERCONTROL_IID="3da29f8e-d8ee-4d60-80f8-74665b7f271c"
+    MOZ_IGECKOBACKCHANNEL_IID="0195ae7b-1315-442f-a0b8-d94372d51917"
+  fi
+else
+  # These are fallback GUIDs
+  MOZ_HANDLER_CLSID="a1a19c81-bc15-41fc-871e-d156bc600ea7"
+  MOZ_IHANDLERCONTROL_IID="458bec8f-de60-4c44-ba08-29d47412feb8"
+  MOZ_ASYNCIHANDLERCONTROL_IID="9deb1d0b-766d-47ed-a912-22602ccb4e22"
+  MOZ_IGECKOBACKCHANNEL_IID="623aa5c7-eb2c-4807-b5dd-f3e3754de30f"
+fi
+
 MOZ_PROFILE_MIGRATOR=1
 MOZ_BINARY_EXTENSIONS=1
 MOZ_SEPARATE_MANIFEST_FOR_THEME_OVERRIDES=1
diff --git a/comm/mail/extensions/openpgp/content/ui/enigmailMsgComposeOverlay.js b/comm/mail/extensions/openpgp/content/ui/enigmailMsgComposeOverlay.js
index ab6c4888c774eae547da552abd085e9248cc8a98..589bdd025a764a23d5fd68ad781b7902fa46f887 100644
--- a/comm/mail/extensions/openpgp/content/ui/enigmailMsgComposeOverlay.js
+++ b/comm/mail/extensions/openpgp/content/ui/enigmailMsgComposeOverlay.js
@@ -859,14 +859,9 @@ Enigmail.msg = {
     keyAttachment.temporary = true;
     keyAttachment.contentType = "application/pgp-keys";
 
-    // add attachment to msg
+    // Add attachment to msg, the attachment pane will be shown automatically.
     this.addAttachment(keyAttachment);
 
-    // XXX TODO: ChangeAttachmentBucketVisibility() doesn't exist.
-    try {
-      // TB only
-      ChangeAttachmentBucketVisibility(false);
-    } catch (ex) {}
     gContentChanged = true;
     return keyAttachment;
   },
@@ -880,34 +875,27 @@ Enigmail.msg = {
       "enigmailMsgComposeOverlay.js: Enigmail.msg.removeAttachedKey: \n"
     );
 
-    var bucketList = document.getElementById("attachmentBucket");
-    var node = bucketList.firstChild;
+    let bucketList = document.getElementById("attachmentBucket");
+    let node = bucketList.firstElementChild;
 
-    if (
-      bucketList &&
-      bucketList.hasChildNodes() &&
-      this.attachOwnKeyObj.attachedObj
-    ) {
-      // undo attaching own key
+    if (bucketList.itemCount && this.attachOwnKeyObj.attachedObj) {
+      // Undo attaching own key.
       while (node) {
         if (node.attachment.url == this.attachOwnKeyObj.attachedObj.url) {
           node = bucketList.removeChild(node);
-          // Let's release the attachment object held by the node else it won't go away until the window is destroyed
+          // Let's release the attachment object held by the node else it won't
+          // go away until the window is destroyed.
           node.attachment = null;
           this.attachOwnKeyObj.attachedObj = null;
           this.attachOwnKeyObj.attachedKey = null;
-          node = null; // exit loop
+          node = null; // exit loop.
         } else {
           node = node.nextSibling;
         }
       }
-      if (!bucketList.hasChildNodes()) {
-        // XXX TODO: ChangeAttachmentBucketVisibility() doesn't exist.
-        try {
-          // TB only
-          ChangeAttachmentBucketVisibility(true);
-        } catch (ex) {}
-      }
+
+      // Update the visibility of the attachment pane.
+      UpdateAttachmentBucket(bucketList.itemCount);
     }
   },
 
diff --git a/comm/mail/extensions/openpgp/content/ui/enigmailMsgHdrViewOverlay.js b/comm/mail/extensions/openpgp/content/ui/enigmailMsgHdrViewOverlay.js
index 1170d0ef0f87b22b6a4ada489cfbacfb6b222ee5..09b0f66557d80c8a7c638a6d335b9fda696d645b 100644
--- a/comm/mail/extensions/openpgp/content/ui/enigmailMsgHdrViewOverlay.js
+++ b/comm/mail/extensions/openpgp/content/ui/enigmailMsgHdrViewOverlay.js
@@ -925,10 +925,17 @@ Enigmail.hdrView = {
 
       let msgUriSpec = Enigmail.msg.getCurrentMsgUriSpec();
       let currUrl = EnigmailFuncs.getUrlFromUriSpec(msgUriSpec);
+      if (!currUrl) {
+        return false;
+      }
 
       let currMsgId = EnigmailURIs.msgIdentificationFromUrl(currUrl);
       let gotMsgId = EnigmailURIs.msgIdentificationFromUrl(uri);
 
+      if (!gotMsgId) {
+        return false;
+      }
+
       EnigmailLog.DEBUG(
         "enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: url=" +
           currUrl.spec +
diff --git a/comm/mail/installer/windows/moz.build b/comm/mail/installer/windows/moz.build
index 712024b1e02720a9d6913d2ca9e5e2cfe1054777..61b05f7b34dc060174e3fdb592313d26bc19c787 100644
--- a/comm/mail/installer/windows/moz.build
+++ b/comm/mail/installer/windows/moz.build
@@ -10,3 +10,5 @@ DEFINES["MOZ_APP_DISPLAYNAME"] = CONFIG["MOZ_APP_DISPLAYNAME"]
 DEFINES["MOZILLA_VERSION"] = CONFIG["MOZILLA_VERSION"]
 DEFINES["MOZ_APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
 DEFINES["PRE_RELEASE_SUFFIX"] = ""
+
+DEFINES["MOZ_HANDLER_CLSID"] = "{%s}" % CONFIG["MOZ_HANDLER_CLSID"]
diff --git a/comm/mail/installer/windows/nsis/defines.nsi.in b/comm/mail/installer/windows/nsis/defines.nsi.in
index 78ff0443220ff7409b4a0d69059e9a3ad31d71dc..68981f9a869b1955d0742dd1b6fdf02055e56ed4 100755
--- a/comm/mail/installer/windows/nsis/defines.nsi.in
+++ b/comm/mail/installer/windows/nsis/defines.nsi.in
@@ -47,21 +47,7 @@
 # These defines must match HANDLER_CLSID defined in
 # accessible/ipc/win/handler/HandlerData.idl
 
-!if "@MOZ_UPDATE_CHANNEL@" == "default"
-#ifdef DEBUG
-!define AccessibleHandlerCLSID "{398FFD8D-5382-48F7-9E3B-19012762D39A}"
-#else
-!define AccessibleHandlerCLSID "{CE573FAF-7815-4FC2-A031-B092268ACE9E}"
-#endif
-!else if "@MOZ_UPDATE_CHANNEL@" == "nightly"
-!define AccessibleHandlerCLSID "{4629216B-8753-41BF-9527-5BFF51401671}"
-!else if "@MOZ_UPDATE_CHANNEL@" == "beta"
-!define AccessibleHandlerCLSID "{21E9F98D-A6C9-4CB5-B288-AE2FD2A96C58}"
-!else if "@MOZ_UPDATE_CHANNEL@" == "release"
-!define AccessibleHandlerCLSID "{1BAA303D-B4B9-45E5-9CCB-E3FCA3E274B6}"
-!else
-!define AccessibleHandlerCLSID "{4A195748-DCA2-45FB-9295-0A139E76A9E7}"
-!endif
+!define AccessibleHandlerCLSID "@MOZ_HANDLER_CLSID@"
 
 # ARCH is used when it is necessary to differentiate the x64 registry keys from
 # the x86 registry keys (e.g. the uninstall registry key).
diff --git a/comm/mail/locales/en-US/messenger/troubleshootMode.ftl b/comm/mail/locales/en-US/messenger/troubleshootMode.ftl
index 7ea621eea62fbb2f05decefc8d57bca71c1b3a7b..aafa802c15f400b2610c4f9f12ea1294394d7916 100644
--- a/comm/mail/locales/en-US/messenger/troubleshootMode.ftl
+++ b/comm/mail/locales/en-US/messenger/troubleshootMode.ftl
@@ -6,7 +6,7 @@ troubleshoot-mode-window =
     .title = { -brand-short-name } Troubleshoot Mode
     .style = width: 37em;
 
-troubleshoot-mode-description = Use { -brand-short-name } troubleshooting mode to diagnose issues. Your add-ons and customizations will be temporarily disabled.
+troubleshoot-mode-description = Use { -brand-short-name } troubleshoot mode to diagnose issues. Your add-ons and customizations will be temporarily disabled.
 
 troubleshoot-mode-description2 = You can make some or all of these changes permanent:
 
diff --git a/comm/mail/locales/l10n-changesets.json b/comm/mail/locales/l10n-changesets.json
index b9ed31cb03753827fda91a8a304ab8b3fcea12ab..68b767ac86f6b5f2c5e780ed8d7d9d8ae19c7fe8 100644
--- a/comm/mail/locales/l10n-changesets.json
+++ b/comm/mail/locales/l10n-changesets.json
@@ -8,7 +8,7 @@
             "win32",
             "win64"
         ],
-        "revision": "05d5b0dece841cdcc9dc2b80648fe6f11cf65d0a"
+        "revision": "b47ef3782595b856d794e92a9862868e75c69837"
     },
     "ar": {
         "pin": false,
@@ -19,7 +19,7 @@
             "win32",
             "win64"
         ],
-        "revision": "0baf8c418c3074a4c42429cd637ecf01915e4f9c"
+        "revision": "f2c151587bfce0e5f403aa0854e6085cb8bd2eb3"
     },
     "ast": {
         "pin": false,
@@ -30,7 +30,7 @@
             "win32",
             "win64"
         ],
-        "revision": "e73228d88a2092595e96c44570728befea16659c"
+        "revision": "788092c7506b1cce814be585904419c8354419cd"
     },
     "be": {
         "pin": false,
@@ -41,7 +41,7 @@
             "win32",
             "win64"
         ],
-        "revision": "4aacdbf6669dfdb546a683fc618366f56d046e16"
+        "revision": "1a9134e96c811bcd4b8515a51646c491cfa7e18f"
     },
     "bg": {
         "pin": false,
@@ -52,7 +52,7 @@
             "win32",
             "win64"
         ],
-        "revision": "ee4aca9f9fa3cabc404a9ba95402fd8d56dd0798"
+        "revision": "54695712b8675dd6aed1403969db23fc52c8d29f"
     },
     "br": {
         "pin": false,
@@ -63,7 +63,7 @@
             "win32",
             "win64"
         ],
-        "revision": "25732b57170456a7c56fa266ebd4fbcbc1a85d11"
+        "revision": "dd6d79797215e485ed4cbe1f9fe02f241c226f59"
     },
     "ca": {
         "pin": false,
@@ -74,7 +74,7 @@
             "win32",
             "win64"
         ],
-        "revision": "09bdef128d9c68016aad0c498c1c9a4d993bc45f"
+        "revision": "f9b24289879954b22271d0b4c05c6c81264d9921"
     },
     "cak": {
         "pin": false,
@@ -85,7 +85,7 @@
             "win32",
             "win64"
         ],
-        "revision": "8fb9cc1068f7996d49af245b4a396bac8c114924"
+        "revision": "109186d58536d64acc2459ed1d7d9c70f0931480"
     },
     "cs": {
         "pin": false,
@@ -96,7 +96,7 @@
             "win32",
             "win64"
         ],
-        "revision": "73bed3819c772b568c300bb8a05b0946cf9009c0"
+        "revision": "0e4a141833e47fcf14820abc3c4fcec2a30c444b"
     },
     "cy": {
         "pin": false,
@@ -107,7 +107,7 @@
             "win32",
             "win64"
         ],
-        "revision": "919d03f47633da860510e911ffdc7dbb87318496"
+        "revision": "4eb00fe4adb3c43bd4409e69728559f7ed84150f"
     },
     "da": {
         "pin": false,
@@ -118,7 +118,7 @@
             "win32",
             "win64"
         ],
-        "revision": "110241206d87932fa7208a385b48ba8286cd2c1e"
+        "revision": "613234aab7d8dab523ffa8464c29607be4ceef57"
     },
     "de": {
         "pin": false,
@@ -129,7 +129,7 @@
             "win32",
             "win64"
         ],
-        "revision": "b0feecc03afa3966f1098f6d676f0f9c25fb5e45"
+        "revision": "b05803f5b0ef5607d6705669b968091e1919bdb8"
     },
     "dsb": {
         "pin": false,
@@ -140,7 +140,7 @@
             "win32",
             "win64"
         ],
-        "revision": "d9ebf1273e93a6765d103ec1d6d74c4f584e3fa3"
+        "revision": "68361cb05f3992cff82e3b0e4645ede6e15f67cb"
     },
     "el": {
         "pin": false,
@@ -151,7 +151,7 @@
             "win32",
             "win64"
         ],
-        "revision": "78e9712357d648407969c60c6f96465f8088befd"
+        "revision": "5584e3a8a96d8268ada8bbff0ddbd2f1a5aeb39e"
     },
     "en-CA": {
         "pin": false,
@@ -162,7 +162,7 @@
             "win32",
             "win64"
         ],
-        "revision": "a522a63daeca3622348d149ebcc5243ec82a548f"
+        "revision": "53b9e3644c090be4708000aa3d7a1d8add28e055"
     },
     "en-GB": {
         "pin": false,
@@ -173,7 +173,7 @@
             "win32",
             "win64"
         ],
-        "revision": "7238b0ab50a1cc05ac17246b3c4dfd7242daa0b1"
+        "revision": "ce5856203707ab3440a84b7931e16f8c9b18830e"
     },
     "es-AR": {
         "pin": false,
@@ -184,7 +184,7 @@
             "win32",
             "win64"
         ],
-        "revision": "0e6a770b497cf6b4cc2fdf703ac3ee50c0667b17"
+        "revision": "3626fba865ccf8d6e00481ac2afb999fb5c168d5"
     },
     "es-ES": {
         "pin": false,
@@ -195,7 +195,7 @@
             "win32",
             "win64"
         ],
-        "revision": "cb2588da8655a5cd1f25e557b173a91b9fa7d936"
+        "revision": "400f80d4ce004679763cfd00d8ba97837b8d3654"
     },
     "et": {
         "pin": false,
@@ -206,7 +206,7 @@
             "win32",
             "win64"
         ],
-        "revision": "fabfc06d5a964e8d01d41fe587dd43d38ec695ad"
+        "revision": "ac58fa5152e70f0e4d7eda882b8e0631e7e7e347"
     },
     "eu": {
         "pin": false,
@@ -217,7 +217,7 @@
             "win32",
             "win64"
         ],
-        "revision": "9d67c17ea8703ead870e4b5ab7351bd0c181e768"
+        "revision": "84fb759c36f9e89bc43fe631a2a2877ca9777f77"
     },
     "fi": {
         "pin": false,
@@ -228,7 +228,7 @@
             "win32",
             "win64"
         ],
-        "revision": "e1cef3ea9e9fa764bbe9fff3a0199b203389575d"
+        "revision": "dae96992bcad86fce14b49b329e2740696973a6c"
     },
     "fr": {
         "pin": false,
@@ -239,7 +239,7 @@
             "win32",
             "win64"
         ],
-        "revision": "2d7312d401c54d196340d91e660e1808185c0a6e"
+        "revision": "e08236f212f816751f344aae6315706d88472286"
     },
     "fy-NL": {
         "pin": false,
@@ -250,7 +250,7 @@
             "win32",
             "win64"
         ],
-        "revision": "df639f4fe7a52cc000fb7bab2ece5755b926aa2d"
+        "revision": "aff5bdb87aede760e2397cee3dcf64ccc5e2857a"
     },
     "ga-IE": {
         "pin": false,
@@ -261,7 +261,7 @@
             "win32",
             "win64"
         ],
-        "revision": "9b1f5677ed9ab0e6b1ad294323d6beb6ea58ff10"
+        "revision": "1b4aaeccfa6dec44ae72e852f0237020f8e4b019"
     },
     "gd": {
         "pin": false,
@@ -272,7 +272,7 @@
             "win32",
             "win64"
         ],
-        "revision": "17c6d97f59fd2c1bce54979720115785410b994f"
+        "revision": "4c6bb1a16428812803a4e0486eca83609da50a84"
     },
     "gl": {
         "pin": false,
@@ -283,7 +283,7 @@
             "win32",
             "win64"
         ],
-        "revision": "7c47cab4dd42cfa7f6ec7adbea64138f27bb6982"
+        "revision": "3c4cced3eee19aa0f5726bfd70ae5769ca0c7c4f"
     },
     "he": {
         "pin": false,
@@ -294,7 +294,7 @@
             "win32",
             "win64"
         ],
-        "revision": "b6d9dd3327cb3468baed3763e0fbf2420efbdeb6"
+        "revision": "9f818610cab8ebb26c0e808a18c960067eb5cdde"
     },
     "hr": {
         "pin": false,
@@ -305,7 +305,7 @@
             "win32",
             "win64"
         ],
-        "revision": "33c9274e0bf4c4dc362a70da700be10bb2775193"
+        "revision": "8c321efceebcc0ca35ecf3efb497b9678a3edf81"
     },
     "hsb": {
         "pin": false,
@@ -316,7 +316,7 @@
             "win32",
             "win64"
         ],
-        "revision": "f0e3529ce8154527c057900366f48b0159c2677a"
+        "revision": "42500c6a2179e59b4f2538637a75a36fa83205b2"
     },
     "hu": {
         "pin": false,
@@ -327,7 +327,7 @@
             "win32",
             "win64"
         ],
-        "revision": "5cf8cc3ab4d92c40c08cc5d9305acdf1c37b362b"
+        "revision": "00056715ab80be718dbfdea0adddd72fb521655d"
     },
     "hy-AM": {
         "pin": false,
@@ -338,7 +338,7 @@
             "win32",
             "win64"
         ],
-        "revision": "3532198e30da60fafd167bd9641aef90d5254960"
+        "revision": "7a000dc886195b1a6f8a34201b2f994f7a959f3f"
     },
     "id": {
         "pin": false,
@@ -349,7 +349,7 @@
             "win32",
             "win64"
         ],
-        "revision": "80b8704947edaba66440b6efd0cd49fd529009e2"
+        "revision": "3170148621309b0751c5216939c82da46b6307f9"
     },
     "is": {
         "pin": false,
@@ -360,7 +360,7 @@
             "win32",
             "win64"
         ],
-        "revision": "a6b7b3d7505fe786518bb69c9541464da0e1e7fc"
+        "revision": "17dd6170fd4d51e7196ede4b2644669549f29040"
     },
     "it": {
         "pin": false,
@@ -371,7 +371,7 @@
             "win32",
             "win64"
         ],
-        "revision": "fa53ae64c63866e64b7d8986a98ff9f1896031e9"
+        "revision": "37fea80cb7142d8977a08d19e28bf3f76f29d778"
     },
     "ja": {
         "pin": false,
@@ -381,14 +381,14 @@
             "win32",
             "win64"
         ],
-        "revision": "97ee97d824306b45d8d642dab3a66b844a750e74"
+        "revision": "7967965a51daa43e17b1d7f42e7e19d033bb191d"
     },
     "ja-JP-mac": {
         "pin": false,
         "platforms": [
             "macosx64"
         ],
-        "revision": "f69116398a9009db5c50bc53de63d71e0b5fdc60"
+        "revision": "e5c5fea21d2e8e5aa5f81c72f2369d9802187c11"
     },
     "ka": {
         "pin": false,
@@ -399,7 +399,7 @@
             "win32",
             "win64"
         ],
-        "revision": "bef26e16c718b468bae866c718dcf72ae37d8159"
+        "revision": "bc88139fd24df5491ca8a2218401bf0ffdcb3ad6"
     },
     "kab": {
         "pin": false,
@@ -410,7 +410,7 @@
             "win32",
             "win64"
         ],
-        "revision": "d4ee6c1e56c184a3b8a4463c026048cff7996bcc"
+        "revision": "eb9c70509a47a47a90d15a2e2696f11ce1865d2f"
     },
     "kk": {
         "pin": false,
@@ -421,7 +421,7 @@
             "win32",
             "win64"
         ],
-        "revision": "ef24b18046c4778eda5ecd02f69596b80b5388e3"
+        "revision": "4a3661bcf9c6983f6ac20c89a6f52f779b96491c"
     },
     "ko": {
         "pin": false,
@@ -432,7 +432,7 @@
             "win32",
             "win64"
         ],
-        "revision": "9a5db0cdd0f778ade57f0563e980bfd023d5cb7f"
+        "revision": "3d4dd4c393ae61e2476d1fbde7990f103c70d32b"
     },
     "lt": {
         "pin": false,
@@ -443,7 +443,7 @@
             "win32",
             "win64"
         ],
-        "revision": "86ba3ab5e58cc1e2293237cdd906964756cdcfd5"
+        "revision": "75bc6397aa3fd7daa89b627ea8078ed66dffeb55"
     },
     "lv": {
         "pin": false,
@@ -454,7 +454,7 @@
             "win32",
             "win64"
         ],
-        "revision": "6b249fb7c604e23a85ba658907bb7b5866f09e65"
+        "revision": "d6ce24ef2c9d6b081915b8086db07c35d2fef76f"
     },
     "ms": {
         "pin": false,
@@ -465,7 +465,7 @@
             "win32",
             "win64"
         ],
-        "revision": "e3e91baccea770a8f0572f9ca91a7fdf379adf7e"
+        "revision": "0ae3e431a12bcb24f61cbfd75d255240b8d48165"
     },
     "nb-NO": {
         "pin": false,
@@ -476,7 +476,7 @@
             "win32",
             "win64"
         ],
-        "revision": "bba888d1cfaecde9cbf156b42d07766a89b1a25f"
+        "revision": "da4764531319abc20981e0e189d0c4e536292e6a"
     },
     "nl": {
         "pin": false,
@@ -487,7 +487,7 @@
             "win32",
             "win64"
         ],
-        "revision": "1caca9240a20738cb3f2e45e4d9c866d5e949620"
+        "revision": "44a29e9f910395989604cdf09bad1771412b8486"
     },
     "nn-NO": {
         "pin": false,
@@ -498,7 +498,7 @@
             "win32",
             "win64"
         ],
-        "revision": "ee58af5ed3408fde91c47874bc1cfcc41321a69f"
+        "revision": "e8e14216cb6bf4b472f49674203b2c63112ec7dc"
     },
     "pa-IN": {
         "pin": false,
@@ -509,7 +509,7 @@
             "win32",
             "win64"
         ],
-        "revision": "06d4f9f941c8340656c63e6dd83de1812fecce46"
+        "revision": "9428cd2b058055e2beecec8ddb2a7a419248a557"
     },
     "pl": {
         "pin": false,
@@ -520,7 +520,7 @@
             "win32",
             "win64"
         ],
-        "revision": "4e884437ce0ebeb529b7298e678b2e0bbafd9741"
+        "revision": "e766da1850d8a1707372e65abd18750b6f62df47"
     },
     "pt-BR": {
         "pin": false,
@@ -531,7 +531,7 @@
             "win32",
             "win64"
         ],
-        "revision": "f6d05ff84a960e83fdd3188a1b34b5f80e273ad2"
+        "revision": "2fe367dbf00ee80085dd3fb58adf04dc82228364"
     },
     "pt-PT": {
         "pin": false,
@@ -542,7 +542,7 @@
             "win32",
             "win64"
         ],
-        "revision": "6663d30efd4f7eb7c56ce3dc1bc1fdfda9b2704f"
+        "revision": "3d7efe5bae182087c87cb2c9f7c6f352486691b0"
     },
     "rm": {
         "pin": false,
@@ -553,7 +553,7 @@
             "win32",
             "win64"
         ],
-        "revision": "06c51e6f3ef0dd7768febbe6d4141ae9a581a9c8"
+        "revision": "31dd02a25a80bc9b278f82d1bd7def0ee242eae6"
     },
     "ro": {
         "pin": false,
@@ -564,7 +564,7 @@
             "win32",
             "win64"
         ],
-        "revision": "c5cc7e8654a47d4c0dbb54be169df68ff3274b95"
+        "revision": "84fb7ae097ac6b9a35a8603c8a6c709cb05fa157"
     },
     "ru": {
         "pin": false,
@@ -575,7 +575,7 @@
             "win32",
             "win64"
         ],
-        "revision": "60a8663eca3f5bfcacb7b3a4ca0f98b45f9e6a8e"
+        "revision": "a475463aa9c4138d2d592cd036323aff49cb594f"
     },
     "sk": {
         "pin": false,
@@ -586,7 +586,7 @@
             "win32",
             "win64"
         ],
-        "revision": "310e5fb5833990aeaa5de5974c043fcefb810ab9"
+        "revision": "a43f997b7e4e40ff8428a28a4f6432d407a7eee2"
     },
     "sl": {
         "pin": false,
@@ -597,7 +597,7 @@
             "win32",
             "win64"
         ],
-        "revision": "1c60ddcc5ad2758a3aa13ab71d8beff9b55d93ca"
+        "revision": "4a347d91a15af8ebfde2a08391d11dfa522f308b"
     },
     "sq": {
         "pin": false,
@@ -608,7 +608,7 @@
             "win32",
             "win64"
         ],
-        "revision": "575800064272e01c1b2c6e4019bb91ed8eb5e362"
+        "revision": "baf3b40ba6e5e25ec71b0f11b6b8b5a53573653f"
     },
     "sr": {
         "pin": false,
@@ -619,7 +619,7 @@
             "win32",
             "win64"
         ],
-        "revision": "c65e1af0f1641db2898c446fbbfe9b6b5ad5e08a"
+        "revision": "ec1713590d3d69b601a54544735833e2e234ae5a"
     },
     "sv-SE": {
         "pin": false,
@@ -630,7 +630,7 @@
             "win32",
             "win64"
         ],
-        "revision": "3d4b773e7c9fe94b99c57e39305fe81ec450caa2"
+        "revision": "a77432705bf11020bdb4b4cc4d718799549e18e0"
     },
     "th": {
         "pin": false,
@@ -641,7 +641,7 @@
             "win32",
             "win64"
         ],
-        "revision": "1d7b3359a1b551e1cf54dd18f064ca6d156541c1"
+        "revision": "741a0797527cf96425786a83d1c5074ed92a2054"
     },
     "tr": {
         "pin": false,
@@ -652,7 +652,7 @@
             "win32",
             "win64"
         ],
-        "revision": "d08556ec17d2559e5e507749258741863358e6e8"
+        "revision": "6ab1aadb1773fbcc57b2f206f9248cc2a199432e"
     },
     "uk": {
         "pin": false,
@@ -663,7 +663,7 @@
             "win32",
             "win64"
         ],
-        "revision": "79d375588ea7b2d5ce815bbdf901170d981e5032"
+        "revision": "161f9532708191d7a8f270df5b81877e804fa733"
     },
     "uz": {
         "pin": false,
@@ -674,7 +674,7 @@
             "win32",
             "win64"
         ],
-        "revision": "5eddff30133d5ed37494054dc761695160404a50"
+        "revision": "c71c39715ab5d150776b3acfa178ddb2b2bec390"
     },
     "vi": {
         "pin": false,
@@ -685,7 +685,7 @@
             "win32",
             "win64"
         ],
-        "revision": "00f1c78d65e9eb3c8d6025cda46423e652f7f246"
+        "revision": "0d2ab67f2b858d4dbdd4ef15560ef04b6dc62a6e"
     },
     "zh-CN": {
         "pin": false,
@@ -696,7 +696,7 @@
             "win32",
             "win64"
         ],
-        "revision": "88e976a91243c603b317cd2857f064e724340a40"
+        "revision": "8c1c93d9501b4b9fb751780fc1d7e3ad8a261447"
     },
     "zh-TW": {
         "pin": false,
@@ -707,6 +707,6 @@
             "win32",
             "win64"
         ],
-        "revision": "89a09ed12c64a4bbead2c6c01b6efa034104f156"
+        "revision": "c0232060223c5aee9875d707b8b4e0029c29c71a"
     }
 }
\ No newline at end of file
diff --git a/comm/mail/test/browser/account/browser_accountOrder.js b/comm/mail/test/browser/account/browser_accountOrder.js
index 3a16727d7c6de61bf03897d7a3009e27707da82b..f81fb00ec32300d3131758719b3bb5ef34d1e302 100644
--- a/comm/mail/test/browser/account/browser_accountOrder.js
+++ b/comm/mail/test/browser/account/browser_accountOrder.js
@@ -86,8 +86,6 @@ function subtest_check_account_order(tab) {
   );
   Assert.notEqual(curAccountList.join(), prevAccountList.join());
 
-  accountRow = get_account_tree_row(gPopAccount.key, null, tab);
-  click_account_tree_row(tab, accountRow);
   // Moving the account down, back to the starting position.
   EventUtils.synthesizeKey("VK_DOWN", { altKey: true });
   mc.sleep(0);
diff --git a/comm/mail/test/browser/attachment/browser_attachmentSize.js b/comm/mail/test/browser/attachment/browser_attachmentSize.js
index c7a1c3b407b767fa76d98228e6fa95bb0e0816cc..22bb6784cd32af9c0640a7d672ebab2d59761655 100644
--- a/comm/mail/test/browser/attachment/browser_attachmentSize.js
+++ b/comm/mail/test/browser/attachment/browser_attachmentSize.js
@@ -137,7 +137,7 @@ var messages = [
       { body: textAttachment, filename: "ubik.txt", format: "" },
       {
         body: vcardAttachment,
-        contentType: "text/x-vcard",
+        contentType: "text/vcard",
         filename: "ubik.vcf",
         encoding: "base64",
         format: "",
diff --git a/comm/mail/test/browser/folder-display/data/test-invalid-vcard.eml b/comm/mail/test/browser/folder-display/data/test-invalid-vcard.eml
index 698837901e43ca0ea67e37cc9e879f1fa46eebfa..6ee2f4865a3c2782af933703ce18eaf585efc09d 100644
--- a/comm/mail/test/browser/folder-display/data/test-invalid-vcard.eml
+++ b/comm/mail/test/browser/folder-display/data/test-invalid-vcard.eml
@@ -14,7 +14,7 @@ Content-Type: text/plain; charset=UTF-8
 has an attached vcf which has invalid data (null)
 
 --------------B16B2089EF5F4ADD84A4E66F
-Content-Type: text/x-vcard;
+Content-Type: text/vcard;
  name="contentisnull.vcf"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment;
diff --git a/comm/mail/test/browser/folder-tree-modes/browser_customFolderTreeMode.js b/comm/mail/test/browser/folder-tree-modes/browser_customFolderTreeMode.js
index 1d59b91f73724ae17dfaa22a05eafacba8bba198..9dc8908d8a20fa61b7a1dc44d5c58b9a6441dacb 100644
--- a/comm/mail/test/browser/folder-tree-modes/browser_customFolderTreeMode.js
+++ b/comm/mail/test/browser/folder-tree-modes/browser_customFolderTreeMode.js
@@ -101,7 +101,7 @@ add_task(function test_switch_to_test_mode() {
  * Open a new 3-pane window while the custom mode is selected, and make sure
  * that the mode displayed in the new window is the custom mode.
  */
-add_task(function test_open_new_window_with_custom_mode() {
+add_task(async function test_open_new_window_with_custom_mode() {
   // Our selection may get lost while changing modes, and be_in_folder is
   // not sufficient to ensure actual selection.
   mc.folderTreeView.selectFolder(gInbox);
@@ -110,6 +110,7 @@ add_task(function test_open_new_window_with_custom_mode() {
   mc.window.MsgOpenNewWindowForFolder(null, -1);
   let mc2 = wait_for_new_window("mail:3pane");
 
+  await TestUtils.waitForCondition(() => mc2.folderTreeView.isInited);
   assert_folder_mode(kTestModeID, mc2);
   assert_folder_visible(gInbox, mc2);
 
diff --git a/comm/mail/test/browser/message-window/data/test-vcard-icon.eml b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml
index 9448cf37ee1de8162ad7ea346a92ca3a841be475..7a462ab5283c452bd8f2c2c6d6ba5eb1449f0fbc 100644
--- a/comm/mail/test/browser/message-window/data/test-vcard-icon.eml
+++ b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml
@@ -28,7 +28,7 @@ Content-Type: text/html; charset=UTF-8
 
 </div></div></body></html>
 --sgnirk-111111111111111
-Content-Type: text/x-vcard; charset=UTF-8
+Content-Type: text/vcard; charset=UTF-8
 Content-Disposition: attachment; filename="Meister.vcf"
 
 BEGIN:VCARD
diff --git a/comm/mail/themes/addons/dark/manifest.json b/comm/mail/themes/addons/dark/manifest.json
index 27242ff6a7d07ce1ff8d99270c01b799845d8f0d..3612d0acec355e5479178cce38d73058a855d0f8 100644
--- a/comm/mail/themes/addons/dark/manifest.json
+++ b/comm/mail/themes/addons/dark/manifest.json
@@ -19,18 +19,18 @@
       "tab_background_text": "#fbfbfe",
       "icons": "#fbfbfe",
       "frame": "#1c1b22",
-      "popup": "rgb(66, 65, 77)",
+      "popup": "rgb(40, 40, 41)",
       "popup_text": "rgb(251, 251, 254)",
       "popup_border": "rgb(82, 82, 94)",
       "popup_highlight": "#0060df",
       "tab_line": "#0a84ff",
       "toolbar": "hsl(240, 1%, 20%)",
       "toolbar_bottom_separator": "hsl(240, 5%, 5%)",
-      "toolbar_field": "#42414d",
+      "toolbar_field": "rgb(65, 65, 67)",
       "toolbar_field_border": "#8f8f9d",
       "toolbar_field_border_focus": "#45a1ff",
       "toolbar_field_text": "rgb(251, 251, 254)",
-      "toolbar_field_focus": "rgb(66, 65, 77)",
+      "toolbar_field_focus": "rgb(65, 65, 67)",
       "sidebar": "#38383D",
       "sidebar_text": "#d4d4d4",
       "sidebar_highlight": "#45a1ff",
diff --git a/comm/mail/themes/linux/mail/messenger.css b/comm/mail/themes/linux/mail/messenger.css
index 9bba91757213d9333e2444e0970ca613459fb41c..1211ed5342f4df10c48e108879d3318a487e66fe 100644
--- a/comm/mail/themes/linux/mail/messenger.css
+++ b/comm/mail/themes/linux/mail/messenger.css
@@ -415,19 +415,6 @@ treechildren::-moz-tree-cell-text {
   background-image: linear-gradient(transparent 40px, -moz-dialog 40px);
 }
 
-findbar {
-  background-color: var(--toolbar-non-lwt-bgcolor);
-  color: var(--toolbar-non-lwt-textcolor);
-  text-shadow: none;
-}
-
-:root:not([lwtheme-image]) findbar:-moz-lwtheme {
-  background-color: var(--lwt-accent-color);
-  background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor));
-  border-top-color: var(--chrome-content-separator-color);
-  color: var(--toolbar-color);
-}
-
 fieldset {
   margin: 5px;
   padding: 5px;
diff --git a/comm/mail/themes/osx/mail/messenger.css b/comm/mail/themes/osx/mail/messenger.css
index c78d409d1873b6d2be183981c2f7c57ff3142abd..63a69ebf653577b0c3d3e22867056a89094dadc8 100644
--- a/comm/mail/themes/osx/mail/messenger.css
+++ b/comm/mail/themes/osx/mail/messenger.css
@@ -459,20 +459,6 @@ button.notification-button[is="button-menu-button"] > .button-box > dropmarker {
   background-image: linear-gradient(transparent 40px, -moz-dialog 40px);
 }
 
-findbar {
-  background: linear-gradient(#e8e8e8, #d0d0d0) repeat-x;
-  border-top: 1px solid #888;
-  color: -moz-DialogText;
-  text-shadow: none;
-}
-
-:root:not([lwtheme-image]) findbar:-moz-lwtheme {
-  background-color: var(--lwt-accent-color);
-  background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor));
-  border-top-color: var(--chrome-content-separator-color);
-  color: var(--toolbar-color);
-}
-
 .contentTabAddress * {
   text-shadow: none;
 }
diff --git a/comm/mail/themes/shared/mail/messenger.css b/comm/mail/themes/shared/mail/messenger.css
index 54f1ef2db0515d0291c63df3a2a9d844be7e2988..fc28f313ca3ea56e5053a7318d57c631cddfcb40 100644
--- a/comm/mail/themes/shared/mail/messenger.css
+++ b/comm/mail/themes/shared/mail/messenger.css
@@ -579,13 +579,15 @@ button {
   box-shadow: none;
 }
 
-button:is(:not([disabled="true"],[disabled="disabled"])):hover {
+xul|button:is(:not([disabled="true"])):hover,
+html|button:is(:not([disabled])):hover {
   border-color: var(--button-border-color);
   background-color: var(--button-hover-bgcolor);
 }
 
-button:is(:not([disabled="true"],[disabled="disabled"]))[open="true"],
-button:is(:not([disabled="true"],[disabled="disabled"])):hover:active {
+xul|button:is(:not([disabled="true"])):hover:active,
+html|button:is(:not([disabled])):hover:active,
+xul|button:is(:not([disabled="true"]))[open="true"] {
   border-color: var(--button-border-color);
   background-color: var(--button-active-bgcolor);
 }
@@ -1124,6 +1126,25 @@ label.statusbarpanel {
   height: 16px;
 }
 
+findbar,
+#findbar-close-container {
+  background-color: var(--toolbar-non-lwt-bgcolor);
+  color: var(--toolbar-non-lwt-textcolor);
+  text-shadow: none;
+}
+
+:root:not([lwtheme-image]) findbar:-moz-lwtheme,
+:root:not([lwtheme-image]) #findbar-close-container:-moz-lwtheme {
+  background-color: var(--lwt-accent-color);
+  background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor));
+  border-top-color: var(--chrome-content-separator-color);
+  color: var(--toolbar-color);
+}
+
+#messagepanebox > findbar > .findbar-container {
+  min-width: 100px;
+}
+
 /* Address Book menuitem icons */
 
 .abMenuItem[AddrBook="true"] {
diff --git a/comm/mail/themes/windows/mail/addrbook/addressbook.css b/comm/mail/themes/windows/mail/addrbook/addressbook.css
index 4f595e6ceb2941371a2b4a1db9c23249e45d7784..4f9d91747763432584a644078438719031adf8d9 100644
--- a/comm/mail/themes/windows/mail/addrbook/addressbook.css
+++ b/comm/mail/themes/windows/mail/addrbook/addressbook.css
@@ -58,11 +58,6 @@ toolbox > toolbar:last-of-type {
 }
 
 @media (-moz-os-version: windows-win10) and (-moz-windows-default-theme) {
-  #menubar-items > #mail-menubar > menu {
-    appearance: none;
-    border-style: none;
-  }
-
   #menubar-items > #mail-menubar > menu[disabled="true"] {
     background-color: transparent;
   }
diff --git a/comm/mail/themes/windows/mail/compose/messengercompose.css b/comm/mail/themes/windows/mail/compose/messengercompose.css
index 52177ffe32b3ecc6d29a9d28d713a7bb5d08df3c..251ef2bc173dd3166d612f931258677a0adfdee0 100644
--- a/comm/mail/themes/windows/mail/compose/messengercompose.css
+++ b/comm/mail/themes/windows/mail/compose/messengercompose.css
@@ -14,11 +14,6 @@
 /* ::::: special toolbar colors ::::: */
 
 @media (-moz-os-version: windows-win10) and (-moz-windows-default-theme) {
-  #menubar-items > #mail-menubar > menu {
-    appearance: none;
-    border-style: none;
-  }
-
   #menubar-items > #mail-menubar > menu[disabled="true"] {
     background-color: transparent;
   }
@@ -284,12 +279,6 @@ toolbar:not(:-moz-lwtheme) {
   z-index: 10;
 }
 
-@media (-moz-os-version: windows-win7) and (-moz-windows-default-theme) {
-  findbar {
-    background-color: #eef3fa;
-  }
-}
-
 @media (-moz-windows-glass) {
   #compose-toolbox:not(:-moz-lwtheme) {
     color: black;
diff --git a/comm/mail/themes/windows/mail/messageHeader.css b/comm/mail/themes/windows/mail/messageHeader.css
index 3ad999280f44415816b02859a33f1a81dfc77af3..22b801425ea7d7a0323b933f700dc3007e02d701 100644
--- a/comm/mail/themes/windows/mail/messageHeader.css
+++ b/comm/mail/themes/windows/mail/messageHeader.css
@@ -49,12 +49,4 @@
     background-image: none;
     background-color: rgb(233, 239, 245);
   }
-
-  #attachmentBar {
-    background-color: #eef3fa;
-  }
-
-  findbar {
-    background-color: #eef3fa;
-  }
 }
diff --git a/comm/mail/themes/windows/mail/messenger.css b/comm/mail/themes/windows/mail/messenger.css
index 189ddac63cb1127bc5d1eb630c62f1b07addd891..1bcfb6ed004d2c4c83346442ef92c9ddfbb155e9 100644
--- a/comm/mail/themes/windows/mail/messenger.css
+++ b/comm/mail/themes/windows/mail/messenger.css
@@ -159,6 +159,20 @@
   }
 }
 
+@media (-moz-windows-default-theme: 0),
+       (-moz-os-version: windows-win10) and (-moz-windows-default-theme) {
+  #menubar-items > #mail-menubar > menu {
+    appearance: none;
+    color: inherit;
+  }
+}
+
+@media (-moz-windows-default-theme: 0) {
+  #menubar-items > #mail-menubar > menu[_moz-menuactive="true"] {
+    color: -moz-MenuHoverText;
+  }
+}
+
 #tabbar-toolbar[customizing="true"] {
   min-width: 24px;
 }
@@ -455,8 +469,8 @@ treechildren::-moz-tree-indentation {
     background-color: transparent;
   }
 
-  :root:not(:-moz-lwtheme) tree:not(#threadTree) > treechildren::-moz-tree-row(selected),
-  :root:not(:-moz-lwtheme) #threadTree > treechildren::-moz-tree-row(untagged, selected) {
+  :root:not(:-moz-lwtheme) treechildren::-moz-tree-row(selected) {
+    border-color: transparent;
     background-color: -moz-cellhighlight;
   }
 
@@ -660,19 +674,6 @@ menulist > menupopup:not([is="folder-menupopup"]) > menuseparator {
   background-image: linear-gradient(transparent 40px, -moz-dialog 40px);
 }
 
-findbar {
-  background-color: var(--toolbar-non-lwt-bgcolor);
-  color: var(--toolbar-non-lwt-textcolor);
-  text-shadow: none;
-}
-
-:root:not([lwtheme-image]) findbar:-moz-lwtheme {
-  background-color: var(--lwt-accent-color);
-  background-image: linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor));
-  border-top-color: var(--chrome-content-separator-color);
-  color: var(--toolbar-color);
-}
-
 /* ::::: groupbox ::::: */
 
 fieldset {
diff --git a/comm/mail/themes/windows/mail/primaryToolbar.css b/comm/mail/themes/windows/mail/primaryToolbar.css
index f917684003ddb49680c4436b2044dc441aa1b418..b4cc19afe57784c61b0588fe201cc12ca27f87d1 100644
--- a/comm/mail/themes/windows/mail/primaryToolbar.css
+++ b/comm/mail/themes/windows/mail/primaryToolbar.css
@@ -29,11 +29,6 @@
 }
 
 @media (-moz-os-version: windows-win10) and (-moz-windows-default-theme) {
-  #menubar-items > #mail-menubar > menu {
-    appearance: none;
-    border-style: none;
-  }
-
   #menubar-items > #mail-menubar > menu[disabled="true"] {
     background-color: transparent;
   }
@@ -218,13 +213,6 @@
   }
 }
 
-@media (-moz-windows-default-theme: 0) {
-  #messengerWindow[tabsintitlebar] #mail-menubar > menu {
-    appearance: none;
-    color: inherit;
-  }
-}
-
 @media (-moz-windows-compositor) and (-moz-windows-default-theme) {
   #navigation-toolbox:not(:-moz-lwtheme),
   #tabs-toolbar {
@@ -318,20 +306,6 @@
   }
 }
 
-@media (-moz-os-version: windows-win8),
-       (-moz-os-version: windows-win10) {
-  @media (-moz-windows-default-theme: 0) {
-    #messengerWindow:not([tabsintitlebar]) #mail-menubar >
-      menu:not(:-moz-lwtheme) {
-      color: inherit;
-    }
-
-    #messengerWindow:not([tabsintitlebar]) #mail-menubar > menu {
-      appearance: none;
-    }
-  }
-}
-
 @media (-moz-os-version: windows-win8) and (-moz-windows-default-theme),
        (-moz-os-version: windows-win10) and (-moz-windows-default-theme) {
   #navigation-toolbox > #mail-toolbar-menubar2 {
diff --git a/comm/mailnews/addrbook/modules/VCardUtils.jsm b/comm/mailnews/addrbook/modules/VCardUtils.jsm
index 5917d14d8e76e749ef7c0d20d5d5c3b08dbce1d8..1175302927400680bdc8f662efa7e6dce1dfa2bc 100644
--- a/comm/mailnews/addrbook/modules/VCardUtils.jsm
+++ b/comm/mailnews/addrbook/modules/VCardUtils.jsm
@@ -333,7 +333,7 @@ VCardMimeConverter.prototype = {
       <body>
         <table class="moz-vcard-table">
           <tr>
-            <td valign="top"><a class="moz-vcard-badge" href="data:text/x-vcard,${escapedVCard}"></a></td>
+            <td valign="top"><a class="moz-vcard-badge" href="data:text/vcard,${escapedVCard}"></a></td>
             <td>
               ${propertiesTable}
             </td>
diff --git a/comm/mailnews/base/prefs/content/AccountManager.js b/comm/mailnews/base/prefs/content/AccountManager.js
index ab7328d59b90c6d7c6c36b38dd87d1c87a155486..e70f43874c6eb29f783615d186d95332ef7b4e5c 100644
--- a/comm/mailnews/base/prefs/content/AccountManager.js
+++ b/comm/mailnews/base/prefs/content/AccountManager.js
@@ -875,16 +875,22 @@ function setAccountLabel(aAccountKey, aAccountNode, aLabel) {
 
 /**
  * Notify the UI to rebuild the account tree.
+ *
+ * @param {boolean} [reloadAccountManager=true] - When set to false, the
+ *   account manager for the current window is not reloaded.
  */
-function rebuildAccountTree() {
+function rebuildAccountTree(reloadAccountManager = true) {
+  const mostRecent3Pane = Services.wm.getMostRecentWindow("mail:3pane");
   for (let win of Services.wm.getEnumerator("mail:3pane")) {
     win.gFolderTreeView._rebuild();
-    let tabmail = win.document.getElementById("tabmail");
-    for (let tabInfo of tabmail.tabInfo) {
-      let tab = tabmail.getTabForBrowser(tabInfo.browser);
-      if (tab && tab.urlbar && tab.urlbar.value == "about:accountsettings") {
-        tab.browser.reload();
-        return;
+    if (reloadAccountManager || win !== mostRecent3Pane) {
+      let tabmail = win.document.getElementById("tabmail");
+      for (let tabInfo of tabmail.tabInfo) {
+        let tab = tabmail.getTabForBrowser(tabInfo.browser);
+        if (tab && tab.urlbar && tab.urlbar.value == "about:accountsettings") {
+          tab.browser.reload();
+          break;
+        }
       }
     }
   }
@@ -1740,7 +1746,7 @@ function accountReordered() {
   }
 
   MailServices.accounts.reorderAccounts(accountIds);
-  rebuildAccountTree();
+  rebuildAccountTree(false);
 }
 
 var gAccountTree = {
@@ -1828,6 +1834,21 @@ var gAccountTree = {
       return null;
     }
 
+    function getElementIndex(treeItem) {
+      let index = 0;
+      for (let childElement of mainTree.children) {
+        if (childElement === treeItem) {
+          return index;
+        }
+        if (childElement.getAttribute("open") == "true") {
+          index += childElement.querySelectorAll("treerow").length;
+        } else {
+          index++;
+        }
+      }
+      return -1;
+    }
+
     // By default, data/elements cannot be dropped in other elements.
     // To allow a drop, we must prevent the default handling of the element.
     accountTree.addEventListener("dragover", event => {
@@ -1855,6 +1876,8 @@ var gAccountTree = {
         if (dragId != dropItem.getAttribute("id")) {
           let dragItem = mainTree.querySelector("#" + dragId);
           mainTree.insertBefore(dragItem, dropItem);
+          accountTree.view.selection.clearSelection();
+          accountTree.view.selection.select(getElementIndex(dragItem));
           accountReordered();
         }
       }
@@ -1885,8 +1908,10 @@ var gAccountTree = {
             treeItem.nextElementSibling != mainTree.lastElementChild
           ) {
             mainTree.insertBefore(treeItem.nextElementSibling, treeItem);
+            accountTree.view.selection.clearSelection();
+            accountTree.view.selection.select(getElementIndex(treeItem));
+            accountReordered();
           }
-          accountReordered();
         } else if (
           event.code == "ArrowUp" &&
           event.altKey &&
@@ -1895,8 +1920,10 @@ var gAccountTree = {
           let treeItem = mainTree.querySelector("#" + getCurrentAccount().key);
           if (treeItem && treeItem.previousElementSibling) {
             mainTree.insertBefore(treeItem, treeItem.previousElementSibling);
+            accountTree.view.selection.clearSelection();
+            accountTree.view.selection.select(getElementIndex(treeItem));
+            accountReordered();
           }
-          accountReordered();
         }
       },
       true
diff --git a/comm/mailnews/base/src/MailNotificationManager.jsm b/comm/mailnews/base/src/MailNotificationManager.jsm
index 77166f3656fd91b62334e6b0777b53f955ee9ec5..dc6f02f7bdeb5e12099045cb8634275a9ccec021 100644
--- a/comm/mailnews/base/src/MailNotificationManager.jsm
+++ b/comm/mailnews/base/src/MailNotificationManager.jsm
@@ -407,6 +407,14 @@ class MailNotificationManager {
   }
 
   async _updateUnreadCount() {
+    if (this._updatingUnreadCount) {
+      // _updateUnreadCount can be triggered faster than we finish rendering the
+      // badge. When that happens, set a flag and return.
+      this._pendingUpdate = true;
+      return;
+    }
+    this._updatingUnreadCount = true;
+
     this._logger.debug(
       `Update unreadMailCount=${this._unreadMailCount}, unreadChatCount=${this._unreadChatCount}`
     );
@@ -421,9 +429,18 @@ class MailNotificationManager {
           count,
         });
       }
-      WinUnreadBadge.updateUnreadCount(count, tooltip);
+      await WinUnreadBadge.updateUnreadCount(count, tooltip);
     }
     this._osIntegration?.updateUnreadCount(count, tooltip);
+
+    this._updatingUnreadCount = false;
+    if (this._pendingUpdate) {
+      // There was at least one _updateUnreadCount call while we were rendering
+      // the badge. Render one more time will ensure the badge reflects the
+      // current state.
+      this._pendingUpdate = false;
+      this._updateUnreadCount();
+    }
   }
 
   _animateDockIcon() {
diff --git a/comm/mailnews/base/src/VirtualFolderWrapper.jsm b/comm/mailnews/base/src/VirtualFolderWrapper.jsm
index 37c4c631ef1abe704dbc9f05fd925d04bfe418d2..7e7c41177c74e2b95f292727fc2c53e9ae3ba4f4 100644
--- a/comm/mailnews/base/src/VirtualFolderWrapper.jsm
+++ b/comm/mailnews/base/src/VirtualFolderWrapper.jsm
@@ -118,16 +118,11 @@ VirtualFolderWrapper.prototype = {
    *     search over.
    */
   get searchFolders() {
-    let virtualFolderUris = this.dbFolderInfo
+    return this.dbFolderInfo
       .getCharProperty("searchFolderUri")
-      .split("|");
-    let folders = [];
-    for (let folderURI of virtualFolderUris) {
-      if (folderURI) {
-        folders.push(MailUtils.getExistingFolder(folderURI));
-      }
-    }
-    return folders;
+      .split("|")
+      .map(uri => MailUtils.getExistingFolder(uri))
+      .filter(Boolean);
   },
   /**
    * Set the search folders that back this virtual folder.
diff --git a/comm/mailnews/compose/src/MimeEncoder.jsm b/comm/mailnews/compose/src/MimeEncoder.jsm
index c3a7703040706b915f5586a8c233055aa192cc0c..046eff6c8c9114d3dbf665b404352e73a144ecfd 100644
--- a/comm/mailnews/compose/src/MimeEncoder.jsm
+++ b/comm/mailnews/compose/src/MimeEncoder.jsm
@@ -131,7 +131,7 @@ class MimeEncoder {
         this._charset &&
         isCharsetMultiByte &&
         (this._contentType.startsWith("text") ||
-          // text/x-vcard synonym
+          // text/vcard synonym
           this._contentType == "application/directory")
       ) {
         needsB64 = true;
diff --git a/comm/mailnews/compose/src/SmtpClient.jsm b/comm/mailnews/compose/src/SmtpClient.jsm
index 2066de5d213b78a6c1588d648dd477bd1720cd4d..6b5c86e3fd84334f65a04550a51c6cb6d2cc76d0 100644
--- a/comm/mailnews/compose/src/SmtpClient.jsm
+++ b/comm/mailnews/compose/src/SmtpClient.jsm
@@ -245,12 +245,17 @@ class SmtpClient {
       cmd += " BODY=8BITMIME";
     }
     if (this._capabilities.includes("SMTPUTF8")) {
-      cmd += " SMTPUTF8";
+      // Should not send SMTPUTF8 if all ascii, see RFC6531.
+      // eslint-disable-next-line no-control-regex
+      let ascii = /^[\x00-\x7F]+$/;
+      if ([envelope.from, ...envelope.to].some(x => !ascii.test(x))) {
+        cmd += " SMTPUTF8";
+      }
     }
     if (this._capabilities.includes("SIZE")) {
       cmd += ` SIZE=${this._envelope.size}`;
     }
-    if (this._capabilities.includes("DSN")) {
+    if (this._capabilities.includes("DSN") && this._envelope.requestDSN) {
       let ret = Services.prefs.getBoolPref("mail.dsn.ret_full_on")
         ? "FULL"
         : "HDRS";
diff --git a/comm/mailnews/compose/src/SmtpServer.jsm b/comm/mailnews/compose/src/SmtpServer.jsm
index 06c0ef2cebf4c9e447059e041e8d89e9fd3beab8..19b26308003cf9f5f2a534b7cb884a3974dc3225 100644
--- a/comm/mailnews/compose/src/SmtpServer.jsm
+++ b/comm/mailnews/compose/src/SmtpServer.jsm
@@ -50,15 +50,15 @@ SmtpServer.prototype = {
   },
 
   get description() {
-    return this._prefs.getCharPref("description", "");
+    return this._prefs.getStringPref("description", "");
   },
 
   set description(value) {
-    this._setCharPref("description", value);
+    this._prefs.setStringPref("description", value);
   },
 
   get hostname() {
-    return this._prefs.getCharPref("hostname", "");
+    return this._prefs.getStringPref("hostname", "");
   },
 
   set hostname(value) {
@@ -67,7 +67,7 @@ SmtpServer.prototype = {
       // host.
       this.forgetPassword();
     }
-    this._setCharPref("hostname", value);
+    this._prefs.setStringPref("hostname", value);
   },
 
   get port() {
diff --git a/comm/mailnews/compose/src/nsMsgAttachmentHandler.cpp b/comm/mailnews/compose/src/nsMsgAttachmentHandler.cpp
index e7e70874a5b7f29c1f11e309a8d18bfb5cb836db..252faf2880641e74513f69054af444fd333eee18 100644
--- a/comm/mailnews/compose/src/nsMsgAttachmentHandler.cpp
+++ b/comm/mailnews/compose/src/nsMsgAttachmentHandler.cpp
@@ -371,7 +371,7 @@ nsresult nsMsgAttachmentHandler::PickEncoding(nsIMsgSend* mime_delivery_state) {
                        m_type.LowerCaseEqualsLiteral(TEXT_ENRICHED) ||
                        m_type.LowerCaseEqualsLiteral(TEXT_VCARD) ||
                        m_type.LowerCaseEqualsLiteral(
-                           APPLICATION_DIRECTORY) || /* text/x-vcard synonym */
+                           APPLICATION_DIRECTORY) || /* text/vcard synonym */
                        m_type.LowerCaseEqualsLiteral(TEXT_CSS) ||
                        m_type.LowerCaseEqualsLiteral(TEXT_JSSS))) {
       needsB64 = true;
diff --git a/comm/mailnews/compose/src/nsMsgCompUtils.cpp b/comm/mailnews/compose/src/nsMsgCompUtils.cpp
index 84a06cb9c8d183802398804fc1a371341335d9ac..2bea1726a869c9c2e101f165b0ba280217d525cd 100644
--- a/comm/mailnews/compose/src/nsMsgCompUtils.cpp
+++ b/comm/mailnews/compose/src/nsMsgCompUtils.cpp
@@ -568,7 +568,7 @@ char* mime_generate_attachment_headers(
           (PL_strcasecmp(type, TEXT_ENRICHED) == 0) ||
           (PL_strcasecmp(type, TEXT_VCARD) == 0) ||
           (PL_strcasecmp(type, APPLICATION_DIRECTORY) ==
-           0) || /* text/x-vcard synonym */
+           0) || /* text/vcard synonym */
           (PL_strcasecmp(type, TEXT_CSS) == 0) ||
           (PL_strcasecmp(type, TEXT_JSSS) == 0)) ||
          (PL_strcasecmp(encoding, ENCODING_BASE64) != 0)) &&
@@ -679,7 +679,7 @@ char* mime_generate_attachment_headers(
     else if (!PL_strcasecmp(type, APPLICATION_OCTET_STREAM) ||
              !PL_strcasecmp(type, TEXT_VCARD) ||
              !PL_strcasecmp(type,
-                            APPLICATION_DIRECTORY)) /* text/x-vcard synonym */
+                            APPLICATION_DIRECTORY)) /* text/vcard synonym */
       buf.AppendLiteral("attachment");
     else
       buf.AppendLiteral("inline");
diff --git a/comm/mailnews/compose/src/nsMsgCompose.cpp b/comm/mailnews/compose/src/nsMsgCompose.cpp
index fd26ea95fb3cae1ca6bc9c03021745caba4c9aff..fa694a24e8f0b874cd1db6803fae4623f03d9e4e 100644
--- a/comm/mailnews/compose/src/nsMsgCompose.cpp
+++ b/comm/mailnews/compose/src/nsMsgCompose.cpp
@@ -1177,7 +1177,7 @@ NS_IMETHODIMP nsMsgCompose::SendMsg(MSG_DeliverMode deliverMode,
 
     if (NS_SUCCEEDED(rv) && !escapedVCard.IsEmpty()) {
       nsCString vCardUrl;
-      vCardUrl = "data:text/x-vcard;charset=utf-8;base64,";
+      vCardUrl = "data:text/vcard;charset=utf-8;base64,";
       nsCString unescapedData;
       MsgUnescapeString(escapedVCard, 0, unescapedData);
       char* result = PL_Base64Encode(unescapedData.get(), 0, nullptr);
@@ -1331,8 +1331,7 @@ NS_IMETHODIMP nsMsgCompose::CloseWindow(void) {
       // Set it to null to be sure we won't use it anymore.
       m_editor = nullptr;
     }
-    nsIBaseWindow* window = m_baseWindow;
-    m_baseWindow = nullptr;
+    nsCOMPtr<nsIBaseWindow> window = m_baseWindow.forget();
     rv = window->Destroy();
   }
 
diff --git a/comm/mailnews/compose/test/unit/test_smtpServer.js b/comm/mailnews/compose/test/unit/test_smtpServer.js
index 2d50d9dddeacce8e03f8bf1f4c31d748a48c013f..6612685ad36889e00391be861d641e7d6ab6eea0 100644
--- a/comm/mailnews/compose/test/unit/test_smtpServer.js
+++ b/comm/mailnews/compose/test/unit/test_smtpServer.js
@@ -22,3 +22,19 @@ add_task(async function test_passwordmgr_change() {
   Services.logins.setLoginSavingEnabled("smtp://localhost", false);
   equal(server.password, "", "Password should be cleared.");
 });
+
+/**
+ * Test getter/setter of attributes.
+ */
+add_task(async function test_attributes() {
+  // Create an nsISmtpServer instance and set a password.
+  let server = Cc["@mozilla.org/messenger/smtp/server;1"].createInstance(
+    Ci.nsISmtpServer
+  );
+
+  server.description = "アイウ";
+  equal(server.description, "アイウ", "Description should be correctly set.");
+
+  server.hostname = "サービス.jp";
+  equal(server.hostname, "サービス.jp", "Hostname should be correctly set.");
+});
diff --git a/comm/mailnews/db/gloda/test/unit/test_mime_attachments_size.js b/comm/mailnews/db/gloda/test/unit/test_mime_attachments_size.js
index b221a4ddeb941c0161547729e690c43bc9d163a2..eb2f038a57e1b029dea92dc87b9816e84ff02728 100644
--- a/comm/mailnews/db/gloda/test/unit/test_mime_attachments_size.js
+++ b/comm/mailnews/db/gloda/test/unit/test_mime_attachments_size.js
@@ -166,7 +166,7 @@ var relImage = {
 
 var tachVCard = {
   filename: "bob.vcf",
-  contentType: "text/x-vcard",
+  contentType: "text/vcard",
   encoding: "7bit",
   body: "begin:vcard\nfn:Bob\nend:vcard\n",
 };
diff --git a/comm/mailnews/db/gloda/test/unit/test_mime_emitter.js b/comm/mailnews/db/gloda/test/unit/test_mime_emitter.js
index f19874ad99539b8bd54741e864d72ed2b3483476..a8850e3ecf5a7c944597b707974bb51bd3dcb2ad 100644
--- a/comm/mailnews/db/gloda/test/unit/test_mime_emitter.js
+++ b/comm/mailnews/db/gloda/test/unit/test_mime_emitter.js
@@ -125,7 +125,7 @@ var partRelImage = new SyntheticPartLeaf(relImage.body, relImage);
 
 var tachVCard = {
   filename: "bob.vcf",
-  contentType: "text/x-vcard",
+  contentType: "text/vcard",
   encoding: "7bit",
   body: "begin:vcard\nfn:Bob\nend:vcard\n",
 };
diff --git a/comm/mailnews/mime/src/mimedrft.cpp b/comm/mailnews/mime/src/mimedrft.cpp
index 521c047b766e933225feb0685607dcaf55bdd556..edbd2092cbcd432d21cbd99b977d832dc953e183 100644
--- a/comm/mailnews/mime/src/mimedrft.cpp
+++ b/comm/mailnews/mime/src/mimedrft.cpp
@@ -473,7 +473,8 @@ static nsMsgAttachmentData* mime_draft_process_attachments(
     else
       tmpFile = mdd->attachments[attachmentsIndex++];
 
-    if (tmpFile->m_type.LowerCaseEqualsLiteral("text/x-vcard"))
+    if (tmpFile->m_type.LowerCaseEqualsLiteral("text/vcard") ||
+        tmpFile->m_type.LowerCaseEqualsLiteral("text/x-vcard"))
       tmp->m_realName = tmpFile->m_description;
 
     if (tmpFile->m_origUrl) {
diff --git a/comm/mailnews/mime/src/mimei.cpp b/comm/mailnews/mime/src/mimei.cpp
index c24849d735e6135a5cd63694adf90061a3fad53e..f262d72c8133a9f1282ff40a958f411039abfabc 100644
--- a/comm/mailnews/mime/src/mimei.cpp
+++ b/comm/mailnews/mime/src/mimei.cpp
@@ -441,7 +441,8 @@ MimeObjectClass* mime_find_class(const char* content_type, MimeHeaders* hdrs,
 #endif
 
     if (types_of_classes_to_disallow > 0 &&
-        !PL_strncasecmp(content_type, "text/x-vcard", 12))
+        (!PL_strncasecmp(content_type, "text/vcard", 10) ||
+         !PL_strncasecmp(content_type, "text/x-vcard", 12)))
     /* Use a little hack to prevent some dangerous plugins, which ship
        with Mozilla, to run.
        For the truly user-installed plugins, we rely on the judgement
diff --git a/comm/mailnews/mime/src/mimemult.cpp b/comm/mailnews/mime/src/mimemult.cpp
index a2471a5036f49ede251dfe5abd7d4cb1fb90c49c..237d62ff93e196fce8cbb9c04b7b2732a532926c 100644
--- a/comm/mailnews/mime/src/mimemult.cpp
+++ b/comm/mailnews/mime/src/mimemult.cpp
@@ -437,7 +437,8 @@ static int MimeMultipart_create_child(MimeObject* obj) {
         !mime_typep(body, (MimeObjectClass*)&mimeMultipartClass) &&
         !((mime_typep(body, (MimeObjectClass*)&mimeExternalObjectClass) ||
            mime_typep(body, (MimeObjectClass*)&mimeSuppressedCryptoClass)) &&
-          !strcmp(body->content_type, "text/x-vcard"))) {
+          (!strcmp(body->content_type, "text/vcard") ||
+           !strcmp(body->content_type, "text/x-vcard")))) {
       status = obj->options->decompose_file_init_fn(
           obj->options->stream_closure, mult->hdrs);
       if (status < 0) return status;
@@ -525,7 +526,8 @@ static int MimeMultipart_close_child(MimeObject* object) {
             !mime_typep(kid, (MimeObjectClass *)&mimeMultipartClass) &&
             !((mime_typep(kid, (MimeObjectClass *)&mimeExternalObjectClass) ||
                mime_typep(kid, (MimeObjectClass *)&mimeSuppressedCryptoClass)) &&
-              !strcmp(kid->content_type, "text/x-vcard"))) {
+              (!strcmp(kid->content_type, "text/vcard") ||
+               !strcmp(kid->content_type, "text/x-vcard")))) {
           status = object->options->decompose_file_close_fn(
               object->options->stream_closure);
           if (status < 0) return status;
@@ -568,7 +570,8 @@ static int MimeMultipart_parse_child_line(MimeObject* obj, const char* line,
         !mime_typep(kid, (MimeObjectClass*)&mimeMultipartClass) &&
         !((mime_typep(kid, (MimeObjectClass*)&mimeExternalObjectClass) ||
            mime_typep(kid, (MimeObjectClass*)&mimeSuppressedCryptoClass)) &&
-          !strcmp(kid->content_type, "text/x-vcard")))
+          (!strcmp(kid->content_type, "text/vcard") ||
+           !strcmp(kid->content_type, "text/x-vcard"))))
       return obj->options->decompose_file_output_fn(
           line, length, obj->options->stream_closure);
   }
diff --git a/comm/third_party/README.rnp b/comm/third_party/README.rnp
index e80645e0540742c449e5505f25265e457caa1b81..7dae5c298c24150b4684470fc8376495fb52aee8 100644
--- a/comm/third_party/README.rnp
+++ b/comm/third_party/README.rnp
@@ -1,7 +1,7 @@
 Directory ./rnp contains a copy of rnp which has been obtained from:
 https://github.com/rnpgp/rnp
 
-[commit 1af627eb7d9ade84ae95078d87280ded40a91e1d]
+[commit dd923a4e1375a01cf3e8dab7b97be96dde9f94b3]
 
 For licensing information, please refer to the included documentation.
 
diff --git a/comm/third_party/rnp/CHANGELOG.md b/comm/third_party/rnp/CHANGELOG.md
index 202204102d01853fe8fbeb6abb8d0d9b3eb7c2d0..528d8a96e054077ebc738a9309a34194018c1706 100644
--- a/comm/third_party/rnp/CHANGELOG.md
+++ b/comm/third_party/rnp/CHANGELOG.md
@@ -1,5 +1,25 @@
 ## Changelog
 
+### 0.15.2 [2021-07-20]
+
+#### General
+
+* Be less strict in userid validation: allow to use userids with self-signature, which has key expiration in the past.
+* Do not mark signature as invalid if key which produced it is expired now, but was valid during signing.
+* Fix incorrect key expiration calculation in some cases.
+* Fix incorrect version number in the `version.txt`.
+
+#### FFI
+
+* Add function `rnp_key_get_default_key()` to pick the default key/subkey for the specific operation.
+* Allow to pass NULL hash parameter to `rnp_key_add_uid()` to pick the default one.
+* Use the same approach as in `rnp_op_encrypt_add_recipient()` for encryption subkey selection in `rnp_key_export_autocrypt()`.
+
+#### CLI
+
+* `rnp`: Show error message if encryption failed.
+* `rnpkeys` : Add `--expiration` option to specify expiration time during key generation.
+
 ### 0.15.1 [2021-05-28]
 
 #### General
diff --git a/comm/third_party/rnp/docs/develop/release-workflow.adoc b/comm/third_party/rnp/docs/develop/release-workflow.adoc
index 43d5bed4afc664b0d934923bce534b3dce3f58ca..95e6b6736f9bed214b2bebc2a2035bb570f806fb 100644
--- a/comm/third_party/rnp/docs/develop/release-workflow.adoc
+++ b/comm/third_party/rnp/docs/develop/release-workflow.adoc
@@ -1,43 +1,43 @@
 = Releases
 
-== General Notes
+== General notes
 
 * Avoid tagging commits in the `master` branch.
 * Release branches should have annotated tags and a CHANGELOG.md.
 * The steps below detail creation of a brand new 1.0.0 release.
   Some steps would be omitted for minor releases.
 
-== Creating an Initial Release
+== Creating an initial release
 
-=== Update the Documentation
+=== Update documentation
 
 Update references to version numbers in relevant documentation to the new
 version you intend to release.
 
 [source,console]
---
+----
 git checkout master
 vim docs/installation.adoc
 git add docs/installation.adoc
 git commit
 git push
---
+----
 
-=== Create the Branch
+=== Create branch
 
 Release branches have names of the form `release/N.x`, where N is the major
-version (and x is a literal -- not a placeholder).
+version (and `x` is a literal -- not a placeholder).
 
 [source,console]
---
+----
 git checkout -b release/1.x master
---
+----
 
 [[update-changelog-and-version]]
 === Update CHANGELOG and version
 
 [source,console]
---
+----
 vim CHANGELOG.md
 # Add/update CHANGELOG entry for the new version
 git add CHANGELOG.md
@@ -46,36 +46,49 @@ echo 1.0.0 > version.txt
 git add -f version.txt
 
 git commit
---
+----
 
-=== Create a Tag
+=== Create tag
 
 An initial release would be tagged as follows:
 
 [source,console]
---
+----
 git tag -a v1.0.0 -m ''
---
+----
 
-=== Push
+=== Push branch and tag
 
 [source,console]
---
+----
 # push the branch
 git push origin release/1.x
 
 # push the tag
 git push origin v1.0.0
---
+----
 
-== Creating a New Release
+=== Edit tagged release description on GitHub
 
-Maintaining a release branch involves cherry-picking hotfixes and similar commits
-from the `master` branch, while following the rules for Semantic Versioning.
+. Navigate to the link:#https://github.com/rnpgp/rnp/releases[Releases] page;
+
+. Edit the tag that was just pushed;
+
+. Fill the tag's description with data from the corresponding `CHANGELOG`
+  entries of the same tag version;
+
+. Publish the release.
+
+
+== Creating a new release
+
+Maintaining a release branch involves cherry-picking hotfixes and
+similar commits from the `master` branch, while following the rules for
+Semantic Versioning.
 
 The steps below will show the release of version 1.0.1.
 
-=== Add the Desired Changes
+=== Add desired changes
 
 Cherry-pick the appropriate commits into the appropriate `release/N.x` branch.
 
@@ -83,25 +96,27 @@ To see what commits are in `master` that are not in the release branch, you
 can observe the lines starting with `+` in:
 
 [source,console]
---
+----
 git cherry -v release/1.x master
---
+----
 
 It is often useful to pick a range of commits. For example:
 
 [source,console]
---
+----
 git checkout release/0.x
 git cherry-pick a57b36f^..e23352c
---
+----
 
-If there are merge commits in this range, this will not work. Instead, try:
+If there are merge commits in this range, this will not work.
+Instead, try:
 
 [source,console]
---
+----
 git checkout release/0.x
-git cherry release/0.x master | grep '^+ ' | cut -c 3-9 | while read commit; do git cherry-pick $commit; done
---
+git cherry release/0.x master | grep '^+ ' | cut -c 3-9 | \
+  while read commit; do git cherry-pick $commit; done
+----
 
 From here, you can follow the steps for an initial release,
-starting with link:#update-changelog-and-version[Update CHANGELOG and version].
+starting with <<update-changelog-and-version>>.
diff --git a/comm/third_party/rnp/docs/installation.adoc b/comm/third_party/rnp/docs/installation.adoc
index 547d909c07d3ed01f53904354e7bf6860c96b0bb..c20e51fb51af391b0d7f6d0abe0033b38aec9ee2 100644
--- a/comm/third_party/rnp/docs/installation.adoc
+++ b/comm/third_party/rnp/docs/installation.adoc
@@ -34,7 +34,7 @@ Prerequisite: please ensure `git` is installed on the system.
 [source,console]
 ----
 # Clone the repository by version tag (or omit it to get the latest sources)
-git clone https://github.com/rnpgp/rnp.git -b v0.15.1
+git clone https://github.com/rnpgp/rnp.git -b v0.15.2
 
 # Install required packages
 sudo apt install g++-8 cmake libbz2-dev zlib1g-dev libjson-c-dev \
@@ -70,7 +70,7 @@ Prerequisite: please ensure `git` is installed on the system.
 [source,console]
 ----
 # Clone the repository by version tag (or omit it to get the latest sources)
-git clone https://github.com/rnpgp/rnp.git -b v0.15.1
+git clone https://github.com/rnpgp/rnp.git -b v0.15.2
 
 # Enable access to `testing` packages by editing /etc/apt/sources.list
 # deb http://deb.debian.org/debian testing main
diff --git a/comm/third_party/rnp/include/rnp/rnp.h b/comm/third_party/rnp/include/rnp/rnp.h
index cd4a0f1379160f4a967e3d2218913ecfca878495..9682dbfa22563f9aa82e25d661bf31018b99e7c3 100644
--- a/comm/third_party/rnp/include/rnp/rnp.h
+++ b/comm/third_party/rnp/include/rnp/rnp.h
@@ -96,6 +96,11 @@ typedef uint32_t rnp_result_t;
 #define RNP_OUTPUT_FILE_OVERWRITE (1U << 0)
 #define RNP_OUTPUT_FILE_RANDOM (1U << 1)
 
+/**
+ * Flags for default key selection.
+ */
+#define RNP_KEY_SUBKEYS_ONLY (1U << 0)
+
 /**
  * User id type
  */
@@ -995,13 +1000,15 @@ RNP_API rnp_result_t rnp_key_remove_signatures(rnp_key_handle_t      key,
                                                rnp_key_signatures_cb sigcb,
                                                void *                app_ctx);
 
-/** guess contents of the OpenPGP data stream.
- *
+/**
+ * @brief Guess contents of the OpenPGP data stream.
+ *        Note: This call just peeks data from the stream, so stream is still usable for
+ *              the further processing.
  * @param input stream with data. Must be opened and cannot be NULL.
  * @param contents string with guessed data format will be stored here.
  *                 Possible values: 'message', 'public key', 'secret key', 'signature',
- * 'unknown'. May be used as type in rnp_enarmor() function. Must be deallocated with
- * rnp_buffer_destroy() call.
+ *                 'unknown'. May be used as type in rnp_enarmor() function. Must be
+ *                 deallocated with rnp_buffer_destroy() call.
  * @return RNP_SUCCESS on success, or any other value on error.
  */
 RNP_API rnp_result_t rnp_guess_contents(rnp_input_t input, char **contents);
@@ -1097,8 +1104,11 @@ RNP_API rnp_result_t rnp_uid_get_data(rnp_uid_handle_t uid, void **data, size_t
  */
 RNP_API rnp_result_t rnp_uid_is_primary(rnp_uid_handle_t uid, bool *primary);
 
-/** Get userid validity status. Userid is considered as valid if it has at least one
- *  valid, non-expired self-certification.
+/** Get userid validity status. Userid is considered as valid if key itself is valid, and
+ *  userid has at least one valid, non-expired self-certification.
+ *  Note: - userid still may be valid even if a primary key is invalid - expired, revoked, etc.
+ *        - up to the RNP version 0.15.1 uid was not considered as valid if it's latest
+ *          self-signature has key expiration in the past.
  *
  * @param uid user id handle.
  * @param valid validity status will be stored here on success.
@@ -1345,6 +1355,28 @@ RNP_API rnp_result_t rnp_key_get_subkey_at(rnp_key_handle_t  key,
                                            size_t            idx,
                                            rnp_key_handle_t *subkey);
 
+/** Get default key for specified usage. Accepts primary key
+ *  and returns one of its subkeys suitable for desired usage.
+ *  May return the same primary key if it is suitable for requested
+ *  usage and flag RNP_KEY_SUBKEYS_ONLY is not set.
+ *
+ *  @param primary_key handle of the primary key.
+ *  @param usage desired key usage i.e. "sign", "certify", etc,
+ *               see rnp_op_generate_add_usage() function description for all possible values.
+ *  @param flags possible values:  RNP_KEY_SUBKEYS_ONLY - select only subkeys,
+ *               otherwise if flags is 0, primary key can be returned if
+ *               it is suitable for specified usage.
+ *  @param default_key on success resulting key handle will be stored here, otherwise it
+ *                     will contain NULL value. You must free this handle after use with
+ *                     rnp_key_handle_destroy().
+ *  @return RNP_SUCCESS on success, RNP_ERROR_KEY_NOT_FOUND if no key with desired usage
+ *          was found or any other error code.
+ */
+RNP_API rnp_result_t rnp_key_get_default_key(rnp_key_handle_t  primary_key,
+                                             const char *      usage,
+                                             uint32_t          flags,
+                                             rnp_key_handle_t *default_key);
+
 /** Get the key's algorithm.
  *
  * @param key key handle
@@ -1385,7 +1417,8 @@ RNP_API rnp_result_t rnp_key_get_curve(rnp_key_handle_t key, char **curve);
  *  @param key the key to add - must be a secret key
  *  @param uid the UID to add
  *  @param hash name of the hash function to use for the uid binding
- *         signature (eg "SHA256")
+ *         signature (eg "SHA256"). If NULL, default hash algorithm
+ *         will be used.
  *  @param expiration time when this user id expires
  *  @param key_flags usage flags, see section 5.2.3.21 of RFC 4880
  *         or just provide zero to indicate no special handling.
@@ -2458,6 +2491,14 @@ RNP_API rnp_result_t rnp_op_encrypt_create(rnp_op_encrypt_t *op,
                                            rnp_input_t       input,
                                            rnp_output_t      output);
 
+/**
+ * @brief Add recipient's public key to encrypting context.
+ *
+ * @param op opaque encrypting context. Must be allocated and initialized.
+ * @param key public key, used for encryption. Key is not checked for
+ *        validity or expiration.
+ * @return RNP_SUCCESS if operation succeeds or error code otherwise.
+ */
 RNP_API rnp_result_t rnp_op_encrypt_add_recipient(rnp_op_encrypt_t op, rnp_key_handle_t key);
 
 /**
diff --git a/comm/third_party/rnp/src/common/file-utils.cpp b/comm/third_party/rnp/src/common/file-utils.cpp
index a0c948d0f8560adfec9bbfc3fc242013acd4a24d..9a434ee72c88afc5e1e4508b8276bf352d9ad678 100644
--- a/comm/third_party/rnp/src/common/file-utils.cpp
+++ b/comm/third_party/rnp/src/common/file-utils.cpp
@@ -109,6 +109,19 @@ rnp_fopen(const char *filename, const char *mode)
 #endif
 }
 
+int
+rnp_access(const char *path, int mode)
+{
+#ifdef _WIN32
+    try {
+        return _waccess(wstr_from_utf8(path).c_str(), mode);
+    }
+    CATCH_AND_RETURN(-1)
+#else
+    return access(path, mode);
+#endif
+}
+
 int
 rnp_stat(const char *filename, struct stat *statbuf)
 {
diff --git a/comm/third_party/rnp/src/common/file-utils.h b/comm/third_party/rnp/src/common/file-utils.h
index f638929a435eb775dc45fa8f59b064eee5953fd0..76fe2e4900f9d2451a14a89e7a46f2bb9ddafa5b 100644
--- a/comm/third_party/rnp/src/common/file-utils.h
+++ b/comm/third_party/rnp/src/common/file-utils.h
@@ -37,6 +37,7 @@ bool    rnp_dir_exists(const char *path);
 int64_t rnp_filemtime(const char *path);
 int     rnp_open(const char *filename, int oflag, int pmode);
 FILE *  rnp_fopen(const char *filename, const char *mode);
+int     rnp_access(const char *path, int mode);
 int     rnp_stat(const char *filename, struct stat *statbuf);
 int     rnp_rename(const char *oldpath, const char *newpath);
 int     rnp_unlink(const char *path);
@@ -57,6 +58,12 @@ std::string rnp_readdir_name(DIR *dir);
 #define RNP_MKDIR(pathname, mode) mkdir(pathname, mode)
 #endif
 
+#ifdef _MSC_VER
+#define R_OK 4 /* Test for read permission.  */
+#define W_OK 2 /* Test for write permission.  */
+#define F_OK 0 /* Test for existence.  */
+#endif
+
 char *rnp_compose_path(const char *first, ...);
 char *rnp_compose_path_ex(char **buf, size_t *buf_len, const char *first, ...);
 
diff --git a/comm/third_party/rnp/src/lib/CMakeLists.txt b/comm/third_party/rnp/src/lib/CMakeLists.txt
old mode 100644
new mode 100755
index cafeaad4a29a148871069aed199042fdf913a1bb..81531a9ee9683523776218d220c8be51b219b00c
--- a/comm/third_party/rnp/src/lib/CMakeLists.txt
+++ b/comm/third_party/rnp/src/lib/CMakeLists.txt
@@ -215,7 +215,9 @@ install(TARGETS librnp
     DESTINATION  "${CMAKE_INSTALL_LIBDIR}"
     COMPONENT runtime
     ${namelink_component}
-  ARCHIVE DESTINATION  "${CMAKE_INSTALL_LIBDIR}"
+  ARCHIVE 
+    DESTINATION  "${CMAKE_INSTALL_LIBDIR}"
+    COMPONENT development
 )
 
 # install dll only for windows
diff --git a/comm/third_party/rnp/src/lib/config.h.in b/comm/third_party/rnp/src/lib/config.h.in
index 57b9481440b2b57dd8cfb1363818b4417e5b7794..72bfdf4a07e9217141fad4e5bc37947baa6f488d 100644
--- a/comm/third_party/rnp/src/lib/config.h.in
+++ b/comm/third_party/rnp/src/lib/config.h.in
@@ -24,7 +24,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#define PACKAGE_STRING    "rnp 0.15.1+git20210530.1af627eb.MZLA"
+#define PACKAGE_STRING    "rnp 0.15.2+git20210806.dd923a4e.MZLA"
 #define PACKAGE_BUGREPORT "https://bugzilla.mozilla.org/enter_bug.cgi?product=Thunderbird"
 
 #undef HAVE_BZLIB_H
diff --git a/comm/third_party/rnp/src/lib/pgp-key.cpp b/comm/third_party/rnp/src/lib/pgp-key.cpp
index 50c4cb0b683eb0e4d2e56591ecafd10c68146045..ce54c7aa5a26234ef12b93e8b8b481493b02b630 100644
--- a/comm/third_party/rnp/src/lib/pgp-key.cpp
+++ b/comm/third_party/rnp/src/lib/pgp-key.cpp
@@ -560,13 +560,14 @@ pgp_key_t *
 find_suitable_key(pgp_op_t            op,
                   pgp_key_t *         key,
                   pgp_key_provider_t *key_provider,
-                  uint8_t             desired_usage)
+                  uint8_t             desired_usage,
+                  bool                no_primary)
 {
     assert(desired_usage);
     if (!key) {
         return NULL;
     }
-    if (key->flags() & desired_usage) {
+    if (!no_primary && key->valid() && (key->flags() & desired_usage)) {
         return key;
     }
     pgp_key_request_ctx_t ctx{.op = op, .secret = key->is_secret()};
@@ -795,6 +796,18 @@ pgp_subsig_t::is_cert() const
            (type == PGP_CERT_PERSONA) || (type == PGP_CERT_POSITIVE);
 }
 
+bool
+pgp_subsig_t::expired() const
+{
+    /* sig expiration: absence of subpkt or 0 means it never expires */
+    uint64_t expiration = sig.expiration();
+    if (!expiration) {
+        return false;
+    }
+    uint64_t now = time(NULL);
+    return expiration + sig.creation() < now;
+}
+
 pgp_userid_t::pgp_userid_t(const pgp_userid_pkt_t &uidpkt)
 {
     /* copy packet data */
@@ -937,6 +950,7 @@ pgp_key_t::pgp_key_t(const pgp_key_t &src, bool pubonly)
     revocation_ = src.revocation_;
     format = src.format;
     validity_ = src.validity_;
+    valid_till_ = src.valid_till_;
 }
 
 pgp_key_t::pgp_key_t(const pgp_transferable_key_t &src) : pgp_key_t(src.key)
@@ -1439,27 +1453,15 @@ pgp_key_t::valid_till_common(bool expiry) const
 uint64_t
 pgp_key_t::valid_till() const
 {
-    if (!is_primary()) {
-        RNP_LOG("must be called for primary key only");
-        throw rnp::rnp_exception(RNP_ERROR_BAD_STATE);
-    }
-    return valid_till_common(expired());
+    return valid_till_;
 }
 
-uint64_t
-pgp_key_t::valid_till(const pgp_key_t &primary) const
+bool
+pgp_key_t::valid_at(uint64_t timestamp) const
 {
-    if (!is_subkey()) {
-        RNP_LOG("must be called for subkey only");
-        throw rnp::rnp_exception(RNP_ERROR_BAD_STATE);
-    }
-    uint64_t till = primary.valid_till();
-    /* if primary key was never valid then subkey was not either */
-    if (!till) {
-        return till;
-    }
-    /* subkey cannot be valid longer then the primary key */
-    return std::min(till, valid_till_common(expired() || primary.expired()));
+    /* TODO: consider implementing more sophisticated checks, as key validity time could
+     * possibly be non-continuous */
+    return (timestamp >= creation()) && timestamp && (timestamp <= valid_till());
 }
 
 const pgp_key_id_t &
@@ -1930,7 +1932,7 @@ pgp_key_t::is_signer(const pgp_subsig_t &sig) const
 }
 
 bool
-pgp_key_t::is_expired(const pgp_subsig_t &sig) const
+pgp_key_t::expired_with(const pgp_subsig_t &sig) const
 {
     /* key expiration: absence of subpkt or 0 means it never expires */
     uint64_t expiration = sig.sig.key_expiration();
@@ -2093,20 +2095,20 @@ pgp_key_t::validate_primary(rnp_key_store_t &keyring)
     /* if we have direct-key signature, then it has higher priority for expiration check */
     pgp_subsig_t *dirsig = latest_selfsig(PGP_UID_NONE);
     if (dirsig) {
-        has_expired = is_expired(*dirsig);
-        has_cert = !is_expired(*dirsig);
+        has_expired = expired_with(*dirsig);
+        has_cert = !has_expired;
     }
     /* if we have primary uid and it is more restrictive, then use it as well */
     pgp_subsig_t *prisig = NULL;
     if (!has_expired && (prisig = latest_selfsig(PGP_UID_PRIMARY))) {
-        has_expired = is_expired(*prisig);
-        has_cert = !is_expired(*prisig);
+        has_expired = expired_with(*prisig);
+        has_cert = !has_expired;
     }
     /* if we don't have direct-key sig and primary uid, use the latest self-cert */
     pgp_subsig_t *latest = NULL;
     if (!dirsig && !prisig && (latest = latest_selfsig(PGP_UID_ANY))) {
-        has_expired = is_expired(*latest);
-        has_cert = !is_expired(*latest);
+        has_expired = expired_with(*latest);
+        has_cert = !has_expired;
     }
 
     /* we have at least one non-expiring key self-signature or secret key */
@@ -2132,7 +2134,7 @@ pgp_key_t::validate_primary(rnp_key_store_t &keyring)
             continue;
         }
         /* check whether subkey is expired - then do not mark key as valid */
-        if (sub->is_expired(*sig)) {
+        if (sub->expired_with(*sig)) {
             continue;
         }
         validity_.valid = true;
@@ -2163,7 +2165,7 @@ pgp_key_t::validate_subkey(pgp_key_t *primary)
 
         if (is_binding(sig) && !has_binding) {
             /* check whether subkey is expired */
-            if (is_expired(sig)) {
+            if (expired_with(sig)) {
                 has_expired = true;
                 continue;
             }
@@ -2207,6 +2209,9 @@ pgp_key_t::revalidate(rnp_key_store_t &keyring)
     }
 
     validate(keyring);
+    if (!refresh_data()) {
+        RNP_LOG("Failed to refresh key data");
+    }
     /* validate/re-validate all subkeys as well */
     for (auto &fp : subkey_fps_) {
         pgp_key_t *subkey = rnp_key_store_get_key_by_fpr(&keyring, fp);
@@ -2217,10 +2222,6 @@ pgp_key_t::revalidate(rnp_key_store_t &keyring)
             }
         }
     }
-
-    if (!refresh_data()) {
-        RNP_LOG("Failed to refresh key data");
-    }
 }
 
 void
@@ -2250,7 +2251,8 @@ pgp_key_t::refresh_data()
     }
     /* if we have primary uid and it is more restrictive, then use it as well */
     pgp_subsig_t *prisig = latest_selfsig(PGP_UID_PRIMARY);
-    if (prisig && (!expiration_ || (prisig->sig.key_expiration() < expiration_))) {
+    if (prisig && prisig->sig.key_expiration() &&
+        (!expiration_ || (prisig->sig.key_expiration() < expiration_))) {
         expiration_ = prisig->sig.key_expiration();
     }
     /* if we don't have direct-key sig and primary uid, use the latest self-cert */
@@ -2299,6 +2301,8 @@ pgp_key_t::refresh_data()
             return false;
         }
     }
+    /* valid till */
+    valid_till_ = valid_till_common(expired());
     /* userid validities */
     for (size_t i = 0; i < uid_count(); i++) {
         get_uid(i).valid = false;
@@ -2306,7 +2310,7 @@ pgp_key_t::refresh_data()
     for (size_t i = 0; i < sig_count(); i++) {
         pgp_subsig_t &sig = get_sig(i);
         /* if certification expires key then consider userid as expired too */
-        if (!sig.valid() || !sig.is_cert() || !is_signer(sig) || is_expired(sig)) {
+        if (!sig.valid() || !sig.is_cert() || !is_signer(sig) || sig.expired()) {
             continue;
         }
         if (sig.uid >= uid_count()) {
@@ -2372,6 +2376,13 @@ pgp_key_t::refresh_data(pgp_key_t *primary)
         }
         break;
     }
+    /* valid till */
+    if (primary) {
+        valid_till_ =
+          std::min(primary->valid_till(), valid_till_common(expired() || primary->expired()));
+    } else {
+        valid_till_ = valid_till_common(expired());
+    }
     return true;
 }
 
diff --git a/comm/third_party/rnp/src/lib/pgp-key.h b/comm/third_party/rnp/src/lib/pgp-key.h
index 93bbd9c9f7ecc9b13e39b85560a2b0b9e31fa10d..c1f5ec0726ea61224af8f77ffb7e342488ef9f74 100644
--- a/comm/third_party/rnp/src/lib/pgp-key.h
+++ b/comm/third_party/rnp/src/lib/pgp-key.h
@@ -109,6 +109,8 @@ typedef struct pgp_subsig_t {
     bool valid() const;
     /** @brief Returns true if signature is certification */
     bool is_cert() const;
+    /** @brief Returns true if signature is expired */
+    bool expired() const;
 } pgp_subsig_t;
 
 typedef std::unordered_map<pgp_sig_id_t, pgp_subsig_t> pgp_sig_map_t;
@@ -149,7 +151,7 @@ struct pgp_key_t {
     std::vector<pgp_userid_t> uids_{};     /* array of user ids */
     pgp_key_pkt_t             pkt_{};      /* pubkey/seckey data packet */
     uint8_t                   flags_{};    /* key flags */
-    time_t                    expiration_{}; /* key expiration time, if available */
+    uint32_t                  expiration_{}; /* key expiration time, if available */
     pgp_key_id_t              keyid_{};
     pgp_fingerprint_t         fingerprint_{};
     pgp_key_grip_t            grip_{};
@@ -163,6 +165,7 @@ struct pgp_key_t {
     bool            revoked_{};    /* key has been revoked */
     pgp_revoke_t    revocation_{}; /* revocation reason */
     pgp_validity_t  validity_{};   /* key's validity */
+    uint64_t        valid_till_{}; /* date till which key is/was valid */
 
     pgp_subsig_t *latest_uid_selfcert(uint32_t uid);
     void          validate_primary(rnp_key_store_t &keyring);
@@ -242,10 +245,10 @@ struct pgp_key_t {
 
     bool valid() const;
     bool validated() const;
-    /** @brief return time till which primary key is considered to be valid */
+    /** @brief return time till which key is considered to be valid */
     uint64_t valid_till() const;
-    /** @brief return time till which subkey is considered to be valid */
-    uint64_t valid_till(const pgp_key_t &primary) const;
+    /** @brief check whether key was/will be valid at the specified time */
+    bool valid_at(uint64_t timestamp) const;
 
     /** @brief Get key's id */
     const pgp_key_id_t &keyid() const;
@@ -356,7 +359,7 @@ struct pgp_key_t {
     bool is_signer(const pgp_subsig_t &sig) const;
 
     /** @brief Returns true if key is expired according to sig. */
-    bool is_expired(const pgp_subsig_t &sig) const;
+    bool expired_with(const pgp_subsig_t &sig) const;
 
     /** @brief Check whether signature is key's self certification. */
     bool is_self_cert(const pgp_subsig_t &sig) const;
@@ -466,6 +469,7 @@ bool pgp_subkey_set_expiration(pgp_key_t *                    sub,
  *  @param desired_usage
  *  @param key_provider the key provider. This will be used
  *         if/when subkeys are checked.
+ *  @param no_primary set true if only subkeys must be returned
  *
  *  @returns key or last created subkey with desired usage flag
  *           set or NULL if not found
@@ -473,7 +477,8 @@ bool pgp_subkey_set_expiration(pgp_key_t *                    sub,
 pgp_key_t *find_suitable_key(pgp_op_t            op,
                              pgp_key_t *         key,
                              pgp_key_provider_t *key_provider,
-                             uint8_t             desired_usage);
+                             uint8_t             desired_usage,
+                             bool                no_primary = false);
 
 /*
  *  Picks up hash algorithm according to domain parameters set
diff --git a/comm/third_party/rnp/src/lib/rnp.cpp b/comm/third_party/rnp/src/lib/rnp.cpp
index e212552d183a838b958cc2840663e51c572a71c2..2e1396d8222f8d5027a360f68a0a2526b4dca952 100644
--- a/comm/third_party/rnp/src/lib/rnp.cpp
+++ b/comm/third_party/rnp/src/lib/rnp.cpp
@@ -2317,6 +2317,9 @@ try {
                                        get_key_prefer_public(handle),
                                        &handle->ffi->key_provider,
                                        PGP_KF_ENCRYPT);
+    if (!key) {
+        key = get_key_prefer_public(handle);
+    }
     op->rnpctx.recipients.push_back(key);
     return RNP_SUCCESS;
 }
@@ -3542,24 +3545,9 @@ locator_to_str(const pgp_key_search_t *locator,
     return true;
 }
 
-rnp_result_t
-rnp_locate_key(rnp_ffi_t         ffi,
-               const char *      identifier_type,
-               const char *      identifier,
-               rnp_key_handle_t *handle)
-try {
-    // checks
-    if (!ffi || !identifier_type || !identifier || !handle) {
-        return RNP_ERROR_NULL_POINTER;
-    }
-
-    // figure out the identifier type
-    pgp_key_search_t locator = {(pgp_key_search_type_t) 0};
-    rnp_result_t     ret = str_to_locator(ffi, &locator, identifier_type, identifier);
-    if (ret) {
-        return ret;
-    }
-
+static rnp_result_t
+rnp_locate_key_int(rnp_ffi_t ffi, const pgp_key_search_t &locator, rnp_key_handle_t *handle)
+{
     // search pubring
     pgp_key_t *pub = rnp_key_store_search(ffi->pubring, &locator, NULL);
     // search secring
@@ -3579,6 +3567,27 @@ try {
     }
     return RNP_SUCCESS;
 }
+
+rnp_result_t
+rnp_locate_key(rnp_ffi_t         ffi,
+               const char *      identifier_type,
+               const char *      identifier,
+               rnp_key_handle_t *handle)
+try {
+    // checks
+    if (!ffi || !identifier_type || !identifier || !handle) {
+        return RNP_ERROR_NULL_POINTER;
+    }
+
+    // figure out the identifier type
+    pgp_key_search_t locator = {(pgp_key_search_type_t) 0};
+    rnp_result_t     ret = str_to_locator(ffi, &locator, identifier_type, identifier);
+    if (ret) {
+        return ret;
+    }
+
+    return rnp_locate_key_int(ffi, locator, handle);
+}
 FFI_GUARD
 
 rnp_result_t
@@ -3681,25 +3690,6 @@ try {
 }
 FFI_GUARD
 
-static pgp_key_t *
-find_encrypting_subkey(rnp_ffi_t ffi, const pgp_key_t &primary)
-{
-    pgp_key_search_t search = {};
-    search.type = PGP_KEY_SEARCH_FINGERPRINT;
-
-    for (auto &fp : primary.subkey_fps()) {
-        search.by.fingerprint = fp;
-        pgp_key_t *subkey = find_key(ffi, &search, KEY_TYPE_PUBLIC, true);
-        if (!subkey) {
-            subkey = find_key(ffi, &search, KEY_TYPE_SECRET, true);
-        }
-        if (subkey && subkey->valid() && subkey->can_encrypt()) {
-            return subkey;
-        }
-    }
-    return NULL;
-}
-
 rnp_result_t
 rnp_key_export_autocrypt(rnp_key_handle_t key,
                          rnp_key_handle_t subkey,
@@ -3728,9 +3718,10 @@ try {
             return RNP_ERROR_BAD_PARAMETERS;
         }
     } else {
-        sub = find_encrypting_subkey(key->ffi, *primary);
+        sub = find_suitable_key(
+          PGP_OP_ENCRYPT, primary, &key->ffi->key_provider, PGP_KF_ENCRYPT, true);
     }
-    if (!sub) {
+    if (!sub || sub->is_primary()) {
         FFI_LOG(key->ffi, "No encrypting subkey");
         return RNP_ERROR_KEY_NOT_FOUND;
     }
@@ -5568,10 +5559,14 @@ try {
     pgp_key_pkt_t *         seckey = NULL;
     pgp_key_pkt_t *         decrypted_seckey = NULL;
 
-    if (!handle || !uid || !hash) {
+    if (!handle || !uid) {
         return RNP_ERROR_NULL_POINTER;
     }
 
+    if (!hash) {
+        hash = DEFAULT_HASH_ALG;
+    }
+
     if (!str_to_hash_alg(hash, &hash_alg)) {
         FFI_LOG(handle->ffi, "Invalid hash: %s", hash);
         return RNP_ERROR_BAD_PARAMETERS;
@@ -5955,19 +5950,17 @@ FFI_GUARD
 rnp_result_t
 rnp_signature_get_signer(rnp_signature_handle_t sig, rnp_key_handle_t *key)
 try {
-    char *       keyid = NULL;
-    rnp_result_t ret = rnp_signature_get_keyid(sig, &keyid);
-    if (ret) {
-        return ret;
+    if (!sig || !sig->sig) {
+        return RNP_ERROR_BAD_PARAMETERS;
     }
-    if (!keyid) {
+    if (!sig->sig->sig.has_keyid()) {
         *key = NULL;
         return RNP_SUCCESS;
     }
-
-    ret = rnp_locate_key(sig->ffi, "keyid", keyid, key);
-    rnp_buffer_destroy(keyid);
-    return ret;
+    pgp_key_search_t locator = {};
+    locator.type = PGP_KEY_SEARCH_KEYID;
+    locator.by.keyid = sig->sig->sig.keyid();
+    return rnp_locate_key_int(sig->ffi, locator, key);
 }
 FFI_GUARD
 
@@ -6175,12 +6168,72 @@ try {
     if (idx >= key->subkey_count()) {
         return RNP_ERROR_BAD_PARAMETERS;
     }
-    const pgp_fingerprint_t &fp = key->get_subkey_fp(idx);
-    char                     fphex[PGP_FINGERPRINT_SIZE * 2 + 1] = {0};
-    if (!rnp::hex_encode(fp.fingerprint, fp.length, fphex, sizeof(fphex))) {
-        return RNP_ERROR_BAD_STATE;
+    pgp_key_search_t locator = {};
+    locator.type = PGP_KEY_SEARCH_FINGERPRINT;
+    locator.by.fingerprint = key->get_subkey_fp(idx);
+    return rnp_locate_key_int(handle->ffi, locator, subkey);
+}
+FFI_GUARD
+
+rnp_result_t
+rnp_key_get_default_key(rnp_key_handle_t  primary_key,
+                        const char *      usage,
+                        uint32_t          flags,
+                        rnp_key_handle_t *default_key)
+try {
+    if (!primary_key || !usage || !default_key) {
+        return RNP_ERROR_NULL_POINTER;
+    }
+    uint8_t keyflag = 0;
+    bool    no_primary = false;
+    if (!str_to_key_flag(usage, &keyflag)) {
+        return RNP_ERROR_BAD_PARAMETERS;
+    }
+    if (flags & RNP_KEY_SUBKEYS_ONLY) {
+        no_primary = true;
+        flags &= ~RNP_KEY_SUBKEYS_ONLY;
     }
-    return rnp_locate_key(handle->ffi, "fingerprint", fphex, subkey);
+    if (flags) {
+        FFI_LOG(primary_key->ffi, "Invalid flags: %" PRIu32, flags);
+        return RNP_ERROR_BAD_PARAMETERS;
+    }
+    pgp_key_t *key = get_key_prefer_public(primary_key);
+    if (!key) {
+        return RNP_ERROR_BAD_PARAMETERS;
+    }
+    pgp_key_t *defkey = find_suitable_key(
+      PGP_OP_UNKNOWN, key, &primary_key->ffi->key_provider, keyflag, no_primary);
+    if (!defkey) {
+        *default_key = NULL;
+        return RNP_ERROR_NO_SUITABLE_KEY;
+    }
+    pgp_key_search_t search = {(pgp_key_search_type_t) 0};
+    search.type = PGP_KEY_SEARCH_FINGERPRINT;
+    search.by.fingerprint = defkey->fp();
+
+    // search pubring
+    pgp_key_t *pub = rnp_key_store_search(primary_key->ffi->pubring, &search, NULL);
+    // search secring
+    pgp_key_t *sec = rnp_key_store_search(primary_key->ffi->secring, &search, NULL);
+
+    if (!sec && keyflag != PGP_KF_ENCRYPT) {
+        return RNP_ERROR_NO_SUITABLE_KEY;
+    }
+
+    if (pub || sec) {
+        *default_key = (rnp_key_handle_t) malloc(sizeof(**default_key));
+        if (!*default_key) {
+            return RNP_ERROR_OUT_OF_MEMORY;
+        }
+        (*default_key)->ffi = primary_key->ffi;
+        (*default_key)->pub = pub;
+        (*default_key)->sec = sec;
+        (*default_key)->locator = search;
+    } else {
+        *default_key = NULL;
+        return RNP_ERROR_NO_SUITABLE_KEY;
+    }
+    return RNP_SUCCESS;
 }
 FFI_GUARD
 
@@ -6468,7 +6521,7 @@ try {
         if (!primary->validated()) {
             return RNP_ERROR_VERIFICATION_FAILED;
         }
-        *result = key->valid_till(*primary);
+        *result = key->valid_till();
     } else {
         *result = key->valid_till();
     }
diff --git a/comm/third_party/rnp/src/lib/version.h b/comm/third_party/rnp/src/lib/version.h
index 8b00a183b03f9e5d51ab320312825c2f6fa097af..f277b0560f619bc909345851efc4527c817853f2 100644
--- a/comm/third_party/rnp/src/lib/version.h
+++ b/comm/third_party/rnp/src/lib/version.h
@@ -25,12 +25,12 @@
 
 #define RNP_VERSION_MAJOR 0
 #define RNP_VERSION_MINOR 15
-#define RNP_VERSION_PATCH 1
+#define RNP_VERSION_PATCH 2
 
-#define RNP_VERSION_STRING "0.15.1"
-#define RNP_VERSION_STRING_FULL "0.15.1+git20210530.1af627eb.MZLA"
+#define RNP_VERSION_STRING "0.15.2"
+#define RNP_VERSION_STRING_FULL "0.15.2+git20210806.dd923a4e.MZLA"
 
-#define RNP_VERSION_COMMIT_TIMESTAMP 1622347770
+#define RNP_VERSION_COMMIT_TIMESTAMP 1628243430
 
 // using a 32-bit version with 10 bits per component
 #define RNP_VERSION_COMPONENT_MASK 0x3ff
diff --git a/comm/third_party/rnp/src/librepgp/stream-armor.cpp b/comm/third_party/rnp/src/librepgp/stream-armor.cpp
index 205094d0c63d5c25d923ab71ec5eca82bdda561a..6e0458dc8035dbe28fd4da6f028422df5f7f7792 100644
--- a/comm/third_party/rnp/src/librepgp/stream-armor.cpp
+++ b/comm/third_party/rnp/src/librepgp/stream-armor.cpp
@@ -549,6 +549,7 @@ rnp_armored_guess_type_by_readahead(pgp_source_t *src)
     }
     rnp_result_t res = init_armored_src(&armorsrc, &memsrc);
     if (res) {
+        src_close(&memsrc);
         RNP_LOG("failed to parse armored data");
         return PGP_ARMORED_UNKNOWN;
     }
diff --git a/comm/third_party/rnp/src/librepgp/stream-sig.cpp b/comm/third_party/rnp/src/librepgp/stream-sig.cpp
index 64d6957e7540b09fb761a6a94cbbcc8da290de30..9bd25f8f801c997480b97aaac0ad40bd6fa08e3e 100644
--- a/comm/third_party/rnp/src/librepgp/stream-sig.cpp
+++ b/comm/third_party/rnp/src/librepgp/stream-sig.cpp
@@ -322,7 +322,7 @@ signature_check(pgp_signature_info_t *sinfo, pgp_hash_t *hash)
     }
 
     /* Validate signature itself */
-    if (sinfo->signer_valid || sinfo->signer->valid()) {
+    if (sinfo->signer_valid || sinfo->signer->valid_at(sinfo->sig->creation())) {
         sinfo->valid = !signature_validate(sinfo->sig, &sinfo->signer->material(), hash);
     } else {
         sinfo->valid = false;
diff --git a/comm/third_party/rnp/src/rnp/fficli.cpp b/comm/third_party/rnp/src/rnp/fficli.cpp
index 32224965f8725d34d4c703b84287c2bd6f5f7793..52f94aa3c8e7c637ca1c1315ea8de22b38af48a6 100644
--- a/comm/third_party/rnp/src/rnp/fficli.cpp
+++ b/comm/third_party/rnp/src/rnp/fficli.cpp
@@ -1081,6 +1081,14 @@ cli_rnp_generate_key(cli_rnp_t *rnp, const char *username)
         ERR_MSG("Failed to set key curve.");
         goto done;
     }
+    if (cfg.has(CFG_KG_PRIMARY_EXPIRATION)) {
+        uint32_t expiration = 0;
+        if (get_expiration(cfg.get_cstr(CFG_KG_PRIMARY_EXPIRATION), &expiration) ||
+            rnp_op_generate_set_expiration(genkey, expiration)) {
+            ERR_MSG("Failed to set primary key expiration.");
+            goto done;
+        }
+    }
     // TODO : set DSA qbits
     if (rnp_op_generate_set_hash(genkey, cfg.get_cstr(CFG_KG_HASH))) {
         ERR_MSG("Failed to set hash algorithm.");
@@ -1115,6 +1123,14 @@ cli_rnp_generate_key(cli_rnp_t *rnp, const char *username)
         ERR_MSG("Failed to set subkey curve.");
         goto done;
     }
+    if (cfg.has(CFG_KG_SUBKEY_EXPIRATION)) {
+        uint32_t expiration = 0;
+        if (get_expiration(cfg.get_cstr(CFG_KG_SUBKEY_EXPIRATION), &expiration) ||
+            rnp_op_generate_set_expiration(genkey, expiration)) {
+            ERR_MSG("Failed to set subkey expiration.");
+            goto done;
+        }
+    }
     // TODO : set DSA qbits
     if (rnp_op_generate_set_hash(genkey, cfg.get_cstr(CFG_KG_HASH))) {
         ERR_MSG("Failed to set hash algorithm.");
@@ -1552,6 +1568,13 @@ rnp_cfg_set_ks_info(rnp_cfg &cfg)
         defhomedir = true;
     }
 
+    struct stat st;
+
+    if (rnp_stat(homedir.c_str(), &st) || rnp_access(homedir.c_str(), R_OK | W_OK)) {
+        ERR_MSG("Home directory '%s' does not exist or is not writable!", homedir.c_str());
+        return false;
+    }
+
     /* detecting key storage format */
     std::string subdir = defhomedir ? SUBDIRECTORY_RNP : "";
     std::string pubpath;
@@ -1562,9 +1585,8 @@ rnp_cfg_set_ks_info(rnp_cfg &cfg)
         pubpath = rnp_path_compose(homedir, subdir, PUBRING_KBX);
         secpath = rnp_path_compose(homedir, subdir, SECRING_G10);
 
-        struct stat st;
-        bool        pubpath_exists = !rnp_stat(pubpath.c_str(), &st);
-        bool        secpath_exists = !rnp_stat(secpath.c_str(), &st);
+        bool pubpath_exists = !rnp_stat(pubpath.c_str(), &st);
+        bool secpath_exists = !rnp_stat(secpath.c_str(), &st);
 
         if (pubpath_exists && secpath_exists) {
             ks_format = RNP_KEYSTORE_GPG21;
@@ -2236,7 +2258,12 @@ cli_rnp_sign(const rnp_cfg &cfg, cli_rnp_t *rnp, rnp_input_t input, rnp_output_t
         goto done;
     }
     rnp_op_sign_set_creation_time(op, get_creation(cfg.get_cstr(CFG_CREATION)));
-    rnp_op_sign_set_expiration_time(op, get_expiration(cfg.get_cstr(CFG_EXPIRATION)));
+    {
+        uint32_t expiration = 0;
+        if (!get_expiration(cfg.get_cstr(CFG_EXPIRATION), &expiration)) {
+            rnp_op_sign_set_expiration_time(op, expiration);
+        }
+    }
 
     /* signing keys */
     signers = cfg.get_list(CFG_SIGNERS);
@@ -2281,6 +2308,7 @@ cli_rnp_encrypt_and_sign(const rnp_cfg &cfg,
     std::vector<rnp_key_handle_t> enckeys;
     std::vector<rnp_key_handle_t> signkeys;
     bool                          res = false;
+    rnp_result_t                  ret;
 
     rnp_op_encrypt_set_armor(op, cfg.get_bool(CFG_ARMOR));
 
@@ -2344,7 +2372,10 @@ cli_rnp_encrypt_and_sign(const rnp_cfg &cfg,
     /* adding signatures if encrypt-and-sign is used */
     if (cfg.get_bool(CFG_SIGN_NEEDED)) {
         rnp_op_encrypt_set_creation_time(op, get_creation(cfg.get_cstr(CFG_CREATION)));
-        rnp_op_encrypt_set_expiration_time(op, get_expiration(cfg.get_cstr(CFG_EXPIRATION)));
+        uint32_t expiration;
+        if (!get_expiration(cfg.get_cstr(CFG_EXPIRATION), &expiration)) {
+            rnp_op_encrypt_set_expiration_time(op, expiration);
+        }
 
         /* signing keys */
         std::vector<std::string> keynames = cfg.get_list(CFG_SIGNERS);
@@ -2365,7 +2396,11 @@ cli_rnp_encrypt_and_sign(const rnp_cfg &cfg,
     }
 
     /* execute encrypt or encrypt-and-sign operation */
-    res = !rnp_op_encrypt_execute(op);
+    ret = rnp_op_encrypt_execute(op);
+    res = (ret == RNP_SUCCESS);
+    if (ret != RNP_SUCCESS) {
+        ERR_MSG("Operation failed: %s", rnp_result_to_string(ret));
+    }
 done:
     clear_key_handles(signkeys);
     clear_key_handles(enckeys);
diff --git a/comm/third_party/rnp/src/rnp/rnp.1.adoc b/comm/third_party/rnp/src/rnp/rnp.1.adoc
index 6032a559c8d720f9d6f84680a37312fec42978df..e9c766f41a36da37e63ed4c410376b1f5c36f6d2 100644
--- a/comm/third_party/rnp/src/rnp/rnp.1.adoc
+++ b/comm/third_party/rnp/src/rnp/rnp.1.adoc
@@ -286,6 +286,7 @@ Set signature expiration time, counting from the creation time. +
 By default, signatures do not expire. +
 +
 A specific expiration time can be specified as:
+
 *** expiration date in the ISO 8601:2019 date format (_yyyy-mm-dd_); or
 *** hours/days/months/years since creation time with the syntax of _20h_/_30d_/_1m_/_1y_;
 *** number of seconds.
diff --git a/comm/third_party/rnp/src/rnp/rnpcfg.cpp b/comm/third_party/rnp/src/rnp/rnpcfg.cpp
index 9b077258ddf4646f67a71669c780f59fb4b52d45..f99d88ada91b37b5bbbc569353a98bad29923c86 100644
--- a/comm/third_party/rnp/src/rnp/rnpcfg.cpp
+++ b/comm/third_party/rnp/src/rnp/rnpcfg.cpp
@@ -28,6 +28,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/types.h>
+#include <limits.h>
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #else
@@ -41,6 +42,7 @@
 #include "rnpcfg.h"
 #include "defaults.h"
 #include "logging.h"
+#include "time-utils.h"
 #include <rnp/rnp.h>
 
 // must be placed after include "utils.h"
@@ -354,6 +356,39 @@ rnp_cfg::~rnp_cfg()
     clear();
 }
 
+/**
+ * @brief Get number of days in month.
+ *
+ * @param year number of year, i.e. 2021
+ * @param month number of month, 1..12
+ * @return number of days (28..31) or 0 if month is wrong.
+ */
+static int
+days_in_month(int year, int month)
+{
+    switch (month) {
+    case 1:
+    case 3:
+    case 5:
+    case 7:
+    case 8:
+    case 10:
+    case 12:
+        return 31;
+    case 4:
+    case 6:
+    case 9:
+    case 11:
+        return 30;
+    case 2: {
+        bool leap_year = !(year % 400) || (!(year % 4) && (year % 100));
+        return leap_year ? 29 : 28;
+    }
+    default:
+        return 0;
+    }
+}
+
 /**
  * @brief Grabs date from the string in %Y-%m-%d format
  *
@@ -362,92 +397,171 @@ rnp_cfg::~rnp_cfg()
  * @return true on success or false otherwise
  */
 
-static bool
-grabdate(const char *s, int64_t *t)
+/** @brief
+ *
+ *  @param s [in] NULL-terminated string with the date
+ *  @param t [out] UNIX timestamp of
+ * successfully parsed date
+ *  @return 0 when parsed successfully
+ *          1 when s doesn't match the regex
+ * -1 when
+ * s matches the regex but the date is not acceptable
+ *          -2 failure
+ */
+static int
+grabdate(const char *s, uint64_t *t)
 {
+    /* fill time zone information */
+    const time_t now = time(NULL);
+    struct tm    tm = *localtime(&now);
+    tm.tm_hour = 0;
+    tm.tm_min = 0;
+    tm.tm_sec = 0;
 #ifndef RNP_USE_STD_REGEX
     static regex_t r;
     static int     compiled;
     regmatch_t     matches[10];
-    struct tm      tm;
 
     if (!compiled) {
         compiled = 1;
         if (regcomp(&r,
-                    "([0-9][0-9][0-9][0-9])[-/]([0-9][0-9])[-/]([0-9][0-9])",
+                    "^([0-9][0-9][0-9][0-9])[-/]([0-9][0-9])[-/]([0-9][0-9])$",
                     REG_EXTENDED) != 0) {
             RNP_LOG("failed to compile regexp");
-            return false;
+            return -2;
         }
     }
-    if (regexec(&r, s, 10, matches, 0) == 0) {
-        (void) memset(&tm, 0x0, sizeof(tm));
-        tm.tm_year = (int) strtol(&s[(int) matches[1].rm_so], NULL, 10);
-        tm.tm_mon = (int) strtol(&s[(int) matches[2].rm_so], NULL, 10) - 1;
-        tm.tm_mday = (int) strtol(&s[(int) matches[3].rm_so], NULL, 10);
-        *t = mktime(&tm);
-        return true;
+    if (regexec(&r, s, 10, matches, 0) != 0) {
+        return 1;
     }
+    int year = (int) strtol(&s[(int) matches[1].rm_so], NULL, 10);
+    int mon = (int) strtol(&s[(int) matches[2].rm_so], NULL, 10);
+    int mday = (int) strtol(&s[(int) matches[3].rm_so], NULL, 10);
 #else
-    struct tm tm;
-
-    static std::regex re("([0-9][0-9][0-9][0-9])[-/]([0-9][0-9])[-/]([0-9][0-9])",
-                         std::regex_constants::extended);
+    static std::regex re("^([0-9][0-9][0-9][0-9])[-/]([0-9][0-9])[-/]([0-9][0-9])$",
+                         std::regex_constants::ECMAScript);
     std::smatch       result;
     std::string       input = s;
 
-    if (std::regex_search(input, result, re)) {
-        (void) memset(&tm, 0x0, sizeof(tm));
-        tm.tm_year = (int) strtol(result[1].str().c_str(), NULL, 10);
-        tm.tm_mon = (int) strtol(result[2].str().c_str(), NULL, 10) - 1;
-        tm.tm_mday = (int) strtol(result[3].str().c_str(), NULL, 10);
-        *t = mktime(&tm);
-        return true;
+    if (!std::regex_search(input, result, re)) {
+        return 1;
     }
+    int year = (int) strtol(result[1].str().c_str(), NULL, 10);
+    int mon = (int) strtol(result[2].str().c_str(), NULL, 10);
+    int mday = (int) strtol(result[3].str().c_str(), NULL, 10);
 #endif
-    return false;
+    if (year < 1970 || mon < 1 || mon > 12 || !mday || (mday > days_in_month(year, mon))) {
+        return -1;
+    }
+    tm.tm_year = year - 1900;
+    tm.tm_mon = mon - 1;
+    tm.tm_mday = mday;
+
+    struct tm check_tm = tm;
+    time_t    built_time = rnp_mktime(&tm);
+    time_t    check_time = mktime(&check_tm);
+    if (built_time != check_time) {
+        /* If date is beyond of yk2038 and we have 32-bit signed time_t, we need to reduce
+         * timestamp */
+        RNP_LOG("Warning: date %s is beyond of 32-bit time_t, so timestamp was reduced to "
+                "maximum supported value.",
+                s);
+    }
+    *t = built_time;
+    return 0;
 }
 
-uint64_t
-get_expiration(const char *s)
+int
+get_expiration(const char *s, uint32_t *res)
 {
-    uint64_t    now;
-    int64_t     t;
-    const char *mult;
-
     if (!s || !strlen(s)) {
-        return 0;
+        return -1;
     }
-    now = (uint64_t) strtoull(s, NULL, 10);
-    if ((mult = strchr("hdwmy", s[strlen(s) - 1])) != NULL) {
-        switch (*mult) {
-        case 'h':
-            return now * 60 * 60;
-        case 'd':
-            return now * 60 * 60 * 24;
-        case 'w':
-            return now * 60 * 60 * 24 * 7;
-        case 'm':
-            return now * 60 * 60 * 24 * 31;
-        case 'y':
-            return now * 60 * 60 * 24 * 365;
+    uint64_t delta;
+    uint64_t t;
+    int      grabdate_result = grabdate(s, &t);
+    if (!grabdate_result) {
+        uint64_t now = time(NULL);
+        if (t > now) {
+            delta = t - now;
+            if (delta > UINT32_MAX) {
+                return -3;
+            }
+            *res = delta;
+            return 0;
         }
+        return -2;
+    } else if (grabdate_result < 0) {
+        return -2;
     }
-    if (grabdate(s, &t)) {
-        return t;
+#ifndef RNP_USE_STD_REGEX
+    static regex_t r;
+    static int     compiled;
+    regmatch_t     matches[10];
+
+    if (!compiled) {
+        compiled = 1;
+        if (regcomp(&r, "^([0-9]+)([hdwmy]?)$", REG_EXTENDED | REG_ICASE) != 0) {
+            RNP_LOG("failed to compile regexp");
+            return -2;
+        }
     }
-    return (uint64_t) strtoll(s, NULL, 10);
+    if (regexec(&r, s, 10, matches, 0) != 0) {
+        return -2;
+    }
+    auto delta_str = &s[(int) matches[1].rm_so];
+    char mult = s[(int) matches[2].rm_so];
+#else
+    static std::regex re("^([0-9]+)([hdwmy]?)$",
+                         std::regex_constants::ECMAScript | std::regex_constants::icase);
+    std::smatch       result;
+    std::string       input = s;
+
+    if (!std::regex_search(input, result, re)) {
+        return -2;
+    }
+    std::string delta_stdstr = result[1].str();
+    const char *delta_str = delta_stdstr.c_str();
+    char        mult = result[2].str()[0];
+#endif
+    errno = 0;
+    delta = (uint64_t) strtoul(delta_str, NULL, 10);
+    if (errno || delta > UINT_MAX) {
+        return -3;
+    }
+    switch (std::tolower(mult)) {
+    case 'h':
+        delta *= 60 * 60;
+        break;
+    case 'd':
+        delta *= 60 * 60 * 24;
+        break;
+    case 'w':
+        delta *= 60 * 60 * 24 * 7;
+        break;
+    case 'm':
+        delta *= 60 * 60 * 24 * 31;
+        break;
+    case 'y':
+        delta *= 60 * 60 * 24 * 365;
+        break;
+    }
+    if (delta > UINT32_MAX) {
+        return -4;
+    }
+    *res = delta;
+    return 0;
 }
 
 int64_t
 get_creation(const char *s)
 {
-    int64_t t;
+    uint64_t t;
 
     if (!s || !strlen(s)) {
         return time(NULL);
     }
-    if (grabdate(s, &t)) {
+    if (!grabdate(s, &t)) {
         return t;
     }
     return (uint64_t) strtoll(s, NULL, 10);
diff --git a/comm/third_party/rnp/src/rnp/rnpcfg.h b/comm/third_party/rnp/src/rnp/rnpcfg.h
index 7b76b735eda25095d48abf841c8baecdb79afa6a..92cc0927820d5117787c6b9cd020c90aea328819 100644
--- a/comm/third_party/rnp/src/rnp/rnpcfg.h
+++ b/comm/third_party/rnp/src/rnp/rnpcfg.h
@@ -98,9 +98,11 @@
 #define CFG_KG_PRIMARY_ALG "kg-primary-alg"
 #define CFG_KG_PRIMARY_BITS "kg-primary-bits"
 #define CFG_KG_PRIMARY_CURVE "kg-primary-curve"
+#define CFG_KG_PRIMARY_EXPIRATION "kg-primary-expiration"
 #define CFG_KG_SUBKEY_ALG "kg-subkey-alg"
 #define CFG_KG_SUBKEY_BITS "kg-subkey-bits"
 #define CFG_KG_SUBKEY_CURVE "kg-subkey-curve"
+#define CFG_KG_SUBKEY_EXPIRATION "kg-subkey-expiration"
 #define CFG_KG_HASH "kg-hash"
 #define CFG_KG_PROT_HASH "kg-prot-hash"
 #define CFG_KG_PROT_ALG "kg-prot-alg"
@@ -175,10 +177,13 @@ class rnp_cfg {
  *  - 60000 : number of seconds
  *
  *  @param s [in] NULL-terminated string with the date
- *  @param t [out] On successful return result will be placed here
- *  @return expiration time in seconds
+ *  @param t [out] On successfull return result will be placed here
+ *  @return 0 on success
+ *          -1 on parse error
+ *          -2 if a date in the past was specified
+ *          -3 overflow
  */
-uint64_t get_expiration(const char *s);
+int get_expiration(const char *s, uint32_t *t);
 
 /** @brief Get signature validity start time from the user input
  *
diff --git a/comm/third_party/rnp/src/rnpkeys/rnpkeys.1.adoc b/comm/third_party/rnp/src/rnpkeys/rnpkeys.1.adoc
index d8ce760f80b0c10b3b03b6ab7913587a9bd6faea..9bd259714b6fc886017401caf03a37b220af990f 100644
--- a/comm/third_party/rnp/src/rnpkeys/rnpkeys.1.adoc
+++ b/comm/third_party/rnp/src/rnpkeys/rnpkeys.1.adoc
@@ -109,6 +109,17 @@ Additional options:
 *--numbits*:::
 Overrides the default RSA key size of *2048* bits.
 
+*--expiration* _TIME_:::
+Set key and subkey expiration time, counting from the creation time. +
++
+By default generated keys do not expire. +
++
+Expiration time can be specified as:
+
+* expiration date in the ISO 8601:2019 date format (_yyyy-mm-dd_); or
+* hours/days/months/years since creation time with the syntax of _20h_/_30d_/_1m_/_1y_;
+* number of seconds.
+
 *--expert*:::
 Select key algorithms interactively and override default settings.
 
diff --git a/comm/third_party/rnp/src/rnpkeys/rnpkeys.cpp b/comm/third_party/rnp/src/rnpkeys/rnpkeys.cpp
index 0368709a5089841e7a80e67b1b11131f82ef6c5d..f00e0caf4186be952fb2a6374cc1272f57586940 100644
--- a/comm/third_party/rnp/src/rnpkeys/rnpkeys.cpp
+++ b/comm/third_party/rnp/src/rnpkeys/rnpkeys.cpp
@@ -72,6 +72,7 @@ const char *usage = "-h, --help OR\n"
                     "\t[--output=file] file OR\n"
                     "\t[--keystore-format=<format>] AND/OR\n"
                     "\t[--userid=<userid>] AND/OR\n"
+                    "\t[--expiration=<expiration>] AND/OR\n"
                     "\t[--rev-type, --rev-reason] AND/OR\n"
                     "\t[--verbose]\n";
 
@@ -110,6 +111,7 @@ struct option options[] = {
   {"numbits", required_argument, NULL, OPT_NUMBITS},
   {"s2k-iterations", required_argument, NULL, OPT_S2K_ITER},
   {"s2k-msec", required_argument, NULL, OPT_S2K_MSEC},
+  {"expiration", required_argument, NULL, OPT_EXPIRATION},
   {"verbose", no_argument, NULL, OPT_VERBOSE},
   {"pass-fd", required_argument, NULL, OPT_PASSWDFD},
   {"password", required_argument, NULL, OPT_PASSWD},
@@ -519,6 +521,10 @@ setoption(rnp_cfg &cfg, optdefs_t *cmd, int val, const char *arg)
         cfg.set_int(CFG_S2K_ITER, iterations);
         return true;
     }
+    case OPT_EXPIRATION:
+        cfg.set_str(CFG_KG_PRIMARY_EXPIRATION, arg);
+        cfg.set_str(CFG_KG_SUBKEY_EXPIRATION, arg);
+        return true;
     case OPT_S2K_MSEC: {
         if (!arg) {
             ERR_MSG("No s2k msec argument provided");
diff --git a/comm/third_party/rnp/src/rnpkeys/rnpkeys.h b/comm/third_party/rnp/src/rnpkeys/rnpkeys.h
index 6b334307afd5920838bb9a59dcf8c7e5ead6b7f2..c8b558ca459ca3909c1ba73281107424390f453e 100644
--- a/comm/third_party/rnp/src/rnpkeys/rnpkeys.h
+++ b/comm/third_party/rnp/src/rnpkeys/rnpkeys.h
@@ -45,6 +45,7 @@ typedef enum {
     OPT_SECRET,
     OPT_S2K_ITER,
     OPT_S2K_MSEC,
+    OPT_EXPIRATION,
     OPT_WITH_SIGS,
     OPT_REV_TYPE,
     OPT_REV_REASON,
diff --git a/comm/third_party/rnp/version.txt b/comm/third_party/rnp/version.txt
index a5510516948f37ef18bbb69d8edcb8a2c2e9ba7e..4312e0d0cae3a96e9f4a9be98e59e8468f39e1a8 100644
--- a/comm/third_party/rnp/version.txt
+++ b/comm/third_party/rnp/version.txt
@@ -1 +1 @@
-0.15.0
+0.15.2
diff --git a/config/milestone.txt b/config/milestone.txt
index 3a64d54b07b1b3bdd65aa7607e8c0b1f11a4dc04..3ec1bd9ac5dfac17a26a6c544c56716498eb379c 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
 # hardcoded milestones in the tree from these two files.
 #--------------------------------------------------------
 
-91.0.1
+91.1.0
diff --git a/devtools/client/accessibility/test/browser/browser_accessibility_reload.js b/devtools/client/accessibility/test/browser/browser_accessibility_reload.js
index 280bfcc2cb06a826784eed88a11e758774959f99..887de34c898e7cea5b3bf7413742014a4a4c5622 100644
--- a/devtools/client/accessibility/test/browser/browser_accessibility_reload.js
+++ b/devtools/client/accessibility/test/browser/browser_accessibility_reload.js
@@ -59,8 +59,11 @@ const tests = [
   },
   {
     desc: "Reload the page.",
-    setup: async ({ panel }) =>
-      panel.accessibilityProxy.commands.targetCommand.reloadTopLevelTarget(),
+    setup: async ({ panel }) => {
+      const onReloaded = panel.once("reloaded");
+      panel.accessibilityProxy.commands.targetCommand.reloadTopLevelTarget();
+      await onReloaded;
+    },
     expected: {
       tree: [
         {
@@ -76,7 +79,10 @@ const tests = [
   },
   {
     desc: "Navigate to a new page.",
-    setup: () => navigateTo(buildURL(TEST_URI_2)),
+    setup: async () => {
+      // `navigate` waits for the "reloaded" event so we don't need to do it explicitly here
+      await navigateTo(buildURL(TEST_URI_2));
+    },
     expected: {
       tree: [
         {
diff --git a/devtools/client/framework/test/browser_enable_devtools_popup_new_user.js b/devtools/client/framework/test/browser_enable_devtools_popup_new_user.js
index dca3cd8e93eac50e4df1eaeaa0030e7ea394a371..a0017415bfcc2ebb60adfa5927e5b8b9ceab2624 100644
--- a/devtools/client/framework/test/browser_enable_devtools_popup_new_user.js
+++ b/devtools/client/framework/test/browser_enable_devtools_popup_new_user.js
@@ -19,6 +19,7 @@ const TEST_URL =
 // logic. We expect devtools.selfxss.count to force shortcut_disabled to false.
 add_task(async function() {
   const tab = await addTab(TEST_URL);
+  await waitForPresShell(tab.linkedBrowser);
   await new Promise(done => waitForFocus(done));
 
   // With the shortcut initially disabled and the selfxss pref at 0, we expect
diff --git a/devtools/client/shared/test/head.js b/devtools/client/shared/test/head.js
index a4a2089ba3028288512eb05b0d6208d973c52ecc..5d367947bfd240f924d2697d56ea015970a83035 100644
--- a/devtools/client/shared/test/head.js
+++ b/devtools/client/shared/test/head.js
@@ -121,6 +121,10 @@ const createHost = async function(
     DOMHelpers.onceDOMReady(iframe.contentWindow, resolve);
   });
 
+  // Popup tests fail very frequently on Linux + webrender because they run
+  // too early.
+  await waitForPresShell(iframe);
+
   return { host: host, win: iframe.contentWindow, doc: iframe.contentDocument };
 };
 
diff --git a/devtools/client/shared/test/shared-head.js b/devtools/client/shared/test/shared-head.js
index f5dab0a6a7e9b492572b6b79c4a5fadabe78400d..2501f11bffb31bb1299211454c89f7d9af310038 100644
--- a/devtools/client/shared/test/shared-head.js
+++ b/devtools/client/shared/test/shared-head.js
@@ -1620,3 +1620,23 @@ async function waitForNextTopLevelDomCompleteResource(commands) {
   );
   return { onDomCompleteResource };
 }
+
+/**
+ * Wait for the provided context to have a valid presShell. This can be useful
+ * for tests which try to create popup panels or interact with the document very
+ * early.
+ *
+ * @param {BrowsingContext} context
+ **/
+const waitForPresShell = function(context) {
+  return SpecialPowers.spawn(context, [], async () => {
+    const winUtils = SpecialPowers.getDOMWindowUtils(content);
+    await ContentTaskUtils.waitForCondition(() => {
+      try {
+        return !!winUtils.getPresShellId();
+      } catch (e) {
+        return false;
+      }
+    }, "Waiting for a valid presShell");
+  });
+};
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index 28ecd71ece6b46ba7c68391a30588d51d3b56d1e..b5dde8a5e13fa70bd56ab0f57b39c01dcd6301a5 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
@@ -15562,17 +15562,22 @@ already_AddRefed<Element> Document::CreateHTMLElement(nsAtom* aTag) {
   return element.forget();
 }
 
+void AutoWalkBrowsingContextGroup::SuppressBrowsingContext(
+    BrowsingContext* aContext) {
+  aContext->PreOrderWalk([&](BrowsingContext* aBC) {
+    if (nsCOMPtr<nsPIDOMWindowOuter> win = aBC->GetDOMWindow()) {
+      if (RefPtr<Document> doc = win->GetExtantDoc()) {
+        SuppressDocument(doc);
+        mDocuments.AppendElement(doc);
+      }
+    }
+  });
+}
+
 void AutoWalkBrowsingContextGroup::SuppressBrowsingContextGroup(
     BrowsingContextGroup* aGroup) {
   for (const auto& bc : aGroup->Toplevels()) {
-    bc->PreOrderWalk([&](BrowsingContext* aBC) {
-      if (nsCOMPtr<nsPIDOMWindowOuter> win = aBC->GetDOMWindow()) {
-        if (RefPtr<Document> doc = win->GetExtantDoc()) {
-          SuppressDocument(doc);
-          mDocuments.AppendElement(doc);
-        }
-      }
-    });
+    SuppressBrowsingContext(bc);
   }
 }
 
@@ -15585,10 +15590,14 @@ nsAutoSyncOperation::nsAutoSyncOperation(Document* aDoc,
     ccjs->SetMicroTaskLevel(0);
   }
   if (aDoc) {
-    if (auto* bcg = aDoc->GetDocGroup()->GetBrowsingContextGroup()) {
-      SuppressBrowsingContextGroup(bcg);
-    }
     mBrowsingContext = aDoc->GetBrowsingContext();
+    if (InputTaskManager::CanSuspendInputEvent()) {
+      if (auto* bcg = aDoc->GetDocGroup()->GetBrowsingContextGroup()) {
+        SuppressBrowsingContextGroup(bcg);
+      }
+    } else if (mBrowsingContext) {
+      SuppressBrowsingContext(mBrowsingContext->Top());
+    }
     if (mBrowsingContext &&
         mSyncBehavior == SyncOperationBehavior::eSuspendInput &&
         InputTaskManager::CanSuspendInputEvent()) {
@@ -15624,6 +15633,18 @@ nsAutoSyncOperation::~nsAutoSyncOperation() {
   }
 }
 
+void Document::SetIsInSyncOperation(bool aSync) {
+  if (CycleCollectedJSContext* ccjs = CycleCollectedJSContext::Get()) {
+    ccjs->UpdateMicroTaskSuppressionGeneration();
+  }
+
+  if (aSync) {
+    ++mInSyncOperationCount;
+  } else {
+    --mInSyncOperationCount;
+  }
+}
+
 gfxUserFontSet* Document::GetUserFontSet() {
   if (!mFontFaceSet) {
     return nullptr;
diff --git a/dom/base/Document.h b/dom/base/Document.h
index 8ac8d56ff541ca5f8959d09b9196d323323e74c9..7165496397f3fd6a6f307379ab23cb7690552354 100644
--- a/dom/base/Document.h
+++ b/dom/base/Document.h
@@ -3214,13 +3214,7 @@ class Document : public nsINode,
 
   bool IsInSyncOperation() { return mInSyncOperationCount != 0; }
 
-  void SetIsInSyncOperation(bool aSync) {
-    if (aSync) {
-      ++mInSyncOperationCount;
-    } else {
-      --mInSyncOperationCount;
-    }
-  }
+  void SetIsInSyncOperation(bool aSync);
 
   bool CreatingStaticClone() const { return mCreatingStaticClone; }
 
@@ -5310,6 +5304,7 @@ class AutoWalkBrowsingContextGroup {
   virtual ~AutoWalkBrowsingContextGroup() = default;
 
  protected:
+  void SuppressBrowsingContext(BrowsingContext* aContext);
   void SuppressBrowsingContextGroup(BrowsingContextGroup* aGroup);
   void UnsuppressDocuments() {
     for (const auto& doc : mDocuments) {
diff --git a/dom/base/Element.cpp b/dom/base/Element.cpp
index c7c885dc9d4daa0e03db50dfdf0daa9c8815fdfd..a838e78d59b20078c4bb05ab8c9d2be00c80b02b 100644
--- a/dom/base/Element.cpp
+++ b/dom/base/Element.cpp
@@ -344,8 +344,11 @@ EventStates Element::IntrinsicState() const {
 }
 
 void Element::NotifyStateChange(EventStates aStates) {
-  Document* doc = GetComposedDoc();
-  if (doc) {
+  if (aStates.IsEmpty()) {
+    return;
+  }
+
+  if (Document* doc = GetComposedDoc()) {
     nsAutoScriptBlocker scriptBlocker;
     doc->ContentStateChanged(this, aStates);
   }
@@ -3036,10 +3039,16 @@ nsresult Element::PostHandleEventForLinks(EventChainPostVisitor& aVisitor) {
 
   switch (aVisitor.mEvent->mMessage) {
     case eMouseDown: {
-      if (aVisitor.mEvent->AsMouseEvent()->mButton == MouseButton::ePrimary &&
-          OwnerDoc()->LinkHandlingEnabled()) {
-        aVisitor.mEvent->mFlags.mMultipleActionsPrevented = true;
+      if (!OwnerDoc()->LinkHandlingEnabled()) {
+        break;
+      }
+
+      WidgetMouseEvent* const mouseEvent = aVisitor.mEvent->AsMouseEvent();
+      mouseEvent->mFlags.mMultipleActionsPrevented |=
+          mouseEvent->mButton == MouseButton::ePrimary ||
+          mouseEvent->mButton == MouseButton::eMiddle;
 
+      if (mouseEvent->mButton == MouseButton::ePrimary) {
         if (IsInComposedDoc()) {
           if (RefPtr<nsFocusManager> fm = nsFocusManager::GetFocusManager()) {
             RefPtr<Element> kungFuDeathGrip(this);
diff --git a/dom/base/Element.h b/dom/base/Element.h
index 072a0245c58d9b0a633a27e1dc1142ba6306bf2a..ab9aa86195663ab6a61c5b9179e1f321d65e36c7 100644
--- a/dom/base/Element.h
+++ b/dom/base/Element.h
@@ -705,19 +705,21 @@ class Element : public FragmentOrElement {
   // These will handle setting up script blockers when they notify, so no need
   // to do it in the callers unless desired.  States passed here must only be
   // those in EXTERNALLY_MANAGED_STATES.
-  virtual void AddStates(EventStates aStates) {
+  void AddStates(EventStates aStates) {
     MOZ_ASSERT(!aStates.HasAtLeastOneOfStates(INTRINSIC_STATES),
                "Should only be adding externally-managed states here");
+    EventStates old = mState;
     AddStatesSilently(aStates);
-    NotifyStateChange(aStates);
+    NotifyStateChange(old ^ mState);
   }
-  virtual void RemoveStates(EventStates aStates) {
+  void RemoveStates(EventStates aStates) {
     MOZ_ASSERT(!aStates.HasAtLeastOneOfStates(INTRINSIC_STATES),
                "Should only be removing externally-managed states here");
+    EventStates old = mState;
     RemoveStatesSilently(aStates);
-    NotifyStateChange(aStates);
+    NotifyStateChange(old ^ mState);
   }
-  virtual void ToggleStates(EventStates aStates, bool aNotify) {
+  void ToggleStates(EventStates aStates, bool aNotify) {
     MOZ_ASSERT(!aStates.HasAtLeastOneOfStates(INTRINSIC_STATES),
                "Should only be removing externally-managed states here");
     mState ^= aStates;
diff --git a/dom/base/crashtests/crashtests.list b/dom/base/crashtests/crashtests.list
index e743039608bb85ee6fd0d5cbabe5825545b826a7..402e8f48fc27b6fe2e59634c5d1ff4476f5065b1 100644
--- a/dom/base/crashtests/crashtests.list
+++ b/dom/base/crashtests/crashtests.list
@@ -259,7 +259,7 @@ load 1619322.html
 asserts(0-1) load 1623918.html # May hit an assertion if the <input> element's anonymous tree hasn't been flushed when IMEContentObserver handles focus
 load 1656925.html
 skip-if(Android) load 1665792.html # Print preview on android doesn't fly
-load 1681729.html
-load 1693049.html
-load 1697525.html
+skip-if(ThreadSanitizer) load 1681729.html
+skip-if(ThreadSanitizer) load 1693049.html
+skip-if(ThreadSanitizer) load 1697525.html
 skip-if(ThreadSanitizer) load 1712198.html # Mysterious failure that should be investigated (bug 1712866).
diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp
index 816f159566ce396b7ff32d2553c7052fb5ab16ac..fbcb9cc1ae602b0a19ecc551e37592df85b2d765 100644
--- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp
@@ -2751,12 +2751,24 @@ nsDOMWindowUtils::AdvanceTimeAndRefresh(int64_t aMilliseconds) {
 
 NS_IMETHODIMP
 nsDOMWindowUtils::GetLastTransactionId(uint64_t* aLastTransactionId) {
-  nsPresContext* presContext = GetPresContext();
+  nsCOMPtr<nsIDocShell> docShell = GetDocShell();
+  if (!docShell) {
+    return NS_ERROR_UNEXPECTED;
+  }
+
+  nsCOMPtr<nsIDocShellTreeItem> rootTreeItem;
+  docShell->GetInProcessRootTreeItem(getter_AddRefs(rootTreeItem));
+  docShell = do_QueryInterface(rootTreeItem);
+  if (!docShell) {
+    return NS_ERROR_UNEXPECTED;
+  }
+
+  nsPresContext* presContext = docShell->GetPresContext();
   if (!presContext) {
     return NS_ERROR_UNEXPECTED;
   }
 
-  nsRefreshDriver* driver = presContext->GetRootPresContext()->RefreshDriver();
+  nsRefreshDriver* driver = presContext->RefreshDriver();
   *aLastTransactionId = uint64_t(driver->LastTransactionId());
   return NS_OK;
 }
@@ -4420,7 +4432,9 @@ struct StateTableEntry {
 
 static constexpr StateTableEntry kManuallyManagedStates[] = {
     {"autofill", NS_EVENT_STATE_AUTOFILL},
-    {"-moz-autofill-preview", NS_EVENT_STATE_AUTOFILL_PREVIEW},
+    // :-moz-autofill-preview implies :autofill.
+    {"-moz-autofill-preview",
+     NS_EVENT_STATE_AUTOFILL_PREVIEW | NS_EVENT_STATE_AUTOFILL},
     {nullptr, EventStates()},
 };
 
diff --git a/dom/base/test/mochitest.ini b/dom/base/test/mochitest.ini
index e287a0d10ae8d14d3ced68d3976dc85480b262c1..06b5691422c52f1d28a31aa35d4a72b654aea7f7 100644
--- a/dom/base/test/mochitest.ini
+++ b/dom/base/test/mochitest.ini
@@ -769,6 +769,8 @@ skip-if = debug == false
 [test_shared_compartment2.html]
 [test_structuredclone_backref.html]
 [test_style_cssText.html]
+[test_suppressed_microtasks.html]
+skip-if = debug || asan || verify || toolkit == 'android' # The test needs to run reasonably fast.
 [test_text_wholeText.html]
 [test_textnode_normalize_in_selection.html]
 [test_textnode_split_in_selection.html]
diff --git a/dom/base/test/test_suppressed_microtasks.html b/dom/base/test/test_suppressed_microtasks.html
new file mode 100644
index 0000000000000000000000000000000000000000..f5d333638698232365441366138c6041fc2816b3
--- /dev/null
+++ b/dom/base/test/test_suppressed_microtasks.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>Test microtask suppression</title>
+  <script src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
+  <script>
+    SimpleTest.waitForExplicitFinish();
+
+    var previousTask = -1;
+    function test() {
+      let win = window.open("about:blank");
+      win.onload = function() {
+        win.onmessage = function() {
+          win.start = win.performance.now();
+          win.didRunMicrotask = false;
+          win.onmessage = function() {
+            ok(win.didRunMicrotask, "Should have run a microtask.");
+            let period = win.performance.now() - win.start;
+            win.opener.ok(
+              period < 200,
+              "Running a task should be fast. Took " + period + "ms.");
+            win.onmessage = null;
+          }
+          win.queueMicrotask(function() { win.didRunMicrotask = true; });
+          win.postMessage("measurementMessage", "*");
+        }
+        win.postMessage("initialMessage", "*");
+
+        const last = 500000;
+        for (let i = 0; i < last + 1; ++i) {
+          window.queueMicrotask(function() {
+            // Check that once microtasks are unsuppressed, they are handled in
+            // the correct order.
+            if (previousTask !=  i - 1) {
+              // Explicitly optimize out cases which pass.
+              ok(false, "Microtasks should be handled in order.");
+            }
+            previousTask = i;
+            if (i == last) {
+              win.close();
+              SimpleTest.finish();
+            }
+          });
+        }
+
+        // Synchronous XMLHttpRequest suppresses microtasks.
+        var xhr = new XMLHttpRequest();
+        xhr.open("GET", "slow.sjs", false);
+        xhr.send();
+        is(previousTask, -1, "Shouldn't have run microtasks during a sync XHR.");
+      }
+    }
+  </script>
+</head>
+<body onload="test()">
+<p id="display"></p>
+<div id="content" style="display: none"></div>
+<pre id="test"></pre>
+</body>
+</html>
diff --git a/dom/bindings/test/mochitest.ini b/dom/bindings/test/mochitest.ini
index 7b1df70069958eaa20227f4da4cb093be308b8bc..22e14a983c0fe36bf19a231918b62f5b8b94c1a5 100644
--- a/dom/bindings/test/mochitest.ini
+++ b/dom/bindings/test/mochitest.ini
@@ -93,3 +93,4 @@ skip-if = debug == false
 skip-if = debug == false
 [test_large_arraybuffers.html]
 skip-if = (debug == false || bits == 32) # Large ArrayBuffers are only supported on 64-bit platforms.
+[test_large_imageData.html]
diff --git a/dom/bindings/test/test_large_imageData.html b/dom/bindings/test/test_large_imageData.html
new file mode 100644
index 0000000000000000000000000000000000000000..c4dd03d91abf4209dae1dc22b379ae4dbcc837f4
--- /dev/null
+++ b/dom/bindings/test/test_large_imageData.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1716622
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Test for large ImageData</title>
+  <script src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1716622">Mozilla Bug 1716622</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+  <canvas id="canvas" width="800" height="800"></canvas>
+  <script type="application/javascript">
+    SimpleTest.waitForExplicitFinish();
+
+    function go() {
+      var ctx = document.getElementById("canvas").getContext("2d");
+
+      var ex = null;
+      try {
+        ctx.createImageData(23175, 23175);
+      } catch (e) {
+        ex = e;
+      }
+      ok(ex.toString().includes("Invalid width or height"),
+         "Expected createImageData exception");
+
+      ex = null;
+      try {
+        ctx.createImageData(33000, 33000);
+      } catch (e) {
+        ex = e;
+      }
+      ok(ex.toString().includes("Invalid width or height"),
+         "Expected createImageData exception");
+
+      ex = null;
+      try {
+        ctx.getImageData(0, 0, 23175, 23175);
+      } catch (e) {
+        ex = e;
+      }
+      ok(ex.toString().includes("negative or greater than the allowed amount"),
+         "Expected getImageData exception");
+
+      SimpleTest.finish();
+    }
+    go();
+  </script>
+</body>
+</html>
diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp
index 8f430740419bbb77eefe504f8a018090bf2f439b..b80b371d2867e5b714068b931949343265648550 100644
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -5049,8 +5049,10 @@ nsresult CanvasRenderingContext2D::GetImageDataArray(
     nsIPrincipal& aSubjectPrincipal, JSObject** aRetval) {
   MOZ_ASSERT(aWidth && aHeight);
 
+  // Restrict the typed array length to INT32_MAX because that's all we support
+  // in dom::TypedArray::ComputeState.
   CheckedInt<uint32_t> len = CheckedInt<uint32_t>(aWidth) * aHeight * 4;
-  if (!len.isValid()) {
+  if (!len.isValid() || len.value() > INT32_MAX) {
     return NS_ERROR_DOM_INDEX_SIZE_ERR;
   }
 
@@ -5335,8 +5337,10 @@ static already_AddRefed<ImageData> CreateImageData(
   if (aW == 0) aW = 1;
   if (aH == 0) aH = 1;
 
+  // Restrict the typed array length to INT32_MAX because that's all we support
+  // in dom::TypedArray::ComputeState.
   CheckedInt<uint32_t> len = CheckedInt<uint32_t>(aW) * aH * 4;
-  if (!len.isValid()) {
+  if (!len.isValid() || len.value() > INT32_MAX) {
     aError.ThrowIndexSizeError("Invalid width or height");
     return nullptr;
   }
diff --git a/dom/events/test/pointerevents/mochitest.ini b/dom/events/test/pointerevents/mochitest.ini
index 539ac201d0c2f6fba675b0eb76e81afb69b25d30..fa72c252dec525e14693644cb7a1ab62bc61eb6b 100644
--- a/dom/events/test/pointerevents/mochitest.ini
+++ b/dom/events/test/pointerevents/mochitest.ini
@@ -30,6 +30,11 @@ support-files =
 [test_bug1420589_3.html]
 support-files =
     bug_1420589_iframe1.html
+[test_bug1725416.html]
+skip-if =
+  os == 'android' # Bug 1312791
+support-files =
+  !/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js
 [test_multiple_touches.html]
 [test_wpt_pointerevent_attributes_hoverable_pointers-manual.html]
 support-files =
@@ -71,7 +76,9 @@ support-files = wpt/pointerevent_sequence_at_implicit_release_on_drag-manual.htm
 [test_wpt_pointerevent_drag_interaction-manual.html]
 support-files = wpt/html/pointerevent_drag_interaction-manual.html
 [test_wpt_touch_action.html]
-skip-if = os == 'android' # Bug 1312791
+skip-if =
+  os == 'android' # Bug 1312791
+  os == 'linux' && headless # Bug 1722906
 support-files =
   ../../../../gfx/layers/apz/test/mochitest/apz_test_utils.js
   ../../../../gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js
diff --git a/dom/events/test/pointerevents/test_bug1725416.html b/dom/events/test/pointerevents/test_bug1725416.html
new file mode 100644
index 0000000000000000000000000000000000000000..3cc4a6316fcef9b7e0e15c7af0672dd32bf95e3e
--- /dev/null
+++ b/dom/events/test/pointerevents/test_bug1725416.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Bug 1725416</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="/tests/SimpleTest/EventUtils.js"></script>
+<script src="/tests/SimpleTest/paint_listener.js"></script>
+<script src="/tests/gfx/layers/apz/test/mochitest/apz_test_utils.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css" />
+
+<style>
+  #container {
+    height: 100px;
+    touch-action: none;
+  }
+</style>
+
+<div id="container"></div>
+
+<script>
+  add_task(async function testTouch() {
+    await waitUntilApzStable();
+    const container = document.getElementById("container");
+    const pointerDownPromise = promiseOneEvent(container, "pointerdown");
+    const pointerUpPromise = promiseOneEvent(container, "pointerup");
+    synthesizeNativeTapAtCenter(container);
+
+    const pointerDown = await pointerDownPromise;
+    is(pointerDown.pointerType, "touch", ".pointerType");
+    is(pointerDown.button, 0, ".button");
+    is(pointerDown.buttons, 1, ".buttons");
+
+    const pointerUp = await pointerUpPromise;
+    is(pointerUp.pointerType, "touch", ".pointerType");
+    is(pointerUp.button, 0, ".button");
+    is(pointerUp.buttons, 0, ".buttons");
+  });
+</script>
diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp
index a6fa9dbc63a5c0fde7da30e1dc7b1fe688f939ed..9bdf7ff6ed9249e1aa297c100b511109f353afbb 100644
--- a/dom/ipc/ContentChild.cpp
+++ b/dom/ipc/ContentChild.cpp
@@ -3234,10 +3234,11 @@ void ContentChild::DeleteGetFilesRequest(nsID& aUUID,
 
 mozilla::ipc::IPCResult ContentChild::RecvGetFilesResponse(
     const nsID& aUUID, const GetFilesResponseResult& aResult) {
-  GetFilesHelperChild* child = mGetFilesPendingRequests.GetWeak(aUUID);
+  RefPtr<GetFilesHelperChild> child;
+
   // This object can already been deleted in case DeleteGetFilesRequest has
   // been called when the response was sending by the parent.
-  if (!child) {
+  if (!mGetFilesPendingRequests.Remove(aUUID, getter_AddRefs(child))) {
     return IPC_OK();
   }
 
@@ -3258,8 +3259,6 @@ mozilla::ipc::IPCResult ContentChild::RecvGetFilesResponse(
 
     child->Finished(succeeded ? NS_OK : NS_ERROR_OUT_OF_MEMORY);
   }
-
-  mGetFilesPendingRequests.Remove(aUUID);
   return IPC_OK();
 }
 
diff --git a/dom/media/MediaCache.cpp b/dom/media/MediaCache.cpp
index cf174ac48572e617bb3453c8922aea79abb703ef..62f10a4f613e14df3f8e3caf909e834c289d0b28 100644
--- a/dom/media/MediaCache.cpp
+++ b/dom/media/MediaCache.cpp
@@ -777,9 +777,9 @@ RefPtr<MediaCache> MediaCache::GetMediaCache(int64_t aContentLength,
     static struct ClearThread {
       // Called during shutdown to clear sThread.
       void operator=(std::nullptr_t) {
-        nsCOMPtr<nsIThread> thread = sThread.forget();
-        MOZ_ASSERT(thread);
-        thread->Shutdown();
+        MOZ_ASSERT(sThread, "We should only clear sThread once.");
+        sThread->Shutdown();
+        sThread = nullptr;
       }
     } sClearThread;
     ClearOnShutdown(&sClearThread, ShutdownPhase::XPCOMShutdownThreads);
diff --git a/dom/media/gtest/TestAudioTrackGraph.cpp b/dom/media/gtest/TestAudioTrackGraph.cpp
index b15da9135f885270aa1bb1614b5bb572477b864c..f624b7874a4e11d82dfd7f5c108db8fa9461698a 100644
--- a/dom/media/gtest/TestAudioTrackGraph.cpp
+++ b/dom/media/gtest/TestAudioTrackGraph.cpp
@@ -515,7 +515,6 @@ float rmsf32(AudioDataValue* aSamples, uint32_t aChannels, uint32_t aFrames) {
   return sqrt(rms);
 }
 
-#  ifndef WIN32  // failure on windows10x32
 TEST(TestAudioTrackGraph, AudioInputTrackDisabling)
 {
   MockCubeb* cubeb = new MockCubeb();
@@ -554,19 +553,12 @@ TEST(TestAudioTrackGraph, AudioInputTrackDisabling)
 
   stream->SetOutputRecordingEnabled(true);
 
-  // Wait for a second worth of audio data. GoFaster is dispatched through a
-  // ControlMessage so that it is called in the first audio driver iteration.
-  // Otherwise the audio driver might be going very fast while the fallback
-  // system clock driver is still in an iteration.
-  DispatchFunction([&] {
-    inputTrack->GraphImpl()->AppendMessage(MakeUnique<GoFaster>(cubeb));
-  });
+  // Wait for a second worth of audio data.
   uint32_t totalFrames = 0;
   WaitUntil(stream->FramesProcessedEvent(), [&](uint32_t aFrames) {
     totalFrames += aFrames;
     return totalFrames > static_cast<uint32_t>(graph->GraphRate());
   });
-  cubeb->DontGoFaster();
 
   const uint32_t ITERATION_COUNT = 5;
   uint32_t iterations = ITERATION_COUNT;
@@ -581,7 +573,6 @@ TEST(TestAudioTrackGraph, AudioInputTrackDisabling)
       } else {
         currentMode = DisabledTrackMode::SILENCE_BLACK;
       }
-      inputTrack->GraphImpl()->AppendMessage(MakeUnique<GoFaster>(cubeb));
     });
 
     totalFrames = 0;
@@ -589,7 +580,6 @@ TEST(TestAudioTrackGraph, AudioInputTrackDisabling)
       totalFrames += aFrames;
       return totalFrames > static_cast<uint32_t>(graph->GraphRate());
     });
-    cubeb->DontGoFaster();
   }
 
   // Clean up.
@@ -632,7 +622,6 @@ TEST(TestAudioTrackGraph, AudioInputTrackDisabling)
     EXPECT_EQ(rmsf32(&(data[startIdx]), 2, rate / 10), 0.0);
   }
 }
-#  endif  // win32
 
 void TestCrossGraphPort(uint32_t aInputRate, uint32_t aOutputRate,
                         float aDriftFactor, uint32_t aBufferMs = 50) {
diff --git a/dom/media/platforms/wrappers/MediaChangeMonitor.cpp b/dom/media/platforms/wrappers/MediaChangeMonitor.cpp
index 8ab9761609a681e9b6e47b633b8b009b23492cc7..ecd4e8144095c7cfeb0875db8d4ca0ff9ab2faf8 100644
--- a/dom/media/platforms/wrappers/MediaChangeMonitor.cpp
+++ b/dom/media/platforms/wrappers/MediaChangeMonitor.cpp
@@ -263,29 +263,36 @@ RefPtr<PlatformDecoderModule::CreateDecoderPromise> MediaChangeMonitor::Create(
                            CreateDecoderParams::Option::FullH264Parsing));
   }
 
+  // The change monitor may have an updated track config. E.g. the h264 monitor
+  // may update the config after parsing extra data in the VideoInfo. Create a
+  // new set of params with the updated track info from our monitor and the
+  // other params for aParams and use that going forward.
+  const CreateDecoderParams updatedParams{changeMonitor->Config(), aParams};
+
   if (!changeMonitor->CanBeInstantiated()) {
     // nothing found yet, will try again later
     return PlatformDecoderModule::CreateDecoderPromise::CreateAndResolve(
         new MediaChangeMonitor(aPDM, std::move(changeMonitor), nullptr,
-                               aParams),
+                               updatedParams),
         __func__);
   }
 
   RefPtr<PlatformDecoderModule::CreateDecoderPromise> p =
-      aPDM->AsyncCreateDecoder(aParams)->Then(
-          GetCurrentSerialEventTarget(), __func__,
-          [params = CreateDecoderParamsForAsync(aParams), pdm = RefPtr{aPDM},
-           changeMonitor = std::move(changeMonitor)](
-              RefPtr<MediaDataDecoder>&& aDecoder) mutable {
-            RefPtr<MediaDataDecoder> decoder = new MediaChangeMonitor(
-                pdm, std::move(changeMonitor), aDecoder, params);
-            return PlatformDecoderModule::CreateDecoderPromise::
-                CreateAndResolve(decoder, __func__);
-          },
-          [](MediaResult aError) {
-            return PlatformDecoderModule::CreateDecoderPromise::CreateAndReject(
-                aError, __func__);
-          });
+      aPDM->AsyncCreateDecoder(updatedParams)
+          ->Then(
+              GetCurrentSerialEventTarget(), __func__,
+              [params = CreateDecoderParamsForAsync(updatedParams),
+               pdm = RefPtr{aPDM}, changeMonitor = std::move(changeMonitor)](
+                  RefPtr<MediaDataDecoder>&& aDecoder) mutable {
+                RefPtr<MediaDataDecoder> decoder = new MediaChangeMonitor(
+                    pdm, std::move(changeMonitor), aDecoder, params);
+                return PlatformDecoderModule::CreateDecoderPromise::
+                    CreateAndResolve(decoder, __func__);
+              },
+              [](MediaResult aError) {
+                return PlatformDecoderModule::CreateDecoderPromise::
+                    CreateAndReject(aError, __func__);
+              });
   return p;
 }
 
diff --git a/dom/media/test/reftest/color_quads/reftest.list b/dom/media/test/reftest/color_quads/reftest.list
index 6a79b09a8b2b81c299f8c5c4e1b530dc663270d5..e05a5b72be3da98d499ac9623749e98e26f79ff1 100644
--- a/dom/media/test/reftest/color_quads/reftest.list
+++ b/dom/media/test/reftest/color_quads/reftest.list
@@ -9,11 +9,12 @@
 # So, we just need to first check if e.g. av1.webm decodes to what we expect,
 # and then we have generally trivially compare other codecs/containers to that.
 
+defaults pref(media.av1.enabled,true)
 
 # -
 # yuv420p
 
-fuzzy(16-50,5234-5621) fuzzy-if(swgl,32-38,1600-91746) fuzzy-if(!webrender,16-38,5234-94640) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.webm  ../reftest_img.html?src=color_quads/720p.png
+fuzzy(16-50,5234-5622) fuzzy-if(swgl,32-38,1600-91746) fuzzy-if(!webrender,16-38,5234-94640) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.webm  ../reftest_img.html?src=color_quads/720p.png
 fuzzy-if(Android,254-255,273680-273807) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.vp9.webm  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.webm
 == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.webm
 fuzzy(0-2,75-225) fuzzy-if(Android,254-255,273680-273807) fuzzy-if(!Android&&!webrender,1-2,75-94070) fuzzy-if(OSX&&webrender,32-32,187407-187407) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.h264.mp4  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p.av1.webm
@@ -22,19 +23,19 @@ fuzzy(0-1,0-75) fuzzy-if(Android,254-255,273680-273807) == ../reftest_video.html
 skip-if(!webrender||Android) fuzzy(16-48,8349-8818) fuzzy-if(winWidget&&swgl,31-38,8240-184080) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm  ../reftest_img.html?src=color_quads/720p.png
 skip-if(!webrender||Android) fuzzy-if(Android,255-255,273726-273726) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.vp9.webm  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm
-skip-if(!webrender||Android) skip-if(winWidget&&swgl) fuzzy-if(Android,255-255,273726-273726) fuzzy-if(OSX||winWidget,2-34,184281-187407) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.h264.mp4  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm
+skip-if(!webrender||Android) skip-if(winWidget&&swgl) fuzzy-if(Android,255-255,273726-273726) fuzzy-if(OSX,2-34,184281-187407) fuzzy-if(winWidget,0-1,0-7) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.h264.mp4  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm
 skip-if(!webrender||Android) fuzzy-if(Android,255-255,273726-273726) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.vp9.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p.av1.webm
 
 # -
 # yuv420p10
 
-skip-if(!webrender||Android) fuzzy(33-49,2499-2579) fuzzy-if(swgl,34-52,181053-270528) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm  ../reftest_img.html?src=color_quads/720p.png
+skip-if(!webrender||Android) fuzzy(33-49,2346-2579) fuzzy-if(swgl,34-52,181053-270528) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm  ../reftest_img.html?src=color_quads/720p.png
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.vp9.webm  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm
 #[2] skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.h264.mp4  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.vp9.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.tv.yuv420p10.av1.webm
 
-skip-if(!webrender||Android) fuzzy(33-49,174932-175092) fuzzy-if(swgl&&!winWidget,36-52,11553-11555) fuzzy-if(swgl&&winWidget,40-52,11555-187200) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.webm  ../reftest_img.html?src=color_quads/720p.png
+skip-if(!webrender||Android) fuzzy(33-49,174699-175092) fuzzy-if(swgl&&!winWidget,36-52,11553-11555) fuzzy-if(swgl&&winWidget,40-52,11555-187200) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.webm  ../reftest_img.html?src=color_quads/720p.png
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.vp9.webm  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.webm
 skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.mp4   ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.webm
 #[2] skip-if(!webrender||Android) == ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.h264.mp4  ../reftest_video.html?src=color_quads/720p.png.bt709.bt709.pc.yuv420p10.av1.webm
diff --git a/dom/media/test/reftest/reftest.list b/dom/media/test/reftest/reftest.list
index 22ab541fd2c06d19324ace9a07e3e9b216c0ff5a..cd51838d25c4a4c1291b96b1a6a91b4c47f1983b 100644
--- a/dom/media/test/reftest/reftest.list
+++ b/dom/media/test/reftest/reftest.list
@@ -1,5 +1,5 @@
-skip-if(Android) fuzzy-if(OSX,0-80,0-76800) fuzzy-if(appleSilicon,92-92,76799-76799) fuzzy-if(winWidget,0-62,0-76799) fuzzy-if(gtkWidget&&layersGPUAccelerated,0-70,0-2032) fuzzy-if(swgl,62-69,588-76737) HTTP(..) == short.mp4.firstframe.html short.mp4.firstframe-ref.html
-skip-if(Android) fuzzy-if(OSX,0-87,0-76797) fuzzy-if(appleSilicon,83-83,76797-76797) fuzzy-if(winWidget,0-60,0-76797) fuzzy-if(gtkWidget&&layersGPUAccelerated,0-60,0-6070) fuzzy-if(swgl,52-76,1698-76545) HTTP(..) == short.mp4.lastframe.html short.mp4.lastframe-ref.html
+skip-if(Android) fuzzy-if(OSX,0-80,0-76800) fuzzy-if(appleSilicon,92-92,76799-76799) fuzzy-if(winWidget,0-62,0-76799) fuzzy-if(gtkWidget&&layersGPUAccelerated,0-70,0-2032) fuzzy-if(swgl,61-69,588-76796) HTTP(..) == short.mp4.firstframe.html short.mp4.firstframe-ref.html
+skip-if(Android) fuzzy-if(OSX,0-87,0-76797) fuzzy-if(appleSilicon,83-83,76797-76797) fuzzy-if(winWidget,0-60,0-76797) fuzzy-if(gtkWidget&&layersGPUAccelerated,0-60,0-6070) fuzzy-if(swgl,52-76,1698-76762) HTTP(..) == short.mp4.lastframe.html short.mp4.lastframe-ref.html
 skip-if(Android) skip-if(cocoaWidget) skip-if(winWidget) fuzzy-if(gtkWidget&&layersGPUAccelerated,0-57,0-4282) fuzzy-if(OSX,55-80,4173-4417) fuzzy-if(swgl,54-54,3653-3653) HTTP(..) == bipbop_300_215kbps.mp4.lastframe.html bipbop_300_215kbps.mp4.lastframe-ref.html
 skip-if(Android) fuzzy-if(OSX,0-25,0-175921) fuzzy-if(appleSilicon,49-49,176063-176063) fuzzy-if(winWidget,0-71,0-179198) fuzzy-if((/^Windows\x20NT\x2010\.0/.test(http.oscpu))&&(/^aarch64-msvc/.test(xulRuntime.XPCOMABI)),0-255,0-179500) HTTP(..) == gizmo.mp4.seek.html gizmo.mp4.55thframe-ref.html
 skip-if(Android) skip-if(MinGW) skip-if((/^Windows\x20NT\x2010\.0/.test(http.oscpu))&&(/^aarch64-msvc/.test(xulRuntime.XPCOMABI))) fuzzy(0-10,0-778236) == image-10bits-rendering-video.html image-10bits-rendering-ref.html
diff --git a/dom/quota/ActorsParent.cpp b/dom/quota/ActorsParent.cpp
index 2f7c36388e8d1e579ad640494013092b3193ff7d..c020742da00413bfa28920fe7cae97ce8f1269e6 100644
--- a/dom/quota/ActorsParent.cpp
+++ b/dom/quota/ActorsParent.cpp
@@ -2399,7 +2399,8 @@ Result<bool, nsresult> EnsureDirectory(nsIFile& aDirectory) {
                  QM_OR_ELSE_LOG_VERBOSE_IF(
                      // Expression.
                      MOZ_TO_RESULT_INVOKE(aDirectory, Create,
-                                          nsIFile::DIRECTORY_TYPE, 0755)
+                                          nsIFile::DIRECTORY_TYPE, 0755,
+                                          /* aSkipAncestors = */ false)
                          .map([](Ok) { return false; }),
                      // Predicate.
                      IsSpecificError<NS_ERROR_FILE_ALREADY_EXISTS>,
diff --git a/dom/security/SecFetch.cpp b/dom/security/SecFetch.cpp
index a213a0a64a4b0a29c8de50fba285bfdfc88bf528..decc001bd62553986f40c4a815b4dd5ed9a51da3 100644
--- a/dom/security/SecFetch.cpp
+++ b/dom/security/SecFetch.cpp
@@ -11,6 +11,7 @@
 #include "mozIThirdPartyUtil.h"
 #include "nsMixedContentBlocker.h"
 #include "nsNetUtil.h"
+#include "mozilla/BasePrincipal.h"
 #include "mozilla/StaticPrefs_dom.h"
 
 // Helper function which maps an internal content policy type
@@ -117,6 +118,15 @@ bool IsSameOrigin(nsIHttpChannel* aHTTPChannel) {
   NS_GetFinalChannelURI(aHTTPChannel, getter_AddRefs(channelURI));
 
   nsCOMPtr<nsILoadInfo> loadInfo = aHTTPChannel->LoadInfo();
+
+  if (mozilla::BasePrincipal::Cast(loadInfo->TriggeringPrincipal())
+          ->AddonPolicy()) {
+    // If an extension triggered the load that has access to the URI then the
+    // load is considered as same-origin.
+    return mozilla::BasePrincipal::Cast(loadInfo->TriggeringPrincipal())
+        ->AddonAllowsLoad(channelURI);
+  }
+
   bool isPrivateWin = loadInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
   bool isSameOrigin = false;
   nsresult rv = loadInfo->TriggeringPrincipal()->IsSameOrigin(
@@ -218,6 +228,12 @@ bool IsUserTriggeredForSecFetchSite(nsIHttpChannel* aHTTPChannel) {
     return false;
   }
 
+  // The load is considered user triggered if it was triggered by an external
+  // application.
+  if (loadInfo->GetLoadTriggeredFromExternal()) {
+    return true;
+  }
+
   // sec-fetch-site can only be user triggered if the load was user triggered.
   if (!loadInfo->GetHasValidUserGestureActivation()) {
     return false;
@@ -324,8 +340,10 @@ void mozilla::dom::SecFetch::AddSecFetchUser(nsIHttpChannel* aHTTPChannel) {
     return;
   }
 
-  // sec-fetch-user only applies if the request is user triggered
-  if (!loadInfo->GetHasValidUserGestureActivation()) {
+  // sec-fetch-user only applies if the request is user triggered.
+  // requests triggered by an external application are considerd user triggered.
+  if (!loadInfo->GetLoadTriggeredFromExternal() &&
+      !loadInfo->GetHasValidUserGestureActivation()) {
     return;
   }
 
diff --git a/dom/security/nsHTTPSOnlyUtils.cpp b/dom/security/nsHTTPSOnlyUtils.cpp
index 0799407a6e08d4d42b142350fb9a4722d39d9b7d..bc266016c0623807789edba2e1f98804457ade25 100644
--- a/dom/security/nsHTTPSOnlyUtils.cpp
+++ b/dom/security/nsHTTPSOnlyUtils.cpp
@@ -291,6 +291,14 @@ bool nsHTTPSOnlyUtils::IsUpgradeDowngradeEndlessLoop(
         }
       }
     }
+  } else {
+    // 6.1 We should only check if this load is triggered by a user gesture
+    // when the redirect chain is empty, since this information is only useful
+    // in our case here. When the redirect chain is not empty, this load is
+    // defnitely triggered by redirection, not a user gesture.
+    if (aLoadInfo->GetHasValidUserGestureActivation()) {
+      return false;
+    }
   }
 
   // 7. Meta redirects and JS based redirects (win.location). If the security
diff --git a/dom/security/test/https-only/browser.ini b/dom/security/test/https-only/browser.ini
index bdae6612240bd2d41681df80771c443d558c3790..bfe3b051406147aa482a621865df74702528d016 100644
--- a/dom/security/test/https-only/browser.ini
+++ b/dom/security/test/https-only/browser.ini
@@ -13,3 +13,6 @@ support-files =
 [browser_background_redirect.js]
 support-files =
   file_background_redirect.sjs
+[browser_user_gesture.js]
+support-files =
+  file_user_gesture.html
diff --git a/dom/security/test/https-only/browser_user_gesture.js b/dom/security/test/https-only/browser_user_gesture.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e0878e93ce62a0106a6ace9f5e71a8708c3ba22
--- /dev/null
+++ b/dom/security/test/https-only/browser_user_gesture.js
@@ -0,0 +1,55 @@
+// Bug 1725026 - HTTPS Only Mode - Test if a load triggered by a user gesture
+// https://bugzilla.mozilla.org/show_bug.cgi?id=1725026
+// Test if a load triggered by a user gesture can be upgraded to HTTPS
+// successfully.
+
+"use strict";
+
+const testPathUpgradeable = getRootDirectory(gTestPath).replace(
+  "chrome://mochitests/content",
+  "http://example.com"
+);
+
+const kTestURI = testPathUpgradeable + "file_user_gesture.html";
+
+add_task(async function() {
+  // Enable HTTPS-Only Mode and register console-listener
+  await SpecialPowers.pushPrefEnv({
+    set: [["dom.security.https_only_mode", true]],
+  });
+
+  await BrowserTestUtils.withNewTab("about:blank", async function(browser) {
+    const loaded = BrowserTestUtils.browserLoaded(browser, false, null, true);
+    // 1. Upgrade a page to https://
+    BrowserTestUtils.loadURI(browser, kTestURI);
+    await loaded;
+    await ContentTask.spawn(browser, {}, async args => {
+      ok(
+        content.document.location.href.startsWith("https://"),
+        "Should be https"
+      );
+
+      // 2. Trigger a load by clicking button.
+      // The scheme of the link url is `http` and the load should be able to
+      // upgraded to `https` because of HTTPS-only mode.
+      let button = content.document.getElementById("httpLinkButton");
+      await EventUtils.synthesizeMouseAtCenter(
+        button,
+        { type: "mousedown" },
+        content
+      );
+      await EventUtils.synthesizeMouseAtCenter(
+        button,
+        { type: "mouseup" },
+        content
+      );
+      await ContentTaskUtils.waitForCondition(() => {
+        return content.document.location.href.startsWith("https://");
+      });
+      ok(
+        content.document.location.href.startsWith("https://"),
+        "Should be https"
+      );
+    });
+  });
+});
diff --git a/dom/security/test/https-only/file_user_gesture.html b/dom/security/test/https-only/file_user_gesture.html
new file mode 100644
index 0000000000000000000000000000000000000000..ac67064bf057726ca1dfc2f83f0ca3e9c7061440
--- /dev/null
+++ b/dom/security/test/https-only/file_user_gesture.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>Bug 1725026 - HTTPS Only Mode - Test if a load triggered by a user gesture can be upgraded to HTTPS</title>
+</head>
+<body>
+  <button id="httpLinkButton" onclick="location.href='http://example.com/tests/dom/security/test/https-only/file_console_logging.html'" type="button">
+    button</button>
+</body>
+</html>
diff --git a/dom/security/test/sec-fetch/browser.ini b/dom/security/test/sec-fetch/browser.ini
index b9642b438e04d896376de92c3cf14e852136b255..6a5d8344cc578d122979df3441d6298c4785dd84 100644
--- a/dom/security/test/sec-fetch/browser.ini
+++ b/dom/security/test/sec-fetch/browser.ini
@@ -2,3 +2,4 @@
 support-files = file_no_cache.sjs
 
 [browser_navigation.js]
+[browser_external_loads.js]
diff --git a/dom/security/test/sec-fetch/browser_external_loads.js b/dom/security/test/sec-fetch/browser_external_loads.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3b6fc6ad43ab2e2c1fef47f26da95e5c4693826
--- /dev/null
+++ b/dom/security/test/sec-fetch/browser_external_loads.js
@@ -0,0 +1,64 @@
+"use strict";
+
+let gExpectedHeader = {};
+
+function checkSecFetchUser(subject, topic, data) {
+  let channel = subject.QueryInterface(Ci.nsIHttpChannel);
+  if (!channel.URI.spec.startsWith("https://example.com")) {
+    return;
+  }
+
+  info(`testing headers for load of ${channel.URI.spec}`);
+
+  const secFetchHeaders = [
+    "sec-fetch-mode",
+    "sec-fetch-dest",
+    "sec-fetch-user",
+    "sec-fetch-site",
+  ];
+
+  secFetchHeaders.forEach(header => {
+    const expectedValue = gExpectedHeader[header];
+    try {
+      is(
+        channel.getRequestHeader(header),
+        expectedValue,
+        `${header} is set to ${expectedValue}`
+      );
+    } catch (e) {
+      if (expectedValue) {
+        ok(false, "required headers are set");
+      } else {
+        ok(true, `${header} should not be set`);
+      }
+    }
+  });
+}
+
+add_task(async function external_load() {
+  waitForExplicitFinish();
+
+  gExpectedHeader = {
+    "sec-fetch-site": "none",
+    "sec-fetch-mode": "navigate",
+    "sec-fetch-dest": "document",
+    "sec-fetch-user": "?1",
+  };
+
+  Services.obs.addObserver(checkSecFetchUser, "http-on-stop-request");
+
+  let loaded = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
+  // Simulate an external load with Ci.nsIBrowserDOMWindow.OPEN_EXTERNAL and
+  // the system principal.
+  window.browserDOMWindow.openURI(
+    makeURI("https://example.com"),
+    null,
+    Ci.nsIBrowserDOMWindow.OPEN_CURRENTWINDOW,
+    Ci.nsIBrowserDOMWindow.OPEN_EXTERNAL,
+    Services.scriptSecurityManager.getSystemPrincipal()
+  );
+  await loaded;
+
+  Services.obs.removeObserver(checkSecFetchUser, "http-on-stop-request");
+  finish();
+});
diff --git a/dom/storage/StorageCommon.h b/dom/storage/StorageCommon.h
new file mode 100644
index 0000000000000000000000000000000000000000..633a97805e5c70247fd784d05e163c7af7425836
--- /dev/null
+++ b/dom/storage/StorageCommon.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* 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/. */
+
+#ifndef DOM_STORAGE_STORAGECOMMON_H_
+#define DOM_STORAGE_STORAGECOMMON_H_
+
+#include "mozilla/Types.h"
+
+namespace mozilla::dom {
+
+constexpr uint32_t kPrivateBrowsingIdCount = 2;
+
+}  // namespace mozilla::dom
+
+#endif  // DOM_STORAGE_STORAGECOMMON_H_
diff --git a/dom/storage/StorageDBThread.cpp b/dom/storage/StorageDBThread.cpp
index 3b1fe8d62404b2b0a8852a97fac18b6b732da165..94f3466375137f3c19a568c4dfb883514b3ccc3d 100644
--- a/dom/storage/StorageDBThread.cpp
+++ b/dom/storage/StorageDBThread.cpp
@@ -5,6 +5,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "StorageDBThread.h"
+
+#include "StorageCommon.h"
 #include "StorageDBUpdater.h"
 #include "StorageUtils.h"
 #include "LocalStorageCache.h"
@@ -53,10 +55,10 @@ using namespace StorageUtils;
 
 namespace {  // anon
 
-StorageDBThread* sStorageThread[2] = {nullptr, nullptr};
+StorageDBThread* sStorageThread[kPrivateBrowsingIdCount] = {nullptr, nullptr};
 
 // False until we shut the storage thread down.
-bool sStorageThreadDown[2] = {false, false};
+bool sStorageThreadDown[kPrivateBrowsingIdCount] = {false, false};
 
 }  // namespace
 
@@ -106,7 +108,9 @@ class StorageDBThread::NoteBackgroundThreadRunnable final : public Runnable {
   explicit NoteBackgroundThreadRunnable(const uint32_t aPrivateBrowsingId)
       : Runnable("dom::StorageDBThread::NoteBackgroundThreadRunnable"),
         mPrivateBrowsingId(aPrivateBrowsingId),
-        mOwningThread(GetCurrentEventTarget()) {}
+        mOwningThread(GetCurrentEventTarget()) {
+    MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
+  }
 
  private:
   ~NoteBackgroundThreadRunnable() override = default;
@@ -126,13 +130,13 @@ StorageDBThread::StorageDBThread(const uint32_t aPrivateBrowsingId)
       mFlushImmediately(false),
       mPrivateBrowsingId(aPrivateBrowsingId),
       mPriorityCounter(0) {
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
 }
 
 // static
 StorageDBThread* StorageDBThread::Get(const uint32_t aPrivateBrowsingId) {
   ::mozilla::ipc::AssertIsOnBackgroundThread();
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
 
   return sStorageThread[aPrivateBrowsingId];
 }
@@ -141,7 +145,7 @@ StorageDBThread* StorageDBThread::Get(const uint32_t aPrivateBrowsingId) {
 StorageDBThread* StorageDBThread::GetOrCreate(
     const nsString& aProfilePath, const uint32_t aPrivateBrowsingId) {
   ::mozilla::ipc::AssertIsOnBackgroundThread();
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
 
   StorageDBThread*& storageThread = sStorageThread[aPrivateBrowsingId];
   if (storageThread || sStorageThreadDown[aPrivateBrowsingId]) {
@@ -1608,6 +1612,7 @@ StorageDBThread::ShutdownRunnable::Run() {
   }
 
   ::mozilla::ipc::AssertIsOnBackgroundThread();
+  MOZ_RELEASE_ASSERT(mPrivateBrowsingId < kPrivateBrowsingIdCount);
 
   StorageDBThread*& storageThread = sStorageThread[mPrivateBrowsingId];
   if (storageThread) {
diff --git a/dom/storage/StorageIPC.cpp b/dom/storage/StorageIPC.cpp
index 77e532a9a42c971bfab74825fa6d1abfd918395c..6882dbcf560a4430b80632dfbfc76bb6e81aabb9 100644
--- a/dom/storage/StorageIPC.cpp
+++ b/dom/storage/StorageIPC.cpp
@@ -6,6 +6,7 @@
 
 #include "StorageIPC.h"
 
+#include "StorageCommon.h"
 #include "StorageUtils.h"
 #include "LocalStorageManager.h"
 #include "SessionStorageObserver.h"
@@ -33,10 +34,10 @@ typedef nsClassHashtable<nsCStringHashKey, nsTArray<LocalStorageCacheParent*>>
 
 StaticAutoPtr<LocalStorageCacheParentHashtable> gLocalStorageCacheParents;
 
-StorageDBChild* sStorageChild[2] = {nullptr, nullptr};
+StorageDBChild* sStorageChild[kPrivateBrowsingIdCount] = {nullptr, nullptr};
 
 // False until we shut the storage child down.
-bool sStorageChildDown[2] = {false, false};
+bool sStorageChildDown[kPrivateBrowsingIdCount] = {false, false};
 
 }  // namespace
 
@@ -119,6 +120,7 @@ class StorageDBChild::ShutdownObserver final : public nsIObserver {
   explicit ShutdownObserver(const uint32_t aPrivateBrowsingId)
       : mPrivateBrowsingId(aPrivateBrowsingId) {
     MOZ_ASSERT(NS_IsMainThread());
+    MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
   }
 
   NS_DECL_ISUPPORTS
@@ -146,7 +148,7 @@ StorageDBChild::StorageDBChild(LocalStorageManager* aManager,
       mPrivateBrowsingId(aPrivateBrowsingId),
       mStatus(NS_OK),
       mIPCOpen(false) {
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
   MOZ_ASSERT(!NextGenLocalStorageEnabled());
 }
 
@@ -155,7 +157,7 @@ StorageDBChild::~StorageDBChild() = default;
 // static
 StorageDBChild* StorageDBChild::Get(const uint32_t aPrivateBrowsingId) {
   MOZ_ASSERT(NS_IsMainThread());
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
   MOZ_ASSERT(!NextGenLocalStorageEnabled());
 
   return sStorageChild[aPrivateBrowsingId];
@@ -164,7 +166,7 @@ StorageDBChild* StorageDBChild::Get(const uint32_t aPrivateBrowsingId) {
 // static
 StorageDBChild* StorageDBChild::GetOrCreate(const uint32_t aPrivateBrowsingId) {
   MOZ_ASSERT(NS_IsMainThread());
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
   MOZ_ASSERT(!NextGenLocalStorageEnabled());
 
   StorageDBChild*& storageChild = sStorageChild[aPrivateBrowsingId];
@@ -1484,6 +1486,11 @@ PBackgroundStorageParent* AllocPBackgroundStorageParent(
     const nsString& aProfilePath, const uint32_t& aPrivateBrowsingId) {
   ::mozilla::ipc::AssertIsOnBackgroundThread();
 
+  if (NS_WARN_IF(NextGenLocalStorageEnabled()) ||
+      NS_WARN_IF(aPrivateBrowsingId >= kPrivateBrowsingIdCount)) {
+    return nullptr;
+  }
+
   return new StorageDBParent(aProfilePath, aPrivateBrowsingId);
 }
 
@@ -1492,6 +1499,8 @@ mozilla::ipc::IPCResult RecvPBackgroundStorageConstructor(
     const uint32_t& aPrivateBrowsingId) {
   ::mozilla::ipc::AssertIsOnBackgroundThread();
   MOZ_ASSERT(aActor);
+  MOZ_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
+  MOZ_ASSERT(!NextGenLocalStorageEnabled());
 
   auto* actor = static_cast<StorageDBParent*>(aActor);
   actor->Init();
diff --git a/dom/storage/StorageObserver.cpp b/dom/storage/StorageObserver.cpp
index 468a13e6ec7e7efb0ce92e2ce4a75af5f8de79f1..e4b8da0ef6fec2d3b7496a73fded074fb0bb533a 100644
--- a/dom/storage/StorageObserver.cpp
+++ b/dom/storage/StorageObserver.cpp
@@ -7,6 +7,7 @@
 #include "StorageObserver.h"
 
 #include "LocalStorageCache.h"
+#include "StorageCommon.h"
 #include "StorageDBThread.h"
 #include "StorageIPC.h"
 #include "StorageUtils.h"
@@ -46,6 +47,8 @@ StorageObserver* StorageObserver::sSelf = nullptr;
 
 // static
 nsresult StorageObserver::Init() {
+  static_assert(kPrivateBrowsingIdCount * sizeof(mBackgroundThread[0]) ==
+                sizeof(mBackgroundThread));
   if (sSelf) {
     return NS_OK;
   }
@@ -135,7 +138,7 @@ void StorageObserver::Notify(const char* aTopic,
 
 void StorageObserver::NoteBackgroundThread(const uint32_t aPrivateBrowsingId,
                                            nsIEventTarget* aBackgroundThread) {
-  MOZ_ASSERT(aPrivateBrowsingId <= 1);
+  MOZ_RELEASE_ASSERT(aPrivateBrowsingId < kPrivateBrowsingIdCount);
 
   mBackgroundThread[aPrivateBrowsingId] = aBackgroundThread;
 }
diff --git a/dom/system/IOUtils.cpp b/dom/system/IOUtils.cpp
index 26183864f6980f5ddf24a67e2dea10f36d1a2cbb..5044278990aeffd87067d3dd1b8cbfcdd64bb160 100644
--- a/dom/system/IOUtils.cpp
+++ b/dom/system/IOUtils.cpp
@@ -1261,43 +1261,29 @@ Result<Ok, IOUtils::IOError> IOUtils::MakeDirectorySync(nsIFile* aFile,
                                                         int32_t aMode) {
   MOZ_ASSERT(!NS_IsMainThread());
 
-  // nsIFile::Create will create ancestor directories by default.
-  // If the caller does not want this behaviour, then check and possibly
-  // return an error.
-  if (!aCreateAncestors) {
-    nsCOMPtr<nsIFile> parent;
-    MOZ_TRY(aFile->GetParent(getter_AddRefs(parent)));
-    if (parent) {
-      bool parentExists = false;
-      MOZ_TRY(parent->Exists(&parentExists));
-      if (!parentExists) {
-        return Err(IOError(NS_ERROR_FILE_NOT_FOUND)
-                       .WithMessage("Could not create directory at %s because "
-                                    "the path has missing "
-                                    "ancestor components",
-                                    aFile->HumanReadablePath().get()));
-      }
-    } else {
-      // If we don't have a parent directory, which means this was called with a
-      // root directory. If the directory doesn't already exist (e.g., asking
-      // for a drive on Windows that does not exist), we will not be able to
-      // create it.
-      //
-      // Calling `nsLocalFile::Create()` on Windows can fail with
-      // `NS_ERROR_ACCESS_DENIED` trying to create a root directory, but we
-      // would rather the call succeed, so return early if the directory exists.
-      //
-      // Otherwise, we fall through to `nsiFile::Create()` and let it fail there
-      // instead.
-      bool exists = false;
-      MOZ_TRY(aFile->Exists(&exists));
-      if (exists) {
-        return Ok();
-      }
+  nsCOMPtr<nsIFile> parent;
+  MOZ_TRY(aFile->GetParent(getter_AddRefs(parent)));
+  if (!parent) {
+    // If we don't have a parent directory, we were called with a
+    // root directory. If the directory doesn't already exist (e.g., asking
+    // for a drive on Windows that does not exist), we will not be able to
+    // create it.
+    //
+    // Calling `nsLocalFile::Create()` on Windows can fail with
+    // `NS_ERROR_ACCESS_DENIED` trying to create a root directory, but we
+    // would rather the call succeed, so return early if the directory exists.
+    //
+    // Otherwise, we fall through to `nsiFile::Create()` and let it fail there
+    // instead.
+    bool exists = false;
+    MOZ_TRY(aFile->Exists(&exists));
+    if (exists) {
+      return Ok();
     }
   }
 
-  nsresult rv = aFile->Create(nsIFile::DIRECTORY_TYPE, aMode);
+  nsresult rv =
+      aFile->Create(nsIFile::DIRECTORY_TYPE, aMode, !aCreateAncestors);
   if (NS_FAILED(rv)) {
     if (rv == NS_ERROR_FILE_ALREADY_EXISTS) {
       // NB: We may report a success only if the target is an existing
diff --git a/dom/system/tests/ioutils/test_ioutils_mkdir.html b/dom/system/tests/ioutils/test_ioutils_mkdir.html
index 0581f1d75f0744d34d5fec1a8392c77a1153ec59..23c69376561a61faf12ce464ef1726ff4ac98acf 100644
--- a/dom/system/tests/ioutils/test_ioutils_mkdir.html
+++ b/dom/system/tests/ioutils/test_ioutils_mkdir.html
@@ -46,7 +46,7 @@
       );
       await Assert.rejects(
         IOUtils.makeDirectory(nestedDirName, { createAncestors: false }),
-        /Could not create directory at .* because the path has missing ancestor components/,
+        /Could not create directory at .*/,
         "IOUtils::makeDirectory can fail if the target is missing parents"
       );
       ok(!await IOUtils.exists(nestedDirName), `Expected ${nestedDirName} not to exist`);
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp
index 3fda0a78fd2359f666877017b171b9214bff722d..c3e3f56834d726ea8e172d764a6f769e3f11e984 100644
--- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp
@@ -931,7 +931,7 @@ class WorkerJSContext final : public mozilla::CycleCollectedJSContext {
     MOZ_ASSERT(!NS_IsMainThread());
     MOZ_ASSERT(runnable);
 
-    std::queue<RefPtr<MicroTaskRunnable>>* microTaskQueue = nullptr;
+    std::deque<RefPtr<MicroTaskRunnable>>* microTaskQueue = nullptr;
 
     JSContext* cx = Context();
     NS_ASSERTION(cx, "This should never be null!");
@@ -953,7 +953,7 @@ class WorkerJSContext final : public mozilla::CycleCollectedJSContext {
     }
 
     JS::JobQueueMayNotBeEmpty(cx);
-    microTaskQueue->push(std::move(runnable));
+    microTaskQueue->push_back(std::move(runnable));
   }
 
   bool IsSystemCaller() const override {
diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp
index af627f33d86d568078d25051108147b2468a7557..10099edc933e1a6e7b4b8a53740a067d372d937e 100644
--- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp
@@ -4313,7 +4313,7 @@ void WorkerPrivate::EnterDebuggerEventLoop() {
     {
       MutexAutoLock lock(mMutex);
 
-      std::queue<RefPtr<MicroTaskRunnable>>& debuggerMtQueue =
+      std::deque<RefPtr<MicroTaskRunnable>>& debuggerMtQueue =
           ccjscx->GetDebuggerMicroTaskQueue();
       while (mControlQueue.IsEmpty() &&
              !(debuggerRunnablesPending = !mDebuggerQueue.IsEmpty()) &&
diff --git a/dom/worklet/WorkletThread.cpp b/dom/worklet/WorkletThread.cpp
index c672dfb21b8b481cee6a7a714c5423011588ddff..fae1a1c550d16a400d5c9f2e6a8ea3ab343da054 100644
--- a/dom/worklet/WorkletThread.cpp
+++ b/dom/worklet/WorkletThread.cpp
@@ -159,7 +159,7 @@ class WorkletJSContext final : public CycleCollectedJSContext {
 #endif
 
     JS::JobQueueMayNotBeEmpty(cx);
-    GetMicroTaskQueue().push(std::move(runnable));
+    GetMicroTaskQueue().push_back(std::move(runnable));
   }
 
   bool IsSystemCaller() const override {
diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp
index 96885e2082e305c3b529852523d546835d052007..323a137c97b47fcc14c85746ffbe6e22fd172e4f 100644
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -1828,15 +1828,9 @@ nsresult HTMLEditor::InsertElementAtSelectionAsAction(
     return NS_OK;
   }
 
-  Element* editingHost = GetActiveEditingHost();
+  Element* editingHost = GetActiveEditingHost(LimitInBodyElement::No);
   if (NS_WARN_IF(!editingHost)) {
-    // In theory, we should return NS_ERROR_FAILURE here, but we've not
-    // thrown exception in this case.  Therefore, we should allow to use
-    // the root element instead for now.
-    editingHost = GetRoot();
-    if (NS_WARN_IF(!editingHost)) {
-      return EditorBase::ToGenericNSResult(NS_ERROR_FAILURE);
-    }
+    return EditorBase::ToGenericNSResult(NS_ERROR_FAILURE);
   }
 
   EditorRawDOMPoint atAnchor(SelectionRef().AnchorRef());
diff --git a/editor/libeditor/HTMLEditorDataTransfer.cpp b/editor/libeditor/HTMLEditorDataTransfer.cpp
index 3adaf8caf0b614587ec8b1eb0ef1033e00fc85f4..7b5a3ccd87b3705835892d1a1d90924d84e2ce8e 100644
--- a/editor/libeditor/HTMLEditorDataTransfer.cpp
+++ b/editor/libeditor/HTMLEditorDataTransfer.cpp
@@ -674,16 +674,10 @@ nsresult HTMLEditor::HTMLWithContextInserter::Run(
     }
   }
 
-  Element* editingHost = mHTMLEditor.GetActiveEditingHost();
+  Element* editingHost =
+      mHTMLEditor.GetActiveEditingHost(HTMLEditor::LimitInBodyElement::No);
   if (NS_WARN_IF(!editingHost)) {
-    // In theory, we should return NS_ERROR_FAILURE here, but we've not
-    // thrown exception in this case.  Therefore, we should allow to use
-    // the root element instead for now.
-    // XXX test_bug795418-2.html depends on this behavior
-    editingHost = mHTMLEditor.GetRoot();
-    if (NS_WARN_IF(!editingHost)) {
-      return NS_ERROR_FAILURE;
-    }
+    return NS_ERROR_FAILURE;
   }
 
   // Adjust position based on the first node we are going to insert.
diff --git a/editor/libeditor/crashtests/crashtests.list b/editor/libeditor/crashtests/crashtests.list
index 897e534c2b6cb8751b13d8a64b5329e2047467be..8e47d3975fa2dcee10649c5030030ddc154ea8e7 100644
--- a/editor/libeditor/crashtests/crashtests.list
+++ b/editor/libeditor/crashtests/crashtests.list
@@ -101,7 +101,7 @@ asserts(0-1) load 1414581.html
 load 1415231.html
 load 1423767.html
 needs-focus load 1423776.html
-needs-focus load 1424450.html
+skip-if(ThreadSanitizer) needs-focus load 1424450.html # bug 1718775, permafail on tsan
 load 1425091.html
 load 1426709.html
 needs-focus load 1429523.html
diff --git a/editor/libeditor/tests/mochitest.ini b/editor/libeditor/tests/mochitest.ini
index 3060e81a973d53ebcd30d3ac3008e916fb59bebb..63c6bb76618fbacf561f1a4b1beb8cbd44d07b4f 100644
--- a/editor/libeditor/tests/mochitest.ini
+++ b/editor/libeditor/tests/mochitest.ini
@@ -300,6 +300,7 @@ skip-if = headless
 [test_password_per_word_operation.html]
 [test_password_unmask_API.html]
 [test_pasting_in_root_element.xhtml]
+[test_pasting_in_temporarily_created_div_outside_body.html]
 [test_pasting_text_longer_than_maxlength.html]
 [test_resizers_appearance.html]
 [test_resizers_resizing_elements.html]
diff --git a/editor/libeditor/tests/test_pasting_in_temporarily_created_div_outside_body.html b/editor/libeditor/tests/test_pasting_in_temporarily_created_div_outside_body.html
new file mode 100644
index 0000000000000000000000000000000000000000..05250be0492e6126ffd680bac4fb790afac8cb65
--- /dev/null
+++ b/editor/libeditor/tests/test_pasting_in_temporarily_created_div_outside_body.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<html>
+<head>
+<title>Test for paste in temporarily created div element outside the body element</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<script src="/tests/SimpleTest/EventUtils.js"></script>
+<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+<script>
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(async () => {
+  const editor = document.querySelector("div[contenteditable]");
+  const heading = document.querySelector("h1");
+  getSelection().setBaseAndExtent(heading.firstChild, "So".length,
+                                  heading.firstChild, "Some te".length);
+  try {
+    await SimpleTest.promiseClipboardChange(
+      "me te", () => synthesizeKey("c", {accelKey: true}));
+  } catch (ex) {
+    ok(false, `Failed to copy selected text: ${ex}`);
+    SimpleTest.finish();
+  }
+  editor.focus();
+  editor.addEventListener("paste", () => {
+    const anotherEditor = document.createElement("div");
+    anotherEditor.setAttribute("contenteditable", "true");
+    document.documentElement.appendChild(anotherEditor);
+    anotherEditor.focus();
+  }, {once: true});
+  synthesizeKey("v", {accelKey: true});
+  const tempEditor = document.documentElement.lastChild;
+  is(tempEditor.nodeName.toLocaleLowerCase(), "div",
+    "Paste event handler should've inserted another editor");
+  is(tempEditor.textContent.trim(), "me te");
+  SimpleTest.finish();
+});
+</script>
+</head>
+<body>
+  <h1>Some text</h1>
+  <div contenteditable></div>
+</body>
+</html>
diff --git a/extensions/permissions/PermissionManager.cpp b/extensions/permissions/PermissionManager.cpp
index b86230dc41c2649edb5efa9f1686dc1176326066..c7eeaa40413bf54c1cd2a69e007ef0996c7c1435 100644
--- a/extensions/permissions/PermissionManager.cpp
+++ b/extensions/permissions/PermissionManager.cpp
@@ -1585,8 +1585,10 @@ nsresult PermissionManager::AddInternal(
 
   // For private browsing only store permissions for the session. Except for
   // default permissions which are stored in-memory only and imported each
-  // startup.
-  if (aID != cIDPermissionIsDefault && aExpireType != EXPIRE_SESSION) {
+  // startup. We also allow setting persistent UKNOWN_ACTION, to support
+  // removing default private browsing permissions.
+  if (aID != cIDPermissionIsDefault && aPermission != UNKNOWN_ACTION &&
+      aExpireType != EXPIRE_SESSION) {
     uint32_t privateBrowsingId =
         nsScriptSecurityManager::DEFAULT_PRIVATE_BROWSING_ID;
     nsresult rv = aPrincipal->GetPrivateBrowsingId(&privateBrowsingId);
diff --git a/gfx/cairo/cairo/src/cairo-quartz-font.c b/gfx/cairo/cairo/src/cairo-quartz-font.c
index 8cb71434f89ec857302b590d92faec4790a2ec8e..48f79d1680920d863cff6ffee876fa628898621e 100644
--- a/gfx/cairo/cairo/src/cairo-quartz-font.c
+++ b/gfx/cairo/cairo/src/cairo-quartz-font.c
@@ -88,6 +88,8 @@ static CGPathRef (*CGFontGetGlyphPathPtr) (CGFontRef fontRef, CGAffineTransform
 typedef const struct __CTFontDescriptor *CTFontDescriptorRef;
 static CTFontRef (*CTFontCreateWithGraphicsFontPtr) (CGFontRef, CGFloat, const CGAffineTransform*, CTFontDescriptorRef) = NULL;
 static CGPathRef (*CTFontCreatePathForGlyphPtr) (CTFontRef, CGGlyph, CGAffineTransform *) = NULL;
+static double (*CTFontGetAdvancesForGlyphsPtr) (CTFontRef, CTFontOrientation, const CGGlyph*, CGSize *, CFIndex) = NULL;
+static CGRect (*CTFontGetBoundingRectsForGlyphsPtr) (CTFontRef, CTFontOrientation, const CGGlyph*, CGRect *, CFIndex) = NULL;
 
 /* CGFontGetHMetrics isn't public, but the other functions are public/present in 10.5 */
 typedef struct {
@@ -137,10 +139,22 @@ quartz_font_ensure_symbols(void)
     CGFontGetUnitsPerEmPtr = dlsym(RTLD_DEFAULT, "CGFontGetUnitsPerEm");
     CGFontGetGlyphAdvancesPtr = dlsym(RTLD_DEFAULT, "CGFontGetGlyphAdvances");
 
-    CTFontCreateWithGraphicsFontPtr = dlsym(RTLD_DEFAULT, "CTFontCreateWithGraphicsFont");
+    /*
+     * Some Tiger systems have a partial version of CoreText, which
+     * has incompatible signatures: CTFontCreateWithGraphicsFont
+     * accepts a double for the size argument even on i386 and all
+     * functions omit the CTFontOrientation arguments. Since the 10.4
+     * CoreText library does not provide the CTFontCreatePathForGlyph
+     * symbol, use it to determine whether to use CoreText at all.
+     */
     CTFontCreatePathForGlyphPtr = dlsym(RTLD_DEFAULT, "CTFontCreatePathForGlyph");
-    if (!CTFontCreateWithGraphicsFontPtr || !CTFontCreatePathForGlyphPtr)
+    if (CTFontCreatePathForGlyphPtr) {
+	CTFontCreateWithGraphicsFontPtr = dlsym(RTLD_DEFAULT, "CTFontCreateWithGraphicsFont");
+	CTFontGetAdvancesForGlyphsPtr = dlsym(RTLD_DEFAULT, "CTFontGetAdvancesForGlyphs");
+	CTFontGetBoundingRectsForGlyphsPtr = dlsym(RTLD_DEFAULT, "CTFontGetBoundingRectsForGlyphs");
+    } else {
 	CGFontGetGlyphPathPtr = dlsym(RTLD_DEFAULT, "CGFontGetGlyphPath");
+    }
 
     CGFontGetHMetricsPtr = dlsym(RTLD_DEFAULT, "CGFontGetHMetrics");
     CGFontGetAscentPtr = dlsym(RTLD_DEFAULT, "CGFontGetAscent");
@@ -175,6 +189,7 @@ struct _cairo_quartz_font_face {
     cairo_font_face_t base;
 
     CGFontRef cgFont;
+    CTFontRef ctFont;
 };
 
 /*
@@ -259,6 +274,9 @@ _cairo_quartz_font_face_destroy (void *abstract_face)
 {
     cairo_quartz_font_face_t *font_face = (cairo_quartz_font_face_t*) abstract_face;
 
+    if (font_face->ctFont)
+	CFRelease (font_face->ctFont);
+
     CGFontRelease (font_face->cgFont);
     return TRUE;
 }
@@ -384,6 +402,11 @@ cairo_quartz_font_face_create_for_cgfont (CGFontRef font)
 
     font_face->cgFont = CGFontRetain (font);
 
+    if (CTFontCreateWithGraphicsFontPtr)
+	font_face->ctFont = CTFontCreateWithGraphicsFontPtr (font, 1.0, NULL, NULL);
+    else
+	font_face->ctFont = NULL;
+
     _cairo_font_face_init (&font_face->base, &_cairo_quartz_font_face_backend);
 
     return &font_face->base;
@@ -424,30 +447,47 @@ _cairo_quartz_init_glyph_metrics (cairo_quartz_scaled_font_t *font,
     CGGlyph glyph = _cairo_quartz_scaled_glyph_index (scaled_glyph);
     int advance;
     CGRect bbox;
-    double emscale = CGFontGetUnitsPerEmPtr (font_face->cgFont);
     double xmin, ymin, xmax, ymax;
 
     if (unlikely (glyph == CGGLYPH_INVALID))
 	goto FAIL;
 
-    if (!CGFontGetGlyphAdvancesPtr (font_face->cgFont, &glyph, 1, &advance) ||
-	!CGFontGetGlyphBBoxesPtr (font_face->cgFont, &glyph, 1, &bbox))
-	goto FAIL;
+    if (font_face->ctFont) {
+	CGSize advanceSize;
+	CTFontGetBoundingRectsForGlyphsPtr (font_face->ctFont,
+					    kCTFontOrientationDefault,
+					    &glyph, &bbox, 1);
+
+	CTFontGetAdvancesForGlyphsPtr (font_face->ctFont,
+				       kCTFontOrientationDefault,
+				       &glyph, &advanceSize, 1);
+
+	extents.x_advance = advanceSize.width;
+	extents.y_advance = advanceSize.height;
+    } else if (CGFontGetGlyphAdvancesPtr (font_face->cgFont, &glyph, 1, &advance) &&
+	       CGFontGetGlyphBBoxesPtr (font_face->cgFont, &glyph, 1, &bbox)) {
+	double emscale = CGFontGetUnitsPerEmPtr (font_face->cgFont);
+
+	/* broken fonts like Al Bayan return incorrect bounds for some null
+	 * characters,see https://bugzilla.mozilla.org/show_bug.cgi?id=534260 */
+	if (unlikely (bbox.origin.x == -32767 &&
+		      bbox.origin.y == -32767 &&
+		      bbox.size.width == 65534 &&
+		      bbox.size.height == 65534)) {
+	    bbox.origin.x = bbox.origin.y = 0;
+	    bbox.size.width = bbox.size.height = 0;
+	}
 
-    /* broken fonts like Al Bayan return incorrect bounds for some null characters,
-       see https://bugzilla.mozilla.org/show_bug.cgi?id=534260 */
-    if (unlikely (bbox.origin.x == -32767 &&
-                  bbox.origin.y == -32767 &&
-                  bbox.size.width == 65534 &&
-                  bbox.size.height == 65534)) {
-        bbox.origin.x = bbox.origin.y = 0;
-        bbox.size.width = bbox.size.height = 0;
-    }
+	bbox = CGRectMake (bbox.origin.x / emscale,
+			   bbox.origin.y / emscale,
+			   bbox.size.width / emscale,
+			   bbox.size.height / emscale);
 
-    bbox = CGRectMake (bbox.origin.x / emscale,
-		       bbox.origin.y / emscale,
-		       bbox.size.width / emscale,
-		       bbox.size.height / emscale);
+	extents.x_advance = advance / emscale;
+	extents.y_advance = 0.0;
+    } else {
+	goto FAIL;
+    };
 
     /* Should we want to always integer-align glyph extents, we can do so in this way */
 #if 0
@@ -465,12 +505,6 @@ _cairo_quartz_init_glyph_metrics (cairo_quartz_scaled_font_t *font,
     }
 #endif
 
-#if 0
-    fprintf (stderr, "[0x%04x] bbox: %f %f %f %f\n", glyph,
-	     bbox.origin.x / emscale, bbox.origin.y / emscale,
-	     bbox.size.width / emscale, bbox.size.height / emscale);
-#endif
-
     xmin = CGRectGetMinX(bbox);
     ymin = CGRectGetMinY(bbox);
     xmax = CGRectGetMaxX(bbox);
@@ -481,9 +515,6 @@ _cairo_quartz_init_glyph_metrics (cairo_quartz_scaled_font_t *font,
     extents.width = xmax - xmin;
     extents.height = ymax - ymin;
 
-    extents.x_advance = (double) advance / emscale;
-    extents.y_advance = 0.0;
-
 #if 0
     fprintf (stderr, "[0x%04x] extents: bearings: %f %f dim: %f %f adv: %f\n\n", glyph,
 	     extents.x_bearing, extents.y_bearing, extents.width, extents.height, extents.x_advance);
@@ -573,10 +604,8 @@ _cairo_quartz_init_glyph_path (cairo_quartz_scaled_font_t *font,
 					-font->base.scale.yy,
 					0, 0);
 
-    if (CTFontCreateWithGraphicsFontPtr && CTFontCreatePathForGlyphPtr) {
-	CTFontRef ctFont = CTFontCreateWithGraphicsFontPtr (font_face->cgFont, 1.0, NULL, NULL);
-	glyphPath = CTFontCreatePathForGlyphPtr (ctFont, glyph, &textMatrix);
-	CFRelease (ctFont);
+    if (font_face->ctFont) {
+	glyphPath = CTFontCreatePathForGlyphPtr (font_face->ctFont, glyph, &textMatrix);
     } else {
 	glyphPath = CGFontGetGlyphPathPtr (font_face->cgFont, &textMatrix, 0, glyph);
     }
@@ -830,6 +859,14 @@ _cairo_quartz_scaled_font_get_cg_font_ref (cairo_scaled_font_t *abstract_font)
     return ffont->cgFont;
 }
 
+CTFontRef
+_cairo_quartz_scaled_font_get_ct_font_ref (cairo_scaled_font_t *abstract_font)
+{
+    cairo_quartz_font_face_t *ffont = _cairo_quartz_scaled_to_face(abstract_font);
+
+    return ffont->ctFont;
+}
+
 /*
  * compat with old ATSUI backend
  */
diff --git a/gfx/cairo/cairo/src/cairo-quartz-private.h b/gfx/cairo/cairo/src/cairo-quartz-private.h
index 4f533524a81c519b1356ff09e97804da864cb98f..5c0cf2dc47af434e0b02203942a18b1284b05d4d 100644
--- a/gfx/cairo/cairo/src/cairo-quartz-private.h
+++ b/gfx/cairo/cairo/src/cairo-quartz-private.h
@@ -107,6 +107,9 @@ CairoQuartzCreateCGImage (cairo_format_t format,
 cairo_private CGFontRef
 _cairo_quartz_scaled_font_get_cg_font_ref (cairo_scaled_font_t *sfont);
 
+cairo_private CTFontRef
+_cairo_quartz_scaled_font_get_ct_font_ref (cairo_scaled_font_t *sfont);
+
 #else
 
 # error Cairo was not compiled with support for the quartz backend
diff --git a/gfx/cairo/cairo/src/cairo-quartz-surface.c b/gfx/cairo/cairo/src/cairo-quartz-surface.c
index d9bcd7bbfa4f4b5f4bd53789268837103540713b..e67425e80d7f9fac3794525f472bd54b08740582 100644
--- a/gfx/cairo/cairo/src/cairo-quartz-surface.c
+++ b/gfx/cairo/cairo/src/cairo-quartz-surface.c
@@ -124,6 +124,9 @@ static void (*CGContextSetAllowsFontSmoothingPtr) (CGContextRef, bool) = NULL;
 static unsigned int (*CGContextGetTypePtr) (CGContextRef) = NULL;
 static bool (*CGContextGetAllowsFontSmoothingPtr) (CGContextRef) = NULL;
 
+/* CTFontDrawGlyphs is not available until 10.7 */
+static void (*CTFontDrawGlyphsPtr) (CTFontRef, const CGGlyph[], const CGPoint[], size_t, CGContextRef) = NULL;
+
 static cairo_bool_t _cairo_quartz_symbol_lookup_done = FALSE;
 
 /*
@@ -153,6 +156,8 @@ static void quartz_ensure_symbols (void)
     CGContextGetAllowsFontSmoothingPtr = dlsym (RTLD_DEFAULT, "CGContextGetAllowsFontSmoothing");
     CGContextSetAllowsFontSmoothingPtr = dlsym (RTLD_DEFAULT, "CGContextSetAllowsFontSmoothing");
 
+    CTFontDrawGlyphsPtr = dlsym(RTLD_DEFAULT, "CTFontDrawGlyphs");
+
     _cairo_quartz_symbol_lookup_done = TRUE;
 }
 
@@ -2056,11 +2061,12 @@ _cairo_quartz_cg_glyphs (const cairo_compositor_t *compositor,
     CGSize cg_advances_static[CAIRO_STACK_ARRAY_LENGTH (CGSize)];
     CGGlyph *cg_glyphs = &glyphs_static[0];
     CGSize *cg_advances = &cg_advances_static[0];
+    CGPoint *cg_positions;
     COMPILE_TIME_ASSERT (sizeof (CGGlyph) <= sizeof (CGSize));
+    COMPILE_TIME_ASSERT (sizeof (CGPoint) == sizeof (CGSize));
 
     cairo_quartz_drawing_state_t state;
     cairo_int_status_t rv = CAIRO_INT_STATUS_UNSUPPORTED;
-    cairo_quartz_float_t xprev, yprev;
     int i;
     CGFontRef cgfref = NULL;
 
@@ -2118,13 +2124,15 @@ _cairo_quartz_cg_glyphs (const cairo_compositor_t *compositor,
     }
 
     if (num_glyphs > ARRAY_LENGTH (glyphs_static)) {
-	cg_glyphs = (CGGlyph*) _cairo_malloc_ab (num_glyphs, sizeof (CGGlyph) + sizeof (CGSize));
-	if (unlikely (cg_glyphs == NULL)) {
+	cg_advances = _cairo_malloc_ab (num_glyphs,
+					sizeof (CGSize) + sizeof (CGGlyph));
+
+	if (unlikely (cg_advances == NULL)) {
 	    rv = _cairo_error (CAIRO_STATUS_NO_MEMORY);
 	    goto BAIL;
 	}
 
-	cg_advances = (CGSize*) (cg_glyphs + num_glyphs);
+	cg_glyphs = (CGGlyph*) (cg_advances + num_glyphs);
     }
 
     /* scale(1,-1) * scaled_font->scale */
@@ -2141,34 +2149,58 @@ _cairo_quartz_cg_glyphs (const cairo_compositor_t *compositor,
 					      -scaled_font->scale_inverse.yy,
 					      0.0, 0.0);
 
-    CGContextSetTextPosition (state.cgMaskContext, 0.0, 0.0);
+    /*
+     * CGContextShowGlyphsWithAdvances does not transform the advances
+     * by the text matrix, if the drawing mode is kCGTextClip. Instead
+     * of trying to recompute the advances, make sure that the text
+     * matrix is the identity and rely on the CTM for the text
+     * transform.
+     */
     CGContextSetTextMatrix (state.cgMaskContext, CGAffineTransformIdentity);
+    CGContextTranslateCTM (state.cgMaskContext, glyphs[0].x, glyphs[0].y);
+    CGContextConcatCTM (state.cgMaskContext, textTransform);
 
-    /* Convert our glyph positions to glyph advances.  We need n-1 advances,
-     * since the advance at index 0 is applied after glyph 0. */
-    xprev = glyphs[0].x;
-    yprev = glyphs[0].y;
-
+    /* Convert glyph positions to glyph advances. */
     cg_glyphs[0] = glyphs[0].index;
-
     for (i = 1; i < num_glyphs; i++) {
-	cairo_quartz_float_t xf = glyphs[i].x;
-	cairo_quartz_float_t yf = glyphs[i].y;
+	CGSize advance = CGSizeMake (glyphs[i].x - glyphs[i-1].x,
+				     glyphs[i].y - glyphs[i-1].y);
+	cg_advances[i] = CGSizeApplyAffineTransform (advance, invTextTransform);
 	cg_glyphs[i] = glyphs[i].index;
-	cg_advances[i - 1] = CGSizeApplyAffineTransform (CGSizeMake (xf - xprev, yf - yprev), invTextTransform);
-	xprev = xf;
-	yprev = yf;
     }
 
-    /* Translate to the first glyph's position before drawing */
-    CGContextTranslateCTM (state.cgMaskContext, glyphs[0].x, glyphs[0].y);
-    CGContextConcatCTM (state.cgMaskContext, textTransform);
+    if (CTFontDrawGlyphsPtr) {
+	/* If CTFontDrawGlyphs is available, we want to use that
+	 * instead of the deprecated CGContextShowGlyphsWithAdvances
+	 * so that colored-bitmap fonts like Apple Color Emoji will
+	 * render properly. */
+
+	/* Accumulate the glyph advances into glyph positions,
+	 * overwriting them. Start at (0,0) because the CTM already
+	 * takes into account the position of the first glyph. */
+	CGPoint pos = CGPointMake (0, 0);
+	cg_positions = (CGPoint *) cg_advances;
+	cg_positions[0] = pos;
+	for (i = 1; i < num_glyphs; i++) {
+	    pos.x += cg_advances[i].width;
+	    pos.y += cg_advances[i].height;
+	    cg_positions[i] = pos;
+	}
 
-    CGContextShowGlyphsWithAdvances (state.cgMaskContext,
-				     cg_glyphs,
-				     cg_advances,
-				     num_glyphs);
+	CTFontDrawGlyphsPtr (_cairo_quartz_scaled_font_get_ct_font_ref (scaled_font),
+			     cg_glyphs,
+			     cg_positions,
+			     num_glyphs,
+			     state.cgMaskContext);
+    } else {
+	CGContextShowGlyphsWithAdvances (state.cgMaskContext,
+					 cg_glyphs,
+					 cg_advances + 1,
+					 num_glyphs);
+    }
 
+    /* Revert the changes to the CTM. This fragment cannot rely on
+     * CG{Save,Restore}GState, as that would reset the clip. */
     CGContextConcatCTM (state.cgMaskContext, invTextTransform);
     CGContextTranslateCTM (state.cgMaskContext, -glyphs[0].x, -glyphs[0].y);
 
@@ -2181,8 +2213,8 @@ BAIL:
 
     _cairo_quartz_teardown_state (&state, extents);
 
-    if (cg_glyphs != glyphs_static)
-	free (cg_glyphs);
+    if (cg_advances != cg_advances_static)
+	free (cg_advances);
 
     return rv;
 }
diff --git a/gfx/layers/apz/src/AsyncPanZoomController.cpp b/gfx/layers/apz/src/AsyncPanZoomController.cpp
index f6d27c939a707e49d5eb1ff344e7c45b7a9c9afb..5e8b46ac8314a1b4417f47a27d5b5a29f913194c 100644
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp
+++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp
@@ -5971,6 +5971,7 @@ void AsyncPanZoomController::ShareCompositorFrameMetrics() {
 }
 
 void AsyncPanZoomController::SetTestAsyncScrollOffset(const CSSPoint& aPoint) {
+  RecursiveMutexAutoLock lock(mRecursiveMutex);
   mTestAsyncScrollOffset = aPoint;
   ScheduleComposite();
 }
diff --git a/gfx/layers/apz/test/mochitest/mochitest.ini b/gfx/layers/apz/test/mochitest/mochitest.ini
index 48eac736ddd561c19c209f6c9aac8df57cfdb7d1..c28d77d638025485bf7bd0c32f667c8148419fd0 100644
--- a/gfx/layers/apz/test/mochitest/mochitest.ini
+++ b/gfx/layers/apz/test/mochitest/mochitest.ini
@@ -76,6 +76,7 @@
   skip-if =
     os == 'android'  # wheel events not supported on mobile
     xorigin  # JavaScript error: http://mochi.test:8888/tests/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js, line 10: Error: Permission denied to access property "getResolution"
+    os == 'linux' && fission && headless # Bug 1722907
 [test_relative_update.html]
   skip-if =
     os == 'android'  # wheel events not supported on mobile
@@ -111,6 +112,7 @@
   skip-if =
     toolkit == 'android'  # mouse events not supported on mobile
     os == 'win' && (bits == 32 || asan) && webrender
+    os == 'linux' && asan # stack is not large enough for the test
     xorigin  # Hangs
 [test_group_zoomToFocusedInput.html]
 [test_group_scroll_snap.html]
diff --git a/gfx/thebes/gfxTypes.h b/gfx/thebes/gfxTypes.h
index 74e99c8b3462fb93e077bf57a2d2485795241aa5..62c3142ddfa9f74993a929768d45a1bc82ff53c7 100644
--- a/gfx/thebes/gfxTypes.h
+++ b/gfx/thebes/gfxTypes.h
@@ -10,7 +10,7 @@
 #include "mozilla/TypedEnumBits.h"
 
 namespace mozilla {
-enum class StyleGenericFontFamily : uint8_t;
+enum class StyleGenericFontFamily : uint32_t;
 }
 
 typedef struct _cairo_surface cairo_surface_t;
diff --git a/gfx/wr/webrender/src/renderer/mod.rs b/gfx/wr/webrender/src/renderer/mod.rs
index 9e1fdcc7195dfb19a6825f4420cf3ea73af21c7b..f76fad32e7a970782d6cd9381f7a819daa0cbb00 100644
--- a/gfx/wr/webrender/src/renderer/mod.rs
+++ b/gfx/wr/webrender/src/renderer/mod.rs
@@ -3350,9 +3350,9 @@ impl Renderer {
 
             if tile.kind == TileKind::Clear {
                 // Clear tiles are specific to how we render the window buttons on
-                // Windows 8. We can get away with drawing them at the end on top
-                // of everything else, which we do to avoid having to juggle with
-                // the blend state.
+                // Windows 8. They clobber what's under them so they can be treated as opaque,
+                // but require a different blend state so they will be rendered after the opaque
+                // tiles and before transparent ones.
                 clear_tiles.push(occlusion::Item { rectangle: rect, key: idx });
                 continue;
             }
@@ -3404,13 +3404,12 @@ impl Renderer {
             self.gpu_profiler.finish_sampler(opaque_sampler);
         }
 
-        // Draw alpha tiles
-        if !occlusion.alpha_items().is_empty() {
+        if !clear_tiles.is_empty() {
             let transparent_sampler = self.gpu_profiler.start_sampler(GPU_SAMPLER_TAG_TRANSPARENT);
             self.set_blend(true, FramebufferKind::Main);
-            self.set_blend_mode_premultiplied_alpha(FramebufferKind::Main);
+            self.device.set_blend_mode_premultiplied_dest_out();
             self.draw_tile_list(
-                occlusion.alpha_items().iter().rev(),
+                clear_tiles.iter(),
                 &composite_state,
                 &composite_state.external_surfaces,
                 projection,
@@ -3419,12 +3418,13 @@ impl Renderer {
             self.gpu_profiler.finish_sampler(transparent_sampler);
         }
 
-        if !clear_tiles.is_empty() {
+        // Draw alpha tiles
+        if !occlusion.alpha_items().is_empty() {
             let transparent_sampler = self.gpu_profiler.start_sampler(GPU_SAMPLER_TAG_TRANSPARENT);
             self.set_blend(true, FramebufferKind::Main);
-            self.device.set_blend_mode_premultiplied_dest_out();
+            self.set_blend_mode_premultiplied_alpha(FramebufferKind::Main);
             self.draw_tile_list(
-                clear_tiles.iter(),
+                occlusion.alpha_items().iter().rev(),
                 &composite_state,
                 &composite_state.external_surfaces,
                 projection,
diff --git a/js/public/CompileOptions.h b/js/public/CompileOptions.h
index e37c28a46685776d01c3b3a5fb0765bb7a1de9ef..342586b9d06c463484381afeebf987178d9a666c 100644
--- a/js/public/CompileOptions.h
+++ b/js/public/CompileOptions.h
@@ -173,6 +173,8 @@ class JS_PUBLIC_API TransitiveCompileOptions {
   uint32_t introductionOffset = 0;
   bool hasIntroductionInfo = false;
 
+  bool useFdlibmForSinCosTan = false;
+
  protected:
   TransitiveCompileOptions() = default;
 
diff --git a/js/src/jit/MacroAssembler.h b/js/src/jit/MacroAssembler.h
index 99a8460d911a4cfda799373310a6ad93dd8badfb..e2d53d5cefb1f111be3841dd36ad2b1d2d5eefbd 100644
--- a/js/src/jit/MacroAssembler.h
+++ b/js/src/jit/MacroAssembler.h
@@ -3580,42 +3580,38 @@ class MacroAssembler : public MacroAssemblerSpecific {
   void wasmUnalignedLoad(const wasm::MemoryAccessDesc& access,
                          Register memoryBase, Register ptr, Register ptrScratch,
                          Register output, Register tmp)
-      DEFINED_ON(arm, mips32, mips64);
+      DEFINED_ON(mips32, mips64);
 
-  // ARM: `ptr` will always be updated and `tmp1` is always needed.  `tmp2` is
-  // needed for Float32; `tmp2` and `tmp3` are needed for Float64.  Temps must
-  // be Invalid when they are not needed.
   // MIPS: `ptr` will always be updated.
   void wasmUnalignedLoadFP(const wasm::MemoryAccessDesc& access,
                            Register memoryBase, Register ptr,
                            Register ptrScratch, FloatRegister output,
                            Register tmp1, Register tmp2, Register tmp3)
-      DEFINED_ON(arm, mips32, mips64);
+      DEFINED_ON(mips32, mips64);
 
   // `ptr` will always be updated.
   void wasmUnalignedLoadI64(const wasm::MemoryAccessDesc& access,
                             Register memoryBase, Register ptr,
                             Register ptrScratch, Register64 output,
-                            Register tmp) DEFINED_ON(arm, mips32, mips64);
+                            Register tmp) DEFINED_ON(mips32, mips64);
 
-  // ARM: `ptr` and `value` will always be updated.  'tmp' must be Invalid.
   // MIPS: `ptr` will always be updated.
   void wasmUnalignedStore(const wasm::MemoryAccessDesc& access, Register value,
                           Register memoryBase, Register ptr,
                           Register ptrScratch, Register tmp)
-      DEFINED_ON(arm, mips32, mips64);
+      DEFINED_ON(mips32, mips64);
 
   // `ptr` will always be updated.
   void wasmUnalignedStoreFP(const wasm::MemoryAccessDesc& access,
                             FloatRegister floatValue, Register memoryBase,
                             Register ptr, Register ptrScratch, Register tmp)
-      DEFINED_ON(arm, mips32, mips64);
+      DEFINED_ON(mips32, mips64);
 
   // `ptr` will always be updated.
   void wasmUnalignedStoreI64(const wasm::MemoryAccessDesc& access,
                              Register64 value, Register memoryBase,
                              Register ptr, Register ptrScratch, Register tmp)
-      DEFINED_ON(arm, mips32, mips64);
+      DEFINED_ON(mips32, mips64);
 
   // wasm specific methods, used in both the wasm baseline compiler and ion.
 
diff --git a/js/src/jit/arm/Architecture-arm.cpp b/js/src/jit/arm/Architecture-arm.cpp
index e2923b83f6ab31698c7d7763d6c561b4d496f0eb..f8903d9e34f41d9b6b75ed5cdc31d49ad933cd2c 100644
--- a/js/src/jit/arm/Architecture-arm.cpp
+++ b/js/src/jit/arm/Architecture-arm.cpp
@@ -328,6 +328,11 @@ uint32_t GetARMFlags() {
   return armHwCapFlags;
 }
 
+bool HasNEON() {
+  MOZ_ASSERT(armHwCapFlags != HWCAP_UNINITIALIZED);
+  return armHwCapFlags & HWCAP_NEON;
+}
+
 bool HasARMv7() {
   MOZ_ASSERT(armHwCapFlags != HWCAP_UNINITIALIZED);
   return armHwCapFlags & HWCAP_ARMv7;
diff --git a/js/src/jit/arm/Architecture-arm.h b/js/src/jit/arm/Architecture-arm.h
index 5c28352b7b30b3522a1a6f27945659080601977b..0c6d473dd5726b38461908b2900b916e6151000f 100644
--- a/js/src/jit/arm/Architecture-arm.h
+++ b/js/src/jit/arm/Architecture-arm.h
@@ -650,6 +650,7 @@ bool HasVFPv3();
 bool HasVFP();
 bool Has32DP();
 bool HasIDIV();
+bool HasNEON();
 
 extern volatile uint32_t armHwCapFlags;
 
diff --git a/js/src/jit/arm/Assembler-arm.cpp b/js/src/jit/arm/Assembler-arm.cpp
index 7ccc3aa6f7cba732531c2d0cd226146d400735de..6f9c6c7529fcdc3c0d5e9fb1db3a16b44093a4e7 100644
--- a/js/src/jit/arm/Assembler-arm.cpp
+++ b/js/src/jit/arm/Assembler-arm.cpp
@@ -2118,6 +2118,30 @@ BufferOffset Assembler::as_vdtm(LoadStore st, Register rn, VFPRegister vd,
                               dtmUpdate | dtmCond);
 }
 
+BufferOffset Assembler::as_vldr_unaligned(VFPRegister vd, Register rn) {
+  MOZ_ASSERT(HasNEON());
+  if (vd.isDouble()) {
+    // vld1 (multiple single elements) with align=0, size=3, numregs=1
+    return writeInst(0xF42007CF | RN(rn) | VD(vd));
+  }
+  // vld1 (single element to single lane) with index=0, size=2
+  MOZ_ASSERT(vd.isFloat());
+  MOZ_ASSERT((vd.code() & 1) == 0);
+  return writeInst(0xF4A0080F | RN(rn) | VD(vd.asDouble()));
+}
+
+BufferOffset Assembler::as_vstr_unaligned(VFPRegister vd, Register rn) {
+  MOZ_ASSERT(HasNEON());
+  if (vd.isDouble()) {
+    // vst1 (multiple single elements) with align=0, size=3, numregs=1
+    return writeInst(0xF40007CF | RN(rn) | VD(vd));
+  }
+  // vst1 (single element from one lane) with index=0, size=2
+  MOZ_ASSERT(vd.isFloat());
+  MOZ_ASSERT((vd.code() & 1) == 0);
+  return writeInst(0xF480080F | RN(rn) | VD(vd.asDouble()));
+}
+
 BufferOffset Assembler::as_vimm(VFPRegister vd, VFPImm imm, Condition c) {
   MOZ_ASSERT(imm.isValid());
   vfp_size sz = vd.isDouble() ? IsDouble : IsSingle;
diff --git a/js/src/jit/arm/Assembler-arm.h b/js/src/jit/arm/Assembler-arm.h
index 56a1539af92679cd98063b6946355dc35d51a199..2cafdcde6f67a859ed3ff5a3cd6a97d1434300bb 100644
--- a/js/src/jit/arm/Assembler-arm.h
+++ b/js/src/jit/arm/Assembler-arm.h
@@ -1645,6 +1645,12 @@ class Assembler : public AssemblerShared {
   BufferOffset as_vdtm(LoadStore st, Register rn, VFPRegister vd, int length,
                        /* also has update conditions */ Condition c = Always);
 
+  // vldr/vstr variants that handle unaligned accesses.  These encode as NEON
+  // single-element instructions and can only be used if NEON is available.
+  // Here, vd must be tagged as a float or double register.
+  BufferOffset as_vldr_unaligned(VFPRegister vd, Register rn);
+  BufferOffset as_vstr_unaligned(VFPRegister vd, Register rn);
+
   BufferOffset as_vimm(VFPRegister vd, VFPImm imm, Condition c = Always);
 
   BufferOffset as_vmrs(Register r, Condition c = Always);
diff --git a/js/src/jit/arm/CodeGenerator-arm.cpp b/js/src/jit/arm/CodeGenerator-arm.cpp
index 01efe25c5a7b6105c9f65c29ac1a1056c8a9f6b9..167569ec15e8fa2cfb97cb9fb3886aca664a973b 100644
--- a/js/src/jit/arm/CodeGenerator-arm.cpp
+++ b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -2030,39 +2030,6 @@ void CodeGenerator::visitWasmLoad(LWasmLoad* lir) { emitWasmLoad(lir); }
 
 void CodeGenerator::visitWasmLoadI64(LWasmLoadI64* lir) { emitWasmLoad(lir); }
 
-template <typename T>
-void CodeGeneratorARM::emitWasmUnalignedLoad(T* lir) {
-  const MWasmLoad* mir = lir->mir();
-  MIRType resultType = mir->type();
-
-  Register ptr = ToRegister(lir->ptrCopy());
-  Register tmp1 = ToRegister(lir->getTemp(1));
-
-  if (resultType == MIRType::Int64) {
-    masm.wasmUnalignedLoadI64(mir->access(), HeapReg, ptr, ptr,
-                              ToOutRegister64(lir), tmp1);
-  } else if (IsFloatingPointType(resultType)) {
-    Register tmp2(ToRegister(lir->getTemp(2)));
-    Register tmp3(Register::Invalid());
-    if (mir->access().byteSize() == 8) {
-      tmp3 = ToRegister(lir->getTemp(3));
-    }
-    masm.wasmUnalignedLoadFP(mir->access(), HeapReg, ptr, ptr,
-                             ToFloatRegister(lir->output()), tmp1, tmp2, tmp3);
-  } else {
-    masm.wasmUnalignedLoad(mir->access(), HeapReg, ptr, ptr,
-                           ToRegister(lir->output()), tmp1);
-  }
-}
-
-void CodeGenerator::visitWasmUnalignedLoad(LWasmUnalignedLoad* lir) {
-  emitWasmUnalignedLoad(lir);
-}
-
-void CodeGenerator::visitWasmUnalignedLoadI64(LWasmUnalignedLoadI64* lir) {
-  emitWasmUnalignedLoad(lir);
-}
-
 void CodeGenerator::visitWasmAddOffset(LWasmAddOffset* lir) {
   MWasmAddOffset* mir = lir->mir();
   Register base = ToRegister(lir->base());
@@ -2108,37 +2075,6 @@ void CodeGenerator::visitWasmStoreI64(LWasmStoreI64* lir) {
   emitWasmStore(lir);
 }
 
-template <typename T>
-void CodeGeneratorARM::emitWasmUnalignedStore(T* lir) {
-  const MWasmStore* mir = lir->mir();
-  MIRType valueType = mir->value()->type();
-  Register ptr = ToRegister(lir->ptrCopy());
-  Register valOrTmp = ToRegister(lir->valueHelper());
-
-  if (valueType == MIRType::Int64) {
-    masm.wasmUnalignedStoreI64(
-        mir->access(),
-        ToRegister64(lir->getInt64Operand(LWasmUnalignedStoreI64::ValueIndex)),
-        HeapReg, ptr, ptr, valOrTmp);
-  } else if (valueType == MIRType::Float32 || valueType == MIRType::Double) {
-    FloatRegister value =
-        ToFloatRegister(lir->getOperand(LWasmUnalignedStore::ValueIndex));
-    masm.wasmUnalignedStoreFP(mir->access(), value, HeapReg, ptr, ptr,
-                              valOrTmp);
-  } else {
-    masm.wasmUnalignedStore(mir->access(), valOrTmp, HeapReg, ptr, ptr,
-                            Register::Invalid());
-  }
-}
-
-void CodeGenerator::visitWasmUnalignedStore(LWasmUnalignedStore* lir) {
-  emitWasmUnalignedStore(lir);
-}
-
-void CodeGenerator::visitWasmUnalignedStoreI64(LWasmUnalignedStoreI64* lir) {
-  emitWasmUnalignedStore(lir);
-}
-
 void CodeGenerator::visitAsmJSStoreHeap(LAsmJSStoreHeap* ins) {
   const MAsmJSStoreHeap* mir = ins->mir();
 
diff --git a/js/src/jit/arm/LIR-arm.h b/js/src/jit/arm/LIR-arm.h
index 13313da7f8fc5520d92c509daf4b996d0aeb7cf4..3445784d4202c604425c7a3df73ee7c4b9271384 100644
--- a/js/src/jit/arm/LIR-arm.h
+++ b/js/src/jit/arm/LIR-arm.h
@@ -402,103 +402,6 @@ class LInt64ToFloatingPointCall
   }
 };
 
-namespace details {
-
-// Base class for the int64 and non-int64 variants.
-template <size_t NumDefs>
-class LWasmUnalignedLoadBase : public details::LWasmLoadBase<NumDefs, 4> {
- public:
-  typedef LWasmLoadBase<NumDefs, 4> Base;
-  explicit LWasmUnalignedLoadBase(LNode::Opcode opcode, const LAllocation& ptr,
-                                  const LDefinition& ptrCopy,
-                                  const LDefinition& temp1,
-                                  const LDefinition& temp2,
-                                  const LDefinition& temp3)
-      : Base(opcode, ptr, LAllocation()) {
-    Base::setTemp(0, ptrCopy);
-    Base::setTemp(1, temp1);
-    Base::setTemp(2, temp2);
-    Base::setTemp(3, temp3);
-  }
-
-  const LDefinition* ptrCopy() { return Base::getTemp(0); }
-};
-
-}  // namespace details
-
-class LWasmUnalignedLoad : public details::LWasmUnalignedLoadBase<1> {
- public:
-  explicit LWasmUnalignedLoad(const LAllocation& ptr,
-                              const LDefinition& ptrCopy,
-                              const LDefinition& temp1,
-                              const LDefinition& temp2,
-                              const LDefinition& temp3)
-      : LWasmUnalignedLoadBase(classOpcode, ptr, ptrCopy, temp1, temp2, temp3) {
-  }
-  LIR_HEADER(WasmUnalignedLoad);
-};
-
-class LWasmUnalignedLoadI64
-    : public details::LWasmUnalignedLoadBase<INT64_PIECES> {
- public:
-  explicit LWasmUnalignedLoadI64(const LAllocation& ptr,
-                                 const LDefinition& ptrCopy,
-                                 const LDefinition& temp1,
-                                 const LDefinition& temp2,
-                                 const LDefinition& temp3)
-      : LWasmUnalignedLoadBase(classOpcode, ptr, ptrCopy, temp1, temp2, temp3) {
-  }
-  LIR_HEADER(WasmUnalignedLoadI64);
-};
-
-namespace details {
-
-// Base class for the int64 and non-int64 variants.
-template <size_t NumOps>
-class LWasmUnalignedStoreBase : public LInstructionHelper<0, NumOps, 2> {
- public:
-  typedef LInstructionHelper<0, NumOps, 2> Base;
-
-  static const uint32_t ValueIndex = 1;
-
-  LWasmUnalignedStoreBase(LNode::Opcode opcode, const LAllocation& ptr,
-                          const LDefinition& ptrCopy,
-                          const LDefinition& valueHelper)
-      : Base(opcode) {
-    Base::setOperand(0, ptr);
-    Base::setTemp(0, ptrCopy);
-    Base::setTemp(1, valueHelper);
-  }
-  MWasmStore* mir() const { return Base::mir_->toWasmStore(); }
-  const LDefinition* ptrCopy() { return Base::getTemp(0); }
-  const LDefinition* valueHelper() { return Base::getTemp(1); }
-};
-
-}  // namespace details
-
-class LWasmUnalignedStore : public details::LWasmUnalignedStoreBase<2> {
- public:
-  LIR_HEADER(WasmUnalignedStore);
-  LWasmUnalignedStore(const LAllocation& ptr, const LAllocation& value,
-                      const LDefinition& ptrCopy,
-                      const LDefinition& valueHelper)
-      : LWasmUnalignedStoreBase(classOpcode, ptr, ptrCopy, valueHelper) {
-    setOperand(1, value);
-  }
-};
-
-class LWasmUnalignedStoreI64
-    : public details::LWasmUnalignedStoreBase<1 + INT64_PIECES> {
- public:
-  LIR_HEADER(WasmUnalignedStoreI64);
-  LWasmUnalignedStoreI64(const LAllocation& ptr, const LInt64Allocation& value,
-                         const LDefinition& ptrCopy,
-                         const LDefinition& valueHelper)
-      : LWasmUnalignedStoreBase(classOpcode, ptr, ptrCopy, valueHelper) {
-    setInt64Operand(1, value);
-  }
-};
-
 class LWasmAtomicLoadI64 : public LInstructionHelper<INT64_PIECES, 1, 0> {
  public:
   LIR_HEADER(WasmAtomicLoadI64);
diff --git a/js/src/jit/arm/Lowering-arm.cpp b/js/src/jit/arm/Lowering-arm.cpp
index 99769345f62f8b0a6228376258d72208630667f7..8bf081b176b404247c4fec1854e1404623c29504 100644
--- a/js/src/jit/arm/Lowering-arm.cpp
+++ b/js/src/jit/arm/Lowering-arm.cpp
@@ -682,37 +682,6 @@ void LIRGenerator::visitWasmLoad(MWasmLoad* ins) {
 
   LAllocation ptr = useRegisterAtStart(base);
 
-  if (IsUnaligned(ins->access())) {
-    MOZ_ASSERT(!ins->access().isAtomic());
-
-    // Unaligned access expected! Revert to a byte load.
-    LDefinition ptrCopy = tempCopy(base, 0);
-
-    LDefinition noTemp = LDefinition::BogusTemp();
-    if (ins->type() == MIRType::Int64) {
-      auto* lir = new (alloc())
-          LWasmUnalignedLoadI64(ptr, ptrCopy, temp(), noTemp, noTemp);
-      defineInt64(lir, ins);
-      return;
-    }
-
-    LDefinition temp2 = noTemp;
-    LDefinition temp3 = noTemp;
-    if (IsFloatingPointType(ins->type())) {
-      // For putting the low value in a GPR.
-      temp2 = temp();
-      // For putting the high value in a GPR.
-      if (ins->type() == MIRType::Double) {
-        temp3 = temp();
-      }
-    }
-
-    auto* lir =
-        new (alloc()) LWasmUnalignedLoad(ptr, ptrCopy, temp(), temp2, temp3);
-    define(lir, ins);
-    return;
-  }
-
   if (ins->type() == MIRType::Int64) {
     auto* lir = new (alloc()) LWasmLoadI64(ptr);
     if (ins->access().offset() || ins->access().type() == Scalar::Int64) {
@@ -745,32 +714,6 @@ void LIRGenerator::visitWasmStore(MWasmStore* ins) {
 
   LAllocation ptr = useRegisterAtStart(base);
 
-  if (IsUnaligned(ins->access())) {
-    MOZ_ASSERT(!ins->access().isAtomic());
-
-    // Unaligned access expected! Revert to a byte store.
-    LDefinition ptrCopy = tempCopy(base, 0);
-
-    MIRType valueType = ins->value()->type();
-    if (valueType == MIRType::Int64) {
-      LInt64Allocation value = useInt64RegisterAtStart(ins->value());
-      auto* lir =
-          new (alloc()) LWasmUnalignedStoreI64(ptr, value, ptrCopy, temp());
-      add(lir, ins);
-      return;
-    }
-
-    LAllocation value = useRegisterAtStart(ins->value());
-    LDefinition valueHelper = IsFloatingPointType(valueType)
-                                  ? temp()  // to do a FPU -> GPR move.
-                                  : tempCopy(base, 1);  // to clobber the value.
-
-    auto* lir =
-        new (alloc()) LWasmUnalignedStore(ptr, value, ptrCopy, valueHelper);
-    add(lir, ins);
-    return;
-  }
-
   if (ins->value()->type() == MIRType::Int64) {
     LInt64Allocation value = useInt64RegisterAtStart(ins->value());
     auto* lir = new (alloc()) LWasmStoreI64(ptr, value);
diff --git a/js/src/jit/arm/MacroAssembler-arm.cpp b/js/src/jit/arm/MacroAssembler-arm.cpp
index de7b5585e6f43dddad71fa55d1aa6fc84c96217d..3e5e3fc4481ec2e966e03e7afccce8013d0cf085 100644
--- a/js/src/jit/arm/MacroAssembler-arm.cpp
+++ b/js/src/jit/arm/MacroAssembler-arm.cpp
@@ -4840,57 +4840,6 @@ void MacroAssembler::wasmStoreI64(const wasm::MemoryAccessDesc& access,
   wasmStoreImpl(access, AnyRegister(), value, memoryBase, ptr, ptrScratch);
 }
 
-void MacroAssembler::wasmUnalignedLoad(const wasm::MemoryAccessDesc& access,
-                                       Register memoryBase, Register ptr,
-                                       Register ptrScratch, Register output,
-                                       Register tmp) {
-  wasmUnalignedLoadImpl(access, memoryBase, ptr, ptrScratch,
-                        AnyRegister(output), Register64::Invalid(), tmp,
-                        Register::Invalid(), Register::Invalid());
-}
-
-void MacroAssembler::wasmUnalignedLoadFP(const wasm::MemoryAccessDesc& access,
-                                         Register memoryBase, Register ptr,
-                                         Register ptrScratch,
-                                         FloatRegister outFP, Register tmp1,
-                                         Register tmp2, Register tmp3) {
-  wasmUnalignedLoadImpl(access, memoryBase, ptr, ptrScratch, AnyRegister(outFP),
-                        Register64::Invalid(), tmp1, tmp2, tmp3);
-}
-
-void MacroAssembler::wasmUnalignedLoadI64(const wasm::MemoryAccessDesc& access,
-                                          Register memoryBase, Register ptr,
-                                          Register ptrScratch, Register64 out64,
-                                          Register tmp) {
-  wasmUnalignedLoadImpl(access, memoryBase, ptr, ptrScratch, AnyRegister(),
-                        out64, tmp, Register::Invalid(), Register::Invalid());
-}
-
-void MacroAssembler::wasmUnalignedStore(const wasm::MemoryAccessDesc& access,
-                                        Register value, Register memoryBase,
-                                        Register ptr, Register ptrScratch,
-                                        Register tmp) {
-  MOZ_ASSERT(tmp == Register::Invalid());
-  wasmUnalignedStoreImpl(access, FloatRegister(), Register64::Invalid(),
-                         memoryBase, ptr, ptrScratch, value);
-}
-
-void MacroAssembler::wasmUnalignedStoreFP(const wasm::MemoryAccessDesc& access,
-                                          FloatRegister floatVal,
-                                          Register memoryBase, Register ptr,
-                                          Register ptrScratch, Register tmp) {
-  wasmUnalignedStoreImpl(access, floatVal, Register64::Invalid(), memoryBase,
-                         ptr, ptrScratch, tmp);
-}
-
-void MacroAssembler::wasmUnalignedStoreI64(const wasm::MemoryAccessDesc& access,
-                                           Register64 val64,
-                                           Register memoryBase, Register ptr,
-                                           Register ptrScratch, Register tmp) {
-  wasmUnalignedStoreImpl(access, FloatRegister(), val64, memoryBase, ptr,
-                         ptrScratch, tmp);
-}
-
 // ========================================================================
 // Primitive atomic operations.
 
@@ -6209,11 +6158,47 @@ void MacroAssemblerARM::wasmLoadImpl(const wasm::MemoryAccessDesc& access,
     if (isFloat) {
       MOZ_ASSERT((byteSize == 4) == output.fpu().isSingle());
       ScratchRegisterScope scratch(asMasm());
+      FloatRegister dest = output.fpu();
       ma_add(memoryBase, ptr, scratch);
 
-      // See HandleUnalignedTrap() in WasmSignalHandler.cpp.  We depend on this
-      // being a single, unconditional VLDR with a base pointer other than PC.
-      load = ma_vldr(Operand(Address(scratch, 0)).toVFPAddr(), output.fpu());
+      // FP loads can't use VLDR as that has stringent alignment checks and will
+      // SIGBUS on unaligned accesses.  Choose a different strategy depending on
+      // the available hardware. We don't gate Wasm on the presence of NEON.
+      if (HasNEON()) {
+        // NEON available: The VLD1 multiple-single-elements variant will only
+        // trap if SCTRL.A==1, but we already assume (for integer accesses) that
+        // the hardware/OS handles that transparently.
+        //
+        // An additional complication is that if we're targeting the high single
+        // then an unaligned load is not possible, and we may need to go via the
+        // FPR scratch.
+        if (byteSize == 4 && dest.code() & 1) {
+          ScratchFloat32Scope fscratch(asMasm());
+          load = as_vldr_unaligned(fscratch, scratch);
+          as_vmov(dest, fscratch);
+        } else {
+          load = as_vldr_unaligned(dest, scratch);
+        }
+      } else {
+        // NEON not available: Load to GPR scratch, move to FPR destination.  We
+        // don't have adjacent scratches for the f64, so use individual LDRs,
+        // not LDRD.
+        SecondScratchRegisterScope scratch2(asMasm());
+        if (byteSize == 4) {
+          load = as_dtr(IsLoad, 32, Offset, scratch2,
+                        DTRAddr(scratch, DtrOffImm(0)), Always);
+          as_vxfer(scratch2, InvalidReg, VFPRegister(dest), CoreToFloat,
+                   Always);
+        } else {
+          // The trap information is associated with the load of the high word,
+          // which must be done first.
+          load = as_dtr(IsLoad, 32, Offset, scratch2,
+                        DTRAddr(scratch, DtrOffImm(4)), Always);
+          as_dtr(IsLoad, 32, Offset, scratch, DTRAddr(scratch, DtrOffImm(0)),
+                 Always);
+          as_vxfer(scratch, scratch2, VFPRegister(dest), CoreToFloat, Always);
+        }
+      }
       append(access, load.getOffset());
     } else {
       load = ma_dataTransferN(IsLoad, byteSize * 8, isSigned, memoryBase, ptr,
@@ -6276,9 +6261,38 @@ void MacroAssemblerARM::wasmStoreImpl(const wasm::MemoryAccessDesc& access,
       MOZ_ASSERT((byteSize == 4) == val.isSingle());
       ma_add(memoryBase, ptr, scratch);
 
-      // See HandleUnalignedTrap() in WasmSignalHandler.cpp.  We depend on this
-      // being a single, unconditional VLDR with a base pointer other than PC.
-      store = ma_vstr(val, Operand(Address(scratch, 0)).toVFPAddr());
+      // See comments above at wasmLoadImpl for more about this logic.
+      if (HasNEON()) {
+        if (byteSize == 4 && (val.code() & 1)) {
+          ScratchFloat32Scope fscratch(asMasm());
+          as_vmov(fscratch, val);
+          store = as_vstr_unaligned(fscratch, scratch);
+        } else {
+          store = as_vstr_unaligned(val, scratch);
+        }
+      } else {
+        // NEON not available: Move FPR to GPR scratch, store GPR.  We have only
+        // one scratch to hold the value, so for f64 we must do two separate
+        // moves.  That's OK - this is really a corner case.  If we really cared
+        // we would pass in a temp to avoid the second move.
+        SecondScratchRegisterScope scratch2(asMasm());
+        if (byteSize == 4) {
+          as_vxfer(scratch2, InvalidReg, VFPRegister(val), FloatToCore, Always);
+          store = as_dtr(IsStore, 32, Offset, scratch2,
+                         DTRAddr(scratch, DtrOffImm(0)), Always);
+        } else {
+          // The trap information is associated with the store of the high word,
+          // which must be done first.
+          as_vxfer(scratch2, InvalidReg, VFPRegister(val).singleOverlay(1),
+                   FloatToCore, Always);
+          store = as_dtr(IsStore, 32, Offset, scratch2,
+                         DTRAddr(scratch, DtrOffImm(4)), Always);
+          as_vxfer(scratch2, InvalidReg, VFPRegister(val).singleOverlay(0),
+                   FloatToCore, Always);
+          as_dtr(IsStore, 32, Offset, scratch2, DTRAddr(scratch, DtrOffImm(0)),
+                 Always);
+        }
+      }
       append(access, store.getOffset());
     } else {
       bool isSigned = type == Scalar::Uint32 ||
@@ -6293,242 +6307,3 @@ void MacroAssemblerARM::wasmStoreImpl(const wasm::MemoryAccessDesc& access,
 
   asMasm().memoryBarrierAfter(access.sync());
 }
-
-void MacroAssemblerARM::wasmUnalignedLoadImpl(
-    const wasm::MemoryAccessDesc& access, Register memoryBase, Register ptr,
-    Register ptrScratch, AnyRegister outAny, Register64 out64, Register tmp,
-    Register tmp2, Register tmp3) {
-  MOZ_ASSERT(ptr == ptrScratch);
-  MOZ_ASSERT(tmp != ptr);
-  MOZ_ASSERT(!Assembler::SupportsFastUnalignedAccesses());
-  MOZ_ASSERT(!access.isZeroExtendSimd128Load());
-  MOZ_ASSERT(!access.isSplatSimd128Load());
-  MOZ_ASSERT(!access.isWidenSimd128Load());
-
-  uint32_t offset = access.offset();
-  MOZ_ASSERT(offset < asMasm().wasmMaxOffsetGuardLimit());
-
-  if (offset) {
-    ScratchRegisterScope scratch(asMasm());
-    ma_add(Imm32(offset), ptr, scratch);
-  }
-
-  // Add memoryBase to ptr, so we can use base+index addressing in the byte
-  // loads.
-  ma_add(memoryBase, ptr);
-
-  unsigned byteSize = access.byteSize();
-  MOZ_ASSERT(byteSize == 8 || byteSize == 4 || byteSize == 2);
-
-  Scalar::Type type = access.type();
-  bool isSigned =
-      type == Scalar::Int16 || type == Scalar::Int32 || type == Scalar::Int64;
-
-  // If it's a two-word load we must load the high word first to get signal
-  // handling right.
-
-  asMasm().memoryBarrierBefore(access.sync());
-
-  switch (access.type()) {
-    case Scalar::Float32: {
-      MOZ_ASSERT(byteSize == 4);
-      MOZ_ASSERT(tmp2 != Register::Invalid() && tmp3 == Register::Invalid());
-      MOZ_ASSERT(outAny.fpu().isSingle());
-      emitUnalignedLoad(&access, /*signed*/ false, /*size*/ 4, ptr, tmp, tmp2);
-      ma_vxfer(tmp2, outAny.fpu());
-      break;
-    }
-    case Scalar::Float64: {
-      MOZ_ASSERT(byteSize == 8);
-      MOZ_ASSERT(tmp2 != Register::Invalid() && tmp3 != Register::Invalid());
-      MOZ_ASSERT(outAny.fpu().isDouble());
-      emitUnalignedLoad(&access, /*signed=*/false, /*size=*/4, ptr, tmp, tmp3,
-                        /*offset=*/4);
-      emitUnalignedLoad(nullptr, /*signed=*/false, /*size=*/4, ptr, tmp, tmp2);
-      ma_vxfer(tmp2, tmp3, outAny.fpu());
-      break;
-    }
-    case Scalar::Int64: {
-      MOZ_ASSERT(byteSize == 8);
-      MOZ_ASSERT(tmp2 == Register::Invalid() && tmp3 == Register::Invalid());
-      MOZ_ASSERT(out64.high != ptr);
-      emitUnalignedLoad(&access, /*signed=*/false, /*size=*/4, ptr, tmp,
-                        out64.high, /*offset=*/4);
-      emitUnalignedLoad(nullptr, /*signed=*/false, /*size=*/4, ptr, tmp,
-                        out64.low);
-      break;
-    }
-    case Scalar::Int16:
-    case Scalar::Uint16:
-    case Scalar::Int32:
-    case Scalar::Uint32: {
-      MOZ_ASSERT(byteSize <= 4);
-      MOZ_ASSERT(tmp2 == Register::Invalid() && tmp3 == Register::Invalid());
-      if (out64 != Register64::Invalid()) {
-        emitUnalignedLoad(&access, isSigned, byteSize, ptr, tmp, out64.low);
-        if (isSigned) {
-          ma_asr(Imm32(31), out64.low, out64.high);
-        } else {
-          ma_mov(Imm32(0), out64.high);
-        }
-      } else {
-        emitUnalignedLoad(&access, isSigned, byteSize, ptr, tmp, outAny.gpr());
-      }
-      break;
-    }
-    case Scalar::Int8:
-    case Scalar::Uint8:
-    default: {
-      MOZ_CRASH("Bad type");
-    }
-  }
-
-  asMasm().memoryBarrierAfter(access.sync());
-}
-
-void MacroAssemblerARM::wasmUnalignedStoreImpl(
-    const wasm::MemoryAccessDesc& access, FloatRegister floatValue,
-    Register64 val64, Register memoryBase, Register ptr, Register ptrScratch,
-    Register valOrTmp) {
-  MOZ_ASSERT(ptr == ptrScratch);
-  // They can't both be valid, but they can both be invalid.
-  MOZ_ASSERT(floatValue.isInvalid() || val64 == Register64::Invalid());
-  // Don't try extremely clever optimizations.
-  MOZ_ASSERT_IF(val64 != Register64::Invalid(),
-                valOrTmp != val64.high && valOrTmp != val64.low);
-
-  uint32_t offset = access.offset();
-  MOZ_ASSERT(offset < asMasm().wasmMaxOffsetGuardLimit());
-
-  unsigned byteSize = access.byteSize();
-  MOZ_ASSERT(byteSize == 8 || byteSize == 4 || byteSize == 2);
-
-  if (offset) {
-    ScratchRegisterScope scratch(asMasm());
-    ma_add(Imm32(offset), ptr, scratch);
-  }
-
-  // Add memoryBase to ptr, so we can use base+index addressing in the byte
-  // loads.
-  ma_add(memoryBase, ptr);
-
-  asMasm().memoryBarrierAfter(access.sync());
-
-  // If it's a two-word store we must store the high word first to get signal
-  // handling right.
-
-  if (val64 != Register64::Invalid()) {
-    if (byteSize == 8) {
-      emitUnalignedStore(&access, /*size=*/4, ptr, val64.high, /*offset=*/4);
-      emitUnalignedStore(nullptr, /*size=*/4, ptr, val64.low);
-    } else {
-      emitUnalignedStore(&access, byteSize, ptr, val64.low);
-    }
-  } else if (!floatValue.isInvalid()) {
-    if (floatValue.isDouble()) {
-      MOZ_ASSERT(byteSize == 8);
-      ScratchRegisterScope scratch(asMasm());
-      ma_vxfer(floatValue, scratch, valOrTmp);
-      emitUnalignedStore(&access, /*size=*/4, ptr, valOrTmp, /*offset=*/4);
-      emitUnalignedStore(nullptr, /*size=*/4, ptr, scratch);
-    } else {
-      MOZ_ASSERT(byteSize == 4);
-      ma_vxfer(floatValue, valOrTmp);
-      emitUnalignedStore(&access, /*size=*/4, ptr, valOrTmp);
-    }
-  } else {
-    MOZ_ASSERT(byteSize == 2 || byteSize == 4);
-    emitUnalignedStore(&access, byteSize, ptr, valOrTmp);
-  }
-
-  asMasm().memoryBarrierAfter(access.sync());
-}
-
-void MacroAssemblerARM::emitUnalignedLoad(const wasm::MemoryAccessDesc* access,
-                                          bool isSigned, unsigned byteSize,
-                                          Register ptr, Register tmp,
-                                          Register dest, unsigned offset) {
-  // Preconditions.
-  MOZ_ASSERT(ptr != tmp);
-  MOZ_ASSERT(ptr != dest);
-  MOZ_ASSERT(tmp != dest);
-  MOZ_ASSERT(byteSize == 2 || byteSize == 4);
-  MOZ_ASSERT(offset == 0 || offset == 4);
-
-  // The trap metadata is only valid for the first instruction, so we must
-  // make the first instruction fault if any of them is going to fault.  Hence
-  // byte loads must be issued from high addresses toward low addresses (or we
-  // must emit metadata for each load).
-  //
-  // So for a four-byte load from address x we will emit an eight-instruction
-  // sequence:
-  //
-  //   ldrsb [x+3], tmp           // note signed load *if appropriate*
-  //   lsl dest, tmp lsl 24       // move high byte + sign bits into place;
-  //                              // clear low bits
-  //   ldrb [x+2], tmp            // note unsigned load
-  //   or dest, dest, tmp lsl 16  // add another byte
-  //   ldrb [x+1], tmp            // ...
-  //   or dest, dest, tmp lsl 8
-  //   ldrb [x], tmp
-  //   or dest, dest, tmp
-
-  ScratchRegisterScope scratch(asMasm());
-
-  int i = byteSize - 1;
-
-  BufferOffset load = ma_dataTransferN(IsLoad, 8, isSigned, ptr,
-                                       Imm32(offset + i), tmp, scratch);
-  if (access) {
-    append(*access, load.getOffset());
-  }
-  ma_lsl(Imm32(8 * i), tmp, dest);
-  --i;
-
-  while (i >= 0) {
-    ma_dataTransferN(IsLoad, 8, /*signed=*/false, ptr, Imm32(offset + i), tmp,
-                     scratch);
-    as_orr(dest, dest, lsl(tmp, 8 * i));
-    --i;
-  }
-}
-
-void MacroAssemblerARM::emitUnalignedStore(const wasm::MemoryAccessDesc* access,
-                                           unsigned byteSize, Register ptr,
-                                           Register val, unsigned offset) {
-  // Preconditions.
-  MOZ_ASSERT(ptr != val);
-  MOZ_ASSERT(byteSize == 2 || byteSize == 4);
-  MOZ_ASSERT(offset == 0 || offset == 4);
-
-  // See comments above.  Here an additional motivation is that no side
-  // effects should be observed if any of the stores would fault, so we *must*
-  // go high-to-low, we can't emit metadata for individual stores in
-  // low-to-high order.
-  //
-  // For a four-byte store to address x we will emit a seven-instruction
-  // sequence:
-  //
-  //   lsr  scratch, val, 24
-  //   strb [x+3], scratch
-  //   lsr  scratch, val, 16
-  //   strb [x+2], scratch
-  //   lsr  scratch, val, 8
-  //   strb [x+1], scratch
-  //   strb [x], val
-
-  // `val` may be scratch in the case when we store doubles.
-  SecondScratchRegisterScope scratch(asMasm());
-
-  for (int i = byteSize - 1; i > 0; i--) {
-    ma_lsr(Imm32(i * 8), val, scratch);
-    // Use as_dtr directly to avoid needing another scratch register; we can
-    // do this because `offset` is known to be small.
-    BufferOffset store = as_dtr(IsStore, 8, Offset, scratch,
-                                DTRAddr(ptr, DtrOffImm(offset + i)));
-    if (i == (int)byteSize - 1 && access) {
-      append(*access, store.getOffset());
-    }
-  }
-  as_dtr(IsStore, 8, Offset, val, DTRAddr(ptr, DtrOffImm(offset)));
-}
diff --git a/js/src/jit/arm/MacroAssembler-arm.h b/js/src/jit/arm/MacroAssembler-arm.h
index e826bed820affbfaf8aba60e77248978ca19f6fd..8387a55d649f1f3f2a8fc6fffe4dd7e7415dedf5 100644
--- a/js/src/jit/arm/MacroAssembler-arm.h
+++ b/js/src/jit/arm/MacroAssembler-arm.h
@@ -558,44 +558,7 @@ class MacroAssemblerARM : public Assembler {
                      Register64 val64, Register memoryBase, Register ptr,
                      Register ptrScratch);
 
- protected:
-  // `outAny` is valid if and only if `out64` == Register64::Invalid().
-  void wasmUnalignedLoadImpl(const wasm::MemoryAccessDesc& access,
-                             Register memoryBase, Register ptr,
-                             Register ptrScratch, AnyRegister outAny,
-                             Register64 out64, Register tmp1, Register tmp2,
-                             Register tmp3);
-
-  // The value to be stored is in `floatValue` (if not invalid), `val64` (if not
-  // invalid), or in `valOrTmp` (if `floatValue` and `val64` are both invalid).
-  // Note `valOrTmp` must always be valid.
-  void wasmUnalignedStoreImpl(const wasm::MemoryAccessDesc& access,
-                              FloatRegister floatValue, Register64 val64,
-                              Register memoryBase, Register ptr,
-                              Register ptrScratch, Register valOrTmp);
-
  private:
-  // Loads `byteSize` bytes, byte by byte, by reading from ptr[offset],
-  // applying the indicated signedness (defined by isSigned).
-  // - all three registers must be different.
-  // - tmp and dest will get clobbered, ptr will remain intact.
-  // - byteSize can be up to 4 bytes and no more (GPR are 32 bits on ARM).
-  // - offset can be 0 or 4
-  // If `access` is not null then emit the appropriate access metadata.
-  void emitUnalignedLoad(const wasm::MemoryAccessDesc* access, bool isSigned,
-                         unsigned byteSize, Register ptr, Register tmp,
-                         Register dest, unsigned offset = 0);
-
-  // Ditto, for a store. Note stores don't care about signedness.
-  // - the two registers must be different.
-  // - val will get clobbered, ptr will remain intact.
-  // - byteSize can be up to 4 bytes and no more (GPR are 32 bits on ARM).
-  // - offset can be 0 or 4
-  // If `access` is not null then emit the appropriate access metadata.
-  void emitUnalignedStore(const wasm::MemoryAccessDesc* access,
-                          unsigned byteSize, Register ptr, Register val,
-                          unsigned offset = 0);
-
   // Implementation for transferMultipleByRuns so we can use different
   // iterators for forward/backward traversals. The sign argument should be 1
   // if we traverse forwards, -1 if we traverse backwards.
diff --git a/js/src/jit/arm/Simulator-arm.cpp b/js/src/jit/arm/Simulator-arm.cpp
index 057d230b26ee83dea57f89e083b7e875ef8a774c..ddfc1f1e80f95600a19eb7738401a59291b191c3 100644
--- a/js/src/jit/arm/Simulator-arm.cpp
+++ b/js/src/jit/arm/Simulator-arm.cpp
@@ -4791,8 +4791,12 @@ void Simulator::decodeSpecialCondition(SimInstruction* instr) {
           get_d_register(Vd + r, data);
           // TODO: We should AllowUnaligned here only if the alignment attribute
           // of the instruction calls for default alignment.
-          writeW(address, data[0], instr, AllowUnaligned);
-          writeW(address + 4, data[1], instr, AllowUnaligned);
+          //
+          // Use writeQ to get handling of traps right.  (The spec says to
+          // perform two individual word writes, but let's not worry about
+          // that.)
+          writeQ(address, (uint64_t(data[1]) << 32) | uint64_t(data[0]), instr,
+                 AllowUnaligned);
           address += 8;
           r++;
         }
@@ -4833,8 +4837,12 @@ void Simulator::decodeSpecialCondition(SimInstruction* instr) {
           uint32_t data[2];
           // TODO: We should AllowUnaligned here only if the alignment attribute
           // of the instruction calls for default alignment.
-          data[0] = readW(address, instr, AllowUnaligned);
-          data[1] = readW(address + 4, instr, AllowUnaligned);
+          //
+          // Use readQ to get handling of traps right.  (The spec says to
+          // perform two individual word reads, but let's not worry about that.)
+          uint64_t tmp = readQ(address, instr, AllowUnaligned);
+          data[0] = tmp;
+          data[1] = tmp >> 32;
           set_d_register(Vd + r, data);
           address += 8;
           r++;
@@ -4850,6 +4858,53 @@ void Simulator::decodeSpecialCondition(SimInstruction* instr) {
         MOZ_CRASH();
       }
       break;
+    case 9:
+      if (instr->bits(9, 8) == 0) {
+        int Vd = (instr->bit(22) << 4) | instr->vdValue();
+        int Rn = instr->vnValue();
+        int size = instr->bits(11, 10);
+        int Rm = instr->vmValue();
+        int index = instr->bits(7, 5);
+        int align = instr->bit(4);
+        int32_t address = get_register(Rn);
+        if (size != 2 || align) {
+          MOZ_CRASH("NYI");
+        }
+        int a = instr->bits(5, 4);
+        if (a != 0 && a != 3) {
+          MOZ_CRASH("Unspecified");
+        }
+        if (index > 1) {
+          Vd++;
+          index -= 2;
+        }
+        uint32_t data[2];
+        get_d_register(Vd, data);
+        switch (instr->bits(21, 20)) {
+          case 0:
+            // vst1 single element from one lane
+            writeW(address, data[index], instr, AllowUnaligned);
+            break;
+          case 2:
+            // vld1 single element to one lane
+            data[index] = readW(address, instr, AllowUnaligned);
+            set_d_register(Vd, data);
+            break;
+          default:
+            MOZ_CRASH("NYI");
+        }
+        address += 4;
+        if (Rm != 15) {
+          if (Rm == 13) {
+            set_register(Rn, address);
+          } else {
+            set_register(Rn, get_register(Rn) + get_register(Rm));
+          }
+        }
+      } else {
+        MOZ_CRASH();
+      }
+      break;
     case 0xA:
       if (instr->bits(31, 20) == 0xf57) {
         switch (instr->bits(7, 4)) {
diff --git a/js/src/jit/arm/disasm/Disasm-arm.cpp b/js/src/jit/arm/disasm/Disasm-arm.cpp
index 944f997f4ff88bf1fec55607a7e5b081ac6ad0cc..97f39e133179de299d1e6751eaf364d291358fec 100644
--- a/js/src/jit/arm/disasm/Disasm-arm.cpp
+++ b/js/src/jit/arm/disasm/Disasm-arm.cpp
@@ -1733,6 +1733,35 @@ void Decoder::DecodeSpecialCondition(Instruction* instr) {
         Unknown(instr);
       }
       break;
+    case 9:
+      if (instr->Bits(21, 20) == 0 && instr->Bits(9, 8) == 0) {
+        // vst1
+        int Vd = (instr->Bit(22) << 4) | instr->VdValue();
+        int Rn = instr->VnValue();
+        int size = instr->Bits(11, 10);
+        int index = instr->Bits(7, 5);
+        int align = instr->Bit(4);
+        int Rm = instr->VmValue();
+        out_buffer_pos_ +=
+            SNPrintF(out_buffer_ + out_buffer_pos_, "vst1.%d {d%d[%d]}, ",
+                     (1 << size) << 3, Vd, index);
+        FormatNeonMemory(Rn, align, Rm);
+      } else if (instr->Bits(21, 20) == 2 && instr->Bits(9, 8) == 0) {
+        // vld1
+        int Vd = (instr->Bit(22) << 4) | instr->VdValue();
+        int Rn = instr->VnValue();
+        int size = instr->Bits(11, 10);
+        int index = instr->Bits(7, 5);
+        int align = instr->Bit(4);
+        int Rm = instr->VmValue();
+        out_buffer_pos_ +=
+            SNPrintF(out_buffer_ + out_buffer_pos_, "vld1.%d {d%d[%d]}, ",
+                     (1 << size) << 3, Vd, index);
+        FormatNeonMemory(Rn, align, Rm);
+      } else {
+        Unknown(instr);
+      }
+      break;
     case 0xA:
       if (instr->Bits(22, 20) == 7) {
         const char* option = "?";
diff --git a/js/src/jit/arm64/MacroAssembler-arm64-inl.h b/js/src/jit/arm64/MacroAssembler-arm64-inl.h
index 260cdb34c79fa5b07a80a93167b6ca80124024f7..bf1b96ef4a2e97cada7dfe2ba1382640b7eb7032 100644
--- a/js/src/jit/arm64/MacroAssembler-arm64-inl.h
+++ b/js/src/jit/arm64/MacroAssembler-arm64-inl.h
@@ -3554,13 +3554,13 @@ void MacroAssembler::narrowInt16x8(FloatRegister rhs, FloatRegister lhsDest) {
 
 void MacroAssembler::narrowInt16x8(FloatRegister lhs, FloatRegister rhs,
                                    FloatRegister dest) {
+  ScratchSimd128Scope scratch(*this);
   if (rhs == dest) {
-    Sqxtn2(Simd16B(dest), Simd8H(rhs));
-    Sqxtn(Simd8B(dest), Simd8H(lhs));
-  } else {
-    Sqxtn(Simd8B(dest), Simd8H(lhs));
-    Sqxtn2(Simd16B(dest), Simd8H(rhs));
+    Mov(scratch, SimdReg(rhs));
+    rhs = scratch;
   }
+  Sqxtn(Simd8B(dest), Simd8H(lhs));
+  Sqxtn2(Simd16B(dest), Simd8H(rhs));
 }
 
 void MacroAssembler::unsignedNarrowInt16x8(FloatRegister rhs,
@@ -3576,13 +3576,13 @@ void MacroAssembler::unsignedNarrowInt16x8(FloatRegister rhs,
 
 void MacroAssembler::unsignedNarrowInt16x8(FloatRegister lhs, FloatRegister rhs,
                                            FloatRegister dest) {
+  ScratchSimd128Scope scratch(*this);
   if (rhs == dest) {
-    Sqxtun2(Simd16B(dest), Simd8H(rhs));
-    Sqxtun(Simd8B(dest), Simd8H(lhs));
-  } else {
-    Sqxtun(Simd8B(dest), Simd8H(lhs));
-    Sqxtun2(Simd16B(dest), Simd8H(rhs));
+    Mov(scratch, SimdReg(rhs));
+    rhs = scratch;
   }
+  Sqxtun(Simd8B(dest), Simd8H(lhs));
+  Sqxtun2(Simd16B(dest), Simd8H(rhs));
 }
 
 void MacroAssembler::narrowInt32x4(FloatRegister rhs, FloatRegister lhsDest) {
@@ -3597,13 +3597,13 @@ void MacroAssembler::narrowInt32x4(FloatRegister rhs, FloatRegister lhsDest) {
 
 void MacroAssembler::narrowInt32x4(FloatRegister lhs, FloatRegister rhs,
                                    FloatRegister dest) {
+  ScratchSimd128Scope scratch(*this);
   if (rhs == dest) {
-    Sqxtn2(Simd8H(dest), Simd4S(rhs));
-    Sqxtn(Simd4H(dest), Simd4S(lhs));
-  } else {
-    Sqxtn(Simd4H(dest), Simd4S(lhs));
-    Sqxtn2(Simd8H(dest), Simd4S(rhs));
+    Mov(scratch, SimdReg(rhs));
+    rhs = scratch;
   }
+  Sqxtn(Simd4H(dest), Simd4S(lhs));
+  Sqxtn2(Simd8H(dest), Simd4S(rhs));
 }
 
 void MacroAssembler::unsignedNarrowInt32x4(FloatRegister rhs,
@@ -3619,13 +3619,13 @@ void MacroAssembler::unsignedNarrowInt32x4(FloatRegister rhs,
 
 void MacroAssembler::unsignedNarrowInt32x4(FloatRegister lhs, FloatRegister rhs,
                                            FloatRegister dest) {
+  ScratchSimd128Scope scratch(*this);
   if (rhs == dest) {
-    Sqxtun2(Simd8H(dest), Simd4S(rhs));
-    Sqxtun(Simd4H(dest), Simd4S(lhs));
-  } else {
-    Sqxtun(Simd4H(dest), Simd4S(lhs));
-    Sqxtun2(Simd8H(dest), Simd4S(rhs));
+    Mov(scratch, SimdReg(rhs));
+    rhs = scratch;
   }
+  Sqxtun(Simd4H(dest), Simd4S(lhs));
+  Sqxtun2(Simd8H(dest), Simd4S(rhs));
 }
 
 // Integer to integer widening
diff --git a/js/src/jit/arm64/MoveEmitter-arm64.cpp b/js/src/jit/arm64/MoveEmitter-arm64.cpp
index 8060206998ce9597fce1d2ae5dbc8871047b99fa..487fcf0c654c9c89cc42907cb9f55ec3f4d39d7e 100644
--- a/js/src/jit/arm64/MoveEmitter-arm64.cpp
+++ b/js/src/jit/arm64/MoveEmitter-arm64.cpp
@@ -22,7 +22,7 @@ MemOperand MoveEmitterARM64::toMemOperand(const MoveOperand& operand) const {
 
 void MoveEmitterARM64::emit(const MoveResolver& moves) {
   if (moves.numCycles()) {
-    masm.reserveStack(sizeof(void*));
+    masm.reserveStack(Simd128DataSize);
     pushedAtCycle_ = masm.framePushed();
   }
 
@@ -134,7 +134,7 @@ void MoveEmitterARM64::emitSimd128Move(const MoveOperand& from,
   }
 
   vixl::UseScratchRegisterScope temps(&masm.asVIXL());
-  const ARMFPRegister scratch = temps.AcquireD();
+  const ARMFPRegister scratch = temps.AcquireQ();
   masm.Ldr(scratch, toMemOperand(from));
   masm.Str(scratch, toMemOperand(to));
 }
diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp
index 707ab0d916fb4bbe193b32d52268294a1a9d0be3..07b68bc4ccd3a87334290f5b2390416074e7ed7a 100644
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -3426,6 +3426,7 @@ void JS::TransitiveCompileOptions::copyPODTransitiveOptions(
   classStaticBlocks = rhs.classStaticBlocks;
   useStencilXDR = rhs.useStencilXDR;
   useOffThreadParseGlobal = rhs.useOffThreadParseGlobal;
+  useFdlibmForSinCosTan = rhs.useFdlibmForSinCosTan;
 };
 
 void JS::ReadOnlyCompileOptions::copyPODNonTransitiveOptions(
@@ -3514,6 +3515,8 @@ JS::CompileOptions::CompileOptions(JSContext* cx) : ReadOnlyCompileOptions() {
   useStencilXDR = !UseOffThreadParseGlobal();
   useOffThreadParseGlobal = UseOffThreadParseGlobal();
 
+  useFdlibmForSinCosTan = math_use_fdlibm_for_sin_cos_tan();
+
   sourcePragmas_ = cx->options().sourcePragmas();
 
   // Certain modes of operation force strict-mode in general.
diff --git a/js/src/jsapi.h b/js/src/jsapi.h
index ac54246eb5426a9c294860cd85e520ff440ecdb6..354bc02562a6b570c6b8da839f3e0d25923f0fca 100644
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -62,6 +62,16 @@
 
 /************************************************************************/
 
+namespace JS {
+/**
+ * Tell JS engine whether to use fdlibm for Math.sin, Math.cos, and Math.tan.
+ * Using fdlibm ensures that we don't expose a math fingerprint.
+ */
+extern JS_PUBLIC_API void SetUseFdlibmForSinCosTan(bool value);
+}  // namespace JS
+
+/************************************************************************/
+
 struct JSFunctionSpec;
 struct JSPropertySpec;
 
diff --git a/js/src/jsmath.cpp b/js/src/jsmath.cpp
index cacd861004a18a2604ecfe313c22a3a0a54bfa08..e167a5c291a0eea89ffd04c11e41243d8080e77d 100644
--- a/js/src/jsmath.cpp
+++ b/js/src/jsmath.cpp
@@ -52,6 +52,12 @@ using mozilla::NumberEqualsInt32;
 using mozilla::PositiveInfinity;
 using mozilla::WrappingMultiply;
 
+static mozilla::Atomic<bool, mozilla::Relaxed> sUseFdlibmForSinCosTan;
+
+JS_PUBLIC_API void JS::SetUseFdlibmForSinCosTan(bool value) {
+  sUseFdlibmForSinCosTan = value;
+}
+
 template <UnaryMathFunctionType F>
 static bool math_function(JSContext* cx, HandleValue val,
                           MutableHandleValue res) {
@@ -206,13 +212,25 @@ bool js::math_clz32(JSContext* cx, unsigned argc, Value* vp) {
   return true;
 }
 
-double js::math_cos_impl(double x) {
+bool js::math_use_fdlibm_for_sin_cos_tan() { return sUseFdlibmForSinCosTan; }
+
+double js::math_cos_fdlibm_impl(double x) {
+  MOZ_ASSERT(sUseFdlibmForSinCosTan);
+  AutoUnsafeCallWithABI unsafe;
+  return fdlibm::cos(x);
+}
+
+double js::math_cos_native_impl(double x) {
+  MOZ_ASSERT(!sUseFdlibmForSinCosTan);
   AutoUnsafeCallWithABI unsafe;
   return cos(x);
 }
 
 bool js::math_cos(JSContext* cx, unsigned argc, Value* vp) {
-  return math_function<math_cos_impl>(cx, argc, vp);
+  if (sUseFdlibmForSinCosTan) {
+    return math_function<math_cos_fdlibm_impl>(cx, argc, vp);
+  }
+  return math_function<math_cos_native_impl>(cx, argc, vp);
 }
 
 double js::math_exp_impl(double x) {
@@ -582,18 +600,31 @@ js::math_round(JSContext* cx, unsigned argc, Value* vp) {
   return math_round_handle(cx, args[0], args.rval());
 }
 
-double js::math_sin_impl(double x) {
+double js::math_sin_fdlibm_impl(double x) {
+  MOZ_ASSERT(sUseFdlibmForSinCosTan);
+  AutoUnsafeCallWithABI unsafe;
+  return fdlibm::sin(x);
+}
+
+double js::math_sin_native_impl(double x) {
+  MOZ_ASSERT(!sUseFdlibmForSinCosTan);
   AutoUnsafeCallWithABI unsafe(UnsafeABIStrictness::AllowPendingExceptions);
   return sin(x);
 }
 
 bool js::math_sin_handle(JSContext* cx, HandleValue val,
                          MutableHandleValue res) {
-  return math_function<math_sin_impl>(cx, val, res);
+  if (sUseFdlibmForSinCosTan) {
+    return math_function<math_sin_fdlibm_impl>(cx, val, res);
+  }
+  return math_function<math_sin_native_impl>(cx, val, res);
 }
 
 bool js::math_sin(JSContext* cx, unsigned argc, Value* vp) {
-  return math_function<math_sin_impl>(cx, argc, vp);
+  if (sUseFdlibmForSinCosTan) {
+    return math_function<math_sin_fdlibm_impl>(cx, argc, vp);
+  }
+  return math_function<math_sin_native_impl>(cx, argc, vp);
 }
 
 double js::math_sqrt_impl(double x) {
@@ -610,13 +641,23 @@ bool js::math_sqrt(JSContext* cx, unsigned argc, Value* vp) {
   return math_function<math_sqrt_impl>(cx, argc, vp);
 }
 
-double js::math_tan_impl(double x) {
+double js::math_tan_fdlibm_impl(double x) {
+  MOZ_ASSERT(sUseFdlibmForSinCosTan);
+  AutoUnsafeCallWithABI unsafe;
+  return fdlibm::tan(x);
+}
+
+double js::math_tan_native_impl(double x) {
+  MOZ_ASSERT(!sUseFdlibmForSinCosTan);
   AutoUnsafeCallWithABI unsafe;
   return tan(x);
 }
 
 bool js::math_tan(JSContext* cx, unsigned argc, Value* vp) {
-  return math_function<math_tan_impl>(cx, argc, vp);
+  if (sUseFdlibmForSinCosTan) {
+    return math_function<math_tan_fdlibm_impl>(cx, argc, vp);
+  }
+  return math_function<math_tan_native_impl>(cx, argc, vp);
 }
 
 double js::math_log10_impl(double x) {
@@ -885,13 +926,22 @@ UnaryMathFunctionType js::GetUnaryMathFunctionPtr(UnaryMathFunction fun) {
     case UnaryMathFunction::Log:
       return math_log_impl;
     case UnaryMathFunction::Sin:
-      return math_sin_impl;
+      if (sUseFdlibmForSinCosTan) {
+        return math_sin_fdlibm_impl;
+      }
+      return math_sin_native_impl;
     case UnaryMathFunction::Cos:
-      return math_cos_impl;
+      if (sUseFdlibmForSinCosTan) {
+        return math_cos_fdlibm_impl;
+      }
+      return math_cos_native_impl;
     case UnaryMathFunction::Exp:
       return math_exp_impl;
     case UnaryMathFunction::Tan:
-      return math_tan_impl;
+      if (sUseFdlibmForSinCosTan) {
+        return math_tan_fdlibm_impl;
+      }
+      return math_tan_native_impl;
     case UnaryMathFunction::ATan:
       return math_atan_impl;
     case UnaryMathFunction::ASin:
diff --git a/js/src/jsmath.h b/js/src/jsmath.h
index 500de464e62a905b855c9fbf714409e65fa20978..04e405b4632a8cd8c5628ebb75c0d6622c3e780e 100644
--- a/js/src/jsmath.h
+++ b/js/src/jsmath.h
@@ -109,16 +109,20 @@ extern double math_log_impl(double x);
 extern bool math_log_handle(JSContext* cx, HandleValue val,
                             MutableHandleValue res);
 
+extern bool math_use_fdlibm_for_sin_cos_tan();
+
 extern bool math_sin(JSContext* cx, unsigned argc, js::Value* vp);
 
-extern double math_sin_impl(double x);
+extern double math_sin_fdlibm_impl(double x);
+extern double math_sin_native_impl(double x);
 
 extern bool math_sin_handle(JSContext* cx, HandleValue val,
                             MutableHandleValue res);
 
 extern bool math_cos(JSContext* cx, unsigned argc, js::Value* vp);
 
-extern double math_cos_impl(double x);
+extern double math_cos_fdlibm_impl(double x);
+extern double math_cos_native_impl(double x);
 
 extern bool math_exp(JSContext* cx, unsigned argc, js::Value* vp);
 
@@ -126,7 +130,8 @@ extern double math_exp_impl(double x);
 
 extern bool math_tan(JSContext* cx, unsigned argc, js::Value* vp);
 
-extern double math_tan_impl(double x);
+extern double math_tan_fdlibm_impl(double x);
+extern double math_tan_native_impl(double x);
 
 extern bool math_log10(JSContext* cx, unsigned argc, js::Value* vp);
 
diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp
index 7e0bcc9a52a3f7f9485f7a5fe4ea0f822c173108..24dd27e27f8a2b9c01ee798426d12323390b7e1a 100644
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -636,6 +636,8 @@ bool shell::compileOnly = false;
 bool shell::disableOOMFunctions = false;
 bool shell::defaultToSameCompartment = true;
 
+bool shell::useFdlibmForSinCosTan = false;
+
 #ifdef DEBUG
 bool shell::dumpEntrainedVariables = false;
 bool shell::OOM_printAllocationCount = false;
@@ -11283,6 +11285,7 @@ static bool SetContextOptions(JSContext* cx, const OptionParser& op) {
   enableTopLevelAwait = op.getBoolOption("enable-top-level-await");
   enableClassStaticBlocks = op.getBoolOption("enable-class-static-blocks");
   useOffThreadParseGlobal = op.getBoolOption("off-thread-parse-global");
+  useFdlibmForSinCosTan = op.getBoolOption("use-fdlibm-for-sin-cos-tan");
 
   JS::ContextOptionsRef(cx)
       .setAsmJS(enableAsmJS)
@@ -11316,6 +11319,7 @@ static bool SetContextOptions(JSContext* cx, const OptionParser& op) {
       .setClassStaticBlocks(enableClassStaticBlocks);
 
   JS::SetUseOffThreadParseGlobal(useOffThreadParseGlobal);
+  JS::SetUseFdlibmForSinCosTan(useFdlibmForSinCosTan);
 
   // Check --fast-warmup first because it sets default warm-up thresholds. These
   // thresholds can then be overridden below by --ion-eager and other flags.
@@ -12499,7 +12503,9 @@ int main(int argc, char** argv) {
       !op.addBoolOption('\0', "reprl", "Enable REPRL mode for fuzzing") ||
 #endif
       !op.addStringOption('\0', "telemetry-dir", "[directory]",
-                          "Output telemetry results in a directory")) {
+                          "Output telemetry results in a directory") ||
+      !op.addBoolOption('\0', "use-fdlibm-for-sin-cos-tan",
+                        "Use fdlibm for Math.sin, Math.cos, and Math.tan")) {
     return EXIT_FAILURE;
   }
 
diff --git a/js/src/shell/jsshell.h b/js/src/shell/jsshell.h
index bea760dba4ffa39380d69f6f5c9c0f3d024abc85..cff0c5c84242ddcc10885dfcc5af1779d3d17180 100644
--- a/js/src/shell/jsshell.h
+++ b/js/src/shell/jsshell.h
@@ -157,6 +157,8 @@ extern bool dumpEntrainedVariables;
 extern bool OOM_printAllocationCount;
 #endif
 
+extern bool useFdlibmForSinCosTan;
+
 extern UniqueChars processWideModuleLoadPath;
 
 // Alias the global dstName to namespaceObj.srcName. For example, if dstName is
diff --git a/js/src/wasm/WasmBaselineCompile.cpp b/js/src/wasm/WasmBaselineCompile.cpp
index bcd7af5b658e99a4f5da8a33c1af2f95a2738be8..156f3cbbba9468e9640c76dfe6458b72e73e29ca 100644
--- a/js/src/wasm/WasmBaselineCompile.cpp
+++ b/js/src/wasm/WasmBaselineCompile.cpp
@@ -7006,8 +7006,7 @@ class BaseCompiler final : public BaseCompilerInterface {
       // there's no constraint on what the output register may be.
       masm.wasmLoad(*access, srcAddr, dest.any());
     }
-#elif defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS32) || \
-    defined(JS_CODEGEN_MIPS64)
+#elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
     if (IsUnaligned(*access)) {
       switch (dest.tag) {
         case AnyReg::I64:
@@ -7035,6 +7034,12 @@ class BaseCompiler final : public BaseCompilerInterface {
         masm.wasmLoad(*access, HeapReg, ptr, ptr, dest.any());
       }
     }
+#elif defined(JS_CODEGEN_ARM)
+    if (dest.tag == AnyReg::I64) {
+      masm.wasmLoadI64(*access, HeapReg, ptr, ptr, dest.i64());
+    } else {
+      masm.wasmLoad(*access, HeapReg, ptr, ptr, dest.any());
+    }
 #elif defined(JS_CODEGEN_ARM64)
     if (dest.tag == AnyReg::I64) {
       masm.wasmLoadI64(*access, HeapReg, ptr, dest.i64());
@@ -7049,11 +7054,7 @@ class BaseCompiler final : public BaseCompilerInterface {
   }
 
   RegI32 needStoreTemp(const MemoryAccessDesc& access, ValType srcType) {
-#if defined(JS_CODEGEN_ARM)
-    if (IsUnaligned(access) && srcType != ValType::I32) {
-      return needI32();
-    }
-#elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
+#if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
     return needI32();
 #endif
     return RegI32::Invalid();
@@ -7098,36 +7099,13 @@ class BaseCompiler final : public BaseCompilerInterface {
       masm.wasmStore(*access, value, dstAddr);
     }
 #elif defined(JS_CODEGEN_ARM)
-    if (IsUnaligned(*access)) {
-      switch (src.tag) {
-        case AnyReg::I64:
-          masm.wasmUnalignedStoreI64(*access, src.i64(), HeapReg, ptr, ptr,
-                                     temp);
-          break;
-        case AnyReg::F32:
-          masm.wasmUnalignedStoreFP(*access, src.f32(), HeapReg, ptr, ptr,
-                                    temp);
-          break;
-        case AnyReg::F64:
-          masm.wasmUnalignedStoreFP(*access, src.f64(), HeapReg, ptr, ptr,
-                                    temp);
-          break;
-        case AnyReg::I32:
-          MOZ_ASSERT(temp.isInvalid());
-          masm.wasmUnalignedStore(*access, src.i32(), HeapReg, ptr, ptr, temp);
-          break;
-        default:
-          MOZ_CRASH("Unexpected type");
-      }
+    MOZ_ASSERT(temp.isInvalid());
+    if (access->type() == Scalar::Int64) {
+      masm.wasmStoreI64(*access, src.i64(), HeapReg, ptr, ptr);
+    } else if (src.tag == AnyReg::I64) {
+      masm.wasmStore(*access, AnyRegister(src.i64().low), HeapReg, ptr, ptr);
     } else {
-      MOZ_ASSERT(temp.isInvalid());
-      if (access->type() == Scalar::Int64) {
-        masm.wasmStoreI64(*access, src.i64(), HeapReg, ptr, ptr);
-      } else if (src.tag == AnyReg::I64) {
-        masm.wasmStore(*access, AnyRegister(src.i64().low), HeapReg, ptr, ptr);
-      } else {
-        masm.wasmStore(*access, src.any(), HeapReg, ptr, ptr);
-      }
+      masm.wasmStore(*access, src.any(), HeapReg, ptr, ptr);
     }
 #elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
     if (IsUnaligned(*access)) {
diff --git a/js/src/wasm/WasmBuiltins.cpp b/js/src/wasm/WasmBuiltins.cpp
index 90ab36a2c13e35dc3a7e35ffa2612e0aeace9349..fb4885dd3b9023615df842304980eb06ea92d411 100644
--- a/js/src/wasm/WasmBuiltins.cpp
+++ b/js/src/wasm/WasmBuiltins.cpp
@@ -1415,10 +1415,12 @@ bool wasm::NeedsBuiltinThunk(SymbolicAddress sym) {
 // Each JS builtin can have several overloads. These must all be enumerated in
 // PopulateTypedNatives() so they can be included in the process-wide thunk set.
 
+#define FOR_EACH_SIN_COS_TAN_NATIVE(_) \
+  _(math_sin, MathSin)                 \
+  _(math_tan, MathTan)                 \
+  _(math_cos, MathCos)
+
 #define FOR_EACH_UNARY_NATIVE(_) \
-  _(math_sin, MathSin)           \
-  _(math_tan, MathTan)           \
-  _(math_cos, MathCos)           \
   _(math_exp, MathExp)           \
   _(math_log, MathLog)           \
   _(math_asin, MathASin)         \
@@ -1443,6 +1445,14 @@ bool wasm::NeedsBuiltinThunk(SymbolicAddress sym) {
   _(ecmaHypot, MathHypot)         \
   _(ecmaPow, MathPow)
 
+#define DEFINE_SIN_COS_TAN_FLOAT_WRAPPER(func, _)  \
+  static float func##_impl_f32(float x) {          \
+    if (math_use_fdlibm_for_sin_cos_tan()) {       \
+      return float(func##_fdlibm_impl(double(x))); \
+    }                                              \
+    return float(func##_native_impl(double(x)));   \
+  }
+
 #define DEFINE_UNARY_FLOAT_WRAPPER(func, _) \
   static float func##_impl_f32(float x) {   \
     return float(func##_impl(double(x)));   \
@@ -1453,6 +1463,7 @@ bool wasm::NeedsBuiltinThunk(SymbolicAddress sym) {
     return float(func(double(x), double(y))); \
   }
 
+FOR_EACH_SIN_COS_TAN_NATIVE(DEFINE_SIN_COS_TAN_FLOAT_WRAPPER)
 FOR_EACH_UNARY_NATIVE(DEFINE_UNARY_FLOAT_WRAPPER)
 FOR_EACH_BINARY_NATIVE(DEFINE_BINARY_FLOAT_WRAPPER)
 
@@ -1484,6 +1495,14 @@ static bool PopulateTypedNatives(TypedNativeToFuncPtrMap* typedNatives) {
                             FuncCast(funcName, abiType)))                  \
     return false;
 
+#define ADD_SIN_COS_TAN_OVERLOADS(funcName, native)                  \
+  if (math_use_fdlibm_for_sin_cos_tan()) {                           \
+    ADD_OVERLOAD(funcName##_fdlibm_impl, native, Args_Double_Double) \
+  } else {                                                           \
+    ADD_OVERLOAD(funcName##_native_impl, native, Args_Double_Double) \
+  }                                                                  \
+  ADD_OVERLOAD(funcName##_impl_f32, native, Args_Float32_Float32)
+
 #define ADD_UNARY_OVERLOADS(funcName, native)               \
   ADD_OVERLOAD(funcName##_impl, native, Args_Double_Double) \
   ADD_OVERLOAD(funcName##_impl_f32, native, Args_Float32_Float32)
@@ -1492,6 +1511,7 @@ static bool PopulateTypedNatives(TypedNativeToFuncPtrMap* typedNatives) {
   ADD_OVERLOAD(funcName, native, Args_Double_DoubleDouble) \
   ADD_OVERLOAD(funcName##_f32, native, Args_Float32_Float32Float32)
 
+  FOR_EACH_SIN_COS_TAN_NATIVE(ADD_SIN_COS_TAN_OVERLOADS)
   FOR_EACH_UNARY_NATIVE(ADD_UNARY_OVERLOADS)
   FOR_EACH_BINARY_NATIVE(ADD_BINARY_OVERLOADS)
 
diff --git a/js/src/wasm/WasmInstance.cpp b/js/src/wasm/WasmInstance.cpp
index bd7fa8a93370c56b6558626080c0be8771ca0730..3930dee67e12a1b8b63ab77749f27bc487dfdfa4 100644
--- a/js/src/wasm/WasmInstance.cpp
+++ b/js/src/wasm/WasmInstance.cpp
@@ -1439,32 +1439,6 @@ bool Instance::memoryAccessInGuardRegion(const uint8_t* addr,
          lastByteOffset < memoryMappedSize();
 }
 
-bool Instance::memoryAccessInBounds(const uint8_t* addr,
-                                    unsigned numBytes) const {
-  MOZ_ASSERT(numBytes > 0 && numBytes <= sizeof(double));
-
-  if (!metadata().usesMemory()) {
-    return false;
-  }
-
-  uint8_t* base = memoryBase().unwrap(/* comparison */);
-  if (addr < base) {
-    return false;
-  }
-
-  size_t length = memory()->volatileMemoryLength();
-  if (addr >= base + length) {
-    return false;
-  }
-
-  // The pointer points into the memory.  Now check for partial OOB.
-  //
-  // This calculation can't wrap around because the access is small and there
-  // always is a guard page following the memory.
-  size_t lastByteOffset = addr - base + (numBytes - 1);
-  return lastByteOffset < length;
-}
-
 void Instance::tracePrivate(JSTracer* trc) {
   // This method is only called from WasmInstanceObject so the only reason why
   // TraceEdge is called is so that the pointer can be updated during a moving
diff --git a/js/src/wasm/WasmInstance.h b/js/src/wasm/WasmInstance.h
index 368cac01f6d81b3fb0dc865bd76b2874c37d8c1c..820e44ace3f8895ce4b710784e0069056cca4405 100644
--- a/js/src/wasm/WasmInstance.h
+++ b/js/src/wasm/WasmInstance.h
@@ -114,7 +114,6 @@ class Instance {
   size_t memoryMappedSize() const;
   SharedArrayRawBuffer* sharedMemoryBuffer() const;  // never null
   bool memoryAccessInGuardRegion(const uint8_t* addr, unsigned numBytes) const;
-  bool memoryAccessInBounds(const uint8_t* addr, unsigned numBytes) const;
   const SharedExceptionTagVector& exceptionTags() const {
     return exceptionTags_;
   }
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
index 37bc5a9c19273a5fe086c2801fb2db3360557404..4ab2a44192a5c34cc27de05dce81c89f6e12e6fb 100644
--- a/js/src/wasm/WasmSignalHandlers.cpp
+++ b/js/src/wasm/WasmSignalHandlers.cpp
@@ -233,28 +233,6 @@ using mozilla::DebugOnly;
 #  error "Don't know how to read/write to the thread state via the mcontext_t."
 #endif
 
-// On ARM Linux, including Android, unaligned FP accesses that were not flagged
-// as unaligned will tend to trap (with SIGBUS) and will need to be emulated.
-//
-// We can only perform this emulation if the system header files provide access
-// to the FP registers.  In particular, <sys/user.h> must have definitions of
-// `struct user_vfp` and `struct user_vfp_exc`, as it does on Android.
-//
-// Those definitions are however not present in the headers of every Linux
-// distro - Raspbian is known to be a problem, for example.  However those
-// distros are tier-3 platforms.
-//
-// If you run into compile problems on a tier-3 platform, you can disable the
-// emulation here.
-
-#if defined(__linux__) && defined(__arm__)
-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-#endif
-
-#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-#  include <sys/user.h>
-#endif
-
 #if defined(ANDROID)
 // Not all versions of the Android NDK define ucontext_t or mcontext_t.
 // Detect this and provide custom but compatible definitions. Note that these
@@ -485,215 +463,7 @@ struct AutoHandlingTrap {
   }
 };
 
-#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-
-// Code to handle SIGBUS for unaligned floating point accesses on 32-bit ARM.
-
-static uintptr_t ReadGPR(CONTEXT* context, uint32_t rn) {
-  switch (rn) {
-    case 0:
-      return context->uc_mcontext.arm_r0;
-    case 1:
-      return context->uc_mcontext.arm_r1;
-    case 2:
-      return context->uc_mcontext.arm_r2;
-    case 3:
-      return context->uc_mcontext.arm_r3;
-    case 4:
-      return context->uc_mcontext.arm_r4;
-    case 5:
-      return context->uc_mcontext.arm_r5;
-    case 6:
-      return context->uc_mcontext.arm_r6;
-    case 7:
-      return context->uc_mcontext.arm_r7;
-    case 8:
-      return context->uc_mcontext.arm_r8;
-    case 9:
-      return context->uc_mcontext.arm_r9;
-    case 10:
-      return context->uc_mcontext.arm_r10;
-    case 11:
-      return context->uc_mcontext.arm_fp;
-    case 12:
-      return context->uc_mcontext.arm_ip;
-    case 13:
-      return context->uc_mcontext.arm_sp;
-    case 14:
-      return context->uc_mcontext.arm_lr;
-    case 15:
-      return context->uc_mcontext.arm_pc;
-    default:
-      MOZ_CRASH();
-  }
-}
-
-// Linux kernel data structures.
-//
-// The vfp_sigframe is a kernel type overlaid on the uc_regspace field of the
-// ucontext_t if the first word of the uc_regspace is VFP_MAGIC.  (user_vfp and
-// user_vfp_exc are defined in sys/user.h and are stable.)
-//
-// VFP_MAGIC appears to have been stable since a commit to Linux on 2010-04-11,
-// when it was changed from being 0x56465001 on ARMv6 and earlier and 0x56465002
-// on ARMv7 and later, to being 0x56465001 on all CPU versions.  This was in
-// Kernel 2.6.34-rc5.
-//
-// My best interpretation of the Android commit history is that Android has had
-// vfp_sigframe and VFP_MAGIC in this form since at least Android 3.4 / 2012;
-// Firefox requires Android 4.0 at least and we're probably safe here.
-
-struct vfp_sigframe {
-  unsigned long magic;
-  unsigned long size;
-  struct user_vfp ufp;
-  struct user_vfp_exc ufp_exc;
-};
-
-#  define VFP_MAGIC 0x56465001
-
-static vfp_sigframe* GetVFPFrame(CONTEXT* context) {
-  if (context->uc_regspace[0] != VFP_MAGIC) {
-    return nullptr;
-  }
-  return (vfp_sigframe*)&context->uc_regspace;
-}
-
-static bool ReadFPR64(CONTEXT* context, uint32_t vd, double* val) {
-  MOZ_ASSERT(vd < 32);
-  vfp_sigframe* frame = GetVFPFrame(context);
-  if (frame) {
-    *val = ((double*)frame->ufp.fpregs)[vd];
-    return true;
-  }
-  return false;
-}
-
-static bool WriteFPR64(CONTEXT* context, uint32_t vd, double val) {
-  MOZ_ASSERT(vd < 32);
-  vfp_sigframe* frame = GetVFPFrame(context);
-  if (frame) {
-    ((double*)frame->ufp.fpregs)[vd] = val;
-    return true;
-  }
-  return false;
-}
-
-static bool ReadFPR32(CONTEXT* context, uint32_t vd, float* val) {
-  MOZ_ASSERT(vd < 32);
-  vfp_sigframe* frame = GetVFPFrame(context);
-  if (frame) {
-    *val = ((float*)frame->ufp.fpregs)[vd];
-    return true;
-  }
-  return false;
-}
-
-static bool WriteFPR32(CONTEXT* context, uint32_t vd, float val) {
-  MOZ_ASSERT(vd < 32);
-  vfp_sigframe* frame = GetVFPFrame(context);
-  if (frame) {
-    ((float*)frame->ufp.fpregs)[vd] = val;
-    return true;
-  }
-  return false;
-}
-
-static bool HandleUnalignedTrap(CONTEXT* context, uint8_t* pc,
-                                Instance* instance) {
-  // ARM only, no Thumb.
-  MOZ_RELEASE_ASSERT(uintptr_t(pc) % 4 == 0);
-
-  // wasmLoadImpl() and wasmStoreImpl() in MacroAssembler-arm.cpp emit plain,
-  // unconditional VLDR and VSTR instructions that do not use the PC as the base
-  // register.
-  uint32_t instr = *(uint32_t*)pc;
-  uint32_t masked = instr & 0x0F300E00;
-  bool isVLDR = masked == 0x0D100A00;
-  bool isVSTR = masked == 0x0D000A00;
-
-  if (!isVLDR && !isVSTR) {
-    // Three obvious cases if we don't get our expected instructions:
-    // - masm is generating other FP access instructions than it should
-    // - we're encountering a device that traps on new kinds of accesses,
-    //   perhaps unaligned integer accesses
-    // - general code generation bugs that lead to SIGBUS
-#  ifdef ANDROID
-    __android_log_print(ANDROID_LOG_ERROR, "WASM", "Bad SIGBUS instr %08x",
-                        instr);
-#  endif
-#  ifdef DEBUG
-    MOZ_CRASH("Unexpected instruction");
-#  endif
-    return false;
-  }
-
-  bool isUnconditional = (instr >> 28) == 0xE;
-  bool isDouble = (instr & 0x00000100) != 0;
-  bool isAdd = (instr & 0x00800000) != 0;
-  uint32_t dBit = (instr >> 22) & 1;
-  uint32_t offs = (instr & 0xFF) << 2;
-  uint32_t rn = (instr >> 16) & 0xF;
-
-  MOZ_RELEASE_ASSERT(isUnconditional);
-  MOZ_RELEASE_ASSERT(rn != 15);
-
-  uint8_t* p = (uint8_t*)ReadGPR(context, rn) + (isAdd ? offs : -offs);
-
-  if (!instance->memoryAccessInBounds(
-          p, isDouble ? sizeof(double) : sizeof(float))) {
-    return false;
-  }
-
-  if (isDouble) {
-    uint32_t vd = ((instr >> 12) & 0xF) | (dBit << 4);
-    double val;
-    if (isVLDR) {
-      memcpy(&val, p, sizeof(val));
-      if (WriteFPR64(context, vd, val)) {
-        SetContextPC(context, pc + 4);
-        return true;
-      }
-    } else {
-      if (ReadFPR64(context, vd, &val)) {
-        memcpy(p, &val, sizeof(val));
-        SetContextPC(context, pc + 4);
-        return true;
-      }
-    }
-  } else {
-    uint32_t vd = ((instr >> 11) & (0xF << 1)) | dBit;
-    float val;
-    if (isVLDR) {
-      memcpy(&val, p, sizeof(val));
-      if (WriteFPR32(context, vd, val)) {
-        SetContextPC(context, pc + 4);
-        return true;
-      }
-    } else {
-      if (ReadFPR32(context, vd, &val)) {
-        memcpy(p, &val, sizeof(val));
-        SetContextPC(context, pc + 4);
-        return true;
-      }
-    }
-  }
-
-#  ifdef DEBUG
-  MOZ_CRASH(
-      "SIGBUS handler could not access FP register, incompatible kernel?");
-#  endif
-  return false;
-}
-#else   // WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-static bool HandleUnalignedTrap(CONTEXT* context, uint8_t* pc,
-                                Instance* instance) {
-  return false;
-}
-#endif  // WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-
 [[nodiscard]] static bool HandleTrap(CONTEXT* context,
-                                     bool isUnalignedSignal = false,
                                      JSContext* assertCx = nullptr) {
   MOZ_ASSERT(sAlreadyHandlingTrap.get());
 
@@ -722,15 +492,6 @@ static bool HandleUnalignedTrap(CONTEXT* context, uint8_t* pc,
   MOZ_RELEASE_ASSERT(&instance->code() == &segment.code() ||
                      trap == Trap::IndirectCallBadSig);
 
-  if (isUnalignedSignal) {
-    if (trap != Trap::OutOfBounds) {
-      return false;
-    }
-    if (HandleUnalignedTrap(context, pc, instance)) {
-      return true;
-    }
-  }
-
   JSContext* cx =
       instance->realm()->runtimeFromAnyThread()->mainContextFromAnyThread();
   MOZ_RELEASE_ASSERT(!assertCx || cx == assertCx);
@@ -771,7 +532,7 @@ static LONG WINAPI WasmTrapHandler(LPEXCEPTION_POINTERS exception) {
     return EXCEPTION_CONTINUE_SEARCH;
   }
 
-  if (!HandleTrap(exception->ContextRecord, false, TlsContext.get())) {
+  if (!HandleTrap(exception->ContextRecord, TlsContext.get())) {
     return EXCEPTION_CONTINUE_SEARCH;
   }
 
@@ -946,7 +707,7 @@ static void WasmTrapHandler(int signum, siginfo_t* info, void* context) {
     AutoHandlingTrap aht;
     MOZ_RELEASE_ASSERT(signum == SIGSEGV || signum == SIGBUS ||
                        signum == kWasmTrapSignal);
-    if (HandleTrap((CONTEXT*)context, signum == SIGBUS, TlsContext.get())) {
+    if (HandleTrap((CONTEXT*)context, TlsContext.get())) {
       return;
     }
   }
@@ -1219,5 +980,3 @@ bool wasm::HandleIllegalInstruction(const RegisterState& regs,
   *newPC = segment.trapCode();
   return true;
 }
-
-#undef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp
index e37c2638ae2cbf08f8a0786d3475e09745a5c882..3a2ced1ccd3d959581d2575f00fce5cc402f7358 100644
--- a/js/xpconnect/src/XPCJSContext.cpp
+++ b/js/xpconnect/src/XPCJSContext.cpp
@@ -86,13 +86,10 @@ using namespace mozilla;
 using namespace xpc;
 using namespace JS;
 
-// The watchdog thread loop is pretty trivial, and should not require much stack
-// space to do its job. So only give it 32KiB or the platform minimum.
+// We will clamp to reasonable values if this isn't set.
 #if !defined(PTHREAD_STACK_MIN)
 #  define PTHREAD_STACK_MIN 0
 #endif
-static constexpr size_t kWatchdogStackSize =
-    PTHREAD_STACK_MIN < 32 * 1024 ? 32 * 1024 : PTHREAD_STACK_MIN;
 
 static void WatchdogMain(void* arg);
 class Watchdog;
@@ -159,12 +156,19 @@ class Watchdog {
     {
       AutoLockWatchdog lock(this);
 
+      // The watchdog thread loop is pretty trivial, and should not
+      // require much stack space to do its job. So only give it 32KiB
+      // or the platform minimum. On modern Linux libc this might resolve to
+      // a runtime call.
+      size_t watchdogStackSize = PTHREAD_STACK_MIN;
+      watchdogStackSize = std::max<size_t>(32 * 1024, watchdogStackSize);
+
       // Gecko uses thread private for accounting and has to clean up at thread
       // exit. Therefore, even though we don't have a return value from the
       // watchdog, we need to join it on shutdown.
       mThread = PR_CreateThread(PR_USER_THREAD, WatchdogMain, this,
                                 PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD,
-                                PR_JOINABLE_THREAD, kWatchdogStackSize);
+                                PR_JOINABLE_THREAD, watchdogStackSize);
       if (!mThread) {
         MOZ_CRASH("PR_CreateThread failed!");
       }
@@ -1044,6 +1048,10 @@ static void ReloadPrefsCallback(const char* pref, void* aXpccx) {
       .setErgnomicBrandChecks(ergnomicBrandChecksEnabled)
       .setTopLevelAwait(topLevelAwaitEnabled);
 
+  JS::SetUseFdlibmForSinCosTan(
+      Preferences::GetBool(JS_OPTIONS_DOT_STR "use_fdlibm_for_sin_cos_tan") ||
+      Preferences::GetBool("privacy.resistFingerprinting"));
+
   nsCOMPtr<nsIXULRuntime> xr = do_GetService("@mozilla.org/xre/runtime;1");
   if (xr) {
     bool safeMode = false;
diff --git a/layout/base/tests/browser.ini b/layout/base/tests/browser.ini
index 0f4793e2e5b208b736d01a1755f958b8648fd2ff..2238128c537b0e0bf855f6a0b5831be8484457d9 100644
--- a/layout/base/tests/browser.ini
+++ b/layout/base/tests/browser.ini
@@ -6,6 +6,12 @@ prefs =
 support-files =
   file_bug839103.html
   bug839103.css
+[browser_bug1701027-1.js]
+support-files =
+  helper_bug1701027-1.html
+[browser_bug1701027-2.js]
+support-files =
+  helper_bug1701027-2.html
 [browser_disableDialogs_onbeforeunload.js]
 [browser_onbeforeunload_only_after_interaction.js]
 [browser_onbeforeunload_only_after_interaction_in_frame.js]
diff --git a/layout/base/tests/browser_bug1701027-1.js b/layout/base/tests/browser_bug1701027-1.js
new file mode 100644
index 0000000000000000000000000000000000000000..819f3feae24231b696c736f821b73103d4e98469
--- /dev/null
+++ b/layout/base/tests/browser_bug1701027-1.js
@@ -0,0 +1,130 @@
+/* This test is based on
+     https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/gfx/layers/apz/test/mochitest/browser_test_select_zoom.js
+*/
+
+// In order for this test to test the original bug we need:
+// 1) At least e10s enabled so that apz is enabled so we can create an
+//    nsDisplayAsyncZoom item
+//    (the insertion of this item without marking the required frame modified
+//     is what causes the bug in the retained display list merging)
+// 2) a root content document, again so that we can create a nsDisplayAsyncZoom
+//    item
+// 3) the root content document cannot have a display port to start
+//    (if it has a display port then it gets a nsDisplayAsyncZoom, but we need
+//     that to be created after the anonymous content we insert into the
+//     document)
+// Point 3) requires the root content document to be in the parent process,
+// since if it is in a content process it will get a displayport for being at
+// the root of a process.
+// Creating an in-process root content document I think is not possible in
+// mochitest-plain. mochitest-chrome does not have e10s enabled. So this has to
+// be a mochitest-browser-chrome test.
+
+// Outline of this test:
+// Open a new tab with a pretty simple content file, that is not scrollable
+// Use the anonymous content api to insert into that content doc
+// Send a mouse click over the content doc
+// The click hits fixed pos content.
+// This sets a displayport on the root scroll frame of the content doc.
+// (This is because we call GetAsyncScrollableAncestorFrame in
+// PrepareForSetTargetAPZCNotification
+// https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/gfx/layers/apz/util/APZCCallbackHelper.cpp#624
+// which passes the SCROLLABLE_FIXEDPOS_FINDS_ROOT flag
+// https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/layout/base/nsLayoutUtils.cpp#2884
+// so starting from fixed pos content means we always find the root scroll
+// frame, whereas if we started from non-fixed content we'd walk pass the root
+// scroll frame becase it isn't scrollable.)
+// Then we have to be careful not to do anything that causes a full display
+// list rebuild.
+// And finally we change the color of the fixed element which covers the whole
+// viewport which causes us to do a partial display list update including the
+// anonymous content, which hits the assert we are aiming to test.
+
+add_task(async function() {
+  function getChromeURL(filename) {
+    let chromeURL = getRootDirectory(gTestPath) + filename;
+    return chromeURL;
+  }
+
+  // We need this otherwise there is a burst animation on the new tab when it
+  // loads and that somehow scrolls a scroll frame, which makes it active,
+  // which makes the scrolled frame an AGR, which means we have multiple AGRs
+  // (the display port makes the root scroll frame active and an AGR) so we hit
+  // this
+  // https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/layout/painting/RetainedDisplayListBuilder.cpp#1179
+  // and are forced to do a full display list rebuild and that prevents us from
+  // testing the original bug.
+  await SpecialPowers.pushPrefEnv({
+    set: [["ui.prefersReducedMotion", 1]],
+  });
+
+  const pageUrl = getChromeURL("helper_bug1701027-1.html");
+  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
+
+  const [theX, theY] = await SpecialPowers.spawn(
+    tab.linkedBrowser,
+    [],
+    async () => {
+      content.document.body.offsetWidth;
+
+      await new Promise(r => content.window.requestAnimationFrame(r));
+
+      const rect = content.document
+        .getElementById("fd")
+        .getBoundingClientRect();
+      const x = content.window.mozInnerScreenX + rect.left + rect.width / 2;
+      const y = content.window.mozInnerScreenY + rect.top + rect.height / 2;
+
+      let doc = SpecialPowers.wrap(content.document);
+      var bq = doc.createElement("blockquote");
+      bq.textContent = "This blockquote text.";
+      var div = doc.createElement("div");
+      div.textContent = " This div text.";
+      bq.appendChild(div);
+      var ac = doc.insertAnonymousContent(bq);
+      content.document.body.offsetWidth;
+
+      await new Promise(r => content.window.requestAnimationFrame(r));
+      await new Promise(r => content.window.requestAnimationFrame(r));
+
+      return [x, y];
+    }
+  );
+
+  EventUtils.synthesizeNativeMouseEvent({
+    type: "click",
+    target: window.document.documentElement,
+    screenX: theX,
+    screenY: theY,
+  });
+
+  await new Promise(resolve => setTimeout(resolve, 0));
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    await new Promise(r => content.window.requestAnimationFrame(r));
+    await new Promise(r => content.window.requestAnimationFrame(r));
+  });
+
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    content.document.getElementById("fd").style.backgroundColor = "blue";
+  });
+
+  await new Promise(resolve => setTimeout(resolve, 0));
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    await new Promise(r => content.window.requestAnimationFrame(r));
+    await new Promise(r => content.window.requestAnimationFrame(r));
+  });
+
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    content.document.getElementById("fd").style.backgroundColor = "red";
+  });
+
+  await new Promise(resolve => setTimeout(resolve, 0));
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    await new Promise(r => content.window.requestAnimationFrame(r));
+    await new Promise(r => content.window.requestAnimationFrame(r));
+  });
+
+  BrowserTestUtils.removeTab(tab);
+
+  ok(true, "didn't crash");
+});
diff --git a/layout/base/tests/browser_bug1701027-2.js b/layout/base/tests/browser_bug1701027-2.js
new file mode 100644
index 0000000000000000000000000000000000000000..a9c54644bee71265a9d1416c53543e7be51a2a1e
--- /dev/null
+++ b/layout/base/tests/browser_bug1701027-2.js
@@ -0,0 +1,126 @@
+/* This test is based on
+     https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/gfx/layers/apz/test/mochitest/browser_test_select_zoom.js
+*/
+
+// In order for this test to test the original bug we need:
+// 1) At least e10s enabled so that apz is enabled so we can create an
+//    nsDisplayAsyncZoom item
+//    (the insertion of this item without marking the required frame modified
+//     is what causes the bug in the retained display list merging)
+// 2) a root content document, again so that we can create a nsDisplayAsyncZoom
+//    item
+// 3) the root content document cannot have a display port to start
+//    (if it has a display port then it gets a nsDisplayAsyncZoom, but we need
+//     that to be created after the anonymous content we insert into the
+//     document)
+// Point 3) requires the root content document to be in the parent process,
+// since if it is in a content process it will get a displayport for being at
+// the root of a process.
+// Creating an in-process root content document I think is not possible in
+// mochitest-plain. mochitest-chrome does not have e10s enabled. So this has to
+// be a mochitest-browser-chrome test.
+
+// Outline of this test:
+// Open a new tab with a pretty simple content file, that is not scrollable
+// Use the anonymous content api to insert into that content doc
+// Set a displayport on the root scroll frame of the content doc directly.
+// Then we have to be careful not to do anything that causes a full display
+// list rebuild.
+// And finally we change the color of the fixed element which covers the whole
+// viewport which causes us to do a partial display list update including the
+// anonymous content, which hits the assert we are aiming to test.
+
+add_task(async function() {
+  function getChromeURL(filename) {
+    let chromeURL = getRootDirectory(gTestPath) + filename;
+    return chromeURL;
+  }
+
+  // We need this otherwise there is a burst animation on the new tab when it
+  // loads and that somehow scrolls a scroll frame, which makes it active,
+  // which makes the scrolled frame an AGR, which means we have multiple AGRs
+  // (the display port makes the root scroll frame active and an AGR) so we hit
+  // this
+  // https://searchfox.org/mozilla-central/rev/e082df56bbfeaff0f388e7da9da401ff414df18f/layout/painting/RetainedDisplayListBuilder.cpp#1179
+  // and are forced to do a full display list rebuild and that prevents us from
+  // testing the original bug.
+  await SpecialPowers.pushPrefEnv({
+    set: [["ui.prefersReducedMotion", 1]],
+  });
+
+  const pageUrl = getChromeURL("helper_bug1701027-2.html");
+  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
+
+  const [theX, theY] = await SpecialPowers.spawn(
+    tab.linkedBrowser,
+    [],
+    async () => {
+      content.document.body.offsetWidth;
+
+      await new Promise(r => content.window.requestAnimationFrame(r));
+
+      const rect = content.document
+        .getElementById("fd")
+        .getBoundingClientRect();
+      const x = content.window.mozInnerScreenX + rect.left + rect.width / 2;
+      const y = content.window.mozInnerScreenY + rect.top + rect.height / 2;
+
+      let doc = SpecialPowers.wrap(content.document);
+      var bq = doc.createElement("blockquote");
+      bq.textContent = "This blockquote text.";
+      var div = doc.createElement("div");
+      div.textContent = " This div text.";
+      bq.appendChild(div);
+      var ac = doc.insertAnonymousContent(bq);
+      content.document.body.offsetWidth;
+
+      await new Promise(r => content.window.requestAnimationFrame(r));
+      await new Promise(r => content.window.requestAnimationFrame(r));
+
+      content.window.windowUtils.setDisplayPortMarginsForElement(
+        0,
+        0,
+        0,
+        0,
+        doc.documentElement,
+        1
+      );
+      content.window.windowUtils.setDisplayPortBaseForElement(
+        0,
+        0,
+        100,
+        100,
+        doc.documentElement
+      );
+
+      await new Promise(r => content.window.requestAnimationFrame(r));
+      await new Promise(r => content.window.requestAnimationFrame(r));
+
+      return [x, y];
+    }
+  );
+
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    content.document.getElementById("fd").style.backgroundColor = "blue";
+  });
+
+  await new Promise(resolve => setTimeout(resolve, 0));
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    await new Promise(r => content.window.requestAnimationFrame(r));
+    await new Promise(r => content.window.requestAnimationFrame(r));
+  });
+
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    content.document.getElementById("fd").style.backgroundColor = "red";
+  });
+
+  await new Promise(resolve => setTimeout(resolve, 0));
+  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
+    await new Promise(r => content.window.requestAnimationFrame(r));
+    await new Promise(r => content.window.requestAnimationFrame(r));
+  });
+
+  BrowserTestUtils.removeTab(tab);
+
+  ok(true, "didn't crash");
+});
diff --git a/layout/base/tests/helper_bug1701027-1.html b/layout/base/tests/helper_bug1701027-1.html
new file mode 100644
index 0000000000000000000000000000000000000000..659c1f78261fd83e9b3b3523d58b2afd9d48f791
--- /dev/null
+++ b/layout/base/tests/helper_bug1701027-1.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+</head>
+<body>
+Here is some text to stare at as the test runs. It serves no functional
+purpose
+<img src="notoifnd" style="position: absolute;">
+<div id="fd" style="position: fixed; left:0; top:0;bottom:0;right:0;"></div>
+</body>
+</html>
diff --git a/layout/base/tests/helper_bug1701027-2.html b/layout/base/tests/helper_bug1701027-2.html
new file mode 100644
index 0000000000000000000000000000000000000000..659c1f78261fd83e9b3b3523d58b2afd9d48f791
--- /dev/null
+++ b/layout/base/tests/helper_bug1701027-2.html
@@ -0,0 +1,10 @@
+<html>
+<head>
+</head>
+<body>
+Here is some text to stare at as the test runs. It serves no functional
+purpose
+<img src="notoifnd" style="position: absolute;">
+<div id="fd" style="position: fixed; left:0; top:0;bottom:0;right:0;"></div>
+</body>
+</html>
diff --git a/layout/forms/nsHTMLButtonControlFrame.cpp b/layout/forms/nsHTMLButtonControlFrame.cpp
index c93d210ea5da44bc52e40d66ee249add461a0b9c..07b9be7bd95fed13ef777b22a0356de10ee9441a 100644
--- a/layout/forms/nsHTMLButtonControlFrame.cpp
+++ b/layout/forms/nsHTMLButtonControlFrame.cpp
@@ -334,6 +334,10 @@ bool nsHTMLButtonControlFrame::GetVerticalAlignBaseline(
 bool nsHTMLButtonControlFrame::GetNaturalBaselineBOffset(
     mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
     nscoord* aBaseline) const {
+  if (StyleDisplay()->IsContainLayout()) {
+    return false;
+  }
+
   nsIFrame* inner = mFrames.FirstChild();
   if (MOZ_UNLIKELY(inner->GetWritingMode().IsOrthogonalTo(aWM))) {
     return false;
diff --git a/layout/generic/nsBlockFrame.cpp b/layout/generic/nsBlockFrame.cpp
index c4f50d022b01f07a28ec0f2417495ab0589b125a..34aaa43512b8d07afb84ea09265dc97e2b92aae7 100644
--- a/layout/generic/nsBlockFrame.cpp
+++ b/layout/generic/nsBlockFrame.cpp
@@ -575,14 +575,14 @@ nscoord nsBlockFrame::GetLogicalBaseline(WritingMode aWM) const {
 bool nsBlockFrame::GetNaturalBaselineBOffset(
     mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
     nscoord* aBaseline) const {
-  if (aBaselineGroup == BaselineSharingGroup::First) {
-    return nsLayoutUtils::GetFirstLineBaseline(aWM, this, aBaseline);
-  }
-
   if (StyleDisplay()->IsContainLayout()) {
     return false;
   }
 
+  if (aBaselineGroup == BaselineSharingGroup::First) {
+    return nsLayoutUtils::GetFirstLineBaseline(aWM, this, aBaseline);
+  }
+
   for (ConstReverseLineIterator line = LinesRBegin(), line_end = LinesREnd();
        line != line_end; ++line) {
     if (line->IsBlock()) {
diff --git a/layout/generic/nsFlexContainerFrame.cpp b/layout/generic/nsFlexContainerFrame.cpp
index 409221c76e0f23c8ac1a26327728121af5694694..55beb653d963458a1288d116c02774cc10893c6e 100644
--- a/layout/generic/nsFlexContainerFrame.cpp
+++ b/layout/generic/nsFlexContainerFrame.cpp
@@ -389,27 +389,38 @@ class nsFlexContainerFrame::FlexItem final {
   nscoord CrossSize() const { return mCrossSize; }
   nscoord CrossPosition() const { return mCrossPosn; }
 
+  // Lazy getter for mAscent.
   nscoord ResolvedAscent(bool aUseFirstBaseline) const {
-    if (mAscent == ReflowOutput::ASK_FOR_BASELINE) {
-      // XXXdholbert We should probably be using the *container's* writing-mode
-      // here, instead of the item's -- though it doesn't much matter right
-      // now, because all of the baseline-handling code here essentially
-      // assumes that the container & items have the same writing-mode. This
-      // will matter more (& can be expanded/tested) once we officially support
-      // logical directions & vertical writing-modes in flexbox, in bug 1079155
-      // or a dependency.
-      // Use GetFirstLineBaseline() or GetLastLineBaseline() as appropriate,
-      // or just GetLogicalBaseline() if that fails.
-      bool found =
-          aUseFirstBaseline
-              ? nsLayoutUtils::GetFirstLineBaseline(mWM, mFrame, &mAscent)
-              : nsLayoutUtils::GetLastLineBaseline(mWM, mFrame, &mAscent);
-
-      if (!found) {
-        mAscent = mFrame->SynthesizeBaselineBOffsetFromBorderBox(
-            mWM, BaselineSharingGroup::First);
-      }
+    // XXXdholbert Two concerns to follow up on here:
+    // (1) We probably should be checking and reacting to aUseFirstBaseline
+    // for all of the cases here (e.g. this first one). Maybe we need to store
+    // two versions of mAscent and choose the appropriate one based on
+    // aUseFirstBaseline? This is roughly bug 1480850, I think.
+    // (2) We should be using the *container's* writing-mode (mCBWM) here,
+    // instead of the item's (mWM). This is essentially bug 1155322.
+    if (mAscent != ReflowOutput::ASK_FOR_BASELINE) {
+      return mAscent;
+    }
+
+    // Use GetFirstLineBaseline() or GetLastLineBaseline() as appropriate:
+    bool found =
+        aUseFirstBaseline
+            ? nsLayoutUtils::GetFirstLineBaseline(mWM, mFrame, &mAscent)
+            : nsLayoutUtils::GetLastLineBaseline(mWM, mFrame, &mAscent);
+    if (found) {
+      return mAscent;
     }
+
+    // If the nsLayoutUtils getter fails, then ask the frame directly:
+    auto baselineGroup = aUseFirstBaseline ? BaselineSharingGroup::First
+                                           : BaselineSharingGroup::Last;
+    if (mFrame->GetNaturalBaselineBOffset(mWM, baselineGroup, &mAscent)) {
+      return mAscent;
+    }
+
+    // We couldn't determine a baseline, so we synthesize one from border box:
+    mAscent = mFrame->SynthesizeBaselineBOffsetFromBorderBox(
+        mWM, BaselineSharingGroup::First);
     return mAscent;
   }
 
diff --git a/layout/generic/nsFlexContainerFrame.h b/layout/generic/nsFlexContainerFrame.h
index 3349c698b37f1b621ca6da75fc0635d7ad412ea2..f5ae45048e595e2d48f56b30bd07056dd3ea6174 100644
--- a/layout/generic/nsFlexContainerFrame.h
+++ b/layout/generic/nsFlexContainerFrame.h
@@ -173,7 +173,8 @@ class nsFlexContainerFrame final : public nsContainerFrame {
   bool GetNaturalBaselineBOffset(mozilla::WritingMode aWM,
                                  BaselineSharingGroup aBaselineGroup,
                                  nscoord* aBaseline) const override {
-    if (HasAnyStateBits(NS_STATE_FLEX_SYNTHESIZE_BASELINE)) {
+    if (StyleDisplay()->IsContainLayout() ||
+        HasAnyStateBits(NS_STATE_FLEX_SYNTHESIZE_BASELINE)) {
       return false;
     }
     *aBaseline = aBaselineGroup == BaselineSharingGroup::First
diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp
index 8ef7e7e450a4c85df2e662c51fa3828a54c14ae0..2f3b8a39e09c1439c4e2fbed818fd1e8f734fde9 100644
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -784,24 +784,22 @@ void nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowInput* aState,
   auto* disp = StyleDisplay();
   if (MOZ_UNLIKELY(disp->mOverflowClipBoxInline ==
                    StyleOverflowClipBox::ContentBox)) {
-    // If the scrolled frame can be scrolled in the inline axis, inflate its
-    // scrollable overflow areas with its inline-end padding to prevent its
-    // content from being clipped at scroll container's inline-end padding
-    // edge.
-    //
-    // Note: Inflating scrolled frame's overflow areas is generally wrong if the
-    // scrolled frame's children themselves has any scrollable overflow areas.
-    // However, we can only be here in production for <textarea> and <input>.
-    // Both elements can only have text children, which shouldn't have
-    // scrollable overflow areas themselves, so its fine.
+    // The scrolled frame is scrollable in the inline axis with
+    // `overflow-clip-box:content-box`. To prevent its content from being
+    // clipped at the scroll container's padding edges, we inflate its
+    // children's scrollable overflow area with its inline padding, and union
+    // its scrollable overflow area with its children's inflated scrollable
+    // overflow area.
+    OverflowAreas childOverflow;
+    mHelper.mScrolledFrame->UnionChildOverflow(childOverflow);
+    nsRect childScrollableOverflow = childOverflow.ScrollableOverflow();
+
+    const LogicalMargin inlinePadding =
+        padding.ApplySkipSides(LogicalSides(wm, eLogicalSideBitsBBoth));
+    childScrollableOverflow.Inflate(inlinePadding.GetPhysicalMargin(wm));
+
     nsRect& so = aMetrics->ScrollableOverflow();
-    const nscoord soInlineSize = wm.IsVertical() ? so.Height() : so.Width();
-    if (soInlineSize > availISize) {
-      const LogicalMargin inlinePaddingEnd =
-          padding.ApplySkipSides(LogicalSides(wm, eLogicalSideBitsBBoth) |
-                                 LogicalSides(wm, eLogicalSideBitsIStart));
-      so.Inflate(inlinePaddingEnd.GetPhysicalMargin(wm));
-    }
+    so = so.UnionEdges(childScrollableOverflow);
   }
 
   aState->mContentsOverflowAreas = aMetrics->mOverflowAreas;
diff --git a/layout/generic/nsGridContainerFrame.h b/layout/generic/nsGridContainerFrame.h
index b207bed9e4b800ad777034129115742cfddca9d3..b92fd68e7f788778ce38cbb5506c492629c65f38 100644
--- a/layout/generic/nsGridContainerFrame.h
+++ b/layout/generic/nsGridContainerFrame.h
@@ -143,7 +143,8 @@ class nsGridContainerFrame final : public nsContainerFrame {
   bool GetNaturalBaselineBOffset(mozilla::WritingMode aWM,
                                  BaselineSharingGroup aBaselineGroup,
                                  nscoord* aBaseline) const override {
-    if (HasAnyStateBits(NS_STATE_GRID_SYNTHESIZE_BASELINE)) {
+    if (StyleDisplay()->IsContainLayout() ||
+        HasAnyStateBits(NS_STATE_GRID_SYNTHESIZE_BASELINE)) {
       return false;
     }
     return GetBBaseline(aBaselineGroup, aBaseline);
diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp
index 68c80f3c21c13a132f680481e2380ce65399d8bb..8ce957c44b53c20c1323c54f39ce132dcc9f6872 100644
--- a/layout/generic/nsIFrame.cpp
+++ b/layout/generic/nsIFrame.cpp
@@ -17,6 +17,7 @@
 #include "mozilla/ComputedStyle.h"
 #include "mozilla/DebugOnly.h"
 #include "mozilla/DisplayPortUtils.h"
+#include "mozilla/dom/AncestorIterator.h"
 #include "mozilla/dom/ElementInlines.h"
 #include "mozilla/dom/ImageTracker.h"
 #include "mozilla/dom/Selection.h"
@@ -4578,19 +4579,34 @@ nsIFrame::HandlePress(nsPresContext* aPresContext, WidgetGUIEvent* aEvent,
     return NS_OK;
   }
 
-  // We often get out of sync state issues with mousedown events that
-  // get interrupted by alerts/dialogs.
-  // Check with the ESM to see if we should process this one
-  if (!aPresContext->EventStateManager()->EventStatusOK(aEvent)) return NS_OK;
+  return MoveCaretToEventPoint(aPresContext, aEvent->AsMouseEvent(),
+                               aEventStatus);
+}
+
+nsresult nsIFrame::MoveCaretToEventPoint(nsPresContext* aPresContext,
+                                         WidgetMouseEvent* aMouseEvent,
+                                         nsEventStatus* aEventStatus) {
+  MOZ_ASSERT(aPresContext);
+  MOZ_ASSERT(aMouseEvent);
+  MOZ_ASSERT(aMouseEvent->mMessage == eMouseDown);
+  MOZ_ASSERT(aMouseEvent->mButton == MouseButton::ePrimary ||
+             aMouseEvent->mButton == MouseButton::eMiddle);
+  MOZ_ASSERT(aEventStatus);
+  MOZ_ASSERT(nsEventStatus_eConsumeNoDefault != *aEventStatus);
 
   mozilla::PresShell* presShell = aPresContext->GetPresShell();
   if (!presShell) {
     return NS_ERROR_FAILURE;
   }
 
-  WidgetMouseEvent* mouseEvent = aEvent->AsMouseEvent();
+  // We often get out of sync state issues with mousedown events that
+  // get interrupted by alerts/dialogs.
+  // Check with the ESM to see if we should process this one
+  if (!aPresContext->EventStateManager()->EventStatusOK(aMouseEvent)) {
+    return NS_OK;
+  }
 
-  if (!mouseEvent->IsAlt()) {
+  if (!aMouseEvent->IsAlt()) {
     for (nsIContent* content = mContent; content;
          content = content->GetFlattenedTreeParent()) {
       if (nsContentUtils::ContentIsDraggable(content) &&
@@ -4598,41 +4614,22 @@ nsIFrame::HandlePress(nsPresContext* aPresContext, WidgetGUIEvent* aEvent,
         // coordinate stuff is the fix for bug #55921
         if ((mRect - GetPosition())
                 .Contains(nsLayoutUtils::GetEventCoordinatesRelativeTo(
-                    mouseEvent, RelativeTo{this}))) {
+                    aMouseEvent, RelativeTo{this}))) {
           return NS_OK;
         }
       }
     }
   }
 
-  return MoveCaretToEventPoint(aPresContext, mouseEvent, aEventStatus);
-}
-
-nsresult nsIFrame::MoveCaretToEventPoint(nsPresContext* aPresContext,
-                                         WidgetMouseEvent* aMouseEvent,
-                                         nsEventStatus* aEventStatus) {
-  MOZ_ASSERT(aPresContext);
-  MOZ_ASSERT(aMouseEvent);
-  MOZ_ASSERT(aMouseEvent->mMessage == eMouseDown);
-  MOZ_ASSERT(aMouseEvent->mButton == MouseButton::ePrimary ||
-             aMouseEvent->mButton == MouseButton::eMiddle);
-  MOZ_ASSERT(aEventStatus);
-
-  mozilla::PresShell* presShell = aPresContext->GetPresShell();
-  if (!presShell) {
-    return NS_ERROR_FAILURE;
-  }
-
-  // if we are in Navigator and the click is in a draggable node, we don't want
+  // If we are in Navigator and the click is in a draggable node, we don't want
   // to start selection because we don't want to interfere with a potential
   // drag of said node and steal all its glory.
-  int16_t isEditor = presShell->GetSelectionFlags();
-  // weaaak. only the editor can display frame selection not just text and
-  // images
-  isEditor = isEditor == nsISelectionDisplay::DISPLAY_ALL;
+  const bool isEditor =
+      presShell->GetSelectionFlags() == nsISelectionDisplay::DISPLAY_ALL;
 
-  // Don't do something if it's moddle button down event.
-  bool isPrimaryButtonDown = aMouseEvent->mButton == MouseButton::ePrimary;
+  // Don't do something if it's middle button down event.
+  const bool isPrimaryButtonDown =
+      aMouseEvent->mButton == MouseButton::ePrimary;
 
   // check whether style allows selection
   // if not, don't tell selection the mouse event even occurred.
@@ -4768,6 +4765,16 @@ nsresult nsIFrame::MoveCaretToEventPoint(nsPresContext* aPresContext,
     // If "Shift" and "Ctrl" are both pressed, "Shift" is given precedence. This
     // mimics the old behaviour.
     if (aMouseEvent->IsShift()) {
+      // If clicked in a link when focused content is editable, we should
+      // collapse selection in the link for compatibility with Blink.
+      if (isEditor) {
+        nsCOMPtr<nsIURI> uri;
+        for (Element* element : mContent->InclusiveAncestorsOfType<Element>()) {
+          if (element->IsLink(getter_AddRefs(uri))) {
+            return nsFrameSelection::FocusMode::kCollapseToNewPoint;
+          }
+        }
+      }
       return nsFrameSelection::FocusMode::kExtendSelection;
     }
 
diff --git a/layout/generic/test/test_selection_changes_with_middle_mouse_button.html b/layout/generic/test/test_selection_changes_with_middle_mouse_button.html
index 0f203e24cc50c61172d5220d4cdf75a1e0dbb951..ea0496aa825a175c0239ceb32229ff1f04588920 100644
--- a/layout/generic/test/test_selection_changes_with_middle_mouse_button.html
+++ b/layout/generic/test/test_selection_changes_with_middle_mouse_button.html
@@ -21,7 +21,8 @@
 
 <div id="container">
 <span id="span1">first span.</span>
-<span id="span2">second span.</span>
+<span id="span2">second span.</span><br>
+<a id="link" href="#top">link.</a>
 <table>
 <tr><td id="td1">first td.</td></tr>
 <tr><td id="td2">second td.</td></tr>
@@ -107,7 +108,7 @@ async function doTests(aEnableMiddlePaste, aEditable, aDescription) {
       } else {
         is(pasteEvents.length, 1,
            aDescription + aAdditionalDescription + "paste event should be fired only once at mouse up");
-        is(pasteEvents[0].target, aExpectedPastEventTarget,
+        is(pasteEvents[0]?.target, aExpectedPastEventTarget,
            aDescription + aAdditionalDescription + "paste event should be fired on start of selection");
       }
     } else {
@@ -118,6 +119,7 @@ async function doTests(aEnableMiddlePaste, aEditable, aDescription) {
 
   let span1 = document.getElementById("span1");
   let span2 = document.getElementById("span2");
+  let link = document.getElementById("link");
 
   selection.removeAllRanges();
   doTest({target: span1}, {target: span1},
@@ -135,6 +137,22 @@ async function doTests(aEnableMiddlePaste, aEditable, aDescription) {
   doTest({target: span1, shiftKey: true}, {target: span1, shiftKey: true},
          span2.firstChild, span1.firstChild, span1,
          "Expanding selection with Shift key from span2 to span1: ");
+  selection.collapse(span1.firstChild, 3);
+  if (aEditable) {
+    // Collapse link into editable link.
+    doTest({target: link, shiftKey: true}, {target: link, shiftKey: true},
+          link.firstChild, link.firstChild,
+          link /* TODO: Perhaps, the "paste" event target should be the link */,
+          "Clicking an editable link with middle-button with Shift key when selection is collapsed in span1: ");
+  } else {
+    // Don't extend selection into a link.
+    link.onauxclick = event => event.preventDefault();
+    doTest({target: link, shiftKey: true}, {target: link, shiftKey: true},
+          span1.firstChild, span1.firstChild,
+          null /* due to the call of preventDefault */,
+          "Clicking a link with middle-button with Shift key when selection is collapsed in span1: ");
+    link.onauxclick = null;
+  }
   // "paste" event should be fired in the "start" of selection.
   selection.collapse(span1.firstChild, 3);
   doTest({target: span2, shiftKey: true}, {target: span2, shiftKey: true},
diff --git a/layout/painting/RetainedDisplayListBuilder.cpp b/layout/painting/RetainedDisplayListBuilder.cpp
index 520f315856552648a3fa7760174a94daaeda9f46..a0b3a2a537865e8282aa41808e554335eec1586b 100644
--- a/layout/painting/RetainedDisplayListBuilder.cpp
+++ b/layout/painting/RetainedDisplayListBuilder.cpp
@@ -1323,6 +1323,16 @@ bool RetainedDisplayListBuilder::ShouldBuildPartial(
       Metrics()->mPartialUpdateFailReason = PartialUpdateFailReason::FrameType;
       return false;
     }
+
+    // Detect root scroll frame and do a full rebuild for them too for the same
+    // reasons as above, but also because top layer items should to be marked
+    // modified if the root scroll frame is modified. Putting this check here
+    // means we don't need to check everytime a frame is marked modified though.
+    if (type == LayoutFrameType::Scroll && f->GetParent() &&
+        !f->GetParent()->GetParent()) {
+      Metrics()->mPartialUpdateFailReason = PartialUpdateFailReason::FrameType;
+      return false;
+    }
   }
 
   return true;
diff --git a/layout/painting/nsDisplayList.cpp b/layout/painting/nsDisplayList.cpp
index 39b3c9a9a182504ba8491bd7667cd4c94c235326..84608823e4c667b41477154e620e5facaec6f0ac 100644
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -5109,18 +5109,14 @@ bool nsDisplayBorder::CreateWebRenderCommands(
     nsDisplayListBuilder* aDisplayListBuilder) {
   nsRect rect = nsRect(ToReferenceFrame(), mFrame->GetSize());
 
-  aBuilder.StartGroup(this);
   ImgDrawResult drawResult = nsCSSRendering::CreateWebRenderCommandsForBorder(
       this, mFrame, rect, aBuilder, aResources, aSc, aManager,
       aDisplayListBuilder);
 
   if (drawResult == ImgDrawResult::NOT_SUPPORTED) {
-    aBuilder.CancelGroup(true);
     return false;
   }
 
-  aBuilder.FinishGroup();
-
   nsDisplayBorderGeometry::UpdateDrawResult(this, drawResult);
   return true;
 };
diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list
index 2bc08f268d220aa72342649506e8b1f7074ce2ef..edecbba929cd1ec42bf6cd5f60d378f1ee4cd864 100644
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -2071,7 +2071,7 @@ random-if(useDrawSnapshot) == 1546856-1.html 1546856-ref.html
 test-pref(ui.systemUsesDarkTheme,1) != 1551040.txt 1551040.txt
 test-pref(ui.systemUsesDarkTheme,1) == 1551040.html 1551040.html
 != 1552789-1.html 1552789-ref-1.html
-pref(image.downscale-during-decode.enabled,true) skip-if((webrender&&((gtkWidget&&isDebugBuild)||(gtkWidget&&AddressSanitizer)||Android))||(Android&&isDebugBuild)) random-if(useDrawSnapshot) == 1553571-1.html 1553571-1-ref.html
+pref(image.downscale-during-decode.enabled,true) skip-if((webrender&&((gtkWidget&&isDebugBuild)||(gtkWidget&&AddressSanitizer)||Android||ThreadSanitizer))||(Android&&isDebugBuild)) random-if(useDrawSnapshot) == 1553571-1.html 1553571-1-ref.html
 == 1558937-1.html 1558937-1-ref.html
 != 1563484.html 1563484-notref.html
 == 1563484.html 1563484-ref.html
diff --git a/layout/reftests/display-list/1719346-1-ref.html b/layout/reftests/display-list/1719346-1-ref.html
new file mode 100644
index 0000000000000000000000000000000000000000..67ba46d098f4841a0bda10ab88ef547f228157f8
--- /dev/null
+++ b/layout/reftests/display-list/1719346-1-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<style>
+.main {
+	border-image: url('1719346-1.gif') 16 fill / 16px / 0 repeat;
+	width: 100px;
+	height: 100px;
+}
+
+#mover {
+	position: fixed;
+	padding: 0;
+	margin: 0;
+	bottom: 0;
+	top: 100px;
+	left: 250px;
+}
+</style>
+</head>
+<body>
+<div class="main"></div>
+<div id="mover">text</div>
+</body>
+</html>
diff --git a/layout/reftests/display-list/1719346-1.gif b/layout/reftests/display-list/1719346-1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..82cf13d4a2e35adc81551b5797434353d3b74150
Binary files /dev/null and b/layout/reftests/display-list/1719346-1.gif differ
diff --git a/layout/reftests/display-list/1719346-1.html b/layout/reftests/display-list/1719346-1.html
new file mode 100644
index 0000000000000000000000000000000000000000..28508c9039e71a957285281c339a0c0e7abdadfc
--- /dev/null
+++ b/layout/reftests/display-list/1719346-1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html lang="en" class="reftest-wait">
+<head>
+<style>
+.main {
+	border-image: url('1719346-1.gif') 16 fill / 16px / 0 repeat;
+	width: 100px;
+	height: 100px;
+}
+
+#mover {
+	position: fixed;
+	padding: 0;
+	margin: 0;
+	bottom: 0;
+	top: 250px;
+	left: 250px;
+}
+</style>
+</head>
+<body>
+<div class="main"></div>
+<div id="mover">text</div>
+
+<script>
+	function doTest() {
+		var elem = document.getElementById("mover");
+		elem.style.top = "100px";
+		document.documentElement.removeAttribute("class");
+	}
+	document.addEventListener("MozReftestInvalidate", doTest);
+	setTimeout(doTest, 5000);
+</script>
+</body>
+</html>
diff --git a/layout/reftests/display-list/reftest.list b/layout/reftests/display-list/reftest.list
index beb1e10ad440ec2a6f483d75f6f9a956915c6c80..5b6c93f4263642e851948d82d1473a0414cb92e2 100644
--- a/layout/reftests/display-list/reftest.list
+++ b/layout/reftests/display-list/reftest.list
@@ -47,3 +47,4 @@ fuzzy-if(webrender&&swgl,0-1,0-1) == 1551053-1.html 1551053-1-ref.html
 == 1553828-1.html 1553828-1-ref.html
 fuzzy-if(browserIsFission,0-1,0-300) == 1619370-1.html 1619370-1-ref.html
 == 1709452-1.html 1709452-ref.html
+== 1719346-1.html 1719346-1-ref.html
diff --git a/layout/reftests/forms/input/text/autofill-blank.html b/layout/reftests/forms/input/text/autofill-blank.html
new file mode 100644
index 0000000000000000000000000000000000000000..966d314038001da3fa40cc184677ea7b99a5a008
--- /dev/null
+++ b/layout/reftests/forms/input/text/autofill-blank.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<input type=text>
+<script>
+  let input = SpecialPowers.wrap(document.querySelector("input"));
+  SpecialPowers.Cc["@mozilla.org/satchel/form-fill-controller;1"].getService(SpecialPowers.Ci.nsIFormFillController).markAsAutofillField(input);
+  input.getBoundingClientRect();
+  SpecialPowers.wrap(window).windowUtils.addManuallyManagedState(input, "autofill");
+</script>
diff --git a/layout/reftests/forms/input/text/autofill-preview-blank.html b/layout/reftests/forms/input/text/autofill-preview-blank.html
new file mode 100644
index 0000000000000000000000000000000000000000..a235b7430f6f4bbd987ed534c2eb22a27e2e3ba1
--- /dev/null
+++ b/layout/reftests/forms/input/text/autofill-preview-blank.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<input type=text>
+<script>
+  let input = SpecialPowers.wrap(document.querySelector("input"));
+  SpecialPowers.Cc["@mozilla.org/satchel/form-fill-controller;1"].getService(SpecialPowers.Ci.nsIFormFillController).markAsAutofillField(input);
+  input.getBoundingClientRect();
+  SpecialPowers.wrap(window).windowUtils.addManuallyManagedState(input, "-moz-autofill-preview");
+</script>
diff --git a/layout/reftests/forms/input/text/autofill-preview.html b/layout/reftests/forms/input/text/autofill-preview.html
new file mode 100644
index 0000000000000000000000000000000000000000..1382d29abde6dd9afdcf695127c093c2290e2ee8
--- /dev/null
+++ b/layout/reftests/forms/input/text/autofill-preview.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<input type=text>
+<script>
+  let input = SpecialPowers.wrap(document.querySelector("input"));
+  SpecialPowers.Cc["@mozilla.org/satchel/form-fill-controller;1"].getService(SpecialPowers.Ci.nsIFormFillController).markAsAutofillField(input);
+  input.getBoundingClientRect(); // previewValue setter depends on the reframe posted by markAsAutofillField() having being processed...
+  input.previewValue = "Autofill";
+  SpecialPowers.wrap(window).windowUtils.addManuallyManagedState(input, "-moz-autofill-preview");
+</script>
diff --git a/layout/reftests/forms/input/text/autofill.html b/layout/reftests/forms/input/text/autofill.html
new file mode 100644
index 0000000000000000000000000000000000000000..ccb2b15b1b17d34b456a31c307c1e3e0cb0dcdd1
--- /dev/null
+++ b/layout/reftests/forms/input/text/autofill.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<input type=text>
+<script>
+  let input = SpecialPowers.wrap(document.querySelector("input"));
+  SpecialPowers.Cc["@mozilla.org/satchel/form-fill-controller;1"].getService(SpecialPowers.Ci.nsIFormFillController).markAsAutofillField(input);
+  input.getBoundingClientRect(); // previewValue setter depends on the reframe posted by markAsAutofillField() having being processed...
+  input.previewValue = "Autofill";
+  SpecialPowers.wrap(window).windowUtils.addManuallyManagedState(input, "autofill");
+</script>
diff --git a/layout/reftests/forms/input/text/reftest.list b/layout/reftests/forms/input/text/reftest.list
index 6aa17779e3df3baa87adf59db1163e9123d4dd65..7bc6b38ab9fc31368fe92fa2b8acdacb9716304f 100644
--- a/layout/reftests/forms/input/text/reftest.list
+++ b/layout/reftests/forms/input/text/reftest.list
@@ -10,3 +10,9 @@ fuzzy-if(skiaContent,0-1,0-500) needs-focus == select.html select-ref.html
 != line-height-2.5.html line-height-1.0.html
 == shadow-rules.html shadow-rules-ref.html
 != height-small-font.html height-small-font-notref.html
+
+# Autofill tests
+== autofill-blank.html autofill-preview-blank.html
+!= autofill.html autofill-blank.html
+!= autofill-preview.html autofill-preview-blank.html
+!= autofill.html autofill-preview.html
diff --git a/layout/reftests/svg/reftest.list b/layout/reftests/svg/reftest.list
index 1d629f82f98c2cef6041ee88cd14daf7bfe73682..9858572fa64cf0c1fad477e31fe9060e6377fa5d 100644
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -591,6 +591,8 @@ pref(layout.css.devPixelsPerPx,"1.0") == svg-blurry-with-subpixel-position.html
 == currentColor-override-lighting.svg currentColor-override-lighting-ref.svg
 == currentColor-override-stop.svg pass.svg
 
+defaults skip-if(ThreadSanitizer)
+
 == mask-invalidation.html mask-invalidation-ref.html
 == filter-in-mask.html filter-in-mask-ref.html
 == overflow-visible-image.html overflow-visible-image-ref.html
diff --git a/layout/style/res/forms.css b/layout/style/res/forms.css
index b55034bfe41d9e5dc203dcb7c539271c7cf88d45..e1fee756e7e0aa7a5136dcf4138afc91b0f254a4 100644
--- a/layout/style/res/forms.css
+++ b/layout/style/res/forms.css
@@ -995,7 +995,7 @@ input:is([type=date], [type=time]):is(:disabled, :read-only) {
   color: GrayText;
 }
 
-input:autofill, input:-moz-autofill-preview {
+input:autofill {
   filter: grayscale(21%) brightness(88%) contrast(161%) invert(10%) sepia(40%) saturate(206%);
 }
 
diff --git a/layout/tables/nsTableFrame.cpp b/layout/tables/nsTableFrame.cpp
index ebcffa69256d3b4c8ef32a19ee6cf923bfe3de9f..ad7d079833c04185cb161fe8a35e4308620d7319 100644
--- a/layout/tables/nsTableFrame.cpp
+++ b/layout/tables/nsTableFrame.cpp
@@ -3641,6 +3641,10 @@ nscoord nsTableFrame::GetLogicalBaseline(WritingMode aWM) const {
 bool nsTableFrame::GetNaturalBaselineBOffset(
     WritingMode aWM, BaselineSharingGroup aBaselineGroup,
     nscoord* aBaseline) const {
+  if (StyleDisplay()->IsContainLayout()) {
+    return false;
+  }
+
   RowGroupArray orderedRowGroups;
   OrderRowGroups(orderedRowGroups);
   // XXX not sure if this should be the size of the containing block instead.
diff --git a/layout/tools/reftest/reftestcommandline.py b/layout/tools/reftest/reftestcommandline.py
index 899868971aab298d3d38630983128d58bbe2e5cb..2fa785b1804293b83213cae4b6c0fd62c9d0d1e3 100644
--- a/layout/tools/reftest/reftestcommandline.py
+++ b/layout/tools/reftest/reftestcommandline.py
@@ -437,10 +437,7 @@ class ReftestArgumentsParser(argparse.ArgumentParser):
                 reftestExtensionPath = os.path.join(here, "reftest")
             options.reftestExtensionPath = os.path.normpath(reftestExtensionPath)
 
-        if options.specialPowersExtensionPath is None and options.suite in [
-            "crashtest",
-            "jstestbrowser",
-        ]:
+        if options.specialPowersExtensionPath is None:
             if self.build_obj is not None:
                 specialPowersExtensionPath = os.path.join(
                     self.build_obj.distdir, "xpi-stage", "specialpowers"
diff --git a/modules/fdlibm/import.sh b/modules/fdlibm/import.sh
index 11acb064b7ab50806edff102c12b31c09c00a415..216be47aced409d7bff25edb9658d895cec5bda2 100644
--- a/modules/fdlibm/import.sh
+++ b/modules/fdlibm/import.sh
@@ -2,7 +2,7 @@
 
 set -e
 
-BASE_URL=https://raw.githubusercontent.com/freebsd/freebsd/"${1}"/lib/msun/src
+BASE_URL=https://raw.githubusercontent.com/freebsd/freebsd-src/"${1}"/lib/msun/src
 
 download_source() {
     REMOTE_FILENAME=$1
@@ -46,7 +46,9 @@ download_source s_cbrt.c s_cbrt.cpp
 download_source s_ceil.c s_ceil.cpp
 download_source s_ceilf.c s_ceilf.cpp
 
-# Math.cos (not used due to poor performance)
+# Math.cos
+download_source s_cos.c s_cos.cpp
+download_source k_cos.c k_cos.cpp
 
 # Math.cosh
 download_source e_cosh.c e_cosh.cpp
@@ -81,14 +83,18 @@ download_source e_log2.c e_log2.cpp
 
 # Math.pow (not used due to poor performance)
 
-# Math.sin (not used due to poor performance)
+# Math.sin
+download_source s_sin.c s_sin.cpp
+download_source k_sin.c k_sin.cpp
 
 # Math.sinh
 download_source e_sinh.c e_sinh.cpp
 
 # Math.sqrt (not used due to poor performance)
 
-# Math.tan (not used due to poor performance)
+# Math.tan
+download_source s_tan.c s_tan.cpp
+download_source k_tan.c k_tan.cpp
 
 # Math.tanh
 download_source s_tanh.c s_tanh.cpp
@@ -98,6 +104,8 @@ download_source s_trunc.c s_trunc.cpp
 download_source s_truncf.c s_truncf.cpp
 
 # dependencies
+download_source e_rem_pio2.c e_rem_pio2.cpp
+download_source k_rem_pio2.c k_rem_pio2.cpp
 download_source k_exp.c k_exp.cpp
 download_source s_copysign.c s_copysign.cpp
 download_source s_fabs.c s_fabs.cpp
diff --git a/modules/fdlibm/patches/04_include_fdlibm_h_from_math_private_h.patch b/modules/fdlibm/patches/04_include_fdlibm_h_from_math_private_h.patch
index 15301890218ecbb1d18a5ec16a9bb0d3585c1abf..3ea4553104c266ea047fc690c41b81fc77779cf5 100644
--- a/modules/fdlibm/patches/04_include_fdlibm_h_from_math_private_h.patch
+++ b/modules/fdlibm/patches/04_include_fdlibm_h_from_math_private_h.patch
@@ -693,3 +693,172 @@ diff --git a/modules/fdlibm/src/s_truncf.cpp b/modules/fdlibm/src/s_truncf.cpp
  truncf(float x)
  {
  	int32_t i0,j0;
+diff --git a/modules/fdlibm/src/e_rem_pio2.cpp b/modules/fdlibm/src/e_rem_pio2.cpp
+--- a/modules/fdlibm/src/e_rem_pio2.cpp
++++ b/modules/fdlibm/src/e_rem_pio2.cpp
+@@ -19,17 +19,16 @@
+ /* __ieee754_rem_pio2(x,y)
+  * 
+  * return the remainder of x rem pi/2 in y[0]+y[1] 
+  * use __kernel_rem_pio2()
+  */
+ 
+ #include <float.h>
+ 
+-#include "math.h"
+ #include "math_private.h"
+ 
+ /*
+  * invpio2:  53 bits of 2/pi
+  * pio2_1:   first  33 bit of pi/2
+  * pio2_1t:  pi/2 - pio2_1
+  * pio2_2:   second 33 bit of pi/2
+  * pio2_2t:  pi/2 - (pio2_1+pio2_2)
+
+diff --git a/modules/fdlibm/src/k_cos.cpp b/modules/fdlibm/src/k_cos.cpp
+--- a/modules/fdlibm/src/k_cos.cpp
++++ b/modules/fdlibm/src/k_cos.cpp
+@@ -48,17 +48,16 @@
+  *	   and tmp having the same precision as x.  If they have extra
+  *	   precision due to compiler bugs, then the extra precision is
+  *	   only good provided it is retained in all terms of the final
+  *	   expression for cos().  Retention happens in all cases tested
+  *	   under FreeBSD, so don't pessimize things by forcibly clipping
+  *	   any extra precision in w.
+  */
+ 
+-#include "math.h"
+ #include "math_private.h"
+ 
+ static const double
+ one =  1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+ C1  =  4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */
+ C2  = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
+ C3  =  2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */
+ C4  = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
+diff --git a/modules/fdlibm/src/k_rem_pio2.cpp b/modules/fdlibm/src/k_rem_pio2.cpp
+--- a/modules/fdlibm/src/k_rem_pio2.cpp
++++ b/modules/fdlibm/src/k_rem_pio2.cpp
+@@ -126,17 +126,16 @@
+  * The hexadecimal values are the intended ones for the following 
+  * constants. The decimal values may be used, provided that the 
+  * compiler will convert from decimal to binary accurately enough 
+  * to produce the hexadecimal values shown.
+  */
+ 
+ #include <float.h>
+ 
+-#include "math.h"
+ #include "math_private.h"
+ 
+ static const int init_jk[] = {3,4,4,6}; /* initial value for jk */
+ 
+ /*
+  * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+  *
+  *		integer array, contains the (24*i)-th to (24*i+23)-th 
+diff --git a/modules/fdlibm/src/k_sin.cpp b/modules/fdlibm/src/k_sin.cpp
+--- a/modules/fdlibm/src/k_sin.cpp
++++ b/modules/fdlibm/src/k_sin.cpp
+@@ -39,17 +39,16 @@
+  *		    ~ sin(x) + (1-x*x/2)*y
+  *	   For better accuracy, let 
+  *		     3      2      2      2      2
+  *		r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))
+  *	   then                   3    2
+  *		sin(x) = x + (S1*x + (x *(r-y/2)+y))
+  */
+ 
+-#include "math.h"
+ #include "math_private.h"
+ 
+ static const double
+ half =  5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+ S1  = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
+ S2  =  8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
+ S3  = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */
+ S4  =  2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
+diff --git a/modules/fdlibm/src/k_tan.cpp b/modules/fdlibm/src/k_tan.cpp
+--- a/modules/fdlibm/src/k_tan.cpp
++++ b/modules/fdlibm/src/k_tan.cpp
+@@ -44,17 +44,16 @@
+  *		 		    3    2
+  *		tan(x+y) = x + (T1*x + (x *(r+y)+y))
+  *
+  *      4. For x in [0.67434,pi/4],  let y = pi/4 - x, then
+  *		tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+  *		       = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+  */
+ 
+-#include "math.h"
+ #include "math_private.h"
+ static const double xxx[] = {
+ 		 3.33333333333334091986e-01,	/* 3FD55555, 55555563 */
+ 		 1.33333333333201242699e-01,	/* 3FC11111, 1110FE7A */
+ 		 5.39682539762260521377e-02,	/* 3FABA1BA, 1BB341FE */
+ 		 2.18694882948595424599e-02,	/* 3F9664F4, 8406D637 */
+ 		 8.86323982359930005737e-03,	/* 3F8226E3, E96E8493 */
+ 		 3.59207910759131235356e-03,	/* 3F6D6D22, C9560328 */
+diff --git a/modules/fdlibm/src/s_cos.cpp b/modules/fdlibm/src/s_cos.cpp
+--- a/modules/fdlibm/src/s_cos.cpp
++++ b/modules/fdlibm/src/s_cos.cpp
+@@ -41,17 +41,16 @@
+  *      trig(NaN)    is that NaN;
+  *
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+-#include "math.h"
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+ #include "e_rem_pio2.c"
+ 
+ double
+ cos(double x)
+ {
+ 	double y[2],z=0.0;
+diff --git a/modules/fdlibm/src/s_sin.cpp b/modules/fdlibm/src/s_sin.cpp
+--- a/modules/fdlibm/src/s_sin.cpp
++++ b/modules/fdlibm/src/s_sin.cpp
+@@ -41,17 +41,16 @@
+  *      trig(NaN)    is that NaN;
+  *
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+-#include "math.h"
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+ #include "e_rem_pio2.c"
+ 
+ double
+ sin(double x)
+ {
+ 	double y[2],z=0.0;
+diff --git a/modules/fdlibm/src/s_tan.cpp b/modules/fdlibm/src/s_tan.cpp
+--- a/modules/fdlibm/src/s_tan.cpp
++++ b/modules/fdlibm/src/s_tan.cpp
+@@ -40,17 +40,16 @@
+  *      trig(NaN)    is that NaN;
+  *
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+-#include "math.h"
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+ #include "e_rem_pio2.c"
+ 
+ double
+ tan(double x)
+ {
+ 	double y[2],z=0.0;
\ No newline at end of file
diff --git a/modules/fdlibm/patches/08_remove_weak_reference_macro.patch b/modules/fdlibm/patches/08_remove_weak_reference_macro.patch
index 0b55bbd84c69939174e4a7c61c1e74a9ee8f719e..904886fbddbcd5119654c5b5ade762f37c3168e0 100644
--- a/modules/fdlibm/patches/08_remove_weak_reference_macro.patch
+++ b/modules/fdlibm/patches/08_remove_weak_reference_macro.patch
@@ -383,3 +383,51 @@ diff --git a/modules/fdlibm/src/s_trunc.cpp b/modules/fdlibm/src/s_trunc.cpp
 -#if LDBL_MANT_DIG == 53
 -__weak_reference(trunc, truncl);
 -#endif
+diff --git a/modules/fdlibm/src/s_cos.cpp b/modules/fdlibm/src/s_cos.cpp
+--- a/modules/fdlibm/src/s_cos.cpp
++++ b/modules/fdlibm/src/s_cos.cpp
+@@ -78,12 +78,8 @@ cos(double x)
+ 		case 0: return  __kernel_cos(y[0],y[1]);
+ 		case 1: return -__kernel_sin(y[0],y[1],1);
+ 		case 2: return -__kernel_cos(y[0],y[1]);
+ 		default:
+ 		        return  __kernel_sin(y[0],y[1],1);
+ 	    }
+ 	}
+ }
+-
+-#if (LDBL_MANT_DIG == 53)
+-__weak_reference(cos, cosl);
+-#endif
+diff --git a/modules/fdlibm/src/s_sin.cpp b/modules/fdlibm/src/s_sin.cpp
+--- a/modules/fdlibm/src/s_sin.cpp
++++ b/modules/fdlibm/src/s_sin.cpp
+@@ -78,12 +78,8 @@ sin(double x)
+ 		case 0: return  __kernel_sin(y[0],y[1],1);
+ 		case 1: return  __kernel_cos(y[0],y[1]);
+ 		case 2: return -__kernel_sin(y[0],y[1],1);
+ 		default:
+ 			return -__kernel_cos(y[0],y[1]);
+ 	    }
+ 	}
+ }
+-
+-#if (LDBL_MANT_DIG == 53)
+-__weak_reference(sin, sinl);
+-#endif
+diff --git a/modules/fdlibm/src/s_tan.cpp b/modules/fdlibm/src/s_tan.cpp
+--- a/modules/fdlibm/src/s_tan.cpp
++++ b/modules/fdlibm/src/s_tan.cpp
+@@ -72,12 +72,8 @@ tan(double x)
+ 
+     /* argument reduction needed */
+ 	else {
+ 	    n = __ieee754_rem_pio2(x,y);
+ 	    return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+ 							-1 -- n odd */
+ 	}
+ }
+-
+-#if (LDBL_MANT_DIG == 53)
+-__weak_reference(tan, tanl);
+-#endif
diff --git a/modules/fdlibm/patches/09_comment_out_rcsid_variable.patch b/modules/fdlibm/patches/09_comment_out_rcsid_variable.patch
index d520d925764c4e985a49f93d46185751d89fbb6c..0d30962170922e95e5bc9b9bd4d31819cf887779 100644
--- a/modules/fdlibm/patches/09_comment_out_rcsid_variable.patch
+++ b/modules/fdlibm/patches/09_comment_out_rcsid_variable.patch
@@ -810,3 +810,196 @@ diff --git a/modules/fdlibm/src/s_truncf.cpp b/modules/fdlibm/src/s_truncf.cpp
   *	Bit twiddling.
   * Exception:
   *	Inexact flag raised if x not equal to truncf(x).
+diff --git a/modules/fdlibm/src/e_rem_pio2.cpp b/modules/fdlibm/src/e_rem_pio2.cpp
+--- a/modules/fdlibm/src/e_rem_pio2.cpp
++++ b/modules/fdlibm/src/e_rem_pio2.cpp
+@@ -8,18 +8,18 @@
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice 
+  * is preserved.
+  * ====================================================
+  *
+  * Optimized by Bruce D. Evans.
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* __ieee754_rem_pio2(x,y)
+  * 
+  * return the remainder of x rem pi/2 in y[0]+y[1] 
+  * use __kernel_rem_pio2()
+  */
+ 
+ #include <float.h>
+
+diff --git a/modules/fdlibm/src/k_cos.cpp b/modules/fdlibm/src/k_cos.cpp
+--- a/modules/fdlibm/src/k_cos.cpp
++++ b/modules/fdlibm/src/k_cos.cpp
+@@ -6,18 +6,18 @@
+  *
+  * Developed at SunSoft, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice 
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /*
+  * __kernel_cos( x,  y )
+  * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
+  * Input x is assumed to be bounded by ~pi/4 in magnitude.
+  * Input y is the tail of x. 
+  *
+  * Algorithm
+diff --git a/modules/fdlibm/src/k_rem_pio2.cpp b/modules/fdlibm/src/k_rem_pio2.cpp
+--- a/modules/fdlibm/src/k_rem_pio2.cpp
++++ b/modules/fdlibm/src/k_rem_pio2.cpp
+@@ -6,18 +6,18 @@
+  *
+  * Developed at SunSoft, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice 
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /*
+  * __kernel_rem_pio2(x,y,e0,nx,prec)
+  * double x[],y[]; int e0,nx,prec;
+  * 
+  * __kernel_rem_pio2 return the last three digits of N with 
+  *		y = x - N*pi/2
+  * so that |y| < pi/2.
+diff --git a/modules/fdlibm/src/k_sin.cpp b/modules/fdlibm/src/k_sin.cpp
+--- a/modules/fdlibm/src/k_sin.cpp
++++ b/modules/fdlibm/src/k_sin.cpp
+@@ -6,18 +6,18 @@
+  *
+  * Developed at SunSoft, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice 
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* __kernel_sin( x, y, iy)
+  * kernel sin function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
+  * Input x is assumed to be bounded by ~pi/4 in magnitude.
+  * Input y is the tail of x.
+  * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). 
+  *
+  * Algorithm
+diff --git a/modules/fdlibm/src/k_tan.cpp b/modules/fdlibm/src/k_tan.cpp
+--- a/modules/fdlibm/src/k_tan.cpp
++++ b/modules/fdlibm/src/k_tan.cpp
+@@ -6,18 +6,18 @@
+  *
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+ /* INDENT OFF */
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* __kernel_tan( x, y, k )
+  * kernel tan function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
+  * Input x is assumed to be bounded by ~pi/4 in magnitude.
+  * Input y is the tail of x.
+  * Input k indicates whether tan (if k = 1) or -1/tan (if k = -1) is returned.
+  *
+  * Algorithm
+diff --git a/modules/fdlibm/src/s_cos.cpp b/modules/fdlibm/src/s_cos.cpp
+--- a/modules/fdlibm/src/s_cos.cpp
++++ b/modules/fdlibm/src/s_cos.cpp
+@@ -5,18 +5,18 @@
+  *
+  * Developed at SunPro, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* cos(x)
+  * Return cosine function of x.
+  *
+  * kernel function:
+  *	__kernel_sin		... sine function on [-pi/4,pi/4]
+  *	__kernel_cos		... cosine function on [-pi/4,pi/4]
+  *	__ieee754_rem_pio2	... argument reduction routine
+diff --git a/modules/fdlibm/src/s_sin.cpp b/modules/fdlibm/src/s_sin.cpp
+--- a/modules/fdlibm/src/s_sin.cpp
++++ b/modules/fdlibm/src/s_sin.cpp
+@@ -5,18 +5,18 @@
+  *
+  * Developed at SunPro, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* sin(x)
+  * Return sine function of x.
+  *
+  * kernel function:
+  *	__kernel_sin		... sine function on [-pi/4,pi/4]
+  *	__kernel_cos		... cose function on [-pi/4,pi/4]
+  *	__ieee754_rem_pio2	... argument reduction routine
+diff --git a/modules/fdlibm/src/s_tan.cpp b/modules/fdlibm/src/s_tan.cpp
+--- a/modules/fdlibm/src/s_tan.cpp
++++ b/modules/fdlibm/src/s_tan.cpp
+@@ -5,18 +5,18 @@
+  *
+  * Developed at SunPro, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+-#include <sys/cdefs.h>
+-__FBSDID("$FreeBSD$");
++//#include <sys/cdefs.h>
++//__FBSDID("$FreeBSD$");
+ 
+ /* tan(x)
+  * Return tangent function of x.
+  *
+  * kernel function:
+  *	__kernel_tan		... tangent function on [-pi/4,pi/4]
+  *	__ieee754_rem_pio2	... argument reduction routine
+  *
\ No newline at end of file
diff --git a/modules/fdlibm/patches/12_define_u_int32_t_and_u_int64_t_on_windows.patch b/modules/fdlibm/patches/12_define_u_int32_t_and_u_int64_t_on_windows.patch
index 106d64dbc4ece4fb348ed149fe02c42746aeb17c..a2f57a8ada75b28a6183ce15db77ba4bf0a0246d 100644
--- a/modules/fdlibm/patches/12_define_u_int32_t_and_u_int64_t_on_windows.patch
+++ b/modules/fdlibm/patches/12_define_u_int32_t_and_u_int64_t_on_windows.patch
@@ -20,7 +20,7 @@ diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private
  /* A union which permits us to convert between a long double and
     four 32 bit ints.  */
  
- #if MOZ_BIG_ENDIAN
+ #if MOZ_BIG_ENDIAN()
  
  typedef union
  {
diff --git a/modules/fdlibm/patches/19_remove_unneeded_round_to_integer_helpers.patch b/modules/fdlibm/patches/19_remove_unneeded_round_to_integer_helpers.patch
index 6d1baa23a80602cfa8d7347cb750f20023062939..056987c590ea89b6911d8ca5b44da03e2e622fb8 100644
--- a/modules/fdlibm/patches/19_remove_unneeded_round_to_integer_helpers.patch
+++ b/modules/fdlibm/patches/19_remove_unneeded_round_to_integer_helpers.patch
@@ -1,46 +1,15 @@
 diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
 --- a/modules/fdlibm/src/math_private.h
 +++ b/modules/fdlibm/src/math_private.h
-@@ -586,126 +586,16 @@ CMPLXL(long double x, long double y)
- 	REALPART(z) = x;
- 	IMAGPART(z) = y;
- 	return (z.f);
+@@ -617,95 +617,32 @@ rnint(double x)
+ 	 * magic number would need to be variable.  Assuming that the
+ 	 * rounding precision is always the default is too fragile.  This
+ 	 * and many other complications will move when the default is
+ 	 * changed to FP_PE.
+ 	 */
+ 	return ((double)(x + 0x1.8p52) - 0x1.8p52);
  }
- #endif
  
- #endif /* _COMPLEX_H */
-  
--/*
-- * The rnint() family rounds to the nearest integer for a restricted range
-- * range of args (up to about 2**MANT_DIG).  We assume that the current
-- * rounding mode is FE_TONEAREST so that this can be done efficiently.
-- * Extra precision causes more problems in practice, and we only centralize
-- * this here to reduce those problems, and have not solved the efficiency
-- * problems.  The exp2() family uses a more delicate version of this that
-- * requires extracting bits from the intermediate value, so it is not
-- * centralized here and should copy any solution of the efficiency problems.
-- */
--
--static inline double
--rnint(__double_t x)
--{
--	/*
--	 * This casts to double to kill any extra precision.  This depends
--	 * on the cast being applied to a double_t to avoid compiler bugs
--	 * (this is a cleaner version of STRICT_ASSIGN()).  This is
--	 * inefficient if there actually is extra precision, but is hard
--	 * to improve on.  We use double_t in the API to minimise conversions
--	 * for just calling here.  Note that we cannot easily change the
--	 * magic number to the one that works directly with double_t, since
--	 * the rounding precision is variable at runtime on x86 so the
--	 * magic number would need to be variable.  Assuming that the
--	 * rounding precision is always the default is too fragile.  This
--	 * and many other complications will move when the default is
--	 * changed to FP_PE.
--	 */
--	return ((double)(x + 0x1.8p52) - 0x1.8p52);
--}
--
 -static inline float
 -rnintf(__float_t x)
 -{
@@ -71,22 +40,22 @@ diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private
 -}
 -#endif /* LDBL_MANT_DIG */
 -
--/*
-- * irint() and i64rint() give the same result as casting to their integer
-- * return type provided their arg is a floating point integer.  They can
-- * sometimes be more efficient because no rounding is required.
-- */
--#if (defined(amd64) || defined(__i386__)) && defined(__GNUCLIKE_ASM)
--#define	irint(x)						\
--    (sizeof(x) == sizeof(float) &&				\
--    sizeof(__float_t) == sizeof(long double) ? irintf(x) :	\
--    sizeof(x) == sizeof(double) &&				\
--    sizeof(__double_t) == sizeof(long double) ? irintd(x) :	\
--    sizeof(x) == sizeof(long double) ? irintl(x) : (int)(x))
--#else
--#define	irint(x)	((int)(x))
--#endif
--
+ /*
+  * irint() and i64rint() give the same result as casting to their integer
+  * return type provided their arg is a floating point integer.  They can
+  * sometimes be more efficient because no rounding is required.
+  */
+ #if (defined(amd64) || defined(__i386__)) && defined(__GNUCLIKE_ASM)
+ #define	irint(x)						\
+     (sizeof(x) == sizeof(float) &&				\
+     sizeof(__float_t) == sizeof(long double) ? irintf(x) :	\
+     sizeof(x) == sizeof(double) &&				\
+     sizeof(__double_t) == sizeof(long double) ? irintd(x) :	\
+     sizeof(x) == sizeof(long double) ? irintl(x) : (int)(x))
+ #else
+ #define	irint(x)	((int)(x))
+ #endif
+ 
 -#define	i64rint(x)	((int64_t)(x))	/* only needed for ld128 so not opt. */
 -
 -#if defined(__i386__) && defined(__GNUCLIKE_ASM)
diff --git a/modules/fdlibm/patches/20_emulate_freebsd_internal_double_types.patch b/modules/fdlibm/patches/20_emulate_freebsd_internal_double_types.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c90bd431e88ba1909b15dc78335c23556a8c5b04
--- /dev/null
+++ b/modules/fdlibm/patches/20_emulate_freebsd_internal_double_types.patch
@@ -0,0 +1,28 @@
+diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
+--- a/modules/fdlibm/src/math_private.h
++++ b/modules/fdlibm/src/math_private.h
+@@ -21,16 +21,24 @@
+ #include <stdint.h>
+ #include <sys/types.h>
+ 
+ #include "fdlibm.h"
+ 
+ #include "mozilla/EndianUtils.h"
+ 
+ /*
++ * Emulate FreeBSD internal double types.
++ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
++ */
++
++typedef double      __double_t;
++typedef __double_t  double_t;
++
++/*
+  * The original fdlibm code used statements like:
+  *	n0 = ((*(int*)&one)>>29)^1;		* index of high word *
+  *	ix0 = *(n0+(int*)&x);			* high word of x *
+  *	ix1 = *((1-n0)+(int*)&x);		* low word of x *
+  * to dig two 32 bit words out of the 64 bit IEEE floating point
+  * value.  That is non-ANSI, and, moreover, the gcc instruction
+  * scheduler gets it wrong.  We instead use the following macros.
+  * Unlike the original code, we determine the endianness at compile
diff --git a/modules/fdlibm/patches/21_rem_pio_fixups.patch b/modules/fdlibm/patches/21_rem_pio_fixups.patch
new file mode 100644
index 0000000000000000000000000000000000000000..de98475ed8421d0223cf545f74f7912aaabe7266
--- /dev/null
+++ b/modules/fdlibm/patches/21_rem_pio_fixups.patch
@@ -0,0 +1,111 @@
+diff --git a/modules/fdlibm/src/e_rem_pio2.cpp b/modules/fdlibm/src/e_rem_pio2.cpp
+--- a/modules/fdlibm/src/e_rem_pio2.cpp
++++ b/modules/fdlibm/src/e_rem_pio2.cpp
+@@ -43,17 +43,17 @@ invpio2 =  6.36619772367581382433e-01, /
+ pio2_1  =  1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
+ pio2_1t =  6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
+ pio2_2  =  6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
+ pio2_2t =  2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
+ pio2_3  =  2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
+ pio2_3t =  8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
+ 
+ #ifdef INLINE_REM_PIO2
+-static __inline __always_inline
++static inline
+ #endif
+ int
+ __ieee754_rem_pio2(double x, double *y)
+ {
+ 	double z,w,t,r,fn;
+ 	double tx[3],ty[2];
+ 	int32_t e0,i,j,nx,n,ix,hx;
+ 	u_int32_t low;
+diff --git a/modules/fdlibm/src/s_cos.cpp b/modules/fdlibm/src/s_cos.cpp
+--- a/modules/fdlibm/src/s_cos.cpp
++++ b/modules/fdlibm/src/s_cos.cpp
+@@ -43,17 +43,17 @@
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+-#include "e_rem_pio2.c"
++#include "e_rem_pio2.cpp"
+ 
+ double
+ cos(double x)
+ {
+ 	double y[2],z=0.0;
+ 	int32_t n, ix;
+ 
+     /* High word of x. */
+diff --git a/modules/fdlibm/src/s_sin.cpp b/modules/fdlibm/src/s_sin.cpp
+--- a/modules/fdlibm/src/s_sin.cpp
++++ b/modules/fdlibm/src/s_sin.cpp
+@@ -43,17 +43,17 @@
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+-#include "e_rem_pio2.c"
++#include "e_rem_pio2.cpp"
+ 
+ double
+ sin(double x)
+ {
+ 	double y[2],z=0.0;
+ 	int32_t n, ix;
+ 
+     /* High word of x. */
+diff --git a/modules/fdlibm/src/s_tan.cpp b/modules/fdlibm/src/s_tan.cpp
+--- a/modules/fdlibm/src/s_tan.cpp
++++ b/modules/fdlibm/src/s_tan.cpp
+@@ -42,17 +42,17 @@
+  * Accuracy:
+  *	TRIG(x) returns trig(x) nearly rounded
+  */
+ 
+ #include <float.h>
+ 
+ #define INLINE_REM_PIO2
+ #include "math_private.h"
+-#include "e_rem_pio2.c"
++#include "e_rem_pio2.cpp"
+ 
+ double
+ tan(double x)
+ {
+ 	double y[2],z=0.0;
+ 	int32_t n, ix;
+ 
+     /* High word of x. */
+diff --git a/modules/fdlibm/src/k_rem_pio2.cpp b/modules/fdlibm/src/k_rem_pio2.cpp
+--- a/modules/fdlibm/src/k_rem_pio2.cpp
++++ b/modules/fdlibm/src/k_rem_pio2.cpp
+@@ -305,17 +305,18 @@ __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec)
+ 	q0 =  e0-24*(jv+1);
+ 
+     /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+ 	j = jv-jx; m = jx+jk;
+ 	for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j];
+ 
+     /* compute q[0],q[1],...q[jk] */
+ 	for (i=0;i<=jk;i++) {
+-	    for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
++	    for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
++	    q[i] = fw;
+ 	}
+ 
+ 	jz = jk;
+ recompute:
+     /* distill q[] into iq[] reversingly */
+ 	for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
+ 	    fw    =  (double)((int32_t)(twon24* z));
+ 	    iq[i] =  (int32_t)(z-two24*fw);
diff --git a/modules/fdlibm/patches/22_build_and_export_sin_cos_and_tan.patch b/modules/fdlibm/patches/22_build_and_export_sin_cos_and_tan.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3836d855c24d1cceca4cd6bf5aa44b776c430a43
--- /dev/null
+++ b/modules/fdlibm/patches/22_build_and_export_sin_cos_and_tan.patch
@@ -0,0 +1,47 @@
+diff --git a/modules/fdlibm/src/fdlibm.h b/modules/fdlibm/src/fdlibm.h
+--- a/modules/fdlibm/src/fdlibm.h
++++ b/modules/fdlibm/src/fdlibm.h
+@@ -19,16 +19,20 @@
+ 
+ namespace fdlibm {
+ 
+ double	acos(double);
+ double	asin(double);
+ double	atan(double);
+ double	atan2(double, double);
+ 
++double	cos(double);
++double	sin(double);
++double	tan(double);
++
+ double	cosh(double);
+ double	sinh(double);
+ double	tanh(double);
+ 
+ double	exp(double);
+ double	log(double);
+ double	log10(double);
+ 
+diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
+--- a/modules/fdlibm/src/math_private.h
++++ b/modules/fdlibm/src/math_private.h
+@@ -832,16 +832,19 @@ rnint(double_t x)
+ #define	__ieee754_ynf	ynf
+ #define	__ieee754_remainderf remainderf
+ #define	__ieee754_scalbf scalbf
+ 
+ #define acos fdlibm::acos
+ #define asin fdlibm::asin
+ #define atan fdlibm::atan
+ #define atan2 fdlibm::atan2
++#define cos fdlibm::cos
++#define sin fdlibm::sin
++#define tan fdlibm::tan
+ #define cosh fdlibm::cosh
+ #define sinh fdlibm::sinh
+ #define tanh fdlibm::tanh
+ #define exp fdlibm::exp
+ #define log fdlibm::log
+ #define log10 fdlibm::log10
+ #define pow fdlibm::pow
+ #define ceil fdlibm::ceil
diff --git a/modules/fdlibm/src/e_rem_pio2.cpp b/modules/fdlibm/src/e_rem_pio2.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1e5e1cc9f4f07e24ecd3fa11ad3e060e4a929b3d
--- /dev/null
+++ b/modules/fdlibm/src/e_rem_pio2.cpp
@@ -0,0 +1,179 @@
+
+/* @(#)e_rem_pio2.c 1.4 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ *
+ * Optimized by Bruce D. Evans.
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* __ieee754_rem_pio2(x,y)
+ * 
+ * return the remainder of x rem pi/2 in y[0]+y[1] 
+ * use __kernel_rem_pio2()
+ */
+
+#include <float.h>
+
+#include "math_private.h"
+
+/*
+ * invpio2:  53 bits of 2/pi
+ * pio2_1:   first  33 bit of pi/2
+ * pio2_1t:  pi/2 - pio2_1
+ * pio2_2:   second 33 bit of pi/2
+ * pio2_2t:  pi/2 - (pio2_1+pio2_2)
+ * pio2_3:   third  33 bit of pi/2
+ * pio2_3t:  pi/2 - (pio2_1+pio2_2+pio2_3)
+ */
+
+static const double
+zero =  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+two24 =  1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+invpio2 =  6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+pio2_1  =  1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
+pio2_1t =  6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
+pio2_2  =  6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
+pio2_2t =  2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
+pio2_3  =  2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
+pio2_3t =  8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
+
+#ifdef INLINE_REM_PIO2
+static inline
+#endif
+int
+__ieee754_rem_pio2(double x, double *y)
+{
+	double z,w,t,r,fn;
+	double tx[3],ty[2];
+	int32_t e0,i,j,nx,n,ix,hx;
+	u_int32_t low;
+
+	GET_HIGH_WORD(hx,x);		/* high word of x */
+	ix = hx&0x7fffffff;
+#if 0 /* Must be handled in caller. */
+	if(ix<=0x3fe921fb)   /* |x| ~<= pi/4 , no need for reduction */
+	    {y[0] = x; y[1] = 0; return 0;}
+#endif
+	if (ix <= 0x400f6a7a) {		/* |x| ~<= 5pi/4 */
+	    if ((ix & 0xfffff) == 0x921fb)  /* |x| ~= pi/2 or 2pi/2 */
+		goto medium;		/* cancellation -- use medium case */
+	    if (ix <= 0x4002d97c) {	/* |x| ~<= 3pi/4 */
+		if (hx > 0) {
+		    z = x - pio2_1;	/* one round good to 85 bits */
+		    y[0] = z - pio2_1t;
+		    y[1] = (z-y[0])-pio2_1t;
+		    return 1;
+		} else {
+		    z = x + pio2_1;
+		    y[0] = z + pio2_1t;
+		    y[1] = (z-y[0])+pio2_1t;
+		    return -1;
+		}
+	    } else {
+		if (hx > 0) {
+		    z = x - 2*pio2_1;
+		    y[0] = z - 2*pio2_1t;
+		    y[1] = (z-y[0])-2*pio2_1t;
+		    return 2;
+		} else {
+		    z = x + 2*pio2_1;
+		    y[0] = z + 2*pio2_1t;
+		    y[1] = (z-y[0])+2*pio2_1t;
+		    return -2;
+		}
+	    }
+	}
+	if (ix <= 0x401c463b) {		/* |x| ~<= 9pi/4 */
+	    if (ix <= 0x4015fdbc) {	/* |x| ~<= 7pi/4 */
+		if (ix == 0x4012d97c)	/* |x| ~= 3pi/2 */
+		    goto medium;
+		if (hx > 0) {
+		    z = x - 3*pio2_1;
+		    y[0] = z - 3*pio2_1t;
+		    y[1] = (z-y[0])-3*pio2_1t;
+		    return 3;
+		} else {
+		    z = x + 3*pio2_1;
+		    y[0] = z + 3*pio2_1t;
+		    y[1] = (z-y[0])+3*pio2_1t;
+		    return -3;
+		}
+	    } else {
+		if (ix == 0x401921fb)	/* |x| ~= 4pi/2 */
+		    goto medium;
+		if (hx > 0) {
+		    z = x - 4*pio2_1;
+		    y[0] = z - 4*pio2_1t;
+		    y[1] = (z-y[0])-4*pio2_1t;
+		    return 4;
+		} else {
+		    z = x + 4*pio2_1;
+		    y[0] = z + 4*pio2_1t;
+		    y[1] = (z-y[0])+4*pio2_1t;
+		    return -4;
+		}
+	    }
+	}
+	if(ix<0x413921fb) {	/* |x| ~< 2^20*(pi/2), medium size */
+medium:
+	    fn = rnint((double_t)x*invpio2);
+	    n  = irint(fn);
+	    r  = x-fn*pio2_1;
+	    w  = fn*pio2_1t;	/* 1st round good to 85 bit */
+	    {
+	        u_int32_t high;
+	        j  = ix>>20;
+	        y[0] = r-w; 
+		GET_HIGH_WORD(high,y[0]);
+	        i = j-((high>>20)&0x7ff);
+	        if(i>16) {  /* 2nd iteration needed, good to 118 */
+		    t  = r;
+		    w  = fn*pio2_2;	
+		    r  = t-w;
+		    w  = fn*pio2_2t-((t-r)-w);	
+		    y[0] = r-w;
+		    GET_HIGH_WORD(high,y[0]);
+		    i = j-((high>>20)&0x7ff);
+		    if(i>49)  {	/* 3rd iteration need, 151 bits acc */
+		    	t  = r;	/* will cover all possible cases */
+		    	w  = fn*pio2_3;	
+		    	r  = t-w;
+		    	w  = fn*pio2_3t-((t-r)-w);	
+		    	y[0] = r-w;
+		    }
+		}
+	    }
+	    y[1] = (r-y[0])-w;
+	    return n;
+	}
+    /* 
+     * all other (large) arguments
+     */
+	if(ix>=0x7ff00000) {		/* x is inf or NaN */
+	    y[0]=y[1]=x-x; return 0;
+	}
+    /* set z = scalbn(|x|,ilogb(x)-23) */
+	GET_LOW_WORD(low,x);
+	e0 	= (ix>>20)-1046;	/* e0 = ilogb(z)-23; */
+	INSERT_WORDS(z, ix - ((int32_t)(e0<<20)), low);
+	for(i=0;i<2;i++) {
+		tx[i] = (double)((int32_t)(z));
+		z     = (z-tx[i])*two24;
+	}
+	tx[2] = z;
+	nx = 3;
+	while(tx[nx-1]==zero) nx--;	/* skip zero term */
+	n  =  __kernel_rem_pio2(tx,ty,e0,nx,1);
+	if(hx<0) {y[0] = -ty[0]; y[1] = -ty[1]; return -n;}
+	y[0] = ty[0]; y[1] = ty[1]; return n;
+}
diff --git a/modules/fdlibm/src/fdlibm.h b/modules/fdlibm/src/fdlibm.h
index 324e5d0b0336923a38f742aef6f456f7fdb5c891..3cd0ef94c92cf17641dd6e0331223c2958f4d2f8 100644
--- a/modules/fdlibm/src/fdlibm.h
+++ b/modules/fdlibm/src/fdlibm.h
@@ -24,6 +24,10 @@ double	asin(double);
 double	atan(double);
 double	atan2(double, double);
 
+double	cos(double);
+double	sin(double);
+double	tan(double);
+
 double	cosh(double);
 double	sinh(double);
 double	tanh(double);
diff --git a/modules/fdlibm/src/k_cos.cpp b/modules/fdlibm/src/k_cos.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5bee28daf37f658cb1e31ea68626456ab33e04a3
--- /dev/null
+++ b/modules/fdlibm/src/k_cos.cpp
@@ -0,0 +1,78 @@
+
+/* @(#)k_cos.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/*
+ * __kernel_cos( x,  y )
+ * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x. 
+ *
+ * Algorithm
+ *	1. Since cos(-x) = cos(x), we need only to consider positive x.
+ *	2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0.
+ *	3. cos(x) is approximated by a polynomial of degree 14 on
+ *	   [0,pi/4]
+ *		  	                 4            14
+ *	   	cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
+ *	   where the remez error is
+ *	
+ * 	|              2     4     6     8     10    12     14 |     -58
+ * 	|cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  )| <= 2
+ * 	|    					               | 
+ * 
+ * 	               4     6     8     10    12     14 
+ *	4. let r = C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  , then
+ *	       cos(x) ~ 1 - x*x/2 + r
+ *	   since cos(x+y) ~ cos(x) - sin(x)*y 
+ *			  ~ cos(x) - x*y,
+ *	   a correction term is necessary in cos(x) and hence
+ *		cos(x+y) = 1 - (x*x/2 - (r - x*y))
+ *	   For better accuracy, rearrange to
+ *		cos(x+y) ~ w + (tmp + (r-x*y))
+ *	   where w = 1 - x*x/2 and tmp is a tiny correction term
+ *	   (1 - x*x/2 == w + tmp exactly in infinite precision).
+ *	   The exactness of w + tmp in infinite precision depends on w
+ *	   and tmp having the same precision as x.  If they have extra
+ *	   precision due to compiler bugs, then the extra precision is
+ *	   only good provided it is retained in all terms of the final
+ *	   expression for cos().  Retention happens in all cases tested
+ *	   under FreeBSD, so don't pessimize things by forcibly clipping
+ *	   any extra precision in w.
+ */
+
+#include "math_private.h"
+
+static const double
+one =  1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+C1  =  4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */
+C2  = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
+C3  =  2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */
+C4  = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
+C5  =  2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
+C6  = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
+
+double
+__kernel_cos(double x, double y)
+{
+	double hz,z,r,w;
+
+	z  = x*x;
+	w  = z*z;
+	r  = z*(C1+z*(C2+z*C3)) + w*w*(C4+z*(C5+z*C6));
+	hz = 0.5*z;
+	w  = one-hz;
+	return w + (((one-w)-hz) + (z*r-x*y));
+}
diff --git a/modules/fdlibm/src/k_rem_pio2.cpp b/modules/fdlibm/src/k_rem_pio2.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..22b098af74857671f19eb8616b82f3c90a9b9fc9
--- /dev/null
+++ b/modules/fdlibm/src/k_rem_pio2.cpp
@@ -0,0 +1,443 @@
+
+/* @(#)k_rem_pio2.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/*
+ * __kernel_rem_pio2(x,y,e0,nx,prec)
+ * double x[],y[]; int e0,nx,prec;
+ * 
+ * __kernel_rem_pio2 return the last three digits of N with 
+ *		y = x - N*pi/2
+ * so that |y| < pi/2.
+ *
+ * The method is to compute the integer (mod 8) and fraction parts of 
+ * (2/pi)*x without doing the full multiplication. In general we
+ * skip the part of the product that are known to be a huge integer (
+ * more accurately, = 0 mod 8 ). Thus the number of operations are
+ * independent of the exponent of the input.
+ *
+ * (2/pi) is represented by an array of 24-bit integers in ipio2[].
+ *
+ * Input parameters:
+ * 	x[]	The input value (must be positive) is broken into nx 
+ *		pieces of 24-bit integers in double precision format.
+ *		x[i] will be the i-th 24 bit of x. The scaled exponent 
+ *		of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 
+ *		match x's up to 24 bits.
+ *
+ *		Example of breaking a double positive z into x[0]+x[1]+x[2]:
+ *			e0 = ilogb(z)-23
+ *			z  = scalbn(z,-e0)
+ *		for i = 0,1,2
+ *			x[i] = floor(z)
+ *			z    = (z-x[i])*2**24
+ *
+ *
+ *	y[]	output result in an array of double precision numbers.
+ *		The dimension of y[] is:
+ *			24-bit  precision	1
+ *			53-bit  precision	2
+ *			64-bit  precision	2
+ *			113-bit precision	3
+ *		The actual value is the sum of them. Thus for 113-bit
+ *		precision, one may have to do something like:
+ *
+ *		long double t,w,r_head, r_tail;
+ *		t = (long double)y[2] + (long double)y[1];
+ *		w = (long double)y[0];
+ *		r_head = t+w;
+ *		r_tail = w - (r_head - t);
+ *
+ *	e0	The exponent of x[0]. Must be <= 16360 or you need to
+ *              expand the ipio2 table.
+ *
+ *	nx	dimension of x[]
+ *
+ *  	prec	an integer indicating the precision:
+ *			0	24  bits (single)
+ *			1	53  bits (double)
+ *			2	64  bits (extended)
+ *			3	113 bits (quad)
+ *
+ * External function:
+ *	double scalbn(), floor();
+ *
+ *
+ * Here is the description of some local variables:
+ *
+ * 	jk	jk+1 is the initial number of terms of ipio2[] needed
+ *		in the computation. The minimum and recommended value
+ *		for jk is 3,4,4,6 for single, double, extended, and quad.
+ *		jk+1 must be 2 larger than you might expect so that our
+ *		recomputation test works. (Up to 24 bits in the integer
+ *		part (the 24 bits of it that we compute) and 23 bits in
+ *		the fraction part may be lost to cancellation before we
+ *		recompute.)
+ *
+ * 	jz	local integer variable indicating the number of 
+ *		terms of ipio2[] used. 
+ *
+ *	jx	nx - 1
+ *
+ *	jv	index for pointing to the suitable ipio2[] for the
+ *		computation. In general, we want
+ *			( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8
+ *		is an integer. Thus
+ *			e0-3-24*jv >= 0 or (e0-3)/24 >= jv
+ *		Hence jv = max(0,(e0-3)/24).
+ *
+ *	jp	jp+1 is the number of terms in PIo2[] needed, jp = jk.
+ *
+ * 	q[]	double array with integral value, representing the
+ *		24-bits chunk of the product of x and 2/pi.
+ *
+ *	q0	the corresponding exponent of q[0]. Note that the
+ *		exponent for q[i] would be q0-24*i.
+ *
+ *	PIo2[]	double precision array, obtained by cutting pi/2
+ *		into 24 bits chunks. 
+ *
+ *	f[]	ipio2[] in floating point 
+ *
+ *	iq[]	integer array by breaking up q[] in 24-bits chunk.
+ *
+ *	fq[]	final product of x*(2/pi) in fq[0],..,fq[jk]
+ *
+ *	ih	integer. If >0 it indicates q[] is >= 0.5, hence
+ *		it also indicates the *sign* of the result.
+ *
+ */
+
+
+/*
+ * Constants:
+ * The hexadecimal values are the intended ones for the following 
+ * constants. The decimal values may be used, provided that the 
+ * compiler will convert from decimal to binary accurately enough 
+ * to produce the hexadecimal values shown.
+ */
+
+#include <float.h>
+
+#include "math_private.h"
+
+static const int init_jk[] = {3,4,4,6}; /* initial value for jk */
+
+/*
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ *
+ *		integer array, contains the (24*i)-th to (24*i+23)-th 
+ *		bit of 2/pi after binary point. The corresponding 
+ *		floating value is
+ *
+ *			ipio2[i] * 2^(-24(i+1)).
+ *
+ * NB: This table must have at least (e0-3)/24 + jk terms.
+ *     For quad precision (e0 <= 16360, jk = 6), this is 686.
+ */
+static const int32_t ipio2[] = {
+0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 
+0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 
+0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 
+0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, 
+0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, 
+0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, 
+0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, 
+0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 
+0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 
+0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 
+0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, 
+
+#if LDBL_MAX_EXP > 1024
+#if LDBL_MAX_EXP > 16384
+#error "ipio2 table needs to be expanded"
+#endif
+0x47C419, 0xC367CD, 0xDCE809, 0x2A8359, 0xC4768B, 0x961CA6,
+0xDDAF44, 0xD15719, 0x053EA5, 0xFF0705, 0x3F7E33, 0xE832C2,
+0xDE4F98, 0x327DBB, 0xC33D26, 0xEF6B1E, 0x5EF89F, 0x3A1F35,
+0xCAF27F, 0x1D87F1, 0x21907C, 0x7C246A, 0xFA6ED5, 0x772D30,
+0x433B15, 0xC614B5, 0x9D19C3, 0xC2C4AD, 0x414D2C, 0x5D000C,
+0x467D86, 0x2D71E3, 0x9AC69B, 0x006233, 0x7CD2B4, 0x97A7B4,
+0xD55537, 0xF63ED7, 0x1810A3, 0xFC764D, 0x2A9D64, 0xABD770,
+0xF87C63, 0x57B07A, 0xE71517, 0x5649C0, 0xD9D63B, 0x3884A7,
+0xCB2324, 0x778AD6, 0x23545A, 0xB91F00, 0x1B0AF1, 0xDFCE19,
+0xFF319F, 0x6A1E66, 0x615799, 0x47FBAC, 0xD87F7E, 0xB76522,
+0x89E832, 0x60BFE6, 0xCDC4EF, 0x09366C, 0xD43F5D, 0xD7DE16,
+0xDE3B58, 0x929BDE, 0x2822D2, 0xE88628, 0x4D58E2, 0x32CAC6,
+0x16E308, 0xCB7DE0, 0x50C017, 0xA71DF3, 0x5BE018, 0x34132E,
+0x621283, 0x014883, 0x5B8EF5, 0x7FB0AD, 0xF2E91E, 0x434A48,
+0xD36710, 0xD8DDAA, 0x425FAE, 0xCE616A, 0xA4280A, 0xB499D3,
+0xF2A606, 0x7F775C, 0x83C2A3, 0x883C61, 0x78738A, 0x5A8CAF,
+0xBDD76F, 0x63A62D, 0xCBBFF4, 0xEF818D, 0x67C126, 0x45CA55,
+0x36D9CA, 0xD2A828, 0x8D61C2, 0x77C912, 0x142604, 0x9B4612,
+0xC459C4, 0x44C5C8, 0x91B24D, 0xF31700, 0xAD43D4, 0xE54929,
+0x10D5FD, 0xFCBE00, 0xCC941E, 0xEECE70, 0xF53E13, 0x80F1EC,
+0xC3E7B3, 0x28F8C7, 0x940593, 0x3E71C1, 0xB3092E, 0xF3450B,
+0x9C1288, 0x7B20AB, 0x9FB52E, 0xC29247, 0x2F327B, 0x6D550C,
+0x90A772, 0x1FE76B, 0x96CB31, 0x4A1679, 0xE27941, 0x89DFF4,
+0x9794E8, 0x84E6E2, 0x973199, 0x6BED88, 0x365F5F, 0x0EFDBB,
+0xB49A48, 0x6CA467, 0x427271, 0x325D8D, 0xB8159F, 0x09E5BC,
+0x25318D, 0x3974F7, 0x1C0530, 0x010C0D, 0x68084B, 0x58EE2C,
+0x90AA47, 0x02E774, 0x24D6BD, 0xA67DF7, 0x72486E, 0xEF169F,
+0xA6948E, 0xF691B4, 0x5153D1, 0xF20ACF, 0x339820, 0x7E4BF5,
+0x6863B2, 0x5F3EDD, 0x035D40, 0x7F8985, 0x295255, 0xC06437,
+0x10D86D, 0x324832, 0x754C5B, 0xD4714E, 0x6E5445, 0xC1090B,
+0x69F52A, 0xD56614, 0x9D0727, 0x50045D, 0xDB3BB4, 0xC576EA,
+0x17F987, 0x7D6B49, 0xBA271D, 0x296996, 0xACCCC6, 0x5414AD,
+0x6AE290, 0x89D988, 0x50722C, 0xBEA404, 0x940777, 0x7030F3,
+0x27FC00, 0xA871EA, 0x49C266, 0x3DE064, 0x83DD97, 0x973FA3,
+0xFD9443, 0x8C860D, 0xDE4131, 0x9D3992, 0x8C70DD, 0xE7B717,
+0x3BDF08, 0x2B3715, 0xA0805C, 0x93805A, 0x921110, 0xD8E80F,
+0xAF806C, 0x4BFFDB, 0x0F9038, 0x761859, 0x15A562, 0xBBCB61,
+0xB989C7, 0xBD4010, 0x04F2D2, 0x277549, 0xF6B6EB, 0xBB22DB,
+0xAA140A, 0x2F2689, 0x768364, 0x333B09, 0x1A940E, 0xAA3A51,
+0xC2A31D, 0xAEEDAF, 0x12265C, 0x4DC26D, 0x9C7A2D, 0x9756C0,
+0x833F03, 0xF6F009, 0x8C402B, 0x99316D, 0x07B439, 0x15200C,
+0x5BC3D8, 0xC492F5, 0x4BADC6, 0xA5CA4E, 0xCD37A7, 0x36A9E6,
+0x9492AB, 0x6842DD, 0xDE6319, 0xEF8C76, 0x528B68, 0x37DBFC,
+0xABA1AE, 0x3115DF, 0xA1AE00, 0xDAFB0C, 0x664D64, 0xB705ED,
+0x306529, 0xBF5657, 0x3AFF47, 0xB9F96A, 0xF3BE75, 0xDF9328,
+0x3080AB, 0xF68C66, 0x15CB04, 0x0622FA, 0x1DE4D9, 0xA4B33D,
+0x8F1B57, 0x09CD36, 0xE9424E, 0xA4BE13, 0xB52333, 0x1AAAF0,
+0xA8654F, 0xA5C1D2, 0x0F3F0B, 0xCD785B, 0x76F923, 0x048B7B,
+0x721789, 0x53A6C6, 0xE26E6F, 0x00EBEF, 0x584A9B, 0xB7DAC4,
+0xBA66AA, 0xCFCF76, 0x1D02D1, 0x2DF1B1, 0xC1998C, 0x77ADC3,
+0xDA4886, 0xA05DF7, 0xF480C6, 0x2FF0AC, 0x9AECDD, 0xBC5C3F,
+0x6DDED0, 0x1FC790, 0xB6DB2A, 0x3A25A3, 0x9AAF00, 0x9353AD,
+0x0457B6, 0xB42D29, 0x7E804B, 0xA707DA, 0x0EAA76, 0xA1597B,
+0x2A1216, 0x2DB7DC, 0xFDE5FA, 0xFEDB89, 0xFDBE89, 0x6C76E4,
+0xFCA906, 0x70803E, 0x156E85, 0xFF87FD, 0x073E28, 0x336761,
+0x86182A, 0xEABD4D, 0xAFE7B3, 0x6E6D8F, 0x396795, 0x5BBF31,
+0x48D784, 0x16DF30, 0x432DC7, 0x356125, 0xCE70C9, 0xB8CB30,
+0xFD6CBF, 0xA200A4, 0xE46C05, 0xA0DD5A, 0x476F21, 0xD21262,
+0x845CB9, 0x496170, 0xE0566B, 0x015299, 0x375550, 0xB7D51E,
+0xC4F133, 0x5F6E13, 0xE4305D, 0xA92E85, 0xC3B21D, 0x3632A1,
+0xA4B708, 0xD4B1EA, 0x21F716, 0xE4698F, 0x77FF27, 0x80030C,
+0x2D408D, 0xA0CD4F, 0x99A520, 0xD3A2B3, 0x0A5D2F, 0x42F9B4,
+0xCBDA11, 0xD0BE7D, 0xC1DB9B, 0xBD17AB, 0x81A2CA, 0x5C6A08,
+0x17552E, 0x550027, 0xF0147F, 0x8607E1, 0x640B14, 0x8D4196,
+0xDEBE87, 0x2AFDDA, 0xB6256B, 0x34897B, 0xFEF305, 0x9EBFB9,
+0x4F6A68, 0xA82A4A, 0x5AC44F, 0xBCF82D, 0x985AD7, 0x95C7F4,
+0x8D4D0D, 0xA63A20, 0x5F57A4, 0xB13F14, 0x953880, 0x0120CC,
+0x86DD71, 0xB6DEC9, 0xF560BF, 0x11654D, 0x6B0701, 0xACB08C,
+0xD0C0B2, 0x485551, 0x0EFB1E, 0xC37295, 0x3B06A3, 0x3540C0,
+0x7BDC06, 0xCC45E0, 0xFA294E, 0xC8CAD6, 0x41F3E8, 0xDE647C,
+0xD8649B, 0x31BED9, 0xC397A4, 0xD45877, 0xC5E369, 0x13DAF0,
+0x3C3ABA, 0x461846, 0x5F7555, 0xF5BDD2, 0xC6926E, 0x5D2EAC,
+0xED440E, 0x423E1C, 0x87C461, 0xE9FD29, 0xF3D6E7, 0xCA7C22,
+0x35916F, 0xC5E008, 0x8DD7FF, 0xE26A6E, 0xC6FDB0, 0xC10893,
+0x745D7C, 0xB2AD6B, 0x9D6ECD, 0x7B723E, 0x6A11C6, 0xA9CFF7,
+0xDF7329, 0xBAC9B5, 0x5100B7, 0x0DB2E2, 0x24BA74, 0x607DE5,
+0x8AD874, 0x2C150D, 0x0C1881, 0x94667E, 0x162901, 0x767A9F,
+0xBEFDFD, 0xEF4556, 0x367ED9, 0x13D9EC, 0xB9BA8B, 0xFC97C4,
+0x27A831, 0xC36EF1, 0x36C594, 0x56A8D8, 0xB5A8B4, 0x0ECCCF,
+0x2D8912, 0x34576F, 0x89562C, 0xE3CE99, 0xB920D6, 0xAA5E6B,
+0x9C2A3E, 0xCC5F11, 0x4A0BFD, 0xFBF4E1, 0x6D3B8E, 0x2C86E2,
+0x84D4E9, 0xA9B4FC, 0xD1EEEF, 0xC9352E, 0x61392F, 0x442138,
+0xC8D91B, 0x0AFC81, 0x6A4AFB, 0xD81C2F, 0x84B453, 0x8C994E,
+0xCC2254, 0xDC552A, 0xD6C6C0, 0x96190B, 0xB8701A, 0x649569,
+0x605A26, 0xEE523F, 0x0F117F, 0x11B5F4, 0xF5CBFC, 0x2DBC34,
+0xEEBC34, 0xCC5DE8, 0x605EDD, 0x9B8E67, 0xEF3392, 0xB817C9,
+0x9B5861, 0xBC57E1, 0xC68351, 0x103ED8, 0x4871DD, 0xDD1C2D,
+0xA118AF, 0x462C21, 0xD7F359, 0x987AD9, 0xC0549E, 0xFA864F,
+0xFC0656, 0xAE79E5, 0x362289, 0x22AD38, 0xDC9367, 0xAAE855,
+0x382682, 0x9BE7CA, 0xA40D51, 0xB13399, 0x0ED7A9, 0x480569,
+0xF0B265, 0xA7887F, 0x974C88, 0x36D1F9, 0xB39221, 0x4A827B,
+0x21CF98, 0xDC9F40, 0x5547DC, 0x3A74E1, 0x42EB67, 0xDF9DFE,
+0x5FD45E, 0xA4677B, 0x7AACBA, 0xA2F655, 0x23882B, 0x55BA41,
+0x086E59, 0x862A21, 0x834739, 0xE6E389, 0xD49EE5, 0x40FB49,
+0xE956FF, 0xCA0F1C, 0x8A59C5, 0x2BFA94, 0xC5C1D3, 0xCFC50F,
+0xAE5ADB, 0x86C547, 0x624385, 0x3B8621, 0x94792C, 0x876110,
+0x7B4C2A, 0x1A2C80, 0x12BF43, 0x902688, 0x893C78, 0xE4C4A8,
+0x7BDBE5, 0xC23AC4, 0xEAF426, 0x8A67F7, 0xBF920D, 0x2BA365,
+0xB1933D, 0x0B7CBD, 0xDC51A4, 0x63DD27, 0xDDE169, 0x19949A,
+0x9529A8, 0x28CE68, 0xB4ED09, 0x209F44, 0xCA984E, 0x638270,
+0x237C7E, 0x32B90F, 0x8EF5A7, 0xE75614, 0x08F121, 0x2A9DB5,
+0x4D7E6F, 0x5119A5, 0xABF9B5, 0xD6DF82, 0x61DD96, 0x023616,
+0x9F3AC4, 0xA1A283, 0x6DED72, 0x7A8D39, 0xA9B882, 0x5C326B,
+0x5B2746, 0xED3400, 0x7700D2, 0x55F4FC, 0x4D5901, 0x8071E0,
+#endif
+
+};
+
+static const double PIo2[] = {
+  1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */
+  7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */
+  5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */
+  3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */
+  1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */
+  1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */
+  2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */
+  2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */
+};
+
+static const double			
+zero   = 0.0,
+one    = 1.0,
+two24   =  1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+twon24  =  5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
+
+int
+__kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec)
+{
+	int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
+	double z,fw,f[20],fq[20],q[20];
+
+    /* initialize jk*/
+	jk = init_jk[prec];
+	jp = jk;
+
+    /* determine jx,jv,q0, note that 3>q0 */
+	jx =  nx-1;
+	jv = (e0-3)/24; if(jv<0) jv=0;
+	q0 =  e0-24*(jv+1);
+
+    /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+	j = jv-jx; m = jx+jk;
+	for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j];
+
+    /* compute q[0],q[1],...q[jk] */
+	for (i=0;i<=jk;i++) {
+	    for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
+	    q[i] = fw;
+	}
+
+	jz = jk;
+recompute:
+    /* distill q[] into iq[] reversingly */
+	for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
+	    fw    =  (double)((int32_t)(twon24* z));
+	    iq[i] =  (int32_t)(z-two24*fw);
+	    z     =  q[j-1]+fw;
+	}
+
+    /* compute n */
+	z  = scalbn(z,q0);		/* actual value of z */
+	z -= 8.0*floor(z*0.125);		/* trim off integer >= 8 */
+	n  = (int32_t) z;
+	z -= (double)n;
+	ih = 0;
+	if(q0>0) {	/* need iq[jz-1] to determine n */
+	    i  = (iq[jz-1]>>(24-q0)); n += i;
+	    iq[jz-1] -= i<<(24-q0);
+	    ih = iq[jz-1]>>(23-q0);
+	} 
+	else if(q0==0) ih = iq[jz-1]>>23;
+	else if(z>=0.5) ih=2;
+
+	if(ih>0) {	/* q > 0.5 */
+	    n += 1; carry = 0;
+	    for(i=0;i<jz ;i++) {	/* compute 1-q */
+		j = iq[i];
+		if(carry==0) {
+		    if(j!=0) {
+			carry = 1; iq[i] = 0x1000000- j;
+		    }
+		} else  iq[i] = 0xffffff - j;
+	    }
+	    if(q0>0) {		/* rare case: chance is 1 in 12 */
+	        switch(q0) {
+	        case 1:
+	    	   iq[jz-1] &= 0x7fffff; break;
+	    	case 2:
+	    	   iq[jz-1] &= 0x3fffff; break;
+	        }
+	    }
+	    if(ih==2) {
+		z = one - z;
+		if(carry!=0) z -= scalbn(one,q0);
+	    }
+	}
+
+    /* check if recomputation is needed */
+	if(z==zero) {
+	    j = 0;
+	    for (i=jz-1;i>=jk;i--) j |= iq[i];
+	    if(j==0) { /* need recomputation */
+		for(k=1;iq[jk-k]==0;k++);   /* k = no. of terms needed */
+
+		for(i=jz+1;i<=jz+k;i++) {   /* add q[jz+1] to q[jz+k] */
+		    f[jx+i] = (double) ipio2[jv+i];
+		    for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
+		    q[i] = fw;
+		}
+		jz += k;
+		goto recompute;
+	    }
+	}
+
+    /* chop off zero terms */
+	if(z==0.0) {
+	    jz -= 1; q0 -= 24;
+	    while(iq[jz]==0) { jz--; q0-=24;}
+	} else { /* break z into 24-bit if necessary */
+	    z = scalbn(z,-q0);
+	    if(z>=two24) { 
+		fw = (double)((int32_t)(twon24*z));
+		iq[jz] = (int32_t)(z-two24*fw);
+		jz += 1; q0 += 24;
+		iq[jz] = (int32_t) fw;
+	    } else iq[jz] = (int32_t) z ;
+	}
+
+    /* convert integer "bit" chunk to floating-point value */
+	fw = scalbn(one,q0);
+	for(i=jz;i>=0;i--) {
+	    q[i] = fw*(double)iq[i]; fw*=twon24;
+	}
+
+    /* compute PIo2[0,...,jp]*q[jz,...,0] */
+	for(i=jz;i>=0;i--) {
+	    for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
+	    fq[jz-i] = fw;
+	}
+
+    /* compress fq[] into y[] */
+	switch(prec) {
+	    case 0:
+		fw = 0.0;
+		for (i=jz;i>=0;i--) fw += fq[i];
+		y[0] = (ih==0)? fw: -fw; 
+		break;
+	    case 1:
+	    case 2:
+		fw = 0.0;
+		for (i=jz;i>=0;i--) fw += fq[i]; 
+		STRICT_ASSIGN(double,fw,fw);
+		y[0] = (ih==0)? fw: -fw; 
+		fw = fq[0]-fw;
+		for (i=1;i<=jz;i++) fw += fq[i];
+		y[1] = (ih==0)? fw: -fw; 
+		break;
+	    case 3:	/* painful */
+		for (i=jz;i>0;i--) {
+		    fw      = fq[i-1]+fq[i]; 
+		    fq[i]  += fq[i-1]-fw;
+		    fq[i-1] = fw;
+		}
+		for (i=jz;i>1;i--) {
+		    fw      = fq[i-1]+fq[i]; 
+		    fq[i]  += fq[i-1]-fw;
+		    fq[i-1] = fw;
+		}
+		for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; 
+		if(ih==0) {
+		    y[0] =  fq[0]; y[1] =  fq[1]; y[2] =  fw;
+		} else {
+		    y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
+		}
+	}
+	return n&7;
+}
diff --git a/modules/fdlibm/src/k_sin.cpp b/modules/fdlibm/src/k_sin.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f45165f62e1065a6f2aafb3c86952e8026054067
--- /dev/null
+++ b/modules/fdlibm/src/k_sin.cpp
@@ -0,0 +1,69 @@
+
+/* @(#)k_sin.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice 
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* __kernel_sin( x, y, iy)
+ * kernel sin function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). 
+ *
+ * Algorithm
+ *	1. Since sin(-x) = -sin(x), we need only to consider positive x. 
+ *	2. Callers must return sin(-0) = -0 without calling here since our
+ *	   odd polynomial is not evaluated in a way that preserves -0.
+ *	   Callers may do the optimization sin(x) ~ x for tiny x.
+ *	3. sin(x) is approximated by a polynomial of degree 13 on
+ *	   [0,pi/4]
+ *		  	         3            13
+ *	   	sin(x) ~ x + S1*x + ... + S6*x
+ *	   where
+ *	
+ * 	|sin(x)         2     4     6     8     10     12  |     -58
+ * 	|----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x  +S6*x   )| <= 2
+ * 	|  x 					           | 
+ * 
+ *	4. sin(x+y) = sin(x) + sin'(x')*y
+ *		    ~ sin(x) + (1-x*x/2)*y
+ *	   For better accuracy, let 
+ *		     3      2      2      2      2
+ *		r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))
+ *	   then                   3    2
+ *		sin(x) = x + (S1*x + (x *(r-y/2)+y))
+ */
+
+#include "math_private.h"
+
+static const double
+half =  5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+S1  = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
+S2  =  8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
+S3  = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */
+S4  =  2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
+S5  = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
+S6  =  1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
+
+double
+__kernel_sin(double x, double y, int iy)
+{
+	double z,r,v,w;
+
+	z	=  x*x;
+	w	=  z*z;
+	r	=  S2+z*(S3+z*S4) + z*w*(S5+z*S6);
+	v	=  z*x;
+	if(iy==0) return x+v*(S1+z*r);
+	else      return x-((z*(half*y-v*r)-y)-v*S1);
+}
diff --git a/modules/fdlibm/src/k_tan.cpp b/modules/fdlibm/src/k_tan.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..de0871798352623140ba8c82748cb2561abda930
--- /dev/null
+++ b/modules/fdlibm/src/k_tan.cpp
@@ -0,0 +1,131 @@
+/* @(#)k_tan.c 1.5 04/04/22 SMI */
+
+/*
+ * ====================================================
+ * Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* INDENT OFF */
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* __kernel_tan( x, y, k )
+ * kernel tan function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k = 1) or -1/tan (if k = -1) is returned.
+ *
+ * Algorithm
+ *	1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ *	2. Callers must return tan(-0) = -0 without calling here since our
+ *	   odd polynomial is not evaluated in a way that preserves -0.
+ *	   Callers may do the optimization tan(x) ~ x for tiny x.
+ *	3. tan(x) is approximated by a odd polynomial of degree 27 on
+ *	   [0,0.67434]
+ *		  	         3             27
+ *	   	tan(x) ~ x + T1*x + ... + T13*x
+ *	   where
+ *
+ * 	        |tan(x)         2     4            26   |     -59.2
+ * 	        |----- - (1+T1*x +T2*x +.... +T13*x    )| <= 2
+ * 	        |  x 					|
+ *
+ *	   Note: tan(x+y) = tan(x) + tan'(x)*y
+ *		          ~ tan(x) + (1+x*x)*y
+ *	   Therefore, for better accuracy in computing tan(x+y), let
+ *		     3      2      2       2       2
+ *		r = x *(T2+x *(T3+x *(...+x *(T12+x *T13))))
+ *	   then
+ *		 		    3    2
+ *		tan(x+y) = x + (T1*x + (x *(r+y)+y))
+ *
+ *      4. For x in [0.67434,pi/4],  let y = pi/4 - x, then
+ *		tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ *		       = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+
+#include "math_private.h"
+static const double xxx[] = {
+		 3.33333333333334091986e-01,	/* 3FD55555, 55555563 */
+		 1.33333333333201242699e-01,	/* 3FC11111, 1110FE7A */
+		 5.39682539762260521377e-02,	/* 3FABA1BA, 1BB341FE */
+		 2.18694882948595424599e-02,	/* 3F9664F4, 8406D637 */
+		 8.86323982359930005737e-03,	/* 3F8226E3, E96E8493 */
+		 3.59207910759131235356e-03,	/* 3F6D6D22, C9560328 */
+		 1.45620945432529025516e-03,	/* 3F57DBC8, FEE08315 */
+		 5.88041240820264096874e-04,	/* 3F4344D8, F2F26501 */
+		 2.46463134818469906812e-04,	/* 3F3026F7, 1A8D1068 */
+		 7.81794442939557092300e-05,	/* 3F147E88, A03792A6 */
+		 7.14072491382608190305e-05,	/* 3F12B80F, 32F0A7E9 */
+		-1.85586374855275456654e-05,	/* BEF375CB, DB605373 */
+		 2.59073051863633712884e-05,	/* 3EFB2A70, 74BF7AD4 */
+/* one */	 1.00000000000000000000e+00,	/* 3FF00000, 00000000 */
+/* pio4 */	 7.85398163397448278999e-01,	/* 3FE921FB, 54442D18 */
+/* pio4lo */	 3.06161699786838301793e-17	/* 3C81A626, 33145C07 */
+};
+#define	one	xxx[13]
+#define	pio4	xxx[14]
+#define	pio4lo	xxx[15]
+#define	T	xxx
+/* INDENT ON */
+
+double
+__kernel_tan(double x, double y, int iy) {
+	double z, r, v, w, s;
+	int32_t ix, hx;
+
+	GET_HIGH_WORD(hx,x);
+	ix = hx & 0x7fffffff;			/* high word of |x| */
+	if (ix >= 0x3FE59428) {	/* |x| >= 0.6744 */
+		if (hx < 0) {
+			x = -x;
+			y = -y;
+		}
+		z = pio4 - x;
+		w = pio4lo - y;
+		x = z + w;
+		y = 0.0;
+	}
+	z = x * x;
+	w = z * z;
+	/*
+	 * Break x^5*(T[1]+x^2*T[2]+...) into
+	 * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
+	 * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
+	 */
+	r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] +
+		w * T[11]))));
+	v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] +
+		w * T[12])))));
+	s = z * x;
+	r = y + z * (s * (r + v) + y);
+	r += T[0] * s;
+	w = x + r;
+	if (ix >= 0x3FE59428) {
+		v = (double) iy;
+		return (double) (1 - ((hx >> 30) & 2)) *
+			(v - 2.0 * (x - (w * w / (w + v) - r)));
+	}
+	if (iy == 1)
+		return w;
+	else {
+		/*
+		 * if allow error up to 2 ulp, simply return
+		 * -1.0 / (x+r) here
+		 */
+		/* compute -1.0 / (x+r) accurately */
+		double a, t;
+		z = w;
+		SET_LOW_WORD(z,0);
+		v = r - (z - x);	/* z+v = r+x */
+		t = a = -1.0 / w;	/* a = -1.0/w */
+		SET_LOW_WORD(t,0);
+		s = 1.0 + t * z;
+		return t + a * (s + t * v);
+	}
+}
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
index 35183bbc90d6f2d2df5463df2be6927aea8bb9f3..51d79f9c2ec59f3abf30b32b6e9734de6866a01f 100644
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -25,6 +25,14 @@
 
 #include "mozilla/EndianUtils.h"
 
+/*
+ * Emulate FreeBSD internal double types.
+ * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
+ */
+
+typedef double      __double_t;
+typedef __double_t  double_t;
+
 /*
  * The original fdlibm code used statements like:
  *	n0 = ((*(int*)&one)>>29)^1;		* index of high word *
@@ -591,11 +599,56 @@ CMPLXL(long double x, long double y)
 
 #endif /* _COMPLEX_H */
  
+/*
+ * The rnint() family rounds to the nearest integer for a restricted range
+ * range of args (up to about 2**MANT_DIG).  We assume that the current
+ * rounding mode is FE_TONEAREST so that this can be done efficiently.
+ * Extra precision causes more problems in practice, and we only centralize
+ * this here to reduce those problems, and have not solved the efficiency
+ * problems.  The exp2() family uses a more delicate version of this that
+ * requires extracting bits from the intermediate value, so it is not
+ * centralized here and should copy any solution of the efficiency problems.
+ */
+
+static inline double
+rnint(__double_t x)
+{
+	/*
+	 * This casts to double to kill any extra precision.  This depends
+	 * on the cast being applied to a double_t to avoid compiler bugs
+	 * (this is a cleaner version of STRICT_ASSIGN()).  This is
+	 * inefficient if there actually is extra precision, but is hard
+	 * to improve on.  We use double_t in the API to minimise conversions
+	 * for just calling here.  Note that we cannot easily change the
+	 * magic number to the one that works directly with double_t, since
+	 * the rounding precision is variable at runtime on x86 so the
+	 * magic number would need to be variable.  Assuming that the
+	 * rounding precision is always the default is too fragile.  This
+	 * and many other complications will move when the default is
+	 * changed to FP_PE.
+	 */
+	return ((double)(x + 0x1.8p52) - 0x1.8p52);
+}
+
+/*
+ * irint() and i64rint() give the same result as casting to their integer
+ * return type provided their arg is a floating point integer.  They can
+ * sometimes be more efficient because no rounding is required.
+ */
+#if (defined(amd64) || defined(__i386__)) && defined(__GNUCLIKE_ASM)
+#define	irint(x)						\
+    (sizeof(x) == sizeof(float) &&				\
+    sizeof(__float_t) == sizeof(long double) ? irintf(x) :	\
+    sizeof(x) == sizeof(double) &&				\
+    sizeof(__double_t) == sizeof(long double) ? irintd(x) :	\
+    sizeof(x) == sizeof(long double) ? irintl(x) : (int)(x))
+#else
+#define	irint(x)	((int)(x))
+#endif
+
 #ifdef DEBUG
 #if defined(__amd64__) || defined(__i386__)
 #define	breakpoint()	asm("int $3")
-#elif defined(__wasi__)
-#define breakpoint()    __builtin_trap()
 #else
 #include <signal.h>
 
@@ -792,6 +845,9 @@ CMPLXL(long double x, long double y)
 #define asin fdlibm::asin
 #define atan fdlibm::atan
 #define atan2 fdlibm::atan2
+#define cos fdlibm::cos
+#define sin fdlibm::sin
+#define tan fdlibm::tan
 #define cosh fdlibm::cosh
 #define sinh fdlibm::sinh
 #define tanh fdlibm::tanh
diff --git a/modules/fdlibm/src/moz.build b/modules/fdlibm/src/moz.build
index 603e824b9b5222e1a24dc278651e84aac1661cb5..ed50eb21e3da8c4e2941390e7d4da3df0c67c2de 100644
--- a/modules/fdlibm/src/moz.build
+++ b/modules/fdlibm/src/moz.build
@@ -46,13 +46,18 @@ SOURCES += [
     'e_log2.cpp',
     'e_pow.cpp',
     'e_sinh.cpp',
+    'k_cos.cpp',
     'k_exp.cpp',
+    'k_rem_pio2.cpp',
+    'k_sin.cpp',
+    'k_tan.cpp',
     's_asinh.cpp',
     's_atan.cpp',
     's_cbrt.cpp',
     's_ceil.cpp',
     's_ceilf.cpp',
     's_copysign.cpp',
+    's_cos.cpp',
     's_expm1.cpp',
     's_fabs.cpp',
     's_floor.cpp',
@@ -62,6 +67,8 @@ SOURCES += [
     's_rint.cpp',
     's_rintf.cpp',
     's_scalbn.cpp',
+    's_sin.cpp',
+    's_tan.cpp',
     's_tanh.cpp',
     's_trunc.cpp',
     's_truncf.cpp',
diff --git a/modules/fdlibm/src/s_cos.cpp b/modules/fdlibm/src/s_cos.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8c8bbfdc4c94367c806e927e92f6978988813117
--- /dev/null
+++ b/modules/fdlibm/src/s_cos.cpp
@@ -0,0 +1,84 @@
+/* @(#)s_cos.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* cos(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ *	__kernel_sin		... sine function on [-pi/4,pi/4]
+ *	__kernel_cos		... cosine function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <float.h>
+
+#define INLINE_REM_PIO2
+#include "math_private.h"
+#include "e_rem_pio2.cpp"
+
+double
+cos(double x)
+{
+	double y[2],z=0.0;
+	int32_t n, ix;
+
+    /* High word of x. */
+	GET_HIGH_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3fe921fb) {
+	    if(ix<0x3e46a09e)			/* if x < 2**-27 * sqrt(2) */
+		if(((int)x)==0) return 1.0;	/* generate inexact */
+	    return __kernel_cos(x,z);
+	}
+
+    /* cos(Inf or NaN) is NaN */
+	else if (ix>=0x7ff00000) return x-x;
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_cos(y[0],y[1]);
+		case 1: return -__kernel_sin(y[0],y[1],1);
+		case 2: return -__kernel_cos(y[0],y[1]);
+		default:
+		        return  __kernel_sin(y[0],y[1],1);
+	    }
+	}
+}
diff --git a/modules/fdlibm/src/s_sin.cpp b/modules/fdlibm/src/s_sin.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..42cec47b2cddb53b37046ff908b0989fb80c27e7
--- /dev/null
+++ b/modules/fdlibm/src/s_sin.cpp
@@ -0,0 +1,84 @@
+/* @(#)s_sin.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* sin(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ *	__kernel_sin		... sine function on [-pi/4,pi/4]
+ *	__kernel_cos		... cose function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <float.h>
+
+#define INLINE_REM_PIO2
+#include "math_private.h"
+#include "e_rem_pio2.cpp"
+
+double
+sin(double x)
+{
+	double y[2],z=0.0;
+	int32_t n, ix;
+
+    /* High word of x. */
+	GET_HIGH_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3fe921fb) {
+	    if(ix<0x3e500000)			/* |x| < 2**-26 */
+	       {if((int)x==0) return x;}	/* generate inexact */
+	    return __kernel_sin(x,z,0);
+	}
+
+    /* sin(Inf or NaN) is NaN */
+	else if (ix>=0x7ff00000) return x-x;
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_sin(y[0],y[1],1);
+		case 1: return  __kernel_cos(y[0],y[1]);
+		case 2: return -__kernel_sin(y[0],y[1],1);
+		default:
+			return -__kernel_cos(y[0],y[1]);
+	    }
+	}
+}
diff --git a/modules/fdlibm/src/s_tan.cpp b/modules/fdlibm/src/s_tan.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3bcb10976132017e0a6ade8660fef88b3fd6c7da
--- /dev/null
+++ b/modules/fdlibm/src/s_tan.cpp
@@ -0,0 +1,78 @@
+/* @(#)s_tan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+//#include <sys/cdefs.h>
+//__FBSDID("$FreeBSD$");
+
+/* tan(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ *	__kernel_tan		... tangent function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <float.h>
+
+#define INLINE_REM_PIO2
+#include "math_private.h"
+#include "e_rem_pio2.cpp"
+
+double
+tan(double x)
+{
+	double y[2],z=0.0;
+	int32_t n, ix;
+
+    /* High word of x. */
+	GET_HIGH_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3fe921fb) {
+	    if(ix<0x3e400000)			/* x < 2**-27 */
+		if((int)x==0) return x;		/* generate inexact */
+	    return __kernel_tan(x,z,1);
+	}
+
+    /* tan(Inf or NaN) is NaN */
+	else if (ix>=0x7ff00000) return x-x;		/* NaN */
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2(x,y);
+	    return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+							-1 -- n odd */
+	}
+}
diff --git a/modules/fdlibm/update.sh b/modules/fdlibm/update.sh
index 90d41786263a5235714fbd36eb3fd87ffbbd5e3f..49ccd29fc783d3def4fa28a70e95bf6cd2a2dda7 100755
--- a/modules/fdlibm/update.sh
+++ b/modules/fdlibm/update.sh
@@ -5,7 +5,7 @@
 
 set -e
 
-API_BASE_URL=https://api.github.com/repos/freebsd/freebsd
+API_BASE_URL=https://api.github.com/repos/freebsd/freebsd-src
 
 get_commit() {
     curl -s "${API_BASE_URL}/commits?path=lib/msun/src&per_page=1" \
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index 8afa4a1d87f31be0e1d9938e05cdf3e7f76ed3b8..060c3c0e9d55fc4771a860c8912c220700ef836e 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -979,14 +979,19 @@
   value: "#FFFFFF"
   mirror: never
 
-# 0 = always, except in high contrast mode
-# 1 = always
-# 2 = never
+# This preference is a bit confusing because we use the opposite
+# string value in the colors dialog to indicate to users how FF HCM
+# will behave.
+# With resect to document colors, these values mean:
+# 0 = "default" = always, except in high contrast mode
+# 1 = "always"
+# 2 = "never"
 #
-# Default to 0 on windows and mac, 1 elsewhere.
+# On windows, we set this to 0, which means FF HCM will mirror OS HCM.
+# Everywhere else, we set this to 1, disabling FF HCM.
 - name: browser.display.document_color_use
   type: RelaxedAtomicUint32
-#if defined(XP_WIN) || defined(XP_MACOSX)
+#if defined(XP_WIN)
   value: 0
 #else
   value: 1
@@ -6077,6 +6082,14 @@
   mirror: always
   do_not_use_directly: true
 
+# Whether to use fdlibm for Math.sin, Math.cos, and Math.tan. When
+# privacy.resistFingerprinting is true, this pref is ignored and fdlibm is used
+# anyway.
+- name: javascript.options.use_fdlibm_for_sin_cos_tan
+  type: bool
+  value: false
+  mirror: always
+
 #---------------------------------------------------------------------------
 # Prefs starting with "layers."
 #---------------------------------------------------------------------------
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index aba5106ecfc19ba03d4e4bddcecadf74a3c0efb1..1aa0592687c6dc865f92808229232b906ad2efcc 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -221,6 +221,14 @@ pref("general.config.obscure_value", 13); // for MCD .cfg files
 pref("general.warnOnAboutConfig", true);
 #endif
 
+// Whether middle button click with a modifier key starts to autoscroll or
+// does nothing.
+pref("general.autoscroll.prevent_to_start.shiftKey", true); // Shift
+pref("general.autoscroll.prevent_to_start.ctrlKey", false); // Control
+pref("general.autoscroll.prevent_to_start.altKey", false);  // Alt
+pref("general.autoscroll.prevent_to_start.metaKey", false); // Command on macOS
+pref("general.autoscroll.prevent_to_start.osKey", false);   // Windows key on Windows or Super key on Linux
+
 // maximum number of dated backups to keep at any time
 pref("browser.bookmarks.max_backups",       5);
 
@@ -1218,6 +1226,7 @@ pref("network.protocol-handler.external.data", false);
 pref("network.protocol-handler.external.ie.http", false);
 pref("network.protocol-handler.external.iehistory", false);
 pref("network.protocol-handler.external.ierss", false);
+pref("network.protocol-handler.external.mk", false);
 pref("network.protocol-handler.external.ms-help", false);
 pref("network.protocol-handler.external.res", false);
 pref("network.protocol-handler.external.shell", false);
diff --git a/mozglue/baseprofiler/core/shared-libraries-win32.cc b/mozglue/baseprofiler/core/shared-libraries-win32.cc
index b5894821526afeac287e55b3c74149161c7b225a..ab9d527528d7db5e1bdea20c56714b4cf493ef0b 100644
--- a/mozglue/baseprofiler/core/shared-libraries-win32.cc
+++ b/mozglue/baseprofiler/core/shared-libraries-win32.cc
@@ -48,15 +48,17 @@ static void AppendHex(T aValue, std::string& aOut, bool aWithPadding) {
   }
 }
 
-// Hackaround for Bug 1607574.  Nvidia's shim driver nvd3d9wrap[x].dll detours
-// LoadLibraryExW and it causes AV when the following conditions are met.
-//   1. LoadLibraryExW was called for "detoured.dll"
-//   2. nvinit[x].dll was unloaded
-//   3. OS version is older than 6.2
 static bool IsModuleUnsafeToLoad(const std::string& aModuleName) {
-#if defined(_M_ARM64)
-  return false;
-#else
+  auto LowerCaseEqualsLiteral = [](char aModuleChar, char aDetouredChar) {
+    return std::tolower(aModuleChar) == aDetouredChar;
+  };
+
+#if defined(_M_AMD64) || defined(_M_IX86)
+  // Hackaround for Bug 1607574.  Nvidia's shim driver nvd3d9wrap[x].dll detours
+  // LoadLibraryExW and it causes AV when the following conditions are met.
+  //   1. LoadLibraryExW was called for "detoured.dll"
+  //   2. nvinit[x].dll was unloaded
+  //   3. OS version is older than 6.2
 #  if defined(_M_AMD64)
   LPCWSTR kNvidiaShimDriver = L"nvd3d9wrapx.dll";
   LPCWSTR kNvidiaInitDriver = L"nvinitx.dll";
@@ -65,14 +67,27 @@ static bool IsModuleUnsafeToLoad(const std::string& aModuleName) {
   LPCWSTR kNvidiaInitDriver = L"nvinit.dll";
 #  endif
   constexpr std::string_view detoured_dll = "detoured.dll";
-  return std::equal(aModuleName.cbegin(), aModuleName.cend(),
-                    detoured_dll.cbegin(), detoured_dll.cend(),
-                    [](char aModuleChar, char aDetouredChar) {
-                      return std::tolower(aModuleChar) == aDetouredChar;
-                    }) &&
-         !mozilla::IsWin8OrLater() && ::GetModuleHandleW(kNvidiaShimDriver) &&
-         !::GetModuleHandleW(kNvidiaInitDriver);
-#endif  // defined(_M_ARM64)
+  if (std::equal(aModuleName.cbegin(), aModuleName.cend(),
+                 detoured_dll.cbegin(), detoured_dll.cend(),
+                 LowerCaseEqualsLiteral) &&
+      !mozilla::IsWin8OrLater() && ::GetModuleHandleW(kNvidiaShimDriver) &&
+      !::GetModuleHandleW(kNvidiaInitDriver)) {
+    return true;
+  }
+#endif  // defined(_M_AMD64) || defined(_M_IX86)
+
+  // Hackaround for Bug 1723868.  There is no safe way to prevent the module
+  // Microsoft's VP9 Video Decoder from being unloaded because mfplat.dll may
+  // have posted more than one task to unload the module in the work queue
+  // without calling LoadLibrary.
+  constexpr std::string_view vp9_decoder_dll = "msvp9dec_store.dll";
+  if (std::equal(aModuleName.cbegin(), aModuleName.cend(),
+                 vp9_decoder_dll.cbegin(), vp9_decoder_dll.cend(),
+                 LowerCaseEqualsLiteral)) {
+    return true;
+  }
+
+  return false;
 }
 
 SharedLibraryInfo SharedLibraryInfo::GetInfoForSelf() {
diff --git a/mozglue/build/TsanOptions.cpp b/mozglue/build/TsanOptions.cpp
index 06f5413af439c5cb4db8f0e6492d2f5478adc502..5f247bc990b8cbf50e914f8d9eec4ccf8c49a87c 100644
--- a/mozglue/build/TsanOptions.cpp
+++ b/mozglue/build/TsanOptions.cpp
@@ -77,6 +77,8 @@ extern "C" const char* __tsan_default_suppressions() {
          // calling into uninstrumented external graphics driver code.
          // For example: iris_dri.so and swrast_dri.so.
          "race:fire_glxtest_process\n"
+         // Bug 1722721 - WebRender using uninstrumented Mesa drivers
+         "race:swrast_dri.so\n"
 
 
 
@@ -283,6 +285,31 @@ extern "C" const char* __tsan_default_suppressions() {
          // Bug 1683357
          "race:image::ImageSurfaceCache::SuggestedSizeInternal\n"
          "race:image::RasterImage::SetMetadata\n"
+         "race:image::RasterImage::GetWidth\n"
+
+         // Bug 1722721 - This is a benign race creating worker/SW compositor threads.
+         "race:webrender::profiler::register_thread\n"
+
+         // Bug 1722721 - This is a false positive during SW-WR rendering.
+         "race:scale_blit\n"
+
+         "race:mozilla::gl::MesaMemoryLeakWorkaround\n"
+
+
+         // Bug 1723321
+         "race:mozilla::layers::AsyncPanZoomController::AsyncPanZoomController\n"
+
+         // Bug 1723351 and Bug 1723142
+         "race:mozilla::layers::AsyncPanZoomController::ApplyAsyncTestAttributes\n"
+
+         // Bug 1723170
+         "race:mozilla::layers::APZCTreeManager::NewAPZCInstance\n"
+
+         // Bug 1723176
+         "race:mozilla::layers::AsyncPanZoomController::GetZoomAnimationId\n"
+
+         // Bug 1723730
+         "race:mozilla::layers::AsyncPanZoomController::SetZoomAnimationId\n"
 
       // End of suppressions.
       ;  // Please keep this semicolon.
diff --git a/mozglue/misc/NativeNt.h b/mozglue/misc/NativeNt.h
index 68fc26668c8b1b2ab7a76d35febb8f82190c61f0..1cce667317118a905268dc2e5bafdd337950c864 100644
--- a/mozglue/misc/NativeNt.h
+++ b/mozglue/misc/NativeNt.h
@@ -840,7 +840,7 @@ class MOZ_RAII PEHeaders final {
 
     auto dataEntry =
         RVAToPtr<PIMAGE_RESOURCE_DATA_ENTRY>(topLevel, langEntry->OffsetToData);
-    return RVAToPtr<T>(dataEntry->OffsetToData);
+    return dataEntry ? RVAToPtr<T>(dataEntry->OffsetToData) : nullptr;
   }
 
   template <size_t N>
@@ -953,6 +953,10 @@ class MOZ_RAII PEHeaders final {
 
   PIMAGE_RESOURCE_DIRECTORY_ENTRY
   FindResourceEntry(PIMAGE_RESOURCE_DIRECTORY aCurLevel, WORD aId) const {
+    if (!aCurLevel) {
+      return nullptr;
+    }
+
     // Immediately after the IMAGE_RESOURCE_DIRECTORY structure is an array
     // of IMAGE_RESOURCE_DIRECTORY_ENTRY structures. Since this function
     // searches by ID, we need to skip past any named entries before iterating.
diff --git a/netwerk/dns/effective_tld_names.dat b/netwerk/dns/effective_tld_names.dat
index 84e6c2c53630c96836656d48b537df86a8b448b9..0bb881cfa63975f8b722bd98b121337c404a1941 100644
--- a/netwerk/dns/effective_tld_names.dat
+++ b/netwerk/dns/effective_tld_names.dat
@@ -6714,9 +6714,10 @@ mil.vc
 edu.vc
 
 // ve : https://registro.nic.ve/
-// Submitted by registry
+// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve
 ve
 arts.ve
+bib.ve
 co.ve
 com.ve
 e12.ve
@@ -6728,7 +6729,9 @@ info.ve
 int.ve
 mil.ve
 net.ve
+nom.ve
 org.ve
+rar.ve
 rec.ve
 store.ve
 tec.ve
@@ -7125,7 +7128,7 @@ org.zw
 
 // newGTLDs
 
-// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-07-24T15:13:29Z
+// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-08-19T15:13:52Z
 // This list is auto-generated, don't edit it manually.
 // aaa : 2015-02-26 American Automobile Association, Inc.
 aaa
@@ -8264,7 +8267,7 @@ ftr
 // fujitsu : 2015-07-30 Fujitsu Limited
 fujitsu
 
-// fun : 2016-01-14 DotSpace Inc.
+// fun : 2016-01-14 Radix FZC
 fun
 
 // fund : 2014-03-20 Binky Moon, LLC
@@ -8522,7 +8525,7 @@ horse
 // hospital : 2016-10-20 Binky Moon, LLC
 hospital
 
-// host : 2014-04-17 DotHost Inc.
+// host : 2014-04-17 Radix FZC
 host
 
 // hosting : 2014-05-29 UNR Corp.
@@ -8717,6 +8720,9 @@ kfh
 // kia : 2015-07-09 KIA MOTORS CORPORATION
 kia
 
+// kids : 2021-08-13 DotKids Foundation Limited
+kids
+
 // kim : 2013-09-23 Afilias Limited
 kim
 
@@ -9239,7 +9245,7 @@ ong
 // onl : 2013-09-16 iRegistry GmbH
 onl
 
-// online : 2015-01-15 DotOnline Inc.
+// online : 2015-01-15 Radix FZC
 online
 
 // ooo : 2014-01-09 INFIBEAM AVENUES LIMITED
@@ -9395,7 +9401,7 @@ pramerica
 // praxi : 2013-12-05 Praxi S.p.A.
 praxi
 
-// press : 2014-04-03 DotPress Inc.
+// press : 2014-04-03 Radix FZC
 press
 
 // prime : 2015-06-25 Amazon Registry Services, Inc.
@@ -9758,7 +9764,7 @@ sina
 // singles : 2013-08-27 Binky Moon, LLC
 singles
 
-// site : 2015-01-15 DotSite Inc.
+// site : 2015-01-15 Radix FZC
 site
 
 // ski : 2015-04-09 Afilias Limited
@@ -9818,7 +9824,7 @@ soy
 // spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited
 spa
 
-// space : 2014-04-03 DotSpace Inc.
+// space : 2014-04-03 Radix FZC
 space
 
 // sport : 2017-11-16 Global Association of International Sports Federations (GAISF)
@@ -9857,7 +9863,7 @@ stockholm
 // storage : 2014-12-22 XYZ.COM LLC
 storage
 
-// store : 2015-04-09 DotStore Inc.
+// store : 2015-04-09 Radix FZC
 store
 
 // stream : 2016-01-08 dot Stream Limited
@@ -9947,7 +9953,7 @@ tdk
 // team : 2015-03-05 Binky Moon, LLC
 team
 
-// tech : 2015-01-30 Personals TLD Inc.
+// tech : 2015-01-30 Radix FZC
 tech
 
 // technology : 2013-09-13 Binky Moon, LLC
@@ -10091,7 +10097,7 @@ unicom
 // university : 2014-03-06 Binky Moon, LLC
 university
 
-// uno : 2013-09-11 DotSite Inc.
+// uno : 2013-09-11 Radix FZC
 uno
 
 // uol : 2014-05-01 UBN INTERNET LTDA.
@@ -10220,7 +10226,7 @@ webcam
 // weber : 2015-06-04 Saint-Gobain Weber SA
 weber
 
-// website : 2014-04-03 DotWebsite Inc.
+// website : 2014-04-03 Radix FZC
 website
 
 // wedding : 2014-04-24 Registry Services, LLC
@@ -10848,6 +10854,10 @@ onavstack.net
 *.awdev.ca
 *.advisor.ws
 
+// AZ.pl sp. z.o.o: https://az.pl
+// Submited by Krzysztof Wolski <krzysztof.wolski@home.eu>
+ecommerce-shop.pl
+
 // b-data GmbH : https://www.b-data.io
 // Submitted by Olivier Benz <olivier.benz@b-data.ch>
 b-data.io
@@ -11037,6 +11047,8 @@ cleverapps.io
 
 // Clerk : https://www.clerk.dev
 // Submitted by Colin Sidoti <systems@clerk.dev>
+clerk.app
+clerkstage.app
 *.lcl.dev
 *.lclstage.dev
 *.stg.dev
@@ -11626,6 +11638,12 @@ blogsite.xyz
 // Submitted by Dominik Menke <dom@digineo.de>
 dynv6.net
 
+// Ellucian : https://ellucian.com
+// Submitted by Josue Colon <CloudOps-Network@ellucian.com>
+elluciancrmadvance.com
+elluciancrmadvise.com
+elluciancrmrecruit.com
+
 // E4YOU spol. s.r.o. : https://e4you.cz/
 // Submitted by Vladimir Dudr <info@e4you.cz>
 e4.cz
@@ -11635,6 +11653,11 @@ e4.cz
 eero.online
 eero-stage.online
 
+// Elementor : Elementor Ltd.
+// Submitted by Anton Barkan <antonb@elementor.com>
+elementor.cloud
+elementor.cool
+
 // En root‽ : https://en-root.org
 // Submitted by Emmanuel Raviart <emmanuel@raviart.com>
 en-root.fr
@@ -12183,6 +12206,10 @@ ravendb.me
 development.run
 ravendb.run
 
+// home.pl S.A.: https://home.pl
+// Submited by Krzysztof Wolski <krzysztof.wolski@home.eu>
+homesklep.pl
+
 // Hong Kong Productivity Council: https://www.hkpc.org/
 // Submitted by SECaaS Team <summchan@hkpc.org>
 secaas.hk
@@ -12870,60 +12897,6 @@ pcloud.host
 // Submitted by Matthew Brown <mattbrown@nyc.mn>
 nyc.mn
 
-// NymNom : https://nymnom.com/
-// Submitted by NymNom <psl@nymnom.com>
-nom.ae
-nom.af
-nom.ai
-nom.al
-nym.by
-nom.bz
-nym.bz
-nom.cl
-nym.ec
-nom.gd
-nom.ge
-nom.gl
-nym.gr
-nom.gt
-nym.gy
-nym.hk
-nom.hn
-nym.ie
-nom.im
-nom.ke
-nym.kz
-nym.la
-nym.lc
-nom.li
-nym.li
-nym.lt
-nym.lu
-nom.lv
-nym.me
-nom.mk
-nym.mn
-nym.mx
-nom.nu
-nym.nz
-nym.pe
-nym.pt
-nom.pw
-nom.qa
-nym.ro
-nom.rs
-nom.si
-nym.sk
-nom.st
-nym.su
-nym.sx
-nom.tj
-nym.tw
-nom.ug
-nom.uy
-nom.vc
-nom.vg
-
 // Observable, Inc. : https://observablehq.com
 // Submitted by Mike Bostock <dns@observablehq.com>
 static.observableusercontent.com
@@ -13351,6 +13324,10 @@ beta.bounty-full.com
 // Submitted by Aral Balkan <aral@small-tech.org>
 small-web.org
 
+// Smoove.io : https://www.smoove.io/
+// Submitted by Dan Kozak <dan@smoove.io>
+vp4.me
+
 // Snowplow Analytics : https://snowplowanalytics.com/
 // Submitted by Ian Streeter <ian@snowplowanalytics.com>
 try-snowplow.com
diff --git a/netwerk/protocol/http/nsCORSListenerProxy.cpp b/netwerk/protocol/http/nsCORSListenerProxy.cpp
index e1c59af5891ac76afba797c3398b4525ccbbd738..1de4e2abed4a85e942fbefaccf4b38f9bc7e02e6 100644
--- a/netwerk/protocol/http/nsCORSListenerProxy.cpp
+++ b/netwerk/protocol/http/nsCORSListenerProxy.cpp
@@ -350,6 +350,14 @@ void nsCORSListenerProxy::Shutdown() {
   sPreflightCache = nullptr;
 }
 
+/* static */
+void nsCORSListenerProxy::ClearCache() {
+  if (!sPreflightCache) {
+    return;
+  }
+  sPreflightCache->Clear();
+}
+
 nsCORSListenerProxy::nsCORSListenerProxy(nsIStreamListener* aOuter,
                                          nsIPrincipal* aRequestingPrincipal,
                                          bool aWithCredentials)
diff --git a/netwerk/protocol/http/nsCORSListenerProxy.h b/netwerk/protocol/http/nsCORSListenerProxy.h
index 683efa19625022fda489ec0e3c61126db568ed3d..e3f1ff27f1d11c82602d8ee16999a4f80f980e91 100644
--- a/netwerk/protocol/http/nsCORSListenerProxy.h
+++ b/netwerk/protocol/http/nsCORSListenerProxy.h
@@ -58,6 +58,7 @@ class nsCORSListenerProxy final : public nsIStreamListener,
   NS_DECL_NSITHREADRETARGETABLESTREAMLISTENER
 
   static void Shutdown();
+  static void ClearCache();
 
   [[nodiscard]] nsresult Init(nsIChannel* aChannel,
                               DataURIHandling aAllowDataURI);
diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp
index 6d639f510262607f9d4b78846ae96284e9e1964d..0bb94416465268005ff5c74853659e38fcdf91b9 100644
--- a/netwerk/protocol/http/nsHttpHandler.cpp
+++ b/netwerk/protocol/http/nsHttpHandler.cpp
@@ -10,6 +10,7 @@
 #include "prsystem.h"
 
 #include "AltServiceChild.h"
+#include "nsCORSListenerProxy.h"
 #include "nsError.h"
 #include "nsHttp.h"
 #include "nsHttpHandler.h"
@@ -2534,6 +2535,12 @@ nsHttpHandler::EnsureHSTSDataReady(JSContext* aCx, Promise** aPromise) {
   return EnsureHSTSDataReadyNative(wrapper);
 }
 
+NS_IMETHODIMP
+nsHttpHandler::ClearCORSPreflightCache() {
+  nsCORSListenerProxy::ClearCache();
+  return NS_OK;
+}
+
 void nsHttpHandler::ShutdownConnectionManager() {
   // ensure connection manager is shutdown
   if (mConnMgr) {
diff --git a/netwerk/protocol/http/nsIHttpProtocolHandler.idl b/netwerk/protocol/http/nsIHttpProtocolHandler.idl
index e3d6fb5d1fb9672d2698af9cf09392609a264fc8..f14d04e3d8d1aedb44657942fd11ad457c471004 100644
--- a/netwerk/protocol/http/nsIHttpProtocolHandler.idl
+++ b/netwerk/protocol/http/nsIHttpProtocolHandler.idl
@@ -81,6 +81,11 @@ interface nsIHttpProtocolHandler : nsIProxiedProtocolHandler
      */
     [noscript]
     void EnsureHSTSDataReadyNative(in HSTSDataCallbackWrapperAlreadyAddRefed aCallback);
+
+    /*
+     * Clears the CORS preflight cache.
+     */
+    void clearCORSPreflightCache();
 };
 
 %{C++
diff --git a/old-configure.in b/old-configure.in
index de2642f71d0fdc296a7eb4c9e8f5ef42c5694fab..bf86baaa53136effe61829a0ad88dc0f76c7160d 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -2777,6 +2777,21 @@ if test -n "$A11Y_LOG"; then
     AC_DEFINE(A11Y_LOG)
 fi
 
+dnl Windows AccessibilityHandler
+dnl ========================================================
+
+if test -z "$MOZ_HANDLER_CLSID"; then
+    MOZ_HANDLER_CLSID="4a195748-dca2-45fb-9295-0a139e76a9e7"
+    MOZ_IHANDLERCONTROL_IID="3316ce35-f892-4832-97c5-06c52c03cdba"
+    MOZ_ASYNCIHANDLERCONTROL_IID="15b48b76-ad38-4ad3-bd1a-d3c48a5a9947"
+    MOZ_IGECKOBACKCHANNEL_IID="dd2e4a89-999e-4d65-8b65-440c923ddb61"
+fi
+
+AC_SUBST(MOZ_HANDLER_CLSID)
+AC_SUBST(MOZ_IHANDLERCONTROL_IID)
+AC_SUBST(MOZ_ASYNCIHANDLERCONTROL_IID)
+AC_SUBST(MOZ_IGECKOBACKCHANNEL_IID)
+
 dnl Spit out some output
 dnl ========================================================
 
diff --git a/parser/html/moz.build b/parser/html/moz.build
index 5ff9689556e1abae068e9906084df98fe74458fe..ff984948a8296ffcd3d12877d569e18b9faa2f74 100644
--- a/parser/html/moz.build
+++ b/parser/html/moz.build
@@ -38,6 +38,7 @@ EXPORTS += [
     "nsHtml5StreamListener.h",
     "nsHtml5StreamParser.h",
     "nsHtml5StreamParserPtr.h",
+    "nsHtml5StreamParserReleaser.h",
     "nsHtml5String.h",
     "nsHtml5StringParser.h",
     "nsHtml5SVGLoadDispatcher.h",
diff --git a/parser/html/nsHtml5StreamListener.cpp b/parser/html/nsHtml5StreamListener.cpp
index 93a7c4657a584c46970a91e9872f4c4ad4574067..d896097be1bf773d1ffa23e98d69fa67d2c2109b 100644
--- a/parser/html/nsHtml5StreamListener.cpp
+++ b/parser/html/nsHtml5StreamListener.cpp
@@ -4,6 +4,8 @@
 
 #include "nsHtml5StreamListener.h"
 
+#include "nsHtml5StreamParserReleaser.h"
+
 NS_IMPL_ADDREF(nsHtml5StreamListener)
 NS_IMPL_RELEASE(nsHtml5StreamListener)
 
@@ -15,14 +17,40 @@ NS_INTERFACE_MAP_BEGIN(nsHtml5StreamListener)
 NS_INTERFACE_MAP_END
 
 nsHtml5StreamListener::nsHtml5StreamListener(nsHtml5StreamParser* aDelegate)
-    : mDelegate(aDelegate) {}
+    : mDelegateMonitor("nsHtml5StreamListener mDelegateMonitor"),
+      mDelegate(aDelegate) {
+  MOZ_ASSERT(aDelegate, "Must have delegate");
+  aDelegate->AddRef();
+}
 
-nsHtml5StreamListener::~nsHtml5StreamListener() {}
+nsHtml5StreamListener::~nsHtml5StreamListener() { DropDelegateImpl(); }
 
 void nsHtml5StreamListener::DropDelegate() {
   MOZ_ASSERT(NS_IsMainThread(),
              "Must not call DropDelegate from non-main threads.");
-  mDelegate = nullptr;
+  DropDelegateImpl();
+}
+
+void nsHtml5StreamListener::DropDelegateImpl() {
+  mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
+  if (mDelegate) {
+    nsCOMPtr<nsIRunnable> releaser = new nsHtml5StreamParserReleaser(mDelegate);
+    if (NS_FAILED(mDelegate->DispatchToMain(releaser.forget()))) {
+      NS_WARNING("Failed to dispatch releaser event.");
+    }
+    mDelegate = nullptr;
+  }
+}
+
+nsHtml5StreamParser* nsHtml5StreamListener::GetDelegate() {
+  MOZ_ASSERT(NS_IsMainThread(), "Wrong thread!");
+  // Let's acquire the monitor in order to always access mDelegate
+  // with monitor held. Since this can be called only on the main
+  // thread and DropDelegate() can only be called on the main thread
+  // it's OK that the monitor here doesn't protect the use of the
+  // return value.
+  mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
+  return mDelegate;
 }
 
 NS_IMETHODIMP
@@ -35,6 +63,7 @@ nsHtml5StreamListener::CheckListenerChain() {
 
 NS_IMETHODIMP
 nsHtml5StreamListener::OnStartRequest(nsIRequest* aRequest) {
+  mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
   if (MOZ_UNLIKELY(!mDelegate)) {
     return NS_ERROR_NOT_AVAILABLE;
   }
@@ -43,6 +72,7 @@ nsHtml5StreamListener::OnStartRequest(nsIRequest* aRequest) {
 
 NS_IMETHODIMP
 nsHtml5StreamListener::OnStopRequest(nsIRequest* aRequest, nsresult aStatus) {
+  mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
   if (MOZ_UNLIKELY(!mDelegate)) {
     return NS_ERROR_NOT_AVAILABLE;
   }
@@ -54,6 +84,7 @@ nsHtml5StreamListener::OnDataAvailable(nsIRequest* aRequest,
                                        nsIInputStream* aInStream,
                                        uint64_t aSourceOffset,
                                        uint32_t aLength) {
+  mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
   if (MOZ_UNLIKELY(!mDelegate)) {
     return NS_ERROR_NOT_AVAILABLE;
   }
diff --git a/parser/html/nsHtml5StreamListener.h b/parser/html/nsHtml5StreamListener.h
index b1a7d891a3aeeedbe0f620fa18b57491c5197d41..30dc7ced0511310eb587b9c9fb4cdca4d9d16d87 100644
--- a/parser/html/nsHtml5StreamListener.h
+++ b/parser/html/nsHtml5StreamListener.h
@@ -7,8 +7,8 @@
 
 #include "nsIStreamListener.h"
 #include "nsIThreadRetargetableStreamListener.h"
-#include "nsHtml5StreamParserPtr.h"
 #include "nsHtml5StreamParser.h"
+#include "mozilla/ReentrantMonitor.h"
 
 /**
  * The purpose of this class is to reconcile the problem that
@@ -38,14 +38,23 @@ class nsHtml5StreamListener : public nsIStreamListener,
   NS_DECL_NSISTREAMLISTENER
   NS_DECL_NSITHREADRETARGETABLESTREAMLISTENER
 
-  inline nsHtml5StreamParser* GetDelegate() { return mDelegate; }
+  // Main-thread-only
+  nsHtml5StreamParser* GetDelegate();
 
+  // Main-thread-only
   void DropDelegate();
 
  private:
+  void DropDelegateImpl();
   virtual ~nsHtml5StreamListener();
 
-  nsHtml5StreamParserPtr mDelegate;
+  // ReentrantMonitor instead of Mutex, because `GetDelegate()`
+  // can be called from within the Necko callbacks when Necko events
+  // are delivered on the main thread.
+  mozilla::ReentrantMonitor mDelegateMonitor;
+  // Owning pointer with manually-managed refcounting, protected by
+  // mDelegateMonitor.
+  nsHtml5StreamParser* mDelegate;
 };
 
 #endif  // nsHtml5StreamListener_h
diff --git a/parser/html/nsHtml5StreamParser.h b/parser/html/nsHtml5StreamParser.h
index 4d59dc238248d9da6ef650c927ea894a932ca428..7196211aaf9410da0fe2d0aac726b040cb79632f 100644
--- a/parser/html/nsHtml5StreamParser.h
+++ b/parser/html/nsHtml5StreamParser.h
@@ -191,6 +191,7 @@ class nsHtml5StreamParser final : public nsISupports {
   friend class nsHtml5StreamParserContinuation;
   friend class nsHtml5TimerKungFu;
   friend class nsHtml5StreamParserPtr;
+  friend class nsHtml5StreamListener;
 
  public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
diff --git a/parser/html/nsHtml5StreamParserPtr.h b/parser/html/nsHtml5StreamParserPtr.h
index 863f77d476ad160690578d5a789b5bf73cc4a007..09bb2a0ea7335c40bc3f64a0be7e194f140ada96 100644
--- a/parser/html/nsHtml5StreamParserPtr.h
+++ b/parser/html/nsHtml5StreamParserPtr.h
@@ -7,22 +7,10 @@
 #define nsHtml5StreamParserPtr_h
 
 #include "nsHtml5StreamParser.h"
+#include "nsHtml5StreamParserReleaser.h"
 #include "nsThreadUtils.h"
 #include "mozilla/dom/DocGroup.h"
 
-class nsHtml5StreamParserReleaser : public mozilla::Runnable {
- private:
-  nsHtml5StreamParser* mPtr;
-
- public:
-  explicit nsHtml5StreamParserReleaser(nsHtml5StreamParser* aPtr)
-      : mozilla::Runnable("nsHtml5StreamParserReleaser"), mPtr(aPtr) {}
-  NS_IMETHOD Run() override {
-    mPtr->Release();
-    return NS_OK;
-  }
-};
-
 /**
  * Like nsRefPtr except release is proxied to the main
  * thread. Mostly copied from nsRefPtr.
diff --git a/parser/html/nsHtml5StreamParserReleaser.h b/parser/html/nsHtml5StreamParserReleaser.h
new file mode 100644
index 0000000000000000000000000000000000000000..5221107e1a53d4f3cb081ef98e9299dbe5971a5e
--- /dev/null
+++ b/parser/html/nsHtml5StreamParserReleaser.h
@@ -0,0 +1,25 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* 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/. */
+
+#ifndef nsHtml5StreamParserReleaser_h
+#define nsHtml5StreamParserReleaser_h
+
+#include "nsHtml5StreamParser.h"
+#include "nsThreadUtils.h"
+
+class nsHtml5StreamParserReleaser : public mozilla::Runnable {
+ private:
+  nsHtml5StreamParser* mPtr;
+
+ public:
+  explicit nsHtml5StreamParserReleaser(nsHtml5StreamParser* aPtr)
+      : mozilla::Runnable("nsHtml5StreamParserReleaser"), mPtr(aPtr) {}
+  NS_IMETHOD Run() override {
+    mPtr->Release();
+    return NS_OK;
+  }
+};
+
+#endif // nsHtml5StreamParserReleaser_h
diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h
index 03fdcfdb2531f5fe684fc0dba890efd99271c32c..1ee98dd46ca02913ffd1944b1d0a1e9d921a0be0 100644
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1149,4 +1149,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1636368264570000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1638787543006000);
diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc
index 13babb52e42df4063d0f3592118c9b73c4691b4f..086af9460796c6d9d3d4da8087e0bd1fd71a7833 100644
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -8,7 +8,7 @@
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
+const PRTime gPreloadListExpirationTime = INT64_C(1641206734223000);
 %%
 0--1.de, 1
 0-1.party, 1
@@ -63,6 +63,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 00365t.com, 1
 0037552.com, 1
 003d88.com, 1
+00440044.net, 1
 0047552.com, 1
 004d88.com, 1
 0057552.com, 1
@@ -328,6 +329,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 0ii0.cf, 1
 0ik.de, 1
 0iz.net, 1
+0km.top, 1
 0knowledge.de, 0
 0kun.net, 1
 0o0.edu.pl, 1
@@ -391,7 +393,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 1-2-3bounce.co.uk, 1
 1-pujcky-uvery.tk, 1
 1-weightloss.com, 1
-100-downloads.com, 1
 100-referencement.com, 1
 10000hits.tk, 1
 10000lab.net, 1
@@ -1013,6 +1014,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 146533.com, 1
 146552.com, 1
 146733.com, 1
+1481486.com, 1
 1481486.net, 1
 148663.com, 1
 149433.com, 1
@@ -1367,6 +1369,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 186ks.com, 1
 1876365.com, 1
 1876996.com, 1
+1888zr.com, 0
 188cn-sb.com, 1
 188da.com, 1
 188wei.com, 1
@@ -1686,7 +1689,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 21risk.com, 1
 21rocs.com, 1
 21stcenturycarpentry.com.au, 1
-21x9.org, 1
 22.ag, 1
 220220.de, 1
 220control.ru, 1
@@ -2038,7 +2040,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 29dejuniode1997.tk, 1
 2au.ru, 1
 2b2b.pro, 1
-2b3b.com, 1
 2badvintage.tk, 1
 2bas.nl, 1
 2bcompany.ch, 0
@@ -2153,7 +2154,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 303422.com, 1
 30375500.com, 1
 30375533.com, 1
-3040519.com, 1
 304122.com, 1
 304322.com, 1
 304622.com, 1
@@ -2629,7 +2629,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 375ks.com, 1
 377625.com, 1
 377632.com, 1
-377817.com, 1
 3778vip.com, 0
 377ks.com, 1
 377zzz.com, 1
@@ -2716,7 +2715,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 3963aa.com, 1
 3963bb.com, 1
 3963dd.com, 1
-3963ee.com, 1
 396422.com, 1
 3970a.com, 1
 3970aa.com, 1
@@ -2818,7 +2816,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 3dmusiclab.nl, 1
 3dn-modell.hu, 1
 3dnchu.com, 1
-3dnovedades.com, 0
 3do3dont.com, 1
 3dprinterwiki.org, 1
 3dprintsondemand.eu, 1
@@ -3063,7 +3060,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 45min.ga, 1
 45secondes.fr, 1
 463855.com, 1
-4661049.com, 1
 46ae.com, 1
 46ah.com, 1
 46aj.com, 1
@@ -3259,7 +3255,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 48d88.com, 1
 48lipetsk.tk, 1
 48times.online, 1
-491mhz.net, 1
 4927a.com, 1
 492977.com, 1
 492y.com, 1
@@ -3362,7 +3357,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 50-ottenkov.tk, 1
 50.gy, 1
 50.pe, 1
-50.tf, 1
 5000164.com, 1
 5000164.jp, 1
 5000yz.com, 1
@@ -3542,6 +3536,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 5209365.com, 0
 520xpjxpj.com, 1
 521.dog, 1
+5214889.com, 1
 5219.ml, 1
 521keyvista.com, 1
 5225sf.com, 1
@@ -3713,6 +3708,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 5981x.com, 1
 5981y.com, 0
 5981z.com, 1
+598598598.net, 1
 59859h.vip, 1
 59859j.vip, 1
 59859k.vip, 1
@@ -4428,20 +4424,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 714633.com, 1
 715433.com, 1
 7177bet.com, 1
-71787m.com, 1
-71787n.com, 1
-71787o.com, 1
-71787p.com, 1
-71787q.com, 1
-71787r.com, 1
-71787s.com, 1
-71787t.com, 1
-71787u.com, 1
-71787v.com, 1
-71787w.com, 1
-71787x.com, 1
-71787y.com, 1
-71787z.com, 1
+718113.com, 0
 7183.org, 0
 718433.com, 1
 719433.com, 1
@@ -4666,6 +4649,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 78936565.com, 1
 789365t.com, 1
 7894.net, 1
+789zr.com, 0
 795sss.com, 1
 797sss.com, 1
 798sss.com, 1
@@ -5063,7 +5047,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 84zu.com, 1
 84zv.com, 1
 850226.com, 1
-8521.co, 1
 8521.me, 1
 8522hk.com, 1
 8522ph.com, 1
@@ -5119,11 +5102,8 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 86kb88.com, 1
 86metro.ru, 1
 870.cc, 1
-8722am.com, 1
 8722cn.com, 1
-8722hk.com, 1
 8722ph.com, 1
-8722tw.com, 1
 8722usa.com, 1
 87365365.com, 0
 87577.com, 1
@@ -5226,7 +5206,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 888789j.com, 1
 888888722.com, 1
 88889822.com, 1
-8888yule8888.com, 1
 8889ks.com, 1
 888am8.com, 1
 888b58.com, 1
@@ -5414,7 +5393,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 918bby.com, 1
 918bcf.co, 1
 918bcw.co, 1
-918bhh.com, 1
 918bio.co, 1
 918bip.co, 1
 918bis.co, 1
@@ -5800,7 +5778,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 98laba.com, 0
 98laba.net, 0
 990313.xyz, 1
-9906753.net, 1
 9918883.com, 1
 991ccc.com, 1
 992ccc.com, 1
@@ -5873,7 +5850,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1638787456091000);
 99billionaire.com, 1
 99buffets.com, 1
 99casinos.com, 1
-99d88.com, 1
 99furnitureideasandtips.gq, 1
 99furnitureideasexamples.ga, 1
 99laptops.com, 1
@@ -6074,7 +6050,9 @@ a2ssrl.duckdns.org, 1
 a30.tokyo, 0
 a356.top, 1
 a36533.com, 1
+a365vip2.com, 1
 a365vip3.com, 1
+a365vip5.com, 1
 a365vip9.com, 1
 a3m.gmbh, 1
 a3mobile.com, 1
@@ -6120,7 +6098,6 @@ a9721.com, 1
 a9728.co, 1
 aa00228.com, 1
 aa43d.cn, 1
-aa4888.com, 1
 aa5197.co, 1
 aa6688.net, 0
 aa6729.co, 1
@@ -6313,6 +6290,7 @@ abdl.link, 1
 abdulawal.tk, 1
 abdulkarimm.tk, 1
 abdullaeff.net, 1
+abdullahavci.com, 1
 abdullahavci.com.tr, 1
 abdullahavci.net.tr, 1
 abdullahzubayerofficial.ml, 1
@@ -6339,10 +6317,10 @@ abelrubio.me, 1
 abelsflooringandtile.com, 1
 abemarx.hu, 1
 abenteuer-ahnenforschung.de, 1
+abeontech.com, 1
 aberdeenalmeras.com, 1
 aberdeencastles.co.uk, 1
 aberdeencriticalmass.tk, 1
-aberdeenjudo.co.uk, 1
 aberon.pl, 1
 aberrantvascular.tk, 1
 abetterdeath.com, 1
@@ -6605,7 +6583,6 @@ academiaeureka.tk, 1
 academiaoposicionescorreos.com, 1
 academiasdemodelos.com, 1
 academica.nl, 1
-academichealthscience.net, 1
 academichelp.gq, 1
 academicperks.org, 1
 academie-de-police.ch, 0
@@ -6804,10 +6781,11 @@ acloud.one, 1
 aclu.org, 0
 acluva.org, 0
 acmegamer.com, 1
-acmi.fr, 1
 acmilan.gq, 1
 acmilan.ml, 1
 acnh.info, 1
+acnj.gov, 1
+acnjpolice.gov, 1
 acnoventa.it, 1
 acodess.com, 1
 acolicy.com, 1
@@ -6855,7 +6833,6 @@ acronym24.com, 1
 acropolis.edu.mx, 1
 acrorock.tk, 1
 across-community.tk, 1
-across.ml, 1
 acrossgw.com, 1
 acrosstheblvd.com, 1
 acroteam.tk, 1
@@ -7021,6 +6998,7 @@ adab-mans.tk, 1
 adacprod.fr, 1
 adaera.com, 1
 adagia.eu, 1
+adaiacorporation.com, 1
 adaio.es, 1
 adaio.eu, 1
 adaio.net, 1
@@ -7063,6 +7041,8 @@ adams.es, 1
 adamsasphaltpaving.com, 1
 adamscampcolorado.org, 1
 adamschmuck.de, 1
+adamscountyil.gov, 1
+adamscountypa.gov, 1
 adamstas.com, 1
 adamsweb.tk, 1
 adamwallington.co.uk, 1
@@ -7181,7 +7161,6 @@ adex.network, 1
 adextremadurafs.tk, 1
 adf-safetytools.com, 1
 adf.gov, 1
-adf.rocks, 1
 adfisicateca.org, 1
 adfs.pro, 1
 adftrasporti.it, 1
@@ -7298,7 +7277,6 @@ adorned.ga, 1
 adorno-gymnasium.de, 1
 adotta.me, 1
 adoucishop.fr, 1
-adoucisseur.shop, 1
 adoxy.com.br, 1
 adpost.com, 1
 adprospb.com, 0
@@ -7605,6 +7583,7 @@ aegisalarms.com, 1
 aegrel.ee, 1
 aeh5134.cc, 1
 aeha.tk, 1
+aei.co.uk, 1
 aeksantcugat.tk, 1
 aeksistem.com, 1
 aelieve.com, 1
@@ -7772,7 +7751,6 @@ africa.dating, 1
 africaindemander.tk, 1
 africalebanon.tk, 1
 african-artmosphere.tk, 1
-africanchildrenschoir.com, 1
 africanewstest0.ml, 1
 africangreyparrotscare.com, 1
 africanheritage.tk, 1
@@ -7812,7 +7790,6 @@ afva.net, 1
 afwd.international, 1
 afxsoft.ml, 1
 ag-33.net, 1
-ag-55.net, 1
 ag-academy.ru, 1
 ag000.com, 1
 ag01.la, 1
@@ -8157,7 +8134,6 @@ agoravox.it, 1
 agoravox.tv, 1
 agossearch.tk, 1
 agostonegro.tk, 1
-agotnes.com, 1
 agouraelectrical.com, 1
 agouraelectrician.com, 1
 agouraexteriorlighting.com, 1
@@ -8186,7 +8162,6 @@ agremo.com, 0
 agrente.pl, 1
 agreor.com, 1
 agri-meet.com, 1
-agrichamber.com.ua, 1
 agricult.tk, 1
 agricultural-technology.tk, 1
 agriculture-schools.com, 1
@@ -8300,7 +8275,6 @@ ahmadramadan.tk, 1
 ahmed-alasadi.tk, 1
 ahmed.tk, 1
 ahmedabadflowermall.com, 1
-ahmedcharles.com, 1
 ahmedcorp.tk, 1
 ahmedelgamalanimations.tk, 1
 ahmedszaidi.com, 1
@@ -8400,10 +8374,9 @@ aiguilhe-querre.com, 1
 aihaamua.tk, 1
 aiho.stream, 1
 aihschgo.org, 1
-aiinsurance.io, 1
+aiinsurance.io, 0
 aiinsurance.xyz, 1
 aiken.golf, 1
-aikenorganics.com, 1
 aikenpromotions.com, 1
 aiki.de, 1
 aiki.do, 1
@@ -8429,7 +8402,6 @@ aimax.com, 1
 aimd.tech, 1
 aimdigital.tk, 1
 aimeeandalec.com, 1
-aimgroup.co.tz, 1
 aimi-salon.com, 1
 aimless.tk, 1
 aimlessempire.tk, 1
@@ -8464,7 +8436,6 @@ aipor.pt, 0
 aiprecipecollection.com, 1
 air-business.tk, 1
 air-clan.tk, 1
-air-craftglass.com, 1
 air-flot.tk, 1
 air-planning.co.jp, 1
 air-rishon.tk, 1
@@ -8640,6 +8611,7 @@ airportal.cn, 1
 airportcoc.cf, 1
 airportcoc.ga, 1
 airportcoc.ml, 1
+airportlimototoronto.com, 1
 airportstuttgart.com, 1
 airpurifierproductsonline.com, 1
 airquestion.org, 1
@@ -8907,15 +8879,22 @@ al3xpro.com, 1
 alaattinkaraca.tk, 1
 alab.space, 1
 alabalaporto.tk, 1
+alabamaable.gov, 1
 alabamaag.gov, 1
+alabamabuys.gov, 1
 alabamacoastalradiology.com, 1
 alabamadebtrelief.org, 1
 alabamanet.tk, 1
 alabamaonlinedivorce.com, 1
+alabamasoilandwater.gov, 1
 alabn.com, 1
 alaboard.com, 1
 alabordage.fr, 1
 alabuena.com, 1
+alachuacounty.gov, 1
+alachuacountyfl.gov, 1
+alachuacountyfla.gov, 1
+alachuacountyflorida.gov, 1
 alacriti.com, 1
 alacritylaw.com, 1
 aladdin.ie, 1
@@ -9010,6 +8989,7 @@ albanildedios.tk, 1
 albanskpaskhare.tk, 1
 albanyca.gov, 1
 albanycountydems.com, 1
+albanyoregon.gov, 1
 albarius.ga, 1
 albaronventures.com, 1
 albarugby.tk, 1
@@ -9020,6 +9000,7 @@ albendazole.ga, 1
 albendazole.ml, 1
 albergolafiorita.com, 1
 albersdruck.de, 1
+albert-yu.com, 1
 albertathome.org, 1
 albertcuyp-markt.amsterdam, 1
 alberteinsteinbiography.tk, 1
@@ -9041,6 +9022,7 @@ albinvega.tk, 1
 albion2.org, 1
 albionfaeries.org.uk, 1
 albleuchten.de, 1
+albme.gov, 1
 alborgwatch.com, 1
 albourne.com, 1
 alboweb.nl, 1
@@ -9087,6 +9069,7 @@ alcoholismtreatment.tk, 1
 alcoleadetajo.tk, 1
 alcolecapital.com, 1
 alcove.cf, 1
+alcovidvaccine.gov, 1
 alctel.com.br, 1
 alcubillas.tk, 1
 aldarcake.com, 1
@@ -9125,6 +9108,7 @@ alecpap.com, 1
 alecpapierniak.com, 1
 alecrimacessorios.com.br, 1
 alecrust.com, 1
+aledotx.gov, 1
 aleftinka.tk, 1
 alegriafm.tk, 1
 alegromania.tk, 1
@@ -9183,7 +9167,6 @@ alex3.tk, 1
 alex97000.de, 0
 alexaconnect.tk, 1
 alexalist.tk, 1
-alexandbonnie.com, 1
 alexander-beck.eu, 1
 alexander-van-nieuwenhoven.tk, 1
 alexanderb.info, 1
@@ -9218,7 +9201,6 @@ alexaprinting.tk, 1
 alexarthur.net, 1
 alexas18.net, 1
 alexauto.tk, 1
-alexbaker.org, 1
 alexberts.ch, 1
 alexbogovich.com, 0
 alexbresnahan.com, 1
@@ -9254,7 +9236,6 @@ alexispoficial.tk, 1
 alexitomaster.com, 1
 alexitor.com, 1
 alexjett.com, 1
-alexkushner.com, 1
 alexlambertz.de, 1
 alexlombardo.tk, 1
 alexlouden.com, 1
@@ -9269,6 +9250,7 @@ alexn.org, 1
 alexpavel.com, 1
 alexpetrik.com, 1
 alexpnixon.com, 1
+alexpotter.net, 1
 alexridevski.net, 1
 alexridge.tk, 1
 alexs.de, 1
@@ -9282,7 +9264,7 @@ alexsexton.com, 1
 alexstudio.tk, 1
 alextaffe.com, 1
 alexthayne.co.uk, 1
-alextjam.es, 1
+alextjam.es, 0
 alextsang.net, 1
 alextweewielers.tk, 1
 alexustinoff.cf, 1
@@ -9373,7 +9355,6 @@ alibi-ua.com.ua, 1
 alibip.de, 1
 alicante-spain.tk, 1
 alice-memorial.de, 1
-alice-noutore.com, 1
 alice.tw, 1
 alicebaldenegro.tk, 1
 alicedepret.com, 1
@@ -9534,7 +9515,6 @@ allarmi.roma.it, 1
 allarticles.tk, 1
 allbenjoy.de, 1
 allbestby.tk, 1
-allbestcbdoil.com, 1
 allbetgame.cn, 1
 allbetgaming.com, 1
 allbigdicks.com, 1
@@ -9580,6 +9560,8 @@ allemoz.com, 1
 allemoz.fr, 1
 allenacampbell.tk, 1
 allenarchive.com, 1
+allencountyinvoters.gov, 1
+allencountykentucky.gov, 1
 allensun.org, 1
 allenturley.com, 1
 allenwillis.ga, 1
@@ -9618,7 +9600,6 @@ allgooddeedshomes.com, 1
 allgosts.ru, 1
 allgrass.net, 1
 allgreek.tk, 1
-allgreenturf.com.au, 1
 allhallows.tk, 1
 allhard.org, 1
 allhits.ml, 1
@@ -9727,7 +9708,6 @@ allsun.online, 1
 allsurpl.us, 1
 allsync.com, 1
 allsync.nl, 0
-alltape.eu, 1
 allterrainfence.com, 1
 allthatblings.online, 1
 allthebots.com, 1
@@ -9804,6 +9784,7 @@ almeriaplayer.tk, 1
 almi.cz, 1
 almiriatechstore.co.ke, 1
 almlab.tk, 1
+almlc.gov, 1
 almorafestival.com, 1
 almosis.tk, 1
 almost.cf, 1
@@ -9816,7 +9797,6 @@ almut-zielonka.de, 1
 almx.net, 1
 alng.me, 1
 alnitech.com, 0
-alocato.com, 1
 alodokita.com, 1
 aloe-care.tk, 1
 aloe-vera-info.tk, 1
@@ -10182,6 +10162,7 @@ amalgaamziekte.tk, 1
 amalgamma.ml, 1
 amalievonstein.net, 1
 amanandalens.com, 1
+amandadamsphotography.com, 1
 amandahamilton.tk, 1
 amandamachado.nl, 1
 amandasage.ca, 1
@@ -10224,6 +10205,7 @@ amateurvoicetalent.com, 1
 amati.solutions, 1
 amato.tk, 1
 amatoryasamak.tk, 1
+amatsuka.com, 1
 amatya.co.uk, 1
 amatzen.dk, 1
 amauf.de, 1
@@ -10370,6 +10352,7 @@ americawiki.tk, 1
 americkykongres.cz, 1
 americoadvogados.com.br, 1
 americolorcorp.com, 1
+americorpsoig.gov, 1
 amerigrouphealthyliving.com, 1
 ameriikanpoijat.org, 1
 amerika-forum.de, 1
@@ -10438,7 +10421,6 @@ aminko.ga, 1
 aminoro.de, 1
 aminorth.com, 1
 aminos.tk, 1
-aminovega.com, 1
 aminsabeti.com, 1
 aminta.de, 1
 aminullrouted.com, 1
@@ -10654,6 +10636,7 @@ analinsting.tk, 1
 analisi-grammaticale.biz, 1
 analisi-logica.it, 1
 analisi-periodo.it, 1
+analisilaica.it, 1
 analitik.ml, 1
 analizator.tk, 1
 analogfreeers.ga, 1
@@ -10745,8 +10728,10 @@ andalusierondreizen.nl, 1
 andel.info, 0
 anders.hamburg, 1
 anderskp.dk, 0
+andersoncountytn.gov, 1
 andersonpowerservices.com, 1
 andersonshatch.com, 1
+andersontownshipoh.gov, 1
 andersraagaard.dk, 1
 anderstoneel.tk, 1
 anderstornkvist.se, 1
@@ -10910,7 +10895,6 @@ andromeda.se, 1
 andromedacenter.com, 1
 andropia-online.fr, 1
 androtix.com, 1
-androtiyas.com, 1
 andrush.eu, 1
 andruvision.cz, 1
 andschwa.com, 1
@@ -11020,7 +11004,7 @@ anglesgirl.eu.org, 1
 anglesya.win, 1
 anglictina-sojcak.cz, 1
 anglictinasojcak.cz, 1
-anglingactive.co.uk, 1
+anglingactive.co.uk, 0
 anglirl.eu.org, 1
 angolo.ga, 1
 angora.me, 1
@@ -11104,7 +11088,6 @@ animate.de, 1
 anime-and-manga-news.tk, 1
 anime-best.tk, 1
 anime-cafe.tk, 1
-anime-culture.com, 1
 anime-dragoon.tk, 1
 anime-drift.tk, 1
 anime-list.ga, 1
@@ -11141,7 +11124,6 @@ animelily.com, 1
 animelody.net, 1
 animelolipop.com, 1
 animemotivation.com, 1
-animepahe.com, 1
 animeplus1.tk, 1
 animepower.gq, 1
 animepower.tk, 1
@@ -11259,7 +11241,6 @@ annelies-monsere.tk, 1
 anneliesonline.nl, 1
 anneliesvanhoof.tk, 1
 annema.biz, 1
-annemakeslovelycandles.co.uk, 1
 annemation.de, 1
 annestadie.de, 1
 annetapio.fi, 1
@@ -11360,6 +11341,7 @@ anshar.eu, 1
 ansibeast.net, 1
 ansichtssache.at, 1
 ansogning-sg.dk, 1
+ansoncountync.gov, 1
 ansperformance.eu, 1
 anstorino.tk, 1
 ansur-band.tk, 1
@@ -11491,7 +11473,7 @@ antikfloors.gq, 1
 antikfloors.ml, 1
 antikvar-i-ya.tk, 1
 antikvar-net.tk, 1
-antikvarius.ro, 1
+antikvarius.ro, 0
 antikvarshop.tk, 1
 antilaserpriority.com, 1
 antiled.by, 1
@@ -11739,6 +11721,7 @@ apertvre.tk, 1
 apervita.net, 1
 apex-parts.com, 1
 apex-promotion.com, 1
+apex.ac, 1
 apex.to, 1
 apexfacades.com.au, 1
 apexitsolutions.ca, 1
@@ -11750,6 +11733,7 @@ apgw.jp, 1
 aphelion-design.jp, 1
 aphelionband.ga, 1
 aphelionentertainment.com, 1
+aphelis.net, 1
 api-agri.ga, 1
 api-bitrefill.com, 1
 api-connect.com, 0
@@ -11853,6 +11837,7 @@ aponkral.net, 1
 aponkral.net.tr, 1
 aponkral.org, 1
 aponte-systems.com, 1
+apopka.gov, 1
 apopov.tk, 1
 apordi.fr, 1
 aporia.io, 1
@@ -11926,7 +11911,6 @@ appgeek.com.br, 1
 appharbor.com, 1
 appify.org, 1
 appimlab.it, 1
-appizia.com, 1
 applaudit.com, 1
 apple-watch-zubehoer.de, 1
 apple.ax, 1
@@ -12299,6 +12283,7 @@ arco.lu, 1
 arcobalabs.ca, 1
 arcogb.co, 1
 arcoiriscastellon.tk, 1
+arcolatexas.gov, 1
 arcollection90.com, 1
 arcopay.io, 1
 arcosdelallana.tk, 1
@@ -12404,6 +12389,7 @@ aria-best.ru, 1
 aria-best.su, 1
 aria.be, 1
 aria2.cf, 1
+ariaartgallery.com, 1
 ariacreations.net, 1
 ariadermspa.com, 1
 ariag.tk, 1
@@ -12488,7 +12474,6 @@ arkadiumdesign.com, 1
 arkadiyt.com, 1
 arkaic.dyndns.org, 1
 arkantos.agency, 1
-arkenco.cl, 1
 arkenstone.ml, 1
 arkfoundationrepair.com, 1
 arkhamasylum.tk, 1
@@ -12514,9 +12499,8 @@ arlenarmageddon.com, 1
 arlenitas.com, 1
 arletalibrary.com, 0
 arlingtonelectric.com, 1
-arlingtonwine.net, 1
 arlon.com, 1
-arm.gov, 1
+arm.gov, 0
 armacom.tk, 1
 armadale.wa.gov.au, 1
 armadalelearningpathways.co.uk, 1
@@ -12558,7 +12542,6 @@ arminpech.de, 1
 arminreiter.com, 1
 armleads.com, 0
 armo.re, 1
-armodobrasil.com.br, 1
 armoedebeleidgent.be, 1
 armond.tk, 1
 armor.ai, 1
@@ -12606,6 +12589,7 @@ arnonerba.com, 1
 arnor.org, 1
 arnottindustries.ga, 1
 arnoudraeven.nl, 1
+arnoudvandalen.nl, 1
 arnove.fr, 1
 arnove.net, 1
 arnoweterings.nl, 1
@@ -12668,7 +12652,6 @@ arrowduty.ml, 1
 arrowfastener.com, 1
 arrowgrove.com, 0
 arrowheadaddict.com, 1
-arroyoins.com, 1
 arrt.xyz, 1
 ars-online.pl, 1
 arsake.cf, 1
@@ -12850,7 +12833,6 @@ artlogo.sk, 1
 artmarketingnews.com, 1
 artmaterials.com.ua, 1
 artmaxi.eu, 1
-artmosfilms.co.za, 1
 arto.bg, 1
 artofclouds.ru, 0
 artofcode.co.uk, 1
@@ -12902,6 +12884,7 @@ arubasunsetbeach.com, 1
 arunjoshua.com, 1
 aruo.net, 1
 aruson.tk, 1
+arvadaco.gov, 1
 arveex.eu, 1
 arveron.ch, 0
 arvid.io, 1
@@ -12955,7 +12938,7 @@ asadatec.de, 1
 asaduddinowaisi.tk, 1
 asafaweb.com, 1
 asafilm.co, 1
-asafomba.com, 1
+asafomba.com, 0
 asakoh.co.jp, 1
 asal.tk, 1
 asana.biz, 1
@@ -13061,6 +13044,8 @@ ashridgetrees.co.uk, 1
 ashtar.tk, 1
 ashtonbromleyceramics.co.uk, 1
 ashtonc.ca, 1
+ashtoncityid.gov, 1
+ashtonid.gov, 1
 ashtonwealth.com, 1
 ashtronaut.space, 1
 ashutoshmishra.org, 1
@@ -13119,7 +13104,6 @@ askapkmod.com, 1
 askaret.cz, 1
 askatrans.tk, 1
 askbonus.com, 1
-askcaisse.com, 1
 askcascade.com, 1
 askdeliver.tk, 1
 asker-massasje.no, 1
@@ -13176,6 +13160,7 @@ aspatrimoine.com, 0
 aspcl.ch, 1
 aspectcontext.com, 1
 aspectuw.com.au, 1
+aspen.gov, 1
 aspencat.tk, 1
 aspenhillsdesign.com, 1
 aspenrealestate.com, 1
@@ -13470,6 +13455,7 @@ atheist-refugees.com, 1
 atheistfrontier.com, 1
 athekiu.com, 1
 athemis.de, 1
+athena-garage.co.uk, 1
 athena-security.net, 1
 athenacle.xyz, 1
 athenainvestmentsystems.com, 1
@@ -13641,6 +13627,7 @@ attivazioneveloce.it, 1
 attlane.fr, 1
 attoch.org, 1
 attogtech.com, 1
+attorney.org.il, 0
 attorneybiographies.ga, 1
 attorneybiographiesest.ga, 1
 attorneystrialgroup.com, 1
@@ -13719,7 +13706,7 @@ audionpack.de, 1
 audioonly.stream, 1
 audiophile.ch, 0
 audiophix.com, 1
-audiorecording.me, 1
+audiorental.net, 1
 audioscenic.com, 1
 audioschoolonline.com, 1
 audioslave.tk, 1
@@ -13818,6 +13805,7 @@ aurora403.com, 1
 aurora911.net, 1
 auroraassociationofrealtors.com, 1
 aurorak12.org, 1
+auroramarionvillepd-mo.gov, 1
 auroranianoxx.net, 1
 auroraofficefurniture.com.au, 1
 aurorarecordings.com, 1
@@ -13859,7 +13847,6 @@ austinhartzheim.me, 1
 austinheap.com, 0
 austinlaw.co.uk, 1
 austinlockout.com, 1
-austinmobilestorage.com, 1
 austinonline.tk, 1
 austinsutphin.com, 1
 austintxacrepairtoday.com, 1
@@ -14243,6 +14230,7 @@ autoscuola.roma.it, 1
 autosearch.me, 1
 autosecurityfinance.com, 1
 autoshinka72.ru, 1
+autoshopsolutions.com, 0
 autosiero.nl, 1
 autoskolaplzen.cz, 1
 autosneed.com, 1
@@ -14485,6 +14473,7 @@ avogelusa.com, 1
 avoids-troops.gq, 1
 avoinna24.fi, 1
 avoka.do, 1
+avondaleestatesga.gov, 1
 avonlearningcampus.com, 1
 avonture.be, 1
 avonvets.co.uk, 1
@@ -14609,7 +14598,6 @@ axelteichmann.net, 1
 axelvoss.eu, 0
 axendatranslations.com, 0
 axeonline.tk, 1
-axg.io, 1
 axidocepabid.tk, 1
 axin888.vip, 1
 axiodl.com, 1
@@ -14624,7 +14612,6 @@ axis2ofevil.com, 1
 axisdesignarchitects.co.uk, 1
 axisdesignarchitects.com, 1
 axishw.com, 1
-axispara-bg.com, 1
 axome.com, 1
 axon-toumpa.gr, 1
 axoncoho.tk, 1
@@ -14779,6 +14766,7 @@ azartmania.tk, 1
 azarus.ch, 1
 azarweb.tk, 1
 azcensus2020.gov, 1
+azenot.com, 0
 azerbelarbi.tk, 1
 azerigenocide.tk, 1
 azeriinfo.tk, 1
@@ -14821,6 +14809,7 @@ azpogomap.com, 1
 azrangers.gov, 1
 azrazalea.net, 1
 azs-nw.ru, 1
+azsalud.gov, 1
 azsgeniedev.azurewebsites.net, 1
 azso.pro, 1
 azsupport.com, 1
@@ -14879,7 +14868,6 @@ b-tree.be, 1
 b0000.co, 1
 b00228.com, 1
 b00de.ga, 1
-b0309.com, 1
 b03aa.com, 1
 b03bb.com, 1
 b03cc.com, 1
@@ -14892,7 +14880,6 @@ b1111.co, 1
 b11p.com, 1
 b131000.com, 1
 b144.co.il, 1
-b1758.com, 1
 b1c1l1.com, 1
 b1nzy-pinged.me, 1
 b1r0d4l0m.com, 1
@@ -14925,7 +14912,6 @@ b4lint.hu, 1
 b4r7.de, 1
 b4z.eu, 1
 b5197.co, 1
-b5289.net, 1
 b58365.com, 1
 b58app.com, 1
 b58appb58app.com, 1
@@ -14939,7 +14925,6 @@ b5907.com, 1
 b5908.com, 1
 b5909.com, 1
 b5910.com, 1
-b5989.com, 1
 b5dev.com, 1
 b61688.com, 1
 b62102.com, 1
@@ -15077,7 +15062,6 @@ b99218.com, 1
 b9930.com, 1
 b99318.com, 1
 b99418.com, 1
-b9948.net, 1
 b9951.com, 1
 b99518.com, 1
 b9954.com, 1
@@ -15109,7 +15093,6 @@ b9999qq.com, 1
 b9999tt.com, 1
 b9999uu.com, 1
 b9999vv.com, 1
-b9999ww.com, 1
 b9999yy.com, 1
 b9999zz.com, 1
 b99iosapp.com, 1
@@ -15271,7 +15254,6 @@ backscattering.de, 0
 backschues.com, 1
 backschues.de, 1
 backschues.net, 1
-backseatbandits.com, 1
 backsideverbier.ch, 0
 backsliderz.uk, 1
 backspace.dev, 1
@@ -15290,6 +15272,7 @@ backyardtaco.com, 1
 baclofen.ga, 1
 baclofen.gq, 1
 bacom1.com, 1
+bacon-monitoring.org, 1
 baconismagic.ca, 0
 bacoux.com, 1
 bacq.pro, 1
@@ -15306,7 +15289,6 @@ bactrimprice.tk, 1
 bacula.jp, 1
 bacus.ga, 1
 bad-homburg.tk, 1
-bad-wurzach.de, 1
 bad.horse, 1
 bad.pet, 1
 bad.spdns.de, 1
@@ -15423,6 +15405,7 @@ baiduo.com, 1
 baidutrustssl.cn, 1
 baidutrustssl.com, 1
 baif.hr, 1
+baifubao.com, 1
 baikal.cf, 1
 baikalfond.ml, 1
 baikalppk.tk, 1
@@ -15468,6 +15451,10 @@ bakaproxy.moe, 1
 bakbi.tk, 1
 baker-street.tk, 1
 bakerbasements.com, 1
+bakercitypd.gov, 1
+bakercounty911or.gov, 1
+bakercountyor.gov, 1
+bakercountysheriffor.gov, 1
 bakersafari.co, 1
 bakersfieldhomeoffer.com, 1
 bakerviewdentalcentre.com, 1
@@ -15757,6 +15744,7 @@ bannerworld.co.uk, 1
 banning.gq, 1
 banningca.gov, 1
 bannisbierblog.de, 1
+bannockcountyidaho.gov, 1
 bannsecurity.com, 1
 banostudio.com, 1
 banquevanbreda.be, 1
@@ -15769,6 +15757,7 @@ bantik.by, 1
 bantiki.ga, 1
 banzay.ml, 1
 banzhuti.com, 1
+bao-in.net, 1
 baobabgroup.com, 1
 baobaoquming.net, 0
 baocaosuhp.com, 1
@@ -15959,7 +15948,9 @@ barth.services, 1
 bartholf.nu, 1
 bartkramer.nl, 0
 bartlamboo.nl, 1
+bartlettil.gov, 1
 bartolomebellido.com, 1
+bartowcountyga.gov, 1
 bartula.de, 1
 bartvandamme.tk, 1
 bartzutow.xyz, 1
@@ -16092,6 +16083,7 @@ batcave.tech, 1
 batch.com, 0
 batchewanabingo.com, 1
 baterioverolety.cz, 1
+batesvillearkansas.gov, 1
 batextiles.tk, 1
 bath.men, 1
 bathbodyshop.tk, 1
@@ -16114,7 +16106,6 @@ batoit.gq, 1
 batolis.com, 1
 batonchik.tk, 1
 batook.org, 1
-batschu.de, 1
 batten.eu.org, 1
 batterman.ch, 1
 battery-center.fr, 1
@@ -16169,6 +16160,7 @@ bavi.tk, 1
 bavoogi.com, 1
 bawamedical.com, 1
 bawbby.com, 1
+baxleyga.gov, 1
 baxomilowa.tk, 1
 bayanbennett.com, 1
 bayanradio.tk, 1
@@ -16195,7 +16187,6 @@ bayly.eu, 1
 baymard.com, 1
 bayofseo.com, 1
 bayportbotswana.com, 1
-bayportghana.com, 1
 bayportuganda.com, 1
 bayraklar.info, 1
 bayramov.tk, 1
@@ -16224,7 +16215,6 @@ bazari.com.pl, 1
 bazarotehijos.com, 1
 bazdell.com, 0
 bazhan.me, 1
-bazinga-events.nl, 1
 bazos.at, 1
 bazos.cz, 1
 bazos.pl, 1
@@ -16373,9 +16363,6 @@ be9418.com, 1
 be9418.info, 1
 be9418.net, 1
 be9418.org, 1
-be9458.info, 1
-be9458.net, 1
-be9458.org, 1
 be958.info, 1
 be958.org, 1
 be9966.com, 1
@@ -16396,6 +16383,7 @@ beachworldchampion.tk, 1
 beacinsight.com, 1
 beaconfed.org, 1
 beaconmm.com, 1
+beaconny.gov, 1
 beadare.com, 1
 beadare.nl, 1
 beadedcouture.tk, 1
@@ -16421,7 +16409,7 @@ beamstat.com, 1
 beanbagaa.com, 1
 beanbot.party, 1
 beancount.io, 1
-beanilla.com, 1
+beanilla.com, 0
 beanjuice.me, 1
 beansgalore.com.au, 1
 beapieceofart.com, 1
@@ -16815,6 +16803,7 @@ belle-lingerie.co.uk, 0
 bellebakes.blog, 1
 bellebaum.eu, 1
 bellecarmen.tk, 1
+belleplaineiowa.gov, 1
 bellesetrebelles.tk, 1
 bellevueduilawyers.com, 1
 bellevueowners.tk, 0
@@ -16823,7 +16812,6 @@ bellezanatural.life, 1
 bellezzasenzalimiti.it, 1
 bellflowerlactation.com, 1
 bellissime.tk, 1
-belllegal.com.au, 1
 belloweb.tk, 1
 belloy.net, 0
 bellreguard.tk, 1
@@ -16886,7 +16874,6 @@ benchling.com, 1
 benchmarkmonument.com, 1
 benchstoolo.com, 1
 benclarkphotography.com.au, 1
-bencorby.com, 1
 bencrump.com, 1
 bendechrai.com, 0
 bendemaree.com, 1
@@ -17091,6 +17078,7 @@ berkswatertech.com, 1
 berlin-cuisine.com, 1
 berlin-flirt.de, 1
 berlin.dating, 1
+berlinct.gov, 1
 berlindecouverte.fr, 1
 berlingeriresort.it, 1
 berluga.com, 1
@@ -17178,6 +17166,7 @@ besidemetal.tk, 1
 besnard.me, 1
 besnik.de, 0
 besnik.tk, 1
+besola.de, 1
 besole.ch, 1
 besolov.tk, 1
 besox.be, 1
@@ -17485,7 +17474,6 @@ bestplus.ml, 1
 bestplus.tk, 1
 bestpornclip.com, 1
 bestporngirls.com, 1
-bestpractice.domains, 1
 bestproductsaudit.com, 1
 bestradio.cz, 1
 bestreleases.tk, 1
@@ -17499,7 +17487,6 @@ bestsellers.co, 1
 bestseo4u.co.uk, 1
 bestseries.tv, 1
 bestsextoys.com, 1
-bestsgadgets.com, 1
 bestshoesmix.com, 1
 bestshopping.ga, 1
 bestshops.ga, 1
@@ -17511,7 +17498,6 @@ besttipsntricks.tk, 1
 besttrade.tk, 1
 besttraveluk.ga, 1
 bestvetmortgage.com, 1
-bestvpnservice.com.au, 1
 bestwebcams.ga, 1
 bestwebcams.ml, 1
 bestwebsite.gallery, 1
@@ -17724,6 +17710,7 @@ betexperts.tk, 1
 betformular.com, 1
 bethanyhome.org, 1
 bethatkinson.tk, 1
+bethelparkpa.gov, 1
 bethematch.org, 1
 bethematchclinical.org, 1
 betheredge.us, 1
@@ -17766,12 +17753,12 @@ bett1.pl, 1
 bettaline.com.au, 1
 bettashoerepairs.com.au, 1
 bettehochberger.com, 1
+bettendorf.gov, 1
 better.com, 0
 better.fyi, 1
 betterbabyshop.com.au, 1
 betterbladders.com, 1
 betterboards.net, 1
-betterbusiness.xyz, 1
 bettercallsully.com, 1
 bettercareclinic.co.uk, 1
 bettercleaningcompany.co.uk, 1
@@ -17798,8 +17785,6 @@ bettie.tk, 1
 bettingbusiness.ru, 1
 bettingonaverage.com, 1
 bettingsider.dk, 1
-bettmer.at, 1
-bettmer.de, 1
 bettolinokitchen.com, 1
 betty-baloo.com, 1
 bettyblue.tk, 1
@@ -18172,7 +18157,6 @@ biggsconstruction.com, 1
 bighappy.com, 1
 bighome.ml, 1
 bighouse-events.co.uk, 1
-bigideasnetwork.com, 1
 bigio.com.br, 1
 biglagoonrentals.com, 1
 biglistofporn.com, 1
@@ -18200,6 +18184,7 @@ bigskylifestylerealestate.com, 1
 bigskymontanalandforsale.com, 1
 bigskysir.com, 1
 bigskywaterheaters.com, 1
+bigstonecounty.gov, 1
 bigthree.ga, 1
 bigthunder.ca, 1
 bigtimeiq.com, 1
@@ -18214,7 +18199,6 @@ bijlokesite.be, 1
 bijlokesite.gent, 1
 bijou.be, 1
 bijouxcherie.com, 1
-bijuteriicualint.ro, 1
 bijzonderekoorprojecten.nl, 1
 bike-kurse.ch, 1
 bike-liptov.tk, 1
@@ -18400,6 +18384,7 @@ bing.com, 1
 bingcheung.com, 1
 bingchunmoli.com, 1
 bingedb.com, 1
+binghamcountyid.gov, 1
 bingle.nu, 1
 bingo-wear.com, 1
 bingo9.net, 1
@@ -18617,7 +18602,6 @@ birsinghdhami.com.np, 1
 birtamode.tk, 1
 birthday-to-you.com, 1
 birthdayinsiderest.ga, 1
-birthdaytip.com, 1
 birthinjurylawyer.com, 1
 birthright.host, 1
 birulevo.tk, 1
@@ -18793,7 +18777,6 @@ bitlo.org, 1
 bitloco.net, 1
 bitloco.org, 1
 bitmag.ml, 1
-bitmain.com.ua, 1
 bitmaincare.com.ua, 1
 bitmaincare.ru, 1
 bitmainwarranty.com.ua, 1
@@ -18962,7 +18945,6 @@ bkamp.de, 1
 bkentertainments.co.uk, 1
 bkgatl.com, 1
 bkhpilates.co.uk, 1
-bkkf.at, 1
 bkkposn.com, 1
 bkl-ca-qa-employeeapp.azurewebsites.net, 1
 bklaindia.com, 1
@@ -19071,7 +19053,7 @@ blackhawkup.com, 1
 blackheads.tk, 1
 blackhealthwealth.com, 1
 blackhelicopters.net, 1
-blackishtv.com, 1
+blackhistorymonth.gov, 1
 blackjackballroomcasino.info, 1
 blackjackprogramest.ga, 1
 blackjaguar.tk, 1
@@ -19221,6 +19203,7 @@ blechbuexn.de, 1
 bleche-onlineshop.at, 1
 bleche-onlineshop.de, 1
 blechinger.io, 1
+blechschmidt.saarland, 1
 bleedingcool.com, 1
 bleedmoneyest.ga, 1
 bleekerenbleeker.nl, 1
@@ -19231,7 +19214,6 @@ blegalservicespty.com, 1
 blekingeopen.tk, 1
 blender.io, 1
 blenderinsider.com, 1
-blenderman.org, 1
 blenderrecipereviews.com, 1
 blenderwallet.io, 1
 blending.kr, 1
@@ -19415,6 +19397,7 @@ blogsked.com, 1
 blogsnote.xyz, 1
 blogspasest.ga, 1
 blogstar.tk, 1
+blogtechnologiczny.pl, 1
 blogthetindung.com, 1
 blogtroterzy.pl, 1
 bloguser.ru, 1
@@ -19494,6 +19477,7 @@ bluedeck.org, 1
 bluedog-security.com, 1
 blueenergy.tk, 1
 blueeyesworld.tk, 1
+bluefieldwvpd.gov, 1
 blueflare.org, 1
 bluefrag.com, 1
 bluefuzz.nl, 1
@@ -19564,6 +19548,7 @@ bluex.info, 1
 bluex.net, 1
 bluex.org, 1
 blueyonder.com, 1
+bluffcitytn.gov, 1
 bluffelectrician.co.za, 1
 bluffplumber.co.za, 1
 bluheron.ca, 1
@@ -19736,6 +19721,7 @@ bodyshaping.ml, 1
 bodyshopnews.net, 1
 bodytechautomotive.com.au, 1
 bodyweb.com.br, 1
+bodyweightsolution.com, 1
 bodyworksautorebuild.com, 1
 boeah.com, 1
 boeddhashop.nl, 1
@@ -19746,6 +19732,7 @@ boel073.nl, 1
 boeleo.ru, 1
 boem.gov, 0
 boensite.tk, 1
+boerandolphcountyga.gov, 1
 boernecancerfonden.dk, 1
 boese.one, 1
 boevik.ml, 1
@@ -19908,7 +19895,6 @@ bonexio.tk, 1
 bonfi.net, 1
 bonfireleads.com, 1
 bonfloss.com, 1
-bongbabyhouse.com, 1
 bongloy.com, 1
 bongo.cat, 1
 bongocams.webcam, 1
@@ -19928,6 +19914,7 @@ bonnant-associes.ch, 0
 bonnant-partners.ch, 0
 bonneannee.tk, 1
 bonnebouffe.fr, 1
+bonnevillecountyidaho.gov, 1
 bonniecoloring.com, 1
 bonniedraw.com, 1
 bonniekitchen.com, 1
@@ -19938,6 +19925,7 @@ bonnydevil.com, 1
 bonnyprints.fr, 1
 bonobo.cz, 1
 bonomi-koffie.nl, 1
+bonop.com, 1
 bonprix.co.uk, 1
 bonra.com, 1
 bonsaiclubkengai.tk, 1
@@ -20030,11 +20018,11 @@ boomtownevents.com, 1
 boomvm.pw, 1
 boon.so, 1
 boonecountyfpdmo.gov, 1
+boonecountyne.gov, 1
 boonshoft.com, 1
 boontech.xyz, 1
 booox.biz, 1
 booox.cc, 1
-booox.info, 1
 booox.net, 1
 booox.org, 1
 booox.pw, 1
@@ -20051,6 +20039,7 @@ boost.ink, 1
 boostdesign.tk, 1
 boostgame.win, 1
 boostplm.com, 1
+boostrpro.pl, 1
 booter.pw, 1
 booths.cyou, 1
 bootina.com, 1
@@ -20220,6 +20209,7 @@ bougerpourmasante.com, 1
 bougetesfesses.fr, 1
 boughariosbros.com, 1
 boukoubengo.com, 1
+bouldercounty.gov, 1
 bouldercountydronepilot.com, 1
 boulderlibrary.org, 1
 boulderswap.com, 1
@@ -20272,7 +20262,6 @@ bouncingbuddiesleicester.co.uk, 1
 bouncingbuzzybees.co.uk, 1
 bouncinghigher.co.uk, 1
 bouncingscotland.com, 1
-bouncourseplanner.net, 1
 bouncy-castles-surrey.co.uk, 1
 bouncy-tots.co.uk, 1
 bouncybaileys.co.uk, 1
@@ -20364,6 +20353,7 @@ bowmar.gov, 1
 bowntycdn.net, 1
 bowtie.com.hk, 1
 box2.cz, 1
+boxbuttecountyne.gov, 1
 boxcritters.wiki, 1
 boxcryptor.com, 0
 boxdevigneron.fr, 1
@@ -20385,7 +20375,6 @@ boxsite.ga, 1
 boxspringbett-160x200.de, 1
 boxtub.com, 1
 boxturtlesaspets.com, 1
-boxvergelijker.nl, 1
 boxview.com, 1
 boxwcard.com, 1
 boyard.tk, 1
@@ -20455,6 +20444,7 @@ bractwogothica.ml, 1
 bradbrockmeyer.com, 1
 bradeales.com, 1
 bradenanderin.com, 1
+bradentonfl.gov, 1
 bradfordhottubhire.co.uk, 1
 bradfordmascots.co.uk, 1
 bradkovach.com, 1
@@ -20510,6 +20500,7 @@ brajenovic.com, 1
 brakemanpro.com, 1
 brakketrecruit.com, 1
 brakomecov.tk, 1
+brakpanplumber24-7.co.za, 1
 bralnik.com, 1
 brambevers.tk, 1
 bramburek.net, 1
@@ -20590,6 +20581,7 @@ branefive.com, 1
 branemusic.com, 1
 braniebananie.nl, 1
 brank.as, 1
+branno.org, 1
 branobratoz.tk, 1
 bransive.com.au, 1
 branw.xyz, 0
@@ -20613,7 +20605,6 @@ brasilwear.biz, 1
 brasilweb.tk, 1
 braslet-bianshi.tk, 1
 brasnuvem.com.br, 1
-brasserie-mino.fr, 1
 brasspipedreams.org, 1
 bratan.ga, 1
 bratstvo.tk, 1
@@ -20660,6 +20651,7 @@ bravovoucher.co.uk, 1
 brawin.cf, 1
 brawlstarsitalia.com, 1
 brawny.com, 1
+braxtoncountywv.gov, 1
 braxtonehle.com, 1
 braychappell.com, 1
 brayden.gq, 1
@@ -20783,7 +20775,6 @@ brettpostin.com, 1
 brettw.xyz, 1
 bretzner.fr, 0
 brevboxar.se, 1
-brewercollinsleadership.com, 1
 brewin.ml, 1
 brewit.online, 1
 brewsouth.com, 1
@@ -20904,7 +20895,7 @@ brightfuturemadebyme.com, 1
 brightlingseamusicfest.co.uk, 1
 brightonbank.com, 0
 brightonbouncycastles.net, 1
-brightonchilli.org.uk, 1
+brightonchilli.org.uk, 0
 brightonfc.tk, 1
 brightongrowlights.ga, 1
 brightonhoney.com, 1
@@ -21105,6 +21096,7 @@ brouskat.be, 1
 brouwerijdeblauweijsbeer.nl, 1
 brouzuf.tk, 1
 brovelton.com, 0
+browardvotes.gov, 1
 browfai.casa, 1
 brown-bros.ca, 1
 brownandjoseph.com, 1
@@ -21211,7 +21203,6 @@ bs-network.net, 1
 bs-security.com, 1
 bs.sb, 1
 bs.to, 1
-bs3xy.com, 1
 bsa-dom.ru, 1
 bsa157.org, 1
 bsaab.se, 1
@@ -21344,7 +21335,6 @@ bttyulecheng7.com, 1
 bturboo.com, 1
 btvw.de, 1
 btwsa.tk, 1
-bu-dun.com, 1
 buatcv.online, 1
 buayacorp.com, 1
 bubba.cc, 1
@@ -21369,6 +21359,8 @@ bubulazi.com, 0
 bubulazy.com, 1
 bucek.cz, 1
 buch-angucken.de, 1
+buchanancountyvirginia.gov, 1
+buchananga.gov, 1
 buchangroupinc.com, 1
 buchhaltung-muehelos.de, 1
 buchhammer.tk, 1
@@ -21379,6 +21371,7 @@ buck.com, 1
 bucket.tk, 1
 buckethead.tk, 1
 buckfast.tk, 1
+buckscounty.gov, 1
 bucksfund.com, 1
 buckthorn.ml, 1
 buckypaper.com, 1
@@ -21387,6 +21380,7 @@ budaev-shop.ru, 1
 budapestairport.tk, 1
 budapestgraphics.hu, 1
 budapestjazzclub.hu, 1
+budatx.gov, 1
 budbringerne.tk, 1
 buddhism.cf, 1
 buddhismedia.com, 1
@@ -21431,8 +21425,6 @@ bueny.net, 1
 buerliag.ch, 1
 bueromoebel-experte.de, 1
 buerooeding.de, 1
-bueroplus.de, 1
-bueroshop24.de, 1
 buerosysteme-hamburg.de, 1
 buesiforquo.cf, 1
 buettgens.net, 1
@@ -21523,7 +21515,6 @@ buka.jp, 1
 buketnevesti.cf, 1
 bukinist.tk, 1
 bukiskola.hu, 1
-bukivallalkozasok.hu, 1
 bukkenfan.jp, 1
 bukowski.tk, 1
 bukpcszerviz.hu, 1
@@ -21548,7 +21539,6 @@ bulgarianwine.com, 1
 bulgariya.cf, 1
 bulhost.com, 1
 bulindir.tk, 1
-bulkcandystore.com, 1
 bulkowespacerkowo.nl, 1
 bulktshirtsjohannesburg.co.za, 1
 bull.id.au, 0
@@ -21577,7 +21567,6 @@ bulmastife.com.br, 1
 bultink.tk, 1
 bulutkey.com, 1
 bulvar.tk, 1
-bulwarkhost.com, 1
 bumble.com, 1
 bumblebeekids.co.uk, 1
 bumblebeekids.uk, 1
@@ -21682,6 +21671,7 @@ burncorp.org, 1
 burnedyouers.ga, 1
 burnedyouest.ga, 1
 burnerfitness.com, 1
+burnettcountywi.gov, 1
 burnimage.co.uk, 1
 burning-team.tk, 1
 burning-wheels.tk, 1
@@ -22118,7 +22108,6 @@ buylevaquin.tk, 1
 buymetforminonline.tk, 1
 buymobic.ml, 1
 buyneurontin.ml, 1
-buynowbol.com, 1
 buyornot.tk, 1
 buypapercheap.net, 1
 buyplore.com, 1
@@ -22224,7 +22213,6 @@ bx-n.de, 1
 bx49.cc, 1
 bxctrust.com, 1
 bxdj3.com, 1
-bxegypt.com, 1
 bxin.de, 1
 bxp40.at, 1
 by-pixcl.com, 1
@@ -22382,7 +22370,6 @@ c3kidspace.de, 1
 c3sa.com, 1
 c3sign.de, 1
 c3soc.de, 1
-c3softworks.com, 1
 c3speak.com, 1
 c3speak.de, 1
 c3stream.de, 1
@@ -22418,6 +22405,7 @@ ca3ahhet.tk, 1
 ca5.de, 1
 caalmn.org, 1
 caanepal.gov.np, 1
+caaps.org.au, 1
 caarecord.org, 1
 caasd.org, 1
 caasda.tk, 1
@@ -22688,6 +22676,7 @@ caletka.nl, 1
 calgarydermatologisters.ga, 1
 calgraf.com, 1
 calhoun.tk, 1
+calhouncountyflsheriff.gov, 1
 caliane.de, 1
 calibermind.com, 1
 calibra.com, 1
@@ -22728,7 +22717,6 @@ callfordataspeakers.com, 1
 callforkunst.de, 1
 callfunc.com, 1
 callhub.io, 1
-callidus-vulpes.de, 1
 calligraph.gq, 1
 calligraphychic.com, 1
 callisabel.fr, 1
@@ -23127,6 +23115,7 @@ caparicasurflessons.com, 1
 capatech.co, 1
 capctury.com, 1
 capeannpediatrics.com, 1
+capecoral.gov, 1
 capehipandknee.co.za, 1
 capekeen.com, 1
 capellan.pe, 1
@@ -23154,7 +23143,6 @@ capitalibre.com, 1
 capitalism.party, 1
 capitalism.rip, 1
 capitalist.cf, 1
-capitaliz.io, 1
 capitalmarkets.online, 1
 capitalmatters.cf, 1
 capitalmatters.ga, 1
@@ -23396,6 +23384,7 @@ carespoturgentcare.org, 1
 carespoturgentcare.us, 1
 caretta.co.uk, 1
 carevo.id, 1
+careyohio.gov, 1
 careyshop.cn, 1
 carezzaperu.com, 1
 carfinancehelp.com, 1
@@ -23426,6 +23415,7 @@ carigami.fr, 1
 cariki.gq, 1
 carikiv.gq, 1
 carillon.tk, 1
+carinaklijn.nl, 1
 carine.ml, 1
 caringmedicine.ga, 1
 caringpups.com, 1
@@ -23494,6 +23484,7 @@ carmatworld.co.uk, 1
 carmela.tk, 1
 carmelrise.co.uk, 1
 carmelss.edu.hk, 1
+carmeltownship-mi.gov, 1
 carmen1996.com, 1
 carmengrayfanclub.tk, 1
 carmeni.tk, 1
@@ -23614,12 +23605,12 @@ cartadeviajes.pe, 1
 cartadeviajes.uk, 1
 cartago.co.cr, 1
 cartaisapre.com, 1
-cartale.ru, 1
 cartaodigi.com, 1
 cartegrise.com, 1
 cartegrise.xyz, 1
 cartellimax.it, 1
 cartelloni.roma.it, 1
+cartercountymo.gov, 1
 carterdan.net, 1
 carterstad.se, 1
 cartertonscouts.org.nz, 0
@@ -23911,6 +23902,7 @@ casinomucho.se, 1
 casinoonline39.com, 1
 casinoonlineprova.com, 1
 casinoonlinesicuri.com, 1
+casinoportugal.pt, 1
 casinopromote.com, 1
 casinoreal.com, 1
 casinorewards.info, 1
@@ -24054,7 +24046,6 @@ cathedralappointments.co.uk, 1
 cathedralofsatan.tk, 1
 catherinejf.com, 1
 catherinejflee.com, 1
-catherinesarasin.com, 1
 catherinesofpartick.co.uk, 0
 catholic8964.org, 1
 catholicprayers.tk, 1
@@ -24129,6 +24120,7 @@ caumont-normandie.fr, 1
 cav.ac, 1
 cavac.at, 1
 cavaleirocity.com.br, 1
+cavaliernd.gov, 1
 cavallochiropractic.com, 1
 cave-reynard.ch, 1
 cave-vet-specialists.co.uk, 1
@@ -24150,7 +24142,6 @@ caylee.de, 1
 caylercapital.com, 1
 cazadordebuenaonda.com, 1
 cazaviajes.es, 1
-cazes.info, 1
 cazino.dk, 1
 cb-crochet.com, 1
 cb1388.com, 1
@@ -24300,7 +24291,6 @@ cdc.cx, 1
 cdcpartners.gov, 1
 cdda.ch, 0
 cdeck.net, 1
-cdepot.eu, 1
 cdf.wiki, 1
 cdfnature2019.fr, 1
 cdhome.ga, 1
@@ -24409,7 +24399,6 @@ celebrities.pictures, 1
 celebritiesblog.tk, 1
 celebritydailynews.ml, 1
 celebrityfakes.tk, 1
-celebrityhealthcritic.com, 1
 celebritypic.tk, 1
 celebritypics.club, 1
 celebritypics.co, 1
@@ -24467,7 +24456,7 @@ cemetary.tk, 1
 ceml.ch, 1
 cemporcentocliente.com.br, 1
 cenatorium.pl, 1
-cencalvia.org, 1
+cencalvia.org, 0
 cendata.co.uk, 1
 cendi.gov, 1
 cendis.cz, 1
@@ -24510,7 +24499,6 @@ centralclinic.science, 1
 centralcoasthomeloans.com.au, 1
 centralconvergence.com, 1
 centralcountiesservices.org, 0
-centraldelbebe.com, 1
 centraldoencanador.com.br, 1
 centralebigmat.eu, 1
 centralegedimat.eu, 1
@@ -24581,10 +24569,7 @@ centurion-consulting.tech, 1
 centurion-it.site, 1
 centurion-meet.site, 1
 centurion.ovh, 1
-centurioninfosec.com, 1
-centurioninfosec.com.sg, 1
-centurioninfosec.hk, 1
-centurioninfosec.sg, 1
+centurioninfosec.com, 0
 centurionplumber24-7.co.za, 1
 centuryfighters.tk, 1
 centuryforum.tk, 1
@@ -24979,7 +24964,6 @@ charlotteomnes.com, 1
 charlottesvillegolfcommunities.com, 1
 charlottesvillehorsefarms.com, 1
 charlotteswimmingpoolbuilder.com, 1
-charlyclearsky.de, 1
 charlylou.de, 1
 charmander.me, 1
 charmanterelefant.at, 0
@@ -25038,6 +25022,7 @@ chateau-de-fresnois.com, 1
 chateau-de-fresnois.fr, 1
 chateau-de-lisle.fr, 1
 chateau-patris.com, 1
+chateauconstellation.ch, 0
 chateauderoncourt.fr, 1
 chateaudestrainchamps.com, 0
 chateaudevaugrigneuse.com, 0
@@ -25047,6 +25032,7 @@ chatforskning.no, 1
 chatgayitalia.it, 1
 chatgrape.com, 1
 chatgratis40.it, 1
+chathamcountync.gov, 1
 chathamil.gov, 1
 chathund.de, 1
 chathurya.lk, 1
@@ -25066,6 +25052,7 @@ chatroomfans.tk, 1
 chatshort.com, 1
 chatsupport.co, 1
 chatsworthelectrical.com, 1
+chattahoocheefl.gov, 1
 chattanoogaface.com, 1
 chattergallery.com, 1
 chatticketsers.ga, 1
@@ -25274,10 +25261,8 @@ chenx2210.xyz, 1
 chenzhi.idv.hk, 1
 chenzhipeng.com.cn, 1
 cheque-transitionactive.fr, 1
-cheraghestan.com, 1
 cheratocono.tk, 1
 cherbourg.website, 1
-cherevoiture.com, 1
 cherhenri.com, 1
 cherie-belle.com, 1
 cherienoir.net, 1
@@ -25349,7 +25334,6 @@ chiasang.tk, 1
 chiaseeds24.com, 1
 chiasepremium.com, 1
 chiavistello.it, 1
-chibiotaku.com, 1
 chiboard.co, 1
 chiboost.net, 1
 chibr.eu, 1
@@ -25415,6 +25399,7 @@ childrensfurniture.co.uk, 1
 childrensrecipes.tk, 1
 childstats.gov, 1
 childswear.tk, 1
+childtaxcredit.gov, 1
 childvisitationassistance.org, 1
 childwelfare.gov, 1
 chiletrenes.tk, 1
@@ -25453,7 +25438,6 @@ chinahealthcareblog.cf, 1
 chinahighlights.ru, 1
 chinaicpower.org, 0
 chinalosers.com, 1
-chinamextrading.com, 1
 chinasa.net, 1
 chinasearch.tk, 1
 chinaspaceflight.com, 1
@@ -25510,6 +25494,7 @@ chirr.space, 1
 chiru.no, 1
 chirurgoplastico.roma.it, 1
 chisago-isantidfl.com, 1
+chisagocountymn.gov, 1
 chiselgems.com, 1
 chispita.tk, 1
 chistesdesebas.tk, 1
@@ -25543,6 +25528,7 @@ chmielarz.it, 1
 chmsoft.com.ua, 1
 chmsoft.ru, 1
 chmurakotori.ml, 1
+chnj.gov, 1
 chnlib.com, 1
 chobble.com, 1
 chobitool.com, 1
@@ -25645,7 +25631,6 @@ chrisnekarda.com, 1
 chrisogedengbe.org, 1
 chrispaul.ml, 1
 chrispontius.tk, 1
-chrisseoguy.com, 1
 chrisshort.net, 0
 chrissmiley.co.uk, 0
 chrisspencercreative.com, 1
@@ -25709,12 +25694,12 @@ christianr.me, 1
 christianrasch.de, 1
 christians.dating, 1
 christiansayswords.com, 1
+christiansburgva.gov, 1
 christiansrit.tk, 1
 christianuniverse.org, 1
 christianwenz.de, 1
 christianwitts.tech, 1
 christianwong.blog, 1
-christianyleny.com, 1
 christiehawkes.com, 1
 christinaaguilera.com.br, 1
 christinabjoern-nilsson.dk, 1
@@ -25827,6 +25812,7 @@ chshouyu.com, 1
 chsrealtyadvisorssw.com, 1
 chsterz.de, 1
 chstrategies.com.au, 1
+chsvotes.gov, 1
 chto-posmotretj.ru, 1
 chtodelat.ga, 1
 chtsi.uk, 1
@@ -25851,7 +25837,6 @@ chunk.science, 1
 chunkeat.cyou, 1
 chunkeat.me, 1
 chunkeat.ml, 1
-chuongle.com, 1
 chupadelfrasco.com, 1
 chupanhcotrang.com, 1
 chuppa.com.au, 1
@@ -25928,7 +25913,6 @@ cidbot.com, 1
 cidcca.com, 1
 cidersus.com.ec, 1
 cidgomes.com.br, 1
-cidiart.vn, 1
 cidiframe.vn, 1
 cidikit.tk, 1
 cidones.tk, 1
@@ -26010,7 +25994,6 @@ cineplex.my, 1
 cineterror.tk, 1
 cineworld.co.in, 1
 cinexilio.tk, 1
-cinexmachina.com, 1
 cingulate.com, 1
 cinicloud.com, 1
 cinicostudio.com, 1
@@ -26018,6 +26001,7 @@ cinicsystems.tk, 1
 cinikestetik.com, 1
 ciniticket.com, 1
 cink.hu, 1
+cinkciarz.pl, 1
 cinnagar.tk, 1
 cinq-elements.com, 0
 cinq-elements.fr, 1
@@ -26071,6 +26055,7 @@ circlelytics.com, 1
 circleofhealthlongmont.com, 1
 circleofleastconfusion.com, 1
 circlepluscircle.me, 1
+circlevilleoh.gov, 1
 circoeia.com, 1
 circu.ml, 1
 circuit.co.uk, 1
@@ -26098,7 +26083,7 @@ cisa.gov, 1
 cisamexico.com, 1
 ciscoasanetflow.com, 1
 ciscocyberthreatdefense.com, 1
-ciscodude.net, 0
+ciscodude.net, 1
 ciscom.tk, 1
 cisconetflowleader.com, 1
 cisconetflowpartners.com, 1
@@ -26144,7 +26129,6 @@ citfin.cz, 1
 cities.cl, 1
 citiledger.ga, 1
 citimarinestore.com, 1
-citizen-cam.de, 1
 citizen428.net, 1
 citizenewatch.tk, 1
 citizenkevin.com, 0
@@ -26183,7 +26167,6 @@ citycountrycounselling.com.au, 1
 citycreek.studio, 1
 citycricket.tk, 1
 cityfish.com, 1
-cityfloorsupply.com, 1
 cityhide.tk, 1
 cityhotel.tk, 1
 cityjam.tk, 1
@@ -26193,17 +26176,24 @@ citylocal.cf, 1
 citylojistik.com, 1
 citymoobel.ee, 1
 cityofarcolatx.gov, 1
+cityofbrookings-sd.gov, 1
 cityofcarsonca.gov, 1
+cityofdelcity.gov, 1
 cityofeastpointemi.gov, 1
 cityofelynv.gov, 1
 cityofgigharborwa.gov, 1
+cityofgirardoh.gov, 1
 cityofguttenbergia.gov, 1
 cityofherculaneum.gov, 1
 cityoflakegeneva.gov, 1
 cityofmadera.gov, 1
+cityofmargaretalabama.gov, 1
+cityofmebanenc.gov, 1
 cityofmerced.gov, 1
 cityofmusic.be, 1
+cityofpearidgear.gov, 1
 cityofpeople.gent, 1
+cityofpinconningmi.gov, 1
 cityofpinebluff-ar.gov, 1
 cityoftitans.com, 1
 cityoftitansmmo.com, 1
@@ -26350,6 +26340,7 @@ clanlegends.tk, 1
 clanrose.org.uk, 1
 clantemplates.tk, 1
 clanto.shop, 1
+clantonal.gov, 1
 clanwarz.com, 1
 clapcafe.com, 1
 clapping-rhymes.com, 1
@@ -26359,6 +26350,7 @@ clarasegura.tk, 1
 clare-landmark.com, 1
 clare3dx.com, 1
 claremontyachtclub.org.au, 1
+clarendonvt.gov, 1
 claresderibota.tk, 1
 claretandbluearmy.tk, 1
 claretvillans.com, 1
@@ -26379,9 +26371,11 @@ claritydesignworks.com, 1
 clarityskin.com, 1
 clarkaesthetics.com, 1
 clarkcommagere.com, 1
+clarkcountywi.gov, 1
 clarkelectricalservices.com.au, 1
 clarkhowell.com, 1
 clarksburgma.gov, 1
+clarkstown.gov, 1
 clarkwinkelmann.com, 1
 clarkwise.cc, 1
 clarotvpromocao.com.br, 1
@@ -26454,8 +26448,10 @@ clayelections.gov, 1
 claygregory.com, 1
 claypenblanks.com, 1
 clayprints.com, 1
+claytonca.gov, 1
 claytoncondon.com, 1
 claytonjunior.tk, 1
+claytwpmi.gov, 1
 clazzrooms.com, 1
 cldejessey.com, 1
 cldfile.com, 1
@@ -26570,6 +26566,7 @@ clevyrcreative.com, 1
 clevyrgames.com, 1
 clevyrhosting.com, 1
 clevyrhub.com, 1
+clevyrlabs.com, 1
 clevyrnode.com, 1
 clevyrnodejs.com, 1
 clevyrstream.com, 1
@@ -26654,7 +26651,6 @@ clinic-manager.academy, 1
 clinica.zapto.org, 1
 clinicaarques.es, 1
 clinicadeesteticacontagem.com.br, 1
-clinicadentalacacias.com, 1
 clinicadentalados.com, 1
 clinicadentalayomunoz.com, 1
 clinicadentalmunoz.es, 1
@@ -26811,7 +26807,6 @@ cloudmanagedbuildings.com, 1
 cloudmarathi.work, 1
 cloudmigrator365.com, 1
 cloudmoney.tk, 1
-cloudmyhome.com, 1
 cloudmyhome.site, 1
 cloudmyhome.top, 1
 cloudninelandscapedesign.com, 1
@@ -27045,6 +27040,7 @@ cncollege.tk, 1
 cncr.ga, 1
 cncrans.ch, 0
 cncs.gob.do, 1
+cncs.gov.pt, 1
 cnet-hosting.com, 1
 cnetw.xyz, 1
 cnexchange.com, 1
@@ -27132,6 +27128,7 @@ cochem-zell.de, 1
 cochesaescala.tk, 1
 cochesteledirigidos.net, 1
 cochin-brahma.tk, 1
+cochise.gov, 1
 cocinasazahara.tk, 1
 cocinoyo.com, 1
 cockedey.in, 1
@@ -27313,8 +27310,8 @@ codwarzonepoints.com, 1
 cody.sh, 1
 codydostal.com, 1
 codyevanscomputer.com, 1
-codymoniz.com, 1
 codyqx4.com, 1
+coeburnva.gov, 1
 coenraets.com, 1
 coens.me.uk, 1
 coentropic.com, 1
@@ -27355,7 +27352,7 @@ cogknockers.net, 1
 cognicom-gaming.com, 1
 cognitip.com, 1
 cognitiveapplications.net, 1
-cognitohq.com, 1
+cognitohq.com, 0
 cognixia.us, 1
 cognosweb.net, 1
 cogsquad.house, 1
@@ -27364,6 +27361,7 @@ cogumelosmagicos.org, 1
 coiffeurschnittstelle.ch, 1
 coiffure-andrea.ch, 1
 coignieresentransition.fr, 1
+coil.gov, 1
 coimmvest.com, 1
 coin-exchange.cz, 1
 coin-group.com, 1
@@ -27430,7 +27428,6 @@ coldecan.edu.co, 1
 coldfff.com, 1
 coldfusion.co.jp, 1
 coldhak.ca, 0
-coldiario.com, 1
 coldice.tk, 1
 coldjetconnect.com, 1
 coldlasers.org, 1
@@ -27526,6 +27523,7 @@ collegium-musicum-bocholt.de, 1
 collerosso.com, 1
 colley.tk, 1
 collierlunaire.fr, 1
+colliervotes.gov, 1
 collinel-hossari.com, 1
 collinelhossari.com, 1
 collinklippel.com, 0
@@ -27593,10 +27591,13 @@ coltonrb.com, 1
 columbiacountyor.gov, 1
 columbiaproemergencymovers.com, 1
 columbiascaffolding.com, 1
+columbiatwpmi.gov, 1
 columbushydroxide.com, 1
 columbushydroxide.net, 1
 columbushydroxide.org, 1
 columbusks.gov, 1
+columbuswines.com, 1
+colwichks.gov, 1
 com-news.io, 1
 com.cc, 1
 com.fo, 1
@@ -27604,6 +27605,7 @@ comactor.com, 1
 comactor.fr, 1
 comagexinvoice.com, 1
 comalia.com, 1
+comanchecountyks.gov, 1
 comarcadelaranda.tk, 1
 comarch.es, 1
 comarkinstruments.net, 1
@@ -27759,13 +27761,11 @@ comoenviarcurriculumvitae.com, 1
 comogene.com, 0
 comohacerblog.net, 1
 comohacerpara.com, 1
-comoimportar.net, 1
 comomoraremportugal.ga, 1
 comomorreu.com, 1
 comoperdonar.tk, 1
 comoreconquistaroex.com, 1
 comorecuperaratumujerpdf.com, 1
-comoseduzir.net, 1
 comosefazisto.com.br, 1
 comovenderpelowhatsapp.com.br, 1
 comoviajarcontumascota.com, 1
@@ -28090,6 +28090,7 @@ connectingdevonandsomerset.co.uk, 1
 connectingrentals.com, 1
 connectingrentalsofbethel.com, 1
 connectionplanet.nl, 1
+connectionstrings.com, 1
 connectium.co.uk, 0
 connective.com.au, 1
 connectmath.com, 1
@@ -28301,7 +28302,7 @@ controversialrisks.com, 1
 controversialrisks.se, 1
 contucara.tk, 1
 contuestilo.tk, 1
-contunda.de, 1
+contunda.de, 0
 convent-mensing.de, 1
 convergence.fi, 1
 convergencela.com, 1
@@ -28323,6 +28324,7 @@ convierteenabudancia.com, 1
 convocatoriafundacionpepsicomexico.org, 0
 convoluted.solutions, 1
 convozcontamos.com, 1
+conwaysc.gov, 1
 conxcon.de, 1
 cooalliance.com, 1
 coochiehacks.io, 1
@@ -28401,6 +28403,7 @@ coop.com.py, 1
 coopal.jp, 1
 coopelectricidaddevoto.com.ar, 1
 coopemep.live, 0
+coopercityfl.gov, 1
 coopermais.tk, 1
 coore.jp, 1
 coorpacademy.com, 1
@@ -28454,6 +28457,7 @@ coral-study.eu, 1
 coralcanticorumbarcelona.tk, 1
 coralreef.blue, 1
 coralreef.tk, 1
+coralspringsfl.gov, 1
 corarcraft.com, 1
 coratxa.tk, 1
 corazoncaliente.tk, 1
@@ -28521,7 +28525,6 @@ corintech.net, 1
 corisu.co, 1
 corkcityfc.tk, 1
 corkedwinebar.com, 1
-corksoncolumbus.com, 1
 corky.tk, 1
 corl3ss.com, 1
 corleoncatering.com, 1
@@ -28546,7 +28549,7 @@ corniche.com, 1
 corningcu.org, 1
 cornishcamels.com, 0
 cornitek.tk, 1
-cornmachine.com, 1
+cornmachine.com, 0
 cornodo.com, 1
 coroas10.tk, 1
 coroimagen.tk, 1
@@ -28618,6 +28621,7 @@ corservsolutions.com, 1
 corsetacademy.tk, 1
 corsi.tk, 1
 corsicalaw.com, 1
+corsicanatx.gov, 1
 corsihaccpsicurezzalavoro.it, 1
 corsisicurezza.it, 1
 corso.cf, 1
@@ -28643,7 +28647,7 @@ corvax.kiev.ua, 1
 corvetto.tk, 1
 corvus.eu.org, 1
 corvuscorax.xyz, 1
-coryadum.com, 1
+coryellcountytx.gov, 1
 coryluba.com, 1
 corytyburski.com, 1
 cosasque.com, 1
@@ -28662,11 +28666,11 @@ cosmetic-surgery-prices.co.uk, 1
 cosmeticappraisal.com, 1
 cosmeticasimple.com, 1
 cosmeticenter.com.br, 1
+cosmeticosdelivery.com.br, 1
 cosmeticosnet.com.br, 1
 cosmeticsurgeon.ga, 1
 cosmetify.com, 1
 cosmetiq.tk, 1
-cosmetique-totale.nl, 1
 cosmetiquesvegans.com, 1
 cosmetix-ndsf.fr, 1
 cosmetology.co.za, 1
@@ -28738,7 +28742,9 @@ cotonmusic.ch, 0
 cotonni.tk, 1
 cotta.dk, 1
 cottage.direct, 1
+cottagegroveor.gov, 1
 cottonage.tk, 1
+cottonwoodcountymn.gov, 1
 cotwe-ge.ch, 0
 coubron-escrime.fr, 1
 couchidiomas.com, 1
@@ -28923,7 +28929,6 @@ cprewritten.net, 1
 cpro.pt, 1
 cps-sante.ml, 1
 cpsa.co.uk, 1
-cpsc.gov, 1
 cpsecureapp.com, 1
 cpsq.fr, 1
 cpsurvey.com, 1
@@ -28997,6 +29002,7 @@ craftydev.design, 1
 craftyguy.net, 1
 craftyphotons.net, 1
 craftyproducts.co.za, 1
+crag.com.tw, 1
 craig-mullins.com, 1
 craigary.net, 0
 craigbates.co.uk, 0
@@ -29050,6 +29056,7 @@ crawloween.com, 1
 crawlspaceandbasementsolutions.com, 1
 crayon.co, 1
 craytos.jp, 1
+crazy-cat.net, 1
 crazy-coders.com, 1
 crazy-fox.cf, 1
 crazy-project.ml, 1
@@ -29134,6 +29141,7 @@ creation-photos.com, 1
 creationfox.gq, 1
 creations-edita.com, 1
 creationsgate.com, 1
+creative-thinking.ro, 1
 creative-wave.fr, 1
 creativeangles.in, 1
 creativebaccha.ga, 1
@@ -29235,7 +29243,6 @@ creteangle.com, 1
 cretica.no, 1
 creusalp.ch, 0
 crew.moe, 1
-crewplanner.eu, 1
 crewsing.tk, 1
 crewvision.pt, 1
 crex24.com, 1
@@ -29392,7 +29399,6 @@ crosbug.com, 1
 cross-culture.tk, 1
 cross-games.tk, 1
 cross-led-sign.com, 1
-cross-view.com, 1
 cross-x.com, 1
 crossair.tk, 1
 crosscom.ch, 1
@@ -29448,6 +29454,7 @@ crsmsodry.cz, 1
 crsoresina.it, 1
 crsserviceogkloak.dk, 1
 crstat.ru, 1
+crt.cloud, 1
 crt.sh, 1
 crt2014-2024review.gov, 1
 crtalleres.com, 1
@@ -29557,7 +29564,7 @@ cryptoparty.tv, 1
 cryptopartynewcastle.org, 1
 cryptopartyutah.org, 1
 cryptopaste.org, 1
-cryptophobia.nl, 1
+cryptophobia.nl, 0
 cryptopro.shop, 1
 cryptorival.com, 1
 cryptoseb.pw, 1
@@ -29594,6 +29601,7 @@ crystallake.tk, 1
 crystallizedcouture.com, 1
 crystaloscillat.com, 1
 crystalsky.tk, 1
+crystalspringsms.gov, 1
 crystone.me, 1
 cryz.ru, 1
 cs-algeria.tk, 1
@@ -29679,6 +29687,7 @@ csnet.live, 1
 csodaorszagovoda.hu, 1
 csokolade.hu, 1
 csokolozos-jatekok.tk, 1
+csosa.gov, 1
 csowt.gq, 1
 csp-tohoku.co.jp, 1
 csp.ch, 0
@@ -29752,7 +29761,6 @@ ctr.id, 0
 ctrl.blog, 1
 ctrl.gr, 0
 ctrlcvz.tk, 1
-ctrld.me, 1
 ctsl.net, 1
 ctstoowoomba.com.au, 1
 ctt.global, 1
@@ -29835,7 +29843,6 @@ cuetoems.com, 1
 cuevafelina.tk, 1
 cugetliber.ro, 1
 cuhawaii.com, 1
-cuibonobo.com, 1
 cuidade.fr, 1
 cuio.net, 1
 cuir-lipari.fr, 1
@@ -29876,11 +29883,14 @@ culturism.ml, 1
 culturoquiz.com, 1
 cultuur.gent, 1
 cultuurinonderwijs.be, 1
+cumberlandcountync.gov, 1
+cumberlandcountypa.gov, 1
 cumberlandrivertales.com, 1
 cumbiaperuana.tk, 1
 cumbreamazonica.tk, 1
 cuminas.com, 1
 cuminas.jp, 1
+cumingcountyne.gov, 1
 cumnock.name, 1
 cumnock.org, 1
 cumplegenial.com, 1
@@ -29997,7 +30007,7 @@ cusfit.com, 1
 cusgpwoerden.nl, 1
 cushlaofgullion.com, 1
 cushytushiediapers.com, 1
-custamped.com, 1
+custamped.com, 0
 custer.tk, 1
 custercounty-co.gov, 1
 custodiamobili.roma.it, 1
@@ -30011,7 +30021,6 @@ custombuttonco.com, 1
 customcodeit.com.au, 1
 customcompleteautomotive.com, 1
 customdissertation.com, 1
-customerbox.ir, 1
 customerbuilders.com, 1
 customerfocus.co.za, 1
 customessaystation.gq, 1
@@ -30074,7 +30083,6 @@ cuxpool.net, 1
 cuyahogacommunitycollege.tk, 1
 cuyahogacountyvotesoh.gov, 1
 cvalda.tk, 1
-cvazquez.es, 1
 cvbp.nl, 1
 cvc.digital, 1
 cvdeexpo.com, 1
@@ -30207,7 +30215,7 @@ cyberogism.com, 1
 cyberon.it, 1
 cyberoptic.de, 1
 cyberpanel.cf, 1
-cyberpathogen.me, 1
+cyberpathogen.me, 0
 cyberpcforum.com, 1
 cyberpedia.wiki, 1
 cyberphaze.com, 1
@@ -30223,6 +30231,7 @@ cyberrepair.de, 1
 cyberry.eu, 1
 cybersa.online, 1
 cybersafellc.com, 1
+cybersafetn.gov, 1
 cybersamurai.tk, 1
 cyberscan.io, 1
 cyberschmiede.at, 1
@@ -30256,6 +30265,7 @@ cyberteam.info, 1
 cybertechelectronicstt.com, 1
 cybertik.net, 1
 cybertinus.nl, 1
+cybertn.gov, 1
 cybertorsk.org, 1
 cybertrinity.co.uk, 1
 cybertron.cf, 1
@@ -30314,9 +30324,9 @@ cyph.video, 1
 cyph.ws, 1
 cyphar.com, 1
 cypherbot.org, 1
-cypherpunk.at, 1
 cypherpunk.observer, 1
 cypherpunk.ws, 1
+cypressca.gov, 1
 cypressinheritancesaga.com, 1
 cypresslegacy.com, 1
 cyprus-company-for.gr, 1
@@ -30589,7 +30599,6 @@ daibetter.com, 1
 daidogei.com, 1
 daidr.me, 1
 daie-inc.com, 1
-daigakujuken-plus.com, 1
 daikonsystems.com, 1
 daikoz.com, 1
 daily-puzzle.tk, 1
@@ -30605,6 +30614,7 @@ dailycricnews.tk, 1
 dailydealika.com, 1
 dailydosehealth.com, 1
 dailydote.com, 1
+dailyemailinboxing.com, 1
 dailyenglishchallenge.com, 1
 dailyfantasysports101.com, 1
 dailyhealthylife.ml, 1
@@ -30625,7 +30635,6 @@ dailysomething.site, 1
 dailysuperheroes.com, 1
 dailytrip.de, 1
 dailyusbusiness.tk, 1
-dailyw88.net, 1
 dailywarteg.com, 1
 dailywork.ga, 1
 dailyxenang.com, 1
@@ -30696,7 +30705,6 @@ dalmatiersheusden.be, 1
 daltonlabs.tk, 1
 daltons.tk, 1
 dalux.com, 1
-dam74.com.ar, 1
 damadam.pk, 1
 damag.net, 1
 damaged.org, 1
@@ -30706,7 +30714,6 @@ dambo.tk, 1
 damebe.com.br, 1
 damedrogy.cz, 1
 dameeq.cf, 1
-damejidlo.cz, 1
 dameocio.com, 1
 damianmalrechauffe.tk, 1
 damianus.hr, 1
@@ -31162,7 +31169,6 @@ daste2kala.ir, 1
 dasteichwerk.at, 0
 dastelefonbuch.de, 1
 dasug.de, 1
-dat4u.de, 1
 data-access-point.com, 1
 data-captive.com, 1
 data-detox.de, 1
@@ -31197,7 +31203,6 @@ databricks.com, 0
 databutlr.com, 1
 databutlr.net, 1
 datacalle.com, 1
-datacaptive.com, 1
 datacave.is, 1
 datacenterbrasil.ga, 1
 datacenternews.asia, 1
@@ -31284,6 +31289,7 @@ datenreiter.cf, 1
 datenreiter.gq, 1
 datenreiter.org, 1
 datensalat.info, 1
+datenschutz-consult.de, 1
 datenschutz-gruenwald.de, 1
 datenschutz-individuell.de, 1
 datenschutz-isny.de, 1
@@ -31326,7 +31332,6 @@ datorhjalptaby.se, 1
 datos-quimsaitw.es, 1
 datosfreak.tk, 1
 datovyaudit.cz, 1
-datumou-osusume.com, 1
 datumplus.co.uk, 1
 datustribe.tk, 1
 datutoday.tk, 1
@@ -31340,6 +31345,7 @@ dav.com.au, 1
 davalochki.tk, 1
 davangarte.com, 0
 dave-pearce.com, 1
+daveaglick.com, 0
 daveaustin.xyz, 1
 davebodnar.tk, 1
 davebuis.tk, 1
@@ -31355,7 +31361,6 @@ davepearce.com, 1
 davepullig.co.uk, 1
 daveredfern.com, 1
 daveroverts.nl, 0
-davescomputertips.com, 1
 davesharpe.com, 1
 davesinclair.com.au, 1
 davesplace.tk, 1
@@ -31447,6 +31452,7 @@ davidzimmerman3.com, 1
 davimun.org, 1
 davinamccall.tk, 1
 daviscannabisco.com, 1
+daviscountyiowa.gov, 1
 davisdieselandautorepair.com, 1
 davisgrana.tk, 1
 davmimer-mercerie.ro, 1
@@ -31481,6 +31487,7 @@ daxos.tk, 1
 daxpatterns.com, 1
 daxperience.eu, 1
 daxrunbase.com, 1
+day-peak.com, 1
 daycontactlens.com, 1
 daycubrem.com, 1
 daydream.team, 1
@@ -31523,7 +31530,6 @@ dazzleworks.tk, 1
 db-buddy.com, 1
 db-sanity.com, 1
 db-works.nl, 1
-db.ci, 1
 db.fyi, 1
 dbapress.org, 1
 dbaron.org, 1
@@ -31597,12 +31603,12 @@ dcmt.co, 1
 dcnews.ro, 1
 dcomedieta.it, 1
 dcpower.eu, 1
+dcpudwa.gov, 1
 dcrdev.com, 1
 dctrl.ch, 1
 dcw.io, 1
 dcyph.de, 1
 dd-groupinc.com, 1
-dd.art.pl, 1
 dd.center, 1
 dd00228.com, 1
 dd118d.com, 1
@@ -31831,7 +31837,6 @@ decohome.ee, 1
 decompression.tk, 1
 deconstructind.ro, 1
 decoora.com, 1
-decor-d.com, 1
 decor-live.ru, 1
 decor-prazdnik.ru, 1
 decorarei.com, 1
@@ -31921,7 +31926,6 @@ deepmountains.tk, 1
 deepnet.cc, 1
 deepnote.com, 1
 deeps.cat, 1
-deeps.me, 1
 deepserve.info, 1
 deepsingh.tk, 1
 deepsky.tk, 1
@@ -32043,6 +32047,7 @@ dein-baumdienst.de, 1
 dein-trueffel.de, 1
 deinballon.de, 1
 deindeal.ch, 1
+deine-gitarre.com, 1
 deinelakaien.tk, 1
 deinewebsite.de, 1
 deinfoto.ch, 1
@@ -32091,6 +32096,7 @@ delbecqvo.be, 0
 delcan.ga, 1
 delcan.gq, 1
 delcan.ml, 1
+delcity.gov, 1
 delcopa.gov, 1
 deldadegan.tk, 1
 delduca.casa, 1
@@ -32106,6 +32112,7 @@ delfinus.tk, 1
 delftstudy.nl, 1
 delhicleanairforum.tk, 1
 delhionlinegifts.com, 1
+delhitownshipmi.gov, 1
 deliacreates.com, 1
 deliandiver.org, 1
 deliberatedigital.com, 0
@@ -32302,6 +32309,7 @@ denisewakeman.com, 1
 denisglobal.com, 1
 denisgrandverger.de, 1
 denismusic.ga, 1
+denisontx.gov, 1
 denissalignat.fr, 1
 denissealatinsoul.com, 1
 denistruffaut.fr, 0
@@ -32321,6 +32329,7 @@ denken-durchdenken.de, 1
 denker.tk, 1
 denkerstube.net, 1
 denkmalagentur.ch, 1
+denkmalsetzung.at, 1
 denkorolev.ga, 1
 denkubator.de, 1
 denninger.jp, 1
@@ -32407,6 +32416,8 @@ depedcommons.org, 1
 depedept.com, 0
 depedsurigaodelnorte.com, 1
 depedtambayan.net, 1
+depedtambayan.net.ph, 1
+depedtambayan.org.ph, 1
 depedtayo.com, 1
 depedtayo.ph, 1
 depelos.co, 1
@@ -32516,7 +32527,6 @@ derpy.pp.ua, 1
 derre.fr, 1
 derreichesack.com, 1
 derrybasketball.tk, 1
-derseebestatter.com, 1
 dersimizmatematik.cf, 1
 dersoundhunter.de, 1
 derstulle.de, 1
@@ -32713,6 +32723,7 @@ detrapdoor.com, 1
 detreannamaria.tk, 1
 detrimental.tk, 1
 detroit-english.de, 1
+detroit.gov, 1
 detroitjockcity.com, 1
 detroitlocksmiths.net, 1
 detroitnews.tk, 1
@@ -32848,7 +32859,6 @@ devonvintagechina.co.uk, 1
 devopedia.org, 1
 devopers.com.br, 1
 devops.moe, 1
-devops.pf, 1
 devopsbookmarks.org, 1
 devopsish.com, 0
 devos.ml, 1
@@ -33234,7 +33244,6 @@ dienchaninstitute.com, 1
 diendorfer.space, 1
 diengiolachoa.com, 1
 dienmattroichonthanh.com, 1
-dienmay88.vn, 1
 dienna.nl, 1
 diennhienshop.com, 1
 diennobi.com, 1
@@ -33535,6 +33544,7 @@ dilibel.be, 1
 diligenciasprime.com.br, 1
 diligo.ch, 0
 dillewijnzwapak.nl, 1
+dillonco.gov, 1
 dillonm.io, 1
 dilmarames.com, 1
 dima-v.ru, 1
@@ -33600,7 +33610,6 @@ dinglecottage.co.uk, 1
 dingos.tk, 1
 dingsbums.shop, 1
 dingss.com, 1
-dinheirolucrar.com, 1
 dinimizislam.tk, 1
 dinitabir.tk, 1
 dinmtb.dk, 1
@@ -33619,7 +33628,6 @@ diogeneshoy.com, 1
 diogof.pt, 1
 diona.cn, 1
 dionysos-ios.gr, 1
-dionysus.se, 1
 diospersonal.tk, 1
 diouf.tk, 1
 dioxido.com.ar, 1
@@ -34098,7 +34106,6 @@ djboi.tk, 1
 djboomarang.tk, 1
 djboris.com, 1
 djbrixx.tk, 1
-djc.me, 1
 djcaz.tk, 1
 djcezar.tk, 1
 djcheka.tk, 1
@@ -34221,6 +34228,7 @@ dk-kromeriz.cz, 1
 dk.com, 1
 dk.search.yahoo.com, 0
 dk1818.cc, 1
+dkcoks.gov, 1
 dkcomputers.com.au, 1
 dkdigital.tk, 1
 dkds.us, 1
@@ -34454,6 +34462,7 @@ docbox.ch, 1
 docbrown.dk, 1
 docdoc.ru, 1
 docdoc.tel, 1
+docedic.com, 1
 docedic.es, 1
 docemeldoces.com, 1
 docertify.com, 1
@@ -34487,7 +34496,6 @@ docskiff.ai, 1
 docsrev-aws.io, 1
 docswallet.com, 1
 doctabaila.com, 1
-doctafit.com, 1
 docteur-delorme.fr, 1
 docteurcardin.com, 0
 doctor-locks.co.uk, 1
@@ -34548,6 +34556,7 @@ dodard.link, 1
 dodds.cc, 1
 doddy.tk, 1
 dodecaedro.tk, 1
+dodgecountyne.gov, 1
 dodi-alhelo.tk, 1
 dodikod.tk, 1
 dodolle.co.uk, 1
@@ -34641,6 +34650,7 @@ dojki.gq, 1
 dojocasts.com, 1
 dojodigital.co.uk, 1
 dojozendebourges.fr, 1
+dokanline.com, 1
 dokee.cn, 1
 dokelio-idf.fr, 1
 dokipy.no, 1
@@ -34803,7 +34813,7 @@ domino99.ml, 1
 domino99.tk, 1
 dominobot.ir, 1
 dominobreaker.ml, 1
-dominoknihy.cz, 1
+dominoknihy.cz, 0
 dominolessons.ga, 1
 dominomatrix.com, 1
 dominoz.tk, 1
@@ -35103,6 +35113,7 @@ dotjesper.net, 1
 dotjs.party, 1
 dotkniseandroida.cz, 1
 dotkod.pl, 1
+dotlakevillagecouncil-nsn.gov, 1
 dotless.tk, 1
 dotlight.ga, 1
 dotlimino.tk, 1
@@ -35145,6 +35156,7 @@ doucheba.gs, 0
 doudo.kr, 1
 doughseeker.com, 1
 douglas-ma.gov, 1
+douglascountyga.gov, 1
 douglascuddletoy.com, 1
 douglascustodio.com.br, 1
 douglasresende.tk, 1
@@ -35165,6 +35177,7 @@ dovecraft.com.ua, 1
 doveholesband.co.uk, 1
 dovemoe.com, 1
 dovenzorgmalawi.nl, 1
+doverma.gov, 1
 dovermotion.com, 1
 doverye.tk, 1
 dovetailapp.com, 1
@@ -35245,6 +35258,7 @@ dozor.ga, 1
 dozor.gq, 1
 dp-clan.tk, 1
 dp.cx, 1
+dpangerl.de, 0
 dpc.fr, 1
 dpd.com.pl, 1
 dpecuador.com, 1
@@ -35293,6 +35307,7 @@ dr-marlen-nystroem.de, 1
 dr-nosrat.tk, 1
 dr-nystroem.de, 1
 dr-schlamminger.de, 1
+dr-schmutzer.de, 1
 dr-www.de, 1
 dr.mg, 1
 dr2dr.ca, 1
@@ -35307,6 +35322,7 @@ drach.xyz, 1
 dracheisolation.tk, 1
 drachenleder.de, 1
 dracisvet.cz, 1
+dracoon.team, 1
 dracox.com, 0
 dracula.city, 1
 draemar.com, 1
@@ -35405,6 +35421,7 @@ drankenweb.tk, 1
 dranous.com, 1
 drapeauxdespays.fr, 1
 draper.wtf, 1
+draperutah.gov, 1
 dras.hu, 1
 drastik.cz, 1
 drathaisdentista.com.br, 1
@@ -35507,6 +35524,7 @@ dreamy-flat-lyon.fr, 1
 dreamytheatre.com, 1
 dreamz-staging.zone, 1
 dreamz.com, 1
+dreatho.com, 1
 dreax.win, 1
 dredwerkz.tk, 1
 dreemurr.com, 1
@@ -35636,11 +35654,10 @@ drixn.info, 1
 drixn.net, 1
 drizz.com.br, 0
 drjacquesmalan.com, 1
-drjart.com, 1
 drjenafernandez.com, 0
 drjoe.ca, 1
 drjosebarrera.com, 1
-drjulianneil.com, 1
+drjulianneil.com, 0
 drjungspine.com, 1
 drkansal.com, 1
 drkashany.ir, 1
@@ -35821,7 +35838,6 @@ dryskin.ml, 1
 dryskin.tk, 1
 dryusdan.space, 1
 drywallresponse.gov, 1
-drywtea.com, 1
 dryzgov.tk, 1
 ds-hostingsolutions.net, 1
 ds-statistik.de, 1
@@ -35836,7 +35852,6 @@ ds915.com, 1
 dsa.cy, 1
 dsad209.ml, 1
 dsaengineering.com, 1
-dsancomics.com, 1
 dsar.info, 1
 dsayce.com, 1
 dsbc.tk, 1
@@ -35885,6 +35900,7 @@ dstvinstallkemptonpark.co.za, 1
 dstvsouthafrica.com, 1
 dsuinnovation.com, 1
 dsv-salesmanager.de, 1
+dsyunmall.com, 1
 dt27.org, 0
 dtbouncycastles.co.uk, 1
 dtbw.eu, 1
@@ -36103,6 +36119,7 @@ duoqichina.cn, 1
 duoqichina.com, 1
 duoquadragintien.fr, 1
 duoyin.com, 1
+dupagecounty.gov, 1
 dupforex.com, 1
 dupfx.com, 1
 dupisces.com.tw, 1
@@ -36131,6 +36148,7 @@ dureuil.info, 1
 durexwinkel.nl, 1
 durfteparticiperen.nl, 1
 durganews.com, 1
+durhammaine.gov, 1
 durhammoneyman.com, 1
 duria.de, 1
 duriaux-dentiste.ch, 0
@@ -36183,6 +36201,7 @@ dutchrocksite.tk, 1
 dutchsailors.com, 1
 dutchskinning.nl, 1
 dutchwanderers.nl, 1
+dutchwaredesign.nl, 1
 duthywines.com, 1
 dutkoteam.com, 1
 dutrac.co.id, 1
@@ -36331,7 +36350,6 @@ dynamicathletes.ga, 1
 dynamicbusinessconsultants.ga, 1
 dynamicconsultantsgroup.com, 1
 dynamicdesignuk.com, 1
-dynamicnet.net, 1
 dynamicpl.us, 1
 dynamicplus.it, 1
 dynamicsdays.info, 1
@@ -36355,7 +36373,6 @@ dyneco.io, 1
 dynet.ru, 1
 dynhost.co.uk, 1
 dynn.be, 0
-dynocc.xyz, 1
 dynorphin.com, 1
 dynorphins.com, 1
 dynsoundmax.tk, 1
@@ -36572,6 +36589,8 @@ e4.chat, 1
 e42.org, 1
 e4work.com.br, 1
 e5197.co, 1
+e52888.net, 1
+e59888.net, 1
 e5tv.hu, 1
 e5xbps.com, 1
 e621.download, 1
@@ -36905,8 +36924,10 @@ eacero.com, 1
 each.tk, 1
 ead-italia.it, 1
 eadea.net, 1
+eaganmn.gov, 1
 eagar.com.au, 1
 eagle-yard.de, 1
+eaglecounty.gov, 1
 eaglecountyco.gov, 1
 eagleindustriesltd.com, 1
 eaglemessaging.com, 1
@@ -36990,6 +37011,7 @@ eastsidecottages.co.uk, 1
 eastsideroofingcontractor.com, 1
 eaststudios.net, 1
 eastvalleyautorebuild.com, 1
+eastwashingtonpa.gov, 1
 eastwesttmc.com.au, 1
 eastwindsorhistory.tk, 1
 eastyorkshirebuses.co.uk, 1
@@ -37123,6 +37145,8 @@ ebatechenergiedisplay.nl, 1
 ebatechenergiemanagement.nl, 1
 ebayinc.com, 1
 ebcfx.com, 1
+ebci-nsn.gov, 1
+ebcired-nsn.gov, 1
 eben18.net, 1
 ebenda.org, 1
 ebenezersbarnandgrill.com, 1
@@ -37145,6 +37169,7 @@ ebisee.com, 1
 ebisi.be, 1
 ebizarts.com, 1
 ebjork.se, 1
+ebki-nsn.gov, 1
 eblan.gq, 1
 eblog.cf, 1
 eblog.ink, 1
@@ -37249,6 +37274,7 @@ eciso.io, 1
 eckel.co, 1
 eckotech.fr, 1
 eckstein.tech, 1
+eclectic-al.gov, 1
 eclecticbeaver.com, 1
 eclectiv.com, 1
 eclipse-cross.info, 1
@@ -37371,7 +37397,6 @@ ecosystem.atlassian.net, 1
 ecosystemmanager-uat1.azurewebsites.net, 1
 ecotecelevator.com, 1
 ecoteplo.net, 1
-ecotransfer.bio, 1
 ecotur.org, 1
 ecoturismo.tk, 1
 ecoupakovka.ga, 1
@@ -37539,7 +37564,6 @@ eduanimal.tk, 1
 eduard-dopler.de, 1
 eduardbaas.com, 1
 eduardnikolenko.com, 1
-eduardnikolenko.ru, 1
 eduardochang.tk, 1
 eduardofranco-luthier.tk, 1
 eduardomaio.net, 1
@@ -37669,6 +37693,7 @@ ee9728.co, 1
 ee973.com, 1
 eeb98.com, 1
 eebt.hu, 1
+eecs388.org, 0
 eeeeeeeeee.de, 1
 eeetrust.org, 1
 eegaming.tk, 1
@@ -37900,7 +37925,6 @@ eighty-aid.com, 1
 eightyfour.ca, 1
 eightyfour.pictures, 1
 eightysoft.de, 1
-eigpropertyauctions.co.uk, 1
 eihaikyo.com, 1
 eiji.fr, 1
 eikenskaden.tk, 1
@@ -37921,7 +37945,6 @@ einfachbahn.de, 1
 einfachkiss.at, 1
 einheizpreis.de, 1
 einhorn.space, 1
-einkaufi.de, 1
 einmonolog.de, 1
 einomanner.com, 1
 einrichtwerk.de, 1
@@ -37936,6 +37959,7 @@ eintageinzug.de, 1
 einvestment.com, 1
 eipione.com, 1
 eirastudios.co.uk, 1
+eirb.fr, 1
 eirik.eu, 1
 eisaev.ru, 1
 eisblau.org, 1
@@ -37958,6 +37982,7 @@ ejdv-anmeldung.de, 1
 ejelectrical-qld.com.au, 1
 ejerciciosmemoria.com, 1
 ejit.eu, 1
+ejkhosting.nl, 1
 ejkmedia.nl, 1
 ejkmuseum.nl, 1
 ejknet.nl, 1
@@ -38013,7 +38038,6 @@ eksisozluk.com, 0
 eksk.pl, 1
 ekspert.tk, 1
 eksploraz.com, 1
-ekspoint-mods.ru, 1
 eku.com.tr, 1
 ekuma.tk, 1
 ekvastra.in, 1
@@ -38065,8 +38089,10 @@ elboogieboutique.com, 1
 elbrus.ooo, 0
 elbrus360.ru, 1
 elbrutoconeloso.tk, 1
+elburnfire.gov, 1
 elbvision.de, 1
 elcactus.tk, 1
+elcajon.gov, 1
 elcanonjusto.tk, 1
 elcarajo.tk, 1
 elchamandelaprosperidad.org, 1
@@ -38101,6 +38127,7 @@ electionpresidentiellegabon2009.ga, 1
 electionrunners.com, 1
 electionsbycounty.com, 1
 electionsdatabase.com, 1
+electionsshelbytn.gov, 1
 electr0sheep.com, 1
 electragirl.com, 1
 electras.cf, 1
@@ -38240,6 +38267,7 @@ elekner.tk, 1
 elektiriktasarruf.tk, 1
 elektriker-notdienst-zentrale.de, 1
 elektrilevi.ee, 1
+elektrische-zahnbuerste24.de, 1
 elektro-adam.de, 1
 elektro-diehm.de, 1
 elektro-doerr.com, 1
@@ -38481,7 +38509,6 @@ elizabethgreenfield.com, 1
 elizabethmacdonaldbooks.com, 1
 elizabethrominski.com, 1
 elizabethtaderera.me, 1
-elizeugomes.com.br, 1
 eljef.me, 1
 elka-piter.ga, 1
 elkampeuzo-musique.tk, 1
@@ -38538,6 +38565,7 @@ elmolist.tk, 1
 elmresan.ir, 1
 elmundoconpenelope.es, 1
 elmundodeloso.tk, 1
+elmwoodmi.gov, 1
 elnababy.ro, 1
 elnan.do, 1
 elnegocioperfecto.tk, 1
@@ -38617,7 +38645,6 @@ eltar.pl, 1
 eltconsultants.com.mx, 1
 eltd.com.vn, 1
 eltern-verein.ch, 1
-elternbeiratswahl.online, 1
 elternforum-birmensdorf.ch, 1
 elternverein-utzenstorf.ch, 1
 eltip.click, 1
@@ -38748,7 +38775,6 @@ emergency-broadcast-system.tk, 1
 emergency-federal-register.gov, 1
 emergencyautolocksmithmanchester.com, 0
 emergencycommand.us, 1
-emergencyshutoff.com, 1
 emergentvisiontec.com, 1
 emergenzaduepuntozero.it, 1
 emero.de, 0
@@ -38954,6 +38980,7 @@ emystars.tk, 1
 emzi0767.com, 1
 emzy.de, 1
 en-booster.jp, 1
+en-crypt.me, 1
 en-este.link, 1
 en-maktoob.search.yahoo.com, 0
 en-wp.com, 1
@@ -39405,7 +39432,7 @@ eons.io, 0
 eonwavesstudio.com, 1
 eooe.me, 1
 eoonglobalresources.jp, 1
-eos-utvalget.no, 1
+eos-utvalget.no, 0
 eosagonline.ru, 1
 eoscryptocurrency.com, 1
 eosinofilos.com, 1
@@ -39535,6 +39562,7 @@ eprosto.cf, 1
 eprzybornik.pl, 1
 epsamsg.com, 1
 epsi.io, 1
+epsilon.dk, 1
 epsilontel.com, 1
 epsmil.it, 1
 epspolymer.com, 1
@@ -39556,7 +39584,6 @@ equi.ac, 1
 equiac.com, 1
 equidam.com, 1
 equifaxobjection.com, 1
-equilibriumx.com, 1
 equinecoaching.ca, 1
 equinenow.com, 1
 equinetherapy.ca, 1
@@ -39589,6 +39616,7 @@ er-music.com, 1
 er.pl, 1
 er.tl, 1
 era-tec.de, 1
+era.fi, 1
 erafat.com, 1
 erandymoreira.cf, 1
 erandymoreira.ga, 1
@@ -39670,6 +39698,7 @@ ericvaughn-flam.com, 1
 eridan.me, 1
 eridanus.uk, 1
 eridas.ml, 1
+eriecountyohioboe.gov, 1
 erigrid.eu, 1
 eriix.org, 1
 erik-stomp.de, 1
@@ -39681,7 +39710,6 @@ erikhubers.nl, 1
 erikkruithof.nl, 1
 eriksen.im, 1
 erikserver2.tk, 1
-erikseth.de, 1
 erikswan.com, 1
 erinaceinae.com, 1
 erincarmody.cf, 1
@@ -39719,7 +39747,6 @@ erolib.ga, 1
 eromasajes.com, 1
 eromon.net, 1
 eron.info, 1
-eropics.org, 1
 erosbeautyandwellness.com, 1
 eroscomixitalia.tk, 1
 erosofia.tk, 1
@@ -39811,7 +39838,6 @@ esaborit.ddns.net, 0
 esagente.com, 1
 esajokinen.net, 1
 esale.co, 1
-esalesclub.com, 1
 esamievalori.com, 1
 esamsur.tk, 1
 esarp.com, 1
@@ -39822,8 +39848,14 @@ esauth.xyz, 1
 esautotech.com.au, 1
 esb1314.net, 1
 esb1668.com, 1
+esb168168.info, 1
+esb1688.info, 1
 esb16888.com, 1
+esb2013.com, 1
+esb2013.net, 1
 esb369.com, 0
+esb518.com, 1
+esb553.com, 1
 esb556.com, 1
 esb5889.com, 1
 esb5889.net, 1
@@ -39835,16 +39867,28 @@ esb777.com, 1
 esb777.me, 1
 esb777.net, 1
 esb777.us, 1
+esb888.net, 1
 esb8886.com, 1
+esb9588.com, 1
+esb9588.org, 1
 esb999.com, 1
 esb999.info, 1
 esb999.us, 1
 esba11.cc, 1
+esba11.com, 1
 esba11.in, 1
 esba11.net, 1
+esball.bz, 1
 esball.in, 1
+esball.online, 1
+esball.org, 1
+esball.ws, 1
+esball518.info, 1
+esball518.net, 1
+esball518.org, 1
 esball888.com, 1
 esball888.net, 1
+esbgood.com, 1
 esc-romania.tk, 1
 esc-turkey.tk, 1
 esc.gov, 1
@@ -39872,8 +39916,10 @@ escobarservice7000.com, 1
 escoben.tk, 1
 escogitasrls.com, 1
 escoladepilota.tk, 1
+escolamais.com.br, 1
 escolatop.com.br, 1
 escolibri.com, 1
+escondidoca.gov, 1
 escontact.ch, 0
 escordilla.tk, 1
 escort-fashion.com, 1
@@ -39913,7 +39959,6 @@ escuelitasansebastian.cl, 1
 escuelotika-online.tk, 1
 escyr.top, 1
 esd.cc, 1
-esdacademy.eu, 1
 esdarat.ml, 1
 esdenera.com, 1
 esdiscuss.org, 1
@@ -39932,7 +39977,6 @@ esgr.in, 1
 esh.ink, 1
 esher.ac.uk, 1
 eshigami.com, 1
-eshobe.com, 1
 eshoeft.com, 1
 eshop-prices.com, 1
 eshop-ptz.ru, 1
@@ -40134,7 +40178,6 @@ estoniananonymous.tk, 1
 estoniantrade.ee, 1
 estonoentraenelexamen.com, 1
 estopero.tk, 1
-estoppels.com, 1
 estradiolbestellen.gq, 1
 estreetshuffle.com, 1
 estrella.tk, 1
@@ -40190,7 +40233,6 @@ etanol.tk, 1
 etaoinwu.com, 1
 etaoinwu.win, 1
 etath.com, 1
-etax.com.au, 1
 etaxigraz.com, 1
 etbtoursegypt.com, 1
 etccooperative.org, 0
@@ -40377,7 +40419,6 @@ eulessplumbers.com, 1
 euman.ml, 1
 eumananc.ro, 1
 eumk6.ml, 1
-eumr.org, 1
 eung.ga, 1
 eupay.de, 1
 euph.eu, 1
@@ -40457,7 +40498,6 @@ europeancupinline.eu, 1
 europeanpreppers.com, 1
 europeanstudies-chemnitz.de, 1
 europeantimberconnectors.ca, 1
-europeanwineresource.com, 1
 europeluxuryweddings.com, 1
 europeonline.tk, 1
 europeos.es, 1
@@ -40516,7 +40556,6 @@ evadi.ca, 1
 evafernandez.tk, 1
 evafojtova.cz, 1
 evai.me, 1
-evailoil.ee, 1
 evaisanta-mariaalmudever.tk, 1
 evaisanta.tk, 1
 evakuator-kharkov.kh.ua, 1
@@ -40526,6 +40565,7 @@ evalesc.com, 1
 evalinux.com, 1
 evalopezzz.org, 1
 evaluate.jp, 1
+evaluation.gov, 1
 evamachkova.cz, 0
 evamathil.de, 1
 evamira.com, 1
@@ -40577,6 +40617,7 @@ eveningtaxservices.com, 1
 evenstar-gaming.com, 1
 evenstargames.com, 1
 event-blick.de, 1
+event-fullyyours.com, 1
 event-reisen.tk, 1
 event4fun.no, 1
 eventact.com, 0
@@ -41079,7 +41120,6 @@ expresshosting.org, 1
 expressmarket.ru, 1
 expressmedcarenj.com, 1
 expressstore.ga, 1
-expresstinte.de, 1
 expressvpn.com, 1
 expresvpn-private-analytics.net, 1
 exprimo.tk, 1
@@ -41226,6 +41266,7 @@ ezakazivanje.rs, 1
 ezcourseonline.com, 1
 ezdog.press, 1
 ezelukwu-chambers.org, 1
+ezequiel-garzon.net, 1
 ezesec.com, 1
 ezftrs.com, 1
 ezgamble.com, 1
@@ -41505,7 +41546,6 @@ facialparalysisnetwork.ga, 1
 facialplasticsurgeryofaustin.com, 1
 facil.services, 0
 facilecommebonjour.com, 1
-faciledireto.com.br, 1
 facilit-info.fr, 1
 facilities.fr, 1
 facilitiessurvey.org, 1
@@ -41615,7 +41655,9 @@ fairedeseconomies.info, 1
 fairelements.net, 1
 fairewindenergie-sh.de, 1
 fairfi.com, 1
+fairfieldcountyohioworkforcecenter.gov, 1
 fairfieldschool.tk, 1
+fairfieldtexas.gov, 1
 fairfly.com, 1
 fairgaming.ml, 1
 fairgaming.tk, 1
@@ -41628,8 +41670,6 @@ fairmonttamarak.ga, 1
 fairmonttamarak.ml, 1
 fairouzacademy.org, 1
 fairplay.im, 1
-fairr.de, 1
-fairr.online, 1
 fairssl.dk, 1
 fairssl.se, 1
 fairtrade010.nl, 1
@@ -41652,7 +41692,6 @@ faithleaks.org, 0
 faithwatch.org, 1
 faixaazul.com, 1
 faizan.net, 1
-faizan.xyz, 1
 faizanullah.com, 1
 fajarafriansh.cf, 1
 fajita.party, 1
@@ -41699,8 +41738,10 @@ falcom.co.jp, 1
 falcon-forex.com, 1
 falcona.io, 1
 falconelectric.co.uk, 1
+falconerny.gov, 1
 falconfrag.com, 1
 falconstap.tk, 1
+falconvintners.com, 0
 falcoz.co, 1
 faldoria.de, 1
 fale.io, 1
@@ -41724,7 +41765,9 @@ fallofthecitadel.com, 1
 fallonarrocho.tk, 1
 fallout-craft.ru, 1
 fallriverbiblechapel.tk, 1
+fallspa.gov, 1
 fallvegermdfharder.gq, 1
+falmouthretirementma.gov, 1
 false.in.net, 1
 falsesecurity.org, 1
 falsterhus.de, 1
@@ -41747,7 +41790,7 @@ famigliafiorini.it, 1
 familiaconfort.com.ar, 1
 familialchercher.tk, 1
 familiaperez.net, 0
-familie-keil.de, 1
+familie-keil.de, 0
 familie-kruithof.nl, 1
 familie-kupschke.de, 1
 familie-leu.ch, 1
@@ -41765,7 +41808,7 @@ familieholme.de, 1
 familiekiekjes.nl, 1
 familienoase-koenigstein.de, 1
 familienportal.de, 1
-familiereimann.com, 1
+familiereimann.com, 0
 familievisscher.tk, 1
 familjenm.se, 1
 familledessaint.fr, 1
@@ -42123,6 +42166,7 @@ fatalityimmortals.ga, 1
 fatcat.tk, 1
 fatecdevday.com.br, 1
 fateitalia.it, 1
+fatetx.gov, 1
 fatfrog.nl, 1
 fatfueled.com, 1
 fathalla.com, 1
@@ -42150,6 +42194,7 @@ fauceton.cf, 1
 fauceton.tk, 1
 faucetslist.tk, 1
 faulkner2020.com, 1
+faulknercountyar.gov, 1
 faultlines.org, 1
 faultyserver.com, 1
 faunahotel.cl, 1
@@ -42184,6 +42229,7 @@ faxvorlagen-druckvorlagen.de, 1
 fayamovies.tk, 1
 faydali.org, 1
 fayettecountyoh.gov, 1
+fayettemopd.gov, 1
 fayettevillewv.gov, 1
 fayntic.com, 1
 faysalabdi.fi, 1
@@ -42204,12 +42250,14 @@ fbausch.de, 1
 fbcdn.net, 1
 fbcfairburn.com, 1
 fbcopy.com, 1
+fbctx.gov, 1
 fbe.to, 1
 fbf.gov, 1
 fbfwd.email, 1
 fbhackpass.com, 1
 fbi.gov, 1
 fbigame.com, 1
+fbihr.gov, 1
 fbiic.gov, 1
 fbijobs.gov, 1
 fbo.gov, 1
@@ -42273,7 +42321,6 @@ fdp-heinsberg.de, 1
 fdpbrig.ch, 1
 fdresearch.ca, 1
 fdsl.eu, 1
-fdworlds.com, 1
 fe-data.nl, 1
 feac.us, 1
 feaden.me, 1
@@ -42464,7 +42511,6 @@ felixman.com, 1
 felixmendez.com, 1
 felixqu.com, 1
 felixsanchez.tk, 1
-felixsanz.com, 1
 felixseele.de, 1
 felixsworld.tk, 1
 felixturgeon.ca, 1
@@ -42821,7 +42867,6 @@ fierman.eu, 0
 fierman.net, 0
 fierman.us, 0
 fierscleaning.nl, 1
-fiery.me, 1
 fierykitchen.pl, 1
 fiestasalquezar.tk, 1
 fietsambassade.be, 1
@@ -42958,9 +43003,8 @@ filmizleindir.tk, 1
 filmnetz.tk, 1
 filmoffice.pl, 1
 filmosliw.cf, 1
-filmphotograph.com, 1
+filmphotograph.com, 0
 filmpronet.in, 1
-filmreviewonline.com, 1
 filmsearch.tk, 1
 filmserver.de, 1
 filmsidan.tk, 1
@@ -43076,6 +43120,7 @@ findingtheuniverse.com, 1
 findingturkeyers.ga, 1
 finditalldirectory.com, 1
 finditez.com, 1
+findlayohio.gov, 1
 findlimitsers.ga, 1
 findlocalproduce.co.uk, 1
 findmail.ga, 1
@@ -43201,7 +43246,6 @@ firebirdrangecookers.com, 1
 firebounty.com, 1
 fireboxfood.com, 1
 firebrandchurch.com, 1
-firebugmusic.com, 1
 firecask.com, 1
 firechip.cc, 1
 firechip.srl, 1
@@ -43332,7 +43376,6 @@ fischerp.net, 1
 fischers.it, 1
 fischers.srv.br, 1
 fiscoeconti.it, 1
-fise.cz, 1
 fish-9ri.jp, 1
 fish-hook.ru, 1
 fish-n-chips.uk, 1
@@ -43510,6 +43553,7 @@ flagi-panstw.pl, 1
 flagipanstw.info.pl, 1
 flagipanstw.pl, 1
 flagistrany.ru, 1
+flaglercounty.gov, 1
 flagma.by, 1
 flagma.pl, 1
 flagma.ru, 1
@@ -43611,6 +43655,7 @@ flayla.tk, 1
 flblog.top, 0
 flcatering.com, 1
 flconcretelifting.com, 1
+fldjj.gov, 1
 fldsmdfr.nl, 1
 flealab.it, 1
 fleche-ardennaise.be, 1
@@ -43620,6 +43665,7 @@ fleep.io, 1
 fleesty.dynv6.net, 1
 fleet-group.com, 1
 fleet-search.com, 1
+fleet.gov, 1
 fleetcomplete.com, 1
 fleetcor.at, 1
 fleetcor.ch, 1
@@ -43755,8 +43801,10 @@ flockbox.club, 1
 flocktofedora.org, 1
 floersheimer-openair.de, 1
 floffi.media, 1
+flofr.gov, 1
 flog.nz, 1
 floify.com, 1
+floir.gov, 1
 floj.tech, 1
 flokinet.is, 1
 flokkr.com, 1
@@ -43850,7 +43898,6 @@ florisvdk.net, 1
 floriswesterman.nl, 1
 florix.tk, 1
 florlola.com, 1
-floryceblanchery.fr, 1
 flosch.at, 0
 floseed.fr, 1
 flossexanten.de, 1
@@ -43900,6 +43947,7 @@ flowtex.tk, 1
 flox.io, 1
 flp-pushkar.info, 1
 flra.gov, 1
+flsa6.gov, 1
 flsbanners.com, 1
 flslawyer.com, 1
 flubio.de, 1
@@ -44134,6 +44182,7 @@ fonolo.com, 1
 fonrouge.tk, 1
 fonseguin.ca, 1
 fontainebleau.tk, 1
+fontanaca.gov, 1
 fontanaseiyo.jp, 1
 fontawesome.com, 1
 fonte-trading.com, 1
@@ -44334,7 +44383,6 @@ forat.tk, 1
 foray-jero.me, 1
 foraz.tk, 1
 forbesmarshall.com, 1
-forbidden-mods.de, 1
 forbiddenhistory.info, 1
 forbole.com, 1
 forbusiness.ca, 1
@@ -44400,7 +44448,6 @@ forevermuslim.in, 1
 foreverreem.com, 1
 foreverssl.com, 1
 foreversummertime.com, 1
-forevertoday.nl, 1
 foreverydream.com, 1
 forewordreviews.com, 1
 forex-arabia.tk, 1
@@ -44421,7 +44468,6 @@ forexnew.org, 1
 forexox.com, 1
 forexpattern.tk, 1
 forexplay.com, 1
-forexsignals7.com, 1
 forextickler.com, 1
 forextraders.com, 1
 forexwine.com, 1
@@ -44511,6 +44557,7 @@ forpreneur.com, 0
 forrestheller.com, 1
 forro.berlin, 1
 forro.info, 1
+fors.me, 1
 forsaken.tk, 1
 forsakenplanet.tk, 1
 forsakenstoners.tk, 1
@@ -44528,6 +44575,7 @@ forskolin.gq, 1
 forstbetrieb-hennecke.de, 1
 forstprodukte.de, 1
 forsure.tk, 1
+forsythcountync.gov, 1
 forsyththeatre.com, 1
 fortawesome.org, 1
 fortbertholddiabetes.com, 1
@@ -44901,6 +44949,7 @@ frames-hair-design.com, 1
 framesi.cz, 1
 framindmap.org, 1
 framinetest.org, 1
+framinghampd.gov, 1
 frammenti.tk, 1
 fran.cr, 1
 francabellarsi.tk, 1
@@ -44974,6 +45023,7 @@ frankieruiz.tk, 1
 frankieylosmatadores.tk, 1
 frankland.tk, 1
 franklincountyflorida.gov, 1
+franklincountyia.gov, 1
 franklincountyny.gov, 1
 franklinhua.com, 1
 frankopol-sklep.pl, 1
@@ -45031,7 +45081,6 @@ fraudswatch.tk, 1
 frauen-etappenrennen.de, 1
 frauenarzt-zinke.de, 1
 frauenlob.rocks, 1
-fraufries.de, 1
 fraurichter.net, 1
 fraye.net, 1
 frayfitness.com, 1
@@ -45192,7 +45241,6 @@ freeform4u.de, 1
 freeformconstruction.com.au, 1
 freegame-mugen.jp, 1
 freegamesmac.com, 1
-freegaypornhd.online, 1
 freegutters.com, 1
 freehdporn.tv, 1
 freehotline.ru, 1
@@ -45330,7 +45378,7 @@ freifahrt.de, 1
 freifall.tk, 1
 freifunk-burgaltendorf.de, 1
 freifunk-duesseldorf.de, 1
-freifunk-essen.de, 1
+freifunk-essen.de, 0
 freifunk-in-solingen.de, 1
 freifunk-lindlar.net, 1
 freifunk-remscheid.de, 1
@@ -45346,11 +45394,14 @@ freizeitplaza.de, 1
 frejasdal.dk, 1
 frekat.tk, 1
 fremontcountyia.gov, 1
+fremontfire.gov, 1
+fremontmi.gov, 1
 frences.tk, 1
 frenchbluecottage.com, 1
 frenchcreekcog.org, 1
 frenchmac.com, 1
 frenchmusic.fr, 1
+frenchtownmi.gov, 1
 frenchvandal.com, 0
 frendamos-roleplay.ml, 1
 frenetic.lv, 1
@@ -45411,7 +45462,6 @@ fricassea.com, 1
 frickelboxx.de, 1
 frickelmeister.de, 1
 frickenate.com, 1
-frickybeats.com, 1
 fridarestaurantemexicano.com, 1
 fridaybridge.tk, 1
 fridayfoucoud.ma, 1
@@ -45625,7 +45675,6 @@ fs-maistadt.de, 1
 fs-rozmarija.tk, 1
 fs-w.org, 1
 fs-world.org, 1
-fs257.com, 1
 fsalmeron.tk, 1
 fsapubs.gov, 0
 fsavc.org.uk, 1
@@ -45654,6 +45703,7 @@ fsps.ch, 1
 fsrs.gov, 1
 fsscms.com, 1
 fssp-bordeaux.fr, 1
+fsst-nsn.gov, 1
 fsstyle.com, 0
 fstatic.io, 1
 fstm.tk, 1
@@ -45790,6 +45840,8 @@ fulltextarchive.com, 1
 fulltxt.ml, 1
 fully-hair.tk, 1
 fullzest.com, 1
+fultoncountyar.gov, 1
+fultondaleal.gov, 1
 fumblers.ca, 1
 fumerolles.ch, 0
 fumify.tk, 1
@@ -45956,7 +46008,7 @@ funprode.org, 1
 funprogramming.tk, 1
 funreaktor.com, 1
 funsite.tk, 1
-funsochi.ru, 1
+funsochi.ru, 0
 funsoup.tk, 1
 funspins.com, 1
 funtastic-basketball.de, 1
@@ -46205,7 +46257,6 @@ g22-livechat.com, 1
 g2jp.uk, 1
 g2links.com, 0
 g2pla.net, 1
-g2price.com, 1
 g2ship.com, 1
 g2soft.net, 0
 g36533.com, 1
@@ -46364,7 +46415,6 @@ gailfellowsphotography.com, 1
 gailnoglephoto.com, 1
 gaines-sodiamex.fr, 0
 gainesvillega.gov, 1
-gainins.com, 1
 gaio-automobiles.fr, 1
 gaireg.de, 1
 gais.tk, 1
@@ -46381,7 +46431,6 @@ gajowniczek.eu, 1
 gajqc.gov, 1
 gakdigital.com, 1
 gakkainavi-epsilon.net, 1
-gakki.photos, 1
 gaku-architect.com, 1
 gala.kiev.ua, 0
 galact.tk, 1
@@ -46397,6 +46446,7 @@ galasin.cf, 1
 galasin.ga, 1
 galatabazaar.com, 1
 galavanmoskou.tk, 1
+galaw.gov, 1
 galax.us, 1
 galaxieblog.com.my, 0
 galaxit.ch, 1
@@ -46438,8 +46488,8 @@ galgopersa.com.br, 1
 gali.review, 1
 galiciasensual.tk, 1
 galilahiskye.com, 1
-galileanhome.org, 1
 galilei.tk, 1
+galileo.io, 1
 galileohealth.com, 1
 galina.ga, 1
 galinas-blog.de, 1
@@ -46502,14 +46552,12 @@ game-files.net, 0
 game-garage.com, 1
 game-gentle.com, 1
 game-net.ml, 1
-game-topic.ru, 1
 game4less.com, 1
 game7.de, 1
 game818play.com, 1
 game88city.com, 1
 game88city.net, 1
 game88play.com, 1
-game88yule.com, 1
 gameanalytics.com, 1
 gameapexlegends.com, 1
 gamebase.tk, 1
@@ -46518,6 +46566,7 @@ gameblabla.nl, 1
 gameboys.xyz, 1
 gamebrott.com, 1
 gamecarddelivery.com, 1
+gamecdn.com, 0
 gamechefpummarola.eu, 1
 gamechurch.de, 1
 gameclimax.cf, 1
@@ -46591,7 +46640,6 @@ gamereactor.se, 1
 gamereader.de, 1
 gamerepublic.hu, 1
 gameres.com, 1
-gamerezo.com, 1
 gamering.cf, 1
 gamerkings.tk, 1
 gamers-community.tk, 1
@@ -46781,6 +46829,7 @@ gargazon.net, 1
 gargola.tk, 1
 gariganshi.ml, 1
 garito3pa.tk, 1
+garlandcountyar.gov, 1
 garmonia.ml, 1
 garmonia.tk, 1
 garnuchbau.de, 1
@@ -46898,6 +46947,7 @@ gavr.net, 1
 gavr.org, 1
 gavr.space, 1
 gavr.xyz, 1
+gaw.sh, 1
 gay-chat.it, 1
 gay-jays.com, 1
 gay-personal-ads.com, 1
@@ -47056,7 +47106,7 @@ geekgear.tk, 1
 geekgirltech.com, 1
 geekhelpline.com.au, 1
 geeklair.net, 1
-geeklan.co.uk, 1
+geeklan.co.uk, 0
 geekles.net, 1
 geekmagazine.com.br, 1
 geeknik.com, 1
@@ -47096,6 +47146,7 @@ geenspam.net, 1
 geentsefeesten.be, 1
 geeq.ch, 1
 geerdsen.net, 1
+geertdegraaf.nl, 1
 geertswei.nl, 1
 geestelijkgezondgent.be, 1
 gefeuert.de, 1
@@ -47493,7 +47544,6 @@ georgiangames.gq, 1
 georgianhistory.tk, 1
 georgiaparks.org, 1
 georgiastuartyoga.co.uk, 0
-georgiatransport.com, 1
 georgiaurologist.com, 1
 georgie.cc, 1
 georgiebailey.com, 1
@@ -47528,7 +47578,6 @@ gerainano.com, 1
 geraintwhite.co.uk, 1
 gerald-zojer.com, 1
 geraldoazevedo.com.br, 1
-geraldsonrealty.com, 1
 geraldzavod.ru, 1
 gerard-klooster.net, 1
 gerardinden.nl, 1
@@ -47587,6 +47636,7 @@ geseduc.cl, 1
 gesentorno.tk, 1
 gesetz.tk, 1
 gesevi.com, 1
+gesica.cloud, 1
 gesmav-trier.de, 1
 gesnex.com, 1
 gessettirotti.it, 1
@@ -47763,7 +47813,6 @@ getupandbounce.co.uk, 1
 getupdat.es, 1
 getvalidate.com, 1
 getvdownloader.com, 1
-getveer.io, 1
 getwemap.com, 1
 getwisdom.io, 1
 getwork.tk, 1
@@ -47789,7 +47838,6 @@ gexobiz.tk, 1
 geyduschek.be, 1
 gezakekazeg.tk, 1
 gezinnenhilton.com, 1
-gezondetips.nl, 1
 gezondheidszorg-ict.nl, 1
 gezondheidszorg-it.nl, 1
 gf-franken.de, 1
@@ -48004,7 +48052,7 @@ giga.nl, 1
 gigabitz.pw, 1
 gigagroup.cf, 1
 giganet.tk, 1
-gigantar.com, 1
+gigantar.com, 0
 gigantism.com, 1
 gigaprecos.com.br, 1
 gigashopz.com, 1
@@ -48016,7 +48064,6 @@ gigawa.lt, 1
 gigawattz.com, 1
 giggletotz.co.uk, 1
 gigharborwa.gov, 1
-gigiena-ruk.ru, 1
 gigiscloud.servebeer.com, 1
 giglink.club, 1
 gigloog.tk, 1
@@ -48252,6 +48299,7 @@ gl.search.yahoo.com, 0
 glabiatoren-kst.de, 1
 glacialexperience.is, 1
 glaciernursery.com, 1
+glacierviewfire.gov, 1
 gladala.tk, 1
 gladdy.co.uk, 1
 gladdy.uk, 1
@@ -48269,7 +48317,6 @@ gladwork.tk, 1
 gladysstrickland.com, 1
 glahcks.com, 1
 glamcambabes.com, 1
-glamcosmetic.ch, 1
 glamdaldyreklinikk.no, 1
 glamlivesex.com, 1
 glamluxestudios.com, 1
@@ -48574,7 +48621,6 @@ gmx.de, 1
 gmx.es, 1
 gmx.fr, 1
 gmx.net, 1
-gn00.com, 1
 gnagismen.tk, 1
 gnaptracker.tk, 1
 gnaucke.com, 1
@@ -48582,7 +48628,6 @@ gnawa-diffusion.tk, 1
 gnax.jp, 0
 gncsuplementos.com.br, 1
 gndmillwork.com, 1
-gnetion.com, 1
 gnetwork.eu, 1
 gnezdo.tk, 1
 gnfb.be, 1
@@ -48736,6 +48781,7 @@ gogo.mn, 1
 gogogame.ddns.net, 1
 gogolino.tk, 1
 gogomail.ga, 1
+gogonano.com, 0
 gogracego.com, 0
 gogroopie.com, 1
 gogroopie.ie, 1
@@ -48944,7 +48990,7 @@ goodiesnet.ca, 0
 goodiesoft.hu, 1
 goodkino.ga, 1
 goodkitchendesign.com, 1
-goodlandks.gov, 0
+goodlandks.gov, 1
 goodleads.co.za, 1
 goodlink.ml, 1
 goodlosersest.ga, 1
@@ -49036,7 +49082,6 @@ gordonbeeming.xyz, 1
 gordonhamilton.com, 1
 gordvorets.tk, 1
 gordyf.com, 1
-gorealya.com, 1
 gorepriest.tk, 1
 gorf.club, 1
 gorgebelle.com, 1
@@ -49071,7 +49116,6 @@ goroskop-sovmestimosti-znakov.tk, 1
 goroskop-sovmestimosti.ml, 1
 goroskop.gq, 1
 goroskopnew.tk, 1
-gorpg.club, 1
 gorschenin.com, 1
 gorstom.ml, 1
 gortaniza.tk, 1
@@ -49233,6 +49277,7 @@ gplverse.com, 1
 gplvilla.com, 1
 gpm.ltd, 1
 gpna.org, 1
+gpodev.gov, 1
 gpolanco.com, 1
 gpony.fr, 1
 gppro.com, 1
@@ -49351,6 +49396,7 @@ grammarhouse.me, 0
 grammofono.gr, 0
 grammysgrid.com, 1
 gran-hermano.tk, 1
+granary-demo.appspot.com, 0
 granaturov.mk.ua, 1
 grancellconsulting.com, 1
 grancordobahoy.com.ar, 1
@@ -49623,6 +49669,7 @@ greenhollowbowmen.tk, 1
 greenhous-technology.tk, 1
 greenkey.gent, 1
 greenkitchen.tk, 1
+greenlakecountywi.gov, 1
 greenland-estate.tk, 1
 greenlifetour.tk, 1
 greenliquidsystem.com, 1
@@ -49684,7 +49731,6 @@ gregfoat.co.uk, 1
 greggsfoundation.org.uk, 1
 greghouse.tk, 1
 gregmartyn.com, 1
-gregmarziomedia.com, 1
 gregmc.ru, 1
 gregmilton.com, 1
 gregmilton.org, 1
@@ -49818,6 +49864,7 @@ gripencrossfit.gq, 1
 gripnijmegen.rip, 1
 gripwenab.cf, 1
 grishavirus.cf, 1
+griswoldia.gov, 1
 grit3.com, 1
 gritte.ch, 1
 grittherapeutic.com, 1
@@ -49865,7 +49912,6 @@ groovygoldfish.org, 1
 gropp.org, 1
 gross.business, 1
 grossberger-ge.org, 0
-grossell.ru, 1
 grosser.io, 1
 grossiste-marcassite.com, 1
 grossiste-vanille.fr, 1
@@ -50040,6 +50086,7 @@ gsa-online.de, 1
 gsa.gov, 1
 gsaadvantage.gov, 1
 gsaauctions.gov, 1
+gsafleet.gov, 1
 gsaj114.net, 1
 gsaxcess.gov, 1
 gsbolivia.com, 1
@@ -50101,8 +50148,10 @@ guadagnosicuro.tk, 1
 guadalinfoconlaroja.tk, 1
 guadaluperoses.co, 1
 guajars.cl, 0
+guamcourts.gov, 1
 guanggaonet.com, 1
 guangjiangk.com, 1
+guannan.net.cn, 0
 guanyu.ml, 1
 guanzhong.ca, 1
 guapi.ml, 1
@@ -50218,6 +50267,7 @@ guidetourism.tk, 1
 guidograuer.ch, 1
 guidopedia.ga, 1
 guildgearscore.cf, 1
+guilfordct.gov, 1
 guillaume-briand.fr, 1
 guillaumecote.me, 1
 guillaumematheron.fr, 1
@@ -50431,6 +50481,7 @@ gxm5.com, 1
 gxmyqy.net, 1
 gyaanprasaar.tk, 1
 gyannews.ga, 1
+gyara.moe, 1
 gyas.nl, 1
 gybagardlin.tk, 1
 gyefund.com, 1
@@ -50542,6 +50593,7 @@ haancommunity.cf, 1
 haarbosch.net, 1
 haarigerrattenarsch.com, 1
 haarlemsesaxofoonschool.nl, 1
+haarstudiok99.nl, 1
 haasonline.tk, 1
 haavard.me, 1
 hab.dynu.net, 1
@@ -50654,7 +50706,6 @@ hackerone.net, 1
 hackerone.org, 1
 hackeronte.tk, 1
 hackers-networks.tk, 1
-hackerschat.net, 1
 hackerspace.rocks, 1
 hackerstory.tk, 1
 hackersw0rld.tk, 1
@@ -50830,6 +50881,7 @@ halfhosting.de, 1
 halfwaythere.eu, 1
 haliava.tk, 1
 halic.tk, 1
+halifaxma.gov, 1
 halifaxmoneyman.com, 1
 halilova.ga, 1
 halilova.ml, 1
@@ -50850,7 +50902,6 @@ halligan.tk, 1
 hallighof.de, 1
 halligladen.de, 1
 hallmarkestates.ca, 1
-hallme.com, 1
 hallofoddities.tk, 1
 hallopstyling.com, 1
 halloway.tk, 1
@@ -50869,7 +50920,6 @@ halogenos.org, 1
 halongbaybackpackertour.com, 1
 haloobaloo.com, 1
 haloperidol.cf, 1
-halospawns.com, 1
 halovanic.org, 1
 halpin.tk, 1
 halsokost4life.se, 1
@@ -50930,7 +50980,9 @@ hanazono.tokyo, 1
 hanbin.me, 0
 hanbing.it, 1
 hancockcountyia.gov, 1
+hancockcountymaine.gov, 1
 hancockcountyohioelections.gov, 1
+hancockcountywv.gov, 1
 hancocklawfl.com, 1
 hand-made-business.com, 1
 hand-made24.de, 1
@@ -51262,6 +51314,9 @@ harringtonca.com, 1
 harrisandharris.com.au, 1
 harrisconsulting.ie, 1
 harrisexteriors.com, 1
+harrisonar.gov, 1
+harrisoncountyms.gov, 1
+harrisoncountymschanceryclerk.gov, 1
 harrisonm.com, 1
 harrisonswebsites.com, 1
 harrogatemoneyman.com, 1
@@ -51295,6 +51350,7 @@ hartmancpa.com, 1
 hartpsychologen.nl, 1
 hartsfieldrock.tk, 1
 hartvannike.tk, 1
+hartwellga.gov, 1
 hartzer.com, 1
 haru-restaurant.tk, 1
 haruhi.org.ua, 1
@@ -51313,6 +51369,7 @@ harveyplum.com, 1
 harveysautoservice.net, 1
 harvilldesigns.com, 1
 harwoeck.group, 1
+harz.cloud, 0
 harzin.tk, 1
 has-no-email-set.de, 0
 has.gy, 1
@@ -51493,7 +51550,6 @@ hazardhub.com, 1
 hazaristan.asia, 1
 haze-productions.com, 1
 haze.productions, 1
-hazelglow.com, 1
 hazelhof.nl, 1
 hazelkid.tk, 1
 hazelwilks.co.uk, 1
@@ -51533,6 +51589,7 @@ hbxianghang.com, 0
 hby.cx, 1
 hcbj.io, 1
 hccnet.org, 1
+hcdatn.gov, 1
 hceu-performance.com, 1
 hcfoodpantry.org, 1
 hcg-injections.com, 1
@@ -51614,7 +51671,6 @@ headofhair.pl, 1
 headphonesinear.tk, 1
 headwayapp.co, 1
 headymafia.com, 1
-heal-thybody.nl, 1
 healingourskin.com, 1
 healingthenaturalway.cf, 1
 healingthenaturalway.ga, 1
@@ -51623,6 +51679,7 @@ healmyhearttoday.ga, 1
 healmynation.com, 1
 healtbeautyturkey.tk, 1
 health-and-beauty-news.net, 1
+health-ashlandcounty-oh.gov, 1
 health-balance-plus.com, 1
 health-booster.com, 1
 health-iq.com.au, 1
@@ -51630,6 +51687,7 @@ health-match.com.au, 1
 health-plan-news.com, 1
 health-road.ga, 1
 health.gd, 1
+health.gov, 1
 health.graphics, 1
 health.inc, 1
 health24.ml, 1
@@ -52050,7 +52108,6 @@ heeler.blue, 1
 heeler.red, 1
 heello.es, 1
 heesenyachts.com, 1
-hefengautoparts.com, 1
 heftkaufen.de, 1
 heg.ge, 1
 hegartymaths.com, 1
@@ -52442,6 +52499,8 @@ herminghaus24.de, 1
 hermitant.fr, 1
 hermiu.com, 1
 hermodesign.com, 1
+hermonmaine.gov, 1
+hernandovotes.gov, 1
 hernanygerman.tk, 1
 herndl.org, 1
 herni-kupony.cz, 1
@@ -52608,6 +52667,7 @@ hg881.com, 1
 hgbcms.ca, 1
 hgc.solutions, 1
 hgc369.com, 1
+hgcityca.gov, 1
 hgfa.fi, 1
 hghanbarimd.com, 1
 hghwebs.com, 1
@@ -52745,6 +52805,7 @@ highland-webcams.com, 1
 highlanddancing.tk, 1
 highlandparkcog.org, 1
 highlandpublicschool.co.in, 1
+highlandsclerkfl.gov, 1
 highlandsfl.gov, 1
 highlandsmode.nl, 1
 highlatitudestravel.com, 0
@@ -52773,7 +52834,6 @@ highway54.tk, 1
 highwaytohoell.de, 1
 highwayzen.org, 1
 higilopocht.li, 1
-higleyarts.org, 1
 higueras.tk, 1
 hiig.edu.ee, 1
 hik-cloud.com, 1
@@ -52879,9 +52939,9 @@ hipo.pt, 1
 hipodromcasusu.tk, 1
 hippiekiller.net, 1
 hippies.com.br, 1
+hippomovers.com, 1
 hippopotamuses.org, 1
 hips.com, 1
-hipstercat.fr, 0
 hipsterpixel.co, 1
 hiptwist.tk, 1
 hiq.sh, 1
@@ -53031,7 +53091,6 @@ hiwannz.com, 1
 hiwebsite.tk, 1
 hiwiki.tk, 1
 hiyacar.co.uk, 1
-hizzacked.xxx, 1
 hj-mosaiques.be, 1
 hj111777.com, 0
 hj2375.com, 0
@@ -53132,7 +53191,7 @@ hn.search.yahoo.com, 0
 hn122.cc, 1
 hncurated.com, 1
 hndmd.com, 1
-hnfertilizermachine.com, 1
+hnfertilizermachine.com, 0
 hnmd9.gq, 1
 hnn.net.br, 1
 hno-norderstedt.de, 1
@@ -53266,6 +53325,7 @@ holadinero.es, 1
 holadinero.mx, 1
 holainternet.tk, 1
 holboxwhalesharktours.com, 1
+holbrookaz.gov, 1
 holdengreene.com, 1
 holdiers.tk, 1
 holdingcelebrations.tk, 1
@@ -53329,7 +53389,6 @@ holowaty.me, 1
 holoxplor.space, 1
 holstein.tk, 1
 holstphoto.com, 1
-holtackersleather.be, 1
 holtslander.ca, 1
 holubowski.com, 1
 holundersberg.de, 1
@@ -53355,7 +53414,6 @@ holytransaction.com, 1
 holyubofficial.net, 1
 holywhite.com, 1
 holywr.it, 1
-holz.nu, 1
 holzed.com, 1
 holzschutz-holzbearbeitung.de, 1
 holzspielzeug-shop.ch, 1
@@ -53719,6 +53777,7 @@ hoogstraatseschaakclub.tk, 1
 hoogveen.tk, 1
 hookahfoil.ru, 1
 hookahshop.lt, 1
+hookandloom.com, 1
 hookbin.com, 1
 hooked-on.co.za, 1
 hookshotdesign.com, 1
@@ -53726,7 +53785,6 @@ hooliganka.tk, 1
 hooliganz.tk, 1
 hoon.tk, 1
 hoooc.com, 1
-hooowl.com, 1
 hoop.la, 1
 hooperlabs.xyz, 1
 hoopertechnicalsolutions.com, 1
@@ -53965,7 +54023,6 @@ hotel-rosner.at, 1
 hotel-schiller.de, 0
 hotel-villaelaia.fr, 1
 hotelamgarnmarkt.at, 0
-hotelarevalo.com, 1
 hotelastor.com, 1
 hotelbiz.cf, 1
 hotelbiz.ga, 1
@@ -53998,6 +54055,7 @@ hotelneptundalmatien.com, 1
 hotelpostaorvieto.it, 1
 hotelpresident.co.in, 1
 hotelpromo.codes, 1
+hotelreis.com.br, 1
 hotels-insolites.com, 1
 hotels-resorts-in-crimea.tk, 1
 hotels3d.com, 1
@@ -54050,6 +54108,7 @@ hotsmi.cf, 1
 hotsoft.com.br, 1
 hotsolarsolutions.com, 1
 hotspotshield.com, 1
+hotspringsar.gov, 1
 hotsvenja.com, 1
 hottaro.com, 1
 hottestguyoftech.com, 1
@@ -54103,6 +54162,7 @@ housingfirstatx.org, 1
 housingloan.jp, 1
 housingneedz.com, 1
 houstonauthorizedrepair.com, 1
+houstoncountyal.gov, 1
 houstoncreditlaw.com, 1
 houstonendodontics.com, 1
 houstongaragedoorsrepair.com, 1
@@ -54128,6 +54188,7 @@ how2dev.tools, 0
 how2fsbo.com, 1
 how2recycle.info, 1
 howa-n.net, 0
+howardcountysheriffmo.gov, 1
 howardhannava.com, 1
 howardscholars.org, 1
 howarh.com, 1
@@ -54449,8 +54510,11 @@ huckletree.com, 0
 hudebnibazarmixer.cz, 1
 hudeem-vmeste.ml, 1
 hudhaifahgoga.co.za, 1
+hudhomestore.gov, 1
 hudobniny.net, 1
+hudognik.com, 1
 hudrydum.cz, 1
+hudsonregional.gov, 1
 hudsonwi.gov, 1
 huduser.gov, 1
 huelvatrabaja.com, 1
@@ -54465,7 +54529,6 @@ hufelare.tk, 1
 huffduffer.com, 1
 hugebeasters.ga, 1
 hugebeastest.ga, 1
-hugh-dancy.com, 1
 hughfitzgerald.com, 1
 hughtodd.ink, 1
 hugi.is, 1
@@ -54618,7 +54681,6 @@ huniverse.co, 1
 hunngard.com, 1
 hunqz.com, 1
 hunstoncanoeclub.co.uk, 1
-hunt.gs, 1
 hunter-read.com, 1
 hunter.io, 1
 hunterjohnson.io, 1
@@ -54703,7 +54765,6 @@ hvdbox.de, 0
 hvenetworks.cf, 1
 hveradistributions.com, 1
 hverdagogkink.no, 1
-hvgg.de, 1
 hvh.no, 1
 hvhercules.tk, 1
 hvllucinvtion.tk, 1
@@ -55096,15 +55157,16 @@ ibuytramadol.com, 1
 ibuzz.tk, 1
 ibwc.gov, 1
 ibykos.com, 1
-ic-lighting.com.au, 1
 ic3.gov, 1
 icafecash.com, 1
+icams-portal.gov, 1
 icanhas.report, 1
 icanhasht.ml, 1
 icanhazpass.com, 1
 icanseeyou.tk, 1
 icap.my, 1
 icarlos.net, 1
+icas-nsn.gov, 1
 icasnetwork.com, 0
 icasture.top, 1
 icbemp.gov, 0
@@ -55166,6 +55228,7 @@ icisontdesdragons.fr, 1
 icium.org, 1
 ickerseashop.com, 1
 icl82.systems, 1
+iclart.com, 1
 iclb.be, 1
 iclg.com, 1
 iclinic-mrt.ru, 1
@@ -55191,6 +55254,7 @@ icon-programming.tk, 1
 iconecoiffure.ca, 1
 iconintegration.com.au, 1
 iconoarte.tk, 1
+iconomi.net, 1
 icons4free.tk, 1
 iconworld.ml, 1
 iconx.ml, 1
@@ -55245,6 +55309,7 @@ id5-sync.com, 1
 id7.fr, 0
 idaeus.eu, 1
 idahoansforliberty.net, 1
+idahofalls.gov, 1
 idahohealth.tk, 1
 idanie.cf, 1
 idar-oberstein.de, 0
@@ -55256,7 +55321,6 @@ idbs.com, 1
 idc-business.be, 0
 idc.yn.cn, 1
 idc95.com, 1
-idcrane.com, 1
 idctechnologies.com, 1
 iddconnect.com, 1
 iddconnect.org, 1
@@ -55373,7 +55437,6 @@ idontexist.me, 0
 idonthaveawebsite.tk, 1
 idontplaydarts.com, 1
 idoparadoxon.hu, 1
-idowp.net, 1
 idp.onl, 1
 idraetsmusik.dk, 1
 idratherbequilting.com, 1
@@ -55427,7 +55490,7 @@ ifadian.club, 1
 ifailed.tk, 1
 ifailedlife.tk, 1
 ifaisalmukhtar.tk, 1
-ifan.ch, 1
+ifan.ch, 0
 ifan.ws, 1
 ifangpei.cn, 1
 ifangpei.com.cn, 1
@@ -55491,7 +55554,6 @@ igap.pt, 1
 igarage.nl, 0
 igcb.com, 1
 igdn.de, 1
-igechile.cl, 1
 igeh-immo.at, 1
 igenuinebeauty.co.jp, 1
 igforum.tk, 1
@@ -55578,6 +55640,7 @@ ihacklabs.com, 0
 ihakkitekin.com, 1
 ihatereceipts.com, 1
 ihatethissh.it, 1
+ihc.im, 1
 ihcprofile.com, 1
 ihdev.party, 1
 ihearmedical.com, 1
@@ -55650,7 +55713,6 @@ ijsclubdwarsgracht.nl, 1
 ijsclubtilburg.nl, 1
 ijsclubwanneperveen.nl, 1
 ijunohana.jp, 1
-ik-life.com, 0
 ikachalife.com, 1
 ikall.com, 1
 ikall.net, 1
@@ -55714,6 +55776,7 @@ il2eu.com, 1
 ila.fi, 1
 ilab.health, 1
 ilacrehberi.com, 1
+ilag.gov, 1
 ilamparas.at, 1
 ilamparas.co.uk, 1
 ilamparas.com, 1
@@ -55726,6 +55789,7 @@ ilasoft.net, 1
 ilawgix.com, 1
 ilazycat.com, 1
 ilbiglietto24.eu, 1
+ilcourthelp.gov, 1
 ilctucson.com, 1
 ildepu.tk, 1
 ildisagio.tk, 1
@@ -55872,6 +55936,7 @@ imadalin.ro, 1
 image-cdn.co.uk, 1
 image-drive.de, 1
 image.hosting, 1
+image.tf, 1
 image2base64.online, 1
 image4arab.tk, 1
 imagealbums.tk, 1
@@ -56195,7 +56260,6 @@ in.xero.com, 0
 in1000worten.de, 1
 in10tion.com, 0
 inaboutique.it, 1
-inabox.ro, 1
 inakasoftware.com, 1
 inalvittile.cf, 1
 inalvittile.ga, 1
@@ -56320,7 +56384,9 @@ indianet.tk, 1
 indiangamingreport.com, 1
 indianhairextension.tk, 1
 indianhelpline.in, 1
+indianhill.gov, 1
 indianporn2.xxx, 1
+indianriver.gov, 1
 indiantechhunter.tk, 1
 indianvirginhumanhair.tk, 1
 indianwarriors.tk, 1
@@ -56403,6 +56469,7 @@ indusap.com, 1
 indusfastremit-ca.com, 1
 indusfastremit-us.com, 1
 indusfastremit.com, 1
+indust.me, 1
 industreiler.com, 1
 industreiler.com.br, 1
 industriafranchini.com, 1
@@ -56411,7 +56478,6 @@ industrial-ventilation.eu, 1
 industrialalpinism.tk, 1
 industrialcalibration.co.uk, 1
 industrialgassprings.com, 1
-industriascruzcentro.com, 1
 industriemeister.io, 1
 industryoutlaws.tk, 1
 indybay.org, 1
@@ -56791,7 +56857,6 @@ inherfeet.ml, 1
 inhoff.eu, 1
 inhomedesign.ro, 1
 inhouseents.co.uk, 1
-iniby.com, 1
 inicio.site, 1
 iniiter.com, 1
 inima.org, 1
@@ -56841,7 +56906,6 @@ inkthreadable.co.uk, 1
 inkubatori.tk, 1
 inkurz.de, 1
 inkvisual.tk, 1
-inkwall.co, 1
 inkybuh.com.br, 1
 inlabo.de, 1
 inlimiters.ga, 1
@@ -56986,7 +57050,7 @@ inserzioniticino.ch, 1
 insgesamt.net, 1
 inshapenutrition.com.br, 1
 inshared.nl, 1
-insho.fashion, 1
+insho.fashion, 0
 inshop.hu, 1
 insiberia.tk, 1
 inside19.com, 1
@@ -57090,6 +57154,8 @@ instantluxe.com, 1
 instantluxe.de, 1
 instantmoron.com, 1
 instantpage.tk, 1
+instantphotocamera.com, 1
+instantphotoprinter.com, 1
 instantprint.co.uk, 1
 instantreplay.tk, 1
 instantuprise.com, 1
@@ -57174,7 +57240,6 @@ integralsalud.xyz, 1
 integrammes.fr, 1
 integrata.de, 1
 integratedhealth21.com, 1
-integratedintegrations.xyz, 1
 integratedmedicalonline.com, 1
 integratemyschool.com, 1
 integration-mouvements-oculaires.com, 1
@@ -57202,6 +57267,7 @@ intelhost.com.br, 1
 intelhost.com.co, 1
 intelhost.com.mx, 1
 intelhost.com.pe, 1
+intelhost.net, 1
 intellar.com, 1
 intelldynamics.com, 1
 intellectdynamics.com, 1
@@ -57606,7 +57672,7 @@ iochen.com, 1
 ioconsulting.ee, 1
 iocorp.jp, 1
 iocurrents.com, 0
-iocus.fun, 1
+iocus.fun, 0
 iodine.com, 1
 iodu.re, 1
 ioghawaii.com, 1
@@ -57632,6 +57698,7 @@ iopool.us, 1
 iorgroup.org, 1
 ios11018.com, 1
 iosartstudios.gr, 1
+iosbankermyanmar.com, 1
 iosecurity.co.za, 1
 iosjailbreakiphone.com, 1
 ioslo.net, 1
@@ -57643,7 +57710,6 @@ iossearch.tk, 1
 iossifovlab.com, 1
 iostream.by, 1
 iot-alliances.com, 1
-iotac.xyz, 1
 iotanodes.org, 1
 iotekha.tv, 1
 iotfen.com, 1
@@ -57652,7 +57718,10 @@ iotportal.tk, 1
 iotsms.io, 1
 iowacolonytx.gov, 1
 iowaent.com, 1
+iowaintex.gov, 1
+iowamissingpersons.gov, 1
 iowaschoolofbeauty.com, 1
+iowastem.gov, 1
 iowawx.com, 1
 iowxy.com, 1
 iox.is, 1
@@ -57690,6 +57759,7 @@ ipconsulting.se, 1
 ipcontolsite.ga, 1
 ipcontolsite.tk, 1
 ipcstore.com, 1
+ipcuyuni.net, 1
 ipdental.tk, 1
 ipemcomodoro.com.ar, 1
 iperconnessi.it, 1
@@ -57923,6 +57993,7 @@ ironcage.tk, 1
 ironcarnival.com, 1
 ironcladapp.com, 1
 ironcross.tk, 1
+irondequoit.gov, 1
 ironfistdesign.com, 1
 ironfittings.com.br, 1
 irongym.tk, 1
@@ -58010,7 +58081,6 @@ isastylish.com, 1
 isavings.com, 1
 isbaseballstillon.com, 1
 isbengrumpy.com, 1
-isc2chapter-cny.org, 1
 isc2estoniachapter.ee, 1
 iscert.org, 1
 ischool.co.jp, 1
@@ -58029,7 +58099,6 @@ isex-anal.com, 1
 isexu.ga, 1
 isg-tech.com, 1
 isgp-studies.com, 0
-ishangirdhar.com, 1
 isharryworking.today, 1
 ishet.al, 1
 ishhaara.in, 1
@@ -58103,6 +58172,7 @@ island-line.net, 1
 island-line.nl, 1
 island.studio, 1
 islandchillfiji.com.my, 1
+islandheightsborough.gov, 1
 islandhosting.com, 1
 islandlakeil.gov, 1
 islandmenshealth.com, 1
@@ -58170,7 +58240,6 @@ israelbiblicalstudies.com, 1
 israelbizreg.com, 1
 israelcareersers.ga, 1
 israelcareersest.ga, 1
-israelil-leumi.co.il, 1
 israelimtovim.co.il, 1
 israelitas.tk, 1
 israelitopbox.ga, 1
@@ -58388,7 +58457,7 @@ itexplaineders.ga, 1
 itexplainedest.ga, 1
 itezu.ml, 1
 itfall.tk, 1
-itfh.eu, 1
+itfh.eu, 0
 itgeeks.nl, 1
 itgirls.rs, 1
 itgoesup.com, 1
@@ -58396,7 +58465,6 @@ itgoesupent.com, 1
 itgoesupentertainment.com, 1
 ithakama.com, 1
 ithakama.cz, 1
-ithedgehog.co.uk, 1
 ithenrik.com, 1
 ithinc.net, 1
 ithjalpforetag.se, 1
@@ -58638,6 +58706,7 @@ iwex.swiss, 1
 iwhite.tk, 1
 iworos.com, 0
 iwp.ch, 1
+iwtsd.gov, 1
 iww.me, 1
 iww.mx, 1
 ix8.ru, 0
@@ -58673,7 +58742,6 @@ izabel.tk, 1
 izamulhakeem.tk, 1
 izanagi52.ddns.net, 1
 izavel.com, 1
-izdaher.com, 1
 izecubz.me, 1
 izilife.co, 1
 izipik.gq, 1
@@ -58783,7 +58851,6 @@ j95xx.com, 1
 j95zz.com, 1
 j9721.com, 1
 j9728.co, 1
-ja-dyck.de, 1
 ja-gps.com.au, 1
 ja-hypnose.de, 1
 ja-no-me.ru, 1
@@ -59513,6 +59580,7 @@ jeans-moda.tk, 1
 jeans-shopping.tk, 1
 jeans-stores.tk, 1
 jeansbutik.tk, 1
+jeansdiscounter.de, 1
 jeanslee.tk, 1
 jeansmoda.tk, 1
 jeansstyle.tk, 1
@@ -59556,6 +59624,7 @@ jeff.forsale, 1
 jeffanderson.me, 1
 jeffcasavant.com, 0
 jeffcloninger.net, 1
+jeffdaviscountyga.gov, 1
 jeffersonkyattorney.gov, 1
 jeffersonregan.co.uk, 1
 jeffersonregan.com, 1
@@ -59613,6 +59682,7 @@ jemianna.com, 1
 jemnezymy.com, 1
 jemore.it, 1
 jemoreng.tk, 1
+jems-il.gov, 1
 jena-fans-aurich.tk, 1
 jena.space, 0
 jencor.de, 1
@@ -59696,6 +59766,8 @@ jerrytindell.com, 1
 jerryweb.org, 1
 jerryyu.ca, 1
 jerseybikehire.co.uk, 1
+jerseycounty-il.gov, 1
+jerseycountyclerk-il.gov, 1
 jerseyink.net, 1
 jerseyjumpingbeans.co.uk, 1
 jerseylvi2013.org, 1
@@ -59773,6 +59845,7 @@ jetsadabetchoke77.com, 1
 jetsieswerda.nl, 1
 jetson.tk, 1
 jetstreampro.com, 1
+jetstudio.ch, 1
 jetswhiteout.com, 1
 jettenbommelaer.nl, 1
 jettenjachtbouw.eu, 1
@@ -59944,9 +60017,9 @@ jingmakeji.cn, 1
 jinja.ai, 1
 jinkuru.net, 1
 jinliming.ml, 1
-jino-jossy.appspot.com, 1
 jino.gq, 1
 jinshuju.net, 1
+jintaiyang123.org, 1
 jiogo.com, 1
 jiotec.net, 1
 jiretvariedades.com, 1
@@ -60001,7 +60074,7 @@ jklas.cz, 1
 jkloli.tk, 1
 jkng.eu, 1
 jkrcuidadopersonal.com, 1
-jkrippen.com, 1
+jkrippen.com, 0
 jkuu.org, 1
 jkv-media.cloud, 1
 jkvglobalsourcing.com, 1
@@ -60106,7 +60179,6 @@ jobfury.com, 1
 jobgenic.com, 1
 jobhouse.jp, 1
 jobie.tk, 1
-jobify.in, 1
 jobig.co.il, 1
 jobin.care, 1
 jobindex.dk, 1
@@ -60141,7 +60213,7 @@ jobstoday.world, 1
 jobsuchmaschine.ch, 1
 jobtestprep.it, 0
 jobtread.com, 1
-jobty.net, 1
+jobty.net, 0
 jobvoyager.com, 1
 jobwinner.ch, 1
 jobynet.tk, 1
@@ -60368,7 +60440,6 @@ jonaskarlssonfoto.se, 1
 jonaskjodt.com, 1
 jonaskoeritz.de, 1
 jonaskruckenberg.de, 0
-jonasled.de, 1
 jonaslovatouniverse.tk, 1
 jonasminder.ch, 1
 jonasmoeller.de, 0
@@ -60403,6 +60474,7 @@ jonescountyiowaelections.gov, 1
 jonesfor.men, 1
 jonesopolis.xyz, 1
 jonespayne.com, 0
+jonestowntx.gov, 1
 jonestrading.com, 1
 jonferwerda.net, 1
 jonfor.net, 1
@@ -60607,7 +60679,6 @@ joustsec.com, 1
 joustsecurity.com, 1
 jouwbuis.nl, 1
 jouwpaardenbak.nl, 1
-jouwtechnischecoach.nl, 1
 jovani.com, 0
 jovenescontraelaburrimiento.tk, 1
 joviam.com, 1
@@ -60622,7 +60693,6 @@ joychetry.com, 1
 joycosmetics.ch, 1
 joydivision.tk, 1
 joydream.tk, 1
-joyful.house, 1
 joyfulevents.tk, 1
 joyfulexpressions.gallery, 1
 joyfulhealthyeats.com, 1
@@ -60678,6 +60748,7 @@ jpshop.ru, 1
 jpsinflatables.co.uk, 1
 jpslconsulting.ca, 1
 jpst.it, 1
+jpvermogensregie.com, 1
 jqlin.com, 1
 jqlsql.com, 1
 jquery.wtf, 1
@@ -60983,6 +61054,7 @@ juniorsambo.tk, 1
 juniorsbook.com, 1
 juniperroots.ca, 1
 junix.systems, 1
+junjie.pro, 1
 junjun-web.net, 1
 junkcarboys.ca, 1
 junkdrome.org, 1
@@ -61196,7 +61268,6 @@ k1chn.com, 0
 k1yoshi.com, 0
 k234234.com, 1
 k258059.net, 1
-k2mts.org, 1
 k2pizza.com, 1
 k3508.com, 1
 k36533.com, 1
@@ -61524,7 +61595,6 @@ kalender.com, 1
 kalender.goip.de, 1
 kalerne.tk, 1
 kalevlamps.co.uk, 1
-kalex.nl, 1
 kaleylocks.com, 1
 kalhufvudet.se, 1
 kali.training, 1
@@ -61645,13 +61715,13 @@ kandianshang.com, 1
 kandofu.com, 1
 kandra.com.br, 1
 kandrahechiceravudu.com, 1
+kandwliquor.com, 1
 kanecastles.com, 1
 kanehisa.xyz, 1
 kanehusky.com, 0
 kanetix.ca, 1
 kanganer.com, 1
 kangaroo-bouncycastle.co.uk, 1
-kangarooislandholidayaccommodation.com.au, 1
 kangaroojacks.co.uk, 1
 kangaroos.org, 1
 kangavar.tk, 1
@@ -61681,9 +61751,9 @@ kanpian369.com, 1
 kansasconstruction.ga, 1
 kansashealth.tk, 1
 kansasnet.tk, 1
+kansasvaccine.gov, 1
 kanshutan.com, 1
 kantankye.nl, 1
-kantanmt.com, 1
 kantoorboel.nl, 1
 kantora-plovdiv.com, 1
 kantorad.io, 1
@@ -61698,6 +61768,7 @@ kanzashi.com, 1
 kanzlei-gaengler.de, 1
 kanzlei-hhh.de, 1
 kanzlei-oehler.com, 1
+kanzlei-sixt.de, 1
 kanzshop.com, 1
 kaosintesta.tk, 1
 kap-genial.de, 1
@@ -61773,6 +61844,7 @@ karatekit.co.uk, 1
 karatepunkslaroca.tk, 1
 karatesamurai.tk, 1
 karawane.tk, 1
+karawanken-tunnel.de, 1
 karbox.de, 1
 kardia-bordeauxdoggen.tk, 1
 kardize24.pl, 1
@@ -62041,6 +62113,7 @@ kavithai.tk, 1
 kavkaz-info.tk, 1
 kavkaz.cf, 1
 kavli-express.gr, 1
+kavorka.me, 1
 kavovary-kava.cz, 1
 kawabeest.tk, 1
 kawadoart.com, 1
@@ -62068,6 +62141,7 @@ kayon.cf, 1
 kayscs.com, 1
 kayserihaberleri.tk, 1
 kaysis.gov.tr, 1
+kaysville.gov, 1
 kaysvillechurch.com, 1
 kayteedidquiltsandmore.com, 1
 kayvepartners.com, 1
@@ -62262,12 +62336,13 @@ keithlomax.com, 1
 keiths.ml, 1
 keithwillcock.com, 1
 keithws.net, 1
+keizeror.gov, 1
 kejadiananeh.com, 1
 kejar.id, 0
 kejpop.pl, 1
 kekarimi.com, 1
 keke-shop.ch, 1
-kekku.li, 1
+kekku.li, 0
 keksi.io, 1
 kekz.org, 1
 kela.jp, 1
@@ -62325,6 +62400,7 @@ kelteks.com, 1
 kelts.tk, 1
 kelvinchung.tk, 1
 kelvinfichter.com, 0
+kemahtx.gov, 1
 kemeha.tk, 1
 kemerovo.gq, 1
 kemerovo.ml, 1
@@ -62408,7 +62484,6 @@ keppler.tk, 1
 kepsbt.hu, 1
 keramed.ga, 1
 keramed.gq, 1
-kerameion.com, 1
 keramikaopava.cz, 1
 kerb-grossauheim.de, 1
 kercovaparty.tk, 1
@@ -62491,7 +62566,6 @@ kevinackford.uk, 1
 kevinapease.com, 1
 kevinbauer.ca, 1
 kevinbowers.me, 1
-kevinbusse.de, 1
 kevinchang.me, 1
 kevincox.ca, 1
 kevincoynepage.tk, 1
@@ -62525,7 +62599,6 @@ kexino.com, 1
 key-content.com, 1
 key-form.fr, 1
 key-tracker.de, 1
-key.lol, 1
 key2swipe.com, 1
 keybase.io, 1
 keyblock.ga, 1
@@ -62587,7 +62660,6 @@ kf7joz.com, 1
 kf846.com, 1
 kf848.com, 1
 kf8686.com, 1
-kf8897.com, 1
 kf8954.com, 1
 kf8955.com, 1
 kf8956.com, 1
@@ -62669,8 +62741,8 @@ khmerlive.cf, 1
 khmrynok.com.ua, 1
 khoasweb.tk, 1
 khodromedic.com, 1
+khohangmadeinvietnam.com, 1
 khojhealth.com, 1
-khokey.com, 1
 khorne.me, 1
 khoteyev.tk, 1
 khotool.com, 0
@@ -62874,6 +62946,7 @@ kinderevents-sehnde.de, 1
 kinderfestival.com, 1
 kindergarten-neugnadenfeld.tk, 1
 kindergarten.vic.gov.au, 1
+kinderjugendfreizeitverein.de, 1
 kinderkleding.news, 1
 kinderlachen.ro, 1
 kinderopvang.gent, 1
@@ -62916,7 +62989,6 @@ kingdommindsmentorsclub.com, 1
 kingdoms.gg, 1
 kingfast.cc, 1
 kingfast.eu.org, 1
-kingforex.co, 1
 kingiescastles.co.uk, 1
 kingjamesbibleonline.org, 1
 kingjamesgospel.com, 1
@@ -62945,6 +63017,7 @@ kingspalacepainting.com, 1
 kingstake.network, 1
 kingston-fear.com, 1
 kingstonga.gov, 1
+kingstonma.gov, 1
 kingsvilletexas.com, 1
 kingtech8.tk, 1
 kingtreeexperts.com, 1
@@ -63102,7 +63175,6 @@ kistipro.tk, 1
 kisulki.tk, 1
 kisumuterraceapartments.tk, 1
 kisvasut.tk, 1
-kit.watch, 1
 kita-freie-schule.de, 1
 kita-sun.com, 1
 kitabat.com, 1
@@ -63147,6 +63219,7 @@ kitkit.tk, 1
 kitpara.shop, 1
 kits-graphiques-shop.tk, 1
 kits-graphiques.tk, 1
+kitsap.gov, 1
 kitsapsolutions.com, 1
 kitscan.com, 1
 kitseliit.ee, 1
@@ -63649,7 +63722,6 @@ kokily.com, 1
 koko.news, 1
 kokoiroworks.com, 1
 kokomo.cloud, 1
-kokomo.xyz, 1
 kokomu.com, 1
 kokona.ch, 1
 kokoro-singsong.com, 1
@@ -63768,6 +63840,7 @@ kondou-butsudan.com, 1
 konducars.nl, 1
 konekthing.com, 1
 konf.ga, 1
+konfekcjonowanie.com, 1
 konflikte-als-chance.de, 1
 konflikthaus.de, 1
 konfliktklaerer.de, 1
@@ -63833,7 +63906,6 @@ konut-projeleri.com, 1
 konventa.net, 1
 konyahaber.tk, 1
 konyalian.com, 1
-konyvbazar.ro, 1
 konzaross.tk, 1
 konzepttreu.de, 1
 konzertheld.de, 1
@@ -63990,7 +64062,6 @@ kotajakarta.info, 1
 kotak.us, 1
 kotakoo.id, 1
 kotaku.com, 1
-kotaraanglican.org.au, 1
 kotatgent.be, 1
 kotausaha.com, 1
 koten-bu.com, 1
@@ -64016,7 +64087,6 @@ kottur.is, 1
 kotuwa.tk, 1
 koubova.net, 1
 koujo-soukohonpo.com, 1
-kouki-food.com, 1
 koumakan.cc, 1
 koupons.nl, 1
 kourin.cf, 1
@@ -64255,7 +64325,6 @@ kristoffer.is, 1
 kriston.tk, 1
 kriswauters.tk, 1
 kritical.es, 1
-kritikahotels.com, 1
 kritikawebu.cz, 1
 kriyayoga.fr, 1
 krizevci.info, 1
@@ -64290,6 +64359,7 @@ kroyou.com, 0
 krozilla.tk, 1
 krpaforum.org, 1
 krsaustralia.com.au, 1
+krsn.de, 1
 krsvrs.nl, 1
 krti.com.ua, 1
 krubik.tk, 1
@@ -64337,6 +64407,7 @@ krystal-framework.ml, 1
 krystalrsimpson.com, 1
 krytykawszystkiego.com, 1
 krytykawszystkiego.pl, 1
+kryx.de, 1
 ks-19.com, 1
 ks-29.com, 1
 ks-39.com, 1
@@ -64576,8 +64647,6 @@ kuditel.net, 1
 kudofoto.com, 1
 kudoran.tk, 1
 kueche-co.de, 0
-kuechenserver.de, 1
-kuechenserver.org, 1
 kuechler.info, 1
 kuehndel.org, 1
 kuehnel-bs.de, 0
@@ -64732,7 +64801,6 @@ kuscheln.com, 1
 kuschku.de, 1
 kuscu.de, 1
 kusdaryanto.web.id, 1
-kushfest.com, 1
 kushfest.net, 1
 kushner-cpa.co.il, 1
 kushwanth.in, 1
@@ -64751,9 +64819,9 @@ kutanam.com, 1
 kutekeiki.com, 1
 kutinsoft.com, 1
 kutsankaplan.com, 1
-kutus.ee, 1
 kutvonen.net, 1
 kutyabarathelyek.hu, 1
+kuunlamaailm.ee, 1
 kuvera.in, 1
 kuwago.io, 1
 kuwichitagastro.com, 1
@@ -65199,6 +65267,7 @@ laguinguette.fr, 1
 lagunakitchenandbath.com, 1
 lagunaklub.tk, 1
 laguterbaru.gq, 1
+lahabra.gov, 1
 lahacker.net, 1
 laharilais.fr, 1
 lahermandad.tk, 1
@@ -65248,6 +65317,7 @@ lakesherwoodexteriorlighting.com, 1
 lakesherwoodlandscapelighting.com, 1
 lakesherwoodlighting.com, 1
 lakesherwoodoutdoorlighting.com, 1
+lakeshiremo.gov, 1
 lakeshowlife.com, 1
 lakestclairguide.com, 1
 lakestreetministorage.com, 1
@@ -65256,6 +65326,7 @@ lakevotes.gov, 1
 lakewinnipegdatastream.ca, 1
 lakewoodcityglass.com, 1
 lakewoodcomputerservices.com, 1
+lakewoodoh.gov, 1
 lakewylietax.com, 1
 lakichat.fi, 1
 lakiernictwo.auto.pl, 1
@@ -65265,7 +65336,6 @@ lakorona.tk, 1
 lakspuiterijmosman.nl, 1
 lakupaavi.tk, 1
 lalagunachalate.tk, 1
-lalalab.com, 1
 lalaloe.be, 1
 lalaserniagara.ca, 1
 lalaya.fr, 1
@@ -65293,13 +65363,13 @@ lamasacre.tk, 1
 lamaturitadidaniele.ml, 1
 lambauer.com, 1
 lambda.dance, 1
-lambda.sx, 1
 lambdajournal.com, 1
 lambdaof.xyz, 1
 lambertshealthcare.co.uk, 1
 lambertz.xyz, 1
 lamboo.be, 1
 lamchannang.com, 1
+lamclam.site, 1
 lamconnect.com, 1
 lamdav.com, 1
 lamecaniquepourlesfilles.com, 1
@@ -65571,6 +65641,7 @@ larafabian.tk, 1
 larafoxx.org, 1
 laralove.org, 1
 laramewa.tk, 1
+laramiecountywy.gov, 1
 laranara.se, 1
 laranjada.org, 1
 larasm.tk, 1
@@ -65598,6 +65669,7 @@ largest-soldiers.cf, 1
 largeviewer.com, 1
 larifari.ch, 1
 larimarhomes.ca, 1
+larimer.gov, 1
 larimercolorado.gq, 1
 lariscus.eu, 1
 larkinkerluke.cf, 1
@@ -65881,6 +65953,8 @@ lavoieducoeur.be, 1
 lavoiepharmd.com, 1
 lavolte.net, 0
 lavoniaga.gov, 1
+lavontx.gov, 1
+lavote.gov, 1
 lavozdelamusicachilena.tk, 1
 lavozderanquil.tk, 1
 lavril.fr, 1
@@ -65925,6 +65999,7 @@ lawrencebaker.me, 1
 lawrenceberg.nl, 1
 lawrenceclarkemd.com, 1
 lawrencecountyboe-ohio.gov, 1
+lawrencecountypa.gov, 1
 lawrenceklepinger.com, 1
 lawrencemurgatroyd.com, 1
 lawrencewhiteside.com, 1
@@ -65995,7 +66070,6 @@ lbarrios.es, 1
 lbayer.com, 1
 lbc-podcast.tk, 1
 lbc.gr, 1
-lbda.net, 1
 lbet365.com, 1
 lbihrhelpdesk.com, 1
 lbjlibrary.gov, 1
@@ -66159,6 +66233,7 @@ lcacommons.gov, 1
 lcars-sv.info, 1
 lcdf.education, 1
 lce-events.com, 1
+lcemsami.gov, 1
 lcgabogados.com, 1
 lcgaj.com, 1
 lcht.ch, 0
@@ -66404,7 +66479,6 @@ lednavi.de, 1
 ledscontato.com.br, 1
 ledshop.mx, 1
 ledspadova.eu, 1
-ledspalluto.de, 1
 leduquwiki.cf, 1
 leeaaronsrealestate.com, 1
 leebiblestudycenter.co.uk, 1
@@ -66730,6 +66804,7 @@ lennard.tk, 1
 lennard0711.eu, 1
 lennartoldenburg.de, 1
 lennox.cf, 1
+lennoxsd.gov, 1
 lennybruce.tk, 1
 lennyendewespen.tk, 1
 lennyobez.be, 1
@@ -66806,7 +66881,6 @@ leovanna.co.uk, 1
 leowkahman.com, 1
 lep.gov, 1
 lepalierjuridique.com, 1
-lepallec.tv, 1
 lepartiecomemoracoes.com.br, 1
 lepblog.tk, 1
 lepenetapeti.com, 1
@@ -66869,7 +66943,6 @@ lesberger.ch, 0
 lesbi-porno-video.ru, 1
 lesbianfacesitting.com, 1
 lesbianlovers.tk, 1
-lesbiansslaves.com, 1
 lesblogueuses.fr, 1
 lesbonzoms.alwaysdata.net, 1
 lesborgestv.cat, 1
@@ -67217,6 +67290,7 @@ liberty-city.tk, 1
 liberty-host.tk, 1
 liberty-med.ru, 1
 libertyachts.com, 0
+libertylakewapd.gov, 1
 libertyland.tk, 1
 libertytereconoce.com, 1
 libertyvault.us, 1
@@ -67587,6 +67661,7 @@ lilievabien.fr, 1
 lilighazaryan.tk, 1
 lilimusic.tk, 1
 lilisg.tk, 1
+lilith-magic-ua.com, 1
 lilith-magic.com, 1
 lilithqueisser.de, 1
 liliweb.tk, 1
@@ -67608,7 +67683,7 @@ lilousportswear.com, 1
 lilov.com.ua, 1
 lilpwny.com, 1
 liltv.media, 1
-lily-bearing.com, 1
+lily-bearing.com, 0
 lily-inn.com, 1
 lily-luv.com, 1
 lily.flowers, 1
@@ -67821,6 +67896,7 @@ linmania.tk, 1
 linmi.cc, 1
 linnaeusgroup.co.uk, 1
 linncounty-ia.gov, 1
+linncountyiowa.gov, 1
 linocolombo.tk, 1
 linocomm.com, 1
 linocomm.net, 1
@@ -67869,6 +67945,7 @@ linux-tips.us, 1
 linux-vme.org, 1
 linux.cn, 0
 linux.conf.au, 1
+linux.farm, 1
 linux.fi, 1
 linux.im, 1
 linux.study, 1
@@ -67958,7 +68035,6 @@ liquidweb.tk, 1
 liquipedia.net, 1
 liquiritia.tk, 1
 liquor.my, 1
-lirelesgens.com, 1
 liress.gq, 1
 lirico.ca, 1
 lirion.de, 1
@@ -68115,7 +68191,6 @@ liturkey.tk, 1
 litvideoserver.de, 1
 litz.ca, 1
 litzenberger.ca, 1
-liu0hy.cn, 1
 liubliu.co.uk, 1
 liud.im, 1
 liudon.org, 1
@@ -68252,6 +68327,7 @@ livinghebrew.tk, 1
 livinginhimalone.com, 1
 livinglab.be, 1
 livinglifesecurely.com, 1
+livinglink.be, 1
 livingorganicnews.com, 1
 livingoutdoors.ga, 1
 livingtired.org, 1
@@ -68339,7 +68415,6 @@ llinternational.tk, 1
 llm-guide.com, 1
 lloyd-day.me, 1
 lloydrogerspencer.com, 1
-llredac.fr, 1
 lltcpa.com, 1
 llvm.us, 1
 llyq8866.com, 1
@@ -68432,7 +68507,6 @@ locald.at, 1
 localegroup.com, 0
 localexpert.realestate, 1
 localhorst.duckdns.org, 1
-localhorst.xyz, 1
 localhost.cat, 1
 localized.tk, 1
 localizejs.com, 1
@@ -68523,7 +68597,6 @@ locksmithbalchsprings.com, 1
 locksmithballito.com, 1
 locksmithbluff.co.za, 1
 locksmithboksburg.co.za, 1
-locksmithdearborn.com, 1
 locksmithdickinson-tx.com, 1
 locksmithdriftwood.com, 1
 locksmithedenvale24-7.co.za, 1
@@ -68548,7 +68621,6 @@ locksmithsammamishwa.com, 1
 locksmithsbluff.com, 1
 locksmithsbuda.com, 1
 locksmithscottsdaleaz.com, 1
-locksmithseattleco.com, 1
 locksmithservice-cypress.com, 1
 locksmithservice-humble.com, 1
 locksmithsinsanantoniotx.com, 1
@@ -68589,7 +68661,6 @@ lodus.io, 1
 loeklommers.nl, 1
 loenshotel.de, 1
 loew.de, 1
-lofficinadelweb.com, 1
 loforo.com, 1
 lofttravel.com, 1
 loftyideas.ml, 1
@@ -68599,6 +68670,7 @@ logactiond.org, 1
 logal.media, 1
 logalot.com, 1
 logancooper.jp, 1
+logancountyks.gov, 1
 logancountyky.gov, 1
 loganextermination.net, 1
 loganmarchione.com, 1
@@ -68689,7 +68761,6 @@ loja351.com, 1
 lojaacampar.com.br, 1
 lojaapoio.com.br, 1
 lojacorbuccieats.com.br, 1
-lojadafloresta.pt, 1
 lojadamimo.com.br, 1
 lojadanidrea.com.br, 1
 lojadarenda.com.br, 1
@@ -68818,7 +68889,6 @@ loncarlyonjenkins.com, 1
 london-mafia.tk, 1
 london-transfers.com, 1
 london.dating, 1
-londonbridge.pl, 1
 londonelects.org.uk, 1
 londongynaecologist.co, 1
 londonhealthcare.ga, 1
@@ -68900,6 +68970,7 @@ long8032.com, 1
 long8039.com, 1
 longboat.io, 1
 longchampgirls.tk, 1
+longcountyga.gov, 1
 longfordlodge.tk, 1
 longhaircareforum.com, 1
 longhairworld.tk, 1
@@ -68907,6 +68978,7 @@ longhorn-imports.com, 1
 longhorn.id.au, 1
 longiminus.tk, 1
 longislandbusiness.info, 1
+longlakeny.gov, 1
 longlink.tk, 1
 longlivehongkong.com, 1
 longma.pw, 1
@@ -68914,6 +68986,7 @@ longma168.cn, 1
 longma168.com, 1
 longpaddock.qld.gov.au, 1
 longstride.net, 1
+longtaitouwang.com, 0
 longtermrentalsportugal.com, 1
 lonleymoon.tk, 1
 lonlomba.com, 1
@@ -68966,6 +69039,7 @@ loquo.com, 1
 loqyu.co, 1
 loqyu.com, 1
 lor.kharkov.ua, 1
+loraincountyohio.gov, 1
 loratadine10mg.gq, 1
 lorbooks.tk, 1
 lorcalive.co.uk, 1
@@ -69100,7 +69174,6 @@ lotn.nl, 1
 lotnonline.com, 1
 lotnonline.net, 1
 lotnonline.nl, 1
-loto-tele.com, 1
 lotos-ag.ch, 1
 lotposh.com, 1
 lotro-wiki.com, 1
@@ -69298,7 +69371,6 @@ lqhi.cn, 1
 lqshu.net, 1
 lr-expert.ru, 1
 lra-cloud.de, 1
-lrdo.net, 1
 lrfix.com, 1
 lriese.ch, 1
 lroc.com.au, 1
@@ -69308,10 +69380,10 @@ lrumeq.com, 1
 lrv-grobbendonk.tk, 1
 ls-alarm.de, 1
 ls-mapping-team.de, 1
-ls-modcompany.com, 1
 lsal.me, 1
 lsbricks.com, 1
 lsc-dillingen.de, 1
+lsc-mn.gov, 1
 lsc.ee, 1
 lsc.gov, 0
 lsc.moe, 1
@@ -69452,6 +69524,7 @@ luckystorevn.com, 1
 luckyxf.com, 1
 luclu7.fr, 1
 lucorautopartes.com, 1
+lucreds.com, 1
 lucschiltz.com, 1
 luctam.com, 1
 lucy.science, 1
@@ -69488,6 +69561,7 @@ ludum-polus.xyz, 1
 ludum.pl, 1
 ludunwayoo.com, 1
 ludwig.im, 1
+ludwiggrill.de, 1
 ludwigjohnson.se, 1
 ludwigpro.net, 1
 lueck-bertram.de, 1
@@ -69603,7 +69677,6 @@ lumbercartel.ca, 1
 lumberjackman.tk, 1
 lumbre-encendedores.com, 1
 lumchan.tk, 1
-lumen.sh, 1
 lumenapp.com, 1
 lumenbrowser.com, 1
 lumentell.us, 1
@@ -69795,6 +69868,7 @@ luxwatch.com, 1
 luyckx.net, 1
 luyungterd.com, 1
 luzat.com, 1
+luzfaltex.com, 1
 luzi-type.ch, 1
 luzica.tk, 1
 lv.lk, 1
@@ -69832,6 +69906,7 @@ lychankiet.name.vn, 0
 lyclub.vn, 1
 lycly.me, 1
 lydiawebfans.tk, 1
+lydudlejning.net, 1
 lyfbits.com, 1
 lyfstylorganix.com, 1
 lyftrideestimate.com, 1
@@ -69842,6 +69917,7 @@ lymia.moe, 1
 lyna.ml, 1
 lynamhomeloans.com.au, 1
 lyndo.ga, 1
+lyndontownshipmi.gov, 1
 lynero.dk, 1
 lyness.io, 1
 lyness.uk, 1
@@ -70446,7 +70522,6 @@ mail-delivery.ga, 1
 mail-ink.com, 1
 mail-rotter.de, 1
 mail-settings.google.com, 1
-mail.ac, 1
 mail.com, 1
 mail.de, 1
 mail.google.com, 1
@@ -70586,7 +70661,6 @@ makaradigital.com, 1
 makariza.com.co, 1
 makasetesan.com, 1
 make-a-difference-daily.com, 1
-make-your-own-song.com, 1
 make.org, 1
 make50aday.tk, 1
 makeagif.com, 1
@@ -70944,6 +71018,7 @@ manipurmatka.net, 1
 manisahaberleri.tk, 1
 manito.kr, 1
 manitouspringsco.gov, 1
+manitowoccountywi.gov, 1
 manja-und-martin.de, 1
 manjaro.ru, 1
 mankans.com, 0
@@ -71127,7 +71202,6 @@ marcberndtgen.de, 1
 marcceleiro.cat, 1
 marceau.ovh, 1
 marcel-preuss.de, 1
-marcel-veronetzki.de, 1
 marcel-waldvogel.ch, 1
 marcelabarrozo.tk, 1
 marcelino.cf, 1
@@ -71231,7 +71305,6 @@ mariafernanda.com.br, 1
 mariage-protestant.ch, 1
 mariagealamontagne.com, 1
 mariages.net, 1
-mariagiovannaluini.it, 1
 mariahandnasty.com, 1
 mariahcareyvenezuela.tk, 1
 mariaisabel.tk, 1
@@ -71251,6 +71324,7 @@ mariasavchenko.com, 1
 mariasemarias.com.br, 1
 mariasilverbutterfly.com, 1
 mariaterbildt.tk, 1
+mariavilleme.gov, 1
 marico.com, 1
 maridonlaw.com, 1
 marie-pettenbeck-schule.de, 1
@@ -71272,6 +71346,7 @@ marijuanajobscannabiscareers.com, 1
 marijuanamed420.com, 1
 marikafranke.de, 1
 mariliaveiga.com.br, 0
+marillatownshipmi.gov, 1
 marilower.tk, 1
 marilsnijders.nl, 1
 marilynmonroy.com.ec, 1
@@ -71284,7 +71359,6 @@ marinamontana.net, 1
 marinapetruzio.it, 1
 marinapozzoli.tk, 1
 marinarinaldi.ml, 1
-marinasmad.com, 1
 marinat.de, 1
 marinat2012.de, 1
 marinazarza.es, 1
@@ -71384,7 +71458,6 @@ marketinghaters.com, 1
 marketingmd.com, 1
 marketingmind.in, 1
 marketingpalace.tk, 1
-marketingproducts.review, 1
 marketingprofesszorok.hu, 1
 marketingseo.fr, 1
 marketingstrategy.gq, 1
@@ -71405,7 +71478,6 @@ markf.io, 1
 markfietje.eu, 1
 markfisher.photo, 1
 markhaehnel.de, 1
-markhamfair.ca, 1
 markhedrick.com, 1
 markholden.guru, 1
 markhoodauthor.com, 1
@@ -71521,8 +71593,10 @@ marsatapp.com, 1
 marseillekiteclub.com, 1
 marshaiargentina.com, 1
 marshall-allman.tk, 1
+marshallcountywv.gov, 1
 marshallscastles.com, 1
 marshallwilson.com, 1
+marshfieldvt.gov, 1
 marshmallow.co, 1
 marshmallow.com, 1
 marshmallowchallenge.com, 1
@@ -71556,7 +71630,6 @@ martian.community, 1
 martian.tk, 1
 martide.com, 1
 martijnschreuders.tk, 1
-martijnvanderzande.nl, 1
 martijnvdputten.tk, 1
 martin-burger.net, 1
 martin-caslavsky.tk, 1
@@ -71659,7 +71732,6 @@ marylandbasementandcrawlspacewaterproofing.com, 1
 marylandtraditions.org, 1
 maryluzturismo.co, 1
 marymaloney.tk, 1
-marypatriotnews.com, 1
 marypierce.tk, 1
 maryrock.net, 1
 marywet.net, 1
@@ -71711,6 +71783,7 @@ maslin.io, 1
 maslow.tk, 1
 masmusica.tk, 1
 masmusicaradio.tk, 1
+masoncountywa.gov, 1
 masquerade.site, 0
 masqueradecostumes.tk, 1
 masrilanguage.tk, 1
@@ -71733,6 +71806,7 @@ massagekartan.ga, 1
 massar.family, 1
 massazh.cf, 1
 massconsultores.com, 1
+massdesigners.net, 1
 masse.org, 1
 massflix.com, 1
 massfone.com, 1
@@ -71742,7 +71816,6 @@ massiveanalyser.com, 1
 massiveassault.tk, 1
 masskick.ga, 1
 massmurder.tk, 1
-massotherapeutique.com, 1
 masstercurssos.com, 1
 massvow.com, 1
 masta.ch, 0
@@ -71923,7 +71996,6 @@ matipl.pl, 1
 matiu.tk, 1
 matjaz.it, 1
 matkuling.no, 1
-matli.com.tr, 1
 matlss.com, 1
 matocmedia.com, 1
 matok.me.uk, 1
@@ -72112,6 +72184,7 @@ mawidabp.com, 1
 mawo.olkusz.pl, 1
 mawrex.tech, 1
 max-apk.com, 0
+max-cafe.cz, 1
 max-it.fr, 1
 max-moeglich.de, 1
 max-phone.com, 0
@@ -72282,6 +72355,7 @@ mazken.tk, 1
 mazloum.adv.br, 1
 mazternet.ru, 1
 mazurlabs.tk, 1
+mazury-invest.pl, 1
 mazzettigroup.com, 1
 mazzotta.me, 1
 mb-demo.net, 1
@@ -72410,6 +72484,7 @@ mcl.de, 1
 mcl.gg, 1
 mclanedirect.com, 1
 mclanexpress.com, 1
+mcleodcountymn.gov, 1
 mclinflatables.co.uk, 1
 mclmotors.co.uk, 1
 mclyr.com, 0
@@ -72468,6 +72543,7 @@ md28.in, 1
 md5file.com, 1
 md5hashing.net, 1
 mdaemon.de, 1
+mdatc.gov, 1
 mdazo.net, 1
 mdbug.de, 1
 mdca-jp.org, 1
@@ -72480,7 +72556,6 @@ mdeep.ru, 1
 mdek.at, 1
 mdewendt.de, 1
 mdf-bis.com, 0
-mdihi.com, 1
 mdinstituteplasticsurgery.com, 1
 mdinvest.nz, 1
 mdir.tk, 1
@@ -72528,7 +72603,6 @@ mealz.com, 1
 meamod.com, 0
 meandb.net, 1
 meanevo.com, 1
-meangirl.club, 1
 meaningfulaction.org, 1
 meanit.ie, 1
 meany.xyz, 1
@@ -72923,6 +72997,7 @@ medellinapartamentos.com, 1
 medellinencanciones.tk, 1
 medexpress.co.uk, 1
 medfinancial.com, 1
+medfordoregon.gov, 1
 medguide-bg.com, 1
 medhiwa.com, 1
 medhy.fr, 1
@@ -72961,6 +73036,7 @@ medialab.nrw, 1
 medialinkz.ga, 1
 medialta.com, 1
 medialys.ca, 1
+mediamaklumat.com, 0
 mediamarket42.tk, 1
 mediamonitors.net, 1
 mediamuda.com, 1
@@ -72970,7 +73046,6 @@ mediapart.fr, 1
 mediapath.gr, 1
 mediaplaytv.com.br, 1
 mediapuller.com, 1
-mediarithmics.com, 1
 mediarithmics.io, 1
 mediaselection.eu, 1
 mediasouken.co.jp, 1
@@ -72992,7 +73067,6 @@ mediawiki.com, 1
 mediawiki.org, 1
 medibasket.co.in, 1
 medic-world.com, 1
-medicairsolutions.com, 1
 medical-assistant-colleges.com, 1
 medical-centr.tk, 1
 medical-contact.de, 1
@@ -73034,7 +73108,6 @@ mediciventures.com, 1
 mediclinik.tk, 1
 medicm.jp, 1
 medicocompetente.it, 1
-medicoleads.com, 1
 medicompany.tk, 1
 medicoresponde.com.br, 1
 medicoway.ru, 1
@@ -73042,6 +73115,7 @@ medictools.de, 1
 medicus.ai, 1
 medidordehumedad.online, 1
 medienweite.de, 1
+medifab.online, 1
 medifirst.de, 1
 medifit.si, 1
 medifoto.tk, 1
@@ -73193,6 +73267,7 @@ mega.co.nz, 1
 mega.nz, 1
 megaar.tk, 1
 megabike.tk, 1
+megablogging.org, 1
 megabook.ml, 1
 megabounce.co.uk, 1
 megabouncingcastles.com, 1
@@ -73201,7 +73276,6 @@ megadrol.com, 1
 megaelettrostimolatore.com, 1
 megafide.com.br, 1
 megafilez.tk, 1
-megaflix.nl, 1
 megaflowers.ru, 1
 megagifs.de, 1
 megaherz.tk, 1
@@ -73466,7 +73540,6 @@ memind.net, 1
 memiux.com, 1
 memo-linux.com, 1
 memo.ee, 1
-memo2ch.com, 1
 memoire-resistance-ariege.fr, 1
 memoirmedie.dk, 1
 memolestas.tk, 1
@@ -73530,6 +73603,7 @@ menole.com, 1
 menole.de, 1
 menole.net, 1
 menomg.com, 1
+menomineecountymi.gov, 1
 menomineemi.gov, 1
 menotag.com, 1
 mens-qzin.jp, 1
@@ -73701,6 +73775,7 @@ mes-courriers.fr, 1
 mes-finances.be, 1
 mes-vacances.tk, 1
 mes10doigts.ovh, 1
+mesaazpolice.gov, 1
 mesabi.ga, 1
 mesamoving.com, 1
 mesappros.com, 1
@@ -73976,6 +74051,7 @@ mfxbe.de, 1
 mfxer.com, 1
 mfzkl.com, 0
 mgae.com, 1
+mgclercoh.gov, 1
 mgcraft.net, 1
 mgdigitalmarketing.com.au, 1
 mgfashion.ae, 1
@@ -74182,7 +74258,6 @@ michelwolf.ch, 1
 michey.tk, 1
 michibeck.eu, 1
 michielbijland.nl, 1
-michielvanfastenhout.nl, 1
 michig.tk, 1
 michiganhealth.tk, 1
 michiganstateuniversityonline.com, 1
@@ -74229,6 +74304,7 @@ microsoftedgeinsider.com, 1
 microtel2notch.tk, 1
 microtube.tk, 1
 microvb.com, 1
+microwavezone.com, 1
 microwesen.de, 1
 microzubr.com, 1
 micruity.com, 1
@@ -74242,6 +74318,7 @@ midasjewellery.com.au, 1
 midcarolinaregionalairport.com, 1
 midcarolinaregionalairport.org, 1
 middle.io, 1
+middleboroughma.gov, 1
 middlesexwoodpigeonclub.co.uk, 1
 middletonshoppingcentre.co.uk, 1
 middletowndelcopa.gov, 1
@@ -74373,7 +74450,6 @@ mikeandemily.duckdns.org, 1
 mikebelanger.ca, 1
 mikeblog.site, 1
 mikeburns.tk, 1
-mikecameronyyc.com, 1
 mikecapson.com, 1
 mikecb.org, 1
 mikechasejr.tk, 1
@@ -74454,6 +74530,7 @@ milakirschner.de, 1
 milan-news.ml, 1
 milani.io, 1
 milania.de, 1
+milanmi.gov, 1
 milano-web.it, 1
 milanoclownfestival.tk, 1
 milanotoday.it, 1
@@ -74518,6 +74595,7 @@ milleron.xyz, 1
 millerpaving.com, 1
 millersminibarns.com, 1
 millersprolandscape.com, 0
+millerwalker.com, 1
 millesime-communication.fr, 1
 millettable.com, 1
 milliarden-liste.de, 1
@@ -74537,8 +74615,11 @@ millscountyiowa.gov, 1
 millsidecentre.org, 1
 millwoodwa.gov, 1
 milmiedos.tk, 1
+milnerga.gov, 1
 milr.dk, 1
 miltau.de, 1
+miltonga.gov, 1
+miltontwpmi.gov, 1
 miltor.by, 1
 miltor.com.ua, 1
 miltor.ru, 1
@@ -74652,7 +74733,6 @@ minecraftrealgold.gq, 1
 minecraftrealgold.ml, 1
 minecraftruns.ml, 1
 minecrafts.gq, 1
-minecraftstal.com, 1
 minecraftwin.gq, 1
 minecraftworlds.info, 1
 minecraftx.ml, 1
@@ -74682,6 +74762,7 @@ minfin.gov.ua, 1
 mingky.net, 1
 mingkyaa.com, 1
 mingming.info, 1
+mingram.net, 1
 mingwah.ch, 0
 mingy.ddns.net, 1
 minh.at, 0
@@ -74689,7 +74770,6 @@ minhanossasenhora.com.br, 1
 minhanwindow.vn, 1
 minhng99.cloud, 1
 minhng99.eu, 1
-minhyukpark.com, 1
 mini-igra.tk, 1
 mini-piraten.de, 1
 mini2.fi, 1
@@ -74760,6 +74840,7 @@ minload.com, 1
 minmaxgame.com, 1
 minna.tk, 1
 minndak.net, 1
+minnesotahealthcareconsortium.gov, 1
 minnesotakinkyyouth.org, 1
 minnesotareadingcorps.org, 1
 minnim.ua, 1
@@ -74903,6 +74984,7 @@ misakacloud.net, 1
 misakaloli.com, 1
 misakastudio.com, 1
 misakiya.co.jp, 1
+misanci.cz, 1
 misclick.net, 1
 misclick.nl, 1
 misconfigured.io, 1
@@ -75204,6 +75286,7 @@ mktemp.org, 1
 mktenlared.com, 1
 mkuznets.com, 1
 mkw.st, 1
+mkws.sh, 1
 ml-academy.org, 1
 mlada-moda.cz, 1
 mladamoda.sk, 1
@@ -75315,6 +75398,7 @@ mnemonicninja.com, 1
 mneti.ru, 1
 mngfam.ddns.net, 1
 mnguyen.io, 1
+mnhc.gov, 1
 mnienamel.com, 1
 mniopenresearch.org, 1
 mnitro.com, 1
@@ -75353,10 +75437,8 @@ moabit.de, 1
 moabpapier.de, 1
 moabygg.se, 1
 moahmo.com, 1
-moas.design, 1
 moas.photos, 1
 mob2con.com.br, 1
-mobal.com, 1
 mobclan.tk, 1
 mobeforlife.com, 0
 mobi-katalog.tk, 1
@@ -75466,7 +75548,7 @@ moca-kinder.de, 1
 mocent.de, 1
 mochilerostailandia.com, 1
 mochiyuki.net, 1
-mochizuki.moe, 1
+mochizuki.moe, 0
 mochoko.com, 1
 mockerel.com, 1
 mocking.top, 1
@@ -75578,6 +75660,7 @@ moduloseltaladro.com, 1
 modusawperandi.com, 1
 modxvm.com, 1
 moe-max.jp, 1
+moe.best, 0
 moe.pe, 1
 moe4sale.in, 1
 moeali.com, 1
@@ -75879,7 +75962,6 @@ mono0x.net, 1
 monoblu.com, 1
 monobunt.at, 1
 monochrometoys.com, 1
-monocl.com, 1
 monocles.de, 1
 monocyte.host, 1
 monodejuegos.shop, 1
@@ -75903,6 +75985,7 @@ monpc-pro.fr, 0
 monpetitmobile.com, 1
 monplay.host, 1
 monroe27.com, 1
+monroecountywv.gov, 1
 monshoppingcestcalais.fr, 1
 monsieurbureau.com, 1
 monsieursavon.ch, 0
@@ -75928,15 +76011,20 @@ montarfotoaki.com, 1
 montarosa.tk, 1
 montas.io, 1
 montazer.net, 1
+montclairca.gov, 1
 montco.today, 1
 montehermoso.tk, 1
 montenativo.de, 1
 montenegro-yacht.com, 1
 montessori-oberhaching.de, 1
 monteurzimmerfrei.de, 1
+montgomerycountyal.gov, 1
 montgomerycountyia.gov, 1
 montgomeryfirm.com, 1
+montgomeryohio.gov, 1
+montgomeryprobatecourtal.gov, 1
 montgomerysoccer.net, 1
+montgomeryvotesal.gov, 1
 monticelloky.gov, 1
 montillafarm.com, 1
 montoan.com, 1
@@ -75991,7 +76079,6 @@ moonkin.eu, 1
 moonlabs.nl, 1
 moonlight-show.tk, 1
 moonlightbeachdental.com, 1
-moonlightcapital.ml, 1
 moonlightdesign.org, 1
 moonlightpicnic.tk, 1
 moonlights.tk, 1
@@ -76049,6 +76136,7 @@ moparisthebest.com, 1
 moparisthebest.net, 1
 moparisthebest.org, 1
 moparscape.net, 1
+mopedpress.com, 1
 mopedreifen.de, 0
 mopie.de, 1
 mople71.cz, 1
@@ -76066,6 +76154,7 @@ moradali.tk, 1
 moralcenter.cf, 1
 moralcompass.ga, 1
 moraldehornuez.tk, 1
+morandofora.com.br, 0
 moranyachts.com, 1
 morata.tk, 1
 moratilla.ml, 1
@@ -76108,13 +76197,14 @@ moresw.com, 1
 moretesting.tk, 1
 morethanautodealers.com, 1
 morethancode.be, 1
-morethandigital.info, 1
+morethandigital.info, 0
 moretti.camp, 1
 morevesi.cf, 1
 morgan-insurance.com, 1
 morgan.solutions, 1
 morgancounty-al.gov, 1
 morgancountysheriffal.gov, 1
+morgancountyutah.gov, 1
 morgandesort.com, 1
 morganhome.co.id, 1
 morgansleisure.co.uk, 1
@@ -76149,7 +76239,6 @@ moroccanexcursions.com, 1
 moroccomiami.com, 1
 moroccotodaynews.ga, 1
 morogoro.tk, 1
-moromsmile.com, 1
 morooi.cn, 1
 morosystems.cloud, 1
 morox.top, 1
@@ -76196,6 +76285,7 @@ moscowtimes.tk, 1
 mosdosug.ml, 1
 moseic.com, 1
 moseleyelectronics.com, 1
+moselwi.gov, 1
 moseracctg.com, 1
 mosfet.cz, 1
 mosfetkiller.de, 1
@@ -76306,6 +76396,7 @@ motorcyclesafer.com, 1
 motorialab.com, 0
 motoridiricerca.tk, 1
 motornaolja.com, 1
+motoroilinfo.com, 0
 motorpointarenacardiff.co.uk, 1
 motorring.ru, 1
 motorslopers.tk, 1
@@ -76352,6 +76443,7 @@ mountainbatchers.de, 1
 mountainbell.net, 1
 mountaincastle.store, 1
 mountainchalet.blue, 1
+mountaingrovemo.gov, 1
 mountainspringsrentals.ca, 1
 mountaintree.eu, 1
 mountainutilities.eu, 1
@@ -76559,7 +76651,7 @@ mrnh.tk, 1
 mrnice.ml, 1
 mrnonz.com, 1
 mrpanipiales.com, 1
-mrprintables.com, 1
+mrrjva.gov, 1
 mrs-labo.jp, 1
 mrs-shop.com, 1
 mrsbairds.com, 0
@@ -76578,7 +76670,6 @@ mrston.ml, 1
 mrstuudio.ee, 1
 mrtg.com, 1
 mrtunnel.club, 1
-mruczek.ga, 1
 mruganiepodspacja.pl, 1
 mrupert.com, 1
 mrupp.eu, 1
@@ -76596,7 +76687,6 @@ ms0s.com, 1
 ms295.com, 1
 msa-aesch.ch, 1
 msa.bank, 1
-msafiri.co, 1
 msahebhonar.com, 1
 msaludasuhogar.com, 1
 msar.eu, 1
@@ -76693,6 +76783,7 @@ mtasts.xyz, 1
 mtauburnassociates.com, 1
 mtb.wtf, 1
 mtbfoodie.com, 1
+mtcoks.gov, 1
 mtcq.jp, 1
 mtd.org, 1
 mtd.ovh, 1
@@ -76717,6 +76808,7 @@ mtirc.co, 1
 mtiryaki.com, 1
 mtlabs.jp, 1
 mtlconcerts.com, 1
+mtlegnews.gov, 1
 mtltransport.com, 1
 mtludlow.co.uk, 1
 mtmedia.org, 1
@@ -76729,6 +76821,7 @@ mtr.md, 1
 mtr123.cn, 0
 mtran.co, 1
 mtravelers.net, 1
+mtredistricting.gov, 1
 mtrock.ru, 1
 mtrx.tech, 1
 mts-energia.eu, 1
@@ -76736,6 +76829,7 @@ mtsoftware.com.au, 1
 mtsolar.es, 1
 mtthwbrd.com, 1
 mtv.re, 1
+mtvernonlisbonpd-ia.gov, 1
 mtvroadies.tk, 1
 mtz-bu.gq, 1
 mtz-info.gq, 1
@@ -76897,6 +76991,7 @@ multsearch.eu.org, 1
 mum.ceo, 1
 muma.cf, 1
 muma.gq, 1
+muma.ml, 1
 mumablue.com, 1
 mumakil.fi, 0
 mumbaionlinegifts.com, 1
@@ -76949,6 +77044,7 @@ muneni.co.za, 1
 munera.ca, 1
 munfordtn.gov, 1
 mungdog.com, 1
+munialajuela.go.cr, 1
 munich-eventlocations.de, 1
 munkavedelemaruhaz.hu, 0
 munki.org, 1
@@ -76997,6 +77093,7 @@ murphy-law.net.ru, 1
 murray.xyz, 1
 murraya.cn, 1
 murraycoin.org, 1
+murraycountymn.gov, 1
 mursa.tk, 1
 mursatov.tk, 1
 murster.tw, 1
@@ -77192,6 +77289,7 @@ mvarsamis.com, 1
 mvbits.com, 1
 mvbug.com, 1
 mvccp.co.za, 1
+mvdmt.gov, 1
 mviess.de, 1
 mvisioncorp.com, 1
 mvistatic.com, 1
@@ -77308,7 +77406,6 @@ my4g.net, 1
 my4thtelco.com.sg, 1
 my4thtelco.sg, 1
 my77.vip, 1
-myabcm.com, 1
 myaccount.google.com, 1
 myactivity.google.com, 1
 myadpost.com, 1
@@ -77348,7 +77445,6 @@ mybeancloud.co.za, 1
 mybeautyjobs.de, 1
 mybestbook.tk, 1
 mybestbooks.gq, 1
-mybestmattress.com, 1
 mybestteam.tk, 1
 mybestwebsitebuilder.com, 1
 mybetternormal.org, 1
@@ -77495,7 +77591,6 @@ mydslwebstats.co.uk, 1
 mydsomanager.com, 1
 myduffyfamily.com, 1
 myeasybooking.de, 1
-myeberspaecher.com, 1
 myebony.cam, 1
 myecms.com, 1
 myecopanda.com, 1
@@ -77732,6 +77827,7 @@ mynexuz.be, 1
 mynic.my, 1
 mynimo.com, 1
 mynissan.ml, 1
+mynjhelps.gov, 1
 mynn.io, 0
 mynn.ml, 1
 mynook.info, 1
@@ -77746,7 +77842,6 @@ myonlinedating.club, 1
 myonlinemovies.ga, 1
 myonlinevehicleinsurance.com, 1
 myopd.in, 1
-myoptimalbrain.com, 1
 myoregon.gov, 1
 myotopie.de, 0
 myoueb.fr, 1
@@ -77947,7 +78042,6 @@ mystic-falls.tk, 1
 mystic-welten.de, 1
 mysticallyminded.com.au, 1
 mysticconsult.com, 1
-mystickphysick.com, 1
 mysticmedia.net, 1
 mystinkefinger.de, 1
 mystorage.work, 1
@@ -78161,6 +78255,7 @@ nachtmuziek.info, 1
 nacin.com, 1
 nacionaltelha.com.br, 1
 nacktetatsachen.at, 0
+nacktwanderfreunde.de, 1
 nackwallpapers.ml, 1
 nacnkabiltrim.cf, 1
 nacocu.cf, 1
@@ -78312,7 +78407,6 @@ namaperempuan.com, 1
 namazon.org, 1
 namdak.com, 1
 namecoin.org, 1
-namedaemon.com, 1
 namegen.jp, 1
 namegrep.com, 1
 nameid.org, 1
@@ -78815,7 +78909,6 @@ nbavc.com, 1
 nbavg.com, 1
 nbayouxi.com, 1
 nbclinic.co.uk, 1
-nbhorsetraining.com, 1
 nbib.gov, 1
 nbis.gov, 1
 nbl.org.tw, 1
@@ -78836,6 +78929,7 @@ nca.ink, 1
 ncamarquee.co.uk, 1
 ncands.net, 1
 ncarmine.com, 1
+ncauditor.gov, 1
 ncc-efm.com, 1
 ncc-efm.org, 1
 ncc-qualityandsafety.org, 1
@@ -78844,6 +78938,7 @@ nccoe.org, 1
 ncdc.pt, 1
 ncea.net.au, 1
 ncegs.sk, 1
+ncem.gov, 1
 nchangfong.com, 0
 nchponline.org, 1
 ncic.gg, 1
@@ -78854,6 +78949,7 @@ ncksrv.eu, 1
 ncksrv.net, 1
 ncksrv.nl, 1
 ncksrv.org, 1
+nclea.gov, 1
 nclf.net, 0
 ncli-design.com, 1
 ncloud.freeddns.org, 1
@@ -78868,10 +78964,12 @@ ncrypt.ai, 1
 ncrypt.at, 1
 ncs-cleaning.dk, 1
 ncsadministraties.nl, 1
+ncsbe-apps.gov, 1
 ncsc.gov.uk, 1
 ncsccs.com, 1
 nctx.co.uk, 1
 ncua.gov, 1
+ncuc.gov, 1
 nd.fyi, 1
 ndaal.eu, 1
 ndarville.com, 1
@@ -78881,6 +78979,8 @@ ndev.tk, 1
 ndfirefighter.com, 1
 ndhlink.com, 1
 ndibba.com, 1
+ndlegis.gov, 1
+ndlegistest.gov, 1
 ndmath.club, 1
 ndmibiza.com, 1
 ndns.ga, 1
@@ -78979,7 +79079,7 @@ needsth.top, 0
 needsupport.us, 1
 neeerd.org, 1
 neel.ch, 1
-neemdetijd.nl, 1
+neemdetijd.nl, 0
 neemo.nz, 1
 neemzy.org, 1
 nees.ga, 1
@@ -79028,7 +79128,6 @@ neildaniels.com, 1
 neilfarrington.com, 1
 neilgaimanphilippines.tk, 1
 neilhosting.net, 1
-neillans.co.uk, 1
 neillans.com, 1
 neilpatel.com, 1
 neilwynne.com, 1
@@ -79107,6 +79206,7 @@ nemzetizaszlok.hu, 1
 nenapu.tk, 1
 nenderus.su, 1
 neneko.moe, 1
+nengzhen.com.cn, 1
 neniu.gr, 1
 nenkin-kikin.jp, 1
 neno.io, 1
@@ -79234,7 +79334,6 @@ nerull7.info, 1
 nerv.com.au, 1
 nerven.se, 1
 nervi.ga, 1
-nes-watch.de, 1
 nesabamedia.com, 1
 nesbase.com, 1
 nesez.com, 1
@@ -79254,6 +79353,7 @@ nestor.nu, 1
 nestra.tk, 1
 nestreeo.com, 1
 neswec.org.uk, 1
+net-combo-ja.com, 1
 net-file.tk, 1
 net-investissement.fr, 1
 net-news.gq, 1
@@ -79564,7 +79664,6 @@ new-black-order.com, 1
 new-boiler-prices.co.uk, 1
 new-jersey-online-casinos.com, 1
 new-medic.com, 1
-new-ms.com, 1
 new-mvp.com, 1
 new-process.ch, 1
 new-process.com, 1
@@ -79576,11 +79675,13 @@ new-tuning.tk, 1
 new-vip.com, 1
 new-way.ml, 1
 new-web-studio.com, 1
+new10.com, 1
 new2h.com, 1
 newagehoops.com, 1
 newantiagingcreams.com, 1
 newapparatus.com, 1
 newasa.ga, 1
+newaygocountymi.gov, 1
 newbabylon.tk, 1
 newbackup.ml, 1
 newbasemedia.us, 1
@@ -79608,6 +79709,7 @@ newburyparklandscapelighting.com, 1
 newburyparkoutdoorlighting.com, 1
 newcars.tk, 1
 newcastlemoneyman.com, 1
+newcastleok.gov, 1
 newchance.store, 1
 newcharmed.tk, 1
 newchoicesspb.ru, 1
@@ -79615,6 +79717,7 @@ newcitygas.ca, 1
 newcityinfo.ch, 0
 newcityinfo.info, 1
 newcitystudio.ch, 0
+newcombny.gov, 1
 newconcept.tk, 1
 newcontext.com, 1
 newcreamforface.com, 1
@@ -79648,6 +79751,7 @@ newholland.tk, 1
 newhomedesign.tk, 1
 newhope.org.au, 1
 newhopeofindiana.org, 1
+newhopeplacement.com, 1
 newillusion.tk, 1
 newind.info, 1
 newinf.at, 1
@@ -79671,6 +79775,7 @@ newmatworld.com, 1
 newmed.com.br, 1
 newmediaone.net, 1
 newmeproducts.com, 1
+newmilfordct.gov, 1
 newmusic.org, 1
 newmusicjackson.org, 1
 newmuslims.tk, 1
@@ -79709,7 +79814,6 @@ news60.tk, 1
 news89.cf, 1
 news89.ga, 1
 news89.gq, 1
-newsa2.com, 1
 newsall.gr, 1
 newsarmenia.tk, 1
 newsarticle.ml, 1
@@ -79780,6 +79884,7 @@ newtrackon.com, 1
 newtravelplans.com, 1
 newusatoday.ga, 1
 newvehicle.com, 1
+newwaterford-oh.gov, 1
 newway.ie, 1
 newwind.tk, 1
 newworldnewlife.tk, 1
@@ -79842,7 +79947,6 @@ nextiva.com, 1
 nextlevel-it.co.uk, 1
 nextmbta.com, 1
 nextme.se, 1
-nextnely.com, 1
 nextnet.cc, 1
 nextos.com, 1
 nextprotocol.tech, 1
@@ -79963,6 +80067,7 @@ nhaoi.com, 0
 nhatrang.tk, 1
 nhatrangbooks.com, 1
 nhbp-nsn.gov, 1
+nhbp.gov, 1
 nhccnews.org, 1
 nhchalton.com, 1
 nhdsilentheroes.org, 1
@@ -80324,7 +80429,6 @@ niloxy.com, 1
 nilpointer.com, 1
 nilrem.org, 0
 nils.ch, 1
-nilsanenglish.com, 1
 nilsnet.tk, 1
 nimairdrop.com, 1
 nimanranch.com, 1
@@ -80347,6 +80451,7 @@ nimnadasl.tk, 1
 nimnordic.com, 1
 nimus.tk, 1
 nin.to, 1
+nina-laaf.de, 1
 nina-woerz.tk, 1
 ninaafenehjelm.com, 1
 ninadevil.org, 1
@@ -80562,7 +80667,6 @@ nn9728.co, 1
 nndfn.com, 1
 nnews.tk, 1
 nnkkserver02.ddns.net, 1
-nnnow.com, 1
 nnsa-ecp.org, 1
 no-data.tk, 1
 no-eye-deer.tk, 1
@@ -80599,6 +80703,7 @@ nober.tk, 1
 nobilefoods.com, 1
 nobitex.net, 1
 noble-diagnostic.com, 1
+noblecountyprosecutoroh.gov, 1
 nobledust.com, 1
 nobleparkapartments.com.au, 1
 noblesmart.com, 1
@@ -80627,7 +80732,6 @@ nodecdn.net, 1
 nodecraft.com, 1
 nodeedge.com, 1
 nodefoo.com, 1
-nodegalaxy.com, 1
 nodejs.de, 1
 nodelab-it.de, 1
 nodelia.com, 1
@@ -80648,6 +80752,7 @@ noellabo.jp, 1
 noematic.space, 1
 noemax.com, 1
 noeontheend.com, 1
+noexcusesc.gov, 1
 noexec.org, 1
 noez.de, 1
 nofilter.gq, 1
@@ -80720,6 +80825,7 @@ nomadicrootsco.com, 1
 nomadlist.com, 1
 nomadproject.io, 0
 nomadworld.net, 1
+nomasfraudecolorado.gov, 1
 nomaspicaduras.com, 1
 nomaster.cc, 1
 nomenclator.org, 1
@@ -80756,10 +80862,8 @@ nooben.com, 1
 noobit.org, 1
 noobow.me, 1
 noobsrus.co.uk, 1
-noobsunited.de, 1
 noobswhatelse.net, 1
 noobunbox.net, 1
-noodles.net.nz, 0
 noodles.wtf, 1
 noodletwister.com, 1
 noodletwister.net, 1
@@ -80875,10 +80979,11 @@ nortecompartidoexperience.es, 1
 nortecultural.tk, 1
 northafrican.tk, 1
 northampton-vets.co.uk, 1
-northatlantalaw.net, 1
+northaugustasc.gov, 1
 northbayvillage-fl.gov, 1
 northbengaltourism.com, 1
 northbrisbaneapartments.com.au, 1
+northcharlestonsc.gov, 1
 northcoastlabs.com, 1
 northconsulting.fr, 1
 northcountykiaparts.com, 1
@@ -80929,6 +81034,7 @@ norway.ml, 1
 norwayinternetstuffs4u.tk, 1
 norwestantennas.com.au, 1
 norwichzen.org.uk, 1
+norwoodma150.gov, 1
 norys-escape.de, 1
 norzetto.com, 1
 nos-medias.fr, 1
@@ -81077,6 +81183,7 @@ notyouraverageamerican.com, 0
 nou9ta.tk, 1
 noudjalink.nl, 1
 nougat-anduze.fr, 1
+noujoumtounes.com, 1
 noumeet.com, 1
 nourishandnestle.com, 1
 nourishbyfrida.com, 1
@@ -81310,6 +81417,7 @@ nsure.us, 1
 nsworks.com, 0
 nszero.tk, 1
 ntags.org, 1
+ntcoss.org.au, 1
 ntcp.ph, 1
 nte.email, 1
 ntecha.com, 1
@@ -81341,7 +81449,6 @@ nubian.tk, 1
 nubilum.noip.me, 1
 nubium.net, 1
 nubu.at, 1
-nubunk.com.ng, 1
 nucameratoezicht.nl, 1
 nuclea.id, 0
 nuclea.site, 1
@@ -81388,7 +81495,7 @@ nukeshop.tk, 1
 nukleoti.de, 1
 nukleovisual.com, 1
 null-d.com, 1
-null-life.com, 1
+null-life.com, 0
 nullbit.tk, 1
 nullbox.co, 1
 nulle-part.org, 1
@@ -81422,7 +81529,6 @@ numerobis.tk, 1
 numerologist.com, 1
 numerouno.ml, 1
 numinous-travel.com, 1
-numismatica.info.ve, 0
 numismed-seniorcare.de, 1
 numista.com, 1
 nummer378.de, 1
@@ -81447,7 +81553,6 @@ nuovaelle.it, 1
 nuovicasino.it, 1
 nupef.org.br, 0
 nuquery.com, 1
-nuquery.org, 1
 nur.berlin, 1
 nuranagi.rocks, 1
 nureg.club, 1
@@ -81585,9 +81690,9 @@ nyamulab.net, 1
 nyan.it, 1
 nyan.kim, 1
 nyan.stream, 1
-nyangasm.com, 1
-nyangasm.net, 1
-nyangasm.org, 1
+nyangasm.com, 0
+nyangasm.net, 0
+nyangasm.org, 0
 nyansparkle.com, 1
 nyantec.com, 1
 nyatane.com, 1
@@ -81612,6 +81717,7 @@ nyhemsgarden.se, 1
 nyheter-sverige.ga, 1
 nyiarlumar.tk, 1
 nyip.co.uk, 1
+nyirc.gov, 1
 nylasercenter.com.pl, 1
 nylevemusic.com, 1
 nyloc.de, 1
@@ -81628,6 +81734,7 @@ nysis.net, 1
 nysis.org, 1
 nysteak5.com, 1
 nystrom.tk, 1
+nystrs.gov, 1
 nystudio107.com, 1
 nytrafficticket.com, 1
 nyyu.tk, 1
@@ -81677,6 +81784,7 @@ o-s.no, 1
 o-sp.com, 1
 o00228.com, 1
 o0c.cc, 1
+o0o.one, 1
 o15y.com, 1
 o2.tn, 1
 o2design.tk, 1
@@ -81707,6 +81815,7 @@ oahpmdata.net, 1
 oaic.gov.au, 1
 oakbarnvets.com, 1
 oakbarnwellness.com, 1
+oakcreekwi.gov, 1
 oaken.duckdns.org, 1
 oakesfam.net, 1
 oakface.club, 1
@@ -81777,6 +81886,7 @@ obg-global.com, 1
 obg.ceo, 1
 obgalslancaster.com, 1
 obgynecologistnyc.com, 1
+obgynmiamifl.com, 1
 obgynqueensnyc.com, 1
 obi-betriebsrat.tk, 1
 obihoernchen.de, 1
@@ -81904,6 +82014,7 @@ ocenka-nedv.ml, 1
 ocenka.tk, 1
 ocenovani-inspekce.cz, 1
 ocf.io, 1
+ocfelections.gov, 1
 ocg-card.com, 1
 ochaken.cf, 1
 ochatoosenbei.tk, 1
@@ -81960,6 +82071,7 @@ oculta.ml, 1
 oculus.com, 1
 ocupat.ro, 1
 ocuuc.org, 1
+ocvote.gov, 1
 ocwr.gov, 1
 ocydias.tk, 1
 odabilocal.com, 1
@@ -82003,7 +82115,7 @@ odlicomul.ga, 1
 odnostranichnik.tk, 1
 odo-pro.ru, 1
 odolbeau.fr, 1
-odonoghue.kiwi, 1
+odonoghue.kiwi, 0
 odonti.com, 1
 odontologiawilliampizarro.com, 1
 odoo.co.th, 1
@@ -82091,8 +82203,6 @@ offgridauto.com, 1
 office-addins.com, 1
 office-aslabo.com, 1
 office-de-tourisme.net, 0
-office-discount.at, 1
-office-discount.de, 1
 office-dolmetscher-scharnagl.de, 1
 office-furniture-direct.co.uk, 1
 office-house.tk, 1
@@ -82230,7 +82340,6 @@ oidrava.tk, 1
 oifc.in, 1
 oikontroloi.tk, 1
 oikosweb.com, 1
-oil-ecn.ru, 1
 oil-heaters.tk, 1
 oilfieldinjury.attorney, 1
 oilman.ml, 1
@@ -82271,6 +82380,7 @@ okburrito.com, 1
 okcasino.ga, 1
 okchousebuyer.com, 1
 okeeferanch.ca, 1
+okemahok.gov, 1
 okhanvatansever.tk, 1
 okhrana.agency, 1
 okib.ca, 1
@@ -82289,6 +82399,7 @@ okkurlabs.com, 1
 oklahomafibroids.com, 1
 oklahomamoversassociation.org, 1
 oklahomanotepro.com, 1
+oklahomaworkstogether.gov, 1
 okmaybe.ca, 1
 okmirror.net, 1
 okmulgeecounty.gov, 1
@@ -82357,6 +82468,7 @@ oldbrookinflatables.co.uk, 1
 oldbrookmarqueehire.co.uk, 1
 oldcars.tk, 1
 oldcastle.tk, 1
+oldcc.gov, 1
 oldcity.tk, 1
 oldcitysmokehouse.com, 1
 oldcold.co, 1
@@ -82459,6 +82571,7 @@ oliverspringer.eu, 1
 oliverst.com, 1
 oliverwenz.de, 1
 olivetbgc.org, 1
+olivetownship-mi.gov, 1
 olivia.cf, 1
 olivialufkin.tk, 1
 olivier-giroud.tk, 1
@@ -82524,6 +82637,7 @@ om.yoga, 1
 om1.com, 1
 omachi.top, 1
 omaedu.ro, 1
+omag.gov, 1
 omahachapterone.org, 1
 omaharoofpros.com, 1
 omahcoin.com, 1
@@ -82669,7 +82783,6 @@ one-host.ga, 1
 one-million-places.com, 1
 one-news.net, 0
 one-pixel.tk, 1
-one-promise.org, 1
 one-resource.com, 1
 one-s.co.jp, 1
 one-tab.com, 1
@@ -82821,7 +82934,6 @@ online-mobile-phone-shop.tk, 1
 online-news-usa.tk, 1
 online-pochta.ml, 1
 online-pr.at, 1
-online-results.dk, 1
 online-scene.com, 1
 online-shop-equipment.tk, 1
 online-sql-editor.com, 1
@@ -82879,6 +82991,7 @@ onlinelegalmedia.com, 1
 onlineloansnocreditcheck.tk, 1
 onlineltctraining.com, 1
 onlinemagento.com, 1
+onlinemarketingmuscle.com, 1
 onlinemarketingtraining.co.uk, 1
 onlinenewspaperclassifieds.com, 1
 onlinepaydayloans365.tk, 1
@@ -82952,6 +83065,7 @@ onnee.ch, 1
 onnext.cc, 1
 onodera.com.br, 1
 onoelixir.gr, 1
+onondaga.gov, 1
 onoranze-funebri.biz, 1
 onoranzefunebri.roma.it, 1
 onore.org, 1
@@ -82998,7 +83112,6 @@ ontrio.cz, 1
 ontsnappingskamer.nl, 1
 ontstoppingsdienst123.be, 1
 ontwerpdenkers.nl, 1
-onurer.net, 1
 onvey.io, 1
 onvirt.de, 1
 onvori.com, 1
@@ -83084,6 +83197,7 @@ open-mesh.org, 1
 open-novel.work, 1
 open-sauce-recipes.co.uk, 1
 open-source.gr, 1
+open-to-repair.fr, 0
 open-trip.id, 1
 open.film, 1
 open.gl, 1
@@ -83112,7 +83226,7 @@ openclima.com, 1
 openclub24.ru, 1
 openconf.uk, 1
 openconnect.com.au, 1
-opencpes.com, 1
+opencpes.com, 0
 opencpes.info, 1
 opencpes.io, 1
 opencpes.net, 1
@@ -83142,6 +83256,7 @@ openmetals.com, 1
 openmind.ga, 1
 openmirrors.cf, 1
 openmirrors.ml, 1
+openmtbmap.org, 1
 opennippon.com, 1
 opennippon.ru, 1
 openpictures.ch, 1
@@ -83157,6 +83272,7 @@ openrainbow.net, 1
 openrainbow.org, 1
 openre.site, 1
 openrealestate.co, 1
+openresearch.amsterdam, 1
 openreview.net, 1
 openroademail.com, 1
 openrtm.org, 1
@@ -83279,6 +83395,7 @@ opsnotepad.com, 1
 opstory.com, 1
 opstrengning.tk, 1
 opsystems.bg, 1
+optenhoefel.de, 1
 opti-net.at, 1
 opti-net.solutions, 1
 optical-faking.tk, 1
@@ -83365,6 +83482,7 @@ oralemiraza.com, 1
 oralight.ml, 1
 orang-utans.com, 1
 orangeacademy.cz, 1
+orangecityfl.gov, 1
 orangecomputers.com, 1
 orangefab.asia, 1
 orangefinanse.com.pl, 1
@@ -83377,6 +83495,7 @@ orangenuts.in, 1
 orangerock.tk, 1
 orangesquash.org.uk, 0
 orangesquirrelevents.co.uk, 1
+orangetexas.gov, 1
 orangtua.tk, 1
 orangutan.org, 1
 oranjerie.tk, 1
@@ -83591,7 +83710,6 @@ orthograph.ch, 1
 orthopedic-shoes.tk, 1
 orthopedicsalon.tk, 1
 orthosportiv.de, 1
-orthotictransfers.com, 1
 orthotrafficest.ga, 1
 ortizmario.com, 1
 ortocraft.tk, 1
@@ -83615,6 +83733,7 @@ os76.xyz, 1
 osa.org.za, 1
 osac.gov, 1
 osacrypt.studio, 1
+osagecounty-ok.gov, 1
 osagenation-nsn.gov, 1
 osagokasko.ga, 1
 osaka-hero-project.com, 1
@@ -83703,6 +83822,7 @@ osomjournal.org, 1
 osorio.io, 0
 ospree.me, 1
 osrs.wiki, 1
+ossipee-nh.gov, 1
 osssr.com, 1
 osszekotatermeszettel.hu, 1
 ostan-collections.net, 1
@@ -83748,6 +83868,7 @@ oswaldlabs.com, 1
 oswalds.co.uk, 1
 oswaldsmillaudio.com, 1
 oswbouncycastles.co.uk, 1
+osworx.net, 1
 oszri.hu, 1
 ot-vinta.tk, 1
 ota365.com, 1
@@ -83841,6 +83962,7 @@ our-box.net, 1
 our-little-secret.tk, 1
 our-store.ml, 1
 ourai.ws, 1
+ourayco.gov, 1
 ourchoice2016.com, 1
 ourcloud.at, 1
 ourcoast.com.au, 1
@@ -84012,6 +84134,7 @@ ovvy.net, 0
 owbt.pl, 1
 owddm.com, 1
 owennelson.co.uk, 1
+owensboroky.gov, 1
 owenschumacher.tk, 1
 owensmith.website, 1
 owid.cloud, 1
@@ -84046,7 +84169,6 @@ owncloud.ml, 0
 owner.pw, 1
 ownerbusiness.org, 1
 ownersre.com, 1
-ownian.com, 1
 owningless.fr, 1
 ownmay.com, 0
 ownparking.com, 1
@@ -84127,7 +84249,6 @@ ozonytron.com, 1
 ozonytron.de, 1
 ozonytron.eu, 1
 oztorah.com, 1
-ozudogru.com, 1
 ozvolvo.org, 1
 ozzyfant.de, 1
 p-0.me, 1
@@ -84338,7 +84459,6 @@ pagalworld.name, 1
 pagalworld.net, 1
 pagalworld.org, 1
 pagalworld.tv, 1
-pagalworld.us, 1
 pagalworld.wiki, 1
 pagancollective.cf, 1
 paganismguide.com, 1
@@ -84397,6 +84517,7 @@ painclinic.tk, 1
 paincore.tk, 1
 paindata.dk, 1
 painefamily.co.uk, 1
+painesvillemunicipalcourt-ohio.gov, 1
 painetcompagnie.fr, 1
 painfreenyc.com, 1
 painful.fun, 1
@@ -84513,8 +84634,12 @@ palmas.lk, 1
 palmavile.us, 0
 palmaville.com, 0
 palmbeachcuisine.com, 1
+palmbeachelections.gov, 1
+palmbeachvotes.gov, 1
 palmbeachwebsitehosting.com, 1
+palmcoast.gov, 1
 palmcoastbusinessnetwork.com, 1
+palmdesert.gov, 1
 palmen-apotheke.de, 1
 palmfan.com, 1
 palmiye.tk, 1
@@ -84642,6 +84767,7 @@ panoramica.tk, 1
 panoramique.tk, 1
 panoramiquesorganya.tk, 1
 panoti.com, 0
+panpa.ca, 1
 panpsychism.com, 1
 panpsychist.com, 1
 pansino.net, 1
@@ -84807,7 +84933,7 @@ paremvasi.net, 1
 parentelement.com, 1
 parentheseardenne.be, 0
 parenthood.guide, 1
-parentingalpha.com, 1
+parentingalpha.com, 0
 parentingplaydough.tk, 1
 parentinterview.com, 1
 parentpayments.com.au, 1
@@ -84848,6 +84974,7 @@ parizhanka.tk, 1
 park-trek.com, 1
 parkbee.com.br, 1
 parkcitycu.org, 1
+parkcounty-wy.gov, 1
 parked-domain.net, 1
 parkefficient.de, 1
 parkercs.cf, 1
@@ -84862,7 +84989,6 @@ parkerforum.cf, 1
 parkerforum.tk, 1
 parkerplumbingcompany.com.au, 1
 parkers.cf, 1
-parkers.co.uk, 1
 parkers.ga, 1
 parkers.gq, 1
 parkers.ml, 1
@@ -84870,6 +84996,7 @@ parkers.tk, 1
 parkersbarbershop.com, 1
 parket.gq, 1
 parketsn.ru, 1
+parkettdielen.net, 1
 parki.cloud, 1
 parking4less.com, 0
 parkinginparis.fr, 1
@@ -84992,6 +85119,7 @@ partyzone.ie, 1
 paru-design.com, 1
 parvaneh.fr, 1
 parys.org, 1
+pasadena.gov, 1
 pasadenapooch.org, 1
 pasalt.com, 1
 pasarella.eu, 1
@@ -85507,6 +85635,7 @@ pcrecovery.ga, 1
 pcrypt.org, 1
 pcsafe.cf, 1
 pcsbrasil.ml, 1
+pcscotus.gov, 1
 pcsetting.com, 1
 pcsolutionsofwillis.ga, 1
 pcsolutionsofwillis.gq, 1
@@ -85551,7 +85680,6 @@ pdfsearch.org, 0
 pdfsearches.com, 1
 pdfsheeters.ga, 1
 pdfsheetest.ga, 1
-pdimitrov.com, 1
 pdkrawczyk.com, 1
 pdox.net, 1
 pdpa.ai, 1
@@ -85562,6 +85690,7 @@ pdsports.network, 1
 pdstudios.cz, 0
 pdtech.ltd, 1
 pdthings.net, 1
+pdtppfl.gov, 1
 pdvsaargentina.com.ar, 1
 pe-bank.jp, 1
 pe.search.yahoo.com, 0
@@ -85582,7 +85711,6 @@ peakd.com, 1
 peakhillre.ga, 1
 peakhomeloan.com, 1
 peakseoservices.co.uk, 1
-peakslead.com, 1
 peaksloth.com, 1
 peaksports.com, 1
 peakvets.co.uk, 1
@@ -85593,6 +85721,7 @@ pearbloom.com, 1
 pearcom.co.uk, 1
 pearlbridal.com.au, 1
 pearlclo.com, 1
+pearlcohen.com, 1
 pearljamargentina.tk, 1
 pearlsonly.ca, 1
 pearlsonly.com, 1
@@ -85638,7 +85767,6 @@ pediatricdentistslilburnga.com, 1
 pedicure-stadspolders.nl, 1
 pedicurean.nl, 1
 pedicureduiven.nl, 1
-pedigreetechnologies.com, 1
 pedikura-vitu.cz, 1
 pedimanie.cz, 1
 pedimoda.com.br, 1
@@ -85735,7 +85863,7 @@ pelikan.xyz, 1
 pellegrino.ar, 1
 pellet.pordenone.it, 1
 pelletgrillreviews.com, 1
-pelletizermill.com, 1
+pelletizermill.com, 0
 pelletsprice.com, 1
 pellikaan.xyz, 1
 pelmeni.cf, 1
@@ -85778,7 +85906,7 @@ pengi.me, 1
 pengisatelier.net, 1
 pengui.uk, 1
 penguin.co.uk, 1
-penguinbits.net, 1
+penguinbits.net, 0
 penguinclientsystem.com, 1
 penguindrum.moe, 1
 penguinos.tk, 1
@@ -85789,11 +85917,11 @@ penholder.ga, 1
 peni.tk, 1
 peniarth.cymru, 1
 peninsulaadvancedurology.com, 1
-peninsuladoctor.com, 1
 penisenlargementpro.com, 1
 penispumpen.se, 1
 pennan.tk, 1
 pennergold.net, 1
+pennhillspa.gov, 1
 pennington.io, 1
 pennymail.ga, 1
 pennywise.tk, 1
@@ -86139,6 +86267,7 @@ pet-tekk.co.uk, 1
 peta.tk, 1
 petabits.de, 1
 petabundant.ga, 1
+petal-ms.gov, 1
 petalkr.com, 1
 petalsoft.tk, 1
 petamazing.ga, 1
@@ -86536,7 +86665,6 @@ phillipskaiser.com, 1
 phillipspediatricsoxford.com, 1
 phillprice.com, 0
 philly-injury-law.com, 1
-phillyinjurylawyer.com, 1
 philna.sh, 1
 philo.shop, 1
 philographie.com, 1
@@ -86606,7 +86734,6 @@ phonesexchat.com, 1
 phonesexnumbers.com, 1
 phonet.tk, 1
 phonetika.org, 1
-phonetikos.com, 1
 phonetrace.tk, 1
 phonetrack.tk, 1
 phoneyourselfers.ga, 1
@@ -86676,14 +86803,13 @@ photosight.tk, 1
 photosoftware.nl, 1
 phototechnique.tk, 1
 phototravel.uk, 1
-phototrio.com, 1
+phototrio.com, 0
 photoutils.com, 1
 photowall.tk, 1
 photowhimsybymegan.com, 1
 phoxden.net, 1
 phoxmeh.com, 1
 phoxworld.com, 1
-php-developer.org, 1
 php-tuning.de, 1
 php.watch, 1
 phparcade.com, 1
@@ -86718,7 +86844,6 @@ phryneas.de, 1
 phsa.com.au, 1
 phsa.nz, 1
 phtalent.tk, 1
-phtechcommunity.org, 1
 phuductms.com, 1
 phuket-idc.com, 1
 phuket-idc.de, 1
@@ -86832,7 +86957,6 @@ pickhdtvers.ga, 1
 pickhdtvest.ga, 1
 pickherznyeremeny.hu, 1
 picklinik.id, 1
-pickme.nl, 0
 pickmysoap.gr, 1
 picknetworkiscoming.sg, 1
 picknyeroizek.hu, 1
@@ -86943,6 +87067,7 @@ pikboxstore.com, 0
 pikecountyohcommissioners.gov, 1
 pikeitservices.com.au, 1
 piken.eu, 1
+piketonohio.gov, 1
 pikimusic.moe, 1
 pikio.pl, 1
 pikker.ee, 1
@@ -86976,6 +87101,7 @@ pilotandy.com, 1
 pilotcareercenter.com, 1
 pilotcareercentre.com, 1
 pilotgrowth.com, 1
+pilotknobmo.gov, 1
 pilotpov.com, 1
 pilotproject.tk, 1
 pilsen.fun, 1
@@ -87158,7 +87284,6 @@ pirateproxy.ist, 1
 pirateproxy.la, 1
 pirateproxy.ltda, 1
 pirateproxy.name, 1
-pirateproxy.one, 1
 pirateproxy.onl, 1
 pirateproxy.pl, 1
 pirateproxy.pw, 1
@@ -87213,6 +87338,7 @@ pit-stop-sto.tk, 1
 pitaiatrade.com, 1
 pitbooks.ga, 1
 pitbullclub.tk, 1
+pitbullsecuritysolutions.ca, 1
 pitch.com, 1
 pitchforkunion.tk, 1
 pitchup.com, 1
@@ -87309,6 +87435,7 @@ pizza-house.tk, 1
 pizza-odessa.com.ua, 1
 pizza-soprano.pl, 1
 pizzabesteld.nl, 1
+pizzabottle.com, 1
 pizzacontenta.tk, 1
 pizzafest.ddns.net, 1
 pizzagaming.tk, 1
@@ -87359,7 +87486,6 @@ pkphotobooths.co.uk, 1
 pkq5.com, 1
 pkrank.com, 1
 pkspskov.tk, 1
-pkudh.org, 1
 pkwalaw.com, 1
 pkwebsolutions.cf, 1
 pl-cours.ch, 0
@@ -87466,7 +87592,6 @@ planisware.live, 1
 planiswareusa.com, 1
 planisys.net, 1
 planitz.org, 1
-planktonforhealth.co.uk, 1
 planled.ga, 1
 planlos.net, 1
 planmemberpartners.com, 1
@@ -87479,7 +87604,7 @@ plano.gq, 1
 planolowcarb.com, 1
 planosvivointernet.com.br, 1
 planosylicencias.de, 1
-planovivofibra.com.br, 1
+planovivofibra.com.br, 0
 planrow.com, 1
 plansaude.med.br, 1
 planshetnik.tk, 1
@@ -87540,7 +87665,6 @@ plateforme-exposant.com, 1
 plateformecandidature.com, 1
 plateriaaida.tk, 1
 platform-med.org, 1
-platform.ltd.uk, 1
 platform161.com, 0
 platform2020prague.com, 1
 platforma2020praha.cz, 1
@@ -87611,7 +87735,6 @@ playkids.com, 1
 playlisten.radio.br, 1
 playmat.com, 1
 playmei.com, 1
-playmfe.com, 1
 playmytime.com, 1
 playnation.io, 1
 playnow.com, 1
@@ -87653,6 +87776,7 @@ pldx.org, 1
 ple-conseil.fr, 1
 pleasantonca.gov, 1
 pleasantonmobilenotary.com, 1
+pleasantviewmi.gov, 1
 please-uwu.me, 1
 pleaseuseansnisupportedbrowser.ml, 1
 pleasure-science.com, 1
@@ -87870,7 +87994,6 @@ poc18.com, 1
 poc19.com, 1
 poc21.com, 1
 poc211.com, 1
-poc22.com, 1
 poc226.com, 1
 poc228.com, 1
 poc23.com, 1
@@ -87960,6 +88083,7 @@ poc995.com, 1
 poc996.com, 1
 poc997.com, 1
 poc998.com, 1
+pocahontascountyiowa.gov, 1
 pocakking.tk, 1
 pocatellonissanparts.com, 1
 pochoden-praha.cz, 1
@@ -88284,6 +88408,7 @@ pomockypredeti.sk, 1
 pomocniczy.eu.org, 1
 pomogidrugu.tk, 1
 pomogite.ml, 1
+pomonaca.gov, 1
 pomorskibereg.ml, 1
 pomost.ga, 1
 pomozmruczkom.pl, 1
@@ -88358,6 +88483,7 @@ popcowboyest.ga, 1
 popcultureshack.com, 1
 popdog.click, 1
 popecountyar.gov, 1
+popecountymn.gov, 1
 popeducation.ga, 1
 popfitclothing.com, 1
 popflow.cf, 1
@@ -88376,6 +88502,7 @@ popkins.ml, 1
 popkins.tk, 1
 popkultura.info.pl, 1
 popl.uz, 1
+poplargrove-il.gov, 1
 poplavok77.tk, 1
 poplite.xyz, 1
 popmagz.com, 1
@@ -88711,7 +88838,6 @@ potature.rimini.it, 1
 potature.roma.it, 1
 potcha.net, 1
 potemkin.tk, 1
-potentialunlockedtuition.com, 1
 poterepersonale.it, 1
 poterscy.pl, 1
 potgrowersunion.com, 1
@@ -88731,6 +88857,7 @@ potrahushki.tk, 1
 potreningu.pl, 1
 potrillionaires.com, 1
 potsdam.directory, 1
+pottcountyks.gov, 1
 potterish.com, 1
 potterperfect.tk, 1
 pottersheartministry.org, 1
@@ -88751,6 +88878,7 @@ poun.tk, 1
 poundgatepark.co.uk, 1
 poupee.me, 1
 poured-floors.tk, 1
+pourmoi.co.uk, 1
 pourout.org, 0
 pouwels-oss.nl, 1
 povar.ru, 1
@@ -88854,7 +88982,6 @@ pozitiffchik.tk, 1
 pozitiv.gq, 1
 pozitone.com, 1
 poziworld.com, 1
-pozlife.net, 1
 poznaj-siebie.pl, 1
 poznajrynek.pl, 1
 poznannoe-nepoznannoe.ru, 1
@@ -88882,6 +89009,7 @@ pplsvc.com, 1
 ppmathis.ch, 1
 ppmathis.com, 1
 ppmoon.com, 1
+ppms.gov, 1
 ppoou.co.uk, 1
 ppoozl.com, 1
 pppo.gov, 1
@@ -89028,7 +89156,6 @@ precisionclan.com, 1
 precisioncoolingco.com, 1
 precisiondentalnyc.com, 1
 precisiondigital-llc.com, 1
-precisionhealthpilot.org, 1
 precisionhockey.net, 1
 precisionicerinks.com, 1
 precisionlender.com, 0
@@ -89261,6 +89388,7 @@ priceremoval.net, 1
 pricesdoors.com, 1
 pricesniffer.co, 1
 pricetum.com, 1
+pricevillepdal.gov, 1
 pricevortex.com, 1
 prideindomination.com, 1
 pridnestrovye.gq, 1
@@ -89284,7 +89412,6 @@ primalshop.dk, 1
 primalsurvivor.net, 1
 primananda.com, 1
 primark.guru, 1
-primary.fit, 1
 primates.com, 1
 primaveradesign.com.br, 1
 primbit.ru, 1
@@ -89364,7 +89491,6 @@ printmydesigns.ml, 1
 printpoint.tk, 1
 printrr.ca, 1
 printserverpa.com, 1
-printus.de, 1
 printus.pro, 1
 printwasteminimizer.com, 1
 prinz.gg, 1
@@ -89402,12 +89528,11 @@ prismacloud.xyz, 1
 prismalite.com.br, 1
 prismaot.tk, 1
 prismapixel.studio, 1
-prisminfosys.com, 1
+prismosystems.com, 0
 prisonerresource.com, 1
 pristal.eu, 1
 pristinepotty.com, 1
 prisync.com, 1
-pritalk.com, 1
 pritchett.xyz, 1
 pritchi.tk, 1
 priv.gc.ca, 1
@@ -89545,7 +89670,6 @@ proagile.se, 1
 proalist.com, 1
 proalter.ch, 1
 proastec.com.br, 1
-probano.com, 1
 probase.ph, 1
 probateandplanning.com, 1
 probationforms.com, 1
@@ -89603,7 +89727,6 @@ procurs.us, 1
 procurx.pt, 1
 prod-simplesend-api.azurewebsites.net, 1
 prodampro.ru, 1
-prodatalabs.com, 1
 prodct.info, 1
 prodegree.com, 1
 prodentalsantacruz.es, 1
@@ -89613,7 +89736,6 @@ prodevsblog.com, 1
 prodhealthcare.org, 1
 prodietix.cz, 1
 prodigibook.com, 1
-prodigious.work, 1
 prodigyhacking.com, 1
 prodigyhq.io, 1
 prodinger.com, 1
@@ -89799,7 +89921,6 @@ projectbotticelli.com, 1
 projectbuild.tk, 1
 projectcolonisation.tk, 1
 projectemail.co, 1
-projectforge.org, 1
 projectfreehosting.ga, 1
 projectgazaabindo.com, 1
 projectguru.in, 1
@@ -89937,6 +90058,7 @@ property-catalogue.eu, 1
 property-tax.cf, 1
 property-tax.ga, 1
 property-tax.gq, 1
+propertyauctionaction.co.uk, 1
 propertycareincorporated.com, 1
 propertycrawl.com, 1
 propertydealer.ga, 1
@@ -90104,7 +90226,6 @@ provide-your-image.de, 1
 providence.org, 1
 providencecmc.com, 1
 providential.be, 1
-providerlijst.com, 1
 providerlijst.ml, 1
 providerlijst.nl, 1
 providmedical.com.ua, 1
@@ -90142,7 +90263,6 @@ proxybay.ink, 1
 proxybay.ist, 1
 proxybay.kim, 1
 proxybay.la, 1
-proxybay.lat, 1
 proxybay.ltd, 1
 proxybay.ltda, 1
 proxybay.one, 1
@@ -90171,7 +90291,6 @@ prtscloud.ddns.net, 1
 pru.com.hk, 1
 pru.hk, 1
 pruebapg.cl, 1
-pruikshop.nl, 1
 pruma.com.br, 1
 pruna.org, 1
 prushka.gq, 1
@@ -90373,7 +90492,6 @@ pt-d.ru, 1
 pt-server.de, 1
 pt.im, 1
 pt4.tech, 1
-pta-security.nl, 1
 pta.world, 1
 ptab2pt.ga, 1
 ptal.eu, 1
@@ -90386,7 +90504,6 @@ ptczone.tk, 1
 pteceng.com, 1
 pterodactyl.org.cn, 1
 pterodactylus.cz, 1
-pteroforge.com, 1
 ptfiber.com, 1
 ptfiber.ru, 1
 ptfiber.spb.ru, 1
@@ -90719,7 +90836,9 @@ pvphs98.com, 1
 pvplist.ml, 1
 pvplounge.com, 1
 pvpserverler.pro, 1
+pvpzone.fr, 1
 pvtschlag.com, 0
+pvtx.gov, 1
 pvv-vermietung.de, 1
 pwaiwm.site, 1
 pwanotes.ga, 1
@@ -90771,7 +90890,6 @@ pylad.se, 1
 pylon.bot, 1
 pymebi.cl, 1
 pymescentro.net, 1
-pymeup.org, 1
 pymtreceipt.com, 1
 pyopenssl.org, 1
 pypa.io, 1
@@ -90835,6 +90953,7 @@ qa.stg.fedoraproject.org, 1
 qabalah.ga, 1
 qabalah.jp, 1
 qabel.de, 1
+qac.gov, 1
 qaconstrucciones.com, 1
 qadmium.com, 1
 qadmium.tk, 1
@@ -90933,7 +91052,6 @@ qivonline.pt, 1
 qiwi.be, 1
 qixi.biz, 1
 qiyan.email, 0
-qjg.com.br, 1
 qkek.tk, 1
 qkka.org, 1
 qklshequ.com, 1
@@ -90955,7 +91073,6 @@ qmee.com, 1
 qmeriaux.fr, 1
 qmp-media.nl, 1
 qnected.nl, 1
-qnixon.com, 1
 qnotafm.com.co, 1
 qnq.moe, 1
 qnsgmd.com, 1
@@ -90990,7 +91107,6 @@ qqmingzi.cc, 1
 qqq6.com, 1
 qqq67.com, 1
 qqqq.plus, 1
-qqrss.com, 1
 qr.ae, 1
 qr.cl, 1
 qr.sb, 1
@@ -91427,7 +91543,6 @@ r-t-b.fr, 1
 r-t-n.tk, 1
 r.nf, 1
 r00tsolutions.ca, 1
-r0ck1t.com.au, 1
 r0t.co, 1
 r0uzic.net, 1
 r102.ch, 1
@@ -91785,7 +91900,6 @@ raffleshospital.co.id, 0
 rafo.tk, 1
 rafsis.com, 0
 raft.pub, 1
-rafting-japan.com, 1
 rafue.com, 1
 rafunnews.com, 1
 ragasto.nl, 1
@@ -92041,7 +92155,6 @@ rangzol.now.sh, 1
 ranjeetmehta.tk, 1
 rank-net.de, 1
 ranker.work, 1
-rankgiants.com, 1
 rankgrowup.com, 1
 rankia.ga, 1
 ranking-deli.jp, 1
@@ -92067,7 +92180,6 @@ ranson.com.au, 1
 rantalaholcomb.tk, 1
 rantamplan.tk, 1
 rantanda.com, 1
-rante.com, 1
 ranters.nl, 1
 rantevou.eu, 1
 ranyeh.co, 1
@@ -92159,6 +92271,7 @@ rateddomain.ml, 1
 ratelimited.me, 1
 ratelsec.com, 1
 ratepayeralliance.org, 1
+ratgeber-guide.de, 1
 rathbonesonline.com, 1
 rathgeb.org, 1
 rathorian.fr, 1
@@ -92242,13 +92355,11 @@ raycarruthersphotography.co.uk, 1
 raycon.io, 1
 raydius.de, 1
 rayfalling.com, 1
-rayhanshop.online, 1
 rayiris.com, 1
 raykitchenware.com, 1
 raym.ml, 1
 raymcbride.com, 1
 raymd.de, 1
-raymondelooff.nl, 1
 raymondha.ca, 1
 raymondha.com, 1
 raymundo.doctor, 1
@@ -92380,6 +92491,7 @@ rdmc.support, 1
 rdmrotterdam.nl, 1
 rdmshit.net, 1
 rdmtaxservice.com, 1
+rdns.cc, 1
 rdns.gq, 1
 rdto.io, 1
 rdv-cni.fr, 1
@@ -92396,7 +92508,6 @@ re-engines.com, 1
 re-leased.com, 1
 re-presented.de, 1
 re-security.com, 1
-re-wilding.com, 1
 re.yt.nom.br, 1
 reach-on.de, 1
 reach.gov, 1
@@ -92436,8 +92547,10 @@ readup.tk, 1
 ready2learn.eu, 1
 ready4bf.tk, 1
 readychurchsites.com, 1
+readycolorado.gov, 1
 readydedis.com, 1
 readyelec.com, 1
+readync.gov, 1
 readyrosie.com, 1
 readyrowan.com, 1
 readyrowan.org, 1
@@ -92513,7 +92626,6 @@ realinsurance.com.au, 1
 reality.news, 1
 reality0ne.com, 0
 realitycrazy.com, 1
-realitystarfacts.com, 1
 realitytoday.cf, 1
 realives.com, 1
 realkeywords.ga, 1
@@ -92549,7 +92661,6 @@ realtoraidan.com, 1
 realty-pochta.tk, 1
 realty.tatar, 1
 realtygroup-virginia.com, 1
-realtyink.net, 1
 realum.com, 1
 realum.de, 1
 realum.eu, 1
@@ -92839,6 +92950,7 @@ redneragenturen.org, 1
 rednex.tk, 1
 rednsx.org, 1
 rednumberone.com, 1
+redpact.com, 0
 redparrotstudios.tk, 1
 redpen.gr, 1
 redper.serveminecraft.net, 1
@@ -93113,7 +93225,6 @@ rejective.tk, 1
 rejects.email, 1
 rejido.tk, 1
 rejushiiplotter.ru, 1
-rekisuta.com, 1
 rekka-j.com, 1
 rekkur.com, 1
 rekkur.consulting, 1
@@ -93303,7 +93414,6 @@ renewgsa.com, 1
 renewmedispa.com, 1
 renewpfc.com, 1
 renezuo.com, 1
-renfis.de, 1
 renicimery.com.br, 1
 renkenlaw.com, 1
 rennes-bachata.com, 1
@@ -93369,7 +93479,6 @@ renyiyou.com, 1
 reo.gov, 0
 reorz.com, 0
 reox.at, 1
-repaik.com, 1
 repaircafe-hanau.de, 1
 repairdriveshafts.tk, 1
 repairgeniuses.com, 1
@@ -93805,6 +93914,7 @@ rex.st, 1
 rex.tc, 1
 rexbang.tk, 1
 rexbaumgartnerdds.com, 1
+rexburgid.gov, 1
 rexcutty.com, 1
 rexdf.net, 1
 rexeroofing.com, 1
@@ -93837,6 +93947,7 @@ rf.studio, 1
 rfbcnet.tk, 1
 rfdirectory.tk, 1
 rfeif.org, 1
+rfid-schutz.org, 1
 rfnews.tk, 1
 rfomega.ga, 1
 rfp-rechtsanwaelte.de, 1
@@ -93855,7 +93966,6 @@ rgf.be, 0
 rggraphics.mx, 1
 rghost.net, 1
 rgiohio.com, 1
-rgl.support, 1
 rgpdkit.io, 1
 rgraph.net, 1
 rgtonline.com, 1
@@ -93910,7 +94020,6 @@ rhysperry.com, 1
 rhysre.net, 1
 riable.com, 1
 riachuello.tk, 1
-riajenaka.com, 1
 riaki.net, 1
 riaktiv.tk, 1
 rial.space, 1
@@ -94039,6 +94148,7 @@ riders.ga, 1
 rides-japan.jp, 1
 ridetour.ru, 1
 rideyourdamn.bike, 1
+ridgecrestca.gov, 1
 ridgelandchurch.org, 1
 ridgewaterlodge.com, 1
 ridingoklahoma.com, 1
@@ -94086,7 +94196,6 @@ rigintegrity.com, 1
 rigous.net, 1
 rigsalesaustralia.com, 1
 rihappy.tk, 1
-riight.online, 1
 riigiteenused.ee, 1
 rijk-catering.nl, 0
 rijnland.net, 1
@@ -94194,7 +94303,6 @@ rishabh.me, 1
 risheriffs.gov, 1
 rishikeshyoga.in, 1
 risi-china.com, 1
-risiinfo.com, 1
 rising-cubers.tk, 1
 riskmitigation.ch, 1
 risman.tk, 1
@@ -94261,12 +94369,14 @@ rivers.gov, 1
 riversandoceans.com, 1
 riverschool.net, 1
 riversideiowa.gov, 1
+riversidemo.gov, 1
 riversideradio.nl, 1
 riversmeet.co.uk, 1
 riverstyxgame.com, 1
 riverviewmotel.ca, 1
 riverviewtree.com, 1
 riverviewurologic.com, 1
+riverweb.gr, 1
 rivierasaints.ch, 0
 riviere.pro, 1
 rivingtongreenwich.co.uk, 1
@@ -94381,7 +94491,6 @@ robbestad.com, 1
 robbiebird.tk, 1
 robbiecrash.me, 1
 robbielowe.co, 1
-robbievasquez.com, 1
 robbins-construction.com, 1
 robbinsgaragedoorwenatchee.com, 1
 robbrestyle.com, 1
@@ -94432,7 +94541,6 @@ robin-kusch.de, 1
 robin-novotny.com, 1
 robin.co.kr, 1
 robin.info, 1
-robin.io, 1
 robindeheer.nl, 0
 robinevandenbos.nl, 1
 robinflikkema.nl, 1
@@ -94543,6 +94651,7 @@ rocksoundradio.tk, 1
 rockstargame.su, 1
 rockvocalconsulting.com, 1
 rockworldteam.tk, 1
+rockyford-co.gov, 1
 rockymountaininsurancecenter.com, 1
 rockymountainspice.com, 1
 rockyourlife.gq, 1
@@ -94657,7 +94766,7 @@ roka9.de, 1
 rokass.nl, 1
 rokcupusa.com, 1
 rokettube.tk, 1
-rokki.ch, 1
+rokki.ch, 0
 roko-foto.de, 1
 rokort.dk, 1
 rokudenashi.de, 1
@@ -94746,6 +94855,10 @@ romatours.pt, 0
 romatrip.it, 1
 rombarte.pl, 1
 romediatori.com, 1
+romega.gov, 1
+romegafire.gov, 1
+romegapolice.gov, 1
+romeoferraris.com, 1
 romeoijulio.tk, 1
 rometoptentravel.com, 1
 rommelhuntermusic.tk, 1
@@ -94753,6 +94866,7 @@ rommelmark.nl, 1
 rommelwood.de, 1
 romo-holidays.de, 1
 romo-holidays.dk, 1
+roms.fun, 0
 romsey.org, 1
 romtex.co.uk, 1
 romtter.com, 1
@@ -94972,6 +95086,7 @@ rothe.io, 1
 rothkranz.net, 1
 rothwellgornthomes.com, 1
 rotince.tk, 1
+rotkreuzshop.de, 1
 rotol.me, 1
 rotonde.gq, 1
 rotozen.com, 1
@@ -95122,7 +95237,6 @@ royalpainters.co, 1
 royalpalacenogent.fr, 1
 royalrace.tk, 1
 royalstylefit.com, 1
-royalteam.fr, 1
 royaltube.net, 1
 royalty-market.com, 1
 royaltyexchange.com, 1
@@ -95136,7 +95250,6 @@ royceandsteph.com, 1
 roycewilliams.net, 1
 roychan.org, 1
 royger.tk, 1
-royjr.com, 1
 roynuesca.com, 1
 royrevell.com, 1
 roys.design, 1
@@ -95201,6 +95314,7 @@ rritv.com, 1
 rrmiran.com, 1
 rro.rs, 1
 rrssww.space, 1
+rrtribalcourts-nsn.gov, 1
 rrudnik.com, 1
 rrvmz.cf, 1
 rrwolfe.com, 1
@@ -95343,6 +95457,7 @@ rubenkruisselbrink.nl, 1
 rubenmamo.com, 1
 rubenpeeters.ml, 1
 rubenplazagarcia.es, 1
+rubenroy.com, 1
 rubenruiz.org, 1
 rubens.cloud, 1
 rubenschulz.nl, 1
@@ -95362,6 +95477,7 @@ rublev.tk, 1
 rubooks.gq, 1
 rubreklama.tk, 1
 ruby-auf-schienen.de, 1
+rubymediagroup.com, 1
 rubyonline.tk, 1
 rubyquincunx.com, 1
 rubyquincunx.org, 1
@@ -95417,6 +95533,7 @@ rugcleaninglondon.co.uk, 1
 rugeley-vets.co.uk, 1
 rugged-cctv.com, 1
 rugk.dedyn.io, 1
+rugstorene.co.uk, 1
 ruha.co.in, 1
 ruhigehand.de, 1
 ruhimustafa.tk, 1
@@ -95561,6 +95678,7 @@ rusifikator.tk, 1
 rusiptv.cf, 1
 ruska-modra.cz, 1
 ruskamodra.cz, 1
+ruskcountytx.gov, 1
 ruski.tk, 1
 ruskod.net, 1
 rusmir.tk, 1
@@ -95601,6 +95719,7 @@ russianrandom.ru, 1
 russiantranslation.tk, 1
 russisch.tk, 1
 russograffix.tk, 1
+russt.me, 1
 rust.cf, 1
 rust.mn, 1
 rust.pm, 1
@@ -95739,7 +95858,6 @@ ryu22e.org, 1
 ryuanerin.kr, 1
 ryuukei-nf.tk, 1
 ryzen.cz, 1
-ryzex.de, 1
 ryzhov.me, 1
 rzegocki.pl, 1
 rzentarzewski.net, 1
@@ -95884,6 +96002,7 @@ sacaentradas.com, 1
 saccani.net, 1
 saccottino.tk, 1
 saccounty.gov, 1
+saccountyiowa.gov, 1
 sacektirme.tk, 1
 sacha-botz.com, 0
 sacharidovejednotky.eu, 1
@@ -96193,6 +96312,7 @@ sakrajda.eu, 1
 sakshi.gq, 1
 saksonski-szlak-parowozow.pl, 1
 sakura-paris.org, 1
+sakura.zone, 1
 sakuracdn.com, 1
 sakuradata.com, 1
 sakurapalace.tk, 1
@@ -96265,11 +96385,13 @@ salibandy.tk, 1
 salidaswap.com, 1
 salilab.org, 1
 salimicm.com, 1
+salinecountyks.gov, 1
 salins-les-bains.com, 1
 salkield.uk, 1
 salland1.nl, 1
 salle-quali.fr, 0
 salledebainmontreal.gq, 1
+sallisawok.gov, 1
 sally-secret.com, 1
 sallyandruss.ca, 1
 sallyangeli.tk, 1
@@ -96305,7 +96427,6 @@ salonestella.it, 1
 salonni.tk, 1
 salonsantebienetre.ch, 0
 salonsuites.com, 1
-salrosadohimalaia.com, 1
 salsa-straubing.de, 1
 salt-documentary.blog, 1
 salt-travel.cf, 1
@@ -96315,6 +96436,7 @@ saltcave.gq, 1
 saltedfish.network, 1
 salter.com.tr, 1
 saltercane.com, 0
+saltlakecounty.gov, 1
 saltlakedjcompany.com, 1
 saltlakepediatricdentist.com, 1
 saltnsauce.cf, 1
@@ -96560,6 +96682,7 @@ sandtler.moe, 1
 sandtohand.com, 1
 sandton-plumbing.co.za, 1
 sandtonescorts.com, 1
+sandtonplumber24-7.co.za, 1
 sanduskycountyoh.gov, 1
 sandwichclub.tk, 1
 sandwichcouncil.tk, 1
@@ -96639,6 +96762,7 @@ sansonehowell.com, 1
 santa-fell-from.space, 1
 santabarbaraca.gov, 1
 santackergaard.nl, 1
+santaclaracounty.gov, 1
 santacruzdescargas.tk, 1
 santafesilversaddlemotel.com, 1
 santaijia.com, 0
@@ -96653,6 +96777,7 @@ santanderideas.com, 0
 santandertrade.com, 1
 santantonio.tk, 1
 santarosaca.gov, 1
+santarosanm.gov, 1
 santegra.tk, 1
 santehart.by, 1
 santehnica.ml, 1
@@ -96702,7 +96827,6 @@ saorviewconnected.ie, 1
 sap-inc.co.jp, 1
 sapac.es, 1
 sapafolumuxu.tk, 1
-sapancavillalari.com, 1
 sapaship.ru, 1
 sapibatam.com, 0
 sapien-ci.com, 1
@@ -96726,6 +96850,8 @@ sapporo.ga, 1
 sapporobeer.com, 1
 sapprendre.ch, 0
 saprima.de, 0
+sapulpaok.gov, 1
+sapulpapd.gov, 1
 sapuseven.com, 1
 saputra.org, 1
 saq.com, 0
@@ -96946,7 +97072,6 @@ savebees.org, 1
 savebt.net, 1
 savedana.tk, 1
 savejonasquinn.tk, 1
-savemoneyonenergy.com, 0
 saveolga.tk, 1
 saveoney.ca, 1
 saveora.shop, 1
@@ -96965,7 +97090,6 @@ savewildcats.life, 1
 savewithtrove.com, 0
 saveworldpets.ga, 1
 saveyourhouse.tk, 1
-saviezvousque.net, 1
 savilleassessment.com, 1
 savin.ga, 1
 savinggoliath.com, 1
@@ -97038,6 +97162,7 @@ sbbz-bad-wurzach.de, 1
 sbcalitagtag.edu.ph, 1
 sbcargo.com, 1
 sbconstrucciones.com, 1
+sbcountyatc.gov, 1
 sbequineevac.org, 1
 sber-solutions.ru, 1
 sber.us, 1
@@ -97068,7 +97193,6 @@ sbo.no, 1
 sbodewissel.tk, 1
 sbond.co, 1
 sborka.ml, 1
-sbox-servers.com, 1
 sbpropman.co.uk, 1
 sbrouwer.org, 1
 sbrownbourne.com, 0
@@ -97083,13 +97207,9 @@ sbwebshops.nl, 1
 sc-artworks.co.uk, 0
 sc019.com, 1
 sc5.jp, 1
-scaarus.com, 1
 scabieslice.com, 1
 scaffalature.roma.it, 1
 scaffoldhireeastrand.co.za, 1
-scaffoldhiremidrand.co.za, 1
-scaffoldhirerandburg.co.za, 1
-scaffoldhiresandton.co.za, 1
 scaffoldingsandton.co.za, 1
 scaffoldingsolutions.com, 1
 scag9.com, 1
@@ -97129,7 +97249,6 @@ scaner.ga, 1
 scangeo.net, 1
 scanmailx.com, 1
 scanmy.email, 1
-scanpassword.com, 1
 scanpay.dk, 1
 scansearchtravel.com, 1
 scansnus.com, 1
@@ -97158,7 +97277,6 @@ scbdh.org, 1
 sccoaching.io, 1
 scde.ventures, 1
 sceenfox.de, 1
-scelec.com.au, 1
 scenadex.ga, 1
 scenari.eu, 1
 scenari.ovh, 1
@@ -97192,6 +97310,7 @@ schat.top, 1
 schatderer.com, 1
 schattenwoelfe.tk, 1
 schatzibaers.de, 1
+schaumburgil.gov, 1
 schauraum.tk, 1
 schauspielbuehnen.de, 1
 schausteller.de, 1
@@ -97459,7 +97578,6 @@ science-questions.org, 1
 science-texts.de, 1
 science.gov, 1
 scienceasfashion.ga, 1
-sciencebase.gov, 1
 scienceeducation.tk, 1
 scienceminnesota.com, 1
 sciencemonster.co.uk, 1
@@ -97559,6 +97677,7 @@ scottniven.tk, 1
 scottpilgrim.tk, 1
 scottrae.me.uk, 1
 scotts-restaurant.com, 1
+scottsboropdal.gov, 1
 scottseditaacting.com, 1
 scottshorter.com.au, 1
 scottspainting.com, 1
@@ -97630,6 +97749,7 @@ screenpublisher.com, 1
 screensizemap.com, 1
 screenwriter.tk, 1
 screenzy.io, 1
+screvencountyga.gov, 1
 scribbler.tk, 1
 scripo-bay.com, 1
 script.google.com, 1
@@ -97641,7 +97761,6 @@ scriptline.ga, 1
 scriptmaker.tk, 1
 scriptolab.com, 1
 scriptomania.tk, 1
-scriptslug.com, 1
 scriptsrus.tk, 1
 scrod.me, 1
 scroll-to-top-button.com, 1
@@ -97743,6 +97862,7 @@ seachef.it, 1
 seadrive.cc, 1
 seadus.ee, 1
 seaelba.com, 1
+seaholmwines.com, 1
 sealart.pl, 1
 sealaw.com, 1
 sealbaker.com, 1
@@ -97926,7 +98046,6 @@ secretserveronline.com, 1
 secretshoppermall.com, 1
 secretsofuniverse.in, 1
 secretstomartialarts.tk, 1
-secretum.tech, 1
 secretworld.ml, 1
 secretzone.bg, 1
 secrium.io, 1
@@ -97968,7 +98087,6 @@ securecloudplatform.nl, 1
 secureddocumentshredding.com, 1
 securedrop.org, 1
 secureenduserconnection.se, 1
-secureesolutions.com, 1
 securefiletransfer.nl, 1
 securegovernment.us, 1
 secureheaders.com, 1
@@ -98034,7 +98152,6 @@ securityheaders.nl, 1
 securityindicators.com, 1
 securityintelligence.com, 1
 securitykey.co, 1
-securitymap.wiki, 1
 securitypluspro.com, 1
 securityprimes.in, 1
 securitypuppy.com, 1
@@ -98071,6 +98188,7 @@ sedlex.fr, 1
 sedmicka.sk, 0
 sedoexpert.nl, 1
 sedoexperts.nl, 1
+sedro-woolley.gov, 1
 see.asso.fr, 1
 see.wtf, 1
 seearmenia.tk, 1
@@ -98138,7 +98256,6 @@ segurosproteccion.com, 1
 seguroviagem.srv.br, 0
 sehat-solusi-makmur.com, 1
 sehd.top, 1
-sehnenweh.org, 1
 sei-yu.net, 1
 seibert.ninja, 1
 seibu-kikaku.co.jp, 1
@@ -98254,6 +98371,7 @@ sellphotos.tk, 1
 sellsmartwatches.tk, 1
 selltous.com.au, 1
 sellwithsquare.com, 1
+selmer-tn.gov, 1
 selo-cer.tk, 1
 selo-grncare.tk, 1
 seloc.org, 1
@@ -98301,6 +98419,7 @@ sempoctet.ca, 1
 semps-2fa.de, 1
 semps-threema.de, 1
 semps.de, 1
+semrecc.gov, 1
 semrush.com, 1
 semsec.net, 1
 semtinde.com, 1
@@ -98358,7 +98477,6 @@ seniorhost.net, 1
 seniorinhomecare.com, 1
 seniormanager.cz, 1
 seniors.singles, 1
-senlife.cz, 1
 senmendai-reform.com, 1
 senneeeraerts.be, 1
 sennik.tk, 1
@@ -98422,7 +98540,6 @@ senzei.tk, 1
 seo-analyse.com, 1
 seo-blog12.tk, 1
 seo-dr-it.com, 0
-seo-en-barcelona.es, 1
 seo-forum.nu, 0
 seo-linz.at, 1
 seo-obmen.tk, 1
@@ -98576,7 +98693,6 @@ serdengolpinar.tk, 1
 sereema.com, 1
 serele.fr, 1
 seren.tk, 1
-serenaden.at, 1
 serenascreations.com, 1
 serenata.tk, 1
 serenavilage.net, 1
@@ -98662,6 +98778,7 @@ servepublic.org, 1
 server-bg.net, 1
 server-check.co.uk, 0
 server-daten.de, 1
+server-essentials.com, 1
 server.vote, 1
 server72a.ddns.net, 1
 server92.eu, 1
@@ -98943,6 +99060,7 @@ sg.search.yahoo.com, 0
 sg1.tech, 1
 sgaravato.it, 1
 sgatlantis.tk, 1
+sgb.co, 1
 sgbpa.co.uk, 1
 sgcaccounts.co.uk, 1
 sgdementia.ca, 1
@@ -99055,7 +99173,6 @@ shaitan.eu, 1
 shaiyapegasus.tk, 1
 shaiyauntold.com, 1
 shajeer.tk, 1
-shakalaka.co.za, 1
 shakan.ch, 0
 shakebeforeuse.tk, 1
 shaken-kyoto.jp, 1
@@ -99098,6 +99215,7 @@ shangobud.com, 1
 shanhay.tk, 1
 shaniainternational.tk, 1
 shanikaonline.tk, 1
+shanikofireor.gov, 1
 shanju.tk, 1
 shankangke.com, 1
 shanli.tk, 1
@@ -99205,6 +99323,7 @@ shawfamily.id.au, 1
 shawiah.tk, 1
 shawnaleighdesigns.com, 1
 shawnalucey.com, 1
+shawnee-nsn.gov, 1
 shawngvs.com, 1
 shawnhogan.com, 1
 shawnow.com, 1
@@ -99335,6 +99454,7 @@ shh.sh, 1
 shiawasedo.co.jp, 1
 shibainu.com.br, 1
 shibbydex.com, 1
+shibe.club, 0
 shibumi.com, 1
 shichibukai.net, 1
 shichidadoma.ru, 1
@@ -99776,6 +99896,7 @@ shore.co.il, 1
 shorebreaksecurity.com, 1
 shorehamfort.co.uk, 1
 shorewoodmn.gov, 1
+shorewoodwi.gov, 1
 shorinkarate.tk, 1
 shork.space, 1
 short-games.gq, 1
@@ -99990,7 +100111,6 @@ sicz.de, 1
 sid.group, 1
 sidari.tk, 1
 sidatbacklink.tk, 1
-siddigsami.com, 1
 sidecredit.ga, 1
 sideleau.com, 1
 sidelka-tver.ru, 1
@@ -100133,6 +100253,7 @@ siikaflix.tv, 1
 siirtutkusu.com, 0
 sijbesmaverhuizingen.nl, 1
 sijimi.cn, 1
+sik-it.nl, 1
 sikademy.com, 1
 sikaranbrotherhood.tk, 1
 sikayetvar.com, 0
@@ -100196,34 +100317,52 @@ silverdollaracademy.com, 1
 silverfalcon.me, 1
 silverflow.co, 1
 silvergoldbull.ba, 1
+silvergoldbull.be, 1
 silvergoldbull.bg, 1
 silvergoldbull.bj, 1
 silvergoldbull.by, 1
+silvergoldbull.ca, 1
 silvergoldbull.cl, 1
 silvergoldbull.cm, 1
 silvergoldbull.cn, 1
 silvergoldbull.co, 1
 silvergoldbull.co.ao, 1
+silvergoldbull.co.il, 1
+silvergoldbull.co.no, 1
 silvergoldbull.co.tz, 1
+silvergoldbull.co.uk, 1
+silvergoldbull.com, 1
 silvergoldbull.com.ar, 1
+silvergoldbull.com.au, 1
 silvergoldbull.com.eg, 1
 silvergoldbull.com.gh, 1
 silvergoldbull.com.mt, 1
 silvergoldbull.cr, 1
+silvergoldbull.cz, 1
+silvergoldbull.de, 1
 silvergoldbull.dj, 1
 silvergoldbull.do, 1
+silvergoldbull.ec, 1
+silvergoldbull.ee, 1
+silvergoldbull.es, 1
+silvergoldbull.fi, 1
 silvergoldbull.gd, 1
 silvergoldbull.ge, 1
 silvergoldbull.gl, 1
 silvergoldbull.gr, 1
 silvergoldbull.gt, 1
+silvergoldbull.hk, 1
 silvergoldbull.hn, 1
 silvergoldbull.hr, 1
 silvergoldbull.hu, 1
 silvergoldbull.id, 1
 silvergoldbull.in, 1
+silvergoldbull.is, 1
+silvergoldbull.it, 1
 silvergoldbull.kg, 1
+silvergoldbull.kr, 1
 silvergoldbull.ky, 1
+silvergoldbull.li, 1
 silvergoldbull.lk, 1
 silvergoldbull.lt, 1
 silvergoldbull.lv, 1
@@ -100233,16 +100372,21 @@ silvergoldbull.mk, 1
 silvergoldbull.ml, 1
 silvergoldbull.mw, 1
 silvergoldbull.my, 1
+silvergoldbull.nz, 1
 silvergoldbull.ph, 1
+silvergoldbull.pl, 1
 silvergoldbull.pt, 1
+silvergoldbull.qa, 1
 silvergoldbull.rs, 1
 silvergoldbull.ru, 1
+silvergoldbull.se, 1
 silvergoldbull.si, 1
 silvergoldbull.sn, 1
 silvergoldbull.sv, 1
 silvergoldbull.tg, 1
 silvergoldbull.tj, 1
 silvergoldbull.tn, 1
+silvergoldbull.tt, 1
 silvergoldbull.tw, 1
 silvergoldbull.uy, 1
 silvergoldbull.uz, 1
@@ -100278,7 +100422,6 @@ silvobeat.com, 1
 sim-karten.net, 1
 sim-minaoshi.jp, 1
 sim-mobile.ml, 1
-sim-sim.appspot.com, 1
 sim4seed.org, 1
 simam.de, 1
 simaogv.net, 1
@@ -100286,7 +100429,6 @@ simark.ca, 1
 simart.cf, 1
 simasoft.com, 1
 simava.org, 1
-simbamail.de, 1
 simbdo.jp, 1
 simbeton.nl, 1
 simbike.ru, 1
@@ -100350,6 +100492,7 @@ simonspeich.ch, 1
 simonsreich.de, 1
 simonssh.ddns.net, 1
 simonweil.com, 1
+simonwessel.net, 1
 simonwoodside.com, 1
 simonzoellner.de, 1
 simosol.de, 1
@@ -100397,6 +100540,7 @@ simpleports.eu, 1
 simpleports.net, 1
 simpleports.org, 1
 simpleprojects.net, 1
+simplereport.gov, 1
 simplerses.com, 1
 simplerust.ru, 1
 simplesassimdistribuidora.com.br, 1
@@ -100423,7 +100567,6 @@ simplonevents.ch, 1
 simplosoft.co.uk, 1
 simply-pattinson.tk, 1
 simply-premium.com, 1
-simply.black, 1
 simply.com, 1
 simply.scot, 1
 simply2020.com, 1
@@ -100449,6 +100592,7 @@ simplyuniforms.com.au, 1
 simplyvoting.com, 1
 simpservices.com, 1
 simpson.id, 1
+simpsoncountyky.gov, 1
 simpte.com, 1
 simrail.nl, 1
 sims4hub.ga, 1
@@ -100643,6 +100787,7 @@ sirvoy.jp, 1
 sirvoy.nl, 1
 sirvoy.no, 1
 sirvoy.se, 1
+sis.net.sa, 1
 sisadmin21.tk, 1
 siscompbolivia.tk, 1
 siscompt.com, 1
@@ -100700,7 +100845,6 @@ sitecuatui.com, 1
 sitedebelezaemoda.com.br, 1
 sitedrive.fi, 1
 siteheft.com, 1
-sitehoster.org, 1
 siteintelstage.com, 1
 sitekatalog.tk, 1
 sitelinks.ga, 1
@@ -100878,6 +101022,8 @@ skillled.com, 1
 skillmoe.at, 1
 skills2serve.org, 1
 skills2services.com, 1
+skillsenhancementtexas.gov, 1
+skillsenhancementtx.gov, 1
 skillseo.com, 1
 skillshare.com, 1
 skiltmax.dk, 1
@@ -100898,7 +101044,7 @@ skinexpert.ml, 1
 skinfoodpeachcotton.tk, 1
 sking.io, 1
 skinmarket.co, 1
-skinmodo.com, 1
+skinmodo.com, 0
 skinny-bitch99.com, 1
 skinnybitch99.net, 1
 skinos.in, 1
@@ -101034,7 +101180,6 @@ skyfone.cz, 1
 skyfpicture.tk, 1
 skygame.tk, 1
 skygates.tk, 1
-skyger.cz, 1
 skyguru.tk, 1
 skyhigh-mizell.tk, 1
 skyhooks.tk, 1
@@ -101084,6 +101229,7 @@ skyscapecanopies.com, 1
 skyscnr.com, 1
 skyseo.cf, 1
 skysoftbg.com, 1
+skysuite.nl, 1
 skytec.host, 1
 skyterraathome.com, 1
 skyterraembrace.com, 1
@@ -101098,7 +101244,6 @@ skywalkersa.ga, 1
 skywindowsnj.com, 1
 skyworldlinktravels.com, 1
 skyworldserver.ddns.net, 1
-skywt.cn, 1
 skyynet.de, 1
 skyzimba.com.br, 1
 sl-alarm.ru, 1
@@ -101531,7 +101676,6 @@ smmitc.com, 1
 smmlaba.io, 1
 smmog.tk, 1
 smmpanelweb.com, 1
-smmzilla.net, 1
 smoivez.tk, 1
 smokeandmirrors.agency, 1
 smokefree.gov, 1
@@ -101745,7 +101889,7 @@ snowhaze.ch, 1
 snowhaze.com, 1
 snowman25.de, 1
 snoworld.one, 1
-snowpak.com, 1
+snowpak.com, 0
 snowparties.com, 1
 snowpaws.de, 1
 snowplane.net, 1
@@ -101771,7 +101915,6 @@ snrub.co, 1
 snsdomain.com, 1
 snsirius.cf, 1
 sntial.co.za, 1
-snuff.porn, 1
 snukep.kr, 1
 snwsjz.com, 1
 so-buff.com, 1
@@ -101800,7 +101943,6 @@ soblaznenie2.ru, 1
 sobre.tk, 1
 sobreitalia.com, 1
 sobrelixo.tk, 1
-sobreporcentagem.com, 1
 soc.com.br, 1
 soc.net, 1
 soc247.cloud, 1
@@ -101939,7 +102081,6 @@ sodomojo.com, 1
 sodrujestvo.tk, 1
 sodsouthernindiana.com, 1
 soe-server.com, 1
-soeasy.co.za, 1
 soegi-haru.com, 1
 soellner.info, 1
 soepvork.nl, 1
@@ -102002,7 +102143,6 @@ softsecmatheodexelle.be, 1
 softsite.cl, 1
 softskills.tech, 1
 softstack.ru, 1
-softtennis-zenei.com, 1
 softview.gq, 1
 softview.tk, 1
 softw.net, 1
@@ -102046,7 +102186,6 @@ sokakfotografi.com, 1
 sokenconstruction.com, 1
 soket.ee, 1
 soko.nl, 1
-sokolkarvina.cz, 1
 sokolmelnik.tk, 1
 sokolovskyi.ml, 1
 sokolslavkov.tk, 1
@@ -102189,6 +102328,7 @@ solostocks.net, 1
 solostocks.pl, 1
 solostocks.pt, 1
 solovey.su, 1
+solovyovalawfirm.com, 1
 solsi.ga, 1
 solsocog.de, 1
 solucion.gq, 1
@@ -102441,6 +102581,7 @@ sosoftplay.co.uk, 1
 sosok.tk, 1
 sosou.eu, 0
 sospechhulp.nl, 1
+sospeed.net, 1
 sosregistration.eu, 1
 sostacancun.com, 1
 soste.fi, 1
@@ -102577,10 +102718,11 @@ sourdough.vc, 1
 souria.tk, 1
 souris.ch, 0
 sous-surveillance.net, 0
-souspind.com.br, 1
+souspind.com.br, 0
 southafrican.dating, 1
 southambouncycastle.co.uk, 1
 southamerican.dating, 1
+southamptontownnypolice.gov, 1
 southbankregister.com.au, 1
 southbaylatherapy.com, 1
 southbendflooring.com, 1
@@ -102603,9 +102745,12 @@ southernviewmedia.com, 1
 southessexstatus.co.uk, 1
 southflanewsletter.com, 1
 southgeorgiacargotrailers.org, 1
+southjacksonville-il.gov, 1
 southlakenissanparts.com, 1
 southlakesinc.org, 1
+southlaketx.gov, 1
 southlandurology.com, 1
+southmarengoal.gov, 1
 southmelbourne.apartments, 1
 southmill.com, 1
 southmorangtownhouses.com.au, 1
@@ -102621,6 +102766,8 @@ southside-tuning-day.de, 1
 southsidebargaincenter.com, 1
 southsideshowdown.com, 1
 southtoowoombahawks.com.au, 1
+southwaymotors.com, 0
+southwestkansaslibrarysystem.gov, 1
 southwestrda.org.uk, 1
 southwindsor-ct.gov, 1
 soutien-naissance.com, 1
@@ -102669,7 +102816,6 @@ sozialabstand.de, 1
 soziale.email, 1
 sozialismus.tk, 1
 sozialistische-gruppe.de, 1
-sozialstation-ritterhude.de, 1
 sozialy.com, 1
 sozon.ca, 1
 sp-az.com, 1
@@ -102939,6 +103085,7 @@ spellchecker.net, 1
 spellchecksquatting.com, 1
 spellic.com, 1
 spelling.ml, 1
+spencernc.gov, 1
 spendable.money, 1
 spendesk.com, 1
 spendo.gq, 1
@@ -102959,7 +103106,6 @@ speventos.es, 1
 spewingmews.moe, 1
 speww.com, 1
 spfl.org.au, 1
-sphacks.io, 1
 sphardy.com, 0
 sphera.com, 1
 sphere-realty.com, 1
@@ -102974,7 +103120,7 @@ sphynxboyz.com.au, 1
 spice-club.tk, 1
 spiceboss.com.br, 1
 spicegirlschart.tk, 1
-spicejungle.com, 1
+spicejungle.com, 0
 spicemail.cc, 1
 spicemoney.com, 1
 spicerack.co.uk, 1
@@ -103091,6 +103237,7 @@ spnsv.com, 1
 spocool.com, 1
 spodelime.com, 1
 spofia.nu, 1
+spokanecounty.gov, 1
 spokaneexteriors.com, 1
 spokanepolebuildings.com, 1
 spokesly.com, 1
@@ -103155,6 +103302,7 @@ sportovnidum.cz, 1
 sportparks.com, 1
 sportparks.org, 1
 sportpiacenza.it, 1
+sportplaatje.nl, 0
 sportprint.hr, 1
 sportraucher.tk, 1
 sports-colleges.com, 1
@@ -103452,6 +103600,7 @@ srorisksolutions.tk, 1
 sros.fi, 1
 sroturkey.tk, 1
 sroul.club, 1
+srp.gov, 1
 srpx.de, 1
 srqpedals.com, 1
 srrdb.com, 1
@@ -103676,6 +103825,7 @@ stakotec.de, 1
 staktrace.com, 1
 stal-rulon.ru, 1
 stalbanskenora.ca, 1
+stalbansvt.gov, 1
 stalder.work, 1
 stalevski.tk, 1
 stalgeraardsbergen.tk, 1
@@ -103740,6 +103890,7 @@ stanron.com, 1
 stansweather.net, 1
 stantabler.com, 1
 stanthony-hightstown.net, 1
+stantonca.gov, 1
 stanzolo.com, 1
 stapvoorstapduurzaam.nl, 1
 star-24.cf, 1
@@ -103910,6 +104061,7 @@ statefundca.com, 1
 statefunddirect.com, 1
 stategov.us, 1
 stateidea.ga, 1
+statelibraryofiowa.gov, 1
 statelines.ga, 1
 statelywork.com, 1
 statemercantile.com.au, 1
@@ -103954,6 +104106,7 @@ statusmachine.com, 1
 statusmantra.tk, 1
 statuswatch.io, 1
 statz.pl, 1
+stau-a.de, 1
 stavanger.kommune.no, 1
 stavinchains.tk, 1
 stavnager.net, 1
@@ -103976,7 +104129,6 @@ stb-schefczyk.de, 1
 stb-schefczyk.info, 1
 stb-schefczyk.net, 1
 stb-timmler.de, 1
-stb.gov, 1
 stbartholomewmanchester.org, 1
 stbennett.org, 1
 stbl.org, 1
@@ -103986,9 +104138,11 @@ stcatharine-stmargaret.org, 1
 stcatharinesromawolves.tk, 1
 stccordoba.com, 1
 stceciliakearny.org, 1
+stcharlescountycsfamo.gov, 1
 stclairvet.co.uk, 1
 stclementmatawan.org, 1
 stclementreligioused.org, 1
+stcloudfl.gov, 1
 stcplasticsurgery.com, 1
 stdavidparish.org, 1
 stderr.cc, 1
@@ -104004,7 +104158,6 @@ stealsaga.net, 1
 stealth.net, 1
 stealthbinders.tk, 1
 stealthmodel.fi, 1
-stealthvape.co.uk, 1
 steam-rewards.tk, 1
 steam-route-saxony.com, 1
 steamcarddelivery.com, 1
@@ -104108,11 +104261,11 @@ steiners.party, 1
 steinibox.de, 1
 steinmassl.org, 1
 steinmetz.cloud, 1
+steklein.de, 1
 stekosouthamerica.com, 1
 stelfox.net, 1
 stelga.ca, 1
 steliosmanousakis.gr, 1
-stella-artis-ensemble.at, 1
 stella-shop.eu, 1
 stellacinderella.net, 1
 stellanova-planeten.de, 0
@@ -104304,7 +104457,6 @@ sthetix.info, 1
 sthpr.gr, 1
 stian.net, 1
 stichtingcoronaonderzoek.nl, 1
-stichtingdemuziekkamer.nl, 1
 stichtingliab.nl, 1
 stichtingscholierenvervoerzeeland.nl, 1
 stichtingsticky.nl, 0
@@ -104363,6 +104515,7 @@ stilecop.com, 1
 stiliankasimov.com, 1
 stilingavonia.lt, 1
 stillsnfilms.com, 1
+stillwatertownshipmn.gov, 1
 stillwell.me, 1
 stilmobil.se, 1
 stilnaya-odezhda.tk, 1
@@ -104386,6 +104539,7 @@ stirblaut.de, 1
 stirling.co, 1
 stisidores.org, 1
 stitch.money, 1
+stitchfiddle.com, 1
 stitchinprogress.com, 1
 stjohncamden.com, 1
 stjohnin.com, 1
@@ -104395,6 +104549,7 @@ stjohnsc.com, 1
 stjohnslutheran.net, 1
 stjohnsottsville.org, 1
 stjoseph-stcatherine.org, 1
+stjosephmo.gov, 1
 stjosephri.org, 1
 stjosephspringcity.com, 1
 stjosephtownship.com, 1
@@ -104404,13 +104559,13 @@ stjustin.org, 1
 stkeverneparishcouncil.org.uk, 1
 stkevin-stbenedict.org, 1
 stkildaosteopathy.com.au, 1
-stla.net, 1
 stlbosnians.com, 1
 stleismann.de, 1
 stleonardmn.org, 1
 stlfamilyattorney.com, 1
 stlfence.com, 1
 stln.ml, 1
+stlouiscountymovotes.gov, 1
 stlouisfence.com, 1
 stlouisinsuranceco.com, 1
 stlouisnativeflute.com, 1
@@ -104451,6 +104606,7 @@ sto-garant.nl, 1
 stock-ai.com, 1
 stock-solution.de, 1
 stockanalysis.com, 1
+stockbridge-ma.gov, 1
 stockgraphicdesigns.com, 1
 stockholm.ga, 1
 stockholmpride.org, 1
@@ -104557,6 +104713,7 @@ stopka.tk, 1
 stoplossoff.tk, 1
 stopoverconnections.com, 1
 stoppage.cf, 1
+stopransomware.gov, 1
 stopsmoke.gq, 1
 stopssherdenking.tk, 1
 stopsvet.ml, 1
@@ -104602,7 +104759,6 @@ stories-event.com.ua, 1
 storiesbysign.com, 1
 storillo.com, 1
 storin.nl, 1
-storingdesk.com, 1
 storjar.com, 1
 storm-news.tk, 1
 stormairsoft.tk, 1
@@ -104730,6 +104886,7 @@ strategie-zone.de, 1
 stratego-belgie.tk, 1
 strategybusiness.ga, 1
 stratejm.com, 1
+stratfordct.gov, 1
 stratforge.com, 1
 strathspeycrown.com, 1
 stratik.com.co, 1
@@ -104936,7 +105093,6 @@ stubentiga.de, 1
 stuckateur-bruno.de, 0
 stucki-bagger.ch, 1
 stuckwithme.tk, 1
-stuco.co, 1
 stucydee.nl, 1
 stud-lib.ml, 1
 studay.fr, 1
@@ -105018,7 +105174,6 @@ studiomenfis.com, 1
 studiomko.com, 1
 studionowystyl.pl, 1
 studiopirrate.com, 1
-studiopop.com.br, 1
 studioproapp.com, 1
 studioriehl.com, 1
 studiosql.ml, 1
@@ -105159,7 +105314,6 @@ subalert.com, 1
 subanelvolumen.tk, 1
 subarus.tk, 1
 subastasdecarros.net, 1
-subastasnacionales.com, 1
 subbacultcha.tk, 1
 subdev.org, 1
 subdivider.tk, 1
@@ -105328,6 +105482,7 @@ sulemanmalik.tk, 1
 sulemanquotes.tk, 1
 suleri.tk, 1
 sulkmen.tk, 1
+sullivancountypa.gov, 1
 sulman4paf.tk, 1
 sultangroup.ru, 1
 sultans.tk, 1
@@ -105390,6 +105545,7 @@ sumochki.tk, 1
 sumppumpchicagoil.com, 1
 sumran.in, 1
 sumter.info, 1
+sumtercountysc.gov, 1
 sumthing.com, 1
 sumutoday.com, 1
 sun-beach.com.ua, 1
@@ -105672,7 +105828,6 @@ supeuro.com, 1
 supfood.cz, 1
 supioka.com, 1
 suplementasi.com, 1
-suplementosmarket.com, 1
 suplments.co.uk, 1
 suplments.com, 1
 suplments.de, 1
@@ -105757,6 +105912,7 @@ surrealismocantabria.tk, 1
 surrealistas.tk, 1
 surrealityfl.com, 1
 surreyheathyc.org.uk, 0
+surrycountync.gov, 1
 surthriveak.com, 1
 suruifu.com, 1
 suruifu.tk, 1
@@ -105919,6 +106075,7 @@ svetonaushniki.tk, 1
 svetplast.msk.ru, 1
 svetplast.spb.ru, 0
 svetrelaxu.cz, 1
+svetzitrka.cz, 0
 svg-board.ml, 1
 svgzone.tk, 1
 svhni.nl, 1
@@ -105982,6 +106139,7 @@ sway-cdn.com, 1
 sway.com, 1
 swayampaaka.com, 1
 swc-cfc.gc.ca, 1
+swcleanair.gov, 1
 swcloud.io, 1
 swd.agency, 1
 swdevteam.com, 1
@@ -106103,7 +106261,6 @@ swissid.ch, 1
 swissinternationalva.com, 1
 swisslifestyletips.ch, 1
 swisslinux.org, 1
-swisstechassociation.ch, 1
 swisstechmap.ch, 1
 swisstranslate.ch, 0
 swisstranslate.fr, 0
@@ -106132,6 +106289,7 @@ swktestserver.tk, 1
 swmcfcu.org, 1
 swmlink.com, 1
 swn-nec.de, 1
+swocaoh.gov, 1
 swoop-qa.cloud, 1
 swoop.cloud, 1
 swordfeng.xyz, 1
@@ -106145,7 +106303,6 @@ swqa.hu, 1
 swrelay.net, 1
 swrelay.xyz, 1
 swretail.ga, 1
-swrpgitems.com, 1
 swtrayssq.gq, 1
 swtun.com, 1
 swvaux.com, 1
@@ -106222,7 +106379,6 @@ symlnk.de, 1
 symmetrysolar.com.au, 1
 symoteb.ir, 1
 symphonise.consulting, 1
-symphonos.it, 1
 symphony.com, 1
 sympletrade.com, 1
 symplexia.com.br, 1
@@ -106266,7 +106422,6 @@ synergy-logistics.tk, 1
 synergyfitness.com.au, 1
 synergyzone.tk, 1
 synerionagile.com, 1
-synfin.org, 1
 syniah.com, 1
 synitsa.tk, 1
 synology.com, 0
@@ -106437,7 +106592,6 @@ t.facebook.com, 0
 t00228.com, 1
 t00ts.com, 0
 t060.com, 1
-t070.com, 1
 t0kie.space, 1
 t0ny.name, 1
 t12u.com, 1
@@ -106468,6 +106622,7 @@ t51365.com, 1
 t5197.co, 1
 t6729.co, 1
 t6957.co, 1
+t7035.com, 0
 t776633.com, 1
 t7e.de, 0
 t81365.com, 1
@@ -106647,7 +106802,6 @@ tahvienovin.ir, 1
 tahynatozzi.tk, 1
 taiaro.tk, 1
 taibachicken.com, 1
-taibafarms.com, 1
 taichi-jade.com, 1
 taichichuanyang.com, 0
 taidu.news, 1
@@ -106825,6 +106979,7 @@ tama.ga, 1
 tamamo.cat, 1
 tamareverson.tk, 1
 tamarind.by, 1
+tamashimx.net, 1
 tamatoyaku.com, 1
 tamayahousing.com, 1
 tambayology.com, 1
@@ -106981,7 +107136,7 @@ tapsnapp.co, 1
 taqeemi.com, 1
 taquilla.com, 1
 taqun.club, 1
-tara.ai, 1
+tara.ai, 0
 tarabici.tk, 1
 tarabooks.com, 1
 tarahancenter.com, 1
@@ -107007,6 +107162,7 @@ tarek.wtf, 1
 tarekfadel.com, 1
 tarfand-pc.tk, 1
 tarfandgram.com, 1
+tarfin.com, 1
 targaryen.house, 1
 targetbuilding.com, 1
 targetlonglife.tk, 1
@@ -107059,6 +107215,7 @@ tasbrouwwinkel.nl, 1
 tascas.ga, 1
 tascout.com, 1
 tascuro.com, 1
+tasefiling.gov, 1
 tasintrip.com, 1
 taskboss.at, 1
 taskforce.eu, 1
@@ -107145,7 +107302,7 @@ taxdispute.win, 1
 taxedesejour-airbnb.fr, 1
 taxhawk.com, 1
 taxhunter.com.au, 1
-taxi-chamonix.fr, 1
+taxi-chamonix.fr, 0
 taxi-collectif.ch, 0
 taxi-domzale.tk, 1
 taxi-doudoune.fr, 1
@@ -107182,6 +107339,7 @@ tayar2u.my, 1
 taybee.net, 1
 tayebbayri.com, 0
 taylorburton-porn.com, 1
+taylorcountyhdwv.gov, 1
 taylored.ga, 1
 taylorfry.co.nz, 1
 taylorfry.com, 1
@@ -107455,7 +107613,6 @@ teasenetwork.com, 1
 teaser-trailer.com, 1
 teast.eu, 1
 teatrarium.com, 1
-teatrolatea.org, 1
 teatroutopia.tk, 1
 teazer.tk, 1
 teb-akademia.pl, 1
@@ -107722,10 +107879,10 @@ techzjc.com, 0
 tecit.ch, 1
 tecke.tk, 1
 teckgeekz.com, 1
-teckids.org, 1
 tecknobox.fr, 1
 tecknologg.website, 1
 tecmarkdig.com, 1
+tecnaa.com, 1
 tecne.ws, 1
 tecnewsnow.com, 1
 tecnicapotiguar.com.br, 1
@@ -107800,7 +107957,6 @@ teeqq.com, 1
 teerer.tk, 1
 teeshirtspace.com, 1
 teesurprise.com, 1
-teesypeesy.com, 1
 teeters.in, 1
 teetje-doko.de, 1
 teetoptens.com, 1
@@ -107818,7 +107974,6 @@ tehnicari-za-racunalstvo.tk, 1
 tehniss.rs, 1
 tehno-trust.tk, 1
 tehplace.club, 1
-tehrabbitt.com, 0
 tehrankey.ir, 1
 tehrantamirgah.com, 1
 teichroeb.net, 1
@@ -107845,7 +108000,6 @@ teknikaldomain.me, 1
 tekniksnack.se, 1
 teknisetdemarit.fi, 1
 tekniskakustik.se, 1
-tekno.de, 1
 teknodaim.com, 1
 teknofara.com, 1
 teknoforums.com, 1
@@ -108000,7 +108154,6 @@ tempdomain.ml, 1
 tempdomain.tk, 1
 templars.army, 1
 template-help.fr, 1
-template-parks.com, 1
 templated.ga, 1
 templeandalucia.tk, 1
 templete.tk, 1
@@ -108059,6 +108212,7 @@ tenisservis.eu, 1
 tenjou-tenge.tk, 1
 tenken1010.org, 1
 tenkiz.com, 1
+tenkofx.com, 1
 tenma.pro, 1
 tennis-altai.tk, 1
 tennisadmin.com, 1
@@ -108179,7 +108333,6 @@ terracom.gr, 1
 terraesencial.com, 1
 terrafinanz.de, 1
 terraform.io, 1
-terragni-sarasin.ch, 1
 terrakotta.tk, 1
 terraluna.space, 1
 terraneesens.fr, 1
@@ -108216,7 +108369,6 @@ tervelde.com, 1
 terviseamet.ee, 0
 tervolina.tk, 1
 tesche.biz, 1
-teschenhausen.com, 1
 tescoirelandpayslips.com, 1
 tesdrole.tk, 1
 teskaassociates.com, 1
@@ -108238,7 +108390,6 @@ test-school.ml, 1
 test-sev-web.pantheonsite.io, 1
 test-textbooks.com, 1
 test.de, 1
-test.support, 1
 testadministrators.net, 1
 testadren.com, 1
 testadron.com, 1
@@ -108266,6 +108417,7 @@ testing-server.tk, 1
 testingben.com, 1
 testingbot.com, 1
 testingtask.tk, 1
+testiowa.gov, 1
 testispdomain.ml, 1
 testkinja.com, 1
 testlabs.tk, 1
@@ -108580,6 +108732,7 @@ the51news.ga, 1
 the5th.nl, 1
 the8rules.co.uk, 1
 thea-team.net, 1
+theacademicpapers.co.uk, 1
 theaccountingcompanyleeds.co.uk, 1
 theaceblock.space, 1
 theactivationfunction.com, 1
@@ -108826,7 +108979,6 @@ thedailyprosper.com, 0
 thedailyreporteronline.com, 1
 thedailyshirts.com, 1
 thedailyupvote.com, 1
-thedaleyclan.hopto.org, 1
 thedanceacademybuckscounty.com, 0
 thedark.ga, 1
 thedark1337.com, 1
@@ -108930,7 +109082,6 @@ theflyingbear.net, 0
 theflyingdutch.tk, 1
 thefnafarchive.org, 1
 thefoodcops.com, 1
-thefooddictator.com, 1
 thefoodellers.com, 1
 thefoodiefit.com, 1
 thefoot.tk, 1
@@ -108993,7 +109144,6 @@ thegreatsouthernburgerco.ga, 1
 thegreenfields.se, 1
 thegreenlivingsolution.com, 1
 thegreenmanpottery.com, 1
-thegreens.us, 1
 thegrio.com, 1
 thegroovecartel.com, 1
 thegrotto.tk, 1
@@ -109048,7 +109198,6 @@ theideaskitchen.com.au, 1
 theidiotboard.com, 1
 theig.co, 1
 theilluminatisociety.org, 1
-theillustrationstudio.com.au, 1
 theimagefile.com, 1
 theimaginationagency.com, 1
 theinboxpros.com, 1
@@ -109468,7 +109617,6 @@ thesistraffic.com, 1
 theskingym.co.uk, 1
 thesled.net, 1
 thesleepdoctor.com, 1
-thesmokingcuban.com, 1
 thesocialmediacentral.com, 1
 thesomepeople.org, 1
 thesoundstageatstrangeland.com, 1
@@ -109919,7 +110067,6 @@ thvideo.tv, 1
 thw-bernburg.de, 1
 thw-jugend-muenchen-west.de, 1
 thwebdesigns.com, 1
-thweis.com, 1
 thwiki.cc, 1
 thxandbye.de, 1
 thycotic.ru, 1
@@ -110064,7 +110211,6 @@ tierra-indomables.tk, 1
 tierracenter.com, 1
 tierradeayala.com, 1
 tierrahost.com, 1
-tierraprohibida.net, 1
 tierschutz-niederrhein.de, 1
 tiestofan.tk, 1
 tietotori.fi, 1
@@ -110080,6 +110226,7 @@ tiffany-remixed.tk, 1
 tiffany.life, 1
 tiffany.moe, 1
 tiffanyblooms.ru, 1
+tiffanytravels.com, 1
 tiffanywatson.xyz, 1
 tiffnix.com, 1
 tifia.com, 1
@@ -110141,6 +110288,7 @@ tilisi.ga, 1
 tilitoimistokota.fi, 1
 tilitop.tk, 1
 till.im, 1
+tillamookcounty.gov, 1
 tillberg.us, 1
 tilleysbouncycastles.co.uk, 1
 tillseasyscore.com, 1
@@ -110162,6 +110310,7 @@ tim427.net, 1
 timacdonald.me, 1
 timawesomeness.com, 1
 timbarlotta.com, 1
+timbercreekcanyontx.gov, 1
 timberjewelleryboxes.ga, 1
 timberjoineryperth.com.au, 1
 timberkel.com, 1
@@ -110269,6 +110418,7 @@ timvandekamp.nl, 1
 timvivian.ca, 1
 timweb.ca, 1
 timwestdesigns.com, 1
+timwhite.io, 0
 timx.uk, 1
 timysewyn.be, 0
 tina-zander.de, 0
@@ -110295,7 +110445,6 @@ tinker.career, 1
 tinkerbeast.com, 1
 tinkerbell.space, 1
 tinkerboard.org, 1
-tinkerers-trunk.co.za, 1
 tinkmai.com, 1
 tinkuscochabamba.tk, 1
 tinlc.org, 1
@@ -110308,9 +110457,6 @@ tintamas.tk, 1
 tintariau.com, 1
 tinte24.de, 1
 tintenfix.net, 1
-tintenfux.de, 1
-tintenland.de, 1
-tintenprofi.de, 1
 tintoria.roma.it, 1
 tintuonmobile.tk, 1
 tinturanaturale.it, 1
@@ -110392,7 +110538,6 @@ tirs4ne.ch, 0
 tirteafuera.tk, 1
 tirupatinightwear.co.in, 1
 tis-mark.ru, 1
-tis.ph, 1
 tischlerei-geher.at, 1
 tischlerei-klettke.de, 1
 tisec.info, 1
@@ -110455,6 +110600,7 @@ tk2net.com, 1
 tkacz.pro, 1
 tkanemoto.com, 0
 tkanix.ru, 1
+tkarstens.de, 1
 tkcafe.net, 1
 tkd-itf.tk, 1
 tkgpm.com, 1
@@ -110495,6 +110641,7 @@ tls-proxy.de, 1
 tls.builders, 1
 tls.care, 1
 tlsrobot.se, 1
+tlthings.net, 1
 tlumaczenie.com, 1
 tlyphed.net, 1
 tlys.de, 0
@@ -110547,6 +110694,7 @@ tn-bb.com, 1
 tn0.club, 1
 tnb-plattform.de, 1
 tnd.kz, 1
+tndagc.gov, 1
 tndentalwellness.com, 1
 tnes.dk, 1
 tnonline.net, 1
@@ -110789,6 +110937,7 @@ tolkienfans.tk, 1
 tolkienmusic.tk, 1
 tolkienwiki.ml, 1
 tolkovanie-sna.tk, 1
+tollandct.gov, 1
 tolle-wolke.de, 1
 tollerunterricht.com, 1
 tollfreeproxy.com, 1
@@ -110884,6 +111033,7 @@ tomo.gr, 0
 tomoarigato.com, 1
 tomodachi.tk, 1
 tomoko-clinic.jp, 1
+tomoradexpert.ro, 1
 tomorrow-traxx.tk, 1
 tomorrowx.com, 1
 tomosm.net, 1
@@ -110929,6 +111079,7 @@ tonage.de, 1
 tonalaw.com, 1
 tonarinoliusan.com, 1
 tonarinoliusan.net, 1
+tonasketwa.gov, 1
 tonburi.jp, 0
 toncusters.nl, 1
 tondles.com, 1
@@ -110963,7 +111114,6 @@ tonik.tk, 1
 tonimorena.net, 1
 tonkayagran.com, 1
 tonkayagran.ru, 1
-tonkinson.com, 1
 tonnycat.com, 1
 tonnygaric.com, 1
 tono.us, 1
@@ -110994,6 +111144,7 @@ too.com.ua, 1
 too.gy, 1
 too.tl, 1
 toobi.co.uk, 1
+tooelecountyvotes.gov, 1
 tookhan.tk, 1
 tool.lu, 1
 toolbox.ninja, 0
@@ -111070,6 +111221,7 @@ top10media.tk, 1
 top10mountainbikes.info, 1
 top4shop.de, 1
 top6casinos.com, 1
+top9.fr, 1
 topan.tk, 1
 topanimecharacters.com, 1
 topanlage.de, 1
@@ -111230,6 +111382,7 @@ torchbearer.tk, 1
 toreni.us, 1
 toretame.jp, 1
 toretfaction.net, 1
+torfbahn.de, 1
 torg-room.ru, 1
 torgoborud.tk, 1
 torgopt.tk, 1
@@ -111344,13 +111497,7 @@ totalcarpetcare.co.uk, 1
 totalchecklist.com, 1
 totalconceptnh.com, 1
 totalcontrols.eu, 1
-totalemaiildelivery.com, 1
-totalemaiilldelivery.com, 1
-totalemaildeliivery.com, 1
 totalemaildelivery.com, 1
-totalemaildellivery.com, 1
-totalemailldeliivery.com, 1
-totalemailldelivery.com, 1
 totalengineering.club, 1
 totalforcegym.com, 0
 totalfoundationpros.com, 1
@@ -111360,8 +111507,6 @@ totalinfo.in, 1
 totalintegratedtherapy.com, 1
 totalityservices.co.uk, 1
 totalleedee.com, 1
-totallemaiildelivery.com, 1
-totallemaildelivery.com, 1
 totallovingcareservice.com, 1
 totally-awesome.xyz, 1
 totally-dakota.tk, 1
@@ -111376,7 +111521,6 @@ totalnormal.tk, 1
 totalofficeclean.co.uk, 1
 totalpackers.com, 1
 totalparts.com.au, 1
-totalrattan.com, 1
 totalsport-bg.com, 1
 totaltriathlon.com, 1
 totalwarhammer.gq, 1
@@ -111502,12 +111646,17 @@ townhouseregister.com.au, 1
 townifi.ga, 1
 townlaretsota.gq, 1
 townofbridgewater.ca, 1
+townofbrookwoodal.gov, 1
+townofcaponbridgewv.gov, 1
+townofclevelandnc.gov, 1
 townofgoldenmeadow-la.gov, 1
+townofhamiltonny.gov, 1
 townofhulbertok.gov, 1
 townofmineral.net, 1
 townofpolk-wi.gov, 1
 townofruthnc.gov, 1
 townoftaycheedahwi.gov, 1
+townofwinneconne.gov, 1
 townresults.ga, 1
 townshipofthenorthshore.ca, 1
 townswalker.com, 1
@@ -111665,7 +111814,6 @@ tradymoney.com, 1
 traefik.io, 0
 traf-bonus.tk, 1
 trafarm.ro, 1
-trafas.nl, 1
 traff1k.net, 1
 traffic.az, 1
 trafficdirection.tk, 1
@@ -111770,11 +111918,11 @@ trancehost.com, 1
 trancendances.fr, 1
 tranceparadise.tk, 1
 tranceptortechnology.com, 1
-trancetronic.com, 1
 trancity.nl, 1
 trandanhland.com, 1
 trangcongnghe.com, 1
 trangell.com, 1
+tranmao.vn, 1
 tranquilityselfcatering.co.za, 1
 tranquillity.se, 1
 tranquillum.tk, 1
@@ -111900,7 +112048,6 @@ trasloedil.it, 1
 trastornoevitacion.com, 0
 trastornolimite.com, 0
 trata.in, 1
-tratamentoparacelulite.net, 1
 tratamientodelvitiligo.es, 1
 trattamenti.biz, 1
 trattamento-cotto.it, 1
@@ -112063,7 +112210,6 @@ travelurban.ga, 1
 travelus.nl, 1
 travelvictory.ga, 1
 travelvisit.cf, 1
-travelwell.io, 1
 travelwithbender.com, 1
 travelwithsearats.com, 1
 travely.nl, 1
@@ -112072,7 +112218,6 @@ traverse.com.ua, 1
 travi.org, 1
 travin.tk, 1
 travis.nl, 1
-travisec.com, 1
 travisf.net, 1
 travisforte.io, 1
 travisfranck.com, 1
@@ -112142,6 +112287,7 @@ trembler.org, 1
 treml-sturm.com, 1
 tremol-spedition.com, 1
 tremors.tk, 1
+trempcountywi.gov, 1
 trend-shop.ga, 1
 trendegypt.ml, 1
 trendingaffords.com, 1
@@ -112224,6 +112370,7 @@ triangle-energie.com, 1
 trianglecastles.co.uk, 1
 trianglelawngames.com, 1
 trianglepwh.com, 1
+trib.nz, 1
 tribac.de, 1
 tribaldos.com, 0
 tribaljusticeandsafety.gov, 1
@@ -112440,9 +112587,8 @@ tropikdeniz.com.tr, 1
 tropiki.tk, 1
 tropiweb.tk, 1
 tropixshipping.com, 1
-troplo.com, 1
+troplo.com, 0
 troqueladoras.online, 1
-trosell.net, 1
 trosinenko.com, 1
 tross.tk, 1
 trotec.com, 1
@@ -112668,9 +112814,7 @@ tscampus.online, 1
 tscfoods.com, 1
 tschuermans.be, 0
 tscinsurance.com, 1
-tscomputers.net.pe, 1
 tscripts.com, 1
-tsdom.net, 1
 tsedryk.ca, 1
 tsentrobuv.tk, 1
 tsenv.net, 1
@@ -112900,7 +113044,6 @@ tune-web.de, 1
 tunefish-entertainment.de, 1
 tunen.cf, 1
 tunenet.ml, 1
-tuneotune.com, 1
 tuner.cloud, 1
 tuneserver.tk, 1
 tungjatjeta.al, 1
@@ -112931,7 +113074,6 @@ tuomiset.com, 1
 tuoni.ga, 1
 tuotteet.org, 1
 tuou.xyz, 0
-tupa-germania.ru, 1
 tupahost.net.br, 1
 tupass.pw, 1
 tupatane.gq, 1
@@ -113073,6 +113215,7 @@ tutierra.net, 1
 tutima.com, 1
 tuto-craft.com, 1
 tutomaestro.ca, 1
+tutoragency.org, 1
 tutorcruncher.com, 1
 tutorial90.cf, 1
 tutorialcoding.ga, 1
@@ -113223,7 +113366,6 @@ twigandolive.com, 1
 twilightcookies.ca, 1
 twilightkingdom.tk, 1
 twilightningzone.tk, 1
-twilightscans.com, 1
 twilite.co.uk, 1
 twilite.uk, 1
 twilleys.com, 1
@@ -113272,7 +113414,6 @@ twocornertiming.com, 1
 twodadsgames.com, 1
 twoef.co.uk, 1
 twohuo.com, 1
-twojajurata.pl, 1
 twojapogoda.pl, 1
 twojfaktum.pl, 1
 twolinesmedia.eu, 1
@@ -113775,6 +113916,7 @@ ulm-eurofox.fr, 1
 ulobby.eu, 1
 ulotnefoto.pl, 0
 ulovdomov.cz, 1
+uloztoasdilej.cz, 1
 ulrichracing.com, 1
 ulrik.moe, 1
 ulrike-sichert-schuster.de, 1
@@ -113784,7 +113926,6 @@ ultima-ratio.at, 1
 ultimadivisao.com.br, 1
 ultimasword.tk, 1
 ultimate-fireworks.tk, 1
-ultimate-uk.com, 1
 ultimateanu.com, 1
 ultimateappreviews.co, 1
 ultimatebabyshowergifts.ga, 1
@@ -114021,7 +114162,6 @@ unfriend.tk, 1
 unga.dk, 1
 ungaeuropeer.se, 1
 ungainlybeast.com, 1
-ungegamere.dk, 1
 unghie.com, 1
 ungnyo.org, 1
 ungolianth.tk, 1
@@ -114102,6 +114242,7 @@ unimusica.tk, 1
 unine.fun, 1
 uninutri.com.br, 1
 unionciclistabinefar.tk, 1
+unioncountyiowa.gov, 1
 unioncountyncelections.gov, 1
 uniondeterapeutas.com, 1
 unionhoster.ml, 1
@@ -114230,6 +114371,7 @@ universocaballo.top, 1
 universogay.com, 1
 universoscuola.it, 1
 universovalve.net, 1
+universrumbacongolaise.com, 1
 universus.tk, 1
 univet-veterinaire.com, 0
 univitale.fr, 0
@@ -114504,7 +114646,6 @@ urbanbikeweamr.ga, 1
 urbanbooks.tk, 1
 urbancoffee.com.mx, 1
 urbancreators.dk, 1
-urbane-london.com, 1
 urbanemc.net, 0
 urbanesecurity.com, 1
 urbanfoodmarket.nl, 1
@@ -114693,6 +114834,7 @@ usds.gov, 1
 usdwellhouse.com, 1
 use.be, 1
 usebosin.gq, 1
+usecamisetas.com, 1
 used255.xyz, 1
 usedu.us, 1
 usehonk.com, 1
@@ -114729,6 +114871,7 @@ usjunkyardsnearme.com, 1
 usk-clan.tk, 1
 uskaonline.tk, 1
 uskaria.com, 1
+usleep.net, 1
 usleravnekrog.dk, 1
 uslugi-advokata.ga, 1
 uslugi-advokata.tk, 1
@@ -115030,14 +115173,19 @@ vacation-croatia.com, 1
 vacation-in-pisak.tk, 1
 vacationfund.co, 1
 vaccantcorner.ml, 1
+vaccinateiowa.gov, 1
+vaccine.gov, 1
 vaccines.gov, 1
 vaccineskill.biz, 1
 vaccinestats.net, 1
+vacine.gov, 1
+vacines.gov, 1
 vackor.tk, 1
 vaclan.tk, 1
 vaclavambroz.eu, 1
 vaclavkocum.com, 1
 vacpas.com, 1
+vacuna.gov, 1
 vacuumreviewcenter.com, 1
 vacuumsealers.ml, 1
 vadasztanyabuk.hu, 1
@@ -115090,6 +115238,7 @@ vakuutuskanava.fi, 1
 vakwinkeldemo.nl, 1
 val-sec.com, 1
 valagrovoce.com, 1
+valaphee.com, 1
 valasi.eu, 1
 valcano-krd.ru, 1
 valcano.ru, 1
@@ -115122,6 +115271,7 @@ valentinemom.cf, 1
 valentinemom.ga, 1
 valentinemom.gq, 1
 valentinemom.ml, 1
+valentinene.gov, 1
 valentinesongs.com, 1
 valentinoduval.fr, 1
 valentinog.com, 1
@@ -115159,6 +115309,7 @@ valladolidlempira.tk, 1
 vallartense.tk, 1
 valledeleresma.tk, 1
 vallei-veluwe.nl, 1
+vallejoca.gov, 1
 vallenar.tk, 1
 valleyautofair.com, 1
 valleydalecottage.com.au, 1
@@ -115237,6 +115388,7 @@ vanbarel.tk, 1
 vanboven.nl, 1
 vanboyvital.tk, 1
 vanbruchem.tk, 1
+vanburencounty-mi.gov, 1
 vanburencountyiowa.gov, 1
 vancityconcerts.com, 1
 vancoevents.com, 1
@@ -115338,7 +115490,6 @@ vapex.pl, 1
 vapezone.com.au, 1
 vaphone.co, 1
 vapingdaily.com, 1
-vapocial.com, 1
 vapolik.fr, 1
 vapor.cloud, 0
 vapordepot.jp, 1
@@ -115751,7 +115902,6 @@ verduccies.com, 1
 verdugosxerecistas.tk, 1
 veredadelaestrella.tk, 1
 verein-kiekin.de, 1
-verein-zur-pflege-der-geselligkeit.de, 1
 vereinlandwege.de, 1
 vereinscheck.de, 1
 vereinswahl.online, 1
@@ -115836,6 +115986,7 @@ verschurendegroot.nl, 1
 verses.space, 1
 versfin.net, 1
 versicherungen-werner-hahn.de, 1
+verso.money, 1
 verspai.de, 0
 verstaanwiskunde.co.za, 1
 verstka.cf, 1
@@ -115863,7 +116014,6 @@ vertretungsplan.io, 1
 vertrieb-strategie.de, 1
 verustracking.com, 1
 vervewellness.co.nz, 1
-verwandlung.org, 1
 verwayen.com, 1
 verwer-infra.nl, 1
 veryapt.com, 1
@@ -115918,6 +116068,8 @@ veteranreservecorps.com, 1
 veteransadvantage.com, 1
 veteransholidaylights.com, 1
 veteransroofingllc.com, 1
+veterinanmnm.cz, 1
+veterinarian-hospital.com, 1
 veterinario.milano.it, 1
 veterinario.roma.it, 1
 veterinarioaltea.com, 1
@@ -116056,16 +116208,18 @@ victoria-legis.ru, 1
 victoria.associates, 1
 victoriaartist.ru, 1
 victoriabeckham.tk, 1
+victoriacountytx.gov, 1
 victorianosaez.tk, 1
 victoriassecret.pl, 1
 victoriassecretbeauty.ro, 1
 victoriastudio.ru, 1
+victorique.moe, 1
 victorjacobs.com, 0
 victornet.de, 1
 victoroilpress.com, 1
-victorpelletmill.com, 1
+victorpelletmill.com, 0
 victorpericiales.com, 1
-victorricemill.com, 1
+victorricemill.com, 0
 victorrivera.org, 1
 victorrodriguez.ml, 1
 victorunix.com, 1
@@ -116091,6 +116245,7 @@ vidaxp.com, 1
 vidb.me, 1
 vidbooster.com, 0
 vidbuchanan.co.uk, 1
+vidcloud.xyz, 1
 vide-dressing.org, 0
 vide-greniers.org, 0
 vide-maisons.org, 0
@@ -116329,7 +116484,9 @@ villalmanzo.tk, 1
 villamariaamalfi.it, 1
 villamenty.com, 1
 villanew.tk, 1
+villaparkil.gov, 1
 villapiknik.tk, 1
+villarica.gov, 1
 villas-parfumdemyrte.fr, 1
 villasdelbosque.com.gt, 1
 villasenor.online, 1
@@ -116519,7 +116676,6 @@ vipw6600.com, 1
 vipw6603.com, 1
 vipw6606.com, 1
 vipw6608.com, 1
-viqo.pl, 1
 vir-tec.eu, 0
 vir2.me, 1
 virajtharinda.tk, 1
@@ -116606,6 +116762,7 @@ visa-master.tk, 1
 visadaifu.com, 1
 visadoparausa.com, 1
 visafruit.com, 1
+visalia.gov, 1
 visaliafarmersmarket.com, 1
 visalist.io, 1
 visalogy.com, 1
@@ -116660,6 +116817,7 @@ visitbangkoktravel.com, 1
 visitbeulah.com, 1
 visitcambridgeshirefens.org, 1
 visitcaparica.com, 1
+visitconwaysc.gov, 1
 visiter-tunis.tk, 1
 visitgent.be, 1
 visitgent.eu, 1
@@ -116710,7 +116868,6 @@ visualmasters.nl, 1
 visualstories.com, 1
 visudira.com, 1
 visuri.de, 1
-visvolunteers.com, 1
 visware.com, 1
 visyeva.hu, 1
 vitaalcheck.nl, 1
@@ -116819,7 +116976,6 @@ viviennevandenbos.nl, 1
 vivirenelmundo.com, 1
 vivirenelpoblado.com, 1
 vivo.cam, 1
-vivo.sx, 1
 vivo.vn, 1
 vivoitaliankitchen.com, 1
 vivoldi.com, 1
@@ -116872,7 +117028,6 @@ vksportphoto.com, 1
 vkstream.tk, 1
 vkulagin.ru, 1
 vkusnyashka.tk, 1
-vkwebsite.ru, 1
 vkwebsite.site, 1
 vlaamsegemeenschap.tk, 1
 vlaamsetollers.tk, 1
@@ -117208,16 +117363,25 @@ vote4.hk, 1
 votebrevard.gov, 1
 votebymail.gov, 1
 votecitrus.gov, 1
+votedenton.gov, 1
 votehamiltoncountyohio.gov, 1
+votehillsborough.gov, 1
+voteidaho.gov, 1
 votelevy.gov, 1
 votemarion.gov, 1
 votemate.org, 1
 votemoore.us, 1
 voteokaloosa.gov, 1
+votepalmbeach.gov, 1
+votepinellas.gov, 1
 voter-info.uk, 1
+voterockfordil.gov, 1
 votes-reu.ml, 1
+voteseminole.gov, 1
+votesjc.gov, 1
 voteurl.cf, 1
 votewa.gov, 1
+votewalton.gov, 1
 votocek.cz, 0
 votockova.cz, 0
 votoot.com, 1
@@ -117299,6 +117463,7 @@ vqcymsa.com, 1
 vqebizconsulting.com, 1
 vqeg.org, 1
 vqn.se, 1
+vqporn.com, 0
 vr-tops.ir, 1
 vr3marcas.com.br, 1
 vrachi.online, 1
@@ -117749,13 +117914,13 @@ waimanu.io, 1
 wains.be, 1
 waiomizik.re, 1
 waistawayuk.co.uk, 1
-wait.jp, 1
 waits.io, 1
 waiwaisw.com, 1
 waixingrenfuli.vip, 1
 wajtc.com, 1
 wak.io, 1
 waka-mono.com, 1
+wakandasun.com, 1
 wakarandroid.com, 1
 wakastream.cc, 1
 wakatime.com, 1
@@ -117766,16 +117931,16 @@ wakeupform.fr, 1
 wakeupworld.ml, 1
 wakf123.net, 1
 wakf456.com, 1
-wakiminblog.com, 1
 wakpamnilake-nsn.gov, 1
 wakuwakustudyworld.co.jp, 0
-wala-floor.de, 1
 walaamohamed.com, 1
 walden-interiors.com, 1
+waldenvt.gov, 1
 waldenwritingcenter.ml, 1
 waldgourmet.de, 1
 waldo.tk, 1
 waldparkerwoelfe.tk, 1
+waldportoregon.gov, 1
 waldur.nl, 1
 waldvogel.family, 1
 walent.in, 1
@@ -117787,6 +117952,7 @@ walkaround.tk, 1
 walker-foundation.org, 1
 walkera-fans.de, 1
 walkercountydemocrats.org, 1
+walkermi.gov, 1
 walkersplayground.tk, 1
 walking-algarve.tk, 1
 walkingandcycling.org.uk, 1
@@ -117840,7 +118006,6 @@ wally4000.tk, 1
 wallysmasterblaster.com.au, 1
 wallytest.tk, 1
 walma.re, 1
-walnus.com, 1
 walnutgaming.com, 1
 walnutis.net, 0
 walpu.ski, 1
@@ -118006,7 +118171,10 @@ warr.ath.cx, 1
 warrantycontracts.ga, 1
 warrantynowvoid.com, 1
 warrencountyga.gov, 1
+warrencountynj.gov, 1
+warrencountypa.gov, 1
 warrenhousevets.co.uk, 1
+warrenri.gov, 1
 warringtonkidsbouncycastles.co.uk, 1
 warriorworld.nl, 1
 warrock-es.tk, 1
@@ -118053,6 +118221,7 @@ washingtonregisteredagent.com, 1
 washingtonregisteredagent.io, 1
 washingtonviews.com, 1
 washingtonwatchdog.org, 1
+washoecounty.gov, 1
 washoedems.org, 1
 washsolucoesemlimpeza.com.br, 1
 washup.tk, 1
@@ -118130,6 +118299,7 @@ waterstreetloft.com, 1
 watersview.co.uk, 1
 waterton.tk, 1
 watertorenstraat.tk, 1
+watertownmi.gov, 1
 watertownmn.gov, 1
 watertrails.io, 1
 watervillewomenscare.com, 1
@@ -118150,6 +118320,7 @@ watvindtnederland.com, 1
 watzijnmijnkerntalenten.nl, 1
 waukeect.com, 1
 waukeshairon.com, 1
+waupacacounty-wi.gov, 1
 wav-productions.com, 1
 wave-inc.co.jp, 1
 wave.is, 1
@@ -118221,6 +118392,7 @@ wc64.org, 1
 wca.link, 1
 wcbook.ru, 0
 wcei.com.au, 0
+wcema-ok.gov, 1
 wcfauth.de, 1
 wcit2010.com, 1
 wck.com, 1
@@ -118232,7 +118404,7 @@ wcru.one, 1
 wctsite.tk, 1
 wcwcg.net, 1
 wd-api.com, 0
-wd-img.com, 1
+wd-img.com, 0
 wd-ljt.com, 1
 wd36.cc, 1
 wd627.com, 1
@@ -118466,6 +118638,7 @@ webeditors.com, 1
 webehurt.com, 1
 webelement.sk, 0
 webenglish.se, 1
+weberelections.gov, 1
 weberl.com, 1
 webers-webdesign.de, 1
 webescucha.tk, 1
@@ -118573,6 +118746,7 @@ webmarketingfestival.it, 1
 webmaster-infographiste-lyon.fr, 1
 webmaster16.ml, 1
 webmasterblog.tk, 1
+webmediaclick.com, 1
 webmediaprint.at, 1
 webmediums.com, 1
 webmedpharmacy.co.uk, 1
@@ -118662,6 +118836,7 @@ websitecenter.tk, 1
 websitecyber.com, 1
 websitedesignersmalappuram.ga, 1
 websitedesignprice.ga, 1
+websitedown.io, 1
 websiteforstudents.com, 1
 websiteforyou.nl, 1
 websiteirani.tk, 1
@@ -118679,7 +118854,6 @@ websitesbywordpress.com, 1
 websitesdallas.com, 1
 websitesdemos.tk, 1
 websiteservice.pro, 1
-websitesmiths.com, 1
 websitesseller.com, 1
 websitesthatwork.biz, 1
 websize.me, 1
@@ -118697,6 +118871,8 @@ webstaff.xyz, 1
 webstart.nl, 1
 webstats.tk, 1
 websteam.tk, 1
+webstergrovesmo.gov, 1
+websternytoday.gov, 1
 webstop.tk, 1
 webstore.be, 1
 webstreamworld.com, 1
@@ -118891,7 +119067,6 @@ weiterbildung-vdz.de, 1
 weitergedacht.eu, 1
 weitsolutions.nl, 1
 weitundbreit.ch, 1
-weitweg.xyz, 1
 weizenke.im, 1
 wejdmark.com, 1
 wekibe.de, 1
@@ -118904,6 +119079,7 @@ welcome-to-the.wedding, 1
 welcome-werkstatt.com, 1
 welcome26.ch, 0
 welcomepowayan.tk, 1
+weld.gov, 1
 weld.io, 1
 weldersnet.tk, 1
 weldonconstruction.com.au, 1
@@ -119007,7 +119183,6 @@ werbeagentur.de, 1
 werbedesign-tauber.de, 1
 werbefotograf-leitner.de, 1
 werbefotografie-leitner.de, 1
-werbetopshop.de, 1
 werbewelt-tv.de, 1
 werbezentrum-stiebler.de, 1
 werbik.at, 1
@@ -119056,7 +119231,7 @@ weschool.id, 1
 wesecom.com, 1
 wesell.asia, 1
 weserv.nl, 1
-wesleycabus.be, 1
+wesleycabus.be, 0
 wesleywarnell.com, 1
 wesoco.de, 1
 wespeakgeek.co.za, 1
@@ -119071,6 +119246,7 @@ west-raptors.tk, 1
 west-wind.net, 1
 westaf-edit.com, 1
 westafricatradehub.com, 1
+westbathmaine.gov, 1
 westcarrollton.org, 1
 westcentenaryscouts.org.au, 1
 westcentralaor.org, 1
@@ -119089,6 +119265,7 @@ westernpadermatologist.com, 1
 westernparts.com, 0
 westernstairlifts.com, 1
 westeros.hu, 1
+westfordwi.gov, 1
 westhighlandwhiteterrier.com.br, 1
 westhillselectrical.com, 1
 westhotel.com.au, 1
@@ -119109,6 +119286,7 @@ westlinntowncar.com, 1
 westlogistic.com, 1
 westmead.org, 1
 westmeadapartments.com.au, 1
+westmelbourne.gov, 1
 westmidlandsbouncycastlehire.co.uk, 1
 westmidlandsinflatables.co.uk, 1
 westmidlandslettings.com, 1
@@ -119117,6 +119295,7 @@ westonaprice.london, 1
 westondenning.com, 1
 westonma.gov, 1
 westplains.gov, 1
+westpointne.gov, 1
 westportseaanglingfestival.eu, 1
 westside-pediatrics.com, 1
 westsidechildrenstherapy.com, 1
@@ -119130,6 +119309,7 @@ westwings.tk, 1
 wesupportthebadge.org, 1
 wet-international.com, 1
 wetheghosts.eu, 1
+wetofu.top, 1
 wetpussylipsex.com, 1
 wetravel.company, 1
 wetrepublic.com, 1
@@ -119137,10 +119317,12 @@ wettbuero.com, 1
 wette.de, 1
 wetter.de, 1
 wetthost.com, 1
+wetumpkaal.gov, 1
 wevenues.com, 1
 wevg.org, 1
 wew881.com, 1
 wew882.com, 1
+wew888.com, 1
 wewhydrogen.com, 1
 wewin88.com, 1
 wewin88.net, 1
@@ -119261,7 +119443,6 @@ whatsupoutdoor.com, 0
 whatsupyo.tk, 1
 whatswrong.blog, 1
 whatthefile.info, 1
-whatthefoxhat.com, 1
 whatthingsweigh.com, 1
 whattodo.com, 0
 whattominingrigrentals.com, 1
@@ -119270,6 +119451,7 @@ whatwebcando.today, 1
 whatwg.org, 1
 whd-guide.de, 1
 whdpc.gov, 1
+wheatfieldtwpmi.gov, 1
 wheatgra.in, 1
 wheelchair.gq, 1
 wheeler.kiwi.nz, 0
@@ -119315,7 +119497,6 @@ whisho.com, 1
 whiskersandtails.co.za, 1
 whiskey.com.my, 1
 whiskey.money, 1
-whiskey.my, 1
 whisky-circle.info, 1
 whisky.com.my, 1
 whisky.money, 1
@@ -119387,8 +119568,9 @@ whitevpn.cz, 1
 whiteweb.tk, 1
 whitewebhosting.com, 1
 whitewinterwolf.com, 1
+whitfieldcountyga.gov, 1
 whitkirk.com, 1
-whitkirkchurch.org.uk, 1
+whitkirkchurch.org.uk, 0
 whitlockconstruction.ca, 1
 whittle.in, 1
 whittome.com, 1
@@ -119402,6 +119584,7 @@ who.pm, 0
 whoagirls.com, 1
 whoagirls.net, 0
 whoagirls.org, 1
+whoami.eu.org, 1
 whoami.io, 1
 whocalld.com, 1
 whocalled.us, 1
@@ -119601,7 +119784,6 @@ wikimania.com, 1
 wikimania.org, 1
 wikimedia-dns.org, 1
 wikimedia.biz, 1
-wikimedia.com, 1
 wikimedia.com.pt, 1
 wikimedia.community, 1
 wikimedia.is, 1
@@ -119758,7 +119940,6 @@ wilk.tech, 1
 wilkebouwer.nl, 1
 wilkipedia.org, 1
 wilkushka.com, 1
-wilkushka.net, 1
 will-lash.com, 1
 willalex.com, 1
 willbarnesphotography.co.uk, 1
@@ -119812,6 +119993,7 @@ willowpf.com, 1
 wills.co.tt, 1
 willship.co.nz, 1
 willsigal.com, 1
+willspointtx.gov, 1
 willstamper.name, 1
 willsthebest.co.uk, 1
 willstocks.co.uk, 1
@@ -119829,6 +120011,7 @@ wiloca.it, 1
 wilomark.com, 1
 wils.jp, 1
 wilseyrealty.com, 1
+wilsoncountync.gov, 1
 wilsonovi.com, 1
 wilsonvilleoregon.gov, 1
 wiltrovira.com, 1
@@ -119922,6 +120105,7 @@ wingspatagonia.com, 1
 winhelp21.tk, 1
 winhistory-forum.net, 1
 winkelcentrumputten.nl, 1
+winkelmanaz.gov, 1
 winkelvanmorgen.nl, 1
 winkelvansinkel.tk, 1
 winkli.ddns.net, 1
@@ -119971,6 +120155,7 @@ winterstudies.ga, 1
 winterstyle.com, 1
 winterzine.cf, 1
 wintodoor.com, 1
+wintzenterprise.com, 0
 winwares.com, 1
 winwitharval.co.uk, 1
 winwiz1.com, 1
@@ -119981,7 +120166,6 @@ wipa.tk, 1
 wipeoutracing.tk, 1
 wippie.se, 1
 wippy.tk, 1
-wir-bewegen.sh, 1
 wir-do.de, 1
 wir-jugendhilfe.de, 1
 wir-machen-druck.de, 1
@@ -120015,6 +120199,7 @@ wirmicode.com, 1
 wirsberg-studios.de, 1
 wirsing.nl, 1
 wirtanen.tk, 1
+wirtcountywvsheriff.gov, 1
 wis.no, 1
 wisak.me, 1
 wisal.org, 1
@@ -120039,7 +120224,6 @@ wiseemergency.com.au, 1
 wiseflat.com, 0
 wisehome.dk, 1
 wiseinternational.org, 1
-wisekidscollect.org, 1
 wisemen.digital, 1
 wisemoney.com.vc, 1
 wisenederland.nl, 1
@@ -120108,7 +120292,6 @@ witrey.com, 1
 witsvideo.com, 1
 witt-international.co.uk, 1
 wittamer.com, 1
-witte.cloud, 1
 wittepapaver.nl, 1
 wittgen-kfz-technik.de, 1
 witting.co, 0
@@ -120141,6 +120324,7 @@ wizdomonwheels.com, 1
 wizzair.com, 1
 wizzley.com, 1
 wizznab.tk, 1
+wizzr.nl, 1
 wjb.marketing, 1
 wjci.com, 1
 wje-online.de, 1
@@ -120757,7 +120941,6 @@ wpfullpackage.com, 1
 wpfunction.com, 1
 wpfy.org, 0
 wpg-verwaltungen.de, 1
-wpgoblin.com, 1
 wphelpdesk.nl, 1
 wphelpwithhomework.tk, 1
 wpherc.com, 0
@@ -120998,6 +121181,7 @@ wwe.to, 1
 wweforums.net, 0
 wweichen.com.cn, 0
 wwgc2011.se, 1
+wwin818.com, 1
 wwjd.dynu.net, 1
 wwv-8522.com, 1
 wwv-8722.com, 1
@@ -121032,7 +121216,7 @@ www.amazon.fr, 1
 www.amazon.in, 1
 www.amazon.it, 1
 www.amazon.nl, 1
-www.banking.co.at, 0
+www.banking.co.at, 1
 www.braintreepayments.com, 0
 www.cnet.com, 1
 www.dropbox.com, 1
@@ -121107,6 +121291,7 @@ wwwwnews.tk, 1
 wx37.ac.cn, 1
 wx6688.cc, 1
 wxcafe.net, 1
+wxdisco.com, 1
 wxforums.com, 1
 wxh.jp, 1
 wxhbts.com, 1
@@ -121119,6 +121304,7 @@ wxw.moe, 1
 wxxcxd88.com, 1
 wxzm.sx, 1
 wy188.cc, 1
+wy6.org, 1
 wyam.io, 1
 wyatttauber.com, 1
 wybar.uk, 1
@@ -121322,7 +121508,6 @@ xb780.com, 1
 xb8006.com, 1
 xb8018.com, 1
 xb836.com, 1
-xb83studio.ch, 1
 xb851.com, 1
 xb852.com, 1
 xb853.com, 1
@@ -121383,7 +121568,6 @@ xblau.com, 1
 xbots.tk, 1
 xbox-mag.net, 1
 xboxachievements.com, 1
-xboxdownloadthat.com, 1
 xbrl.online, 1
 xbrlsuccess.appspot.com, 1
 xbros.cz, 1
@@ -121747,7 +121931,6 @@ xmiui.com, 1
 xmlbeam.org, 1
 xmp3.net, 1
 xmpp.dk, 0
-xmppwocky.net, 1
 xmr.wiki, 1
 xmusic.live, 1
 xmv.cz, 1
@@ -121992,6 +122175,7 @@ xn--fretagsfinanser-8sb.se, 1
 xn--fs5ak3f.com, 1
 xn--gfrr-7qa.li, 1
 xn--gfrrli-yxa.ch, 1
+xn--ggle-qoaa.com, 1
 xn--gi8h6v.ml, 1
 xn--gmq92k.nagoya, 1
 xn--grnderlehrstuhl-0vb.de, 1
@@ -122049,7 +122233,6 @@ xn--martnvillalba-zib.net, 1
 xn--mein-kchenhelfer-ozb.de, 1
 xn--mensenges-o1a8c.gq, 1
 xn--mensengesss-t8a.gq, 1
-xn--mentaltraining-fr-musiker-uwc.ch, 1
 xn--mgbbh2a9fub.xn--ngbc5azd, 0
 xn--mgbmmp7eub.com, 1
 xn--mgbpkc7fz3awhe.com, 1
@@ -122178,7 +122361,6 @@ xnode.org, 0
 xnoe.moe, 1
 xnopyt.com, 1
 xntrik.wtf, 1
-xnu.kr, 1
 xoan.cf, 1
 xoatickets.com, 1
 xobotun.com, 1
@@ -122259,7 +122441,7 @@ xpsauto.com, 1
 xpsautomation.com, 1
 xpwn.cz, 0
 xq.com, 1
-xq55.com, 0
+xq55.com, 1
 xqin.net, 1
 xqk7.com, 1
 xr.cx, 1
@@ -122292,7 +122474,6 @@ xsole.net, 1
 xsolla.com, 1
 xss.name, 1
 xss.sk, 1
-xssi.uk, 1
 xsstime.nl, 1
 xsteam.eu, 1
 xstore.top, 1
@@ -122740,6 +122921,7 @@ yannikbloscheck.com, 1
 yannyann.com, 1
 yanovich.net, 1
 yanovosibirsk.ml, 1
+yanqiyu.info, 1
 yanservices.be, 1
 yansurachman.web.id, 1
 yantarniy.tk, 1
@@ -122779,6 +122961,7 @@ yapan99.com, 1
 yapan999.com, 1
 yapanwang.com, 1
 yapeal.ch, 1
+yaporn.tv, 0
 yapperapp.co.za, 1
 yappy.com, 1
 yarahmad.ir, 1
@@ -123050,6 +123233,7 @@ yilanju.com, 1
 yilconstruction.ca, 1
 yiluup.com, 0
 yimgo.fr, 0
+yinduyy.com, 0
 yinfor.com, 1
 ying.gift, 1
 ying299.com, 1
@@ -123115,8 +123299,10 @@ yoba.co.uk, 1
 yobai-grouprec.jp, 1
 yobasystems.co.uk, 1
 yobda.tk, 1
+yobify.com, 0
 yobniyulyu.tk, 1
 yobst.tk, 1
+yochadehe.gov, 1
 yochen.de, 1
 yocoboard.com, 1
 yocto.xyz, 1
@@ -123246,6 +123432,7 @@ youcruit.com, 0
 youdamom.com, 1
 youdungoofd.com, 1
 youenglish.school, 1
+youftp.tk, 1
 yougee.ml, 1
 yougene.me, 1
 yougot.pw, 1
@@ -123403,7 +123590,6 @@ yousee.gq, 1
 yousefi.de, 1
 yousei.ne.jp, 1
 youservice.it, 1
-youshouldbealiberal.com, 1
 yousica.com, 1
 yousite.by, 1
 yousound.tk, 1
@@ -123484,10 +123670,8 @@ ytec.ca, 1
 ytegiadinhmilo.com, 1
 ytexa.tk, 1
 ytpak.pk, 1
-ytreza.fr, 1
 ytsdownload.com, 1
 ytterland.tk, 1
-ytuquelees.net, 1
 ytvideosaver.com, 1
 ytvwld.de, 0
 ytx588.com, 1
@@ -123615,6 +123799,7 @@ yule.hk, 1
 yuleyule88game.com, 1
 yulsn.com, 1
 yum0.cn, 1
+yumacountyco.gov, 1
 yumechi.jp, 1
 yumeconcert.com, 1
 yumepolo.com, 1
@@ -123977,7 +124162,6 @@ zacharyseguin.ca, 1
 zachaysan.com, 1
 zachbolinger.com, 1
 zachborboa.com, 1
-zachgibbens.org, 1
 zachhay.es, 1
 zachranari.tk, 1
 zachschneider.ca, 1
@@ -124051,7 +124235,7 @@ zak.org.pl, 1
 zakachat-brauzer.gq, 1
 zakachat-temi.gq, 1
 zakaria.website, 1
-zakariya.blog, 0
+zakariya.blog, 1
 zakarotta.ga, 1
 zakaz.cf, 1
 zakazat-dizayn-interyera.ru, 1
@@ -124615,6 +124799,7 @@ zhome.info, 1
 zhongqiao.com, 1
 zhongxigo.com, 1
 zhongzicili.ws, 1
+zhost.io, 1
 zhouba.cz, 1
 zhoujianghan.com, 0
 zhoujiashu.com, 1
@@ -124638,7 +124823,6 @@ zhuktrans.msk.ru, 1
 zhunlink.com, 1
 zhurnalyu.ga, 1
 zhuziyy.com, 1
-zhy.us, 1
 zi.is, 1
 zi5.net, 1
 ziad87.net, 0
@@ -124714,7 +124898,6 @@ zionvps.com, 0
 zip.ch, 1
 zipalerts.com, 1
 ziparcfhive.ga, 1
-zipfworks.com, 1
 zipkey.de, 1
 zippo-days.me, 0
 zippyshare.com, 1
@@ -124872,7 +125055,6 @@ znachenie-sna.ml, 1
 znachenie-sna.tk, 1
 znaj.ua, 1
 znajdzprzodka.pl, 1
-znakcomstva.ru, 1
 znakomim.cf, 1
 znakomstva-2013.tk, 1
 znakomstva.gq, 1
@@ -125194,11 +125376,13 @@ zwollemag.nl, 1
 zwollemagazine.nl, 1
 zwy.ch, 0
 zwyr157wwiu6eior.com, 1
+zxavier.com, 1
 zxe.com.br, 1
 zxfiles.tk, 1
 zxity.co.uk, 1
 zxity.ltd, 1
 zxity.uk, 1
+zxssl.com, 0
 zxtcode.com, 1
 zy.md, 1
 zy.si, 1
diff --git a/security/sandbox/linux/launch/SandboxLaunch.cpp b/security/sandbox/linux/launch/SandboxLaunch.cpp
index d55acbc1a57cc635632ed3db29d0c8bae52ba502..c7f7acd8d19840806bdad9d0f0720c17cc9d3b58 100644
--- a/security/sandbox/linux/launch/SandboxLaunch.cpp
+++ b/security/sandbox/linux/launch/SandboxLaunch.cpp
@@ -509,8 +509,7 @@ static int CloneCallee(void* aPtr) {
 MOZ_NEVER_INLINE MOZ_ASAN_BLACKLIST static pid_t DoClone(int aFlags,
                                                          jmp_buf* aCtx) {
   static constexpr size_t kStackAlignment = 16;
-  uint8_t miniStack[PTHREAD_STACK_MIN]
-      __attribute__((aligned(kStackAlignment)));
+  uint8_t miniStack[4096] __attribute__((aligned(kStackAlignment)));
 #ifdef __hppa__
   void* stackPtr = miniStack;
 #else
@@ -531,13 +530,19 @@ static pid_t ForkWithFlags(int aFlags) {
                                CLONE_CHILD_CLEARTID;
   MOZ_RELEASE_ASSERT((aFlags & kBadFlags) == 0);
 
+  // Block signals due to small stack in DoClone.
+  sigset_t oldSigs;
+  BlockAllSignals(&oldSigs);
+
+  int ret = 0;
   jmp_buf ctx;
   if (setjmp(ctx) == 0) {
     // In the parent and just called setjmp:
-    return DoClone(aFlags | SIGCHLD, &ctx);
+    ret = DoClone(aFlags | SIGCHLD, &ctx);
   }
+  RestoreSignals(&oldSigs);
   // In the child and have longjmp'ed:
-  return 0;
+  return ret;
 }
 
 static bool WriteStringToFile(const char* aPath, const char* aStr,
diff --git a/services/settings/dumps/blocklists/addons-bloomfilters.json b/services/settings/dumps/blocklists/addons-bloomfilters.json
index aacfc446b9907d842a73afb396454cb417ebf08e..311fee2ca6a81b9e80af81f40e4afab058d96606 100644
--- a/services/settings/dumps/blocklists/addons-bloomfilters.json
+++ b/services/settings/dumps/blocklists/addons-bloomfilters.json
@@ -1,5 +1,189 @@
 {
   "data": [
+    {
+      "stash": {
+        "blocked": [
+          "{7aa2b9c4-c823-45ea-8b77-51a90c625311}:1.0.0"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629808696276,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629981310291,
+      "id": "3918630b-731d-47b4-b9ab-126be669e9cd",
+      "last_modified": 1629981493939
+    },
+    {
+      "stash": {
+        "blocked": [
+          "jtds@jietudashi:1.0.0.3",
+          "jtds@jietudashi:1.0.0.1",
+          "jtds@jietudashi:1.5.1.8",
+          "jtds@jietudashi:1.5.1.3",
+          "jtds@jietudashi:1.5.1.7"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629743876868,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629808509903,
+      "id": "8729e2a6-bbb1-43e2-8de0-ff4274470ec8",
+      "last_modified": 1629808696217
+    },
+    {
+      "stash": {
+        "blocked": [
+          "Bible_xBsVzaPTNL@weatherwaves.co:1.0.0.1",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.2.11",
+          "Maps_Assist_Search_gaKibGGymx@mapsassist.com:1.0.2.0",
+          "Find_Jobs_Pro_etSsrmOSTv@findjobspro.com:1.0.0.5",
+          "Flight_Tab_Search_BAFJuCUJhX@flighttabpro.com:1.0.0.0",
+          "Weather_Waves_Search_LzbaeXunVC@weatherwavessearch.com:1.0.0.1",
+          "Maps_Assist_Search_gaKibGGymx@mapsassist.com:1.0.0.0",
+          "History_See_Search_DxFJTfiJwA@history-see.com:1.0.0.0",
+          "Astrology_Craft_AogBLTeRNW@astrologycraft.com:1.0.0.3",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.0.4",
+          "Speed_Test_Search_ZWEDUcALLs@speedtestguidesearch.com:1.0.2.0",
+          "Astrology_Craft_Search_OLUXLJcgBJ@astrologycraft.com:1.0.2.0",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.2.0",
+          "History_See_Search_DxFJTfiJwA@history-see.com:1.0.2.1",
+          "Converter_Suite_Search_nDsAamnhlI@convertersuitesearch.com:1.0.0.0",
+          "Astrology_Craft_Search_OLUXLJcgBJ@astrologycraft.com:1.0.2.2",
+          "Astrology_Craft_AogBLTeRNW@astrologycraft.com:1.0.2.2",
+          "Ezy_Photo_Search_FwrwHTgLCW@ezyphototab.com:1.0.2.0",
+          "Maps_Assist_Search_gaKibGGymx@mapsassist.com:1.0.2.1",
+          "Bible_xBsVzaPTNL@weatherwaves.co:1.0.0.3",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.2.3",
+          "Astrology_Craft_Search_OLUXLJcgBJ@astrologycraft.com:1.0.0.0",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.0.2",
+          "Ezy_Photo_Tab_clone_HJXEXslDEi@ezyphototab.com:1.0.0.5",
+          "The_Inbox_Hub_OyWQbYIqXI@theinboxhub.com:1.0.0.4",
+          "Weather_Waves_Search_LzbaeXunVC@weatherwavessearch.com:1.0.2.0",
+          "Safeplex_Lite_XKyiSohTiz@safeplexlite.com:1.0.0.3",
+          "Astrology_Craft_AogBLTeRNW@astrologycraft.com:1.0.2.0",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.0.3",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.2.1",
+          "Quick_Private_Search_EtnLsdZrKQ@quickprivatesearch.com:1.0.0.3",
+          "Maps_Assist_clone_cXDnFIWgpj@mapsassist.com:1.0.0.4",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.2.0",
+          "Converter_Suite_Search_nDsAamnhlI@convertersuitesearch.com:1.0.2.1",
+          "Secure_All_Searches_ehHQAdRPxE@shieldmysearches.com:1.0.0.1",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.2.2",
+          "Astrology_Craft_AogBLTeRNW@astrologycraft.com:1.0.0.1",
+          "Advanced_Privacy_Protection_OGfkXcxins@advancedprivacyprotection.com:1.0.0.1",
+          "Flight_Tab_Search_BAFJuCUJhX@flighttabpro.com:1.0.2.0",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.2.1",
+          "Flight_Tab_clone_TyCRBQrpqb@flighttabpro.com:1.0.2.14",
+          "Live_NewsInc_KbHHRQJfhF@livenewsinc.com:1.0.0.3",
+          "Speed_Test_Search_ZWEDUcALLs@speedtestguidesearch.com:1.0.0.0",
+          "Ezy_Photo_Search_FwrwHTgLCW@ezyphototab.com:1.0.0.0",
+          "Converter_Suite_Search_nDsAamnhlI@convertersuitesearch.com:1.0.2.0",
+          "Quick_Private_Search_EtnLsdZrKQ@quickprivatesearch.com:1.0.0.1",
+          "History_See_GLpbCPFSuZ@history-see.com:1.0.0.0",
+          "Precious_Bible_Search_LbfrFqUkCt@preciousbible.com:1.0.0.1",
+          "Speed_Test_Guide_clone_zkqPoxNiRl@speedtest-guide.com:1.0.2.13",
+          "Converter_Suite_clone_MmwAYRNsZb@convertersuite.com:1.0.2.11",
+          "History_See_Search_DxFJTfiJwA@history-see.com:1.0.2.0",
+          "Speed_Test_Search_ZWEDUcALLs@speedtestguidesearch.com:1.0.2.1",
+          "Live_NewsInc_KbHHRQJfhF@livenewsinc.com:1.0.0.2",
+          "Weather_Waves_Search_LzbaeXunVC@weatherwavessearch.com:1.0.0.2",
+          "Weather_Waves_Search_LzbaeXunVC@weatherwavessearch.com:1.0.0.0",
+          "Flight_Tab_clone_TyCRBQrpqb@flighttabpro.com:1.0.2.13",
+          "Advanced_Privacy_Protection_OGfkXcxins@advancedprivacyprotection.com:1.0.0.5",
+          "Astrology_Craft_AogBLTeRNW@astrologycraft.com:1.0.0.0"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629727244627,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629743709757,
+      "id": "03696dfe-83f4-49b5-b658-625c80ac5c05",
+      "last_modified": 1629743876811
+    },
+    {
+      "stash": {
+        "blocked": [
+          "{6e148c3c-fb0b-4eef-86d1-a4625a7ffbaf}:10.7.2",
+          "{6e148c3c-fb0b-4eef-86d1-a4625a7ffbaf}:9.5.2"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629484666158,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629722108470,
+      "id": "69d5ab28-2020-4d4b-8d2b-305786490437",
+      "last_modified": 1629722276720
+    },
+    {
+      "stash": {
+        "blocked": [
+          "{2ba6a36a-57a0-45d1-85b5-1f163e474f9d}:1.0.0",
+          "{ae1cf653-e8ef-4227-85d3-57aa602cce24}:1.0.1",
+          "{ba479273-ef33-41b4-975d-f0cf3fbf5e9b}:1.1",
+          "{cd8df54b-b0de-4d8f-a62f-9031913bbb1d}:1.0.1",
+          "{801de3a1-d001-4548-b1d5-9948f3eccc9d}:1.0.1",
+          "{949d70b6-9d80-4138-9d49-bc018938a91c}:1.1.0",
+          "{8ca8802d-8ae7-49bd-a221-0579b79502a9}:2.0.0",
+          "{f7239ad1-f1ce-4813-b024-821ebba2eafa}:1.0.0"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629463079978,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629484508438,
+      "id": "59d2cf53-8f37-4e91-b207-d35cb64a63c4",
+      "last_modified": 1629484666101
+    },
+    {
+      "stash": {
+        "blocked": [
+          "cdays@colordays.net:0.9.0",
+          "{769f9939-a8d8-4e11-add4-f81dee601aea}:1.1.0.2",
+          "{769f9939-a8d8-4e11-add4-f81dee601aea}:1.0.0.1",
+          "{769f9939-a8d8-4e11-add4-f81dee601aea}:1.0.0.0",
+          "{cb860473-1741-42a5-a326-0a99e3f5157f}:1.7"
+        ],
+        "unblocked": []
+      },
+      "schema": 1629247069940,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629462909439,
+      "id": "b85ee973-6f2b-4f2c-ac4f-280e5797b4a7",
+      "last_modified": 1629463079914
+    },
+    {
+      "stash": {
+        "blocked": [
+          "location-seeker@ext:1.0",
+          "medianewtab@com:1.1.11",
+          "book-enthusiast@ext:1.0",
+          "cnn-news@ext:1.0",
+          "vegan_chef@ext:1.0",
+          "britannica_finder@ext:1.0",
+          "wiki_search@ext:1.0",
+          "video_search@co:1.0",
+          "biology_assistant@ext:1.0",
+          "webclip@com:1.1.4",
+          "besttab@com:1.1.13",
+          "search_the_video@com:1.0",
+          "webtab@com:1.1.4",
+          "anime-freak-net@ext:1.0",
+          "quickpage@com:1.1.13",
+          "oxford-dict-net@ext:1.0",
+          "{b9020031-0ddd-4c54-8eba-4309bc1460e9}:0.6",
+          "shortcutvideo@com:1.0.4",
+          "cutshot@com:1.0.8",
+          "chemistry_assistant@ext:1.0",
+          "clipsearch@ext:1.0"
+        ],
+        "unblocked": []
+      },
+      "schema": 1628879876731,
+      "key_format": "{guid}:{version}",
+      "stash_time": 1629246909829,
+      "id": "c7f775e7-05e6-4e1b-8d7a-ce19dacf1cd7",
+      "last_modified": 1629247069884
+    },
     {
       "stash": {
         "blocked": [
diff --git a/services/settings/dumps/main/search-config.json b/services/settings/dumps/main/search-config.json
index f9fff5c7e104bf04777c0b30209378ab4940c92e..1629df5a3c90b1756cfee56811ec8b6be2d2214d 100644
--- a/services/settings/dumps/main/search-config.json
+++ b/services/settings/dumps/main/search-config.json
@@ -13,7 +13,7 @@
           }
         ]
       },
-      "schema": 1627654944012,
+      "schema": 1629736603297,
       "appliesTo": [
         {
           "included": {
@@ -221,13 +221,102 @@
               "MozillaOnline"
             ]
           }
+        },
+        {
+          "params": {
+            "searchUrlGetParams": [
+              {
+                "name": "ptag",
+                "value": "MOZZ0000000010"
+              },
+              {
+                "name": "pc",
+                "value": "MOZD"
+              },
+              {
+                "name": "q",
+                "value": "{searchTerms}"
+              }
+            ]
+          },
+          "included": {
+            "everywhere": true
+          },
+          "experiment": "search-defaults-2021-1"
+        },
+        {
+          "params": {
+            "searchUrlGetParams": [
+              {
+                "name": "ptag",
+                "value": "MOZZ0000000011"
+              },
+              {
+                "name": "pc",
+                "value": "MOZD"
+              },
+              {
+                "name": "q",
+                "value": "{searchTerms}"
+              }
+            ]
+          },
+          "default": "yes",
+          "included": {
+            "everywhere": true
+          },
+          "experiment": "search-defaults-2021-2"
+        },
+        {
+          "params": {
+            "searchUrlGetParams": [
+              {
+                "name": "ptag",
+                "value": "MOZZ0000000012"
+              },
+              {
+                "name": "pc",
+                "value": "MOZD"
+              },
+              {
+                "name": "q",
+                "value": "{searchTerms}"
+              }
+            ]
+          },
+          "included": {
+            "everywhere": true
+          },
+          "experiment": "search-defaults-2021-3"
+        },
+        {
+          "params": {
+            "searchUrlGetParams": [
+              {
+                "name": "ptag",
+                "value": "MOZZ0000000013"
+              },
+              {
+                "name": "pc",
+                "value": "MOZD"
+              },
+              {
+                "name": "q",
+                "value": "{searchTerms}"
+              }
+            ]
+          },
+          "included": {
+            "everywhere": true
+          },
+          "experiment": "search-defaults-2021-4"
         }
       ],
       "webExtension": {
         "id": "bing@search.mozilla.org"
       },
       "id": "7ec766f6-639a-4618-91bc-33eb3d4378c6",
-      "last_modified": 1627663746803
+      "last_modified": 1630005303731
     },
     {
       "schema": 1627058212123,
diff --git a/services/settings/dumps/security-state/intermediates.json b/services/settings/dumps/security-state/intermediates.json
index 870659c5884c0454c9bc953c3f8d4da9e159b938..17f3c6b14dcd727322db50fab0f63039e86fb7d6 100644
--- a/services/settings/dumps/security-state/intermediates.json
+++ b/services/settings/dumps/security-state/intermediates.json
@@ -1,25 +1,7 @@
 {
   "data": [
     {
-      "schema": 1627740208946,
-      "derHash": "wt/7PBuwbeTBCSblF/82b5OJLV4C3G95CAJ121f9b8g=",
-      "subject": "CN=TI Trust Technologies EV CA,OU=Controlled by Sectigo exclusively for TI Trust Technologies,O=Telecom Italia Trust Technologies S.R.L.,L=Pomezia,ST=Roma,C=IT",
-      "subjectDN": "MIHNMQswCQYDVQQGEwJJVDENMAsGA1UECBMEUm9tYTEQMA4GA1UEBxMHUG9tZXppYTExMC8GA1UEChMoVGVsZWNvbSBJdGFsaWEgVHJ1c3QgVGVjaG5vbG9naWVzIFMuUi5MLjFEMEIGA1UECxM7Q29udHJvbGxlZCBieSBTZWN0aWdvIGV4Y2x1c2l2ZWx5IGZvciBUSSBUcnVzdCBUZWNobm9sb2dpZXMxJDAiBgNVBAMTG1RJIFRydXN0IFRlY2hub2xvZ2llcyBFViBDQQ==",
-      "whitelist": false,
-      "attachment": {
-        "hash": "f3a3288bc3b67208c3f1e4164cb00b27794763ac59477eb6171158b3507ab3e8",
-        "size": 2288,
-        "filename": "lG0jsaBDRslBBApGfnJu_ukJ5x3uoc841KUU1OMrO1E=.pem",
-        "location": "security-state-staging/intermediates/48b456c7-6568-4b6a-b3a6-e6d3c9384968.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "lG0jsaBDRslBBApGfnJu/ukJ5x3uoc841KUU1OMrO1E=",
-      "crlite_enrolled": true,
-      "id": "3eca5483-9836-4680-82c5-bb0774a0b4ad",
-      "last_modified": 1627743575700
-    },
-    {
-      "schema": 1627657085658,
+      "schema": 1630137454621,
       "derHash": "Jv1MQ2fkY9OccXlq5AEOUzgNyTvBMvsBnWcYpoc+gfQ=",
       "subject": "CN=SHECA RSA Organization Validation Server CA G3,O=UniTrust,C=CN",
       "subjectDN": "MFkxCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDE3MDUGA1UEAwwuU0hFQ0EgUlNBIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNlcnZlciBDQSBHMw==",
@@ -32,12 +14,84 @@
         "mimetype": "application/x-pem-file"
       },
       "pubKeyHash": "0JA1q1ctk/4J8qS0t+GhJaG5egVDq9SB33oMY7SMpfs=",
-      "crlite_enrolled": true,
+      "crlite_enrolled": false,
       "id": "10ec0271-99d5-4c06-a20d-1c03ccf7d780",
-      "last_modified": 1627696694103
+      "last_modified": 1630310282424
+    },
+    {
+      "schema": 1630094259901,
+      "derHash": "+RqsoOTlM3R6CIC/z28mcg3B0FSUw5ONpoAikNWgmzI=",
+      "subject": "CN=emSign SSL CA - C1,OU=emSign PKI,O=eMudhra Inc,C=US",
+      "subjectDN": "MFUxCzAJBgNVBAYTAlVTMRMwEQYDVQQLEwplbVNpZ24gUEtJMRQwEgYDVQQKEwtlTXVkaHJhIEluYzEbMBkGA1UEAxMSZW1TaWduIFNTTCBDQSAtIEMx",
+      "whitelist": false,
+      "attachment": {
+        "hash": "371dbaddc94c282e8343a28dc05dcb74778a143ee818d5884a3116b27bd5028b",
+        "size": 1577,
+        "filename": "Vu8rCm62GhPpPUIskAEOlG-x_WJEzc46NqUrWffwTVo=.pem",
+        "location": "security-state-staging/intermediates/5c3885bb-cc4d-4eb7-8b65-2d767339453e.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "Vu8rCm62GhPpPUIskAEOlG+x/WJEzc46NqUrWffwTVo=",
+      "crlite_enrolled": false,
+      "id": "40ee5283-fd3d-4e3c-9d19-0ac5439365bb",
+      "last_modified": 1630137453578
+    },
+    {
+      "schema": 1630136993392,
+      "derHash": "9vFZKGoUAd5Tl+IaAJBTSoX157n5j9SlpHsd/9S/3tQ=",
+      "subject": "CN=emSign EV SSL CA - C1,OU=emSign PKI,O=eMudhra Inc,C=US",
+      "subjectDN": "MFgxCzAJBgNVBAYTAlVTMRMwEQYDVQQLEwplbVNpZ24gUEtJMRQwEgYDVQQKEwtlTXVkaHJhIEluYzEeMBwGA1UEAxMVZW1TaWduIEVWIFNTTCBDQSAtIEMx",
+      "whitelist": false,
+      "attachment": {
+        "hash": "6e8a3c81fcf028c7f31ff8a6ecf47b000e0c56f86618ee42c5ab92b7dd438a5f",
+        "size": 1581,
+        "filename": "bJpaGvT-ExoQi2_an1HG3Mo5yMrot02ORyF_NS5p5J8=.pem",
+        "location": "security-state-staging/intermediates/586120f4-7f7a-48aa-a621-1d452827f4f0.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "bJpaGvT+ExoQi2/an1HG3Mo5yMrot02ORyF/NS5p5J8=",
+      "crlite_enrolled": false,
+      "id": "219bee21-4e35-434a-b98f-7a9cdbbf3432",
+      "last_modified": 1630137453558
+    },
+    {
+      "schema": 1630007857648,
+      "derHash": "1XCEwSeYcycess57hBWkHOkSa1RNhRi62H/xzlpgTaM=",
+      "subject": "CN=GTS CA 1D2,O=Google Trust Services,C=US",
+      "subjectDN": "MEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxRDI=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "9111c956475abad64a74fc25f5dc5839249913246aeda37cded4b3651b45520e",
+        "size": 1548,
+        "filename": "qPerI4uMwY1VrtRE5aBY8jIQJopLUuBt2-GDUWMwZn4=.pem",
+        "location": "security-state-staging/intermediates/577bf05b-e334-4a66-bcb0-d3bb3cbb33d4.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "qPerI4uMwY1VrtRE5aBY8jIQJopLUuBt2+GDUWMwZn4=",
+      "crlite_enrolled": false,
+      "id": "21baac25-4dc6-42e5-813f-8cb5b1d60305",
+      "last_modified": 1630094258836
+    },
+    {
+      "schema": 1630007386812,
+      "derHash": "+RYG0bxSxhATbKqFarUAxIw7mTusSAjNgrxLeKvyQVY=",
+      "subject": "CN=NETLOCK DVSSL CA,OU=Tanúsítványkiadók (Certification Services),O=NETLOCK Kft.,L=Budapest,C=HU",
+      "subjectDN": "MIGLMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5FVExPQ0sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTEZMBcGA1UEAwwQTkVUTE9DSyBEVlNTTCBDQQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "28fe966e32eb004f5c288e09eb400e8b6dd866ad8cee74b7e0ad399c7033fc15",
+        "size": 2446,
+        "filename": "Ss_LpeQiFGYRawte4JwIYIKszuA0KoeTtkpsRkiLCaw=.pem",
+        "location": "security-state-staging/intermediates/90489a16-17cf-4e28-83e7-e422bb5f8b09.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "Ss/LpeQiFGYRawte4JwIYIKszuA0KoeTtkpsRkiLCaw=",
+      "crlite_enrolled": false,
+      "id": "e7bd6d4d-f645-4abb-b632-af28f5ac9c61",
+      "last_modified": 1630007856595
     },
     {
-      "schema": 1627696659687,
+      "schema": 1629878249723,
       "derHash": "ClUqZfIv+CDn7D1Du/iLAqvDS9JH4MNQWJG2NC8WpfI=",
       "subject": "CN=SHECA RSA Domain Validation Server CA G3,O=UniTrust,C=CN",
       "subjectDN": "MFMxCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDExMC8GA1UEAwwoU0hFQ0EgUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlcnZlciBDQSBHMw==",
@@ -52,7 +106,367 @@
       "pubKeyHash": "N6OrM0KKQgR1zORoDKkLLFEKAYCmS/84dpbLl/qNOnU=",
       "crlite_enrolled": true,
       "id": "4b6a2421-1677-41c0-8103-bc13fb7e09f9",
-      "last_modified": 1627696694071
+      "last_modified": 1629943052272
+    },
+    {
+      "schema": 1628258299195,
+      "derHash": "TlZm2sV5FhzwC42HBG0HTWycDA45lMZTvleZhzbFXZM=",
+      "subject": "CN=SwissSign RSA TLS Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0EgMjAyMSAtIDE=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "042c8b8edc66e748609524d1216e11e829cb1ea83b1e8436f4780f77b2f587c8",
+        "size": 2324,
+        "filename": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=.pem",
+        "location": "security-state-staging/intermediates/d9318494-fb6c-4bb5-b608-ffc24fc3cf5c.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=",
+      "crlite_enrolled": false,
+      "id": "4dbd71fd-d75e-46bf-98be-d2a76863a40a",
+      "last_modified": 1629359842438
+    },
+    {
+      "schema": 1628258300820,
+      "derHash": "vIu9fSedLl8HC872+vOqsb7zDaPrKHVCQpWtFH8q7wc=",
+      "subject": "CN=SwissSign RSA SMIME Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFMxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxLTArBgNVBAMTJFN3aXNzU2lnbiBSU0EgU01JTUUgUm9vdCBDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "1f319976c1c0fd2ff4a52e8fac41cf199e02731a70087681607fe7b3133160c8",
+        "size": 2328,
+        "filename": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess-HD4U=.pem",
+        "location": "security-state-staging/intermediates/22d80059-836c-4a22-9631-c2432c02e90c.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess+HD4U=",
+      "crlite_enrolled": false,
+      "id": "6bdf31ea-f0ff-4951-b310-0d3b28fd83d7",
+      "last_modified": 1629359842425
+    },
+    {
+      "schema": 1628280240116,
+      "derHash": "OcsZn0HGqCqtg8KBASdZbQLMTsdm0N/jGwHVDRd0dJ8=",
+      "subject": "CN=SwissSign RSA TLS EV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIEVWIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "762606517f59b459f2621c2fc75b3dbaa0b1b65d43e690165ec66b602a2a333c",
+        "size": 2605,
+        "filename": "vhTi8lZlOLaSt18G-qUx2M9Th5OcyP5bSIpb1W75B-4=.pem",
+        "location": "security-state-staging/intermediates/d6460050-3052-4201-821d-1252a102098e.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "vhTi8lZlOLaSt18G+qUx2M9Th5OcyP5bSIpb1W75B+4=",
+      "crlite_enrolled": false,
+      "id": "c4b15ee1-8052-4cff-ad62-fae606d29d16",
+      "last_modified": 1629359842412
+    },
+    {
+      "schema": 1628280241845,
+      "derHash": "DlXQmFSCu7fEkOuhR8WgIaLCogidOor1fQHt1UDKWkU=",
+      "subject": "CN=SwissSign RSA TLS DV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIERWIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "3ae7fc2f0d23bef14972e3154b5eea231f26a4fdaf80e3344c6d4b6e18e8d9db",
+        "size": 2605,
+        "filename": "Ss2dQDgixRL9ORRngPe7uCywHw5_E9Qk2Wziz9rLT1s=.pem",
+        "location": "security-state-staging/intermediates/5cb1edf9-627a-4865-86b1-3ec141a531f4.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "Ss2dQDgixRL9ORRngPe7uCywHw5/E9Qk2Wziz9rLT1s=",
+      "crlite_enrolled": false,
+      "id": "c04e50e0-c2cb-4d39-bc63-310fb2480df1",
+      "last_modified": 1629359842399
+    },
+    {
+      "schema": 1628280243649,
+      "derHash": "frj2Ma0chAjpcWrpILzWd5c7BZ6ZCu0B3aXhxZcLQCw=",
+      "subject": "CN=SwissSign RSA TLS Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0EgMjAyMSAtIDE=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "58bbfd7b0e504fb6397ee10ee6822ccf19f8e05c9937946aa0d7aa6fb11aa944",
+        "size": 1987,
+        "filename": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=.pem",
+        "location": "security-state-staging/intermediates/d3113b26-84d6-42f4-8f4c-71338d0445c6.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=",
+      "crlite_enrolled": false,
+      "id": "d9f263f7-4b19-408b-b5f1-4e57e4b0caca",
+      "last_modified": 1629359842386
+    },
+    {
+      "schema": 1628280245282,
+      "derHash": "ttVvPdJqyETlfIv+kFT1cGE1CpCJS5nNmBHppUX8hMU=",
+      "subject": "CN=SwissSign RSA SMIME Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFMxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxLTArBgNVBAMTJFN3aXNzU2lnbiBSU0EgU01JTUUgUm9vdCBDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "7644498aff67a69e26a420c7e76e4649ead3a8bb2f20c592db5c9cd2b4412601",
+        "size": 1991,
+        "filename": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess-HD4U=.pem",
+        "location": "security-state-staging/intermediates/8d9a379a-9292-40d4-8a5b-7b64817c1ee3.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess+HD4U=",
+      "crlite_enrolled": false,
+      "id": "91370cd3-434d-4277-8198-b6b86b912e7b",
+      "last_modified": 1629359842373
+    },
+    {
+      "schema": 1628280247018,
+      "derHash": "s2ef3dxkSFi5fbtn3neN1WxuXVOpa3DoWrUJ0JhoGG0=",
+      "subject": "CN=SwissSign RSA TLS OV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIE9WIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "5099e02991e2988acc1fb3e634306f0281eec0bcfb43b34279f9f9c5f89b3ac7",
+        "size": 2605,
+        "filename": "I0jJpdj7EtBTwYf-1gPJDZDyw1ViWFSUbUg4x-wTlgE=.pem",
+        "location": "security-state-staging/intermediates/e9a572f5-d8f1-44ad-b512-a322e5248d23.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "I0jJpdj7EtBTwYf+1gPJDZDyw1ViWFSUbUg4x+wTlgE=",
+      "crlite_enrolled": false,
+      "id": "43356214-1dcf-4ca8-9fcb-b9437b7f5957",
+      "last_modified": 1629359842360
+    },
+    {
+      "schema": 1628283001801,
+      "derHash": "DlXQmFSCu7fEkOuhR8WgIaLCogidOor1fQHt1UDKWkU=",
+      "subject": "CN=SwissSign RSA TLS DV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIERWIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "3ae7fc2f0d23bef14972e3154b5eea231f26a4fdaf80e3344c6d4b6e18e8d9db",
+        "size": 2605,
+        "filename": "Ss2dQDgixRL9ORRngPe7uCywHw5_E9Qk2Wziz9rLT1s=.pem",
+        "location": "security-state-staging/intermediates/72fb7079-61fe-49cc-b481-6dde06dc7fd2.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "Ss2dQDgixRL9ORRngPe7uCywHw5/E9Qk2Wziz9rLT1s=",
+      "crlite_enrolled": false,
+      "id": "bdfc479c-421f-4cff-a76f-1cde19032bc6",
+      "last_modified": 1629359842347
+    },
+    {
+      "schema": 1628283003482,
+      "derHash": "s2ef3dxkSFi5fbtn3neN1WxuXVOpa3DoWrUJ0JhoGG0=",
+      "subject": "CN=SwissSign RSA TLS OV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIE9WIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "5099e02991e2988acc1fb3e634306f0281eec0bcfb43b34279f9f9c5f89b3ac7",
+        "size": 2605,
+        "filename": "I0jJpdj7EtBTwYf-1gPJDZDyw1ViWFSUbUg4x-wTlgE=.pem",
+        "location": "security-state-staging/intermediates/3760ac40-11f9-41ae-8505-bd29362b0c74.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "I0jJpdj7EtBTwYf+1gPJDZDyw1ViWFSUbUg4x+wTlgE=",
+      "crlite_enrolled": false,
+      "id": "c6585b3f-f4d6-4b0f-b51c-4888046b0538",
+      "last_modified": 1629359842334
+    },
+    {
+      "schema": 1628283005098,
+      "derHash": "OcsZn0HGqCqtg8KBASdZbQLMTsdm0N/jGwHVDRd0dJ8=",
+      "subject": "CN=SwissSign RSA TLS EV ICA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKjAoBgNVBAMTIVN3aXNzU2lnbiBSU0EgVExTIEVWIElDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "762606517f59b459f2621c2fc75b3dbaa0b1b65d43e690165ec66b602a2a333c",
+        "size": 2605,
+        "filename": "vhTi8lZlOLaSt18G-qUx2M9Th5OcyP5bSIpb1W75B-4=.pem",
+        "location": "security-state-staging/intermediates/c8acb265-5b4d-45a5-a914-5417af7b2bb9.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "vhTi8lZlOLaSt18G+qUx2M9Th5OcyP5bSIpb1W75B+4=",
+      "crlite_enrolled": false,
+      "id": "df23d21b-5e71-4177-b00c-49744f34aa11",
+      "last_modified": 1629359842321
+    },
+    {
+      "schema": 1628283006719,
+      "derHash": "frj2Ma0chAjpcWrpILzWd5c7BZ6ZCu0B3aXhxZcLQCw=",
+      "subject": "CN=SwissSign RSA TLS Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0EgMjAyMSAtIDE=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "58bbfd7b0e504fb6397ee10ee6822ccf19f8e05c9937946aa0d7aa6fb11aa944",
+        "size": 1987,
+        "filename": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=.pem",
+        "location": "security-state-staging/intermediates/d67eff16-2e89-4196-b7a0-99cb92102494.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "nUaOHm7QsD6Xagrjxl1hPu2HFDpXiamEvjDZ1IoWx24=",
+      "crlite_enrolled": false,
+      "id": "e1aa9474-6b16-4eeb-b21f-23184014ee46",
+      "last_modified": 1629359842308
+    },
+    {
+      "schema": 1628283008314,
+      "derHash": "ttVvPdJqyETlfIv+kFT1cGE1CpCJS5nNmBHppUX8hMU=",
+      "subject": "CN=SwissSign RSA SMIME Root CA 2021 - 1,O=SwissSign AG,C=CH",
+      "subjectDN": "MFMxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxLTArBgNVBAMTJFN3aXNzU2lnbiBSU0EgU01JTUUgUm9vdCBDQSAyMDIxIC0gMQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "7644498aff67a69e26a420c7e76e4649ead3a8bb2f20c592db5c9cd2b4412601",
+        "size": 1991,
+        "filename": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess-HD4U=.pem",
+        "location": "security-state-staging/intermediates/ccffe55b-9cab-4a31-b484-eb65463b91ef.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "HKpRHDLoh8f2rEFEWyjA0ZeopKTbs4zV87Xess+HD4U=",
+      "crlite_enrolled": false,
+      "id": "c4fbd141-3e93-4624-971e-b072d720d9d7",
+      "last_modified": 1629359842295
+    },
+    {
+      "schema": 1629359431124,
+      "derHash": "mI1rLYe69DghxNMEvisOjzJdwXt6Ig6TT1xbe63/jhw=",
+      "subject": "CN=TK Elevator Atlas R6 DV CA 2021,O=TK Elevator GmbH,C=DE",
+      "subjectDN": "MFIxCzAJBgNVBAYTAkRFMRkwFwYDVQQKExBUSyBFbGV2YXRvciBHbWJIMSgwJgYDVQQDEx9USyBFbGV2YXRvciBBdGxhcyBSNiBEViBDQSAyMDIx",
+      "whitelist": false,
+      "attachment": {
+        "hash": "312c7287eef71d4f7d30e54c499b166794efcc40b1af781c5b8665f5014a6849",
+        "size": 2398,
+        "filename": "mTRp9SMkTGsZMOg5Zj2QnO66SKHcsi9q-xqfABlYAYY=.pem",
+        "location": "security-state-staging/intermediates/1dd04da2-87fd-4a93-b982-c48b5e43dd25.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "mTRp9SMkTGsZMOg5Zj2QnO66SKHcsi9q+xqfABlYAYY=",
+      "crlite_enrolled": false,
+      "id": "4b849760-6c7e-4a45-a66a-3543765ad16e",
+      "last_modified": 1629359842283
+    },
+    {
+      "schema": 1628797808235,
+      "derHash": "pmUAegXv4YidZqQN7svGwaJx6RkAaBH9uNvX4GdSEtE=",
+      "subject": "CN=Siemens Issuing CA Internet Server 2020,O=Siemens,C=DE",
+      "subjectDN": "MFExMDAuBgNVBAMMJ1NpZW1lbnMgSXNzdWluZyBDQSBJbnRlcm5ldCBTZXJ2ZXIgMjAyMDEQMA4GA1UECgwHU2llbWVuczELMAkGA1UEBhMCREU=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "5ab8cb8a5146787aeb9025fd757a28e47c16893e2603c336459385a83349e955",
+        "size": 1719,
+        "filename": "uOU9UZhtVd_opiG5DbxESujdJ9UY8BLJblR-MMq9FbY=.pem",
+        "location": "security-state-staging/intermediates/35dbe988-7f8a-48f2-b67b-e95d314fa047.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "uOU9UZhtVd/opiG5DbxESujdJ9UY8BLJblR+MMq9FbY=",
+      "crlite_enrolled": false,
+      "id": "4e715493-0fb6-4d65-b11d-e75ae54c02e0",
+      "last_modified": 1629359842258
+    },
+    {
+      "schema": 1628819593276,
+      "derHash": "pmUAegXv4YidZqQN7svGwaJx6RkAaBH9uNvX4GdSEtE=",
+      "subject": "CN=Siemens Issuing CA Internet Server 2020,O=Siemens,C=DE",
+      "subjectDN": "MFExMDAuBgNVBAMMJ1NpZW1lbnMgSXNzdWluZyBDQSBJbnRlcm5ldCBTZXJ2ZXIgMjAyMDEQMA4GA1UECgwHU2llbWVuczELMAkGA1UEBhMCREU=",
+      "whitelist": false,
+      "attachment": {
+        "hash": "5ab8cb8a5146787aeb9025fd757a28e47c16893e2603c336459385a83349e955",
+        "size": 1719,
+        "filename": "uOU9UZhtVd_opiG5DbxESujdJ9UY8BLJblR-MMq9FbY=.pem",
+        "location": "security-state-staging/intermediates/e9295752-30ef-4d70-8969-fd3831ca87ea.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "uOU9UZhtVd/opiG5DbxESujdJ9UY8BLJblR+MMq9FbY=",
+      "crlite_enrolled": false,
+      "id": "0a08acd0-7a3a-448c-97ca-8b13d65bb4c7",
+      "last_modified": 1629359842237
+    },
+    {
+      "schema": 1628689869279,
+      "derHash": "HdCVRJ/7PP8UsiJNWWuD/ULytHaDVTx5fREVDJGGkb0=",
+      "subject": "CN=GlobalSign Atlas R3 DV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
+      "subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSBIMiAyMDIx",
+      "whitelist": false,
+      "attachment": {
+        "hash": "e06bf97fe011b418ca619844016454cc4529a0fe9de1bf1ec3daa57af5a3a724",
+        "size": 1715,
+        "filename": "P_B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=.pem",
+        "location": "security-state-staging/intermediates/f804d5ba-d989-47f7-8217-4f41b5fb5978.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "P/B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=",
+      "crlite_enrolled": true,
+      "id": "308fb64b-a058-4676-aa68-e8e33b332c2f",
+      "last_modified": 1629359842217
+    },
+    {
+      "schema": 1628733014053,
+      "derHash": "HsCvw+2fK63KBo4MLYH5xi75dSIxYxe3iGYrPtrTgHU=",
+      "subject": "CN=CRYPTAS EV Issuing CA,O=CRYPTAS it-Security GmbH,C=AT",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkFUMSEwHwYDVQQKExhDUllQVEFTIGl0LVNlY3VyaXR5IEdtYkgxHjAcBgNVBAMTFUNSWVBUQVMgRVYgSXNzdWluZyBDQQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "2457cbcf379f5f195fb7ba4cfda565f717ef9156b63623457e3301d515f0a255",
+        "size": 1735,
+        "filename": "Hfy6dQZGrjdPYWGB1jtGCNqt0xhK43ly0PpF6FLmg3A=.pem",
+        "location": "security-state-staging/intermediates/bc8ea5bd-51a8-4d5a-843d-4e5dc8487e16.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "Hfy6dQZGrjdPYWGB1jtGCNqt0xhK43ly0PpF6FLmg3A=",
+      "crlite_enrolled": true,
+      "id": "35a5d389-1b24-494b-b20f-25ff30eee6b3",
+      "last_modified": 1629359842197
+    },
+    {
+      "schema": 1628797804852,
+      "derHash": "+uzdBdny5f6EmN5WzfiVwKaXCU4Xc97eX84gAbTHsVI=",
+      "subject": "CN=CRYPTAS OV Issuing CA,O=CRYPTAS it-Security GmbH,C=AT",
+      "subjectDN": "MFAxCzAJBgNVBAYTAkFUMSEwHwYDVQQKExhDUllQVEFTIGl0LVNlY3VyaXR5IEdtYkgxHjAcBgNVBAMTFUNSWVBUQVMgT1YgSXNzdWluZyBDQQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "f56a51e5163cf8ad0112976fedb21ae8b4b37916e6ce6589da1af5850254ff9f",
+        "size": 1739,
+        "filename": "U8nQD9wXAUszOzpIA4B47LOCJYIzJLUU65_asRztVds=.pem",
+        "location": "security-state-staging/intermediates/ea32cf1d-0468-4c6e-8a78-d5381be82033.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "U8nQD9wXAUszOzpIA4B47LOCJYIzJLUU65/asRztVds=",
+      "crlite_enrolled": true,
+      "id": "57899723-0793-43ef-ad24-f5da978584e9",
+      "last_modified": 1629359842177
+    },
+    {
+      "schema": 1627912922108,
+      "derHash": "P7oKpJ+94cgUyoMIeO0Dx9JDI/Y0g+Ut7o/0LBU8I08=",
+      "subject": "CN=GlobeSSL EV Certification Authority 2,OU=Controlled by COMODO exclusively for Globe Hosting\\, Inc.,O=Globe Hosting\\, Inc.,L=Wilmington,ST=DE,C=US",
+      "subjectDN": "MIHAMQswCQYDVQQGEwJVUzELMAkGA1UECBMCREUxEzARBgNVBAcTCldpbG1pbmd0b24xHDAaBgNVBAoTE0dsb2JlIEhvc3RpbmcsIEluYy4xQTA/BgNVBAsTOENvbnRyb2xsZWQgYnkgQ09NT0RPIGV4Y2x1c2l2ZWx5IGZvciBHbG9iZSBIb3N0aW5nLCBJbmMuMS4wLAYDVQQDEyVHbG9iZVNTTCBFViBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAy",
+      "whitelist": false,
+      "attachment": {
+        "hash": "8081c701056c43713db349d2808d99c5a352629faf0a60a54c7e2008170fc91c",
+        "size": 2276,
+        "filename": "iQ6SmjjdklCphf7sBBL9m4lWWf44bngHmvy7B8dl6XQ=.pem",
+        "location": "security-state-staging/intermediates/a35dab3a-08bf-43e8-b264-b1f7fa410a12.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "iQ6SmjjdklCphf7sBBL9m4lWWf44bngHmvy7B8dl6XQ=",
+      "crlite_enrolled": true,
+      "id": "4fc9e088-612e-4c87-9986-7ef73542a266",
+      "last_modified": 1629359842156
+    },
+    {
+      "schema": 1627740208946,
+      "derHash": "wt/7PBuwbeTBCSblF/82b5OJLV4C3G95CAJ121f9b8g=",
+      "subject": "CN=TI Trust Technologies EV CA,OU=Controlled by Sectigo exclusively for TI Trust Technologies,O=Telecom Italia Trust Technologies S.R.L.,L=Pomezia,ST=Roma,C=IT",
+      "subjectDN": "MIHNMQswCQYDVQQGEwJJVDENMAsGA1UECBMEUm9tYTEQMA4GA1UEBxMHUG9tZXppYTExMC8GA1UEChMoVGVsZWNvbSBJdGFsaWEgVHJ1c3QgVGVjaG5vbG9naWVzIFMuUi5MLjFEMEIGA1UECxM7Q29udHJvbGxlZCBieSBTZWN0aWdvIGV4Y2x1c2l2ZWx5IGZvciBUSSBUcnVzdCBUZWNobm9sb2dpZXMxJDAiBgNVBAMTG1RJIFRydXN0IFRlY2hub2xvZ2llcyBFViBDQQ==",
+      "whitelist": false,
+      "attachment": {
+        "hash": "f3a3288bc3b67208c3f1e4164cb00b27794763ac59477eb6171158b3507ab3e8",
+        "size": 2288,
+        "filename": "lG0jsaBDRslBBApGfnJu_ukJ5x3uoc841KUU1OMrO1E=.pem",
+        "location": "security-state-staging/intermediates/48b456c7-6568-4b6a-b3a6-e6d3c9384968.pem",
+        "mimetype": "application/x-pem-file"
+      },
+      "pubKeyHash": "lG0jsaBDRslBBApGfnJu/ukJ5x3uoc841KUU1OMrO1E=",
+      "crlite_enrolled": true,
+      "id": "3eca5483-9836-4680-82c5-bb0774a0b4ad",
+      "last_modified": 1627743575700
     },
     {
       "schema": 1627527491679,
@@ -1116,24 +1530,6 @@
       "id": "d2f0253e-ee56-47f2-a515-fe3092303409",
       "last_modified": 1624913854978
     },
-    {
-      "schema": 1624913401837,
-      "derHash": "P7oKpJ+94cgUyoMIeO0Dx9JDI/Y0g+Ut7o/0LBU8I08=",
-      "subject": "CN=GlobeSSL EV Certification Authority 2,OU=Controlled by COMODO exclusively for Globe Hosting\\, Inc.,O=Globe Hosting\\, Inc.,L=Wilmington,ST=DE,C=US",
-      "subjectDN": "MIHAMQswCQYDVQQGEwJVUzELMAkGA1UECBMCREUxEzARBgNVBAcTCldpbG1pbmd0b24xHDAaBgNVBAoTE0dsb2JlIEhvc3RpbmcsIEluYy4xQTA/BgNVBAsTOENvbnRyb2xsZWQgYnkgQ09NT0RPIGV4Y2x1c2l2ZWx5IGZvciBHbG9iZSBIb3N0aW5nLCBJbmMuMS4wLAYDVQQDEyVHbG9iZVNTTCBFViBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAy",
-      "whitelist": false,
-      "attachment": {
-        "hash": "8081c701056c43713db349d2808d99c5a352629faf0a60a54c7e2008170fc91c",
-        "size": 2276,
-        "filename": "iQ6SmjjdklCphf7sBBL9m4lWWf44bngHmvy7B8dl6XQ=.pem",
-        "location": "security-state-staging/intermediates/a35dab3a-08bf-43e8-b264-b1f7fa410a12.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "iQ6SmjjdklCphf7sBBL9m4lWWf44bngHmvy7B8dl6XQ=",
-      "crlite_enrolled": false,
-      "id": "4fc9e088-612e-4c87-9986-7ef73542a266",
-      "last_modified": 1624913854957
-    },
     {
       "schema": 1624676240345,
       "derHash": "J3z0tl9TD8wHKF74nYMRiEiEAE5PLH2+fKAG6WU2zWI=",
@@ -1278,42 +1674,6 @@
       "id": "7970fe87-7873-4399-851d-eef65ed7130b",
       "last_modified": 1624525052236
     },
-    {
-      "schema": 1624481397906,
-      "derHash": "+uzdBdny5f6EmN5WzfiVwKaXCU4Xc97eX84gAbTHsVI=",
-      "subject": "CN=CRYPTAS OV Issuing CA,O=CRYPTAS it-Security GmbH,C=AT",
-      "subjectDN": "MFAxCzAJBgNVBAYTAkFUMSEwHwYDVQQKExhDUllQVEFTIGl0LVNlY3VyaXR5IEdtYkgxHjAcBgNVBAMTFUNSWVBUQVMgT1YgSXNzdWluZyBDQQ==",
-      "whitelist": false,
-      "attachment": {
-        "hash": "f56a51e5163cf8ad0112976fedb21ae8b4b37916e6ce6589da1af5850254ff9f",
-        "size": 1739,
-        "filename": "U8nQD9wXAUszOzpIA4B47LOCJYIzJLUU65_asRztVds=.pem",
-        "location": "security-state-staging/intermediates/ea32cf1d-0468-4c6e-8a78-d5381be82033.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "U8nQD9wXAUszOzpIA4B47LOCJYIzJLUU65/asRztVds=",
-      "crlite_enrolled": false,
-      "id": "57899723-0793-43ef-ad24-f5da978584e9",
-      "last_modified": 1624525052223
-    },
-    {
-      "schema": 1624481399654,
-      "derHash": "HsCvw+2fK63KBo4MLYH5xi75dSIxYxe3iGYrPtrTgHU=",
-      "subject": "CN=CRYPTAS EV Issuing CA,O=CRYPTAS it-Security GmbH,C=AT",
-      "subjectDN": "MFAxCzAJBgNVBAYTAkFUMSEwHwYDVQQKExhDUllQVEFTIGl0LVNlY3VyaXR5IEdtYkgxHjAcBgNVBAMTFUNSWVBUQVMgRVYgSXNzdWluZyBDQQ==",
-      "whitelist": false,
-      "attachment": {
-        "hash": "2457cbcf379f5f195fb7ba4cfda565f717ef9156b63623457e3301d515f0a255",
-        "size": 1735,
-        "filename": "Hfy6dQZGrjdPYWGB1jtGCNqt0xhK43ly0PpF6FLmg3A=.pem",
-        "location": "security-state-staging/intermediates/bc8ea5bd-51a8-4d5a-843d-4e5dc8487e16.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "Hfy6dQZGrjdPYWGB1jtGCNqt0xhK43ly0PpF6FLmg3A=",
-      "crlite_enrolled": false,
-      "id": "35a5d389-1b24-494b-b20f-25ff30eee6b3",
-      "last_modified": 1624525052209
-    },
     {
       "schema": 1624481400864,
       "derHash": "WaNFbnUOMl/LE1ncKegoGJtJgsEZxk+s/WcocRswUy8=",
@@ -1458,24 +1818,6 @@
       "id": "a7237377-ea8a-421a-9e89-eb5e456457e7",
       "last_modified": 1623920278085
     },
-    {
-      "schema": 1623916927671,
-      "derHash": "HdCVRJ/7PP8UsiJNWWuD/ULytHaDVTx5fREVDJGGkb0=",
-      "subject": "CN=GlobalSign Atlas R3 DV TLS CA H2 2021,O=GlobalSign nv-sa,C=BE",
-      "subjectDN": "MFgxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS4wLAYDVQQDEyVHbG9iYWxTaWduIEF0bGFzIFIzIERWIFRMUyBDQSBIMiAyMDIx",
-      "whitelist": false,
-      "attachment": {
-        "hash": "e06bf97fe011b418ca619844016454cc4529a0fe9de1bf1ec3daa57af5a3a724",
-        "size": 1715,
-        "filename": "P_B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=.pem",
-        "location": "security-state-staging/intermediates/f804d5ba-d989-47f7-8217-4f41b5fb5978.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "P/B6nUOG4cUlLNI8o81n2MESbUnYMzT49Flc6X5W1bk=",
-      "crlite_enrolled": false,
-      "id": "308fb64b-a058-4676-aa68-e8e33b332c2f",
-      "last_modified": 1623920278074
-    },
     {
       "schema": 1623916929422,
       "derHash": "slTzzerx0pq1PLQ56A+5lvHpCig+m1CFuHSdGOT1mHs=",
@@ -12600,24 +12942,6 @@
       "id": "58c4fe43-8482-4fd9-a504-3f27e47b56b9",
       "last_modified": 1601517447564
     },
-    {
-      "schema": 1601376650517,
-      "derHash": "pmUAegXv4YidZqQN7svGwaJx6RkAaBH9uNvX4GdSEtE=",
-      "subject": "CN=Siemens Issuing CA Internet Server 2020,O=Siemens,C=DE",
-      "subjectDN": "MFExMDAuBgNVBAMMJ1NpZW1lbnMgSXNzdWluZyBDQSBJbnRlcm5ldCBTZXJ2ZXIgMjAyMDEQMA4GA1UECgwHU2llbWVuczELMAkGA1UEBhMCREU=",
-      "whitelist": false,
-      "attachment": {
-        "hash": "5ab8cb8a5146787aeb9025fd757a28e47c16893e2603c336459385a83349e955",
-        "size": 1719,
-        "filename": "uOU9UZhtVd_opiG5DbxESujdJ9UY8BLJblR-MMq9FbY=.pem",
-        "location": "security-state-staging/intermediates/e9295752-30ef-4d70-8969-fd3831ca87ea.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "uOU9UZhtVd/opiG5DbxESujdJ9UY8BLJblR+MMq9FbY=",
-      "crlite_enrolled": true,
-      "id": "0a08acd0-7a3a-448c-97ca-8b13d65bb4c7",
-      "last_modified": 1601517447540
-    },
     {
       "schema": 1601376654768,
       "derHash": "QtyCf0b7XoXf+uR9PGkPUB7OJdV11ZelDY+Hj6Qq/Oo=",
@@ -15894,24 +16218,6 @@
       "id": "492ac880-b573-41d2-9d22-5faff82d960e",
       "last_modified": 1601517444952
     },
-    {
-      "schema": 1601372962115,
-      "derHash": "pmUAegXv4YidZqQN7svGwaJx6RkAaBH9uNvX4GdSEtE=",
-      "subject": "CN=Siemens Issuing CA Internet Server 2020,O=Siemens,C=DE",
-      "subjectDN": "MFExMDAuBgNVBAMMJ1NpZW1lbnMgSXNzdWluZyBDQSBJbnRlcm5ldCBTZXJ2ZXIgMjAyMDEQMA4GA1UECgwHU2llbWVuczELMAkGA1UEBhMCREU=",
-      "whitelist": false,
-      "attachment": {
-        "hash": "5ab8cb8a5146787aeb9025fd757a28e47c16893e2603c336459385a83349e955",
-        "size": 1719,
-        "filename": "uOU9UZhtVd_opiG5DbxESujdJ9UY8BLJblR-MMq9FbY=.pem",
-        "location": "security-state-staging/intermediates/35dbe988-7f8a-48f2-b67b-e95d314fa047.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "uOU9UZhtVd/opiG5DbxESujdJ9UY8BLJblR+MMq9FbY=",
-      "crlite_enrolled": true,
-      "id": "4e715493-0fb6-4d65-b11d-e75ae54c02e0",
-      "last_modified": 1601517444941
-    },
     {
       "schema": 1601372963495,
       "derHash": "MoZpFBLzDs5cBl/WL0OSpHYtHneBUzg1nfOQKZ+9Ye8=",
@@ -18234,24 +18540,6 @@
       "id": "d77a4a26-a8a9-49c6-993f-e5713bcb231a",
       "last_modified": 1601517442355
     },
-    {
-      "schema": 1601376722839,
-      "derHash": "9vFZKGoUAd5Tl+IaAJBTSoX157n5j9SlpHsd/9S/3tQ=",
-      "subject": "CN=emSign EV SSL CA - C1,OU=emSign PKI,O=eMudhra Inc,C=US",
-      "subjectDN": "MFgxCzAJBgNVBAYTAlVTMRMwEQYDVQQLEwplbVNpZ24gUEtJMRQwEgYDVQQKEwtlTXVkaHJhIEluYzEeMBwGA1UEAxMVZW1TaWduIEVWIFNTTCBDQSAtIEMx",
-      "whitelist": false,
-      "attachment": {
-        "hash": "6e8a3c81fcf028c7f31ff8a6ecf47b000e0c56f86618ee42c5ab92b7dd438a5f",
-        "size": 1581,
-        "filename": "bJpaGvT-ExoQi2_an1HG3Mo5yMrot02ORyF_NS5p5J8=.pem",
-        "location": "security-state-staging/intermediates/586120f4-7f7a-48aa-a621-1d452827f4f0.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "bJpaGvT+ExoQi2/an1HG3Mo5yMrot02ORyF/NS5p5J8=",
-      "crlite_enrolled": true,
-      "id": "219bee21-4e35-434a-b98f-7a9cdbbf3432",
-      "last_modified": 1601517442337
-    },
     {
       "schema": 1601376759122,
       "derHash": "s0pHXAGVUDWHE+0DXqAsXtw6ObL9X8ZOR+jsDM4frx8=",
@@ -18414,24 +18702,6 @@
       "id": "6a26c541-441f-4996-9f72-a867fe62b81f",
       "last_modified": 1601517442181
     },
-    {
-      "schema": 1601376761610,
-      "derHash": "+RqsoOTlM3R6CIC/z28mcg3B0FSUw5ONpoAikNWgmzI=",
-      "subject": "CN=emSign SSL CA - C1,OU=emSign PKI,O=eMudhra Inc,C=US",
-      "subjectDN": "MFUxCzAJBgNVBAYTAlVTMRMwEQYDVQQLEwplbVNpZ24gUEtJMRQwEgYDVQQKEwtlTXVkaHJhIEluYzEbMBkGA1UEAxMSZW1TaWduIFNTTCBDQSAtIEMx",
-      "whitelist": false,
-      "attachment": {
-        "hash": "371dbaddc94c282e8343a28dc05dcb74778a143ee818d5884a3116b27bd5028b",
-        "size": 1577,
-        "filename": "Vu8rCm62GhPpPUIskAEOlG-x_WJEzc46NqUrWffwTVo=.pem",
-        "location": "security-state-staging/intermediates/5c3885bb-cc4d-4eb7-8b65-2d767339453e.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "Vu8rCm62GhPpPUIskAEOlG+x/WJEzc46NqUrWffwTVo=",
-      "crlite_enrolled": true,
-      "id": "40ee5283-fd3d-4e3c-9d19-0ac5439365bb",
-      "last_modified": 1601517442163
-    },
     {
       "schema": 1601376723649,
       "derHash": "+BdppSTluWI+F/P111gfpKQZKXf/TiRX+wAyONz2BBA=",
@@ -31266,24 +31536,6 @@
       "id": "510e0089-ae37-4b96-8605-c4ba8a4f38f3",
       "last_modified": 1576536531882
     },
-    {
-      "schema": 1576536083630,
-      "derHash": "1XCEwSeYcycess57hBWkHOkSa1RNhRi62H/xzlpgTaM=",
-      "subject": "CN=GTS CA 1D2,O=Google Trust Services,C=US",
-      "subjectDN": "MEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxRDI=",
-      "whitelist": false,
-      "attachment": {
-        "hash": "9111c956475abad64a74fc25f5dc5839249913246aeda37cded4b3651b45520e",
-        "size": 1548,
-        "filename": "qPerI4uMwY1VrtRE5aBY8jIQJopLUuBt2-GDUWMwZn4=.pem",
-        "location": "security-state-staging/intermediates/577bf05b-e334-4a66-bcb0-d3bb3cbb33d4.pem",
-        "mimetype": "application/x-pem-file"
-      },
-      "pubKeyHash": "qPerI4uMwY1VrtRE5aBY8jIQJopLUuBt2+GDUWMwZn4=",
-      "crlite_enrolled": true,
-      "id": "21baac25-4dc6-42e5-813f-8cb5b1d60305",
-      "last_modified": 1576536531880
-    },
     {
       "schema": 1576536119880,
       "derHash": "vVY5dW8Ng32ZohBnKiEMZJsj6lm0+nbeDW5C/XutIbk=",
diff --git a/servo/components/style/values/computed/font.rs b/servo/components/style/values/computed/font.rs
index af1dd87e7972440495c02ef09900741afce91f71..a4bc20a98170a4f67775e81a0b0145fcf917eff7 100644
--- a/servo/components/style/values/computed/font.rs
+++ b/servo/components/style/values/computed/font.rs
@@ -375,6 +375,10 @@ pub enum SingleFontFamily {
 /// The order here is important, if you change it make sure that
 /// `gfxPlatformFontList.h`s ranged array and `gfxFontFamilyList`'s
 /// sSingleGenerics are updated as well.
+///
+/// NOTE(emilio): Should be u8, but it's a u32 because of ABI issues between GCC
+/// and LLVM see https://bugs.llvm.org/show_bug.cgi?id=44228 / bug 1600735 /
+/// bug 1726515.
 #[derive(
     Clone,
     Copy,
@@ -390,7 +394,7 @@ pub enum SingleFontFamily {
     ToShmem,
 )]
 #[cfg_attr(feature = "servo", derive(Deserialize, Serialize))]
-#[repr(u8)]
+#[repr(u32)]
 #[allow(missing_docs)]
 pub enum GenericFontFamily {
     /// No generic family specified, only for internal usage.
diff --git a/sourcestamp.txt b/sourcestamp.txt
index 11ed432e22307132e993478ee4e276da7167e2cc..1bdadfc08ef3999f1a49b27e3e2cbcb4f0a943bc 100644
--- a/sourcestamp.txt
+++ b/sourcestamp.txt
@@ -1,3 +1,3 @@
-20210818230426
-https://hg.mozilla.org/releases/comm-esr91/rev/49dbc851abda8690ae3decafd24e52bf02796655
-https://hg.mozilla.org/releases/mozilla-esr91/rev/8046f1ae74749dd164478750e0d7a0d529313403
+20210902035758
+https://hg.mozilla.org/releases/comm-esr91/rev/f134c939baab6193527545e8f40229aee95d5abf
+https://hg.mozilla.org/releases/mozilla-esr91/rev/d015edeaf1a75b6bd672f9f9a413251482b715d6
diff --git a/taskcluster/ci/config.yml b/taskcluster/ci/config.yml
index 22d7b943dddc632c8d97a8645015604cc2864d7b..9337588d0510fdea38cab4b55cb2d8d23a08c370 100644
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -50,7 +50,10 @@ treeherder:
         'M-spi-nw': 'Mochitests with networking on socket process'
         'M-spi-nw-1proc': 'Mochitests with networking on socket process without e10s'
         'M-swr': 'Mochitests with software webrender enabled'
+        'M-swr-a11y-checks': 'Mochitests with software webrender and accessibility checks enabled'
         'M-swr-1proc': 'Mochitests with software webrender enabled without e10s'
+        'M-swr-fis': 'Mochitests with software webrender and fission enabled'
+        'M-swr-wayland': 'Mochitests with software webrender and Wayland backend enabled'
         'M-wayland': 'Mochitests with Wayland backend enabled'
         'M-wayland-1proc': 'Mochitests with Wayland backend enabled without e10s'
         'M-f': 'Mochitest failures'
diff --git a/taskcluster/ci/test/marionette.yml b/taskcluster/ci/test/marionette.yml
index c8f15507fe1eb2744d1515f89a11ee3e0e994bd8..20d36cdef65e5bbba6a2fffd6ed0ff2bc21e93c2 100644
--- a/taskcluster/ci/test/marionette.yml
+++ b/taskcluster/ci/test/marionette.yml
@@ -24,7 +24,7 @@ job-defaults:
             fission:
                 by-test-platform:
                     (linux.*64|windows10-64)(-shippable)?(-qr)?/.*: ['trunk']
-                    linux.*64-asan/opt: ['trunk']
+                    linux.*64-asan-qr/opt: ['trunk']
                     default: []
             default: built-projects
     test-manifest-loader: null  # don't load tests in the taskgraph
diff --git a/taskcluster/ci/test/mochitest.yml b/taskcluster/ci/test/mochitest.yml
index 6d96678751905cf5bf4ab3efed1eb7419aa6783f..e76e338f264f66f83f95c36ab1c10bf3b408f4f7 100644
--- a/taskcluster/ci/test/mochitest.yml
+++ b/taskcluster/ci/test/mochitest.yml
@@ -70,7 +70,7 @@ mochitest-plain:
                     (linux.*64|macosx.*64|windows10-64)-qr/debug: ['autoland', 'mozilla-central']
                     (linux.*64|macosx.*64|windows10-64)-qr/opt: ['autoland']
                     (linux.*64|macosx.*64|windows10-64)-shippable-qr/opt: ['autoland', 'mozilla-central']
-                    linux.*64-(asan|tsan)/opt: ['autoland', 'mozilla-central']
+                    linux.*64-(asan|tsan)-qr/opt: ['autoland', 'mozilla-central']
                     default: []
             fission-xorigin:
                 by-test-platform:
@@ -78,7 +78,7 @@ mochitest-plain:
                     default: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android-em-7.0-x86_64/debug-isolated-process: []
                     default: built-projects
     chunks:
@@ -86,14 +86,14 @@ mochitest-plain:
             android-em-7.*: 4
             linux.*/debug: 16
             linux.*64-asan/opt: 10
-            linux.*64-tsan/opt: 20
+            linux.*64-tsan-qr/opt: 20
             linux.*64-.*cov/opt: 10
             windows10-64-ccov.*/.*: 10
             macosx.*64-ccov.*/.*: 10
             default: 5
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: default
     e10s: true
     max-run-time: 5400
@@ -119,7 +119,7 @@ mochitest-a11y:
     e10s: false
     run-on-projects:
         by-test-platform:
-            .*-tsan/opt: ['trunk']
+            .*-tsan-qr/opt: ['trunk']
             default: built-projects
     mozharness:
         mochitest-flavor: a11y
@@ -133,27 +133,44 @@ mochitest-browser-chrome:
     loopback-video: true
     variants:
         by-test-platform:
-            linux.*64(-shippable)?/opt: ['fission', 'a11y-checks', 'wayland']
-            linux.*64-qr/debug: ['webrender-sw', 'fission', 'wayland']
+            linux.*64(-shippable)?-qr/opt: ['webrender-sw', 'webrender-sw-fission', 'webrender-sw-a11y-checks', 'webrender-sw-wayland']
+            linux.*64(-asan|-ccov|-devedition|-tsan)-qr/opt: ['webrender-sw', 'webrender-sw-fission']
+            linux.*64-qr/debug: ['webrender-sw', 'webrender-sw-fission', 'webrender-sw-wayland']
             windows10-64-qr/debug: ['webrender-sw', 'fission']
             default: ['fission']
     run-on-projects:
         by-variant:
             fission:
                 by-test-platform:
-                    linux.*64-asan/opt: ['trunk']
-                    linux.*64(-shippable)?/(opt|debug): ['trunk']
                     (windows10-64|macosx.*64)(-shippable)?-qr/(opt|debug): ['trunk']
                     default: []
+            webrender-sw:
+                by-test-platform:
+                    linux.*64(-asan)?-qr/(opt|debug): ['all']
+                    linux.*64-tsan-qr/opt: ['trunk']
+                    linux.*64(-shippable|-ccov)-qr/opt: ['release']
+                    default: built-projects
+            webrender-sw-fission:
+                by-test-platform:
+                    linux.*64(-asan|-shippable)?-qr/(opt|debug): ['trunk']
+                    default: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    linux.*-qr/.*: []
                     default: built-projects
     tier:
         by-variant:
             fission(-xorigin)?:
                 by-test-platform:
-                    linux.*64/debug: 1
+                    linux.*64-qr/debug: 1
+                    default: 2
+            webrender-sw:
+                by-test-platform:
+                    linux.*64(-asan|-shippable)?-qr/(opt|debug): 1
+                    default: default
+            webrender-sw-fission:
+                by-test-platform:
+                    linux.*64-qr/debug: 1
                     default: 2
             default:
                 by-test-platform:
@@ -161,9 +178,9 @@ mochitest-browser-chrome:
                     default: default
     chunks:
         by-test-platform:
-            linux.*/debug: 16
-            linux.*64-asan(-qr)?/opt: 16
-            linux.*64-tsan/opt: 32
+            linux.*-qr/debug: 16
+            linux.*64-asan-qr/opt: 16
+            linux.*64-tsan-qr/opt: 32
             macosx.*64/debug: 16
             windows10-64-ccov.*/.*: 14
             windows10.*-asan-qr/opt: 9
@@ -174,7 +191,8 @@ mochitest-browser-chrome:
             linux.*64-ccov.*/.*: 9000
             windows10-64-ccov.*/.*: 10800
             macosx.*64-ccov.*/.*: 10800
-            linux.*64-tsan/opt: 9000
+            linux.*64-tsan-qr/opt: 10800
+            linux.*-qr/opt: 5400
             .*/debug: 5400
             default: 3600
     mozharness:
@@ -183,7 +201,7 @@ mochitest-browser-chrome:
     # Bug 1281241: migrating to m3.large instances
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: default
     allow-software-gl-layers: false
 
@@ -244,14 +262,14 @@ mochitest-chrome:
     loopback-video: true
     run-on-projects:
         by-test-platform:
-            .*-tsan/opt: ['trunk']
+            .*-tsan-qr/opt: ['trunk']
             default: built-projects
     chunks:
         by-test-platform:
             .*(-ccov|-qr).*/.*: 3
             windows10-64-ccov-qr/opt: 3
             .*-asan(-qr)?/opt: 3
-            .*-tsan/opt: 6
+            .*-tsan-qr/opt: 6
             (linux.*64|windows.*|macosx1015-64)/debug: 3
             default: 2
     max-run-time: 3600
@@ -261,7 +279,7 @@ mochitest-chrome:
         chunked: true
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: default
 
 mochitest-devtools-chrome:
@@ -285,7 +303,7 @@ mochitest-devtools-chrome:
                     default: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     default: built-projects
     tier:
         by-variant:
@@ -300,7 +318,7 @@ mochitest-devtools-chrome:
             windows10-64-ccov.*/.*: 10800
             macosx.*64-ccov.*/.*: 9000
             linux.*64-ccov.*/.*: 7200
-            linux.*64-tsan/opt: 7200
+            linux.*64-tsan-qr/opt: 7200
             default: 5400
     chunks:
         by-test-platform:
@@ -308,7 +326,7 @@ mochitest-devtools-chrome:
             linux.*64-qr/debug: 12
             macosx.*64-qr/debug: 8
             .*-asan(-qr)?/opt: 8
-            .*-tsan/opt: 16
+            .*-tsan-qr/opt: 16
             default: 5
     mozharness:
         mochitest-flavor: chrome
@@ -332,7 +350,7 @@ mochitest-plain-gpu:
             fission: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android-em-7.0-x86_64/debug-isolated-process: []
                     default: built-projects
     virtualization:
@@ -358,7 +376,7 @@ mochitest-plain-gpu:
                     - --mochitest-suite=mochitest-plain-gpu
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: default
 
 mochitest-chrome-gpu:
@@ -377,7 +395,7 @@ mochitest-chrome-gpu:
             fission: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android.*/.*: []
                     default: built-projects
     tier:
@@ -395,7 +413,7 @@ mochitest-chrome-gpu:
                     - --mochitest-suite=mochitest-chrome-gpu
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: default
 
 mochitest-media:
@@ -406,7 +424,7 @@ mochitest-media:
         by-test-platform:
             windows10-64-ccov.*/.*: 7200
             macosx.*64-ccov.*/.*: 7200
-            linux.*64-tsan/opt: 7200
+            linux.*64-tsan-qr/opt: 7200
             default: 5400
     run-on-projects:
         by-variant:
@@ -416,7 +434,7 @@ mochitest-media:
                     (linux.*64|windows10-64)-qr/opt: ['autoland']
                     (linux.*64|windows10-64)-shippable-qr/opt: ['mozilla-central']
                     linux.*64-asan-qr/opt: ['autoland', 'mozilla-central']
-                    linux.*64-tsan/opt: ['autoland', 'mozilla-central']
+                    linux.*64-tsan-qr/opt: ['autoland', 'mozilla-central']
                     default: []
             fission-webgl-ipc:
                 by-test-platform:
@@ -424,12 +442,12 @@ mochitest-media:
                     (linux.*64|windows10-64)-qr/opt: ['autoland']
                     (linux.*64|windows10-64)-shippable-qr/opt: ['mozilla-central']
                     linux.*64-asan-qr/opt: ['autoland', 'mozilla-central']
-                    linux.*64-tsan/opt: ['autoland', 'mozilla-central']
+                    linux.*64-tsan-qr/opt: ['autoland', 'mozilla-central']
                     (linux|windows10-64|macos)(?!.*-qr).*: []
                     default: []
             socketprocess:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     windows10-64-asan-qr/opt: ['trunk']
                     android-hw-.*(?<!-shippable)(-qr)?/opt: ['autoland']
                     android-hw-.*-arm7.*/(?:debug)?: ['trunk', 'mozilla-beta', 'mozilla-release']
@@ -440,7 +458,7 @@ mochitest-media:
             noqr: built-projects
             webgl-ipc:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     windows10-64-asan-qr/opt: ['trunk']
                     (linux.*64|windows10-64)(-shippable)?-qr/(opt|debug): ['trunk']
                     (linux|windows10-64|macos)(?!.*-qr).*: []
@@ -450,7 +468,7 @@ mochitest-media:
                     android-hw-.*/opt: []
                     android-hw-.*-arm7.*/(?:debug)?: ['trunk', 'mozilla-beta', 'mozilla-release']
                     android-em-7.0-x86_64/debug-isolated-process: []
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     linux.*(asan|ccov)/opt: []
                     .*(ccov/|asan/|-32).*: built-projects
                     (android|linux|windows10-64|macos)(?!.*-qr).*: []
@@ -464,7 +482,7 @@ mochitest-media:
             android-.*/opt: []
             android.*: ['socketprocess']
             .*-ccov-qr.*/.*: ['noqr']
-            .*tsan.*: ['fission', 'fission-webgl-ipc', 'socketprocess', 'webgl-ipc']
+            .*tsan-qr.*: ['fission', 'fission-webgl-ipc', 'socketprocess', 'webgl-ipc']
             windows10-64-asan-qr/opt: ['fission', 'fission-webgl-ipc', 'socketprocess', 'webgl-ipc']
             windows10-aarch64-qr/.*: []
             (linux|windows10-64|macos)(?!.*-qr).*: []
@@ -474,7 +492,7 @@ mochitest-media:
     loopback-video: true
     instance-size:
         by-test-platform:
-            linux.*64-tsan/opt: xlarge  # runs out of memory on default/m3.large
+            linux.*64-tsan-qr/opt: xlarge  # runs out of memory on default/m3.large
             default: large
     chunks:
         by-test-platform:
@@ -484,7 +502,7 @@ mochitest-media:
             windows10-aarch64-qr/.*: 1
             windows.*32-shippable/.*: 2
             linux1804-64(-shippable|-devedition|-.*qr)/opt: 2
-            linux.*64-tsan/opt: 4
+            linux.*64-tsan-qr/opt: 4
             default: 3
     mozharness:
         mochitest-flavor: plain
@@ -618,7 +636,7 @@ mochitest-webgl1-core:
             default: 1800
     run-on-projects:
         by-test-platform:
-            .*-tsan/opt: ['trunk']
+            .*-tsan-qr/opt: ['trunk']
             android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release']
             android-hw.*aarch.*-shippable/opt: ['mozilla-central']
             default: built-projects
@@ -658,7 +676,7 @@ mochitest-webgl1-ext:
     max-run-time: 2700
     run-on-projects:
         by-test-platform:
-            .*-tsan/opt: ['trunk']
+            .*-tsan-qr/opt: ['trunk']
             android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release']
             android-hw.*aarch.*-shippable/opt: ['mozilla-central']
             default: built-projects
@@ -697,7 +715,7 @@ mochitest-webgl2-core:
     max-run-time: 1800
     run-on-projects:
         by-test-platform:
-            .*-tsan/opt: ['trunk']
+            .*-tsan-qr/opt: ['trunk']
             android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release']
             android-hw.*aarch.*-shippable/opt: ['mozilla-central']
             default: built-projects
@@ -814,7 +832,7 @@ mochitest-remote:
             fission: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     default: built-projects
     tier:
         by-variant:
diff --git a/taskcluster/ci/test/reftest.yml b/taskcluster/ci/test/reftest.yml
index 8a5186a7033f212843ba1be2e34a11c5f1323afb..7cc7044c452d07faaa71d71cb870449f0e5b9c70 100644
--- a/taskcluster/ci/test/reftest.yml
+++ b/taskcluster/ci/test/reftest.yml
@@ -46,7 +46,7 @@ crashtest:
     variants:
         by-test-platform:
             linux1804-64-qr/debug: ['webrender-sw', 'fission', 'wayland', 'noqr']
-            linux1804-64-asan-qr/opt: ['webrender-sw', 'fission', 'wayland', 'noqr']
+            linux1804-64(-tsan|-asan)-qr/opt: ['webrender-sw', 'fission', 'wayland', 'noqr']
             windows10-64-qr/debug: ['webrender-sw', 'fission', 'noqr']
             windows10-64-asan-qr/opt: ['webrender-sw', 'fission', 'noqr']
             windows10-aarch64-qr/.*: []
@@ -59,7 +59,7 @@ crashtest:
     chunks:
         by-test-platform:
             android-em-7.*: 1
-            linux.*64-tsan/opt: 12
+            linux.*64-tsan-qr/opt: 32
             default: 1
     e10s: true
     run-on-projects:
@@ -164,7 +164,7 @@ reftest:
     variants:
         by-test-platform:
             linux1804-64-qr/debug: ['webrender-sw', 'fission', 'wayland', 'noqr']
-            linux1804-64-asan-qr/opt: ['webrender-sw', 'fission', 'wayland', 'noqr']
+            linux1804-64(-asan|-tsan)-qr/opt: ['webrender-sw', 'fission', 'wayland', 'noqr']
             windows10-64(-asan)?-qr/opt: ['webrender-sw', 'fission', 'noqr']
             windows10-aarch64-qr/.*: []
             windows10-32(?:-shippable)?-qr/opt: ['webrender-sw', 'fission', 'noqr']
@@ -178,6 +178,7 @@ reftest:
             default: ['fission']
     chunks:
         by-test-platform:
+            linux.*64-tsan-qr/opt: 32
             android-em-7.*: 2
             linux1804-64(-shippable|-devedition|-qr)?/opt: 5
             macosx101.*-64-shippable(-qr)?/opt: 3
@@ -195,7 +196,7 @@ reftest:
             fission:
                 by-test-platform:
                     (linux.*64|windows10-64)(-shippable)?-qr/(debug|opt): ['trunk']
-                    linux.*64-asan/opt: ['trunk']
+                    linux.*64-asan-qr/opt: ['trunk']
                     default: []
             noqr: built-projects
             default:
diff --git a/taskcluster/ci/test/test-platforms.yml b/taskcluster/ci/test/test-platforms.yml
index 44358019a75a557385e1053a9f0d03cd72db0a95..d1a1852cf585065197e5afaa993d95578fb0dfb0 100644
--- a/taskcluster/ci/test/test-platforms.yml
+++ b/taskcluster/ci/test/test-platforms.yml
@@ -37,50 +37,7 @@ linux1804-32-shippable-qr/opt:
         - linux32-tests
         - linux32-gtest
 
-linux1804-64/opt:
-    build-platform: linux64/opt
-    test-sets:
-        - awsy
-        - desktop-screenshot-capture
-        - linux1804-tests
-        - marionette-headless
-        - mochitest-headless
-        - talos
-        - linux-talos-flex
-        - raptor-firefox
-        - browsertime
-
-linux1804-64/debug:
-    build-platform: linux64/debug
-    test-sets:
-        - linux1804-tests
-
-linux1804-64-shippable/opt:
-    build-platform: linux64-shippable/opt
-    test-sets:
-        - awsy
-        - desktop-screenshot-capture
-        - linux1804-tests
-        - marionette-headless
-        - mochitest-headless
-        - talos
-        - linux-talos-flex
-        - raptor-chrome
-        - raptor-firefox
-        - browsertime
-
-linux1804-64-devedition/opt:
-    build-platform: linux64-devedition/opt
-    test-sets:
-        - desktop-screenshot-capture
-        - linux1804-tests
-
-linux1804-64-asan/opt:
-    build-platform: linux64-asan/opt
-    test-sets:
-        - linux1804-tests
-
-linux1804-64-tsan/opt:
+linux1804-64-tsan-qr/opt:
     build-platform: linux64-tsan/opt
     test-sets:
         - linux-tsan-tests
@@ -89,11 +46,15 @@ linux1804-64-qr/opt:
     build-platform: linux64/opt
     test-sets:
         - awsy
-        - linux1804-qr-tests
+        - desktop-screenshot-capture
+        - linux1804-tests
+        - marionette-headless
+        - mochitest-headless
         - mochitest-webgpu
         - web-platform-tests
         - web-platform-tests-backlog
         - web-platform-tests-wdspec-headless
+        - linux-talos-flex
         - talos
         - raptor-firefox
         - browsertime
@@ -102,11 +63,15 @@ linux1804-64-shippable-qr/opt:
     build-platform: linux64-shippable/opt
     test-sets:
         - awsy
-        - linux1804-qr-tests
+        - desktop-screenshot-capture
+        - linux1804-tests
+        - marionette-headless
+        - mochitest-headless
         - mochitest-webgpu
         - web-platform-tests
         - web-platform-tests-backlog
         - web-platform-tests-wdspec-headless
+        - linux-talos-flex
         - talos
         - talos-profiling
         - raptor-firefox
@@ -116,36 +81,32 @@ linux1804-64-shippable-qr/opt:
 linux1804-64-qr/debug:
     build-platform: linux64/debug
     test-sets:
-        - linux1804-qr-tests
+        - linux1804-tests
         - mochitest-webgpu
         - web-platform-tests
 
 linux1804-64-asan-qr/opt:
     build-platform: linux64-asan/opt
     test-sets:
-        - linux-qr-smoketests
+        - linux1804-tests
         - mochitest-webgpu
         - web-platform-tests
         - web-platform-tests-wdspec-headless
 
-linux1804-64-ccov/opt:
+linux1804-64-ccov-qr/opt:
     build-platform: linux64-ccov/opt
     test-sets:
+        - ccov-code-coverage-tests
         - linux1804-tests
         - linux1804-ccov-tests
-        - ccov-code-coverage-tests
-
-linux1804-64-ccov-qr/opt:
-    build-platform: linux64-ccov/opt
-    test-sets:
-        - linux1804-ccov-qr-tests
         - mochitest-webgpu
         - web-platform-tests
 
 linux1804-64-devedition-qr/opt:
     build-platform: linux64-devedition/opt
     test-sets:
-        - linux1804-devedition-qr-tests
+        - desktop-screenshot-capture
+        - linux1804-tests
         - web-platform-tests
 
 linux1804-64-clang-trunk/opt:
diff --git a/taskcluster/ci/test/test-sets.yml b/taskcluster/ci/test/test-sets.yml
index 39c8ea5d46d944946baf7d9feafdcd59a5630928..252d3b8d40643c38e15c774a9027346c9fccee3e 100644
--- a/taskcluster/ci/test/test-sets.yml
+++ b/taskcluster/ci/test/test-sets.yml
@@ -172,6 +172,7 @@ linux1804-tests:
     - mochitest-browser-chrome
     - mochitest-chrome
     - mochitest-chrome-gpu
+    - mochitest-devtools-chrome
     - mochitest-media
     - mochitest-plain
     - mochitest-plain-gpu
@@ -181,48 +182,13 @@ linux1804-tests:
     - mochitest-webgl2-core
     - mochitest-webgl2-ext
     - reftest
+    - reftest-snapshot
     - telemetry-tests-client
     - test-verify
     - test-verify-gpu
     - test-verify-wpt
     - xpcshell
 
-linux1804-qr-tests:
-    - cppunit
-    - crashtest
-    - firefox-ui-functional-local
-    - firefox-ui-functional-remote
-    - gtest
-    # - jittest  # See comment in linux1804-ccov-tests set.
-    - jsreftest
-    - marionette
-    - mochitest-a11y
-    - mochitest-chrome
-    - mochitest-chrome-gpu
-    - mochitest-devtools-chrome
-    - mochitest-media
-    - mochitest-plain
-    - mochitest-plain-gpu
-    - mochitest-remote
-    - mochitest-webgl1-core
-    - mochitest-webgl1-ext
-    - mochitest-webgl2-core
-    - mochitest-webgl2-ext
-    - reftest
-    - reftest-snapshot
-    - test-verify
-    - xpcshell
-
-linux1804-ccov-qr-tests:
-    - reftest-snapshot
-    - reftest
-    - crashtest
-    - mochitest-devtools-chrome
-    - mochitest-media
-
-linux1804-devedition-qr-tests:
-    - reftest-snapshot
-
 linux1804-ccov-tests:
     # jittest run on regular linux builds is redundant with SM(p), so we omit it
     # from the linux1804-tests and linux1804-qr-tests sets. But, we still want
@@ -230,29 +196,6 @@ linux1804-ccov-tests:
     # on ccov builds.
     - jittest
 
-linux-qr-smoketests:
-    - cppunit
-    - crashtest
-    - firefox-ui-functional-local
-    - firefox-ui-functional-remote
-    - gtest
-    - jsreftest
-    - marionette
-    - mochitest-a11y
-    - mochitest-chrome
-    - mochitest-chrome-gpu
-    - mochitest-devtools-chrome
-    - mochitest-media
-    - mochitest-remote
-    - mochitest-webgl1-core
-    - mochitest-webgl1-ext
-    - mochitest-webgl2-core
-    - mochitest-webgl2-ext
-    - reftest
-    - reftest-snapshot
-    - test-verify
-    - xpcshell
-
 linux-talos-flex:
     - talos-flex
 
diff --git a/taskcluster/ci/test/web-platform.yml b/taskcluster/ci/test/web-platform.yml
index 36b9473a4372d18eff6ad915cef7d83b6ac82d44..d7698950a7e6e23cccd7408341c120f5ca89f311 100644
--- a/taskcluster/ci/test/web-platform.yml
+++ b/taskcluster/ci/test/web-platform.yml
@@ -61,7 +61,7 @@ web-platform-tests:
     chunks:
         by-test-platform:
             android.*: 16
-            linux.*64-tsan/opt: 26
+            linux.*64-tsan-qr/opt: 26
             linux.*64-asan(-qr)?/opt: 22
             linux.*64-ccov.*/opt: 20
             linux.*/debug: 16
@@ -73,7 +73,7 @@ web-platform-tests:
     max-run-time:
         by-test-platform:
             .*-ccov.*/.*: 10800
-            linux.*64-tsan/opt: 14400
+            linux.*64-tsan-qr/opt: 14400
             linux.*64-asan(-qr)?/opt: 14400
             linux.*64(-qr)?/debug: 10800
             macosx.*/debug: 10800
@@ -90,7 +90,7 @@ web-platform-tests:
                     default: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android-em-7.0-x86_64/debug-isolated-process: []
                     default: built-projects
     mozharness:
@@ -151,7 +151,7 @@ web-platform-tests-reftest:
     chunks:
         by-test-platform:
             .*-ccov.*/.*: 8
-            linux.*64-tsan/opt: 8
+            linux.*64-tsan-qr/opt: 16
             linux1804-64(-asan)?-qr/.*: 6
             macosx10.*-64/debug: 6
             macosx10.*-64/opt: 3
@@ -169,7 +169,7 @@ web-platform-tests-reftest:
                     default: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android-em-7.0-x86_64/debug-isolated-process: []
                     default: built-projects
     tier:
diff --git a/taskcluster/ci/test/xpcshell.yml b/taskcluster/ci/test/xpcshell.yml
index d64b553ed4aa1fc332815b126a484626b4f0a8b3..a1bedcc6bbafa0d58fd5b1647011556dffd06371 100644
--- a/taskcluster/ci/test/xpcshell.yml
+++ b/taskcluster/ci/test/xpcshell.yml
@@ -6,7 +6,7 @@ job-defaults:
     suite: xpcshell
     variants:
         by-test-platform:
-            linux1804-64/debug: ['fission', 'socketprocess_networking']
+            linux1804-64-qr/debug: ['fission', 'socketprocess_networking']
             default: ['fission']
     target:
         by-test-platform:
@@ -48,7 +48,7 @@ xpcshell:
             fission: []
             default:
                 by-test-platform:
-                    .*-tsan/opt: ['trunk']
+                    .*-tsan-qr/opt: ['trunk']
                     android-em-7.0-x86_64/debug-isolated-process: []
                     windows10-64-asan-qr/opt: []  # No XPCShell on ASAN yet
                     default: built-projects
@@ -59,14 +59,14 @@ xpcshell:
             android-em-7.*: 2
             macosx.*-64(-shippable|-devedition|-asan)?(-qr)?/.*: 2
             linux1804-64(-qr)?/debug: 6
-            .*-tsan/opt: 8
+            .*-tsan-qr/opt: 8
             windows.*(-shippable|-devedition|-asan|.*-qr)?/.*: 2
             default: 5
     max-run-time:
         by-test-platform:
             windows.*(-shippable)/opt: 5400
             .*64-ccov(-qr)?/.*: 7200
-            .*-tsan/opt: 7200
+            .*-tsan-qr/opt: 7200
             default: 2700
     allow-software-gl-layers: false
     tier:
diff --git a/taskcluster/taskgraph/transforms/tests.py b/taskcluster/taskgraph/transforms/tests.py
index 8d44008d401695d3d77645a1ef337a84ee8f2080..f47072b047062310b36c0e34d0a38d5ed2f75e09 100644
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -198,7 +198,7 @@ TEST_VARIANTS = {
         "replace": {
             "run-on-projects": {
                 "by-test-platform": {
-                    "linux.*64(-shippable)?/opt": ["trunk"],
+                    "linux.*64(-shippable)?-qr/opt": ["trunk"],
                     "default": [],
                 },
             },
@@ -345,6 +345,60 @@ TEST_VARIANTS = {
             },
         },
     },
+    "webrender-sw-a11y-checks": {
+        "description": "{description} with software webrender and accessibility checks enabled",
+        "suffix": "swr-a11y-checks",
+        "replace": {
+            "run-on-projects": {
+                "by-test-platform": {
+                    "linux.*64(-shippable)?-qr/opt": ["trunk"],
+                    "default": [],
+                },
+            },
+            "tier": 2,
+        },
+        "merge": {
+            "webrender": True,
+            "mozharness": {
+                "extra-options": [
+                    "--setpref=gfx.webrender.software=true",
+                    "--enable-a11y-checks",
+                ],
+            },
+        },
+    },
+    "webrender-sw-fission": {
+        "description": "{description} with software webrender and fission enabled",
+        "filterfn": fission_filter,
+        "suffix": "swr-fis",
+        "replace": {
+            "e10s": True,
+        },
+        "merge": {
+            "webrender": True,
+            "mozharness": {
+                "extra-options": [
+                    "--setpref=gfx.webrender.software=true",
+                    "--setpref=fission.autostart=true",
+                ],
+            },
+        },
+    },
+    "webrender-sw-wayland": {
+        "description": "{description} with software webrender and Wayland backend enabled",
+        "suffix": "swr-wayland",
+        "replace": {
+            "run-on-projects": [],
+        },
+        "merge": {
+            "mozharness": {
+                "extra-options": [
+                    "--setpref=gfx.webrender.software=true",
+                    "--setpref=widget.wayland.test-workarounds.enabled=true",
+                ],
+            }
+        },
+    },
     "webgl-ipc": {
         # TODO: After 2021-05-01, verify this variant is still needed.
         "description": "{description} with WebGL IPC process enabled",
@@ -1408,8 +1462,8 @@ def handle_tier(config, tasks):
                 "linux1804-64-qr/opt",
                 "linux1804-64-qr/debug",
                 "linux1804-64-shippable-qr/opt",
-                "linux1804-64-asan/opt",
-                "linux1804-64-tsan/opt",
+                "linux1804-64-asan-qr/opt",
+                "linux1804-64-tsan-qr/opt",
                 "windows7-32-qr/debug",
                 "windows7-32-qr/opt",
                 "windows7-32-devedition-qr/opt",
diff --git a/taskcluster/taskgraph/transforms/update_verify_config.py b/taskcluster/taskgraph/transforms/update_verify_config.py
index 2a05ae12001165acc243b8dc7c7f36a85aa7170c..ab223297fb81e1a052ab80b2cebf27028510226e 100644
--- a/taskcluster/taskgraph/transforms/update_verify_config.py
+++ b/taskcluster/taskgraph/transforms/update_verify_config.py
@@ -36,7 +36,7 @@ INCLUDE_VERSION_REGEXES = {
     # Previous esr versions, for update testing before we update users to esr91
     "esr91-next": r"'^(52|60|68|78)+\.\d+(\.\d+)?esr$'",
     # Previous Thunderbird major versions. Same idea as esrXX-next, no esr suffix
-    "thunderbird91-next": r"'^78\.\d+(\.\d+)?$",
+    "thunderbird91-next": r"'^78\.\d+(\.\d+)?$'",
 }
 
 MAR_CHANNEL_ID_OVERRIDE_REGEXES = {
@@ -44,6 +44,23 @@ MAR_CHANNEL_ID_OVERRIDE_REGEXES = {
 }
 
 
+def ensure_wrapped_singlequote(regexes):
+    """Ensure that a regex (from INCLUDE_VERSION_REGEXES or MAR_CHANNEL_ID_OVERRIDE_REGEXES)
+    is wrapper in single quotes.
+    """
+    for name, regex in regexes.items():
+        if regex[0] != "'" or regex[-1] != "'":
+            raise Exception(
+                "Regex {} is invalid: not wrapped with single quotes.\n{}".format(
+                    name, regex
+                )
+            )
+
+
+ensure_wrapped_singlequote(INCLUDE_VERSION_REGEXES)
+ensure_wrapped_singlequote(MAR_CHANNEL_ID_OVERRIDE_REGEXES)
+
+
 @transforms.add
 def add_command(config, tasks):
     keyed_by_args = [
diff --git a/testing/perfdocs/generated/raptor.rst b/testing/perfdocs/generated/raptor.rst
index 1c8694ebccb76197207a5e16412da74ed916c001..2f71c9a77853a60e023c6ad2400257f0640ef7a5 100644
--- a/testing/perfdocs/generated/raptor.rst
+++ b/testing/perfdocs/generated/raptor.rst
@@ -69,10 +69,6 @@ Browsertime tests that use a custom pageload test script. These use the pageload
       * test-linux1804-64-shippable-qr/opt
             * browsertime-custom-firefox-process-switch-e10s: mozilla-central
             * browsertime-custom-firefox-process-switch-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-custom-firefox-process-switch-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-custom-firefox-process-switch-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-custom-firefox-process-switch-e10s: mozilla-central
             * browsertime-custom-firefox-process-switch-fis-e10s: mozilla-central
@@ -126,10 +122,6 @@ Browsertime tests that use a custom pageload test script. These use the pageload
       * test-linux1804-64-shippable-qr/opt
             * browsertime-first-install-firefox-welcome-e10s: autoland, mozilla-central
             * browsertime-first-install-firefox-welcome-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-first-install-firefox-welcome-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-first-install-firefox-welcome-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-first-install-firefox-welcome-e10s: autoland, mozilla-central
             * browsertime-first-install-firefox-welcome-fis-e10s: mozilla-central
@@ -197,16 +189,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-firefox-amazon-fis-e10s: None
             * browsertime-tp6-profiling-firefox-amazon-e10s: mozilla-central
             * browsertime-tp6-profiling-firefox-amazon-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-amazon-e10s: None
-            * browsertime-tp6-essential-chromium-amazon-e10s: None
-            * browsertime-tp6-essential-firefox-amazon-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-amazon-e10s: None
-            * browsertime-tp6-live-chromium-amazon-e10s: None
-            * browsertime-tp6-live-firefox-amazon-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-amazon-e10s: None
-            * browsertime-tp6-live-firefox-amazon-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-amazon-e10s: None
             * browsertime-tp6-essential-chromium-amazon-e10s: None
@@ -302,16 +284,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-bing-search-e10s: None
             * browsertime-tp6-live-firefox-bing-search-e10s: None
             * browsertime-tp6-live-firefox-bing-search-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-bing-search-e10s: None
-            * browsertime-tp6-essential-chromium-bing-search-e10s: None
-            * browsertime-tp6-essential-firefox-bing-search-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-bing-search-e10s: None
-            * browsertime-tp6-live-chromium-bing-search-e10s: None
-            * browsertime-tp6-live-firefox-bing-search-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-bing-search-e10s: None
-            * browsertime-tp6-live-firefox-bing-search-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-bing-search-e10s: None
             * browsertime-tp6-essential-chromium-bing-search-e10s: None
@@ -399,12 +371,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-buzzfeed-e10s: None
             * browsertime-tp6-firefox-buzzfeed-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-buzzfeed-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-buzzfeed-e10s: None
-            * browsertime-tp6-chromium-buzzfeed-e10s: None
-            * browsertime-tp6-firefox-buzzfeed-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-buzzfeed-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-buzzfeed-e10s: None
             * browsertime-tp6-chromium-buzzfeed-e10s: None
@@ -473,14 +439,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-essential-firefox-cnn-fis-e10s: mozilla-central
             * browsertime-tp6-live-sheriffed-firefox-cnn-e10s: None
             * browsertime-tp6-live-sheriffed-firefox-cnn-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-cnn-e10s: None
-            * browsertime-tp6-essential-chromium-cnn-e10s: None
-            * browsertime-tp6-essential-firefox-cnn-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-sheriffed-firefox-cnn-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-cnn-e10s: None
-            * browsertime-tp6-live-sheriffed-firefox-cnn-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-cnn-e10s: None
             * browsertime-tp6-essential-chromium-cnn-e10s: None
@@ -564,16 +522,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-ebay-e10s: None
             * browsertime-tp6-live-firefox-ebay-e10s: None
             * browsertime-tp6-live-firefox-ebay-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-ebay-e10s: None
-            * browsertime-tp6-chromium-ebay-e10s: None
-            * browsertime-tp6-firefox-ebay-e10s: None
-            * browsertime-tp6-live-chrome-ebay-e10s: None
-            * browsertime-tp6-live-chromium-ebay-e10s: None
-            * browsertime-tp6-live-firefox-ebay-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-ebay-e10s: None
-            * browsertime-tp6-live-firefox-ebay-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-ebay-e10s: None
             * browsertime-tp6-chromium-ebay-e10s: None
@@ -660,12 +608,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-espn-e10s: None
             * browsertime-tp6-firefox-espn-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-espn-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-espn-e10s: None
-            * browsertime-tp6-chromium-espn-e10s: None
-            * browsertime-tp6-firefox-espn-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-espn-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-espn-e10s: None
             * browsertime-tp6-chromium-espn-e10s: None
@@ -730,12 +672,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-expedia-e10s: None
             * browsertime-tp6-firefox-expedia-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-expedia-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-expedia-e10s: None
-            * browsertime-tp6-chromium-expedia-e10s: None
-            * browsertime-tp6-firefox-expedia-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-expedia-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-expedia-e10s: None
             * browsertime-tp6-chromium-expedia-e10s: None
@@ -806,16 +742,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-facebook-e10s: None
             * browsertime-tp6-live-firefox-facebook-e10s: None
             * browsertime-tp6-live-firefox-facebook-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-facebook-e10s: None
-            * browsertime-tp6-chromium-facebook-e10s: None
-            * browsertime-tp6-firefox-facebook-e10s: None
-            * browsertime-tp6-live-chrome-facebook-e10s: None
-            * browsertime-tp6-live-chromium-facebook-e10s: None
-            * browsertime-tp6-live-firefox-facebook-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-facebook-e10s: None
-            * browsertime-tp6-live-firefox-facebook-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-facebook-e10s: None
             * browsertime-tp6-chromium-facebook-e10s: None
@@ -908,16 +834,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-fandom-e10s: None
             * browsertime-tp6-live-firefox-fandom-e10s: None
             * browsertime-tp6-live-firefox-fandom-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-fandom-e10s: None
-            * browsertime-tp6-essential-chromium-fandom-e10s: None
-            * browsertime-tp6-essential-firefox-fandom-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-fandom-e10s: None
-            * browsertime-tp6-live-chromium-fandom-e10s: None
-            * browsertime-tp6-live-firefox-fandom-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-fandom-e10s: None
-            * browsertime-tp6-live-firefox-fandom-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-fandom-e10s: None
             * browsertime-tp6-essential-chromium-fandom-e10s: None
@@ -1011,16 +927,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-google-docs-e10s: None
             * browsertime-tp6-live-firefox-google-docs-e10s: None
             * browsertime-tp6-live-firefox-google-docs-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-google-docs-e10s: None
-            * browsertime-tp6-chromium-google-docs-e10s: None
-            * browsertime-tp6-firefox-google-docs-e10s: None
-            * browsertime-tp6-live-chrome-google-docs-e10s: None
-            * browsertime-tp6-live-chromium-google-docs-e10s: None
-            * browsertime-tp6-live-firefox-google-docs-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-google-docs-e10s: None
-            * browsertime-tp6-live-firefox-google-docs-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-google-docs-e10s: None
             * browsertime-tp6-chromium-google-docs-e10s: None
@@ -1113,16 +1019,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-google-mail-e10s: None
             * browsertime-tp6-live-firefox-google-mail-e10s: None
             * browsertime-tp6-live-firefox-google-mail-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-google-mail-e10s: None
-            * browsertime-tp6-chromium-google-mail-e10s: None
-            * browsertime-tp6-firefox-google-mail-e10s: None
-            * browsertime-tp6-live-chrome-google-mail-e10s: None
-            * browsertime-tp6-live-chromium-google-mail-e10s: None
-            * browsertime-tp6-live-firefox-google-mail-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-google-mail-e10s: None
-            * browsertime-tp6-live-firefox-google-mail-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-google-mail-e10s: None
             * browsertime-tp6-chromium-google-mail-e10s: None
@@ -1215,16 +1111,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-google-search-e10s: None
             * browsertime-tp6-live-firefox-google-search-e10s: None
             * browsertime-tp6-live-firefox-google-search-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-google-search-e10s: None
-            * browsertime-tp6-chromium-google-search-e10s: None
-            * browsertime-tp6-firefox-google-search-e10s: None
-            * browsertime-tp6-live-chrome-google-search-e10s: None
-            * browsertime-tp6-live-chromium-google-search-e10s: None
-            * browsertime-tp6-live-firefox-google-search-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-google-search-e10s: None
-            * browsertime-tp6-live-firefox-google-search-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-google-search-e10s: None
             * browsertime-tp6-chromium-google-search-e10s: None
@@ -1317,16 +1203,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-google-slides-e10s: None
             * browsertime-tp6-live-firefox-google-slides-e10s: None
             * browsertime-tp6-live-firefox-google-slides-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-google-slides-e10s: None
-            * browsertime-tp6-essential-chromium-google-slides-e10s: None
-            * browsertime-tp6-essential-firefox-google-slides-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-google-slides-e10s: None
-            * browsertime-tp6-live-chromium-google-slides-e10s: None
-            * browsertime-tp6-live-firefox-google-slides-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-google-slides-e10s: None
-            * browsertime-tp6-live-firefox-google-slides-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-google-slides-e10s: None
             * browsertime-tp6-essential-chromium-google-slides-e10s: None
@@ -1420,16 +1296,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-imdb-e10s: None
             * browsertime-tp6-live-firefox-imdb-e10s: None
             * browsertime-tp6-live-firefox-imdb-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-imdb-e10s: None
-            * browsertime-tp6-chromium-imdb-e10s: None
-            * browsertime-tp6-firefox-imdb-e10s: None
-            * browsertime-tp6-live-chrome-imdb-e10s: None
-            * browsertime-tp6-live-chromium-imdb-e10s: None
-            * browsertime-tp6-live-firefox-imdb-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-imdb-e10s: None
-            * browsertime-tp6-live-firefox-imdb-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-imdb-e10s: None
             * browsertime-tp6-chromium-imdb-e10s: None
@@ -1522,16 +1388,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-imgur-e10s: None
             * browsertime-tp6-live-firefox-imgur-e10s: None
             * browsertime-tp6-live-firefox-imgur-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-imgur-e10s: None
-            * browsertime-tp6-chromium-imgur-e10s: None
-            * browsertime-tp6-firefox-imgur-e10s: None
-            * browsertime-tp6-live-chrome-imgur-e10s: None
-            * browsertime-tp6-live-chromium-imgur-e10s: None
-            * browsertime-tp6-live-firefox-imgur-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-imgur-e10s: None
-            * browsertime-tp6-live-firefox-imgur-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-imgur-e10s: None
             * browsertime-tp6-chromium-imgur-e10s: None
@@ -1624,16 +1480,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-instagram-e10s: None
             * browsertime-tp6-live-firefox-instagram-e10s: None
             * browsertime-tp6-live-firefox-instagram-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-instagram-e10s: None
-            * browsertime-tp6-essential-chromium-instagram-e10s: None
-            * browsertime-tp6-essential-firefox-instagram-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-instagram-e10s: None
-            * browsertime-tp6-live-chromium-instagram-e10s: None
-            * browsertime-tp6-live-firefox-instagram-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-instagram-e10s: None
-            * browsertime-tp6-live-firefox-instagram-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-instagram-e10s: None
             * browsertime-tp6-essential-chromium-instagram-e10s: None
@@ -1727,16 +1573,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-linkedin-e10s: None
             * browsertime-tp6-live-firefox-linkedin-e10s: None
             * browsertime-tp6-live-firefox-linkedin-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-linkedin-e10s: None
-            * browsertime-tp6-chromium-linkedin-e10s: None
-            * browsertime-tp6-firefox-linkedin-e10s: None
-            * browsertime-tp6-live-chrome-linkedin-e10s: None
-            * browsertime-tp6-live-chromium-linkedin-e10s: None
-            * browsertime-tp6-live-firefox-linkedin-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-linkedin-e10s: None
-            * browsertime-tp6-live-firefox-linkedin-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-linkedin-e10s: None
             * browsertime-tp6-chromium-linkedin-e10s: None
@@ -1829,16 +1665,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-microsoft-e10s: None
             * browsertime-tp6-live-firefox-microsoft-e10s: None
             * browsertime-tp6-live-firefox-microsoft-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-microsoft-e10s: None
-            * browsertime-tp6-chromium-microsoft-e10s: None
-            * browsertime-tp6-firefox-microsoft-e10s: None
-            * browsertime-tp6-live-chrome-microsoft-e10s: None
-            * browsertime-tp6-live-chromium-microsoft-e10s: None
-            * browsertime-tp6-live-firefox-microsoft-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-microsoft-e10s: None
-            * browsertime-tp6-live-firefox-microsoft-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-microsoft-e10s: None
             * browsertime-tp6-chromium-microsoft-e10s: None
@@ -1931,16 +1757,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-netflix-e10s: None
             * browsertime-tp6-live-firefox-netflix-e10s: None
             * browsertime-tp6-live-firefox-netflix-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-netflix-e10s: None
-            * browsertime-tp6-chromium-netflix-e10s: None
-            * browsertime-tp6-firefox-netflix-e10s: None
-            * browsertime-tp6-live-chrome-netflix-e10s: None
-            * browsertime-tp6-live-chromium-netflix-e10s: None
-            * browsertime-tp6-live-firefox-netflix-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-netflix-e10s: None
-            * browsertime-tp6-live-firefox-netflix-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-netflix-e10s: None
             * browsertime-tp6-chromium-netflix-e10s: None
@@ -2027,12 +1843,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-nytimes-e10s: None
             * browsertime-tp6-firefox-nytimes-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-nytimes-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-nytimes-e10s: None
-            * browsertime-tp6-chromium-nytimes-e10s: None
-            * browsertime-tp6-firefox-nytimes-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-nytimes-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-nytimes-e10s: None
             * browsertime-tp6-chromium-nytimes-e10s: None
@@ -2097,12 +1907,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-office-e10s: None
             * browsertime-tp6-firefox-office-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-office-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-office-e10s: None
-            * browsertime-tp6-chromium-office-e10s: None
-            * browsertime-tp6-firefox-office-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-office-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-office-e10s: None
             * browsertime-tp6-chromium-office-e10s: None
@@ -2173,16 +1977,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-outlook-e10s: None
             * browsertime-tp6-live-firefox-outlook-e10s: None
             * browsertime-tp6-live-firefox-outlook-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-outlook-e10s: None
-            * browsertime-tp6-chromium-outlook-e10s: None
-            * browsertime-tp6-firefox-outlook-e10s: None
-            * browsertime-tp6-live-chrome-outlook-e10s: None
-            * browsertime-tp6-live-chromium-outlook-e10s: None
-            * browsertime-tp6-live-firefox-outlook-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-outlook-e10s: None
-            * browsertime-tp6-live-firefox-outlook-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-outlook-e10s: None
             * browsertime-tp6-chromium-outlook-e10s: None
@@ -2275,16 +2069,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-paypal-e10s: None
             * browsertime-tp6-live-firefox-paypal-e10s: None
             * browsertime-tp6-live-firefox-paypal-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-paypal-e10s: None
-            * browsertime-tp6-chromium-paypal-e10s: None
-            * browsertime-tp6-firefox-paypal-e10s: None
-            * browsertime-tp6-live-chrome-paypal-e10s: None
-            * browsertime-tp6-live-chromium-paypal-e10s: None
-            * browsertime-tp6-live-firefox-paypal-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-paypal-e10s: None
-            * browsertime-tp6-live-firefox-paypal-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-paypal-e10s: None
             * browsertime-tp6-chromium-paypal-e10s: None
@@ -2377,16 +2161,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-pinterest-e10s: None
             * browsertime-tp6-live-firefox-pinterest-e10s: None
             * browsertime-tp6-live-firefox-pinterest-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-pinterest-e10s: None
-            * browsertime-tp6-chromium-pinterest-e10s: None
-            * browsertime-tp6-firefox-pinterest-e10s: None
-            * browsertime-tp6-live-chrome-pinterest-e10s: None
-            * browsertime-tp6-live-chromium-pinterest-e10s: None
-            * browsertime-tp6-live-firefox-pinterest-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-pinterest-e10s: None
-            * browsertime-tp6-live-firefox-pinterest-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-pinterest-e10s: None
             * browsertime-tp6-chromium-pinterest-e10s: None
@@ -2479,16 +2253,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-reddit-e10s: None
             * browsertime-tp6-live-firefox-reddit-e10s: None
             * browsertime-tp6-live-firefox-reddit-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-reddit-e10s: None
-            * browsertime-tp6-chromium-reddit-e10s: None
-            * browsertime-tp6-firefox-reddit-e10s: None
-            * browsertime-tp6-live-chrome-reddit-e10s: None
-            * browsertime-tp6-live-chromium-reddit-e10s: None
-            * browsertime-tp6-live-firefox-reddit-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-reddit-e10s: None
-            * browsertime-tp6-live-firefox-reddit-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-reddit-e10s: None
             * browsertime-tp6-chromium-reddit-e10s: None
@@ -2581,16 +2345,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-tumblr-e10s: None
             * browsertime-tp6-live-firefox-tumblr-e10s: None
             * browsertime-tp6-live-firefox-tumblr-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-tumblr-e10s: None
-            * browsertime-tp6-chromium-tumblr-e10s: None
-            * browsertime-tp6-firefox-tumblr-e10s: None
-            * browsertime-tp6-live-chrome-tumblr-e10s: None
-            * browsertime-tp6-live-chromium-tumblr-e10s: None
-            * browsertime-tp6-live-firefox-tumblr-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-tumblr-e10s: None
-            * browsertime-tp6-live-firefox-tumblr-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-tumblr-e10s: None
             * browsertime-tp6-chromium-tumblr-e10s: None
@@ -2683,16 +2437,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-twitch-e10s: None
             * browsertime-tp6-live-firefox-twitch-e10s: None
             * browsertime-tp6-live-firefox-twitch-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-twitch-e10s: None
-            * browsertime-tp6-chromium-twitch-e10s: None
-            * browsertime-tp6-firefox-twitch-e10s: None
-            * browsertime-tp6-live-chrome-twitch-e10s: None
-            * browsertime-tp6-live-chromium-twitch-e10s: None
-            * browsertime-tp6-live-firefox-twitch-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-twitch-e10s: None
-            * browsertime-tp6-live-firefox-twitch-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-twitch-e10s: None
             * browsertime-tp6-chromium-twitch-e10s: None
@@ -2785,16 +2529,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-twitter-e10s: None
             * browsertime-tp6-live-firefox-twitter-e10s: None
             * browsertime-tp6-live-firefox-twitter-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-twitter-e10s: None
-            * browsertime-tp6-essential-chromium-twitter-e10s: None
-            * browsertime-tp6-essential-firefox-twitter-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-twitter-e10s: None
-            * browsertime-tp6-live-chromium-twitter-e10s: None
-            * browsertime-tp6-live-firefox-twitter-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-twitter-e10s: None
-            * browsertime-tp6-live-firefox-twitter-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-twitter-e10s: None
             * browsertime-tp6-essential-chromium-twitter-e10s: None
@@ -2882,12 +2616,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-chromium-wikia-e10s: None
             * browsertime-tp6-firefox-wikia-e10s: mozilla-beta, trunk
             * browsertime-tp6-firefox-wikia-fis-e10s: mozilla-central
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-wikia-e10s: None
-            * browsertime-tp6-chromium-wikia-e10s: None
-            * browsertime-tp6-firefox-wikia-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-wikia-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-wikia-e10s: None
             * browsertime-tp6-chromium-wikia-e10s: None
@@ -2958,16 +2686,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-wikipedia-e10s: None
             * browsertime-tp6-live-firefox-wikipedia-e10s: None
             * browsertime-tp6-live-firefox-wikipedia-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-wikipedia-e10s: None
-            * browsertime-tp6-essential-chromium-wikipedia-e10s: None
-            * browsertime-tp6-essential-firefox-wikipedia-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-wikipedia-e10s: None
-            * browsertime-tp6-live-chromium-wikipedia-e10s: None
-            * browsertime-tp6-live-firefox-wikipedia-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-wikipedia-e10s: None
-            * browsertime-tp6-live-firefox-wikipedia-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-wikipedia-e10s: None
             * browsertime-tp6-essential-chromium-wikipedia-e10s: None
@@ -3061,16 +2779,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-yahoo-mail-e10s: None
             * browsertime-tp6-live-firefox-yahoo-mail-e10s: None
             * browsertime-tp6-live-firefox-yahoo-mail-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-essential-chrome-yahoo-mail-e10s: None
-            * browsertime-tp6-essential-chromium-yahoo-mail-e10s: None
-            * browsertime-tp6-essential-firefox-yahoo-mail-e10s: mozilla-beta, trunk
-            * browsertime-tp6-live-chrome-yahoo-mail-e10s: None
-            * browsertime-tp6-live-chromium-yahoo-mail-e10s: None
-            * browsertime-tp6-live-firefox-yahoo-mail-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-essential-firefox-yahoo-mail-e10s: None
-            * browsertime-tp6-live-firefox-yahoo-mail-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-essential-chrome-yahoo-mail-e10s: None
             * browsertime-tp6-essential-chromium-yahoo-mail-e10s: None
@@ -3164,16 +2872,6 @@ Tests for page-load performance. The links direct to the actual websites that ar
             * browsertime-tp6-live-chromium-youtube-e10s: None
             * browsertime-tp6-live-firefox-youtube-e10s: None
             * browsertime-tp6-live-firefox-youtube-fis-e10s: None
-      * test-linux1804-64-shippable/opt
-            * browsertime-tp6-chrome-youtube-e10s: None
-            * browsertime-tp6-chromium-youtube-e10s: None
-            * browsertime-tp6-firefox-youtube-e10s: None
-            * browsertime-tp6-live-chrome-youtube-e10s: None
-            * browsertime-tp6-live-chromium-youtube-e10s: None
-            * browsertime-tp6-live-firefox-youtube-e10s: None
-      * test-linux1804-64/opt
-            * browsertime-tp6-firefox-youtube-e10s: None
-            * browsertime-tp6-live-firefox-youtube-e10s: None
       * test-macosx1014-64-shippable-qr/opt
             * browsertime-tp6-chrome-youtube-e10s: None
             * browsertime-tp6-chromium-youtube-e10s: None
diff --git a/testing/web-platform/meta/editing/other/editing-div-outside-body.html.ini b/testing/web-platform/meta/editing/other/editing-div-outside-body.html.ini
new file mode 100644
index 0000000000000000000000000000000000000000..cce5fe6586b5b8230b00efcd00f8b5d164c1e61f
--- /dev/null
+++ b/testing/web-platform/meta/editing/other/editing-div-outside-body.html.ini
@@ -0,0 +1,63 @@
+[editing-div-outside-body.html?designMode]
+  disabled:
+    if debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1634351
+  [Test for execCommand("delete", false, undefined) in "<div>abc[\]</div>"]
+    expected: FAIL
+
+  [Test for execCommand("forwardDelete", false, undefined) in "<div>[\]abc</div>"]
+    expected: FAIL
+
+  [Test for execCommand("insertHTML", false, "<hr>") in "<div>a[b\]c</div>"]
+    expected: FAIL
+
+
+[editing-div-outside-body.html?div-in-body]
+  disabled:
+    if debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1634351
+  [Test for execCommand("delete", false, undefined) in "<div>abc[\]</div>"]
+    expected: FAIL
+
+  [Test for execCommand("forwardDelete", false, undefined) in "<div>[\]abc</div>"]
+    expected: FAIL
+
+  [Test for execCommand("insertHTML", false, "<hr>") in "<div>a[b\]c</div>"]
+    expected: FAIL
+
+
+[editing-div-outside-body.html?nothing]
+  disabled:
+    if debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1634351
+  [Test for execCommand("delete", false, undefined) in "<div>abc[\]</div>"]
+    expected: FAIL
+
+  [Test for execCommand("forwardDelete", false, undefined) in "<div>[\]abc</div>"]
+    expected: FAIL
+
+  [Test for execCommand("insertHTML", false, "<hr>") in "<div>a[b\]c</div>"]
+    expected: FAIL
+
+
+[editing-div-outside-body.html?html]
+  disabled:
+    if debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1634351
+  [Test for execCommand("delete", false, undefined) in "<div>abc[\]</div>"]
+    expected: FAIL
+
+  [Test for execCommand("forwardDelete", false, undefined) in "<div>[\]abc</div>"]
+    expected: FAIL
+
+  [Test for execCommand("insertHTML", false, "<hr>") in "<div>a[b\]c</div>"]
+    expected: FAIL
+
+
+[editing-div-outside-body.html?body]
+  disabled:
+    if debug: https://bugzilla.mozilla.org/show_bug.cgi?id=1634351
+  [Test for execCommand("delete", false, undefined) in "<div>abc[\]</div>"]
+    expected: FAIL
+
+  [Test for execCommand("forwardDelete", false, undefined) in "<div>[\]abc</div>"]
+    expected: FAIL
+
+  [Test for execCommand("insertHTML", false, "<hr>") in "<div>a[b\]c</div>"]
+    expected: FAIL
diff --git a/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-parse-error-external-module.html.ini b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-parse-error-external-module.html.ini
index 987b4e67f1dc6cbc2287afddbb118074d20b8f96..3229e46707daf7b66087364b78f0630a7b5e8e4c 100644
--- a/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-parse-error-external-module.html.ini
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-parse-error-external-module.html.ini
@@ -1,5 +1,7 @@
 [before-prepare-iframe-parse-error-external-module.html]
   [<script> error: Move parse-error external module script to iframe before-prepare]
+    disabled:
+      if tsan: https://bugzilla.mozilla.org/show_bug.cgi?id=1722918
     expected:
       if (os == "linux") and not fission and not debug and not webrender and (processor == "x86"): [PASS, FAIL]
       if (os == "linux") and not fission and not debug and not webrender and (processor == "x86_64"): [PASS, FAIL]
diff --git a/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-success-external-classic.html.ini b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-success-external-classic.html.ini
index c7183233212ab8e46b5560df01713083247c6325..622e1bd10d48795fb5c47229ae02f345bddabc18 100644
--- a/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-success-external-classic.html.ini
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-success-external-classic.html.ini
@@ -1,5 +1,7 @@
 [before-prepare-iframe-success-external-classic.html]
   [<script> error: Move success external classic script to iframe before-prepare]
+    disabled:
+      if tsan: https://bugzilla.mozilla.org/show_bug.cgi?id=1722918
     expected:
       if (os == "linux") and not webrender and not debug and (processor == "x86_64") and fission: [PASS, FAIL]
       if (os == "linux") and not webrender and not debug and (processor == "x86_64") and not fission: [PASS, FAIL]
diff --git a/testing/web-platform/meta/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html.ini b/testing/web-platform/meta/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html.ini
index 411e4abaf3acd84711454654f096cc851ee44525..afcee40959ca7ac42fe3fda886f57711bf05efc6 100644
--- a/testing/web-platform/meta/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html.ini
+++ b/testing/web-platform/meta/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html.ini
@@ -1,10 +1,5 @@
 [modifying-selection-with-primary-mouse-button.tentative.html]
   [Primary click should move caret in an editable element]
     expected:
-      if not webrender and (os == "linux") and not fission and not debug and (processor == "x86_64"): [FAIL, PASS]
       FAIL
 
-  [Shift + Primary click should extend the selection]
-    expected:
-      if (os == "linux") and not fission and (processor == "x86_64") and debug and webrender and not swgl: [PASS, FAIL]
-      if (os == "linux") and not fission and (processor == "x86_64") and not debug and not webrender: [PASS, FAIL]
diff --git a/testing/web-platform/mozilla/meta/webdriver/new_session/__dir__.ini b/testing/web-platform/mozilla/meta/webdriver/new_session/__dir__.ini
index 94dabdb0626285aa7db5b36f4fc0696c17dbcf1a..699f289f98b0d658744ebe60ccd584c0695ce6a2 100644
--- a/testing/web-platform/mozilla/meta/webdriver/new_session/__dir__.ini
+++ b/testing/web-platform/mozilla/meta/webdriver/new_session/__dir__.ini
@@ -1 +1 @@
-lsan-allowed: [Alloc, MakeUnique, Realloc, XPCNativeInterface::NewInstance, XPCNativeSet::NewInstance, XPCNativeSet::NewInstanceMutate, XPCWrappedNative::GetNewOrUsed, XPCWrappedNativeProto::GetNewOrUsed, mozilla::extensions::AtomSet::Get, mozilla::extensions::MatchPattern::Constructor, mozilla::extensions::MatchPattern::Init, nsDynamicAtom::Create, nsStringBuffer::Alloc, nsStringBundleService::insertIntoCache]
+lsan-allowed: [Alloc, MakeUnique, Realloc, XPCNativeInterface::NewInstance, XPCNativeSet::NewInstance, XPCNativeSet::NewInstanceMutate, XPCWrappedNative::GetNewOrUsed, XPCWrappedNativeProto::GetNewOrUsed, mozilla::extensions::AtomSet::Get, mozilla::extensions::MatchPattern::Constructor, mozilla::extensions::MatchPattern::Init, mozilla::net::AddStaticElement, nsDynamicAtom::Create, nsStringBuffer::Alloc, nsStringBundleService::insertIntoCache]
diff --git a/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001-ref.html b/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001-ref.html
new file mode 100644
index 0000000000000000000000000000000000000000..dd4e144b46bdf8f7b7111b1129f302e8ef1d622f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CSS Reference: Baseline of nested flex containers with stretched textfield inside</title>
+    <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
+    <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+    <meta charset="utf-8">
+    <style>
+      .ib {
+        display: inline-block;
+      }
+      .innerFlex {
+        display: flex;
+        height: 200px;
+      }
+    </style>
+  </head>
+  <body>
+    abc
+    <div class="ib">
+      <div class="innerFlex">
+        <input value="def">
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001.html b/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001.html
new file mode 100644
index 0000000000000000000000000000000000000000..57999e57ced9416dfbb12dae5dc5ae4e56ea3cfb
--- /dev/null
+++ b/testing/web-platform/tests/css/css-flexbox/flexbox-baseline-nested-001.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>CSS Test: Baseline of nested flex containers with stretched textfield inside</title>
+    <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
+    <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+    <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1672640">
+    <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-baselines">
+    <link rel="match" href="flexbox-baseline-nested-001-ref.html">
+
+    <style>
+      .ib {
+        display: inline-block;
+      }
+      .outerFlex {
+        display: flex;
+      }
+      .innerFlex {
+        display: flex;
+        height: 200px;
+      }
+    </style>
+  </head>
+  <body>
+    abc
+    <div class="ib">
+      <div class="outerFlex">
+        <div class="innerFlex">
+          <input value="def">
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001-ref.html b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001-ref.html
new file mode 100644
index 0000000000000000000000000000000000000000..151843a72c00616dfb7ad723be6b1d3435cde65b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow Reference: Test the text in an input is not clipped and reachable</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="stylesheet" href="/fonts/ahem.css">
+
+<style>
+input {
+  box-sizing: border-box;
+  width: 160px;
+  padding-inline: 40px 60px;
+  background: yellow;
+  font: 20px/1 Ahem;
+  border: 0;
+}
+</style>
+
+<input value="XpX">
diff --git a/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001.html b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001.html
new file mode 100644
index 0000000000000000000000000000000000000000..1b58803079f8b60b68eb1c57a0c522962e0a8019
--- /dev/null
+++ b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-001.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow Test: Test the text in an input is not clipped and reachable</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1715291">
+<link rel="match" href="scrollable-overflow-input-001-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+
+<style>
+input {
+  box-sizing: border-box;
+  width: 160px;
+  padding-inline: 20px 60px;
+  background: yellow;
+  font: 20px/1 Ahem;
+  border: 0;
+}
+</style>
+
+<!-- The total width of the text (120px) must be less than the <input>'s
+     width (160px) to reproduce this bug.  -->
+<input id="input" value="X  XpX">
+
+<script>
+document.getElementById('input').scrollLeft = 1000;
+</script>
diff --git a/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002-ref.html b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002-ref.html
new file mode 100644
index 0000000000000000000000000000000000000000..782ffab9da1c1cb55b4488e7fc8f913dd18857f3
--- /dev/null
+++ b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow Reference: Test the text in an input is not clipped and reachable</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="stylesheet" href="/fonts/ahem.css">
+
+<style>
+input {
+  box-sizing: border-box;
+  width: 160px;
+  padding-inline: 40px 60px;
+  background: yellow;
+  font: 20px/1 Ahem;
+  border: 0;
+  direction: rtl;
+}
+</style>
+
+<input value="XpX">
diff --git a/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002.html b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002.html
new file mode 100644
index 0000000000000000000000000000000000000000..3efebf0b90da7eec05fa4df14b4ac6c78e774773
--- /dev/null
+++ b/testing/web-platform/tests/css/css-overflow/scrollable-overflow-input-002.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow Test: Test the text in an input is not clipped and reachable</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1715291">
+<link rel="match" href="scrollable-overflow-input-002-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+
+<style>
+input {
+  box-sizing: border-box;
+  width: 160px;
+  padding-inline: 20px 60px;
+  background: yellow;
+  font: 20px/1 Ahem;
+  border: 0;
+  direction: rtl;
+}
+</style>
+
+<!-- The total width of the text (120px) must be less than the <input>'s
+     width (160px) to reproduce this bug.  -->
+<input id="input2" value="XpX  X">
+
+<script>
+document.getElementById('input2').scrollLeft = -1000;
+</script>
diff --git a/testing/web-platform/tests/css/printing/emoji-print.html b/testing/web-platform/tests/css/printing/emoji-print.html
new file mode 100644
index 0000000000000000000000000000000000000000..689c337acba6f84d088b3e8ed5cffe9c3ef6dd5c
--- /dev/null
+++ b/testing/web-platform/tests/css/printing/emoji-print.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>test that emoji are not blank in print output</title>
+  <meta name="assert" content="emoji characters should be visible when printed">
+  <link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1723787">
+  <link rel="mismatch" href="/css/reference/blank.html">
+</head>
+<body>
+  <p>
+    <span>&#x1f600;&#x1f601;&#x1f602;&#x1f603;</span>
+  </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/editing/other/editing-div-outside-body.html b/testing/web-platform/tests/editing/other/editing-div-outside-body.html
new file mode 100644
index 0000000000000000000000000000000000000000..03064eb612ac2543cd244de73f0f819c4f2b8fef
--- /dev/null
+++ b/testing/web-platform/tests/editing/other/editing-div-outside-body.html
@@ -0,0 +1,163 @@
+<!doctype html>
+<html>
+<meta charset=utf-8>
+<meta name="variant" content="?designMode">
+<meta name="variant" content="?body">
+<meta name="variant" content="?html">
+<meta name="variant" content="?div-in-body">
+<meta name="variant" content="?nothing">
+<title>Test editing outside of body element</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="../include/editor-test-utils.js"></script>
+<script>
+"use strict";
+
+// This test creates an editable <div> element, append it to the <html>,
+// i.e., after the <body>, and do something in it.
+
+const tests = [
+  {
+    command: "insertText",
+    arg: "abc",
+    initial: "<div>[]<br></div>",
+    expected: ["<div>abc</div>", "<div>abc<br></div>"],
+  },
+  {
+    command: "delete",
+    initial: "<div>abc[]</div>",
+    expected: ["<div>ab</div>", "<div>ab<br></div>"],
+  },
+  {
+    command: "forwardDelete",
+    initial: "<div>[]abc</div>",
+    expected: ["<div>bc</div>", "<div>bc<br></div>"],
+  },
+  {
+    command: "insertParagraph",
+    initial: "<div>ab[]c</div>",
+    expected: [
+      "<div>ab</div><div>c</div>",
+      "<div>ab<br></div><div>c</div>",
+      "<div>ab</div><div>c<br></div>",
+      "<div>ab<br></div><div>c<br></div>",
+    ],
+  },
+  {
+    command: "insertLineBreak",
+    initial: "<div>ab[]c</div>",
+    expected: ["<div>ab<br>c</div>", "<div>ab<br>c<br></div>"],
+  },
+  {
+    command: "bold",
+    initial: "<div>a[b]c</div>",
+    expected: ["<div>a<b>b</b>c</div>", "<div>a<b>b</b>c<br></div>"],
+  },
+  {
+    command: "italic",
+    initial: "<div>a[b]c</div>",
+    expected: ["<div>a<i>b</i>c</div>", "<div>a<i>b</i>c<br></div>"],
+  },
+  {
+    command: "createLink",
+    arg: "another.html",
+    initial: "<div>a[b]c</div>",
+    expected: [
+      "<div>a<a href=\"another.html\">b</a>c</div>",
+      "<div>a<a href=\"another.html\">b</a>c<br></div>",
+    ],
+  },
+  {
+    command: "unlink",
+    initial: "<div>a[<a href=\"another.html\">b</a>]c</div>",
+    expected: ["<div>abc</div>", "<div>abc<br></div>"],
+  },
+  {
+    command: "insertHTML",
+    arg: "<hr>",
+    initial: "<div>a[b]c</div>",
+    expected: [
+      "<div>a<hr>c</div>",
+      "<div>a<br><hr>c</div>",
+      "<div>a<hr>c<br></div>",
+      "<div>a<br><hr>c<br></div>",
+    ],
+  },
+  // TODO: Add more commands.
+];
+
+let editingHost = () => {
+  switch (document.location.search) {
+    case "?designMode":
+      document.designMode = "on";
+      return document.documentElement;
+    case "?body":
+      document.body.setAttribute("contenteditable", "true");
+      return document.body;
+    case "?html":
+      document.documentElement.setAttribute("contenteditable", "true");
+      return document.documentElement;
+    case "?div-in-body":
+      return document.querySelector("div[contenteditable]");
+    case "?nothing":
+      return null;
+  }
+};
+
+let div;
+
+promise_test(async () => {
+  await new Promise(resolve => {
+    addEventListener(
+      "load",
+      () => {
+        assert_true(true, "load event is fired");
+        resolve();
+      },
+      { once: true }
+    );
+  });
+
+  div = document.createElement("div");
+  if (editingHost != document.documentElement) {
+    div.setAttribute("contenteditable", "true");
+    editingHost = div;
+  }
+  document.documentElement.appendChild(div);
+  assert_equals(document.documentElement.lastChild, div,
+    "The test target should be last child of the <html>");
+}, "Waiting for load event");
+
+function addPromiseTest(testName, testFunc) {
+  promise_test(async () => {
+    editingHost.focus();
+    await testFunc(new EditorTestUtils(div));
+  }, testName);
+}
+
+for (const test of tests) {
+  addPromiseTest(
+    `Test for execCommand("${test.command}", false, ${
+      typeof test.arg == "string" ? `"${test.arg}"` : test.arg
+    }) in "${test.initial}"`,
+    async (utils) => {
+      utils.setupEditingHost(test.initial);
+      await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)));
+      document.execCommand(test.command, false, test.arg);
+      if (Array.isArray(test.expected)) {
+        assert_in_array(div.innerHTML, test.expected,
+          "The editing result is different from expected one");
+      } else {
+        assert_equals(div.innerHTML, test.expected,
+          "The editing result is different from expected one");
+      }
+    }
+  );
+}
+</script>
+</head>
+<body></body>
+</html>
diff --git a/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-middle-mouse-button.tentative.html b/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-middle-mouse-button.tentative.html
index 54c3c848012ad9701558ef0f866ebe703c8f8581..a8287d900283ce5021ede7bfa06a73d069fc7f0e 100644
--- a/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-middle-mouse-button.tentative.html
+++ b/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-middle-mouse-button.tentative.html
@@ -20,7 +20,7 @@ span {
 "use strict";
 
 var editor = document.querySelector("div[contenteditable]");
-var span1, span2;
+var span1, span2, link;
 var selection = getSelection();
 
 function preventDefault(event) {
@@ -30,9 +30,10 @@ editor.addEventListener("paste", preventDefault, {capture: true});
 
 function resetEditor() {
   editor.innerHTML =
-    '<span id="span1">first span.</span><br><span id="span2">second span.</span>';
+    '<span id="span1">first span.</span><br><span id="span2">second span.</span><br><a id="link" href="#top">link.</a>';
   span1 = document.getElementById("span1");
   span2 = document.getElementById("span2");
+  link = document.getElementById("link");
 }
 
 promise_test(async () => {
@@ -136,6 +137,26 @@ promise_test(async () => {
     "Selection#focusNode should be in the second <span> element which was clicked by middle button");
 }, "Shift + Middle click should extend the selection");
 
+promise_test(async () => {
+  resetEditor();
+  editor.focus();
+  selection.collapse(span1.firstChild, 2);
+  let actions = new test_driver.Actions();
+  await actions
+    .pointerMove(0, 0)
+    .pointerMove(0, 0, {origin: link})
+    .keyDown("\uE008")
+    .pointerDown({button: actions.ButtonType.MIDDLE})
+    .pointerUp({button: actions.ButtonType.MIDDLE})
+    .keyUp("\uE008")
+    .send();
+
+  assert_equals(selection.focusNode, link.firstChild,
+    "Selection#focusNode should be in the <a href> element which was clicked by middle button");
+  assert_true(selection.isCollapsed,
+    "Selection#isCollapsed should be true");
+}, "Shift + Middle click in a link shouldn't extend the selection");
+
 promise_test(async () => {
   resetEditor();
   editor.focus();
diff --git a/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html b/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html
index 4955689fe8158603e2f93903d60919097fc0b474..57586a60602836e94da2c50f6bf7257d8c9e4192 100644
--- a/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html
+++ b/testing/web-platform/tests/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html
@@ -20,7 +20,7 @@ span {
 "use strict";
 
 var editor = document.querySelector("div[contenteditable]");
-var span1, span2;
+var span1, span2, link;
 var selection = getSelection();
 
 function preventDefault(event) {
@@ -30,9 +30,10 @@ editor.addEventListener("paste", preventDefault, {capture: true});
 
 function resetEditor() {
   editor.innerHTML =
-    '<span id="span1">first span.</span><br><span id="span2">second span.</span>';
+    '<span id="span1">first span.</span><br><span id="span2">second span.</span><br><a id="link" href="#top">link.</a>';
   span1 = document.getElementById("span1");
   span2 = document.getElementById("span2");
+  link = document.getElementById("link");
 }
 
 promise_test(async () => {
@@ -136,6 +137,26 @@ promise_test(async () => {
     "Selection#focusNode should be in the second <span> element which was clicked by primary button");
 }, "Shift + Primary click should extend the selection");
 
+promise_test(async () => {
+  resetEditor();
+  editor.focus();
+  selection.collapse(span1.firstChild, 2);
+  let actions = new test_driver.Actions();
+  await actions
+    .pointerMove(0, 0)
+    .pointerMove(0, 0, {origin: link})
+    .keyDown("\uE008")
+    .pointerDown({button: actions.ButtonType.MIDDLE})
+    .pointerUp({button: actions.ButtonType.MIDDLE})
+    .keyUp("\uE008")
+    .send();
+
+  assert_equals(selection.focusNode, link.firstChild,
+    "Selection#focusNode should be in the <a href> element which was clicked by primary button");
+  assert_true(selection.isCollapsed,
+    "Selection#isCollapsed should be true");
+}, "Shift + Primary click in a link shouldn't extend the selection");
+
 promise_test(async () => {
   resetEditor();
   editor.focus();
diff --git a/third_party/rust/crossbeam-deque/.cargo-checksum.json b/third_party/rust/crossbeam-deque/.cargo-checksum.json
index 202fdfe8de291b1e7b0a8797f18326f445257413..1e86bda114f44ca7f315e1614f85f267b2463720 100644
--- a/third_party/rust/crossbeam-deque/.cargo-checksum.json
+++ b/third_party/rust/crossbeam-deque/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"f917b6e83aed21fcdb7615602b74377374144b6e075d1d96e9dac8c266795cab","Cargo.toml":"d160e0a9f564fa20e503f81a837057b09bdc8632d8b71c6a3d4a0a67c0bcaa21","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"c1e2f0e311bab5c2b82a9346e7b2fdaf17050a66913aad57fac40665fb65bb7b","src/lib.rs":"78b31a8d769607304d5d6250f8b06f257160b7c8b43ced5ef40f4ec3a51e076b","tests/fifo.rs":"7546ce471330a9d928a54f6ca41ddd36e9f4999852fdc4719bf9b24122a1c15f","tests/injector.rs":"c9107b437f790dbfab333f94d7211df29bb9a868d2d86304ad9fd7fa8db57d0a","tests/lifo.rs":"264967bc868870211e12a826f448a6d9e19ab5f7cc0e0bde86496cf76bb96e56","tests/steal.rs":"519549c18429db563c5238d7147e733901336943ca099669af2b553933b82694"},"package":"9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"f9bf793a24b0cf1e3fe1dc82dd661663510328a36ed69a76a2d63fc93cdd388d","Cargo.toml":"8c05fb784cab5148bf452552393e1897fb5f70a621b11eb0b155526bdfbc6376","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"c1e2f0e311bab5c2b82a9346e7b2fdaf17050a66913aad57fac40665fb65bb7b","src/lib.rs":"bc513a515feceb6edec791381dfdda40e931f390141003cca95b1aea3b6291f6","tests/fifo.rs":"7546ce471330a9d928a54f6ca41ddd36e9f4999852fdc4719bf9b24122a1c15f","tests/injector.rs":"c9107b437f790dbfab333f94d7211df29bb9a868d2d86304ad9fd7fa8db57d0a","tests/lifo.rs":"264967bc868870211e12a826f448a6d9e19ab5f7cc0e0bde86496cf76bb96e56","tests/steal.rs":"519549c18429db563c5238d7147e733901336943ca099669af2b553933b82694"},"package":"c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"}
\ No newline at end of file
diff --git a/third_party/rust/crossbeam-deque/CHANGELOG.md b/third_party/rust/crossbeam-deque/CHANGELOG.md
index 54e9ae41fcbd083d92a0ddf9ab3777b11e93c8bf..730218b8931d0164575be1a7a92ebabfd9a78e7c 100644
--- a/third_party/rust/crossbeam-deque/CHANGELOG.md
+++ b/third_party/rust/crossbeam-deque/CHANGELOG.md
@@ -1,3 +1,7 @@
+# Version 0.7.4
+
+- Fix deque steal race condition.
+
 # Version 0.7.3
 
 - Stop stealing from the same deque. (#448)
diff --git a/third_party/rust/crossbeam-deque/Cargo.toml b/third_party/rust/crossbeam-deque/Cargo.toml
index 0cf94c2df5732f6fa9a4427a72e694127b8ddca4..9e00b37516b15b050f01977ed22c38f4a560faad 100644
--- a/third_party/rust/crossbeam-deque/Cargo.toml
+++ b/third_party/rust/crossbeam-deque/Cargo.toml
@@ -3,16 +3,15 @@
 # When uploading crates to the registry Cargo will automatically
 # "normalize" Cargo.toml files for maximal compatibility
 # with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies
+# to registry (e.g., crates.io) dependencies.
 #
-# If you believe there's an error in this file please file an
-# issue against the rust-lang/cargo repository. If you're
-# editing this file be aware that the upstream Cargo.toml
-# will likely look very different (and much more reasonable)
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
 
 [package]
 name = "crossbeam-deque"
-version = "0.7.3"
+version = "0.7.4"
 authors = ["The Crossbeam Project Developers"]
 description = "Concurrent work-stealing deque"
 homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque"
diff --git a/third_party/rust/crossbeam-deque/src/lib.rs b/third_party/rust/crossbeam-deque/src/lib.rs
index 59004174d83b6c52a9ad5fba2d4fefc4c2301b07..a7e2efd370209872977208329a9f16de052ccb95 100644
--- a/third_party/rust/crossbeam-deque/src/lib.rs
+++ b/third_party/rust/crossbeam-deque/src/lib.rs
@@ -710,11 +710,13 @@ impl<T> Stealer<T> {
         let task = unsafe { buffer.deref().read(f) };
 
         // Try incrementing the front index to steal the task.
-        if self
-            .inner
-            .front
-            .compare_exchange(f, f.wrapping_add(1), Ordering::SeqCst, Ordering::Relaxed)
-            .is_err()
+        // If the buffer has been swapped or the increment fails, we retry.
+        if self.inner.buffer.load(Ordering::Acquire, guard) != buffer
+            || self
+                .inner
+                .front
+                .compare_exchange(f, f.wrapping_add(1), Ordering::SeqCst, Ordering::Relaxed)
+                .is_err()
         {
             // We didn't steal this task, forget it.
             mem::forget(task);
@@ -816,16 +818,18 @@ impl<T> Stealer<T> {
                 }
 
                 // Try incrementing the front index to steal the batch.
-                if self
-                    .inner
-                    .front
-                    .compare_exchange(
-                        f,
-                        f.wrapping_add(batch_size),
-                        Ordering::SeqCst,
-                        Ordering::Relaxed,
-                    )
-                    .is_err()
+                // If the buffer has been swapped or the increment fails, we retry.
+                if self.inner.buffer.load(Ordering::Acquire, guard) != buffer
+                    || self
+                        .inner
+                        .front
+                        .compare_exchange(
+                            f,
+                            f.wrapping_add(batch_size),
+                            Ordering::SeqCst,
+                            Ordering::Relaxed,
+                        )
+                        .is_err()
                 {
                     return Steal::Retry;
                 }
@@ -856,11 +860,18 @@ impl<T> Stealer<T> {
                     let task = unsafe { buffer.deref().read(f) };
 
                     // Try incrementing the front index to steal the task.
-                    if self
-                        .inner
-                        .front
-                        .compare_exchange(f, f.wrapping_add(1), Ordering::SeqCst, Ordering::Relaxed)
-                        .is_err()
+                    // If the buffer has been swapped or the increment fails, we retry.
+                    if self.inner.buffer.load(Ordering::Acquire, guard) != buffer
+                        || self
+                            .inner
+                            .front
+                            .compare_exchange(
+                                f,
+                                f.wrapping_add(1),
+                                Ordering::SeqCst,
+                                Ordering::Relaxed,
+                            )
+                            .is_err()
                     {
                         // We didn't steal this task, forget it and break from the loop.
                         mem::forget(task);
@@ -1002,17 +1013,19 @@ impl<T> Stealer<T> {
                     }
                 }
 
-                // Try incrementing the front index to steal the batch.
-                if self
-                    .inner
-                    .front
-                    .compare_exchange(
-                        f,
-                        f.wrapping_add(batch_size + 1),
-                        Ordering::SeqCst,
-                        Ordering::Relaxed,
-                    )
-                    .is_err()
+                // Try incrementing the front index to steal the task.
+                // If the buffer has been swapped or the increment fails, we retry.
+                if self.inner.buffer.load(Ordering::Acquire, guard) != buffer
+                    || self
+                        .inner
+                        .front
+                        .compare_exchange(
+                            f,
+                            f.wrapping_add(batch_size + 1),
+                            Ordering::SeqCst,
+                            Ordering::Relaxed,
+                        )
+                        .is_err()
                 {
                     // We didn't steal this task, forget it.
                     mem::forget(task);
@@ -1058,11 +1071,18 @@ impl<T> Stealer<T> {
                     let tmp = unsafe { buffer.deref().read(f) };
 
                     // Try incrementing the front index to steal the task.
-                    if self
-                        .inner
-                        .front
-                        .compare_exchange(f, f.wrapping_add(1), Ordering::SeqCst, Ordering::Relaxed)
-                        .is_err()
+                    // If the buffer has been swapped or the increment fails, we retry.
+                    if self.inner.buffer.load(Ordering::Acquire, guard) != buffer
+                        || self
+                            .inner
+                            .front
+                            .compare_exchange(
+                                f,
+                                f.wrapping_add(1),
+                                Ordering::SeqCst,
+                                Ordering::Relaxed,
+                            )
+                            .is_err()
                     {
                         // We didn't steal this task, forget it and break from the loop.
                         mem::forget(tmp);
@@ -1436,9 +1456,9 @@ impl<T> Injector<T> {
 
             // Destroy the block if we've reached the end, or if another thread wanted to destroy
             // but couldn't because we were busy reading from the slot.
-            if offset + 1 == BLOCK_CAP {
-                Block::destroy(block, offset);
-            } else if slot.state.fetch_or(READ, Ordering::AcqRel) & DESTROY != 0 {
+            if (offset + 1 == BLOCK_CAP)
+                || (slot.state.fetch_or(READ, Ordering::AcqRel) & DESTROY != 0)
+            {
                 Block::destroy(block, offset);
             }
 
diff --git a/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties
+++ b/thunderbird-l10n/af/chrome/af/locale/af/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-print.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/calendar-widgets.ftl b/thunderbird-l10n/af/localization/af/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/category-dialog.ftl b/thunderbird-l10n/af/localization/af/calendar/category-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/category-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/calendar/preferences.ftl b/thunderbird-l10n/af/localization/af/calendar/preferences.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/calendar/preferences.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutProfilesExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.ftl b/thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/aboutSupportMail.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/accountCentral.ftl b/thunderbird-l10n/af/localization/af/messenger/accountCentral.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountCentral.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/accountManager.ftl b/thunderbird-l10n/af/localization/af/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/chat.ftl b/thunderbird-l10n/af/localization/af/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/exportDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/importDialog.ftl b/thunderbird-l10n/af/localization/af/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/menubar.ftl b/thunderbird-l10n/af/localization/af/messenger/menubar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/menubar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/messenger.ftl b/thunderbird-l10n/af/localization/af/messenger/messenger.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/messenger.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/messengercompose/messengercompose.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/newInstall.ftl b/thunderbird-l10n/af/localization/af/messenger/newInstall.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/newInstall.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/newInstallPage.ftl b/thunderbird-l10n/af/localization/af/messenger/newInstallPage.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/newInstallPage.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/backupKeyPassword.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/changeExpiryDlg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/composeKeyStatus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/keyWizard.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/msgReadStatus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/oneRecipientStatus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp-frontend.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/openpgp/openpgp.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/add-finger.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/add-finger.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/am-im-otr.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/auth.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/auth.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/auth.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/chat.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/finger-sync.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/finger.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/finger.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/finger.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/otr.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/otr.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/otr.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/otr/otrUI.ftl b/thunderbird-l10n/af/localization/af/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/otr/otrUI.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.ftl b/thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/policies/aboutPolicies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/policies/policies-descriptions.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/am-im.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/am-im.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/dock-options.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/languages.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/preferences/passwordManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/messenger/troubleshootMode.ftl b/thunderbird-l10n/af/localization/af/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/af/localization/af/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/af/manifest.json b/thunderbird-l10n/af/manifest.json
index 14ad8736d6ffb8cbf5bb3cdf0a079bea7b9d350b..4ab8ba4918c1cae5a623d6bbe4805c19ad128585 100644
--- a/thunderbird-l10n/af/manifest.json
+++ b/thunderbird-l10n/af/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Afrikaans Language Pack",
   "description": "Language pack for Thunderbird for af",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "af": {
-      "version": "20210723114106",
+      "version": "20210831120018",
       "chrome_resources": {
         "alerts": "chrome/af/locale/af/alerts/",
         "autoconfig": "chrome/af/locale/af/autoconfig/",
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-print.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/ar/localization/ar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/ar/localization/ar/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ar/localization/ar/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/accountManager.ftl b/thunderbird-l10n/ar/localization/ar/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/ar/localization/ar/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/chat.ftl b/thunderbird-l10n/ar/localization/ar/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ar/localization/ar/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/exportDialog.ftl b/thunderbird-l10n/ar/localization/ar/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/importDialog.ftl b/thunderbird-l10n/ar/localization/ar/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ar/localization/ar/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/messenger/troubleshootMode.ftl b/thunderbird-l10n/ar/localization/ar/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/localization/ar/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ar/localization/ar/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ar/localization/ar/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ar/manifest.json b/thunderbird-l10n/ar/manifest.json
index 79ac6bfe35919e60fbb5b0b689e29a1acff45588..c83d4178be8295c52d6471d0d78f7ffedc8f022a 100644
--- a/thunderbird-l10n/ar/manifest.json
+++ b/thunderbird-l10n/ar/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "العربية Language Pack",
   "description": "Language pack for Thunderbird for ar",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ar": {
-      "version": "20210816180609",
+      "version": "20210831120057",
       "chrome_resources": {
         "alerts": "chrome/ar/locale/ar/alerts/",
         "autoconfig": "chrome/ar/locale/ar/autoconfig/",
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/global/videocontrols.dtd b/thunderbird-l10n/ast/chrome/ast/locale/ast/global/videocontrols.dtd
index 6cd8e097610a2aff6577e178d7324c38efce7ea3..4427caec6e956aafe40356588508dc5bf9cd3c33 100644
--- a/thunderbird-l10n/ast/chrome/ast/locale/ast/global/videocontrols.dtd
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/global/videocontrols.dtd
@@ -29,7 +29,7 @@ hovering over the video. -->
 <!-- LOCALIZATION NOTE (pictureInPictureExplainer): This string is used as part of
 a variation of the Picture-in-Picture video toggle button. When using this variation,
 this string appears below the toggle when the mouse hovers the toggle. -->
-<!ENTITY pictureInPictureExplainer "Reproduz vídeos en primer planu mentanto faes otres coses &brandShortName;">
+<!ENTITY pictureInPictureExplainer "Reproduz vídeos en primer planu mentanto faes otres coses en &brandShortName;">
 
 <!ENTITY error.aborted "Paró la carga del videu.">
 <!ENTITY error.network "Albortóse la reproducción de videu pola mor d'un fallu de la rede.">
diff --git a/thunderbird-l10n/ast/chrome/ast/locale/ast/lightning/lightning.properties b/thunderbird-l10n/ast/chrome/ast/locale/ast/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/thunderbird-l10n/ast/chrome/ast/locale/ast/lightning/lightning.properties
+++ b/thunderbird-l10n/ast/chrome/ast/locale/ast/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-context-menus.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-print.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/calendar-widgets.ftl b/thunderbird-l10n/ast/localization/ast/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/category-dialog.ftl b/thunderbird-l10n/ast/localization/ast/calendar/category-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/category-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/calendar/preferences.ftl b/thunderbird-l10n/ast/localization/ast/calendar/preferences.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/calendar/preferences.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/ast/localization/ast/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ast/localization/ast/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/accountManager.ftl b/thunderbird-l10n/ast/localization/ast/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/ast/localization/ast/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/chat.ftl b/thunderbird-l10n/ast/localization/ast/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ast/localization/ast/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/exportDialog.ftl b/thunderbird-l10n/ast/localization/ast/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/importDialog.ftl b/thunderbird-l10n/ast/localization/ast/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ast/localization/ast/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/messenger/troubleshootMode.ftl b/thunderbird-l10n/ast/localization/ast/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/security/certificates/certManager.ftl b/thunderbird-l10n/ast/localization/ast/security/certificates/certManager.ftl
index 49d1aa376ad3495ce3b93df3a574cd31aa6efa61..3a6b66bfc3d8e11f52e1b6cb59610057967124fc 100644
--- a/thunderbird-l10n/ast/localization/ast/security/certificates/certManager.ftl
+++ b/thunderbird-l10n/ast/localization/ast/security/certificates/certManager.ftl
@@ -4,143 +4,98 @@
 
 certmgr-title =
     .title = Xestor de certificaos
-
 certmgr-tab-mine =
     .label = Certificaos de to
-
 certmgr-tab-remembered =
     .label = Decisiones d'autenticación
-
 certmgr-tab-people =
     .label = Persones
-
 certmgr-tab-servers =
     .label = Sirvidores
-
 certmgr-tab-ca =
     .label = Entidaes
-
 certmgr-mine = Tienes certificaos d'estes organizaciones que t'identifiquen
 certmgr-remembered = Estos certificaos úsense identificate nos sitios web
 certmgr-people = Tienes certificaos nel ficheru qu'identifiquen a estes persones
 certmgr-servers = Tienes certificaos nel ficheru qu'identifiquen a estos sirvidores
 certmgr-ca = Tienes certificaos nel ficheru qu'identifiquen a estes entidaes certificadores
-
 certmgr-detail-general-tab-title =
     .label = Xeneral
     .accesskey = X
-
 certmgr-detail-pretty-print-tab-title =
     .label = Detalles
     .accesskey = D
-
 certmgr-pending-label =
     .value = Ta verificándose'l certificáu…
-
 certmgr-period-of-validity = Periodu de validez
-
 certmgr-fingerprints = Buelgues
-
 certmgr-cert-detail-commonname = Nome habitual (CN)
-
 certmgr-cert-detail-org = Organización (O)
-
 certmgr-cert-detail-orgunit = Unidá organizativa (OU)
-
 certmgr-cert-detail-serial-number = Númberu de serie
-
 certmgr-cert-detail-sha-256-fingerprint = Buelga SHA-256
-
 certmgr-cert-detail-sha-1-fingerprint = Buelga SHA1
-
 certmgr-edit-ca-cert =
     .title = Edición de los axustes d'enfotu d'una CA de certificaos
     .style = width: 48em;
-
 certmgr-edit-cert-edit-trust = Edita los axustes d'enfotu:
-
 certmgr-edit-cert-trust-ssl =
     .label = Esti certificáu pue identificar sitios web.
-
 certmgr-edit-cert-trust-email =
     .label = Esti certificáu pue identificar usuarios de corréu.
-
 certmgr-cert-host =
     .label = Agospiador
-
 certmgr-cert-name =
     .label = Nome del certificáu
-
 certmgr-cert-server =
     .label = Sirvidor
-
 certmgr-override-lifetime =
     .label = Tiempu de vida
-
 certmgr-token-name =
     .label = Preséu de seguranza
-
 certmgr-begins-on = Data d'aniciu
-
 certmgr-begins-label =
     .label = Data d'aniciu
-
 certmgr-expires-on = Data de caducidá
-
 certmgr-expires-label =
     .label = Data de caducidá
-
 certmgr-email =
     .label = Direición de corréu
-
 certmgr-serial =
     .label = Númberu de serie
-
 certmgr-view =
     .label = Ver…
     .accesskey = V
-
 certmgr-edit =
     .label = Editar l'enfotu…
     .accesskey = E
-
 certmgr-export =
     .label = Esportar…
     .accesskey = s
-
 certmgr-delete =
     .label = Desaniciar…
     .accesskey = e
-
 certmgr-delete-builtin =
     .label = Desaniciar o quitar l'enfotu…
     .accesskey = n
-
 certmgr-restore =
     .label = Importar…
     .accesskey = m
-
 certmgr-add-exception =
     .label = Amestar una esceición…
     .accesskey = e
-
 exception-mgr-supplemental-warning = Los bancos, les tiendes y otros sitios públicos llexítimos nun van pidite facer esto.
-
 exception-mgr-cert-location-url =
     .value = Allugamientu:
-
 exception-mgr-cert-location-download =
     .label = Consiguir el certificáu
     .accesskey = C
-
 exception-mgr-cert-status-view-cert =
     .label = Ver…
     .accesskey = V
-
 exception-mgr-permanent =
     .label = Atroxar esta esceición pa siempres
     .accesskey = s
-
 pkcs12-dup-data = El certificáu y la clave privada yá esisten nel preséu de seguranza.
 
 ## PKCS#12 file dialogs
@@ -160,12 +115,10 @@ edit-trust-ca = El certificáu «{ $certName }» representa a una entidá certif
 
 delete-user-cert-confirm = ¿De xuru quies desaniciar estos certificaos?
 
-
 ## Cert Viewer
 
 not-present =
     .value = <Nun ye parte del certificáu>
-
 # Cert verification
 cert-not-verified-cert-revoked = Nun pudo verificase esti certificáu porque se revocó.
 cert-not-verified-cert-expired = Nun pudo verificase esti certificáu porque caducó.
@@ -173,9 +126,10 @@ cert-not-verified-cert-not-trusted = Nun pudo verificase esti certificáu porque
 cert-not-verified-issuer-not-trusted = Nun pudo verificase esti certificáu porque l'emisor nun ye d'enfotu.
 cert-not-verified-issuer-unknown = Nun pudo verificase esti certificáu porque l'emisor ye desconocíu.
 cert-not-verified_algorithm-disabled = Nun pudo verificase esti certificáu porque se robló con un algoritmu de robla que se desactivó por nun ser seguru.
-
 # Used when no cert is stored for an override
 no-cert-stored-for-override = (Nun s'atroxó)
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (Nun ta disponible)
 
 ## Used to show whether an override is temporary or permanent
 
diff --git a/thunderbird-l10n/ast/localization/ast/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ast/localization/ast/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ast/localization/ast/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ast/localization/ast/toolkit/global/textActions.ftl b/thunderbird-l10n/ast/localization/ast/toolkit/global/textActions.ftl
index a33863161757857aa5dceed4dff028901bbe3a8a..5cf02f71ddc9fb16a858b0dd9f8813606937035e 100644
--- a/thunderbird-l10n/ast/localization/ast/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/ast/localization/ast/toolkit/global/textActions.ftl
@@ -5,48 +5,44 @@
 text-action-undo =
     .label = Desfacer
     .accesskey = D
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Refacer
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cortar
     .accesskey = c
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copiar
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Apegar
     .accesskey = A
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Desaniciar
     .accesskey = s
-
 text-action-select-all =
     .label = Esbillar too
     .accesskey = t
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Nun hai suxerencies ortográfiques
+text-action-spell-check-toggle =
+    .label = Correutor ortográficu
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Amestar diccionarios…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Llingües
+    .accesskey = L
diff --git a/thunderbird-l10n/ast/manifest.json b/thunderbird-l10n/ast/manifest.json
index 626bd577cf355c748a04e0d3af0d679065a49040..9e4e44540347460dd5a388724fe317e1b72372c5 100644
--- a/thunderbird-l10n/ast/manifest.json
+++ b/thunderbird-l10n/ast/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Asturianu Language Pack",
   "description": "Language pack for Thunderbird for ast",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ast": {
-      "version": "20210815131700",
+      "version": "20210831120124",
       "chrome_resources": {
         "alerts": "chrome/ast/locale/ast/alerts/",
         "autoconfig": "chrome/ast/locale/ast/autoconfig/",
diff --git a/thunderbird-l10n/be/chrome/be/locale/be/global/layout/htmlparser.properties b/thunderbird-l10n/be/chrome/be/locale/be/global/layout/htmlparser.properties
index 68c5125a101e172a5130161d1a1d67d3fd2c3033..461abb1dc0df42788b37c9b303ea7686264a1063 100644
--- a/thunderbird-l10n/be/chrome/be/locale/be/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/be/chrome/be/locale/be/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Знодзены “<!--” унутры каментарыя. Імаверная прычына: укладзены каментарый (не дазваляецца).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=Знойдзены канчатковы тэг “%1$S”, але маюцца незакрытыя элементы.
+errListUnclosedStartTags=Незакрыты элемент або элементы.
diff --git a/thunderbird-l10n/be/chrome/be/locale/be/global/layout_errors.properties b/thunderbird-l10n/be/chrome/be/locale/be/global/layout_errors.properties
index dc866bfaec8563f5c216b2c6fb839ec171bd7418..974be81b39c1b0c83c5807c1e85af47ce8b2535e 100644
--- a/thunderbird-l10n/be/chrome/be/locale/be/global/layout_errors.properties
+++ b/thunderbird-l10n/be/chrome/be/locale/be/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=У атрыбута “coords” тэга <area sh
 TablePartRelPosWarning=Зараз падтрымліваецца адносная растаноўка купаў радкоў і слупкоў табліц. Гэты сайт павінен быць абноўлены, бо можа залежыць ад асаблівасці, якая не мае ўздзеяння.
 ScrollLinkedEffectFound2=Падобна на тое, што гэты сайт выкарыстоўвае эфект пазіцыянавання звязаны з пракруткай. Гэта можа недастаткова добра працаваць з асінхронным панарамаваннем; гл. https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects для больш падрабязнай інфармацыі, а таксама каб удзельнічаць у абмеркаваннях адпаведных інструментаў і функцый!
 
+ScrollLinkedEffectFound3=Падобна на тое, што гэты сайт выкарыстоўвае эфект пазіцыянавання звязаны з пракруткай. Гэта можа недастаткова добра працаваць з асінхронным панарамаваннем; гл. https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html для больш падрабязнай інфармацыі, а таксама для ўдзелу ў абмеркаванні датычных інструментаў і функцый!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=Анімацыя не можа
 CompositorAnimationWarningTransformIsBlockedByImportantRules=Анімацыя пераўтварэнняў не можа быць запушчана ў кампазітары, паколькі ўласцівасці, звязаныя з трансфармацыяй, перавызначаны правіламі !important
 CompositorAnimationWarningOpacityFrameInactive=Анімацыя не можа быць запушчана ў кампазітары, бо фрэйм не быў пазначаны як актыўны для ‘opacity’ анімацыі
 CompositorAnimationWarningHasRenderingObserver=Анімацыя не можа быць запушчана ў кампазітары, бо элемент мае назіральнікаў рэндэрынгу (-moz-element або SVG clipping/masking)
-
 CompositorAnimationWarningHasCurrentColor=Анімацыі ‘background-color’ не могуць быць запушчаны ў кампазітары з ключавым кадрам ‘current-color’.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/be/chrome/be/locale/be/global/security/security.properties b/thunderbird-l10n/be/chrome/be/locale/be/global/security/security.properties
index c5cf13856252af3e3ab70ccf6f1129ae4c19dac9..c047a17e1bbb415ee7a8c9fc90d18876d8239162 100644
--- a/thunderbird-l10n/be/chrome/be/locale/be/global/security/security.properties
+++ b/thunderbird-l10n/be/chrome/be/locale/be/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=Загаловак HTTP Referrer: Даўжыня п
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=Загаловак HTTP Referrer: Даўжыня origin у загалоўку больш за ліміт “%1$S” байтаў - выдаляем referrer з origin: “%2$S”.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Палітыка перанакіравання: Менш абмежаваныя палітыкі, у тым ліку ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ і ‘unsafe-url’, хутка будуць ігнаравацца для міжсайтавых запытаў: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Палітыка перанакіравання: Ігнараванне менш абмежаванай палітыкі перанакіравання “%1$S” для міжсайтавага запыту: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Знойдзены нядзейсны загаловак X-Frame-Options у час чытання “%2$S”: “%1$S” не ёсць дзейснай дырэктываю.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Абнаўляецца не бяспечны запы
 HTTPSOnlyNoUpgradeException = Не абнаўляецца не бяспечны запыт “%1$S”, паколькі ён вызвалены.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Абнаўленне не бяспечнага запыту “%1$S” не ўдалося. (“%2$S”)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Не ўдалося абнавіць неабаронены запыт “%S”. Вяртаемся на “http”.
 
diff --git a/thunderbird-l10n/be/chrome/be/locale/be/lightning/lightning.properties b/thunderbird-l10n/be/chrome/be/locale/be/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/thunderbird-l10n/be/chrome/be/locale/be/lightning/lightning.properties
+++ b/thunderbird-l10n/be/chrome/be/locale/be/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-context-menus.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-editable-item.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-print.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/calendar-widgets.ftl b/thunderbird-l10n/be/localization/be/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/category-dialog.ftl b/thunderbird-l10n/be/localization/be/calendar/category-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/category-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/calendar/preferences.ftl b/thunderbird-l10n/be/localization/be/calendar/preferences.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/calendar/preferences.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/devtools/client/tooltips.ftl b/thunderbird-l10n/be/localization/be/devtools/client/tooltips.ftl
index 744305cb370f1f65da978f489eafd9c95dd7c76c..3bae012d21073ae3c815a404311d0824e784ae70 100644
--- a/thunderbird-l10n/be/localization/be/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/be/localization/be/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Даведацца больш</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён ні flex-кантэйнер, ні grid-кантэйнер.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён ні flex-кантэйнер, ні grid-кантэйнер, ні шматкалонкавы кантэйнер.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён ні grid, ні flex элемент.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не grid-элемент.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не grid-кантэйнер.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не flex-элемент.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не flex-кантэйнер.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён ні inline, ні table-cell элемент.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі яго ўласцівасць display зададзена <strong>{ $display }</strong>.
-
 inactive-css-not-display-block-on-floated = Значэнне <strong>display</strong> было заменена рухавіком на <strong>block</strong>, таму што элемент <strong>floated</strong>.
-
 inactive-css-property-is-impossible-to-override-in-visited = Немагчыма перавызначыць <strong>{ $property }</strong> з-за абмежавання <strong>:visited</strong>.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не пазіцыянаваны элемент.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі <strong>overflow:hidden</strong> не ўсталяваны.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі яго <strong>outline-style</strong> усталяваны ў <strong>auto</strong> або <strong>none</strong>.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> не ўплывае на ўнутраныя элементы табліцы.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> не ўплывае на ўнутраныя элементы табліцы, акрамя ячэек табліцы.
-
 inactive-css-not-table = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькі ён не з’яўляецца таблiцай.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> не ўплывае на гэты элемент, паколькi ён не пракручваецца.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Паспрабуйце дадаць <strong>display:grid</strong> ці <strong>display:flex</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Паспрабуйце дадаць <strong>display:grid</strong>, <strong>display:flex</strong>, або <strong>columns:2</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Паспрабуйце дадаць <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> або <strong>display:inline-flex</strong>. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Паспрабуйце дадаць <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> цi <strong>display:inline-flex</strong> да бацькоўскага элемента. { learn-more }
 inactive-css-not-grid-item-fix-2 = Паспрабуйце дадаць <strong>display:grid</strong> ці <strong>display:inline-grid</strong> да бацькоўскага элемента. { learn-more }
-
 inactive-css-not-grid-container-fix = Паспрабуйце дадаць <strong>display:grid</strong> ці <strong>display:inline-grid</strong>. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Паспрабуйце дадаць <strong>display:flex</strong> ці <strong>display:inline-flex</strong> да бацькоўскага элемента. { learn-more }
-
 inactive-css-not-flex-container-fix = Паспрабуйце дадаць <strong>display:flex</strong> ці <strong>display:inline-flex</strong>. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Паспрабуйце дадаць <strong>display:inline</strong> ці <strong>display:table-cell</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Паспрабуйце дадаць <strong>display:inline-block</strong> або <strong>display:block</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Паспрабуйце дадаць <strong>display:inline-block</strong>. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Паспрабуйце выдаліць <strong>float</strong> або дадаць <strong>display:block</strong>. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Паспрабуйце ўсталяваць яго ўласцівасць <strong>position</strong> на што-небудзь іншае, ніж <strong>static</strong>. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Паспрабуйце дадаць <strong>overflow:hidden</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Паспрабуйце ўстанавіць для ўласцівасці <strong>display</strong> нешта іншае, ніж <strong>table-cell </strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ці <strong>table-footer-group</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Паспрабуйце ўстанавіць для ўласцівасці <strong>display</strong> нешта іншае, ніж <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ці <strong>table-footer-group</strong>. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Паспрабуйце ўсталяваць яго ўласцівасць <strong>outline-style</strong> у што-небудзь іншае, ніж <strong>auto</strong> цi <strong>none</strong>. { learn-more }
-
 inactive-css-not-table-fix = Паспрабуйце дадаць <strong>display:table</strong> альбо <strong>display:inline-table</strong>. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Паспрабуйце дадаць <strong>overflow:auto</strong>, <strong>overflow:scroll</strong> альбо <strong>overflow:hidden</strong>. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Паспрабуйце 
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> не падтрымліваецца ў наступных браўзерах:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> была эксперыментальнай уласцівасцю, якая цяпер састарэла па стандартах W3C. Не падтрымліваецца ў наступных браўзерах:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> было эксперыментальнай уласцівасцю, якая цяпер састарэла па стандартах W3C.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> састарэла па стандартах W3C. Не падтрымліваецца ў наступных браўзерах:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> састарэла па стандартах W3C.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> – эксперыментальная уласцівасць. Не падтрымліваецца ў наступных браўзерах:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> з’яўляецца эксперыментальнай уласцівасцю.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Даведацца больш</span> пра <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/be/localization/be/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/be/localization/be/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/be/localization/be/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/accountManager.ftl b/thunderbird-l10n/be/localization/be/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/be/localization/be/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/be/localization/be/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/be/localization/be/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/be/localization/be/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/chat.ftl b/thunderbird-l10n/be/localization/be/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/be/localization/be/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/exportDialog.ftl b/thunderbird-l10n/be/localization/be/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/importDialog.ftl b/thunderbird-l10n/be/localization/be/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/preferences/am-copies.ftl b/thunderbird-l10n/be/localization/be/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/messenger/troubleshootMode.ftl b/thunderbird-l10n/be/localization/be/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/be/localization/be/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/be/localization/be/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..3df03ccbd42bdeb4676980741e6f210339060bd9
--- /dev/null
+++ b/thunderbird-l10n/be/localization/be/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,16 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-yes-button = Усталяваць
+prompt-to-install-no-button = Не ўсталёўваць
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Не ўдалося ўсталяваць { -brand-short-name }.
diff --git a/thunderbird-l10n/be/localization/be/toolkit/global/textActions.ftl b/thunderbird-l10n/be/localization/be/toolkit/global/textActions.ftl
index f3307dc581a9c05d268be393061daa892766d976..e962c9d81bc3da170776edea498df55a3b9145af 100644
--- a/thunderbird-l10n/be/localization/be/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/be/localization/be/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Адмяніць
     .accesskey = м
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Вярнуць
     .accesskey = р
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Выразаць
     .accesskey = р
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Капіяваць
     .accesskey = К
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Уставіць
     .accesskey = У
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Выдаліць
     .accesskey = д
-
 text-action-select-all =
     .label = Вылучыць усё
     .accesskey = Ñ‘
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Няма прапановаў
+text-action-spell-add-to-dictionary =
+    .label = Дадаць у слоўнік
+    .accesskey = Ñž
+text-action-spell-undo-add-to-dictionary =
+    .label = Адмяніць даданне ў слоўнік
+    .accesskey = Ñ–
+text-action-spell-check-toggle =
+    .label = Правяраць правапіс
+    .accesskey = П
+text-action-spell-add-dictionaries =
+    .label = Дадаць слоўнікі…
+    .accesskey = Д
+text-action-spell-dictionaries =
+    .label = Мовы
+    .accesskey = М
diff --git a/thunderbird-l10n/be/manifest.json b/thunderbird-l10n/be/manifest.json
index bad7c74fbe949415abcfa824f236756996d4009e..e5b91dac953063c9f1b9658108b2ac5f527789a9 100644
--- a/thunderbird-l10n/be/manifest.json
+++ b/thunderbird-l10n/be/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Беларуская Language Pack",
   "description": "Language pack for Thunderbird for be",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "be": {
-      "version": "20210814154523",
+      "version": "20210831174422",
       "chrome_resources": {
         "alerts": "chrome/be/locale/be/alerts/",
         "autoconfig": "chrome/be/locale/be/autoconfig/",
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-context-menus.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-editable-item.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-print.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/calendar/calendar-widgets.ftl b/thunderbird-l10n/bg/localization/bg/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/bg/localization/bg/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/bg/localization/bg/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/bg/localization/bg/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/bg/localization/bg/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/bg/localization/bg/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/messenger/exportDialog.ftl b/thunderbird-l10n/bg/localization/bg/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/localization/bg/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/bg/localization/bg/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/bg/localization/bg/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/bg/manifest.json b/thunderbird-l10n/bg/manifest.json
index 44ae46499dcb421349ceeacd0fca01178cec877f..b801142476ba01227c4f1e54ee1e62d92319d1ff 100644
--- a/thunderbird-l10n/bg/manifest.json
+++ b/thunderbird-l10n/bg/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Български Language Pack",
   "description": "Language pack for Thunderbird for bg",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "bg": {
-      "version": "20210813135202",
+      "version": "20210831120207",
       "chrome_resources": {
         "alerts": "chrome/bg/locale/bg/alerts/",
         "autoconfig": "chrome/bg/locale/bg/autoconfig/",
diff --git a/thunderbird-l10n/br/chrome/br/locale/br/lightning/lightning.properties b/thunderbird-l10n/br/chrome/br/locale/br/lightning/lightning.properties
index 67c8ee4c69e45569c88a51cb029a0595f71b522f..af24be19449704e9f8630340cae5d0ae5a12509c 100644
--- a/thunderbird-l10n/br/chrome/br/locale/br/lightning/lightning.properties
+++ b/thunderbird-l10n/br/chrome/br/locale/br/lightning/lightning.properties
@@ -166,7 +166,7 @@ imipBarProcessedMultipleNeedsAction=This message contains multiple events that y
 imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-editable-item.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-print.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/calendar/calendar-widgets.ftl b/thunderbird-l10n/br/localization/br/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/br/localization/br/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/br/localization/br/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/accountManager.ftl b/thunderbird-l10n/br/localization/br/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/br/localization/br/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/br/localization/br/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/br/localization/br/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/br/localization/br/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/chat.ftl b/thunderbird-l10n/br/localization/br/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/br/localization/br/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/exportDialog.ftl b/thunderbird-l10n/br/localization/br/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/importDialog.ftl b/thunderbird-l10n/br/localization/br/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/preferences/am-copies.ftl b/thunderbird-l10n/br/localization/br/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/messenger/troubleshootMode.ftl b/thunderbird-l10n/br/localization/br/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/localization/br/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/br/localization/br/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/br/localization/br/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/br/manifest.json b/thunderbird-l10n/br/manifest.json
index 666f4c495ec36f08d63d1b2235fb45c04dfdd1b1..bd53dbf47124ceed101d5568d9c0ef91699133a4 100644
--- a/thunderbird-l10n/br/manifest.json
+++ b/thunderbird-l10n/br/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Breton Language Pack",
   "description": "Language pack for Thunderbird for br",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "br": {
-      "version": "20210814091727",
+      "version": "20210831120314",
       "chrome_resources": {
         "alerts": "chrome/br/locale/br/alerts/",
         "autoconfig": "chrome/br/locale/br/autoconfig/",
diff --git a/thunderbird-l10n/ca/localization/ca/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ca/localization/ca/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ca/localization/ca/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ca/localization/ca/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ca/localization/ca/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ca/localization/ca/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ca/localization/ca/messenger/exportDialog.ftl b/thunderbird-l10n/ca/localization/ca/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ca/localization/ca/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ca/localization/ca/messenger/importDialog.ftl b/thunderbird-l10n/ca/localization/ca/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ca/localization/ca/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ca/localization/ca/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ca/localization/ca/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ca/localization/ca/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ca/manifest.json b/thunderbird-l10n/ca/manifest.json
index df790724cf2cb797e9f6d722d9c0f569d268dc5a..d0a0c4f3210c02c1e148d061dfe7a671e9cf99c6 100644
--- a/thunderbird-l10n/ca/manifest.json
+++ b/thunderbird-l10n/ca/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Català Language Pack",
   "description": "Language pack for Thunderbird for ca",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ca": {
-      "version": "20210813135407",
+      "version": "20210831120405",
       "chrome_resources": {
         "alerts": "chrome/ca/locale/ca/alerts/",
         "autoconfig": "chrome/ca/locale/ca/autoconfig/",
diff --git a/thunderbird-l10n/cak/chrome/cak/locale/cak/lightning/lightning.properties b/thunderbird-l10n/cak/chrome/cak/locale/cak/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/thunderbird-l10n/cak/chrome/cak/locale/cak/lightning/lightning.properties
+++ b/thunderbird-l10n/cak/chrome/cak/locale/cak/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-print.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/calendar/calendar-widgets.ftl b/thunderbird-l10n/cak/localization/cak/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/cak/localization/cak/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/cak/localization/cak/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/accountManager.ftl b/thunderbird-l10n/cak/localization/cak/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/cak/localization/cak/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/cak/localization/cak/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/cak/localization/cak/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/chat.ftl b/thunderbird-l10n/cak/localization/cak/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/cak/localization/cak/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/exportDialog.ftl b/thunderbird-l10n/cak/localization/cak/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/importDialog.ftl b/thunderbird-l10n/cak/localization/cak/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/preferences/am-copies.ftl b/thunderbird-l10n/cak/localization/cak/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/messenger/troubleshootMode.ftl b/thunderbird-l10n/cak/localization/cak/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/localization/cak/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/cak/localization/cak/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cak/localization/cak/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cak/manifest.json b/thunderbird-l10n/cak/manifest.json
index 7f663304da92f991df9fa16ee037e9939c1df36d..bb74ebbae696bae14e2140783caac29c6d110416 100644
--- a/thunderbird-l10n/cak/manifest.json
+++ b/thunderbird-l10n/cak/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Kaqchikel (Guatemala) Language Pack",
   "description": "Language pack for Thunderbird for cak",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "cak": {
-      "version": "20210813135420",
+      "version": "20210831120418",
       "chrome_resources": {
         "alerts": "chrome/cak/locale/cak/alerts/",
         "autoconfig": "chrome/cak/locale/cak/autoconfig/",
diff --git a/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/imtooltip.properties b/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/imtooltip.properties
index ad1444cd541023e9d5c38a459688f9bc07681db0..601a65de9f9ee82432c97ff8257dc6f0fe58cfae 100644
--- a/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/imtooltip.properties
+++ b/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/imtooltip.properties
@@ -7,4 +7,6 @@ buddy.account=Účet
 contact.tags=Štítky
 
 otr.tag=Stav OTR
+
+encryption.tag=Stav šifrování
 message.status=Zpráva je zašifrována
diff --git a/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/matrix.properties b/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/matrix.properties
index c44b3654602f397108fe52a07978ebf6a719eae4..37b96b0cc6a369540d93465285027a71ed31bbf1 100644
--- a/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/matrix.properties
+++ b/thunderbird-l10n/cs/chrome/cs/locale/cs/chat/matrix.properties
@@ -18,7 +18,6 @@ matrix.usernameHint=Matrix ID
 #   These are the protocol specific options shown in the account manager and
 #   account wizard windows.
 options.saveToken=Uložit přístupový token
-
 options.deviceDisplayName=Zobrazovaný název zařízení
 options.homeserver=Server
 
@@ -37,7 +36,6 @@ connection.requestAccess=Dokončování ověření
 connection.error.noSupportedFlow=Server nenabízí žádný kompatibilní způsob přihlášení.
 connection.error.authCancelled=Zrušili jste proces ověření.
 connection.error.sessionEnded=Relace byla odhlášena.
-
 connection.error.serverNotFound=Pro daný účet nebyl nalezen Matrix server.
 
 # LOCALIZATION NOTE (chatRoomField.*):
@@ -215,3 +213,4 @@ message.alias.removed=Uživatel %1$S odebral následující alternativní adresy
 #    %3$S is a comma delmited list of added addresses.
 message.alias.removedAndAdded=Uživatel %1$S změnil adresy této místnosti. Přidáno: %2$S. Odebráno: %3$S.
 message.spaceNotSupported=Tato místnost není podporovaná.
+message.encryptionStart=Zprávy v této konverzaci jsou nyní zašifrovány prostřednictvím koncového šifrování.
diff --git a/thunderbird-l10n/cs/chrome/cs/locale/cs/global/dom/dom.properties b/thunderbird-l10n/cs/chrome/cs/locale/cs/global/dom/dom.properties
index 3f1aa539a48c4599f811ff6645f216394c44e536..5c26f727860297ce232ae60ebcf2c3e37bccf098 100644
--- a/thunderbird-l10n/cs/chrome/cs/locale/cs/global/dom/dom.properties
+++ b/thunderbird-l10n/cs/chrome/cs/locale/cs/global/dom/dom.properties
@@ -20,6 +20,7 @@ DontAskAgain=Příště se už &neptat
 WindowCloseBlockedWarning=Skripty nemohou zavírat okna, která nebyla pomocí skriptu otevřena.
 OnBeforeUnloadTitle=Opravdu?
 OnBeforeUnloadMessage=Tato stránka vás žádá o potvrzení, že ji opravdu chcete opustit. Údaje, které jste vložili, nemusí být uloženy.
+OnBeforeUnloadMessage2=Tato stránka vás žádá o potvrzení, že ji opravdu chcete opustit. Údaje, které jste vložili, nemusí být uloženy.
 OnBeforeUnloadStayButton=Zůstat na stránce
 OnBeforeUnloadLeaveButton=Opustit stránku
 EmptyGetElementByIdParam=Funkci getElementById() předán prázdný řetězec.
@@ -36,7 +37,8 @@ FormValidationFileMissing=Vyberte prosím soubor.
 FormValidationSelectMissing=Zvolte prosím některou položku v seznamu.
 FormValidationInvalidEmail=Zadejte prosím platnou e-mailovou adresu.
 FormValidationInvalidURL=Zadejte prosím platnou URL adresu.
-FormValidationInvalidDate =Zadejte prosím platné datum.
+FormValidationInvalidDate=Zadejte prosím platné datum.
+FormValidationInvalidTime=Zadejte prosím platný čas.
 FormValidationPatternMismatch=Vyplňte prosím pole v požadovaném formátu.
 # LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
 FormValidationPatternMismatchWithTitle=Vyplňte prosím pole v požadovaném formátu: %S.
@@ -53,10 +55,12 @@ FormValidationStepMismatch=Zvolte prosím platnou hodnotu. Nejbližší platné
 # LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
 FormValidationStepMismatchOneValue=Zvolte prosím platnou hodnotu. Nejbližší platná hodnota je %S.
 # LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Vyberte prosím hodnotu mezi %1$S a %2$S.
 FormValidationBadInputNumber=Zadejte prosím platné číslo.
 FullscreenDeniedDisabled=Požadavek na režim celé obrazovky byl zamítnut, protože API tohoto režimu není povoleno.
 FullscreenDeniedFocusedPlugin=Požadavek na režim celé obrazovky byl zamítnut, protože zásuvný modul typu „windowed“ je aktivní.
 FullscreenDeniedHidden=Požadavek na režim celé obrazovky byl zamítnut, protože dokument není viditelný.
+FullscreenDeniedHTMLDialog=Požadavek na režim celé obrazovky byl zamítnut, protože vyžadující prvek je <dialog>.
 FullscreenDeniedContainerNotAllowed=Požadavek na režim celé obrazovky byl zamítnut, protože nejméně jeden z „iframů“ obsažených v dokumentu nemá atribut „allowfullscreen“.
 FullscreenDeniedNotInputDriven=Požadavek na režim celé obrazovky byl zamítnut, protože událost Element.requestFullscreen() nebyla vyvolána uživatelskou akcí.
 FullscreenDeniedNotHTMLSVGOrMathML=Požadavek na režim celé obrazovky byl zamítnut, protože vyžadující prvek není <svg>, <math> ani prvek HTML.
@@ -67,6 +71,7 @@ FullscreenDeniedSubDocFullscreen=Požadavek na režim celé obrazovky byl zamít
 FullscreenDeniedNotDescendant=Požadavek na režim celé obrazovky byl zamítnut, protože vyžadující prvek není potomkem prvku, který je v režimu celé obrazovky.
 FullscreenDeniedNotFocusedTab=Požadavek na režim celé obrazovky byl zamítnut, protože vyžadující prvek není v aktivním panelu.
 FullscreenDeniedFeaturePolicy=Požadavek na režim celé obrazovky byl zamítnut na základě direktiv FeaturePolicy.
+FullscreenExitWindowFocus=Režim celé obrazovky byl ukončen, protože bylo vybráno jiné okno v popředí.
 RemovedFullscreenElement=Režim celé obrazovky byl ukončen, protože prvek v režimu celé obrazovky byl z dokumentu odebrán.
 FocusedWindowedPluginWhileFullscreen=Režim celé obrazovky byl ukončen, protože zásuvný modul typu „windowed“ byl aktivován.
 PointerLockDeniedDisabled=Požadavek na uzamčení kurzoru byl zamítnut, protože jeho API není povoleno.
@@ -98,8 +103,10 @@ MediaElementAudioSourceNodeCrossOrigin=Prvek HTMLMediaElement předaný createMe
 # LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
 MediaStreamAudioSourceNodeCrossOrigin=Prvek MediaStream předaný createMediaStreamSource má cross-origin zdroj, výstup zůstane prázdný.
 # LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=Prvek MediaStreamTrack předaný createMediaStreamTrackSource je cross-origin zdroj, výstup zůstane prázdný.
 # LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
 MediaElementAudioCaptureOfMediaStreamError=Zachycený HTMLMediaElement právě přehrává MediaStream. Změna hlasitosti nebo ztišení nyní nejsou podporované.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
 MediaLoadExhaustedCandidates=Žádného z kandidátů zdroje se nepodařilo nahrát. Nahrávání média skončilo chybou.
 MediaLoadSourceMissingSrc=Prvek <source> neobsahuje atribut „src“. Nahrávání média skončilo chybou.
 MediaStreamAudioSourceNodeDifferentRate=Připojení AudioNodes z AudioContexts s rozdílnými vzorkovacími frekvencemi zatím není podporováno.
@@ -222,6 +229,7 @@ ManifestInvalidType=Vlastnost %2$S prvku %1$S je očekávána typu %3$S.
 # LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
 ManifestInvalidCSSColor=%1$S: %2$S není platná barva v CSS.
 # LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S není platný kód jazyka.
 # LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
 # LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
 # LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
@@ -329,14 +337,17 @@ AmbientLightEventWarning=Použití senzoru okolního světla je zastaralé.
 # LOCALIZATION NOTE: Do not translate "storage", "indexedDB.open" and "navigator.storage.persist()".
 IDBOpenDBOptions_StorageTypeWarning=Atribut ‘storage’ předaný ve volbách funkci indexedDB.open je zastaralý a brzy bude odstraněn. Pro získání trvalého úložiště raději používejte navigator.storage.persist().
 UnsupportedEntryTypesIgnored=Ignorovány nepodporované entryTypes: %S.
-
 # LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Událost klávesy není na GTK2 dostupná: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Událost klávesy není na některých rozložení klávesnice dostupná: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
 
 #LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
 #LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
 #LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
 # LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
 CreateImageBitmapCanvasRenderingContext2DWarning=Použití CanvasRenderingContext2D v createImageBitmap je zastaralé.
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
 # LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
 MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() je zastaralé.
 # LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
@@ -357,26 +368,31 @@ External_AddSearchProviderWarning=AddSearchProvider je zastaralý.
 # LOCALIZATION NOTE: Do not translate MathML, subscriptshift and superscriptshift.
 # LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
 # LOCALIZATION NOTE: Do not translate MathML and XLink.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
 # LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
 
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
 
-OnBeforeUnloadMessage2=This page is asking you to confirm that you want to leave — information you’ve entered may not be saved.
-FormValidationInvalidTime=Please enter a valid time.
-# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
-FormValidationTimeReversedRangeUnderflowAndOverflow=Please select a value between %1$S and %2$S.
-FullscreenDeniedHTMLDialog=Request for fullscreen was denied because requesting element is a <dialog> element.
 FullscreenDeniedMouseEventOnlyLeftBtn=Request for fullscreen was denied because Element.requestFullscreen() was called from inside a mouse event handler not triggered by left mouse button.
-FullscreenExitWindowFocus=Exited fullscreen because a window was focused.
 # LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
 UseSendBeaconDuringUnloadAndPagehideWarning=Use of navigator.sendBeacon instead of synchronous XMLHttpRequest during unload and pagehide improves user experience.
-# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
-MediaStreamTrackAudioSourceNodeCrossOrigin=The MediaStreamTrack passed to createMediaStreamTrackSource is a cross-origin resource, the node will output silence.
 # LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
 MediaElementStreamCaptureCycle=The MediaStream assigned to srcObject comes from a capture of this HTMLMediaElement, forming a cycle, assignment ignored.
 MediaLoadUnsupportedTypeAttributeLoadingNextChild=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed. Trying to load from next <source> element.
 BlockAutoplayWebAudioStartError=An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page.
-# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
-ManifestLangIsInvalid=%1$S: %2$S is not a valid language code.
 # LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
 ManifestImageURLIsInvalid=%1$S item at index %2$S is invalid. The %3$S member is an invalid URL %4$S
 # LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
@@ -392,9 +408,6 @@ NotificationsRequireUserGestureDeprecationWarning=Requesting Notification permis
 WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
 ModuleResolveFailure=Error resolving module specifier “%S”. Relative module specifiers must start with “./”, “../” or “/”.
 AllEntryTypesIgnored=No valid entryTypes; aborting registration.
-# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
-GTK2Conflict2=Key event not available on GTK2: key=“%S” modifiers=“%S” id=“%S”
-WinConflict2=Key event not available on some keyboard layouts: key=“%S” modifiers=“%S” id=“%S”
 # LOCALIZATION NOTE: do not trnaslated "document.domain"
 DocumentSetDomainNotAllowedWarning=Setting document.domain in a cross-origin isolated environment is not allowed.
 #LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
diff --git a/thunderbird-l10n/cs/chrome/cs/locale/cs/global/security/security.properties b/thunderbird-l10n/cs/chrome/cs/locale/cs/global/security/security.properties
index 73413f5064c568b9fc9fb6c17ea4f511bcec9f0e..aee2cd32a6f48267fc8c2aba904b46339dea1d9d 100644
--- a/thunderbird-l10n/cs/chrome/cs/locale/cs/global/security/security.properties
+++ b/thunderbird-l10n/cs/chrome/cs/locale/cs/global/security/security.properties
@@ -90,6 +90,7 @@ BrowserUpgradeInsecureDisplayRequest = Aplikace %1$S povýšila nezabezpečený
 
 # LOCALIZATION NOTE (MixedContentAutoUpgrade):
 # %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Přepínání nezabezpečených display požadavků „%1$S“ na „%2$S“
 # LOCALIZATION NOTE (RunningClearSiteDataValue):
 # %S is the URI of the resource whose data was cleaned up
 RunningClearSiteDataValue=Hlavička Clear-Site-Data vynutila vymazání dat „%1$S“.
@@ -107,6 +108,9 @@ FeaturePolicyInvalidAllowValue=Feature Policy: Přeskočena nepodporovaná hodno
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 # LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
@@ -116,6 +120,9 @@ FeaturePolicyInvalidAllowValue=Feature Policy: Přeskočena nepodporovaná hodno
 HTTPSOnlyUpgradeRequest = Přepínání nezabezpečeného požadavku „%1$S“ na „%2$S“.
 # LOCALIZATION NOTE: %1$S is the URL of request.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Nezabezpečený požadavek „%1$S“ se nepodařilo přepnout. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Nezabezpečený požadavek „%S“ se nepodařilo přepnout. Požadavek přepnut zpět na http.
 
 # LOCALIZATION NOTE: %S is the URL of the blocked request;
 
@@ -123,7 +130,6 @@ HTTPSOnlyUpgradeRequest = Přepínání nezabezpečeného požadavku „%1$S“
 # LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
 # LOCALIZATION NOTE: "Sanitizer" is the name of the API. Please do not localize.
 
-
 CORSPreflightDidNotSucceed2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight response did not succeed).
 CORSMissingAllowHeaderFromPreflight2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: header ‘%2$S’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
 LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon.
@@ -144,9 +150,6 @@ BlockImportScriptsWithWrongMimeType=Loading script from “%1$S” with importSc
 BlockWorkerWithWrongMimeType=Loading Worker from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
 BlockModuleWithWrongMimeType=Loading module from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
 RestrictBrowserEvalUsage=eval() and eval-like uses are not allowed in the Parent Process or in System Contexts (Blocked usage in “%1$S”)
-# LOCALIZATION NOTE (MixedContentAutoUpgrade):
-# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
-MixedContentAutoUpgrade=Upgrading insecure display request ‘%1$S’ to use ‘%2$S’
 # Reporting API
 ReportingHeaderInvalidJSON=Reporting Header: invalid JSON value received.
 ReportingHeaderInvalidNameItem=Reporting Header: invalid name for group.
@@ -166,10 +169,6 @@ XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “
 XFrameOptionsDeny=The loading of “%2$S” in a frame is denied by “X-Frame-Options“ directive set to “%1$S“.
 # LOCALIZATION NOTE: %1$S is the URL of request.
 HTTPSOnlyNoUpgradeException = Not upgrading insecure request “%1$S” because it is exempt.
-# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
-HTTPSOnlyFailedRequest = Upgrading insecure request “%1$S” failed. (%2$S)
-# LOCALIZATION NOTE: %S is the URL of the failed request;
-HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
 # LOCALIZATION NOTE: %S is the URL of the blocked request;
 IframeSandboxBlockedDownload = Download of “%S” was blocked because the triggering iframe has the sandbox flag set.
 # Sanitizer API
diff --git a/thunderbird-l10n/cs/localization/cs/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/cs/localization/cs/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..4c487f2945376298970e3a8571236961c5781831
--- /dev/null
+++ b/thunderbird-l10n/cs/localization/cs/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,41 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Smazat událost
+        [few] Smazat události
+       *[other] Smazat události
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Opravdu chcete smazat tuto událost?
+        [few] Opravdu chcete smazat tyto { $count } události?
+       *[other] Opravdu chcete smazat těchto { $count } událostí?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Smazat úkol
+        [few] Smazat úkoly
+       *[other] Smazat úkoly
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Opravdu chcete smazat tento úkol?
+        [few] Opravdu chcete smazat tyto { $count } úkoly?
+       *[other] Opravdu chcete smazat těchto { $count } úkolů?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Smazat položku
+        [few] Smazat položky
+       *[other] Smazat položky
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Opravdu chcete smazat tuto položku?
+        [few] Opravdu chcete smazat tyto { $count } položky?
+       *[other] Opravdu chcete smazat těchto { $count } položek?
+    }
+calendar-delete-prompt-disable-message = Příště se už neptat.
diff --git a/thunderbird-l10n/cs/localization/cs/devtools/client/perftools.ftl b/thunderbird-l10n/cs/localization/cs/devtools/client/perftools.ftl
index 5dfe4cc329004efb4ea6bc202d9f79438367fc5e..eb7fa68b546d68310a398b33504895199edf02cd 100644
--- a/thunderbird-l10n/cs/localization/cs/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/cs/localization/cs/devtools/client/perftools.ftl
@@ -10,6 +10,11 @@
 
 ## All of the headings for the various sections.
 
+perftools-heading-buffer = Nastavení vyrovnávací paměti
+perftools-heading-features = Funkce
+perftools-heading-features-default = Funkce (ve výchozím nastavení doporučeno)
+perftools-heading-features-experimental = Experimentální
+perftools-heading-threads = Vlákna
 
 ##
 
@@ -19,6 +24,8 @@
 
 ##
 
+perftools-devtools-interval-label = Interval:
+perftools-devtools-threads-label = Vlákna:
 perftools-devtools-settings-label = Nastavení
 
 ## Various statuses that affect the current state of profiling, not typically displayed.
@@ -35,6 +42,7 @@ perftools-devtools-settings-label = Nastavení
 
 ##
 
+
 ## Onboarding UI labels. These labels are displayed in the new performance panel UI, when
 ## both devtools.performance.new-panel-onboarding & devtools.performance.new-panel-enabled
 ## preferences are true.
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/cs/localization/cs/messenger/accountcreation/accountSetup.ftl
index af134a1d5ab6783a907d22f87719de640c7a1cce..c32d2602833a1b30f65097801f4f8b2126fded03 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/accountcreation/accountSetup.ftl
@@ -12,6 +12,14 @@ account-setup-description =
     { -brand-product-name } se pokusí automaticky najít funkční a doporučené nastavení serveru.
 account-setup-secondary-description = { -brand-product-name } automaticky vyhledá funkční a doporučenou konfiguraci serveru.
 account-setup-success-title = Účet byl úspěšně vytvořen
+account-setup-success-description =
+    Nyní můžete tento účet používat používat v { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "loc") }
+        [feminine] { -brand-short-name(case: "loc") }
+        [neuter] { -brand-short-name(case: "loc") }
+       *[other] aplikaci { -brand-short-name }
+    }.
+account-setup-success-secondary-description = Připojení souvisejících služeb a konfigurace pokročilého nastavení účtu vám může usnadnit další práci.
 
 ## Form fields
 
@@ -39,6 +47,10 @@ account-provisioner-button = Získat novou e-mailovou adresu
     .accesskey = Z
 account-setup-password-toggle =
     .title = Zobrazit/Skrýt heslo
+account-setup-password-toggle-show =
+    .title = Zobrazit heslo viditelnÄ›
+account-setup-password-toggle-hide =
+    .title = Skrýt heslo
 account-setup-remember-password = Pamatovat si heslo
     .accesskey = m
 account-setup-exchange-label = Vaše přihlašovací jméno
@@ -141,6 +153,8 @@ account-setup-result-pop = POP3
 account-setup-result-pop-description = Uchová vaše složky a e-maily na vašem počítači
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
+# Note: Exchange, Office365 are the name of products.
+account-setup-result-exchange2-description = Použije server Microsoft Exchange nebo cloudové služby Office365
 account-setup-incoming-title = Příchozí
 account-setup-outgoing-title = Odchozí
 account-setup-username-title = Uživatelské jméno
@@ -230,6 +244,29 @@ exchange-dialog-question =
 exchange-dialog-confirm-button = Přihlašovací údaje
 exchange-dialog-cancel-button = Zrušit
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Není nastaven žádný e-mailový účet
+exit-dialog-description =
+    Opravdu chcete zrušit proces nastavení? { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "acc") }
+        [feminine] { -brand-short-name(case: "acc") }
+        [neuter] { -brand-short-name(case: "acc") }
+       *[other] Aplikaci { -brand-short-name }
+    } můžete používat i bez e-mailového účtu, ale mnoho funkcí pak nebude dostupných.
+account-setup-no-account-checkbox =
+    Používat { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "acc") }
+        [feminine] { -brand-short-name(case: "acc") }
+        [neuter] { -brand-short-name(case: "acc") }
+       *[other] aplikaci { -brand-short-name }
+    } bez e-mailového účtu
+    .accesskey = u
+exit-dialog-cancel-button = Pokračovat v nastavení
+    .accesskey = P
+exit-dialog-confirm-button = Zrušit nastavení
+    .accesskey = Z
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Účet se nepodařilo vytvořit
@@ -253,6 +290,20 @@ account-setup-address-book-carddav-button = Připojit adresář CardDAV
 account-setup-address-book-ldap-button = Připojit adresář LDAP
 account-setup-calendar-button = Připojit vzdálený kalendář
 account-setup-linked-services-title = Připojení propojených služeb
+account-setup-linked-services-description =
+    { -brand-short-name.gender ->
+        [masculine] { -brand-short-name } zjistil
+        [feminine] { -brand-short-name } zjistila
+        [neuter] { -brand-short-name } zjistilo
+       *[other] Aplikace { -brand-short-name } zjistila
+    } další služby propojené s vaším e-mailovým účtem.
+account-setup-no-linked-description =
+    Nastavte si další služby, abyste { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "acc") }
+        [feminine] { -brand-short-name(case: "acc") }
+        [neuter] { -brand-short-name(case: "acc") }
+       *[other] aplikaci { -brand-short-name }
+    } využili na maximum.
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/cs/localization/cs/messenger/addressbook/aboutAddressBook.ftl
index fcb637804e9e3a7aa754dcdfab72a08821fc4f0e..5769eba6ec2c2f31dea5df1e642366ee939bd89b 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Všechny složky kontaktů
-
 about-addressbook-books-context-properties =
     .label = Vlastnosti
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Smazat
 about-addressbook-books-context-remove =
     .label = Odebrat
-
 about-addressbook-confirm-delete-book-title = Smazat složku kontaktů
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Najít { $name }
 about-addressbook-search-all =
     .placeholder = Prohledat všechny adresáře
-
 about-addressbook-sort-button =
     .title = Změnit pořadí seznamu
-
 about-addressbook-name-format-display =
     .label = Zobrazované jméno
 about-addressbook-name-format-firstlast =
     .label = Jméno Příjmení
 about-addressbook-name-format-lastfirst =
     .label = Příjmení, Jméno
-
 about-addressbook-sort-name-ascending =
     .label = Seřadit podle jména
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Seřadit podle e-mailové adresy
 about-addressbook-sort-email-descending =
     .label = Seřadit podle e-mailové adresy (pozpátku)
-
+about-addressbook-cards-context-write =
+    .label = Napsat
 about-addressbook-confirm-delete-mixed-title = Smazat kontakty a skupiny
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -136,7 +132,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Upravit
 about-addressbook-cancel-edit-contact-button = Zrušit
 about-addressbook-save-edit-contact-button = Uložit
-
 about-addressbook-details-email-addresses-header = E-mailové adresy
 about-addressbook-details-phone-numbers-header = Telefonní čísla
 about-addressbook-details-home-address-header = Adresy domů
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/cs/localization/cs/messenger/compactFoldersDialog.ftl
index 7a92fe5bb5ad2bf63d54028ed4af55d8f4d0565c..ea858b8a88f4620218164c4202b22f4b2017e284 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/compactFoldersDialog.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/compactFoldersDialog.ftl
@@ -5,7 +5,6 @@
 compact-dialog-window =
     .title = Údržba složek
     .style = width: 50em;
-
 compact-dialog =
     .buttonlabelaccept = Provést údržbu
     .buttonaccesskeyaccept = P
@@ -13,4 +12,15 @@ compact-dialog =
     .buttonaccesskeycancel = o
     .buttonlabelextra1 = Zjistit více…
     .buttonaccesskeyextra1 = Z
-
+# Variables:
+#  $data (String): The amount of space to be freed, formatted byte, MB, GB, etc., based on the size.
+compact-dialog-message =
+    { -brand-short-name } musí provést pravidelnou údržbu souborů, aby se zvýšila výkonnost poštovních složek. Tím získáte zpět { $data } místa na disku, aniž by došlo ke změnám ve vašich zprávách. Pokud chcete, aby to { -brand-short-name.gender ->
+        [masculine] { -brand-short-name } v budoucnu dělal
+        [feminine] { -brand-short-name } v budoucnu dělala
+        [neuter] { -brand-short-name } v budoucnu dělalo
+       *[other] aplikace { -brand-short-name } v budoucnu dělala
+    } automaticky bez dotazování, před klepnutím na tlačítko ‘{ compact-dialog.buttonlabelaccept }’ zaškrtněte příslušné políčko níže.
+compact-dialog-never-ask-checkbox =
+    .label = V budoucnu provádět údržbu složek automaticky
+    .accesskey = a
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/exportDialog.ftl b/thunderbird-l10n/cs/localization/cs/messenger/exportDialog.ftl
index 2ab3f5476cffa00e51f578a9a5525cdcbc733988..94dbc493d11478af02200b457b6208fcc628e90f 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/exportDialog.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/exportDialog.ftl
@@ -3,15 +3,13 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 export-dialog-brand-name = { -brand-product-name }
-
 export-dialog-window =
     .title = Export
-
 export-dialog =
     .buttonlabelaccept = Další
-
 export-dialog-button-finish = Dokončit
-
+export-dialog-file-picker = Exportovat do souboru ZIP
+export-dialog-desc1 = Vyexportuje poštovní účty, poštovní zprávy, kontakty a nastavení do souboru ZIP.
+export-dialog-desc2 = V případě potřeby můžete daný soubor ZIP naimportovat a obnovit tak svůj profil.
 export-dialog-exporting = Probíhá export…
-
 export-dialog-exported = Exportováno!
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/importDialog.ftl b/thunderbird-l10n/cs/localization/cs/messenger/importDialog.ftl
index 09d1e1f385a744de93693178ddb6fa1ba05be2f0..5ae344f0b261ab80a718c0e46e2c238daed765a8 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/importDialog.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = Importuje poštu z adresáře profilu Thunderbirdu.
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (exportovaná záloha profilu; soubor ZIP menší než 2 GB)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (složka s profilem)
+    .accesskey = T
 import-select-profile-zip = Vyberte komprimovaný adresář s profilem
+import-select-profile-dir = Vyberte adresář s profilem
+zip-file-too-big-title = Soubor ZIP je příliš velký
+zip-file-too-big-message = Vybraný soubor ZIP je větší než 2 GB. Nejprve ho prosím rozbalte na disk a poté importujte rozbalený adresář.
+wizardpage-failed =
+    .label = Import selhal
+wizardpage-failed-message = Import se nepodařilo provést. Podrobnosti mohou být dostupné v chybové konzoli.
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/cs/localization/cs/messenger/messengercompose/messengercompose.ftl
index 27b72f8cb44f20ebed41743ad86018c1361016e7..49539f2c29ebcd3ed34e000f7c30ae22d9da61b0 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/messengercompose/messengercompose.ftl
@@ -7,11 +7,9 @@
 
 #   $type (String) - the type of the addressing row
 remove-address-row-type = Odebrat pole { $type }
-
 #   $type (String) - the type of the addressing row
 remove-address-row-button =
     .title = Odebrat pole { $type }
-
 #   $type (String) - the type of the addressing row
 #   $count (Number) - the number of address pills currently present in the addressing row
 address-input-type-aria-label =
@@ -21,7 +19,6 @@ address-input-type-aria-label =
         [few] Pole typu { $type } obsahující { $count } adresy, pro jejich zaměření použijte klávesu se šipkou doleva.
        *[other] Pole typu { $type } obsahující { $count } adres, pro jejich zaměření použijte klávesu se šipkou doleva.
     }
-
 #   $email (String) - the email address
 #   $count (Number) - the number of address pills currently present in the addressing row
 pill-aria-label =
@@ -30,29 +27,22 @@ pill-aria-label =
         [few] Adresa { $email }, jedna z { $count }: pro její úpravu stiskněte Enter, pro odebrání Delete.
        *[other] Adresa { $email }, jedna z { $count }: pro její úpravu stiskněte Enter, pro odebrání Delete.
     }
-
 #   $email (String) - the email address
 pill-tooltip-invalid-address = { $email } není platné e-mailová adresa
-
 #   $email (String) - the email address
 pill-tooltip-not-in-address-book = { $email } není ve vašem seznamu kontaktu
-
 pill-action-edit =
     .label = Upravit adresu
     .accesskey = U
-
 pill-action-move-to =
     .label = Přesunout do Komu
     .accesskey = o
-
 pill-action-move-cc =
     .label = Přesunout do Kopie
     .accesskey = p
-
 pill-action-move-bcc =
     .label = Přesunout do Skrytá kopie
     .accesskey = r
-
 pill-action-expand-list =
     .label = Rozbalit seznam
     .accesskey = R
@@ -64,35 +54,31 @@ ctrl-cmd-shift-pretty-prefix =
         [macos] ⇧ ⌘{ " " }
        *[other] Ctrl+Shift+
     }
-
 trigger-attachment-picker-key = A
 toggle-attachment-pane-key = M
-
 menuitem-toggle-attachment-pane =
     .label = Lišta příloh
     .accesskey = p
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
-
 toolbar-button-add-attachment =
     .label = Připojit
     .tooltiptext = Přidat přílohu ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
-
 add-attachment-notification-reminder =
     .label = Připojit přílohu…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
-
+add-attachment-notification-reminder2 =
+    .label = Připojit přílohu…
+    .accesskey = a
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Soubor…
     .accesskey = S
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
-
 context-menuitem-attach-files =
     .label = Připojit soubor…
     .accesskey = s
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
 
-
-
 #   $count (Number) - the number of attachments in the attachment bucket
 attachments-placeholder-tooltip =
     .tooltiptext =
@@ -102,24 +88,19 @@ attachments-placeholder-tooltip =
             [few] { $count } přílohy
            *[other] { $count } příloh
         }
-
 #   { attachment-bucket-count.accesskey } - Do not localize this message.
 key-toggle-attachment-pane =
     .key = { attachment-bucket-count.accesskey }
-
 expand-attachment-pane-tooltip =
     .tooltiptext = Zobrazí lištu příloh ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 collapse-attachment-pane-tooltip =
     .tooltiptext = Skryje lištu příloh ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 drop-file-label-attachment =
     { $count ->
         [one] Přidat jako přílohu
         [few] Přidat jako přílohy
        *[other] Přidat jako přílohy
     }
-
 drop-file-label-inline = Vložit do obsahu
 
 # Reorder Attachment Panel
@@ -132,52 +113,49 @@ move-attachment-right-panel-button =
     .label = Přesunout vpravo
 move-attachment-last-panel-button =
     .label = Přesunout jako poslední
-
 button-return-receipt =
     .label = Potvrzení o přijetí
     .tooltiptext = Zažádá o potvrzení o přijetí této zprávy
 
+# Encryption
+
+message-to-be-signed-icon =
+    .alt = Podepsat zprávu
+message-to-be-encrypted-icon =
+    .alt = Zašifrovat zprávu
+
 # Addressing Area
 
 to-compose-address-row-label =
     .value = Komu
-
 #   $key (String) - the shortcut key for this field
 to-compose-show-address-row-menuitem =
     .label = Pole { to-compose-address-row-label.value }
     .accesskey = K
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 to-compose-show-address-row-label =
     .value = { to-compose-address-row-label.value }
     .tooltiptext = Zobrazit pole { to-compose-address-row-label.value } ({ to-compose-show-address-row-menuitem.acceltext })
-
 cc-compose-address-row-label =
     .value = Kopie
-
 #   $key (String) - the shortcut key for this field
 cc-compose-show-address-row-menuitem =
     .label = Pole { cc-compose-address-row-label.value }
     .accesskey = i
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 cc-compose-show-address-row-label =
     .value = { cc-compose-address-row-label.value }
     .tooltiptext = Zobrazit pole { cc-compose-address-row-label.value } ({ cc-compose-show-address-row-menuitem.acceltext })
-
 bcc-compose-address-row-label =
     .value = Skrytá kopie
-
 #   $key (String) - the shortcut key for this field
 bcc-compose-show-address-row-menuitem =
     .label = Pole { bcc-compose-address-row-label.value }
     .accesskey = S
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 bcc-compose-show-address-row-label =
     .value = { bcc-compose-address-row-label.value }
     .tooltiptext = Zobrazit pole { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
-
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info =
     { $count ->
@@ -185,23 +163,83 @@ many-public-recipients-info =
         [few] Celkem { $count } adresáti v polích Komu a Kopie navzájem uvidí své adresy. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
        *[other] Celkem { $count } adresátů v polích Komu a Kopie navzájem uvidí své adresy. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
     }
-
+to-address-row-label =
+    .value = Komu
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Pole Komu
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Komu
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Komu
+    .title = Zobrazit pole Komu ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kopie
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Pole Kopie
+    .accesskey = i
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kopie
+    .accesskey = i
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kopie
+    .title = Zobrazit pole Kopie ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Skrytá kopie
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Pole Skrytá kopie
+    .accesskey = S
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Skrytá kopie
+    .accesskey = S
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Skrytá kopie
+    .title = Zobrazit pole Skrytá kopie ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Další pole adresátů k zobrazení
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Příjemce této zprávy je uvedený veřejně. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+        [few] Celkem { $count } adresáti v polích Komu a Kopie navzájem uvidí své adresy. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+       *[other] Celkem { $count } adresátů v polích Komu a Kopie navzájem uvidí své adresy. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+    }
 many-public-recipients-bcc =
     .label = Použít skrytou kopii
     .accesskey = u
-
 many-public-recipients-ignore =
     .label = Ponechat příjemce veřejně
     .accesskey = n
+many-public-recipients-prompt-title = Příliš mnoho veřejných příjemců
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Příjemce této zprávy je uvedený veřejně, což může ohrozit jeho soukromí. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+        [few] Celkem { $count } adresáti v polích Komu a Kopie navzájem uvidí své adresy, což může ohrozit jeho soukromí. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+       *[other] Celkem { $count } adresátů v polích Komu a Kopie navzájem uvidí své adresy, což může ohrozit jeho soukromí. Pokud se tomu chcete vyhnout, použijte pole Skrytá kopie.
+    }
+many-public-recipients-prompt-cancel = Zrušit odesílání
+many-public-recipients-prompt-send = Přesto odeslat
 
 ## Notifications
 
 # Variables:
 # $identity (string) - The name of the used identity, most likely an email address.
 compose-missing-identity-warning = Unikátní identita odpovídající adrese odesílatele nebyla nalezena. Zpráva bude odeslána s pomocí současné adresy odesílatele a nastavení pro identitu { $identity }.
-
 encrypted-bcc-warning = Při odesílání zašifrované zprávy nejsou příjemci v Bcc zcela skrytí. Všichni příjemci je mohou identifikovat.
-
 encrypted-bcc-ignore-button = Rozumím
 
 ## Editing
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/otr/otrUI.ftl b/thunderbird-l10n/cs/localization/cs/messenger/otr/otrUI.ftl
index e5c54b23f31b33d1cbba2eaf992ad6033e3a29de..a0552c89dc0d169a1b4e0f6aa67684db0dd25f9e 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/otr/otrUI.ftl
@@ -6,86 +6,66 @@ start-label = Zahájit šifrovanou konverzaci
 refresh-label = Obnovit Å¡ifrovanou konverzaci
 auth-label = Ověřit identitu kontaktu
 reauth-label = Znovu ověřit identitu kontaktu
-
 auth-cancel = Zrušit
 auth-cancelAccessKey = Z
-
 auth-cancel-access-key = Z
-
 auth-error = Při ověřování identity kontaktu došlo k chybě.
 auth-success = Identita kontaktu byla úspěšně ověřena.
 auth-successThem = Kontakt úspěšně ověřil vaši identitu. Možná budete chtít ověřit zase jeho identitu položením své otázky.
 auth-success-them = Kontakt úspěšně ověřil vaši identitu. Možná budete chtít ověřit zase jeho identitu položením své otázky.
 auth-fail = Ověření identity kontaktu se nezdařilo.
 auth-waiting = Čekání na dokončení ověření kontaktem…
-
 finger-verify = Ověřit
 finger-verify-accessKey = O
-
 finger-verify-access-key = O
-
 # Do not translate 'OTR' (name of an encryption protocol)
 buddycontextmenu-label = Přidat otisk klíče OTR
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-start = Probíhá pokus o zahájení šifrované konverzace s uživatelem { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-refresh = Probíhá pokus o obnovení šifrované konverzace s uživatelem { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone_insecure = Šifrovaná konverzace s uživatelem { $name } skončila.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone-insecure = Šifrovaná konverzace s uživatelem { $name } skončila.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-unseen = Identita uživatele { $name } ještě nebyla ověřena. Příležitostné odposlouchávání možné není, ale s vynaložením určitého úsilí odposlech možný je. Předejděte tomu ověřením identity tohoto kontaktu.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-seen = Uživatel { $name } vás kontaktuje z neznámého počítače. Příležitostné odposlouchávání možné není, ale s vynaložením určitého úsilí odposlech možný je. Předejděte tomu ověřením identity tohoto kontaktu.
-
 state-not_private = Aktuální konverzace není soukromá.
-
 state-not-private = Aktuální konverzace není soukromá.
-
+state-generic-not-private = Aktuální konverzace není soukromá.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-unverified = Aktuální konverzace je šifrovaná, ale není soukromá, protože identita uživatele { $name } ještě nebyla ověřena.
-
+state-generic-unverified = Aktuální konverzace je šifrovaná, ale není soukromá, protože některé identity ještě nebyly ověřeny.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-private = Identita uživatele { $name } byla ověřena. Aktuální konverzace je šifrovaná a soukromá.
-
+state-generic-private = Aktuální konverzace je šifrovaná a soukromá.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-finished = Uživatel { $name } s vámi ukončil šifrovanou konverzaci, měli byste udělat totéž.
-
 state-not_private-label = Nezabezpečeno
-
 state-not-private-label = Nezabezpečeno
 state-unverified-label = Neověřeno
 state-private-label = Soukromé
 state-finished-label = Ukončeno
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 verify-request = Uživatel { $name } požádal o ověření vaší identity.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-private = Ověřili jste identitu uživatele { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-unverified = Identita uživatele { $name } nebyla ověřena.
-
 verify-title = Ověřit identitu kontaktu
 error-title = Chyba
 success-title = Koncové šifrování
@@ -93,7 +73,6 @@ successThem-title = Ověřit identitu kontaktu
 success-them-title = Ověřit identitu kontaktu
 fail-title = Nelze ověřit
 waiting-title = Žádost o ověření byla odeslána
-
 # Do not translate 'OTR' (name of an encryption protocol)
 # Variables:
 #   $error (String) - contains an error message that describes the cause of the failure
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/cs/localization/cs/messenger/policies/policies-descriptions.ftl
index 96faf2f99a67335c3aa95cf1e7e45380367fa33f..8a7c727df44c45dbfa8bd634b797f9e2c1269613 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/policies/policies-descriptions.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/policies/policies-descriptions.ftl
@@ -11,31 +11,26 @@
 ## in the documentation section in about:policies.
 
 policy-3rdparty = Nastavení pravidel, ke kterým mají přístup rozšíření skrze chrome.storage.managed.
-
 policy-AppAutoUpdate = Vypnutí nebo zapnutí automatických aktualizací aplikace.
-
 policy-AppUpdateURL = Nastavení vlastní URL pro aktualizace aplikace.
-
 policy-Authentication = Konfigurace integrované autentizace webových stránek, které ji podporují.
-
+policy-BackgroundAppUpdate2 = Povolení nebo zákaz aktualizací na pozadí.
 policy-BlockAboutAddons = Zablokování přístupu do správce doplňků (about:addons).
-
 policy-BlockAboutConfig = Zablokování přístupu do editoru předvoleb (about:config).
-
 policy-BlockAboutProfiles = Zablokování přístupu do správce profilů (about:profiles).
-
 policy-BlockAboutSupport = Zablokování přístupu na stránku s technickými informacemi (about:support).
-
 policy-CaptivePortal = Povolení nebo zakázání podpory captive portálů.
-
 policy-CertificatesDescription = Přidat certifikáty nebo použít vestavěné certifikáty.
-
 policy-Cookies = Pravidla pro ukládání nebo blokování cookies.
-
+policy-DisableBuiltinPDFViewer =
+    Zablokování PDF prohlížeče PDF.js vestavěného { -brand-short-name.gender ->
+        [masculine] ve { -brand-short-name(case: "loc") }
+        [feminine] v { -brand-short-name(case: "loc") }
+        [neuter] v { -brand-short-name(case: "loc") }
+       *[other] v aplikaci { -brand-short-name }
+    }.
 policy-DisabledCiphers = Zakázané metody šifrování.
-
 policy-DefaultDownloadDirectory = Nastavení výchozího adresáře pro stahování souborů.
-
 policy-DisableAppUpdate =
     Blokování aktualizací { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -43,27 +38,16 @@ policy-DisableAppUpdate =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] aplikace { -brand-short-name }
     }.
-
 policy-DisableDefaultClientAgent = Zabraňuje „výchozímu agentovi klienta“ provádět jakékoliv akce. Dostupné pouze pro Windows, ostatní platformy agenty nemají.
-
 policy-DisableDeveloperTools = Blokování přístupu k nástrojům pro vývojáře.
-
 policy-DisableFeedbackCommands = Blokování odeslání zpětné vazby z nabídky Nápověda (volby Odeslat zpětnou vazbu a Nahlásit klamavou stránku).
-
 policy-DisableForgetButton = Zablokování tlačítka Zapomenout.
-
 policy-DisableFormHistory = Vypnutí ukládání historie vyhledávání a formulářů.
-
 policy-DisableMasterPasswordCreation = Hodnota true znemožní nastavení hlavního hesla.
-
 policy-DisablePasswordReveal = Zakázání možnosti zobrazit hesla ve správci přihlašovacích údajů.
-
 policy-DisableProfileImport = Blokování importu dat z jiných aplikací.
-
 policy-DisableSafeMode = Zablokování možnosti restartovat se zakázanými doplňky. Poznámka: přechod do nouzového režimu podržením klávesy Shift lze zablokovat jen na systému Windows pomocí zásad skupin.
-
 policy-DisableSecurityBypass = Zabránit uživateli obcházení některých bezpečnostních varování.
-
 policy-DisableSystemAddonUpdate =
     Blokování { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "dat") }
@@ -71,50 +55,36 @@ policy-DisableSystemAddonUpdate =
         [neuter] { -brand-short-name(case: "dat") }
        *[other] aplikaci { -brand-short-name }
     } aktualizovat systémové doplňky.
-
 policy-DisableTelemetry = Vypnutí telemetrie.
-
 policy-DisplayMenuBar = Zobrazení hlavní nabídky ve výchozím nastavení.
-
 policy-DNSOverHTTPS = Nastavení DNS over HTTPS.
-
 policy-DontCheckDefaultClient = Vypnutí kontroly nastavení výchozí aplikace při spuštění.
-
 policy-DownloadDirectory = Nastavení a uzamčení nastavení adresáře pro stahování souborů.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EnableTrackingProtection = Zapnutí nebo vypnutí blokování obsahu a případně jeho uzamčení.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EncryptedMediaExtensions = Zapnutí nebo vypnutí Encrypted Media Extensions a případně uzamčení tohoto nastavení.
-
 # A “locked” extension can’t be disabled or removed by the user. This policy
 # takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
 # English or translate them as verbs.
 policy-Extensions = Instalace, odinstalace a uzamčení rozšíření. Pro instalaci je potřeba jako parametr zadat URL adresy nebo cesty. Pro odinstalaci nebo uzamčení ID rozšíření.
-
 policy-ExtensionSettings = Správa všech aspektů instalace rozšíření.
-
 policy-ExtensionUpdate = Vypnutí nebo zapnutí automatických aktualizací rozšíření.
-
+policy-Handlers = Nastavení výchozích aplikací pro odkazy a typy souborů.
 policy-HardwareAcceleration = Hodnota false vypne použití hardwarové akcelerace.
-
 policy-InstallAddonsPermission = Povolení instalace doplňků z vybraných webových stránek.
-
 policy-LegacyProfiles = Vypnutí funkce vynucující samostatný profil pro každou instalaci aplikace.
 
 ## Do not translate "SameSite", it's the name of a cookie attribute.
 
 policy-LegacySameSiteCookieBehaviorEnabled = Povoluje staré výchozí nastavení chování SameSite cookies.
-
 policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Nastaví staré výchozí chování SameSite cookies z uvedených serverů.
 
 ##
 
 policy-LocalFileLinks = Povolí vybraným stránkám odkazovat na soubory uložené na místním disku.
-
+policy-ManualAppUpdateOnly = Povolit pouze ruční aktualizace a uživatele na dostupnost aktualizací neupozorňovat.
 policy-NetworkPrediction = Povolení nebo zakázání přednačítání DNS.
-
 policy-OfferToSaveLogins =
     Nastavení dotazu na uložení přihlašovacích údajů v { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "loc") }
@@ -122,44 +92,32 @@ policy-OfferToSaveLogins =
         [neuter] { -brand-short-name(case: "loc") }
        *[other] aplikaci { -brand-short-name }
     }. Lze použít hodnoty true i false.
-
 policy-OfferToSaveLoginsDefault = Nastavení výchozí hodnoty pro to, zda má { -brand-short-name } nabízet ukládání přihlašovacích údajů. Platné hodnoty jsou true a false.
-
 policy-OverrideFirstRunPage = Nastavení vlastní stránky při prvním spuštění. Pokud nechcete při prvním spuštění zobrazovat žádnou stránku, nastavte toto pravidlo jako prázdné.
-
 policy-OverridePostUpdatePage = Nastavení vlastní stránky po aktualizaci. Pokud nechcete po aktualizaci zobrazovat žádnou stránku, nastavte toto pravidlo jako prázdné.
-
 policy-PasswordManagerEnabled = Povolení ukládat přihlašovací údaje do správce hesel.
-
 # PDF.js and PDF should not be translated
-policy-PDFjs = Zablokování nebo nastavení PDF prohlížeče PDF.js vestavěného v aplikaci { -brand-short-name }.
-
+policy-PDFjs =
+    Zablokování nebo nastavení PDF prohlížeče PDF.js vestavěného { -brand-short-name.gender ->
+        [masculine] ve { -brand-short-name(case: "loc") }
+        [feminine] v { -brand-short-name(case: "loc") }
+        [neuter] v { -brand-short-name(case: "loc") }
+       *[other] v aplikaci { -brand-short-name }
+    }.
 policy-Permissions2 = Nastavení oprávnění pro kameru, mikrofon, zjišťování polohy, oznámení a automatické přehrávání.
-
 policy-Preferences = Nastavení a uzamčení hodnoty pro podmnožinu předvoleb.
-
+policy-PrimaryPassword = Vyžadovat nebo zabránit používání hlavního hesla.
 policy-PromptForDownloadLocation = Zeptat se na adresář před stažením souboru.
-
 policy-Proxy = Nastavení proxy.
-
 policy-RequestedLocales = Nastavení seznamu požadovaných jazyků pro zobrazení aplikace, v pořadí podle preference.
-
 policy-SanitizeOnShutdown2 = Vymazání dat o prohlížení během vypnutí.
-
 policy-SearchEngines = Nastavení vyhledávačů. Toto pravidlo je dostupné jen pro verzi s rozšířenou podporou (ESR).
-
 policy-SearchSuggestEnabled = Povolení nebo zákaz našeptávání dotazů pro vyhledávač.
-
 # For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
 policy-SecurityDevices = Instalace modulů PKCS #11.
-
 policy-SSLVersionMax = Nastavení maximální verze SSL.
-
 policy-SSLVersionMin = Nastavení minimální verze SSL.
-
 policy-SupportMenu = Přidání vlastní položky nabídky s nápovědou.
-
 policy-UserMessaging = Nezobrazovat uživateli určité zprávy.
-
 # “format” refers to the format used for the value of this policy.
 policy-WebsiteFilter = Blokování návštěvy webových stránek. Více informací o formátu najdete v dokumentaci.
diff --git a/thunderbird-l10n/cs/localization/cs/messenger/preferences/preferences.ftl b/thunderbird-l10n/cs/localization/cs/messenger/preferences/preferences.ftl
index fbaf1568d4e882c831a466289e1c95a51f9637d7..8a961727d7fa2d8bf42201c38b423cb3970631e2 100644
--- a/thunderbird-l10n/cs/localization/cs/messenger/preferences/preferences.ftl
+++ b/thunderbird-l10n/cs/localization/cs/messenger/preferences/preferences.ftl
@@ -4,71 +4,46 @@
 
 close-button =
     .aria-label = Zavřít
-
 preferences-title =
     .title =
         { PLATFORM() ->
             [windows] Možnosti
            *[other] Předvolby
         }
-
 preferences-doc-title = Předvolby
-
 category-list =
     .aria-label = Kategorie
-
 pane-general-title = Obecné
 category-general =
     .tooltiptext = { pane-general-title }
-
 pane-compose-title = Vytváření
 category-compose =
     .tooltiptext = Vytváření
-
 pane-privacy-title = Soukromí a zabezpečení
 category-privacy =
     .tooltiptext = Soukromí a zabezpečení
-
 pane-chat-title = Chat
 category-chat =
     .tooltiptext = Chat
-
 pane-calendar-title = Kalendář
 category-calendar =
     .tooltiptext = Kalendář
-
 general-language-and-appearance-header = Zobrazení a jazyk stránek
-
 general-incoming-mail-header = Příchozí pošta
-
 general-files-and-attachment-header = Soubory a přílohy
-
 general-tags-header = Štítky
-
 general-reading-and-display-header = Čtení a zobrazení
-
 general-updates-header = Aktualizace
-
 general-network-and-diskspace-header = Síť a místo na disku
-
 general-indexing-label = indexování
-
 composition-category-header = Vytváření zpráv
-
 composition-attachments-header = Přílohy
-
 composition-spelling-title = Pravopis
-
 compose-html-style-title = Styl HTML
-
 composition-addressing-header = Adresování
-
 privacy-main-header = Soukromí
-
 privacy-passwords-header = Hesla
-
 privacy-junk-header = Nevyžádaná
-
 collection-header =
     Sběr a používání dat o { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "loc") }
@@ -76,10 +51,8 @@ collection-header =
         [neuter] { -brand-short-name(case: "loc") }
        *[other] aplikaci { -brand-short-name }
     }
-
 collection-description = S daty vám dáváme vždy na výběr a sbíráme jen data potřebná pro vylepšování aplikace { -brand-short-name }. Před odesíláním osobních dat vždy žádáme o váš souhlas.
 collection-privacy-notice = Zásady ochrany osobních údajů
-
 collection-health-report-telemetry-disabled =
     Odesílat { -vendor-short-name.gender ->
         [masculine] { -vendor-short-name(case: "dat") }
@@ -88,7 +61,6 @@ collection-health-report-telemetry-disabled =
        *[other] společnosti { -vendor-short-name }
     } technická data a data o interakcích není nadále povoleno. Všechna historická data budou smazána během 30 dnů.
 collection-health-report-telemetry-disabled-link = Zjistit více
-
 collection-health-report =
     .label =
         { -vendor-short-name.gender ->
@@ -99,11 +71,9 @@ collection-health-report =
         } technická data a data o interakcích
     .accesskey = r
 collection-health-report-link = Zjistit více
-
 # This message is displayed above disabled data sharing options in developer builds
 # or builds with no Telemetry support available.
 collection-health-report-disabled = Odesílání dat je zakázáno konfigurací tohoto sestavení
-
 collection-backlogged-crash-reports =
     .label =
         Odesílat nevyřízená hlášení o pádech { -brand-short-name.gender ->
@@ -114,32 +84,21 @@ collection-backlogged-crash-reports =
         } za vás
     .accesskey = c
 collection-backlogged-crash-reports-link = Zjistit více
-
 privacy-security-header = Zabezpečení
-
 privacy-scam-detection-title = Detekce podvodů
-
 privacy-anti-virus-title = Antivir
-
 privacy-certificates-title = Certifikáty
-
 chat-pane-header = Chat
-
 chat-status-title = Stav
-
 chat-notifications-title = Oznámení
-
 chat-pane-styling-header = Stylování
-
 choose-messenger-language-description = Vyberte požadovaný jazyk uživatelského rozhraní { -brand-short-name(case: "gen") }.
 manage-messenger-languages-button =
     .label = Vybrat alternativy…
     .accesskey = l
 confirm-messenger-language-change-description = Aby se změny projevily, restartujte { -brand-short-name(case: "acc") }
 confirm-messenger-language-change-button = Potvrdit a restartovat
-
 update-setting-write-failure-title = Chyba při ukládání nastavení aktualizací
-
 # Variables:
 #   $path (String) - Path to the configuration file
 # The newlines between the main text and the line containing the path is
@@ -153,9 +112,7 @@ update-setting-write-failure-message =
     } problém při ukládání změny nastavení. Změna těchto nastavení vyžaduje oprávnění k zápisu do níže uvedeného souboru. Vy nebo správce vašeho systému můžete tento problém vyřešit přidělením úplných oprávnění k tomuto souboru pro skupinu Users.
     
     Není možný zápis do souboru: { $path }
-
 update-in-progress-title = Probíhá aktualizace
-
 update-in-progress-message =
     { -brand-short-name.gender ->
         [masculine] Chcete, aby { -brand-short-name } pokračoval v aktualizaci?
@@ -163,14 +120,11 @@ update-in-progress-message =
         [neuter] Chcete, aby { -brand-short-name } pokračovalo v aktualizaci?
        *[other] Chcete, aby aplikace { -brand-short-name } pokračovala v aktualizaci?
     }
-
 update-in-progress-ok-button = &Nepokračovat
 # Continue is the cancel button so pressing escape or using a platform standard
 # method of closing the UI will not discard the update.
 update-in-progress-cancel-button = &Pokračovat
-
 addons-button = Rozšíření a vzhledy
-
 account-button = Nastavení účtu
 open-addons-sidebar-button = Doplňky a vzhledy
 
@@ -178,22 +132,18 @@ open-addons-sidebar-button = Doplňky a vzhledy
 
 # This message can be seen by trying to add a Master Password.
 master-password-os-auth-dialog-message-win = Pro nastavení hlavního hesla prosím zadejte své přihlašovací údaje k systému Windows. Toto opatření pomáhá v zabezpečení vašich účtů.
-
 # This message can be seen by trying to add a Master Password.
 # The macOS strings are preceded by the operating system with "Thunderbird is trying to "
 # and includes subtitle of "Enter password for the user "xxx" to allow this." These
 # notes are only valid for English. Please test in your locale.
 master-password-os-auth-dialog-message-macosx = vytvořit hlavní heslo
-
 # This message can be seen by trying to add a Primary Password.
 primary-password-os-auth-dialog-message-win = Pro nastavení hlavního hesla prosím zadejte své přihlašovací údaje k systému Windows. Toto opatření pomáhá v zabezpečení vašich účtů.
-
 # This message can be seen by trying to add a Primary Password.
 # The macOS strings are preceded by the operating system with "Thunderbird is trying to "
 # and includes subtitle of "Enter password for the user "xxx" to allow this." These
 # notes are only valid for English. Please test in your locale.
 primary-password-os-auth-dialog-message-macosx = vytvořit hlavní heslo
-
 # Don't change this label.
 master-password-os-auth-dialog-caption = { -brand-full-name }
 
@@ -203,7 +153,6 @@ focus-search-shortcut =
     .key = f
 focus-search-shortcut-alt =
     .key = k
-
 general-legend =
     Úvodní stránka { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -211,7 +160,6 @@ general-legend =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] aplikace { -brand-short-name }
     }
-
 start-page-label =
     .label =
         Při spuštění { -brand-short-name.gender ->
@@ -221,14 +169,12 @@ start-page-label =
            *[other] aplikace { -brand-short-name }
         } zobrazit úvodní stránku
     .accesskey = s
-
 location-label =
     .value = Adresa:
     .accesskey = A
 restore-default-label =
     .label = Obnovit výchozí
     .accesskey = O
-
 default-search-engine = Výchozí vyhledávač
 add-search-engine =
     .label = Přidat ze souboru
@@ -236,7 +182,6 @@ add-search-engine =
 remove-search-engine =
     .label = Odebrat
     .accesskey = r
-
 minimize-to-tray-label =
     .label =
         Při minimalizaci { -brand-short-name.gender ->
@@ -246,7 +191,6 @@ minimize-to-tray-label =
            *[other] aplikace jo
         } přesunout do oznamovací oblasti
     .accesskey = o
-
 new-message-arrival = Při přijetí nové zprávy:
 mail-play-sound-label =
     .label =
@@ -262,34 +206,26 @@ mail-play-sound-label =
 mail-play-button =
     .label = Přehrát
     .accesskey = h
-
 change-dock-icon = Změna nastavení pro ikonu aplikace
 app-icon-options =
     .label = Nastavení ikony aplikace…
     .accesskey = n
-
 notification-settings = Upozornění a výchozí zvuk můžete zakázat v systémovém nastavení panelu upozornění.
-
 animated-alert-label =
     .label = Zobrazit upozornění
     .accesskey = Z
 customize-alert-label =
     .label = Přizpůsobit…
     .accesskey = b
-
 tray-icon-label =
     .label = Zobrazit ikonu v oznamovací oblasti
     .accesskey = t
-
 biff-use-system-alert =
     .label = Použít systémová oznámení
-
 tray-icon-unread-label =
     .label = Zobrazit pro nepřečtené zprávy ikonu na liště
     .accesskey = t
-
 tray-icon-unread-description = Doporučeno, pokud máte na hlavním panelu jen malá tlačítka
-
 mail-system-sound-label =
     .label = Zvuk nové pošty v systému
     .accesskey = u
@@ -299,27 +235,21 @@ mail-custom-sound-label =
 mail-browse-sound-button =
     .label = Procházet…
     .accesskey = c
-
 enable-gloda-search-label =
     .label = Povolit globální hledání a indexaci
     .accesskey = g
-
 datetime-formatting-legend = Formátování data a času
 language-selector-legend = Jazyk
-
 allow-hw-accel =
     .label = Použít hardwarovou akceleraci, je-li dostupná
     .accesskey = h
-
 store-type-label =
     .value = Typ úložiště zpráv pro nové účty:
     .accesskey = T
-
 mbox-store-label =
     .label = Soubor pro každou složku (mbox)
 maildir-store-label =
     .label = Soubor pro každou zprávu (maildir)
-
 scrolling-legend = Posunování
 autoscroll-label =
     .label = Použít automatické posouvání
@@ -327,7 +257,6 @@ autoscroll-label =
 smooth-scrolling-label =
     .label = Použít plynulé posouvání
     .accesskey = l
-
 system-integration-legend = Nastavení systému
 always-check-default =
     .label =
@@ -341,7 +270,6 @@ always-check-default =
 check-default-button =
     .label = Zkontrolovat…
     .accesskey = Z
-
 # Note: This is the search engine name for all the different platforms.
 # Platforms that don't support it should be left blank.
 search-engine-name =
@@ -350,20 +278,16 @@ search-engine-name =
         [windows] Windows Search
        *[other] { "" }
     }
-
 search-integration-label =
     .label = Povolit službě { search-engine-name } prohledávat zprávy
     .accesskey = v
-
 config-editor-button =
     .label = Editor předvoleb…
     .accesskey = i
-
 return-receipts-description = Určuje, jak { -brand-short-name } zachází s potvrzením o přečtení
 return-receipts-button =
     .label = Potvrzení o přečtení…
     .accesskey = P
-
 update-app-legend =
     Aktualizace { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -371,11 +295,9 @@ update-app-legend =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] aplikace { -brand-short-name }
     }
-
 # Variables:
 #   $version (String): version of Thunderbird, e.g. 68.0.1
 update-app-version = Verze { $version }
-
 allow-description =
     Povolit { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "dat") }
@@ -389,15 +311,12 @@ automatic-updates-label =
 check-updates-label =
     .label = Vyhledávat aktualizace, ale zeptat se, zda mají být nainstalovány
     .accesskey = C
-
 update-history-button =
     .label = Zobrazit historii aktualizací
     .accesskey = b
-
 use-service =
     .label = K instalaci aktualizací použít službu na pozadí
     .accesskey = s
-
 cross-user-udpate-warning =
     Toto nastavení se uplatní pro všechny účty systému Windows a profily { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -410,7 +329,6 @@ cross-user-udpate-warning =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] aplikace { -brand-short-name }
     }.
-
 networking-legend = Připojení
 proxy-config-description =
     Konfigurovat připojení { -brand-short-name.gender ->
@@ -419,23 +337,21 @@ proxy-config-description =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] aplikace { -brand-short-name }
     } k internetu.
-
 network-settings-button =
     .label = Nastavení…
     .accesskey = a
-
 offline-legend = Režim offline
 offline-settings = Konfigurovat režim offline
-
 offline-settings-button =
     .label = Režim offline…
     .accesskey = o
-
 diskspace-legend = Místo na disku
 offline-compact-folder =
     .label = Provést údržbu složek, ušetří-li se celkově přes
     .accesskey = k
-
+offline-compact-folder-automatically =
+    .label = Před provedením údržby se vždy zeptat
+    .accesskey = b
 compact-folder-size =
     .value = MB
 
@@ -446,7 +362,6 @@ compact-folder-size =
 use-cache-before =
     .value = Použít maximálně
     .accesskey = P
-
 use-cache-after = MB diskové mezipaměti
 
 ##
@@ -454,42 +369,31 @@ use-cache-after = MB diskové mezipaměti
 smart-cache-label =
     .label = Nepoužívat automatickou správu mezipaměti
     .accesskey = e
-
 clear-cache-button =
     .label = Vymazat
     .accesskey = m
-
 fonts-legend = Písma a barvy
-
 default-font-label =
     .value = Výchozí písmo:
     .accesskey = p
-
 default-size-label =
     .value = Velikost:
     .accesskey = e
-
 font-options-button =
     .label = Rozšířené…
     .accesskey = o
-
 color-options-button =
     .label = Barvy…
     .accesskey = B
-
 display-width-legend = Zobrazení prostých textových zpráv a článků
-
 # Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
 convert-emoticons-label =
     .label = Zobrazit smajlíky jako ikony
     .accesskey = Z
-
 display-text-label = Použít následující nastavení pro zobrazení citovaných zpráv v čistém textu:
-
 style-label =
     .value = Styl:
     .accesskey = S
-
 regular-style-item =
     .label = Normální
 bold-style-item =
@@ -498,36 +402,27 @@ italic-style-item =
     .label = Kurzíva
 bold-italic-style-item =
     .label = Tučná kurzíva
-
 size-label =
     .value = Velikost:
     .accesskey = V
-
 regular-size-item =
     .label = Normální
 bigger-size-item =
     .label = Větší
 smaller-size-item =
     .label = Menší
-
 quoted-text-color =
     .label = Barva:
     .accesskey = a
-
 search-input =
     .placeholder = Hledat
-
 search-handler-table =
     .placeholder = Filtrovat typy obsahu a akcí
 
 
-
-
-
 save-to-label =
     .label = Ukládat všechny soubory do složky
     .accesskey = U
-
 choose-folder-label =
     .label =
         { PLATFORM() ->
@@ -539,30 +434,22 @@ choose-folder-label =
             [macos] V
            *[other] r
         }
-
 always-ask-label =
     .label = U každého souboru se zeptat, kam ho uložit
     .accesskey = k
-
-
 display-tags-text = Štítky lze použít pro rozřazení zpráv dle kategorií a priorit.
-
 new-tag-button =
     .label = Nový…
     .accesskey = N
-
 edit-tag-button =
     .label = Upravit…
     .accesskey = U
-
 delete-tag-button =
     .label = Smazat
     .accesskey = S
-
 auto-mark-as-read =
     .label = Automaticky označit zprávu jako přečtenou
     .accesskey = A
-
 mark-read-no-delay =
     .label = Okamžitě po zobrazení
     .accesskey = O
@@ -573,33 +460,26 @@ mark-read-no-delay =
 mark-read-delay =
     .label = Až po
     .accesskey = p
-
 seconds-label = sekundách od zobrazení
 
 ##
 
 open-msg-label =
     .value = Otevírat zprávy v:
-
 open-msg-tab =
     .label = Novém panelu
     .accesskey = p
-
 open-msg-window =
     .label = Novém okně
     .accesskey = N
-
 open-msg-ex-window =
     .label = Existujícím okně se zprávou
     .accesskey = x
-
 close-move-delete =
     .label = Při přesunutí nebo smazání zprávy zavřít panel/okno
     .accesskey = s
-
 display-name-label =
     .value = Zobrazované jméno:
-
 condensed-addresses-label =
     .label = U lidí z mých kontaktů zobrazovat pouze jméno
     .accesskey = U
@@ -609,13 +489,10 @@ condensed-addresses-label =
 forward-label =
     .value = Přeposílat zprávy:
     .accesskey = s
-
 inline-label =
     .label = Vložené
-
 as-attachment-label =
     .label = Jako přílohu
-
 extension-label =
     .label = Přidat k názvu souboru příponu
     .accesskey = d
@@ -626,7 +503,6 @@ extension-label =
 auto-save-label =
     .label = Automaticky ukládat každých
     .accesskey = A
-
 auto-save-end = minut
 
 ##
@@ -634,151 +510,112 @@ auto-save-end = minut
 warn-on-send-accel-key =
     .label = Při odeslání zprávy pomocí klávesové zkratky požadovat potvrzení
     .accesskey = i
-
 spellcheck-label =
     .label = Před odesláním zprávy zkontrolovat pravopis
     .accesskey = P
-
 spellcheck-inline-label =
     .label = Kontrolovat pravopis při psaní
     .accesskey = K
-
 language-popup-label =
     .value = Jazyk:
     .accesskey = J
-
 download-dictionaries-link = Stáhnout další slovníky
-
 font-label =
     .value = Písmo:
     .accesskey = m
-
 font-size-label =
     .value = Velikost:
     .accesskey = s
-
 default-colors-label =
     .label = Použít výchozí barvy čtečky
     .accesskey = v
-
 font-color-label =
     .value = Text:
     .accesskey = T
-
 bg-color-label =
     .value = Barva pozadí:
     .accesskey = P
-
 restore-html-label =
     .label = Obnovit výchozí
     .accesskey = O
-
 default-format-label =
     .label = Ve výchozím nastavení používat formát odstavce namísto základního textu
     .accesskey = D
-
 format-description = Nastavení chování textového formátu
-
 send-options-label =
     .label = Předvolby odesílání…
     .accesskey = e
-
 autocomplete-description = Při psaní adresy hledat vhodné položky v:
-
 ab-label =
     .label = Místní kontakty
     .accesskey = M
-
 directories-label =
     .label = Adresářový server:
     .accesskey = s
-
 directories-none-label =
     .none = Žádný
-
 edit-directories-label =
     .label = Upravit adresáře…
     .accesskey = U
-
 email-picker-label =
     .label = Automaticky přidat odchozí e-mailovou adresu do složky:
     .accesskey = A
-
 default-directory-label =
     .value = Výchozí počáteční složka v okně kontaktů:
     .accesskey = c
-
 default-last-label =
     .none = Poslední používaná složka
-
 attachment-label =
     .label = Kontrolovat zapomenuté přílohy
     .accesskey = n
-
 attachment-options-label =
     .label = Klíčová slova…
     .accesskey = K
-
 enable-cloud-share =
     .label = Nabízet nahrávání na úložiště pro soubory větší než
 cloud-share-size =
     .value = MB
-
 add-cloud-account =
     .label = Přidat…
     .accesskey = a
     .defaultlabel = Přidat…
-
 remove-cloud-account =
     .label = Odebrat
     .accesskey = d
-
 find-cloud-providers =
     .value = Najít další poskytovatele…
-
 cloud-account-description = Přidat nové webové úložiště pro odesílání příloh
 
-
 ## Privacy Tab
 
 mail-content = Obsah e-mailu
-
 remote-content-label =
     .label = Povolit vzdálený obsah ve zprávách
     .accesskey = P
-
 exceptions-button =
     .label = Výjimky…
     .accesskey = m
-
 remote-content-info =
     .value = Zjistit více o problémech se soukromím u vzdáleného obsahu
-
 web-content = Webový obsah
-
 history-label =
     .label = Pamatovat si navštívené stránky a adresy
     .accesskey = a
-
 cookies-label =
     .label = Povolit serverům ukládat cookies
     .accesskey = c
-
 third-party-label =
     .value = Povolit cookies třetích stran:
     .accesskey = i
-
 third-party-always =
     .label = Vždy
 third-party-never =
     .label = Nikdy
 third-party-visited =
     .label = Pouze navštívené
-
 keep-label =
     .value = Ponechat do:
     .accesskey = d
-
 keep-expire =
     .label = konce doby platnosti
 keep-close =
@@ -791,109 +628,77 @@ keep-close =
         }
 keep-ask =
     .label = vždy se zeptat
-
 cookies-button =
     .label = Správce cookies…
     .accesskey = S
-
 do-not-track-label =
     .label = Říci webovým stránkám pomocí signálu Do Not Track, že nechcete být sledováni
     .accesskey = n
-
 learn-button =
     .label = Zjistit více
-
 passwords-description = { -brand-short-name } si může pamatovat vaše přihlašovací údaje pro jednotlivé účty, takže je nebudete muset znovu zadávat.
-
 passwords-button =
     .label = Zobrazit hesla…
     .accesskey = h
-
 master-password-description = Hlavní heslo, je-li nastaveno, chrání všechna vaše ostatní hesla. Jeho vložení je ale vyžadováno jednou během relace.
-
 master-password-label =
     .label = Použít hlavní heslo
     .accesskey = P
-
 master-password-button =
     .label = Změnit hlavní heslo…
     .accesskey = m
-
-
 primary-password-description = Hlavní heslo, je-li nastaveno, chrání všechna vaše ostatní hesla. Jeho vložení je ale vyžadováno jednou během relace.
-
 primary-password-label =
     .label = Použít hlavní heslo
     .accesskey = P
-
 primary-password-button =
     .label = Změnit hlavní heslo…
     .accesskey = m
-
 forms-primary-pw-fips-title = Momentálně jste v režimu FIPS, který vyžaduje neprázdné hlavní heslo.
 forms-master-pw-fips-desc = Neúspěšná změna hesla
-
-
 junk-description = Další nastavení nevyžádané pošty lze provést v dialogu Nastavení účtu.
-
 junk-label =
     .label = Pokud ručně označím zprávy jako nevyžádané:
     .accesskey = r
-
 junk-move-label =
     .label = Přesunout je do složky „Nevyžádaná“
     .accesskey = n
-
 junk-delete-label =
     .label = Smazat
     .accesskey = S
-
 junk-read-label =
     .label = Označit zprávy rozpoznané jako nevyžádaná pošta jako přečtené
     .accesskey = O
-
 junk-log-label =
     .label = Povolit protokolování adaptivní nevyžádané pošty
     .accesskey = P
-
 junk-log-button =
     .label = Zobrazit protokol
     .accesskey = Z
-
 reset-junk-button =
     .label = Vymazat naučená pravidla
     .accesskey = V
-
 phishing-description = { -brand-short-name } může analyzovat zprávy na podvodnou poštu pomocí odhalování technik používaných na vaše oklamání.
-
 phishing-label =
     .label = Upozornit, pokud čtená zpráva je podezřelá na podvodnou poštu
     .accesskey = U
-
 antivirus-description = { -brand-short-name } může antivirovým programům umožnit analyzování zpráv příchozí pošty na výskyt virů ještě dříve, než jsou tyto zprávy uloženy do složek pošty.
-
 antivirus-label =
     .label = Povolit antivirovým klientům prohlížet jednotlivé příchozí zprávy
     .accesskey = P
-
 certificate-description = Pokud server vyžaduje osobní certifikát:
-
 certificate-auto =
     .label = Zvolit automaticky
     .accesskey = a
-
 certificate-ask =
     .label = Vždy se zeptat
     .accesskey = d
-
 ocsp-label =
     .label = Aktuální platnost certifikátů ověřovat na serverech OCSP
     .accesskey = p
-
 certificate-button =
     .label = Spravovat certifikáty…
     .accesskey = c
-
 security-devices-button =
     .label = Bezpečnostní zařízení…
     .accesskey = B
@@ -909,10 +714,8 @@ startup-label =
            *[other] aplikace { -brand-short-name }
         }:
     .accesskey = s
-
 offline-label =
     .label = Ponechat mé účty chatu offline
-
 auto-connect-label =
     .label = Automaticky připojit mé účty chatu
 
@@ -925,7 +728,6 @@ auto-connect-label =
 idle-label =
     .label = Zobrazit se mým kontaktům jako Nečinný po
     .accesskey = N
-
 idle-time-label = minutách nečinnosti
 
 ##
@@ -933,24 +735,19 @@ idle-time-label = minutách nečinnosti
 away-message-label =
     .label = a nastavit stav Pryč s touto zprávou:
     .accesskey = r
-
 send-typing-label =
     .label = Odesílat v konverzaci upozornění, že píši
     .accesskey = a
-
 notification-label = Při přijetí zprávy určené mně:
-
 show-notification-label =
     .label = Zobrazit upozornění
     .accesskey = Z
-
 notification-all =
     .label = se jménem odesílatele a náhledem zprávy
 notification-name =
     .label = pouze se jménem odesílatele
 notification-empty =
     .label = bez dalších informací
-
 notification-type-label =
     .label =
         { PLATFORM() ->
@@ -962,31 +759,24 @@ notification-type-label =
             [macos] o
            *[other] F
         }
-
 chat-play-sound-label =
     .label = Přehrát zvuk
     .accesskey = P
-
 chat-play-button =
     .label = Přehrát
     .accesskey = h
-
 chat-system-sound-label =
     .label = Zvuk nové pošty v systému
     .accesskey = u
-
 chat-custom-sound-label =
     .label = Vlastní zvukový soubor
     .accesskey = V
-
 chat-browse-sound-button =
     .label = Procházet…
     .accesskey = c
-
 theme-label =
     .value = Motiv vzhledu:
     .accesskey = t
-
 style-thunderbird =
     .label = Thunderbird
 style-bubbles =
@@ -997,19 +787,15 @@ style-paper =
     .label = Papírové listy
 style-simple =
     .label = Jednoduchý
-
 preview-label = Náhled:
 no-preview-label = Náhled není k dispozici
 no-preview-description = Tento motiv vzhledu není platný, nebo je momentálně nedostupný (zakázaný doplněk, nouzový režim, …).
-
 chat-variant-label =
     .value = Varianta:
     .accesskey = V
-
 chat-header-label =
     .label = Zobrazit hlavičku
     .accesskey = h
-
 # This is used to determine the width of the search field in about:preferences,
 # in order to make the entire placeholder string visible
 #
@@ -1025,7 +811,6 @@ search-input-box =
             [windows] Najít v možnostech
            *[other] Najít v předvolbách
         }
-
 # This is used to determine the width of the search field in about:preferences,
 # in order to make the entire placeholder string visible
 #
@@ -1041,14 +826,12 @@ search-preferences-input =
 ## Preferences UI Search Results
 
 search-results-header = Výsledky vyhledávání
-
 # `<span data-l10n-name="query"></span>` will be replaced by the search term.
 search-results-empty-message =
     { PLATFORM() ->
         [windows] Je nám líto, pro „<span data-l10n-name="query"></span>“ jsme v možnostech nic nenašli.
        *[other] Je nám líto, pro „<span data-l10n-name="query"></span>“ jsme v předvolbách nic nenašli.
     }
-
 search-results-help-link =
     Potřebujete pomoc? Navštivte <a data-l10n-name="url">Podporu { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
diff --git a/thunderbird-l10n/cs/localization/cs/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/cs/localization/cs/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..000c0dd0670cf38440f1a6bfc839133b2a614ae6
--- /dev/null
+++ b/thunderbird-l10n/cs/localization/cs/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,43 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title =
+    Dokončit instalaci { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "gen") }
+        [feminine] { -brand-short-name(case: "gen") }
+        [neuter] { -brand-short-name(case: "gen") }
+       *[other] aplikace { -brand-short-name }
+    }?
+prompt-to-install-message =
+    Dokončením tohoto instalačního kroku { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "gen") }
+        [feminine] { -brand-short-name(case: "gen") }
+        [neuter] { -brand-short-name(case: "gen") }
+       *[other] aplikace { -brand-short-name }
+    } zajistíte její aktuálnost a zabráníte ztrátě dat. { -brand-short-name } se objeví ve složce s aplikacemi a v Docku.
+prompt-to-install-yes-button = Instalovat
+prompt-to-install-no-button = Neinstalovat
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title =
+    { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "acc") }
+        [feminine] { -brand-short-name(case: "acc") }
+        [neuter] { -brand-short-name(case: "acc") }
+       *[other] Aplikaci { -brand-short-name }
+    } se nepodařilo nainstalovat.
+install-failed-message =
+    { -brand-short-name.gender ->
+        [masculine] { -brand-short-name(case: "acc") }
+        [feminine] { -brand-short-name(case: "acc") }
+        [neuter] { -brand-short-name(case: "acc") }
+       *[other] Aplikaci { -brand-short-name }
+    } se nepodařilo nainstalovat, ale bude nadále fungovat.
diff --git a/thunderbird-l10n/cs/localization/cs/toolkit/global/textActions.ftl b/thunderbird-l10n/cs/localization/cs/toolkit/global/textActions.ftl
index 00a50db5bbbd2628660ab8777eec6355cc3c649d..a7fd559237c5710b85867ebb9567e68584d9b417 100644
--- a/thunderbird-l10n/cs/localization/cs/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/cs/localization/cs/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Zpět
     .accesskey = Z
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Znovu
     .accesskey = o
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Vyjmout
     .accesskey = y
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopírovat
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Vložit
     .accesskey = l
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Smazat
     .accesskey = m
-
 text-action-select-all =
     .label = Vybrat vše
     .accesskey = a
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Nenalezeny žádné návrhy
+text-action-spell-add-to-dictionary =
+    .label = Přidat do slovníku
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Vrátit přidání do slovníku
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Kontrolovat pravopis
+    .accesskey = p
+text-action-spell-add-dictionaries =
+    .label = Přidat slovník…
+    .accesskey = a
+text-action-spell-dictionaries =
+    .label = Jazyky
+    .accesskey = J
diff --git a/thunderbird-l10n/cs/manifest.json b/thunderbird-l10n/cs/manifest.json
index 474a666b16abc088509ccd6121663413009f2137..fef3ca41108b88ffa1d02cbe3fbee448a4006535 100644
--- a/thunderbird-l10n/cs/manifest.json
+++ b/thunderbird-l10n/cs/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Czech (CZ) Language Pack",
   "description": "Language pack for Thunderbird for cs",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "cs": {
-      "version": "20210818142522",
+      "version": "20210901071239",
       "chrome_resources": {
         "alerts": "chrome/cs/locale/cs/alerts/",
         "autoconfig": "chrome/cs/locale/cs/autoconfig/",
diff --git a/thunderbird-l10n/cy/chrome/cy/locale/cy/global/layout/htmlparser.properties b/thunderbird-l10n/cy/chrome/cy/locale/cy/global/layout/htmlparser.properties
index d3f7cd74c8c50ed3e409046a3a060ffbc0dea19f..2809ee14ab976df7a0fe9262e841eca5f45c25e8 100644
--- a/thunderbird-l10n/cy/chrome/cy/locale/cy/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/cy/chrome/cy/locale/cy/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Diwedd ffeil o fewn dynodwr system.
 errExpectedSystemId=Disgwyl dynodwr system ond diweddodd y doctype.
 errMissingSpaceBeforeDoctypeName=Bwlch coll o flaen ewn doctype.
 errHyphenHyphenBang=“--!” wedi ei ganfod mewn sylw.
+errNestedComment=Wedi gweld “<!--” o fewn sylw. Achos tebygol: Sylw wedi'i nythu (dim caniatád).
 errNcrZero=Cyfeirnod nod wedi estyn i sero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Dim bwlch rhwng allweddair “SYSTEM” doctype a'r dyfyniad.
 errNoSpaceBetweenPublicAndSystemIds=Dim bwlch rhwng dynodwyr doctype cyhoeddus a system.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Elfennau heb eu cau ar y stac.
 errEndTagDidNotMatchCurrentOpenElement=Nid yw'r tag diweddu “%1$S” yn cydweddu ag enw'r elfen sydd ar agor ar hyn o bryd (“%2$S”).
 errEndTagViolatesNestingRules=Mae tag diweddu “%1$S” yn torri rheolau nythu.
 errEndWithUnclosedElements=Tag diweddu “%1$S” wedi ei weld, ond roedd yna elfennau heb eu cau.
+errListUnclosedStartTags=Elfen neu elfennau heb eu cau.
diff --git a/thunderbird-l10n/cy/localization/cy/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/cy/localization/cy/messenger/messengercompose/messengercompose.ftl
index 698757955138da40a42da00486c05d60823d89bc..aca45a0b8703beb587050af93c56919ea09476b7 100644
--- a/thunderbird-l10n/cy/localization/cy/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/cy/localization/cy/messenger/messengercompose/messengercompose.ftl
@@ -174,12 +174,35 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Dangos Maes { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Bydd y  { $count } derbyniwr yn At a Cc weld cyfeiriad ei gilydd. Gallwch osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [zero] Nid oes gan eich neges unrhyw dderbynydd.
+        [one] osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+        [two] Bydd y  { $count } derbyniwr yn At a Cc yn gweld cyfeiriad ei gilydd. Gallwch osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+        [few] Bydd y  { $count } derbyniwr yn At a Cc yn gweld cyfeiriad ei gilydd. Gallwch osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+        [many] Bydd y  { $count } derbyniwr yn At a Cc yn gweld cyfeiriad ei gilydd. Gallwch osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+       *[other] Bydd y  { $count } derbyniwr yn At a Cc yn gweld cyfeiriad ei gilydd. Gallwch osgoi datgelu derbynwyr trwy ddefnyddio Bcc yn lle.
+    }
 many-public-recipients-bcc =
     .label = Defnyddio Bcc yn lle hynny
     .accesskey = D
 many-public-recipients-ignore =
     .label = Cadw Derbynwyr yn Gyhoeddus
     .accesskey = G
+many-public-recipients-prompt-title = Gormod o Dderbynwyr Cyhoeddus
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [zero] Nid oes gan eich neges unrhyw dderbyniwr.
+        [one] Mae gan eich neges dderbynwyr cyhoeddus. Gall hyn fod yn bryder preifatrwydd. Gallwch osgoi datgelu derbynwyr trwy symud derbynwyr o At /Cc i Bcc yn lle.
+        [two] Mae gan eich neges { $count } derbynwyr cyhoeddus, a fydd yn gallu gweld cyfeiriadau ei gilydd. Gall hyn fod yn bryder preifatrwydd. Gallwch osgoi datgelu derbynwyr trwy symud derbynwyr o At /Cc i Bcc yn lle.
+        [few] Mae gan eich neges { $count } derbynwyr cyhoeddus, a fydd yn gallu gweld cyfeiriadau ei gilydd. Gall hyn fod yn bryder preifatrwydd. Gallwch osgoi datgelu derbynwyr trwy symud derbynwyr o At /Cc i Bcc yn lle.
+        [many] Mae gan eich neges { $count } derbynwyr cyhoeddus, a fydd yn gallu gweld cyfeiriadau ei gilydd. Gall hyn fod yn bryder preifatrwydd. Gallwch osgoi datgelu derbynwyr trwy symud derbynwyr o At /Cc i Bcc yn lle.
+       *[other] Mae gan eich neges { $count } derbynwyr cyhoeddus, a fydd yn gallu gweld cyfeiriadau ei gilydd. Gall hyn fod yn bryder preifatrwydd. Gallwch osgoi datgelu derbynwyr trwy symud derbynwyr o At /Cc i Bcc yn lle.
+    }
+many-public-recipients-prompt-cancel = Diddymu Anfon
+many-public-recipients-prompt-send = Anfonwch Beth Bynnag
 
 ## Notifications
 
diff --git a/thunderbird-l10n/cy/localization/cy/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/cy/localization/cy/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/cy/localization/cy/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/cy/manifest.json b/thunderbird-l10n/cy/manifest.json
index 092b03c49a18a97c06f9aa78810a40ca153a5790..780b7e2df74a5af7eb0500423b28807a88b77c1a 100644
--- a/thunderbird-l10n/cy/manifest.json
+++ b/thunderbird-l10n/cy/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Cymraeg Language Pack",
   "description": "Language pack for Thunderbird for cy",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "cy": {
-      "version": "20210817095645",
+      "version": "20210831120521",
       "chrome_resources": {
         "alerts": "chrome/cy/locale/cy/alerts/",
         "autoconfig": "chrome/cy/locale/cy/autoconfig/",
diff --git a/thunderbird-l10n/da/localization/da/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/da/localization/da/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/da/localization/da/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/da/manifest.json b/thunderbird-l10n/da/manifest.json
index e02fd7ff589b0b152fbe5d62cc74aa09fa940d0b..bdd2e2a18eef2b2771e5875c65e14cac4f52d83e 100644
--- a/thunderbird-l10n/da/manifest.json
+++ b/thunderbird-l10n/da/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Dansk (da) Language Pack",
   "description": "Language pack for Thunderbird for da",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "da": {
-      "version": "20210813135544",
+      "version": "20210831120535",
       "chrome_resources": {
         "alerts": "chrome/da/locale/da/alerts/",
         "autoconfig": "chrome/da/locale/da/autoconfig/",
diff --git a/thunderbird-l10n/de/chrome/de/locale/de/global/layout/htmlparser.properties b/thunderbird-l10n/de/chrome/de/locale/de/global/layout/htmlparser.properties
index 60c138969660b3f3b9eb671df3e4127d36dae219..0de736505ddb22da1c5da4cff38ca2d8daf36c05 100644
--- a/thunderbird-l10n/de/chrome/de/locale/de/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/de/chrome/de/locale/de/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Ende der Datei in System-Identifikator.
 errExpectedSystemId=Ein System-Identifikator wurde erwartet, aber der Doctype endete.
 errMissingSpaceBeforeDoctypeName=Fehlendes Leerzeichen vor dem Doctype-Namen.
 errHyphenHyphenBang=“--!” in Kommentar gefunden.
+errNestedComment="<!--" wurde in einem Kommentar entdeckt. Wahrscheinliche Ursache: Verschachtelte Kommentare (nicht erlaubt).
 errNcrZero=Zeichenreferenz wird auf null aufgelöst.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Kein Leerzeichen zwischen dem Schlüsselwort “SYSTEM” des Doctypes und dem Zitat.
 errNoSpaceBetweenPublicAndSystemIds=Kein Leerzeichen zwischen den öffentlichen und System-Identifikatoren des Doctypes.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Nicht geschlossene Elemente am Stapel.
 errEndTagDidNotMatchCurrentOpenElement=End-Tag “%1$S” stimmt nicht mit dem Namen des aktuell offenen Elements überein (“%2$S”).
 errEndTagViolatesNestingRules=End-Tag “%1$S” bricht die Schachtelungsregeln.
 errEndWithUnclosedElements=End-Tag für “%1$S” wurde entdeckt, aber es gab nicht geschlossene Elemente.
+errListUnclosedStartTags=Nicht geschlossenes Element oder Elemente.
diff --git a/thunderbird-l10n/de/chrome/de/locale/de/global/layout_errors.properties b/thunderbird-l10n/de/chrome/de/locale/de/global/layout_errors.properties
index e797f7b029a2072f0c7343335030d16b7ae70835..a8584ae91fb6b881055dffe6d558676caf128287 100644
--- a/thunderbird-l10n/de/chrome/de/locale/de/global/layout_errors.properties
+++ b/thunderbird-l10n/de/chrome/de/locale/de/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=Dem "coords"-Attribut des <area shape="poly">-Tags
 TablePartRelPosWarning=Relative Positionierung von Tabellenzeilen und Zeilengruppen wird jetzt unterstützt. Diese Website muss möglicherweise aktualisiert werden, weil sie sich darauf verlassen könnte, dass diese Funktion keine Wirkung hat.
 ScrollLinkedEffectFound2=Diese Website verwendet anscheinend einen scroll-verknüpften Positionierungseffekt. Dies könnte mit asynchronem Verschieben (Panning) schlecht zusammenspielen; siehe https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects für weitere Details und nehmen Sie an der Diskussion über damit verbundene Werkzeuge und Funktionen teil!
 
+ScrollLinkedEffectFound3=Diese Website verwendet anscheinend einen scroll-verknüpften Positionierungseffekt. Dies könnte mit asynchronem Verschieben (Panning) schlecht zusammenspielen; siehe https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html für weitere Details und um an der Diskussion über damit verbundene Werkzeuge und Funktionen teilzunehmen.
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
diff --git a/thunderbird-l10n/de/chrome/de/locale/de/global/security/security.properties b/thunderbird-l10n/de/chrome/de/locale/de/global/security/security.properties
index 609466566f44386798433a501f857ee2e367c133..a2b9c9a380bc7b6d8a5e9ed2f05fda5bbb07e536 100644
--- a/thunderbird-l10n/de/chrome/de/locale/de/global/security/security.properties
+++ b/thunderbird-l10n/de/chrome/de/locale/de/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation="HTTP Referrer"-Kopfzeile: Länge ist größer als
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation="HTTP Referrer"-Kopfzeile: Länge des Ursprungs im Referrer ist größer als Begrenzung von "%1$S" Bytes - Referrer mit Ursprung "%2$S" wird entfernt.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Weniger eingeschränkte Richtlinien, einschließlich "no-referrer-when-downgrade", "origin-when-cross-origin" und "unsafe-url", werden für Website-übergreifende Anfragen bald ignoriert: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Die weniger eingeschränkte Referrer Policy "%1$S" für die Website-übergreifende Anfrage wird ignoriert: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Beim Laden von "%2$S" wurde eine ungültige X-Frame-Options-Kopfzeile gefunden: "%1$S" ist keine gültige Direktive.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Upgrade der unsicheren Anfrage "%1$S" zur Verwendung v
 HTTPSOnlyNoUpgradeException = Unsichere Anfrage "%1$S" erhält aufgrund einer Ausnahme nicht kein Upgrade.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Upgrade der unsicheren Anfrage "%1$S" schlug fehl. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Upgrade der unsicheren Anfrage "%S" schlug fehl. Anfrage wird wieder auf "http" heruntergestuft.
 
diff --git a/thunderbird-l10n/de/localization/de/devtools/client/tooltips.ftl b/thunderbird-l10n/de/localization/de/devtools/client/tooltips.ftl
index d362e33cc82fcff4577d1df7c84daeabe4398aa4..7657fbdbf7c65189fe2c172a275208c679a92b18 100644
--- a/thunderbird-l10n/de/localization/de/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/de/localization/de/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Weitere Informationen</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil das Element weder ein Flex- noch ein Grid-Container ist.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es kein Flex-, Grid- oder Mehrspalten-Container ist.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil das Element weder ein Flex- noch ein Grid-Element ist.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es kein Grid-Element ist.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong>  hat bei diesem Element keine Wirkung, weil es kein Grid-Container ist.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es kein Flex-Element ist.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es kein Flex-Container ist.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es weder ein inline- noch ein table-cell-Element ist.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil sein display-Wert <strong>{ $display }</strong> ist.
-
 inactive-css-not-display-block-on-floated = Der Wert <strong>display</strong> wurde automatisch auf den Wert <strong>block</strong> geändert, weil das Element auf <strong>float</strong> gesetzt wurde.
-
 inactive-css-property-is-impossible-to-override-in-visited = <strong>{ $property }</strong> kann aufgrund der Einschränkung durch <strong>:visited</strong> nicht überschrieben werden.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es kein positioniertes Element ist.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil <strong>overflow:hidden</strong> nicht gesetzt ist.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil sein <strong>outline-style</strong> den Wert <strong>auto</strong> oder <strong>none</strong> hat.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> hat keine Wirkung auf interne Tabellenelemente.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> hat keine Wirkung auf interne Tabellenelemente außer Tabellenzellen.
-
 inactive-css-not-table = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es keine Tabelle ist.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> hat bei diesem Element keine Wirkung, weil es nicht scrollt.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Versuchen Sie, <strong>display:grid</strong> oder <strong>display:flex</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Versuchen Sie, <strong>display:grid</strong>, <strong>display:flex</strong> oder <strong>columns:2</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Versuchen Sie, <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> oder <strong>display:inline-flex</strong> hinzuzufügen. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Versuchen Sie, <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> oder <strong>display:inline-flex</strong> zum übergeordneten Element hinzuzufügen. { learn-more }
 inactive-css-not-grid-item-fix-2 = Versuchen Sie, <strong>display:grid</strong> oder <strong>display:inline-grid</strong>zum übergeordneten Element hinzuzufügen. { learn-more }
-
 inactive-css-not-grid-container-fix = Versuchen Sie, <strong>display:grid</strong> oder <strong>display:inline-grid</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Versuchen Sie, <strong>display:flex</strong> oder <strong>display:inline-flex</strong> zum übergeordneten Element hinzuzufügen. { learn-more }
-
 inactive-css-not-flex-container-fix = Versuchen Sie, <strong>display:flex</strong> oder <strong>display:inline-flex</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Versuchen Sie, <strong>display:inline</strong> oder <strong>display:table-cell</strong> hinzuzufügen. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Versuchen Sie, <strong>display:inline-block</strong> oder <strong>display:block</strong> hinzuzufügen. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Versuchen Sie, <strong>display:inline-block</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Versuchen Sie, <strong>float</strong> zu entfernen oder <strong>display:block</strong> hinzuzufügen. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Versuchen Sie, die <strong>position</strong>-Eigenschaft auf etwas anderes als <strong>static</strong> zu setzen. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Versuchen Sie, <strong>overflow:hidden</strong> hinzuzufügen. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Versuchen Sie, die <strong>display</strong>-Eigenschaft auf etwas anderes als <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> oder <strong>table-footer-group</strong> zu setzen. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Versuchen Sie, die <strong>display</strong>-Eigenschaft auf etwas anderes als <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> oder <strong>table-footer-group</strong> zu setzen. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Versuchen Sie, die <strong>outline-style</strong>-Eigenschaft auf etwas anderes als <strong>auto</strong> oder<strong>none</strong> zu setzen. { learn-more }
-
 inactive-css-not-table-fix = Versuchen Sie, <strong>display:table</strong> oder <strong>display:inline-table</strong> hinzuzufügen. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Versuchen Sie, <strong>overflow:auto</strong>, <strong>overflow:scroll</strong> oder <strong>overflow:hidden</strong> hinzuzufügen. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Versuchen Sie, <strong>o
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> wird in den folgenden Browsern nicht unterstützt:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> war eine experimentelle Eigenschaft, die jetzt nach W3C-Standards veraltet ist. Sie wird in den folgenden Browsern nicht unterstützt:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> war eine experimentelle Eigenschaft, die jetzt nach W3C-Standards veraltet ist.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> ist nach W3C-Standards veraltet. Es wird in den folgenden Browsern nicht unterstützt:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> ist nach W3C-Standards veraltet.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> ist eine experimentelle Eigenschaft. Sie wird in den folgenden Browsern nicht unterstützt:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> ist eine experimentelle Eigenschaft.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Weitere Informationen</span> über <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/de/localization/de/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/de/localization/de/toolkit/about/aboutNetworking.ftl
index 394b53ae8a5d9047ea97eb886efbf5b823a533b8..a31bb242e2ab764d5c1aac44e4944888036d7abc 100644
--- a/thunderbird-l10n/de/localization/de/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/de/localization/de/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Aktiv
 about-networking-idle = Untätig
 about-networking-host = Host
 about-networking-tcp = TCP
+about-networking-type = Typ
 about-networking-sent = Gesendet
 about-networking-received = Empfangen
 about-networking-family = Klasse
diff --git a/thunderbird-l10n/de/localization/de/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/de/localization/de/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..61dea562b1edccfe74687c386e2eb4dd4795e529
--- /dev/null
+++ b/thunderbird-l10n/de/localization/de/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Installation von { -brand-short-name } abschließen?
+prompt-to-install-message = Schließen Sie diese einstufige Installation ab, um { -brand-short-name } auf dem neuesten Stand zu halten und Datenverlust zu vermeiden. { -brand-short-name } wird zum Ordner "Programme" und zum Dock hinzugefügt.
+prompt-to-install-yes-button = Installieren
+prompt-to-install-no-button = Nicht installieren
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Installation von { -brand-short-name } fehlgeschlagen.
+install-failed-message = { -brand-short-name } konnte nicht installiert werden, wird aber weiterhin funktionieren.
diff --git a/thunderbird-l10n/de/localization/de/toolkit/global/textActions.ftl b/thunderbird-l10n/de/localization/de/toolkit/global/textActions.ftl
index 93ebf00d94d8d7b2f2c3d31271190c394b4980f3..97647a76495ad8f524b9498ca679ce1b94189cd0 100644
--- a/thunderbird-l10n/de/localization/de/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/de/localization/de/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Rückgängig
     .accesskey = R
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Wiederherstellen
     .accesskey = W
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Ausschneiden
     .accesskey = A
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopieren
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Einfügen
     .accesskey = E
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Löschen
     .accesskey = L
-
 text-action-select-all =
     .label = Alles auswählen
     .accesskey = u
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Keine Korrekturvorschläge
+text-action-spell-add-to-dictionary =
+    .label = undo add to
+    .accesskey = Z
+text-action-spell-undo-add-to-dictionary =
+    .label = Wörterbuch-Eintrag zurücknehmen
+    .accesskey = z
+text-action-spell-check-toggle =
+    .label = Rechtschreibung prüfen
+    .accesskey = p
+text-action-spell-add-dictionaries =
+    .label = Wörterbücher hinzufügen…
+    .accesskey = W
+text-action-spell-dictionaries =
+    .label = Sprachen
+    .accesskey = S
diff --git a/thunderbird-l10n/de/manifest.json b/thunderbird-l10n/de/manifest.json
index df2df559f9d6d318396f1e8b7ef76b2b7f7eeb97..5ac80104ce227b9932b57fe82d94b4ee60b2c332 100644
--- a/thunderbird-l10n/de/manifest.json
+++ b/thunderbird-l10n/de/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Deutsch (DE) Language Pack",
   "description": "Language pack for Thunderbird for de",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "de": {
-      "version": "20210813135557",
+      "version": "20210831155334",
       "chrome_resources": {
         "alerts": "chrome/de/locale/de/alerts/",
         "autoconfig": "chrome/de/locale/de/autoconfig/",
diff --git a/thunderbird-l10n/dsb/chrome/dsb/locale/dsb/global/layout/htmlparser.properties b/thunderbird-l10n/dsb/chrome/dsb/locale/dsb/global/layout/htmlparser.properties
index 3e68b5df4894744807ee25e646b4733a20dcf754..2c4480c79ac9437a021db4082dad7bd38d2f4508 100644
--- a/thunderbird-l10n/dsb/chrome/dsb/locale/dsb/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/dsb/chrome/dsb/locale/dsb/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Kóńc dataje w systemowem identifikatorje.
 errExpectedSystemId=Systemowy identifikator wócakany, ale doctype jo se skóńcył.
 errMissingSpaceBeforeDoctypeName=Felujuce prozne znamuško pśed mjenim doctype.
 errHyphenHyphenBang=“--!” w komentarje namakany.
+errNestedComment=„<!--“ jo w komentarje. Nejskernjejša zawina: Zašachtelikowany komentar (njedowólony).
 errNcrZero=Znamuškowa referenca wopśimujo nulu.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Žedno prozne znamuško mjazy klucowym słowom doctype “SYSTEM” a pazorkami.
 errNoSpaceBetweenPublicAndSystemIds=Žedno prozne znamuško mjazy zjawnymi a systemowymi identifikatorami doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Njezacynjone elementy na Å¡tapjelu.
 errEndTagDidNotMatchCurrentOpenElement=Kóńcny element “%1$S” njejo mjenjoju aktualnego wócynjonego elementa wótpowědował (“%2$S”).
 errEndTagViolatesNestingRules=Kóńcny element “%1$S” jo se pśeśiwo zašachtelikańskim pšawidłam pśejšeł.
 errEndWithUnclosedElements=Kóńcny element “%1$S” namakany, ale su wótwórjone elementy byli.
+errListUnclosedStartTags=Njezacynjony element abo njezacynjone elementy.
diff --git a/thunderbird-l10n/dsb/localization/dsb/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/dsb/localization/dsb/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..f350d90228e34b29816e64fec06d768610045d9f
--- /dev/null
+++ b/thunderbird-l10n/dsb/localization/dsb/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,47 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Tšojenje wulašowaś
+        [two] Tšojeni wulašowaś
+        [few] Tšojenja wulašowaś
+       *[other] Tšojenja wulašowaś
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Cośo napšawdu toś to tšojenje wulašowaś?
+        [two] Cośo napšawdu toś tej { $count } tšojeni wulašowaś?
+        [few] Cośo napšawdu toś te { $count } tšojenja wulašowaś?
+       *[other] Cośo napšawdu toś te { $count } tšojenjow wulašowaś?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Nadawk wulašowaś
+        [two] Nadawka wulašowaś
+        [few] Nadawki wulašowaś
+       *[other] Nadawki wulašowaś
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Cośo napšawdu toś ten nadawk wulašowaś?
+        [two] Cośo napšawdu toś tej { $count } nadawka wulašowaś?
+        [few] Cośo napšawdu toś te { $count } nadawki wulašowaś?
+       *[other] Cośo napšawdu toś te { $count } nadawkow wulašowaś?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Zapisk lašowaś
+        [two] Zapiska lašowaś
+        [few] Zapiski lašowaś
+       *[other] Zapiski lašowaś
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Cośo napšawdu toś ten zapisk wulašowaś?
+        [two] Cośo napšawdu toś tej { $count } zapiska wulašowaś?
+        [few] Cośo napšawdu toś te { $count } zapiski wulašowaś?
+       *[other] Cośo napšawdu toś te { $count } zapiskow wulašowaś?
+    }
+calendar-delete-prompt-disable-message = Wěcej se njepšašaś.
diff --git a/thunderbird-l10n/dsb/localization/dsb/calendar/preferences.ftl b/thunderbird-l10n/dsb/localization/dsb/calendar/preferences.ftl
index 6361f23cbebfa5d0476275609f12fe2f35a8ddc0..7f2fd4a34f78274e58fb688709fccb0a86d0b324 100644
--- a/thunderbird-l10n/dsb/localization/dsb/calendar/preferences.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Tšojenja a nadawki w rejtariku město w dialogowem woknje wobźěłaś.
     .accesskey = o
+prompt-delete-label =
+    .label = Pšašaś se, nježli až se tšojenja a nadawki wulašuju.
+    .accesskey = P
 accessibility-legend = Bźezbariernosć
 accessibility-colors-label =
     .label = Barwy za bźezbariernosć optiměrowaś
diff --git a/thunderbird-l10n/dsb/localization/dsb/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/dsb/localization/dsb/messenger/accountcreation/accountSetup.ftl
index 031f7593df4aa476a9c8f1d01c32185d81b3073e..4e3ed277098c3f619de51ce222f7bbbc70b264f7 100644
--- a/thunderbird-l10n/dsb/localization/dsb/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Konfigurěrowanje konta
 ## Header
 
 account-setup-title = Nastajśo swóju eksistěrujucu e-mailowu adresu
-
 account-setup-description =
     Aby swóju aktualnu e-mailowu adresu wužywał, zapódajśo swóje pśizjawjeńske daty.<br/>
     { -brand-product-name } buźo awtomatiski za funkcioněrujuceju a dopóruconeju serweroweju konfiguraciju pytaś.
-
 account-setup-secondary-description = { -brand-product-name } buźo awtomatiski za funkcioněrujuceju a dopóruconeju serweroweju konfiguraciju pytaś.
-
 account-setup-success-title = Konto jo se wuspěšnje załožyło
-
 account-setup-success-description = Móžośo toś to konto něnto z { -brand-short-name } wužywaś.
-
 account-setup-success-secondary-description = Zwěžćo pódobne słužby a konfigurěrujśo rozšyrjone kontowe nastajenja, aby dožywjenje pólěpšył.
 
 ## Form fields
 
 account-setup-name-label = Wašo dopołne mě
     .accesskey = d
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Jan Njeznaty
-
 account-setup-name-info-icon =
     .title = Wašo mě, kaž wóno pokažo se drugim luźam
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = E-mailowa adresa
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = jan.njeznaty@example.com
-
 account-setup-email-info-icon =
     .title = Waša eksistěrujuca e-mailowa adresa
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Gronidło
     .accesskey = G
     .title = Opcionalne, buźo so jano wužywaś, aby se wužywaŕske mě pśespytało
-
 account-provisioner-button = Wobstarajśo se e-mailowu adresu
     .accesskey = b
-
 account-setup-password-toggle =
     .title = Gronidło pokazaś/schowaś
-
+account-setup-password-toggle-show =
+    .title = Gronidło w lutnem teksće pokazaś
+account-setup-password-toggle-hide =
+    .title = Gronidło schowaś
 account-setup-remember-password = Gronidło se spomniś
     .accesskey = m
-
 account-setup-exchange-label = Wašo pśizjawjenje
     .accesskey = z
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = YOURDOMAIN\yourusername
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Domenowe pśizjawjenje
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Pśetergnuś
     .accesskey = P
-
 account-setup-button-manual-config = Manuelnje konfigurěrowaś
     .accesskey = k
-
 account-setup-button-stop = ZastajiÅ›
     .accesskey = Z
-
 account-setup-button-retest = Znowego testowaÅ›
     .accesskey = t
-
 account-setup-button-continue = Dalej
     .accesskey = D
-
 account-setup-button-done = Dokóńcone
     .accesskey = D
 
 ## Notifications
 
 account-setup-looking-up-settings = Konfiguracija se pśepytujo…
-
 account-setup-looking-up-settings-guess = Konfiguracija se pyta: Zwucone serwerowe mjenja se wopytuju…
-
 account-setup-looking-up-settings-half-manual = Konfiguracija se pyta: Serwer se testujo…
-
 account-setup-looking-up-disk = Konfiguracija se pśespytujo: Instalacija { -brand-short-name }…
-
 account-setup-looking-up-isp = Konfiguracija se pyta: E-mailowy póbitowaŕ…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Konfiguracija se pyta: Datowa banka Mozilla ISP…
-
 account-setup-looking-up-mx = Konfiguracija se pyta: domena dochadajuceje e-maile…
-
 account-setup-looking-up-exchange = Konfiguracija se pśepytujo: Exchange server…
-
 account-setup-checking-password = Gronidło se kontrolěrujo…
-
 account-setup-installing-addon = Dodank se ześěgujo a instalěrujo…
-
 account-setup-success-half-manual = Slědujuce nastajenja su se pśi testowanju datego serwera namakali:
-
 account-setup-success-guess = Konfiguracija jo se namakała pśi wopytowanju zwuconych serwerowych mjenjow.
-
 account-setup-success-guess-offline = Sćo offline. Smy někotare nastajenja wugódali, ale musyśo pšawe nastajenja zapódaś.
-
 account-setup-success-password = Gronidło w pórěźe
-
 account-setup-success-addon = Dodank jo se wuspěšnje zainstalěrował
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Konfiguracija jo se namakała w datowej bance Mozilla ISP.
-
 account-setup-success-settings-disk = Konfigurcija jo se namakała pśi instalěrowanju { -brand-short-name }.
-
 account-setup-success-settings-isp = Konfiguracija jo se namakała pśi e-mailowem póbitowarju.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Konfiguracija jo se namakała za serwer Microsoft Exchange.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Konfiguracija jo se namakała za serwe
 
 account-setup-step1-image =
     .title = Zachopna konfiguracija
-
 account-setup-step2-image =
     .title = Zacytujo se…
-
 account-setup-step3-image =
     .title = Konfiguracija jo se namakała
-
 account-setup-step4-image =
     .title = Zwiskowa zmólka
-
 account-setup-step5-image =
     .title = Konto załožone
-
 account-setup-privacy-footnote2 = Waše pśizjawjeńske daty budu se jano lokalnje na wašom licadle składowaś.
-
 account-setup-selection-help = Njejsćo se wěsty, což maśo wubraś?
-
 account-setup-selection-error = Trjebaśo pomoc?
-
 account-setup-success-help = Njocośo, co maśo dalej cyniś?
-
 account-setup-documentation-help = Konfiguraciska dokumentacija
-
 account-setup-forum-help = Forum pomocy
-
 account-setup-privacy-help = Pšawidła priwatnosći
-
 account-setup-getting-started = Prědne kšace
 
 ## Results area
@@ -179,41 +128,25 @@ account-setup-results-area-title =
         [few] K dispoziciji stojece konfiguracije
        *[other] K dispoziciji stojecych konfiguracijow
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Źaržćo swóje zarědniki a mejlki na swójom serwerje synchrone
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Wobchowajśo swóje zastojniki a mejlki na swójom licadle
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Serwer Microsoft Exchange abo mrokawine słužby Office 365 wužywaś
-
 account-setup-incoming-title = Dochadajuce
-
 account-setup-outgoing-title = Wuchadajuce
-
 account-setup-username-title = Wužywarske mě
-
 account-setup-exchange-title = Serwer
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Žedne koděrowanje
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Eksistěrujucy wuchadny SMTP-serwer wužywaś
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -223,81 +156,54 @@ account-setup-result-username-different = Dochadny: { $incoming }, wuchadny: { $
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Awtentifikacija njejo se raźiła. Pak zapódane pśizjawjeńske daty su wopacne pak pśidatne wužywaŕske mě jo trěbne za pśizjawjenje. Toś to wužywaŕske mě jo zwětšego pśizjawjenje Windowsoweje domeny z domenu abo bźez domeny (na pśikład jananjeznata abo AD\\jananjeznata).
-
 account-setup-credentials-wrong = Awtentifikacija njejo se raźiła. Pšosym pśeglědajśo wužywaŕske mě a gronidło
-
 account-setup-find-settings-failed = { -brand-short-name } njejo mógał nastajenja za wašo e-mailowe konto namakaś.
-
 account-setup-exchange-config-unverifiable = Konfiguracija njedajo se pśeglědowaś. Jolic wašo wužywaŕske mě a wašo gronidło stej korektnej, jo nejskerjej serwerowy adminsitrator wubranu konfiguraciju za wašo konto znjemóžnił. Wubjeŕśo drugi protokol.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Serwerowe nastajenja
-
 account-setup-incoming-server-legend = Dochadny serwer
-
 account-setup-protocol-label = Protokol:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = HostmÄ›:
-
 account-setup-port-label = Port:
     .title = Za awtomatiske namakanje portowy numer na 0 stajiÅ›
-
 account-setup-auto-description = { -brand-short-name } buźo wopytowaś, póla awtomatiski namakaś, kótarež su prozne.
-
 account-setup-ssl-label = Zwiskowa wěstota:
-
 account-setup-outgoing-server-legend = Wuchadny serwer
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Awtomatiski namakaÅ›
-
 ssl-no-authentication-option = Žedno awtentificěrowanje
-
 ssl-cleartext-password-option = Normalne gronidło
-
 ssl-encrypted-password-option = Skoděrowane gronidło
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Žedno
-
 account-setup-auth-label = Awtentificěrowańska metoda:
-
 account-setup-username-label = Wužywaŕske mě:
-
 account-setup-advanced-setup-button = Rozšyrjona konfiguracija
     .accesskey = R
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Warnowanje!
-
 account-setup-insecure-incoming-title = Dochadne nastajenja:
-
 account-setup-insecure-outgoing-title = Wuchadne nastajenja:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> koděrowanje njewužywa.
-
 account-setup-warning-cleartext-details = Njewěste e-mailowe serwery njewužywaju skoděrowane zwiski, aby šćitali waše gronidła a priwatne informacije. Gaž zwězujośo z toś tym serwerom, wy by mógał swójo gronidło a swóje priwatne informacije wótekšyś.
-
 account-setup-insecure-server-checkbox = Rozmějom rizika
     .accesskey = R
-
 account-setup-insecure-description = { -brand-short-name } móžo wam dowóliś, aby wy wótwołał swóju e-mail z pomocu pódanych konfiguracijow. Ale wy by dejał swójogo administratora abo e-mailowego póbitowarja njezgódnych zwiskow dla kontaktěrowaś. Glědajśo <a data-l10n-name="thunderbird-faq-link">cesto stajone pšašanja</a> za dalšne informacije.
-
 insecure-dialog-cancel-button = Nastajenja změniś
     .accesskey = N
-
 insecure-dialog-confirm-button = Wobkšuśiś
     .accesskey = b
 
@@ -306,51 +212,45 @@ insecure-dialog-confirm-button = Wobkšuśiś
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } jo namakał informacije wó konfiguraciji konta na { $domain }. Cośo pókšacowaś a swóje pśizjawjeńske daty wótpósłaś?
-
 exchange-dialog-confirm-button = Pśizjawjenje
-
 exchange-dialog-cancel-button = Pśetergnuś
 
+## Dismiss account creation dialog
+
+exit-dialog-title = E-mailowe konto njejo skonfigurěrowane
+exit-dialog-description = Cośo napšawdu konfigurěrowański proces pśetergnuś? { -brand-short-name } dajo se hyšći bźez e-mailowego konta wužywaś, ale wjele funkcijow njebuźo k dispoziciji.
+account-setup-no-account-checkbox = { -brand-short-name } bźez e-mailowego konta wužywaś
+    .accesskey = b
+exit-dialog-cancel-button = Dalej konfigurěrowaś
+    .accesskey = D
+exit-dialog-confirm-button = Konfiguracija skóńcyś
+    .accesskey = K
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Zmólka pśi napóranju konta
-
 account-setup-error-server-exists = Dochadny serwer južo eksistěrujo.
-
 account-setup-confirm-advanced-title = Rozšyrjonu konfiguraciju wobkšuśiś
-
 account-setup-confirm-advanced-description = Toś ten dialog se zacynijo a konto z aktualnymi nastajenjami se załožyjo, lěcrownož konfiguracija jo wopacna. Cośo pókšacowaś?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Instalěrowaś
-
 account-setup-addon-install-intro = Dodank tśeśego póbitowarja móžo wam pśistup k wašomu e-mailowemu kontoju na toś tom serwerje zmóžniś:
-
 account-setup-addon-no-protocol = Toś ten e-mailowy serwer bóžko wótwórjone protokole njepódpěra. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Kontowe nastajenja
-
 account-setup-encryption-button = Koděrowanje wót kóńca do kóńca
-
 account-setup-signature-button = Signaturu pśidaś
-
 account-setup-dictionaries-button = Słowniki ześěgnuś
-
 account-setup-address-book-carddav-button = Z CardDAV-adresnikom zwězaś
-
 account-setup-address-book-ldap-button = Z LDAP-adresnikom zwězaś
-
 account-setup-calendar-button = Ze zdalonym kalendarjom zwězaś
-
 account-setup-linked-services-title = Zwěžćo swóje zwězane słužby
-
 account-setup-linked-services-description = { -brand-short-name } jo namakał druge słužby, kótarež su z wašym e-mailowym kontom zwězane.
-
 account-setup-no-linked-description = Konfigurěrujśo swóje słužby, aby nejwěcej ze swójogo dožywjenja { -brand-short-name } wuwónoźeł.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -360,7 +260,6 @@ account-setup-found-address-books-description =
         [few] { -brand-short-name } jo namakał { $count } adresniki, kotrež su z wašym e-mailowym kontom zwězane.
        *[other] { -brand-short-name } jo namakał { $count } adresnikow, kótarež su z wašym e-mailowym kontom zwězane.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -370,51 +269,33 @@ account-setup-found-calendars-description =
         [few] { -brand-short-name } jo namakał { $count } kalendarje, kótarež su z wašym e-mailowym kontom zwězane.
        *[other] { -brand-short-name } j namakał  { $count } kalendarjow, kótarež su z wašym e-mailowym kontom zwězane.
     }
-
 account-setup-button-finish = Dokóńcyś
     .accesskey = D
-
 account-setup-looking-up-address-books = Adresniki se pytaju…
-
 account-setup-looking-up-calendars = Kalendarje se pytaju…
-
 account-setup-address-books-button = Adresniki
-
 account-setup-calendars-button = Kalendarje
-
 account-setup-connect-link = Zwězaś
-
 account-setup-existing-address-book = Zwězany
     .title = Adresnik jo južo zwězany
-
 account-setup-existing-calendar = Zwězany
     .title = Kalendaŕ jo južo zwězany
-
 account-setup-connect-all-calendars = Wšykne kalendarje zwězaś
-
 account-setup-connect-all-address-books = Wšykne adresniki zwězaś
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Kalendaŕ zwězaś
-
 calendar-dialog-cancel-button = Pśetergnuś
     .accesskey = P
-
 calendar-dialog-confirm-button = Zwězaś
     .accesskey = Z
-
 account-setup-calendar-name-label = MÄ›
-
 account-setup-calendar-name-input =
     .placeholder = Mój kalendaŕ
-
 account-setup-calendar-color-label = Barwa
-
 account-setup-calendar-refresh-label = Aktualizěrowaś
-
 account-setup-calendar-refresh-manual = Manuelnje
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Kuždu { $count } minutu
@@ -422,12 +303,9 @@ account-setup-calendar-refresh-interval =
         [few] Kužde { $count } minuty
        *[other] Kužde { $count } minutow
     }
-
 account-setup-calendar-read-only = Jano cytajobny
     .accesskey = J
-
 account-setup-calendar-show-reminders = Dopomnjeśa pokazaś
     .accesskey = D
-
 account-setup-calendar-offline-support = Pódpěra offline
     .accesskey = P
diff --git a/thunderbird-l10n/dsb/localization/dsb/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/dsb/localization/dsb/messenger/addressbook/aboutAddressBook.ftl
index 36384d161bbadeaa9c66caf7bdf8bee0dc4db6e0..2d7c599cda158c74aaeaaff75a0bfd4e3d2d59f4 100644
--- a/thunderbird-l10n/dsb/localization/dsb/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = WÅ¡ykne adresniki
-
 about-addressbook-books-context-properties =
     .label = Kakosći
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Lašowaś
 about-addressbook-books-context-remove =
     .label = Wótwónoźeś
-
 about-addressbook-confirm-delete-book-title = Adresnik lašowaś
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = { $name } pśepytaś
 about-addressbook-search-all =
     .placeholder = Wšykne adresniki pśepytaś
-
 about-addressbook-sort-button =
     .title = Lisćinowy pórěd změniś
-
 about-addressbook-name-format-display =
     .label = Zwobraznjeńske mě
 about-addressbook-name-format-firstlast =
     .label = Pśedmě Familijowe mě
 about-addressbook-name-format-lastfirst =
     .label = Swójźbne mě, pśedmě
-
 about-addressbook-sort-name-ascending =
     .label = Pó mjenju sortěrowaś (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Pó e-mailowej adresy sortěrowaś (A > Z)
 about-addressbook-sort-email-descending =
     .label = Pó e-mailowej adresy sortěrowaś (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = PisaÅ›
 about-addressbook-confirm-delete-mixed-title = Kontakty a lisćiny wulašowaś
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -137,7 +133,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Wobźěłaś
 about-addressbook-cancel-edit-contact-button = Pśetergnuś
 about-addressbook-save-edit-contact-button = Składowaś
-
 about-addressbook-details-email-addresses-header = E-mailowe adrese
 about-addressbook-details-phone-numbers-header = Telefonowe numery
 about-addressbook-details-home-address-header = Priwatna adresa
diff --git a/thunderbird-l10n/dsb/localization/dsb/messenger/importDialog.ftl b/thunderbird-l10n/dsb/localization/dsb/messenger/importDialog.ftl
index f198cc9ce10b174600c60a1da4380709a0b48838..94735ece0d7c871e45846b06942e59167e50ac1e 100644
--- a/thunderbird-l10n/dsb/localization/dsb/messenger/importDialog.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = E-mail z profilowego zarědnika Thunderbird importěrowaś
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (eksportěrowane zawěsćenje profila; zip-dataja jo mjeńša ako 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profilowy zarědnik)
+    .accesskey = T
 import-select-profile-zip = Wubjeŕśo skompriměrowany profilowy zapis
+import-select-profile-dir = Wubjeŕśo profilowy zapis
+zip-file-too-big-title = Zip-dataja jo pśewjelika
+zip-file-too-big-message = Wubrana zip-dataja jo wětša ako 2 GB. Pšosym rozpakujśo ju nejpjerwjej, a importěrujśo wopśimjeśe z rozpakowanego zarědnika město togo.
+wizardpage-failed =
+    .label = Importěrowanje njejo se raźiło
+wizardpage-failed-message = Importěrowanje njejo se njenaźejucy raźiło, dalšne informacije namakajośo snaź w zmólkowej konsoli.
diff --git a/thunderbird-l10n/dsb/localization/dsb/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/dsb/localization/dsb/messenger/messengercompose/messengercompose.ftl
index 6ab428e1900b607fb129c13580d35bb82f8bb9ca..483edab7f511a53150ab713deea07ebe8f054713 100644
--- a/thunderbird-l10n/dsb/localization/dsb/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/messenger/messengercompose/messengercompose.ftl
@@ -68,6 +68,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Pśidank pśidaś…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Pśidank pśidaś…
+    .accesskey = P
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Dataje…
     .accesskey = D
@@ -164,12 +168,78 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Pólo { bcc-compose-address-row-label.value } pokazaś ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Dostawarje w póloma Komu a Kopija budu adresu drugich wiźeś. Licba: { $count }. Wužywajśo město togo pólo Schowana kopija, aby tomu zajźował, až se dostawarje wótekšywaju.
+to-address-row-label =
+    .value = Komu
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Pólo Komu
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Komu
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Komu
+    .title = Pólo Komu pokazaś ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kopija
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Pólo Kopija
+    .accesskey = P
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kopija
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kopija
+    .title = Pólo Kopija pokazaś ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Schowana kopija
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Pólo Schowana kopija
+    .accesskey = S
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Schowana kopija
+    .accesskey = S
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Schowana kopija
+    .title = Pólo Schowana kopija pokazaś ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Druge adresowe póla, kótarež se maju pokazaś
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Waša powěsć ma zjawnego dostawarja. Wužywajśo město togo pólo Schowana kopija, aby tomu zajźował, až se dostawarje pśeraźuju.
+        [two] { $count } dostawarja w póloma Komu a Kopija buźotej adresu drugich wiźeś. Wužywajśo město togo pólo Schowana kopija, aby tomu zajźował, až se dostawarje wótekšywaju.
+        [few] { $count } dostawarje w póloma Komu a Kopija budu adresu drugich wiźeś. Wužywajśo město togo pólo Schowana kopija, aby tomu zajźował, až se dostawarje wótekšywaju.
+       *[other] { $count } dostawarjow w póloma Komu a Kopija buźo adresu drugich wiźeś. Wužywajśo město togo pólo Schowana kopija, aby tomu zajźował, až se dostawarje wótekšywaju.
+    }
 many-public-recipients-bcc =
     .label = Schowanu kopiju město togo wužywaś
     .accesskey = S
 many-public-recipients-ignore =
     .label = Dostawarje zjawne źaržaś
     .accesskey = D
+many-public-recipients-prompt-title = Pśewjele zjawnych dostawarjow
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Waša powěsć ma zjawnego dostawarja. To móžo priwatnosć wobgrozyś. Pśesuńśo dostawarja wót póla Komu/Kopija do póla Schowana kopija.
+        [two] Waša powěsć ma { $count } zjawneju dostawarjowu, kótarejž móžotej mjazsobnje swóje adrese wiźeś. To móžo priwatnosć wobgrozyś. Pśesuńśo togodla dostawarje wót póla Komu/Kopija do póla Schowana kopija.
+        [few] Waša powěsć ma { $count } zjawnych dostawarjow, kótarež mógu mjazsobnje swóje adrese wiźeś. To móžo priwatnosć wobgrozyś. Pśesuńśo togodla dostawarje wót póla Komu/Kopija do póla Schowana kopija.
+       *[other] Waša powěsć ma { $count } zjawnych dostawarjow, kótarež mógu mjazsobnje swóje adrese wiźeś. To móžo priwatnosć wobgrozyś. Pśesuńśo togodla dostawarje wót póla Komu/Kopija do póla Schowana kopija.
+    }
+many-public-recipients-prompt-cancel = Słanje pśetergnuś
+many-public-recipients-prompt-send = Weto słaś
 
 ## Notifications
 
diff --git a/thunderbird-l10n/dsb/localization/dsb/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/dsb/localization/dsb/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..908cb6c31902b336c882d3a653ae2ee3b64d281b
--- /dev/null
+++ b/thunderbird-l10n/dsb/localization/dsb/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name } doinstalěrowaś?
+prompt-to-install-message = Dokóńcćo toś tu jadnokšacowu instalaciju, aby { -brand-short-name } aktualny źaržał a se zgubjenja datow wobinuł. { -brand-short-name } se zarědnikoju „Programme“ a dokoju pśidajo.
+prompt-to-install-yes-button = Instalěrowaś
+prompt-to-install-no-button = Njeinstalěrowaś
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Instalěrowanje { -brand-short-name } njejo se raźiło.
+install-failed-message = { -brand-short-name } njedajo se instalěrowaś, ale dalej funkcioněrujo.
diff --git a/thunderbird-l10n/dsb/localization/dsb/toolkit/global/textActions.ftl b/thunderbird-l10n/dsb/localization/dsb/toolkit/global/textActions.ftl
index 1cb886403d853aea5bc16e3065ae67fe209db568..548bd71edbefe9678548aa7f3a047d47d09fd564 100644
--- a/thunderbird-l10n/dsb/localization/dsb/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/dsb/localization/dsb/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Anulěrowaś
     .accesskey = A
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Wóspjetowaś
     .accesskey = s
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Wurězaś
     .accesskey = r
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopěrowaś
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Zasajźiś
     .accesskey = Z
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Lašowaś
     .accesskey = L
-
 text-action-select-all =
     .label = WÅ¡ykno wubraÅ›
     .accesskey = u
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Žedne pšawopisne naraźenja
+text-action-spell-add-to-dictionary =
+    .label = Słownikoju pśidaś
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Pśidanje słownikoju anulěrowaś
+    .accesskey = P
+text-action-spell-check-toggle =
+    .label = Pšawopis kontrolěrowaś
+    .accesskey = a
+text-action-spell-add-dictionaries =
+    .label = Słowniki pśidaś…
+    .accesskey = d
+text-action-spell-dictionaries =
+    .label = Rěcy
+    .accesskey = R
diff --git a/thunderbird-l10n/dsb/manifest.json b/thunderbird-l10n/dsb/manifest.json
index 01696f5aaf5b6729fe1b1f62b147d4c994d9bfe2..8940de089dd52cc56e18deac8d557ccd19c8ad93 100644
--- a/thunderbird-l10n/dsb/manifest.json
+++ b/thunderbird-l10n/dsb/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Dolnoserbšćina Language Pack",
   "description": "Language pack for Thunderbird for dsb",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "dsb": {
-      "version": "20210816113856",
+      "version": "20210831182521",
       "chrome_resources": {
         "alerts": "chrome/dsb/locale/dsb/alerts/",
         "autoconfig": "chrome/dsb/locale/dsb/autoconfig/",
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-alarms.properties b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-alarms.properties
index 0754b32d4d7efe3ea6c823bdbd595680e3731896..69be22c3a9964e1226aaebc378c590e10382c74a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-alarms.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-alarms.properties
@@ -21,9 +21,9 @@ reminderCustomOriginBeginBeforeEvent=πριν από την έναρξη της
 reminderCustomOriginBeginAfterEvent=μετά την έναρξη της εκδήλωσης
 reminderCustomOriginEndBeforeEvent=πριν από τη λήξη της εκδήλωσης
 reminderCustomOriginEndAfterEvent=μετά τη λήξη της εκδήλωσης
-reminderCustomOriginBeginBeforeTask=πριν την έναρξη της εργασίας
+reminderCustomOriginBeginBeforeTask=πριν από την έναρξη της εργασίας
 reminderCustomOriginBeginAfterTask=μετά την έναρξη της εργασίας
-reminderCustomOriginEndBeforeTask=πριν τη λήξη της εργασίας
+reminderCustomOriginEndBeforeTask=πριν από τη λήξη της εργασίας
 reminderCustomOriginEndAfterTask=μετά τη λήξη της εργασίας
 
 reminderErrorMaxCountReachedEvent=Το επιλεγμένο ημερολόγιο έχει περιορισμό #1 υπενθύμισης ανά εκδήλωση.;Το επιλεγμένο ημερολόγιο έχει περιορισμό #1 υπενθυμίσεων ανά εκδήλωση.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-extract.properties b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-extract.properties
index aab2036dc42486f08ecd1a4825934f977a33489b..135b59db2d33edefba643b7f9ddbb64f00d8c2b3 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-extract.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar-extract.properties
@@ -108,7 +108,7 @@ until.hour.pm =
 
 # LOCALIZATION NOTE (from.half.hour.before):
 # denotes times 30 minutes before next full hour
-from.half.hour.before = μισή ώρα πριν τις #1
+from.half.hour.before = μισή ώρα πριν από τις #1
 
 # LOCALIZATION NOTE (until.half.hour.before):
 # denotes times 30 minutes before next full hour
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.dtd b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.dtd
index 793edc97ffef667e31c52fe2607f38227f07e38c..f00601db44b7165e42c11773746e230b812f2fde 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.dtd
@@ -57,7 +57,7 @@
 <!ENTITY calendar.unifinder.close.tooltip                  "Κλείσιμο αναζήτησης και λίστας εκδηλώσεων">
 
 <!ENTITY calendar.today.button.tooltip          "Μετάβαση στη σημερινή ημέρα" >
-<!ENTITY calendar.todaypane.button.tooltip      "Εμφάνιση παραθύρου σημερινής ημέρας" >
+<!ENTITY calendar.todaypane.button.tooltip      "Εμφάνιση προβολής «Σήμερα»" >
 
 <!ENTITY calendar.day.button.tooltip            "Εναλλαγή σε ημερήσια προβολή" >
 <!ENTITY calendar.week.button.tooltip           "Εναλλαγή σε εβδομαδιαία προβολή" >
@@ -381,7 +381,7 @@
 <!ENTITY calendar.print.window.title "Εκτύπωση κάποιου ημερολογίου">
 <!ENTITY calendar.print.title.label "Τίτλος:">
 <!ENTITY calendar.print.layout.label "Διάταξη:">
-<!ENTITY calendar.print.range.label "Τι να εκτυπωθεί">
+<!ENTITY calendar.print.range.label "Στοιχεία προς εκτύπωση">
 <!ENTITY calendar.print.currentView2.label "Τρέχουσα προβολή">
 <!ENTITY calendar.print.selectedEventsAndTasks.label "Επιλεγμένες εκδηλώσεις/εργασίες">
 <!ENTITY calendar.print.tasks.label "Εργασίες">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.properties b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.properties
index 0311a87556f7a9b0791e70b22da1a1176c46a9a9..d4d68713657c0da3b3c3c68c9e02d59908e3fb88 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/calendar/calendar.properties
@@ -253,7 +253,7 @@ dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (πόρος)
 # LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
 # dialog.tooltip.attendeeRole2.*
 # %1$S - email address or common name <email address> representing a room
-dialog.tooltip.attendeeUserType2.ROOM=%1$S (αίθουσα)
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (δωμάτιο)
 # LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
 # dialog.tooltip.attendeeRole2.*
 # %1$S - email address or common name <email address> representing an attendee of unknown type
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/accounts.dtd b/thunderbird-l10n/el/chrome/el/locale/el/chat/accounts.dtd
index 98a28027ee8ce86ae97eca9d462392bf45f91c10..c4738d09a40cf0ed851dedb0ef18cf577adcd2a0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/accounts.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/accounts.dtd
@@ -17,7 +17,7 @@
 <!ENTITY accountManager.close.commandkey     "a">
 <!-- This title must be short, displayed with a big font size -->
 <!ENTITY accountManager.noAccount.title      "Δεν έχει ρυθμιστεί ακόμη λογαριασμός">
-<!ENTITY accountManager.noAccount.description 'Κάντε κλικ στο κουμπί "&accountManager.newAccount.label;" και το &brandShortName; θα σας βοηθήσει να ρυθμίσετε έναν νέο.'>
+<!ENTITY accountManager.noAccount.description "Κάντε κλικ στο κουμπί «&accountManager.newAccount.label;» και το &brandShortName; θα σας βοηθήσει να ρυθμίσετε έναν νέο.">
 <!ENTITY account.autoSignOn.label     "Σύνδεση κατά την εκκίνηση">
 <!ENTITY account.autoSignOn.accesskey "Σ">
 <!ENTITY account.connect.label        "Σύνδεση">
@@ -32,9 +32,9 @@
 <!ENTITY account.movedown.label       "Μετακίνηση κάτω">
 <!ENTITY account.cancelReconnection.label         "Ακύρωση επανασύνδεσης">
 <!ENTITY account.cancelReconnection.accesskey     "Α">
-<!ENTITY account.copyDebugLog.label     "Αντιγραφή αρχείου εντοπισμού σφαλμάτων">
+<!ENTITY account.copyDebugLog.label     "Αντιγραφή αρχείου ελέγχου σφαλμάτων">
 <!ENTITY account.copyDebugLog.accesskey "Α">
-<!ENTITY account.showDebugLog.label     "Εμφάνιση αρχείου εντοπισμού σφαλμάτων">
+<!ENTITY account.showDebugLog.label     "Εμφάνιση αρχείου ελέγχου σφαλμάτων">
 <!ENTITY account.showDebugLog.accesskey "Μ">
 <!ENTITY account.connecting           "Σύνδεση…">
 <!ENTITY account.disconnecting        "Αποσύνδεση…">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/commands.properties b/thunderbird-l10n/el/chrome/el/locale/el/chat/commands.properties
index e926769477998e300b7d1e1228da94df2b94087c..8672cc2d690570b62bf3a88056107225b68609aa 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/commands.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/commands.properties
@@ -8,7 +8,7 @@ commands=Εντολές: %S.\nΧρησιμοποιήστε την &lt;εντολ
 # LOCALIZATION NOTE (noCommand, noHelp):
 #  %S is the command name the user typed.
 noCommand=Καμία εντολή '%S'.
-noHelp=Κανένα μήνυμα βοήθειας για την εντολή '%S', συγγνώμη!
+noHelp=Κανένα μήνυμα βοήθειας για την εντολή «%S», συγγνώμη!
 
 sayHelpString=say &lt;message&gt;: αποστολή μηνύματος χωρίς επεξεργασίας εντολών.
 rawHelpString=raw &lt;message&gt;: αποστολή μηνύματος χωρίς διαφυγή καταχωρήσεων HTML.
@@ -19,7 +19,7 @@ helpHelpString=help &lt;name&gt;: εμφάνιση μηνύματος βοήθε
 #   (one of "back", "away", "busy", "dnd", or "offline").
 #  %2$S is replaced with the localized version of that status type
 #   (one of the 5 strings below).
-statusCommand=%1$S &lt;status message&gt;: ορισμός της κατάστασης σε "%2$S" με ένα προαιρετικό μήνυμα κατάστασης.
+statusCommand=%1$S &lt;μήνυμα κατάστασης&gt;: ορισμός της κατάστασης σε «%2$S» με ένα προαιρετικό μήνυμα κατάστασης.
 back=διαθέσιμος/-η
 away=εκτός υπολογιστή
 busy=μη διαθέσιμος/-η
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/conversations.properties b/thunderbird-l10n/el/chrome/el/locale/el/chat/conversations.properties
index 521af608df7360ffc8f07c26b1cc22bed5a16b0e..7af4d02bdf821722caaaca0c0fa3fb89ca4763f0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/conversations.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/conversations.properties
@@ -5,7 +5,7 @@
 # LOCALIZATION NOTE (targetChanged):
 #  %1$S is the new conversation title (display name of the new target),
 #  %2$S is the protocol name used for the new target.
-targetChanged=Η συνομιλία θα συνεχιστεί με τίτλο "%1$S" και με το πρωτόκολλο %2$S.
+targetChanged=Η συνομιλία θα συνεχιστεί με τίτλο «%1$S» και με το πρωτόκολλο %2$S.
 
 # LOCALIZATION NOTE (statusChanged):
 #  %1$S is the display name of the contact.
@@ -26,8 +26,8 @@ statusChangedFromUnknownWithStatusText=Ο/Η %1$S είναι %2$S: %3$S.
 # special case of the previous 2 strings for when an account has just
 # been reconnected, so the status is now known. These 2 strings should not
 # mislead the user into thinking the person's status has just changed.
-statusKnown=Ο λογαριασμός σας έχει συνδεθεί εκ νέου (ο/η %1$S είναι %2$S).
-statusKnownWithStatusText=Ο λογαριασμός σας έχει συνδεθεί εκ νέου (ο/η %1$S είναι %2$S: %3$S).
+statusKnown=Ο λογαριασμός σας έχει επανασυνδεθεί (ο/η %1$S είναι %2$S).
+statusKnownWithStatusText=Ο λογαριασμός σας έχει επανασυνδεθεί (ο/η %1$S είναι %2$S: %3$S).
 # LOCALIZATION NOTE (statusUnknown):
 #  %S is the display name of the contact.
 statusUnknown=Ο λογαριασμός σας έχει αποσυνδεθεί (η κατάσταση του/της %S δεν είναι πλέον γνωστή).
@@ -45,10 +45,10 @@ noTopic=Δεν υπάρχει θεματικό μήνυμα στο δωμάτι
 
 # LOCALIZATION NOTE (topicSet):
 #  %1$S is the conversation name, %2$S is the topic.
-topicSet=Το θέμα για τη συζήτηση "%1$S" είναι: %2$S.
+topicSet=Το θέμα της συζήτησης «%1$S» είναι: %2$S.
 # LOCALIZATION NOTE (topicNotSet):
 #  %S is the conversation name.
-topicNotSet=Δεν υπάρχει θέμα για τη συζήτηση "%S".
+topicNotSet=Δεν υπάρχει θέμα στη συζήτηση «%S».
 # LOCALIZATION NOTE (topicChanged):
 #  %1$S is the user who changed the topic, %2$S is the new topic.
 topicChanged=Ο/Η %1$S άλλαξε το θέμα σε: %2$S.
@@ -61,11 +61,11 @@ topicCleared=Ο/Η %1$S διέγραψε το θέμα.
 #   nickname in a conversation.
 #   %1$S is the old nick.
 #   %2$S is the new nick.
-nickSet=Ο/Η %1$S είναι πλέον γνωστός/-ή ως "%2$S".
+nickSet=Ο/Η %1$S είναι πλέον γνωστός/-ή ως «%2$S».
 # LOCALIZATION NOTE (nickSet.you):
 #   This is displayed as a system message when your nickname is changed.
 #   %S is your new nick.
-nickSet.you=Είστε πλέον γνωστός/-η ως "%S".
+nickSet.you=Είστε πλέον γνωστός/-η ως «%S».
 
 # LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
 #  ellipsis is used when copying a part of a message to show that the message was cut
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/irc.properties b/thunderbird-l10n/el/chrome/el/locale/el/chat/irc.properties
index acd427d73bfd57d168eb6ac07658d4306b88cdbf..0d36a47b63afafb3fb19a1aff09fbec6819e49b6 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/irc.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/irc.properties
@@ -12,15 +12,15 @@ irc.usernameHint=ψευδώνυμο
 #   These will show in the account manager if the account is
 #   disconnected because of an error.
 connection.error.lost=Χάθηκε η σύνδεση με τον διακομιστή
-connection.error.timeOut=Το όριο χρόνου σύνδεσης έληξε
-connection.error.invalidUsername=Το "%S" δεν είναι επιτρεπτό όνομα χρήστη
-connection.error.invalidPassword=Άκυρος κωδικός πρόσβασης διακομιστή
+connection.error.timeOut=Το χρονικό όριο σύνδεσης έληξε
+connection.error.invalidUsername=Το «%S» δεν είναι επιτρεπτό όνομα χρήστη
+connection.error.invalidPassword=Μη έγκυρος κωδικός πρόσβασης διακομιστή
 connection.error.passwordRequired=Απαιτείται κωδικός πρόσβασης
 
 # LOCALIZATION NOTE (joinChat.*):
 #   These show up on the join chat menu. An underscore is for the access key.
 joinChat.channel=_Κανάλι
-joinChat.password=_Κωδικός πρόσβασης
+joinChat.password=Κ_ωδικός πρόσβασης
 
 # LOCALIZATION NOTE (options.*):
 #   These are the protocol specific options shown in the account manager and
@@ -37,7 +37,7 @@ options.alternateNicks=Εναλλακτικά ψευδώνυμα
 # LOCALIZATION NOTE (ctcp.version):
 #   %1$S is the nickname of the user whose version was requested.
 #   %2$S is the version response from the client.
-ctcp.version=Ο/Η %1$S χρησιμοποιεί το "%2$S".
+ctcp.version=Ο/Η %1$S χρησιμοποιεί το «%2$S».
 # LOCALIZATION NOTE (ctcp.time):
 #   %1$S is the nickname of the user whose time was requested.
 #   %2$S is the time response.
@@ -47,22 +47,22 @@ ctcp.time=Η ώρα για τον/την %1$S είναι %2$S.
 #   These are the help messages for each command, the %S is the command name
 #   Each command first gives the parameter it accepts and then a description of
 #   the command.
-command.action=%S &lt;action to perform&gt;: Εκτέλεση ενέργειας.
-command.ban=%S &lt;nick!user@host&gt;: Αποκλεισμός χρηστών που αντιστοιχούν στο δεδομένο μοτίβο.
-command.ctcp=%S &lt;nick&gt; &lt;msg&gt;: Αποστέλλει ένα μήνυμα CTCP στο ψευδώνυμο.
-command.chanserv=%S &lt;command&gt;: Αποστολή εντολής στο ChanServ.
-command.deop=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: Αφαίρεση κατάστασης συντονιστή καναλιού από κάποιον. Πρέπει να είστε συντονιστής καναλιού για να το κάνετε.
+command.action=%S &lt;ενέργεια προς εκτέλεση&gt;: Εκτέλεση ενέργειας.
+command.ban=%S &lt;nick!user@host&gt;: Αποκλεισμός χρηστών που ταιριάζουν στο δοθέν μοτίβο.
+command.ctcp=%S &lt;ψευδώνυμο&gt; &lt;μήνυμα&gt;: Αποστολή μηνύματος CTCP στο ψευδώνυμο.
+command.chanserv=%S &lt;εντολή&gt;: Αποστολή εντολής στο ChanServ.
+command.deop=%S &lt;ψευδώνυμο1&gt;[,&lt;ψευδώνυμο2&gt;]*: Αφαίρεση κατάστασης συντονιστή καναλιού από κάποιον. Πρέπει να είστε συντονιστής του καναλιού για να το κάνετε αυτό.
 command.devoice=%S &lt;ψευδώνυμο1&gt;[,&lt;ψευδώνυμο2&gt;]*: Αφαίρεση κατάστασης φωνής από κάποιον, αποκλείοντάς τον από το να μιλάει αν το κανάλι είναι σε συντονισμό (+m). Πρέπει να είστε συντονιστής καναλιού για να το κάνετε.
 command.invite2=%S &lt;ψευδώνυμο&gt;[ &lt;ψευδώνυμο&gt;]* [&lt;κανάλι&gt;]: Πρόσκληση ενός ή περισσοτέρων ψευδώνυμων για να συμμετέχουν στο παρόν κανάλι, ή για συμμετοχή στο καθορισμένο κανάλι.
-command.join=%S &lt;δωμάτιο1&gt;[ &lt;κλειδί1&gt;][,&lt;δωμάτιο2&gt;[ &lt;κλειδί2&gt;]]*: Κάνετε είσοδο σε ένα ή περισσότερα κανάλια, προαιρετικά δίνοντας ένα κλειδί για το καθένα αν απαιτείται.
-command.kick=%S &lt;ψευδώνυμο&gt; [&lt;μήνυμα&gt;]: Αφαιρέστε κάποιον από ένα κανάλι. Θα πρέπει να είστε συντονιστής καναλιού για να το κάνετε αυτό.
+command.join=%S &lt;δωμάτιο1&gt;[ &lt;κλειδί1&gt;][,&lt;δωμάτιο2&gt;[ &lt;κλειδί2&gt;]]*: Είσοδος σε ένα ή περισσότερα κανάλια, προαιρετικά δίνοντας ένα κλειδί για το καθένα αν απαιτείται.
+command.kick=%S &lt;ψευδώνυμο&gt; [&lt;μήνυμα&gt;]: Αφαίρεση ατόμου από ένα κανάλι. Θα πρέπει να είστε συντονιστής του καναλιού για να το κάνετε αυτό.
 command.list=%S: Εμφάνιση λίστας των δωματίων συζήτησης στο δίκτυο. Προσοχή, ορισμένοι διακομιστές ενδέχεται να σας αποσυνδέσουν με την εκτέλεση της ενέργειας αυτής.
 command.memoserv=%S &lt;εντολή&gt;: Αποστολή μιας εντολής στο MemoServ.
 command.modeUser2=%S &lt;ψευδώνυμο&gt; [(+|-)&lt;κατάσταση&gt;]: Ανάγνωση, καθορισμός ή εκκαθάριση της κατάστασης χρήστη.
 command.modeChannel2=%S [&lt;κανάλι&gt;] [(+|-)&lt;νέα κατάσταση&gt; [&lt;παράμετρος&gt;][,&lt;παράμετρος&gt;]*]: Ανάγνωση, καθορισμός ή εκκαθάριση της κατάστασης καναλιού.
 command.msg=%S &lt;ψευδώνυμο&gt; &lt;μήνυμα&gt;: Στείλτε ένα προσωπικό μήνυμα σε ένα χρήστη (σε αντίθεση σε ένα κανάλι).
-command.nick=%S &lt;νέο ψευδώνυμο&gt;: Αλλάξτε το ψευδώνυμό σας.
-command.nickserv=%S &lt;εντολή&gt;: Στείλετε μια εντολή στο NickServ.
+command.nick=%S &lt;νέο ψευδώνυμο&gt;: Αλλαγή του ψευδωνύμου σας.
+command.nickserv=%S &lt;εντολή&gt;: Αποστολή εντολής στο NickServ.
 command.notice=%S &lt;στόχος&gt; &lt;μήνυμα&gt;: Στείλτε μια ειδοποίηση σε ένα χρήστη ή κανάλι.
 command.op=%S &lt;ψευδώνυμο1&gt;[,&lt;ψευδώνυμο2&gt;]*: Χορηγήστε την κατάσταση συντονιστή καναλιού σε κάποιον. Θα πρέπει να είστε συντονιστής καναλιού για να το κάνετε αυτό.
 command.operserv=%S &lt;εντολή&gt;: Στείλετε μια εντολή στο OperServ.
@@ -75,19 +75,19 @@ command.topic=%S [&lt;νέο θέμα&gt;]: Ορισμός του θέματος
 command.umode=%S (+|-)&lt;νέα κατάσταση&gt;: Ορισμός ή εκκαθάριση της κατάστασης χρήστη.
 command.version=%S &lt;ψευδώνυμο&gt;: Ζητήστε την έκδοση πελάτη ενός χρήστη.
 command.voice=%S &lt;ψευδώνυμο1&gt;[,&lt;ψευδώνυμο2&gt;]*: Δώστε την κατάσταση φωνής σε κάποιον. Θα πρέπει να είστε συντονιστής του καναλιού για το κάνετε αυτό.
-command.whois2=%S [&lt;ψευδώνυμο&gt;]: Λάβετε πληροφορίες για ένα χρήστη.
+command.whois2=%S [&lt;ψευδώνυμο&gt;]: Λήψη πληροφοριών για έναν χρήστη.
 
 # LOCALIZATION NOTE (message.*):
 #    These are shown as system messages in the conversation.
 #    %1$S is the nick and %2$S is the nick and host of the user who joined.
-message.join=Ο %1$S [%2$S] συνδέθηκε στο δωμάτιο.
+message.join=Ο/Η %1$S [%2$S] συνδέθηκε στο δωμάτιο.
 message.rejoined=Έχετε συνδεθεί ξανά στο δωμάτιο.
 #    %1$S is the nick of who kicked you.
 #    %2$S is message.kicked.reason, if a kick message was given.
-message.kicked.you=Σας έχει πετάξει ο %1$S %2$S.
+message.kicked.you=Έχετε αποβληθεί από τον/την %1$S %2$S.
 #    %1$S is the nick that is kicked, %2$S the nick of the person who kicked
 #    %1$S. %3$S is message.kicked.reason, if a kick message was given.
-message.kicked=Ο %1$S έχει πεταχτεί από τον %2$S %3$S.
+message.kicked=Ο/Η %1$S έχει αποβληθεί από τον/την %2$S %3$S.
 #    %S is the kick message
 message.kicked.reason=: %S
 #    %1$S is the new mode, %2$S is the nickname of the user whose mode
@@ -98,62 +98,62 @@ message.channelmode=Κατάσταση καναλιού %1$S, ορίστηκε 
 #    %S is the user's mode.
 message.yourmode=Η κατάστασή σας είναι %S.
 #    Could not change the nickname. %S is the user's nick.
-message.nick.fail=Αδυναμία χρήσης επιθυμητού ψευδωνύμου. Το ψευδώνυμο παραμένει ως %S.
+message.nick.fail=Δεν ήταν δυνατή η χρήση του επιθυμητού ψευδωνύμου. Το ψευδώνυμό σας παραμένει «%S».
 #    The parameter is the message.parted.reason, if a part message is given.
-message.parted.you=Έχετε αποχωρήσει από το δωμάτιο (Μέρος%1$S).
+message.parted.you=Έχετε αποχωρήσει από το δωμάτιο (Part%1$S).
 #    %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
-message.parted=Ο %1$S έφυγε από το δωμάτιο (Αποφυγή %2$S).
+message.parted=Ο/Η %1$S έχει αποχωρήσει από το δωμάτιο (Part%2$S).
 #    %S is the part message supplied by the user.
 message.parted.reason=: %S
 #    %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
-message.quit=Ο %1$S έφυγε από το δωμάτιο (Εγκατάλειψη του %2$S).
+message.quit=Ο/Η %1$S έχει αποχωρήσει από το δωμάτιο (Quit%2$S).
 #    The parameter is the quit message given by the user.
 message.quit2=: %S
 #    %1$S is the nickname of the user that invited us, %2$S is the conversation
 #    name.
-message.inviteReceived=Ο/Η %1$S σας προσκάλεσε στη συζήτηση %2$S.
+message.inviteReceived=Ο/Η %1$S σάς προσκάλεσε στο «%2$S».
 #    %1$S is the nickname of the invited user, %2$S is the conversation name
 #    they were invited to.
-message.invited=Ο/Η %1$S προσκλήθηκε επιτυχώς στη συζήτηση %2$S.
+message.invited=Ο/Η %1$S προσκλήθηκε επιτυχώς στο «%2$S».
 #    %1$S is the nickname of the invited user, %2$S is the conversation name
 #    they were invited to but are already in
-message.alreadyInChannel=Ο/Η %1$S είναι ήδη στη συζήτηση %2$S.
+message.alreadyInChannel=Ο/Η %1$S είναι ήδη στο «%2$S».
 #    %S is the nickname of the user who was summoned.
 message.summoned=Ο/Η %S κλήθηκε.
 #    %S is the nickname of the user whose WHOIS information follows this message.
-message.whois=Πληροφορίες WHOIS για %S:
+message.whois=Πληροφορίες WHOIS για τον/την %S:
 #    %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
-message.whowas=Ο/Η %1$S είναι εκτός σύνδεσης. Πληροφορίες WHOWAS για %1$S:
+message.whowas=Ο/Η %1$S είναι εκτός σύνδεσης. Πληροφορίες WHOWAS για τον/την %1$S:
 #    %1$S is the entry description (from tooltip.*), %2$S is its value.
 message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
 #    %S is the nickname that is not known to the server.
-message.unknownNick=Το %S είναι άγνωστο ψευδώνυμο.
+message.unknownNick=Το «%S» είναι άγνωστο ψευδώνυμο.
 #    %1$S is the nickname of the user who changed the mode and %2$S is the new
 #    channel key (password).
-message.channelKeyAdded=Ο/Η %1$S άλλαξε τον κωδικό πρόσβασης καναλιού σε %2$S.
-message.channelKeyRemoved=Ο/Η %S αφαίρεσε τον κωδικό πρόσβασης καναλιού.
+message.channelKeyAdded=Ο/Η %1$S άλλαξε τον κωδικό πρόσβασης καναλιού σε «%2$S».
+message.channelKeyRemoved=Ο/Η %S αφαίρεσε τον κωδικό πρόσβασης του καναλιού.
 #    This will be followed by a list of ban masks.
-message.banMasks=Οι χρήστες που έχουν συνδεθεί από τις παρακάτω τοποθεσίες έχουν απαγορευτεί από το %S:
-message.noBanMasks=Δεν υπάρχουν τοποθεσίες που έχουν απαγορευθεί για το %S.
-message.banMaskAdded=Οι χρήστες που έχουν συνδεθεί από τις τοποθεσίες που ταιριάζουν με το %1$S έχουν αποκλειστεί από %2$S.
-message.banMaskRemoved=Οι χρήστες που έχουν συνδεθεί από τις τοποθεσίες που ταιριάζουν με το %1$S δεν είναι πλέον αποκλεισμένοι από %2$S.
+message.banMasks=Οι χρήστες που έχουν συνδεθεί από τις εξής τοποθεσίες έχουν αποκλειστεί από το «%S»:
+message.noBanMasks=Δεν υπάρχουν αποκλεισμένες τοποθεσίες για το «%S».
+message.banMaskAdded=Οι χρήστες που έχουν συνδεθεί από τις τοποθεσίες που ταιριάζουν με το «%1$S» έχουν αποκλειστεί από το «%2$S».
+message.banMaskRemoved=Οι χρήστες που έχουν συνδεθεί από τις τοποθεσίες που ταιριάζουν με το «%1$S» δεν είναι πλέον αποκλεισμένοι από το «%2$S».
 # LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
 #  See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 #   %1$S is the nickname of the user or the server that was pinged.
 #   #2 is the delay (in milliseconds).
-message.ping=Απάντηση ηχούς από %1$S σε #2 χιλιοστό δευτερολέπτου.;Απάντηση ηχούς από %1$S σε #2 χιλιοστά δευτερολέπτου.
+message.ping=Απάντηση ping από «%1$S» σε #2 χιλιοστό δευτερολέπτου.;Απάντηση ping από «%1$S» σε #2 χιλιοστά δευτερολέπτου.
 
 
 # LOCALIZATION NOTE (error.*):
 #    These are shown as error messages in the conversation or server tab.
 #    %S is the channel name.
 error.noChannel=Δεν υπάρχει κανένα κανάλι: %S.
-error.tooManyChannels=Αδυναμία συμμετοχής σε %S; έχετε συμμετάσχει σε πάρα πολλά κανάλια.
+error.tooManyChannels=Δεν είναι δυνατή η σύνδεση στο «%S»· έχετε συνδεθεί σε πάρα πολλά κανάλια.
 #    %1$S is your new nick, %2$S is the kill message from the server.
-error.nickCollision=Ψευδώνυμο ήδη σε χρήση, αλλαγή ψευδωνύμου σε %1$S [%2$S].
-error.erroneousNickname=Το %S δεν είναι επιτρεπτό ψευδώνυμο.
-error.banned=Έχετε αποκλειστεί από αυτό το διακομιστή.
-error.bannedSoon=Θα αποκλειστείτε σύντομα από αυτό το διακομιστή.
+error.nickCollision=Το ψευδώνυμο χρησιμοποιείται ήδη, γίνεται αλλαγή σε «%1$S» [%2$S].
+error.erroneousNickname=Το «%S» δεν είναι επιτρεπτό ψευδώνυμο.
+error.banned=Έχετε αποκλειστεί από αυτό τον διακομιστή.
+error.bannedSoon=Θα αποκλειστείτε σύντομα από αυτό τον διακομιστή.
 error.mode.wrongUser=Δεν μπορείτε να αλλάξετε λειτουργίες για άλλους χρήστες.
 #    %S is the nickname or channel name that isn't available.
 error.noSuchNick=Ο/Η %S δεν είναι σε σύνδεση.
@@ -161,21 +161,21 @@ error.wasNoSuchNick=Δεν υπάρχει κανένα ψευδώνυμο: %S
 error.noSuchChannel=Δεν υπάρχει κανένα κανάλι: %S.
 error.unavailable=Ο/Η %S είναι προσωρινά μη διαθέσιμος/η.
 #    %S is the channel name.
-error.channelBanned=Έχετε απαγορευτεί από το %S.
-error.cannotSendToChannel=Δεν μπορείτε να στείλετε μηνύματα στο %S.
-error.channelFull=Το κανάλι %S είναι πλήρες.
+error.channelBanned=Έχετε αποκλειστεί από το «%S».
+error.cannotSendToChannel=Δεν μπορείτε να στείλετε μηνύματα στο «%S».
+error.channelFull=Το κανάλι «%S» είναι πλήρες.
 error.inviteOnly=Θα πρέπει να σας καλέσουν για να συμμετέχετε στο %S.
 error.nonUniqueTarget=Το %S δεν είναι μοναδικό user@host ή σύντομο όνομα, ή προσπαθήσατε να συμμετέχετε σε πολλά κανάλια ταυτόχρονα.
-error.notChannelOp=Δεν είστε συντονιστής καναλιού στο %S.
-error.notChannelOwner=Δεν είστε ο ιδιοκτήτης του καναλιού του %S.
-error.wrongKey=Δεν είναι δυνατή η συμμετοχή στο %S, μη έγκυρο συνθηματικό καναλιού.
-error.sendMessageFailed=Προέκυψε σφάλμα κατά την αποστολή του τελευταίου σας μηνύματος. Παρακαλώ δοκιμάστε ξανά μόλις εδραιωθεί πάλι η σύνδεση.
+error.notChannelOp=Δεν είστε συντονιστής του καναλιού στο %S.
+error.notChannelOwner=Δεν είστε ιδιοκτήτης του καναλιού του %S.
+error.wrongKey=Δεν είναι δυνατή η σύνδεση στο «%S», μη έγκυρος κωδικός πρόσβασης καναλιού.
+error.sendMessageFailed=Προέκυψε σφάλμα κατά την αποστολή του τελευταίου σας μηνύματος. Παρακαλώ δοκιμάστε ξανά μόλις γίνει επανασύνδεση.
 #    %1$S is the channel the user tried to join, %2$S is the channel
 #    he was forwarded to.
-error.channelForward=Δεν μπορείτε να συμμετάσχετε στο %1$S και ανακατευθηνθήκατε αυτόματα στο %2$S.
+error.channelForward=Δεν μπορείτε να συνδεθείτε στο «%1$S» και ανακατευθυνθήκατε αυτόματα στο «%2$S».
 #    %S is the mode that the user tried to set but was not recognized
 #    by the server as a valid mode.
-error.unknownMode=Η λειτουργία '%S' δεν είναι έγκυρη σε αυτή το διακομιστή.
+error.unknownMode=Η λειτουργία «%S» δεν είναι έγκυρη σε αυτό τον διακομιστή.
 
 # LOCALIZATION NOTE (tooltip.*):
 #    These are the descriptions given in a tooltip with information received
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/matrix.properties b/thunderbird-l10n/el/chrome/el/locale/el/chat/matrix.properties
index 1331eafff58a4a48dc3e1fb30a5ca0df89d46e48..23ce170e1d61b460c0e51ac5d3b30c6d1779f686 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/matrix.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/matrix.properties
@@ -27,14 +27,14 @@ options.homeserver=Διακομιστής
 #   (These will be displayed in account.connection.progress from
 #    accounts.properties, which adds … at the end, so do not include
 #    periods at the end of these messages.)
-connection.requestAuth=Αναμονή για την εξουσιοδότησή σας
+connection.requestAuth=Αναμονή για την ταυτοποίησής σας
 connection.requestAccess=Οριστικοποίηση ταυτοποίησης
 
 # LOCALIZATION NOTE (connection.error.*):
 #   These will show in the account manager if an error occurs during the
 #   connection attempt.
 connection.error.noSupportedFlow=Ο διακομιστής δεν παρέχει συμβατή ροή σύνδεσης.
-connection.error.authCancelled=Ακυρώσατε τη διαδικασία εξουσιοδότησης.
+connection.error.authCancelled=Ακυρώσατε τη διαδικασία ταυτοποίησης.
 connection.error.sessionEnded=Η περίοδος σύνδεσης έληξε.
 connection.error.serverNotFound=Δεν ήταν δυνατή η αναγνώριση του διακομιστή Matrix για τον συγκεκριμένο λογαριασμό Matrix.
 
@@ -68,7 +68,7 @@ powerLevel.custom=Προσαρμογή
 powerLevel.detailed=%1$S (%2$S)
 powerLevel.defaultRole=Προεπιλεγμένος ρόλος: %S
 powerLevel.inviteUser=Πρόσκληση χρηστών: %S
-powerLevel.kickUsers=Αφαίρεση χρηστών: %S
+powerLevel.kickUsers=Αποβολή χρηστών: %S
 powerLevel.ban=Αποκλεισμός χρηστών: %S
 powerLevel.roomAvatar=Αλλαγή εικόνας δωματίου: %S
 powerLevel.mainAddress=Αλλαγή κύριας διεύθυνσης δωματίου: %S
@@ -109,15 +109,15 @@ detail.power=Επίπεδα ισχύος:
 #   These are the help messages for each command, the %S is the command name
 #   Each command first gives the parameter it accepts and then a description of
 #   the command.
-command.ban=%S &lt;userId&gt; [&lt;αιτία&gt;]: Αποκλεισμός του χρήστη με το userId από το δωμάτιο με προαιρετικό μήνυμα αιτίας. Απαιτεί την άδεια για αποκλεισμό των χρηστών.
+command.ban=%S &lt;userId&gt; [&lt;λόγος&gt;]: Αποκλεισμός του χρήστη με το userId από το δωμάτιο με προαιρετικό μήνυμα λόγου. Απαιτεί το δικαίωμα αποκλεισμού χρηστών.
 command.invite=%S &lt;userId&gt;: Πρόσκληση χρήστη στο δωμάτιο.
-command.kick=%S &lt;userId&gt; [&lt;αιτία&gt;]: αφαίρεση του χρήση userId από το δωμάτιο με προαιρετικό μήνυμα αιτιολόγησης.  Απαιτεί την άδεια για αφαίρεση των χρηστών.
+command.kick=%S &lt;userId&gt; [&lt;λόγος&gt;]: Αποβολή του χρήση userId από το δωμάτιο με προαιρετικό μήνυμα λόγου. Απαιτεί το δικαίωμα αποβολής χρηστών.
 command.nick=%S &lt;display_name&gt;: Αλλαγή εμφανιζόμενου ονόματος.
 command.op=%S &lt;userId&gt; [&lt;επίπεδο ισχύος&gt;]: Ορισμός του επιπέδου ισχύος του χρήστη. Εισάγετε μια τιμή ακεραίου, Χρήστης: 0, Συντονιστής: 50 και Διαχειριστής: 100. Η προκαθορισμένη τιμή θα είναι 50 αν δεν δοθεί αριθμός. Απαιτεί την άδεια για αλλαγή των επιπέδων ισχύος των μελών. Δεν λειτουργεί σε διαχειριστές πλην του εαυτού σας.
 command.deop=%S &lt;userId&gt;: Επαναφορά το επιπέδου ισχύος του χρήστη στο 0 (Χρήστης). Απαιτεί την άδεια για αλλαγή των επιπέδων ισχύος των μελών. Δεν λειτουργεί σε διαχειριστές πλην του εαυτού σας.
 command.leave=%S: Αποχώρηση από το τρέχον δωμάτιο.
 command.topic=%S &lt;θέμα&gt;: ορισμός θέματος του δωματίου. Απαιτεί την άδεια για αλλαγή του θέματος δωματίου.
-command.unban=%S &lt;userId&gt;: Κατάργηση του αποκλεισμού χρήστη από το δωμάτιο. Απαιτεί την άδεια για αποκλεισμό των χρηστών.
+command.unban=%S &lt;userId&gt;: Αναίρεση αποκλεισμού χρήστη από το δωμάτιο. Απαιτεί το δικαίωμα αποκλεισμού χρηστών.
 command.visibility=%S [&lt;ορατότητα&gt;]: Ορισμός της ορατότητας του τρέχοντος δωματίου στη λίστα δωματίων του τρέχοντος Διακομιστή. Εισάγετε μια τιμή ακεραίου, Ιδιωτικό: 0 και Δημόσιο: 1. Το προκαθορισμένο θα είναι Ιδιωτικό (0) αν δεν δοθεί αριθμός. Απαιτεί την άδεια για αλλαγή της ορατότητας δωματίου.
 command.guest=%S &lt;πρόσβαση επισκέπτη&gt; &lt;ορατότητα ιστορικού&gt;: Ορισμός της πρόσβασης και ορατότητας του ιστορικού του τρέχοντος δωματίου για τους επισκέπτες. Εισάγετε δύο τιμές ακεραίων, την πρώτη για την πρόσβαση επισκεπτών (μη επιτρεπόμενοι: 0 και επιτρεπόμενοι: 1) και τη δεύτερη για την ορατότητα του ιστορικού (μη ορατό: 0 και ορατό: 1). Απαιτεί την άδεια για αλλαγή της ορατότητας ιστορικού.
 command.roomname=%S &lt;όνομα&gt;: Ορισμός ονόματος δωματίου. Απαιτεί την άδεια για αλλαγή του ονόματος δωματίου.
@@ -126,7 +126,7 @@ command.addalias=%S &lt;ψευδώνυμο&gt;: Δημιουργία ψευδώ
 command.removealias=%S &lt;ψευδώνυμο&gt;: Αφαίρεση του ψευδώνυμου για το δωμάτιο. Το  ψευδώνυμο που αναμένεται να δοθεί είναι της μορφής '#localname:domain'. Απαιτεί την άδεια για αφαίρεση ψευδώνυμων.
 command.upgraderoom=%S &lt;newVersion&gt;: Αναβάθμιση του δωματίου στη δεδομένη έκδοση. Απαιτεί την άδεια για αναβάθμιση του δωματίου.
 command.me=%S &lt;action&gt;: Εκτέλεση ενέργειας.
-command.msg=%S &lt;userId&gt; &lt;μήνυμα&gt;: Αποστολή μηνύματος σε δεδομένο χρήστη.
+command.msg=%S &lt;userId&gt; &lt;μήνυμα&gt;: Αποστολή άμεσου μηνύματος σε δεδομένο χρήστη.
 command.join=%S &lt;roomId&gt;: Συμμετοχή στο δωμάτιο.
 
 # LOCALIZATION NOTE (message.*):
@@ -149,13 +149,13 @@ message.invited=Ο/Η %1$S προσκάλεσε τον/την %2$S.
 #    %1$S is the name of the user who changed their display name.
 #    %2$S is the old display name.
 #    %3$S is the new display name.
-message.displayName.changed=Ο %1$S άλλαξε το εμφανιζόμενο όνομά του από %2$S σε %3$S.
+message.displayName.changed=Ο/Η %1$S άλλαξε το εμφανιζόμενο όνομά του/της από «%2$S» σε «%3$S».
 #    %1$S is the name of the user who set their display name.
 #    %2$S is the newly set display name.
-message.displayName.set=Ο %1$S όρισε το εμφανιζόμενο όνομά του σε %2$S.
+message.displayName.set=Ο/Η %1$S όρισε το εμφανιζόμενο όνομά του/της σε «%2$S».
 #    %1$S is the name of the user who removed their display name.
 #    %2$S is the old display name which has been removed.
-message.displayName.remove=Ο %1$S αφαίρεσε το εμφανιζόμενο όνομά του %2$S.
+message.displayName.remove=Ο/Η %1$S αφαίρεσε το εμφανιζόμενο όνομά του/της (%2$S).
 #    %S is the name of the user who has joined the room.
 message.joined=Ο/Η %S συνδέθηκε στο δωμάτιο.
 #    %S is the name of the user who has rejected the invitation.
@@ -164,11 +164,11 @@ message.rejectedInvite=Ο/Η %S απέρριψε την πρόσκληση.
 message.left=Ο/Η %S αποχώρησε από το δωμάτιο.
 #    %1$S is the name of the user who unbanned.
 #    %2$S is the name of the user who got unbanned.
-message.unbanned=Ο %1$S επέτρεψε τον %2$S.
+message.unbanned=Ο/Η %1$S αναίρεσε τον αποκλεισμό του/της %2$S.
 #    Gets message.reason appended, if a reason was specified.
 #    %1$S is the name of the user who kicked.
 #    %2$S is the name of the user who got kicked.
-message.kicked=Ο/Η %1$S έδιωξε τον/την %2$S.
+message.kicked=Ο/Η %1$S απέβαλε τον/την %2$S.
 #    Gets message.reason appended, if a reason was specified.
 #    %1$S is the name of the user who withdrew invitation.
 #    %2$S is the name of the user whose invitation has been withdrawn.
@@ -177,40 +177,40 @@ message.withdrewInvite=Ο/Η %1$S απέσυρε την πρόσκληση το
 message.roomName.remove=Ο/Η %S κατήργησε το όνομα δωματίου.
 #    %1$S is the name of the user who changed the room name.
 #    %2$S is the new room name.
-message.roomName.changed=Ο/Η %1$S άλλαξε το όνομα δωματίου σε "%2$S".
+message.roomName.changed=Ο/Η %1$S άλλαξε το όνομα δωματίου σε «%2$S».
 #    %1$S is the name of the user who changed the power level.
 #    %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
 #    power level changes, separated by commas if  there are multiple changes.
-message.powerLevel.changed=Ο/Η %1$S άλλαξε το επίπεδο ισχύος σε "%2$S".
+message.powerLevel.changed=Ο/Η %1$S άλλαξε το επίπεδο ισχύος σε «%2$S».
 #    %1$S is the name of the target user whose power level has been changed.
 #    %2$S is the old power level.
 #    %2$S is the new power level.
-message.powerLevel.fromTo=Ο/Η %1$S από "%2$S" σε "%3$S"
+message.powerLevel.fromTo=Ο/Η %1$S από «%2$S» σε «%3$S»
 #    %S is the name of the user who has allowed guests to join the room.
-message.guest.allowed=Ο %S επέτρεψε τη συμμετοχή επισκεπτών στο δωμάτιο.
+message.guest.allowed=Ο/Η %S έχει επιτρέψει την είσοδο επισκεπτών στο δωμάτιο.
 #    %S is the name of the user who has prevented guests to join the room.
-message.guest.prevented=Ο/Η %S απέτρεψε τη συμμετοχή επισκεπτών στο δωμάτιο.
+message.guest.prevented=Ο/Η %S έχει εμποδίσει την είσοδο επισκεπτών στο δωμάτιο.
 #    %S is the name of the user who has made future room history visible to anyone.
-message.history.anyone=Ο %S άλλαξε την ορατότητα του ιστορικού του δωματίου σε ορατό για όλους.
+message.history.anyone=Ο/Η %S κατέστησε το μελλοντικό ιστορικό του δωματίου ορατό για όλους.
 #    %S is the name of the user who has made future room history visible to all room members.
-message.history.shared=Ο %S άλλαξε την ορατότητα του ιστορικού σε ορατό για όλα τα μέλη του δωματίου.
+message.history.shared=Ο/Η %S κατέστησε το μελλοντικό ιστορικό του δωματίου ορατό για όλα τα μέλη.
 #    %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
-message.history.invited=Ο %S άλλαξε την ορατότητα του ιστορικού σε ορατό για όλα τα μέλη του δωματίου, από τη στιγμή που προσκλήθηκαν.
+message.history.invited=Ο/Η %S κατέστησε το μελλοντικό ιστορικό του δωματίου ορατό για όλα τα μέλη, από τη στιγμή που προσκλήθηκαν.
 #    %S is the name of the user who has made future room history visible to all room members, from the point they joined.
-message.history.joined=Ο %S άλλαξε την ορατότητα του ιστορικού σε ορατό για όλα τα μέλη, από τη στιγμή που συμμετείχαν.
+message.history.joined=Ο/Η %S κατέστησε το μελλοντικό ιστορικό του δωματίου ορατό για όλα τα μέλη, από τη στιγμή που έγιναν μέλη.
 #    %1$S is the name of the user who changed the address.
 #    %2$S is the old address.
 #    %3$S is the new address.
-message.alias.main=Ο %1$S άλλαξε την κύρια διεύθυνση του δωματίου από %2$S σε %3$S.
+message.alias.main=Ο/Η %1$S άλλαξε την κύρια διεύθυνση του δωματίου από «%2$S» σε «%3$S».
 #    %1$S is the name of the user who added the address.
 #    %2$S is a comma delimited list of added addresses.
-message.alias.added=Ο %1$S πρόσθεσε το %2$S ως εναλλακτική διεύθυνση  για αυτό το δωμάτιο.
+message.alias.added=Ο/Η %1$S πρόσθεσε το «%2$S» ως εναλλακτική διεύθυνση για το δωμάτιο.
 #    %1$S is the name of the user who removed the address.
 #    %2$S is a comma delimited list of removed addresses.
 message.alias.removed=Ο/Η %1$S αφαίρεσε το %2$S ως εναλλακτική διεύθυνση για αυτό το δωμάτιο.
 #    %1$S is the name of the user that edited the alias addresses.
 #    %2$S is a comma delimited list of removed addresses.
 #    %3$S is a comma delmited list of added addresses.
-message.alias.removedAndAdded=Ο %1$S αφαίρεσε τον %2$S και πρόσθεσε τον %3$S ως διεύθυνση για αυτό το δωμάτιο.
+message.alias.removedAndAdded=Ο/Η %1$S αφαίρεσε το «%2$S» και πρόσθεσε το «%3$S» ως διεύθυνση για το δωμάτιο.
 message.spaceNotSupported=Αυτό το δωμάτιο είναι ένας χώρος, ο οποίος δεν υποστηρίζεται.
-message.encryptionStart=Τα μηνύματα σε αυτήν τη συνομιλία είναι πλέον κρυπτογραφημένα από άκρο σε άκρο.
+message.encryptionStart=Τα μηνύματα σε αυτή τη συνομιλία είναι πλέον κρυπτογραφημένα διατερματικά.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/chat/xmpp.properties b/thunderbird-l10n/el/chrome/el/locale/el/chat/xmpp.properties
index 946c841fb9431d627aac7b4495e6651c83f54a77..0a46cf0520175d8fdd3434be6e0892c25f680c29 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/chat/xmpp.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/chat/xmpp.properties
@@ -13,26 +13,26 @@ connection.initializingEncryption=Αρχικοποίηση κρυπτογράφ
 connection.authenticating=Ταυτοποίηση
 connection.gettingResource=Λήψη πόρων
 connection.downloadingRoster=Λήψη λίστας επαφών
-connection.srvLookup=Αναζήτηση για την εγγραφή SRV
+connection.srvLookup=Αναζήτηση της εγγραφής SRV
 
 # LOCALIZATION NOTE (connection.error.*)
 #   These will show in the account manager if an error occurs during the
 #   connection attempt.
-connection.error.invalidUsername=Μη έγκυρο όνομα χρήστη (το όνομα χρήστη σας θα πρέπει να περιέχει τον χαρακτήρα '@')
-connection.error.failedToCreateASocket=Αδυναμία δημιουργίας σύνδεσης (είστε εκτός δικτύου;)
+connection.error.invalidUsername=Μη έγκυρο όνομα χρήστη (το όνομα χρήστη σας θα πρέπει να περιέχει τον χαρακτήρα «@»)
+connection.error.failedToCreateASocket=Αποτυχία δημιουργίας υποδοχής (είστε εκτός σύνδεσης;)
 connection.error.serverClosedConnection=Ο διακομιστή έκλεισε τη σύνδεση
 connection.error.resetByPeer=Η σύνδεση διακόπηκε από τον ομότιμο
-connection.error.timedOut=Λήξη χρόνου σύνδεσης
-connection.error.receivedUnexpectedData=Λήφθησαν μη αναμενόμενα δεδομένα
-connection.error.incorrectResponse=Λήφθηκε λανθασμένη απόκριση
+connection.error.timedOut=Λήξη χρονικού ορίου σύνδεσης
+connection.error.receivedUnexpectedData=Ελήφθησαν μη αναμενόμενα δεδομένα
+connection.error.incorrectResponse=Ελήφθη λανθασμένη απόκριση
 connection.error.startTLSRequired=Ο διακομιστής απαιτεί κρυπτογράφηση, αλλά την έχετε απενεργοποιήσει
 connection.error.startTLSNotSupported=Ο διακομιστής δεν υποστηρίζει κρυπτογράφηση, αλλά οι ρυθμίσεις σας την απαιτούν
 connection.error.failedToStartTLS=Αποτυχία έναρξης κρυπτογράφησης
 connection.error.noAuthMec=Δεν προσφέρθηκε μηχανισμός κρυπτογράφησης από το διακομιστή
 connection.error.noCompatibleAuthMec=Κανένας από τους μηχανισμούς κρυπτογράφησης που παρέχει ο διακομιστής δεν υποστηρίζεται
-connection.error.notSendingPasswordInClear=Ο διακομιστής υποστηρίζει αυθεντικοποίηση μόνο με αποστολή του συνθηματικού σε απλό κείμενο
+connection.error.notSendingPasswordInClear=Ο διακομιστής υποστηρίζει ταυτοποίηση μόνο με αποστολή του κωδικού πρόσβασης σε απλό κείμενο
 connection.error.authenticationFailure=Αποτυχία ταυτοποίησης
-connection.error.notAuthorized=Μη πιστοποιημένος (έχετε εισάγει σωστό συνθηματικό;)
+connection.error.notAuthorized=Δεν έγινε ταυτοποίηση (έχετε εισαγάγει σωστό κωδικό πρόσβασης;)
 connection.error.failedToGetAResource=Αδυναμία λήψης πόρου
 connection.error.failedMaxResourceLimit=Έχει γίνει είσοδος σε αυτό τον λογαριασμό από πάρα πολλά μέρη ταυτόχρονα.
 connection.error.failedResourceNotValid=Ο πόρος δεν είναι έγκυρος.
@@ -50,7 +50,7 @@ conversation.error.joinFailed=Δεν ήταν δυνατή η συμμετοχή
 #   This is displayed in a conversation as an error message when the user is
 #   banned from a room.
 #   %S is the name of the MUC room.
-conversation.error.joinForbidden=Δεν ήταν δυνατή η συμμετοχή στο %S γιατί σας έχει απαγορευτεί η πρόσβαση στο δωμάτιο.
+conversation.error.joinForbidden=Δεν ήταν δυνατή η είσοδος στο «%S» επειδή έχετε αποκλειστεί από αυτό το δωμάτιο.
 conversation.error.joinFailedNotAuthorized=Απαιτείται εγγραφή: Δεν είστε πιστοποιημένος για τη συμμετοχή στο δωμάτιο.
 conversation.error.creationFailedNotAllowed=Πρόσβαση περιορισμένη: Δεν επιτρέπεται να δημιουργήσετε δωμάτια.
 #   This is displayed in a conversation as an error message when remote server
@@ -75,14 +75,14 @@ conversation.error.unknownSendError=Συνέβη ένα άγνωστο σφάλ
 conversation.error.sendServiceUnavailable=Δεν είναι δυνατή η αποστολή μηνυμάτων στο %S αυτήν τη στιγμή.
 #   %S is the nick of participant that is not in room.
 conversation.error.nickNotInRoom=Ο/Η %S δεν συμμετέχει στο δωμάτιο.
-conversation.error.banCommandAnonymousRoom=Δεν μπορείτε να πετάξετε συμμετέχοντες από ανώνυμα δωμάτια. Δοκιμάστε εναλλακτικά το /kick.
-conversation.error.banKickCommandNotAllowed=Δεν έχετε το απαραίτητο δικαίωμα για την αφαίρεση συμμετεχόντων από το δωμάτιο.
+conversation.error.banCommandAnonymousRoom=Δεν μπορείτε να αποκλείσετε συμμετέχοντες από ανώνυμα δωμάτια. Δοκιμάστε εναλλακτικά το /kick.
+conversation.error.banKickCommandNotAllowed=Δεν έχετε το απαιτούμενο δικαίωμα για την αφαίρεση αυτού του συμμετέχοντος από το δωμάτιο.
 conversation.error.banKickCommandConflict=Συγγνώμη, δεν μπορείτε να αφαιρέσετε τον εαυτό σας από το δωμάτιο.
 conversation.error.changeNickFailedConflict=Δεν ήταν δυνατή η αλλαγή του ψευδώνυμου σας σε %S αυτήν τη στιγμή καθώς αυτό το ψευδώνυμο είναι ήδη σε χρήση.
 conversation.error.changeNickFailedNotAcceptable=Δεν ήταν η αλλαγή του ψευδώνυμου σε %S, καθώς τα ψευδώνυμα είναι κλειδωμένα στο δωμάτιο.
 conversation.error.inviteFailedForbidden=Δεν έχετε το απαραίτητο δικαίωμα για να προσκαλέσετε χρήστες στο δωμάτιο.
 #   %S is the jid of user that is invited.
-conversation.error.failedJIDNotFound=Δεν ήταν δυνατή η επικοινωνία με τον %S.
+conversation.error.failedJIDNotFound=Δεν ήταν δυνατή η επικοινωνία με το %S.
 #   %S is the jid that is invalid.
 conversation.error.invalidJID=Το %S δεν είναι έγκυρο jid (τα αναγνωριστικά Jabber πρέπει να είναι της μορφής user@domain).
 conversation.error.commandFailedNotInRoom=Θα πρέπει να επανασυνδεθείτε στο δωμάτιο για να χρησιμοποιήσετε την εντολή αυτή.
@@ -121,7 +121,7 @@ tooltip.telephone=Αριθμός τηλεφώνου
 chatRoomField.room=_Δωμάτιο
 chatRoomField.server=Δ_ιακομιστής
 chatRoomField.nick=_Ψευδώνυμο
-chatRoomField.password=_Κωδικός πρόσβασης
+chatRoomField.password=Κ_ωδικός πρόσβασης
 
 # LOCALIZATION NOTE (conversation.muc.*):
 #   These are displayed as a system message when a chatroom invitation is
@@ -171,64 +171,64 @@ conversation.message.invitationDeclined.reason=Ο %1$S απέρριψε την 
 #   %1$S is the participant that is banned.
 #   %2$S is the reason.
 #   %3$S is the person who is banning.
-conversation.message.banned=Ο %1$S έχει αποκλειστεί από το δωμάτιο.
-conversation.message.banned.reason=Ο %1$S έχει αποκλειστεί από το δωμάτιο: %2$S
+conversation.message.banned=Ο/Η %1$S έχει αποκλειστεί από το δωμάτιο.
+conversation.message.banned.reason=Ο/Η %1$S έχει αποκλειστεί από το δωμάτιο: %2$S
 #   %1$S is the person who is banning.
 #   %2$S is the participant that is banned.
 #   %3$S is the reason.
-conversation.message.banned.actor=Ο %1$S έχει αποκλείσει τον %2$S από το δωμάτιο.
-conversation.message.banned.actor.reason=Ο %1$S έχει αποκλείσει τον %2$S από το δωμάτιο: %3$S
+conversation.message.banned.actor=Ο/Η %1$S έχει αποκλείσει τον/την %2$S από το δωμάτιο.
+conversation.message.banned.actor.reason=Ο/Η %1$S έχει αποκλείσει τον/την %2$S από το δωμάτιο: %3$S
 conversation.message.banned.you=Έχετε αποκλειστεί από το δωμάτιο.
 #   %1$S is the reason.
 conversation.message.banned.you.reason=Έχετε αποκλειστεί από το δωμάτιο: %1$S
 #   %1$S is the person who is banning.
 #   %2$S is the reason.
-conversation.message.banned.you.actor=Ο %1$S σας έχει αποκλείσει από το δωμάτιο.
-conversation.message.banned.you.actor.reason=Ο %1$S σας έχει αποκλείσει από το δωμάτιο: %2$S
+conversation.message.banned.you.actor=Ο/Η %1$S σάς έχει αποκλείσει από το δωμάτιο.
+conversation.message.banned.you.actor.reason=Ο/Η %1$S σάς έχει αποκλείσει από το δωμάτιο: %2$S
 
 # LOCALIZATION NOTE (conversation.message.kicked.*):
 #   These are displayed as a system message when a participant is kicked from
 #   a room.
 #   %1$S is the participant that is kicked.
 #   %2$S is the reason.
-conversation.message.kicked=Ο %1$S σας έχει πετάξει από το δωμάτιο.
-conversation.message.kicked.reason=Ο %1$S σας έχει πετάξει από το δωμάτιο: %2$S
+conversation.message.kicked=Ο/Η %1$S έχει αποβληθεί από το δωμάτιο.
+conversation.message.kicked.reason=Ο/Η %1$S έχει αποβληθεί από το δωμάτιο: %2$S
 #   %1$S is the person who is kicking.
 #   %2$S is the participant that is kicked.
 #   %3$S is the reason.
-conversation.message.kicked.actor=Ο %1$S έχει πετάξει τον %2$S από το δωμάτιο.
-conversation.message.kicked.actor.reason=Ο %1$S έχει πετάξει τον %2$S από το δωμάτιο: %3$S
-conversation.message.kicked.you=Έχετε πεταχτεί από το δωμάτιο.
+conversation.message.kicked.actor=Ο/Η %1$S έχει αποβάλει τον/την %2$S από το δωμάτιο.
+conversation.message.kicked.actor.reason=Ο/Η %1$S έχει αποβάλει τον/την %2$S από το δωμάτιο: %3$S
+conversation.message.kicked.you=Έχετε αποβληθεί από το δωμάτιο.
 #   %1$S is the reason.
-conversation.message.kicked.you.reason=Έχετε πεταχτεί από το δωμάτιο: %1$S
+conversation.message.kicked.you.reason=Έχετε αποβληθεί από το δωμάτιο: %1$S
 #   %1$S is the person who is kicking.
 #   %2$S is the reason.
-conversation.message.kicked.you.actor=Ο %1$S σας πέταξε από το δωμάτιο.
-conversation.message.kicked.you.actor.reason=Ο %1$S σας πέταξε από το δωμάτιο: %2$S
+conversation.message.kicked.you.actor=Ο/Η %1$S σάς απέβαλε από το δωμάτιο.
+conversation.message.kicked.you.actor.reason=Ο/Η %1$S σάς απέβαλε από το δωμάτιο: %2$S
 
 # LOCALIZATION NOTE (conversation.message.removedNonMember.*):
 #   These are displayed as a system message when a participant is removed from
 #   a room because the room has been changed to members-only.
 #   %1$S is the participant that is removed.
 #   %2$S is the person who changed the room configuration.
-conversation.message.removedNonMember=Ο %1$S αφαιρέθηκε από το δωμάτιο διότι η ρύθμισή του άλλαξε σε μέλη μόνο.
-conversation.message.removedNonMember.actor=Ο %1$S αφαιρέθηκε από το δωμάτιο επειδή ο %2$S άλλαξε την κατάστασή του σε μόνο-μέλη.
-conversation.message.removedNonMember.you=Έχετε αφαιρεθεί από το δωμάτιο επειδή η ρύθμισή του άλλαξε με μέλη-μόνο.
+conversation.message.removedNonMember=Ο/Η %1$S έχει αφαιρεθεί από το δωμάτιο επειδή η ρύθμισή του άλλαξε σε «μόνο για μέλη».
+conversation.message.removedNonMember.actor=Ο/Η %1$S έχει αφαιρεθεί από το δωμάτιο επειδή ο/η %2$S το άλλαξε σε «μόνο για μέλη».
+conversation.message.removedNonMember.you=Έχετε αφαιρεθεί από το δωμάτιο επειδή η ρύθμισή του άλλαξε σε «μόνο για μέλη».
 #   %1$S is the person who changed the room configuration.
-conversation.message.removedNonMember.you.actor=Έχετε αφαιρεθεί από το δωμάτιο επειδή ο %1$S το άλλαξε σε μέλη-μόνο.
+conversation.message.removedNonMember.you.actor=Έχετε αφαιρεθεί από το δωμάτιο επειδή ο/η %1$S το άλλαξε σε «μόνο για μέλη».
 
 # LOCALIZATION NOTE (conversation.message.MUCShutdown):
 #   These are displayed as a system message when a participant is removed from
 #   a room because of a system shutdown.
-conversation.message.mucShutdown=Έχετε αφαιρεθεί από το δωμάτιο λόγω τερματισμού συστήματος.
+conversation.message.mucShutdown=Έχετε αφαιρεθεί από το δωμάτιο λόγω τερματισμού του συστήματος.
 
 # LOCALIZATION NOTE (conversation.message.version*):
 #   %1$S is the name of the user whose version was requested.
 #   %2$S is the client name response from the client.
 #   %3$S is the client version response from the client.
 #   %4$S is the operating system(OS) response from the client.
-conversation.message.version=Ο/Η %1$S χρησιμοποιεί "%2$S %3$S".
-conversation.message.versionWithOS=Ο %1$S χρησιμοποιεί "%2$S %3$S" σε %4$S.
+conversation.message.version=Ο/Η %1$S χρησιμοποιεί «%2$S %3$S».
+conversation.message.versionWithOS=Ο/Η %1$S χρησιμοποιεί «%2$S %3$S» σε %4$S.
 
 # LOCALIZATION NOTE (options.*):
 #   These are the protocol specific options shown in the account manager and
@@ -238,7 +238,7 @@ options.priority=Προτεραιότητα
 options.connectionSecurity=Ασφάλεια σύνδεσης
 options.connectionSecurity.requireEncryption=Απαίτηση κρυπτογράφησης
 options.connectionSecurity.opportunisticTLS=Χρήση κρυπτογράφησης αν είναι διαθέσιμη
-options.connectionSecurity.allowUnencryptedAuth=Να επιτρέπεται η αποστολή του συνθηματικού μη κρυπτογραφημένο
+options.connectionSecurity.allowUnencryptedAuth=Να επιτρέπεται η αποστολή του κωδικού πρόσβασης χωρίς κρυπτογράφηση
 options.connectServer=Διακομιστής
 options.connectPort=Θύρα
 options.domain=Τομέας
@@ -258,18 +258,18 @@ gtalk.usernameHint=διεύθυνση email
 #  This is displayed inside the accountUsernameInfoWithDescription
 #  string defined in imAccounts.properties when the user is
 #  configuring a Odnoklassniki account.
-odnoklassniki.usernameHint=Αναγνωριστικό προφίλ
+odnoklassniki.usernameHint=ID προφίλ
 
 # LOCALZIATION NOTE (command.*):
 #  These are the help messages for each command.
 command.join3=%S [&lt;δωμάτιο&gt;[@&lt;διακομιστής&gt;[]/&lt;ψευδώνυμο&gt;]][&lt;κωδικός&gt;]: Συμμετοχή σε δωμάτιο, προαιρετικά δίνοντας διαφορετικό διακομιστή, ψευδώνυμο ή κωδικό δωματίου.
-command.part2=%S [&lt;μήνυμα&gt;]: Αφήστε το τρέχον δωμάτιο με κάποιο μήνυμα προαιρετικά.
-command.topic=%S [&lt;νέο θέμα&gt;]: Ορίστε το θέμα του δωματίου.
-command.ban=%S &lt;ψευδώνυμο&gt;[&lt;μήνυμα&gt;]: Αποκλείστε κάποιον από το δωμάτιο. Θα πρέπει να είστε διαχειριστής του δωματίου για να το κάνετε αυτό.
-command.kick=%S &lt;ψευδώνυμο&gt;[&lt;μήνυμα&gt;]: Αφαιρέστε κάποιον από το δωμάτιο. Θα πρέπει να είστε συντονιστής του δωματίου για να το κάνετε αυτό.
+command.part2=%S [&lt;μήνυμα&gt;]: Αποχώρηση από το τρέχον δωμάτιο με ένα προαιρετικό μήνυμα.
+command.topic=%S [&lt;νέο θέμα&gt;]: Ορισμός θέματος δωματίου.
+command.ban=%S &lt;ψευδώνυμο&gt;[&lt;μήνυμα&gt;]: Αποκλεισμός ατόμου από το δωμάτιο. Θα πρέπει να είστε διαχειριστής του δωματίου για να το κάνετε αυτό.
+command.kick=%S &lt;ψευδώνυμο&gt;[&lt;μήνυμα&gt;]: Αφαίρεση ατόμου από το δωμάτιο. Θα πρέπει να είστε συντονιστής του δωματίου για να το κάνετε αυτό.
 command.invite=%S &lt;jid&gt;[&lt;μήνυμα&gt;]: Προσκαλέστε κάποιο χρήστη για να συμμετέχει στο δωμάτιο προαιρετικά με κάποιο μήνυμα.
 command.inviteto=%S &lt;δωμάτιο jid&gt;[&lt;κωδικός&gt;]: Προσκαλέστε τον σύντροφο στη συζήτησή σας να συμμετέχει σε ένα δωμάτιο, μαζί με τον κωδικό αν απαιτείται.
-command.me=%S &lt;ενέργεια προς εκτέλεση&gt;: Εκτελέστε μια ενέργεια.
-command.nick=%S &lt;νέο ψευδώνυμο&gt;: Αλλαγή του ψευδώνυμου σας.
+command.me=%S &lt;ενέργεια προς εκτέλεση&gt;: Εκτέλεση ενέργειας.
+command.nick=%S &lt;νέο ψευδώνυμο&gt;: Αλλαγή του ψευδωνύμου σας.
 command.msg=%S &lt;ψευδώνυμο&gt; &lt;μήνυμα&gt;: Στείλετε ένα προσωπικό μήνυμα σε κάποιον συμμετέχοντα στο δωμάτιο.
-command.version=%S: Αίτηση πληροφοριών για τον πελάτη που χρησιμοποιεί ο σύντροφός σας.
+command.version=%S: Απαίτηση πληροφοριών για το πρόγραμμα-πελάτη που χρησιμοποιεί ο συνεργάτης σας.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/communicator/utilityOverlay.dtd b/thunderbird-l10n/el/chrome/el/locale/el/communicator/utilityOverlay.dtd
index bcf6e325d996476fa4c7b134cdcac38f96c996f1..e91050a53f99d207cd25a044bbc3c7558c59086a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/communicator/utilityOverlay.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/communicator/utilityOverlay.dtd
@@ -42,5 +42,5 @@
 <!ENTITY quitApplicationCmdUnix.label  "Έξοδος">
 <!ENTITY quitApplicationCmdUnix.accesskey  "Έ">
 
-<!ENTITY quitApplicationCmdMac.label  "Κλείσιμο &brandShortName;">
+<!ENTITY quitApplicationCmdMac.label  "Κλείσιμο του &brandShortName;">
 <!ENTITY quitApplicationCmdMac.accesskey  "λ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/debugger.properties b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/debugger.properties
index 5130cf30c6fc802fbaf7ccb1d4470c7ffd2606ec..6d39922fc4ba6e76821345e38fda56c9d050b940 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/debugger.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/debugger.properties
@@ -1019,7 +1019,7 @@ shortcuts.fileSearch2=Μετάβαση σε αρχείο
 
 # LOCALIZATION NOTE (shortcuts.gotoLine): text describing
 # keyboard shortcut for jumping to a specific line
-shortcuts.gotoLine=Μετάβαση στη γραμμή
+shortcuts.gotoLine=Μετάβαση σε γραμμή
 
 # LOCALIZATION NOTE (shortcuts.searchAgain): text describing
 # keyboard shortcut action for searching again
@@ -1059,7 +1059,7 @@ variablesViewMissingArgs=(μη διαθέσιμη)
 # LOCALIZATION NOTE (variablesDomNodeValueTooltip): The text that is displayed
 # in a tooltip on the "open in inspector" button in the the variables list for a
 # DOMNode item.
-variablesDomNodeValueTooltip=Κάντε κλικ για να επιλέξετε τον κόμβο στον επιθεωρητή
+variablesDomNodeValueTooltip=Κάντε κλικ για επιλογή του κόμβου στην επιθεώρηση
 
 # LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
 # in the variables list on a getter or setter which can be edited.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/netmonitor.properties b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/netmonitor.properties
index 0714e718dd1fab85317736682f74b4512197f915..9e0026a8228b8aead036512f31d779019ea7043a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/netmonitor.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/netmonitor.properties
@@ -891,7 +891,7 @@ netmonitor.tab.messages=Μηνύματα
 
 # LOCALIZATION NOTE (netmonitor.tab.cookies): This is the label displayed
 # in the network details pane identifying the cookies tab.
-netmonitor.tab.cookies=Cookies
+netmonitor.tab.cookies=Cookie
 
 # LOCALIZATION NOTE (netmonitor.tab.cache): This is the label displayed
 # in the network details pane identifying the cache tab.
@@ -1071,7 +1071,7 @@ netmonitor.summary.learnMore=Μάθετε περισσότερα σχετικά
 
 # LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
 # in the network details headers tab identifying the referrer policy.
-netmonitor.headers.referrerPolicy=Πολιτική αναφοράς
+netmonitor.headers.referrerPolicy=Πολιτική παραπομπής
 
 # LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
 # in the network details headers tab identifying the content blocking mode.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/performance.dtd b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/performance.dtd
index 939daffa0db482ef6addbef5ee2d21383ce82a1a..fc8b1c149cb19538cc30d1c1fbf40c056fb213f2 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/performance.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/performance.dtd
@@ -60,7 +60,7 @@
 <!ENTITY performanceUI.table.function                 "Συνάρτηση">
 <!ENTITY performanceUI.table.function.tooltip         "Το όνομα και η τοποθεσία στον κώδικα της συνάρτησης δειγματοληψίας.">
 <!ENTITY performanceUI.table.totalAlloc               "Συνολικοί Καταμερισμοί Δειγμάτων">
-<!ENTITY performanceUI.table.totalAlloc.tooltip       "Ο συνολικός αριθμός εκχωρήσεων αντικειμένων, από τα οποία λήφθηκε δείγμα σε αυτή την τοποθεσία και στους καλούντες.">
+<!ENTITY performanceUI.table.totalAlloc.tooltip       "Ο συνολικός αριθμός εκχωρήσεων αντικειμένων, από τα οποία λήφθηκε δείγμα σε αυτήν την τοποθεσία και στους καλούμενους.">
 
 <!-- LOCALIZATION NOTE (performanceUI.options.filter.tooltiptext): This string
   -  is displayed next to the filter button-->
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/storage.properties b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/storage.properties
index bcf9c97a6db05b6537cc33e7c4a9c1d5ce241c12..d9f4ad06e8e6c7f54a475db8939f29a9fb42823b 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/storage.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/storage.properties
@@ -16,7 +16,7 @@ storage.filter.key=CmdOrCtrl+F
 # LOCALIZATION NOTE (tree.labels.*):
 # These strings are the labels for Storage type groups present in the Storage
 # Tree, like cookies, local storage etc.
-tree.labels.cookies=Cookies
+tree.labels.cookies=Cookie
 tree.labels.localStorage=Τοπική αποθήκευση
 tree.labels.sessionStorage=Αποθήκευση συνεδρίας
 tree.labels.indexedDB=ΒΔ με ευρετήριο
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/toolbox.properties b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/toolbox.properties
index 028f87a36e9fa014eebf4eb3a4d29538beeb1d5f..4bc6348d8452fe6da8301167c77cbc2831ab08b5 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/toolbox.properties
@@ -17,7 +17,7 @@ toolbox.titleTemplate2=Εργαλεία ανάπτυξης — %1$S — %2$S
 # the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
 # This Browser Toolbox allows to debug the parent process as well as the content
 # processes in the same toolbox.
-toolbox.multiProcessBrowserToolboxTitle=Εργαλειοθήκη πολλαπλών διεργασιών προγράμματος περιήγησης
+toolbox.multiProcessBrowserToolboxTitle=Εργαλειοθήκη πολλαπλών διεργασιών φυλλομετρητή
 
 # LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
 # name when no tool is selected.
@@ -66,7 +66,7 @@ toolbox.viewCssSourceInStyleEditor.label=Άνοιγμα του αρχείου σ
 # Used as a message in either tooltips or contextual menu items to open the
 # corresponding URL as a js file in the Debugger tool.
 # DEV NOTE: Mostly used wherever toolbox.viewSourceInDebugger is used.
-toolbox.viewJsSourceInDebugger.label=Άνοιγμα αρχείου στον αποσφαλματωτή
+toolbox.viewJsSourceInDebugger.label=Άνοιγμα αρχείου στον έλεγχο σφαλμάτων
 
 toolbox.resumeOrderWarning=Η σελίδα δεν συνέχισε μετά την προσάρτηση του ελέγχου σφαλμάτων. Για να διορθωθεί αυτό, κλείστε και ανοίξτε πάλι τα εργαλεία ανάπτυξης.
 
@@ -123,7 +123,7 @@ toolbox.toggleToolboxF12.key=F12
 # LOCALIZATION NOTE (toolbox.frames.tooltip): This is the label for
 # the iframes menu list that appears only when the document has some.
 # It allows you to switch the context of the whole toolbox.
-toolbox.frames.tooltip=Επιλέξτε ένα iframe ως το τρέχον έγγραφο-στόχος
+toolbox.frames.tooltip=Επιλέξτε ένα iframe ως το τρέχον έγγραφο-στόχο
 
 # LOCALIZATION NOTE (toolbox.frames.disabled.tooltip): This is the title
 # displayed as a tooltip of the iframes menu button, when disabled. The button
@@ -177,7 +177,7 @@ toolbox.meatballMenu.community.label=Κοινότητα…
 
 # LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
 # the close button the developer tools toolbox.
-toolbox.closebutton.tooltip=Κλείσιμο εργαλείων προγραμματιστών
+toolbox.closebutton.tooltip=Κλείσιμο εργαλείων ανάπτυξης
 
 # LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
 # the error count button displayed in the developer tools toolbox.
@@ -271,7 +271,7 @@ toolbox.debugTargetInfo.targetType.worker=Worker
 # LOCALIZATION NOTE (browserToolbox.statusMessage): This is the label
 # shown next to status details when the Browser Toolbox fails to connect or
 # appears to be taking a while to do so.
-browserToolbox.statusMessage=Κατάσταση σύνδεσης εργαλειοθήκης προγράμματος περιήγησης:
+browserToolbox.statusMessage=Κατάσταση σύνδεσης εργαλειοθήκης φυλλομετρητή:
 
 # LOCALIZATION NOTE (toolbox.debugTargetErrorPage.title): This is the title
 # for the Error view shown by the toolbox when a connection to a debug target
@@ -281,7 +281,7 @@ toolbox.debugTargetErrorPage.title = Σφάλμα
 # LOCALIZATION NOTE (toolbox.debugTargetErrorPage.description): This is the
 # text that appears in the Error view and explains to the user that an error
 # has happened while trying to connect to a debug target
-toolbox.debugTargetErrorPage.description = Αδυναμία σύνδεσης με το στόχο ελέγχου σφαλμάτων. Δείτε τις λεπτομέρειες σφάλματος παρακάτω:
+toolbox.debugTargetErrorPage.description = Δεν είναι δυνατή η σύνδεση με τον προορισμό ελέγχου σφαλμάτων. Δείτε τις λεπτομέρειες του σφάλματος παρακάτω:
 
 # LOCALIZATION NOTE (options.deprecationNotice): This is the text that appears in the
 # settings panel for panel that will be removed in future releases.
@@ -290,4 +290,8 @@ options.deprecationNotice=Παρωχημένο. Μάθετε περισσότε
 
 # LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
-options.enableMultiProcessToolbox=Ενεργοποίηση εργαλειοθήκης πολλαπλών διεργασιών προγράμματος περιήγησης (απαιτείται επανεκκίνηση της εργαλειοθήκης προγράμματος περιήγησης)
+options.enableMultiProcessToolbox=Ενεργοποίηση εργαλειοθήκης πολλαπλών διεργασιών φυλλομετρητή (απαιτείται επανεκκίνηση της εργαλειοθήκης φυλλομετρητή)
+
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+options.enableNewPerformancePanel=Ενεργοποίηση νέου εργαλείου καταγραφής επιδόσεων (και έπειτα, εκ νέου άνοιγμα του DevTools)
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/webconsole.properties b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/webconsole.properties
index 7cf0ef68158f84486da3a003af2a3c12ec5c56ac..cb4330a4efb3aff7ff403a9f984da891de9b4ddf 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/devtools/client/webconsole.properties
@@ -80,7 +80,7 @@ connectionTimeout=Λήξη χρονικού ορίου σύνδεσης. Ελέ
 
 # LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
 # appears in the filter text box for the properties view container.
-propertiesFilterPlaceholder=Ιδιότητες φίλτρου
+propertiesFilterPlaceholder=Φιλτράρισμα ιδιοτήτων
 
 # LOCALIZATION NOTE (messageRepeats.tooltip2): the tooltip text that is displayed
 # when you hover the red bubble that shows how many times a message is repeated
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/appstrings.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/appstrings.properties
index 05ea2d8f03a9a6c311b0591989efb38741bb355f..e5d0bb8e0e55c1e651f23f9fb168d761a7c10c18 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/appstrings.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/appstrings.properties
@@ -3,36 +3,36 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 malformedURI2=Παρακαλούμε ελέγξτε ότι το URL είναι σωστό και ξαναδοκιμάστε.
-fileNotFound=Το αρχείο %S δεν βρέθηκε. Ελέγξτε τη διαδρομή και προσπαθήστε ξανά.
+fileNotFound=Δεν ήταν δυνατή η εύρεση του αρχείου «%S». Παρακαλώ ελέγξτε την τοποθεσία και δοκιμάστε ξανά.
 fileAccessDenied=Το αρχείο στο %S δεν είναι αναγνώσιμο.
-dnsNotFound2=Το %S δεν βρέθηκε. Παρακαλώ ελέγξτε το όνομα και προσπαθήστε ξανά.
+dnsNotFound2=Δεν ήταν δυνατή η εύρεση του «%S». Παρακαλώ ελέγξτε το όνομα και δοκιμάστε ξανά.
 unknownProtocolFound=Ένα από τα ακόλουθα (%S) δεν είναι καταχωρημένο πρωτόκολλο ή δεν επιτρέπεται σε αυτό το πλαίσιο.
-connectionFailure=Υπήρξε πρόβλημα σύνδεσης στην προσπάθεια επικοινωνίας με %S.
-netInterrupt=Η σύνδεση στο %S τερματίστηκε απρόσμενα. Μερικά από τα δεδομένα μπορεί να μην έχουν μεταφερθεί.
-netTimeout=Λήξη προθεσμίας ενέργειας κατά την προσπάθεια σύνδεσης σε %S. 
-redirectLoop=Υπέρβαση του ορίου ανακατεύθυνσης για αυτό το URL. Η φόρτωση διακόπηκε.  
-confirmRepostPrompt=Για να εμφανιστεί αυτή η σελίδα, η εφαρμογή θα επαναλάβει οποιαδήποτε προηγούμενη ενέργεια (π.χ. αναζήτηση ή αγορά).
+connectionFailure=Η σύνδεση απορρίφθηκε κατά την απόπειρα επικοινωνίας με το %S.
+netInterrupt=Η σύνδεση με το %S τερματίστηκε απρόσμενα. Ορισμένα δεδομένα ενδέχεται να μην έχουν μεταφερθεί.
+netTimeout=Το χρονικό όριο της ενέργειας έληξε κατά την απόπειρα επικοινωνίας με το %S.
+redirectLoop=Υπέρβαση του ορίου ανακατευθύνσεων για αυτό το URL. Δεν είναι δυνατή η φόρτωση της ζητούμενης σελίδας. Αυτό ενδέχεται να προκαλείται από τον αποκλεισμό cookie.
+confirmRepostPrompt=Για να προβληθεί η σελίδα, η εφαρμογή πρέπει να στείλει πληροφορίες που θα επαναλάβουν οποιαδήποτε προηγούμενη ενέργεια (όπως αναζήτηση ή επιβεβαίωση παραγγελίας).
 resendButton.label=Αποστολή ξανά
-unknownSocketType=Δεν είναι η δυνατή η προβολή αυτού του εγγράφου μέχρι να εγκαταστήσετε τη Διαχείριση Προσωπικής ασφάλειας (PSM). Βρείτε και εγκαταστήστε τον PSM και προσπαθήστε ξανά, ή επικοινωνήστε με το διαχειριστή του συστήματος σας.
+unknownSocketType=Δεν είναι η δυνατή η προβολή αυτού του εγγράφου μέχρι να εγκαταστήσετε τη Διαχείριση προσωπικής ασφάλειας (PSM). Κάνετε λήψη και εγκατάσταση του PSM και δοκιμάστε ξανά ή επικοινωνήστε με τον διαχειριστή του συστήματος σας.
 netReset=Το έγγραφο δεν περιέχει δεδομένα.
-notCached=Αυτό το έγγραφο δεν είναι πια διαθέσιμο.
-netOffline=Το έγγραφο δε μπορεί να προβληθεί χωρίς σύνδεση.
-isprinting=Το έγγραφο δεν μπορεί να αλλαχθεί κατά την εκτύπωση ή την προεπισκόπηση εκτύπωσης
+notCached=Αυτό το έγγραφο δεν είναι πλέον διαθέσιμο.
+netOffline=Αυτό το έγγραφο δεν μπορεί να προβληθεί εκτός σύνδεσης. Για να συνδεθείτε στο διαδίκτυο, καταργήστε την επιλογή «Εργασία εκτός σύνδεσης» από το μενού «Αρχείο».
+isprinting=Το έγγραφο δεν μπορεί να τροποποιηθεί κατά την εκτύπωση ή την προεπισκόπηση εκτύπωσης.
 deniedPortAccess=Η πρόσβαση στον καθορισμένο αριθμό θύρας έχει απενεργοποιηθεί για λόγους ασφάλειας. 
 proxyResolveFailure=Δεν ήταν δυνατή η εύρεση του διακομιστή μεσολάβησης που έχετε ρυθμίσει. Παρακαλώ ελέγξτε τις ρυθμίσεις του και δοκιμάστε ξανά.
 proxyConnectFailure=Η σύνδεση ακυρώθηκε κατά την απόπειρα επικοινωνίας με τον διακομιστή μεσολάβησης που έχετε ρυθμίσει. Παρακαλώ ελέγξτε τις ρυθμίσεις του και δοκιμάστε ξανά.
 contentEncodingError=Η σελίδα που προσπαθείτε να προβάλετε δεν μπορεί να εμφανιστεί επειδή χρησιμοποιεί μη έγκυρη ή μη υποστηριζόμενη μορφή συμπίεσης.
-unsafeContentType=Δεν είναι δυνατή η εμφάνιση αυτής της σελίδας επειδή εμπεριέχεται σε ένα τύπο αρχείου ο οποίος δεν είναι ασφαλής. Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους ενημερώσετε για το πρόβλημα.
+unsafeContentType=Δεν είναι δυνατή η εμφάνιση αυτής της σελίδας επειδή εμπεριέχεται σε έναν τύπο αρχείου ο οποίος δεν να μην είναι ασφαλής. Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με το πρόβλημα.
 malwareBlocked=Η σελίδα στο %S έχει αναφερθεί ως σελίδα κακόβουλων επιθέσεων και έχει φραγεί σύμφωνα με τις προτιμήσεις ασφαλείας σας.
-harmfulBlocked=Η σελίδα στο %S έχει αναφερθεί ως πιθανώς βλαβερή ιστοσελίδα και έχει φραγεί σύμφωνα με τις προτιμήσεις ασφαλείας σας.
-unwantedBlocked=Η ιστοσελίδα στο %S έχει αναφερθεί ότι περιέχει ανεπιθύμητο λογισμικό και έχει φραγεί σύμφωνα με τις προτιμήσεις ασφαλείας σας.
-deceptiveBlocked=Αυτή η ιστοσελίδα στο %S έχει αναφερθεί ως παραπλανητική ιστοσελίδα και έχει αποκλειστεί βάσει των προτιμήσεων ασφαλείας σας.
+harmfulBlocked=Ο ιστότοπος στο %S έχει αναφερθεί ως δυνητικά επιβλαβής και έχει αποκλειστεί βάσει των προτιμήσεων ασφαλείας σας.
+unwantedBlocked=Ο ιστότοπος στο %S έχει αναφερθεί ότι περιέχει ανεπιθύμητο λογισμικό και έχει αποκλειστεί βάσει των προτιμήσεων ασφαλείας σας.
+deceptiveBlocked=Αυτή η ιστοσελίδα στο %S έχει αναφερθεί ως παραπλανητικός ιστότοπος και έχει αποκλειστεί βάσει των προτιμήσεων ασφαλείας σας.
 cspBlocked=Η πολιτική ασφάλειας περιεχομένου αυτής της σελίδας δεν της επιτρέπει να φορτωθεί με αυτόν τον τρόπο.
 xfoBlocked=Αυτή η σελίδα έχει πολιτική X-Frame-Options που εμποδίζει τη φόρτωσή της σε αυτό το πλαίσιο.
-corruptedContentErrorv2=Η ιστοσελίδα στο %S έχει υποστεί παραβίαση πρωτοκόλλου δικτύου που δεν μπορεί να διορθωθεί.
+corruptedContentErrorv2=Ο ιστότοπος στο %S έχει υποστεί παραβίαση πρωτοκόλλου δικτύου που δεν μπορεί να διορθωθεί.
 remoteXUL=Αυτή η σελίδα χρησιμοποιεί μια μη υποστηριζόμενη τεχνολογία που δεν είναι πια διαθέσιμη στον Firefox.
 sslv3Used=Δεν υπάρχει εγγύηση της ασφάλειας των δεδομένων σας στο %S, επειδή χρησιμοποιεί SSLv3, ένα ανασφαλές πρωτόκολλο.
-weakCryptoUsed=Ο ιδιοκτήτης του %S δεν έχει ρυθμίσει σωστά την ιστοσελίδα του. Για την προστασία των πληροφοριών σας από υποκλοπή, δεν έγινε σύνδεση σε αυτή την ιστοσελίδα.
+weakCryptoUsed=Ο ιδιοκτήτης του %S δεν έχει ρυθμίσει σωστά τον ιστότοπό του. Για την προστασία των πληροφοριών σας από υποκλοπή, δεν έγινε σύνδεση με αυτόν τον ιστότοπο.
 inadequateSecurityError=Ο ιστότοπος επιχείρησε να διαπραγματευθεί ένα ανεπαρκές επίπεδο ασφάλειας.
 blockedByPolicy=Η εταιρεία σας έχει αποκλείσει την πρόσβαση σε αυτή τη σελίδα ή τον ιστότοπο.
 networkProtocolError=Το Firefox αντιμετώπισε μια παραβίαση πρωτοκόλλου δικτύου που δεν μπορεί να επιδιορθωθεί.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/browser.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/browser.properties
index 50c5ca40c27cd1dd26fdcfd681adf3322d37f6f9..498286b3cbb6d104670962ca15cf664466d656d5 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/browser.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/browser.properties
@@ -3,5 +3,5 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 formPostSecureToInsecureWarning.title = Προειδοποίηση ασφαλείας
-formPostSecureToInsecureWarning.message = Οι πληροφορίες που έχετε εισαγάγει σε αυτή τη σελίδα θα σταλούν μέσω επισφαλούς σύνδεσης και ενδέχεται να προβληθούν από τρίτους.\n\nΘέλετε σίγουρα να στείλετε αυτές τις πληροφορίες;
+formPostSecureToInsecureWarning.message = Οι πληροφορίες που έχετε εισαγάγει σε αυτήν τη σελίδα θα σταλούν μέσω επισφαλούς σύνδεσης και ενδέχεται να προβληθούν από τρίτους.\n\nΘέλετε σίγουρα να στείλετε αυτές τις πληροφορίες;
 formPostSecureToInsecureWarning.continue = Συνέχεια
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/dom/dom.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/dom/dom.properties
index 9c75f90878e93e1829a161acab9f592de2a40e54..fa6f02cb78f7e05c4de03e5f99ace664778cee5f 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/dom/dom.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/dom/dom.properties
@@ -16,7 +16,7 @@ KillAddonScriptGlobalMessage=Αποτροπή εκτέλεσης σεναρίο
 StopScriptButton=Διακοπή σεναρίου ενεργειών
 DebugScriptButton=Εκσφαλμάτωση σεναρίου
 WaitForScriptButton=Συνέχεια
-DontAskAgain=Να μην γίνει ερώτηση ξανά
+DontAskAgain=&Να μην ερωτηθώ ξανά
 WindowCloseBlockedWarning=Τα σενάρια ενεργειών δεν θα μπορούν να κλείσουν παράθυρα που δεν ανοίχθηκαν από ένα σενάριο.
 OnBeforeUnloadTitle=Σίγουρα;
 OnBeforeUnloadMessage=Αυτή η σελίδα ζητά την επιβεβαίωση σας για την έξοδο σας από αυτήν - τα δεδομένα που έχετε εισάγει πιθανόν να μην αποθηκευτούν.
@@ -31,7 +31,7 @@ EditorFileDropFailed=Απέτυχε η απόθεση ενός αρχείου σ
 FormValidationTextTooLong=Παρακαλώ συντομεύστε αυτό το κείμενο σε %S ή λιγότερους χαρακτήρες (τώρα χρησιμοποιείτε %S).
 FormValidationTextTooShort=Παρακαλώ χρησιμοποιήστε τουλάχιστον %S χαρακτήρες (τώρα, χρησιμοποιείτε %S χαρακτήρες).
 FormValidationValueMissing=Παρακαλώ συμπληρώστε αυτό το πεδίο.
-FormValidationCheckboxMissing=Παρακαλώ επιλέξτε αυτό το κουτί αν θέλετε να συνεχίσετε.
+FormValidationCheckboxMissing=Παρακαλώ επιλέξτε αυτό το πλαίσιο αν θέλετε να συνεχίσετε.
 FormValidationRadioMissing=Παρακαλούμε επιλέξτε μια από αυτές τις επιλογές.
 FormValidationFileMissing=Παρακαλώ επιλέξτε ένα αρχείο.
 FormValidationSelectMissing=Παρακαλούμε επιλέξτε ένα στοιχείο στη λίστα.
@@ -61,7 +61,7 @@ FullscreenDeniedDisabled=Η αίτηση για πλήρη οθόνη δεν έ
 FullscreenDeniedFocusedPlugin=Η αίτηση για πλήρη οθόνη δεν έγινε δεκτή επειδή ένα παράθυρο αρθρώματος έχει την εστίαση.
 FullscreenDeniedHidden=Η αίτηση για πλήρη οθόνη δεν έγινε δεκτή επειδή το έγγραφο δεν είναι πλέον ορατό.
 FullscreenDeniedHTMLDialog=Το αίτημα για πλήρη οθόνη απορρίφθηκε επειδή το στοιχείο αιτήματος είναι στοιχείο <dialog>.
-FullscreenDeniedContainerNotAllowed=Το αίτημα για πλήρη οθόνη δεν έγινε δεκτό, επειδή τουλάχιστον ένα από τα στοιχεία-περιέκτες του εγγράφου δεν είναι iframe ή δεν διαθέτει την ιδιότητα “allowfullscreen”.
+FullscreenDeniedContainerNotAllowed=Το αίτημα για πλήρη οθόνη δεν έγινε δεκτό, επειδή τουλάχιστον ένα από τα στοιχεία-περιέκτες του εγγράφου δεν είναι iframe ή δεν διαθέτει την ιδιότητα «allowfullscreen».
 FullscreenDeniedNotInputDriven=Η αίτηση για πλήρη οθόνη δεν έγινε δεκτή, επειδή η κλήση του Element.requestFullscreen() δεν έγινε μέσα από ένα βραχύβιο χειριστή συμβάντων χρήστη.
 FullscreenDeniedMouseEventOnlyLeftBtn=Η αίτηση για πλήρη οθόνη δεν έγινε δεκτή, επειδή η κλήση του Element.requestFullscreen() έγινε μέσα από ένα χειριστή συμβάντων ποντικιού, που δεν προκλήθηκε από το αριστερό κουμπί του ποντικιού.
 FullscreenDeniedNotHTMLSVGOrMathML=Το αίτημα για πλήρη οθόνη δεν έγινε δεκτό επειδή το αιτούν στοιχείο δεν είναι <svg>, <math> ή στοιχείο HTML.
@@ -149,7 +149,7 @@ MediaEMENoCapabilitiesDeprecatedWarning=Η κλήση του navigator.requestMe
 MediaEMENoCodecsDeprecatedWarning=Η κλήση του navigator.requestMediaKeySystemAccess() (σε %S), που περνάει από ένα υποψήφιο MediaKeySystemConfiguration, που περιέχει τα audioCapabilities ή videoCapabilities, χωρίς ένα contentType με μια συμβολοσειρά “codecs”, είναι παρωχημένη και, σύντομα, δεν θα υποστηρίζεται.
 # LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
 MutationEventWarning=Η χρήση του Mutation Events είναι παρωχημένη. Χρησιμοποιήστε το MutationObserver.
-BlockAutoplayError=Η αυτόματη αναπαραγωγή επιτρέπεται μόνο όταν εγκρίνεται από το χρήστη, η ιστοσελίδα ενεργοποιείται από το χρήστη, ή γίνεται σίγαση πολυμέσων.
+BlockAutoplayError=Η αυτόματη αναπαραγωγή επιτρέπεται μόνο όταν εγκρίνεται από τον χρήστη, όταν ο ιστότοπος ενεργοποιείται από τον χρήστη ή όταν γίνεται σίγαση πολυμέσων.
 BlockAutoplayWebAudioStartError=Εμποδίστηκε η αυτόματη εκκίνηση ενός AudioContext. Πρέπει να δημιουργηθεί ή να συνεχιστεί μετά από μια χειρονομία χρήστη στη σελίδα.
 # LOCALIZATION NOTE: Do not translate "Components"
 ComponentsWarning=Το αντικείμενο Components είναι παρωχημένο. Θα αφαιρεθεί σύντομα.
@@ -168,14 +168,14 @@ UseOfReleaseEventsWarning=Η χρήση του releaseEvents() είναι παρ
 # LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
 SyncXMLHttpRequestWarning=Το συγχρονισμένο XMLHttpRequest στο κύριο νήμα είναι παρωχημένο λόγω των καταστροφικών του επιπτώσεων στην εμπειρία του τελικού χρήστη. Για περισσότερη βοήθεια: http://xhr.spec.whatwg.org/
 # LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
-Window_Cc_ontrollersWarning=Το "window.controllers/Controllers" είναι παρωχημένο. Μην το χρησιμοποιείτε για ανίχνευση UA.
+Window_Cc_ontrollersWarning=Το «window.controllers/Controllers» είναι παρωχημένο. Μην το χρησιμοποιείτε για ανίχνευση UA.
 ImportXULIntoContentWarning=Η εισαγωγή κόμβων XUL σε ένα έγγραφο περιεχομένου είναι παρωχημένη. Αυτή η λειτουργικότητα ενδέχεται να αφαιρεθεί σύντομα.
 # LOCALIZATION NOTE: Do not translate "IndexedDB".
 IndexedDBTransactionAbortNavigation=Μια συναλλαγή IndexedDB, η οποία δεν είχε ακόμη ολοκληρωθεί, έχει ακυρωθεί λόγω της πλοήγησης σελίδας.
 # LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
 IgnoringWillChangeOverBudgetWarning=Η κατανάλωση μνήμης Will-change είναι πολύ υψηλή. Το όριο προϋπολογισμού είναι η περιοχή επιφάνειας εγγράφου πολλαπλασιασμένη με %1$S (%2$S px). Θα αγνοηθούν περιπτώσεις του will-change στον προϋπολογισμό.
 # LOCALIZATION NOTE: Do not translate "Worker".
-HittingMaxWorkersPerDomain2=Ένα worker δεν μπορούσε να ξεκινήσει άμεσα, επειδή άλλα έγγραφα στην ίδια προέλευση χρησιμοποιούν ήδη το μέγιστο αριθμό workers. Το worker βρίσκεται πλέον στην ουρά και θα ξεκινήσει αφού ολοκληρωθούν μερικά άλλα workers.
+HittingMaxWorkersPerDomain2=Ένα worker δεν μπορούσε να ξεκινήσει άμεσα, επειδή άλλα έγγραφα στην ίδια προέλευση χρησιμοποιούν ήδη το μέγιστο αριθμό worker. Το worker βρίσκεται πλέον στην ουρά και θα ξεκινήσει αφού ολοκληρωθούν μερικά άλλα worker.
 # LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
 AppCacheWarning=Το Application Cache API (AppCache) είναι παρωχημένο και θα αφαιρεθεί σε μελλοντική ημερομηνία.  Παρακαλώ σκεφτείτε να χρησιμοποιήσετε το ServiceWorker για υποστήριξη εκτός σύνδεσης.
 # LOCALIZATION NOTE: Do not translate "Worker".
@@ -277,7 +277,7 @@ PushMessageBadSenderKey=Το ServiceWorker για το πεδίο ‘%1$S’ α
 # because the "salt" parameter is not valid base64url. Do not translate
 # "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
 # ServiceWorker scope URL.
-PushMessageBadSalt=Το ServiceWorker για το πεδίο ‘%1$S’ απέτυχε να αποκρυπτογραφήσει ένα μήνυμα push. Η παράμετρος ‘salt‘ στην κεφαλίδα ‘Encryption‘ πρέπει να είναι κωδικοποιημένη με base64url (https://tools.ietf.org/html/rfc7515#appendix-C) και τουλάχιστον 16 bytes πριν την κωδικοποίηση. Δείτε το https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 για περισσότερες πληροφορίες.
+PushMessageBadSalt=Το ServiceWorker για το πεδίο «%1$S» απέτυχε να αποκρυπτογραφήσει ένα μήνυμα push. Η παράμετρος «salt» στην κεφαλίδα «Encryption» πρέπει να είναι κωδικοποιημένη με base64url (https://tools.ietf.org/html/rfc7515#appendix-C) και τουλάχιστον 16 bytes πριν από την κωδικοποίηση. Δείτε το https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 για περισσότερες πληροφορίες.
 # LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
 # because the "rs" parameter is not a number, or is less than the pad size.
 # Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/layout/htmlparser.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/layout/htmlparser.properties
index 747118aa152c6e6818e744d2653bb0bcf673e9f3..4eef70462a76c4c62d53a56b67fb565d79ae2b2c 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/layout/htmlparser.properties
@@ -14,7 +14,7 @@ EncMetaUnsupported=Μια μη υποστηριζόμενη κωδικοποίη
 EncProtocolUnsupported=Μια μη υποστηριζόμενη κωδικοποίηση χαρακτήρων δηλώθηκε στο επίπεδο πρωτοκόλλου μεταφοράς. Η δήλωση αγνοήθηκε.
 EncBomlessUtf16=Εντοπίστηκε κείμενο σε κωδικοποίηση UTF-16 Basic Latin-only χωρίς σήμανση σειράς byte (BOM) και χωρίς δήλωση στο επιπέδου πρωτοκόλλου μεταφοράς. Η κωδικοποίηση αυτού του περιεχομένου σε UTF-16 είναι ανεπαρκής και η κωδικοποίηση χαρακτήρων θα έπρεπε να είχε δηλωθεί σε κάθε περίπτωση.
 EncMetaUtf16=Χρησιμοποιήθηκε μια μετα-ετικέτα για να δηλώσει κωδικοποίηση χαρακτήρων UTF-16 . Αυτό όμως ερμηνεύθηκε ως δήλωση UTF-8.
-EncMetaUserDefined=Χρησιμοποιήθηκε μια μετα-ετικέτα για να δηλώσει κωδικοποίηση χαρακτήρων ορισμένη από τον χρήστη (x-user-defined). Αυτό όμως ερμηνεύθηκε ως δήλωση windows-1252 για συμβατότητα με τις σκόπιμα κακο-κωδικοποιημένες γραμματοσειρές παλαιού τύπου. Αυτή η ιστοσελίδα θα πρέπει να μετατραπεί σε Unicode.
+EncMetaUserDefined=Χρησιμοποιήθηκε μια μεταετικέτα για τη δήλωση της κωδικοποίησης χαρακτήρων ως x-user-defined. Αυτό όμως ερμηνεύθηκε ως δήλωση windows-1252 για συμβατότητα με τις γραμματοσειρές παλαιού τύπου που έχουν σκόπιμα κωδικοποιηθεί με λάθος τρόπο. Αυτός ο ιστότοπος θα πρέπει να μετατραπεί σε Unicode.
 
 # The bulk of the messages below are derived from
 # https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
@@ -25,13 +25,13 @@ errGarbageAfterLtSlash=Απορρίμματα μετά το “</”.
 errLtSlashGt=Βρέθηκε “</>”. Πιθανές αιτίες: το “<” χωρίς διαφυγή (η διαφυγή γίνεται με χρήση του “&lt;”) ή κακογραμμένη ετικέτα τέλους.
 errCharRefLacksSemicolon=Η αναφορά χαρακτήρα δεν τερματίστηκε με ερωτηματικό.
 errNoDigitsInNCR=Κανένα ψηφίο στην αναφορά του αριθμητικού χαρακτήρα.
-errGtInSystemId=Το «>» στο αναγνωριστικό του συστήματος.
+errGtInSystemId=Το «>» στο αναγνωριστικό συστήματος.
 errGtInPublicId=Το «>» στο δημόσιο αναγνωριστικό.
 errNamelessDoctype=Ανώνυμη δήλωση doctype.
 errConsecutiveHyphens=Συνεχόμενες παύλες που δεν τερματίζουν σχόλιο. Δεν επιτρέπεται το «--» μέσα σε σχόλιο, αλλά π.χ. το "- -" επιτρέπεται.
 errPrematureEndOfComment=Πρόωρο τέλος σχολίου. Χρησιμοποιήστε το “-->” για να τερματίσετε σωστά ένα σχόλιο.
 errBogusComment=Ψευδές σχόλιο.
-errUnquotedAttributeLt=“<” σε τιμή ιδιότητας χωρίς εισαγωγικά. Πιθανή αιτία: Λείπει το “>“ αμέσως πριν.
+errUnquotedAttributeLt=«<» σε τιμή ιδιότητας χωρίς εισαγωγικά. Πιθανή αιτία: Λείπει το «>» αμέσως πριν.
 errUnquotedAttributeGrave=“`” σε τιμή ιδιότητας χωρίς εισαγωγικά. Πιθανή αιτία: Χρήση λάθος χαρακτήρα ως εισαγωγικού.
 errUnquotedAttributeQuote=Εισαγωγικό σε τιμή ιδιότητας χωρίς εισαγωγικά. Πιθανές αιτίες: Οι ιδιότητες εκτελούνται μαζί ή υπάρχει μια συμβολοσειρά ερωτήματος URL σε τιμή ιδιότητας χωρίς εισαγωγικά.
 errUnquotedAttributeEquals=“=” σε τιμή ιδιότητας χωρίς εισαγωγικά. Πιθανές αιτίες: Οι ιδιότητες εκτελούνται μαζί ή υπάρχει μια συμβολοσειρά ερωτήματος URL σε τιμή ιδιότητας χωρίς εισαγωγικά.
@@ -77,6 +77,7 @@ errEofInSystemId=Τέλος αρχείου μέσα σε αναγνωριστι
 errExpectedSystemId=Αναμενόταν αναγνωριστικό συστήματος, αλλά η δήλωση doctype τελείωσε.
 errMissingSpaceBeforeDoctypeName=Λείπει κενό πριν από το όνομα της δήλωσης doctype.
 errHyphenHyphenBang=Βρέθηκε “--!” μέσα σε σχόλιο.
+errNestedComment=Βρέθηκε «<!--» εντός σχολίου. Πιθανή αιτία: Ένθετο σχόλιο (δεν επιτρέπεται).
 errNcrZero=Η αναφορά χαρακτήρα αναπτύσσεται σε μηδέν.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Κανένα κενό ανάμεσα στη λέξη-κλειδί “SYSTEM” της δήλωσης doctype και στα εισαγωγικά.
 errNoSpaceBetweenPublicAndSystemIds=Κανένα κενό ανάμεσα στα δημόσια αναγνωριστικά και στα αναγνωριστικά συστήματος της δήλωσης doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Άκλειστα στοιχεία στη στ
 errEndTagDidNotMatchCurrentOpenElement=Η ετικέτα λήξης “%1$S” δεν ταιριάζει με το όνομα του τρέχοντος ανοικτού στοιχείου (“%2$S”).
 errEndTagViolatesNestingRules=Η ετικέτα λήξης “%1$S” παραβιάζει τους κανόνες ένθεσης.
 errEndWithUnclosedElements=Βρέθηκε ετικέτα τέλους για το “%1$S”, αλλά υπήρχαν άκλειστα στοιχεία.
+errListUnclosedStartTags=Μη κλειστό στοιχείο ή στοιχεία.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/layout_errors.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/layout_errors.properties
index 958f57576bf8208ccc5f06b6c54badb4e8267330..cf98b3f8185a25dcdd425e59e4b49bc4abf74bc9 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/layout_errors.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/layout_errors.properties
@@ -2,14 +2,16 @@
 # 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/.
 
-ImageMapRectBoundsError=Η ιδιότητα “coords” της ετικέτας <area shape="rect"> δεν είναι στη μορφή “left,top,right,bottom”.
-ImageMapCircleWrongNumberOfCoords=Η ιδιότητα “coords” της ετικέτας <area shape="circle"> δεν είναι στη μορφή “center-x,center-y,radius”.
-ImageMapCircleNegativeRadius=Η ιδιότητα “coords” της ετικέτας <area shape="circle"> έχει αρνητική ακτίνα.
-ImageMapPolyWrongNumberOfCoords=Η ιδιότητα “coords” της ετικέτας <area shape="poly"> δεν είναι στη μορφή “x1,y1,x2,y2 …”.
-ImageMapPolyOddNumberOfCoords=Η ιδιότητα “coords” της ετικέτας <area shape="poly"> δεν έχει την τελευταία συντεταγμένη “y” (η σωστή μορφή είναι “x1,y1,x2,y2 …”).
+ImageMapRectBoundsError=Η ιδιότητα «coords» της ετικέτας <area shape="rect"> δεν είναι στη μορφή «left,top,right,bottom».
+ImageMapCircleWrongNumberOfCoords=Η ιδιότητα «coords» της ετικέτας <area shape="circle"> δεν είναι στη μορφή «center-x,center-y,radius».
+ImageMapCircleNegativeRadius=Η ιδιότητα «coords» της ετικέτας <area shape="circle"> έχει αρνητική ακτίνα.
+ImageMapPolyWrongNumberOfCoords=Η ιδιότητα «coords» της ετικέτας <area shape="poly"> δεν είναι στη μορφή «x1,y1,x2,y2 …».
+ImageMapPolyOddNumberOfCoords=Η ιδιότητα «coords» της ετικέτας <area shape="poly"> δεν έχει την τελευταία συντεταγμένη «y» (η σωστή μορφή είναι «x1,y1,x2,y2 …»).
 
-TablePartRelPosWarning=Υποστηρίζεται πλέον η σχετική τοποθέτηση σειρών πίνακα και ομάδων σειρών. Αυτή η ιστοσελίδα ενδέχεται να χρειάζεται να ενημερωθεί επειδή ίσως να βασίζεται σε αυτή τη λειτουργία, μη έχοντας καμία επίδραση.
-ScrollLinkedEffectFound2=Αυτή η ιστοσελίδα φαίνεται να χρησιμοποιεί ένα εφέ τοποθέτησης συνδεδεμένο με κύλιση. Αυτό ενδέχεται να μην λειτουργήσει καλά με ασύγχρονο panning· δείτε το https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects για περισσότερες λεπτομέρειες και για να συμμετάσχετε στη συζήτηση για σχετικά εργαλεία και λειτουργίες!
+TablePartRelPosWarning=Υποστηρίζεται πλέον η σχετική τοποθέτηση σειρών πίνακα και ομάδων σειρών. Αυτός ο ιστότοπος ενδέχεται να χρειάζεται ενημέρωση επειδή ίσως να βασίζεται σε αυτή τη λειτουργία, μη έχοντας καμία επίδραση.
+ScrollLinkedEffectFound2=Αυτός ο ιστότοπος φαίνεται να χρησιμοποιεί ένα εφέ τοποθέτησης συνδεδεμένο με κύλιση. Αυτό ενδέχεται να μην λειτουργήσει καλά με ασύγχρονο panning· δείτε το https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects για περισσότερες λεπτομέρειες και για να συμμετάσχετε στη συζήτηση για σχετικά εργαλεία και λειτουργίες!
+
+ScrollLinkedEffectFound3=Αυτός ο ιστότοπος φαίνεται να χρησιμοποιεί ένα εφέ τοποθέτησης συνδεδεμένο με κύλιση. Αυτό ενδέχεται να μην λειτουργήσει καλά με ασύγχρονο panning· δείτε το https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html για περισσότερες λεπτομέρειες και για να συμμετάσχετε στη συζήτηση για σχετικά εργαλεία και λειτουργίες!
 
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
@@ -33,17 +35,17 @@ CompositorAnimationWarningTransformSVG=Τα εφέ κίνησης του ‘tran
 CompositorAnimationWarningTransformWithGeometricProperties=Τα εφέ κίνησης του ‘transform’ δεν μπορούν να εκτελεστούν στο συνθέτη όταν οι γεωμετρικές ιδιότητες εκτελούνται στο ίδιο στοιχείο ταυτόχρονα
 CompositorAnimationWarningTransformWithSyncGeometricAnimations=Το εφέ κίνησης του ‘transform’ δεν μπορεί να εκτελεστεί στο συνθέτη επειδή πρέπει να συγχρονιστεί με εφέ κίνησης των γεωμετρικών ιδιοτήτων που ξεκίνησαν ταυτόχρονα
 CompositorAnimationWarningTransformFrameInactive=Το εφέ κίνησης δεν μπορεί να εκτελεστεί στο συνθέτη επειδή το κάδρο δεν επισημάνθηκε ως ενεργό για το εφέ κίνησης ‘transform’
-CompositorAnimationWarningTransformIsBlockedByImportantRules=Το εφέ κίνησης "transform" δεν μπορεί να εκτελεστεί στο πρόγραμμα σύνθεσης, επειδή οι ιδιότητες σχετικά με το "transform" παρακάμπτονται από κανόνες !important
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Το εφέ κίνησης «transform» δεν μπορεί να εκτελεστεί στο πρόγραμμα σύνθεσης, επειδή οι ιδιότητες σχετικά με το «transform» παρακάμπτονται από κανόνες !important
 CompositorAnimationWarningOpacityFrameInactive=Το εφέ κίνησης δεν μπορεί να εκτελεστεί στο συνθέτη επειδή το κάδρο δεν επισημάνθηκε ως ενεργό για το εφέ κίνησης ‘opacity’
 CompositorAnimationWarningHasRenderingObserver=Το εφέ κίνησης δεν μπορεί να εκτελεστεί στο συνθέτη επειδή το στοιχείο έχει παρατηρητές απόδοσης (-moz-element ή απόκομμα/μεταμφίεση SVG)
 CompositorAnimationWarningHasCurrentColor=Τα εφέ κίνησης του ‘background-color’ δεν μπορούν να εκτελεστούν στο πρόγραμμα σύνθεσης με το βασικό καρέ ‘current-color’.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
-ZoomPropertyWarning=Αυτή η σελίδα χρησιμοποιεί τη μη τυπική ιδιότητα “zoom”. Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε την calc() στις τιμές της σχετικής ιδιότητας, ή να χρησιμοποιήσετε το “transform” μαζί με το “transform-origin: 0 0”.
+ZoomPropertyWarning=Αυτή η σελίδα χρησιμοποιεί τη μη τυπική ιδιότητα «zoom». Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε την calc() στις τιμές της σχετικής ιδιότητας, ή να χρησιμοποιήσετε το «transform» μαζί με το «transform-origin: 0 0».
 
 ## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
 ## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
-PrincipalWritingModePropagationWarning=Κατά την απεικόνιση του στοιχείου <html>, οι χρησιμοποιούμενες τιμές των ιδιοτήτων CSS “writing-mode”, “direction” και “text-orientation” στο στοιχείο <html> λαμβάνονται από τις υπολογισμένες τιμές του στοιχείου <body>, όχι από τις ίδιες τις τιμές του στοιχείου <html>. Σκεφτείτε το ενδεχόμενο να ορίσετε αυτές τις ιδιότητες στην ψευδοκλάση :root CSS. Για περισσότερες πληροφορίες, δείτε το “The Principal Writing Mode” στο https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+PrincipalWritingModePropagationWarning=Κατά την απεικόνιση του στοιχείου <html>, οι χρησιμοποιούμενες τιμές των ιδιοτήτων CSS «writing-mode», «direction» και «text-orientation» στο στοιχείο <html> λαμβάνονται από τις υπολογισμένες τιμές του στοιχείου <body>, όχι από τις ίδιες τις τιμές του στοιχείου <html>. Σκεφτείτε το ενδεχόμενο να ορίσετε αυτές τις ιδιότητες στην ψευδοκλάση :root CSS. Για περισσότερες πληροφορίες, δείτε το «The Principal Writing Mode» στο https://www.w3.org/TR/css-writing-modes-3/#principal-flow
 
 ## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
 ## %1$S is an integer value with the total number of adjustments
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/netError.dtd b/thunderbird-l10n/el/chrome/el/locale/el/global/netError.dtd
index 54be8ea18c79fa7634cc35c61d85a31496d77752..563a2404a8efc07a9f48cefb31b67764b41dcf2d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/netError.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/netError.dtd
@@ -26,35 +26,35 @@
 <!ENTITY generic.longDesc "Η σελίδα δεν μπορεί να φορτωθεί επειδή πιθανόν δεν υπάρχει, ή η τοποθεσία της είναι εσφαλμένη. <br/>Ελέγξτε αν η τοποθεσία της είναι σωστή.">
 
 <!ENTITY malformedURI.title "Σφάλμα μη έγκυρης διεύθυνσης">
-<!ENTITY malformedURI.longDesc "<p> Αυτή η διεύθυνση (URL) δεν είναι έγκυρη και δεν μπορεί να φορτωθεί. Ελέγξτε τη διεύθυνση για σφάλματα και προσπαθήστε ξανά</p> ">
+<!ENTITY malformedURI.longDesc "<p>Η παρεχόμενη διεύθυνση δεν είναι σε αναγνωρισμένη μορφή. Παρακαλώ ελέγξτε τη γραμμή διευθύνσεων για λάθη και δοκιμάστε ξανά.</p>">
 
 <!ENTITY netInterrupt.title "Διακοπή μεταφοράς δεδομένων">
 <!ENTITY netInterrupt.longDesc "<p>Η εφαρμογή συνδέθηκε επιτυχώς, αλλά η σύνδεση διακόπηκε κατά την μεταφορά πληροφοριών.  Παρακαλώ προσπαθήστε ξανά.</p><ul><li>Μπορείτε να συνδεθείτε με άλλες σελίδες; Ελέγξτε τη σύνδεση του δικτύου σας.</li><li>Ακόμα έχετε πρόβλημα; Συμβουλευτείτε το διαχειριστή του συστήματος ή τον πάροχο σας.</li></ul>">
 
 <!ENTITY notCached.title "Το έγγραφο έληξε">
-<!ENTITY notCached.longDesc '<p>Το ζητούμενο έγγραφο δεν είναι πια διαθέσιμο στην κρυφή μνήμη του προγράμματος περιήγησης.</p><ul><li>Ως μέτρο ασφαλείας, το πρόγραμμα περιήγησης δεν ζητά εκ νέου ευαίσθητα έγγραφα.</li><li>Κάντε κλικ στο "Δοκιμή ξανά" για εκ νέου απαίτηση του εγγράφου από την ιστοσελίδα.</li></ul>'>
+<!ENTITY notCached.longDesc "<p>Το ζητούμενο έγγραφο δεν είναι πια διαθέσιμο στην κρυφή μνήμη του προγράμματος περιήγησης.</p><ul><li>Για την ασφάλειά σας, το πρόγραμμα περιήγησης δεν ξαναζητά αυτόματα ευαίσθητα έγγραφα.</li><li>Κάντε κλικ στο «Δοκιμή ξανά» για εκ νέου απαίτηση του εγγράφου από τον ιστότοπο.</li></ul>">
 
 <!ENTITY netOffline.title "Σφάλμα εργασίας χωρίς σύνδεση">
 <!ENTITY netOffline.longDesc2 "<p>Ο περιηγητής είναι χωρίς σύνδεση και δεν μπορεί να συνδεθεί με τη σελίδα.</p><ul><li>Είναι ο υπολογιστής σας συνδεδεμένος σε ένα ενεργό δίκτυο;</li><li>Πατήστε&quot;Προσπάθεια ξανά&quot; για να μεταβείτε σε εργασία μέ σύνδεση και να ξαναφορτώσετε την σελίδα.</li></ul>">
 
 <!ENTITY contentEncodingError.title "Σφάλμα κωδικοποίησης περιεχομένου">
-<!ENTITY contentEncodingError.longDesc "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή χρησιμοποιεί μια  μη έγκυρη ή μη υποστηριζόμενη μορφή συμπίεσης.</p><ul><li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους πληροφορήσετε για το πρόβλημα.</li></ul>">
+<!ENTITY contentEncodingError.longDesc "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή δεν χρησιμοποιεί έγκυρη ή υποστηριζόμενη μορφή συμπίεσης.</p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul>">
 
 <!ENTITY unsafeContentType.title "Μη ασφαλής τύπος αρχείου">
 <!ENTITY unsafeContentType.longDesc "
 <ul>
-  <li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε για το πρόβλημα.</li>
+  <li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li>
 </ul>
 ">
 
 <!ENTITY netReset.title "Σφάλμα επαναφοράς δικτύου">
-<!ENTITY netReset.longDesc "<p>Η σύνδεση δικτύου διεκόπη κατά τη διαπραγμάτευση σύνδεσης. Παρακαλώ δοκιμάστε ξανά.</p>">
+<!ENTITY netReset.longDesc "<p>Η σύνδεση δικτύου διακόπηκε κατά τη διαπραγμάτευση σύνδεσης. Παρακαλώ δοκιμάστε ξανά.</p>">
 
 <!ENTITY netTimeout.title "Σφάλμα ορίου χρόνου">
-<!ENTITY netTimeout.longDesc "Ο περιηγητής δεν συνδέθηκε με την ιστοσελίδα λόγω υπέρβασης του χρονικού ορίου. Πιθανόν να υπάρχουν προβλήματα κίνησης στο δίκτυο. Περιμένετε λίγο και προσπαθήστε ξανά.">
+<!ENTITY netTimeout.longDesc "<p>Ο ζητούμενος ιστότοπος δεν αποκρίθηκε στο αίτημα σύνδεσης και το πρόγραμμα περιήγησης σταμάτησε να περιμένει απάντηση.</p><ul><li>Μήπως ο διακομιστής αντιμετωπίζει υψηλή ζήτηση ή προσωρινή διακοπή λειτουργίας; Δοκιμάστε ξανά αργότερα.</li><li>Δεν μπορείτε να περιηγηθείτε σε άλλους ιστοτόπους; Ελέγξτε τη σύνδεση δικτύου του υπολογιστή.</li><li>Προστατεύεται ο υπολογιστής ή το δίκτυό σας από τείχος προστασίας ή διακομιστή μεσολάβησης; Οι εσφαλμένες ρυθμίσεις μπορούν να επηρεάσουν την περιήγηση.</li><li>Έχετε ακόμα πρόβλημα; Συμβουλευτείτε τον διαχειριστή του δικτύου ή τον πάροχο διαδικτύου σας για βοήθεια.</li></ul>">
 
 <!ENTITY unknownProtocolFound.title "Άγνωστο Πρωτόκολλο">
-<!ENTITY unknownProtocolFound.longDesc "<p>Η διεύθυνση καθορίζει ένα πρωτόκολλο (π.χ. <q>wxyz://</q>) που δεν αναγνωρίζεται από το πρόγραμμα περιήγησης, οπότε δεν μπορεί να γίνει σωστή σύνδεση στην ιστοσελίδα.</p><ul><li>Προσπαθείτε να αποκτήσετε πρόσβαση σε πολυμέσα ή άλλες υπηρεσίες χωρίς κείμενο; Ελέγξτε την ιστοσελίδα για επιπρόσθετες απαιτήσεις.</li><li>Μερικά πρωτόκολλα ενδέχεται να απαιτούν λογισμικό ή αρθρώματα τρίτων, προτού μπορέσει να τα αναγνωρίσει το πρόγραμμα περιήγησης.</li></ul>">
+<!ENTITY unknownProtocolFound.longDesc "<p>Η διεύθυνση καθορίζει ένα πρωτόκολλο (π.χ. «wxyz://») που δεν αναγνωρίζεται από το πρόγραμμα περιήγησης, οπότε δεν μπορεί να γίνει σωστή σύνδεση με τον ιστότοπο.</p><ul><li>Προσπαθείτε να προσπελάσετε πολυμέσα ή άλλες υπηρεσίες χωρίς κείμενο; Ελέγξτε τον ιστότοπο για επιπρόσθετες απαιτήσεις.</li><li>Μερικά πρωτόκολλα ενδέχεται να απαιτούν λογισμικό ή αρθρώματα τρίτων, προτού μπορέσει να τα αναγνωρίσει το πρόγραμμα περιήγησης.</li></ul>">
 
 <!ENTITY proxyConnectFailure.title "Άρνηση σύνδεσης διακομιστή μεσολάβησης">
 <!ENTITY proxyConnectFailure.longDesc "<p>Το πρόγραμμα περιήγησης έχει ρυθμιστεί για χρήση διακομιστή μεσολάβησης, αλλά η σύνδεση απορρίφθηκε.</p><ul><li>Είναι σωστές οι ρυθμίσεις του διακομιστή μεσολάβησης; Ελέγξτε τις ρυθμίσεις και δοκιμάστε ξανά.</li><li>Επιτρέπει η υπηρεσία μεσολάβησής σας τις συνδέσεις από αυτό το δίκτυο;</li><li>Αντιμετωπίζετε ακόμα πρόβλημα; Συμβουλευτείτε τον διαχειριστή του δικτύου ή τον πάροχο διαδικτύου σας για βοήθεια.</li></ul>">
@@ -69,7 +69,7 @@
 <!ENTITY unknownSocketType.longDesc "Η σελίδα απάντησε στην αίτηση σύνδεσης με απρόσμενο τρόπο. Αυτό μπορεί να οφείλεται σε εσφαλμένη χρήση πρωτοκόλλου από το URL για τη συγκεκριμένη θύρα. ">
 
 <!ENTITY nssFailure2.title "Αποτυχία ασφαλούς σύνδεσης">
-<!ENTITY nssFailure2.longDesc2 "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή δεν είναι δυνατή η πιστοποίηση της αυθεντικότητας των ληφθέντων δεδομένων.</p><ul><li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους πληροφορήσετε για το πρόβλημα.</li></ul>">
+<!ENTITY nssFailure2.longDesc2 "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή δεν ήταν δυνατή η επαλήθευση της αυθεντικότητας των ληφθέντων δεδομένων.</p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul>">
 
 <!ENTITY nssBadCert.title "Αποτυχία ασφαλούς σύνδεσης">
 <!ENTITY nssBadCert.longDesc2 "<ul>
@@ -81,24 +81,24 @@
 <!ENTITY securityOverride.linkText "Ή μπορείτε να προσθέσετε μια εξαίρεση…">
 <!ENTITY securityOverride.warningContent "<p>Δεν πρέπει να προσθέσετε εξαίρεση αν χρησιμοποιείτε σύνδεση διαδικτύου που δεν εμπιστεύεστε απόλυτα ή αν δεν είστε συνηθισμένοι να βλέπετε προειδοποιήσεις για αυτόν τον διακομιστή.</p><p>Αν επιθυμείτε ακόμη να προσθέσετε εξαίρεση για τον ιστοτόπο, μπορείτε να το κάνετε στις ρυθμίσεις κρυπτογράφησης για προχωρημένους.</p>">
 
-<!ENTITY cspBlocked.title "Αποκλεισμένο από την Πολιτική Ασφαλείας Περιεχομένου">
-<!ENTITY cspBlocked.longDesc "<p>Ο περιηγητής απέτρεψε την φόρτωση της σελίδας με αυτό τον τρόπο επειδή αυτή περιέχει μια πολιτική ασφαλείας περιεχομένου που δεν το επιτρέπει.</p>">
+<!ENTITY cspBlocked.title "Αποκλείστηκε από την πολιτική ασφάλειας περιεχομένου">
+<!ENTITY cspBlocked.longDesc "<p>Το πρόγραμμα περιήγησης εμπόδισε τη φόρτωση της σελίδας με αυτόν τον τρόπο επειδή η σελίδα έχει μια πολιτική ασφάλειας περιεχομένου που δεν το επιτρέπει.</p>">
 
 <!ENTITY xfoBlocked.title "Αποκλείστηκε από την πολιτική X-Frame-Options">
 <!ENTITY xfoBlocked.longDesc "<p>Το πρόγραμμα περιήγησης απέτρεψε τη φόρτωση της σελίδας σε αυτό το πλαίσιο, επειδή η σελίδα έχει πολιτική X-Frame-Options που δεν το επιτρέπει.</p>">
 
 <!ENTITY corruptedContentErrorv2.title "Σφάλμα κατεστραμμένου περιεχομένου">
-<!ENTITY corruptedContentErrorv2.longDesc "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να προβληθεί επειδή εντοπίστηκε σφάλμα στην μετάδοση των δεδομένων.</p><ul><li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους ενημερώσετε για αυτό το πρόβλημα.</li></ul>">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή ανιχνεύθηκε σφάλμα κατά τη μετάδοση δεδομένων.</p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul>">
 
 <!ENTITY remoteXUL.title "Απομακρυσμένο XUL">
-<!ENTITY remoteXUL.longDesc "<p><ul><li>Παρακαλούμε επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους πληροφορήσετε για το πρόβλημα.</li></ul></p>">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul></p>">
 
 <!ENTITY inadequateSecurityError.title "Η σύνδεσή σας δεν είναι ασφαλής">
 <!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
      "NS_ERROR_NET_INADEQUATE_SECURITY". -->
-<!ENTITY inadequateSecurityError.longDesc "<p>Το <span class='hostname'></span> χρησιμοποιεί παρωχημένες τεχνολογίες ασφαλείας που είναι ευάλωτες σε επίθεση. Ένας επιτιθέμενος μπορεί εύκολα να αποκαλύψει πληροφορίες που πιστεύατε ότι είναι ασφαλείς. Ο διαχειριστής του ιστοτόπου θα πρέπει να διορθώσει τον διακομιστή προτού επισκεφθείτε τον ιστοτόπο.</p><p>Κωδικός σφάλματος: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+<!ENTITY inadequateSecurityError.longDesc "<p>Το <span class='hostname'></span> χρησιμοποιεί παρωχημένη τεχνολογία ασφαλείας, ευάλωτη σε επιθέσεις. Ένας εισβολέας θα μπορούσε εύκολα να αποκαλύψει πληροφορίες που θεωρείτε ασφαλείς. Ο διαχειριστής του ιστοτόπου θα πρέπει να διορθώσει τον διακομιστή προτού μπορέσετε να επισκεφθείτε τον ιστότοπο.</p><p>Κωδικός σφάλματος: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
 
 <!ENTITY blockedByPolicy.title "Αποκλεισμένη σελίδα">
 
 <!ENTITY networkProtocolError.title "Σφάλμα πρωτοκόλλου δικτύου">
-<!ENTITY networkProtocolError.longDesc "<p>Δεν είναι δυνατή η εμφάνιση αυτής της σελίδας, επειδή υπήρξε ένα σφάλμα στο πρωτόκολλο δικτύου.</p><ul><li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους ενημερώσετε σχετικά με το πρόβλημα.</li></ul>">
+<!ENTITY networkProtocolError.longDesc "<p>Δεν είναι δυνατή η εμφάνιση αυτής της σελίδας, επειδή ανιχνεύθηκε ένα σφάλμα στο πρωτόκολλο του δικτύου.</p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul>">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/plugins.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/plugins.properties
index c0c986aff043c04037fe0cd7edd40c7adf3bafe6..f3cc96e3ce0383e2d255eb389ac78a0f010e8c48 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/plugins.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/plugins.properties
@@ -2,10 +2,6 @@
 # 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/.
 
-# LOCALIZATION NOTE:
-#    Those strings are inserted into an HTML page, so all HTML characters
-#    have to be escaped in a way that they show up correctly in HTML!
-
 # GMP Plugins
 gmp_license_info=Πληροφορίες άδειας
 gmp_privacy_info=Πληροφορίες απορρήτου
@@ -13,6 +9,6 @@ gmp_privacy_info=Πληροφορίες απορρήτου
 openH264_name=Κωδικοποιητής βίντεο OpenH264 από την Cisco Systems, Inc.
 openH264_description2=Αυτό το άρθρωμα εγκαθίσταται αυτόματα από τη Mozilla για τη συμμόρφωση με τις προδιαγραφές WebRTC και την ενεργοποίηση κλήσεων WebRTC με συσκευές που απαιτούν την κωδικοποίηση βίντεο H.264. Επισκεφθείτε το http://www.openh264.org/ για να δείτε τον πηγαίο κώδικα του κωδικοποιητή και για να μάθετε περισσότερα σχετικά με την υλοποίηση.
 
-cdm_description2=Αυτό το άρθρωμα ενεργοποιεί την αναπαραγωγή κρυπτογραφημένων πολυμέσων σύμφωνα με τις προδιαγραφές Encrypted Media Extensions. Τα κρυπτογραφημένα πολυμέσα χρησιμοποιούνται συνήθως από ιστοσελίδες για προστασία ενάντια στην αντιγραφή προνομιακού περιεχομένου πολυμέσων. Επισκεφθείτε το https://www.w3.org/TR/encrypted-media/ για περισσότερες πληροφορίες σχετικά με το Encrypted Media Extensions.
+cdm_description2=Αυτό το άρθρωμα ενεργοποιεί την αναπαραγωγή κρυπτογραφημένων πολυμέσων σύμφωνα με τις προδιαγραφές Encrypted Media Extensions. Τα κρυπτογραφημένα πολυμέσα χρησιμοποιούνται συνήθως από ιστοτόπους για προστασία ενάντια στην αντιγραφή προνομιακού περιεχομένου πολυμέσων. Επισκεφθείτε το https://www.w3.org/TR/encrypted-media/ για περισσότερες πληροφορίες σχετικά με το Encrypted Media Extensions.
 
 widevine_description=Πρόσθετο αποκρυπτογράφησης περιεχομένου Widevine από την Google Inc.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/printdialog.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/printdialog.properties
index c057adbb093b3a66cf364e2058e9e61956164614..5b47bd1431fc4e0dbd6a142306c303220d21472f 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/printdialog.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/printdialog.properties
@@ -35,7 +35,7 @@ right=Δεξιά
 headerFooterBlank=--κενή--
 headerFooterTitle=Τίτλος
 headerFooterURL=URL
-headerFooterDate=Ημερομηνία/Ώρα
+headerFooterDate=Ημερομηνία/ώρα
 headerFooterPage=Σελίδα #
 headerFooterPageTotal=Σελίδα # από #
 headerFooterCustom=Προσαρμογή…
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/security/csp.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/security/csp.properties
index 0a5e194a7d8c8c36b1fb97e3846892cabcff6f7a..f5dd05a50dbea1b59d14dde0da14ee74fc43346a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/security/csp.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/security/csp.properties
@@ -55,7 +55,7 @@ strictDynamicButNoHashOrNonce = Η λέξη-κλειδί ‘strict-dynamic’ μ
 reportURInotHttpsOrHttp2 = Η αναφορά URI (%1$S) θα έπρεπε να είναι ένα HTTP ή HTTPS URI.
 # LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
 # %1$S is the ETLD of the page with the policy
-reportURInotInReportOnlyHeader = Αυτή η ιστοσελίδα (%1$S) έχει μια πολιτική Report-Only χωρίς αναφορά URI. Το CSP δεν αποκλείει και δεν μπορεί να αναφέρει παραβιάσεις αυτής της πολιτικής.
+reportURInotInReportOnlyHeader = Αυτός ο ιστότοπος (%1$S) έχει μια πολιτική Report-Only χωρίς αναφορά URI. Το CSP δεν αποκλείει και δεν μπορεί να αναφέρει παραβιάσεις αυτής της πολιτικής.
 # LOCALIZATION NOTE (failedToParseUnrecognizedSource):
 # %1$S is the CSP Source that could not be parsed
 failedToParseUnrecognizedSource = Αποτυχία ανάλυσης μη αναγνωριζόμενης πηγής %1$S
@@ -74,7 +74,7 @@ notSupportingDirective = Δεν υποστηρίζεται η οδηγία ‘%1
 # %1$S is the URL of the blocked resource load.
 blockAllMixedContent = Αποκλεισμός επισφαλούς αιτήματος ‘%1$S’.
 # LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
-# %1$S is the name of a CSP directive that requires additional values 
+# %1$S is the name of a CSP directive that requires additional values
 ignoringDirectiveWithNoValues = Παράβλεψη του ‘%1$S’ αφού δεν περιέχει παραμέτρους.
 # LOCALIZATION NOTE (ignoringReportOnlyDirective):
 # %1$S is the directive that is ignored in report-only mode.
@@ -83,7 +83,6 @@ ignoringReportOnlyDirective = Παράβλεψη οδηγίας sandbox όταν
 # %1$S is the name of the src that is ignored.
 # %2$S is the name of the directive that causes the src to be ignored.
 IgnoringSrcBecauseOfDirective=Παράβλεψη του ‘%1$S’ λόγω της οδηγίας ‘%2$S’.
-
 # LOCALIZATION NOTE (IgnoringSourceWithinDirective):
 # %1$S is the ignored src
 # %2$S is the directive  which supports src
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/security/security.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/security/security.properties
index a8ddeaf59cc3e98833df247be640ca6da756eb8a..49baff97e008e1ad3d4b1ea7a11e86bcf194758b 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/security/security.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/security/security.properties
@@ -42,11 +42,11 @@ InsecurePasswordsPresentOnPage=Εμφάνιση πεδίων κωδικού σε
 InsecureFormActionPasswordsPresent=Εμφάνιση πεδίων κωδικού σε μία φόρμα με μη ασφαλή ενέργεια φόρμας (http://). Αυτό συνιστά ρίσκο ασφαλείας καθώς επιτρέπει τα στοιχεία σύνδεσης του χρήστη να υποκλαπούν.
 InsecurePasswordsPresentOnIframe=Εμφάνιση πεδίων κωδικού σε μία ένα μη ασφαλές iframe (http://). Αυτό συνιστά ρίσκο ασφαλείας καθώς επιτρέπει τα στοιχεία σύνδεσης του χρήστη να υποκλαπούν.
 # LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
-LoadingMixedActiveContent2=Γίνεται φόρτωση μικτού (επισφαλούς) ενεργού περιεχομένου “%1$S” σε μια ασφαλή σελίδα
+LoadingMixedActiveContent2=Φόρτωση μικτού (επισφαλούς) ενεργού περιεχομένου «%1$S» σε μια ασφαλή σελίδα
 LoadingMixedDisplayContent2=Γίνεται φόρτωση μικτού (επισφαλούς) περιεχομένου προβολής “%1$S” σε μια ασφαλή σελίδα
 LoadingMixedDisplayObjectSubrequestDeprecation=Η φόρτωση μεικτού (μη ασφαλούς) περιεχομένου “%1$S” εντός αρθρώματος σε μια ασφαλή σελίδα δεν προτείνεται και θα αποκλειστεί σύντομα.
 # LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
-MixedContentBlockedDownload = Αποκλείστηκε η λήψη επισφαλούς περιεχομένου “%S”.
+MixedContentBlockedDownload = Αποκλείστηκε η λήψη επισφαλούς περιεχομένου «%S».
 
 # LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
 BothAllowScriptsAndSameOriginPresent=Ένα iframe που έχει και allow-scripts και allow-same-origin ως ιδιότητες του sandbox του μπορεί να αφαιρέσει το «sandboxing» του.
@@ -56,17 +56,17 @@ BothAllowTopNavigationAndUserActivationPresent=Ένα iframe που έχει κ
 
 # Sub-Resource Integrity
 # LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
-MalformedIntegrityHash=Το στοιχείο script έχει έναν παραμορφωμένο κατακερματισμό στην ιδιότητα integrity: “%1$S”. Η σωστή μορφή είναι “<hash algorithm>-<hash value>”.
+MalformedIntegrityHash=Το στοιχείο script έχει έναν παραμορφωμένο κατακερματισμό στην ιδιότητα integrity: «%1$S». Η σωστή μορφή είναι «<hash algorithm>-<hash value>».
 # LOCALIZATION NOTE: Do not translate "integrity"
-InvalidIntegrityLength=Το hash της ιδιότητας integrity έχει λάθος μήκος.
+InvalidIntegrityLength=Το hash της ιδιότητας integrity έχει εσφαλμένο μήκος.
 # LOCALIZATION NOTE: Do not translate "integrity"
 InvalidIntegrityBase64=Το hash της ιδιότητας integrity δεν ήταν δυνατό να αποκωδικοποιηθεί.
 # LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256").
-IntegrityMismatch=Κανένα από τα “%1$S” hashes στην ιδιότητα integrity δεν ταιριάζει με το περιεχόμενο του subresource.
+IntegrityMismatch=Κανένα από τα «%1$S» hash στην ιδιότητα integrity δεν ταιριάζει με το περιεχόμενο του subresource.
 # LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
 IneligibleResource=Δεν μπορεί να ελεγχθεί η ακεραιότητα της διεύθυνσης «%1$S», καθώς δεν είναι ενεργή μέσω CORS και ούτε ίδιας προέλευσης.
 # LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
-UnsupportedHashAlg=Μη υποστηριζόμενος αλγόριθμος hash στην ιδιότητα integrity: “%1$S”
+UnsupportedHashAlg=Μη υποστηριζόμενος αλγόριθμος hash στην ιδιότητα integrity: «%1$S»
 # LOCALIZATION NOTE: Do not translate "integrity"
 NoValidMetadata=Η ιδιότητα integrity δεν περιέχει έγκυρα μεταδεδομένα.
 
@@ -77,21 +77,21 @@ DeprecatedTLSVersion2=Αυτός ο ιστότοπος χρησιμοποιεί
 
 #XCTO: nosniff
 # LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
-MimeTypeMismatch2=Ο πόρος από το “%1$S” αποκλείστηκε λόγω μη αντιστοιχίας του τύπου MIME (“%2$S”) (X-Content-Type-Options: nosniff).
+MimeTypeMismatch2=Ο πόρος από το «%1$S» αποκλείστηκε λόγω μη αντιστοιχίας του τύπου MIME («%2$S») (X-Content-Type-Options: nosniff).
 # LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
-XCTOHeaderValueMissing=Προειδοποίηση κεφαλίδας X-Content-Type-Options: η τιμή ήταν “%1$S”· μήπως θέλετε να στείλετε “nosniff”;
+XCTOHeaderValueMissing=Προειδοποίηση κεφαλίδας X-Content-Type-Options: η τιμή ήταν «%1$S»· μήπως θέλατε να στείλετε «nosniff»;
 # LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
-XTCOWithMIMEValueMissing=Ο πόρος από το “%1$S” δεν αποδόθηκε λόγω ενός άγνωστου, λάθους ή μη ύπαρξης τύπου MIME (X-Content-Type-Options: nosniff).
+XTCOWithMIMEValueMissing=Ο πόρος από το «%1$S» δεν αποδόθηκε λόγω ενός άγνωστου, λάθους ή μη ύπαρξης τύπου MIME (X-Content-Type-Options: nosniff).
 
 BlockScriptWithWrongMimeType2=Το σενάριο από το “%1$S” αποκλείστηκε εξαιτίας ενός μη επιτρεπτού τύπου MIME (“%2$S”).
 WarnScriptWithWrongMimeType=Το σενάριο από το “%1$S” φορτώθηκε παρ' όλο που ο τύπος MIME του (“%2$S”) δεν είναι έγκυρος τύπος JavaScript MIME.
 # LOCALIZATION NOTE: Do not translate "importScripts()"
-BlockImportScriptsWithWrongMimeType=Αποκλείστηκε η φόρτωση σεναρίου από το “%1$S” με το importScripts() εξαιτίας ενός ανεπίτρεπτου τύπου MIME (“%2$S”).
+BlockImportScriptsWithWrongMimeType=Αποκλείστηκε η φόρτωση σεναρίου από το «%1$S» με το importScripts() εξαιτίας ενός ανεπίτρεπτου τύπου MIME («%2$S»).
 BlockWorkerWithWrongMimeType=Η φόρτωση του worker από το “%1$S” αποκλείστηκε εξαιτίας ενός ανεπίτρεπτου τύπου MIME (“%2$S”).
 BlockModuleWithWrongMimeType=Αποκλείστηκε η φόρτωση μονάδας από το “%1$S” εξαιτίας ενός ανεπίτρεπτου τύπου MIME (“%2$S”).
 
 # LOCALIZATION NOTE: Do not translate "data: URI".
-BlockTopLevelDataURINavigation=Η πλοήγηση στο data: URI ανωτάτου επιπέδου δεν επιτρέπεται (Μπλοκαρίστηκε το φόρτωμα του: “%1$S”)
+BlockTopLevelDataURINavigation=Η πλοήγηση στο data: URI ανωτάτου επιπέδου δεν επιτρέπεται (Αποκλείστηκε η φόρτωση του: «%1$S»)
 BlockSubresourceRedirectToData=Ανακατεύθυνση σε μη ασφαλή δεδομένα: το URI δεν επιτρέπεται (Αποκλείστηκε η φόρτωση του: “%1$S”)
 
 BlockSubresourceFTP=Δεν επιτρέπεται η φόρτωση του FTP υπό-πόρου μέσα σε σελίδα http(s) (Αποκλείστηκε η φόρτωση του: “%1$S”)
@@ -100,7 +100,7 @@ RestrictBrowserEvalUsage=Η χρήση της eval() και άλλων παρό
 
 # LOCALIZATION NOTE (BrowserUpgradeInsecureDisplayRequest):
 # %1$S is the browser name "brandShortName"; %2$S is the URL of the upgraded request; %1$S is the upgraded scheme.
-BrowserUpgradeInsecureDisplayRequest = Το %1$S αναβαθμίζει ένα μη ασφαλές αίτημα εμφάνισης ‘%2$S’ για χρήση ‘%3$S’
+BrowserUpgradeInsecureDisplayRequest = Το %1$S αναβαθμίζει ένα μη ασφαλές αίτημα εμφάνισης «%2$S» για χρήση «%3$S»
 
 # LOCALIZATION NOTE (MixedContentAutoUpgrade):
 # %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
@@ -126,18 +126,20 @@ FeaturePolicyInvalidEmptyAllowValue= Πολιτική χαρακτηριστικ
 FeaturePolicyInvalidAllowValue=Πολιτική χαρακτηριστικού: Παράβλεψη μη υποστηριζόμενης τιμής αποδοχής “%S”.
 
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
-ReferrerLengthOverLimitation=Κεφαλίδα αναφοράς HTTP: Το μήκος είναι πάνω από το όριο των “%1$S” bytes - μείωση της κεφαλίδας αναφοράς στην προέλευση: “%2$S”
+ReferrerLengthOverLimitation=Κεφαλίδα παραπομπής HTTP: Το μήκος είναι πάνω από το όριο των «%1$S» bytes - περικοπή κεφαλίδας παραπομπής στην προέλευση: «%2$S»
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
-ReferrerOriginLengthOverLimitation=Κεφαλίδα αναφοράς HTTP: Το μήκος της προέλευσης μέσω της αναφοράς είναι πάνω από το όριο των “%1$S” bytes - αφαίρεση αναφοράς με προέλευση “%2$S”.
+ReferrerOriginLengthOverLimitation=Κεφαλίδα παραπομπής HTTP: Το μήκος της προέλευσης μέσω παραπομπής είναι πάνω από το όριο των «%1$S» bytes - αφαίρεση κεφαλίδας παραπομπής με προέλευση: «%2$S».
 
 # LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Πολιτική παραπομπής: Οι λιγότερο περιορισμένες πολιτικές, όπως οι «no-referrer-when-downgrade», «origin-when-cross-origin» και «unsafe-url», σύντομα θα αγνοούνται για το αίτημα μεταξύ ιστοτόπων: %S
 # LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Πολιτική παραπομπής: Παράβλεψη της λιγότερο περιορισμένης πολιτικής παραπομπής «%1$S» για το αίτημα μεταξύ ιστοτόπων: %2$S
 
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
-XFrameOptionsInvalid = Βρέθηκε μη έγκυρη κεφαλίδα X-Frame-Options κατά τη φόρτωση “%2$S”: το “%1$S” δεν είναι έγκυρη οδηγία.
+XFrameOptionsInvalid = Βρέθηκε μη έγκυρη κεφαλίδα X-Frame-Options κατά τη φόρτωση του «%2$S»: το «%1$S» δεν είναι έγκυρη οδηγία.
 # LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
-XFrameOptionsDeny=Η φόρτωση του “%2$S” σε ένα πλαίσιο απορρίπτεται από την οδηγία “X-Frame-Options“ που έχει οριστεί σε “%1$S“.
+XFrameOptionsDeny=Η φόρτωση του «%2$S» σε ένα πλαίσιο απορρίπτεται από την οδηγία «X-Frame-Options» που έχει οριστεί σε «%1$S».
 
 # HTTPS-Only Mode
 # LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/viewSource.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/viewSource.properties
index dcaaf4c3e7800c592d3f160c4f7dd739f9603ed9..e8d8f53b1244f99184f0286ebde72e878c0a37fe 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/viewSource.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/viewSource.properties
@@ -3,8 +3,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 goToLineTitle     = Μετάβαση σε γραμμή
-goToLineText      = Εισάγετε αριθμό γραμμής
-invalidInputTitle = Μη έγκυρα δεδομένα
+goToLineText      = Εισαγάγετε αριθμό γραμμής
+invalidInputTitle = Μη έγκυρη είσοδος
 invalidInputText  = Ο αριθμός γραμμής που εισάγατε δεν είναι έγκυρος.
 outOfRangeTitle   = Η γραμμή δεν βρέθηκε
 outOfRangeText    = Η καθορισμένη γραμμή δεν βρέθηκε.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/global/xslt/xslt.properties b/thunderbird-l10n/el/chrome/el/locale/el/global/xslt/xslt.properties
index 09cff03a10db3c2369ae8ace492461c02ba7598d..7358914df1cc10e3c40d4c2bf70fbafd39ccf668 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/global/xslt/xslt.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/global/xslt/xslt.properties
@@ -4,7 +4,7 @@
 
 1  = Αποτυχία ανάλυσης  XSLT stylesheet 
 2  = Αποτυχία ανάλυσης έκφρασης XPath
-3  = 
+3  =
 4  = Αποτυχία μετατροπής XSLT
 5  = XSLT/XPath προσπάθησε να καλέσει μια άγνωστη λειτουργία.
 6  = XSLT Stylesheet (πιθανώς) να περιέχει μια αναδρομή.
@@ -28,7 +28,7 @@
 24 = Αποτυχία ανάλυσης XPath: μη αναμενόμενο «!», η άρνηση είναι το not():
 25 = Αποτυχία λήψης XPath: βρέθηκε μη αποδεκτός χαρακτήρας:
 26 = Αποτυχία ανάλυσης XPath: αναμενόταν δυαδικός τελεστής:
-27 = Η φόρτωση ενός XSLT stylesheet μπλοκαρίστηκε για λόγους ασφαλείας.
+27 = Η φόρτωση ενός φύλλου στυλ XSLT αποκλείστηκε για λόγους ασφαλείας.
 28 = Αξιολόγηση μη έγκυρης έκφρασης.
 29 = Μη ταιριαστό άγκιστρο.
 30 = Δημιουργία στοιχείου με μη έγκυρο QName.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning-toolbar.dtd b/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning-toolbar.dtd
index e55586a44fd19ee379cd9bf9d9d357ef2baa547a..0aa401beb53220c8415b7f3a7c48229c487b25b7 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning-toolbar.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning-toolbar.dtd
@@ -44,7 +44,7 @@
 <!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
      from messenger.dtd -->
 <!ENTITY lightning.toolbar.appmenuButton.label       "AppMenu">
-<!ENTITY lightning.toolbar.appmenuButton1.tooltip    "Εμφάνιση του μενού του &brandShortName;">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip    "Προβολή του μενού του &brandShortName;">
 <!ENTITY lightning.toolbar.calendarmenu.label        "Παράθυρο ημερολογίου">
 <!ENTITY lightning.toolbar.calendarmenu.accesskey    "θ">
 <!ENTITY lightning.toolbar.calendarpane.label        "Εμφάνιση παραθύρου ημερολογίου">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning.dtd b/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning.dtd
index be78f0a34c49cbd2d1479364e6feb5135e4887fe..f7b3e5ac31ea5aa95e4de278a4cac5371b84cbd0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/lightning/lightning.dtd
@@ -109,6 +109,6 @@
 <!ENTITY todaypane.showMiniday.accesskey  "η">
 <!ENTITY todaypane.showNone.label "Τίποτα από τα δύο">
 <!ENTITY todaypane.showNone.accesskey "Τ">
-<!ENTITY todaypane.showTodayPane.label "Εμφάνιση παραθύρου ημέρας">
+<!ENTITY todaypane.showTodayPane.label "Εμφάνιση προβολής «Σήμερα»">
 <!ENTITY todaypane.showTodayPane.accesskey "Ï€">
 <!ENTITY todaypane.statusButton.label "Προβολή ημέρας">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger-newsblog/newsblog.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger-newsblog/newsblog.properties
index 8931d05e00796e0dc88bfe7c8ef23ec0ca92ccc3..f8d33257444e5f8c5d0b9c00aa03b5fb982420a1 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger-newsblog/newsblog.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger-newsblog/newsblog.properties
@@ -31,7 +31,7 @@ subscribe-OPMLExportFileDialogTitle=Εξαγωγή %1$S OPML - %2$S
 ## LOCALIZATION NOTE(subscribe-OPMLExportDefaultFileName):
 ## %1$S is the brandShortName (Thunderbird for example), %2$S is the account name.
 ## The default extension (.opml) is added here as it is not automatically appended in the file picker on MacOS.
-subscribe-OPMLExportDefaultFileName=Οι ροές%1$Sμου-%2$S.opml
+subscribe-OPMLExportDefaultFileName=Ροές%1$S-%2$S.opml
 ## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
 subscribe-OPMLImportInvalidFile=Το αρχείο %S δεν φαίνεται να είναι ένα έγκυρο αρχείο OPML.
 ## LOCALIZATION NOTE(subscribe-OPMLImportFeedCount): Semi-colon list of plural forms.
@@ -65,11 +65,11 @@ subscribe-gettingFeedItems=Λήψη άρθρων ροής (%S από %S)…
 
 newsblog-noNewArticlesForFeed=Δεν υπάρχουν νέα άρθρα για αυτό το αρχείο ροής.
 ## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
-newsblog-networkError=Δεν είναι δυνατή η εύρεση του %S. Ελέγξτε το όνομα και προσπαθήστε ξανά.
+newsblog-networkError=Δεν ήταν δυνατή η εύρεση του «%S». Παρακαλώ ελέγξτε το όνομα και δοκιμάστε ξανά.
 ## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
 newsblog-feedNotValid=Το %S δεν είναι έγκυρο αρχείο ροής.
 ## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
-newsblog-badCertError=Το %S χρησιμοποιεί ένα μη έγκυρο ασφαλές πιστοποιητικό.
+newsblog-badCertError=Το %S χρησιμοποιεί ένα μη έγκυρο πιστοποιητικό ασφαλείας.
 ## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
 newsblog-noAuthError=Το %S δεν είναι πιστοποιημένο.
 newsblog-getNewMsgsCheck=Έλεγχος ροών για νέα στοιχεία…
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/AccountWizard.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/AccountWizard.dtd
index d57cacdf78b4cc39ae2c7e3900b726f758da8490..b8299abe28bfa6365a3e6e0be4149fbcf9f73bb5 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/AccountWizard.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/AccountWizard.dtd
@@ -27,12 +27,12 @@
 <!ENTITY identityDesc.label "Κάθε λογαριασμός έχει μια ταυτότητα, η οποία αποτελείται από πληροφορίες που σας ταυτοποιούν στους παραλήπτες των μηνυμάτων σας.">
 
 <!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
-<!ENTITY fullnameDesc.label "Εισαγάγετε το όνομα που θέλετε να εμφανίζεται στο πεδίο &quot;Από&quot; των εξερχομένων μηνυμάτων σας">
+<!ENTITY fullnameDesc.label "Εισαγάγετε το όνομα που θέλετε να εμφανίζεται στο πεδίο «Από» των εξερχομένων μηνυμάτων σας">
 <!-- LOCALIZATION NOTE (fullnameExample.label) : use following directions for below line
   1, do not translate two of "&quot;"
   2, Use localized full name instead of "John Smith"
 -->
-<!ENTITY fullnameExample.label "(για παράδειγμα, &quot;John Smith&quot;).">
+<!ENTITY fullnameExample.label "(για παράδειγμα, «Γιώργος Παπαδόπουλος»).">
 <!ENTITY fullnameLabel.label "Το όνομά σας:">
 <!ENTITY fullnameLabel.accesskey "Τ">
 
@@ -56,15 +56,15 @@
 <!ENTITY defaultPortLabel.label "Προεπιλογή:">
 <!ENTITY defaultPortValue.label "">
 <!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
-<!ENTITY incomingServer.description "Εισαγάγετε το όνομα του διακομιστή εισερχομένων σας (για παράδειγμα, &quot;mail.example.net&quot;).">
+<!ENTITY incomingServer.description "Εισαγάγετε το όνομα του διακομιστή εισερχομένων σας (για παράδειγμα, «mail.example.net»).">
 <!ENTITY incomingServer.label "Διακομιστής εισερχομένων:">
 <!ENTITY incomingServer.accesskey "σ">
 <!-- LOCALIZATION NOTE (incomingUsername.description) : do not translate "&quot;jsmith&quot;" in below line -->
-<!ENTITY incomingUsername.description "Εισαγάγετε το όνομα χρήστη εισερχομένων που σας παραχώρησε ο πάροχος ηλεκτρονικού ταχυδρομείου σας (για παράδειγμα, &quot;jsmith&quot;).">
+<!ENTITY incomingUsername.description "Εισαγάγετε το όνομα χρήστη εισερχομένων που σας παραχώρησε ο πάροχος ηλεκτρονικού ταχυδρομείου σας (για παράδειγμα, «gpapad»).">
 <!ENTITY incomingUsername.label "Όνομα χρήστη:">
 <!ENTITY incomingUsername.accesskey "χ">
 <!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
-<!ENTITY newsServerNameDesc.label "Εισάγετε το όνομα του διακομιστή συζητήσεων (NNTP) (για παράδειγμα, &quot;news.example.net&quot;).">
+<!ENTITY newsServerNameDesc.label "Εισαγάγετε το όνομα του διακομιστή συζητήσεών σας (NNTP) (για παράδειγμα, «news.example.net»).">
 <!ENTITY newsServerLabel.label "Διακομιστής ομάδας συζήτησης:">
 <!ENTITY newsServerLabel.accesskey "σ">
 
@@ -72,7 +72,7 @@
 
 <!ENTITY outgoingTitle.label "Πληροφορίες διακομιστή εξερχομένων">
 <!-- LOCALIZATION NOTE (outgoingServer.description) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
-<!ENTITY outgoingServer.description "Εισαγάγετε το όνομα διακομιστή εξερχομένων (SMTP) (για παράδειγμα, &quot;smtp.example.net&quot;).">
+<!ENTITY outgoingServer.description "Εισαγάγετε το όνομα διακομιστή εξερχομένων σας (SMTP) (για παράδειγμα, «smtp.example.net»).">
 <!ENTITY outgoingServer.label "Διακομιστής εξερχομένων:">
 <!ENTITY outgoingServer.accesskey "ξ">
 <!ENTITY outgoingUsername.description "Εισαγάγετε το όνομα χρήστη εξερχομένων που σας δόθηκε από τον πάροχο ηλεκτρονικού ταχυδρομείου σας (αυτό συνήθως είναι ίδιο με το όνομα χρήστη εισερχομένων).">
@@ -87,26 +87,26 @@
      these variables. Also, translate haveSmtp1.prefix and haveSmtp1.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp1.suffix3, if required grammatically.
 -->
-<!ENTITY haveSmtp1.prefix "Ο υπάρχων διακομιστής εξερχομένων σας (SMTP), &quot;">
+<!ENTITY haveSmtp1.prefix "Ο υπάρχων διακομιστής εξερχομένων σας (SMTP), «">
 <!ENTITY haveSmtp1.suffix3 "&quot;,  θα χρησιμοποιηθεί.">
 <!-- LOCALIZATION NOTE (haveSmtp2.prefix and haveSmtp2.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp2.prefix and haveSmtp2.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp2.suffix3, if required grammatically.
 -->
-<!ENTITY haveSmtp2.prefix "Το όνομα χρήστη στο διακομιστή εξερχομένων (SMTP), &quot;">
+<!ENTITY haveSmtp2.prefix "Το υπάρχον όνομα χρήστη εξερχομένων σας (SMTP), «">
 <!ENTITY haveSmtp2.suffix3 "&quot;,  θα χρησιμοποιηθεί.">
 <!-- LOCALIZATION NOTE (haveSmtp3.prefix and haveSmtp3.suffix3) : Do not translate "SMTP" and "&quot;" in
      these variables. Also, translate haveSmtp3.prefix and haveSmtp3.suffix3 as a single sentence, inserting
      text after the "&quot;" entity in haveSmtp3.suffix3, if required grammatically.
 -->
-<!ENTITY haveSmtp3.prefix "Ο διακομιστής εξερχομένων σας (SMTP), &quot;">
+<!ENTITY haveSmtp3.prefix "Ο διακομιστής εξερχομένων σας (SMTP), «">
 <!ENTITY haveSmtp3.suffix3 "Ο &quot;, είναι όμοιος με το διακομιστή εισερχομένων σας, το όνομα χρήστη εισερχομένων θα χρησιμοποιηθεί για την πρόσβαση σε αυτόν.">
 
 <!-- Entities for Account name page -->
 
 <!ENTITY accnameTitle.label "Όνομα λογαριασμού">
 <!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
-<!ENTITY accnameDesc.label "Εισαγάγετε το όνομα με το οποίο θα αναγνωρίζετε αυτό τον λογαριασμό (για παράδειγμα, &quot;Λογαριασμός εργασίας&quot;, &quot;Λογαριασμός οικίας&quot; ή &quot;Λογαριασμός ειδήσεων&quot;).">
+<!ENTITY accnameDesc.label "Εισαγάγετε το όνομα με το οποίο θα αναγνωρίζετε αυτό τον λογαριασμό (για παράδειγμα, «Λογαριασμός εργασίας», «Λογαριασμός οικίας» ή «Λογαριασμός συζητήσεων»).">
 <!ENTITY accnameLabel.label "Όνομα λογαριασμού:">
 <!ENTITY accnameLabel.accesskey "μ">
 
@@ -114,14 +114,14 @@
 
 <!ENTITY completionTitle.label "Συγχαρητήρια!">
 <!ENTITY completionText.label "Βεβαιωθείτε ότι οι παρακάτω πληροφορίες είναι σωστές.">
-<!ENTITY serverTypePrefix.label "Τύπος διακομιστή  εισερχομένων:">
+<!ENTITY serverTypePrefix.label "Τύπος διακομιστή εισερχομένων:">
 <!ENTITY serverNamePrefix.label "Όνομα διακομιστή εισερχομένων:">
 <!ENTITY smtpServerNamePrefix.label "Όνομα διακομιστή εξερχόμενων (SMTP):">
-<!ENTITY newsServerNamePrefix.label "Όνομα διακομιστή ομάδων συζήτησης (NNTP):">
+<!ENTITY newsServerNamePrefix.label "Όνομα διακομιστή συζητήσεων (NNTP):">
 <!ENTITY downloadOnLogin.label "Λήψη μηνυμάτων τώρα">
 <!ENTITY downloadOnLogin.accesskey "ψ">
 <!ENTITY deferStorageDesc.label "Αποεπιλέξτε αυτό το κουτί για να αποθηκεύετε αλληλογραφία για αυτόν το λογαριασμό στο δικό του κατάλογο. Αυτό θα εμφανίζει αυτόν το λογαριασμό στο πρώτο επίπεδο. Σε άλλη περίπτωση, θα είναι μέρος των Τοπικών φακέλων του λογαριασμού Γενικών Εισερχομένων.">
 <!ENTITY deferStorage.label "Χρήση  Γενικών Εισερχομένων (αποθήκευση αλληλογραφίας στους Τοπικούς Φακέλους)">
 <!ENTITY deferStorage.accesskey "Γ">
-<!ENTITY clickFinish.label 'Κάντε κλικ στο "Τέλος" για αποθήκευση ρυθμίσεων και κλείσιμο του Βοηθού λογαριασμών.'>
-<!ENTITY clickFinish.labelMac 'Κάντε κλικ στο "Τέλος" για αποθήκευση ρυθμίσεων και κλείσιμο του Βοηθού λογαριασμών.'>
+<!ENTITY clickFinish.label "Κάντε κλικ στο «Τέλος» για αποθήκευση των ρυθμίσεων και κλείσιμο του βοηθού λογαριασμών.">
+<!ENTITY clickFinish.labelMac "Κάντε κλικ στο «Τέλος» για αποθήκευση των ρυθμίσεων και κλείσιμο του βοηθού λογαριασμών.">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/FilterListDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/FilterListDialog.dtd
index 661dd2bb9cc36c3fab71b78a68f05307c627d4e8..95923ea9f836321e748c42e1f9e99773e17a2af1 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/FilterListDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/FilterListDialog.dtd
@@ -13,7 +13,7 @@
 <!ENTITY editButton.accesskey "Ε">
 <!ENTITY deleteButton.label "Διαγραφή">
 <!ENTITY deleteButton.accesskey "Δ">
-<!ENTITY reorderTopButton "Μετακίνηση στην κορυφή">
+<!ENTITY reorderTopButton "Μετακίνηση στο πάνω μέρος">
 <!ENTITY reorderTopButton.accessKey "ο">
 <!ENTITY reorderTopButton.toolTip "Αναδιατάξτε το φίλτρο ώστε να εκτελείται πριν από τα άλλα">
 <!ENTITY reorderUpButton.label "Μετακίνηση πάνω">
@@ -22,7 +22,7 @@
 <!ENTITY reorderDownButton.accesskey "κ">
 <!ENTITY reorderBottomButton "Μετακίνηση στο κάτω μέρος">
 <!ENTITY reorderBottomButton.accessKey "μ">
-<!ENTITY reorderBottomButton.toolTip "Επανακατάταξη φίλτρου ώστε να εκτελείται μετά από όλα τα υπόλοιπα">
+<!ENTITY reorderBottomButton.toolTip "Αναδιατάξτε το φίλτρο ώστε να εκτελείται μετά τα άλλα">
 <!ENTITY filterHeader.label "Τα ενεργοποιημένα φίλτρα θα εκτελούνται με την παρακάτω σειρά.">
 <!ENTITY filtersForPrefix.label "Φίλτρα για:">
 <!ENTITY filtersForPrefix.accesskey "Φ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/aboutDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/aboutDialog.dtd
index 2727767a20c936acb0fb7b5322f513f56a59336b..6126aaa3df0fde3299e3148069ec5ba37886b620 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/aboutDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/aboutDialog.dtd
@@ -22,7 +22,7 @@
 <!-- LOCALIZATION NOTE (warningDesc.version): This is a warning about the experimental nature of Nightly builds. It is only shown in this version. -->
 <!ENTITY warningDesc.version        "Το &brandShortName; είναι πειραματικό και ενδεχομένως ασταθές.">
 <!-- LOCALIZATION NOTE (warningDesc.telemetryDesc): This is a notification that Nightly builds automatically send Telemetry data back to Mozilla. It is only shown in this version. "It" refers to brandShortName. -->
-<!ENTITY warningDesc.telemetryDesc  "Στέλνει αυτόματα πληροφορίες σχετικά με επιδόσεις, υλικό, χρήση και προσαρμογές στη &vendorShortName; για τη βελτίωση του &brandShortName;.">
+<!ENTITY warningDesc.telemetryDesc  "Στέλνει αυτόματα πληροφορίες σχετικά με τις επιδόσεις, το υλικό, τη χρήση και τις προσαρμογές στη &vendorShortName; για τη βελτίωση του &brandShortName;.">
 
 <!-- LOCALIZATION NOTE (community.exp.*) This paragraph is shown in "experimental" builds, i.e. Nightly builds, instead of the other "community.*" strings below. -->
 <!ENTITY community.exp.start        "">
@@ -61,13 +61,13 @@
 <!ENTITY bottomLinks.privacy        "Πολιτική απορρήτου">
 
 <!-- LOCALIZATION NOTE (update.checkingForUpdates): try to make the localized text short (see bug 596813 for screenshots). -->
-<!ENTITY update.checkingForUpdates  "Γίνεται έλεγχος για ενημερώσεις…">
+<!ENTITY update.checkingForUpdates  "Έλεγχος για ενημερώσεις…">
 <!-- LOCALIZATION NOTE (update.noUpdatesFound): try to make the localized text short (see bug 596813 for screenshots). -->
 <!ENTITY update.noUpdatesFound      "Το &brandShortName; είναι ενημερωμένο">
 <!-- LOCALIZATION NOTE (update.adminDisabled): try to make the localized text short (see bug 596813 for screenshots). -->
 <!ENTITY update.adminDisabled       "Οι ενημερώσεις έχουν απενεργοποιηθεί από το διαχειριστή του συστήματός σας">
 <!-- LOCALIZATION NOTE (update.otherInstanceHandlingUpdates): try to make the localized text short -->
-<!ENTITY update.otherInstanceHandlingUpdates "Το &brandShortName; ενημερώνεται μέσω άλλης συνεδρίας">
+<!ENTITY update.otherInstanceHandlingUpdates "Το &brandShortName; ενημερώνεται από άλλη διεργασία">
 
 <!-- LOCALIZATION NOTE (update.failed.start,update.failed.linkText,update.failed.end):
      update.failed.start, update.failed.linkText, and update.failed.end all go into
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationModel.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationModel.properties
index 9bd683d96f83ff341367e29c2c296c23c4da4997..a0c7333c933b93bcbb000b715b3f7c2a09e0c9ba 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationModel.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationModel.properties
@@ -8,13 +8,13 @@
 
 # readFromXML.js
 no_emailProvider.error=Το αρχείο ρυθμίσεων XML δεν περιέχει ρυθμίσεις λογαριασμού email.
-outgoing_not_smtp.error=Ο διακομιστής εξερχομένων θα πρέπει να είναι SMTP
+outgoing_not_smtp.error=Ο διακομιστής εξερχομένων πρέπει να είναι τύπου SMTP
 
 # verifyConfig.js
-cannot_login.error=Αδυναμία σύνδεσης με τον διακομιστή. Πιθανώς να είναι λάθος η ρύθμιση, το όνομα χρήστη ή ο κωδικός.
+cannot_login.error=Δεν ήταν δυνατή η σύνδεση με τον διακομιστή. Πιθανό σφάλμα στη ρύθμιση, το όνομα χρήστη ή τον κωδικό πρόσβασης.
 
 # guessConfig.js
-cannot_find_server.error=Αδυναμία εύρεσης διακομιστή
+cannot_find_server.error=Δεν είναι δυνατή η εύρεση διακομιστή
 
 # exchangeAutoDiscover.js
 no_autodiscover.error=Το Exchange AutoDiscover XML δεν είναι έγκυρο.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationUtil.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationUtil.properties
index ff06f9e773f277a9f36f0a743d7f9cc0aae1b09b..9aae90e759ffdba2e431ad602383e2f495ff6e92 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationUtil.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/accountCreationUtil.properties
@@ -7,8 +7,8 @@
 
 
 # sanitizeDatatypes.js
-hostname_syntax.error=Το όνομα υπολογιστή είναι κενό ή περιέχει μη έγκυρους χαρακτήρες. Επιτρέπονται μόνο γράμματα, αριθμοί, “-” και “.”.
-alphanumdash.error=Το αλφαριθμητικό περιέχει μη υποστηριζόμενους χαρακτήρες. Επιτρέπονται μόνο γράμματα, αριθμοί, "-" και "_" .
+hostname_syntax.error=Το όνομα υπολογιστή είναι κενό ή περιέχει μη έγκυρους χαρακτήρες. Επιτρέπονται μόνο γράμματα, αριθμοί, «-» και «.».
+alphanumdash.error=Το αλφαριθμητικό περιέχει μη υποστηριζόμενους χαρακτήρες. Επιτρέπονται μόνο γράμματα, αριθμοί, «-» και «_».
 allowed_value.error=Η παρεχόμενη τιμή δεν είναι στην επιτρεπόμενη λίστα
 url_scheme.error=Το σχήμα URL δεν επιτρέπεται
 url_parsing.error=Το URL δεν αναγνωρίζεται
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.dtd
index 380677e1c2ee0ca0b2742b598b7f399e8b59bc26..2319128835ecdb5dae4c413d549343500701701f 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.dtd
@@ -28,9 +28,9 @@ file names and tall enough to hint that there are more activities in the list --
 <!ENTITY cmd.close.commandkey             "w">
 <!ENTITY cmd.close2.commandkey            "j">
 <!ENTITY cmd.close2Unix.commandkey        "y">
-<!ENTITY cmd.clearList.label              "Εκκαθάριση λίστας">
+<!ENTITY cmd.clearList.label              "Απαλοιφή λίστας">
 <!ENTITY cmd.clearList.tooltip            "Αφαιρεί ολοκληρωμένα, ακυρωμένα και αποτυχημένα στοιχεία από τη λίστα">
-<!ENTITY cmd.clearList.accesskey          "θ">
+<!ENTITY cmd.clearList.accesskey          "φ">
 <!ENTITY cmd.find.commandkey              "f">
 <!ENTITY cmd.search.commandkey            "k">
 
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.properties
index 43decd2d370e81e54554b95b02496f01c6809777..0599051f5e6f6a366876f54a3d1f7d60d0649014 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/activity.properties
@@ -14,13 +14,13 @@ canceled=Ακυρώθηκε
 
 # LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
 sendingMessages=Αποστολή μηνυμάτων
-sendingMessage=Γίνεται αποστολή μηνύματος
+sendingMessage=Αποστολή μηνύματος
 # LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
-sendingMessageWithSubject=Γίνεται αποστολή μηνύματος: %S
+sendingMessageWithSubject=Αποστολή μηνύματος: %S
 copyMessage=Γίνεται αντιγραφή μηνύματος στα απεσταλμένα
 sentMessage=Στάλθηκε μήνυμα
 # LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
-sentMessageWithSubject=Στάλθηκε μήνυμα σε: %S
+sentMessageWithSubject=Απεσταλμένο μήνυμα: %S
 failedToSendMessage=Αποτυχία αποστολής μηνύματος
 failedToCopyMessage=Αποτυχία αντιγραφής μηνύματος
 # LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
@@ -34,66 +34,66 @@ failedToCopyMessageWithSubject=Αποτυχία αντιγραφής μηνύμ
 # Place the word %3$S in your translation where the name of the folder being processed should appear.
 # Place the word %4$S in your translation where the name of account being processed should appear.
 # EXAMPLE: Ted's account: Downloading message 334 of 1008 in Inbox…
-autosyncProcessProgress2=%4$S: Λήψη μηνύματος %1$S από %2$S στον φάκελο %3$S…
+autosyncProcessProgress2=%4$S: Λήψη μηνύματος %1$S από %2$S στο «%3$S»…
 # LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
-autosyncProcessDisplayText=Γίνεται ενημέρωση του φακέλου %S
+autosyncProcessDisplayText=Ενημέρωση του φακέλου «%S»
 # LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
-autosyncEventDisplayText=Ο λογαριασμός %S είναι ενημερωμένος
+autosyncEventDisplayText=Ο λογαριασμός «%S» είναι ενημερωμένος
 # LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
-autosyncEventStatusText=Σύνολο μηνυμάτων που λήφθηκαν: %S
+autosyncEventStatusText=Συνολικός αριθμός ληφθέντων μηνυμάτων: %S
 autosyncEventStatusTextNoMsgs=Δεν λήφθηκαν μηνύματα
 # LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
-autosyncContextDisplayText=Γίνεται συγχρονισμός: %S
+autosyncContextDisplayText=Συγχρονισμός: %S
 
 # LOCALIZATION NOTE (pop3EventStartDisplayText2): Do not translate the words "%1$S" and "%2$S" below.
 # Place the word %1$S in your translation where the name of the account being checked for new messages should appear.
 # Place the word %2$S in your translation where the name of the folder being checked for new messages should appear.
 # EXAMPLE: George's account: Checking Inbox for new messages…
-pop3EventStartDisplayText2=%1$S: Έλεγχος του φακέλου "%2$S" για νέα μηνύματα…
+pop3EventStartDisplayText2=%1$S: Έλεγχος του «%2$S» για νέα μηνύματα…
 # LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
-pop3EventDisplayText=Ο λογαριασμός %S είναι ενημερωμένος
+pop3EventDisplayText=Ο λογαριασμός «%S» είναι ενημερωμένος
 # LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
 pop3EventStatusText=Ελήφθη #1 μήνυμα;Ελήφθησαν #1 μηνύματα
 pop3EventStatusTextNoMsgs=Δεν υπάρχουν μηνύματα για λήψη
 
 # Message actions that show up in activity manager
 # LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
-deletedMessages2=Διαγράφηκε #1 μήνυμα από #2;Διαγράφηκαν #1 μηνύματα από #2
+deletedMessages2=Διαγράφτηκε #1 μήνυμα από το «#2»;Διαγράφτηκαν #1 μηνύματα από το «#2»
 # LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
-movedMessages=Μετακινήθηκε #1 μήνυμα από #2 στο #3;Μετακινήθηκαν #1 μηνύματα από #2 σε #3
+movedMessages=Μετακινήθηκε #1 μήνυμα από το «#2» στο «#3»;Μετακινήθηκαν #1 μηνύματα από το «#2» στο «#3»
 # LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
-copiedMessages=Αντιγράφτηκε #1 μήνυμα από #2 σε #3;Αντιγράφηκαν #1 μηνύματα από #2 σε #3
+copiedMessages=Αντιγράφτηκε #1 μήνυμα από το «#2» στο «#3»;Αντιγράφτηκαν #1 μηνύματα από το «#2» στο «#3»
 # LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
-fromServerToServer=από #1 σε #2
+fromServerToServer=από το #1 στο #2
 # LOCALIZATION NOTE (deletedFolder): #1 folder name
-deletedFolder=Διαγράφηκε φάκελος #1
+deletedFolder=Ο φάκελος «#1» διαγράφτηκε
 emptiedTrash=Ο κάδος απορριμμάτων άδειασε
 # LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
-movedFolder=Μετακινήθηκε φάκελος #1 σε φάκελο #2
+movedFolder=Ο φάκελος «#1» μετακινήθηκε στον φάκελο «#2»
 # LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
-movedFolderToTrash=Ο φάκελος #1 μετακινήθηκε στα Απορρίμματα
+movedFolderToTrash=Ο φάκελος «#1» μετακινήθηκε στα Απορρίμματα
 # LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
-copiedFolder=Αντιγράφτηκε φάκελος #1 σε φάκελο #2
+copiedFolder=Ο φάκελος «#1» αντιγράφτηκε στον φάκελο «#2»
 # LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
-renamedFolder=Μετονομάσθηκε φάκελος #1 σε #2
-indexing=Δημιουργία καταλόγου μηνυμάτων
+renamedFolder=Ο φάκελος «#1» μετονομάστηκε σε «#2»
+indexing=Ευρετηρίαση μηνυμάτων
 # LOCALIZATION NOTE (indexingFolder): #1 is a folder name
-indexingFolder=Δημιουργία καταλόγου μηνυμάτων σε #1
-indexingStatusVague=Καθορισμός μηνυμάτων για κατάλογο
+indexingFolder=Ευρετηρίαση μηνυμάτων του «#1»
+indexingStatusVague=Προσδιορισμός μηνυμάτων για ευρετηρίαση
 # LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
-indexingFolderStatusVague=Καθορισμός μηνυμάτων για κατάλογο σε #1
+indexingFolderStatusVague=Προσδιορισμός μηνυμάτων για ευρετηρίαση στο «#1»
 # LOCALIZATION NOTE (indexingStatusExact):
 #   #1 is the number of the message currently being indexed
 #   #2 is the total number of messages being indexed
 #   #3 is the percentage of indexing that is complete
-indexingStatusExact=Καταλογοποίηση #1 από #2 μήνυμα;Καταλογοποίηση #1 από σύνολο #2 μηνυμάτων (ολοκληρώθηκε το #3%)
+indexingStatusExact=Ευρετηρίαση #1 από #2 μήνυμα;Ευρετηρίαση #1 από #2 μηνύματα (ολοκλήρωση κατά #3%)
 # LOCALIZATION NOTE (indexingFolderStatusExact):
 #   #1 is the number of the message currently being indexed
 #   #2 is the total number of messages being indexed
 #   #3 is the percentage of indexing that is complete
 #   #4 is a folder name
-indexingFolderStatusExact=Καταλογοποίηση #1 of #2 μήνυμα σε #4;Καταλογοποίηση #1 από σύνολο #2 μηνυμάτων σε #4 (ολοκληρώθηκε το #3%)
+indexingFolderStatusExact=Ευρετηρίαση #1 από #2 μήνυμα στο «#4»;Ευρετηρίαση #1 από #2 μηνύματα στο «#4» (ολοκλήρωση κατά #3%)
 # LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
-indexedFolder=Προστέθηκε στον κατάλογο #1 μήνυμα σε #2;Προστέθηκαν τον κατάλογο #1 μηνύματα σε #2
+indexedFolder=Ευρετηριάστηκε #1 μήνυμα στο «#2»;Ευρετηριάστηκαν #1 μηνύματα στο «#2»
 # LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
 indexedFolderStatus=πέρασε #1 δευτερόλεπτο;πέρασαν #1 δευτερόλεπτα
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addons.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addons.properties
index 6a0f0fd3fd1cdc6df30e692d089c0ba92a06dbf2..3643a9df53c552c4579cb908cf5e31d2928c4ab6 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addons.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addons.properties
@@ -2,16 +2,16 @@
 # 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/.
 
-xpinstallPromptMessage=Το %S εμπόδισε την ερώτηση αυτής της ιστοσελίδας για εγκατάσταση λογισμικού στον υπολογιστή σας.
+xpinstallPromptMessage=Το %S εμπόδισε το αίτημα του ιστοτόπου για εγκατάσταση λογισμικού στον υπολογιστή σας.
 # LOCALIZATION NOTE (xpinstallPromptMessage.header)
 # The string contains the hostname of the site the add-on is being installed from.
 xpinstallPromptMessage.header=Να επιτραπεί στο %S η εγκατάσταση ενός προσθέτου;
-xpinstallPromptMessage.message=Προσπαθείτε να εγκαταστήσετε ένα πρόσθετο από το %S. Βεβαιωθείτε ότι εμπιστεύεστε αυτή την ιστοσελίδα πριν συνεχίσετε.
-xpinstallPromptMessage.header.unknown=Να επιτρέπεται σε μια άγνωστη ιστοσελίδα η εγκατάσταση προσθέτου;
-xpinstallPromptMessage.message.unknown=Προσπαθείτε να εγκαταστήσετε ένα πρόσθετο από μια άγνωστη ιστοσελίδα. Βεβαιωθείτε ότι εμπιστεύεστε αυτή την ιστοσελίδα πριν συνεχίσετε.
+xpinstallPromptMessage.message=Προσπαθείτε να εγκαταστήσετε ένα πρόσθετο από το %S. Βεβαιωθείτε ότι εμπιστεύεστε τον ιστότοπο πριν συνεχίσετε.
+xpinstallPromptMessage.header.unknown=Να επιτραπεί σε έναν άγνωστο ιστότοπο η εγκατάσταση ενός προσθέτου;
+xpinstallPromptMessage.message.unknown=Προσπαθείτε να εγκαταστήσετε ένα πρόσθετο από έναν άγνωστο ιστότοπο. Βεβαιωθείτε ότι εμπιστεύεστε αυτό τον ιστότοπο πριν συνεχίσετε.
 xpinstallPromptMessage.learnMore=Μάθετε περισσότερα σχετικά με την ασφαλή εγκατάσταση πρόσθετων
-xpinstallPromptMessage.dontAllow=Να μην επιτραπεί
-xpinstallPromptMessage.dontAllow.accesskey=Ν
+xpinstallPromptMessage.dontAllow=Απόρριψη
+xpinstallPromptMessage.dontAllow.accesskey=Ï€
 xpinstallPromptMessage.neverAllow=Οριστική απόρριψη
 xpinstallPromptMessage.neverAllow.accesskey=Ο
 # Accessibility Note:
@@ -69,15 +69,15 @@ addonInstall.acceptButton2.accesskey=Π
 # http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 is brandShortName
 # #2 is the number of add-ons being installed
-addonConfirmInstall.message=Ο ιστοτόπος θέλει να εγκαταστήσει ένα πρόσθετο στο #1:;Ο ιστοτόπος θέλει να εγκαταστήσει #2 πρόσθετα στο #1:
-addonConfirmInstallUnsigned.message=Προσοχή: Ο ιστοτόπος θέλει να εγκαταστήσει ένα μη επιβεβαιωμένο πρόσθετο στο #1. Συνεχίστε με δική σας ευθύνη.;Προσοχή: Ο ιστοτόπος θέλει να εγκαταστήσει #2 μη επιβεβαιωμένα πρόσθετα στο #1. Συνεχίστε με δική σας ευθύνη.
+addonConfirmInstall.message=Ο ιστότοπος θέλει να εγκαταστήσει ένα πρόσθετο στο #1:;Ο ιστότοπος θέλει να εγκαταστήσει #2 πρόσθετα στο #1:
+addonConfirmInstallUnsigned.message=Προσοχή: Ο ιστότοπος θέλει να εγκαταστήσει ένα μη επαληθευμένο πρόσθετο στο #1. Συνεχίστε με δική σας ευθύνη.;Προσοχή: Ο ιστότοπος θέλει να εγκαταστήσει #2 μη επαληθευμένα πρόσθετα στο #1. Συνεχίστε με δική σας ευθύνη.
 
 # LOCALIZATION NOTE (addonConfirmInstallSomeUnsigned.message):
 # Semicolon-separated list of plural forms. See:
 # http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 is brandShortName
 # #2 is the total number of add-ons being installed (at least 2)
-addonConfirmInstallSomeUnsigned.message=;Προσοχή: Ο ιστοτόπος θέλει να εγκαταστήσει #2 πρόσθετα στο #1, μερικά από τα οποία δεν είναι επιβεβαιωμένα. Συνεχίστε με δική σας ευθύνη.
+addonConfirmInstallSomeUnsigned.message=;Προσοχή: Ο ιστότοπος θέλει να εγκαταστήσει #2 πρόσθετα στο #1, μερικά από τα οποία δεν είναι επαληθευμένα. Συνεχίστε με δική σας ευθύνη.
 
 # LOCALIZATION NOTE (addonInstalled):
 # %S is the name of the add-on
@@ -92,9 +92,9 @@ addonsGenericInstalled=Το πρόσθετο #1 εγκαταστάθηκε με
 # %1$S is the application name, %2$S is the add-on name
 addonInstallError-1=Δεν ήταν δυνατή η λήψη του προσθέτου λόγω αποτυχίας σύνδεσης.
 addonInstallError-2=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου επειδή δεν συμφωνεί με το αναμενόμενο πρόσθετο %1$S.
-addonInstallError-3=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου που μεταφορτώθηκε από τον ιστοτόπο γιατί μοιάζει να είναι κατεστραμμένο.
+addonInstallError-3=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου που ελήφθη από τον ιστότοπο επειδή φαίνεται να είναι κατεστραμμένο.
 addonInstallError-4=Το %2$S δεν ήταν δυνατό να εγκατασταθεί, επειδή το %1$S δεν μπόρεσε να τροποποιήσει το απαιτούμενο αρχείο.
-addonInstallError-5=Το %1$S απέτρεψε τον ιστοτόπο από την εγκατάσταση ενός μη-επιβεβαιωμένου πρόσθετου.
+addonInstallError-5=Το %1$S εμπόδισε την εγκατάσταση ενός μη επαληθευμένου προσθέτου από τον ιστότοπο.
 addonLocalInstallError-1=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου λόγω σφάλματος στο σύστημα αρχείων.
 addonLocalInstallError-2=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου γιατί δεν συμφωνεί με το αναμενόμενο πρόσθετο %1$S.
 addonLocalInstallError-3=Δεν ήταν δυνατή η εγκατάσταση του πρόσθετου γιατί μοιάζει να είναι κατεστραμμένο.
@@ -145,8 +145,8 @@ webextPerms.sideloadMenuItem=Το %1$S προστέθηκε στο %2$S
 # %S is replaced with the localized name of the extension being installed.
 # Note, this string will be used as raw markup. Avoid characters like <, >, &
 webextPerms.sideloadHeader=Το %S προστέθηκε
-webextPerms.sideloadText2=Κάποιο άλλο πρόγραμμα στον υπολογιστή σας εγκατέστησε ένα πρόσθετο που ενδέχεται να επηρεάσει το πρόγραμμα περιήγησής σας. Παρακαλούμε ελέγξτε τα δικαιώματα αυτού του προσθέτου και επιλέξτε "Ενεργοποίηση" ή "Ακύρωση" (για να παραμείνει ανενεργό).
-webextPerms.sideloadTextNoPerms=Κάποιο άλλο πρόγραμμα στον υπολογιστή σας εγκατέστησε ένα πρόσθετο που ενδέχεται να επηρεάσει το πρόγραμμα περιήγησής σας. Παρακαλούμε επιλέξτε "Ενεργοποίηση" ή "Ακύρωση" (για να παραμείνει ανενεργό).
+webextPerms.sideloadText2=Κάποιο άλλο πρόγραμμα στον υπολογιστή σας εγκατέστησε ένα πρόσθετο που ενδέχεται να επηρεάσει το πρόγραμμα περιήγησής σας. Παρακαλώ ελέγξτε τα δικαιώματα αυτού του προσθέτου και επιλέξτε «Ενεργοποίηση» ή «Ακύρωση» (για να παραμείνει ανενεργό).
+webextPerms.sideloadTextNoPerms=Κάποιο άλλο πρόγραμμα στον υπολογιστή σας εγκατέστησε ένα πρόσθετο που ενδέχεται να επηρεάσει το πρόγραμμα περιήγησής σας. Παρακαλώ επιλέξτε «Ενεργοποίηση» ή «Ακύρωση» (για να παραμείνει ανενεργό).
 
 webextPerms.sideloadEnable.label=Ενεργοποίηση
 webextPerms.sideloadEnable.accessKey=Ε
@@ -224,12 +224,12 @@ webextPerms.description.topSites=Έχει πρόσβαση στο ιστορικ
 webextPerms.description.unlimitedStorage=Αποθηκεύει απεριόριστο αριθμό δεδομένων πελάτη
 webextPerms.description.webNavigation=Έχει πρόσβαση στη δραστηριότητα του προγράμματος περιήγησης κατά την πλοήγηση
 
-webextPerms.hostDescription.allUrls=Έχει πρόσβαση στα δεδομένα σας για όλες τις ιστοσελίδες
+webextPerms.hostDescription.allUrls=Έχει πρόσβαση στα δεδομένα σας για κάθε ιστότοπο
 
 # LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
 # %S will be replaced by the DNS domain for which a webextension
 # is requesting access (e.g., mozilla.org)
-webextPerms.hostDescription.wildcard=Έχει πρόσβαση στα δεδομένα σας για τις ιστοσελίδες στον τομέα %S
+webextPerms.hostDescription.wildcard=Έχει πρόσβαση στα δεδομένα σας για ιστοτόπους του τομέα %S
 
 # LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
 # Semi-colon list of plural forms.
@@ -248,7 +248,7 @@ webextPerms.hostDescription.oneSite=Έχει πρόσβαση στα δεδομ
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 will be replaced by an integer indicating the number of additional
 # hosts for which this webextension is requesting permission.
-webextPerms.hostDescription.tooManySites=Έχει πρόσβαση στα δεδομένα σας σε #1 άλλη ιστοσελίδα;Έχει πρόσβαση στα δεδομένα σας σε #1 άλλες ιστοσελίδες
+webextPerms.hostDescription.tooManySites=Έχει πρόσβαση στα δεδομένα σας σε #1 ακόμα ιστότοπο;Έχει πρόσβαση στα δεδομένα σας σε #1 ακόμα ιστοτόπους
 
 # LOCALIZATION NOTE (webext.defaultSearch.description)
 # %1$S is replaced with the localized named of the extension that is asking to change the default search engine.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abContactsPanel.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abContactsPanel.dtd
index ce3dcc2ef5c051291a3b6a1c7a8b56962feccfb0..1519d19f1904eb5afb604cf7909359a8cae1dd43 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abContactsPanel.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abContactsPanel.dtd
@@ -12,7 +12,7 @@
 <!ENTITY mailingListPropertiesMenu.label    "Ιδιότητες λίστας αλληλογραφίας">
 <!ENTITY mailingListPropertiesMenu.accesskey "ι">
 
-<!ENTITY abContextMenuButton.tooltip        "Προβολή μενού επιλογών ευρετηρίου διευθύνσεων">
+<!ENTITY abContextMenuButton.tooltip        "Προβολή μενού επιλογών ευρετηρίου">
 <!ENTITY addressbookPicker.label            "Ευρετήριο:">
 <!ENTITY addressbookPicker.accesskey        "Ï…">
 <!ENTITY searchContacts.label               "Αναζήτηση επαφών:">
@@ -21,9 +21,9 @@
 
 <!ENTITY addtoToFieldMenu.label             "Προσθήκη στο πεδίο Προς">
 <!ENTITY addtoToFieldMenu.accesskey         "Π">
-<!ENTITY addtoCcFieldMenu.label             'Προσθήκη στο πεδίο "Κοιν."'>
+<!ENTITY addtoCcFieldMenu.label             "Προσθήκη στο πεδίο «Κοιν.»">
 <!ENTITY addtoCcFieldMenu.accesskey         "Κ">
-<!ENTITY addtoBccFieldMenu.label            'Προσθήκη στο πεδίο "Κρυφή κοιν."'>
+<!ENTITY addtoBccFieldMenu.label            "Προσθήκη στο πεδίο «Κρυφή κοιν.»">
 <!ENTITY addtoBccFieldMenu.accesskey        "φ">
 <!ENTITY deleteAddrBookCard.label           "Διαγραφή">
 <!ENTITY deleteAddrBookCard.accesskey       "Δ">
@@ -41,9 +41,9 @@
 <!ENTITY newListAbContext.label             "Νέα λίστα">
 <!ENTITY newListAbContext.accesskey         "Λ">
 
-<!ENTITY toButton.label                     "Προσθήκη στο Πρός:">
+<!ENTITY toButton.label                     "Προσθήκη στο «Προς»:">
 <!ENTITY toButton.accesskey                 "Π">
-<!ENTITY ccButton.label                     'Προσθήκη στο "Κοιν.":'>
+<!ENTITY ccButton.label                     "Προσθήκη στο «Κοιν.»:">
 <!ENTITY ccButton.accesskey                 "θ">
-<!ENTITY bccButton.label                    'Προσθήκη στο "Κρυφή κοιν.":'>
+<!ENTITY bccButton.label                    "Προσθήκη στο «Κρυφή κοιν.»:">
 <!ENTITY bccButton.accesskey                "φ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMailListDialog.dtd
index b353a195a94793b6f2c4e66073be4e9f6055df93..59b925d583f0912528acac97c1b78892f6adeb67 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMailListDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMailListDialog.dtd
@@ -6,7 +6,7 @@
 <!ENTITY mailListWindowAdd.title        "Νέα λίστα αλληλογραφίας">
 
 <!-- Labels and Access Keys -->
-<!ENTITY addToAddressBook.label         "Προσθήκη σε:">
+<!ENTITY addToAddressBook.label         "Προσθήκη σε: ">
 <!ENTITY addToAddressBook.accesskey     "θ">
 <!ENTITY ListName.label                 "Όνομα λίστας: ">
 <!ENTITY ListName.accesskey             "Λ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMainWindow.dtd
index 6e0958ec9f780c534a9895a822b0361ad5d1447a..e20653afb3f3b89d484d1480b8f32f9757b7d12e 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMainWindow.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/abMainWindow.dtd
@@ -3,7 +3,7 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!ENTITY addressbookWindow.title                        "Ευρετήριο">
-<!ENTITY blankResultsPaneMessage.label                  "Αυτό το ευρετήριο εμφανίζει επαφές μόνο μετά από μια αναζήτηση">
+<!ENTITY blankResultsPaneMessage.label                  "Αυτό το ευρετήριο εμφανίζει επαφές μόνο μετά από αναζήτηση">
 <!ENTITY localResultsOnlyMessage.label                  "Επαφές από απομακρυσμένα ευρετήρια δεν εμφανίζονται μέχρι να γίνει αναζήτηση">
 
 <!-- File Menu -->
@@ -74,7 +74,7 @@
 <!ENTITY viewToolbarsMenu.accesskey                     "γ">
 <!ENTITY menubarCmd.label                               "Γραμμή μενού">
 <!ENTITY menubarCmd.accesskey                           "μ">
-<!ENTITY showAbToolbarCmd.label                         "Γραμμή ευρετηρίων διευθύνσεων">
+<!ENTITY showAbToolbarCmd.label                         "Γραμμή ευρετηρίων">
 <!ENTITY showAbToolbarCmd.accesskey                     "ρ">
 <!ENTITY showTaskbarCmd.label                           "Γραμμή κατάστασης">
 <!ENTITY showTaskbarCmd.accesskey                       "μ">
@@ -151,7 +151,7 @@ because displayed names don't have the comma in between. -->
 <!ENTITY newContactButton.tooltip                       "Δημιουργία νέας επαφής στο ευρετήριο">
 <!ENTITY newlistButton.tooltip                          "Δημιουργία νέας λίστας">
 <!ENTITY editPropertiesButton.tooltip                   "Επεξεργασία επιλεγμένου στοιχείου">
-<!ENTITY editAbPropertiesButton.tooltip                 "Επεξεργασία ιδιοτήτων επιλεγμένου ευρετηρίου διευθύνσεων">
+<!ENTITY editAbPropertiesButton.tooltip                 "Επεξεργασία ιδιοτήτων επιλεγμένου ευρετηρίου">
 <!ENTITY editContactPropertiesButton.tooltip            "Επεξεργασία επιλεγμένης επαφής">
 <!ENTITY editMailingListPropertiesButton.tooltip        "Επεξεργασία επιλεγμένης λίστας αλληλογραφίας">
 <!ENTITY newmsgButton.tooltip                           "Αποστολή ενός μηνύματος αλληλογραφίας">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/addressBook.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/addressBook.properties
index f769b6398e2db10fd6d6e0db164cca1246bca4ca..ccdf210d82d3c44c1df49a305541e23a4add9d3a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/addressBook.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/addressBook.properties
@@ -4,7 +4,7 @@
 
 # The following are used by the Mailing list dialog.
 # LOCALIZATION NOTE (mailingListTitleEdit): %S will be replaced by the Mailing List's display name.
-mailingListTitleEdit=Επεξεργασία "%S"
+mailingListTitleEdit=Επεξεργασία του «%S»
 emptyListName=Πρέπει να εισαγάγετε ένα όνομα λίστας.
 badListNameCharacters=Ένα όνομα λίστας δεν μπορεί να περιλαμβάνει τους εξής χαρακτήρες: < > ; , "
 badListNameSpaces=Ένα όνομα λίστας δεν μπορεί να περιλαμβάνει πολλαπλά παρακείμενα κενά.
@@ -59,7 +59,7 @@ confirmRemoveThisContactTitle=Αφαίρεση επαφής
 # Don't localize "\n• #1" unless your local layout comes out wrong.
 # Example: Are you sure you want to remove this contact from the mailing list 'Customers List'?
 #          • John Doe
-confirmRemoveThisContact=Θέλετε σίγουρα να διαγράψετε αυτή την επαφή από τη λίστα αλληλογραφίας '#2';\n• #1
+confirmRemoveThisContact=Θέλετε σίγουρα να διαγράψετε αυτή την επαφή από τη λίστα αλληλογραφίας «#2»;\n• #1
 
 confirmRemove2orMoreContactsTitle=Αφαίρεση Πολλαπλών Επαφών
 # LOCALIZATION NOTE (confirmRemove2orMoreContacts):
@@ -102,7 +102,7 @@ confirmDeleteThisAddressbookTitle=Διαγραφή ευρετηρίου
 #          • Friends and Family Address Book
 confirmDeleteThisAddressbook=Θέλετε σίγουρα να διαγράψετε αυτό το ευρετήριο και όλες τις επαφές του;\n• #1
 
-confirmDeleteThisLDAPDirTitle=Διαγραφή Τοπικού Καταλόγου LDAP
+confirmDeleteThisLDAPDirTitle=Διαγραφή τοπικού καταλόγου LDAP
 # LOCALIZATION NOTE (confirmDeleteThisLDAPDir):
 # #1 The name of the selected LDAP directory
 # Don't localize "\n• #1" unless your local layout comes out wrong.
@@ -110,7 +110,7 @@ confirmDeleteThisLDAPDirTitle=Διαγραφή Τοπικού Καταλόγου
 #          • Mozilla LDAP Directory
 confirmDeleteThisLDAPDir=Είστε σίγουροι για τη διαγραφή του τοπικού αντιγράφου του καταλόγου LDAP και όλων των εκτός σύνδεσης επαφών του;\n• #1
 
-confirmDeleteThisCollectionAddressbookTitle=Διαγραφή Συλλογής Βιβλίου Διευθύνσεων
+confirmDeleteThisCollectionAddressbookTitle=Διαγραφή ευρετηρίου συλλογής
 # LOCALIZATION NOTE (confirmDeleteThisCollectionAddressbook):
 # #1 The name of the selected collection address book
 # #2 The name of the application (Thunderbird)
@@ -118,7 +118,7 @@ confirmDeleteThisCollectionAddressbookTitle=Διαγραφή Συλλογής Β
 # Example: If this address book is deleted, Thunderbird will no longer collect addresses.
 #          Are you sure you want to delete this address book and all of its contacts?
 #          • My Collecting Addressbook
-confirmDeleteThisCollectionAddressbook=Αν διαγραφεί αυτό το ευρετήριο διευθύνσεων, το #2 δεν θα συλλέγει πλέον διευθύνσεις.\nΘέλετε σίγουρα να διαγράψετε αυτό το ευρετήριο διευθύνσεων και όλες τις επαφές του;\n• #1
+confirmDeleteThisCollectionAddressbook=Αν διαγραφεί αυτό το ευρετήριο, το #2 δεν θα συλλέγει πλέον διευθύνσεις.\nΘέλετε σίγουρα να διαγράψετε αυτό το ευρετήριο και όλες τις επαφές του;\n• #1
 
 propertyPrimaryEmail=Email
 propertyListName=Όνομα λίστας
@@ -143,7 +143,7 @@ propertySkype=Skype
 propertyQQ=QQ
 propertyMSN=MSN
 propertyICQ=ICQ
-propertyXMPP=Αναγνωριστικό Jabber
+propertyXMPP=Jabber ID
 propertyIRC=Ψευδώνυμο IRC
 
 ## LOCALIZATION NOTE (cityAndStateAndZip):
@@ -161,7 +161,7 @@ stateZipSeparator=
 prefixTo=Προς
 prefixCc=Κοιν.
 prefixBcc=Κρυφή κοιν.
-addressBook=Ευρετήριο διευθύνσεων
+addressBook=Ευρετήριο
 
 # Contact photo management
 browsePhoto=Φωτογραφία επαφής
@@ -175,7 +175,7 @@ errorSaveOperation=Σφάλμα: Δεν ήταν δυνατή η αποθήκε
 ldap_2.servers.pab.description=Προσωπικό ευρετήριο
 ldap_2.servers.history.description=Συλλεγμένες διευθύνσεις
 ## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
-ldap_2.servers.osx.description=Βιβλίο διευθύνσεων του Mac OS X
+ldap_2.servers.osx.description=Ευρετήριο του Mac OS X
 
 ## LOCALIZATION NOTE (ldap_2.servers.outlook.description is only used on Windows)
 ldap_2.servers.outlook.description=Ευρετήριο Outloook
@@ -183,7 +183,7 @@ ldap_2.servers.outlook.description=Ευρετήριο Outloook
 # status bar stuff
 ## LOCALIZATION NOTE (totalContactStatus):
 ## %1$S is address book name, %2$S is contact count
-totalContactStatus=Σύνολο επαφών στο "%1$S": %2$S
+totalContactStatus=Σύνολο επαφών στο «%1$S»: %2$S
 noMatchFound=Δεν βρέθηκαν ταιριάσματα
 ## LOCALIZATION NOTE (matchesFound1):
 ## Semicolon-separated list of singular and plural forms.
@@ -199,7 +199,7 @@ contactsCopied=Αντιγράφηκε %1$S επαφή;Αντιγράφηκαν %
 ## LOCALIZATION NOTE (contactsMoved): Semi-colon list of plural forms
 ## %1$S is the number of contacts that were moved. This should be used multiple
 ## times wherever you need it. Do not replace by %S.
-contactsMoved=%1$S επαφή μετακινήθηκε;%1$S επαφές μετακινήθηκαν
+contactsMoved=Μετακινήθηκε %1$S επαφή;Μετακινήθηκαν %1$S επαφές
 
 # LDAP directory stuff
 invalidName=Παρακαλώ εισαγάγετε ένα έγκυρο όνομα.
@@ -220,7 +220,7 @@ TABFiles=Οριοθετημένο κείμενο (*.tab,*.txt)
 TABFilesSysCharset=Οριοθετημένο κείμενο (κωδικοποίηση συστήματος)
 TABFilesUTF8=Οριοθετημένο κείμενο (UTF-8)
 VCFFiles=vCard
-SupportedABFiles=Υποστηριζόμενα αρχεία βιβλίου διευθύνσεων
+SupportedABFiles=Υποστηριζόμενα αρχεία ευρετηρίου
 failedToExportTitle=Η εξαγωγή απέτυχε
 failedToExportMessageNoDeviceSpace=Αποτυχία εξαγωγής ευρετηρίου διευθύνσεων, δεν υπάρχει ελεύθερος χώρος στη συσκευή
 failedToExportMessageFileAccessDenied=Αποτυχία εξαγωγής ευρετηρίου διευθύνσεων, απαγορεύθηκε η πρόσβαση στο αρχείο.
@@ -243,18 +243,18 @@ headingDescription=Περιγραφή
 headingAddresses=Διευθύνσεις
 
 ## For address books
-addressBookTitleNew=Νέο ευρετήριο διευθύνσεων
+addressBookTitleNew=Νέο ευρετήριο
 # LOCALIZATION NOTE (addressBookTitleEdit):
 # %S is the current name of the address book.
 # Example: My Custom AB Properties
 addressBookTitleEdit=%S - Ιδιότητες
-duplicateNameTitle=Διπλό όνομα βιβλίου διευθύνσεων
+duplicateNameTitle=Διπλότυπο όνομα ευρετηρίου
 # LOCALIZATION NOTE (duplicateNameText):
 # Don't localize "\n• %S" unless your local layout comes out wrong.
 # %S is the name of the existing address book.
 # Example: An address book with this name already exists:
 #          • My Custom AB
-duplicateNameText=Ένα βιβλίο διευθύνσεων με αυτό το όνομα υπάρχει ήδη:\n• %S
+duplicateNameText=Ένα ευρετήριο με αυτό το όνομα υπάρχει ήδη:\n• %S
 
 # For corrupt .mab files
 corruptMabFileTitle=Κατεστραμμένο αρχείο ευρετηρίου διευθύνσεων
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/ldapAutoCompErrs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/ldapAutoCompErrs.properties
index 308943992ef9519f0cc943319f5afe4567ab12ba..f55dc67a862eea4a94c1fc7096b34fc6f8e040fc 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/ldapAutoCompErrs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/addressbook/ldapAutoCompErrs.properties
@@ -69,7 +69,7 @@ errorAlertFormat=Κωδικός σφάλματος %1$S: %2$S\n\n %3$S
 
 ## @name NO_SUCH_OBJECT_HINT
 ## @loc none
-10032=Βεβαιωθείτε ότι η Βάση DN είναι σωστή και, έπειτα, προσπαθήστε ξανά, ή αλλιώς επικοινωνήστε με το διαχειριστή του συστήματος σας. Για να βεβαιωθείτε ότι η Βάση DN είναι σωστή, από το μενού "Επεξεργασία", επιλέξτε "Προτιμήσεις", ύστερα "Αλληλογραφία & ομάδες συζήτησης" και τέλος "Διευθυνσιοδότηση". Κάντε κλικ στο "Επεξεργασία καταλόγων" και επιλέξτε το διακομιστή LDAP σε χρήση. Κάντε κλικ στο "Επεξεργασία" για προβολή της Βάσης DN.
+10032=Βεβαιωθείτε ότι η Βάση DN είναι σωστή και έπειτα, δοκιμάστε ξανά ή αλλιώς επικοινωνήστε με τον διαχειριστή του συστήματος σας. Για να βεβαιωθείτε ότι η Βάση DN είναι σωστή, από το μενού «Επεξεργασία», επιλέξτε «Προτιμήσεις», ύστερα «Αλληλογραφία & ομάδες συζήτησης» και τέλος, «Διευθυνσιοδότηση». Κάντε κλικ στο «Επεξεργασία καταλόγων» και επιλέξτε τον διακομιστή LDAP σε χρήση. Κάντε κλικ στο «Επεξεργασία» για προβολή της Βάσης DN.
 
 ## @name BUSY_HINT
 ## @loc none
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-addressing.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-addressing.dtd
index 97d76fe46dcb57521ceb220e5ba7c5a5e5e792f2..6eebdcd1bbf953507cb6a4dabc87c193b0be8101 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-addressing.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-addressing.dtd
@@ -4,11 +4,11 @@
 
 <!-- extracted from am-addressing.xhtml -->
 
-<!ENTITY addressing.label          "Σύνταξη &amp; διευθυνσιοδότηση">
+<!ENTITY addressing.label          "Σύνθεση &amp; διευθυνσιοδότηση">
 <!ENTITY addressingGroupTitle.label "Διευθυνσιοδότηση">
 <!ENTITY addressingText.label      "Κατά την αναζήτηση διευθύνσεων:">
 <!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
-<!ENTITY useGlobal.label           "Χρήση γενικών προτιμήσεων διακομιστή LDAP για αυτόν τον λογαριασμό">
+<!ENTITY useGlobal.label           "Χρήση γενικών προτιμήσεων διακομιστή LDAP για αυτό τον λογαριασμό">
 <!ENTITY useGlobal.accesskey       "χ">
 <!ENTITY editDirectories.label     "Επεξεργασία καταλόγων…">
 <!ENTITY editDirectories.accesskey "ξ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-advanced.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-advanced.dtd
index aa77942beefdb46b090ad48bd36b42cad46e886f..664dbbf7cf69f63159855133bc059becbc26f001 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-advanced.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-advanced.dtd
@@ -8,7 +8,7 @@
 <!ENTITY smtpServer.label "Ρυθμίσεις διακομιστή εξερχομένων (SMTP)">
 
 <!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
-<!ENTITY smtpDescription.label "Κατά τη διαχείριση των ταυτοτήτων σας, μπορείτε να χρησιμοποιήσετε έναν διακομιστή από τη λίστα, επιλέγοντάς τον ως διακομιστή εξερχομένων (SMTP), ή μπορείτε να χρησιμοποιήσετε τον προεπιλεγμένο, επιλέγοντας το &quot;Χρήση προεπιλεγμένου διακομιστή&quot;.">
+<!ENTITY smtpDescription.label "Κατά τη διαχείριση των ταυτοτήτων σας, μπορείτε να χρησιμοποιήσετε έναν διακομιστή από τη λίστα, επιλέγοντάς τον ως διακομιστή εξερχομένων (SMTP), ή μπορείτε να χρησιμοποιήσετε τον προεπιλεγμένο, επιλέγοντας το «Χρήση προεπιλεγμένου διακομιστή».">
 
 <!ENTITY smtpListAdd.label  "Προσθήκη…">
 <!ENTITY smtpListAdd.accesskey  "θ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-copies.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-copies.dtd
index c8fb762bd398b2e5aa1aab1b140b10fd1c3e5090..735f044c5994edf06ce1071cd3a6bf47cc015b42 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-copies.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-copies.dtd
@@ -21,7 +21,7 @@
 <!ENTITY saveMessageDlg.label "Εμφάνιση παραθύρου επιβεβαίωσης κατά την αποθήκευση μηνυμάτων">
 <!ENTITY saveMessageDlg.accesskey "β">
 <!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
-<!ENTITY sentFolderOn.label "Στον φάκελο &quot;Απεσταλμένα&quot; του:">
+<!ENTITY sentFolderOn.label "Στον φάκελο «Απεσταλμένα» του:">
 <!ENTITY sentFolderOn.accesskey "ε">
 <!ENTITY sentInOtherFolder.label "Σε άλλο:">
 <!ENTITY sentInOtherFolder.accesskey "λ">
@@ -31,20 +31,20 @@
 <!ENTITY keepArchives.accesskey "Δ">
 <!ENTITY archiveHierarchyButton.label "Επιλογές αρχειοθέτησης…">
 <!ENTITY archiveHierarchyButton.accesskey "χ">
-<!ENTITY archivesFolderOn.label "Στον φάκελο &quot;Αρχειοθήκη&quot; του:">
+<!ENTITY archivesFolderOn.label "Στον φάκελο «Αρχειοθήκη» του:">
 <!ENTITY archivesFolderOn.accesskey "χ">
 <!ENTITY archiveInOtherFolder.label "Σε άλλο:">
 <!ENTITY archiveInOtherFolder.accesskey "λ">
 <!ENTITY specialFolders.label "Προσχέδια και πρότυπα">
 <!ENTITY keepDrafts2.label "Διατήρηση προσχεδίων μηνυμάτων:">
 <!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
-<!ENTITY draftsFolderOn.label "Στον φάκελο &quot;Προσχέδια&quot; του:">
+<!ENTITY draftsFolderOn.label "Στον φάκελο «Προσχέδια» του:">
 <!ENTITY draftsFolderOn.accesskey "σ">
 <!ENTITY draftInOtherFolder.label "Σε άλλο:">
 <!ENTITY draftInOtherFolder.accesskey "λ">
 <!ENTITY keepTemplates.label "Διατήρηση προτύπων μηνυμάτων:">
 <!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
-<!ENTITY templatesFolderOn.label "Στον φάκελο &quot;Πρότυπα&quot; του:">
+<!ENTITY templatesFolderOn.label "Στον φάκελο «Πρότυπα» του:">
 <!ENTITY templatesFolderOn.accesskey "κ">
 <!ENTITY templateInOtherFolder.label "Σε άλλο:">
 <!ENTITY templateInOtherFolder.accesskey "ο">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-e2e.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-e2e.properties
index 282fb26e3359e928061297ac0ef5ef038abd8b30..348984f03b6913987d76197aab56f9bca5bd5ce8 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-e2e.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-e2e.properties
@@ -2,4 +2,4 @@
 # 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/.
 
-prefPanel-e2e=Κρυπτογράφηση από άκρο σε άκρο
+prefPanel-e2e=Διατερματική κρυπτογράφηση
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-junk.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-junk.dtd
index 6019d75ce20992670be5482b67cdb5a2b8d59212..612e95aaec05c9dbed907d05fd355d295af5afaf 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-junk.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-junk.dtd
@@ -9,7 +9,7 @@
 
 <!ENTITY move.label "Μετακίνηση νέων ανεπιθύμητων μηνυμάτων:">
 <!ENTITY move.accesskey "ν">
-<!ENTITY junkFolderOn.label "Στον φάκελο &quot;Ανεπιθύμητα&quot; του:">
+<!ENTITY junkFolderOn.label "Στον φάκελο «Ανεπιθύμητα» του:">
 <!ENTITY junkFolderOn.accesskey "θ">
 <!ENTITY otherFolder.label "Σε άλλο:">
 <!ENTITY otherFolder.accesskey "λ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-mdn.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-mdn.dtd
index c69770ad681080b608b2d1e694a5b79a241fe866..59ed0979beb5782ea526154bb25053efed45915e 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-mdn.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-mdn.dtd
@@ -15,14 +15,14 @@
 <!ENTITY leaveIt.label                "Παραμονή στα εισερχόμενα">
 <!ENTITY leaveIt.accesskey            "σ">
 <!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
-<!ENTITY moveToSent.label             "Μετακίνηση στο φάκελο &quot;Απεσταλμένα&quot;">
+<!ENTITY moveToSent.label             "Μετακίνηση στον φάκελο «Απεσταλμένα»">
 <!ENTITY moveToSent.accesskey         "Μ">
 <!ENTITY requestMDN.label             "Κατά τη λήψη αιτήματος για αποδεικτικό προβολής:">
 <!ENTITY returnSome.label             "Αποδοχή αποδεικτικών προβολής για ορισμένα μηνύματα">
 <!ENTITY returnSome.accesskey         "ε">
 <!ENTITY never.label                  "Να μην γίνεται ποτέ αποστολή αποδεικτικού προβολής">
 <!ENTITY never.accesskey              "Ν">
-<!ENTITY notInToCc.label              'Αν δεν είμαι στα πεδία "Προς" ή "Κοιν." του μηνύματος:'>
+<!ENTITY notInToCc.label              "Αν δεν είμαι στα πεδία «Προς» ή «Κοιν.» του μηνύματος:">
 <!ENTITY notInToCc.accesskey          "Α">
 <!ENTITY outsideDomain.label          "Αν ο αποστολέας είναι εκτός του τομέα μου:">
 <!ENTITY outsideDomain.accesskey      "Ï„">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-offline.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-offline.dtd
index cfe843638b0225f5affa196d60587a792f539568..31af8148346cda6feab18d56fe8af11aebd896c8 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-offline.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-offline.dtd
@@ -7,7 +7,7 @@
 <!ENTITY doNotDownloadImap.label "Για εξοικονόμηση χώρου, μπορείτε να περιορίσετε κατά ημερομηνία ή μέγεθος τη λήψη μηνυμάτων από το διακομιστή, καθώς και τη διατήρηση τοπικών αντιγράφων για εργασία εκτός σύνδεσης.">
 <!ENTITY allFoldersOffline2.label "Διατήρηση των μηνυμάτων όλων των φακέλων αυτού του λογαριασμού, σε αυτό τον υπολογιστή">
 <!ENTITY allFoldersOffline2.accesskey "ο">
-<!ENTITY allFoldersOfflineNote.label 'Σημείωση: Η αλλαγή θα επηρεάσει όλους τους φακέλους αυτού του λογαριασμού. Για ορισμό μεμονωμένων φακέλων, κάντε κλικ στο κουμπί "Σύνθετα…".'>
+<!ENTITY allFoldersOfflineNote.label "Σημείωση: Η αλλαγή θα επηρεάσει όλους τους φακέλους αυτού του λογαριασμού. Για ορισμό μεμονωμένων φακέλων, κάντε κλικ στο κουμπί «Σύνθετα…».">
 <!ENTITY offlineNotDownload.label "Μηνύματα μεγαλύτερα από">
 <!ENTITY offlineNotDownload.accesskey "Μ">
 <!ENTITY autosyncNotDownload.label "Να μην γίνεται λήψη μηνυμάτων, μεγαλύτερων από">
@@ -19,7 +19,7 @@
 <!ENTITY nntpNotDownloadRead.accesskey "γ">
 <!ENTITY nntpDownloadMsg.label "Μηνύματα περισσότερο από">
 <!ENTITY nntpDownloadMsg.accesskey "σ">
-<!ENTITY retentionCleanup.label "Για να ανακτήσετε χώρο στο δίσκο, μπορείτε να διαγράψετε τα παλιά μηνύματα.">
+<!ENTITY retentionCleanup.label "Για να ανακτήσετε χώρο στον δίσκο, μπορείτε να διαγράψετε οριστικά τα παλιά μηνύματα.">
 <!ENTITY retentionCleanupImap.label "Για ανάκτηση χώρου, μπορείτε να διαγράψετε οριστικά τα παλιά σας μηνύματα (τοπικά αντίγραφα και πρωτότυπα απομακρυσμένου διακομιστή).">
 <!ENTITY retentionCleanupPop.label "Για εξοικονόμηση αποθηκευτικού χώρου, μπορείτε να διαγράψετε μόνιμα τα παλιά σας μηνύματα μαζί με τα αρχικά μηνύματα στον απομακρυσμένο διακομιστή.">
 <!ENTITY retentionKeepMsg.label "Διαγραφή μηνυμάτων, παλαιότερων από">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-advanced.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-advanced.dtd
index 37434e7e1572cf0dfa551c676c599c54585ef5aa..2fec13b1ffaf1ae3fda8d7e380f83995a160da4d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-advanced.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-advanced.dtd
@@ -13,7 +13,7 @@
 <!ENTITY maximumConnectionsNumber.label "Μέγιστος αριθμός συνδέσεων διακομιστή στην κρυφή μνήμη">
 <!ENTITY maximumConnectionsNumber.accesskey "Μ">
 <!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
-<!ENTITY namespaceDesc.label "Αυτές οι προτιμήσεις καθορίζουν τους χώρους ονομάτων στο διακομιστή IMAP">
+<!ENTITY namespaceDesc.label "Αυτές οι προτιμήσεις καθορίζουν τους χώρους ονομάτων στον διακομιστή IMAP σας">
 <!ENTITY personalNamespace.label "Προσωπικός χώρος ονόματος:">
 <!ENTITY personalNamespace.accesskey "ο">
 <!ENTITY publicNamespace.label "Δημόσιο (κοινόχρηστο):">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-top.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-top.dtd
index 49f611c74ddae80a266fca64ee92045b477df0c2..621bbc7962dc92df3962604fc09cc5c89dbdc4e2 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-top.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-server-top.dtd
@@ -43,14 +43,14 @@
 <!ENTITY downloadOnBiff.label "Αυτόματη λήψη νέων μηνυμάτων">
 <!ENTITY downloadOnBiff.accesskey "Ï…">
 <!ENTITY deleteMessagePrefix.label "Κατά τη διαγραφή ενός μηνύματος:">
-<!ENTITY modelMoveToTrash.label "Μετακίνηση στο φάκελο:">
+<!ENTITY modelMoveToTrash.label "Μετακίνηση στον φάκελο:">
 <!ENTITY modelMoveToTrash.accesskey "φ">
 <!ENTITY modelMarkDeleted.label "Επισήμανση ως διαγραμμένο">
 <!ENTITY modelMarkDeleted.accesskey "μ">
 <!ENTITY modelDeleteImmediately.label "Άμεση αφαίρεση">
 <!ENTITY modelDeleteImmediately.accesskey "φ">
 <!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
-<!ENTITY expungeOnExit.label "Εκκαθάριση (&quot;Διαγραφή&quot;) εισερχομένων κατά την έξοδο">
+<!ENTITY expungeOnExit.label "Εκκαθάριση («Διαγραφή») εισερχομένων κατά την έξοδο">
 <!ENTITY expungeOnExit.accesskey "θ">
 <!ENTITY emptyTrashOnExit.label "Άδειασμα του κάδου απορριμμάτων κατά την έξοδο">
 <!ENTITY emptyTrashOnExit.accesskey "δ">
@@ -74,7 +74,7 @@
 <!ENTITY advancedButton.label "Σύνθετα…">
 <!ENTITY advancedButton.accesskey "θ">
 <!ENTITY serverDefaultCharset2.label "Προεπιλεγμένη κωδικοποίηση χαρακτήρων:">
-<!ENTITY localPath1.label "Τοπικός φάκελος:">
+<!ENTITY localPath1.label "Τοπικός κατάλογος:">
 <!ENTITY localFolderPicker.label "Επιλογή τοπικού καταλόγου">
 <!ENTITY browseFolder.label "Περιήγηση…">
 <!ENTITY browseFolder.accesskey "γ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-smime.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-smime.dtd
index 3663d94d4622bb4bc70991452e1e5bed6d2b6648..92350e8c9326478549b9437ac852939e830b5d8c 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-smime.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/am-smime.dtd
@@ -2,7 +2,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/. -->
 
-<!ENTITY e2eTitle.label "Κρυπτογράφηση από άκρο σε άκρο">
+<!ENTITY e2eTitle.label "Διατερματική κρυπτογράφηση">
 <!ENTITY e2eLearnMore.label "Μάθετε περισσότερα">
 
 <!ENTITY e2eEnc.description "Χωρίς κρυπτογράφηση από άκρο σε άκρο, τα περιεχόμενα των μηνυμάτων εκτίθενται εύκολα στον πάροχο ηλεκτρονικού ταχυδρομείου σας και σε μαζική παρακολούθηση.">
@@ -27,7 +27,6 @@
 <!ENTITY signingGroupTitle.label "Ψηφιακή υπογραφή">
 <!ENTITY signMessage2.label "Προσθήκη ψηφιακής υπογραφής από προεπιλογή">
 <!ENTITY signMessage.accesskey "Ψ">
-
 <!ENTITY signingCert2.message "Προσωπικό πιστοποιητικό για ψηφιακή υπογραφή:">
 
 <!ENTITY sendingDefaults.label "Προεπιλεγμένες ρυθμίσεις για αποστολή μηνυμάτων">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/appleMailImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/appleMailImportMsgs.properties
index 944210aa843056d9854a4f3d471b97908963de99..29e7a081e807fcd9e77a707e47c8bb71803750dc 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/appleMailImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/appleMailImportMsgs.properties
@@ -10,11 +10,11 @@ ApplemailImportDescription=Εισαγωγή τοπικής αλληλογραφ
 
 # Success Message
 # LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
-ApplemailImportMailboxSuccess=Τα τοπικά μηνύματα εισήχθησαν με επιτυχία από το %S
+ApplemailImportMailboxSuccess=Έγινε επιτυχής εισαγωγή των τοπικών μηνυμάτων από το «%S»
 
 # Error Message
 ApplemailImportMailboxBadparam=Προέκυψε εσωτερικό σφάλμα. Η εισαγωγή απέτυχε. Δοκιμάστε ξανά.
 
 # Error message
 # LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
-ApplemailImportMailboxConverterror=Προέκυψε σφάλμα κατά την εισαγωγή μηνυμάτων από το %S. Τα μηνύματα δεν εισήχθησαν.
+ApplemailImportMailboxConverterror=Προέκυψε σφάλμα κατά την εισαγωγή μηνυμάτων από το «%S». Δεν έγινε εισαγωγή μηνυμάτων.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/beckyImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/beckyImportMsgs.properties
index a4623828a9f5fa9c8387caebb31a7801718a1f08..6c7837cc0ac80662fd355d41f477b4d28a612f49 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/beckyImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/beckyImportMsgs.properties
@@ -14,6 +14,6 @@ BeckyImportDescription=Εισαγωγή τοπικών email από το Becky!
 # Success Message
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
 # The variable %S will contain the name of the Mailbox
-BeckyImportMailboxSuccess=Εισήχθησαν επιτυχώς τα τοπικά μηνύματα από το %S.
+BeckyImportMailboxSuccess=Έγινε επιτυχής εισαγωγή των τοπικών μηνυμάτων από το «%S».
 
-BeckyImportAddressSuccess=Έγινε εισαγωγή ευρετηρίου διευθύνσεων
+BeckyImportAddressSuccess=Έγινε εισαγωγή ευρετηρίου
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.dtd
index 7bdfc1f087c1b53e8e9f387107f7287ea4b6285c..596dc8edcf777b88af583d607f44dc371eed6c8c 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.dtd
@@ -2,7 +2,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/. -->
 
-<!ENTITY converterDialog.title "Μετατροπέας Τύπου Αποθήκευσης Μηνύματος">
+<!ENTITY converterDialog.title "Μετατροπέας τύπου αποθήκευσης μηνύματος">
 <!ENTITY converterDialog.continueButton "Συνέχεια">
 <!ENTITY converterDialog.cancelButton "Ακύρωση">
 <!ENTITY converterDialog.finishButton "Τέλος">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.properties
index da0383433431e208457304c2c4c6d166b349c5cc..f5ec11c7277f77168a844919ac8f4e73e3f53ce9 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/converterDialog.properties
@@ -11,7 +11,7 @@ converterDialog.warning=Τα μηνύματα στο λογαριασμό %1$S 
 # LOCALIZATION NOTE (converterDialog.message):
 # %1$S will be replaced by the name of the account which is being converted.
 # %2$S will be replaced by the format into which the account will be converted.
-converterDialog.message=Γίνεται μετατροπή του λογαριασμού %1$S σε %2$S…
+converterDialog.message=Μετατροπή του λογαριασμού «%1$S» σε %2$S…
 
 # LOCALIZATION NOTE (converterDialog.warningForDeferredAccount):
 # %1$S will be replaced by the name of the deferred account for which migration is initiated by the user.
@@ -38,4 +38,4 @@ converterDialog.messageForDeferredAccount=Γίνεται μετατροπή τω
 
 # LOCALIZATION NOTE (converterDialog.percentDone):
 # %1$S will be replaced by the percentage of conversion that is complete.
-converterDialog.percentDone=%1$S %% έτοιμο
+converterDialog.percentDone=Ολοκλήρωση κατά %1$S%%
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.dtd
index 6c623768f61183b207b5f251d09dafb410261878..1bf75554963370cefc7a0e4b1e5721de4ec8169d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.dtd
@@ -15,4 +15,4 @@
 <!ENTITY showTitlebar2.label      "Γραμμή τίτλου">
 <!ENTITY extraDragSpace2.label    "Χώρος μεταφοράς">
 <!ENTITY saveChanges.label        "Τέλος">
-<!ENTITY undoChanges.label        "Ακύρωση Αλλαγών">
+<!ENTITY undoChanges.label        "Αναίρεση αλλαγών">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.properties
index 66db1d5f48d9ff82530b79ced0115923c0285d55..99cc92fefd2b6668c4469f16e056863647afbd64 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/customizeToolbar.properties
@@ -4,7 +4,7 @@
 
 enterToolbarTitle=Νέα γραμμή εργαλείων
 enterToolbarName=Εισαγάγετε ένα όνομα για τη γραμμή εργαλείων:
-enterToolbarDup=Υπάρχει ήδη μια γραμμή εργαλείων με το όνομα “%S”. Παρακαλώ εισαγάγετε ένα διαφορετικό όνομα.
+enterToolbarDup=Υπάρχει ήδη μια γραμμή εργαλείων με το όνομα «%S». Παρακαλώ εισαγάγετε ένα διαφορετικό όνομα.
 enterToolbarBlank=Πρέπει να εισαγάγετε ένα όνομα για τη δημιουργία της νέας γραμμής εργαλείων.
 separatorTitle=Διαχωριστικό
 springTitle=Ευέλικτο διάστημα
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/editContactOverlay.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/editContactOverlay.dtd
index b6e996fccfeed8870628c7cfeba2c448cdd05865..b33512cf26cbd2ef06edebe85de9db0b1b14a2a7 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/editContactOverlay.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/editContactOverlay.dtd
@@ -11,8 +11,8 @@
 <!ENTITY editContactEmail.label "Email:">
 <!ENTITY editContactEmail.accesskey "E">
 
-<!ENTITY editContactAddressBook.label "Ευρετήριο διευθύνσεων:">
-<!ENTITY editContactAddressBook.accesskey "θ">
+<!ENTITY editContactAddressBook.label "Ευρετήριο:">
+<!ENTITY editContactAddressBook.accesskey "Ï…">
 
 <!ENTITY editContactPanelDone.label "Τέλος">
 <!ENTITY editContactPanelDone.accesskey "Ο">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/fieldMapImport.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/fieldMapImport.dtd
index 580dbb848d12e94a551e75bf94b004947047399e..b720f49d3ca8fb8bd4f51e7de7d7920e6b74dfe5 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/fieldMapImport.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/fieldMapImport.dtd
@@ -10,7 +10,7 @@
 <!ENTITY fieldMapImport.next.accesskey "ν">
 <!ENTITY fieldMapImport.previous.label "Προηγούμενο">
 <!ENTITY fieldMapImport.previous.accesskey "Π">
-<!ENTITY fieldMapImport.text 'Με τα κουμπιά "Μετακίνηση πάνω" και "Μετακίνηση κάτω", αντιστοιχίστε τα πεδία του ευρετηρίου διευθύνσεων στα αριστερά με τα σωστά δεδομένα προς εισαγωγή στα δεξιά. Καταργήστε την επιλογή των στοιχείων που δεν θέλετε να εισαχθούν.'>
+<!ENTITY fieldMapImport.text "Με τα κουμπιά «Μετακίνηση πάνω» και «Μετακίνηση κάτω», αντιστοιχίστε τα πεδία του ευρετηρίου διευθύνσεων στα αριστερά με τα σωστά δεδομένα προς εισαγωγή στα δεξιά. Καταργήστε την επιλογή των στοιχείων που δεν θέλετε να εισαχθούν.">
 <!ENTITY fieldMapImport.up.label "Μετακίνηση πάνω">
 <!ENTITY fieldMapImport.up.accesskey "Ï€">
 <!ENTITY fieldMapImport.down.label "Μετακίνηση κάτω">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/filter.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/filter.properties
index d3eda9c3f76e954ee0386b1dabae688b8a395e55..8931eab9e80ceb13d45171b0448e58838b1ff0be 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/filter.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/filter.properties
@@ -28,7 +28,7 @@ cannotEnableIncompatFilter=To φίλτρο ίσως να δημιουργήθη
 dontWarnAboutDeleteCheckbox=Να μην ερωτηθώ ξανά
 # LOCALIZATION NOTE(copyToNewFilterName)
 # %S=the name of the filter that is being copied
-copyToNewFilterName=Αντίγραφο του %S
+copyToNewFilterName=Αντίγραφο του «%S»
 # LOCALIZATION NOTE(contextPeriodic.label): Semi-colon list of plural forms.
 # #1=the number of minutes
 contextPeriodic.label=Περιοδικά, κάθε λεπτό;Περιοδικά, κάθε #1 λεπτά
@@ -47,7 +47,7 @@ searchTermsInvalidTitle=Μη έγκυροι όροι αναζήτησης
 # LOCALIZATION NOTE(searchTermsInvalidRule)
 # %1$S=search attribute name from the invalid rule
 # %2$S=search operator from the bad rule
-searchTermsInvalidRule=Δεν είναι δυνατή η αποθήκευση του φίλτρου επειδή οι όροι αναζήτησης "%1$S %2$S" δεν είναι έγκυροι στο παρόν πλαίσιο.
+searchTermsInvalidRule=Δεν είναι δυνατή η αποθήκευση του φίλτρου επειδή οι όροι αναζήτησης «%1$S %2$S» δεν είναι έγκυροι στο παρόν πλαίσιο.
 # LOCALIZATION NOTE(filterActionOrderExplanation)
 # Keep the \n\n that mean 2 linebreaks.
 filterActionOrderExplanation=Όταν ένα μήνυμα ταιριάξει με το φίλτρο, οι ενέργειες θα εκτελεστούν με την ακόλουθη σειρά:\n\n
@@ -79,10 +79,10 @@ logCopyStr=αντιγράφηκε message id=%1$S σε %2$S
 filterLogLine=[%1$S] %2$S
 # LOCALIZATION NOTE(filterMessage):
 # %1$S=filter name, %1$S=log message
-filterMessage=Μήνυμα από το φίλτρο "%1$S": %2$S
+filterMessage=Μήνυμα από το φίλτρο «%1$S»: %2$S
 # LOCALIZATION NOTE(filterLogDetectStr)
 # %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
-filterLogDetectStr=Εφαρμόσθηκε φίλτρο "%1$S" στο μήνυμα από %2$S - %3$S στις %4$S
+filterLogDetectStr=Εφαρμόστηκε το φίλτρο «%1$S» στο μήνυμα από τον/την %2$S - %3$S στις %4$S
 filterMissingCustomAction=Λείπει προσαρμοσμένη ενέργεια
 filterAction2=η προτεραιότητα άλλαξε
 filterAction3=διαγράφηκε
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/folderProps.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/folderProps.dtd
index 328f036d2654e21dfe40c28b2c9a3468b906bb3e..5d66b3fb1883b8531370adf0a88366b25fe495a3 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/folderProps.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/folderProps.dtd
@@ -21,7 +21,7 @@
 <!ENTITY retentionUseAccount.accesskey "ρ">
 <!ENTITY daysOld.label "ημέρες παλιά">
 <!ENTITY message.label "μηνύματα">
-<!ENTITY retentionCleanup.label "Για να ανακτήσετε χώρο στο δίσκο, μπορείτε να διαγράψετε τα παλιά μηνύματα">
+<!ENTITY retentionCleanup.label "Για να ανακτήσετε χώρο στον δίσκο, μπορείτε να διαγράψετε οριστικά τα παλιά μηνύματα.">
 <!ENTITY retentionCleanupImap.label "Για εξοικονόμηση αποθηκευτικού χώρου, μπορείτε να διαγράψετε μόνιμα τα παλιά σας μηνύματα στους τοπικούς σας φακέλους και στον απομακρυσμένο διακομιστή.">
 <!ENTITY retentionCleanupPop.label "Για εξοικονόμηση αποθηκευτικού χώρου, μπορείτε να διαγράψετε μόνιμα τα παλιά σας μηνύματα μαζί με τα αρχικά μηνύματα στον απομακρυσμένο διακομιστή.">
 <!ENTITY retentionDeleteMsg.label "Διαγραφή μηνυμάτων παλαιότερων από">
@@ -59,7 +59,7 @@
 <!ENTITY privileges.button.label                 "Προνόμια...">
 <!ENTITY privileges.button.accesskey             "ν">
 <!ENTITY permissionsDesc.label                   "Έχετε τα ακόλουθα δικαιώματα:">
-<!ENTITY folderOtherUsers.label                  "Άλλα άτομα με πρόσβαση σε αυτό το φάκελο:">
+<!ENTITY folderOtherUsers.label                  "Άλλα άτομα με πρόσβαση στον φάκελο:">
 <!ENTITY folderType.label                        "Τύπος φακέλου:">
 
 <!ENTITY folderQuotaTab.label                    "Όριο">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/glodaFacetView.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/glodaFacetView.properties
index ce97d5029408eb5ad40496b4ebe8f8b511551da8..b3a43970bb70efb2b73f7fd6e167d7284e470d5d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/glodaFacetView.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/glodaFacetView.properties
@@ -52,7 +52,7 @@ glodaFacetView.constraints.query.tagged.label=με ετικέτα:
 # This string supports pluralization.  See
 #  https://developer.mozilla.org/en/Localization_and_Plurals for details on
 #  how this stuff works.
-glodaFacetView.facets.mode.top.listAllLabel=Λίστα όλων #1;Λίστα όλων #1
+glodaFacetView.facets.mode.top.listAllLabel=Παράθεση όλων #1;Παράθεση όλων #1
 
 # LOCALIZATION NOTE (glodaFacetView.facets.included.fallbackLabel): The label to
 #  use for groups in a facet that have been explicitly included by the user if
@@ -168,4 +168,4 @@ glodaFacetView.results.message.recipientSeparator=,\u0020
 # pluralized; see https://developer.mozilla.org/en/Localization_and_Plurals
 # for details on how to do that. Note that in English, we use the "serial
 # comma", but other languages may not need a leading separator there.
-glodaFacetView.results.message.andOthers=, και #1 ακόμα;, και #1 ακόμα
+glodaFacetView.results.message.andOthers= και #1 ακόμα; και #1 ακόμα
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/imAccountWizard.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/imAccountWizard.dtd
index bb3b13fc0b5b118fd1ac1fc7cc1e535046ce267b..a1d9dbaee070334c2bb2e1649f7d0ba9c187dffc 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/imAccountWizard.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/imAccountWizard.dtd
@@ -12,7 +12,7 @@
 <!ENTITY accountUsernameTitle.label   "Όνομα χρήστη">
 <!ENTITY accountUsernameDuplicate.label "Αυτός ο λογαριασμός έχει ήδη ρυθμιστεί!">
 
-<!ENTITY accountPasswordTitle.label   "Κωδικός">
+<!ENTITY accountPasswordTitle.label   "Κωδικός πρόσβασης">
 <!ENTITY accountPasswordInfo.label    "Παρακαλώ εισαγάγετε τον κωδικό πρόσβασής σας στο παρακάτω πλαίσιο.">
 <!ENTITY accountPasswordField.label   "Κωδικός πρόσβασης:">
 <!ENTITY accountPasswordManager.label "Ο καταχωρημένος κωδικός πρόσβασης θα αποθηκευτεί στη Διαχείριση κωδικών πρόσβασης. Αφήστε αυτό το πλαίσιο κενό αν θέλετε να εισάγετε τον κωδικό πρόσβασης σας κάθε φορά που θα συνδέεστε σε αυτόν τον λογαριασμό.">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/imapMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/imapMsgs.properties
index fc2745de6d5135afdd22c2d08f7bce9ad2d86fbf..9a19949ba1332cd959f223f5f237068b2109e586 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/imapMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/imapMsgs.properties
@@ -8,10 +8,10 @@
 
 #LOCALIZATION NOTE(imapAlertDialogTile): Do not translate the word "%S"
 # below. Place the word %S where the account name should appear.
-imapAlertDialogTitle=Ειδοποίηση για τον λογαριασμό %S
+imapAlertDialogTitle=Ειδοποίηση για τον λογαριασμό «%S»
 
 # Status - opening folder
-imapStatusSelectingMailbox=Άνοιγμα φακέλου %S…
+imapStatusSelectingMailbox=Άνοιγμα του φακέλου «%S»…
 
 # Status - create folder
 imapStatusCreatingMailbox=Δημιουργία φακέλου…
@@ -20,13 +20,13 @@ imapStatusCreatingMailbox=Δημιουργία φακέλου…
 # LOCALIZATION NOTE (imapStatusDeletingMailbox): The "%S" below should not be translated.
 # Instead, insert "%S" in your translation where you wish to display the name
 # of the folder being deleted.
-imapStatusDeletingMailbox=Διαγραφή φακέλου %S…
+imapStatusDeletingMailbox=Διαγραφή του φακέλου «%S»…
 
 # Status - renaming mailbox
 # LOCALIZATION NOTE (imapStatusRenamingMailbox): The "%S" below should not be translated.
 # Instead, insert "%S" in your translation where you wish to display the name
 # of the folder being renamed.
-imapStatusRenamingMailbox=Μετονομασία φακέλου %S…
+imapStatusRenamingMailbox=Μετονομασία φακέλου «%S»…
 
 # Status - looking for mailboxes
 imapStatusLookingForMailbox=Αναζήτηση φακέλων…
@@ -35,13 +35,13 @@ imapStatusLookingForMailbox=Αναζήτηση φακέλων…
 # LOCALIZATION NOTE (imapStatusSubscribeToMailbox): The "%S" below should not be translated.
 # Instead, insert "%S" in your translation where you wish to display the name
 # of the folder being subscribed to.
-imapStatusSubscribeToMailbox=Συνδρομή στο φάκελο "%S"…
+imapStatusSubscribeToMailbox=Συνδρομή στον φάκελο «%S»…
 
 # Status - unsubscribing from mailbox
 # LOCALIZATION NOTE (imapStatusUnsubscribeMailbox): The "%S" below should not be translated.
 # Instead, insert "%S" in your translation where you wish to display the name
 # of the folder being unsubscribed from.
-imapStatusUnsubscribeMailbox=Κατάργηση συνδρομής στο φάκελο "%S"…
+imapStatusUnsubscribeMailbox=Κατάργηση συνδρομής στον φάκελο «%S»…
 
 # Status - searching imap folder
 imapStatusSearchMailbox=Αναζήτηση φακέλου…
@@ -59,10 +59,10 @@ imapStatusLoggingOut=Αποσύνδεση…
 imapStatusCheckCompat=Έλεγχος δυνατοτήτων διακομιστή email…
 
 # Status - logging on
-imapStatusSendingLogin=Αποστολή των πληροφοριών σύνδεσης…
+imapStatusSendingLogin=Αποστολή πληροφοριών σύνδεσης…
 
 # Status - auth logon
-imapStatusSendingAuthLogin=Αποστολή των πληροφοριών σύνδεσης…
+imapStatusSendingAuthLogin=Αποστολή πληροφοριών σύνδεσης…
 
 imapDownloadingMessage=Λήψη μηνύματος…
 
@@ -81,7 +81,7 @@ imapEmptyMimePart=Αυτό το τμήμα του κυρίως κειμένου
 # Place the word %3$S in your translation where the name of the folder being processed should appear.
 # Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
 # Example: "Joe's Account: Downloading message header 100 of 1000 in Drafts…"
-imapReceivingMessageHeaders3=Λήψη κεφαλίδας μηνύματος %1$S από %2$S στον φάκελο %3$S…
+imapReceivingMessageHeaders3=Λήψη κεφαλίδας μηνύματος %1$S από %2$S στο «%3$S»…
 
 # LOCALIZATION NOTE (imapReceivingMessageFlags3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
 # Place the word %1$S in your translation where the number of the flag being downloaded should appear.
@@ -89,7 +89,7 @@ imapReceivingMessageHeaders3=Λήψη κεφαλίδας μηνύματος %1$S
 # Place the word %3$S in your translation where the name of the folder being processed should appear.
 # Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
 # Example: "Jim's Account: Downloading message flag 100 of 1000 in INBOX…"
-imapReceivingMessageFlags3=Λήψη σημαίας μηνύματος %1$S από %2$S στο φάκελο %3$S…
+imapReceivingMessageFlags3=Λήψη σημαίας μηνύματος %1$S από %2$S στο «%3$S»…
 
 imapDeletingMessages=Διαγραφή μηνυμάτων…
 
@@ -97,19 +97,19 @@ imapDeletingMessage=Διαγραφή μηνύματος…
 
 # LOCALIZATION NOTE (imapMovingMessages): Do not translate the word "%S" below.
 # Place the word %S in your translation where the name of the folder should appear.
-imapMovingMessages=Μετακίνηση μηνυμάτων στο %S…
+imapMovingMessages=Μετακίνηση μηνυμάτων στο «%S»…
 
 # LOCALIZATION NOTE (imapMovingMessage): Do not translate the word "%S" below.
 # Place the word %S in your translation where the name of the folder should appear.
-imapMovingMessage=Μετακίνηση μηνύματος στο %S…
+imapMovingMessage=Μετακίνηση μηνύματος στο «%S»…
 
 # LOCALIZATION NOTE (imapCopyingMessages): Do not translate the word "%S" below.
 # Place the word %S in your translation where the name of the folder should appear.
-imapCopyingMessages=Αντιγραφή μηνυμάτων στο %S…
+imapCopyingMessages=Αντιγραφή μηνυμάτων στο «%S»…
 
 # LOCALIZATION NOTE (imapCopyingMessage): Do not translate the word "%S" below.
 # Place the word %S in your translation where the name of the folder should appear.
-imapCopyingMessage=Αντιγραφή μηνύματος στο %S…
+imapCopyingMessage=Αντιγραφή μηνύματος στο «%S»…
 
 # LOCALIZATION NOTE (imapFolderReceivingMessageOf3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
 # Place the word %1$S in your translation where the number of the message being downloaded should appear.
@@ -117,16 +117,16 @@ imapCopyingMessage=Αντιγραφή μηνύματος στο %S…
 # Place the word %3$S in your translation where the name of the folder being processed should appear.
 # Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
 # Example: "Juan's Account: Downloading message 100 of 1000 in Sent…"
-imapFolderReceivingMessageOf3=Λήψη μηνύματος %1$S από %2$S στο φάκελο %3$S…
+imapFolderReceivingMessageOf3=Λήψη μηνύματος %1$S από %2$S στο «%3$S»…
 
 # LOCALIZATION NOTE (imapDiscoveringMailbox): Do not translate the word "%S" below.
 # Place the word %S in your translation where the name of the folder should appear.
-imapDiscoveringMailbox=Βρέθηκε φάκελος %S
+imapDiscoveringMailbox=Βρέθηκε ο φάκελος: %S
 
 # LOCALIZATION NOTE (imapEnterServerPasswordPrompt): Do not translate the words %1$S and %2$S below.
 # Place the word %1$S in your translation where the username should appear.
 # Place the word %2$S in your translation where the servername should appear.
-imapEnterServerPasswordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το %1$S στο %2$S:
+imapEnterServerPasswordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το «%1$S» στο %2$S:
 
 # LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
 imapServerNotImap4=Ο διακομιστής αλληλογραφίας %S δεν είναι διακομιστής αλληλογραφίας IMAP4.
@@ -138,7 +138,7 @@ imapDone=
 # word %1$S. Place the word %1$S where the user name should appear.
 imapEnterPasswordPromptTitleWithUsername=Εισαγάγετε τον κωδικό πρόσβασής σας για το %1$S
 
-imapUnknownHostError=Αποτυχία σύνδεσης με διακομιστή  %S
+imapUnknownHostError=Αποτυχία σύνδεσης με τον διακομιστή «%S».
 imapOAuth2Error=Σφάλμα ταυτοποίησης κατά τη σύνδεση με τον διακομιστή %S.
 
 imapConnectionRefusedError=Δεν ήταν δυνατή η σύνδεση με τον διακομιστή  %S. Υπήρξε άρνηση σύνδεσης. 
@@ -152,7 +152,7 @@ imapNoNewMessages=Δεν υπάρχουν νέα μηνύματα στο δια
 
 imapDefaultAccountName=Αλληλογραφία για %S
 
-imapSpecialChar2=Ο χαρακτήρας %S είναι δεσμευμένος σε αυτό το διακομιστή imap. Παρακαλώ επιλέξτε κάποιο διαφορετικό. 
+imapSpecialChar2=Ο χαρακτήρας «%S» είναι δεσμευμένος σε αυτό τον διακομιστή IMAP. Παρακαλώ επιλέξτε άλλο όνομα.
 
 imapPersonalSharedFolderTypeName=Προσωπικός φάκελλος
 
@@ -160,13 +160,13 @@ imapPublicFolderTypeName=Δημόσιος φάκελος
 
 imapOtherUsersFolderTypeName=Φάκελος άλλου χρήστη
 
-imapPersonalFolderTypeDescription=Αυτός είναι ένας προσωπικός φάκελος αλληλογραφίας. Δεν είναι κοινόχρηστος.
+imapPersonalFolderTypeDescription=Αυτός είναι προσωπικός φάκελος αλληλογραφίας. Δεν είναι κοινόχρηστος.
 
-imapPersonalSharedFolderTypeDescription=Αυτός είναι ένας προσωπικός φάκελος αλληλογραφίας. Έχει γίνει κοινόχρηστος..
+imapPersonalSharedFolderTypeDescription=Αυτός είναι προσωπικός φάκελος αλληλογραφίας. Έχει γίνει κοινόχρηστος.
 
 imapPublicFolderTypeDescription=Αυτός είναι ένας δημόσιος φάκελος.
 
-imapOtherUsersFolderTypeDescription=Αυτός είναι ένας κοινόχρηστος φάκελος αλληλογραφίας με το χρήστη '%S'."
+imapOtherUsersFolderTypeDescription=Αυτός είναι ένας κοινόχρηστος φάκελος αλληλογραφίας με τον χρήστη «%S».
 
 imapAclFullRights=Πλήρης έλεγχος.
 
@@ -222,15 +222,15 @@ imapOutOfMemory=Ανεπάρκεια μνήμης για την εφαρμογή
 # Place the word %3$S in your translation where the name of the destination folder should appear.
 # Place the word %1$S where the currently copying message should appear.
 # Place the word %2$S where the total number of messages should appear.
-imapCopyingMessageOf2=Αντιγραφή μηνύματος %1$S από %2$S σε %3$S
+imapCopyingMessageOf2=Αντιγραφή μηνύματος %1$S από %2$S στο «%3$S»…
 
 # LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
 # "%S" is the the name of the folder.
-imapMoveFolderToTrash=Θέλετε σίγουρα να διαγράψετε τον φάκελο '%S';
+imapMoveFolderToTrash=Θέλετε σίγουρα να διαγράψετε τον φάκελο «%S»;
 
 # LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
 # "%S" is the the name of the folder.
-imapDeleteNoTrash=Η διαγραφή αυτού του φακέλου δεν είναι αναστρέψιμη και θα διαγράψει όλα τα περιεχόμενα μηνύματα και τους υποφακέλους του. Θέλετε σίγουρα να διαγράψετε τον φάκελο '%S';
+imapDeleteNoTrash=Η διαγραφή αυτού του φακέλου δεν είναι αναστρέψιμη και θα διαγράψει όλα τα περιεχόμενα μηνύματα και τους υποφακέλους του. Θέλετε σίγουρα να διαγράψετε τον φάκελο «%S»;
 
 imapDeleteFolderDialogTitle=Διαγραφή φακέλου
 
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/importDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/importDialog.dtd
index bbda5870fd2b75589888cee013886ad94921d1e6..4dfbedae5a65373bb0c6444edd2aa4fbed5bf908 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/importDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/importDialog.dtd
@@ -34,7 +34,7 @@ LOCALIZATION NOTE : Do not translate any of the occurrences of the word
 <!ENTITY importDescription2.label "Όταν ολοκληρωθεί η εισαγωγή, θα είναι δυνατή η πρόσβαση μέσω του &brandShortName;.">
 
 <!ENTITY selectDescription.label  "Επιλέξτε το πρόγραμμα από το οποίο επιθυμείτε να γίνει η εισαγωγή:">
-<!ENTITY selectDescriptionB.label "Επιλέξτε ένα υπάρχοντα λογαριασμό ή δημιουργήστε ένα νέο:">
+<!ENTITY selectDescriptionB.label "Παρακαλώ επιλέξτε έναν υπάρχοντα λογαριασμό ή δημιουργήστε έναν νέο:">
 <!ENTITY selectDescription.accesskey "ξ">
 <!ENTITY acctName.label           "Όνομα:">
 <!ENTITY acctName.accesskey       "ν">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/importMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/importMsgs.properties
index a43c8691ed5574eeb2098ccb27600b4c8d04ff9d..cc4a306646e0ff2a6c81874c62d25acb617fd810 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/importMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/importMsgs.properties
@@ -24,46 +24,46 @@
 ## @name IMPORT_ERROR_GETABOOK
 ## @loc None
 # LOCALIZATION NOTE (Error 2003): Do not translate the word "%S" below.
-2003=Σφάλμα εισαγωγής %S, δεν είναι δυνατή η δημιουργία ευρετηρίου διευθύνσεων
+2003=Σφάλμα εισαγωγής του «%S»: δεν είναι δυνατή η δημιουργία ευρετηρίου.
 
 # Success message when no mailboxes are found to import
 ## @name IMPORT_NO_MAILBOXES
 ## @loc None
-2004=Δε βρέθηκαν γραμματοκιβώτια προς εισαγωγή
+2004=Δεν βρέθηκαν γραμματοκιβώτια προς εισαγωγή
 
 # Error: Mailbox import not initialized
 ## @name IMPORT_ERROR_MB_NOTINITIALIZED
 ## @loc None
-2005=Λανθασμένη παράμετρος στην εισαγωγή γραμματοκιβωτίων
+2005=Δεν ήταν δυνατή η εισαγωγή γραμματοκιβωτίων, σφάλμα αρχικοποίησης
 
 # Error: Unable to create the import thread
 ## @name IMPORT_ERROR_MB_NOTHREAD
 ## @loc None
-2006=Δεν είναι δυνατή η εισαγωγή γραμματοκιβωτίων, αδυναμία δημιουργίας νήματος εισαγωγής
+2006=Δεν ήταν δυνατή η εισαγωγή γραμματοκιβωτίων, δεν είναι δυνατή η δημιουργία νήματος εισαγωγής
 
 # Error: Unable to create the proxy object for importing mailboxes
 ## @name IMPORT_ERROR_MB_NOPROXY
 ## @loc None
-2007=Αδυναμία εισαγωγής γραμματοκιβωτίων, δεν είναι δυνατή η δημιουργία αντικειμένου μεσολάβησης για τα γραμματοκιβώτια προορισμού
+2007=Δεν ήταν δυνατή η εισαγωγή γραμματοκιβωτίων, δεν είναι δυνατή η δημιουργία αντικειμένου μεσολάβησης για τα γραμματοκιβώτια προορισμού
 
 # Error: Error creating destination mailboxes
 ## @name IMPORT_ERROR_MB_FINDCHILD
 ## @loc None
 # LOCALIZATION NOTE (Error 2008): Do not translate the word "%S" below.
 # Place %S in your translation where the name of the mailbox should appear.
-2008=Σφάλμα κατά τη δημιουργία γραμματοκιβωτίων προορισμού, δεν είναι δυνατή η εύρεση γραμματοκιβωτίου %S
+2008=Σφάλμα δημιουργίας γραμματοκιβωτίων προορισμού, δεν είναι δυνατή η εύρεση του γραμματοκιβωτίου «%S»
 
 # Error: Error creating destination mailboxes
 ## @name IMPORT_ERROR_MB_CREATE
 ## @loc None
 # LOCALIZATION NOTE (Error 2009): Do not translate the word "%S" below.
 # Place %S in your translation where the name of the mailbox should appear.
-2009=Σφάλμα εισαγωγής αλληλογραφίας %S , αδυναμία δημιουργίας γραμματοκιβωτίου προορισμού
+2009=Σφάλμα εισαγωγής του γραμματοκιβωτίου «%S», δεν ήταν δυνατή η δημιουργία γραμματοκιβωτίου προορισμού
 
 # Error: No destination folder to import mailboxes
 ## @name IMPORT_ERROR_MB_NODESTFOLDER
 ## @loc None
-2010=Δεν είναι δυνατή η δημιουργία φακέλου για την εισαγωγή αλληλογραφίας
+2010=Δεν ήταν δυνατή η δημιουργία φακέλου για την εισαγωγή αλληλογραφίας
 
 # Description: Address book field name
 ## @name IMPORT_FIELD_DESC_START
@@ -248,7 +248,7 @@
 # Description: Address book field name
 ## @name IMPORT_FIELD_DESC_END
 ## @loc None
-2136=Όνομα οθόνης
+2136=Εμφανιζόμενο όνομα
 
 #Error strings
 ImportAlreadyInProgress=Μια διαδικασία εισαγωγής είναι σε εξέλιξη. Προσπαθήστε ξανά όταν η τρέχουσα εισαγωγή έχει ολοκληρωθεί.
@@ -258,14 +258,14 @@ ImportSettingsBadModule=Δεν είναι δυνατή η φόρτωση της
 ImportSettingsNotFound=Δεν εντοπίστηκαν ρυθμίσεις για εισαγωγή. Βεβαιωθείτε αν η εφαρμογή  έχει εγκατασταθεί σωστά.
 ImportSettingsFailed=Σφάλμα εισαγωγής ρυθμίσεων. Μπορεί  κάποιες ή και όλες οι ρυθμίσεις να μην εισαχθούν.
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
-ImportSettingsSuccess=Έγινε εισαγωγή ρυθμίσεων από %S
+ImportSettingsSuccess=Έγινε εισαγωγή ρυθμίσεων από το %S
 
 #Error string for mail import
 ImportMailBadModule=Δεν είναι δυνατή η φόρτωση της λειτουργικής μονάδας εισαγωγής email
 ImportMailNotFound=Δεν εντοπίστηκε αλληλογραφία για εισαγωγή. Βεβαιωθείτε αν η εφαρμογή αλληλογραφίας έχει εγκατασταθεί σωστά.
 ImportEmptyAddressBook=Αδυναμία εισαγωγής κενού ευρετηρίου διευθύνσεων %S.
 # LOCALIZATION NOTE: Do not translate the word "%S" below.
-ImportMailFailed=Σφάλμα κατά την εισαγωγή αλληλογραφίας από %S
+ImportMailFailed=Προέκυψε σφάλμα κατά την εισαγωγή αλληλογραφίας από το %S
 # LOCALIZATION NOTE: Do not translate the word "%S" below.
 ImportMailSuccess=Έγινε επιτυχής εισαγωγή αλληλογραφίας από το %S
 
@@ -273,9 +273,9 @@ ImportMailSuccess=Έγινε επιτυχής εισαγωγή αλληλογρ
 ImportAddressBadModule=Δεν είναι δυνατή η φόρτωση της λειτουργικής μονάδας εισαγωγής ευρετηρίων.
 ImportAddressNotFound=Δεν είναι δυνατή η εύρεση ευρετηρίων διευθύνσεων για εισαγωγή. Ελέγξτε αν η επιλεγμένη εφαρμογή ή τύπος αρχείου έχει εγκατασταθεί σωστά.
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
-ImportAddressFailed=Σφάλμα εισαγωγής διευθύνσεων από %S
+ImportAddressFailed=Προέκυψε σφάλμα κατά την εισαγωγής διευθύνσεων από το %S.
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
-ImportAddressSuccess=Οι διευθύνσεις εισήχθηκαν επιτυχώς από %S
+ImportAddressSuccess=Επιτυχής εισαγωγή διευθύνσεων από το «%S».
 
 # Error string for filters import
 ImportFiltersBadModule=Δεν είναι δυνατή η φόρτωση της λειτουργικής μονάδας εισαγωγής φίλτρων.
@@ -288,9 +288,9 @@ ImportFiltersPartial=Μερική εισαγωγή φίλτρων από %S. Π
 
 #Progress strings
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
-MailProgressMeterText=Μετατροπή γραμματοκιβωτίων από %S
+MailProgressMeterText=Μετατροπή γραμματοκιβωτίων από το %S
 # LOCALIZATION NOTE : Do not translate the word "%S" below.
-AddrProgressMeterText=Μετατροπή ευρετηρίων διευθύνσεων από %S
+AddrProgressMeterText=Μετατροπή ευρετηρίων από το %S
 
 #Import file dialog strings
 ImportSelectSettings=Επιλογή αρχείου ρυθμίσεων
@@ -301,4 +301,4 @@ ImportSelectAddrFile=Επιλογή αρχείου ευρετηρίου διευ
 # Folder Names for imported Mail
 DefaultFolderName=Εισηγμένη αλληλογραφία
 # LOCALIZATION NOTE: Do not translate the word "%S" below.
-ImportModuleFolderName=Εισαγωγή %S 
+ImportModuleFolderName=Εισαγωγή «%S»
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/localMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/localMsgs.properties
index 5d5ce29731924fd300fadd18db0e404b7d3596be..03f7579acf29c8e8c0570c8771e488ceddf6144b 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/localMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/localMsgs.properties
@@ -8,7 +8,7 @@
 
 # LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
 # below. Place the word %S where the account name should appear.
-pop3ErrorDialogTitle=Σφάλμα με τον λογαριασμό %S
+pop3ErrorDialogTitle=Σφάλμα με τον λογαριασμό «%S»
 
 # LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
 # word %1$S. Place the word %1$S where the user name should appear.
@@ -17,12 +17,12 @@ pop3EnterPasswordPromptTitleWithUsername=Εισαγάγετε τον κωδικ
 # LOCALIZATION NOTE(pop3EnterPasswordPrompt): Do not translate the words "%1$S"
 # and "%2$S" below. Place the word %1$S where the user name should appear, and
 # %2$S where the host name should appear.
-pop3EnterPasswordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το %1$S στο %2$S:
+pop3EnterPasswordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το «%1$S» στο %2$S:
 
 # LOCALIZATION NOTE(pop3PreviouslyEnteredPasswordIsInvalidPrompt): Do not
 # translate the words "%1$S" and "%2$S" below. Place the word %1$S where the
 # user name should appear, and %2$S where the host name should appear.
-pop3PreviouslyEnteredPasswordIsInvalidPrompt=Παρακαλώ εισαγάγετε έναν νέο κωδικό πρόσβασης για τον χρήστη %1$S στο %2$S:
+pop3PreviouslyEnteredPasswordIsInvalidPrompt=Παρακαλώ εισαγάγετε έναν νέο κωδικό πρόσβασης για το «%1$S» στο %2$S:
 
 # Status - Downloading message n of m
 # LOCALIZATION NOTE (receivingMessages): Do not translate %1$S or %2$S in the following lines.
@@ -45,7 +45,7 @@ receivedMsgs=Ελήφθησαν %1$S από %2$S μηνύματα
 # Status - parsing folder
 #LOCALIZATION NOTE (buildingSummary): Do not translate %S in the following line.
 # Place the word %S where the name of the mailbox should appear
-buildingSummary=Δημιουργία αρχείου περίληψης για %S…
+buildingSummary=Δημιουργία αρχείου περίληψης για το «%S»…
 
 # Status - parsing folder
 localStatusDocumentDone=Τέλος
@@ -60,10 +60,10 @@ pop3UsernameFailure=Σφάλμα κατά την αποστολή του ονό
 # Status - password failed
 #LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
 # Place the word %1$S where the user name should appear.
-pop3PasswordFailed=Σφάλμα κατά την αποστολή του κωδικού πρόσβασης του χρήστη %1$S.
+pop3PasswordFailed=Η αποστολή του κωδικού πρόσβασης του χρήστη «%1$S» απέτυχε.
 
 # Status - write error occurred
-pop3MessageWriteError=Το πρόγραμμα δε μπορεί να αποθηκεύσει το μήνυμα στο γραμματοκιβώτιο. Βεβαιωθείτε ότι έχετε δικαίωμα πρόσβασης στο σύστημα αρχείων και αρκετό χώρο στο δίσκο για την αντιγραφή.
+pop3MessageWriteError=Δεν ήταν δυνατή η εγγραφή του email στο γραμματοκιβώτιο. Βεβαιωθείτε ότι έχετε το δικαίωμα εγγραφής στο σύστημα αρχείων και ότι υπάρχει επαρκής χώρος στον δίσκο για την αντιγραφή του γραμματοκιβωτίου.
 
 # Status - retr failure from the server
 pop3RetrFailure=Η εντολή RETR απέτυχε. Σφάλμα κατά τη λήψη μηνύματος.
@@ -97,7 +97,7 @@ movingMessagesStatus=Μετακίνηση %S από %S μηνύματα σε %S
 # Status - pop3 server or folder busy
 # LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
 # Place %S where the account name should appear.
-pop3ServerBusy=Ο λογαριασμός %S είναι υπό επεξεργασία. Παρακαλούμε περιμένετε μέχρι να τελειώσει η διαδικασία για να λάβετε μηνύματα.
+pop3ServerBusy=Ο λογαριασμός «%S» είναι υπό επεξεργασία. Παρακαλώ περιμένετε μέχρι να τελειώσει η διαδικασία για να λάβετε μηνύματα.
 
 movemailCantOpenSpoolFile=Αδυναμία ανοίγματος αρχείου mail spool %S.
 
@@ -110,7 +110,7 @@ movemailCantTruncateSpoolFile=Αδυναμία truncate spool file %S.
 movemailSpoolFileNotFound=Αδυναμία εντοπισμού mail spool file.
 
 #LOCALIZATION NOTE (movemailCantParseSpool): %S is file name
-movemailCantParseSpool=Δεν ήταν δυνατή η ανάλυση του αρχείου ουράς %S. Το αρχείο ενδέχεται να είναι κατεστραμμένο ή μη έγκυρο.
+movemailCantParseSpool=Δεν ήταν δυνατή η ανάλυση του αρχείου ουράς «%S». Το αρχείο ενδέχεται να είναι κατεστραμμένο ή μη έγκυρο.
 
 pop3TmpDownloadError=Σφάλμα κατά τη λήψη του ακόλουθου μηνύματος:   \nΑπό: %S\n   Θέμα: %S\n Αυτό το μήνυμα μπορεί να περιέχει ένα ιό ή μπορεί να μη υπάρχει αρκετός ελεύθερος χώρος στο δίσκο. Παράκαμψη αυτού του μηνύματος;
 
@@ -119,20 +119,20 @@ pop3TmpDownloadError=Σφάλμα κατά τη λήψη του ακόλουθο
 # Do not translate "POP3"
 # Do not translate "%S". Place %S in your translation where the name of the server should appear.
 # Do not translate "UIDL"
-pop3ServerDoesNotSupportUidlEtc=Ο διακομιστής αλληλογραφίας POP3 (%S) δεν υποστηρίζει UIDL ή XTND XLST, τα οποία απαιτούνται για τις επιλογές "Διατήρηση στο διακομιστή", "Μέγιστο μέγεθος μηνύματος" ή "Λήψη μόνο κεφαλίδων". Για τη λήψη των email σας, απενεργοποιήστε τις επιλογές αυτές στις ρυθμίσεις διακομιστή στο παράθυρο ρυθμίσεων λογαριασμού.
+pop3ServerDoesNotSupportUidlEtc=Ο διακομιστής αλληλογραφίας POP3 (%S) δεν υποστηρίζει UIDL ή XTND XLST, τα οποία απαιτούνται για τις επιλογές «Διατήρηση στον διακομιστή», «Μέγιστο μέγεθος μηνύματος» ή «Λήψη μόνο κεφαλίδων». Για τη λήψη των email σας, απενεργοποιήστε τις επιλογές αυτές στις ρυθμίσεις διακομιστή στο παράθυρο ρυθμίσεων λογαριασμού.
 
 # Status - the server doesn't support the top command
 # LOCALIZATION NOTE(pop3ServerDoesNotSupportTopCommand): The following sentence should be translated in this way:
 # Do not translate "POP3"
 # Do not translate "%S". Place %S in your translation where the name of the server should appear.
 # Do not translate "TOP"
-pop3ServerDoesNotSupportTopCommand=Ο διακομιστής αλληλογραφίας  POP3 (%S) δεν υποστηρίζει την εντολή TOP. Χωρίς αυτή την εντολή δεν είναι δυνατή η εφαρμογή της προτίμησης  ``Μέγιστο μέγεθος μηνύματος'' ή ``Λήψη μόνο κεφαλίδων''. Αυτή επιλογή απενεργοποιήθηκε και θα γίνεται λήψη όλων των μηνυμάτων ανεξάρτητα από το μέγεθος τους.
+pop3ServerDoesNotSupportTopCommand=Ο διακομιστής αλληλογραφίας POP3 (%S) δεν υποστηρίζει την εντολή TOP. Χωρίς αυτή την εντολή δεν είναι δυνατή η εφαρμογή των προτιμήσεων «Μέγιστο μέγεθος μηνύματος» και «Λήψη μόνο κεφαλίδων». Αυτή η επιλογή απενεργοποιήθηκε και θα γίνει λήψη των μηνυμάτων ανεξάρτητα από το μέγεθος τους.
 
 nsErrorCouldNotConnectViaTls=Αδυναμία δημιουργίας σύνδεσης TLS με το διακομιστή POP3. Ο διακομιστής μπορεί να είναι εκτός λειτουργίας ή να μην έχει ρυθμιστεί σωστά. Παρακαλούμε επαληθεύστε την ορθότητα των ρυθμίσεων του διακομιστή email στο παράθυρο ρυθμίσεων λογαριασμού και δοκιμάστε ξανά.
 
 # LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
 # "%S" is the the name of the folder.
-pop3MoveFolderToTrash=Θέλετε σίγουρα να διαγράψετε τον φάκελο '%S';
+pop3MoveFolderToTrash=Θέλετε σίγουρα να διαγράψετε τον φάκελο «%S»;
 
 pop3DeleteFolderDialogTitle=Διαγραφή φακέλου
 
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/mailviews.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/mailviews.properties
index 3ed3b5a5815022580873f36e5634297ccccb08ad..f1f5bf07271878ec50b751657649b41901107b2e 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/mailviews.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/mailviews.properties
@@ -10,4 +10,4 @@ mailViewPeopleIKnow=Γνωστά άτομα
 mailViewRecentMail=Πρόσφατα email
 mailViewLastFiveDays=Τελευταίες 5 ημέρες
 mailViewNotJunk=Επιθυμητά email
-mailViewHasAttachments=Με συνημμένα
+mailViewHasAttachments=Έχει συνημμένα
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.dtd
index f181ac9c15603fe1e3e73c81fadfe0576d41b83d..37dfd06cdf88527ea6cbc7ea005d3106c32ceb98 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.dtd
@@ -59,7 +59,7 @@
 <!ENTITY getAllNewMsgCmdPopupMenu.accesskey "λ">
 <!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Τον τρέχοντα λογαριασμό">
 <!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "Τ">
-<!ENTITY getNextNMsgCmd2.label "Λήψη νέων μηνυμάτων ειδήσεων">
+<!ENTITY getNextNMsgCmd2.label "Λήψη επόμενων μηνυμάτων συζητήσεων">
 <!ENTITY getNextNMsgCmd2.accesskey "ω">
 <!ENTITY sendUnsentCmd.label "Αποστολή μη απεσταλμένων μηνυμάτων">
 <!ENTITY sendUnsentCmd.accesskey "Ï€">
@@ -202,8 +202,8 @@
 <!ENTITY sortByFromCmd.accesskey "Ï€">
 <!ENTITY sortByRecipientCmd.label "Παραλήπτη">
 <!ENTITY sortByRecipientCmd.accesskey "ρ">
-<!ENTITY sortByCorrespondentCmd.label "Ανταποκριτές">
-<!ENTITY sortByCorrespondentCmd.accesskey "ν">
+<!ENTITY sortByCorrespondentCmd.label "Επιστολογράφοι">
+<!ENTITY sortByCorrespondentCmd.accesskey "Ï€">
 <!ENTITY sortByUnreadCmd.label "Αναγνωσμένα">
 <!ENTITY sortByUnreadCmd.accesskey "γ">
 <!ENTITY sortByOrderReceivedCmd.label "Κατά σειρά παραλαβής">
@@ -593,9 +593,9 @@
 <!ENTITY printButton.tooltip "Εκτύπωση μηνύματος">
 <!ENTITY stopButton.tooltip "Διακοπή της τρέχουσας μεταφοράς">
 <!ENTITY junkButton.tooltip "Επισήμανση επιλεγμένων μηνυμάτων ως ανεπιθύμητων">
-<!ENTITY notJunkButton.tooltip "Επισήμανση επιλεγμένων μηνυμάτων ως μη ανεπιθύμητων">
+<!ENTITY notJunkButton.tooltip "Επισήμανση επιλεγμένων μηνυμάτων ως επιθυμητών">
 <!ENTITY addressBookButton.tooltip "Μετάβαση στο ευρετήριο διευθύνσεων">
-<!ENTITY chatButton.tooltip 'Εμφάνιση καρτέλας "Συνομιλία"'>
+<!ENTITY chatButton.tooltip "Εμφάνιση καρτέλας «Συνομιλία»">
 <!ENTITY tagButton.tooltip "Ετικέτα σε μηνύματα">
 <!ENTITY compactButton.tooltip "Αφαίρεση διαγραμμένων μηνυμάτων από τον επιλεγμένο φάκελο">
 <!ENTITY appmenuButton1.tooltip "Προβολή του μενού του &brandShortName;">
@@ -660,7 +660,7 @@
 <!ENTITY folderContextRemove.accesskey "φ">
 <!ENTITY folderContextCompact.label "Σύμπτυξη">
 <!ENTITY folderContextCompact.accesskey "Σ">
-<!ENTITY folderContextEmptyTrash.label "Άδειασμα του κάδου απορριμμάτων">
+<!ENTITY folderContextEmptyTrash.label "Άδειασμα απορριμμάτων">
 <!ENTITY folderContextEmptyTrash.accesskey "μ">
 <!ENTITY folderContextEmptyJunk.label "Διαγραφή ανεπιθύμητων">
 <!ENTITY folderContextEmptyJunk.accesskey "θ">
@@ -955,19 +955,19 @@
 <!ENTITY preferencesCmdMac.commandkey   ",">
 <!ENTITY preferencesCmdMac.modifiers    "accel">
 <!ENTITY servicesMenuMac.label          "Υπηρεσίες">
-<!ENTITY hideThisAppCmdMac.label        "Απόκρυψη &brandShortName;">
+<!ENTITY hideThisAppCmdMac.label        "Απόκρυψη του &brandShortName;">
 <!ENTITY hideThisAppCmdMac.commandkey   "H">
 <!ENTITY hideThisAppCmdMac.modifiers    "accel">
 <!ENTITY hideOtherAppsCmdMac.label      "Απόκρυψη άλλων">
 <!ENTITY hideOtherAppsCmdMac.commandkey "H">
 <!ENTITY hideOtherAppsCmdMac.modifiers  "accel,alt">
-<!ENTITY showAllAppsCmdMac.label        "Προβολή όλων">
+<!ENTITY showAllAppsCmdMac.label        "Εμφάνιση όλων">
 
 <!-- Mac OS X Dock Icon pop-up menu -->
 <!ENTITY dockOptions.label              "Επιλογές εικονιδίου εφαρμογής…">
 <!ENTITY writeNewMessageDock.label      "Σύνταξη νέου μηνύματος">
-<!ENTITY openAddressBookDock.label      "Άνοιγμα βιβλίου διευθύνσεων">
+<!ENTITY openAddressBookDock.label      "Άνοιγμα ευρετηρίου">
 
 <!-- Content tab Navigation buttons -->
-<!ENTITY browseBackButton.tooltip    "Μετάβαση μια σελίδα πίσω">
-<!ENTITY browseForwardButton.tooltip "Μετάβαση μια σελίδα μπροστά">
+<!ENTITY browseBackButton.tooltip    "Μετάβαση μία σελίδα πίσω">
+<!ENTITY browseForwardButton.tooltip "Μετάβαση μία σελίδα μπροστά">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.properties
index f269c256b8acbeb7a8d6a27e59e9260d6bfacf97..c8382653379a333ac27c57c54381e90752345b8b 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messenger.properties
@@ -98,7 +98,7 @@ verboseFolderFormat=%1$S σε %2$S
 # LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
 filterFolderTruncateFailed=Υπήρξε ένα σφάλμα κατά τη σύμπτυξη του φακέλου εισερχομένων μετά το φιλτράρισμα ενός μηνύματος στο φάκελο '%1$S'.  Θα χρειαστεί να τερματίσετε τον %2$S και να διαγράψετε το INBOX.msf.
 
-mailboxTooLarge=Ο φάκελος %S είναι πλήρης και δεν χωράει άλλα μηνύματα. Για να ελευθερώσετε χώρο, διαγράψτε παλιά ή ανεπιθύμητα μηνύματα και συμπιέστε τον φάκελο.
+mailboxTooLarge=Ο φάκελος «%S» είναι πλήρης και δεν χωράει άλλα μηνύματα. Για να ελευθερώσετε χώρο, διαγράψτε παλιά ή ανεπιθύμητα μηνύματα και συμπιέστε τον φάκελο.
 outOfDiskSpace=Δεν υπάρχει αρκετός ελεύθερος χώρος στο δίσκο για το κατέβασμα νέων μηνυμάτων. Δοκιμάστε να διαγράψετε παλιά αλληλογραφία, να αδειάσετε τον κάδο ή να συμπιέσετε τους φακέλους αλληλογραφίας και να ξαναδοκιμάσετε πάλι.
 errorGettingDB=Αδυναμία ανοίγματος το αρχείου περίληψης για το %S. Πιθανώς να υπάρχει σφάλμα στο δίσκο, ή η πλήρης διαδρομή να είναι μακροσκελής.
 defaultServerTag=(Προεπιλογή)
@@ -375,7 +375,7 @@ detachLabel=Απόσπαση…
 detachLabelAccesskey=σ
 deleteLabel=Διαγραφή
 deleteLabelAccesskey=γ
-openFolderLabel=Άνοιγμα φακέλου αποθήκευσης
+openFolderLabel=Άνοιγμα φακέλου λήψης
 openFolderLabelAccesskey=φ
 deleteAttachments=Τα ακόλουθα συνημμένα θα διαγραφούν οριστικά από αυτό το μήνυμα:\n%S\nΑυτή η ενέργεια δεν είναι αναστρέψιμη. Θέλετε να συνεχίσετε;
 detachAttachments=Τα ακόλουθα συνημμένα αποθηκεύτηκαν με επιτυχία και τώρα θα διαγραφούν μόνιμα από αυτό το μήνυμα:\n%S\nΑυτή η ενέργεια δεν είναι αναστρέψιμη. Θέλετε να συνεχίσετε;
@@ -414,7 +414,7 @@ attachmentsPrintHeader=Συνημμένα:
 
 # Connection Error Messages
 # LOCALIZATION NOTE(unknownHostError): %S is the server name
-unknownHostError=Αποτυχία σύνδεσης με το διακομιστή %S.
+unknownHostError=Αποτυχία σύνδεσης με τον διακομιστή «%S».
 # LOCALIZATION NOTE(connectionRefusedError): %S is the server name
 connectionRefusedError=Δεν ήταν δυνατή η σύνδεση με το διακομιστή %S. Η σύνδεση απορρίφθηκε.
 # LOCALIZATION NOTE(netTimeoutError): %S is the server name
@@ -476,7 +476,7 @@ confirmSavedSearchDeleteMessage=Θέλετε σίγουρα να διαγράψ
 # LOCALIZATION NOTE (passwordPrompt): Do not translate the word %S below.
 # Place the word "%S" in your translation where the email address
 # or the username should appear
-passwordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το %1$S στο %2$S:
+passwordPrompt=Εισαγάγετε τον κωδικό πρόσβασής σας για το «%1$S» στο %2$S:
 
 ## @name ENTER_PASSWORD_PROMPT_TITLE
 ## @loc None
@@ -486,13 +486,13 @@ passwordTitle=Απαιτείται κωδικός διακομιστή αλλη
 openWindowWarningTitle=Επιβεβαίωση
 # LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
 # #1 is the number of messages the user is attempting to open.
-openWindowWarningConfirmation=Το άνοιγμα #1 μηνυμάτος μπορεί να καθυστερήσει. Συνέχεια?; Το άνοιγμα #1 μηνυμάτων μπορεί να καθυστερήσει. Συνέχεια?
+openWindowWarningConfirmation=Το άνοιγμα #1 μηνύματος ενδέχεται να καθυστερήσει. Θέλετε να συνεχίσετε;;Το άνοιγμα #1 μηνυμάτων ενδέχεται να καθυστερήσει. Θέλετε να συνεχίσετε;
 
 # for checking if the user really wants to open lots of messages in tabs.
 openTabWarningTitle=Επιβεβαίωση
 # LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
 # #1 is the number of messages the user is attempting to open.
-openTabWarningConfirmation=Το άνοιγμα #1 μηνύματος μπορεί να καθυστερήσει. Θέλετε να συνεχίσετε;;Το άνοιγμα #1 μηνυμάτων μπορεί να καθυστερήσει. Θέλετε να συνεχίσετε;
+openTabWarningConfirmation=Το άνοιγμα #1 μηνύματος ενδέχεται να καθυστερήσει. Θέλετε να συνεχίσετε;;Το άνοιγμα #1 μηνυμάτων ενδέχεται να καθυστερήσει. Θέλετε να συνεχίσετε;
 
 # for warning the user that a tag they're trying to create already exists
 tagExists=Υπάρχει ήδη ετικέτα με αυτό το όνομα.
@@ -586,13 +586,13 @@ unifiedAccountName=Ενοποιημένοι φάκελοι
 #LOCALIZATION NOTE %1$S is the name of the folder we will move to. moveToFolderAgainAccessKey
 # should have the same value as copyToFolderAgainAccessKey as they are the same menu item in the UI
 # moveToFolderAgainAccessKey should also be a letter that occurs before %1$S
-moveToFolderAgain=Μετακίνηση στο "%1$S" ξανά
+moveToFolderAgain=Μετακίνηση στο «%1$S» ξανά
 moveToFolderAgainAccessKey=Ï„
 #LOCALIZATION NOTE %1$S is the name of the folder we will copy to
 # copyToFolderAgainAccessKey
 # should have the same value as moveToFolderAgainAccessKey as they are the same menu item in the UI
 # copyToFolderAgainAccessKey should also be a letter that occurs before %1$S
-copyToFolderAgain=Αντιγραφή στο "%1$S" ξανά
+copyToFolderAgain=Αντιγραφή στο «%1$S» ξανά
 copyToFolderAgainAccessKey=γ
 
 #LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
@@ -601,11 +601,11 @@ mdnBarMessageNormal=Ο/Η %1$S έχει ζητήσει να ειδοποιηθε
 mdnBarMessageAddressDiffers=Ο/Η %1$S έχει ζητήσει να ειδοποιηθεί (στο %2$S) όταν διαβάσετε το μήνυμα.
 
 # mailCommands.js
-emptyJunkFolderTitle=Διαγραφή «%S»
-emptyJunkFolderMessage=Διαγραφή όλων των μηνυμάτων και των υποφακέλων του φακέλου "Ανεπιθύμητα";
+emptyJunkFolderTitle=Άδειασμα του «%S»
+emptyJunkFolderMessage=Διαγραφή όλων των μηνυμάτων και των υποφακέλων του φακέλου «Ανεπιθύμητα»;
 emptyJunkDontAsk=Να μην ερωτηθώ ξανά.
-emptyTrashFolderTitle=Διαγραφή «%S»
-emptyTrashFolderMessage=Διαγραφή όλων των μηνυμάτων και των υποφακέλων του φακέλου "Απορρίμματα";
+emptyTrashFolderTitle=Άδειασμα του «%S»
+emptyTrashFolderMessage=Διαγραφή όλων των μηνυμάτων και των υποφακέλων του φακέλου «Απορρίμματα»;
 emptyTrashDontAsk=Να μην ερωτηθώ ξανά.
 
 # junkCommands.js
@@ -720,7 +720,7 @@ threadPane.columnPicker.confirmFolder.withChildren.message=Εφαρμογή στ
 
 # LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
 # the host name of the site.
-lwthemeInstallRequest.message=Αυτή η σελίδα (%S) προσπάθησε να εγκαταστήσει ένα θέμα.
+lwthemeInstallRequest.message=Αυτός ο ιστότοπος (%S) επιχείρησε να εγκαταστήσει ένα θέμα.
 lwthemeInstallRequest.allowButton=Αποδοχή
 lwthemeInstallRequest.allowButton.accesskey=χ
 
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdAdvancedEdit.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdAdvancedEdit.dtd
index cdd00bafaf7cd658b29d304c67a6a4102e43c130..2ad524fd775f44a75b4e684942d03f69432ab98d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdAdvancedEdit.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdAdvancedEdit.dtd
@@ -2,8 +2,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/. -->
 
-<!ENTITY WindowTitle.label              "Σύνθετη επεξεργασία ιδιοτήτων">
-<!ENTITY AttName.label                  "Όνομα:">
+<!ENTITY WindowTitle.label              "Επεξεργασία σύνθετων ιδιοτήτων">
+<!ENTITY AttName.label                  "Όνομα: ">
 <!ENTITY AttValue.label                 "Τιμή: ">
 <!ENTITY PropertyName.label             "Ιδιότητα:">
 <!ENTITY currentattributesfor.label     "Τρέχουσες ιδιότητες για:">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdColorPicker.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdColorPicker.dtd
index 22afdb86a37607fdc29b1aa2f91623ef7ad20261..ae6dd4b729208020504910b8b8094cfc6b3d2785 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdColorPicker.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdColorPicker.dtd
@@ -13,7 +13,7 @@
 <!ENTITY default.accessKey "λ">
 <!ENTITY palette.label "Παλέτα:">
 <!ENTITY standardPalette.label "Κανονική">
-<!ENTITY webPalette.label "Όλα τα χρώματα web">
+<!ENTITY webPalette.label "Όλα τα χρώματα ιστού">
 <!ENTITY background.label "Φόντο για:">
 <!ENTITY background.accessKey "Φ">
 <!ENTITY table.label "Πίνακας">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdConvertToTable.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdConvertToTable.dtd
index 5495a2ae3a0e589c008abfd614270e06b341f724..d70cdb2459f103ede6792b89ad3b590a504884fb 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdConvertToTable.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdConvertToTable.dtd
@@ -6,7 +6,7 @@
 <!-- Window title -->
 <!ENTITY windowTitle.label "Μετατροπή σε πίνακα">
 <!ENTITY instructions1.label   "Το εργαλείο σύνταξης δημιουργεί νέα σειρά πίνακα για κάθε παράγραφο στην επιλογή.">
-<!ENTITY instructions2.label   "Επιλέξτε το χαρακτήρα που θα χωρίζει την επιλογή σε στήλες:">
+<!ENTITY instructions2.label   "Επιλέξτε τον χαρακτήρα που θα χωρίζει την επιλογή σε στήλες:">
 <!ENTITY commaRadio.label      "Κόμμα">
 <!ENTITY spaceRadio.label      "Διάστημα">
 <!ENTITY otherRadio.label      "Άλλος χαρακτήρας:">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdDialogOverlay.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdDialogOverlay.dtd
index 0314fd654a256ca515012e00cb4f4913d452d78e..7adbe72ade7b81d0bfd5ce7a8f739eb26ee1802a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdDialogOverlay.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EdDialogOverlay.dtd
@@ -11,7 +11,7 @@
 <!ENTITY chooseFileLinkButton.accessKey "λ">
 <!ENTITY makeUrlRelative.label "Το URL είναι σχετικό με την τοποθεσία της σελίδας">
 <!ENTITY makeUrlRelative.accessKey "χ">
-<!ENTITY makeUrlRelative.tooltip "Αλλαγή μεταξύ σχετικού και απόλυτου URL. Πρέπει να αποθηκεύσετε πρώτα τη σελίδα για να γίνουν οι αλλαγές.">
+<!ENTITY makeUrlRelative.tooltip "Αλλαγή μεταξύ σχετικού και απόλυτου URL. Πρέπει να αποθηκεύσετε πρώτα τη σελίδα για να το αλλάξετε αυτό.">
 
 <!-- Shared by Link and Image dialogs -->
 <!ENTITY LinkURLEditField2.label "Εισαγάγετε μια ιστοσελίδα, ένα τοπικό αρχείο ή επιλέξτε μια επώνυμη άγκυρα ή κεφαλίδα από το μενού επιλογών του πεδίου:">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorColorProperties.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorColorProperties.dtd
index f1b25a610bc7b3ac163b8fd523e58b9de4ccb4a7..bc40fb498a99680937ec6660db726b268064f30f 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorColorProperties.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorColorProperties.dtd
@@ -5,7 +5,7 @@
 <!-- Window title -->
 <!ENTITY windowTitle.label "Χρώματα και φόντο σελίδας">
 <!ENTITY pageColors.label "Χρώματα σελίδας">
-<!ENTITY defaultColorsRadio.label "Προεπιλεγμένα χρώματα">
+<!ENTITY defaultColorsRadio.label "Προεπιλεγμένα χρώματα αναγνώστη (Χωρίς ορισμό χρωμάτων στη σελίδα)">
 <!ENTITY defaultColorsRadio.accessKey "γ">
 <!ENTITY defaultColorsRadio.tooltip "Χρήση των ρυθμίσεων χρώματος από το περιηγητή του αναγνώστη μόνο">
 <!ENTITY customColorsRadio.label "Χρήση προσαρμοσμένων χρωμάτων:">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorImageProperties.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorImageProperties.dtd
index 8610e68fbb84ef1b2445d5c5f95d4302d665c113..f99cbb1f942fc8ec68df112cc73424dd8a430e47 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorImageProperties.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorImageProperties.dtd
@@ -69,7 +69,7 @@
 <!ENTITY showImageLinkBorder.accessKey "Ï€">
 <!ENTITY LinkAdvancedEditButton.label "Σύνθετη επεξεργασία συνδέσμου…">
 <!ENTITY LinkAdvancedEditButton.accessKey "δ">
-<!ENTITY LinkAdvancedEditButton.tooltip "Προσθήκη ή τροποποίηση ιδιοτήτων στυλ, HTML και JavaScript">
+<!ENTITY LinkAdvancedEditButton.tooltip "Προσθήκη ή τροποποίηση ιδιοτήτων HTML, ιδιοτήτων στυλ και JavaScript">
 
 <!-- These tabs are currently used in the image input dialog -->
 <!ENTITY imageInputTab.label "Φόρμα">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertMath.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertMath.dtd
index 47f5be72afb6685467f2d03347b186fc892e0de7..905f7cee3ab23743645364564cb9ddd3571f33a4 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertMath.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertMath.dtd
@@ -5,7 +5,7 @@
 <!-- Window title -->
 <!ENTITY windowTitle.label "Εισαγωγή μαθηματικού τύπου">
 
-<!ENTITY sourceEditField.label "Εισάγετε πηγαίο κώδικα LaTeX:">
+<!ENTITY sourceEditField.label "Εισαγάγετε πηγαίο κώδικα LaTeX:">
 
 <!ENTITY options.label "Επιλογές">
 <!ENTITY optionInline.label "Λειτουργία εντός γραμμής">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertSource.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertSource.dtd
index 18330967977d2c638bd6f78e6dab753812a72dd7..0db936be0a5e904aa94f4e259a13c989bf3ff857 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertSource.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertSource.dtd
@@ -4,7 +4,7 @@
 
 <!-- Window title -->
 <!ENTITY windowTitle.label "Εισαγωγή HTML">
-<!ENTITY sourceEditField.label "Εισάγετε HTML tags και κείμενο:">
+<!ENTITY sourceEditField.label "Εισαγάγετε ετικέτες και κείμενο HTML:">
 <!ENTITY example.label "Παράδειγμα: ">
 <!-- LOCALIZATION NOTE (exampleOpenTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
 <!ENTITY exampleOpenTag.label "&lt;i&gt;">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertTOC.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertTOC.dtd
index b990c8622c53d62838c1e6654a0baf6b1042bdf8..b59764e457e95a7141b379311fc6ac1a392dd8ff 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertTOC.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorInsertTOC.dtd
@@ -13,4 +13,4 @@
 <!ENTITY header5.label       "Επίπεδο 5">
 <!ENTITY header6.label       "Επίπεδο 6">
 <!ENTITY makeReadOnly.label  "Δημιουργία πίνακα περιεχομένων μόνο για ανάγνωση">
-<!ENTITY orderedList.label   "Αριθμός όλων των καταχωρήσεων στον πίνακα περιεχομένων">
+<!ENTITY orderedList.label   "Αρίθμηση όλων των καταχωρήσεων στον πίνακα περιεχομένων">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorSpellCheck.dtd
index da8d6c626c26af9c18aaab14f8342d27d83a246b..c482f22b01b82b87576132bb274ef9c016c149f6 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorSpellCheck.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorSpellCheck.dtd
@@ -16,7 +16,7 @@
 <!ENTITY ignoreButton.accessKey "β">
 <!ENTITY ignoreAllButton.label "Παράβλεψη όλων">
 <!ENTITY ignoreAllButton.accessKey "λ">
-<!ENTITY replaceButton.label "Αντικατάσταση ">
+<!ENTITY replaceButton.label "Αντικατάσταση">
 <!ENTITY replaceButton.accessKey "ν">
 <!ENTITY replaceAllButton.label "Αντικατάσταση όλων">
 <!ENTITY replaceAllButton.accessKey "ω">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorTableProperties.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorTableProperties.dtd
index 229b5b5c850c99c2024c8acc7c675237b482c135..0ae7ebe602803454ce058999d4865c5de936f657 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorTableProperties.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/EditorTableProperties.dtd
@@ -24,7 +24,7 @@
 <!ENTITY tablePadding.label               "Γέμισμα:">
 <!ENTITY tablePadding.accessKey           "Γ">
 <!ENTITY tablePxBetwCells.label           "εικονοστοιχεία μεταξύ κελιών">
-<!ENTITY tablePxBetwBrdrCellContent.label "εικονοστοιχεία μεταξύ  πλαισίου κελιών και περιεχομένου">
+<!ENTITY tablePxBetwBrdrCellContent.label "pixel μεταξύ πλαισίου και περιεχομένου κελιού">
 <!ENTITY tableAlignment.label             "Στοίχιση πίνακα:">
 <!ENTITY tableAlignment.accessKey         "ο">
 <!ENTITY tableCaption.label               "Λεζάντα:">
@@ -44,13 +44,13 @@
 <!ENTITY cellSelectNext.accessKey         "ν">
 <!ENTITY cellSelectPrevious.label         "Προηγούμενο">
 <!ENTITY cellSelectPrevious.accessKey     "Ï€">
-<!ENTITY applyBeforeChange.label          "Οι τρέχουσες αλλαγές θα εφαρμοσθούν πριν να γίνει αλλαγή στην επιλογή.">
+<!ENTITY applyBeforeChange.label          "Οι τρέχουσες αλλαγές θα εφαρμοστούν πριν από την αλλαγή της επιλογής.">
 <!ENTITY cellContentAlignment.label       "Στοίχιση περιεχομένου">
 <!ENTITY cellHorizontal.label             "Οριζόντια:">
 <!ENTITY cellHorizontal.accessKey         "ζ">
 <!ENTITY cellVertical.label               "Κάθετη:">
 <!ENTITY cellVertical.accessKey           "θ">
-<!ENTITY cellStyle.label                  "Στυλ κελιού:">
+<!ENTITY cellStyle.label                  "Μορφή κελιού:">
 <!ENTITY cellStyle.accessKey              "φ">
 <!ENTITY cellNormal.label                 "Κανονικό">
 <!ENTITY cellHeader.label                 "Κεφαλίδα">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/composeMsgs.properties
index d52d01371afc5fd1cb6e95e26fbd91bb6427f5dd..3ccdf22a9fac8eedb17fb1e7afeeef02f7222e9e 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/composeMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/composeMsgs.properties
@@ -8,7 +8,7 @@
 ## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
 ## %S will be replaced with the name of file that could not be opened
 unableToOpenFile=Δεν είναι δυνατό το άνοιγμα του αρχείου %S.
-unableToOpenTmpFile=Δεν είναι δυνατό το άνοιγμα του προσωρινού αρχείου  %S. Ελέγξτε τις ρυθμίσεις του "Προσωρινού καταλόγου".
+unableToOpenTmpFile=Δεν ήταν δυνατό το άνοιγμα του προσωρινού αρχείου «%S». Ελέγξτε τη ρύθμιση «Προσωρινός κατάλογος».
 unableToSaveTemplate=Αδυναμία αποθήκευσης του μηνύματος σας ως πρότυπο.
 unableToSaveDraft=Αδυναμία αποθήκευσης του μηνύματος σας ως προσχέδιο.
 couldntOpenFccFolder=Δεν μπορεί να ανοιχθεί ο φάκελος Απεσταλμένα. Βεβαιωθείτε ότι οι προτιμήσεις αλληλογραφίας σας είναι σωστές και προσπαθήστε ξανά.
@@ -46,7 +46,7 @@ couldNotGetUsersMailAddress2=Συνέβη ένα σφάλμα κατά την α
 couldNotGetSendersIdentity=Συνέβη ένα σφάλμα κατά την αποστολή του μηνύματος: η ταυτότητα του αποστολέα δεν ήταν έγκυρη. Επιβεβαιώστε την παραμετροποίηση της ταυτότητάς σας και δοκιμάστε πάλι.
 
 mimeMpartAttachmentError=Σφάλμα συνημμένου.
-failedCopyOperation=Η αποστολή ήταν επιτυχής, αλλά απέτυχε η αντιγραφή του μηνύματος στο φάκελο Απεσταλμένα.
+failedCopyOperation=Το μήνυμα απεστάλη επιτυχώς, αλλά δεν ήταν δυνατή η αντιγραφή στον φάκελο «Απεσταλμένα» σας.
 nntpNoCrossPosting=Μπορείτε να στείλετε μήνυμα σε ένα μόνο διακομιστή συζητήσεων τη φορά.
 msgCancelling=Ακύρωση…
 sendFailedButNntpOk=Το μήνυμα σας δημοσιεύθηκε στην ομάδα συζήτησης αλλά δεν στάλθηκε στον άλλο παραλήπτη.
@@ -60,13 +60,13 @@ errorAttachingFile=Σφάλμα κατα την επισύναψη του %S. Ε
 incorrectSmtpGreeting=Δημιουργήθηκε σφάλμα κατά την αποστολή αλληλογραφίας: Ο διακομιστής αλληλογραφίας έστειλε μη έγκυρο χαιρετισμό:  %s.
 
 ## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
-errorSendingRcptCommand=Σφάλμα κατά την αποστολή αλληλογραφίας. Ο διακομιστής αλληλογραφίας αποκρίθηκε: %1$S. Βεβαιωθείτε για τον παραλήπτη %2$S και προσπαθήστε ξανά.
+errorSendingRcptCommand=Σφάλμα κατά την αποστολή του email. Ο διακομιστής αλληλογραφίας αποκρίθηκε:\n%1$S.\nΠαρακαλώ ελέγξτε τον παραλήπτη «%2$S» και δοκιμάστε ξανά.
 
 ## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
 startTlsFailed=Σφάλμα κατά την αποστολή αλληλογραφίας. Αδυναμία δημιουργίας μιας ασφαλούς σύνδεσης με τον διακομιστή SMTP %S με χρήση STARTTLS, επειδή φάινεται ότι δεν χρησιμοποιεί αυτή την υπηρεσία. Απενεργοποιήστε το STARTTLS για αυτόν τον διακομιστή ή επικοινωνήστε με τον πάροχο της υπηρεσίας.
 
 ## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
-smtpPasswordUndefined=Σφάλμα κατά την αποστολή αλληλογραφίας: Αδυναμία λήψης συνθηματικού για  %S. Το μήνυμα δεν στάλθηκε.
+smtpPasswordUndefined=Προέκυψε σφάλμα κατά την αποστολή email: Δεν ήταν δυνατή η λήψη του κωδικού πρόσβασης για το «%S». Δεν έγινε αποστολή του μηνύματος.
 
 ## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
 smtpSendNotAllowed=Προέκυψε σφάλμα κατά την αποστολή email. Ο διακομιστής αλληλογραφίας απάντησε:\n%s.\nΠαρακαλώ βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή ταυτότητα για αποστολή και ότι η τρέχουσα μέθοδος ταυτοποίησης είναι σωστή. Επαληθεύστε ότι επιτρέπεται να στείλετε μέσω αυτού του διακομιστή SMTP με τα τρέχοντα διαπιστευτήριά σας, από το τρέχον δίκτυό σας.
@@ -131,7 +131,7 @@ saveDlogTitle=Αποθήκευση μηνύματος
 ## LOCALIZATION NOTE (saveDlogMessages3): Do not translate the words %1$S and \n.
 ## %1$S is replaced by the folder name configured for saving drafts (typically the "Drafts" folder).
 ## Translate "Write" to match the translation of item "windowTitleWrite" below.
-saveDlogMessages3=Αποθήκευση μηνύματος στο φάκελο προχείρων σας (%1$S) και κλείσιμο παραθύρου σύνταξης;
+saveDlogMessages3=Αποθήκευση μηνύματος στον φάκελο προσχεδίων σας (%1$S) και κλείσιμο παραθύρου σύνταξης;
 discardButtonLabel=&Απόρριψη αλλαγών
 
 ## generics string
@@ -180,7 +180,7 @@ addressInvalid=Το %1$S δεν είναι έγκυρη διεύθυνση email
 
 ## String used by the dialog that asks the user to attach a web page
 attachPageDlogTitle=Παρακαλώ ορίστε μια τοποθεσία για επισύναψη
-attachPageDlogMessage=Ιστοσελίδα
+attachPageDlogMessage=Ιστοσελίδα (URL):
 
 ## String used for attachment pretty name, when the attachment is a message
 messageAttachmentSafeName=Συνημμένο μήνυμα
@@ -222,7 +222,7 @@ errorLoadFileMessageMessage=Το αρχείο %1$S δεν είναι δυνατ
 SaveDialogTitle=Αποθήκευση μηνύματος
 
 ## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
-SaveDialogMsg=Το μήνυμα σας αποθηκεύτηκε στο φάκελο %1$S στο %2$S.
+SaveDialogMsg=Το μήνυμά σας έχει αποθηκευτεί στον φάκελο «%1$S» στο %2$S.
 CheckMsg=Να μην εμφανιστεί ξανά αυτό το μήνυμα
 
 ## Strings used by the prompt when Quitting while in progress
@@ -252,7 +252,7 @@ gatheringAttachment=Επισύναψη %S…
 creatingMailMessage=Δημιουργία μηνύματος email…
 
 ## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
-copyMessageStart=Αντιγραφή μηνύματος στο φάκελο %S…
+copyMessageStart=Αντιγραφή μηνύματος στον φάκελο «%S»…
 copyMessageComplete=Η αντιγραφή ολοκληρώθηκε.
 copyMessageFailed=Η αντιγραφή  απέτυχε.
 filterMessageComplete=Το φιλτράρισμα ολοκληρώθηκε.
@@ -326,7 +326,7 @@ learnMore.accesskey=Ï€
 # LOCALIZATION NOTE (bigFileDescription): Semi-colon list of plural forms.
 # See: https://developer.mozilla.org/en/Localization_and_Plurals
 # #1 number of big attached files
-bigFileDescription=Αυτό είναι ένα μεγάλο αρχείο. Ίσως να είναι καλύτερα να χρησιμοποιήσετε το Filelink.;Αυτά είναι μεγάλα αρχεία. Ίσως να είναι καλύτερα να χρησιμοποιήσετε το Filelink.
+bigFileDescription=Αυτό είναι ένα μεγάλο αρχείο. Ίσως να είναι καλύτερα να χρησιμοποιήσετε το FileLink.;Αυτά είναι μεγάλα αρχεία. Ίσως να είναι καλύτερα να χρησιμοποιήσετε το FileLink.
 bigFileShare.label=Σύνδεσμος
 bigFileShare.accesskey=δ
 bigFileAttach.label=Παράβλεψη
@@ -393,7 +393,7 @@ promptToSaveTemplateLocally2=Το πρότυπό σας δεν αποθηκεύ
 ## save fails (e.g., to Sent) and save to Local Folders also fails. This could
 ## occur if network is down and filesystem problems are present such as disk
 ## full, permission issues or hardware failure.
-saveToLocalFoldersFailed=Αδυναμία αποθήκευσης του μηνύματός σας σε τοπικούς φακέλους. Ενδεχομένως να μην υπάρχει χώρος αποθήκευσης αρχείων.
+saveToLocalFoldersFailed=Δεν ήταν δυνατή η αποθήκευση του μηνύματός σας σε τοπικούς φακέλους. Ενδεχομένως να μην υπάρχει επαρκής χώρος αποθήκευσης.
 
 ## LOCALIZATION NOTE(errorCloudFileAuth.message):
 ## %1$S is the name of the online storage service against which the authentication failed.
@@ -459,10 +459,10 @@ stopShowingUploadingNotification.accesskey=Ν
 stopShowingUploadingNotification.label=Να μην εμφανιστεί ξανά
 replaceButton.label=Αντικατάσταση…
 replaceButton.accesskey=κ
-replaceButton.tooltip=Εμφάνιση του διαλόγου εύρεσης και αντικατάστασης
+replaceButton.tooltip=Εμφάνιση διαλόγου «Εύρεση και αντικατάσταση»
 
 ## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
-blockedAllowResource=Απεμπλοκή %S
+blockedAllowResource=Άρση αποκλεισμού του «%S»
 ## LOCALIZATION NOTE (blockedContentMessage): Semi-colon list of plural forms.
 ## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
 ## %S will be replaced by brandShortName.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editor.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editor.properties
index 4a2242e6ffd882367016e41a9cec6d568fe98a99..f3384d98d47fa5f98f085702ee0d30e612c5243d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editor.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editor.properties
@@ -11,7 +11,7 @@ No=Όχι
 Save=Αποθήκευση
 More=Περισσότερα
 Less=Λιγότερα
-MoreProperties=Περισσότερα γνωρίσματα
+MoreProperties=Περισσότερες ιδιότητες
 FewerProperties=Λιγότερες ιδιότητες
 PropertiesAccessKey=γ
 None=Κανένα
@@ -26,85 +26,85 @@ EditMode=Λειτουργία επεξεργασίας
 Preview=Προεπισκόπηση
 Publish=Δημοσίευση
 PublishPage=Δημοσίευση σελίδας
-DontPublish=Να μη δημοσιευθεί
+DontPublish=Χωρίς δημοσίευση
 SavePassword=Χρήση διαχείρισης κωδικών για την αποθήκευση του κωδικού
 CorrectSpelling=(σωστή ορθογραφία)
-NoSuggestedWords=(δεν υπάρχουν προτεινόμενες λέξεις)
+NoSuggestedWords=(καμία προτεινόμενη λέξη)
 NoMisspelledWord=Κανένα ορθογραφικό λάθος
 CheckSpellingDone=Ο ορθογραφικός έλεγχος ολοκληρώθηκε.
 CheckSpelling=Ορθογραφικός έλεγχος
 InputError=Σφάλμα
 Alert=Προειδοποίηση
-CantEditFramesetMsg=Αυτό το πρόγραμμα δε μπορεί να επεξεργαστεί HTML framesets ή εσωτερικά πλαίσια. Προσπαθήστε να επεξεργαστείτε το κάθε πλαίσιο ξεχωριστά. Για σελίδες με iframes αποθηκεύστε ένα αντίγραφο της σελίδας και αφαιρέστε το <iframe> tag.
+CantEditFramesetMsg=Το εργαλείο σύνθεσης δεν μπορεί να επεξεργαστεί HTML frameset ή σελίδες με iframe. Για τα frameset, δοκιμάστε να επεξεργαστείτε τη σελίδα για κάθε κάδρο ξεχωριστά. Για τις σελίδες με iframe, αποθηκεύστε ένα αντίγραφο της σελίδας και αφαιρέστε την ετικέτα <iframe>.
 CantEditMimeTypeMsg=Δεν είναι δυνατή η επεξεργασία αυτού του τύπου σελίδας.
-CantEditDocumentMsg=Δεν είναι δυνατή η επεξεργασία αυτού του τύπου σελίδας.
+CantEditDocumentMsg=Δεν είναι δυνατή η επεξεργασία αυτής της σελίδας για άγνωστο λόγο.
 BeforeClosing=πριν από το κλείσιμο
 BeforePreview=πριν από την προβολή σε πρόγραμμα περιήγησης
-BeforeValidate=πρίν την επικύρωση του εγγράφου
+BeforeValidate=πριν από την επικύρωση του εγγράφου
 # LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
-SaveFilePrompt=Να αποθηκευτούν οι αλλαγές στο "%title%" %reason%;
-PublishPrompt=Αποθήκευση αλλαγών στο "%title%" %reason%;
-SaveFileFailed=Η αποθήκευση αρχείου απέτυχε!
+SaveFilePrompt=Αποθήκευση αλλαγών στο «%title%» %reason%;
+PublishPrompt=Αποθήκευση αλλαγών στο «%title%» %reason%;
+SaveFileFailed=Αποτυχία αποθήκευσης αρχείου!
 
 # Publishing error strings:
 # LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
-FileNotFound=Το %file% δεν βρέθηκε.
-SubdirDoesNotExist=Ο υποκατάλογος"%dir%" δεν υπάρχει σε αυτήν τη διεύθυνση ή το όνομα αρχείου  "%file%" χρησιμοποιείται ήδη από άλλο υποκατάλογο.
-FilenameIsSubdir=ο όνομα αρχείου "%file%." χρησιμοποιείται ήδη από άλλο υποκατάλογο.
-ServerNotAvailable=Ο διακομιστής δεν είναι διαθέσιμος. Ελέγξτε τη σύνδεσή σας και προσπαθήστε αργότερα.
+FileNotFound=Το «%file%» δεν βρέθηκε.
+SubdirDoesNotExist=Ο υποκατάλογος «%dir%» δεν υπάρχει σε αυτό τον ιστότοπο ή το όνομα αρχείου «%file%» χρησιμοποιείται ήδη από άλλο υποκατάλογο.
+FilenameIsSubdir=Το όνομα αρχείου «%file%» χρησιμοποιείται ήδη από άλλο υποκατάλογο.
+ServerNotAvailable=Ο διακομιστής δεν είναι διαθέσιμος. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά αργότερα.
 Offline=Εργάζεστε χωρίς σύνδεση. Κάντε κλικ στην κάτω δεξιά πλευρά του παραθύρου για να συνδεθείτε.
-DiskFull=Δεν υπάρχει αρκετός διαθέσιμος ελεύθερος  χώρος για την αποθήκευση του αρχείου "%file%."
-NameTooLong=Το όνομα αρχείου ή του υποκαταλόγου είναι πολύ μεγάλο.
-AccessDenied=Δεν έχετε δικαίωμα δημοσίευσης σε αυτήν την τοποθεσία.
-UnknownPublishError=Παρουσιάστηκε ένα άγνωστο σφάλμα δημοσίευσης.
+DiskFull=Δεν υπάρχει επαρκής διαθέσιμος χώρος για την αποθήκευση του αρχείου «%file%».
+NameTooLong=Το όνομα αρχείου ή υποκαταλόγου είναι πολύ μεγάλο.
+AccessDenied=Δεν έχετε το δικαίωμα δημοσίευσης σε αυτή την τοποθεσία.
+UnknownPublishError=Προέκυψε άγνωστο σφάλμα δημοσίευσης.
 PublishFailed=Αποτυχία δημοσίευσης.
 PublishCompleted=Η δημοσίευση ολοκληρώθηκε.
-AllFilesPublished='Ολα τα αρχεία δημοσιεύθηκαν
+AllFilesPublished=Όλα τα αρχεία δημοσιεύθηκαν
 # LOCALIZATION NOTE Don't translate %x% or %total%
-FailedFileMsg=Αποτυχία δημοσίευσης %x% από %total% αρχείων
+FailedFileMsg=Αποτυχία δημοσίευσης %x% από %total% αρχεία.
 # End-Publishing error strings
 Prompt=Ειδοποίηση
 # LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
-PromptFTPUsernamePassword=Εισάγετε χρήστη και κωδικό για τον διακομιστή FTP σε %host%
+PromptFTPUsernamePassword=Εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης για τον διακομιστή FTP στο %host%
 RevertCaption=Επαναφορά στην τελευταία αποθήκευση
 Revert=Επαναφορά
 SendPageReason=πριν από την αποστολή της σελίδας
 Send=Αποστολή
 ## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
 PublishProgressCaption=Δημοσίευση: %title%
-PublishToSite=Δημοσίευση σε ιστοδιεύθυνση: %title%
-AbandonChanges=Θέλετε να εγκαταλείψετε τις μη αποθηκευμένες αλλαγές στο %title% και να επαναφορτώσετε τη σελίδα;
+PublishToSite=Δημοσίευση στον ιστότοπο: %title%
+AbandonChanges=Απόρριψη μη αποθηκευμένων αλλαγών στο «%title%» και ανανέωση σελίδας;
 DocumentTitle=Τίτλος σελίδας
-NeedDocTitle=Εισάγετε έναν τίτλο για την τρέχουσα σελίδα
-DocTitleHelp=Ο τίτλος της σελίδας εμφανίζεται στον τίτλο του παραθύρου και στους σελιδοδείκτες
+NeedDocTitle=Παρακαλώ εισαγάγετε έναν τίτλο για την τρέχουσα σελίδα.
+DocTitleHelp=Αυτό προσδιορίζει τη σελίδα στον τίτλο του παραθύρου και τους σελιδοδείκτες.
 CancelPublishTitle=Ακύρωση δημοσίευσης;
 ## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
 ## the CancelPublishContinue key below
-CancelPublishMessage=Η ακύρωση κατά τη διάρκεια δημοσίευσης μπορεί να έχει σαν αποτέλεσμα τη μη ολοκληρωμένη μεταφορά των αρχείων σας. Θέλετε να συνεχίσετε ή να ακυρώσετε;
+CancelPublishMessage=Η ακύρωση κατά τη δημοσίευση μπορεί να οδηγήσει σε ατελή μεταφορά των αρχείων σας. Θέλετε να συνεχίσετε ή να ακυρώσετε τη διαδικασία;
 CancelPublishContinue=Συνέχεια
-MissingImageError=Εισάγετε ή επιλέξτε ένα όνομα για την εικόνα τύπου gif, jpg, ή png.
-EmptyHREFError=Πρέπει να να εισάγετε ή να επιλέξετε μια τοποθεσία για να δημιουργήσετε μια καινούργια διασύνδεση.
-LinkText=Κείμενο διασύνδεσης
-LinkImage=Εικόνα διασύνδεσης
+MissingImageError=Παρακαλώ εισαγάγετε ή επιλέξτε μια εικόνα τύπου gif, jpg ή png.
+EmptyHREFError=Παρακαλώ επιλέξτε μια διεύθυνση για δημιουργία νέου συνδέσμου.
+LinkText=Κείμενο συνδέσμου
+LinkImage=Εικόνα συνδέσμου
 MixedSelection=[Μικτή επιλογή]
 Mixed=(μικτό)
 # LOCALIZATION NOTE (NotInstalled): %S is the name of the font
 NotInstalled=%S (δεν έχει εγκατασταθεί)
 EnterLinkText=Εισαγάγετε κείμενο για εμφάνιση στον σύνδεσμο:
 EnterLinkTextAccessKey=κ
-EmptyLinkTextError=Παρακαλώ εισαγάγετε κάποιο κείμενο για αυτό τον σύνδεσμο.
-EditTextWarning=Αυτό θα αντικαταστήσει το υπάρχον περιεχόμενο
+EmptyLinkTextError=Παρακαλώ εισαγάγετε κείμενο για αυτό τον σύνδεσμο.
+EditTextWarning=Αυτό θα αντικαταστήσει το υπάρχον περιεχόμενο.
 #LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
-ValidateRangeMsg=Ο αριθμός που καταχωρίσατε (%n%) είναι έξω από την επιτρεπόμενη κλίμακα.
-ValidateNumberMsg=Καταχωρίστε έναν αριθμό μεταξύ %min% και %max%.
+ValidateRangeMsg=Ο αριθμός που έχετε εισαγάγει (%n%) δεν ανήκει στο επιτρεπτό εύρος.
+ValidateNumberMsg=Παρακαλώ εισαγάγετε έναν αριθμό μεταξύ %min% και %max%.
 MissingAnchorNameError=Παρακαλώ εισαγάγετε ένα όνομα για αυτή την άγκυρα.
 #LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
-DuplicateAnchorNameError="%name%" υπάρχει. Επιλέξτε ένα άλλο όνομα.
-BulletStyle=Μορφή κουκίδων
+DuplicateAnchorNameError=Το «%name%» υπάρχει ήδη στη σελίδα. Παρακαλώ εισαγάγετε ένα διαφορετικό όνομα.
+BulletStyle=Μορφή κουκκίδων
 SolidCircle=Συμπαγής κύκλος
 OpenCircle=Ανοιχτός κύκλος
 SolidSquare=Συμπαγές τετράγωνο
-NumberStyle=Τρόπος αρίθμησης:
+NumberStyle=Μορφή αρίθμησης
 Automatic=Αυτόματο
 Style_1=1, 2, 3…
 Style_I=I, II, III…
@@ -122,8 +122,8 @@ untitledDefaultFilename=χωρίς τίτλο
 ShowToolbar=Εμφάνιση γραμμής εργαλείων
 HideToolbar=Απόκρυψη γραμμής εργαλείων
 ImapError=Δεν είναι δυνατό το φόρτωμα της εικόνας
-ImapCheck=\nΕπιλέξτε μια καινούργια τοποθεσία (URL) και προσπαθήστε ξανά.
-SaveToUseRelativeUrl=Τα σχετικά URLs μπορούν μόνο να χρησιμοποιηθούν για τις σελίδες για τις οποίες αποθηκεύτηκαν
+ImapCheck=\nΠαρακαλώ επιλέξτε μια καινούρια τοποθεσία (URL) και δοκιμάστε ξανά.
+SaveToUseRelativeUrl=Τα σχετικά URL μπορούν να χρησιμοποιηθούν μόνο σε αποθηκευμένες σελίδες
 NoNamedAnchorsOrHeadings=(Καμία επώνυμη άγκυρα ή κεφαλίδα στη σελίδα)
 TextColor=Χρώμα κειμένου
 HighlightColor=Χρώμα επισήμανσης
@@ -131,35 +131,35 @@ PageColor=Χρώμα φόντου σελίδας
 BlockColor=Μπλοκάρισμα χρώματος φόντου
 TableColor=Χρώμα φόντου πίνακα
 CellColor=Χρώμα φόντου κελιού
-TableOrCellColor=Χρώμα Πίνακα ή Κελιού
-LinkColor=Χρώμα κειμένου διασύνδεσης
-ActiveLinkColor=Χρώμα ενεργής διασύνδεσης
-VisitedLinkColor=Χρώμα αναγνωσμένης διασύνδεσης
+TableOrCellColor=Χρώμα πίνακα ή κελιού
+LinkColor=Χρώμα κειμένου συνδέσμου
+ActiveLinkColor=Χρώμα ενεργού συνδέσμου
+VisitedLinkColor=Χρώμα ανοιγμένου συνδέσμου
 NoColorError=Επιλέξτε ένα χρώμα ή εισαγάγετε μια έγκυρη τιμή χρώματος HTML
 Table=Πίνακας
-TableCell=Κελί Πίνακα
-NestedTable=Ενσωματωμένος Πίνακας
+TableCell=Κελί πίνακα
+NestedTable=Ένθετος πίνακας
 HLine=Οριζόντια γραμμή
-Link=Διασύνδεση
+Link=Σύνδεσμος
 Image=Εικόνα
 ImageAndLink=Εικόνα και σύνδεσμος
-NamedAnchor=Επώνυμη Άγκυρα
+NamedAnchor=Επώνυμη άγκυρα
 List=Λίστα
 ListItem=Στοιχείο λίστας
 Form=Φόρμα
 InputTag=Πεδίο φόρμας
-InputImage=Εικόνα Φόρμας
+InputImage=Εικόνα φόρμας
 TextArea=Πεδίο κειμένου
 Select=Λίστα επιλογής
 Button=Κουμπί
 Label=Ετικέτα
 FieldSet=Ορισμός πεδίου
 Tag=Ετικέτα
-MissingSiteNameError=Καταχωρίστε ένα όνομα για την υπό δημοσίευση σελίδα
-MissingPublishUrlError=Καταχωρίστε μια τοποθεσία για τη δημοσίευση αυτής της σελίδας.
-MissingPublishFilename=Καταχωρίστε ένα όνομα αρχείου για την τρέχουσα σελίδα.
+MissingSiteNameError=Παρακαλώ εισαγάγετε ένα όνομα για τον ιστότοπο δημοσίευσης.
+MissingPublishUrlError=Παρακαλώ εισαγάγετε μια τοποθεσία για τη δημοσίευση αυτής της σελίδας.
+MissingPublishFilename=Παρακαλώ εισαγάγετε ένα όνομα αρχείου για την τρέχουσα σελίδα.
 #LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
-DuplicateSiteNameError="%name%" υπάρχει ήδη. Εισάγετε ένα διαφορετικό όνομα σελίδας
+DuplicateSiteNameError=Το «%name%» υπάρχει ήδη. Παρακαλώ εισαγάγετε ένα διαφορετικό όνομα ιστοτόπου.
 AdvancedProperties=Προηγμένες ιδιότητες…
 AdvancedEditForCellMsg=Η σύνθετη επεξεργασία δεν είναι διαθέσιμη όταν είναι επιλεγμένα πολλαπλά κελιά
 # LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
@@ -182,7 +182,7 @@ Del=Del
 Delete=Διαγραφή
 DeleteCells=Διαγραφή κελιών
 DeleteTableTitle=Διαγραφή σειρών ή στηλών
-DeleteTableMsg=Η μείωση του αριθμού σειρών θα επιφέρει διαγραφή των κελιών και των περιεχομένων τους. Είστε σίγουροι για αυτό;
+DeleteTableMsg=Η μείωση του αριθμού σειρών θα επιφέρει διαγραφή των κελιών και των περιεχομένων τους. Θέλετε σίγουρα να το κάνετε αυτό;
 Clear=Εκκαθάριση
 #Mouse actions
 Click=Κλικ
@@ -199,10 +199,10 @@ StopTextStyles=Διακοπή διαμόρφωσης κειμένου
 #  menu items: "RemoveLinks" and "StopLinks"
 RemoveLinksAccesskey=δ
 RemoveLinks=Αφαίρεση συνδέσμων
-StopLinks=Διακοπή δεσμών
+StopLinks=Διακοπή συνδέσμου
 #
-NoFormAction=Προτείνεται να εισάγετε μια ενέργεια για αυτήν τη φόρμα. Οι αυτό-αναφερόμενες φόρμες δεν λειτουργούν σε όλους τους περιηγητές.
-NoAltText=Αν η εικόνα είναι σχετική με το έγγραφο θα πρέπει να εισάγετε ένα εναλλακτικό κείμενο το οποίο θα εμφανίζεται σε περιηγητές που βλέπουν μόνο κείμενο (η έχουν απενεργοποιημένη τη φόρτωση εικόνων) και κατά τη φόρτωση της εικόνας.
+NoFormAction=Προτείνεται να εισαγάγετε μια ενέργεια για αυτή τη φόρμα. Οι αυτοαναρτούμενες φόρμες αποτελούν μια προηγμένη τεχνική που ενδέχεται να μην λειτουργεί σε όλα τα προγράμματα περιήγησης.
+NoAltText=Αν η εικόνα είναι σχετική με το περιεχόμενο του εγγράφου, θα πρέπει να εισαγάγετε εναλλακτικό κείμενο το οποίο θα εμφανίζεται σε προγράμματα περιήγησης κειμένου και σε άλλους φυλλομετρητές, όταν γίνεται φόρτωση εικόνας ή όταν είναι ανενεργή η φόρτωση εικόνων.
 #
-Malformed=Δεν είναι δυνατή η μετατροπή του πηγαίου κώδικα πίσω στο έγγραφο επειδή το XΗML δεν είναι έγκυρο.
-NoLinksToCheck=Δεν υπάρχουν στοιχεία με δεσμούς για έλεγχο
+Malformed=Δεν ήταν δυνατή η μετατροπή του πηγαίου κώδικα πίσω στο έγγραφο επειδή δεν είναι έγκυρο XΗTML.
+NoLinksToCheck=Δεν υπάρχουν στοιχεία με συνδέσμους προς έλεγχο
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editorOverlay.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editorOverlay.dtd
index 1e7d4f6dd8ca7686a99f87b0d39e772e12bc4356..36606376d15d69d7191c79c76afba1a61a8af40b 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editorOverlay.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/editorOverlay.dtd
@@ -17,7 +17,7 @@
 <!ENTITY insertLinkCmd2.label "Σύνδεσμος…">
 <!ENTITY insertLinkCmd2.accesskey "Σ">
 <!ENTITY insertLinkCmd2.key "K">
-<!ENTITY insertAnchorCmd.label "Άγκυρα με όνομα…">
+<!ENTITY insertAnchorCmd.label "Επώνυμη άγκυρα…">
 <!ENTITY insertAnchorCmd.accesskey "α">
 <!ENTITY insertImageCmd.label "Εικόνα…">
 <!ENTITY insertImageCmd.accesskey "Ε">
@@ -156,7 +156,7 @@
 <!ENTITY formatlistMenu.accesskey "Λ">
 <!ENTITY noneCmd.label "Κανένα">
 <!ENTITY noneCmd.accesskey "ν">
-<!ENTITY listBulletCmd.label "Κουκίδες">
+<!ENTITY listBulletCmd.label "Κουκκίδες">
 <!ENTITY listBulletCmd.accesskey "Κ">
 <!ENTITY listNumberedCmd.label "Αριθμημένη">
 <!ENTITY listNumberedCmd.accesskey "μ">
@@ -269,7 +269,7 @@
 <!ENTITY tableToolbarCmd.label "Πίνακας">
 <!ENTITY tableToolbarCmd.tooltip "Εισαγωγή νέου πίνακα ή επεξεργασία ιδιοτήτων επιλεγμένου πίνακα">
 <!ENTITY linkToolbarCmd.label "Σύνδεσμος">
-<!ENTITY linkToolbarCmd.tooltip "Εισαγωγή νέου ή επεξεργασία ιδιοτήτων επιλεγμένου δεσμού">
+<!ENTITY linkToolbarCmd.tooltip "Εισαγωγή νέου συνδέσμου ή επεξεργασία ιδιοτήτων επιλεγμένου">
 <!ENTITY anchorToolbarCmd.label "Άγκυρα">
 <!ENTITY anchorToolbarCmd.tooltip "Εισαγωγή νέας άγκυρας ή επεξεργασία ιδιοτήτων επιλεγμένης άγκυρας">
 <!ENTITY TextColorButton.tooltip "Επιλογή χρώματος κειμένου">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/messengercompose.dtd
index 3e720e4338fc896c07bf2d030bb200d71d2d1d39..194018bba126487379405e9fde484e7f0a84fe8e 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/messengercompose.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/messengercompose/messengercompose.dtd
@@ -21,7 +21,7 @@
 <!ENTITY attachFileCmd.label "Αρχεία…">
 <!ENTITY attachFileCmd.accesskey "Α">
 <!ENTITY attachFileCmd.key "A">
-<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.label "FileLink">
 <!ENTITY attachCloudCmd.accesskey "i">
 <!ENTITY attachPageCmd.label "Ιστοσελίδα…">
 <!ENTITY attachPageCmd.accesskey "σ">
@@ -101,8 +101,8 @@
 <!ENTITY findPrevCmd.key2 "VK_F3">
 
 <!-- Reorder Attachment Panel -->
-<!ENTITY reorderAttachmentsPanel.label "Ανακατάταξη συνημμένων">
-<!ENTITY moveAttachmentTopPanelBtn.label "Μετακίνηση στην κορυφή">
+<!ENTITY reorderAttachmentsPanel.label "Αναδιάταξη συνημμένων">
+<!ENTITY moveAttachmentTopPanelBtn.label "Μετακίνηση στο πάνω μέρος">
 <!ENTITY moveAttachmentUpPanelBtn.label "Μετακίνηση πάνω">
 <!ENTITY moveAttachmentBundleUpPanelBtn.label "Μετακίνηση μαζί">
 <!ENTITY moveAttachmentDownPanelBtn.label "Μετακίνηση κάτω">
@@ -127,8 +127,8 @@
 <!ENTITY viewToolbarsMenuNew.accesskey "λ">
 <!ENTITY menubarCmd.label "Γραμμή μενού">
 <!ENTITY menubarCmd.accesskey "μ">
-<!ENTITY showCompositionToolbarCmd.label "Γραμμή εργαλείων σύνταξης">
-<!ENTITY showCompositionToolbarCmd.accesskey "ξ">
+<!ENTITY showCompositionToolbarCmd.label "Γραμμή εργαλείων σύνθεσης">
+<!ENTITY showCompositionToolbarCmd.accesskey "θ">
 <!ENTITY showFormattingBarCmd.label "Γραμμή εργαλείων μορφοποίησης">
 <!ENTITY showFormattingBarCmd.accesskey "φ">
 <!ENTITY showTaskbarCmd.label "Γραμμή κατάστασης">
@@ -230,7 +230,7 @@
 <!ENTITY sendlaterButton.tooltip "Αποστολή του μηνύματος αργότερα">
 <!ENTITY quoteButton.tooltip "Παράθεση προηγούμενου μηνύματος">
 <!ENTITY addressButton.tooltip "Επιλογή παραλήπτη από το Ευρετήριο Διευθύνσεων">
-<!ENTITY attachButton.tooltip2 "Προσθήκη ενός συνημμένου">
+<!ENTITY attachButton.tooltip2 "Προσθήκη ενός συνημμένου αρχείου">
 <!ENTITY spellingButton.tooltip "Ορθογραφικός έλεγχος επιλογής ή ολόκληρου μηνύματος">
 <!ENTITY saveButton.tooltip "Αποθήκευση μηνύματος">
 <!ENTITY cutButton.tooltip              "Αποκοπή">
@@ -249,8 +249,8 @@
 <!ENTITY ccAddr2.label "Κοιν.">
 <!ENTITY bccAddr2.label "Κρυφή κοιν.">
 <!ENTITY replyAddr2.label "Απάντηση προς">
-<!ENTITY newsgroupsAddr2.label "Ομάδα ειδήσεων">
-<!ENTITY followupAddr2.label "Σε συνέχεια του ">
+<!ENTITY newsgroupsAddr2.label "Ομάδες συζήτησης">
+<!ENTITY followupAddr2.label "Σε συνέχεια του">
 <!ENTITY subject2.label "Θέμα">
 <!ENTITY subject.accesskey "Θ">
 <!ENTITY attachmentBucketCloseButton.tooltip "Απόκρυψη του πίνακα συνημμένων">
@@ -308,11 +308,11 @@
 <!ENTITY selectAll.accesskey "λ">
 <!ENTITY attachFile.label "Επισύναψη αρχείων…">
 <!ENTITY attachFile.accesskey "σ">
-<!ENTITY attachCloud.label "Filelink…">
+<!ENTITY attachCloud.label "FileLink…">
 <!ENTITY attachCloud.accesskey "i">
 <!ENTITY convertCloud.label "Μετατροπή σε…">
 <!ENTITY convertCloud.accesskey "Μ">
-<!ENTITY cancelUpload.label "Ακύρωση αποστολής">
+<!ENTITY cancelUpload.label "Ακύρωση μεταφόρτωσης">
 <!ENTITY cancelUpload.accesskey "ρ">
 <!ENTITY convertRegularAttachment.label "Κανονικό συνημμένο">
 <!ENTITY convertRegularAttachment.accesskey "Κ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/mime.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/mime.properties
index 23f1466da8204482dee18e4e65056abac5728e3a..5140db66c00469a46c920314810060bf40df8334 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/mime.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/mime.properties
@@ -104,7 +104,7 @@
 # Link to doc
 ## @name MIME_MSG_LINK_TO_DOCUMENT
 ## @loc
-1026=Διασύνδεση σε έγγραφο
+1026=Σύνδεσμος για έγγραφο
 
 # Get Doc info
 ## @name MIME_MSG_DOCUMENT_INFO
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/msgHdrViewOverlay.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/msgHdrViewOverlay.dtd
index 865b405fda4ab2694a58fca1c00330125cc562b5..e366c785fa51ef43dd70eeda3c5c5192e41ef820 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/msgHdrViewOverlay.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/msgHdrViewOverlay.dtd
@@ -20,7 +20,7 @@
 <!ENTITY referencesField4.label "Αναφορές">
 <!ENTITY messageIdField4.label "ID μηνύματος ">
 <!ENTITY inReplyToField4.label "Σε απάντηση στο">
-<!ENTITY originalWebsite4.label "Ιστοσελίδα">
+<!ENTITY originalWebsite4.label "Ιστότοπος">
 
 <!ENTITY hdrArchiveButton1.label "Αρχειοθέτηση">
 <!ENTITY hdrArchiveButton1.tooltip "Αρχειοθέτηση μηνύματος">
@@ -92,7 +92,7 @@
 
 <!ENTITY openAttachment.tooltip "Άνοιγμα του επισυναπτόμενου αρχείου">
 
-<!ENTITY detachedAttachmentFolder.show.label        "Άνοιγμα φακέλου αποθήκευσης">
+<!ENTITY detachedAttachmentFolder.show.label        "Άνοιγμα φακέλου λήψης">
 <!ENTITY detachedAttachmentFolder.show.accesskey    "φ">
 <!ENTITY detachedAttachmentFolder.showMac.label     "Εμφάνιση στο Finder">
 <!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/netError.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/netError.dtd
index ae5c470ce59b094c858e95ead2cd9c583515dc5a..cd44973c44f6a0082242dcd6f9aa1fdfe9a2a356 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/netError.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/netError.dtd
@@ -75,14 +75,14 @@
 <!ENTITY contentEncodingError.title "Σφάλμα κωδικοποίησης περιεχομένου">
 <!ENTITY contentEncodingError.longDesc "
 <ul>
-  <li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους πληροφορήσετε για το πρόβλημα.</li>
+  <li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li>
 </ul>
 ">
 
 <!ENTITY unsafeContentType.title "Μη ασφαλής τύπος αρχείου">
 <!ENTITY unsafeContentType.longDesc "
 <ul>
-  <li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους ενημερώσετε για το πρόβλημα.</li>
+  <li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li>
 </ul>
 ">
 
@@ -137,8 +137,8 @@
 <!ENTITY nssFailure2.title "Αποτυχία ασφαλούς σύνδεσης">
 <!ENTITY nssFailure2.longDesc2 "
 <ul>
-  <li>Η σελίδα που προσπαθείτε να δείτε δεν μπορεί να εμφανιστεί επειδή δεν είναι δυνατή η πιστοποίηση της αυθεντικότητας των ληφθέντων δεδομένων.</li>
-  <li>Επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους πληροφορήσετε για το πρόβλημα.</li>
+  <li>Η σελίδα που προσπαθείτε να προβάλετε δεν μπορεί να εμφανιστεί επειδή δεν ήταν δυνατή η επαλήθευση της αυθεντικότητα των ληφθέντων δεδομένων.</li>
+  <li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li>
 </ul>
 ">
 
@@ -154,7 +154,8 @@
 
 <!ENTITY sharedLongDesc "
 <ul>
-  <li>Η ιστοσελίδα ενδέχεται να είναι προσωρινά μη διαθέσιμη ή πολύ απασχολημένη. Δοκιμάστε ξανά σε λίγο.</li>
+  <li>Ο ιστότοπος ενδέχεται να είναι προσωρινά μη διαθέσιμος ή πολύ απασχολημένος. Δοκιμάστε ξανά
+    σε λίγο.</li>
   <li>Αν δεν μπορείτε να φορτώσετε καμία σελίδα, ελέγξτε τη σύνδεση δικτύου
     του υπολογιστή σας.</li>
   <li>Αν ο υπολογιστής ή το δίκτυό σας προστατεύονται από τείχος προστασίας ή διακομιστή μεσολάβησης, βεβαιωθείτε
@@ -162,10 +163,10 @@
 </ul>
 ">
 
-<!ENTITY cspBlocked.title "Έχει φραγεί από την πολιτική προστασίας περιεχομένου">
+<!ENTITY cspBlocked.title "Αποκλείστηκε από την πολιτική ασφάλειας περιεχομένου">
 <!ENTITY cspBlocked.longDesc "<p>Το &brandShortName; εμπόδισε τη φόρτωση της σελίδας με αυτό τον τρόπο, επειδή η σελίδα έχει μια πολιτική προστασίας περιεχομένου που δεν τον επιτρέπει.</p>">
 
-<!ENTITY xfoBlocked.title "Μπλοκαρίστηκε από την πολιτική X-Frame-Options">
+<!ENTITY xfoBlocked.title "Αποκλείστηκε από την πολιτική X-Frame-Options">
 <!ENTITY xfoBlocked.longDesc "<p>Το &brandShortName; εμπόδισε τη φόρτωση της σελίδας, επειδή η σελίδα έχει μια πολιτική X-Frame-Options που δεν το επιτρέπει.</p>">
 
 <!ENTITY corruptedContentErrorv2.title "Σφάλμα κατεστραμμένου περιεχομένου">
@@ -188,12 +189,12 @@ functionality specific to thunderbird. -->
 ">
 
 <!ENTITY remoteXUL.title "Απομακρυσμένο XUL">
-<!ENTITY remoteXUL.longDesc "<p><ul><li>Παρακαλούμε επικοινωνήστε με τους ιδιοκτήτες της ιστοσελίδας για να τους ενημερώσετε για αυτό το πρόβλημα.</li></ul></p>">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Παρακαλώ επικοινωνήστε με τους ιδιοκτήτες του ιστοτόπου για να τους ενημερώσετε σχετικά με αυτό το πρόβλημα.</li></ul></p>">
 
 <!ENTITY inadequateSecurityError.title "Η σύνδεσή σας δεν είναι ασφαλής">
 <!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
      "NS_ERROR_NET_INADEQUATE_SECURITY". -->
-<!ENTITY inadequateSecurityError.longDesc "Το <p><span class='hostname'></span> χρησιμοποιεί τεχνολογία που είναι παρωχημένη και ευάλωτη σε επιθέσεις. Ένας εισβολέας θα μπορούσε εύκολα να αποκαλύψει πληροφορίες που πιστεύατε ότι ήταν ασφαλείς. Ο διαχειριστής του ιστοτόπου θα πρέπει να διορθώσει τον διακομιστή προτού επισκεφθείτε ξανά τον ιστοτόπο.</p><p>Κωδικός σφάλματος: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+<!ENTITY inadequateSecurityError.longDesc "<p>Το <span class='hostname'></span> χρησιμοποιεί παρωχημένη τεχνολογία ασφαλείας, ευάλωτη σε επιθέσεις. Ένας εισβολέας θα μπορούσε εύκολα να αποκαλύψει πληροφορίες που θεωρείτε ασφαλείς. Ο διαχειριστής του ιστοτόπου θα πρέπει να διορθώσει τον διακομιστή προτού μπορέσετε να επισκεφθείτε τον ιστότοπο.</p><p>Κωδικός σφάλματος: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
 
 <!ENTITY blockedByPolicy.title "Αποκλεισμένη σελίδα">
 
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/newFolderDialog.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/newFolderDialog.dtd
index 3f845e1b47f1b8f34c9d1f3e025984127d87950c..905061d688ec6660227a4346d966ca89afaa34d0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/newFolderDialog.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/newFolderDialog.dtd
@@ -6,7 +6,7 @@
 <!ENTITY newFolderDialog.title      "Νέος φάκελος">
 <!ENTITY name.label                 "Όνομα:">
 <!ENTITY name.accesskey             "ν">
-<!ENTITY description.label          "Δημιουργία ως υποφακέλου σε:">
+<!ENTITY description.label          "Δημιουργία ως υποφακέλου του:">
 <!ENTITY description.accesskey      "Ï€">
 <!ENTITY folderRestriction1.label   "Σε αυτόν τον διακομιστή υποστηρίζονται μόνο δύο είδη φακέλων">
 <!ENTITY folderRestriction2.label   "Καθορίστε αν ο νέος φάκελος θα περιέχει:">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/news.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/news.properties
index 7a5fe6a6b9e1a2c062763746389a045f97502d20..cb59e25ba7bb7ac65f3d9aa7d810cc76395a2ae3 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/news.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/news.properties
@@ -8,10 +8,10 @@ cancelConfirm=Είστε βέβαιοι ότι θέλετε να ακυρώσε
 messageCancelled=Το μήνυμα ακυρώθηκε.
 enterUserPassTitle=Απαιτείται όνομα χρήστη και κωδικός πρόσβασης για τον διακομιστή συζητήσεων
 # LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
-enterUserPassServer=Παρακαλώ εισαγάγετε όνομα χρήστη και κωδικό πρόσβασης για το %S:
+enterUserPassServer=Παρακαλώ εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης για το %S:
 # LOCALIZATION NOTE (enterUserPassGroup): %1$S is a specific newsgroup to set
 # the password for; %2$S is the server from which the newsgroup is accessed
-enterUserPassGroup=Παρακαλώ εισαγάγετε όνομα χρήστη και κωδικό πρόσβασης για το %1$S στο %2$S:
+enterUserPassGroup=Παρακαλώ εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης για το «%1$S» στο %2$S:
 okButtonText=Λήψη
 
 noNewMessages=Δεν υπάρχουν νέα μηνύματα στο διακομιστή.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/outlookImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/outlookImportMsgs.properties
index dde6d408706fcdde61fe40d8f737d1e0002cdc69..03585660f995a6f3d2b3225d5e7dcf59f8d09875 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/outlookImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/outlookImportMsgs.properties
@@ -2,11 +2,6 @@
 # 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/.
 
-#
-# The following are used by the outlook express import code to display status/error 
-# and informational messages
-#
-
 #
 # The following are used by the outlook express import code to display status/error
 # and informational messages
@@ -27,7 +22,7 @@
 ## @name OUTLOOKIMPORT_DESCRIPTION
 ## @loc None
 ## LOCALIZATION NOTE (2010): In this item, don't translate "Outlook"
-2010=Αλληλογραφία Outlook, ευρετήριο διευθύνσεων και ρυθμίσεις
+2010=Αλληλογραφία, ευρετήρια και ρυθμίσεις του Outlook
 
 # Success message
 ## @name OUTLOOKIMPORT_MAILBOX_SUCCESS
@@ -35,32 +30,32 @@
 ## LOCALIZATION NOTE (2002): In this item, don't translate "%S" or "%d"
 ## The variable %S will receive the name of the mailbox
 ## The variable %d will receive the number of messages
-2002=Γραμματοκιβώτιο %S, εισαγωγή %d μηνυμάτων
+2002=Γραμματοκιβώτιο «%S», εισήχθησαν %d μηνύματα
 
 # Error message
 ## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
 ## @loc None
-2003=Λανθασμένη παράμετρος στην εισαγωγή ευρετήριου διευθύνσεων
+2003=Περάστηκε εσφαλμένη παράμετρος στην εισαγωγή γραμματοκιβωτίου.
 
 # Error message
 ## @name OUTLOOKIMPORT_MAILBOX_CONVERTERROR
 ## @loc None
 ## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
 ## The variable %S will receive the name of the mailbox
-2004=Σφάλμα κατά τη εισαγωγή γραμματοκιβωτίου %S, μπορεί να μην εισαχθούν όλα τα μηνύματα από αυτό το γραμματοκιβώτιο
+2004=Σφάλμα εισαγωγής του γραμματοκιβωτίου «%S», ενδέχεται να μην έχουν εισαχθεί όλα τα μηνύματά του.
 
 # Address book name
 ## @name OUTLOOKIMPORT_ADDRNAME
 ## @loc None
 ## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
-2005=Ευρετήριο Διευθύνσεων Outloook
+2005=Ευρετήρια διευθύνσεων Outlook
 
 # Description
 ## @name OUTLOOKIMPORT_ADDRESS_SUCCESS
 ## @loc None
 ## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
 ## The variable %S will receive the name of the address book
-2006=Εισηγμένα Ευρετηρίου Διευθύνσεων %S
+2006=Έγινε εισαγωγή του ευρετηρίου «%S»
 
 # Error message
 ## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
@@ -72,11 +67,11 @@
 ## @loc None
 ## LOCALIZATION NOTE (2008): In this item, don't translate "%S"
 ## The variable %S will receive the name of the address book
-2008=Σφάλμα στην πρόσβαση αρχείου για το ευρετήριο διευθύνσεων %S.
+2008=Σφάλμα πρόσβασης στο αρχείο του ευρετηρίου «%S».
 
 # Error message
 ## @name OUTLOOKIMPORT_ADDRESS_CONVERTERROR
 ## @loc None
 ## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
 ## The variable %S will receive the name of the address book
-2009=Σφάλμα εισαγωγής ευρετηρίου διευθύνσεων %S· ενδέχεται να μην εισήχθησαν όλες οι διευθύνσεις.
+2009=Σφάλμα εισαγωγής του ευρετηρίου «%S», ενδέχεται να μην έχουν εισαχθεί όλες οι διευθύνσεις.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/applicationManager.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/applicationManager.properties
index 5ad66068d02ee5618621417d88f0c9a88f3aa216..b448650e559daf5961e773d1167fadaa3f048de0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/applicationManager.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/applicationManager.properties
@@ -6,7 +6,7 @@
 # in descriptionApplications, %S will be replaced by one of the 3 following strings
 descriptionApplications=Οι παρακάτω εφαρμογές μπορούν να χρησιμοποιηθούν για το χειρισμό %S.
 
-handleProtocol=δεσμών %S
+handleProtocol=σύνδεσμοι %S
 handleFile=περιεχομένου %S
 
 descriptionWebApp=Αυτή η διαδικτυακή εφαρμογή φιλοξενείται στο:
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/preferences.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/preferences.properties
index 804f417ee71e6eda1939274a64d306679ab79ecc..66e69de0ee0135e40630c7ac2f16c5781279e270 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/preferences.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/preferences/preferences.properties
@@ -65,7 +65,7 @@ imagepermissionstitle=Εξαιρέσεις - Απομακρυσμένο περι
 
 #### Cookies
 cookiepermissionstitle=Εξαιρέσεις - Cookies
-cookiepermissionstext=Μπορείτε να καθορίσετε τις ιστοσελίδες στις οποίες μόνιμα  θα επιτρέπετε ή θα απαγορεύετε να θέτουν cookies.  Πληκτρολογήστε την διεύθυνση της σελίδας που θέλετε να διαχειριστείτε και πατήστε Φραγή, Να επιτρέπεται για τη συνεδρία ή Να επιτρέπεται.
+cookiepermissionstext=Μπορείτε να καθορίσετε σε ποιους ιστοτόπους επιτρέπεται πάντα ή δεν επιτρέπεται ποτέ η χρήση cookie. Πληκτρολογήστε την ακριβή διεύθυνση του ιστοτόπου που θέλετε να διαχειριστείτε και έπειτα, κάντε κλικ στο «Φραγή», στο «Αποδοχή για τη συνεδρία» ή στο «Αποδοχή».
 
 #### Cookie Viewer
 hostColon=Σύστημα:
@@ -75,7 +75,7 @@ forAnyConnection=Κάθε τύπο σύνδεσης
 expireAtEndOfSession=Στο τέλος της συνεδρίας
 
 noCookieSelected=<δεν επιλέχθηκε cookie>
-cookiesAll=Τα ακόλουθα cookies θα αποθηκευτούν στον υπολογιστή σας:
+cookiesAll=Τα ακόλουθα cookie αποθηκεύονται στον υπολογιστή σας:
 cookiesFiltered=Τα ακόλουθα cookies ταιριάζουν με την αναζήτηση σας:
 # LOCALIZATION NOTE (removeSelectedCookies):
 # Semicolon-separated list of plural forms. See:
@@ -115,4 +115,4 @@ pw_change_failed_title=Αποτυχία αλλαγής κωδικού πρόσβ
 applications-type-pdf = Portable Document Format (PDF)
 
 # LOCALIZATION NOTE (previewInApp): %S = brandShortName
-previewInApp=Προεπισκόπηση σε %S
+previewInApp=Προεπισκόπηση στο %S
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/prefs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/prefs.properties
index 3de7973c4e2da647c13b57b4f24604fc1fea8518..e65ed3d505ac6105cafa29b0dc083a1e62909774 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/prefs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/prefs.properties
@@ -23,7 +23,7 @@ localDirectoryNotAllowed=Η διαδρομή του τοπικού φακέλο
 # if the user chooses to cancel the wizard when no accounts are there throw a message
 # LOCALIZATION NOTE (cancelWizard)
 # do not localize "\n\n"
-cancelWizard=Θέλετε σίγουρα να κλείσετε το Βοηθό λογαριασμών;\n\nΑν τον κλείσετε, θα χαθούν όλες οι πληροφορίες που έχετε εισάγει και δεν θα δημιουργηθεί ο λογαριασμός.
+cancelWizard=Θέλετε σίγουρα να κλείσετε τον βοηθό λογαριασμών;\n\nΑν τον κλείσετε, θα χαθούν όλες οι πληροφορίες που έχετε εισαγάγει και δεν θα δημιουργηθεί ο λογαριασμός.
 accountWizard=Βοηθός λογαριασμών
 WizardExit=Έξοδος
 WizardContinue=Ακύρωση
@@ -37,9 +37,9 @@ accountName=%1$S - %2$S
 confirmDeferAccountWarning=Αν αποθηκεύσετε τα νέα μηνύματα αυτού του λογαριασμού στα εισερχόμενα ενός άλλου λογαριασμού, δεν θα έχετε πρόσβαση στα παλιά μηνύματα αυτού του λογαριασμού. Αν έχετε μηνύματα σε αυτόν το λογαριασμό, αντιγράψτε πρώτα σε άλλο λογαριασμό.\n\nΑν υπάρχουν φίλτρα σε αυτόν το λογαριασμό θα πρέπει να τα απενεργοποιήσετε ή να αλλάξετε το φάκελο προορισμού. Αν κάποιοι λογαριασμοί έχουν ειδικούς φακέλους σε αυτόν το λογαριασμό (Απεσταλμένα, Προσχέδια, Πρότυπα, Αρχειοθέτηση, Ανεπιθύμητα), θα πρέπει να τα μετακινήσετε σε άλλο λογαριασμό.\n\nΘέλετε ακόμα να αποθηκεύσετε τα μηνύματα αυτού του λογαριασμού σε διαφορετικό λογαριασμό;
 confirmDeferAccountTitle=Μετάθεση λογαριασμού;
 
-directoryAlreadyUsedByOtherAccount=Αυτός ο κατάλογος χρησιμοποιείται ήδη από το λογαριασμό %S. Επιλέξτε ένα διαφορετικό κατάλογο.
-directoryParentUsedByOtherAccount=Ένας γονικός κατάλογος του καταλόγου που καθορίζεται στη ρύθμιση του τοπικού φακέλου χρησιμοποιείται ήδη από τον λογαριασμό «%S». Επιλέξτε ένα διαφορετικό φάκελο.
-directoryChildUsedByOtherAccount=Ένας υποκατάλογος του καταλόγου που καθορίζεται στη ρύθμιση του τοπικού φακέλου χρησιμοποιείται ήδη από τον λογαριασμό «%S». Επιλέξτε ένα διαφορετικό φάκελο.
+directoryAlreadyUsedByOtherAccount=Ο καθορισμένος κατάλογος της ρύθμισης «Τοπικός κατάλογος» χρησιμοποιείται ήδη από τον λογαριασμό «%S». Παρακαλώ επιλέξτε έναν διαφορετικό κατάλογο.
+directoryParentUsedByOtherAccount=Ένας γονικός κατάλογος του καταλόγου που καθορίζεται στη ρύθμιση «Τοπικός κατάλογος» χρησιμοποιείται ήδη από τον λογαριασμό «%S». Παρακαλώ επιλέξτε έναν διαφορετικό κατάλογο.
+directoryChildUsedByOtherAccount=Ένας υποκατάλογος του καταλόγου που καθορίζεται στη ρύθμιση «Τοπικός κατάλογος» χρησιμοποιείται ήδη από τον λογαριασμό «%S». Παρακαλώ επιλέξτε έναν διαφορετικό κατάλογο.
 #Provide default example values for sample email address
 exampleEmailUserName=χρήστης
 exampleEmailDomain=example.net
@@ -65,7 +65,7 @@ identity-list-title=Ταυτότητες για %1$S
 
 identityDialogTitleAdd=Νέα ταυτότητα
 ## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
-identityDialogTitleEdit=Επεξεργασία "%S"
+identityDialogTitleEdit=Επεξεργασία του «%S»
 
 identity-edit-req=Θα πρέπει να καθορίσετε μια έγκυρη διεύθυνση email για αυτή την ταυτότητα.
 identity-edit-req-title=Σφάλμα δημιουργίας ταυτότητας
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/removeAccount.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/removeAccount.dtd
index d083ecc61e7e93d4190041549ec930a83afe3bd3..1e6b48158f96678fc1b230b1f4edaaee999ac964 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/removeAccount.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/removeAccount.dtd
@@ -13,7 +13,7 @@
 <!ENTITY removeDataChat.label         "Αφαίρεση δεδομένων συζητήσεων">
 <!ENTITY removeDataChat.accesskey     "δ">
 <!ENTITY removeDataLocalAccount.desc  "Διαγράφει από τον τοπικό σας δίσκο όλα τα μηνύματα, τους φακέλους και τα φίλτρα του λογαριασμού. Δεν επηρεάζει τα μηνύματα που υπάρχουν ακόμη στο διακομιστή. Μην το επιλέξετε αν σκοπεύετε να αρχειοθετήσετε τα τοπικά σας δεδομένα ή να τα χρησιμοποιήσετε πάλι στο &brandShortName;.">
-<!ENTITY removeDataServerAccount.desc "Διαγράφει από τον τοπικό σας δίσκο όλα τα μηνύματα, φακέλους και φίλτρα που είναι συσχετισμένα με το λογαριασμό. Τα μηνύματα και οι φάκελοι υπάρχουν ακόμη στο διακομιστή.">
+<!ENTITY removeDataServerAccount.desc "Διαγράφει από τον τοπικό σας δίσκο όλα τα μηνύματα, τους φακέλους και τα φίλτρα που σχετίζονται με τον λογαριασμό. Τα μηνύματα και οι φάκελοι υπάρχουν ακόμα στον διακομιστή.">
 <!ENTITY removeDataChatAccount.desc   "Διαγράφει όλα τα αρχεία συζητήσεων που είναι αποθηκευμένα στον τοπικό σας δίσκο για αυτό το λογαριασμό.">
 <!ENTITY showData.label               "Εμφάνιση τοποθεσίας δεδομένων">
 <!ENTITY showData.accesskey           "Ε">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/sanitize.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/sanitize.dtd
index 2169994fff40c5ba576dc7e3076ab5e1d39cc6b3..6293f19bf7da10886dadbf153277d83656a02a7c 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/sanitize.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/sanitize.dtd
@@ -7,7 +7,7 @@
 <!-- XXX rearrange entities to match physical layout when l10n isn't an issue -->
 <!-- LOCALIZATION NOTE (clearTimeDuration.*): "Time range to clear" dropdown.
      See UI mockup at bug 480169 -->
-<!ENTITY clearTimeDuration.label          "Χρονικό διάστημα εκκαθάρισης: ">
+<!ENTITY clearTimeDuration.label          "Χρονικό διάστημα εκκαθάρισης:">
 <!ENTITY clearTimeDuration.accesskey      "Ï„">
 <!ENTITY clearTimeDuration.lastHour       "Τελευταία ώρα">
 <!ENTITY clearTimeDuration.last2Hours     "Τελευταίες δύο ώρες">
@@ -29,7 +29,7 @@ that require it.  -->
 
 <!ENTITY itemHistory.label                 "Ιστορικό περιήγησης">
 <!ENTITY itemHistory.accesskey             "Ι">
-<!ENTITY itemCookies.label                 "Cookies">
+<!ENTITY itemCookies.label                 "Cookie">
 <!ENTITY itemCookies.accesskey             "C">
 <!ENTITY itemCache.label                   "Κρυφή μνήμη">
 <!ENTITY itemCache.accesskey               "Κ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/subscribe.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/subscribe.dtd
index 0c89d6eb51b9a2326a8a69bdee6520d824cb3f80..e1223ce318476e21f34de87ce167e23a6c4b51c7 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/subscribe.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/subscribe.dtd
@@ -18,5 +18,5 @@
 <!ENTITY subscribedHeader.label       "Συνδρομή">
 <!-- commenting out until bug 38906 is fixed
 <!ENTITY messagesHeader.label         "Messages"> -->
-<!ENTITY namefield.label              "Προβολή αντικειμένων που περιέχουν:">
+<!ENTITY namefield.label              "Εμφάνιση στοιχείων που περιέχουν:">
 <!ENTITY namefield.accesskey          "χ">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/textImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/textImportMsgs.properties
index df987ca0ee7a35f47a9d07409e104cf4e1319de8..c310965cad1102e0327e8e10c4ec02562e03ce88 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/textImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/textImportMsgs.properties
@@ -30,7 +30,7 @@
 # Description
 ## @name TEXTIMPORT_ADDRESS_SUCCESS
 ## @loc None
-2003=Εισήχθη το ευρετήριο %S
+2003=Έγινε εισαγωγή του ευρετηρίου «%S»
 
 # Error message
 ## @name TEXTIMPORT_ADDRESS_BADPARAM
@@ -40,9 +40,9 @@
 # Error message
 ## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
 ## @loc None
-2005=Σφάλμα πρόσβασης αρχείου για το ευρετήριο %S.
+2005=Σφάλμα πρόσβασης στο αρχείο του ευρετηρίου «%S».
 
 # Error message
 ## @name TEXTIMPORT_ADDRESS_CONVERTERROR
 ## @loc None
-2006=Σφάλμα εισαγωγής ευρετηρίου %S, ενδέχεται να μην έχουν εισαχθεί όλες οι διευθύνσεις.
+2006=Σφάλμα εισαγωγής του ευρετηρίου «%S», ενδέχεται να μην έχουν εισαχθεί όλες οι διευθύνσεις.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/vCardImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/vCardImportMsgs.properties
index 4c495ee9caf279c0e83cb92858d391304cfa5c83..74859dc2571f4240af57066174e74c806880a602 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/vCardImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/vCardImportMsgs.properties
@@ -9,18 +9,18 @@
 
 vCardImportName=Αρχείο vCard (.vcf)
 
-vCardImportDescription=Εισαγωγή βιβλίου διευθύνσεων από μορφή vCard
+vCardImportDescription=Εισαγωγή ευρετηρίου από μορφή vCard
 
-vCardImportAddressName=Ευρετήριο διευθύνσεων vCard
+vCardImportAddressName=Ευρετήριο vCard
 
 # LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
 # name of the address book being imported.
-vCardImportAddressSuccess=Έγινε εισαγωγή του βιβλίου διευθύνσεων %S
+vCardImportAddressSuccess=Έγινε εισαγωγή του ευρετηρίου «%S»
 
 # LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
 # name of the address book being imported.
-vCardImportAddressBadSourceFile=Σφάλμα στην πρόσβαση αρχείου για το ευρετήριο διευθύνσεων %S.
+vCardImportAddressBadSourceFile=Σφάλμα πρόσβασης στο αρχείο του ευρετηρίου «%S».
 
 # LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
 # name of the address book being imported.
-vCardImportAddressConvertError=Σφάλμα εισαγωγής ευρετηρίου διευθύνσεων %S. Μπορεί να μην εισαχθούν όλες οι διευθύνσεις.
+vCardImportAddressConvertError=Σφάλμα εισαγωγής του ευρετηρίου «%S», ενδέχεται να μην έχουν εισαχθεί όλες οι διευθύνσεις.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/viewSource.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/viewSource.properties
index 45b372a074389896ca8499d329e2abb87100534d..3c0426e412580fb7397e567770f82601f729c618 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/viewSource.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/viewSource.properties
@@ -2,7 +2,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/.
 
-goToLineTitle     = Μετάβαση στη γραμμή
+goToLineTitle     = Μετάβαση σε γραμμή
 goToLineText      = Εισαγάγετε αριθμό γραμμής
 invalidInputTitle = Μη έγκυρη είσοδος
 invalidInputText  = Ο αριθμός γραμμής που εισάγατε δεν είναι έγκυρος.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/el/chrome/el/locale/el/messenger/virtualFolderProperties.dtd
index c5a991dac9de507174ee84ea7f2246818523706e..c85a7755048a3123406350881e2d2eda92cc543a 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/virtualFolderProperties.dtd
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/virtualFolderProperties.dtd
@@ -5,10 +5,10 @@
 <!ENTITY virtualFolderProperties.title "Νέος αποθηκευμένος φάκελος αναζήτησης">
 <!ENTITY name.label                 "Όνομα:">
 <!ENTITY name.accesskey             "ν">
-<!ENTITY description.label          "Δημιουργία υποφακέλου σε:">
+<!ENTITY description.label          "Δημιουργία ως υποφακέλου του:">
 <!ENTITY description.accesskey      "Δ">
 
-<!ENTITY searchTermCaption.label "Ρύθμιση κριτηρίων αναζήτησης για αυτόν τον αποθηκευμένο φάκελο αναζήτησης:">
+<!ENTITY searchTermCaption.label "Ρύθμιση κριτηρίων αναζήτησης για τον αποθηκευμένο φάκελο αναζήτησης:">
 
 <!ENTITY folderSelectionCaption.label "Επιλογή φακέλων για αναζήτηση:">
 <!ENTITY chooseFoldersButton.label "Επιλογή…">
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/messenger/wmImportMsgs.properties b/thunderbird-l10n/el/chrome/el/locale/el/messenger/wmImportMsgs.properties
index ca1cbaaa9da2d2c7067fc1ca736ac3e7ec7bd7e7..23c74f146c97202c97029e2ee779b34a9920d58d 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/messenger/wmImportMsgs.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/messenger/wmImportMsgs.properties
@@ -25,26 +25,26 @@
 ## LOCALIZATION NOTE (2002): In this item, don't translate "%1$S" or "%2$d"
 ## The variable %1$S will contain the name of the Mailbox
 ## The variable %2$d will contain the number of messages
-2002=Mailbox %1$S, εισήχθησαν %2$d μηνύματα
+2002=Γραμματοκιβώτιο «%1$S», εισήχθησαν %2$d μηνύματα
 
 # Error message
 ## @name WMIMPORT_MAILBOX_BADPARAM
 ## @loc None
-2003=Εσφαλμένη παράμετρος κατά την εισαγωγή mailbox.
+2003=Περάστηκε εσφαλμένη παράμετρος στην εισαγωγή γραμματοκιβωτίου.
 
 # Error message
 ## @name WMIMPORT_MAILBOX_BADSOURCEFILE
 ## @loc None
 ## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
 ## The variable %S will contain the name of the Mailbox
-2004=Σφάλμα πρόσβασης αρχείου για το γραμματοκιβώτιο %S.
+2004=Σφάλμα πρόσβασης στο αρχείο του γραμματοκιβωτίου «%S».
 
 # Error message
 ## @name WMIMPORT_MAILBOX_CONVERTERROR
 ## @loc None
 ## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
 ## The variable %S will contain the name of the Mailbox
-2005=Σφάλμα εισαγωγής mailbox %S, μπορεί να μην έχουν εισαχθεί όλα τα μηνύματα από το mailbox.
+2005=Σφάλμα εισαγωγής του γραμματοκιβωτίου «%S», ενδέχεται να μην έχουν εισαχθεί όλα τα μηνύματά του.
 
 # Default name of imported addressbook
 ## @name WMIMPORT_DEFAULT_NAME
@@ -61,16 +61,16 @@
 ## @loc None
 ## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
 ## The variable %S will receive the name of the address book
-2008=Εισηγμένο ευρετήριο διευθύνσεων %S
+2008=Έγινε εισαγωγή του ευρετηρίου «%S»
 
 # Error message
 ## @name WMIMPORT_ADDRESS_CONVERTERROR
 ## @loc None
 ## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
 ## The variable %S will receive the name of the address book
-2009=Σφάλμα εισαγωγής ευρετηρίου διευθύνσεων %S, μπορει να μην έχουν εισαχθεί όλες οι διευθύνσεις.
+2009=Σφάλμα εισαγωγής του ευρετηρίου «%S», ενδέχεται να μην έχουν εισαχθεί όλες οι διευθύνσεις.
 
 # Error message
 ## @name WMIMPORT_ADDRESS_BADPARAM
 ## @loc None
-2010=Εσφαλμένη παράμετρος κατά την εισαγωγή ευρετηρίου διευθύνσεων.
+2010=Περάστηκε εσφαλμένη παράμετρος στην εισαγωγή ευρετηρίου.
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/mozapps/update/updates.properties b/thunderbird-l10n/el/chrome/el/locale/el/mozapps/update/updates.properties
index 6e622bb9412ac2d2e0e70a02e4cdf2e731c7cce9..b95fe0a6f280cf38c9dac05e7e0a242d2e6e8dcf 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/mozapps/update/updates.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/mozapps/update/updates.properties
@@ -11,7 +11,7 @@ noThanksButton=Όχι ευχαριστώ
 noThanksButton.accesskey=χ
 restartLaterButton=Επανεκκίνηση αργότερα
 restartLaterButton.accesskey=γ
-restartNowButton=Επανεκκίνηση %S
+restartNowButton=Επανεκκίνηση του %S
 restartNowButton.accesskey=ν
 
 statusFailed=Η εγκατάσταση απέτυχε
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/passwordmgr/passwordmgr.properties b/thunderbird-l10n/el/chrome/el/locale/el/passwordmgr/passwordmgr.properties
index 3d820d671d81a7a0af7fce275e1b97d0182d87dd..c797a6ce670ccd4fe22d5c2a775ec3765f90e7a9 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/passwordmgr/passwordmgr.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/passwordmgr/passwordmgr.properties
@@ -45,7 +45,7 @@ noUsernamePlaceholder=Χωρίς όνομα χρήστη
 togglePasswordLabel=Εμφάνιση κωδικού πρόσβασης
 togglePasswordAccessKey2=μ
 notNowButtonText = &Όχι τώρα
-neverForSiteButtonText = Πο&τέ για αυτό τον ιστότοπο
+neverForSiteButtonText = Πο&τέ για αυτόν τον ιστότοπο
 rememberButtonText = &Απομνημόνευση
 passwordChangeTitle = Επιβεβαίωση αλλαγής κωδικού
 # LOCALIZATION NOTE (updatePasswordMsg):
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/pipnss/nsserrors.properties b/thunderbird-l10n/el/chrome/el/locale/el/pipnss/nsserrors.properties
index d0db64f5320af951e1b01323df0a76ed63f40795..4769661e7319b3e4c69c58f2ec3ca0745e9da6f0 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/pipnss/nsserrors.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/pipnss/nsserrors.properties
@@ -265,8 +265,8 @@ SEC_ERROR_OCSP_REQUEST_NEEDS_SIG=Ο διακομιστής OCSP απαιτεί 
 SEC_ERROR_OCSP_UNAUTHORIZED_REQUEST=Ο διακομιστής OCSP αρνήθηκε αυτήν την αίτηση ως μη εξουσιοδοτημένη.
 SEC_ERROR_OCSP_UNKNOWN_RESPONSE_STATUS=Ο διακομιστής OCSP επέστρεψε μη αναγνωρίσιμη κατάσταση.
 SEC_ERROR_OCSP_UNKNOWN_CERT=Ο διακομιστής OCSP δεν έχει την κατάσταση για το πιστοποιητικό.
-SEC_ERROR_OCSP_NOT_ENABLED=Πρέπει να ενεργοποιήσετε το OCSP πριν εκτελέσετε αυτή την λειτουργία.
-SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=Πρέπει να ορίσετε έναν προεπιλεγμένο ανταποκριτή OCSP πριν εκτελέσετε αυτή την λειτουργία.
+SEC_ERROR_OCSP_NOT_ENABLED=Πρέπει να ενεργοποιήσετε το OCSP πριν εκτελέσετε αυτήν τη λειτουργία.
+SEC_ERROR_OCSP_NO_DEFAULT_RESPONDER=Πρέπει να ορίσετε έναν προεπιλεγμένο ανταποκριτή OCSP πριν εκτελέσετε αυτήν τη λειτουργία.
 SEC_ERROR_OCSP_MALFORMED_RESPONSE=Η απόκριση του διακομιστή OCSP ήταν κατεστραμμένη ή αφύσικα διαμορφωμένη.
 SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE=Ο υπογράφων της απόκρισης OCSP δεν είναι εξουσιοδοτημένος για να δώσει την κατάσταση αυτού του πιστοποιητικού.
 SEC_ERROR_OCSP_FUTURE_RESPONSE=Η απόκριση OCSP δεν είναι ακόμη έγκυρη (περιέχει μελλοντική ημερομηνία).
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/pipnss/pipnss.properties b/thunderbird-l10n/el/chrome/el/locale/el/pipnss/pipnss.properties
index c0818978889daf801589676ade5556a36aa908f7..23a65d47611fb3bafa975e0e8e023a73a9a01250 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/pipnss/pipnss.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/pipnss/pipnss.properties
@@ -260,9 +260,9 @@ PSMERR_HostReusedIssuerSerial=Έχετε λάβει ένα μη έγκυρο π
 # LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
 SSLConnectionErrorPrefix2=Προέκυψε σφάλμα κατά την σύνδεση στο %1$S. %2$S\n
 
-certErrorIntro=Το %S χρησιμοποιεί ένα άκυρο πιστοποιητικό ασφαλείας.
+certErrorIntro=Το %S χρησιμοποιεί ένα μη έγκυρο πιστοποιητικό ασφαλείας.
 
-certErrorTrust_SelfSigned=Το πιστοποιητικό δεν είναι έμπιστο επειδή έχει αυτο-υπογραφεί.
+certErrorTrust_SelfSigned=Το πιστοποιητικό δεν είναι αξιόπιστο επειδή είναι αυτοϋπογεγραμμένο.
 certErrorTrust_UnknownIssuer=Το πιστοποιητικό δεν είναι έμπιστο επειδή ο εκδότης είναι άγνωστος.
 certErrorTrust_UnknownIssuer2=Ο διακομιστής ενδέχεται να μην στέλνει τα κατάλληλα, ενδιάμεσα πιστοποιητικά.
 certErrorTrust_UnknownIssuer3=Ίσως πρέπει να εισαχθεί ένα επιπρόσθετο πιστοποιητικό ρίζας.
@@ -290,7 +290,7 @@ certErrorMitM2=Το %S υποστηρίζεται από τη μη κερδοσ
 # LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
 certErrorMitM3=Το %S χρησιμοποιεί το κατάστημα Mozilla CA για να επαληθεύσει ότι μια σύνδεση είναι ασφαλής, αντί για τα πιστοποιητικά που παρέχονται από το λειτουργικό σύστημα του χρήστη. Έτσι, αν ένα πρόγραμμα προστασίας από ιούς ή ένα δίκτυο παρεμβάλλεται σε μια σύνδεση με ένα πιστοποιητικό ασφαλείας που εκδίδεται από ένα CA που δεν είναι στο κατάστημα Mozilla CA, η σύνδεση θεωρείται επισφαλής.
 
-certErrorSymantecDistrustAdministrator=Μπορείτε να ειδοποιήσετε τον διαχειριστή του ιστοτόπου για αυτό το πρόβλημα.
+certErrorSymantecDistrustAdministrator=Μπορείτε να ειδοποιήσετε τον διαχειριστή του ιστοτόπου σχετικά με αυτό το πρόβλημα.
 
 # LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
 certErrorCodePrefix3=Κωδικός σφάλματος: %S
diff --git a/thunderbird-l10n/el/chrome/el/locale/el/pippki/pippki.properties b/thunderbird-l10n/el/chrome/el/locale/el/pippki/pippki.properties
index 1b611026eaa67d45b097cf600318cfd54cdeafad..2089d356c6d23dd5dfa1e85369614c164e2c8f01 100644
--- a/thunderbird-l10n/el/chrome/el/locale/el/pippki/pippki.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/el/pippki/pippki.properties
@@ -56,7 +56,7 @@ clientAuthStoredOn=Αποθηκευμένο σε: %1$S
 pageInfo_NoEncryption=Μη κρυπτογραφημένη σύνδεση
 pageInfo_Privacy_None1=Ο ιστότοπος %S δεν υποστηρίζει κρυπτογράφηση για τη σελίδα που βλέπετε.
 pageInfo_Privacy_None2=Οι πληροφορίες που στέλνονται μέσω διαδικτύου χωρίς κρυπτογράφηση δεν είναι ασφαλείς και μπορεί να τις δουν τρίτοι. \n 
-pageInfo_Privacy_None4=Η σελίδα που προβάλετε δεν ήταν κρυπτογραφημένη πριν τη μεταφορά μέσω του διαδικτύου.
+pageInfo_Privacy_None4=Η σελίδα που βλέπετε δεν ήταν κρυπτογραφημένη πριν από τη μεταφορά μέσω του διαδικτύου.
 # LOCALIZATION NOTE (pageInfo_EncryptionWithBitsAndProtocol and pageInfo_BrokenEncryption):
 # %1$S is the name of the encryption standard,
 # %2$S is the key size of the cipher.
@@ -72,8 +72,8 @@ pageInfo_CertificateTransparency_Compliant=Αυτός ο ιστότοπος συ
 
 # Token Manager
 password_not_set=(δεν έχει καθορισθεί)
-failed_pw_change=Αποτυχία αλλαγής κωδικού.
-incorrect_pw=Καταχωρήθηκε εσφαλμένος κωδικός.
+failed_pw_change=Δεν ήταν δυνατή η αλλαγή του κύριου κωδικού πρόσβασης.
+incorrect_pw=Δεν εισαγάγατε τον σωστό κύριο κωδικό πρόσβασης. Παρακαλώ δοκιμάστε ξανά.
 pw_change_ok=Επιτυχής αλλαγή του κύριου κωδικού πρόσβασης.
 pw_erased_ok=Προειδοποίηση! Διαγράψατε τον Κύριο κωδικό σας 
 pw_not_wanted=Προειδοποίηση: Αποφασίσατε να μη χρησιμοποιήσετε ένα Κύριο κωδικό.
@@ -81,5 +81,5 @@ pw_empty_warning=Τα αποθηκευμένα δεδομένα, κωδικοί
 pw_change2empty_in_fips_mode=Βρίσκεστε σε κατάσταση FIPS. Το FIPS απαιτεί έναν κύριο κωδικό που δεν είναι άδειος. 
 enable_fips=Ενεργοποίηση FIPS
 
-resetPasswordConfirmationTitle=Επαναφορά κυρίου κωδικού
+resetPasswordConfirmationTitle=Επαναφορά κύριου κωδικού πρόσβασης
 resetPasswordConfirmationMessage=Ο κωδικός σας αρχικοποιήθηκε.
diff --git a/thunderbird-l10n/el/chrome/el/locale/pdfviewer/viewer.properties b/thunderbird-l10n/el/chrome/el/locale/pdfviewer/viewer.properties
index 3b1b6e201ac2ce88146d824d0a94e4bfef2d4547..0b29fc4a318b4b55d05cb6bfbf2b639fd4aeb68f 100644
--- a/thunderbird-l10n/el/chrome/el/locale/pdfviewer/viewer.properties
+++ b/thunderbird-l10n/el/chrome/el/locale/pdfviewer/viewer.properties
@@ -93,7 +93,7 @@ document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
 document_properties_title=Τίτλος:
 document_properties_author=Συγγραφέας:
 document_properties_subject=Θέμα:
-document_properties_keywords=Λέξεις κλειδιά:
+document_properties_keywords=Λέξεις-κλειδιά:
 document_properties_creation_date=Ημερομηνία δημιουργίας:
 document_properties_modification_date=Ημερομηνία τροποποίησης:
 # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
@@ -142,11 +142,11 @@ toggle_sidebar_notification2.title=(Απ)ενεργοποίηση πλευρικ
 toggle_sidebar_label=(Απ)ενεργοποίηση πλευρικής στήλης
 document_outline.title=Εμφάνιση διάρθρωσης εγγράφου (διπλό κλικ για ανάπτυξη/σύμπτυξη όλων των στοιχείων)
 document_outline_label=Διάρθρωση εγγράφου
-attachments.title=Προβολή συνημμένων
+attachments.title=Εμφάνιση συνημμένων
 attachments_label=Συνημμένα
 layers.title=Εμφάνιση επιπέδων (διπλό κλικ για επαναφορά όλων των επιπέδων στην προεπιλεγμένη κατάσταση)
 layers_label=Επίπεδα
-thumbs.title=Προβολή μικρογραφιών
+thumbs.title=Εμφάνιση μικρογραφιών
 thumbs_label=Μικρογραφίες
 current_outline_item.title=Εύρεση τρέχοντος στοιχείου διάρθρωσης
 current_outline_item_label=Τρέχον στοιχείο διάρθρωσης
@@ -165,7 +165,7 @@ page_landmark=Σελίδα {{page}}
 thumb_page_title=Σελίδα {{page}}
 # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
 # number.
-thumb_page_canvas=Μικρογραφία της σελίδας {{page}}
+thumb_page_canvas=Μικρογραφία σελίδας {{page}}
 
 # Find panel button title and messages
 find_input.title=Εύρεση
@@ -177,8 +177,8 @@ find_next_label=Επόμενο
 find_highlight=Επισήμανση όλων
 find_match_case_label=Συμφωνία πεζών/κεφαλαίων
 find_entire_word_label=Ολόκληρες λέξεις
-find_reached_top=Έλευση στην αρχή του εγγράφου, συνέχεια από το τέλος
-find_reached_bottom=Έλευση στο τέλος του εγγράφου, συνέχεια από την αρχή
+find_reached_top=Φτάσατε στην αρχή του εγγράφου, συνέχεια από το τέλος
+find_reached_bottom=Φτάσατε στο τέλος του εγγράφου, συνέχεια από την αρχή
 # LOCALIZATION NOTE (find_match_count): The supported plural forms are
 # [one|two|few|many|other], with [other] as the default value.
 # "{{current}}" and "{{total}}" will be replaced by a number representing the
@@ -219,7 +219,7 @@ error_stack=Στοίβα: {{stack}}
 error_file=Αρχείο: {{file}}
 # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
 error_line=Γραμμή: {{line}}
-rendering_error=Προέκυψε σφάλμα κατά την ανάλυση της σελίδας.
+rendering_error=Προέκυψε σφάλμα κατά την εμφάνιση της σελίδας.
 
 # Predefined zoom values
 page_scale_width=Πλάτος σελίδας
@@ -235,7 +235,7 @@ loading_error_indicator=Σφάλμα
 
 # Loading indicator messages
 loading=Φόρτωση…
-loading_error=Προέκυψε ένα σφάλμα κατά τη φόρτωση του PDF.
+loading_error=Προέκυψε σφάλμα κατά τη φόρτωση του PDF.
 invalid_file_error=Μη έγκυρο ή κατεστραμμένο αρχείο PDF.
 missing_file_error=Λείπει αρχείο PDF.
 unexpected_response_error=Μη αναμενόμενη απόκριση από το διακομιστή.
@@ -248,12 +248,12 @@ annotation_date_string={{date}}, {{time}}
 # "{{type}}" will be replaced with an annotation type from a list defined in
 # the PDF spec (32000-1:2008 Table 169 – Annotation types).
 # Some common types are e.g.: "Check", "Text", "Comment", "Note"
-text_annotation_type.alt=[{{type}} Σχόλιο]
-password_label=Εισαγωγή κωδικού για το άνοιγμα του PDF αρχείου.
-password_invalid=Μη έγκυρος κωδικός. Προσπαθείστε ξανά.
+text_annotation_type.alt=[Σχόλιο «{{type}}»]
+password_label=Εισαγάγετε τον κωδικό πρόσβασης για να ανοίξετε αυτό το αρχείο PDF.
+password_invalid=Μη έγκυρος κωδικός πρόσβασης. Παρακαλώ δοκιμάστε ξανά.
 password_ok=OK
 password_cancel=Ακύρωση
 
 printing_not_supported=Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από το πρόγραμμα περιήγησης.
 printing_not_ready=Προειδοποίηση: Το PDF δεν φορτώθηκε πλήρως για εκτύπωση.
-web_fonts_disabled=Οι γραμματοσειρές Web απενεργοποιημένες: αδυναμία χρήσης των ενσωματωμένων γραμματοσειρών PDF.
+web_fonts_disabled=Οι γραμματοσειρές ιστού είναι ανενεργές: δεν είναι δυνατή η χρήση των ενσωματωμένων γραμματοσειρών PDF.
diff --git a/thunderbird-l10n/el/localization/el/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/el/localization/el/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..e386f3245fefe9717b62d598e5c10ab85295d0e5
--- /dev/null
+++ b/thunderbird-l10n/el/localization/el/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Διαγραφή εκδήλωσης
+       *[other] Διαγραφή εκδηλώσεων
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Θέλετε σίγουρα να διαγράψετε αυτήν την εκδήλωση;
+       *[other] Θέλετε σίγουρα να διαγράψετε αυτές τις { $count } εκδηλώσεις;
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Διαγραφή εργασίας
+       *[other] Διαγραφή εργασιών
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Θέλετε σίγουρα να διαγράψετε αυτήν την εργασία;
+       *[other] Θέλετε σίγουρα να διαγράψετε αυτές τις { $count } εργασίες;
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Διαγραφή στοιχείου
+       *[other] Διαγραφή στοιχείων
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Θέλετε σίγουρα να διαγράψετε αυτό το στοιχείο;
+       *[other] Θέλετε σίγουρα να διαγράψετε αυτά τα { $count } στοιχεία;
+    }
+calendar-delete-prompt-disable-message = Να μην ερωτηθώ ξανά.
diff --git a/thunderbird-l10n/el/localization/el/calendar/preferences.ftl b/thunderbird-l10n/el/localization/el/calendar/preferences.ftl
index 42be649711a367c7a2c031052606bbdc89a33afb..a6b44045ee56743227dbe3497eb051cb16dd6eff 100644
--- a/thunderbird-l10n/el/localization/el/calendar/preferences.ftl
+++ b/thunderbird-l10n/el/localization/el/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Επεξεργασία εκδηλώσεων και εργασιών σε νέα καρτέλα αντί σε παράθυρο διαλόγου.
     .accesskey = κ
+prompt-delete-label =
+    .label = Ερώτηση πριν από τη διαγραφή εκδηλώσεων και εργασιών.
+    .accesskey = ρ
 accessibility-legend = Προσβασιμότητα
 accessibility-colors-label =
     .label = Βελτιστοποίηση χρωμάτων για προσβασιμότητα
diff --git a/thunderbird-l10n/el/localization/el/crashreporter/aboutcrashes.ftl b/thunderbird-l10n/el/localization/el/crashreporter/aboutcrashes.ftl
index 46b832807a020531d8105725ebe2663160927928..6e0c9ae7aa3bafcd7afbdd476798a25700ec02e2 100644
--- a/thunderbird-l10n/el/localization/el/crashreporter/aboutcrashes.ftl
+++ b/thunderbird-l10n/el/localization/el/crashreporter/aboutcrashes.ftl
@@ -8,18 +8,15 @@ delete-button-label = Εκκαθάριση όλων
 delete-confirm-title = Σίγουρα;
 delete-unsubmitted-description = Αυτή η ενέργεια θα διαγράψει όλες τις μη υποβληθείσες αναφορές καταρρεύσεων και δεν είναι αναστρέψιμη.
 delete-submitted-description = Αυτή η ενέργεια θα διαγράψει τη λίστα των υποβληθέντων αναφορών κατάρρευσης, αλλά όχι τα υποβληθέντα δεδομένα. Δεν είναι δυνατή η αναίρεση.
-
 crashes-unsubmitted-label = Μη υποβληθείσες αναφορές κατάρρευσης
-id-heading = Αναγνωριστικό αναφοράς
+id-heading = ID αναφοράς
 date-crashed-heading = Ημερομηνία κατάρρευσης
 submit-crash-button-label = Υποβολή
 # This text is used to replace the label of the crash submit button
 # if the crash submission fails.
 submit-crash-button-failure-label = Αποτυχία
-
 crashes-submitted-label = Υποβληθείσες αναφορές κατάρρευσης
 date-submitted-heading = Ημερομηνία υποβολής
 view-crash-button-label = Προβολή
-
 no-reports-label = Δεν έχουν υποβληθεί αναφορές προβλημάτων.
 no-config-label = Αυτή η εφαρμογή δεν έχει ρυθμιστεί για να εμφανίζει αναφορές προβλημάτων. Θα πρέπει να ρυθμιστούν οι προτιμήσεις στο <code>breakpad.reportURL</code>.
diff --git a/thunderbird-l10n/el/localization/el/devtools/client/aboutdebugging.ftl b/thunderbird-l10n/el/localization/el/devtools/client/aboutdebugging.ftl
index 74375c7fcd9dfcaf5cc65d64f296d25ba3e50ed8..c3eeabbb8c06b15754c2062f2505bcd576634f7e 100644
--- a/thunderbird-l10n/el/localization/el/devtools/client/aboutdebugging.ftl
+++ b/thunderbird-l10n/el/localization/el/devtools/client/aboutdebugging.ftl
@@ -83,7 +83,7 @@ about-debugging-setup-title = Ρύθμιση
 # Introduction text in the Setup page to explain how to configure remote debugging.
 about-debugging-setup-intro = Ρυθμίστε τη μέθοδο σύνδεσης για απομακρυσμένο έλεγχο σφαλμάτων στη συσκευή σας.
 # Explanatory text in the Setup page about what the 'This Firefox' page is for
-about-debugging-setup-this-firefox2 = Χρησιμοποιήστε την επιλογή <a>{ about-debugging-this-firefox-runtime-name }</a> για να κάνετε έλεγχο σφαλμάτων στις επεκτάσεις και τα service workers σε αυτή την έκδοση του { -brand-shorter-name }.
+about-debugging-setup-this-firefox2 = Χρησιμοποιήστε την επιλογή <a>{ about-debugging-this-firefox-runtime-name }</a> για να κάνετε έλεγχο σφαλμάτων στις επεκτάσεις και τα service worker σε αυτή την έκδοση του { -brand-shorter-name }.
 # Title of the heading Connect section of the Setup page.
 about-debugging-setup-connect-heading = Σύνδεση συσκευής
 # USB section of the Setup page
@@ -155,13 +155,13 @@ about-debugging-runtime-tabs =
     .name = Καρτέλες
 # Title of the service workers category.
 about-debugging-runtime-service-workers =
-    .name = Service Workers
+    .name = Service worker
 # Title of the shared workers category.
 about-debugging-runtime-shared-workers =
-    .name = Shared Workers
+    .name = Shared worker
 # Title of the other workers category.
 about-debugging-runtime-other-workers =
-    .name = Άλλα workers
+    .name = Άλλα worker
 # Title of the processes category.
 about-debugging-runtime-processes =
     .name = Διεργασίες
@@ -171,7 +171,7 @@ about-debugging-runtime-profile-button2 = Επιδόσεις προφίλ
 # This string is displayed in the runtime page if the current configuration of the
 # target runtime is incompatible with service workers. "Learn more" points to MDN.
 # https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible
-about-debugging-runtime-service-workers-not-compatible = Οι ρυθμίσεις του προγράμματος περιήγησής σας δεν είναι συμβατές με τα service workers. <a>Μάθετε περισσότερα</a>
+about-debugging-runtime-service-workers-not-compatible = Οι ρυθμίσεις του προγράμματος περιήγησής σας δεν είναι συμβατές με τα service worker. <a>Μάθετε περισσότερα</a>
 # This string is displayed in the runtime page if the remote browser version is too old.
 # "Troubleshooting" link points to https://developer.mozilla.org/docs/Tools/about:debugging#Troubleshooting
 # { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
diff --git a/thunderbird-l10n/el/localization/el/devtools/client/application.ftl b/thunderbird-l10n/el/localization/el/devtools/client/application.ftl
index 1cc255075d042a39123bb4c0652eb2672ef6547a..c7c8847ce3d2a87af0724d5f5a65f23a08563ca5 100644
--- a/thunderbird-l10n/el/localization/el/devtools/client/application.ftl
+++ b/thunderbird-l10n/el/localization/el/devtools/client/application.ftl
@@ -13,46 +13,36 @@
 ### best documentation on web development on the web.
 
 # Header for the list of Service Workers displayed in the application panel for the current page.
-serviceworker-list-header = Service Workers
-
+serviceworker-list-header = Service worker
 # Text displayed next to the list of Service Workers to encourage users to check out
 # about:debugging to see all registered Service Workers.
-serviceworker-list-aboutdebugging = Άνοιγμα του <a>about:debugging</a> για Service Workers από άλλους τομείς
-
+serviceworker-list-aboutdebugging = Άνοιγμα του <a>about:debugging</a> για service worker από άλλους τομείς
 # Text for the button to unregister a Service Worker. Displayed for active Service Workers.
 serviceworker-worker-unregister = Κατάργηση εγγραφής
-
 # Text for the debug link displayed for an already started Service Worker. Clicking on the
 # link opens a new devtools toolbox for this service worker. The title attribute is only
 # displayed when the link is disabled.
 serviceworker-worker-debug = Έλεγχος σφαλμάτων
     .title = Ο έλεγχος σφαλμάτων μπορεί να γίνει μόνο σε εκτελούμενα service worker
-
 # Text for the debug link displayed for an already started Service Worker, when we
 # are in multi e10s mode, which effectively disables this link.
 serviceworker-worker-debug-forbidden = Έλεγχος σφαλμάτων
     .title = Ο έλεγχος σφαλμάτων των service worker μπορεί να γίνει μόνο αν είναι ανενεργό το multi e10s
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start2 = Έναρξη
-    .title = Η έναρξη των service workers μπορεί να γίνει μόνο αν είναι ανενεργό το multi e10s
-
+    .title = Η έναρξη των service worker μπορεί να γίνει μόνο αν είναι ανενεργό το multi e10s
 # Alt text for the image icon displayed inside a debug link for a service worker.
 serviceworker-worker-inspect-icon =
     .alt = Επιθεώρηση
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start3 = Έναρξη
-
 # Text displayed for the updated time of the service worker. The <time> element will
 # display the last update time of the service worker script.
 serviceworker-worker-updated = Ενημέρωση: <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
-
 # Text displayed next to the URL for the source of the service worker (e-g. "Source my/path/to/worker-js")
 serviceworker-worker-source = Πηγή
-
 # Text displayed next to the current status of the service worker.
 serviceworker-worker-status = Κατάσταση
 
@@ -62,126 +52,93 @@ serviceworker-worker-status = Κατάσταση
 # Service Worker status. A running service worker is registered, currently executed, can
 # be debugged and stopped.
 serviceworker-worker-status-running = Σε λειτουργία
-
 # Service Worker status. A stopped service worker is registered but not currently active.
 serviceworker-worker-status-stopped = Σε διακοπή
-
 # Text displayed when no service workers are visible for the current page. Clicking on the
 # link will open https://developer-mozilla-org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro = Θα πρέπει να καταχωρήσετε ένα Service Worker για να επιθεωρηθεί εδώ. <a>Μάθετε περισσότερα</a>
-
 # Text displayed when there are no Service Workers to display for the current page,
 # introducing hints to debug Service Worker issues.
 serviceworker-empty-suggestions = Εάν η τρέχουσα σελίδα πρέπει να έχει ένα service worker, ορίστε μερικά πράγματα που μπορείτε να δοκιμάσετε
-
 # Suggestion to check for errors in the Console to investigate why a service worker is not
 # registered. Clicking on the link opens the webconsole.
 serviceworker-empty-suggestions-console = Αναζήτηση σφαλμάτων στην κονσόλα. <a>Άνοιγμα κονσόλας</a>
-
 # Suggestion to use the debugger to investigate why a service worker is not registered.
 # Clicking on the link will switch from the Application panel to the debugger.
 serviceworker-empty-suggestions-debugger = Καταχωρήστε το service worker σας και αναζητήστε εξαιρέσεις. <a>Άνοιγμα ελέγχου σφαλμάτων</a>
-
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Clicking on the link will open about:debugging in a new tab.
-serviceworker-empty-suggestions-aboutdebugging = Επιθεωρήστε Service Workers από άλλους τομείς. <a>Άνοιγμα about:debugging</a>
-
+serviceworker-empty-suggestions-aboutdebugging = Επιθεωρήστε service worker από άλλους τομείς. <a>Άνοιγμα about:debugging</a>
 # Text displayed when no service workers are visible for the current page.
-serviceworker-empty-intro2 = Δεν βρέθηκαν service workers
-
+serviceworker-empty-intro2 = Δεν βρέθηκαν service worker
 # Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro-link = Μάθετε περισσότερα
-
 # Text displayed when there are no Service Workers to display for the current page,
 # introducing hints to debug Service Worker issues.
 # <a> and <span> are links that will open the webconsole and the debugger, respectively.
 serviceworker-empty-suggestions2 = Αν η τρέχουσα σελίδα θα έπρεπε να έχει service worker, μπορείτε να αναζητήσετε σφάλματα στην <a>Κονσόλα</a> ή να καταγράψετε το service worker σας στον <span>Έλεγχο σφαλμάτων</span>.
-
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Link will open about:debugging in a new tab.
-serviceworker-empty-suggestions-aboutdebugging2 = Προβολή service workers από άλλους τομείς
-
+serviceworker-empty-suggestions-aboutdebugging2 = Προβολή service worker από άλλους τομείς
 # Header for the Manifest page when we have an actual manifest
 manifest-view-header = Δήλωση εφαρμογής
-
 # Header for the Manifest page when there's no manifest to inspect
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro = Πρέπει να προσθέσετε μια δήλωση εφαρμογής web για να την επιθεωρήσετε εδώ. <a>Μάθετε περισσότερα</a>
-
 # Header for the Manifest page when there's no manifest to inspect
 manifest-empty-intro2 = Δεν βρέθηκε δήλωση εφαρμογής web
-
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro-link = Μάθετε πώς να προσθέσετε μια δήλωση
-
 # Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
 manifest-item-warnings = Σφάλματα και προειδοποιήσεις
-
 # Header for the Identity section of Manifest inspection displayed in the application panel.
 manifest-item-identity = Ταυτότητα
-
 # Header for the Presentation section of Manifest inspection displayed in the application panel.
 manifest-item-presentation = Παρουσίαση
-
 # Header for the Icon section of Manifest inspection displayed in the application panel.
 manifest-item-icons = Εικονίδια
-
 # Text displayed while we are loading the manifest file
 manifest-loading = Φόρτωση δήλωσης…
-
 # Text displayed when the manifest has been successfully loaded
 manifest-loaded-ok = Η δήλωση φορτώθηκε.
-
 # Text displayed as a caption when there has been an error while trying to
 # load the manifest
 manifest-loaded-error = Προέκυψε σφάλμα κατά τη φόρτωσης της δήλωσης:
-
 # Text displayed as an error when there has been a Firefox DevTools error while
 # trying to load the manifest
 manifest-loaded-devtools-error = Σφάλμα Firefox DevTools
-
 # Text displayed when the page has no manifest available
 manifest-non-existing = Δεν βρέθηκε δήλωση προς επιθεώρηση.
-
 # Text displayed when the page has a manifest embedded in a Data URL and
 # thus we cannot link to it.
 manifest-json-link-data-url = Η δήλωση είναι ενσωματωμένη σε ένα URL δεδομένων.
-
 # Text displayed at manifest icons to label their purpose, as declared
 # in the manifest.
 manifest-icon-purpose = Σκοπός: <code>{ $purpose }</code>
-
 # Text displayed as the alt attribute for <img> tags showing the icons in the
 # manifest.
 manifest-icon-img =
     .alt = Εικονίδιο
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest. `$sizes` is a user-dependent string that has been parsed as a
 # space-separated list of `<width>x<height>` sizes or the keyword `any`.
 manifest-icon-img-title = Εικονίδιο με μεγέθη: { $sizes }
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest, in case there's no icon size specified by the user
 manifest-icon-img-title-no-sizes = Εικονίδιο ακαθόριστου μεγέθους
-
 # Sidebar navigation item for Manifest sidebar item section
 sidebar-item-manifest = Δήλωση
     .alt = Εικονίδιο δήλωσης
     .title = Δήλωση
-
 # Sidebar navigation item for Service Workers sidebar item section
-sidebar-item-service-workers = Service Workers
-    .alt = Εικονίδιο Service Workers
-    .title = Service Workers
-
+sidebar-item-service-workers = Service worker
+    .alt = Εικονίδιο service worker
+    .title = Service worker
 # Text for the ALT and TITLE attributes of the warning icon
 icon-warning =
     .alt = Εικονίδιο προειδοποίησης
     .title = Προειδοποίηση
-
 # Text for the ALT and TITLE attributes of the error icon
 icon-error =
     .alt = Εικονίδιο σφάλματος
     .title = Σφάλμα
-
diff --git a/thunderbird-l10n/el/localization/el/devtools/client/perftools.ftl b/thunderbird-l10n/el/localization/el/devtools/client/perftools.ftl
index cea9882adea9233b5878db0b2d0656775b8f6821..d0457cc35dbc7a0d8ffc530a9d89a9370d1fa151 100644
--- a/thunderbird-l10n/el/localization/el/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/el/localization/el/devtools/client/perftools.ftl
@@ -20,7 +20,7 @@ perftools-heading-features = Λειτουργίες
 perftools-heading-features-default = Λειτουργίες (Προτείνεται ενεργοποίηση από προεπιλογή)
 perftools-heading-features-disabled = Ανενεργές λειτουργίες
 perftools-heading-features-experimental = Πειραματικό
-perftools-heading-threads = Threads
+perftools-heading-threads = Νήματα
 perftools-heading-local-build = Τοπική έκδοση δομής
 
 ##
@@ -42,9 +42,7 @@ perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits:
 
 # The size of the memory buffer used to store things in the profiler.
 perftools-range-entries-label = Μέγεθος buffer:
-
 perftools-custom-threads-label = Προσθήκη προσαρμοσμένων νημάτων ανά όνομα:
-
 perftools-devtools-interval-label = Διάστημα:
 perftools-devtools-threads-label = Νήματα:
 perftools-devtools-settings-label = Ρυθμίσεις
@@ -80,7 +78,7 @@ perftools-thread-gecko-main =
 perftools-thread-compositor =
     .title = Συνθέτει διαφορετικά, χρωματισμένα στοιχεία στη σελίδα
 perftools-thread-dom-worker =
-    .title = Αυτό διαχειρίζεται web workers και service workers
+    .title = Αυτό διαχειρίζεται web worker και service worker
 perftools-thread-renderer =
     .title = Το νήμα που εκτελεί κλήσεις OpenGL όταν είναι ενεργοποιημένο το WebRender
 perftools-thread-render-backend =
@@ -97,16 +95,12 @@ perftools-thread-img-decoder =
     .title = Νήματα αποκωδικοποίησης εικόνων
 perftools-thread-dns-resolver =
     .title = Η ανάλυση DNS συμβαίνει σε αυτό το thread
-perftools-thread-js-helper =
-    .title = Εργασία παρασκήνιου της μηχανής JS, όπως μεταγλωττίσεις εκτός του κύριου νήματος
-
 perftools-thread-task-controller =
     .title = Νήματα του TaskController pool
 
 ##
 
 perftools-record-all-registered-threads = Παράκαμψη των παραπάνω επιλογών και εγγραφή όλων των καταχωρημένων νημάτων
-
 perftools-tools-threads-input-label =
     .title = Αυτά τα ονόματα νημάτων είναι σε λίστα με διαχωρισμό με κόμματα όπου χρησιμοποιείται για την ενεργοποίηση της δημιουργίας προφίλ για νήματα στο εργαλείο προφίλ. Το όνομα θα πρέπει να περιέχει ένα μέρος του ονόματος του νήματος για αντιστοίχιση. Γίνεται διάκριση στο κενό διάστημα.
 
@@ -115,9 +109,7 @@ perftools-tools-threads-input-label =
 ## preferences are true.
 
 perftools-onboarding-message = <b>Νέο</b>: Το { -profiler-brand-name } έχει ενσωματωθεί στα Εργαλεία προγραμματιστών. <a>Μάθετε περισσότερα</a> σχετικά με αυτό το νέο ισχυρό εργαλείο.
-
 # `options-context-advanced-settings` is defined in toolbox-options.ftl
 perftools-onboarding-reenable-old-panel = (Για περιορισμένο χρονικό διάστημα, μπορείτε να ανοίξετε το αρχικό παράθυρο "Επιδόσεις" από τις <a>{ options-context-advanced-settings }</a>)
-
 perftools-onboarding-close-button =
     .aria-label = Κλείσιμο μηνύματος υποδοχής
diff --git a/thunderbird-l10n/el/localization/el/devtools/client/toolbox-options.ftl b/thunderbird-l10n/el/localization/el/devtools/client/toolbox-options.ftl
index 0c72370038eb4a5eff363cad4fd197b5f4d951f2..57d5003fb9b7ac64c86e0f7378e9d844eb93d068 100644
--- a/thunderbird-l10n/el/localization/el/devtools/client/toolbox-options.ftl
+++ b/thunderbird-l10n/el/localization/el/devtools/client/toolbox-options.ftl
@@ -10,19 +10,15 @@
 
 # The heading
 options-select-default-tools-label = Προεπιλεγμένα εργαλεία ανάπτυξης
-
 # The label for the explanation of the * marker on a tool which is currently not supported
 # for the target of the toolbox.
 options-tool-not-supported-label = * Δεν υποστηρίζεται για τον τρέχοντα στόχο εργαλειοθήκης
-
 # The label for the heading of group of checkboxes corresponding to the developer tools
 # added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
 options-select-additional-tools-label = Τα εργαλεία για προγραμματιστές εγκαταστάθηκαν από τα πρόσθετα
-
 # The label for the heading of group of checkboxes corresponding to the default developer
 # tool buttons.
 options-select-enabled-toolbox-buttons-label = Διαθέσιμα κουμπιά εργαλειοθήκης
-
 # The label for the heading of the radiobox corresponding to the theme
 options-select-dev-tools-theme-label = Θέματα
 
@@ -30,12 +26,10 @@ options-select-dev-tools-theme-label = Θέματα
 
 # The heading
 options-context-inspector = Επιθεώρηση
-
 # The label for the checkbox option to show user agent styles
 options-show-user-agent-styles-label = Εμφάνιση στυλ προγράμματος περιήγησης
 options-show-user-agent-styles-tooltip =
     .title = Η ενεργοποίηση αυτού θα εμφανίσει τα προεπιλεγμένα στυλ που φορτώνονται από το πρόγραμμα περιήγησης.
-
 # The label for the checkbox option to enable collapse attributes
 options-collapse-attrs-label = Κόψιμο ιδιοτήτων DOM
 options-collapse-attrs-tooltip =
@@ -54,7 +48,6 @@ options-default-color-unit-name = Ονόματα χρωμάτων
 
 # The heading
 options-styleeditor-label = Επεξεργασία στυλ
-
 # The label for the checkbox that toggles autocompletion of css in the Style Editor
 options-stylesheet-autocompletion-label = Αυτόματη συμπλήρωση CSS
 options-stylesheet-autocompletion-tooltip =
@@ -64,17 +57,14 @@ options-stylesheet-autocompletion-tooltip =
 
 # The heading
 options-screenshot-label = Συμπεριφορά στιγμιότυπου
-
 # Label for the checkbox that toggles screenshot to clipboard feature
 options-screenshot-clipboard-label = Στιγμιότυπο στο πρόχειρο
 options-screenshot-clipboard-tooltip =
     .title = Αποθηκεύει το στιγμιότυπο απευθείας στο πρόχειρο
-
 # Label for the checkbox that toggles screenshot to clipboard feature
 options-screenshot-clipboard-only-label = Στιγμιότυπο μόνο στο πρόχειρο
 options-screenshot-clipboard-tooltip2 =
     .title = Αποθηκεύει το στιγμιότυπο απευθείας στο πρόχειρο
-
 # Label for the checkbox that toggles the camera shutter audio for screenshot tool
 options-screenshot-audio-label = Αναπαραγωγή ήχου κλείστρου κάμερας
 options-screenshot-audio-tooltip =
@@ -84,7 +74,6 @@ options-screenshot-audio-tooltip =
 
 # The heading
 options-sourceeditor-label = Προτιμήσεις επεξεργασίας
-
 options-sourceeditor-detectindentation-tooltip =
     .title = Υπολογισμός εσοχής με βάση το περιεχόμενο της πηγής
 options-sourceeditor-detectindentation-label = Εντοπισμός εσοχής
@@ -102,40 +91,32 @@ options-sourceeditor-keybinding-default-label = Προεπιλογή
 
 # The heading (this item is also used in perftools.ftl)
 options-context-advanced-settings = Σύνθετες ρυθμίσεις
-
 # The label for the checkbox that toggles the HTTP cache on or off
 options-disable-http-cache-label = Απενεργοποίηση κρυφής μνήμης HTTP (όταν είναι ανοικτή η εργαλειοθήκη)
 options-disable-http-cache-tooltip =
-    .title = Η ενεργοποίηση αυτής της επιλογής θα απενεργοποιήσει την κρυφή μνήμη HTTP για όλες τις καρτέλες που έχουν ανοικτή την εργαλειοθήκη. Τα service worker δεν επηρεάζονται από αυτή την επιλογή.
-
+    .title = Η ενεργοποίηση αυτής της επιλογής θα απενεργοποιήσει την κρυφή μνήμη HTTP για όλες τις καρτέλες που έχουν ανοικτή την εργαλειοθήκη. Τα service worker δεν επηρεάζονται από αυτήν την επιλογή.
 # The label for checkbox that toggles JavaScript on or off
 options-disable-javascript-label = Απενεργοποίηση JavaScript *
 options-disable-javascript-tooltip =
     .title = Η ενεργοποίηση αυτής της επιλογής θα απενεργοποιήσει το JavaScript για την τρέχουσα καρτέλα. Αν η καρτέλα ή η εργαλειοθήκη είναι κλειστή, τότε αυτή η ρύθμιση θα ξεχαστεί.
-
 # The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
 options-enable-chrome-label = Ενεργοποίηση εργαλειοθηκών chrome και προσθέτων ελέγχου σφαλμάτων
 options-enable-chrome-tooltip =
     .title = Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να χρησιμοποιήσετε διάφορα εργαλεία ανάπτυξης στο πλαίσιο του προγράμματος περιήγησης (μέσω του μενού Εργαλεία > Ανάπτυξη web > Εργαλειοθήκη προγράμματος περιήγησης) και να κάνετε έλεγχο σφαλμάτων στα πρόσθετα από τη Διαχείριση προσθέτων
-
 # The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
 options-enable-remote-label = Ενεργοποίηση απομακρυσμένου ελέγχου σφαλμάτων
 options-enable-remote-tooltip2 =
     .title = Η ενεργοποίηση αυτής της επιλογής θα επιτρέψει τον απομακρυσμένο έλεγχο σφαλμάτων σε αυτό το παράθυρο του προγράμματος περιήγησης
-
 # The label for checkbox that toggles the service workers testing over HTTP on or off.
-options-enable-service-workers-http-label = Ενεργοποίηση Service Workers μέσω HTTP (όταν είναι ανοικτή η εργαλειοθήκη)
+options-enable-service-workers-http-label = Ενεργοποίηση service worker μέσω HTTP (όταν είναι ανοικτή η εργαλειοθήκη)
 options-enable-service-workers-http-tooltip =
-    .title = Η ενεργοποίηση αυτής της επιλογής θα ενεργοποιήσει τα service workers του HTTP για όλες τις καρτέλες που έχουν ανοικτή την εργαλειοθήκη.
-
+    .title = Η ενεργοποίηση αυτής της επιλογής θα ενεργοποιήσει τα service worker του HTTP για όλες τις καρτέλες που έχουν ανοικτή την εργαλειοθήκη.
 # The label for the checkbox that toggles source maps in all tools.
 options-source-maps-label = Ενεργοποίηση χαρτών πηγής
 options-source-maps-tooltip =
     .title = Αν ενεργοποιήσετε αυτή την επιλογή, οι πηγές θα αντιστοιχιστούν στα εργαλεία.
-
 # The message shown for settings that trigger page reload
 options-context-triggers-page-refresh = * Τρέχουσα συνεδρία μόνο, επαναφορτώνει τη σελίδα
-
 # The label for the checkbox that toggles the display of the platform data in the
 # Profiler i.e. devtools.profiler.ui.show-platform-data a boolean preference in about:config
 options-show-platform-data-label = Εμφάνιση δεδομένων πλατφόρμας Gecko
diff --git a/thunderbird-l10n/el/localization/el/devtools/startup/aboutDevTools.ftl b/thunderbird-l10n/el/localization/el/devtools/startup/aboutDevTools.ftl
index da0a3fb224011b55ad4f238a56dec4417be26487..253396a692d3251d6b83327050d59c89463b4fd1 100644
--- a/thunderbird-l10n/el/localization/el/devtools/startup/aboutDevTools.ftl
+++ b/thunderbird-l10n/el/localization/el/devtools/startup/aboutDevTools.ftl
@@ -8,7 +8,7 @@ enable-inspect-element-title = Ενεργοποιήστε τα εργαλεία
 enable-inspect-element-message = Εξετάστε και επεξεργαστείτε HTML και CSS με την Επιθεώρηση των εργαλείων ανάπτυξης.
 enable-about-debugging-message = Αναπτύξτε και διορθώστε WebExtensions, web worker, service worker και πολλά άλλα με τα εργαλεία ανάπτυξης του Firefox.
 enable-key-shortcut-message = Ενεργοποιήσατε μια συντόμευση των εργαλείων ανάπτυξης. Αν το κάνατε κατά λάθος, μπορείτε να κλείσετε αυτή την καρτέλα.
-enable-menu-message = Τελειοποιήστε τα HTML, CSS και JavaScript της ιστοσελίδας σας με εργαλεία όπως η Επιθεώρηση και ο Έλεγχος σφαλμάτων.
+enable-menu-message = Τελειοποιήστε τα HTML, CSS και JavaScript του ιστοτόπου σας με εργαλεία όπως η Επιθεώρηση και ο Έλεγχος σφαλμάτων.
 enable-common-message = Τα εργαλεία ανάπτυξης του Firefox είναι ανενεργά από προεπιλογή για να έχετε περισσότερο έλεγχο στο πρόγραμμα περιήγησής σας.
 enable-learn-more-link = Μάθετε περισσότερα για τα εργαλεία ανάπτυξης
 enable-enable-button = Ενεργοποίηση εργαλείων ανάπτυξης
@@ -33,7 +33,7 @@ features-console-desc = Καταγραφή προβλημάτων σε CSS, Java
 features-debugger-title = Έλεγχος σφαλμάτων
 features-debugger-desc = Ισχυρός έλεγχος σφαλμάτων JavaScript για το πλαίσιό σας. <a data-l10n-name="learn-more">{ features-learn-more }</a>
 features-network-title = Δίκτυο
-features-network-desc = Εποπτεία των αιτημάτων δικτύου που ενδέχεται να καθυστερούν ή να αποκλείουν την ιστοσελίδα σας. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-network-desc = Εποπτεία των αιτημάτων δικτύου που ενδέχεται να καθυστερούν ή να αποκλείουν τον ιστότοπό σας. <a data-l10n-name="learn-more">{ features-learn-more }</a>
 features-storage-title = Αποθήκευση
 features-storage-desc = Διαχείριση κρυφής μνήμης, cookies, βάσεων δεδομένων και δεδομένων συνεδρίας. <a data-l10n-name="learn-more">{ features-learn-more }</a>
 features-responsive-title = Ευελιξία σχεδίου
diff --git a/thunderbird-l10n/el/localization/el/messenger/aboutRights.ftl b/thunderbird-l10n/el/localization/el/messenger/aboutRights.ftl
index 873d44a63471d3f73f6c23e32e97b87bc5e55a64..4f7caaf4e252959fdf32c0fa7e8d270133abe318 100644
--- a/thunderbird-l10n/el/localization/el/messenger/aboutRights.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/aboutRights.ftl
@@ -16,7 +16,11 @@ rights-intro-point-3 =
     σχολίων, παραχωρείτε στη { -vendor-short-name } το δικαίωμα χρησιμοποίησης των σχολίων
     για τη βελτίωση των προϊόντων της, τη δημοσίευσή τους στις ιστοσελίδες της
     και τη διανομή τους.
-rights-intro-point-4 = Ο τρόπος χρήσης των προσωπικών σας πληροφοριών και των σχολίων που υποβάλλονται στη { -vendor-short-name } μέσω του { -brand-short-name } περιγράφεται στην <a data-l10n-name="mozilla-privacy-policy-link">Πολιτική απορρήτου του { -brand-short-name }</a>.
+rights-intro-point-4 =
+    Ο τρόπος χρήσης των προσωπικών σας πληροφοριών και των σχολίων που υποβάλλετε στη
+    { -vendor-short-name } μέσω του { -brand-short-name } περιγράφεται στην
+    <a data-l10n-name="mozilla-privacy-policy-link">Πολιτική απορρήτου του
+    { -brand-short-name }</a>.
 rights-intro-point-4-unbranded = Τυχόν σχετικές πολιτικές προστασίας απορρήτου πρέπει να αναφέρονται εδώ.
 rights-intro-point-5 = Μερικές από τις λειτουργίες του { -brand-short-name } χρησιμοποιούν διαδικτυακές πληροφοριακές υπηρεσίες, για τις οποίες όμως δεν μπορούμε να εγγυηθούμε ότι είναι 100% χωρίς σφάλματα. Περισσότερες πληροφορίες, μαζί με πληροφορίες για την απενεργοποίηση αυτών των υπηρεσιών μπορείτε να βρείτε στους <a data-l10n-name="mozilla-service-terms-link">όρους υπηρεσίας</a>.
 rights-intro-point-5-unbranded = Αν αυτό το προϊόν περιέχει ενσωματωμένες υπηρεσίες, όλοι οι όροι αυτών των υπηρεσιών θα πρέπει να οδηγούν στην ενότητα<a data-l10n-name="mozilla-website-services-link">Υπηρεσίες ιστοσελίδων</a> .
@@ -30,7 +34,14 @@ rights-locationawarebrowsing-term-3 = Κάντε διπλό κλικ στην π
 rights-locationawarebrowsing-term-4 = Η Περιήγηση με δήλωση τοποθεσίας θα απενεργοποιηθεί
 rights-webservices-unbranded = Εδώ, θα πρέπει να συμπεριληφθεί μια επισκόπηση των υπηρεσιών ιστοσελίδας που ενσωματώνει το προϊόν, μαζί με οδηγίες σχετικά με την απενεργοποίηση, αν υπάρχει.
 rights-webservices-term-unbranded = Οποιοιδήποτε όροι υπηρεσίας έχουν ισχύ για αυτό το προϊόν θα πρέπει να αναγραφούν εδώ.
-rights-webservices-term-1 = Ο { -vendor-short-name } οι συντελεστές και οι συνεργάτες του εργάζονται για να παρέχουν τις πιο ακριβείς και ενημερωμένες υπηρεσίες. Παρ'όλα αυτά δεν είναι δυνατό να σας εγγυηθούμε ότι αυτές οι πληροφορίες είναι κατανοητές  και χωρίς σφάλματα. Για παράδειγμα μπορεί να μην εντοπισθούν κάποιες από τις ύποπτες σελίδες και μπορεί μερικές από τις ασφαλείς σελίδες να αναγνωρισθούν ως ύποπτες, ενώ η υπηρεσία περιήγησης με δήλωση τοποθεσίας μπορεί να μην είναι ακριβής.
+rights-webservices-term-1 =
+    Η { -vendor-short-name }, οι συντελεστές, οι συνεργάτες και οι διανομείς της εργάζονται για να παρέχουν τις
+    πιο ακριβείς και ενημερωμένες υπηρεσίες. Ωστόσο, δεν μπορούμε να εγγυηθούμε ότι αυτές οι πληροφορίες
+    είναι κατανοητές και χωρίς σφάλματα. Για παράδειγμα, η Υπηρεσία ασφαλούς περιήγησης ενδέχεται να μην
+    αναγνωρίσει κάποιους επικίνδυνους ιστοτόπους και ενδεχομένως να θεωρήσει ορισμένους ασφαλείς ιστοτόπους
+    ως ύποπτους, ενώ η Υπηρεσία περιήγησης βάσει τοποθεσίας μπορεί να μην είναι ακριβής. Ούτε εμείς ούτε οι
+    πάροχοι υπηρεσιών μας δεν μπορούμε να εγγυηθούμε την ακρίβεια των παρεχόμενων
+    τοποθεσιών.
 rights-webservices-term-2 = Ο { -vendor-short-name } διατηρεί το δικαίωμα να διακόψει ή να αλλάξει τις Υπηρεσίες κατά βούληση.
 rights-webservices-term-3 = Είστε ευπρόσδεκτοι να χρησιμοποιείτε αυτές τις Υπηρεσίες μαζί με την συνοδευόμενη έκδοση του { -brand-short-name } και του { -vendor-short-name } , και έχετε όλα τα απαραίτητα δικαιώματα να το κάνετε. Ο { -vendor-short-name } και οι συνεργάτες του διατηρούν όλα τα άλλα δικαιώματα στις Υπηρεσίες.  Αυτοί οι όροι δεν σκοπεύουν να περιορίσουν οποιαδήποτε δικαιώματα που προέρχονται από τις άδειες ανοικτού λογισμικού που συνοδεύουν τον { -brand-short-name } και τις αντίστοιχες εκδόσεις πηγαίου κώδικα του { -brand-short-name }.
 rights-webservices-term-4 = <strong>Οι Υπηρεσίες παρέχονται "ως έχει." Ο { -vendor-short-name }, οι συντελεστές, οι συνεργάτες και οι διανομείς του, παρέχουν τις υπηρεσίες χωρίς οποιουδήποτε είδους εγγύηση, είτε ρητή είτε σιωπηρή, συμπεριλαμβανομένης ενδεικτικά και όχι περιοριστικά της σιωπηρής εγγύησης εμπορευσιμότητας και καταλληλότητας των Υπηρεσιών για συγκεκριμένη χρήση. Ο κίνδυνος ως προς την ποιότητα και επίδοση των Υπηρεσιών βαρύνει εξ ολοκλήρου εσάς. Μερικές νομοθεσίες δεν επιτρέπουν την εξαίρεση ή τον περιορισμό των σιωπηλών εγγυήσεων και έτσι αυτή η παράγραφος αποποίησης μπορεί να μην ισχύει για εσάς.</strong>
diff --git a/thunderbird-l10n/el/localization/el/messenger/accountCentral.ftl b/thunderbird-l10n/el/localization/el/messenger/accountCentral.ftl
index c036bcb5f44ee26d8c2e3609b09873d47599bb61..dfbdbec601c9952b9ecb7ed722036524c006d0f5 100644
--- a/thunderbird-l10n/el/localization/el/messenger/accountCentral.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/accountCentral.ftl
@@ -4,7 +4,6 @@
 
 account-central-title = Καλώς ορίσατε στο { -brand-full-name }
 account-settings = Ρυθμίσεις λογαριασμού
-
 #   $accounts (Number) - the number of configured accounts
 setup-title =
     { $accounts ->
@@ -13,56 +12,41 @@ setup-title =
     }
 about-title = Σχετικά με το { -brand-full-name }
 resources-title = Πόροι
-
 release-notes =
     .title = Σχετικά με το { -brand-full-name }
-
 email-label = Email
     .aria-label = Συνδεθείτε στον υπάρχοντα λογαριασμό email σας
 email-description = Το { -brand-short-name } σάς επιτρέπει να συνδεθείτε με τον υπάρχοντα λογαριασμό email σας για να διαβάζετε τα email σας εύκολα και αποδοτικά μέσα από την εφαρμογή.
-
 calendar-label = Ημερολόγιο
     .aria-label = Δημιουργία νέου ημερολογίου
 calendar-description = Το { -brand-short-name } σάς επιτρέπει να διαχειρίζεστε εκδηλώσεις και να παραμείνετε οργανωμένοι. Η σύνδεση σε ένα απομακρυσμένο ημερολόγιο θα διατηρήσει συγχρονισμένες τις εκδηλώσεις σας σε όλες τις συσκευές σας.
-
 chat-label = Συνομιλία
     .aria-label = Σύνδεση στο λογαριασμό συνομιλιών σας
 chat-description = Το { -brand-short-name } σάς επιτρέπει να συνδεθείτε σε πολλαπλούς λογαριασμούς ανταλλαγής άμεσων μηνυμάτων, προσφέροντας υποστήριξη για διάφορες πλατφόρμες.
-
-filelink-label = Filelink
-    .aria-label = Ρύθμιση Filelink
-filelink-description = Το { -brand-short-name } σάς επιτρέπει να ρυθμίσετε ένα βολικό λογαριασμό cloud για συνδέσμους αρχείων, ώστε να αποστέλλετε εύκολα μεγάλα συνημμένα αρχεία.
-
+filelink-label = FileLink
+    .aria-label = Ρύθμιση του FileLink
+filelink-description = Το { -brand-short-name } σάς επιτρέπει να ρυθμίσετε έναν βολικό λογαριασμό cloud για το FileLink, ώστε να αποστέλλετε εύκολα μεγάλα συνημμένα αρχεία.
 addressbook-label = Ευρετήριο
     .aria-label = Δημιουργία νέου ευρετηρίου
 addressbook-description = Το { -brand-short-name } σάς επιτρέπει να οργανώσετε όλες τις επαφές σας σε ένα ευρετήριο. Μπορείτε επίσης να συνδεθείτε σε ένα απομακρυσμένο ευρετήριο για να διατηρήσετε σε συγχρονισμό όλες τις επαφές σας.
-
 feeds-label = Ροές
     .aria-label = Σύνδεση στις ροές
 feeds-description = Το { -brand-short-name } σάς επιτρέπει να συνδεθείτε σε ροές RSS/Atom για να λαμβάνετε ειδήσεις και ενημερώσεις από παντού.
-
 newsgroups-label = Ομάδες συζήτησης
     .aria-label = Σύνδεση σε ομάδα συζήτησης
 newsgroups-description = Το { -brand-short-name } σάς επιτρέπει να συνδεθείτε στις αγαπημένες ομάδες συζήτησής σας.
-
 import-title = Εισαγωγή από άλλο πρόγραμμα
 import-paragraph = Το { -brand-short-name } σάς επιτρέπει να εισαγάγετε μηνύματα email, καταχωρήσεις ευρετηρίων, συνδρομές ροών, προτιμήσεις ή/και φίλτρα από άλλα προγράμματα email και συνηθισμένες μορφές ευρετηρίων.
-
 import-label = Εισαγωγή
     .aria-label = Εισαγωγή δεδομένων από άλλα προγράμματα
-
 about-paragraph = Το Thunderbird είναι το κορυφαίο, ανοιχτού κώδικα, πρόγραμμα email και ημερολογίων, που διατίθεται δωρεάν για προσωπική και επαγγελματική χρήση σε πολλαπλές πλατφόρμες. Θέλουμε να παραμείνει ασφαλές και να γίνει ακόμη καλύτερο. Μια δωρεά θα μας επιτρέψει να προσλάβουμε προγραμματιστές, να πληρώσουμε για τις υποδομές και να συνεχίσουμε να βελτιωνόμαστε.
-
 about-paragraph-2 = <b>Το Thunderbird χρηματοδοτείται από χρήστες σας εσάς! Αν σας αρέσει το Thunderbird, παρακαλούμε σκεφτείτε το ενδεχόμενο να κάνετε μια δωρεά.</b> Ο καλύτερος τρόπος για να διασφαλίσετε ότι το Thunderbird θα παραμείνει διαθέσιμο, είναι να
 about-donation = κάνετε μια δωρεά
-
 about-paragraph-consider-donation = <b>Το Thunderbird χρηματοδοτείται από χρήστες σαν εσάς! Αν σας αρέσει το Thunderbird, παρακαλούμε σκεφτείτε να κάνετε μια δωρεά.</b> Ο καλύτερος τρόπος για να εξασφαλίσετε ότι το Thunderbird θα παραμείνει διαθέσιμο, είναι να <a data-l10n-name="donation-link">κάνετε μια δωρεά</a>.
-
 explore-link = Εξερεύνηση λειτουργιών
 support-link = Υποστήριξη
 involved-link = Συμμετοχή
 developer-link = Τεκμηρίωση για προγραμματιστές
-
 read = Ανάγνωση μηνυμάτων
 compose = Σύνταξη νέου μηνύματος
 search = Αναζήτηση μηνυμάτων
diff --git a/thunderbird-l10n/el/localization/el/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/el/localization/el/messenger/accountcreation/accountSetup.ftl
index 4379e5643cd762199408c2a2e1ff6ae5c503b5f6..f23655a4b6b605405c9c63a20f88bca24330cb44 100644
--- a/thunderbird-l10n/el/localization/el/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/accountcreation/accountSetup.ftl
@@ -6,66 +6,48 @@ account-setup-tab-title = Ρύθμιση λογαριασμού
 
 ## Header
 
-account-setup-title = Ρύθμιση της υπάρχουσας διεύθυνσης email σας
-
+account-setup-title = Ρύθμιση υπάρχουσας διεύθυνσης email
 account-setup-description = Για να χρησιμοποιήσετε την υπάρχουσα διεύθυνση email σας, συμπληρώστε τα διαπιστευτήριά σας.
-
 account-setup-secondary-description = Το { -brand-product-name } θα αναζητήσει αυτόματα για τις λειτουργικές και προτεινόμενες ρυθμίσεις διακομιστή.
-
 account-setup-success-title = Επιτυχής δημιουργία λογαριασμού
-
 account-setup-success-description = Μπορείτε πλέον να χρησιμοποιήσετε αυτόν τον λογαριασμό με το { -brand-short-name }.
-
 account-setup-success-secondary-description = Μπορείτε να βελτιώσετε την εμπειρία σας συνδέοντας σχετικές υπηρεσίες και διαμορφώνοντας τις σύνθετες ρυθμίσεις λογαριασμού.
 
 ## Form fields
 
 account-setup-name-label = Το ονοματεπώνυμό σας
     .accesskey = ο
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Ονοματεπώνυμο
-
 account-setup-name-info-icon =
-    .title = Το όνομά σας, όπως θα εμφανίζεται στους άλλους
-
-
+    .title = Το όνομά σας, όπως θα εμφανίζεται σε τρίτους
 account-setup-name-warning-icon =
     .title = Παρακαλώ εισαγάγετε το όνομά σας
-
 account-setup-email-label = Διεύθυνση email
     .accesskey = Δ
-
 account-setup-email-input =
     .placeholder = onomateponimo@example.com
-
 account-setup-email-info-icon =
     .title = Η υπάρχουσα διεύθυνση email σας
-
 account-setup-email-warning-icon =
     .title = Μη έγκυρη διεύθυνση email
-
 account-setup-password-label = Κωδικός πρόσβασης
     .accesskey = Κ
     .title = Προαιρετικό, θα χρησιμοποιηθεί μόνο για την επαλήθευση του ονόματος χρήστη
-
 account-provisioner-button = Απόκτηση νέας διεύθυνσης email
     .accesskey = Α
-
 account-setup-password-toggle =
     .title = Εμφάνιση/απόκρυψη του κωδικού πρόσβασης
-
+account-setup-password-toggle-hide =
+    .title = Απόκρυψη κωδικού πρόσβασης
 account-setup-remember-password = Απομνημόνευση κωδικού πρόσβασης
     .accesskey = Α
-
 account-setup-exchange-label = Η σύνδεσή σας
     .accesskey = σ
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = DOMAIN\όνομαχρήστη
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Σύνδεση σε τομέα
@@ -74,62 +56,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Ακύρωση
     .accesskey = Α
-
 account-setup-button-manual-config = Χειροκίνητη ρύθμιση
     .accesskey = ρ
-
 account-setup-button-stop = Διακοπή
     .accesskey = Δ
-
 account-setup-button-retest = Δοκιμή ξανά
     .accesskey = ξ
-
 account-setup-button-continue = Συνέχεια
     .accesskey = Σ
-
 account-setup-button-done = Τέλος
     .accesskey = Τ
 
 ## Notifications
 
 account-setup-looking-up-settings = Αναζήτηση ρυθμίσεων παραμέτρων…
-
 account-setup-looking-up-settings-guess = Αναζήτηση ρυθμίσεων: Δοκιμή κοινών ονομάτων διακομιστών…
-
 account-setup-looking-up-settings-half-manual = Αναζήτηση ρυθμίσεων: Έλεγχος διακομιστή…
-
 account-setup-looking-up-disk = Αναζήτηση ρυθμίσεων: εγκατάσταση του { -brand-short-name }…
-
 account-setup-looking-up-isp = Αναζήτηση ρυθμίσεων: Πάροχος ηλεκτρονικού ταχυδρομείου…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Αναζήτηση ρυθμίσεων: Βάση δεδομένων Mozilla ISP…
-
 account-setup-looking-up-mx = Αναζήτηση ρυθμίσεων: Τομέας εισερχόμενης αλληλογραφίας…
-
 account-setup-looking-up-exchange = Αναζήτηση ρυθμίσεων: Διακομιστής Exchange…
-
 account-setup-checking-password = Έλεγχος κωδικού πρόσβασης…
-
-account-setup-installing-addon = Λήψη και εγκατάσταση πρόσθετου…
-
+account-setup-installing-addon = Λήψη και εγκατάσταση του προσθέτου…
 account-setup-success-half-manual = Κατά τον έλεγχο του διακομιστή εντοπίστηκαν οι παρακάτω ρυθμίσεις:
-
 account-setup-success-guess = Ρυθμίσεις που βρέθηκαν κατά τη δοκιμή των κοινών ονομάτων.
-
 account-setup-success-guess-offline = Είστε εκτός σύνδεσης. Μαντέψαμε ορισμένες ρυθμίσεις αλλά θα χρειαστεί να εισαγάγετε τις σωστές.
-
-account-setup-success-password = Ο κωδικός πρόσβασης είναι εντάξει.
-
+account-setup-success-password = Ο κωδικός πρόσβασης είναι εντάξει
 account-setup-success-addon = Το πρόσθετο εγκαταστάθηκε επιτυχώς
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Βρέθηκε ρύθμιση στην βάση δεδομένων του Mozilla ISP.
-
 account-setup-success-settings-disk = Βρέθηκε ρύθμιση στην εγκατάσταση του { -brand-short-name }.
-
 account-setup-success-settings-isp = Βρέθηκε ρύθμιση στον πάροχο ηλεκτρονικού ταχυδρομείου.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Βρέθηκε ρύθμιση για τον διακομιστή Microsoft Exchange.
 
@@ -137,33 +96,21 @@ account-setup-success-settings-exchange = Βρέθηκε ρύθμιση για 
 
 account-setup-step1-image =
     .title = Αρχική ρύθμιση
-
 account-setup-step2-image =
     .title = Φόρτωση…
-
 account-setup-step3-image =
     .title = Βρέθηκε ρύθμιση
-
 account-setup-step4-image =
     .title = Σφάλμα σύνδεσης
-
 account-setup-step5-image =
     .title = Ο λογαριασμός δημιουργήθηκε
-
 account-setup-privacy-footnote2 = Τα διαπιστευτήριά σας θα αποθηκευτούν μόνο τοπικά, στον υπολογιστή σας.
-
 account-setup-selection-help = Δεν ξέρετε τι να επιλέξετε;
-
 account-setup-selection-error = Χρειάζεστε βοήθεια;
-
 account-setup-success-help = Δεν γνωρίζετε σίγουρα τα επόμενα βήματα;
-
 account-setup-documentation-help = Τεκμηρίωση ρύθμισης
-
 account-setup-forum-help = Φόρουμ υποστήριξης
-
 account-setup-privacy-help = Πολιτική απορρήτου
-
 account-setup-getting-started = Ξεκινώντας
 
 ## Results area
@@ -175,41 +122,25 @@ account-setup-results-area-title =
         [one] Διαθέσιμη ρύθμιση
        *[other] Διαθέσιμες ρυθμίσεις
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Διατηρήστε συγχρονισμένους τους φακέλους και τα μηνύματα με τον διακομιστή σας
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Διατηρήστε τους φακέλους και τα μηνύματα στον υπολογιστή σας
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Χρησιμοποιήστε τον διακομιστή Microsoft Exchange ή τις υπηρεσίες cloud του Office365
-
 account-setup-incoming-title = Εισερχόμενα
-
 account-setup-outgoing-title = Εξερχόμενα
-
 account-setup-username-title = Όνομα χρήστη
-
 account-setup-exchange-title = Διακομιστής
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Χωρίς κρυπτογράφηση
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Χρήση υπάρχοντος διακομιστή SMTP εξερχομένων
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -219,81 +150,54 @@ account-setup-result-username-different = Εισερχόμενα: { $incoming },
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Η αυθεντικοποίηση απέτυχε. Είτε τα διαπιστευτήρια που εισαγάγατε είναι λάθος είτε απαιτείται ξεχωριστό όνομα χρήστη για είσοδο. Το όνομα χρήστη συνήθως είναι το όνομα χρήστη για τον τομέα στα Windows, με ή χωρίς το όνομα τομέα (για παράδειγμα janedoe ή AD\\janedoe).
-
 account-setup-credentials-wrong = Η αυθεντικοποίηση απέτυχε. Παρακαλούμε ελέγξτε το όνομα χρήστη και τον κωδικό πρόσβασης
-
 account-setup-find-settings-failed = Το { -brand-short-name } απέτυχε να εντοπίσει τις ρυθμίσεις του λογαριασμού ηλεκτρονικής αλληλογραφίας σας
-
 account-setup-exchange-config-unverifiable = Δεν ήταν δυνατή η επαλήθευση των ρυθμίσεων παραμέτρων. Αν το όνομα χρήστη και ο κωδικός πρόσβασής σας είναι σωστά, ο διαχειριστής διακομιστή ίσως έχει απενεργοποιήσει τις επιλεγμένες ρυθμίσεις παραμέτρων για τον λογαριασμό σας. Δοκιμάστε να επιλέξετε άλλο πρωτόκολλο.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Ρυθμίσεις διακομιστή
-
 account-setup-incoming-server-legend = Διακομιστής εισερχομένων
-
 account-setup-protocol-label = Πρωτόκολλο:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Όνομα υπολογιστή:
-
 account-setup-port-label = Θύρα:
     .title = Ορίστε τον αριθμό θύρας σε 0 για αυτόματη ανίχνευση
-
 account-setup-auto-description = Το { -brand-short-name } θα προσπαθήσει να εντοπίσει αυτόματα τα πεδία που παραμένουν κενά.
-
 account-setup-ssl-label = Ασφάλεια σύνδεσης:
-
 account-setup-outgoing-server-legend = Διακομιστής εξερχομένων
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Αυτόματος εντοπισμός
-
 ssl-no-authentication-option = Χωρίς ταυτοποίηση
-
 ssl-cleartext-password-option = Κανονικός κωδικός πρόσβασης
-
 ssl-encrypted-password-option = Κρυπτογραφημένος κωδικός πρόσβασης
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Κανένα
-
 account-setup-auth-label = Μέθοδος ταυτοποίησης:
-
 account-setup-username-label = Όνομα χρήστη:
-
 account-setup-advanced-setup-button = Σύνθετη διαμόρφωση
     .accesskey = Σ
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Προειδοποίηση!
-
 account-setup-insecure-incoming-title = Ρυθμίσεις εισερχομένων:
-
 account-setup-insecure-outgoing-title = Ρυθμίσεις εξερχομένων:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = Το <b>{ $server }</b> δεν χρησιμοποιεί κρυπτογράφηση.
-
-account-setup-warning-cleartext-details = Οι μη-ασφαλείς διακομιστές email δεν χρησιμοποιούν κρυπτογραφημένες συνδέσεις για την προστασία των κωδικών πρόσβασης και των προσωπικών πληροφοριών σας. Αν συνδεθείτε σε αυτόν τον διακομιστή, οι κωδικοί πρόσβασης και οι προσωπικές σας πληροφορίες ενδέχεται να εκτεθούν.
-
+account-setup-warning-cleartext-details = Οι επισφαλείς διακομιστές αλληλογραφίας δεν χρησιμοποιούν κρυπτογραφημένες συνδέσεις για την προστασία των κωδικών πρόσβασης και των προσωπικών σας πληροφοριών. Αν συνδεθείτε σε αυτό τον διακομιστή, οι κωδικοί πρόσβασης και οι προσωπικές σας πληροφορίες ενδέχεται να εκτεθούν.
 account-setup-insecure-server-checkbox = Κατανοώ τους κινδύνους
     .accesskey = Ï„
-
 account-setup-insecure-description = Το { -brand-short-name } μπορεί να σας επιτρέψει να κάνετε λήψη των email σας με τις παρεχόμενες ρυθμίσεις. Ωστόσο, θα πρέπει να επικοινωνήσετε με τον διαχειριστή του συστήματος ή τον πάροχο ηλεκτρονικού ταχυδρομείου σας σχετικά με αυτές τις ασυνήθιστες συνδέσεις. Δείτε τις <a data-l10n-name="thunderbird-faq-link">συχνές ερωτήσεις του Thunderbird</a> για περισσότερες πληροφορίες.
-
 insecure-dialog-cancel-button = Αλλαγή ρυθμίσεων
     .accesskey = ρ
-
 insecure-dialog-confirm-button = Επιβεβαίωση
     .accesskey = Ε
 
@@ -302,51 +206,40 @@ insecure-dialog-confirm-button = Επιβεβαίωση
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = Το { -brand-short-name } βρήκε τις πληροφορίες ρύθμισης του λογαριασμού σας στο { $domain }. Θέλετε να συνεχίσετε και να υποβάλετε τα διαπιστευτήριά σας;
-
 exchange-dialog-confirm-button = Σύνδεση
-
 exchange-dialog-cancel-button = Ακύρωση
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Δεν έχουν ρυθμιστεί λογαριασμοί email
+exit-dialog-cancel-button = Συνέχεια ρύθμισης
+    .accesskey = Σ
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Σφάλμα δημιουργίας λογαριασμού
-
 account-setup-error-server-exists = Ο διακομιστής εισερχομένων υπάρχει ήδη.
-
 account-setup-confirm-advanced-title = Επιβεβαίωση σύνθετων ρυθμίσεων
-
 account-setup-confirm-advanced-description = Αυτό το παράθυρο διαλόγου θα κλείσει και θα δημιουργηθεί ένας λογαριασμός με τις τρέχουσες ρυθμίσεις, ακόμη και αν η ρύθμιση παραμέτρων είναι εσφαλμένη. Θέλετε να συνεχίσετε;
 
 ## Addon installation section
 
 account-setup-addon-install-title = Εγκατάσταση
-
 account-setup-addon-install-intro = Ένα πρόσθετο τρίτου μπορεί να σας επιτρέψει την πρόσβαση στον λογαριασμό email σας σε αυτό τον διακομιστή:
-
 account-setup-addon-no-protocol = Αυτός ο διακομιστής email δυστυχώς δεν υποστηρίζει ανοικτά πρωτόκολλα. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Ρυθμίσεις λογαριασμού
-
 account-setup-encryption-button = Διατερματική κρυπτογράφηση
-
 account-setup-signature-button = Προσθήκη υπογραφής
-
 account-setup-dictionaries-button = Λήψη λεξικών
-
 account-setup-address-book-carddav-button = Σύνδεση σε ευρετήριο CardDAV
-
 account-setup-address-book-ldap-button = Σύνδεση σε ευρετήριο LDAP
-
 account-setup-calendar-button = Σύνδεση σε απομακρυσμένο ημερολόγιο
-
 account-setup-linked-services-title = Σύνδεση σχετικών υπηρεσιών
-
 account-setup-linked-services-description = Το { -brand-short-name } ανίχνευσε άλλες συνδεδεμένες υπηρεσίες στον λογαριασμό email σας.
-
 account-setup-no-linked-description = Ρυθμίστε άλλες υπηρεσίες για να αξιοποιήσετε στο έπακρο το { -brand-short-name } σας.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -354,7 +247,6 @@ account-setup-found-address-books-description =
         [one] Το { -brand-short-name } βρήκε ένα συνδεδεμένο ευρετήριο στον λογαριασμό email σας.
        *[other] Το { -brand-short-name } βρήκε { $count } συνδεδεμένα ευρετήρια στον λογαριασμό email σας.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -362,62 +254,41 @@ account-setup-found-calendars-description =
         [one] Το { -brand-short-name } βρήκε ένα συνδεδεμένο ημερολόγιο στον λογαριασμό email σας.
        *[other] Το { -brand-short-name } βρήκε { $count } συνδεδεμένα ημερολόγιο στον λογαριασμό email σας.
     }
-
 account-setup-button-finish = Τέλος
     .accesskey = Τ
-
 account-setup-looking-up-address-books = Αναζήτηση ευρετηρίων…
-
 account-setup-looking-up-calendars = Αναζήτηση ημερολογίων…
-
 account-setup-address-books-button = Ευρετήρια
-
 account-setup-calendars-button = Ημερολόγια
-
 account-setup-connect-link = Σύνδεση
-
 account-setup-existing-address-book = Συνδεδεμένο
     .title = Το ευρετήριο έχει ήδη συνδεθεί
-
 account-setup-existing-calendar = Συνδεδεμένο
     .title = Το ημερολόγιο έχει ήδη συνδεθεί
-
 account-setup-connect-all-calendars = Σύνδεση όλων των ημερολογίων
-
 account-setup-connect-all-address-books = Σύνδεση όλων των ευρετηρίων
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Σύνδεση ημερολογίου
-
 calendar-dialog-cancel-button = Ακύρωση
     .accesskey = Α
-
 calendar-dialog-confirm-button = Σύνδεση
     .accesskey = ν
-
 account-setup-calendar-name-label = Όνομα
-
 account-setup-calendar-name-input =
     .placeholder = Το ημερολόγιό μου
-
 account-setup-calendar-color-label = Χρώμα
-
 account-setup-calendar-refresh-label = Ανανέωση
-
 account-setup-calendar-refresh-manual = Χειροκίνητα
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Κάθε λεπτό
        *[other] Κάθε { $count } λεπτά
     }
-
 account-setup-calendar-read-only = Μόνο για ανάγνωση
     .accesskey = Μ
-
 account-setup-calendar-show-reminders = Εμφάνιση υπενθυμίσεων
     .accesskey = Ε
-
 account-setup-calendar-offline-support = Υποστήριξη εκτός σύνδεσης
     .accesskey = Υ
diff --git a/thunderbird-l10n/el/localization/el/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/el/localization/el/messenger/addressbook/aboutAddressBook.ftl
index 890c7f4f1ff8a5ea3f9ea3751da6ad34b856e006..88ba776b9b82b3c6254ae0a176b0954a3c9b162a 100644
--- a/thunderbird-l10n/el/localization/el/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Όλα τα ευρετήρια
-
 about-addressbook-books-context-properties =
     .label = Ιδιότητες
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Διαγραφή
 about-addressbook-books-context-remove =
     .label = Αφαίρεση
-
 about-addressbook-confirm-delete-book-title = Διαγραφή ευρετηρίου
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Αναζήτηση για { $name }
 about-addressbook-search-all =
     .placeholder = Αναζήτηση όλων των βιβλίων διευθύνσεων
-
 about-addressbook-sort-button =
     .title = Αλλαγή σειράς λίστας
-
 about-addressbook-name-format-display =
     .label = Εμφανιζόμενο όνομα
 about-addressbook-name-format-firstlast =
     .label = Όνομα Επώνυμο
 about-addressbook-name-format-lastfirst =
     .label = Επώνυμο, Όνομα
-
 about-addressbook-sort-name-ascending =
     .label = Ταξινόμηση κατά όνομα (Α > Ω)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,6 @@ about-addressbook-sort-email-ascending =
     .label = Ταξινόμηση κατά διεύθυνση email (A > Z)
 about-addressbook-sort-email-descending =
     .label = Ταξινόμηση κατά διεύθυνση email (Z > A)
-
 about-addressbook-confirm-delete-mixed-title = Διαγραφή επαφών και λιστών
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,9 +119,8 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Επεξεργασία
 about-addressbook-cancel-edit-contact-button = Ακύρωση
 about-addressbook-save-edit-contact-button = Αποθήκευση
-
 about-addressbook-details-email-addresses-header = Διευθύνσεις email
 about-addressbook-details-phone-numbers-header = Αριθμοί τηλεφώνου
 about-addressbook-details-home-address-header = Διεύθυνση οικίας
-about-addressbook-details-work-address-header = Διεύθυνση Εργασίας
+about-addressbook-details-work-address-header = Διεύθυνση εργασίας
 about-addressbook-details-other-info-header = Άλλες πληροφορίες
diff --git a/thunderbird-l10n/el/localization/el/messenger/importDialog.ftl b/thunderbird-l10n/el/localization/el/messenger/importDialog.ftl
index f63e86f07379fd83a6ba0ec1920c64f06ceb24d6..30d59531bcf359e314f5cb63b3c80a2fe994e558 100644
--- a/thunderbird-l10n/el/localization/el/messenger/importDialog.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/importDialog.ftl
@@ -6,5 +6,9 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Εισαγωγή email από έναν κατάλογο προφίλ του Thunderbird.
-import-select-profile-dir-or-zip = Επιλέξτε έναν κατάλογο προφίλ ή έναν συμπιεσμένο κατάλογο προφίλ
+import-from-thunderbird-dir =
+    .label = Thunderbird (φάκελος προφίλ)
+    .accesskey = T
 import-select-profile-zip = Επιλέξτε έναν συμπιεσμένο κατάλογο προφίλ
+wizardpage-failed =
+    .label = Αποτυχία εισαγωγής
diff --git a/thunderbird-l10n/el/localization/el/messenger/menubar.ftl b/thunderbird-l10n/el/localization/el/messenger/menubar.ftl
index bd9619203328d18ef628d0f82e799c9e6f585d41..bcf0809b6293580940195246b8f9c63382222e95 100644
--- a/thunderbird-l10n/el/localization/el/messenger/menubar.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/menubar.ftl
@@ -16,7 +16,6 @@ menu-view-charset =
 menu-tools-preferences =
     .label = Προτιμήσεις
     .accesskey = Π
-
 menu-addons-and-themes =
     .label = Πρόσθετα και θέματα
     .accesskey = ρ
@@ -26,13 +25,11 @@ menu-addons-and-themes =
 menu-help-enter-troubleshoot-mode =
     .label = Λειτουργία επίλυσης προβλημάτων…
     .accesskey = Λ
-
 menu-help-exit-troubleshoot-mode =
     .label = Απενεργοποίηση λειτουργίας επίλυσης προβλημάτων
     .accesskey = Α
-
 menu-help-more-troubleshooting-info =
-    .label = Περισσότερες πληροφορίες επίλυσης προβλημάτων
+    .label = Πληροφορίες επίλυσης προβλημάτων
     .accesskey = Π
 
 ## Mail Toolbar
@@ -61,15 +58,12 @@ menu-view-repair-text-encoding =
 mail-uidensity-label =
     .label = Πυκνότητα
     .accesskey = Π
-
 mail-uidensity-compact =
     .label = Πολύ πυκνό
     .accesskey = ο
-
 mail-uidensity-normal =
     .label = Κανονικό
     .accesskey = Κ
-
 mail-uidensity-touch =
     .label = Αφή
     .accesskey = Α
diff --git a/thunderbird-l10n/el/localization/el/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/el/localization/el/messenger/messengercompose/messengercompose.ftl
index 80d9dd4dc8494128df80bb06456a17b3cbdc8697..e902c58ba65e2f3791d6b3c4547f68935b2d7bda 100644
--- a/thunderbird-l10n/el/localization/el/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/messengercompose/messengercompose.ftl
@@ -36,7 +36,7 @@ pill-action-move-to =
     .label = Μετακίνηση στο Προς
     .accesskey = Ï„
 pill-action-move-cc =
-    .label = Μετακίνηση σε "Κοιν."
+    .label = Μετακίνηση σε «Κοιν.»
     .accesskey = κ
 pill-action-move-bcc =
     .label = Μετακίνηση σε "Κρυφή κοιν."
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Προσθήκη συνημμένου…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Προσθήκη συνημμένου…
+    .accesskey = Π
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Αρχεία…
     .accesskey = Α
@@ -153,12 +157,39 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Εμφάνιση πεδίου "{ bcc-compose-address-row-label.value }" ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Οι { $count } παραλήπτες στα πεδία "Προς" και "Κοιν." θα βλέπουν τις διευθύνσεις των υπολοίπων. Μπορείτε να αποφύγετε την αποκάλυψη των παραληπτών με το πεδίο "Κρυφή κοιν.".
+to-address-row-label =
+    .value = Προς
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Πεδίο «Προς»
+    .accesskey = Π
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Προς
+    .accesskey = Π
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Το μήνυμά σας έχει έναν δημόσιο παραλήπτη. Μπορείτε να αποφύγετε την αποκάλυψη των παραληπτών με το πεδίο «Κρυφή κοιν.».
+       *[other] Οι { $count } παραλήπτες στα πεδία «Προς» και «Κοιν.» θα βλέπουν τις διευθύνσεις των υπολοίπων. Μπορείτε να αποφύγετε την αποκάλυψη των παραληπτών με το πεδίο «Κρυφή κοιν.».
+    }
 many-public-recipients-bcc =
     .label = Χρήση "Κρυφή κοιν."
     .accesskey = Χ
 many-public-recipients-ignore =
     .label = Διατήρηση ορατών παραληπτών
     .accesskey = Δ
+many-public-recipients-prompt-title = Πάρα πολλοί δημόσιοι παραλήπτες
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Το μήνυμά σας έχει έναν δημόσιο παραλήπτη. Αυτό ίσως βλάψει το απόρρητό σας. Μπορείτε να το αποφύγετε αυτό μετακινώντας τον παραλήπτη από το πεδίο «Προς»/«Κοιν.» στο «Κρυφή κοιν.».
+       *[other] Το μήνυμά σας έχει { $count } δημόσιους παραλήπτες, που θα μπορούν να δουν τις διευθύνσεις των υπολοίπων. Αυτό ίσως βλάψει το απόρρητό σας. Μπορείτε να αποφύγετε την αποκάλυψη των παραληπτών μετακινώντας τους από το το πεδίο «Προς»/«Κοιν.» στο «Κρυφή κοιν.».
+    }
+many-public-recipients-prompt-cancel = &Ακύρωση αποστολής
+many-public-recipients-prompt-send = Αποστολή ούτως ή άλλως
 
 ## Notifications
 
diff --git a/thunderbird-l10n/el/localization/el/messenger/openpgp/backupKeyPassword.ftl b/thunderbird-l10n/el/localization/el/messenger/openpgp/backupKeyPassword.ftl
index 22367b20c04868aa8209b414bb5049750f923975..5135d04f75cba22d4efffb4b44484c21f743d9b6 100644
--- a/thunderbird-l10n/el/localization/el/messenger/openpgp/backupKeyPassword.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/openpgp/backupKeyPassword.ftl
@@ -3,18 +3,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 set-password-window =
-    .title = Επιλέξτε ένα κωδικό πρόσβασης για να δημιουργήσετε αντίγραφο ασφαλείας του κλειδιού σας OpenPGP
-
+    .title = Επιλέξτε έναν κωδικό πρόσβασης για τη δημιουργία αντιγράφου ασφαλείας του κλειδιού OpenPGP σας
 set-password-legend = Επιλέξτε ένα Κωδικό Πρόσβασης
-
 set-password-message = Ο κωδικός πρόσβασης που ορίζετε εδώ προστατεύει το αρχείο του αντιγράφου ασφαλείας με το ιδιωτικό σας κλειδί OpenPGP που πρόκειται να δημιουργήσετε. Πρέπει να ορίσετε τον κωδικό πρόσβασης για να συνεχίσετε με το αντίγραφο ασφαλείας.
-
 set-password-backup-pw =
     .value = Κωδικός πρόσβασης αντιγράφου ασφαλείας Ιδιωτικού Κλειδιού:
-
 set-password-repeat-backup-pw =
     .value = Κωδικός πρόσβασης αντιγράφου ασφαλείας Ιδιωτικού Κλειδιού (επανάληψη):
-
 set-password-reminder = <b>Σημαντικό!</b> Αν ξεχάσετε τον κωδικό πρόσβασης του αντιγράφου ασφαλείας του ιδιωτικού σας κλειδιού, δε θα μπορείτε να επαναφέρετε το αντίγραφο ασφαλείας στο μέλλον. Παρακαλούμε σημειώστε τον και αποθηκεύστε τον σε ασφαλές μέρος.
-
 password-quality-meter = Μέτρηση ποιότητας κωδικού πρόσβασης
diff --git a/thunderbird-l10n/el/localization/el/messenger/openpgp/keyWizard.ftl b/thunderbird-l10n/el/localization/el/messenger/openpgp/keyWizard.ftl
index 8733867a9b111873079fe00e49fc51f873c9c1d4..51b35e408e8a19473e856d44bda80ef770ecd083 100644
--- a/thunderbird-l10n/el/localization/el/messenger/openpgp/keyWizard.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/openpgp/keyWizard.ftl
@@ -5,23 +5,17 @@
 #   $identity (String) - the email address of the currently selected identity
 key-wizard-dialog-window =
     .title = Προσθήκη προσωπικού κλειδιού OpenPGP για το { $identity }
-
 key-wizard-button =
     .buttonlabelaccept = Συνέχεια
     .buttonlabelhelp = Επιστροφή
-
 key-wizard-warning = <b>Αν διαθέτετε ήδη ένα προσωπικό κλειδί</b> για αυτή τη διεύθυνση email, θα πρέπει να το εισαγάγετε. Διαφορετικά, δεν θα έχετε πρόσβαση στα αρχεία κρυπτογραφημένων email σας, ούτε θα μπορείτε να διαβάζετε εισερχόμενα κρυπτογραφημένα email από άτομα που χρησιμοποιούν το υπάρχον κλειδί σας.
-
 key-wizard-learn-more = Μάθετε περισσότερα
-
 radio-create-key =
     .label = Δημιουργία νέου κλειδιού OpenPGP
     .accesskey = Δ
-
 radio-import-key =
     .label = Εισαγωγή υπάρχοντος κλειδιού OpenPGP
     .accesskey = Ε
-
 radio-gnupg-key =
     .label = Χρήση του εξωτερικού σας κλειδιού μέσω του GnuPG (πχ. από έξυπνη κάρτα)
     .accesskey = ρ
@@ -29,143 +23,94 @@ radio-gnupg-key =
 ## Generate key section
 
 openpgp-generate-key-title = Δημιουργία κλειδιού OpenPGP
-
 openpgp-generate-key-info = <b>Η δημιουργία κλειδιού ενδέχεται να διαρκέσει αρκετά λεπτά για να ολοκληρωθεί.</b> Μην βγαίνετε από την εφαρμογή ενώ η δημιουργία του κλειδιού είναι σε εξέλιξη. Η φυλλομέτρηση ή η εκτέλεση εκτενών διαδικασιών που απασχολούν το δίσκο κατά τη διάρκεια δημιουργίας του κλειδιού θα γεμίσει την 'δεξαμενή τυχαιότητας' και θα επιταχύνει τη διαδικασία. Θα ενημερωθείτε όταν ολοκληρωθεί η δημιουργία του κλειδιού.
-
 openpgp-keygen-expiry-title = Λήξη κλειδιού
-
 openpgp-keygen-expiry-description = Ορισμός του χρόνου λήξης του νέου σας κλειδιού. Μπορείτε αργότερα να αλλάξετε την ημερομηνία για επέκταση αν αυτό είναι απαραίτητο.
-
 radio-keygen-expiry =
     .label = Το κλειδί λήγει σε
     .accesskey = ε
-
 radio-keygen-no-expiry =
     .label = Το κλειδί δεν λήγει
     .accesskey = δ
-
 openpgp-keygen-days-label =
     .label = ημέρες
 openpgp-keygen-months-label =
     .label = μήνες
 openpgp-keygen-years-label =
     .label = έτη
-
 openpgp-keygen-advanced-title = Σύνθετες ρυθμίσεις
-
 openpgp-keygen-advanced-description = Ελέγξτε τις σύνθετες ρυθμίσεις του κλειδιού OpenPGP σας.
-
 openpgp-keygen-keytype =
     .value = Τύπος κλειδιού:
     .accesskey = δ
-
 openpgp-keygen-keysize =
     .value = Μέγεθος κλειδιού:
     .accesskey = κ
-
 openpgp-keygen-type-rsa =
     .label = RSA
-
 openpgp-keygen-type-ecc =
     .label = ECC (Elliptic Curve)
-
 openpgp-keygen-button = Δημιουργία κλειδιού
-
 openpgp-keygen-progress-title = Δημιουργία νέου κλειδιού OpenPGP…
-
 openpgp-keygen-import-progress-title = Εισαγωγή κλειδιών OpenPGP…
-
-openpgp-import-success = Τα κλειδιά OpenPGP εισήχθησαν με επιτυχία!
-
+openpgp-import-success = Επιτυχής εισαγωγή κλειδιών OpenPGP!
 openpgp-import-success-title = Ολοκλήρωση της διαδικασίας εισαγωγής
-
 openpgp-import-success-description = Για να ξεκινήσετε να χρησιμοποιείτε το εισηγμένο κλειδί OpenPGP για κρυπτογράφηση της ηλεκτρονικής αλληλογραφίας, κλείστε αυτό το παράθυρο διαλόγου και μεταβείτε στις Ρυθμίσεις Λογαριασμού σας για να το επιλέξετε.
-
 openpgp-keygen-confirm =
     .label = Επιβεβαίωση
-
 openpgp-keygen-dismiss =
     .label = Ακύρωση
-
 openpgp-keygen-cancel =
     .label = Ακύρωση διαδικασίας…
-
 openpgp-keygen-import-complete =
     .label = Κλείσιμο
     .accesskey = Κ
-
 openpgp-keygen-missing-username = Δεν υπάρχει καθορισμένο όνομα για τον τρέχοντα λογαριασμό. Εισαγάγετε μια τιμή στο πεδίο  "Το όνομά σας" στις ρυθμίσεις του λογαριασμού
 openpgp-keygen-long-expiry = Δεν μπορείτε να δημιουργήσετε ένα κλειδί που λήγει σε περισσότερο από 100 χρόνια.
-openpgp-keygen-short-expiry = Το κλειδί σας πρέπει να έχει ισχύ για τουλάχιστον μία ημέρα.
-
+openpgp-keygen-short-expiry = Το κλειδί σας πρέπει να είναι έγκυρο για τουλάχιστον μία ημέρα.
 openpgp-keygen-ongoing = Η δημιουργία κλειδιού είναι ήδη σε εξέλιξη!
-
 openpgp-keygen-error-core = Δεν ήταν δυνατή η αρχικοποίηση της Κύριας Υπηρεσίας του OpenPGP
-
 openpgp-keygen-error-failed = Η δημιουργία κλειδιού OpenPGP απέτυχε απροσδόκητα
-
 #   $identity (String) - the newly generate OpenPGP Key
 openpgp-keygen-error-revocation = Το κλειδί OpenPGP δημιουργήθηκε με επιτυχία, αλλά απέτυχε η ανάκληση του κλειδιού { $key }
-
 openpgp-keygen-abort-title = Ακύρωση δημιουργίας κλειδιού;
 openpgp-keygen-abort = Η δημιουργία κλειδιού OpenPGP είναι σε εξέλιξη, είστε βέβαιοι ότι θέλετε να την ακυρώσετε;
-
 #   $identity (String) - the name and email address of the currently selected identity
 openpgp-key-confirm = Να δημιουργηθεί το δημόσιο και ιδιωτικό κλειδί για την ταυτότητα { $identity };
 
 ## Import Key section
 
 openpgp-import-key-title = Εισαγωγή υπάρχοντος προσωπικού κλειδιού OpenPGP
-
 openpgp-import-key-legend = Επιλέξτε ένα αρχείο αντιγράφου ασφαλείας που έχετε δημιουργήσει στο παρελθόν.
-
 openpgp-import-key-description = Μπορείτε να εισαγάγετε προσωπικά κλειδιά που δημιουργήθηκαν με άλλο λογισμικό OpenPGP.
-
 openpgp-import-key-info = Άλλο λογισμικό ενδέχεται να περιγράφει ένα προσωπικό κλειδί χρησιμοποιώντας εναλλακτικούς όρους, όπως το δικό σας κλειδί, μυστικό κλειδί, ιδιωτικό κλειδί ή ζεύγος κλειδιών.
-
 #   $count (Number) - the number of keys found in the selected files
 openpgp-import-key-list-amount =
     { $count ->
         [one] Το Thunderbird βρήκε ένα κλειδί που μπορεί να εισαχθεί.
        *[other] Το Thunderbird βρήκε { $count } κλειδιά που μπορούν να εισαχθούν.
     }
-
 openpgp-import-key-list-description = Επιβεβαιώστε ποια κλειδιά μπορούν να θεωρηθούν ως προσωπικά σας κλειδιά. Μόνο κλειδιά που δημιουργήσατε εσείς και που δείχνουν τη δική σας ταυτότητα θα πρέπει να χρησιμοποιούνται ως προσωπικά κλειδιά. Μπορείτε να αλλάξετε αυτήν την επιλογή αργότερα στο παράθυρο διαλόγου Ιδιότητες Κλειδιού.
-
 openpgp-import-key-list-caption = Τα κλειδιά που έχουν επισημανθεί ως Προσωπικά Κλειδιά θα εμφανίζονται στην ενότητα Κρυπτογράφηση Από-Άκρο-Σε-Άκρο. Τα άλλα θα είναι διαθέσιμα στη Διαχείριση Κλειδιών.
-
 openpgp-passphrase-prompt-title = Απαιτείται κωδικός πρόσβασης
-
 #   $identity (String) - the id of the key being imported
 openpgp-passphrase-prompt = Εισαγάγετε τον κωδικό πρόσβασης για να ξεκλειδώσετε το ακόλουθο κλειδί: { $key }
-
 openpgp-import-key-button =
     .label = Επιλέξτε αρχείο για εισαγωγή…
     .accesskey = Ε
-
 import-key-file = Εισαγωγή αρχείου κλειδιού OpenPGP
-
 import-key-personal-checkbox =
     .label = Αυτό το κλειδί να αντιμετωπίζεται ως Προσωπικό Κλειδί
-
 gnupg-file = Αρχεία GnuPG
-
 import-error-file-size = <b>Σφάλμα!</b> Αρχεία μεγαλύτερα των 5MB δεν υποστηρίζονται.
-
 #   $error (String) - the reported error from the failed key import method
 import-error-failed = <b>Σφάλμα!</b> Αδύνατη η εισαγωγή του αρχείου. { $error }
-
 #   $error (String) - the reported error from the failed key import method
 openpgp-import-keys-failed = <b>Σφάλμα!</b> Αδύνατη η εισαγωγή των κλειδιών. { $error }
-
 openpgp-import-identity-label = Ταυτότητα
-
 openpgp-import-fingerprint-label = Αποτύπωμα
-
 openpgp-import-created-label = Δημιουργήθηκε
-
 openpgp-import-bits-label = Bits
-
 openpgp-import-key-props =
     .label = Ιδιότητες κλειδιού
     .accesskey = Ι
@@ -173,16 +118,10 @@ openpgp-import-key-props =
 ## External Key section
 
 openpgp-external-key-title = Εξωτερικό κλειδί GnuPG
-
 openpgp-external-key-description = Διαμόρφωση ενό εξωτερικού κλειδιού GnuPG με εισαγωγή του αναγνωριστικού κλειδιού
-
 openpgp-external-key-info = Επιπλέον, πρέπει να χρησιμοποιήσετε τη Διαχείριση Κλειδιών για εισαγωγή και αποδοχή του αντίστοιχου Δημόσιου Κλειδιού.
-
 openpgp-external-key-warning = <b>Μπορείτε να παραμετροποιήσετε μόνο ένα εξωτερικό κλειδί GnuPG.</b> Η προηγούμενη καταχώρισή σας θα αντικατασταθεί.
-
 openpgp-save-external-button = Αποθήκευση ID κλειδιού
-
 openpgp-external-key-label = ID μυστικού κλειδιού:
-
 openpgp-external-key-input =
     .placeholder = 123456789341298340
diff --git a/thunderbird-l10n/el/localization/el/messenger/openpgp/oneRecipientStatus.ftl b/thunderbird-l10n/el/localization/el/messenger/openpgp/oneRecipientStatus.ftl
index b4937f5656d66aad072722f7b3d5c18202e36512..6e83ea2f665a1977a6e42cadeaea647c2273602c 100644
--- a/thunderbird-l10n/el/localization/el/messenger/openpgp/oneRecipientStatus.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/openpgp/oneRecipientStatus.ftl
@@ -7,7 +7,7 @@ openpgp-one-recipient-status-title =
 openpgp-one-recipient-status-status =
     .label = Κατάσταση
 openpgp-one-recipient-status-key-id =
-    .label = Αναγνωριστικό κλειδιού
+    .label = ID κλειδιού
 openpgp-one-recipient-status-created-date =
     .label = Δημιουργήθηκε
 openpgp-one-recipient-status-expires-date =
@@ -16,15 +16,12 @@ openpgp-one-recipient-status-open-details =
     .label = Άνοιγμα λεπτομερειών και επεξεργασία της αποδοχής…
 openpgp-one-recipient-status-discover =
     .label = Ανακαλύψτε νέα ή ενημερωμένα κλειδιά
-
 openpgp-one-recipient-status-instruction1 = Για να στείλετε ένα κρυπτογραφημένο μήνυμα από άκρο σε άκρο σε έναν παραλήπτη, πρέπει να αποκτήσετε το δημόσιο κλειδί τους OpenPGP και να το ορίσετε ως αποδεκτό.
 openpgp-one-recipient-status-instruction2 = Για να αποκτήσετε το δημόσιο κλειδί τους, εισαγάγετέ το από ένα μήνυμα ηλεκτρονικού ταχυδρομείου που σας έστειλαν και το περιέχει. Εναλλακτικά, μπορείτε να προσπαθήσετε να ψάξετε για το δημόσιο κλειδί τους σε έναν κατάλογο.
-
 openpgp-key-own = Αποδεκτό (προσωπικό κλειδί)
 openpgp-key-secret-not-personal = Μη χρησιμοποιήσιμο
 openpgp-key-verified = Αποδεκτό (επαληθευμένο)
 openpgp-key-unverified = Αποδεκτό (μη επαληθευμένο)
 openpgp-key-undecided = Μη αποδεκτό (χωρίς απόφαση)
 openpgp-key-rejected = Μη αποδεκτό (απορριπτέο)
-
 openpgp-intro = Διαθέσιμα δημόσια κλειδιά για { $key }
diff --git a/thunderbird-l10n/el/localization/el/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/el/localization/el/messenger/openpgp/openpgp.ftl
index 783c9577b422f210d0f734a7391c72f55e5cc8b2..585537aebaa556b0d50fbae317d15f6eda5f41e8 100644
--- a/thunderbird-l10n/el/localization/el/messenger/openpgp/openpgp.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/openpgp/openpgp.ftl
@@ -1,12 +1,9 @@
-
 # 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/.
 
 e2e-intro-description = Για να στείλετε κρυπτογραφημένα ή ψηφιακά υπογεγραμμένα μηνύματα, πρέπει να ρυθμίσετε μια τεχνολογία κρυπτογράφησης, είτε OpenPGP είτε S/MIME.
-
 e2e-intro-description-more = Επιλέξτε το προσωπικό σας κλειδί για να ενεργοποιήσετε τη χρήση του OpenPGP ή το προσωπικό σας πιστοποιητικό για να ενεργοποιήσετε τη χρήση του S/MIME. Για ένα προσωπικό κλειδί ή πιστοποιητικό έχετε και το αντίστοιχο μυστικό κλειδί.
-
 e2e-advanced-section = Σύνθετες ρυθμίσεις
 e2e-attach-key =
     .label = Επισύναψη δημόσιου κλειδιού κατά την προσθήκη ψηφιακής υπογραφής OpenPGP
@@ -17,7 +14,6 @@ e2e-encrypt-subject =
 e2e-encrypt-drafts =
     .label = Αποθήκευση πρόχειρων μηνυμάτων σε κρυπτογραφημένη μορφή
     .accesskey = κ
-
 openpgp-key-user-id-label = Λογαριασμός / Αναγνωριστικό Χρήστη
 openpgp-keygen-title-label =
     .title = Δημιουργία κλειδιού OpenPGP
@@ -48,15 +44,11 @@ openpgp-generate-key =
 openpgp-advanced-prefs-button-label =
     .label = Σύνθετα…
 openpgp-keygen-desc = <a data-l10n-name="openpgp-keygen-desc-link">ΣΗΜΕΙΩΣΗ: Η δημιουργία κλειδιού ενδέχεται να διαρκέσει αρκετά λεπτά για να ολοκληρωθεί.</a> Μην κλείσετε την εφαρμογή ενώ είναι σε εξέλιξη η δημιουργία του κλειδιού. Η ενεργή περιήγηση ή η εκτέλεση έντονων εργασιών δίσκου κατά τη δημιουργία του κλειδιού θα αναπληρώσει τη 'δεξαμενή τυχαιότητας' και θα επιταχύνει τη διαδικασία. Θα ενημερωθείτε όταν ολοκληρωθεί η δημιουργία του κλειδιού.
-
 openpgp-key-expiry-label =
     .label = Λήξη
-
 openpgp-key-id-label =
     .label = ID κλειδιού
-
 openpgp-cannot-change-expiry = Αυτό είναι κλειδί με περίπλοκη δομή, η αλλαγή της ημερομηνίας λήξης δεν υποστηρίζεται.
-
 openpgp-key-man-title =
     .title = Διαχείριση κλειδιών OpenPGP
 openpgp-key-man-generate =
@@ -67,7 +59,6 @@ openpgp-key-man-gen-revoke =
     .accesskey = κ
 openpgp-key-man-ctx-gen-revoke-label =
     .label = Δημιουργία & αποθήκευση πιστοποιητικού ανάκλησης
-
 openpgp-key-man-file-menu =
     .label = Αρχείο
     .accesskey = Α
@@ -83,7 +74,6 @@ openpgp-key-man-generate-menu =
 openpgp-key-man-keyserver-menu =
     .label = Διακομιστής κλειδιών
     .accesskey = Δ
-
 openpgp-key-man-import-public-from-file =
     .label = Εισαγωγή δημόσιων κλειδιών από αρχείο
     .accesskey = Ε
@@ -106,33 +96,26 @@ openpgp-key-man-send-keys =
 openpgp-key-man-backup-secret-keys =
     .label = Αντιγραφή μυστικών κλειδιών σε αρχείο
     .accesskey = Α
-
 openpgp-key-man-discover-cmd =
     .label = Ανακάλυψη κλειδιών στο διαδίκτυο
     .accesskey = Α
 openpgp-key-man-discover-prompt = Για να βρείτε κλειδιά OpenPGP στο διαδίκτυο, σε διακομιστές κλειδιών ή με χρήση του πρωτοκόλλου WKD, εισάγετε είτε την διεύθυνση ηλεκτρονικού ταχυδρομείου, είτε το αναγνωριστικό χρήστη.
 openpgp-key-man-discover-progress = Αναζήτηση…
-
 openpgp-key-copy-key =
     .label = Αντιγραφή δημόσιου κλειδιού
     .accesskey = Α
-
 openpgp-key-export-key =
     .label = Εξαγωγή δημόσιου κλειδιού σε αρχείο
     .accesskey = Ε
-
 openpgp-key-backup-key =
     .label = Αντιγραφή μυστικού κλειδιού σε αρχείο
     .accesskey = Α
-
 openpgp-key-send-key =
     .label = Αποστολή δημόσιου κλειδιού με email
     .accesskey = Α
-
 openpgp-key-man-copy-to-clipbrd =
     .label = Αντιγραφή δημόσιων κλειδιών στο πρόχειρο
     .accesskey = Α
-
 openpgp-key-man-copy-key-ids =
     .label =
         { $count ->
@@ -140,7 +123,6 @@ openpgp-key-man-copy-key-ids =
            *[other] Αντιγραφή ID κλειδιών στο πρόχειρο
         }
     .accesskey = κ
-
 openpgp-key-man-copy-fprs =
     .label =
         { $count ->
@@ -148,7 +130,6 @@ openpgp-key-man-copy-fprs =
            *[other] Αντιγραφή αποτυπωμάτων στο πρόχειρο
         }
     .accesskey = Α
-
 openpgp-key-man-copy-to-clipboard =
     .label =
         { $count ->
@@ -156,16 +137,13 @@ openpgp-key-man-copy-to-clipboard =
            *[other] Αντιγραφή δημόσιων κλειδιών στο πρόχειρο
         }
     .accesskey = δ
-
 openpgp-key-man-ctx-expor-to-file-label =
     .label = Εξαγωγή κλειδιών σε αρχείο
 openpgp-key-man-ctx-copy-to-clipbrd-label =
     .label = Αντιγραφή δημόσιων κλειδιών στο πρόχειρο
-
 openpgp-key-man-ctx-copy =
     .label = Αντιγραφή
     .accesskey = Α
-
 openpgp-key-man-ctx-copy-fprs =
     .label =
         { $count ->
@@ -173,7 +151,6 @@ openpgp-key-man-ctx-copy-fprs =
            *[other] Αποτυπώματα
         }
     .accesskey = Ï„
-
 openpgp-key-man-ctx-copy-key-ids =
     .label =
         { $count ->
@@ -181,7 +158,6 @@ openpgp-key-man-ctx-copy-key-ids =
            *[other] ID κλειδιών
         }
     .accesskey = I
-
 openpgp-key-man-ctx-copy-public-keys =
     .label =
         { $count ->
@@ -189,7 +165,6 @@ openpgp-key-man-ctx-copy-public-keys =
            *[other] Δημόσια κλειδιά
         }
     .accesskey = Δ
-
 openpgp-key-man-close =
     .label = Κλείσιμο
 openpgp-key-man-reload =
@@ -237,15 +212,12 @@ openpgp-key-man-nothing-found-tooltip =
     .label = Δεν υπάρχουν κλειδιά που να ταιριάζουν με τους όρους αναζήτησης
 openpgp-key-man-please-wait-tooltip =
     .label = Παρακαλούμε περιμένετε όσο φορτώνονται τα κλειδιά…
-
 openpgp-key-man-filter-label =
     .placeholder = Αναζήτηση για κλειδιά
-
 openpgp-key-man-select-all-key =
     .key = A
 openpgp-key-man-key-details-key =
     .key = I
-
 openpgp-key-details-title =
     .title = Ιδιότητες κλειδιού
 openpgp-key-details-signatures-tab =
@@ -297,7 +269,6 @@ openpgp-personal-no-label =
     .label = Όχι, να μην χρησιμοποιηθεί ως προσωπικό κλειδί μου.
 openpgp-personal-yes-label =
     .label = Ναι, να αντιμετωπιστεί το κλειδί ως προσωπικό κλειδί.
-
 openpgp-copy-cmd-label =
     .label = Αντιγραφή
 
@@ -311,7 +282,6 @@ openpgp-description =
         [one] Το Thunderbird βρήκε { $count } προσωπικό κλειδί OpenPGP που σχετίζεται με το <b>{ $identity }</b>
        *[other] Το Thunderbird βρήκε { $count } προσωπικά κλειδιά OpenPGP που σχετίζονται με το <b>{ $identity }</b>
     }
-
 #   $count (Number) - the number of configured keys associated with the current identity
 #   $key (String) - the currently selected OpenPGP key
 openpgp-selection-status =
@@ -319,75 +289,51 @@ openpgp-selection-status =
         [0] Επιλέξτε ένα έγκυρο κλειδί για να ενεργοποιήσετε το πρωτόκολλο OpenPGP.
        *[other] Η τρέχουσα ρύθμισή σας χρησιμοποιεί το ID κλειδιού <b>{ $key }</b>
     }
-
 #   $key (String) - the currently selected OpenPGP key
 openpgp-selection-status-have-key = Η τρέχουσα ρύθμισή σας χρησιμοποιεί το ID κλειδιού <b>{ $key }</b>
-
 #   $key (String) - the currently selected OpenPGP key
 openpgp-selection-status-error = Η τρέχουσα διαμόρφωσή σας χρησιμοποιεί το κλειδί <b>{ $key }</b>, το οποίο έχει λήξει.
-
 openpgp-add-key-button =
     .label = Προσθήκη κλειδιού…
     .accesskey = Π
-
 e2e-learn-more = Μάθετε περισσότερα
-
 openpgp-keygen-success = Επιτυχής δημιουργία κλειδιού OpenPGP!
-
 openpgp-keygen-import-success = Επιτυχής εισαγωγή κλειδιών OpenPGP!
-
 openpgp-keygen-external-success = Το εξωτερικό αναγνωριστικό κλειδιού GnuPG αποθηκεύτηκε!
 
 ## OpenPGP Key selection area
 
 openpgp-radio-none =
     .label = Κανένα
-
 openpgp-radio-none-desc = Να μην χρησιμοποιηθεί OpenPGP για αυτή την ταυτότητα.
-
 openpgp-radio-key-not-usable = Αυτό το κλειδί δεν μπορεί να χρησιμοποιηθεί ως προσωπικό, επειδή λείπει το μυστικό κλειδί!
 openpgp-radio-key-not-accepted = Για να χρησιμοποιήσετε αυτό το κλειδί θα πρέπει να το εγκρίνετε ως προσωπικό κλειδί!
 openpgp-radio-key-not-found = Δεν ήταν δυνατή η εύρεση του κλειδιού! Εάν θέλετε να το χρησιμοποιήσετε, πρέπει να το εισαγάγετε στο { -brand-short-name }.
-
 #   $key (String) - the expiration date of the OpenPGP key
 openpgp-radio-key-expires = Λήγει στις: { $date }
-
 openpgp-key-expires-image =
     .tooltiptext = Το κλειδί λήγει σε λιγότερο από 6 μήνες
-
 #   $key (String) - the expiration date of the OpenPGP key
 openpgp-radio-key-expired = Έληξε στις: { $date }
-
 openpgp-key-expired-image =
     .tooltiptext = Το κλειδί έληξε
-
 openpgp-key-expires-within-6-months-icon =
     .title = Το κλειδί λήγει σε λιγότερο από 6 μήνες
-
 openpgp-key-has-expired-icon =
     .title = Το κλειδί έληξε
-
 openpgp-key-expand-section =
     .tooltiptext = Περισσότερες πληροφορίες
-
 openpgp-key-revoke-title = Ανάκληση κλειδιού
-
 openpgp-key-edit-title = Αλλαγή κλειδιού OpenPGP
-
 openpgp-key-edit-date-title = Επέκταση ημερομηνίας λήξης
-
 openpgp-manager-description = Να χρησιμοποιείται η Διαχείριση Κλειδιών OpenPGP για εμφάνιση και διαχείριση των δημόσιων κλειδιών των επιστολογράφων σας και των υπόλοιπων κλειδιών που δεν εμφανίζονται παραπάνω.
-
 openpgp-manager-button =
     .label = Διαχείριση κλειδιών OpenPGP
     .accesskey = κ
-
 openpgp-key-remove-external =
     .label = Αφαίρεση Εξωτερικού Αναγνωριστικού Κλειδιού
     .accesskey = φ
-
 key-external-label = Εξωτερικό κλειδί GnuPG
-
 # Strings in keyDetailsDlg.xhtml
 key-type-public = δημόσιο κλειδί
 key-type-primary = κύριο κλειδί
@@ -404,16 +350,13 @@ key-expired-simple = Το κλειδί έχει λήξει
 key-revoked-simple = Το κλειδί ανακλήθηκε
 key-do-you-accept = Αποδέχεστε αυτό το κλειδί για την επαλήθευση ψηφιακών υπογραφών και για την κρυπτογράφηση μηνυμάτων;
 key-accept-warning = Να αποφεύγετε την αποδοχή άγνωστου-μη έμπιστου κλειδιού. Χρησιμοποιήστε ένα κανάλι επικοινωνίας διαφορετικό της ηλεκτρονικής αλληλογραφίας για να επαληθεύσετε το δακτυλικό αποτύπωμα του κλειδιού του επιστολογράφου σας.
-
 # Strings enigmailMsgComposeOverlay.js
 cannot-use-own-key-because = Δεν είναι δυνατή η αποστολή του μηνύματος, επειδή υπάρχει πρόβλημα με το προσωπικό σας κλειδί. { $problem }
 cannot-encrypt-because-missing = Δεν είναι δυνατή η αποστολή αυτού του μηνύματος με κρυπτογράφηση από άκρο σε άκρο, επειδή υπάρχουν προβλήματα με τα κλειδιά των ακόλουθων παραληπτών: { $problem }
 window-locked = Το παράθυρο σύνθεσης είναι κλειδωμένο· η αποστολή ακυρώθηκε
-
 # Strings in mimeDecrypt.jsm
 mime-decrypt-encrypted-part-attachment-label = Κρυπτογραφημένο μέρος μηνύματος
 mime-decrypt-encrypted-part-concealed-data = Αυτό είναι ένα τμήμα κρυπτογραφημένου μηνύματος. Πρέπει να το ανοίξετε σε ξεχωριστό παράθυρο κάνοντας κλικ στο συνημμένο.
-
 # Strings in keyserver.jsm
 keyserver-error-aborted = Ακυρώθηκε
 keyserver-error-unknown = Προέκυψε άγνωστο σφάλμα
@@ -423,7 +366,6 @@ keyserver-error-unavailable = Ο διακομιστής κλειδιών δεν
 keyserver-error-security-error = Ο διακομιστής κλειδιών δεν υποστηρίζει κρυπτογραφημένη πρόσβαση.
 keyserver-error-certificate-error = Το πιστοποιητικό του διακομιστή κλειδιών δεν είναι έγκυρο.
 keyserver-error-unsupported = Ο διακομιστής κλειδιών δεν υποστηρίζεται.
-
 # Strings in mimeWkdHandler.jsm
 wkd-message-body-req =
     Ο πάροχος του ηλεκτρονικού σας ταχυδρομείου επεξεργάστηκε το αίτημά σας για την υποβολή του δημόσιου κλειδιού σας στον κατάλογο κλειδιών ιστού OpenPGP.
@@ -431,17 +373,14 @@ wkd-message-body-req =
 wkd-message-body-process =
     Αυτό είναι ένα ηλεκτρονικό μήνυμα που σχετίζεται με την αυτόματη επεξεργασία της υποβολής του δημόσιου κλειδιού σας στον κατάλογο κλειδιών ιστού OpenPGP.
     Δεν χρειάζεται να κάνετε καμία άλλη ενέργεια σε αυτό το σημείο.
-
 # Strings in persistentCrypto.jsm
 converter-decrypt-body-failed =
     Δεν ήταν δυνατή η αποκρυπτογράφηση μηνύματος με θέμα
     { $subject }.
     Θέλετε να προσπαθήσετε ξανά με διαφορετική φράση κωδικού ή θέλετε να παραλείψετε το μήνυμα;
-
 # Strings in gpg.jsm
 unknown-signing-alg = Άγνωστος αλγόριθμος υπογραφής (Αναγνωριστικό: { $id })
 unknown-hash-alg = Άγνωστος κρυπτογραφικός κατακερματισμός (Αναγνωριστικό: { $id })
-
 # Strings in keyUsability.jsm
 expiry-key-expires-soon =
     Το κλειδί σας { $desc } θα λήξει σε λιγότερο από { $days } ημέρες.
@@ -458,7 +397,6 @@ expiry-keys-missing-owner-trust =
     Σας συνιστούμε να ορίσετε το "Βασίζεται σε πιστοποιήσεις" σε "απόλυτο" στις ιδιότητες των κλειδιών.
 expiry-open-key-manager = Άνοιγμα διαχείρισης κλειδιών OpenPGP
 expiry-open-key-properties = Άνοιγμα Ιδιοτήτων Κλειδιού
-
 # Strings filters.jsm
 filter-folder-required = Πρέπει να επιλέξετε έναν φάκελο προορισμού.
 filter-decrypt-move-warn-experimental =
@@ -470,21 +408,18 @@ filter-key-not-found = Δεν ήταν δυνατή η εύρεση ενός κ
 filter-warn-key-not-secret =
     Προειδοποίηση - η ενέργεια φίλτρου "Κρυπτογράφηση με κλειδί" αντικαθιστά τους παραλήπτες.
     Εάν δεν έχετε το μυστικό κλειδί για το '{ $desc }', δεν θα μπορείτε πλέον να διαβάζετε τα email.
-
 # Strings filtersWrapper.jsm
 filter-decrypt-move-label = Οριστική αποκρυπτογράφηση (OpenPGP)
 filter-decrypt-copy-label = Δημιουργία αποκρυπτογραφημένου αντιγράφου (OpenPGP)
 filter-encrypt-label = Κρυπτογράφηση με το κλειδί (OpenPGP)
-
 # Strings in enigmailKeyImportInfo.js
 import-info-title =
-    .title = Επιτυχία! Τα κλειδιά εισήχθησαν
+    .title = Επιτυχία! Έγινε εισαγωγή κλειδιών
 import-info-bits = Bits
 import-info-created = Δημιουργήθηκε
 import-info-fpr = Αποτύπωμα
 import-info-details = Προβολή λεπτομερειών και διαχείριση αποδοχής κλειδιών
-import-info-no-keys = Δεν εισήχθηκαν κλειδιά.
-
+import-info-no-keys = Δεν έγινε εισαγωγή κλειδιών.
 # Strings in enigmailKeyManager.js
 import-from-clip = Θέλετε να εισαγάγετε μερικά κλειδιά από το πρόχειρο;
 import-from-url = Λήψη δημόσιου κλειδιού από αυτήν τη διεύθυνση URL:
@@ -528,10 +463,8 @@ dlg-button-delete = &Διαγραφή
 
 openpgp-export-public-success = <b>Το δημόσιο κλειδί εξήχθη με επιτυχία!</b>
 openpgp-export-public-fail = <b>Δεν ήταν δυνατή η εξαγωγή του επιλεγμένου δημόσιου κλειδιού!</b>
-
 openpgp-export-secret-success = <b>Το μυστικό κλειδί εξήχθη με επιτυχία!</b>
 openpgp-export-secret-fail = <b>Δεν ήταν δυνατή η εξαγωγή του επιλεγμένου μυστικού κλειδιού!</b>
-
 # Strings in keyObj.jsm
 key-ring-pub-key-revoked = Το κλειδί { $userId } (αναγνωριστικό κλειδιού { $keyId }) είναι ανακλημένο.
 key-ring-pub-key-expired = Το κλειδί { $userId } (αναγνωριστικό κλειδιού { $keyId }) έχει λήξει.
@@ -542,67 +475,47 @@ key-ring-sign-sub-keys-revoked = Ανακαλούνται όλα τα υποκλ
 key-ring-sign-sub-keys-expired = Όλα τα υποκλειδιά υπογραφής του κλειδιού { $userId } (αναγνωριστικό κλειδιού { $keyId }) έχουν λήξει.
 key-ring-enc-sub-keys-revoked = Όλα τα υποκλειδιά κρυπτογράφησης του κλειδιού { $userId } (αναγνωριστικό κλειδιού { $keyId }) έχουν ανακληθεί.
 key-ring-enc-sub-keys-expired = Όλα τα υποκλειδιά κρυπτογράφησης του κλειδιού { $userId } (αναγνωριστικό κλειδιού { $keyId }) έχουν λήξει.
-
 # Strings in gnupg-keylist.jsm
 keyring-photo = Φωτογραφία
 user-att-photo = Χαρακτηριστικό χρήστη (εικόνα JPEG)
-
 # Strings in key.jsm
 already-revoked = Αυτό το κλειδί έχει ήδη ανακληθεί.
-
 #   $identity (String) - the id and associated user identity of the key being revoked
 revoke-key-question =
     Πρόκειται να ανακαλέσετε το κλειδί '{ $identity }'.
     Δε θα μπορείτε πλέον να υπογράφετε με αυτό το κλειδί και μόλις αυτό διανεμηθεί, άλλοι δε θα μπορούν πλέον να κρυπτογραφούν με αυτό το κλειδί. Μπορείτε ωστόσο να χρησιμοποιείτε το κλειδί για την αποκρυπτογράφηση παλιών μηνυμάτων.
     Θέλετε να συνεχίσετε;
-
 #   $keyId (String) - the id of the key being revoked
 revoke-key-not-present =
     Δεν έχετε κλειδί (0x{ $keyId }) που να αντιστοιχεί σε αυτό το πιστοποιητικό ανάκλησης!
     Εάν έχετε χάσει το κλειδί σας, πρέπει να το εισαγάγετε (π.χ. από έναν διακομιστή κλειδιών) πριν από την εισαγωγή του πιστοποιητικού ανάκλησης!
-
 #   $keyId (String) - the id of the key being revoked
 revoke-key-already-revoked = Το κλειδί 0x{ $keyId } έχει ήδη ανακληθεί.
-
 key-man-button-revoke-key = &Ανάκληση κλειδιού
-
 openpgp-key-revoke-success = Επιτυχής ανάκληση κλειδιού.
-
 after-revoke-info =
     Το κλειδί έχει ανακληθεί.
     Διανέμετε εκ νέου αυτό το δημόσιο κλειδί, στέλνοντάς το μέσω ηλεκτρονικής αλληλογραφίας ή ανεβάζοντάς το σε διακομιστές κλειδιών, για να ενημερώσετε τους άλλους ότι ανακαλέσατε το κλειδί σας.
     Μόλις το λογισμικό που χρησιμοποιούν άλλα άτομα ενημερωθεί για την ανάκληση, θα σταματήσει να χρησιμοποιεί το παλιό σας κλειδί.
     Εάν χρησιμοποιείτε ένα νέο κλειδί για την ίδια διεύθυνση ηλεκτρονικού ταχυδρομείου και επισυνάψετε το νέο δημόσιο κλειδί στα μηνύματα ηλεκτρονικού ταχυδρομείου που στέλνετε, τότε η πληροφορία σχετικά με το παλιό κλειδί που ανακαλέσατε θα συμπεριληφθεί αυτόματα.
-
 # Strings in keyRing.jsm & decryption.jsm
 key-man-button-import = &Εισαγωγή
-
 delete-key-title = Διαγραφή κλειδιού OpenPGP
-
 delete-external-key-title = Αφαίρεση εξωτερικού κλειδιού GnuPG
-
 delete-external-key-description = Θέλετε να αφαιρέσετε αυτό το ID εξωτερικού κλειδιού GnuPG;
-
 key-in-use-title = Το κλειδί OpenPGP χρησιμοποιείται αυτήν τη στιγμή
-
 delete-key-in-use-description = Αδύνατο να συνεχίσω! Το κλειδί που επιλέξατε για διαγραφή χρησιμοποιείται αυτήν τη στιγμή από αυτήν την ταυτότητα. Επιλέξτε διαφορετικό κλειδί ή μην επιλέγετε κάτι και δοκιμάστε ξανά.
-
 revoke-key-in-use-description = Αδύνατο να συνεχίσω! Το κλειδί που επιλέξατε για ανάκληση χρησιμοποιείται αυτήν τη στιγμή από αυτήν την ταυτότητα. Επιλέξτε διαφορετικό κλειδί ή μην επιλέγετε κάτι και δοκιμάστε ξανά.
-
 # Strings used in errorHandling.jsm
 key-error-key-spec-not-found = Η διεύθυνση ηλεκτρονικού ταχυδρομείο '{ $keySpec }' δεν μπορεί να αντιστοιχιστεί με ένα κλειδί στο αποθετήριο κλειδιών σας.
 key-error-key-id-not-found = Το ορισμένο αναγνωριστικό κλειδιού '{ $keySpec }' δεν μπορεί να βρεθεί στο αποθετήριο κλειδιών σας.
 key-error-not-accepted-as-personal = Δεν έχετε επιβεβαιώσει ότι το κλειδί με αναγνωριστικό '{ $keySpec }' είναι το προσωπικό σας κλειδί.
-
 # Strings used in enigmailKeyManager.js & windows.jsm
 need-online = Η λειτουργία που έχετε επιλέξει δεν είναι διαθέσιμη σε λειτουργία εκτός σύνδεσης. Συνδεθείτε στο διαδίκτυο και δοκιμάστε ξανά.
-
 # Strings used in keyRing.jsm & keyLookupHelper.jsm
 no-key-found = Δεν μπορέσαμε να βρούμε κάποιο κλειδί που να ταιριάζει με τα καθορισμένα κριτήρια αναζήτησης.
-
 # Strings used in keyRing.jsm & GnuPGCryptoAPI.jsm
 fail-key-extract = Σφάλμα - Η εντολή εξαγωγής κλειδιού απέτυχε
-
 # Strings used in keyRing.jsm
 fail-cancel = Σφάλμα - Η λήψη του κλειδιού ακυρώθηκε από τον χρήστη
 not-first-block = Σφάλμα - Το πρώτο τμήμα OpenPGP δεν αποτελεί τμήμα δημόσιου κλειδιού
@@ -611,7 +524,6 @@ fail-key-import = Σφάλμα - η εισαγωγή κλειδιού απέτυ
 file-write-failed = Αποτυχία εγγραφής στο αρχείο { $output }
 no-pgp-block = Σφάλμα - Δεν βρέθηκε έγκυρο μπλοκ δεδομένων θωράκισης OpenPGP
 confirm-permissive-import = Η εισαγωγή απέτυχε. Το κλειδί που προσπαθείτε να εισαγάγετε ενδέχεται να είναι κατεστραμμένο ή να χρησιμοποιεί άγνωστα χαρακτηριστικά. Θέλετε να προσπαθήσετε να εισαγάγετε τα τμήματα που είναι σωστά; Αυτό μπορεί να έχει ως αποτέλεσμα την εισαγωγή ημιτελών και μη χρησιμοποιήσιμων κλειδιών.
-
 # Strings used in trust.jsm
 key-valid-unknown = άγνωστο
 key-valid-invalid = μη έγκυρο
@@ -623,7 +535,6 @@ key-trust-marginal = οριακό
 key-trust-full = έμπιστο
 key-trust-ultimate = απόλυτο
 key-trust-group = (ομάδα)
-
 # Strings used in commonWorkflows.js
 import-key-file = Εισαγωγή αρχείου κλειδιού OpenPGP
 import-rev-file = Εισαγωγή αρχείου ανάκλησης OpenPGP
@@ -631,7 +542,6 @@ gnupg-file = Αρχεία GnuPG
 import-keys-failed = Αποτυχία εισαγωγής κλειδιών
 passphrase-prompt = Εισαγάγετε τη μυστική φράση που ξεκλειδώνει το ακόλουθο κλειδί: { $key }
 file-to-big-to-import = Το αρχείο είναι πολύ μεγάλο. Μην εισαγάγετε ταυτόχρονα ένα μεγάλο σύνολο κλειδιών.
-
 # Strings used in enigmailKeygen.js
 save-revoke-cert-as = Δημιουργία & Αποθήκευση Πιστοποιητικού Ανάκλησης
 revoke-cert-ok = Το πιστοποιητικό ανάκλησης δημιουργήθηκε με επιτυχία. Μπορείτε να το χρησιμοποιήσετε για να ακυρώσετε το δημόσιο κλειδί σας, π.χ. σε περίπτωση που χάσετε το μυστικό κλειδί σας.
@@ -650,7 +560,6 @@ key-man-button-generate-key-continue = &Συνέχεια δημιουργίας
 
 failed-decrypt = Σφάλμα - αποτυχία αποκρυπτογράφησης
 fix-broken-exchange-msg-failed = Αποτυχία επιδιόρθωσης μηνύματος.
-
 attachment-no-match-from-signature = Δεν ήταν δυνατή η αντιστοίχιση του αρχείου υπογραφής '{ $attachment }' με κάποιο συνημμένο
 attachment-no-match-to-signature = Δεν ήταν δυνατή η αντιστοίχιση του συνημμένου '{ $attachment }' με ένα αρχείο υπογραφής
 signature-verified-ok = Η υπογραφή για το συνημμένο { $attachment } επαληθεύτηκε με επιτυχία
@@ -660,7 +569,6 @@ decrypt-ok-no-sig =
     Η αποκρυπτογράφηση ήταν επιτυχής, αλλά η υπογραφή δεν ήταν δυνατό να επαληθευτεί σωστά
 msg-ovl-button-cont-anyway = &Συνέχεια ούτως ή άλλως
 enig-content-note = *Τα συνημμένα σε αυτό το μήνυμα δεν έχουν υπογραφεί ούτε κρυπτογραφηθεί*
-
 # Strings used in enigmailMsgComposeOverlay.js
 msg-compose-button-send = &Αποστολή μηνύματος
 msg-compose-details-button-label = Λεπτομέρειες…
@@ -698,14 +606,12 @@ no-temp-dir =
 possibly-pgp-mime = Πιθανόν κρυπτογραφημένο ή υπογεγραμμένο μήνυμα κατά PGP / MIME· χρησιμοποιήστε τη λειτουργία 'Αποκρυπτογράφηση/Επαλήθευση' για επιβεβαίωση
 cannot-send-sig-because-no-own-key = Δεν είναι δυνατή η ψηφιακή υπογραφή αυτού του μηνύματος, επειδή δεν έχετε ρυθμίσει ακόμα την κρυπτογράφηση από άκρο σε άκρο για <{ $key }>
 cannot-send-enc-because-no-own-key = Δεν είναι δυνατή η αποστολή αυτού του μηνύματος ως κρυπτογραφημένο, επειδή δεν έχετε ρυθμίσει ακόμα την κρυπτογράφηση από άκρο σε άκρο για <{ $key }>
-
 compose-menu-attach-key =
     .label = Επισύναψη δημόσιου κλειδιού
     .accesskey = Ε
 compose-menu-encrypt-subject =
     .label = Κρυπτογράφηση θέματος
     .accesskey = π
-
 # Strings used in decryption.jsm
 do-import-multiple =
     Εισαγωγή των ακόλουθων κλειδιών;
@@ -720,18 +626,14 @@ attachment-pgp-key =
     Το συνημμένο '{ $name }' που ανοίγετε φαίνεται να είναι ένα αρχείο κλειδιού OpenPGP.
     Κάντε κλικ στο 'Εισαγωγή' για να εισαγάγετε τα κλειδιά που περιέχονται ή στο 'Προβολή' για να δείτε τα περιεχόμενα του αρχείου σε ένα παράθυρο του προγράμματος περιήγησης
 dlg-button-view = &Προβολή
-
 # Strings used in enigmailMsgHdrViewOverlay.js
 decrypted-msg-with-format-error = Το μήνυμα αποκρυπτογραφήθηκε (αποκαταστάθηκε η κατεστραμμένη μορφή μηνύματος PGP που πιθανότατα προκλήθηκε από έναν παλιό διακομιστή Exchange, έτσι ενδέχεται το αποτέλεσμα να μην είναι άριστα αναγνώσιμο)
-
 # Strings used in encryption.jsm
 not-required = Σφάλμα - δεν απαιτείται κρυπτογράφηση
-
 # Strings used in windows.jsm
 no-photo-available = Καμία διαθέσιμη φωτογραφία
 error-photo-path-not-readable = Η διαδρομή για τη φωτογραφία '{ $photo }' δεν είναι αναγνώσιμη
 debug-log-title = Αρχείο ελέγχου σφαλμάτων OpenPGP
-
 # Strings used in dialog.jsm
 repeat-prefix = Αυτή η ειδοποίηση θα επαναληφθεί { $count }
 repeat-suffix-singular = ακόμη φορά.
@@ -746,14 +648,11 @@ enig-prompt = Προτροπή OpenPGP
 enig-confirm = Επιβεβαίωση OpenPGP
 enig-alert = Ειδοποίηση OpenPGP
 enig-info = Πληροφορίες OpenPGP
-
 # Strings used in persistentCrypto.jsm
 dlg-button-retry = &Επανάληψη
 dlg-button-skip = &Παράλειψη
-
 # Strings used in enigmailCommon.js
 enig-error = Σφάλμα OpenPGP
-
 # Strings used in enigmailMsgBox.js
 enig-alert-title =
     .title = Ειδοποίηση OpenPGP
diff --git a/thunderbird-l10n/el/localization/el/messenger/otr/am-im-otr.ftl b/thunderbird-l10n/el/localization/el/messenger/otr/am-im-otr.ftl
index 1882c10b1ac5ffa0ce671818fbd10d90c4b30c0e..0b527b0e43875a1786275f049452780ef4439a36 100644
--- a/thunderbird-l10n/el/localization/el/messenger/otr/am-im-otr.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/otr/am-im-otr.ftl
@@ -3,7 +3,7 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 account-encryption =
-    .label = Κρυπτογράφηση από άκρο σε άκρο
+    .label = Διατερματική κρυπτογράφηση
 account-otr-label = Μηνύματα εκτός εγγραφής (OTR)
 account-otr-description = Το { -brand-short-name } υποστηρίζει κρυπτογράφηση από άκρο σε άκρο για προσωπικές συνομιλίες. Αυτό εμποδίζει την υποκλοπή μιας συζήτησης από τρίτους. Η κρυπτογράφηση από άκρο σε άκρο μπορεί να χρησιμοποιηθεί μόνο όταν ο συνομιλητής σας χρησιμοποιεί επίσης λογισμικό με υποστήριξη OTR.
 otr-encryption-title = Επαληθευμένη κρυπτογράφηση
@@ -19,14 +19,10 @@ otr-requireEncryption =
     .label = Απαίτηση διατερματικής κρυπτογράφησης για προσωπικές συζητήσεις
 otr-verifyNudge =
     .label = Να γίνεται πάντα υπενθύμιση για επαλήθευση μη επαληθευμένης επαφής
-
 otr-notYetAvailable = δεν διατίθεται ακόμα
-
 otr-require-encryption =
     .label = Απαίτηση διατερματικής κρυπτογράφησης για προσωπικές συζητήσεις
 otr-require-encryption-info = Όταν απαιτείται κρυπτογράφηση από άκρο σε άκρο, τα μηνύματα σε συζητήσεις ενός προς έναν δε θα αποστέλλονται εκτός αν μπορούν να κρυπτογραφηθούν. Τα ληφθέντα μη κρυπτογραφημένα μηνύματα δε θα εμφανίζονται ως μέρος της κανονικής συζήτησης και παράλληλα δε θα καταγράφονται.
 otr-verify-nudge =
     .label = Να γίνεται πάντα υπενθύμιση για επαλήθευση μη επαληθευμένης επαφής
-
 otr-not-yet-available = μη διαθέσιμο ακόμα
-
diff --git a/thunderbird-l10n/el/localization/el/messenger/otr/auth.ftl b/thunderbird-l10n/el/localization/el/messenger/otr/auth.ftl
index 20829bc9362eb176168340b04646cb737b3108f8..4c52859fe9cdd008f224b1d0535527e269c8a1fc 100644
--- a/thunderbird-l10n/el/localization/el/messenger/otr/auth.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/otr/auth.ftl
@@ -5,78 +5,50 @@
 otr-auth =
     .title = Επαλήθευση ταυτότητας επαφής
     .buttonlabelaccept = Επαλήθευση
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 auth-title = Επαληθεύστε την ταυτότητα του { $name }
-
 # Variables:
 #   $own_name (String) - the user's own screen name
 auth-your-fp-value = Αποτύπωμα για εσάς, { $own_name }:
-
 # Variables:
 #   $their_name (String) - the screen name of a chat contact
 auth-their-fp-value = Αποτύπωμα για τον/την { $their_name }:
-
 auth-help = Η επαλήθευση ταυτότητας της επαφής σας βοηθά να διασφαλίσετε ότι η συνομιλία είναι πραγματικά ιδιωτική, κάνοντας πολύ δύσκολη την υποκλοπή ή τη μεταχείριση της συζήτησής σας από τρίτους.
 auth-helpTitle = Βοήθεια επαλήθευσης
-
 auth-questionReceived = Αυτή είναι η ερώτηση που έθεσε η επαφή σας:
-
 auth-help-title = Βοήθεια επαλήθευσης
-
 auth-question-received = Αυτή είναι η ερώτηση που έθεσε η επαφή σας:
-
 auth-yes =
     .label = Ναι
-
 auth-no =
     .label = Όχι
-
 auth-verified = Έχω επαληθεύσει ότι αυτό είναι στην πραγματικότητα το σωστό αποτύπωμα.
-
 auth-manualVerification = Χειροκίνητη επαλήθευση αποτυπώματος
 auth-questionAndAnswer = Ερώτηση και απάντηση
 auth-sharedSecret = Κοινό μυστικό
-
 auth-manualVerification-label =
     .label = { auth-manualVerification }
-
 auth-questionAndAnswer-label =
     .label = { auth-questionAndAnswer }
-
 auth-sharedSecret-label =
     .label = { auth-sharedSecret }
-
 auth-manualInstruction = Επικοινωνήστε με το επιθυμητό άτομο μέσω κάποιου άλλου, έμπιστου καναλιού, όπως ένα email με υπογραφή OpenPGP ή μέσω τηλεφώνου. Θα πρέπει να ανταλλάξετε αποτυπώματα. (Αποτύπωμα είναι ένα checksum που ταυτοποιεί ένα κλειδί κρυπτογράφησης.) Αν το αποτύπωμα ταιριάζει, θα πρέπει να υποδείξετε στον παρακάτω διάλογο ότι έχετε επαληθεύσει το αποτύπωμα.
-
 auth-manual-verification = Χειροκίνητη επαλήθευση αποτυπώματος
 auth-question-and-answer = Ερώτηση και απάντηση
 auth-shared-secret = Κοινό μυστικό
-
 auth-manual-verification-label =
     .label = { auth-manual-verification }
-
 auth-question-and-answer-label =
     .label = { auth-question-and-answer }
-
 auth-shared-secret-label =
     .label = { auth-shared-secret }
-
-auth-manual-instruction = Επικοινωνήστε με το επιθυμητό άτομο μέσω κάποιου άλλου, έμπιστου καναλιού, όπως ένα μήνυμα με υπογραφή OpenPGP ή μέσω τηλεφώνου. Θα πρέπει να ανταλλάξετε αποτυπώματα. (Το αποτύπωμα είναι ένα checksum που ταυτοποιεί ένα κλειδί κρυπτογράφησης.) Αν το αποτύπωμα ταιριάζει, θα πρέπει να υποδείξετε στον παρακάτω διάλογο ότι το έχετε επαληθεύσει.
-
+auth-manual-instruction = Επικοινωνήστε με το επιθυμητό άτομο μέσω κάποιου άλλου, έμπιστου καναλιού, όπως ένα email με υπογραφή OpenPGP ή μέσω τηλεφώνου. Θα πρέπει να ανταλλάξετε αποτυπώματα. (Αποτύπωμα είναι ένα checksum που ταυτοποιεί ένα κλειδί κρυπτογράφησης.) Αν το αποτύπωμα ταιριάζει, θα πρέπει να υποδείξετε στον παρακάτω διάλογο ότι έχετε επαληθεύσει το αποτύπωμα.
 auth-how = Πώς θέλετε να επαληθεύσετε την ταυτότητα της επαφής σας;
-
 auth-qaInstruction = Σκεφτείτε μια ερώτηση της οποίας η απάντηση είναι γνωστή μόνο σε εσάς και την επαφή σας. Εισάγετε την ερώτηση και την απάντηση και περιμένετε να εισαγάγει την απάντηση η επαφή σας. Αν οι απαντήσεις δεν ταιριάζουν, το κανάλι επικοινωνίας που χρησιμοποιείτε ενδέχεται να παρακολουθείται.
-
 auth-secretInstruction = Σκεφτείτε ένα μυστικό που γνωρίζετε μόνο εσείς και η επαφή σας. Μην χρησιμοποιήσετε την ίδια σύνδεση διαδικτύου για να ανταλλάξετε το μυστικό. Εισάγετε το μυστικό και περιμένετε να το εισαγάγει και η επαφή σας. Αν τα μυστικά δεν ταιριάζουν, το κανάλι επικοινωνίας που χρησιμοποιείται ενδέχεται να βρίσκεται υπό παρακολούθηση.
-
 auth-qa-instruction = Σκεφτείτε μια ερώτηση της οποίας η απάντηση είναι γνωστή μόνο σε εσάς και την επαφή σας. Εισάγετε την ερώτηση και την απάντηση και περιμένετε να εισάγει την απάντηση η επαφή σας. Αν οι απαντήσεις δεν ταιριάζουν, το κανάλι επικοινωνίας που χρησιμοποιείτε ενδέχεται να παρακολουθείται από τρίτο.
-
 auth-secret-instruction = Σκεφτείτε ένα μυστικό που γνωρίζετε μόνο εσείς και η επαφή σας. Μην χρησιμοποιήσετε την ίδια σύνδεση διαδικτύου για να ανταλλάξετε το μυστικό. Εισάγετε το μυστικό και περιμένετε να το εισάγει και η επαφή σας. Αν τα μυστικά δεν ταιριάζουν, το κανάλι επικοινωνίας που χρησιμοποιείται ενδέχεται να βρίσκεται υπό παρακολούθηση.
-
 auth-question = Εισαγάγετε μια ερώτηση:
-
 auth-answer = Εισαγάγετε την απάντηση (διαχωρισμός κεφαλαίων - πεζών):
-
 auth-secret = Εισαγάγετε το μυστικό:
diff --git a/thunderbird-l10n/el/localization/el/messenger/otr/chat.ftl b/thunderbird-l10n/el/localization/el/messenger/otr/chat.ftl
index d46146b50edb1526c1f638cab2e6ffb28842c3c3..472e9193dd63763252e17d050ca454a3e92f3984 100644
--- a/thunderbird-l10n/el/localization/el/messenger/otr/chat.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/otr/chat.ftl
@@ -3,17 +3,12 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 state-label = Κατάσταση κρυπτογράφησης:
-
 start-text = Έναρξη κρυπτογραφημένης συζήτησης
-
 start-label =
     .label = { start-text }
-
 start-tooltip =
     .tooltiptext = { start-text }
-
 end-label =
     .label = Λήξη κρυπτογραφημένης συζήτησης
-
 auth-label =
-    .label = Επαλήθευση ταυτότητας επαφής
+    .label = Επαληθεύστε την ταυτότητα της επαφής σας
diff --git a/thunderbird-l10n/el/localization/el/messenger/otr/otr.ftl b/thunderbird-l10n/el/localization/el/messenger/otr/otr.ftl
index d463e3813d46c066ca2aa4c239959a73f5884c55..63d24b730235883479e3dd8313816912904e2e21 100644
--- a/thunderbird-l10n/el/localization/el/messenger/otr/otr.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/otr/otr.ftl
@@ -5,168 +5,126 @@
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-encryption_required_part1 = Προσπαθήσατε να στείλετε ένα μη κρυπτογραφημένο μήνυμα στον/στην { $name }. Σύμφωνα με την πολιτική, τα μη κρυπτογραφημένα μηνύματα δεν επιτρέπονται.
-
 msgevent-encryption_required_part2 = Γίνεται προσπάθεια έναρξης ιδιωτικής συζήτησης. Το μήνυμά σας θα αποσταλεί ξανά όταν ξεκινήσει η ιδιωτική συνομιλία.
 msgevent-encryption_error = Προέκυψε σφάλμα κατά την κρυπτογράφηση του μηνύματός σας. Το μήνυμα δεν απεστάλη.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-connection_ended = Ο/Η { $name } έχει ήδη κλείσει την κρυπτογραφημένη σύνδεση με εσάς. Για να μην στείλετε κατά λάθος κάποιο μήνυμα χωρίς κρυπτογράφηση, το μήνυμά σας δεν απεστάλη. Παρακαλούμε τερματίστε την κρυπτογραφημένη συνομιλία σας, ή επανεκκινήστε την.
-
+msgevent-connection_ended = Ο/Η { $name } έχει ήδη κλείσει την κρυπτογραφημένη σύνδεση με εσάς. Για να μην στείλετε κατά λάθος κάποιο μήνυμα χωρίς κρυπτογράφηση, το μήνυμά σας δεν απεστάλη. Παρακαλώ τερματίστε ή επανεκκινήστε την κρυπτογραφημένη συνομιλία σας.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-setup_error = Προέκυψε σφάλμα κατά τη δημιουργία ιδιωτικής συνομιλίας με τον/την { $name }.
-
 # Do not translate 'OTR' (name of an encryption protocol)
 msgevent-msg_reflected = Λαμβάνετε τα δικά σας μηνύματα OTR. Είτε προσπαθείτε να μιλήσετε με τον εαυτό σας, είτε κάποιος αντανακλά τα μηνύματά σας πίσω σε εσάς.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-msg_resent = Το τελευταίο μήνυμα προς τον/την { $name } απεστάλη ξανά.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg_not_private = Το κρυπτογραφημένο μήνυμα που ελήφθη από τον/την { $name } δεν είναι αναγνώσιμο, καθώς δεν έχετε ιδιωτική επικοινωνία.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg_unreadable = Λάβατε ένα μη αναγνώσιμο, κρυπτογραφημένο μήνυμα από τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg_malformed = Λάβατε ένα μήνυμα δεδομένων με λανθασμένη μορφή από τον/την { $name }.
-
 # A Heartbeat is a technical message used to keep a connection alive.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-log_heartbeat_rcvd = Ελήφθη heartbeat από τον/την { $name }.
-
+msgevent-log_heartbeat_rcvd = Ελήφθη μήνυμα heartbeat από τον/την { $name }.
 # A Heartbeat is a technical message used to keep a connection alive.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-log_heartbeat_sent = Απεστάλη heartbeat στον/στην { $name }.
-
+msgevent-log_heartbeat_sent = Απεστάλη μήνυμα heartbeat στον/στην { $name }.
 # Do not translate 'OTR' (name of an encryption protocol)
 msgevent-rcvdmsg_general_err = Προέκυψε απρόσμενο σφάλμα κατά την προσπάθεια προστασίας της συνομιλίας σας με OTR.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 #   $msg (string) - the message that was received.
-msgevent-rcvdmsg_unencrypted = Το ακόλουθο μήνυμα που ελήφθη από τον/την { $name } δεν κρυπτογραφήθηκε: { $msg }
-
+msgevent-rcvdmsg_unencrypted = Το ακόλουθο μήνυμα που ελήφθη από τον/την { $name } δεν ήταν κρυπτογραφημένο: { $msg }
 # Do not translate 'OTR' (name of an encryption protocol)
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg_unrecognized = Λάβατε ένα μη αναγνωρισμένο μήνυμα OTR από τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-rcvdmsg_for_other_instance = Ο/Η { $name } έχει αποστείλει μήνυμα που προορίζεται για διαφορετική συνεδρία. Αν έχετε συνδεθεί πολλαπλές φορές, μια άλλη συνεδρία ίσως έχει λάβει το μήνυμα.
-
+msgevent-rcvdmsg_for_other_instance = Ο/Η { $name } έχει αποστείλει μήνυμα που προορίζεται για διαφορετική συνεδρία. Αν έχετε συνδεθεί πολλαπλές φορές, μια άλλη συνεδρία ενδέχεται να έχει λάβει το μήνυμα.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-gone_secure_private = Ξεκίνησε η ιδιωτική συνομιλία με τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-gone_secure_unverified = Ξεκίνησε κρυπτογραφημένη, αλλά μη επαληθευμένη συνομιλία με τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-still_secure = Έγινε επιτυχώς ανανέωση της κρυπτογραφημένης συνομιλίας με τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-encryption-required-part1 = Προσπαθήσατε να στείλετε ένα μη κρυπτογραφημένο μήνυμα στον/στην { $name }. Σύμφωνα με την πολιτική, τα μη κρυπτογραφημένα μηνύματα δεν επιτρέπονται.
-
 msgevent-encryption-required-part2 = Γίνεται προσπάθεια έναρξης ιδιωτικής συζήτησης. Το μήνυμά σας θα αποσταλεί εκ νέου όταν ξεκινήσει η ιδιωτική συνομιλία.
 msgevent-encryption-error = Συνέβη ένα σφάλμα κατά την κρυπτογράφηση του μηνύματός σας. Το μήνυμα δεν απεστάλη.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-connection-ended = Ο/Η { $name } έχει ήδη κλείσει την κρυπτογραφημένη σύνδεση μαζί σας. Για να αποφύγετε την κατά λάθος αποστολή μηνύματος χωρίς κρυπτογράφηση, το μήνυμά σας δεν απεστάλη. Παρακαλούμε τερματίστε την κρυπτογραφημένη συζήτησή σας ή ξεκινήστε την εκ νέου.
-
+msgevent-connection-ended = Ο/Η { $name } έχει ήδη κλείσει την κρυπτογραφημένη σύνδεση με εσάς. Για να μην στείλετε κατά λάθος κάποιο μήνυμα χωρίς κρυπτογράφηση, το μήνυμά σας δεν απεστάλη. Παρακαλώ τερματίστε ή επανεκκινήστε την κρυπτογραφημένη συνομιλία σας.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-setup-error = Συνέβη ένα σφάλμα κατά τη δημιουργία ιδιωτικής συνομιλίας με τον/την { $name }.
-
+msgevent-setup-error = Προέκυψε σφάλμα κατά τη δημιουργία ιδιωτικής συνομιλίας με τον/την { $name }.
 # Do not translate 'OTR' (name of an encryption protocol)
 msgevent-msg-reflected = Λαμβάνετε τα δικά σας μηνύματα OTR. Είτε προσπαθείτε να μιλήσετε με τον εαυτό σας, είτε κάποιος αντανακλά τα μηνύματά σας πίσω σε εσάς.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-msg-resent = Το τελευταίο μήνυμα προς τον/την { $name } απεστάλη ξανά.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg-not-private = Το κρυπτογραφημένο μήνυμα που ελήφθη από τον/την { $name } δεν είναι αναγνώσιμο, καθώς δεν έχετε αυτή τη στιγμή ιδιωτική επικοινωνία.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg-unreadable = Λάβατε ένα μη αναγνώσιμο κρυπτογραφημένο μήνυμα από τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg-malformed = Λάβατε ένα μήνυμα δεδομένων με λανθασμένη μορφή από τον/την { $name }.
-
 # A Heartbeat is a technical message used to keep a connection alive.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-log-heartbeat-rcvd = Ελήφθη μήνυμα παλμού από τον/την { $name }.
-
+msgevent-log-heartbeat-rcvd = Ελήφθη μήνυμα heartbeat από τον/την { $name }.
 # A Heartbeat is a technical message used to keep a connection alive.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-log-heartbeat-sent = Ο παλμός απεστάλη στον/στην { $name }.
-
+msgevent-log-heartbeat-sent = Απεστάλη μήνυμα heartbeat στον/στην { $name }.
 # Do not translate 'OTR' (name of an encryption protocol)
 msgevent-rcvdmsg-general-err = Προέκυψε απροσδόκητο σφάλμα κατά την προσπάθεια προστασίας της συνομιλίας σας με OTR.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 #   $msg (string) - the message that was received.
 msgevent-rcvdmsg-unencrypted = Το ακόλουθο μήνυμα που ελήφθη από τον/την { $name } δεν ήταν κρυπτογραφημένο: { $msg }
-
 # Do not translate 'OTR' (name of an encryption protocol)
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 msgevent-rcvdmsg-unrecognized = Λάβατε ένα μη αναγνωρισμένο μήνυμα OTR από τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-msgevent-rcvdmsg-for-other-instance = Ο/Η { $name } απέστειλε μήνυμα που προορίζεται για διαφορετική συνεδρία. Αν έχετε συνδεθεί πολλαπλές φορές, ενδέχεται μια άλλη συνεδρία να έλαβε το μήνυμα.
-
+msgevent-rcvdmsg-for-other-instance = Ο/Η { $name } έχει αποστείλει μήνυμα που προορίζεται για διαφορετική συνεδρία. Αν έχετε συνδεθεί πολλαπλές φορές, μια άλλη συνεδρία ενδέχεται να έχει λάβει το μήνυμα.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-gone-secure-private = Ξεκίνησε η ιδιωτική συνομιλία με τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-gone-secure-unverified = Ξεκίνησε κρυπτογραφημένη, αλλά μη επαληθευμένη συνομιλία με τον/την { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 context-still-secure = Έγινε επιτυχής ανανέωση της κρυπτογραφημένης συνομιλίας με τον/την { $name }.
-
 error-enc = Παρουσιάστηκε σφάλμα κατά την κρυπτογράφηση του μηνύματος.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 error-not_priv = Στείλατε κρυπτογραφημένα δεδομένα στον/στην { $name }, που δεν τα περίμενε.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 error-not-priv = Στείλατε κρυπτογραφημένα δεδομένα στον/στην { $name }, που δεν τα περίμενε.
-
 error-unreadable = Μεταδώσατε ένα μη αναγνώσιμο, κρυπτογραφημένο μήνυμα.
 error-malformed = Μεταδώσατε ένα μήνυμα δεδομένων με λανθασμένη μορφή.
-
 resent = [απεστάλη ξανά]
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 tlv-disconnected = Ο/Η { $name } έληξε την κρυπτογραφημένη συνομιλία μαζί σας· πρέπει να κάνετε το ίδιο.
-
 # Do not translate "Off-the-Record" and "OTR" which is the name of an encryption protocol
 # Make sure that this string does NOT contain any numbers, e.g. like "3".
 # Variables:
diff --git a/thunderbird-l10n/el/localization/el/messenger/otr/otrUI.ftl b/thunderbird-l10n/el/localization/el/messenger/otr/otrUI.ftl
index 460b875fdebe799fa0d2766feafe484f5f3c24bd..0489210ab9b5faac99fb080b1b1e260578229bc8 100644
--- a/thunderbird-l10n/el/localization/el/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/otr/otrUI.ftl
@@ -28,7 +28,7 @@ alert-start = Απόπειρα έναρξης κρυπτογραφημένης 
 alert-refresh = Απόπειρα ανανέωσης κρυπτογραφημένης συνομιλίας με τον/την { $name }.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-alert-gone_insecure = Η κρυπτογραφημένη συνομιλία με τον/την { $name } έληξε.
+alert-gone_insecure = Η κρυπτογραφημένη συνομιλία με τον/την { $name } τερματίστηκε.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone-insecure = Η κρυπτογραφημένη συνομιλία με τον/την { $name } τερματίστηκε.
diff --git a/thunderbird-l10n/el/localization/el/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/el/localization/el/messenger/policies/policies-descriptions.ftl
index 1ec07fece8cadb657fd7be164a591c6f6d29f1ab..1ad1446d63c3c0ef410e93fa2db2a2fb2a331f7b 100644
--- a/thunderbird-l10n/el/localization/el/messenger/policies/policies-descriptions.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/policies/policies-descriptions.ftl
@@ -13,7 +13,7 @@
 policy-3rdparty = Ορισμός πολιτικών που μπορούν να προσπελάσουν τα WebExtensions μέσω του chrome.storage.managed.
 policy-AppAutoUpdate = Ενεργοποίηση ή απενεργοποίηση αυτόματων ενημερώσεων εφαρμογής.
 policy-AppUpdateURL = Ορισμός προσαρμοσμένου URL ενημέρωσης εφαρμογής.
-policy-Authentication = Ρύθμιση ενσωματωμένης πιστοποίησης για ιστοσελίδες που την υποστηρίζουν.
+policy-Authentication = Ρύθμιση ενσωματωμένης πιστοποίησης για ιστοτόπους που την υποστηρίζουν.
 policy-BackgroundAppUpdate2 = Ενεργοποίηση ή απενεργοποίηση υπηρεσίας ενημερώσεων παρασκηνίου.
 policy-BlockAboutAddons = Αποκλεισμός πρόσβασης στη Διαχείριση προσθέτων (about:addons).
 policy-BlockAboutConfig = Αποκλεισμός πρόσβασης στη σελίδα about:config.
@@ -21,14 +21,14 @@ policy-BlockAboutProfiles = Αποκλεισμός πρόσβασης στη σ
 policy-BlockAboutSupport = Αποκλεισμός πρόσβασης στη σελίδα about:support.
 policy-CaptivePortal = Ενεργοποίηση ή απενεργοποίηση υποστήριξης πυλών υποδοχής.
 policy-CertificatesDescription = Προσθήκη πιστοποιητικών ή χρήση ενσωματωμένων πιστοποιητικών.
-policy-Cookies = Αποδοχή ή απόρριψη τοποθέτησης cookies από ιστοσελίδες.
+policy-Cookies = Αποδοχή ή απόρριψη τοποθέτησης cookie από ιστοτόπους.
 policy-DisableBuiltinPDFViewer = Απενεργοποίηση του PDF.js, του ενσωματωμένου προγράμματος προβολής PDF στο { -brand-short-name }.
 policy-DisabledCiphers = Απενεργοποίηση κρυπτογράφησης.
 policy-DefaultDownloadDirectory = Ορισμός προεπιλεγμένου καταλόγου λήψης.
 policy-DisableAppUpdate = Αποτροπή ενημέρωσης του { -brand-short-name }.
 policy-DisableDefaultClientAgent = Αποτροπή οποιασδήποτε ενέργειας από την προεπιλεγμένη λειτουργία πελάτη. Ισχύει μόνο για Windows· οι άλλες πλατφόρμες δεν έχουν τέτοια υπηρεσία.
 policy-DisableDeveloperTools = Αποκλεισμός πρόσβασης στα εργαλεία ανάπτυξης.
-policy-DisableFeedbackCommands = Απενεργοποίηση εντολών για αποστολή σχολίων από το μενού "Βοήθεια" (Υποβολή σχολίων και αναφορά παραπλανητικής ιστοσελίδας).
+policy-DisableFeedbackCommands = Απενεργοποίηση εντολών για αποστολή σχολίων από το μενού «Βοήθεια» («Υποβολή σχολίων» και «Αναφορά παραπλανητικού ιστοτόπου»).
 policy-DisableForgetButton = Αποτροπή πρόσβασης στο κουμπί "Διαγραφή".
 policy-DisableFormHistory = Χωρίς διατήρηση ιστορικού αναζήτησης και φορμών.
 policy-DisableMasterPasswordCreation = Αν αληθεύει, δεν μπορεί να δημιουργηθεί κύριος κωδικός πρόσβασης.
@@ -54,17 +54,17 @@ policy-ExtensionSettings = Διαχειριστείτε όλες τις πτυχ
 policy-ExtensionUpdate = Ενεργοποίηση ή απενεργοποίηση αυτόματων ενημερώσεων επεκτάσεων.
 policy-Handlers = Ρύθμιση προκαθορισμένων χειριστών εφαρμογών.
 policy-HardwareAcceleration = Αν είναι ψευδές, απενεργοποίηση επιτάχυνσης υλικού.
-policy-InstallAddonsPermission = Αποδοχή εγκατάστασης προσθέτων από ορισμένες ιστοσελίδες.
+policy-InstallAddonsPermission = Αποδοχή εγκατάστασης προσθέτων από ορισμένους ιστοτόπους.
 policy-LegacyProfiles = Απενεργοποίηση της λειτουργίας που απαιτεί ξεχωριστό προφίλ για κάθε εγκατάσταση.
 
 ## Do not translate "SameSite", it's the name of a cookie attribute.
 
 policy-LegacySameSiteCookieBehaviorEnabled = Ενεργοποίηση προεπιλεγμένης ρύθμισης συμπεριφοράς του παλαιού SameSite cookie.
-policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Επαναφορά στην παλαιά συμπεριφορά SameSite για cookies σε καθορισμένες ιστοσελίδες.
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Επαναφορά στην παλαιά συμπεριφορά SameSite για cookie σε καθορισμένους ιστοτόπους.
 
 ##
 
-policy-LocalFileLinks = Να επιτρέπεται σε συγκεκριμένες ιστοσελίδες η σύνδεση με τοπικά αρχεία.
+policy-LocalFileLinks = Να επιτρέπεται σε συγκεκριμένους ιστοτόπους η σύνδεση με τοπικά αρχεία.
 policy-ManualAppUpdateOnly = Αποδοχή μόνο των χειροκίνητων ενημερώσεων και να μην ειδοποιείται ο χρήστης σχετικά με ενημερώσεις.
 policy-NetworkPrediction = Ενεργοποίηση ή απενεργοποίηση πρόβλεψης δικτύου (προφόρτωση DNS).
 policy-OfferToSaveLogins = Εξαναγκασμός της ρύθμισης για να επιτρέπεται στο { -brand-short-name } η πρόταση για απομνημόνευση αποθηκευμένων συνδέσεων και κωδικών πρόσβασης. Αποδεκτές η τιμή true και η τιμή false.
@@ -90,4 +90,4 @@ policy-SSLVersionMin = Ορισμός ελάχιστης έκδοσης SSL.
 policy-SupportMenu = Προσθήκη προσαρμοσμένου στοιχείου μενού υποστήριξης στο μενού βοήθειας.
 policy-UserMessaging = Να μην εμφανίζονται ορισμένα μηνύματα στο χρήστη.
 # “format” refers to the format used for the value of this policy.
-policy-WebsiteFilter = Αποκλεισμός επίσκεψης σε ιστοσελίδες. Δείτε την τεκμηρίωση για περισσότερες λεπτομέρειες σχετικά με τη μορφή.
+policy-WebsiteFilter = Αποκλεισμός επίσκεψης σε ιστοτόπους. Δείτε την τεκμηρίωση για περισσότερες λεπτομέρειες σχετικά με τη μορφή.
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/cookies.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/cookies.ftl
index b66f1a20a3cf8f6ae753d24a686f66ab9e4befe5..459ed20134138c22e8a9c05003d5643204a63cce 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/cookies.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/cookies.ftl
@@ -3,30 +3,22 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 cookies-window-dialog =
-    .title = Cookies
+    .title = Cookie
     .style = width: 40em;
-
 window-close-key =
     .key = w
-
 window-focus-search-key =
     .key = f
-
 window-focus-search-alt-key =
     .key = k
-
 filter-search-label =
     .value = Αναζήτηση:
     .accesskey = ζ
-
-cookies-on-system-label = Τα ακόλουθα cookies είναι αποθηκευμένα στον υπολογιστή σας:
-
+cookies-on-system-label = Τα ακόλουθα cookie αποθηκεύονται στον υπολογιστή σας:
 treecol-site-header =
-    .label = Σελίδα
-
+    .label = Ιστότοπος
 treecol-name-header =
     .label = Όνομα cookie
-
 props-name-label =
     .value = Όνομα:
 props-value-label =
@@ -41,15 +33,12 @@ props-expires-label =
     .value = Λήξη:
 props-container-label =
     .value = Περιβάλλον:
-
 remove-cookie-button =
     .label = Αφαίρεση cookie
     .accesskey = φ
-
 remove-all-cookies-button =
     .label = Αφαίρεση όλων των cookies
     .accesskey = σ
-
 cookie-close-button =
     .label = Κλείσιμο
     .accesskey = Κ
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/dock-options.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/dock-options.ftl
index a172c768a912a31d7a8eb1f5e8ce64d4106fcee1..92653bd3d4a422297da46a6b9e515a2410aa2c23 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/dock-options.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/dock-options.ftl
@@ -5,22 +5,16 @@
 dock-options-window-dialog =
     .title = Επιλογές εικονιδίου εφαρμογής
     .style = width: 35em;
-
 bounce-system-dock-icon =
     .label = Κίνηση του εικονιδίου κατά την άφιξη νέων μηνυμάτων
     .accesskey = Κ
-
 dock-icon-legend = Σήμα εικονιδίου εφαρμογής
-
 dock-icon-show-label =
     .value = Το εικονίδιο της εφαρμογής να έχει σήμα με:
-
 count-unread-messages-radio =
     .label = Αριθμός μη αναγνωσμένων μηνυμάτων
     .accesskey = μ
-
 count-new-messages-radio =
     .label = Αριθμός νέων μηνυμάτων
     .accesskey = ν
-
-notification-settings-info = Μπορείτε να απενεργοποιήσετε το σήμα στην ενότητα "Ειδοποίηση" στις Προτιμήσεις συστήματος.
+notification-settings-info = Μπορείτε να απενεργοποιήσετε το σήμα στην ενότητα «Ειδοποίηση» στις Προτιμήσεις συστήματος.
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/fonts.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/fonts.ftl
index a23e2ea800a5b76762a8a8926416e2bf127fd183..da5a0a384a651f086b2d080b2ddd586499e1edba 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/fonts.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/fonts.ftl
@@ -4,21 +4,17 @@
 
 fonts-window-close =
     .key = w
-
 # Variables:
 #   $name {string, "Arial"} - Name of the default font
 fonts-label-default =
     .label = Προεπιλογή ({ $name })
 fonts-label-default-unnamed =
     .label = Προεπιλογή
-
 fonts-encoding-dialog-title =
     .title = Γραμματοσειρές & κωδικοποίηση
-
 fonts-language-legend =
     .value = Γραμματοσειρές για:
     .accesskey = Ï„
-
 fonts-proportional-label =
     .value = Μεταβλητές:
     .accesskey = β
@@ -65,7 +61,7 @@ font-language-group-ethiopic =
 font-language-group-georgian =
     .label = Γεωργιανή
 font-language-group-gujarati =
-    .label = Γκουαρατί
+    .label = Γκουτζαράτι
 font-language-group-gurmukhi =
     .label = Γκουρμούχι
 font-language-group-khmer =
@@ -89,49 +85,38 @@ font-language-group-tibetan =
 
 default-font-serif =
     .label = Serif
-
 default-font-sans-serif =
     .label = Sans Serif
-
 font-size-label =
     .value = Μέγεθος:
     .accesskey = θ
-
 font-size-proportional-label =
     .value = Μέγεθος:
     .accesskey = ε
-
 font-size-monospace-label =
     .value = Μέγεθος:
     .accesskey = ε
-
 font-serif-label =
     .value = Serif:
     .accesskey = S
-
 font-sans-serif-label =
     .value = Sans-serif:
     .accesskey = n
-
 font-monospace-label =
     .value = Monospace:
     .accesskey = M
-
 font-min-size-label =
     .value = Ελάχιστο μέγεθος γραμματοσειράς:
     .accesskey = χ
-
 min-size-none =
     .label = Κανένα
 
 ## Fonts in message
 
 font-control-legend = Χειρισμός γραμματοσειράς
-
 use-document-fonts-checkbox =
     .label = Να επιτρέπεται στα έγγραφα να χρησιμοποιούν άλλες γραμματοσειρές
     .accesskey = ο
-
 use-fixed-width-plain-checkbox =
     .label = Χρήση σταθερού πλάτους για μηνύματα απλού κειμένου
     .accesskey = ρ
@@ -139,17 +124,13 @@ use-fixed-width-plain-checkbox =
 ## Language settings
 
 text-encoding-legend = Κωδικοποίηση κειμένου
-
 text-encoding-description = Ρύθμιση της προεπιλεγμένης κωδικοποίησης χαρακτήρων για την αποστολή και λήψη αλληλογραφίας
-
 font-outgoing-email-label =
     .value = Εξερχόμενα:
     .accesskey = ξ
-
 font-incoming-email-label =
     .value = Εισερχόμενα:
     .accesskey = ι
-
 default-font-reply-checkbox =
     .label = Όταν είναι δυνατόν, να γίνεται χρήση της προεπιλεγμένης κωδικοποίησης στις απαντήσεις
     .accesskey = Ï…
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/passwordManager.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/passwordManager.ftl
index d20e522f3f5257a03f67bf7a6ea767e147516fa7..470d839703b6c2977cd6bb63415d7403e48a186b 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/passwordManager.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/passwordManager.ftl
@@ -55,11 +55,9 @@ import =
 close-button =
     .label = Κλείσιμο
     .accesskey = Κ
-
 password-close-button =
     .label = Κλείσιμο
     .accesskey = Κ
-
 show-passwords =
     .label = Εμφάνιση κωδικών πρόσβασης
     .accesskey = κ
@@ -74,7 +72,7 @@ remove-all =
 remove-all-shown =
     .label = Αφαίρεση όλων των εμφανιζόμενων
     .accesskey = Α
-remove-all-passwords-prompt = Θέλετε σίγουρα να αφαιρέσετε όλους τους κωδικούς πρόσβασης;
+remove-all-passwords-prompt = Θέλετε σίγουρα να διαγράψετε όλους τους κωδικούς πρόσβασης;
 remove-all-passwords-title = Αφαίρεση όλων των κωδικών πρόσβασης
 no-master-password-prompt = Θέλετε σίγουρα να γίνει εμφάνιση των κωδικών πρόσβασής σας;
 
@@ -82,12 +80,10 @@ no-master-password-prompt = Θέλετε σίγουρα να γίνει εμφά
 
 # This message can be seen by trying to show or copy the passwords.
 password-os-auth-dialog-message = Επαληθεύστε την ταυτότητά σας για αποκάλυψη των αποθηκευμένων κωδικών πρόσβασης.
-
 # This message can be seen by trying to show or copy the passwords.
 # The macOS strings are preceded by the operating system with "Thunderbird is trying to "
 # and includes subtitle of "Enter password for the user "xxx" to allow this." These
 # notes are only valid for English. Please test in your locale.
 password-os-auth-dialog-message-macosx = αποκαλύψει τους αποθηκευμένους κωδικούς πρόσβασης
-
 # Don't change this label.
 password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/permissions.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/permissions.ftl
index 0ce3f25ed462d8c7e8edb9879dfc2ac5bda6630c..5e8ab7fc53778893c81a7f63891111363bf563e6 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/permissions.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/permissions.ftl
@@ -5,55 +5,41 @@
 permissions-reminder-window =
     .title = Εξαιρέσεις
     .style = width: 45em;
-
 window-close-key =
     .key = w
-
 permission-preferences-close-window =
     .key = w
-
 website-address-label =
-    .value = Διεύθυνση ιστοσελίδας:
+    .value = Διεύθυνση ιστοτόπου:
     .accesskey = θ
-
 block-button =
     .label = Φραγή
     .accesskey = Φ
-
 allow-session-button =
     .label = Αποδοχή για τη συνεδρία
     .accesskey = χ
-
 allow-button =
     .label = Αποδοχή
     .accesskey = Α
-
 treehead-sitename-label =
-    .label = Σελίδα
-
+    .label = Ιστότοπος
 treehead-status-label =
     .label = Κατάσταση
-
 remove-site-button =
-    .label = Αφαίρεση ιστοσελίδας
+    .label = Αφαίρεση ιστοτόπου
     .accesskey = ρ
-
 remove-all-site-button =
-    .label = Αφαίρεση όλων των ιστοσελίδων
+    .label = Αφαίρεση όλων των ιστοτόπων
     .accesskey = λ
-
 cancel-button =
     .label = Ακύρωση
     .accesskey = Α
-
 save-button =
     .label = Αποθήκευση αλλαγών
     .accesskey = Α
-
-permission-can-label = Να επιτρέπεται
+permission-can-label = Αποδοχή
 permission-can-access-first-party-label = Να επιτρέπεται μόνο στους άμεσα εμπλεκόμενους
 permission-can-session-label = Αποδοχή για τη συνεδρία
 permission-cannot-label = Φραγή
-
 invalid-uri-message = Παρακαλώ εισαγάγετε ένα έγκυρο όνομα συστήματος
-invalid-uri-title = Εισήχθη μη έγκυρο όνομα συστήματος
+invalid-uri-title = Μη έγκυρο όνομα συστήματος
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/preferences.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/preferences.ftl
index 9eb7e592e4c4b36929f1cd135b3d0417419f212c..835dded30f221b78ffa4cd2a9e3b6a78c589d33b 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/preferences.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/preferences.ftl
@@ -4,118 +4,77 @@
 
 close-button =
     .aria-label = Κλείσιμο
-
 preferences-title =
     .title =
         { PLATFORM() ->
             [windows] Επιλογές
            *[other] Προτιμήσεις
         }
-
 preferences-doc-title = Προτιμήσεις
-
 category-list =
     .aria-label = Κατηγορίες
-
 pane-general-title = Γενικά
 category-general =
     .tooltiptext = { pane-general-title }
-
 pane-compose-title = Σύνθεση
 category-compose =
     .tooltiptext = Σύνθεση
-
 pane-privacy-title = Απόρρητο & ασφάλεια
 category-privacy =
     .tooltiptext = Απόρρητο & ασφάλεια
-
 pane-chat-title = Συνομιλία
 category-chat =
     .tooltiptext = Συνομιλία
-
 pane-calendar-title = Ημερολόγιο
 category-calendar =
     .tooltiptext = Ημερολόγιο
-
 general-language-and-appearance-header = Γλώσσα & εμφάνιση
-
 general-incoming-mail-header = Εισερχόμενα email
-
 general-files-and-attachment-header = Αρχεία & συνημμένα
-
 general-tags-header = Ετικέτες
-
 general-reading-and-display-header = Ανάγνωση & προβολή
-
 general-updates-header = Ενημερώσεις
-
 general-network-and-diskspace-header = Δίκτυο & χώρος δίσκου
-
-general-indexing-label = Ευρετηριοποίηση
-
+general-indexing-label = Ευρετηρίαση
 composition-category-header = Σύνθεση
-
 composition-attachments-header = Συνημμένα
-
 composition-spelling-title = Ορθογραφία
-
 compose-html-style-title = Στυλ HTML
-
 composition-addressing-header = Διευθυνσιοδότηση
-
 privacy-main-header = Απόρρητο
-
 privacy-passwords-header = Κωδικοί πρόσβασης
-
 privacy-junk-header = Ανεπιθύμητα
-
 collection-header = Συλλογή και χρήση δεδομένων { -brand-short-name }
-
 collection-description = Προσπαθούμε να παρέχουμε επιλογές και να συλλέγουμε μόνο τα απαραίτητα, ώστε να προσφέρουμε και να βελτιώνουμε το { -brand-short-name } για όλους. Ζητούμε πάντα άδεια πριν λάβουμε προσωπικές πληροφορίες.
 collection-privacy-notice = Σημείωση απορρήτου
-
 collection-health-report-telemetry-disabled = Δεν επιτρέπεται πλέον στη { -vendor-short-name } η συλλογή τεχνικών δεδομένων και δεδομένων αλληλεπίδρασης. Όλα τα προηγούμενα δεδομένα θα διαγραφούν μέσα σε 30 ημέρες.
 collection-health-report-telemetry-disabled-link = Μάθετε περισσότερα
-
 collection-health-report =
     .label = Να επιτρέπεται στο { -brand-short-name } η αποστολή τεχνικών και διαδραστικών δεδομένων στη { -vendor-short-name }
     .accesskey = ρ
 collection-health-report-link = Μάθετε περισσότερα
-
 # This message is displayed above disabled data sharing options in developer builds
 # or builds with no Telemetry support available.
 collection-health-report-disabled = Η αναφορά δεδομένων είναι ανενεργή για αυτή την έκδοση
-
 collection-backlogged-crash-reports =
     .label = Να επιτρέπεται στο { -brand-short-name } η αποστολή εκκρεμουσών αναφορών σφαλμάτων
     .accesskey = σ
 collection-backlogged-crash-reports-link = Μάθετε περισσότερα
-
 privacy-security-header = Ασφάλεια
-
 privacy-scam-detection-title = Ανίχνευση απάτης
-
 privacy-anti-virus-title = Προστασία από ιούς
-
 privacy-certificates-title = Πιστοποιητικά
-
 chat-pane-header = Συνομιλία
-
 chat-status-title = Κατάσταση
-
 chat-notifications-title = Ειδοποιήσεις
-
 chat-pane-styling-header = Στυλ
-
 choose-messenger-language-description = Επιλέξτε τις γλώσσες εμφάνισης για μενού, μηνύματα και ειδοποιήσεις από το { -brand-short-name }.
 manage-messenger-languages-button =
     .label = Ορισμός εναλλακτικών…
     .accesskey = λ
 confirm-messenger-language-change-description = Επανεκκίνηση του { -brand-short-name } για εφαρμογή αλλαγών
 confirm-messenger-language-change-button = Εφαρμογή και επανεκκίνηση
-
 update-setting-write-failure-title = Σφάλμα αποθήκευσης προτιμήσεων ενημερώσεων
-
 # Variables:
 #   $path (String) - Path to the configuration file
 # The newlines between the main text and the line containing the path is
@@ -124,18 +83,13 @@ update-setting-write-failure-message =
     Το { -brand-short-name } αντιμετώπισε σφάλμα και δεν αποθήκευσε αυτή την αλλαγή. Σημειώστε ότι η ρύθμιση αυτής της προτίμησης ενημερώσεων απαιτεί δικαίωμα εγγραφής στο παρακάτω αρχείο. Εσείς ή κάποιος διαχειριστής συστήματος ενδέχεται να μπορέσει να επιλύσει το σφάλμα, χορηγώντας στην ομάδα Χρήστες τον πλήρη έλεγχο για αυτό το αρχείο.
     
     Αδυναμία εγγραφής στο αρχείο: { $path }
-
 update-in-progress-title = Ενημέρωση σε εξέλιξη
-
 update-in-progress-message = Θέλετε το { -brand-short-name } να συνεχίσει με αυτή την ενημέρωση;
-
 update-in-progress-ok-button = &Απόρριψη
 # Continue is the cancel button so pressing escape or using a platform standard
 # method of closing the UI will not discard the update.
 update-in-progress-cancel-button = &Συνέχεια
-
 addons-button = Επεκτάσεις & θέματα
-
 account-button = Ρυθμίσεις λογαριασμού
 open-addons-sidebar-button = Πρόσθετα και θέματα
 
@@ -143,22 +97,18 @@ open-addons-sidebar-button = Πρόσθετα και θέματα
 
 # This message can be seen by trying to add a Master Password.
 master-password-os-auth-dialog-message-win = Για να δημιουργήσετε έναν κύριο κωδικό πρόσβασης, εισαγάγετε τα διαπιστευτήρια σύνδεσης των Windows. Αυτό συμβάλλει στην προστασία των λογαριασμών σας.
-
 # This message can be seen by trying to add a Master Password.
 # The macOS strings are preceded by the operating system with "Thunderbird is trying to "
 # and includes subtitle of "Enter password for the user "xxx" to allow this." These
 # notes are only valid for English. Please test in your locale.
 master-password-os-auth-dialog-message-macosx = δημιουργήσει κύριο κωδικό πρόσβασης
-
 # This message can be seen by trying to add a Primary Password.
 primary-password-os-auth-dialog-message-win = Για να δημιουργήσετε έναν κύριο κωδικό πρόσβασης, εισαγάγετε τα διαπιστευτήρια σύνδεσης των Windows. Αυτό συμβάλλει στην προστασία των λογαριασμών σας.
-
 # This message can be seen by trying to add a Primary Password.
 # The macOS strings are preceded by the operating system with "Thunderbird is trying to "
 # and includes subtitle of "Enter password for the user "xxx" to allow this." These
 # notes are only valid for English. Please test in your locale.
 primary-password-os-auth-dialog-message-macosx = δημιουργήσει κύριο κωδικό πρόσβασης
-
 # Don't change this label.
 master-password-os-auth-dialog-caption = { -brand-full-name }
 
@@ -168,20 +118,16 @@ focus-search-shortcut =
     .key = f
 focus-search-shortcut-alt =
     .key = k
-
 general-legend = Αρχική σελίδα { -brand-short-name }
-
 start-page-label =
     .label = Κατά την εκκίνηση του { -brand-short-name }, να εμφανίζεται η αρχική σελίδα στην περιοχή μηνυμάτων
     .accesskey = Ï„
-
 location-label =
     .value = Τοποθεσία:
     .accesskey = ο
 restore-default-label =
     .label = Επαναφορά προεπιλογής
     .accesskey = π
-
 default-search-engine = Προεπιλεγμένη μηχανή αναζήτησης
 add-search-engine =
     .label = Προσθήκη από αρχείο
@@ -189,11 +135,9 @@ add-search-engine =
 remove-search-engine =
     .label = Αφαίρεση
     .accesskey = ρ
-
 minimize-to-tray-label =
     .label = Όταν το { -brand-short-name } ελαχιστοποιείται, να γίνεται μετακίνηση στη γραμμή εργασιών
     .accesskey = ε
-
 new-message-arrival = Όταν φθάνουν νέα μηνύματα:
 mail-play-sound-label =
     .label =
@@ -205,34 +149,26 @@ mail-play-sound-label =
 mail-play-button =
     .label = Αναπαραγωγή
     .accesskey = π
-
 change-dock-icon = Αλλαγή προτιμήσεων για το εικονίδιο της εφαρμογής
 app-icon-options =
     .label = Επιλογές εικονιδίου εφαρμογής…
     .accesskey = Ε
-
 notification-settings = Οι ειδοποιήσεις και ο προεπιλεγμένος ήχος μπορούν να απενεργοποιηθούν στην καρτέλα Ειδοποιήσεις των ρυθμίσεων συστήματος.
-
 animated-alert-label =
     .label = Εμφάνιση ειδοποίησης
     .accesskey = φ
 customize-alert-label =
     .label = Προσαρμογή…
     .accesskey = μ
-
 tray-icon-label =
     .label = Εμφάνιση εικονιδίου στη γραμμή
     .accesskey = μ
-
 biff-use-system-alert =
     .label = Χρήση ειδοποιήσεων συστήματος
-
 tray-icon-unread-label =
     .label = Εμφάνιση εικονιδίου για μη αναγνωσμένα μηνύματα στη γραμμή εργασίων
     .accesskey = φ
-
 tray-icon-unread-description = Προτείνεται εάν χρησιμοποιείτε μικρά κουμπιά στη γραμμή εργασιών
-
 mail-system-sound-label =
     .label = Προεπιλεγμένος ήχος συστήματος για νέα email
     .accesskey = Π
@@ -242,27 +178,21 @@ mail-custom-sound-label =
 mail-browse-sound-button =
     .label = Περιήγηση…
     .accesskey = γ
-
 enable-gloda-search-label =
     .label = Ενεργοποίηση καθολικής αναζήτησης και ευρετηριοποίησης
     .accesskey = γ
-
 datetime-formatting-legend = Μορφή ημερομηνίας και ώρας
 language-selector-legend = Γλώσσα
-
 allow-hw-accel =
     .label = Χρήση επιτάχυνσης υλικού όταν είναι διαθέσιμη
     .accesskey = Ï…
-
 store-type-label =
     .value = Τύπος αποθήκευσης μηνυμάτων για νέους λογαριασμούς:
     .accesskey = Τ
-
 mbox-store-label =
     .label = Αρχείο ανά φάκελο (mbox)
 maildir-store-label =
     .label = Αρχείο ανά μήνυμα (maildir)
-
 scrolling-legend = Κύλιση
 autoscroll-label =
     .label = Χρήση αυτόματης κύλισης
@@ -270,15 +200,13 @@ autoscroll-label =
 smooth-scrolling-label =
     .label = Χρήση ομαλής κύλισης
     .accesskey = ο
-
 system-integration-legend = Ενσωμάτωση συστήματος
 always-check-default =
-    .label = Πάντα έλεγχος στην εκκίνηση για το αν το { -brand-short-name } είναι το προεπιλεγμένο πρόγραμμα αλληλογραφίας
+    .label = Να γίνεται πάντα έλεγχος στην εκκίνηση για το αν το { -brand-short-name } είναι το προεπιλεγμένο πρόγραμμα αλληλογραφίας
     .accesskey = λ
 check-default-button =
     .label = Έλεγχος τώρα…
     .accesskey = Ï„
-
 # Note: This is the search engine name for all the different platforms.
 # Platforms that don't support it should be left blank.
 search-engine-name =
@@ -287,26 +215,20 @@ search-engine-name =
         [windows] Αναζήτηση των Windows
        *[other] { "" }
     }
-
 search-integration-label =
     .label = Να επιτρέπεται στην { search-engine-name } η αναζήτηση μηνυμάτων
     .accesskey = π
-
 config-editor-button =
     .label = Επεξεργασία ρυθμίσεων…
     .accesskey = θ
-
 return-receipts-description = Καθορίστε τον τρόπο διαχείρισης των αποδεικτικών προβολής από το { -brand-short-name }
 return-receipts-button =
     .label = Αποδεικτικά προβολής…
     .accesskey = Ï„
-
 update-app-legend = Ενημερώσεις του { -brand-short-name }
-
 # Variables:
 #   $version (String): version of Thunderbird, e.g. 68.0.1
 update-app-version = Έκδοση { $version }
-
 allow-description = Να επιτρέπεται στο { -brand-short-name }
 automatic-updates-label =
     .label = Αυτόματη εγκατάσταση ενημερώσεων (προτείνεται: αυξημένη ασφάλεια)
@@ -314,40 +236,30 @@ automatic-updates-label =
 check-updates-label =
     .label = Να γίνεται έλεγχος για ενημερώσεις, αλλά να επιλέγω αν θα γίνει εγκατάστασή τους
     .accesskey = ε
-
 update-history-button =
     .label = Εμφάνιση ιστορικού ενημερώσεων
     .accesskey = ι
-
 use-service =
     .label = Χρήση μιας υπηρεσίας παρασκηνίου για την εγκατάσταση ενημερώσεων
     .accesskey = Ï…
-
 cross-user-udpate-warning = Αυτή η ρύθμιση θα εφαρμοστεί σε όλους τους λογαριασμούς των Windows και τα προφίλ του { -brand-short-name } με αυτή την εγκατάσταση του { -brand-short-name }.
-
 networking-legend = Σύνδεση
 proxy-config-description = Ρύθμιση του τρόπου σύνδεσης του { -brand-short-name } στο διαδίκτυο
-
 network-settings-button =
     .label = Ρυθμίσεις…
     .accesskey = Θ
-
 offline-legend = Εκτός σύνδεσης
 offline-settings = Ρυθμίσεις εργασίας εκτός σύνδεσης
-
 offline-settings-button =
     .label = Εκτός σύνδεσης…
     .accesskey = Ε
-
 diskspace-legend = Χώρος δίσκου
 offline-compact-folder =
     .label = Συμπίεση φακέλων πάνω από
     .accesskey = π
-
 offline-compact-folder-automatically =
     .label = Ερώτηση κάθε φορά πριν από τη συμπίεση
     .accesskey = κ
-
 compact-folder-size =
     .value = MB στο σύνολο
 
@@ -358,7 +270,6 @@ compact-folder-size =
 use-cache-before =
     .value = Χρήση μέχρι
     .accesskey = μ
-
 use-cache-after = MB χώρου για την κρυφή μνήμη
 
 ##
@@ -366,42 +277,31 @@ use-cache-after = MB χώρου για την κρυφή μνήμη
 smart-cache-label =
     .label = Παράκαμψη αυτόματης διαχείρισης κρυφής μνήμης
     .accesskey = ψ
-
 clear-cache-button =
     .label = Εκκαθάριση τώρα
     .accesskey = θ
-
 fonts-legend = Γραμματοσειρές & χρώματα
-
 default-font-label =
     .value = Προεπιλεγμένη γραμματοσειρά:
     .accesskey = ρ
-
 default-size-label =
     .value = Μέγεθος:
     .accesskey = θ
-
 font-options-button =
     .label = Σύνθετα…
     .accesskey = Σ
-
 color-options-button =
     .label = Χρώματα…
     .accesskey = ρ
-
 display-width-legend = Μηνύματα απλού κειμένου
-
 # Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
 convert-emoticons-label =
     .label = Εμφάνιση emoji ως γραφικών στοιχείων
     .accesskey = φ
-
 display-text-label = Κατά την προβολή μηνυμάτων απλού κειμένου σε παράθεση:
-
 style-label =
     .value = Στυλ:
     .accesskey = Ï…
-
 regular-style-item =
     .label = Κανονικά
 bold-style-item =
@@ -410,36 +310,27 @@ italic-style-item =
     .label = Πλάγια
 bold-italic-style-item =
     .label = Έντονα πλάγια
-
 size-label =
     .value = Μέγεθος:
     .accesskey = θ
-
 regular-size-item =
     .label = Κανονικό
 bigger-size-item =
     .label = Μεγαλύτερο
 smaller-size-item =
     .label = Μικρότερο
-
 quoted-text-color =
     .label = Χρώμα:
     .accesskey = Χ
-
 search-input =
     .placeholder = Αναζήτηση
-
 search-handler-table =
     .placeholder = Φιλτράρισμα τύπων και ενεργειών περιεχομένου
-
 type-column-label = Τύπος περιεχομένου
-
 action-column-label = Ενέργεια
-
 save-to-label =
     .label = Αποθήκευση αρχείων σε
     .accesskey = θ
-
 choose-folder-label =
     .label =
         { PLATFORM() ->
@@ -451,30 +342,22 @@ choose-folder-label =
             [macos] π
            *[other] γ
         }
-
 always-ask-label =
     .label = Πάντα ερώτηση για την τοποθεσία αποθήκευσης
     .accesskey = Π
-
-
 display-tags-text = Οι ετικέτες μπορούν να χρησιμοποιηθούν για την ταξινόμηση και τον καθορισμό προτεραιότητας των μηνυμάτων σας.
-
 new-tag-button =
     .label = Νέα…
     .accesskey = Ν
-
 edit-tag-button =
     .label = Επεξεργασία…
     .accesskey = Ε
-
 delete-tag-button =
     .label = Διαγραφή
     .accesskey = φ
-
 auto-mark-as-read =
     .label = Αυτόματη επισήμανση μηνυμάτων ως αναγνωσμένων
     .accesskey = Α
-
 mark-read-no-delay =
     .label = Άμεσα κατά την προβολή
     .accesskey = μ
@@ -485,33 +368,26 @@ mark-read-no-delay =
 mark-read-delay =
     .label = Μετά από προβολή για
     .accesskey = γ
-
 seconds-label = δευτερόλεπτα
 
 ##
 
 open-msg-label =
     .value = Άνοιγμα μηνυμάτων σε:
-
 open-msg-tab =
     .label = Νέα καρτέλα
     .accesskey = κ
-
 open-msg-window =
     .label = Νέο παράθυρο μηνύματος
     .accesskey = π
-
 open-msg-ex-window =
     .label = Υπάρχον παράθυρο μηνύματος
     .accesskey = Ï…
-
 close-move-delete =
     .label = Κλείσιμο παραθύρου/καρτέλας μηνύματος μετά από μετακίνηση ή διαγραφή
     .accesskey = Κ
-
 display-name-label =
     .value = Εμφανιζόμενο όνομα:
-
 condensed-addresses-label =
     .label = Προβολή μόνο του εμφανιζόμενου ονόματος για άτομα του ευρετηρίου μου
     .accesskey = ε
@@ -521,13 +397,10 @@ condensed-addresses-label =
 forward-label =
     .value = Προώθηση μηνυμάτων:
     .accesskey = θ
-
 inline-label =
     .label = Εντός μηνύματος
-
 as-attachment-label =
     .label = Ως συνημμένο
-
 extension-label =
     .label = Προσθήκη επέκτασης στο όνομα αρχείου
     .accesskey = χ
@@ -538,7 +411,6 @@ extension-label =
 auto-save-label =
     .label = Αυτόματη αποθήκευση κάθε
     .accesskey = Ï…
-
 auto-save-end = λεπτά
 
 ##
@@ -546,260 +418,189 @@ auto-save-end = λεπτά
 warn-on-send-accel-key =
     .label = Επιβεβαίωση πριν από την αποστολή μηνύματος όταν γίνεται χρήση συντομεύσεων πληκτρολογίου
     .accesskey = β
-
 spellcheck-label =
     .label = Ορθογραφικός έλεγχος πριν από την αποστολή
     .accesskey = Ο
-
 spellcheck-inline-label =
     .label = Ορθογραφικός έλεγχος κατά την πληκτρολόγηση
     .accesskey = φ
-
 language-popup-label =
     .value = Γλώσσα:
     .accesskey = λ
-
 download-dictionaries-link = Λήψη περισσότερων λεξικών
-
 font-label =
     .value = Γραμματοσειρά:
     .accesskey = ρ
-
 font-size-label =
     .value = Μέγεθος:
     .accesskey = γ
-
 default-colors-label =
     .label = Χρήση προεπιλεγμένων χρωμάτων αναγνώστη
     .accesskey = π
-
 font-color-label =
     .value = Χρώμα κειμένου:
     .accesskey = Χ
-
 bg-color-label =
     .value = Χρώμα παρασκηνίου:
     .accesskey = Χ
-
 restore-html-label =
     .label = Επαναφορά προεπιλογών
     .accesskey = φ
-
 default-format-label =
     .label = Χρήση της μορφής παραγράφου αντί του μορφής κειμένου κύριου μέρους από προεπιλογή
     .accesskey = π
-
 format-description = Ρύθμιση συμπεριφοράς μορφής κειμένου
-
 send-options-label =
     .label = Επιλογές αποστολής…
     .accesskey = σ
-
 autocomplete-description = Κατά τη διευθυνσιοδότηση μηνυμάτων, αναζήτηση για αντίστοιχες καταχωρήσεις σε:
-
 ab-label =
     .label = Τοπικά ευρετήρια διευθύνσεων
     .accesskey = ο
-
 directories-label =
     .label = Διακομιστή καταλόγου:
     .accesskey = Δ
-
 directories-none-label =
     .none = Κανένας
-
 edit-directories-label =
     .label = Επεξεργασία καταλόγων…
     .accesskey = Ε
-
 email-picker-label =
     .label = Αυτόματη προσθήκη εξερχομένων διευθύνσεων email σε:
     .accesskey = Ï„
-
 default-directory-label =
     .value = Προεπιλεγμένος κατάλογος εκκίνησης στο παράθυρο ευρετηρίων:
     .accesskey = Π
-
 default-last-label =
     .none = Τελευταία χρησιμοποιημένος κατάλογος
-
 attachment-label =
     .label = Έλεγχος για συνημμένα που λείπουν
     .accesskey = γ
-
 attachment-options-label =
     .label = Λέξεις-κλειδιά…
     .accesskey = κ
-
 enable-cloud-share =
     .label = Πρόταση για κοινή χρήση αρχείων, μεγαλύτερων από
 cloud-share-size =
     .value = MB
-
 add-cloud-account =
     .label = Προσθήκη…
     .accesskey = Π
     .defaultlabel = Προσθήκη…
-
 remove-cloud-account =
     .label = Αφαίρεση
     .accesskey = Α
-
 find-cloud-providers =
     .value = Εύρεση περισσότερων παρόχων…
-
-cloud-account-description = Προσθήκη νέας υπηρεσίας αποθηκευτικού χώρου Filelink
-
+cloud-account-description = Προσθήκη νέας υπηρεσίας αποθηκευτικού χώρου FileLink
 
 ## Privacy Tab
 
 mail-content = Περιεχόμενο email
-
 remote-content-label =
     .label = Αποδοχή απομακρυσμένου περιεχομένου στα μηνύματα
     .accesskey = μ
-
 exceptions-button =
     .label = Εξαιρέσεις…
     .accesskey = Ε
-
 remote-content-info =
     .value = Μάθετε περισσότερα σχετικά με τα θέματα απορρήτου του απομακρυσμένου περιεχομένου
-
 web-content = Διαδικτυακό περιεχόμενο
-
 history-label =
-    .label = Απομνημόνευση ιστοσελίδων και συνδέσμων που έχω επισκεφθεί
+    .label = Απομνημόνευση ιστοτόπων και συνδέσμων που έχω επισκεφθεί
     .accesskey = ι
-
 cookies-label =
-    .label = Αποδοχή cookies από ιστοσελίδες
+    .label = Αποδοχή cookie από ιστοτόπους
     .accesskey = δ
-
 third-party-label =
     .value = Αποδοχή cookies τρίτων:
     .accesskey = Ï„
-
 third-party-always =
     .label = Πάντα
 third-party-never =
     .label = Ποτέ
 third-party-visited =
     .label = Από τις επισκέψεις
-
 keep-label =
     .value = Διατήρηση μέχρι:
     .accesskey = δ
-
 keep-expire =
     .label = να λήξουν
 keep-close =
     .label = το κλείσιμο του { -brand-short-name }
 keep-ask =
     .label = ερώτηση κάθε φορά
-
 cookies-button =
     .label = Εμφάνιση cookies…
     .accesskey = φ
-
 do-not-track-label =
-    .label = Αποστολή σήματος “Αποτροπή καταγραφής” που σημαίνει ότι δεν θέλετε να καταγράφεστε από τις ιστοσελίδες
-    .accesskey = ρ
-
+    .label = Αποστολή σήματος «Αποτροπή καταγραφής», ώστε να μην καταγράφεστε από ιστοτόπους
+    .accesskey = λ
 learn-button =
     .label = Μάθετε περισσότερα
-
 passwords-description = Το { -brand-short-name } μπορεί να απομνημονεύσει τους κωδικούς πρόσβασης όλων των λογαριασμών σας.
-
 passwords-button =
     .label = Αποθηκευμένοι κωδικοί πρόσβασης…
     .accesskey = θ
-
 master-password-description = Ο κύριος κωδικός πρόσβασης προστατεύει όλους τους κωδικούς πρόσβασής σας, αλλά θα πρέπει να τον εισαγάγετε σε κάθε συνεδρία.
-
 master-password-label =
     .label = Χρήση κύριου κωδικού πρόσβασης
     .accesskey = ρ
-
 master-password-button =
     .label = Αλλαγή κύριου κωδικού πρόσβασης…
     .accesskey = β
-
-
 primary-password-description = Ο κύριος κωδικός πρόσβασης προστατεύει όλους τους κωδικούς πρόσβασής σας, αλλά θα πρέπει να τον εισάγετε σε κάθε συνεδρία.
-
 primary-password-label =
     .label = Χρήση κύριου κωδικού πρόσβασης
     .accesskey = Χ
-
 primary-password-button =
     .label = Αλλαγή κύριου κωδικού πρόσβασης…
     .accesskey = Α
-
 forms-primary-pw-fips-title = Είστε σε λειτουργία FIPS. Το FIPS απαιτεί μη κενό κύριο κωδικό πρόσβασης.
 forms-master-pw-fips-desc = Αποτυχία αλλαγής κωδικού πρόσβασης
-
-
-junk-description = Καθορίστε τις προεπιλεγμένες ρυθμίσεις ανεπιθύμητης αλληλογραφίας. Οι ρυθμίσεις για συγκεκριμένους λογαριασμούς μπορούν να τροποποιηθούν στις ρυθμίσεις λογαριασμού.
-
+junk-description = Καθορίστε τις προεπιλεγμένες ρυθμίσεις ανεπιθύμητης αλληλογραφίας σας. Οι ρυθμίσεις για συγκεκριμένους λογαριασμούς μπορούν να τροποποιηθούν στις ρυθμίσεις λογαριασμού.
 junk-label =
     .label = Όταν επισημαίνεται ως ανεπιθύμητο ένα μήνυμα:
     .accesskey = σ
-
 junk-move-label =
-    .label = Μετακίνηση στον φάκελο "Ανεπιθύμητα" του λογαριασμού
+    .label = Μετακίνηση στον φάκελο «Ανεπιθύμητα» του λογαριασμού
     .accesskey = θ
-
 junk-delete-label =
     .label = Διαγραφή
     .accesskey = δ
-
 junk-read-label =
     .label = Επισήμανση ανεπιθύμητων μηνυμάτων ως αναγνωσμένα
     .accesskey = μ
-
 junk-log-label =
     .label = Ενεργοποίηση καταγραφής προσαρμοστικού φίλτρου ανεπιθύμητων
     .accesskey = γ
-
 junk-log-button =
     .label = Εμφάνιση αρχείου καταγραφής
     .accesskey = φ
-
 reset-junk-button =
     .label = Επαναφορά δεδομένων εκμάθησης
     .accesskey = θ
-
 phishing-description = Το { -brand-short-name } μπορεί να αναλύει τα μηνύματα για πιθανές απάτες email, αναζητώντας κοινές πρακτικές που χρησιμοποιούνται για παραπλάνηση.
-
 phishing-label =
     .label = Ειδοποίηση αν το τρέχον μήνυμα είναι ύποπτο για απάτη email
     .accesskey = δ
-
 antivirus-description = Το { -brand-short-name } μπορεί να διευκολύνει το λογισμικό προστασίας από ιούς στην ανάλυση των εισερχομένων σας για ιούς πριν από την τοπική αποθήκευση.
-
 antivirus-label =
     .label = Να επιτρέπεται στο λογισμικό προστασίας από ιούς η απομόνωση ξεχωριστών εισερχόμενων μηνυμάτων
     .accesskey = ρ
-
 certificate-description = Όταν ένας διακομιστής απαιτεί προσωπικό πιστοποιητικό:
-
 certificate-auto =
     .label = Αυτόματη επιλογή
     .accesskey = Α
-
 certificate-ask =
     .label = Ερώτηση κάθε φορά
     .accesskey = Ε
-
 ocsp-label =
     .label = Ερώτηση στους διακομιστές για OCSP ανταπόκριση ώστε να επιβεβαιωθεί η τρέχουσα εγκυρότητα των πιστοποιητικών
     .accesskey = δ
-
 certificate-button =
     .label = Διαχείριση πιστοποιητικών…
     .accesskey = Δ
-
 security-devices-button =
     .label = Συσκευές ασφαλείας…
     .accesskey = Σ
@@ -809,10 +610,8 @@ security-devices-button =
 startup-label =
     .value = Κατά την εκκίνηση του { -brand-short-name }:
     .accesskey = ε
-
 offline-label =
     .label = Διατήρηση λογαριασμών συνομιλίας εκτός σύνδεσης
-
 auto-connect-label =
     .label = Αυτόματη σύνδεση λογαριασμών συνομιλίας
 
@@ -825,32 +624,26 @@ auto-connect-label =
 idle-label =
     .label = Να γνωστοποιείται στις επαφές μου ότι είμαι αδρανής μετά από
     .accesskey = δ
-
 idle-time-label = λεπτά αδράνειας
 
 ##
 
 away-message-label =
-    .label = και να ορίζεται η κατάστασή μου σε "Εκτός υπολογιστή" με το εξής μήνυμα:
+    .label = και να ορίζεται η κατάστασή μου σε «Εκτός υπολογιστή» με το εξής μήνυμα:
     .accesskey = ζ
-
 send-typing-label =
     .label = Αποστολή ειδοποιήσεων πληκτρολόγησης στις συνομιλίες
     .accesskey = σ
-
 notification-label = Όταν έρχονται μηνύματα που απευθύνονται σε εσάς:
-
 show-notification-label =
     .label = Εμφάνιση ειδοποίησης:
     .accesskey = ε
-
 notification-all =
     .label = με όνομα αποστολέα και προεπισκόπηση μηνύματος
 notification-name =
     .label = μόνο με όνομα αποστολέα
 notification-empty =
     .label = χωρίς καμία πληροφορία
-
 notification-type-label =
     .label =
         { PLATFORM() ->
@@ -862,31 +655,24 @@ notification-type-label =
             [macos] μ
            *[other] μ
         }
-
 chat-play-sound-label =
     .label = Αναπαραγωγή ήχου
     .accesskey = χ
-
 chat-play-button =
     .label = Αναπαραγωγή
     .accesskey = Α
-
 chat-system-sound-label =
     .label = Προεπιλεγμένος ήχος συστήματος για νέα email
     .accesskey = ρ
-
 chat-custom-sound-label =
     .label = Χρήση του ακόλουθου αρχείου ήχου
     .accesskey = χ
-
 chat-browse-sound-button =
     .label = Περιήγηση…
     .accesskey = η
-
 theme-label =
     .value = Θέμα:
     .accesskey = Θ
-
 style-thunderbird =
     .label = Thunderbird
 style-bubbles =
@@ -897,19 +683,15 @@ style-paper =
     .label = Φύλλα χαρτιού
 style-simple =
     .label = Απλό
-
 preview-label = Προεπισκόπηση:
 no-preview-label = Μη διαθέσιμη προεπισκόπιση
 no-preview-description = Αυτό το θέμα δεν είναι έγκυρο ή διαθέσιμο αυτή τη στιγμή (ανενεργό πρόσθετο, ασφαλής λειτουργία, …).
-
 chat-variant-label =
     .value = Παραλλαγή:
     .accesskey = Π
-
 chat-header-label =
     .label = Εμφάνιση κεφαλίδας
     .accesskey = Ε
-
 # This is used to determine the width of the search field in about:preferences,
 # in order to make the entire placeholder string visible
 #
@@ -925,7 +707,6 @@ search-input-box =
             [windows] Εύρεση στις επιλογές
            *[other] Εύρεση στις προτιμήσεις
         }
-
 # This is used to determine the width of the search field in about:preferences,
 # in order to make the entire placeholder string visible
 #
@@ -941,12 +722,10 @@ search-preferences-input =
 ## Preferences UI Search Results
 
 search-results-header = Αποτελέσματα αναζήτησης
-
 # `<span data-l10n-name="query"></span>` will be replaced by the search term.
 search-results-empty-message =
     { PLATFORM() ->
-        [windows] Συγγνώμη! Δεν υπάρχουν αποτελέσματα για το “<span data-l10n-name="query"></span>” στις Επιλογές.
-       *[other] Συγγνώμη! Δεν υπάρχουν αποτελέσματα για το “<span data-l10n-name="query"></span>” στις Προτιμήσεις.
+        [windows] Συγγνώμη! Δεν υπάρχουν αποτελέσματα για το «<span data-l10n-name="query"></span>» στις Επιλογές.
+       *[other] Συγγνώμη! Δεν υπάρχουν αποτελέσματα για το «<span data-l10n-name="query"></span>» στις Προτιμήσεις.
     }
-
 search-results-help-link = Χρειάζεστε βοήθεια; Επισκεφθείτε την <a data-l10n-name="url">Υποστήριξη { -brand-short-name }</a>
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/receipts.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/receipts.ftl
index 116c586d3ebbb3f0b18cb596b8a88bfae47b6413..08d9d38ceb37755103cd5fec259a458498c0e507 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/receipts.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/receipts.ftl
@@ -4,48 +4,35 @@
 
 receipts-dialog-window =
     .title = Αποδεικτικά προβολής
-
 return-receipt-checkbox =
     .label = Κατά την αποστολή μηνυμάτων, να ζητείται πάντα αποδεικτικό προβολής
     .accesskey = Κ
-
 receipt-arrive-label = Μετά την επιστροφή μιας βεβαίωσης
-
 receipt-leave-radio =
     .label = Διατήρηση στα εισερχόμενα
     .accesskey = Ï„
-
 receipt-move-radio =
-    .label = Μεταφορά στον φάκελο "Απεσταλμένα"
+    .label = Μεταφορά στον φάκελο «Απεσταλμένα»
     .accesskey = μ
-
 receipt-request-label = Κατά τη λήψη αιτήματος για αποδεικτικό προβολής:
-
 receipt-return-never-radio =
     .label = Να μην γίνεται ποτέ αποστολή αποδεικτικού προβολής
     .accesskey = ν
-
 receipt-return-some-radio =
     .label = Αποδοχή αποδεικτικών προβολής για ορισμένα μηνύματα
     .accesskey = π
-
 receipt-not-to-cc =
     .value = Αν δεν είμαι στα πεδία "Προς" ή "Κοιν." του μηνύματος:
     .accesskey = ν
-
 receipt-send-never-label =
     .label = Ποτέ αποστολή
-
 receipt-send-always-label =
     .label = Πάντα αποστολή
-
 receipt-send-ask-label =
     .label = Να γίνεται ερώτηση
-
 sender-outside-domain =
-    .value = Aν ο αποστολέας είναι εκτός του τομέα μου:
+    .value = Αν ο αποστολέας είναι εκτός του τομέα μου:
     .accesskey = κ
-
 other-cases-label =
     .value = Σε όλες τις άλλες περιπτώσεις:
     .accesskey = λ
diff --git a/thunderbird-l10n/el/localization/el/messenger/preferences/system-integration.ftl b/thunderbird-l10n/el/localization/el/messenger/preferences/system-integration.ftl
index 8a1aa91c1a837e8a117a52636cfdd7de9a7c5f4f..7bd662cd1fa85dfc7c098b9901fe53d599be3a9b 100644
--- a/thunderbird-l10n/el/localization/el/messenger/preferences/system-integration.ftl
+++ b/thunderbird-l10n/el/localization/el/messenger/preferences/system-integration.ftl
@@ -4,16 +4,12 @@
 
 system-integration-title =
     .title = Ενσωμάτωση συστήματος
-
 system-integration-dialog =
     .buttonlabelaccept = Ορισμός ως προεπιλογή
     .buttonlabelcancel = Παράλειψη ενσωμάτωσης
     .buttonlabelcancel2 = Ακύρωση
-
 default-client-intro = Ορισμός του { -brand-short-name } ως προεπιλογής για:
-
-unset-default-tooltip = Δεν είναι δυνατή η ακύρωση ορισμού του { -brand-short-name } ως προκαθορισμένου προγράμματος μέσα από το { -brand-short-name }. Για να ορίσετε άλλη εφαρμογή ως προεπιλογή πρέπει να χρησιμοποιήσετε το διάλογο της «Ορισμός ως προεπιλογή».
-
+unset-default-tooltip = Δεν είναι δυνατή η αναίρεση ορισμού του { -brand-short-name } ως προεπιλεγμένου προγράμματος μέσα από το { -brand-short-name }. Για να ορίσετε άλλη εφαρμογή ως προεπιλογή, πρέπει να χρησιμοποιήσετε τον δικό της διάλογο «Ορισμός ως προεπιλογή».
 checkbox-email-label =
     .label = Email
     .tooltiptext = { unset-default-tooltip }
@@ -23,11 +19,9 @@ checkbox-newsgroups-label =
 checkbox-feeds-label =
     .label = Ροές
     .tooltiptext = { unset-default-tooltip }
-
 checkbox-calendar-label =
     .label = Ημερολόγιο
     .tooltiptext = { unset-default-tooltip }
-
 # Note: This is the search engine name for all the different platforms.
 # Platforms that don't support it should be left blank.
 system-search-engine-name =
@@ -36,11 +30,9 @@ system-search-engine-name =
         [windows] Αναζήτηση των Windows
        *[other] { "" }
     }
-
 system-search-integration-label =
     .label = Να επιτρέπεται στην { system-search-engine-name } η αναζήτηση μηνυμάτων
     .accesskey = ε
-
 check-on-startup-label =
-    .label = Πάντα έλεγχος κατά την εκκίνηση του { -brand-short-name }
-    .accesskey = Π
+    .label = Να γίνεται πάντα έλεγχος κατά την εκκίνηση του { -brand-short-name }
+    .accesskey = π
diff --git a/thunderbird-l10n/el/localization/el/security/certificates/certManager.ftl b/thunderbird-l10n/el/localization/el/security/certificates/certManager.ftl
index 6e53c42fd845979220c52095041c335c87f6b461..335ce2cba1b0701796483052edb73f3cbae0e55e 100644
--- a/thunderbird-l10n/el/localization/el/security/certificates/certManager.ftl
+++ b/thunderbird-l10n/el/localization/el/security/certificates/certManager.ftl
@@ -165,7 +165,7 @@ delete-ssl-cert-impact = Αν διαγράψετε κάποια εξαίρεση
 delete-ssl-override-title =
     .title = Διαγραφή εξαίρεσης πιστοποιητικού διακομιστή
 delete-ssl-override-confirm = Θέλετε σίγουρα να διαγράψετε αυτή την εξαίρεση διακομιστή;
-delete-ssl-override-impact = Αν διαγράψετε μια εξαίρεση διακομιστή, θα επαναφέρετε τους συνήθεις ελέγχους ασφαλείας για το διακομιστή αυτό, καθώς και την απαίτηση ενός έγκυρου πιστοποιητικού.
+delete-ssl-override-impact = Αν διαγράψετε κάποια εξαίρεση διακομιστή, θα επαναφέρετε τους συνήθεις ελέγχους ασφαλείας για αυτό τον διακομιστή και την απαίτηση για έγκυρο πιστοποιητικό.
 delete-ca-cert-title =
     .title = Διαγραφή ή άρση εμπιστοσύνης πιστοποητικών CA
 delete-ca-cert-confirm = Ζητήσατε να διαγράψετε αυτά τα πιστοποιητικά CA. Για τα ενσωματωμένα πιστοποιητικά υπάρχει και η επιλογή της άρσης εμπιστοσύνης που έχει το ίδιο αποτέλεσμα. Θέλετε τα τα διαγράψετε ή να άρετε την εμπιστοσύνη σας;
diff --git a/thunderbird-l10n/el/localization/el/security/certificates/deviceManager.ftl b/thunderbird-l10n/el/localization/el/security/certificates/deviceManager.ftl
index bd734612ae35b7d89d39cce6135f0bd6aec5f3f7..fce5601fc5ce9766cd49f66150f0860017cc1bfa 100644
--- a/thunderbird-l10n/el/localization/el/security/certificates/deviceManager.ftl
+++ b/thunderbird-l10n/el/localization/el/security/certificates/deviceManager.ftl
@@ -8,40 +8,30 @@
 devmgr =
     .title = Διαχείριση συσκευών
     .style = width: 67em; height: 32em;
-
 devmgr-devlist =
     .label = Μονάδες και συσκευές ασφαλείας
-
 devmgr-header-details =
     .label = Λεπτομέρειες
-
 devmgr-header-value =
     .label = Τιμή
-
 devmgr-button-login =
     .label = Σύνδεση
     .accesskey = Σ
-
 devmgr-button-logout =
     .label = Αποσύνδεση
     .accesskey = π
-
 devmgr-button-changepw =
     .label = Αλλαγή κωδικού πρόσβασης
     .accesskey = κ
-
 devmgr-button-load =
     .label = Φόρτωση
     .accesskey = Φ
-
 devmgr-button-unload =
     .label = Εκφόρτωση
     .accesskey = κ
-
 devmgr-button-enable-fips =
     .label = Ενεργοποίηση FIPS
     .accesskey = F
-
 devmgr-button-disable-fips =
     .label = Απενεργοποίηση FIPS
     .accesskey = F
@@ -50,20 +40,15 @@ devmgr-button-disable-fips =
 
 load-device =
     .title = Φόρτωση προγράμματος οδήγησης συσκευής PKCS#11
-
 load-device-info = Εισαγάγετε τις πληροφορίες για τη μονάδα που θέλετε να προσθέσετε.
-
 load-device-modname =
     .value = Όνομα μονάδας
     .accesskey = Μ
-
 load-device-modname-default =
     .value = Νέα μονάδα  PKCS#11
-
 load-device-filename =
     .value = Όνομα αρχείου μονάδας
     .accesskey = α
-
 load-device-browse =
     .label = Περιήγηση…
     .accesskey = Π
@@ -72,64 +57,45 @@ load-device-browse =
 
 devinfo-status =
     .label = Κατάσταση
-
 devinfo-status-disabled =
     .label = Ανενεργό
-
 devinfo-status-not-present =
     .label = Δεν υπάρχει
-
 devinfo-status-uninitialized =
     .label = Δεν έχει αρχικοποιηθεί
-
 devinfo-status-not-logged-in =
     .label = Χωρίς σύνδεση
-
 devinfo-status-logged-in =
     .label = Έγινε σύνδεση
-
 devinfo-status-ready =
     .label = Έτοιμο
-
 devinfo-desc =
     .label = Περιγραφή
-
 devinfo-man-id =
     .label = Κατασκευαστής
-
 devinfo-hwversion =
     .label = Έκδοση HW
 devinfo-fwversion =
     .label = Έκδοση FW
-
 devinfo-modname =
     .label = Μονάδα
-
 devinfo-modpath =
     .label = Διαδρομή
-
 login-failed = Αποτυχία σύνδεσης
-
 devinfo-label =
     .label = Ετικέτα
-
 devinfo-serialnum =
     .label = Σειριακός αριθμός
-
 fips-nonempty-password-required = Η κατάσταση FIPS απαιτεί να έχετε έναν κύριο κωδικό για κάθε συσκευή ασφαλείας. Ορίστε τον κωδικό πριν να ενεργοποιήσετε τη λειτουργία FIPS.
-
-fips-nonempty-primary-password-required = Η λειτουργία FIPS απαιτεί έναν κύριο κωδικό πρόσβασης για κάθε συσκευή ασφαλείας. Παρακαλούμε ορίστε τον κωδικό πρόσβασης πριν την ενεργοποίηση της λειτουργίας FIPS.
+fips-nonempty-primary-password-required = Η λειτουργία FIPS απαιτεί έναν κύριο κωδικό πρόσβασης για κάθε συσκευή ασφαλείας. Παρακαλώ ορίστε τον κωδικό πρόσβασης πριν από την ενεργοποίηση της λειτουργίας FIPS.
 unable-to-toggle-fips = Δεν ήταν δυνατή η αλλαγή κατάστασης λειτουργίας FIPS για την συσκευή ασφαλείας. Προτείνεται να κάνετε έξοδο και επανεκκίνηση της εφαρμογής.
 load-pk11-module-file-picker-title = Επιλέξτε ένα πρόγραμμα οδήγησης συσκευής PKCS#11 για φόρτωση
-
 # Load Module Dialog
 load-module-help-empty-module-name =
     .value = Το όνομα αρθρώματος δεν μπορεί να είναι κενό.
-
 # Do not translate 'Root Certs'
 load-module-help-root-certs-module-name =
     .value = Το ‘Πιστοποιητικά Ρίζας‘ είναι δεσμευμένο και δεν μπορεί να χρησιμοποιηθεί ως όνομα αρθρώματος.
-
 add-module-failure = Δεν ήταν δυνατή η προσθήκη μονάδας
 del-module-warning = Θέλετε σίγουρα να διαγράψετε αυτή τη μονάδα ασφάλειας;
 del-module-error = Δεν ήταν δυνατή η διαγραφή μονάδας
diff --git a/thunderbird-l10n/el/localization/el/security/pippki/pippki.ftl b/thunderbird-l10n/el/localization/el/security/pippki/pippki.ftl
index dde55a8251b796e9291435efe95477c0fe035b71..75fc601e2273d6c8c105bc5bf60ca773df66cccf 100644
--- a/thunderbird-l10n/el/localization/el/security/pippki/pippki.ftl
+++ b/thunderbird-l10n/el/localization/el/security/pippki/pippki.ftl
@@ -20,7 +20,7 @@ change-password-reenter = Εισάγετε τον κωδικό ξανά
 ## Reset Password dialog
 
 reset-password-window =
-    .title = Επαναφορά κύριου κωδικού
+    .title = Επαναφορά κύριου κωδικού πρόσβασης
     .style = width: 40em
 pippki-failed-pw-change = Αδυναμία αλλαγής κωδικού πρόσβασης.
 pippki-incorrect-pw = Δεν εισήγατε το σωστό κωδικό πρόσβασης. Παρακαλούμε δοκιμάστε ξανά.
@@ -37,7 +37,7 @@ reset-primary-password-window =
     .style = width: 40em
 reset-password-button-label =
     .label = Επαναφορά
-reset-password-text = Αν επαναφέρετε τον κύριο κωδικό σας, όλοι οι αποθηκευμένοι κωδικοί πρόσβασης από ιστοσελίδες και e-mail, τα δεδομένα φορμών, τα προσωπικά πιστοποιητικά και τα ιδιωτικά κλειδιά σας θα διαγραφούν. Θέλετε σίγουρα να επαναφέρετε τον κύριο κωδικό σας;
+reset-password-text = Αν επαναφέρετε τον κύριο κωδικό πρόσβασής σας, θα διαγραφούν όλοι οι αποθηκευμένοι κωδικοί πρόσβασης από ιστοτόπους και email, τα δεδομένα φορμών, τα προσωπικά πιστοποιητικά και τα ιδιωτικά κλειδιά σας. Θέλετε σίγουρα να επαναφέρετε τον κύριο κωδικό πρόσβασής σας;
 reset-primary-password-text = Εάν επαναφέρετε τον κύριο κωδικό πρόσβασής σας, θα διαγραφούν από την μνήμη όλοι οι αποθηκευμένοι κωδικοί πρόσβασης ιστοτόπων και email, προσωπικών πιστοποιητικών και ιδιωτικών κλειδιών. Θέλετε σίγουρα να επαναφέρετε τον κύριο κωδικό πρόσβασης;
 pippki-reset-password-confirmation-title = Επαναφορά κύριου κωδικού πρόσβασης
 pippki-reset-password-confirmation-message = Έγινε επαναφορά του κύριου κωδικού πρόσβασής σας.
@@ -49,7 +49,7 @@ download-cert-window =
     .style = width: 46em
 download-cert-message = Σας ζητήθηκε να εμπιστευθείτε μια νέα Αρχή Πιστοποίησης (CA).
 download-cert-trust-ssl =
-    .label = Να είναι έμπιστη αυτή η CA για την πιστοποίηση ιστοσελίδων.
+    .label = Να θεωρείται αξιόπιστη αυτή η ΑΠ για την αναγνώριση ιστοτόπων.
 download-cert-trust-email =
     .label = Να είναι έμπιστη αυτή η CA για την πιστοποίηση χρηστών email
 download-cert-message-desc = Πριν να εμπιστευθείτε αυτήν την Αρχή Πιστοποίησης για οποιοδήποτε σκοπό, θα πρέπει να εξετάσετε το πιστοποιητικό και τις διαδικασίες και τις πολιτικές του (αν  είναι διαθέσιμες).
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutAddons.ftl
index aa3f3244472775167236c3ee50832a11399c9961..6900c414c485ffab553950406745d392ae5824a8 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutAddons.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutAddons.ftl
@@ -4,37 +4,26 @@
 
 addons-window =
     .title = Διαχείριση προσθέτων
-
 addons-page-title = Διαχείριση προσθέτων
-
 search-header =
     .placeholder = Αναζήτηση στο addons.mozilla.org
     .searchbuttonlabel = Αναζήτηση
-
 search-header-shortcut =
     .key = f
-
 list-empty-get-extensions-message = Λήψη επεκτάσεων και θεμάτων στο <a data-l10n-name="get-extensions">{ $domain }</a>
-
 list-empty-installed =
     .value = Δεν έχετε εγκατεστημένα πρόσθετα αυτού του τύπου
-
 list-empty-available-updates =
     .value = Δεν βρέθηκαν ενημερώσεις
-
 list-empty-recent-updates =
     .value = Δεν έχετε ενημερώσει πρόσφατα κάποιο από τα πρόσθετα σας
-
 list-empty-find-updates =
     .label = Έλεγχος για ενημερώσεις
-
 list-empty-button =
     .label = Μάθετε περισσότερα για τα πρόσθετα
-
 help-button = Υποστήριξη προσθέτων
 sidebar-help-button-title =
     .title = Υποστήριξη προσθέτων
-
 preferences =
     { PLATFORM() ->
         [windows] Επιλογές { -brand-short-name }
@@ -46,25 +35,19 @@ sidebar-preferences-button-title =
             [windows] Επιλογές { -brand-short-name }
            *[other] Προτιμήσεις { -brand-short-name }
         }
-
 addons-settings-button = Ρυθμίσεις { -brand-short-name }
 sidebar-settings-button-title =
     .title = Ρυθμίσεις { -brand-short-name }
-
 show-unsigned-extensions-button =
     .label = Δεν ήταν δυνατή η επαλήθευση ορισμένων πρόσθετων
-
 show-all-extensions-button =
     .label = Προβολή όλων των επεκτάσεων
-
 cmd-show-details =
     .label = Προβολή περισσότερων πληροφοριών
     .accesskey = β
-
 cmd-find-updates =
     .label = Εύρεση ενημερώσεων
     .accesskey = ρ
-
 cmd-preferences =
     .label =
         { PLATFORM() ->
@@ -76,88 +59,65 @@ cmd-preferences =
             [windows] λ
            *[other] Π
         }
-
 cmd-enable-theme =
     .label = Ενεργοποίηση θέματος
     .accesskey = ν
-
 cmd-disable-theme =
     .label = Απενεργοποίηση θέματος
     .accesskey = π
-
 cmd-install-addon =
     .label = Εγκατάσταση
     .accesskey = γ
-
 cmd-contribute =
     .label = Συνεισφορά
-    .accesskey = φ
-    .tooltiptext = Βοηθήστε στην ανάπτυξη αυτού του προσθέτου
-
+    .accesskey = Σ
+    .tooltiptext = Συνεισφορά στην ανάπτυξη αυτού του προσθέτου
 detail-version =
     .label = Έκδοση
-
 detail-last-updated =
     .label = Τελευταία ενημέρωση
-
 detail-contributions-description = Ο προγραμματιστής αυτού του προσθέτου σάς ζητά να συνεισφέρετε στην ανάπτυξή του με μια μικρή δωρεά.
-
 detail-contributions-button = Συνεισφορά
     .title = Συνεισφορά στην ανάπτυξη αυτού του προσθέτου
     .accesskey = Σ
-
 detail-update-type =
     .value = Αυτόματες ενημερώσεις
-
 detail-update-default =
     .label = Προεπιλογή
     .tooltiptext = Αυτόματη εγκατάσταση ενημερώσεων μόνο αν αυτό έχει ορισθεί ως προεπιλογή
-
 detail-update-automatic =
     .label = Ναι
     .tooltiptext = Αυτόματη εγκατάσταση ενημερώσεων
-
 detail-update-manual =
     .label = Όχι
     .tooltiptext = Να μην γίνεται αυτόματη εγκατάσταση ενημερώσεων
-
 # Used as a description for the option to allow or block an add-on in private windows.
 detail-private-browsing-label = Εκτέλεση σε ιδιωτικά παράθυρα
-
 # Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest.  This
 # cannot be overridden by the user.
 detail-private-disallowed-label = Δεν επιτρέπεται στα ιδιωτικά παράθυρα
 detail-private-disallowed-description2 = Αυτή η επέκταση δεν εκτελείται κατά την ιδιωτική περιήγηση. <a data-l10n-name="learn-more">Μάθετε περισσότερα</a>
-
 # Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
 detail-private-required-label = Απαιτεί πρόσβαση στα ιδιωτικά παράθυρα
 detail-private-required-description2 = Αυτή η επέκταση έχει πρόσβαση στις διαδικτυακές σας δραστηριότητες κατά την ιδιωτική περιήγηση. <a data-l10n-name="learn-more">Μάθετε περισσότερα</a>
-
 detail-private-browsing-on =
     .label = Αποδοχή
     .tooltiptext = Ενεργοποίηση στην ιδιωτική περιήγηση
-
 detail-private-browsing-off =
     .label = Απόρριψη
     .tooltiptext = Απενεργοποίηση στην ιδιωτική περιήγηση
-
 detail-home =
     .label = Αρχική σελίδα
-
 detail-home-value =
     .value = { detail-home.label }
-
 detail-repository =
     .label = Προφίλ πρόσθετου
-
 detail-repository-value =
     .value = { detail-repository.label }
-
 detail-check-for-updates =
     .label = Έλεγχος για ενημερώσεις
     .accesskey = χ
     .tooltiptext = Έλεγχος για ενημερώσεις αυτού του προσθέτου
-
 detail-show-preferences =
     .label =
         { PLATFORM() ->
@@ -174,37 +134,25 @@ detail-show-preferences =
             [windows] Αλλαγή των επιλογών αυτού του προσθέτου
            *[other] Αλλαγή των προτιμήσεων
         }
-
 detail-rating =
-    .value = Αξιολόγηση
-
+    .value = Βαθμολογία
 addon-restart-now =
     .label = Επανεκκίνηση τώρα
-
 disabled-unsigned-heading =
     .value = Κάποια πρόσθετα έχουν απενεργοποιηθεί
-
 disabled-unsigned-description = Τα ακόλουθα πρόσθετα δεν έχουν επαληθευτεί για χρήση στο { -brand-short-name }. Μπορείτε να <label data-l10n-name="find-addons">βρείτε υποκατάστατα</label> ή ζητήστε από τους προγραμματιστές να επαληθεύσουν την εφαρμογή.
-
 disabled-unsigned-learn-more = Μάθετε περισσότερα σχετικά με τις προσπάθειές μας να είστε ασφαλείς στο διαδίκτυο.
-
 disabled-unsigned-devinfo = Οι προγραμματιστές που ενδιαφέρονται να επαληθεύσουν τα πρόσθετά τους, μπορούν να απευθυνθούν στο <label data-l10n-name="learn-more">εγχειρίδιο</label>.
-
 plugin-deprecation-description = Λείπει τίποτα; Ορισμένα αρθρώματα δεν υποστηρίζονται πλέον από το { -brand-short-name }. <label data-l10n-name="learn-more">Μάθετε περισσότερα.</label>
-
 legacy-warning-show-legacy = Εμφάνιση επεκτάσεων παλαιού τύπου
-
 legacy-extensions =
     .value = Επεκτάσεις παλαιού τύπου
-
 legacy-extensions-description = Αυτές οι επεκτάσεις δεν πληρούν τα τρέχοντα κριτήρια του { -brand-short-name }, επομένως έχουν απενεργοποιηθεί. <label data-l10n-name="legacy-learn-more">Μάθετε σχετικά με τις αλλαγές στα πρόσθετα</label>
-
 private-browsing-description2 =
     Το { -brand-short-name } αλλάζει τον τρόπο λειτουργίας των επεκτάσεων στην ιδιωτική περιήγηση. Τυχόν νέες επεκτάσεις που προσθέτετε στο
     { -brand-short-name } δεν θα εκτελούνται από προεπιλογή στα ιδιωτικά παράθυρα. Αν δεν το επιτρέψετε στις ρυθμίσεις, η
     επέκταση δεν θα λειτουργεί κατά την ιδιωτική περιήγηση και δεν θα έχει πρόσβαση στις διαδικτυακές σας δραστηριότητες εκεί. Έχουμε κάνει αυτή την αλλαγή για να παραμείνει η ιδιωτική σας περιήγηση ιδιωτική.
     <label data-l10n-name="private-browsing-learn-more">Μάθετε πώς να διαχειριστείτε τις ρυθμίσεις επεκτάσεων</label>
-
 addon-category-discover = Προτάσεις
 addon-category-discover-title =
     .title = Προτάσεις
@@ -240,7 +188,6 @@ extensions-warning-update-security = Ο έλεγχος ασφαλείας ενη
 extensions-warning-update-security-button = Ενεργοποίηση
     .title = Ενεργοποίηση ελέγχου ασφαλείας ενημερώσεων προσθέτων
 
-
 ## Strings connected to add-on updates
 
 addon-updates-check-for-updates = Έλεγχος για ενημερώσεις
@@ -286,43 +233,34 @@ addon-open-about-debugging = Έλεγχος σφαλμάτων προσθέτω
 # This is displayed in the page options menu
 addon-manage-extensions-shortcuts = Διαχείριση συντομεύσεων επεκτάσεων
     .accesskey = σ
-
 shortcuts-no-addons = Δεν έχετε ενεργοποιήσει καμία επέκταση.
 shortcuts-no-commands = Οι εξής επεκτάσεις δεν έχουν συντομεύσεις:
 shortcuts-input =
     .placeholder = Πληκτρολογήστε μια συντόμευση
-
 shortcuts-browserAction2 = Κουμπί ενεργοποίησης γραμμής εργαλείων
 shortcuts-pageAction = Ενεργοποίηση ενέργειας σελίδας
 shortcuts-sidebarAction = (Απ)ενεργοποίηση πλευρικής γραμμής
-
 shortcuts-modifier-mac = Συμπεριλάβετε Ctrl, Alt, ή ⌘
 shortcuts-modifier-other = Συμπεριλάβετε Ctrl ή Alt
 shortcuts-invalid = Άκυρος συνδυασμός
 shortcuts-letter = Πληκτρολογήστε ένα γράμμα
 shortcuts-system = Αδυναμία αντικατάστασης συντόμευσης του { -brand-short-name }
-
 # String displayed in warning label when there is a duplicate shortcut
 shortcuts-duplicate = Διπλή συντόμευση
-
 # String displayed when a keyboard shortcut is already assigned to more than one add-on
 # Variables:
 #   $shortcut (string) - Shortcut string for the add-on
 shortcuts-duplicate-warning-message = Το { $shortcut } χρησιμοποιείται ως συντόμευση σε περισσότερες από μία περιπτώσεις. Οι διπλές συντομεύσεις ίσως προκαλέσουν απροσδόκητη συμπεριφορά.
-
 # String displayed when a keyboard shortcut is already used by another add-on
 # Variables:
 #   $addon (string) - Name of the add-on
 shortcuts-exists = Χρησιμοποιείται ήδη από το { $addon }
-
 shortcuts-card-expand-button =
     { $numberToShow ->
         [one] Εμφάνιση { $numberToShow } περισσότερου
        *[other] Εμφάνιση { $numberToShow } περισσότερων
     }
-
 shortcuts-card-collapse-button = Εμφάνιση λιγότερων
-
 header-back-button =
     .title = Επιστροφή
 
@@ -335,15 +273,12 @@ discopane-intro =
     χρησιμοποιηθούν για την προστασία των κωδικών πρόσβασής σας, τη λήψη βίντεο, την εύρεση προσφορών,
     τη φραγή διαφημίσεων, την αλλαγή της εμφάνισης του προγράμματος περιήγησής σας και πολλά άλλα. Οι
     μικρές αυτές εφαρμογές αυτές αναπτύσσονται συνήθως από τρίτους. Ορίστε μια <a data-l10n-name="learn-more-trigger">προτεινόμενη</a> συλλογή από το { -brand-product-name } για εξαιρετική ασφάλεια, επιδόσεις και λειτουργικότητα.
-
 # Notice to make user aware that the recommendations are personalized.
 discopane-notice-recommendations =
     Μερικές από αυτές τις προτάσεις είναι εξατομικευμένες. Βασίζονται σε άλλες
     επεκτάσεις που έχετε εγκαταστήσει, σε προτιμήσεις προφίλ και σε στατιστικά χρήσης.
 discopane-notice-learn-more = Μάθετε περισσότερα
-
 privacy-policy = Πολιτική απορρήτου
-
 # Refers to the author of an add-on, shown below the name of the add-on.
 # Variables:
 #   $author (string) - The name of the add-on developer.
@@ -358,7 +293,6 @@ install-theme-button = Εγκατάσταση θέματος
 # the detailed add-on view is opened, from where the add-on can be managed.
 manage-addon-button = Διαχείριση
 find-more-addons = Εύρεση περισσότερων προσθέτων
-
 # This is a label for the button to open the "more options" menu, it is only
 # used for screen readers.
 addon-options-button =
@@ -384,48 +318,36 @@ preferences-addon-button =
 details-addon-button = Λεπτομέρειες
 release-notes-addon-button = Σημειώσεις έκδοσης
 permissions-addon-button = Δικαιώματα
-
 extension-enabled-heading = Ενεργές
 extension-disabled-heading = Ανενεργές
-
 theme-enabled-heading = Ενεργά
 theme-disabled-heading = Ανενεργά
-
 plugin-enabled-heading = Ενεργά
 plugin-disabled-heading = Ανενεργά
-
 dictionary-enabled-heading = Ενεργά
 dictionary-disabled-heading = Ανενεργά
-
 locale-enabled-heading = Ενεργές
 locale-disabled-heading = Ανενεργές
-
 ask-to-activate-button = Ερώτηση για ενεργοποίηση
-
 always-activate-button = Πάντα ενεργοποιημένο
 never-activate-button = Ποτέ ενεργοποιημένο
-
 addon-detail-author-label = Δημιουργός
 addon-detail-version-label = Έκδοση
 addon-detail-last-updated-label = Τελευταία ενημέρωση
 addon-detail-homepage-label = Αρχική σελίδα
 addon-detail-rating-label = Βαθμολογία
-
 # Message for add-ons with a staged pending update.
 install-postponed-message = Αυτή η επέκταση θα ενημερωθεί όταν επανεκκινηθεί το { -brand-short-name }.
 install-postponed-button = Ενημέρωση τώρα
-
 # The average rating that the add-on has received.
 # Variables:
 #   $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
 five-star-rating =
     .title = Με βαθμό { NUMBER($rating, maximumFractionDigits: 1) } από 5
-
 # This string is used to show that an add-on is disabled.
 # Variables:
 #   $name (string) - The name of the add-on
 addon-name-disabled = { $name } (ανενεργό)
-
 # The number of reviews that an add-on has received on AMO.
 # Variables:
 #   $numberOfReviews (number) - The number of reviews received
@@ -441,14 +363,12 @@ addon-detail-reviews-link =
 #   $addon (string) - Name of the add-on
 pending-uninstall-description = Το <span data-l10n-name="addon-name">{ $addon }</span> έχει αφαιρεθεί.
 pending-uninstall-undo-button = Αναίρεση
-
 addon-detail-updates-label = Να επιτρέπονται αυτόματες ενημερώσεις
 addon-detail-updates-radio-default = Προεπιλογή
 addon-detail-updates-radio-on = Ενεργό
 addon-detail-updates-radio-off = Ανενεργό
 addon-detail-update-check-label = Έλεγχος για ενημερώσεις
 install-update-button = Ενημέρωση
-
 # This is the tooltip text for the private browsing badge in about:addons. The
 # badge is the private browsing icon included next to the extension's name.
 addon-badge-private-browsing-allowed2 =
@@ -464,7 +384,6 @@ addon-detail-private-browsing-disallow = Απόρριψη
 addon-badge-recommended2 =
     .title = Το { -brand-product-name } προτείνει μόνο επεκτάσεις που πληρούν τα πρότυπα ασφαλείας και επιδόσεών μας
     .aria-label = { addon-badge-recommended2.title }
-
 # We hard code "Mozilla" in the string below because the extensions are built
 # by Mozilla and we don't want forks to display "by Fork".
 addon-badge-line3 =
@@ -478,19 +397,14 @@ addon-badge-verified2 =
 
 available-updates-heading = Διαθέσιμες ενημερώσεις
 recent-updates-heading = Πρόσφατες ενημερώσεις
-
 release-notes-loading = Φόρτωση…
 release-notes-error = Λυπούμαστε, αλλά προέκυψε σφάλμα φόρτωσης των σημειώσεων έκδοσης.
-
 addon-permissions-empty = Αυτή η επέκταση δεν απαιτεί δικαιώματα
-
 addon-permissions-required = Απαιτούμενα δικαιώματα για βασική λειτουργικότητα:
 addon-permissions-optional = Προαιρετικά δικαιώματα για επιπρόσθετη λειτουργικότητα:
 addon-permissions-learnmore = Μάθετε περισσότερα σχετικά με τα δικαιώματα
-
 recommended-extensions-heading = Προτεινόμενες επεκτάσεις
 recommended-themes-heading = Προτεινόμενα θέματα
-
 # A recommendation for the Firefox Color theme shown at the bottom of the theme
 # list view. The "Firefox Color" name itself should not be translated.
 recommended-theme-1 = Αισθάνεστε δημιουργικοί; <a data-l10n-name="link">Δημιουργήστε το δικό σας θέμα με το Firefox Color.</a>
@@ -505,10 +419,8 @@ locale-heading = Διαχείριση των γλωσσών σας
 updates-heading = Διαχείριση των ενημερώσεών σας
 discover-heading = Εξατομίκευση του { -brand-short-name }
 shortcuts-heading = Διαχείριση συντομεύσεων επεκτάσεων
-
 default-heading-search-label = Εύρεση περισσότερων προσθέτων
 addons-heading-search-input =
     .placeholder = Αναζήτηση στο addons.mozilla.org
-
 addon-page-options-button =
     .title = Εργαλεία για όλα τα πρόσθετα
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutGlean.ftl
index 8d3d85e485f910a8fdf54539db837b4b91bd807d..1a759dceeea8cbf60cbe4b7ffc2e1edc31963cfe 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutGlean.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutGlean.ftl
@@ -8,8 +8,7 @@
 about-glean-page-title = Σχετικά με το Glean
 about-glean-description = Το <a data-l10n-name="glean-sdk-doc-link">Glean SDK</a> είναι μια βιβλιοθήκη συλλογής δεδομένων, η οποία χρησιμοποιείται στα προϊόντα της Mozilla. Αυτή η σελίδα απευθύνεται σε προγραμματιστές και δοκιμαστές που πρέπει να <a data-l10n-name="fog-debug-doc-link">ρυθμίσουν τον έλεγχο σφαλμάτων και την καταγραφή κατάστασης στο Glean SDK</a>.
 about-glean-warning = Η κατάχρηση αυτού του περιβάλλοντος ενδέχεται να προκαλέσει κατάρρευση του { -brand-short-name }.
-
 tag-pings-label = Προσθήκη ετικέτας σε όλα τα απεσταλμένα pings
-log-pings-label = Καταγραφή φόρτου ping σε αρχείο πριν την αποστολή;
+log-pings-label = Καταγραφή φόρτου ping σε αρχείο πριν από την αποστολή;
 send-pings-label = Αποστολή ping με όνομα
 controls-button-label = Υποβολή ρυθμίσεων
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutHttpsOnlyError.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutHttpsOnlyError.ftl
index 91a6f93d7539e028716b1b4425584b1a116df9e0..6c99647a0769a91b8bb518ee3aaba7485c367f09 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutHttpsOnlyError.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutHttpsOnlyError.ftl
@@ -5,19 +5,19 @@
 about-httpsonly-insecure-title = Μη διαθέσιμη ασφαλής σύνδεση
 # Variables:
 #   $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
-about-httpsonly-insecure-explanation-unavailable = Περιηγείστε σε λειτουργία Μόνο-HTTPS και δεν διατίθεται ασφαλής έκδοση HTTPS του <em>{ $websiteUrl }</em>.
+about-httpsonly-insecure-explanation-unavailable = Περιηγείστε σε λειτουργία «Μόνο HTTPS» και δεν διατίθεται ασφαλής έκδοση HTTPS του <em>{ $websiteUrl }</em>.
 about-httpsonly-insecure-explanation-reasons = Πιθανότατα, ο ιστότοπος δεν υποστηρίζει HTTPS, αλλά είναι επίσης πιθανό ότι ένας εισβολέας αποκλείει την έκδοση HTTPS.
-about-httpsonly-insecure-explanation-exception = Ενώ ο κίνδυνος ασφαλείας είναι μικρός, αν αποφασίσετε να επισκεφθείτε την έκδοση HTTP της ιστοσελίδας, δεν θα πρέπει να καταχωρήσετε ευαίσθητες πληροφορίες, όπως κωδικούς πρόσβασης, email ή στοιχεία πιστωτικών καρτών.
+about-httpsonly-insecure-explanation-exception = Αν και ο κίνδυνος ασφαλείας είναι μικρός, αν αποφασίσετε να επισκεφθείτε την έκδοση HTTP του ιστοτόπου, δεν θα πρέπει να καταχωρήσετε ευαίσθητες πληροφορίες, όπως κωδικούς πρόσβασης, email ή στοιχεία πιστωτικών καρτών.
 about-httpsonly-button-make-exception = Αποδοχή κινδύνου και συνέχεια στον ιστότοπο
-about-httpsonly-title-alert = Ειδοποίηση λειτουργίας Μόνο-HTTPS
+about-httpsonly-title-alert = Ειδοποίηση λειτουργίας «Μόνο HTTPS»
 about-httpsonly-title-connection-not-available = Μη διαθέσιμη ασφαλής σύνδεση
 # Variables:
 #   $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
-about-httpsonly-explanation-unavailable2 = Έχετε ενεργοποιήσει τη λειτουργία Μόνο-HTTPS για ενισχυμένη ασφάλεια, αλλά δεν διατίθεται ασφαλής έκδοση HTTPS του <em>{ $websiteUrl }</em>.
+about-httpsonly-explanation-unavailable2 = Έχετε ενεργοποιήσει τη λειτουργία «Μόνο HTTPS» για ενισχυμένη ασφάλεια, αλλά δεν διατίθεται ασφαλής έκδοση HTTPS του <em>{ $websiteUrl }</em>.
 about-httpsonly-explanation-question = Τι μπορεί να το προκαλεί αυτό;
 about-httpsonly-explanation-nosupport = Πιθανότατα, ο ιστότοπος απλά δεν υποστηρίζει HTTPS.
-about-httpsonly-explanation-risk = Είναι επίσης πιθανό να έχει εμπλακεί ένας εισβολέας. Εάν αποφασίσετε να επισκεφθείτε την ιστοσελίδα, δεν πρέπει να εισαγάγετε ευαίσθητες πληροφορίες, όπως κωδικούς πρόσβασης, email, ή στοιχεία πιστωτικής κάρτας.
-about-httpsonly-explanation-continue = Αν συνεχίσετε, η λειτουργία Μόνο-HTTPS θα απενεργοποιηθεί προσωρινά για αυτή την ιστοσελίδα.
+about-httpsonly-explanation-risk = Είναι επίσης πιθανό να έχει εμπλακεί ένας εισβολέας. Εάν αποφασίσετε να επισκεφθείτε τον ιστότοπο, δεν πρέπει να εισαγάγετε ευαίσθητες πληροφορίες, όπως κωδικούς πρόσβασης, email ή στοιχεία πιστωτικής κάρτας.
+about-httpsonly-explanation-continue = Αν συνεχίσετε, η λειτουργία «Μόνο HTTPS» θα απενεργοποιηθεί προσωρινά για τον ιστότοπο.
 about-httpsonly-button-continue-to-site = Συνέχεια σε ιστότοπο HTTP
 about-httpsonly-button-go-back = Επιστροφή
 about-httpsonly-link-learn-more = Μάθετε περισσότερα…
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutProfiles.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutProfiles.ftl
index 31bc0c36c84fdf2076e886a0a79093819e978b2c..72a800672c730a7cafe0233969598d011a9b1121 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutProfiles.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutProfiles.ftl
@@ -2,7 +2,6 @@
 # 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/.
 
-
 profiles-title = Σχετικά με τα προφίλ
 profiles-subtitle = Η σελίδα αυτή σας βοηθά να διαχειρίζεστε τα προφίλ σας. Κάθε προφίλ αποτελεί ένα ξεχωριστό κόσμο που περιέχει ξεχωριστό ιστορικό, σελιδοδείκτες, ρυθμίσεις και πρόσθετα.
 profiles-create = Δημιουργία νέου προφίλ
@@ -14,13 +13,11 @@ profiles-flush-fail-title = Μη αποθηκευμένες αλλαγές
 profiles-flush-conflict = { profiles-conflict }
 profiles-flush-failed = Ένα μη αναμενόμενο σφάλμα εμπόδισε την αποθήκευση των αλλαγών σας.
 profiles-flush-restart-button = Επανεκκίνηση του { -brand-short-name }
-
 # Variables:
 #   $name (String) - Name of the profile
 profiles-name = Προφίλ: { $name }
 profiles-is-default = Προεπιλεγμένο προφίλ
 profiles-rootdir = Κατάλογος ρίζας
-
 # localDir is used to show the directory corresponding to
 # the main profile directory that exists for the purpose of storing data on the
 # local filesystem, including cache files or other data files that may not
@@ -30,28 +27,22 @@ profiles-rootdir = Κατάλογος ρίζας
 profiles-localdir = Τοπικός κατάλογος
 profiles-current-profile = Αυτό το προφίλ είναι σε λειτουργία και δεν μπορεί να διαγραφεί.
 profiles-in-use-profile = Αυτό το προφίλ χρησιμοποιείται σε άλλη εφαρμογή και δεν μπορεί να διαγραφεί.
-
 profiles-rename = Μετονομασία
 profiles-remove = Αφαίρεση
 profiles-set-as-default = Ορισμός ως προεπιλεγμένο προφίλ
 profiles-launch-profile = Εκκίνηση προφίλ σε νέο πρόγραμμα περιήγησης
-
 profiles-cannot-set-as-default-title = Αδυναμία ορισμού προεπιλογής
 profiles-cannot-set-as-default-message = Το προεπιλεγμένο προφίλ δεν μπορεί να αλλάξει για το { -brand-short-name }.
-
 profiles-yes = ναι
 profiles-no = όχι
-
 profiles-rename-profile-title = Μετονομασία προφίλ
 # Variables:
 #   $name (String) - Name of the profile
 profiles-rename-profile = Μετονομασία προφίλ { $name }
-
-profiles-invalid-profile-name-title = Άκυρο όνομα προφίλ
+profiles-invalid-profile-name-title = Μη έγκυρο όνομα προφίλ
 # Variables:
 #   $name (String) - Name of the profile
 profiles-invalid-profile-name = Το όνομα προφίλ “{ $name }” δεν επιτρέπεται.
-
 profiles-delete-profile-title = Διαγραφή προφίλ
 # Variables:
 #   $dir (String) - Path to be displayed
@@ -61,11 +52,8 @@ profiles-delete-profile-confirm =
     Θέλετε να διαγράψετε τα αρχεία δεδομένων του προφίλ;
 profiles-delete-files = Διαγραφή αρχείων
 profiles-dont-delete-files = Διατήρηση αρχείων
-
 profiles-delete-profile-failed-title = Σφάλμα
 profiles-delete-profile-failed-message = Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής αυτού του προφίλ.
-
-
 profiles-opendir =
     { PLATFORM() ->
         [macos] Προβολή στο Finder
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutRights.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutRights.ftl
index 9267a9446b0994c2728950064763bc1c2cb8d449..b2d372fc7375baad73436e1b44f001d7ed4eab88 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutRights.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutRights.ftl
@@ -6,15 +6,30 @@ rights-title = Σχετικά με τα δικαιώματά σας
 rights-intro = Το { -brand-full-name } είναι ελεύθερο λογισμικό ανοικτού κώδικα που δημιουργείται από μια κοινότητα χιλιάδων ατόμων από όλο τον κόσμο. Υπάρχουν μερικά πράγματα που πρέπει να γνωρίζετε:
 rights-intro-point-1 = Το { -brand-short-name } είναι διαθέσιμο σε εσάς υπό τους όρους της <a data-l10n-name="mozilla-public-license-link">Δημόσιας Άδειας της Mozilla</a>. Αυτό σημαίνει ότι μπορείτε να κάνετε χρήση, αντιγραφή και διανομή του { -brand-short-name } σε τρίτους.  Είστε ακόμα ελεύθεροι να τροποποιήσετε τον πηγαίο κώδικα του { -brand-short-name } όπως επιθυμείτε, ώστε να καλύπτει τις ανάγκες σας. Η Δημόσια Άδεια της Mozilla σάς δίνει το δικαίωμα να διανέμετε τις τροποποιημένες εκδόσεις σας.
 rights-intro-point-2 = Ωστόσο, δεν σας παραχωρούνται δικαιώματα ή άδειες για τα εμπορικά σήματα του Ιδρύματος Mozilla ή οποιουδήποτε τρίτου, συμπεριλαμβανομένων, χωρίς περιορισμούς, των ονομάτων ή των λογότυπων του Firefox. Μπορείτε να βρείτε περισσότερες πληροφορίες για τα εμπορικά σήματα <a data-l10n-name="mozilla-trademarks-link">εδώ</a>.
-rights-intro-point-3 = Μερικές λειτουργίες του { -brand-short-name }, όπως ο Crash Reporter, σας προσφέρουν την επιλογή υποβολής σχολίων στον { -vendor-short-name }. Επιλέγοντας να υποβάλετε σχόλια , δίνετε την άδεια στον { -vendor-short-name } να χρησιμοποιήσει τα σχόλια για να βελτιώσει τα προϊόντα του , να δημοσιεύσει και να μοιράσει τα σχόλια.
-rights-intro-point-4 = Ο τρόπος χρήσης των προσωπικών σας πληροφοριών και των σχολίων που υποβάλετε στον { -vendor-short-name } μέσω του { -brand-short-name } περιγράφεται στην  <a data-l10n-name="mozilla-privacy-policy-link">Πολιτική απορρήτου του { -brand-short-name }</a>.
-rights-intro-point-4-unbranded = Όποιεσδήποτε σχετικές πολιτικές προστασίας απορρήτου μπορούν να αναφερθούν εδώ.
+rights-intro-point-3 =
+    Μερικές λειτουργίες του { -brand-short-name }, όπως η Αναφορά καταρρεύσεων, προσφέρουν
+    την επιλογή υποβολής σχολίων στη { -vendor-short-name }. Αν επιλέξετε να κάνετε υποβολή
+    σχολίων, παραχωρείτε στη { -vendor-short-name } το δικαίωμα χρησιμοποίησης των σχολίων
+    για τη βελτίωση των προϊόντων της, τη δημοσίευσή τους στους ιστοτόπους της
+    και τη διανομή τους.
+rights-intro-point-4 =
+    Ο τρόπος χρήσης των προσωπικών σας πληροφοριών και των σχολίων που υποβάλλετε στη
+    { -vendor-short-name } μέσω του { -brand-short-name } περιγράφεται στην
+    <a data-l10n-name="mozilla-privacy-policy-link">Πολιτική απορρήτου του
+    { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Τυχόν σχετικές πολιτικές προστασίας απορρήτου πρέπει να αναφέρονται εδώ.
 rights-intro-point-5 = Μερικές από τις λειτουργίες του { -brand-short-name } χρησιμοποιούν διαδικτυακές πληροφοριακές υπηρεσίες, για τις οποίες όμως δεν μπορούμε να εγγυηθούμε ότι είναι 100% χωρίς σφάλματα. Περισσότερες πληροφορίες, μαζί με πληροφορίες για την απενεργοποίηση αυτών των υπηρεσιών μπορείτε να βρείτε στους <a data-l10n-name="mozilla-service-terms-link">όρους υπηρεσίας</a>.
-rights-intro-point-5-unbranded = Αν αυτό το προϊόν περιέχει ενσωματωμένες υπηρεσίες, όλοι οι όροι αυτών των υπηρεσιών θα πρέπει να οδηγούν στην ενότητα<a data-l10n-name="mozilla-website-services-link">Υπηρεσίες ιστοσελίδων</a> .
+rights-intro-point-5-unbranded =
+    Αν αυτό το προϊόν ενσωματώνει διαδικτυακές υπηρεσίες, οι όροι αυτών
+    θα πρέπει να συμπεριλαμβάνονται στην ενότητα
+    <a data-l10n-name="mozilla-website-services-link">Υπηρεσίες ιστοτόπου</a>.
 rights-intro-point-6 = Για την αναπαραγωγή ορισμένων τύπων περιεχομένου βίντεο, το { -brand-short-name } κάνει λήψη ορισμένων λειτουργικών μονάδων αποκρυπτογράφησης περιεχομένου από τρίτους.
 rights-webservices-header = Διαδικτυακές υπηρεσίες πληροφοριών του { -brand-full-name }
 rights-webservices = Το { -brand-full-name } χρησιμοποιεί διαδικτυακές υπηρεσίες πληροφοριών ("Υπηρεσίες") για την παροχή μερικών λειτουργιών, που έρχονται με αυτή την έκδοση του { -brand-short-name } υπό τους παρακάτω όρους. Αν δεν θέλετε να χρησιμοποιήσετε μία ή περισσότερες υπηρεσίες, ή δεν συμφωνείτε με τους παρακάτω όρους, μπορείτε να απενεργοποιήσετε τη λειτουργία ή την υπηρεσία(ες). Οδηγίες σχετικά με τον τρόπο απενεργοποίησης μιας συγκεκριμένης λειτουργίας ή υπηρεσίας, μπορείτε να βρείτε <a data-l10n-name="mozilla-disable-service-link">εδώ</a>. Άλλες λειτουργίες και υπηρεσίες μπορούν να απενεργοποιηθούν μέσω των προτιμήσεων της εφαρμογής.
-rights-safebrowsing = <strong>Ασφαλής περιήγηση: </strong>Η απενεργοποίηση της ασφαλούς περιήγησης δεν προτείνεται μιας και μπορεί να σας οδηγήσει σε επικίνδυνες ιστοσελίδες.  Αν επιθυμείτε να απενεργοποιήσετε πλήρως αυτή τη λειτουργία, ακολουθήστε τα παρακάτω βήματα:
+rights-safebrowsing =
+    <strong>Ασφαλής περιήγηση: </strong>Η απενεργοποίηση της ασφαλούς περιήγησης δεν
+    προτείνεται, καθώς ενδέχεται να σας οδηγήσει σε επισφαλείς ιστοτόπους. Αν επιθυμείτε να
+    απενεργοποιήσετε εντελώς τη λειτουργία, ακολουθήστε αυτά τα βήματα:
 rights-safebrowsing-term-1 = Ανοίξτε τις προτιμήσεις της εφαρμογής
 rights-safebrowsing-term-2 = Επιλέξτε την καρτέλα Ασφάλεια
 rights-safebrowsing-term-3 = Αποεπιλέξτε την επιλογή για "{ enableSafeBrowsing-label }"
@@ -25,14 +40,17 @@ rights-locationawarebrowsing-term-1 = Στη γραμμή διευθύνσεων
 rights-locationawarebrowsing-term-2 = Πληκτρολογήστε geo.enabled
 rights-locationawarebrowsing-term-3 = Κάντε διπλό κλικ στην προτίμηση geo.enabled
 rights-locationawarebrowsing-term-4 = Η Περιήγηση με δήλωση τοποθεσίας θα απενεργοποιηθεί
-rights-webservices-unbranded = Εδώ, θα πρέπει να συμπεριληφθεί μια επισκόπηση των υπηρεσιών ιστοσελίδας που ενσωματώνει το προϊόν, μαζί με οδηγίες σχετικά με την απενεργοποίηση, αν υπάρχει.
+rights-webservices-unbranded =
+    Εδώ, θα πρέπει να συμπεριληφθεί μια επισκόπηση των υπηρεσιών του ιστοτόπου
+    που ενσωματώνονται στο προϊόν, μαζί με οδηγίες σχετικά με την απενεργοποίησή
+    τους, αν υπάρχουν.
 rights-webservices-term-unbranded = Οποιοιδήποτε όροι υπηρεσίας έχουν ισχύ για αυτό το προϊόν θα πρέπει να αναγραφούν εδώ.
 rights-webservices-term-1 =
     Η { -vendor-short-name }, οι συντελεστές, οι συνεργάτες και οι διανομείς της εργάζονται για να παρέχουν τις
     πιο ακριβείς και ενημερωμένες υπηρεσίες. Ωστόσο, δεν μπορούμε να εγγυηθούμε ότι αυτές οι πληροφορίες
     είναι κατανοητές και χωρίς σφάλματα. Για παράδειγμα, η Υπηρεσία ασφαλούς περιήγησης ενδέχεται να μην
-    αναγνωρίσει κάποιες επικίνδυνες ιστοσελίδες και ενδεχομένως να θεωρήσει ορισμένες ασφαλείς ιστοσελίδες
-    ως ύποπτες, ενώ η Υπηρεσία περιήγησης βάσει τοποθεσίας μπορεί να μην είναι ακριβής. Ούτε εμείς ούτε οι
+    αναγνωρίσει κάποιους επικίνδυνους ιστοτόπους και ενδεχομένως να θεωρήσει ορισμένους ασφαλείς ιστοτόπους
+    ως ύποπτους, ενώ η Υπηρεσία περιήγησης βάσει τοποθεσίας μπορεί να μην είναι ακριβής. Ούτε εμείς ούτε οι
     πάροχοι υπηρεσιών μας δεν μπορούμε να εγγυηθούμε την ακρίβεια των παρεχόμενων
     τοποθεσιών.
 rights-webservices-term-2 = Ο { -vendor-short-name } διατηρεί το δικαίωμα να διακόψει ή να αλλάξει τις Υπηρεσίες κατά βούληση.
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutServiceWorkers.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutServiceWorkers.ftl
index b2feb15a8e06767247fcc1ad50794c60f63ebcd4..768209187e4946600943539b34d6fd71635f773e 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutServiceWorkers.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutServiceWorkers.ftl
@@ -7,9 +7,8 @@
 
 about-service-workers-title = Σχετικά με τα service worker
 about-service-workers-main-title = Εγγεγραμμένα service worker
-about-service-workers-warning-not-enabled = Τα Service Workers δεν είναι ενεργοποιημένα.
+about-service-workers-warning-not-enabled = Τα service worker δεν είναι ενεργά.
 about-service-workers-warning-no-service-workers = Κανένα εγγεγραμμένο service worker.
-
 # The original title of service workers' information
 #
 # Variables:
@@ -29,12 +28,8 @@ active-cache-name = <strong>Όνομα ενεργής κρυφής μνήμης:
 waiting-cache-name = <strong>Όνομα κρυφής μνήμης σε αναμονή:</strong> { $name }
 push-end-point-waiting = <strong>Σημείο τερματισμού:</strong> { waiting }
 push-end-point-result = <strong>Σημείο τερματισμού:</strong> { $name }
-
 # This term is used as a button label (verb, not noun).
 update-button = Ενημέρωση
-
 unregister-button = Διαγραφή
-
 unregister-error = Αποτυχία κατάργησης εγγραφής service worker.
-
 waiting = Σε αναμονή…
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutSupport.ftl
index b9e63c09826cdb104f55494902a543663937d16d..581a50ef9dfb33636314e873ba417b49199b37a7 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutSupport.ftl
@@ -26,7 +26,7 @@ support-addons-id = ID
 security-software-title = Λογισμικό ασφαλείας
 security-software-type = Τύπος
 security-software-name = Όνομα
-security-software-antivirus = Antivirus
+security-software-antivirus = Προστασία από ιούς
 security-software-antispyware = Antispyware
 security-software-firewall = Τείχος προστασίας
 features-title = Χαρακτηριστικά { -brand-short-name }
@@ -192,36 +192,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Λειτουργικές μονάδες τρίτων
-support-third-party-modules-module = Αρχείο μονάδας
-support-third-party-modules-version = Έκδοση αρχείου
-support-third-party-modules-vendor = Πληροφορίες κατασκευαστή
-support-third-party-modules-occurrence = Εμφάνιση
-support-third-party-modules-process = Τύπος & ID διεργασίας
-support-third-party-modules-thread = Νήμα
-support-third-party-modules-base = Διεύθυνση Imagebase
-support-third-party-modules-uptime = Χρόνος διεργασίας (ms)
-support-third-party-modules-duration = Διάρκεια φόρτωσης (ms)
-support-third-party-modules-status = Κατάσταση
-support-third-party-modules-status-loaded = Φορτώθηκε
-support-third-party-modules-status-blocked = Αποκλείστηκε
-support-third-party-modules-status-redirected = Ανακατευθύνθηκε
-support-third-party-modules-empty = Δεν φορτώθηκαν λειτουργικές μονάδες τρίτων.
-support-third-party-modules-no-value = (Καμία τιμή)
-support-third-party-modules-button-open =
-    .title = Άνοιγμα τοποθεσίας αρχείου…
-support-third-party-modules-expand =
-    .title = Εμφάνιση λεπτομερών πληροφοριών
-support-third-party-modules-collapse =
-    .title = Σύμπτυξη λεπτομερών πληροφοριών
-support-third-party-modules-unsigned-icon =
-    .title = Αυτή η μονάδα δεν έχει υπογραφεί
-support-third-party-modules-folder-icon =
-    .title = Άνοιγμα τοποθεσίας αρχείου…
-support-third-party-modules-down-icon =
-    .title = Εμφάνιση λεπτομερών πληροφοριών
-support-third-party-modules-up-icon =
-    .title = Σύμπτυξη λεπτομερών πληροφοριών
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
@@ -330,7 +300,7 @@ gpu-device-reset-button = Έναυσμα επαναφοράς συσκευής
 uses-tiling = Χρησιμοποιεί παράθεση
 content-uses-tiling = Χρησιμοποιεί παράθεση (περιεχόμενο)
 off-main-thread-paint-enabled = Ενεργό off main thread painting
-off-main-thread-paint-worker-count = Πλήθος workers για off main thread painting
+off-main-thread-paint-worker-count = Πλήθος worker για off main thread painting
 target-frame-rate = Ρυθμός καρέ στόχου
 min-lib-versions = Αναμενόμενη ελάχιστη έκδοση
 loaded-lib-versions = Έκδοση σε χρήση
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutTelemetry.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutTelemetry.ftl
index 9707c38007da8a02d5a2c660360aa6abf6353835..94243549e15832105e45a43bb721c8b8ad021b37 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutTelemetry.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutTelemetry.ftl
@@ -30,7 +30,7 @@ about-telemetry-scalar-section = Μονόμετρα μεγέθη
 about-telemetry-keyed-scalar-section = Μονόμετρα μεγέθη με κλειδί
 about-telemetry-histograms-section = Ιστογράμματα
 about-telemetry-keyed-histogram-section = Ιστογράμματα με κλειδί
-about-telemetry-events-section = Γεγονότα
+about-telemetry-events-section = Συμβάντα
 about-telemetry-simple-measurements-section = Απλές μετρήσεις
 about-telemetry-slow-sql-section = Αργές εντολές SQL
 about-telemetry-addon-details-section = Λεπτομέρειες προσθέτου
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/aboutWebrtc.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/aboutWebrtc.ftl
index a1d0384f0934231fb0acdc65a02d599872e50b33..c0fdb663984c757aa3fdb29b47a062892bda92e2 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/aboutWebrtc.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/aboutWebrtc.ftl
@@ -8,7 +8,6 @@
 
 # The text "WebRTC" is a proper noun and should not be translated.
 about-webrtc-document-title = Εσωτερικά του WebRTC
-
 # "about:webrtc" is a internal browser URL and should not be
 # translated. This string is used as a title for a file save dialog box.
 about-webrtc-save-page-dialog-title = αποθήκευση about:webrtc ως
@@ -76,12 +75,10 @@ about-webrtc-type-remote = Απομακρυσμένα
 # This adjective is used to label a table column. Cells in this column contain
 # the localized javascript string representation of "true" or are left blank.
 about-webrtc-nominated = Υποψήφια
-
 # This adjective is used to label a table column. Cells in this column contain
 # the localized javascript string representation of "true" or are left blank.
 # This represents an attribute of an ICE candidate.
 about-webrtc-selected = Επιλεγμένα
-
 about-webrtc-save-page-label = Αποθήκευση σελίδας
 about-webrtc-debug-mode-msg-label = Λειτουργία ελέγχου σφαλμάτων
 about-webrtc-debug-mode-off-state-label = Έναρξη λειτουργίας ελέγχου σφαλμάτων
@@ -89,7 +86,7 @@ about-webrtc-debug-mode-on-state-label = Διακοπή λειτουργίας 
 about-webrtc-stats-heading = Στατιστικά συνεδρίας
 about-webrtc-stats-clear = Εκκαθάριση ιστορικού
 about-webrtc-log-heading = Αρχείο καταγραφής σύνδεσης
-about-webrtc-log-clear = Εκκαθάριση αρχείου καταγραφής
+about-webrtc-log-clear = Απαλοιφή αρχείου καταγραφής
 about-webrtc-log-show-msg = εμφάνιση αρχείου καταγραφής
     .title = κάντε κλικ για επέκταση ενότητας
 about-webrtc-log-hide-msg = απόκρυψη αρχείου καταγραφής
@@ -147,36 +144,26 @@ about-webrtc-remote-send-ssrc = Απομακρυσμένη αποστολή SSRC
 # An option whose value will not be displayed but instead noted as having been
 # provided
 about-webrtc-configuration-element-provided = Παρέχεται
-
 # An option whose value will not be displayed but instead noted as having not
 # been provided
 about-webrtc-configuration-element-not-provided = Δεν παρέχεται
-
 # The options set by the user in about:config that could impact a WebRTC call
 about-webrtc-custom-webrtc-configuration-heading = Προτιμήσεις χρήστη για το WebRTC
-
 # Section header for estimated bandwidths of WebRTC media flows
 about-webrtc-bandwidth-stats-heading = Εκτιμώμενο εύρος ζώνης
-
 # The ID of the MediaStreamTrack
 about-webrtc-track-identifier = Αναγνωριστικό κομματιού
-
 # The estimated bandwidth available for sending WebRTC media in bytes per second
 about-webrtc-send-bandwidth-bytes-sec = Εύρος ζώνης αποστολής (bytes/δ)
-
 # The estimated bandwidth available for receiving WebRTC media in bytes per second
 about-webrtc-receive-bandwidth-bytes-sec = Εύρος ζώνης λήψης (bytes/δ)
-
 # Maximum number of bytes per second that will be padding zeros at the ends of packets
 about-webrtc-max-padding-bytes-sec = Μέγιστο padding (bytes/δ)
-
 # The amount of time inserted between packets to keep them spaced out
 about-webrtc-pacer-delay-ms = Καθυστέρηση pacer (ms)
-
 # The amount of time it takes for a packet to travel from the local machine to the remote machine,
 # and then have a packet return
 about-webrtc-round-trip-time-ms = RTT ms
-
 # This is a section heading for video frame statistics for a MediaStreamTrack.
 # see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
 # Variables:
@@ -203,7 +190,6 @@ about-webrtc-received-label =
         [one] Ελήφθη { $packets } πακέτο
        *[other] Ελήφθησαν { $packets } πακέτα
     }
-
 # This is the total number of packets lost by the PeerConnection.
 # Variables:
 #  $packets (Number) - The number of packets lost.
@@ -212,7 +198,6 @@ about-webrtc-lost-label =
         [one] Χάθηκε { $packets } πακέτο
        *[other] Χάθηκαν { $packets } πακέτα
     }
-
 # This is the total number of packets sent by the PeerConnection.
 # Variables:
 #  $packets (Number) - The number of packets sent.
@@ -221,13 +206,11 @@ about-webrtc-sent-label =
         [one] Απεστάλη { $packets } πακέτο
        *[other] Απεστάλησαν { $packets } πακέτα
     }
-
 # Jitter is the variance in the arrival time of packets.
 # See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
 # Variables:
 #   $jitter (Number) - The jitter.
 about-webrtc-jitter-label = Διακύμανση { $jitter }
-
 # ICE candidates arriving after the remote answer arrives are considered trickled
 # (an attribute of an ICE candidate). These are highlighted in the ICE stats
 # table with light blue background.
@@ -240,12 +223,10 @@ about-webrtc-trickle-caption-msg = Οι αργοί υποψήφιοι (που φ
 # Variables:
 #  $timestamp (Number) - The Unix Epoch time at which the SDP was set.
 about-webrtc-sdp-set-at-timestamp-local = Ορισμός Τοπικό SDP στη χρονική σήμανση { NUMBER($timestamp, useGrouping: "false") }
-
 # This is used as a header for remote SDP.
 # Variables:
 #  $timestamp (Number) - The Unix Epoch time at which the SDP was set.
 about-webrtc-sdp-set-at-timestamp-remote = Ορισμός Απομακρυσμένο SDP στη χρονική σήμανση { NUMBER($timestamp, useGrouping: "false") }
-
 # This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
 # Variables:
 #  $timestamp (Number) - The Unix Epoch time at which the SDP was set.
diff --git a/thunderbird-l10n/el/localization/el/toolkit/about/abuseReports.ftl b/thunderbird-l10n/el/localization/el/toolkit/about/abuseReports.ftl
index eec25419dc73052e66045dc8a931c99cc88420d9..caab4aeb0d8f3aa952a87412da5baeab0eb747bb 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/about/abuseReports.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/about/abuseReports.ftl
@@ -86,7 +86,7 @@ abuse-report-broken-suggestions-theme =
     <a data-l10n-name="support-link">Επισκεφθείτε τον ιστότοπο του θέματος</a> για να βρείτε τα στοιχεία του προγραμματιστή.
 abuse-report-policy-reason-v2 = Περιέχει περιεχόμενο μίσους, βίας ή παρανομίας
 abuse-report-policy-suggestions =
-    Σημείωση: Τα ζητήματα πνευματικών δικαιωμάτων και εμπορικών σημάτων πρέπει να αναφέρονται σε ξεχωριστή διαδικασία.
+    Σημείωση: Τα ζητήματα πνευματικών δικαιωμάτων και εμπορικών σημάτων πρέπει να αναφέρονται μέσω ξεχωριστής διαδικασίας.
     <a data-l10n-name="report-infringement-link">Ακολουθήστε αυτές τις οδηγίες</a> για να
     αναφέρετε το πρόβλημα.
 abuse-report-unwanted-reason-v2 = Δεν το ήθελα ποτέ και δεν ξέρω πώς να το αφαιρέσω
diff --git a/thunderbird-l10n/el/localization/el/toolkit/extensions/blocklist.ftl b/thunderbird-l10n/el/localization/el/toolkit/extensions/blocklist.ftl
index 48a04373763ec07b6766c1b2017e1f8d397e455f..677c468b613052f427bb59b564dce55f9ea54cd2 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/extensions/blocklist.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/extensions/blocklist.ftl
@@ -6,16 +6,14 @@ blocklist-window =
     .title = Μερικά πρόσθετα μπορεί να προκαλούν προβλήματα
     .style = width: 52em; height: 38em
 blocklist-accept =
-    .label = Επανεκκίνηση { -brand-short-name }
+    .label = Επανεκκίνηση του { -brand-short-name }
     .accesskey = π
-
 blocklist-label-summary = Το { -brand-short-name } εντόπισε ότι τα παρακάτω πρόσθετα έχουν προβλήματα σταθερότητας ή ασφάλειας:
 blocklist-soft-and-hard = Τα πρόσθετα που είναι πιθανό να προκαλούν προβλήματα σταθερότητας ή ασφάλειας έχουν ήδη φραγεί. Τα υπόλοιπα ενέχουν χαμηλότερο ρίσκο, αλλά σας συστήνουμε να επανεκκινήσετε το πρόγραμμα με τα πρόσθετα απενεργοποιημένα.
 blocklist-hard-blocked = Τα πρόσθετα που πιθανόν αν προκαλούν προβλήματα σταθερότητας ή ασφάλειας έχουν ήδη φραγεί, αλλά απαιτείται επανεκκίνηση για την πλήρη απενεργοποίηση τους.
 blocklist-soft-blocked = Για την προστασία σας, σας συστήνουμε να επανεκκινήσετε το πρόγραμμα με τα πρόσθετα αυτά απενεργοποιημένα.
 blocklist-more-information =
     .value = Περισσότερες πληροφορίες
-
 blocklist-blocked =
     .label = Φραγμένα
 blocklist-checkbox =
diff --git a/thunderbird-l10n/el/localization/el/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/el/localization/el/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6af25f1ab2d90b623d74c85cbbb5e09075cba854
--- /dev/null
+++ b/thunderbird-l10n/el/localization/el/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,14 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-yes-button = Εγκατάσταση
+
+## Strings for a dialog that opens if the installation failed.
+
diff --git a/thunderbird-l10n/el/localization/el/toolkit/global/textActions.ftl b/thunderbird-l10n/el/localization/el/toolkit/global/textActions.ftl
index caebe3108d6af7e4f215ee5d6fda2ac6e14e8387..acf60f0e0795c667b8f997bd2d0f62ec1e8952f0 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Αναίρεση
     .accesskey = Α
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Επανάληψη
     .accesskey = Ε
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Αποκοπή
     .accesskey = π
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Αντιγραφή
     .accesskey = Α
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Επικόλληση
     .accesskey = π
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Διαγραφή
     .accesskey = Δ
-
 text-action-select-all =
     .label = Επιλογή όλων
     .accesskey = λ
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Καμία πρόταση ορθογραφίας
+text-action-spell-add-to-dictionary =
+    .label = Προσθήκη στο λεξικό
+    .accesskey = ο
+text-action-spell-undo-add-to-dictionary =
+    .label = Αναίρεση προσθήκης στο λεξικό
+    .accesskey = ν
+text-action-spell-check-toggle =
+    .label = Ορθογραφικός έλεγχος
+    .accesskey = γ
+text-action-spell-add-dictionaries =
+    .label = Προσθήκη λεξικών…
+    .accesskey = Π
+text-action-spell-dictionaries =
+    .label = Γλώσσες
+    .accesskey = Γ
diff --git a/thunderbird-l10n/el/localization/el/toolkit/preferences/preferences.ftl b/thunderbird-l10n/el/localization/el/toolkit/preferences/preferences.ftl
index 21a80b164aca210d89a40cbdc3e12be03f7a3e7d..d0e3c383f4415abd9b2c2e928f501baa5c51330d 100644
--- a/thunderbird-l10n/el/localization/el/toolkit/preferences/preferences.ftl
+++ b/thunderbird-l10n/el/localization/el/toolkit/preferences/preferences.ftl
@@ -4,34 +4,26 @@
 
 password-not-set =
     .value = (δεν έχει οριστεί)
-
-failed-pw-change = Αδυναμία αλλαγής Κύριου Κωδικού.
-incorrect-pw = Δεν εισάγατε το σωστό Κύριο κωδικό. Προσπαθήστε ξανά.
+failed-pw-change = Δεν ήταν δυνατή η αλλαγή του κύριου κωδικού πρόσβασης.
+incorrect-pw = Δεν εισαγάγατε τον σωστό κύριο κωδικό πρόσβασης. Παρακαλώ δοκιμάστε ξανά.
 pw-change-ok = Επιτυχής αλλαγή του κύριου κωδικού πρόσβασης.
-
 pw-empty-warning = Οι αποθηκευμένοι κωδικοί email και web από δεδομένα και ιδιωτικά κλειδιά δεν θα προστατευτούν.
 pw-erased-ok = Διαγράψατε τον Κύριο κωδικό σας. { pw-empty-warning }
 pw-not-wanted = Προειδοποίηση! Αποφασίσατε να μη χρησιμοποιήσετε ένα Κύριο κωδικό. { pw-empty-warning }
-
 pw-change2empty-in-fips-mode = Αυτή τη στιγμή είστε σε λειτουργία FIPS. Το FIPS απαιτεί ένα μη-κενό κύριο κωδικό.
-
 failed-pp-change = Δεν ήταν δυνατή η αλλαγή του κύριου κωδικού πρόσβασης.
 incorrect-pp = Δεν πληκτρολογήσατε το σωστό κύριο κωδικό πρόσβασης. Παρακαλούμε δοκιμάστε ξανά.
 pp-change-ok = Επιτυχής αλλαγή κύριου κωδικού πρόσβασης.
-
 pp-empty-warning = Οι αποθηκευμένοι κωδικοί πρόσβασης και τα ιδιωτικά σας κλειδιά δεν θα προστατεύονται.
 pp-erased-ok = Έχετε διαγράψει τον κύριο κωδικό πρόσβασής σας. { pp-empty-warning }
 pp-not-wanted = Προσοχή! Αποφασίσατε να μην κάνετε χρήση ενός κύριου κωδικού πρόσβασης. { pp-empty-warning }
-
 pp-change2empty-in-fips-mode = Είστε σε λειτουργία FIPS. Το FIPS απαιτεί μη κενό κύριο κωδικό πρόσβασης.
 pw-change-success-title = Επιτυχής αλλαγή κωδικού
 pw-change-failed-title = Αποτυχία αλλαγής κωδικού
 pw-remove-button =
     .label = Αφαίρεση
-
 set-password =
     .title = Αλλαγή κύριου κωδικού πρόσβασης
-
 primary-password-dialog =
     .title = Κύριος κωδικός πρόσβασης
 set-password-old-password = Τρέχων κωδικός πρόσβασης:
@@ -42,13 +34,11 @@ set-password-meter-loading = Φόρτωση
 master-password-admin = Ο διαχειριστής σας απαιτεί να ορίσετε κύριο κωδικό πρόσβασης ώστε να αποθηκεύσετε κωδικούς πρόσβασης.
 master-password-description = Ο κύριος κωδικός χρησιμοποιείται για την προστασία ευαίσθητων πληροφοριών όπως κωδικοί σελίδας. Αν δημιουργήσετε ένα κύριο κωδικό θα γίνεται προτροπή να τον εισάγετε μια φορά σε κάθε συνεδρία όταν ο { -brand-short-name } ανακτά αποθηκευμένες πληροφορίες που προστατεύονται από τον κωδικό.
 master-password-warning = Βεβαιωθείτε ότι θυμάστε τον κύριο κωδικό που έχετε ορίσει.  Αν ξεχάσετε τον κύριο κωδικό, δεν θα έχετε πρόσβαση στις πληροφορίες που προστατεύει.
-
 remove-password =
     .title = Αφαίρεση κύριου κωδικού πρόσβασης
 primary-password-admin = Ο διαχειριστής σας απαιτεί να έχετε ορίσει έναν κύριο κωδικό πρόσβασης για την αποθήκευση συνδέσεων και κωδικών πρόσβασης.
 primary-password-description = Ένας κύριος κωδικός πρόσβασης χρησιμοποιείται για την προστασία ορισμένων ευαίσθητων πληροφοριών, όπως συνδέσεις και κωδικοί πρόσβασης, σε αυτή τη συσκευή. Εάν δημιουργήσετε έναν κύριο κωδικό πρόσβασης, θα σας ζητηθεί να τον εισαγάγετε μία φορά ανά συνεδρία, όταν το { -brand-short-name } ανακτά αποθηκευμένες πληροφορίες που προστατεύονται από αυτό τον κωδικό πρόσβασης.
 primary-password-warning = Παρακαλώ βεβαιωθείτε ότι θα θυμάστε τον κύριο κωδικό πρόσβασης που έχετε ορίσει. Αν τον ξεχάσετε, δεν θα μπορείτε να αποκτήσετε πρόσβαση σε καμία από τις πληροφορίες που προστατεύονται σε αυτή τη συσκευή.
-
 remove-primary-password =
     .title = Αφαίρεση κύριου κωδικού πρόσβασης
 remove-info =
diff --git a/thunderbird-l10n/el/manifest.json b/thunderbird-l10n/el/manifest.json
index c8483ffb54cc76f8c7c0f80f91dc9201a74ecca5..0e8ef5ef8f6c2683c5ea08af62bd0eee0737187e 100644
--- a/thunderbird-l10n/el/manifest.json
+++ b/thunderbird-l10n/el/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Ελληνικά Language Pack",
   "description": "Language pack for Thunderbird for el",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "el": {
-      "version": "20210818130718",
+      "version": "20210831234317",
       "chrome_resources": {
         "alerts": "chrome/el/locale/el/alerts/",
         "autoconfig": "chrome/el/locale/el/autoconfig/",
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties
index 766ffb337804a002bcc6c51dd8b107b95a324e9f..1612771e4b757358e444a30512bcbb8374c654f2 100644
--- a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties
index 26936f6b25328aa73b9b744d49e7418a84d6c949..c2c229135faf6417bf4bc0bd1392395b92a24965 100644
--- a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=The “coords” attribute of the <area shape="pol
 TablePartRelPosWarning=Relative positioning of table rows and row groups is now supported. This site may need to be updated because it may depend on this feature having no effect.
 ScrollLinkedEffectFound2=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
 
+ScrollLinkedEffectFound3=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=Animation cannot be run on the
 CompositorAnimationWarningTransformIsBlockedByImportantRules=Transform animation cannot be run on the compositor because transform-related properties are overridden by !important rules
 CompositorAnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘opacity’ animation
 CompositorAnimationWarningHasRenderingObserver=Animation cannot be run on the compositor because the element has rendering observers (-moz-element or SVG clipping/masking)
-
 CompositorAnimationWarningHasCurrentColor=Animations of ‘background-color’ cannot be run on the compositor with ‘current-color’ keyframe.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties
index de3e8379591658b26baac79ce093e570ff2fe6b3..a606bdf36ab4fd41db045d76079df6d9fd762925 100644
--- a/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties
+++ b/thunderbird-l10n/en-CA/chrome/en-CA/locale/en-CA/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: Length is over “%1$S” byt
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: Length of origin within referrer is over “%1$S” bytes limit - removing referrer with origin “%2$S”.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Less restricted policies, including ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ and ‘unsafe-url’, will be ignored soon for the cross-site request: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Ignoring the less restricted referrer policy “%1$S” for the cross-site request: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Upgrading insecure request “%1$S” to use “%2$S
 HTTPSOnlyNoUpgradeException = Not upgrading insecure request “%1$S” because it is exempt.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Upgrading insecure request “%1$S” failed. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
 
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl
index 9cd23530f5ca47bd08697135a715bc22189ea113..6d450c8033aeb5859bb04cd9cca194e67c5b555f 100644
--- a/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/en-CA/localization/en-CA/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Learn more</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s neither a flex container nor a grid container.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container, a grid container, or a multi-column container.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid or flex item.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid item.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> has no effect on this element since it’s not a grid container.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a flex item.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> has no effect on this element since it’s not an inline or table-cell element.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> has no effect on this element since it has a display of <strong>{ $display }</strong>.
-
 inactive-css-not-display-block-on-floated = The <strong>display</strong> value has been changed by the engine to <strong>block</strong> because the element is <strong>floated</strong>.
-
 inactive-css-property-is-impossible-to-override-in-visited = It’s impossible to override <strong>{ $property }</strong> due to <strong>:visited</strong> restriction.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> has no effect on this element since it’s not a positioned element.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> has no effect on this element since <strong>overflow:hidden</strong> is not set.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> has no effect on this element because its <strong>outline-style</strong> is <strong>auto</strong> or <strong>none</strong>.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> has no effect on internal table elements.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> has no effect on internal table elements except table cells.
-
 inactive-css-not-table = <strong>{ $property }</strong> has no effect on this element since it’s not a table.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> has no effect on this element since it doesn’t scroll.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Try adding <strong>display:grid</strong> or <strong>display:flex</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Try adding either <strong>display:grid</strong>, <strong>display:flex</strong>, or <strong>columns:2</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong>. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
 inactive-css-not-grid-item-fix-2 = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong> to the element’s parent. { learn-more }
-
 inactive-css-not-grid-container-fix = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong>. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
-
 inactive-css-not-flex-container-fix = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong>. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Try adding <strong>display:inline</strong> or <strong>display:table-cell</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Try adding <strong>display:inline-block</strong> or <strong>display:block</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try adding <strong>display:inline-block</strong>. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Try removing <strong>float</strong> or adding <strong>display:block</strong>. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Try setting its <strong>position</strong> property to something other than <strong>static</strong>. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Try adding <strong>overflow:hidden</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Try setting its <strong>display</strong> property to something else than <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Try setting its <strong>display</strong> property to something else than <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Try setting its <strong>outline-style</strong> property to something other than <strong>auto</strong> or <strong>none</strong>. { learn-more }
-
 inactive-css-not-table-fix = Try adding <strong>display:table</strong> or <strong>display:inline-table</strong>. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, or <strong>overflow:hidden</strong>. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overf
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> is not supported in the following browsers:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards. It is not supported in the following browsers:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> is deprecated by W3C standards. It is not supported in the following browsers:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is deprecated by W3C standards.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> is an experimental property. It is not supported in the following browsers:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is an experimental property.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Learn more</span> about <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl
index 66219c31fd1346b4dfd1b248be9f0d3308cec21d..a129ca36858b293a91a55988648e7ab8192996c0 100644
--- a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Active
 about-networking-idle = Idle
 about-networking-host = Host
 about-networking-tcp = TCP
+about-networking-type = Type
 about-networking-sent = Sent
 about-networking-received = Received
 about-networking-family = Family
diff --git a/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/en-CA/localization/en-CA/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/en-CA/manifest.json b/thunderbird-l10n/en-CA/manifest.json
index 23d349a3c2d1db14cd9559d7845539e2bfff4cf9..cc6fc8dbe563a010373adef9eec1bd0252465174 100644
--- a/thunderbird-l10n/en-CA/manifest.json
+++ b/thunderbird-l10n/en-CA/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "English (CA) Language Pack",
   "description": "Language pack for Thunderbird for en-CA",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "en-CA": {
-      "version": "20210813135638",
+      "version": "20210831120629",
       "chrome_resources": {
         "alerts": "chrome/en-CA/locale/en-CA/alerts/",
         "autoconfig": "chrome/en-CA/locale/en-CA/autoconfig/",
diff --git a/thunderbird-l10n/en-GB/chrome/en-GB/locale/en-GB/global/layout/htmlparser.properties b/thunderbird-l10n/en-GB/chrome/en-GB/locale/en-GB/global/layout/htmlparser.properties
index 766ffb337804a002bcc6c51dd8b107b95a324e9f..1612771e4b757358e444a30512bcbb8374c654f2 100644
--- a/thunderbird-l10n/en-GB/chrome/en-GB/locale/en-GB/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/en-GB/chrome/en-GB/locale/en-GB/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/en-GB/localization/en-GB/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..2e7d3a2047302061013b0dc27db4c1d7b3be9d62
--- /dev/null
+++ b/thunderbird-l10n/en-GB/localization/en-GB/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Delete Event
+       *[other] Delete Events
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Do you really want to delete this event?
+       *[other] Do you really want to delete these { $count } events?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Delete Task
+       *[other] Delete Tasks
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Do you really want to delete this task?
+       *[other] Do you really want to delete these { $count } tasks?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Delete Item
+       *[other] Delete Items
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Do you really want to delete this item?
+       *[other] Do you really want to delete these { $count } items?
+    }
+calendar-delete-prompt-disable-message = Don’t ask me again.
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/calendar/preferences.ftl b/thunderbird-l10n/en-GB/localization/en-GB/calendar/preferences.ftl
index 90decd203ca5a69e3181de8ec45162c0acf41e7e..6524c0b13db5acfe69467e9960c95dc577c2f8e9 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/calendar/preferences.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Edit events and tasks in a tab instead of in a dialog window.
     .accesskey = t
+prompt-delete-label =
+    .label = Prompt before deleting events and tasks.
+    .accesskey = v
 accessibility-legend = Accessibility
 accessibility-colors-label =
     .label = Optimise colours for accessibility
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/en-GB/localization/en-GB/messenger/accountcreation/accountSetup.ftl
index c1fef019bc8e70b0cec1932928eeead708a59f7f..0cba35b7f7e8cefa256ea52aa00b76e107918fef 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Account Setup
 ## Header
 
 account-setup-title = Set Up Your Existing Email Address
-
 account-setup-description =
     To use your current email address fill in your credentials.<br/>
     { -brand-product-name } will automatically search for a working and recommended server configuration.
-
 account-setup-secondary-description = { -brand-product-name } will automatically search for a working and recommended server configuration.
-
 account-setup-success-title = Account successfully created
-
 account-setup-success-description = You can now use this account with { -brand-short-name }.
-
 account-setup-success-secondary-description = You can improve the experience by connecting related services and configuring advanced account settings.
 
 ## Form fields
 
 account-setup-name-label = Your full name
     .accesskey = n
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = John Doe
-
 account-setup-name-info-icon =
     .title = Your name, as shown to others
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = Email address
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = john.doe@example.com
-
 account-setup-email-info-icon =
     .title = Your existing email address
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Password
     .accesskey = P
     .title = Optional, will only be used to validate the username
-
 account-provisioner-button = Get a new email address
     .accesskey = G
-
 account-setup-password-toggle =
     .title = Show/hide password
-
+account-setup-password-toggle-show =
+    .title = Show password in clear text
+account-setup-password-toggle-hide =
+    .title = Hide password
 account-setup-remember-password = Remember password
     .accesskey = m
-
 account-setup-exchange-label = Your login
     .accesskey = l
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = YOURDOMAIN\yourusername
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Domain login
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Cancel
     .accesskey = a
-
 account-setup-button-manual-config = Configure manually
     .accesskey = m
-
 account-setup-button-stop = Stop
     .accesskey = S
-
 account-setup-button-retest = Re-test
     .accesskey = t
-
 account-setup-button-continue = Continue
     .accesskey = C
-
 account-setup-button-done = Done
     .accesskey = D
 
 ## Notifications
 
 account-setup-looking-up-settings = Looking up configuration…
-
 account-setup-looking-up-settings-guess = Looking up configuration: Trying common server names…
-
 account-setup-looking-up-settings-half-manual = Looking up configuration: Probing server…
-
 account-setup-looking-up-disk = Looking up configuration: { -brand-short-name } installation…
-
 account-setup-looking-up-isp = Looking up configuration: Email provider…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Looking up configuration: Mozilla ISP database…
-
 account-setup-looking-up-mx = Looking up configuration: Incoming mail domain…
-
 account-setup-looking-up-exchange = Looking up configuration: Exchange server…
-
 account-setup-checking-password = Checking password…
-
 account-setup-installing-addon = Downloading and installing add-on…
-
 account-setup-success-half-manual = The following settings were found by probing the given server:
-
 account-setup-success-guess = Configuration found by trying common server names.
-
 account-setup-success-guess-offline = You are offline. We guessed some settings but you will need to enter the right settings.
-
 account-setup-success-password = Password OK
-
 account-setup-success-addon = Successfully installed the add-on
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Configuration found in Mozilla ISP database.
-
 account-setup-success-settings-disk = Configuration found on { -brand-short-name } installation.
-
 account-setup-success-settings-isp = Configuration found at email provider.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Configuration found for a Microsoft Exchange server.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Configuration found for a Microsoft Ex
 
 account-setup-step1-image =
     .title = Initial setup
-
 account-setup-step2-image =
     .title = Loading…
-
 account-setup-step3-image =
     .title = Configuration found
-
 account-setup-step4-image =
     .title = Connection error
-
 account-setup-step5-image =
     .title = Account created
-
 account-setup-privacy-footnote2 = Your credentials will only be stored locally on your computer.
-
 account-setup-selection-help = Not sure what to select?
-
 account-setup-selection-error = Need help?
-
 account-setup-success-help = Not sure about your next steps?
-
 account-setup-documentation-help = Setup documentation
-
 account-setup-forum-help = Support forum
-
 account-setup-privacy-help = Privacy policy
-
 account-setup-getting-started = Getting started
 
 ## Results area
@@ -177,41 +126,25 @@ account-setup-results-area-title =
         [one] Available configuration
        *[other] Available configurations
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Keep your folders and emails synchronised on your server
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Keep your folders and emails on your computer
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Use the Microsoft Exchange server or Office365 cloud services
-
 account-setup-incoming-title = Incoming
-
 account-setup-outgoing-title = Outgoing
-
 account-setup-username-title = Username
-
 account-setup-exchange-title = Server
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = No Encryption
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Use existing outgoing SMTP server
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -221,81 +154,54 @@ account-setup-result-username-different = Incoming: { $incoming }, Outgoing: { $
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Authentication failed. Either the entered credentials are incorrect or a separate username is required for logging in. This username is usually your Windows domain login with or without the domain (for example, janedoe or AD\\janedoe)
-
 account-setup-credentials-wrong = Authentication failed. Please check the username and password
-
 account-setup-find-settings-failed = { -brand-short-name } failed to find the settings for your email account
-
 account-setup-exchange-config-unverifiable = Configuration could not be verified. If your username and password are correct, it’s likely that the server administrator has disabled the selected configuration for your account. Try selecting another protocol.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Server settings
-
 account-setup-incoming-server-legend = Incoming server
-
 account-setup-protocol-label = Protocol:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Hostname:
-
 account-setup-port-label = Port:
     .title = Set the port number to 0 for autodetection
-
 account-setup-auto-description = { -brand-short-name } will attempt to auto-detect fields that are left blank.
-
 account-setup-ssl-label = Connection security:
-
 account-setup-outgoing-server-legend = Outgoing server
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Autodetect
-
 ssl-no-authentication-option = No authentication
-
 ssl-cleartext-password-option = Normal password
-
 ssl-encrypted-password-option = Encrypted password
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = None
-
 account-setup-auth-label = Authentication method:
-
 account-setup-username-label = Username:
-
 account-setup-advanced-setup-button = Advanced config
     .accesskey = A
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Warning!
-
 account-setup-insecure-incoming-title = Incoming settings:
-
 account-setup-insecure-outgoing-title = Outgoing settings:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> does not use encryption.
-
 account-setup-warning-cleartext-details = Insecure mail servers do not use encrypted connections to protect your passwords and private information. By connecting to this server you could expose your password and private information.
-
 account-setup-insecure-server-checkbox = I understand the risks
     .accesskey = u
-
 account-setup-insecure-description = { -brand-short-name } can allow you to get to your mail using the provided configurations. However, you should contact your administrator or email provider regarding these improper connections. See the <a data-l10n-name="thunderbird-faq-link">Thunderbird FAQ</a> for more information.
-
 insecure-dialog-cancel-button = Change Settings
     .accesskey = S
-
 insecure-dialog-confirm-button = Confirm
     .accesskey = C
 
@@ -304,51 +210,45 @@ insecure-dialog-confirm-button = Confirm
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } found your account setup information on { $domain }. Do you want to proceed and submit your credentials?
-
 exchange-dialog-confirm-button = Login
-
 exchange-dialog-cancel-button = Cancel
 
+## Dismiss account creation dialog
+
+exit-dialog-title = No Email Account Configured
+exit-dialog-description = Are you sure you want to cancel the setup process? { -brand-short-name } can still be used without an email account, but many features will not be available.
+account-setup-no-account-checkbox = Use { -brand-short-name } without an email account
+    .accesskey = U
+exit-dialog-cancel-button = Continue Setup
+    .accesskey = C
+exit-dialog-confirm-button = Exit Setup
+    .accesskey = E
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Error Creating Account
-
 account-setup-error-server-exists = Incoming server already exists.
-
 account-setup-confirm-advanced-title = Confirm Advanced Configuration
-
 account-setup-confirm-advanced-description = This dialog will be closed and an account with the current settings will be created, even if the configuration is incorrect. Do you want to proceed?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Install
-
 account-setup-addon-install-intro = A third-party add-on can allow you to access your email account on this server:
-
 account-setup-addon-no-protocol = This email server unfortunately does not support open protocols. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Account settings
-
 account-setup-encryption-button = End-to-end encryption
-
 account-setup-signature-button = Add a signature
-
 account-setup-dictionaries-button = Download dictionaries
-
 account-setup-address-book-carddav-button = Connect to a CardDAV address book
-
 account-setup-address-book-ldap-button = Connect to an LDAP address book
-
 account-setup-calendar-button = Connect to a remote calendar
-
 account-setup-linked-services-title = Connect your linked services
-
 account-setup-linked-services-description = { -brand-short-name } detected other services linked to your email account.
-
 account-setup-no-linked-description = Setup other services to get the most out of your { -brand-short-name } experience.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -356,7 +256,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name } found one address book linked to your email account.
        *[other] { -brand-short-name } found { $count } address books linked to your email account.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -364,62 +263,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } found one calendar linked to your email account.
        *[other] { -brand-short-name } found { $count } calendars linked to your email account.
     }
-
 account-setup-button-finish = Finish
     .accesskey = F
-
 account-setup-looking-up-address-books = Looking up address books…
-
 account-setup-looking-up-calendars = Looking up calendars…
-
 account-setup-address-books-button = Address Books
-
 account-setup-calendars-button = Calendars
-
 account-setup-connect-link = Connect
-
 account-setup-existing-address-book = Connected
     .title = Address book already connected
-
 account-setup-existing-calendar = Connected
     .title = Calendar already connected
-
 account-setup-connect-all-calendars = Connect all calendars
-
 account-setup-connect-all-address-books = Connect all address books
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Connect calendar
-
 calendar-dialog-cancel-button = Cancel
     .accesskey = C
-
 calendar-dialog-confirm-button = Connect
     .accesskey = n
-
 account-setup-calendar-name-label = Name
-
 account-setup-calendar-name-input =
     .placeholder = My calendar
-
 account-setup-calendar-color-label = Colour
-
 account-setup-calendar-refresh-label = Refresh
-
 account-setup-calendar-refresh-manual = Manually
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Every minute
        *[other] Every { $count } minutes
     }
-
 account-setup-calendar-read-only = Read only
     .accesskey = R
-
 account-setup-calendar-show-reminders = Show reminders
     .accesskey = S
-
 account-setup-calendar-offline-support = Offline support
     .accesskey = O
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/en-GB/localization/en-GB/messenger/addressbook/aboutAddressBook.ftl
index 539458b3f682b861c2da4730cb80b3ab8ec09eac..cc7db7414363b21b0b09e8e35b564212407cec71 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = All Address Books
-
 about-addressbook-books-context-properties =
     .label = Properties
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Delete
 about-addressbook-books-context-remove =
     .label = Remove
-
 about-addressbook-confirm-delete-book-title = Delete Address Book
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Search { $name }
 about-addressbook-search-all =
     .placeholder = Search all address books
-
 about-addressbook-sort-button =
     .title = Change the list order
-
 about-addressbook-name-format-display =
     .label = Display Name
 about-addressbook-name-format-firstlast =
     .label = First Last
 about-addressbook-name-format-lastfirst =
     .label = Last, First
-
 about-addressbook-sort-name-ascending =
     .label = Sort by name (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Sort by e-mail address (A > Z)
 about-addressbook-sort-email-descending =
     .label = Sort by e-mail address (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Write
 about-addressbook-confirm-delete-mixed-title = Delete Contacts and Lists
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Edit
 about-addressbook-cancel-edit-contact-button = Cancel
 about-addressbook-save-edit-contact-button = Save
-
 about-addressbook-details-email-addresses-header = Email Addresses
 about-addressbook-details-phone-numbers-header = Phone Numbers
 about-addressbook-details-home-address-header = Home Address
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/messenger/importDialog.ftl b/thunderbird-l10n/en-GB/localization/en-GB/messenger/importDialog.ftl
index 19d56a4943a5e05e9ae18c65569b2258ed8ed788..c1abd4e8ff2c03e9d863b28038985e6daa14bddb 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/messenger/importDialog.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Import mail from a Thunderbird profile directory.
-import-select-profile-dir-or-zip = Select a profile directory or a zipped profile directory
+import-from-thunderbird-zip =
+    .label = Thunderbird (exported profile backup; zip file smaller than 2GB)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profile folder)
+    .accesskey = T
 import-select-profile-zip = Select a zipped profile directory
+import-select-profile-dir = Select a profile directory
+zip-file-too-big-title = Zip File Too Big
+zip-file-too-big-message = The selected zip file is larger than 2GB. Please extract it first, then import from the extracted folder instead.
+wizardpage-failed =
+    .label = Import Failed
+wizardpage-failed-message = Import failed unexpectedly, more information may be available in the Error Console.
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/en-GB/localization/en-GB/messenger/messengercompose/messengercompose.ftl
index 2c9fc43620fac76e7c4ba755d1730e2fb437c560..d2372fb7ba41876b67e641fd5d9b6aba95aa7c16 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Add Attachment…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Add Attachment…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = File(s)…
     .accesskey = F
@@ -153,12 +157,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Show { bcc-compose-address-row-label.value } Field ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = The { $count } recipients in To and Cc will see each other’s address. You can avoid disclosing recipients by using Bcc instead.
+to-address-row-label =
+    .value = To
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = To Field
+    .accesskey = T
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = To
+    .accesskey = T
+#   $key (String) - the shortcut key for this field
+show-to-row-button = To
+    .title = Show To Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Cc Field
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Show Cc Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Bcc
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Bcc Field
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Bcc
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+    .title = Show Bcc Field ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Other addressing fields to show
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Your message has a public recipient. You can avoid disclosing recipients by using Bcc instead.
+       *[other] The { $count } recipients in To and Cc will see each other’s address. You can avoid disclosing recipients by using Bcc instead.
+    }
 many-public-recipients-bcc =
     .label = Use Bcc Instead
     .accesskey = U
 many-public-recipients-ignore =
     .label = Keep Recipients Public
     .accesskey = K
+many-public-recipients-prompt-title = Too Many Public Recipients
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Your message has a public recipient. This may be a privacy concern. You can avoid this by moving the recipient from To/Cc to Bcc instead.
+       *[other] Your message has { $count } public recipients, who will be able to see each other’s addresses. This may be a privacy concern. You can avoid disclosing recipients by moving recipients from To/Cc to Bcc instead.
+    }
+many-public-recipients-prompt-cancel = Cancel Sending
+many-public-recipients-prompt-send = Send Anyway
 
 ## Notifications
 
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..f01ad7c053d9798bc32c7b70f2b8cbe562ed5e2f
--- /dev/null
+++ b/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Finish installing { -brand-short-name }?
+prompt-to-install-message = Complete this one-step installation to help keep { -brand-short-name } up to date and prevent data loss. { -brand-short-name } will be added to your Applications folder and Dock.
+prompt-to-install-yes-button = Install
+prompt-to-install-no-button = Don’t Install
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } installation failed.
+install-failed-message = { -brand-short-name } failed to install but will continue to run.
diff --git a/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/textActions.ftl b/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/textActions.ftl
index cb2dd294fe8853932d5d4d6232a9e57742545160..548b296f3c99106d4177caa92d37aad9c22347ca 100644
--- a/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/en-GB/localization/en-GB/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Undo
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Redo
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cut
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copy
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Paste
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Delete
     .accesskey = D
-
 text-action-select-all =
     .label = Select All
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = No Spelling Suggestions
+text-action-spell-add-to-dictionary =
+    .label = Add to Dictionary
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Undo Add To Dictionary
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Check Spelling
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Add Dictionaries…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Languages
+    .accesskey = L
diff --git a/thunderbird-l10n/en-GB/manifest.json b/thunderbird-l10n/en-GB/manifest.json
index fc827c84512bd2b7ef414eaead1f0f1ef0b1927c..1032a3e8485011272a36037c6e35cddc13749ac7 100644
--- a/thunderbird-l10n/en-GB/manifest.json
+++ b/thunderbird-l10n/en-GB/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "English (GB) Language Pack",
   "description": "Language pack for Thunderbird for en-GB",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "en-GB": {
-      "version": "20210814215431",
+      "version": "20210831185327",
       "chrome_resources": {
         "alerts": "chrome/en-GB/locale/en-GB/alerts/",
         "autoconfig": "chrome/en-GB/locale/en-GB/autoconfig/",
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/debugger.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/debugger.properties
index a359b096451052a7075990488dfcb6de5980acb5..2d53cb71036e573a2c24ade0ce5308957eeeff9b 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/debugger.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/debugger.properties
@@ -636,7 +636,7 @@ sourceTabs.closeTab.key=CmdOrCtrl+W
 
 # LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
 # for closing the other tabs.
-sourceTabs.closeOtherTabs=Cerrar otras
+sourceTabs.closeOtherTabs=Cerrar las otras pestañas
 sourceTabs.closeOtherTabs.accesskey=o
 
 # LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/inspector.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/inspector.properties
index 36ef017764072cfe91dbc5bafdb0b769d3feff7b..f8bd118e5ee522665aef37e72c9b0d4728d15a6e 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/inspector.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/devtools/client/inspector.properties
@@ -481,7 +481,7 @@ inspector.classPanel.toggleClass.tooltip=Intercambiar clases
 
 # LOCALIZATION NOTE (inspector.classPanel.newClass.placeholder): This is the placeholder
 # shown inside the text field used to add a new class in the rule-view.
-inspector.classPanel.newClass.placeholder=Añadir nueva clase
+inspector.classPanel.newClass.placeholder=Agregar nueva clase
 
 # LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
 # class panel when the current element has no classes applied.
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/layout/htmlparser.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/layout/htmlparser.properties
index 7c7df2cfccc64860c29e3685c9cbfbdddab42c95..bec93de3da05f87c84893ac9f7050e27632472fb 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/layout/htmlparser.properties
@@ -22,7 +22,7 @@ EncMetaUserDefined=Una etiqueta meta tag fue usada para declarar la codificació
 
 # Tokenizer errors
 errGarbageAfterLtSlash=Hay basura después de “</”.
-errLtSlashGt=Se encontró un “</>”. Las posibles causas son: falta escapar un “<” (se puede escapar como “&lt;”) o hay un etiqueta de cierre mal escrita.
+errLtSlashGt=Se encontró un “</>”. Causas probables: falta escapar un “<” (se puede escapar como “&lt;”) o hay un etiqueta de cierre mal escrita.
 errCharRefLacksSemicolon=La referencia a caracter no fue terminada con punto y coma.
 errNoDigitsInNCR=No hay dígitos en la referencia a caracter numérica.
 errGtInSystemId=“>” en identificador de sistema.
@@ -77,6 +77,7 @@ errEofInSystemId=Fin de archivo dentro de un identificador del sistema.
 errExpectedSystemId=Se esperaba un identificador del sistema, pero finalizó el doctype.
 errMissingSpaceBeforeDoctypeName=Un espacio faltante antes del nombre del doctype.
 errHyphenHyphenBang=Se encontró “--!” en un comentario.
+errNestedComment=Se encontró un “<!--” dentro de un comentario. Causa probable: Comentario anidado (no permitido).
 errNcrZero=La referencia de caracter se expande a cero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No hay espacio entre la palabra clave “SYSTEM” del doctype y la comilla.
 errNoSpaceBetweenPublicAndSystemIds=No hay espacio entre los identficadores públicos y de sistema del doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Hay elementos sin cerrar en la pila.
 errEndTagDidNotMatchCurrentOpenElement=La etiqueta de cierre “%1$S” no coincide con el nombre del elemento (“%2$S”) actualmente abierto.
 errEndTagViolatesNestingRules=La etiqueta de cierre “%1$S” viola las reglas de anidamiento.
 errEndWithUnclosedElements=Aparece una etiqueta de cierre “%1$S”, pero hay elementos sin cerrar.
+errListUnclosedStartTags=Elemento o elementos sin cerrar.
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/printdialog.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/printdialog.properties
index 8e29272ae4cdb70a0c04df12f306e133d02ae7fd..ba9c2ba362c7123ce06ec8a6930f0560350e4497 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/printdialog.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/global/printdialog.properties
@@ -38,9 +38,10 @@ headerFooterURL=URL
 headerFooterDate=Fecha/hora
 headerFooterPage=Página #
 headerFooterPageTotal=Página # de #
-headerFooterCustom=Personalizado…
+headerFooterCustom=Personalizar…
 customHeaderFooterPrompt=Ingrese el texto para su encabezado/pie personalizado
 
+# These are for the summary view in the Mac dialog:
 summarySelectionOnlyTitle=Imprimir selección
 summaryShrinkToFitTitle=Ajustar al ancho de página
 summaryPrintBGColorsTitle=Imprimir colores de fondo
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/lightning/lightning.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/lightning/lightning.dtd
index 84167fc2da7f104addd990e9c08f5a9eb094320a..051dda16f552decdaa8655f76e0bad4405638d3e 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/lightning/lightning.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/lightning/lightning.dtd
@@ -8,7 +8,7 @@
   -->
 
 <!-- Tools menu -->
-<!ENTITY lightning.preferencesLabel "Calendar">
+<!ENTITY lightning.preferencesLabel "Calendario">
 
 <!-- New menu popup in File menu -->
 <!ENTITY lightning.menupopup.new.event.label    "Evento…">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/CustomHeaders.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/CustomHeaders.dtd
index 23012995ae94997309d9c68878e7eb617086620e..9a7905f5490228af3fbc3e09e714f854542e1e00 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/CustomHeaders.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/CustomHeaders.dtd
@@ -3,7 +3,7 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!ENTITY window.title "Personalizar encabezados">
-<!ENTITY addButton.label "Añadir">
+<!ENTITY addButton.label "Agregar">
 <!ENTITY addButton.accesskey "A">
 <!ENTITY removeButton.label "Eliminar">
 <!ENTITY removeButton.accesskey "r">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/abMailListDialog.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/abMailListDialog.dtd
index 47873b242ae57f3da5a6852e8b62226080fea361..03bbb4f3cbbe7ea492c61be03079ab5b55ce7f25 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/abMailListDialog.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/abMailListDialog.dtd
@@ -15,7 +15,7 @@
 <!ENTITY ListDescription.label          "Descripción:">
 <!ENTITY ListDescription.accesskey      "e">
 <!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
-<!ENTITY AddressTitle.label             "Escriba direcciones de correo para añadirlas a la lista:">
+<!ENTITY AddressTitle.label             "Escriba direcciones de correo para agregarlas a la lista:">
 <!ENTITY AddressTitle.accesskey         "E">
 <!ENTITY UpButton.label                 "Subir">
 <!ENTITY DownButton.label               "Bajar">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/addressBook.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/addressBook.properties
index c57692828dfb6430c01a13834cebbae00606dbf2..6e95da99d75cfe93e0558c04b6f438f167d0fa60 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/addressBook.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/addressBook.properties
@@ -226,7 +226,7 @@ failedToExportMessageNoDeviceSpace=No se puede exportar la libreta de direccione
 failedToExportMessageFileAccessDenied=No se puede exportar la libreta de direcciones, acceso al archivo denegado.
 
 # For getting authDN for replication using dlg box
-AuthDlgTitle=Réplica LDAP de libreta de direcciones     ***************************************
+AuthDlgTitle=Réplica LDAP de libreta de direcciones
 AuthDlgDesc=Para acceder al servidor de directorio, introduzca su usuario y contraseña.
 
 # LOCALIZATION NOTE(joinMeInThisChat)
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/pref-directory.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/pref-directory.dtd
index ce3f3b8379554800d2b0e4c57dabf8e042d3bb4d..465d5878c31cfbb366a34c15214885e7172531a8 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/pref-directory.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/addressbook/pref-directory.dtd
@@ -3,15 +3,15 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!-- LOCALIZATION NOTE (window.title) : do not translate "LDAP" in below line -->
-<!ENTITY pref.ldap.window.title "Servidores de directorio LDAP">
+<!ENTITY pref.ldap.window.title    "Servidores de directorio LDAP">
 <!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
-<!ENTITY directories.label "Servidor de directorio LDAP:">
+<!ENTITY directories.label         "Servidor de directorio LDAP:">
 <!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
-<!ENTITY directoriesText.label "Selecionar un servidor de directorio LDAP:">
+<!ENTITY directoriesText.label     "Selecionar un servidor de directorio LDAP:">
 <!ENTITY directoriesText.accesskey "S">
-<!ENTITY addDirectory.label "Añadir">
-<!ENTITY addDirectory.accesskey "A">
-<!ENTITY editDirectory.label "Editar">
-<!ENTITY editDirectory.accesskey "E">
-<!ENTITY deleteDirectory.label "Borrar">
+<!ENTITY addDirectory.label        "Agregar">
+<!ENTITY addDirectory.accesskey    "A">
+<!ENTITY editDirectory.label       "Editar">
+<!ENTITY editDirectory.accesskey   "E">
+<!ENTITY deleteDirectory.label     "Borrar">
 <!ENTITY deleteDirectory.accesskey "B">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-main.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-main.dtd
index cb2ba1a95956794d29f5af77d01b23ad64ba4dcd..f7985a29e2a2d3f02b68a0ed927494c8c636b243 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-main.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-main.dtd
@@ -2,8 +2,6 @@
    - 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/. -->
 
-<!-- extracted from am-main.xul -->
-
 <!-- extracted from am-main.xhtml -->
 
 <!ENTITY accountTitle.label "Configuración de cuenta">
@@ -29,8 +27,8 @@
 <!ENTITY signatureFile.label "Adjuntar la firma desde un archivo (texto, HTML o imagen):">
 <!ENTITY signatureFile.accesskey "t">
 <!ENTITY edit.label "Editar…">
-<!ENTITY choose.label "Elegir…">
-<!ENTITY choose.accesskey "g">
+<!ENTITY choose.label "Seleccionar…">
+<!ENTITY choose.accesskey "c">
 <!ENTITY editVCard.label "Editar tarjeta…">
 <!ENTITY editVCard.accesskey "d">
 <!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-server-top.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-server-top.dtd
index 9c02b64417b29fcf8f8a2c8a2873f79a7076448d..4dbd7bebe0d9cf653f82edd46eed21c1387d83ed 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-server-top.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/am-server-top.dtd
@@ -50,7 +50,7 @@
 <!ENTITY modelDeleteImmediately.label "Eliminarlo inmediatamente">
 <!ENTITY modelDeleteImmediately.accesskey "d">
 <!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
-<!ENTITY expungeOnExit.label "Limpiar (&quot;Borrar el contenido&quot;) carpeta de entrada al salir">
+<!ENTITY expungeOnExit.label "Limpiar (&quot;Borrar el contenido&quot;) de la bandeja de entrada al salir">
 <!ENTITY expungeOnExit.accesskey "e">
 <!ENTITY emptyTrashOnExit.label "Vaciar la papelera al salir">
 <!ENTITY emptyTrashOnExit.accesskey "V">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/charsetTitles.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/charsetTitles.properties
index 4101a5047c52f91ce19ea636384936aebe1a5fde..9fac5605421e027f75f985cdcd1a6ee7c4e57b9f 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/charsetTitles.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/charsetTitles.properties
@@ -6,10 +6,6 @@
 ## 1. key should always be in lower case ascii so we can do case insensitive
 ##    comparison in the code faster.
 
-## Format of this file:
-## charset_name.title = a_title  -  specifies the human readable title for 
-## this charset
-
 ## Format of this file:
 ## charset_name.title = a_title  -  specifies the human readable title for
 ## this charset
@@ -31,7 +27,7 @@ macintosh.title         = Occidental (MacRoman)
 x-mac-ce.title          = Centroeuropeo (MacCE)
 x-mac-turkish.title     = Turco (MacTurkish)
 x-mac-croatian.title    = Croata (MacCroatian)
-x-mac-romanian.title    = Romanian (MacRomanian)
+x-mac-romanian.title    = Rumano (MacRomanian)
 x-mac-icelandic.title   = Islandés (MacIcelandic)
 iso-2022-jp.title = Japonés (ISO-2022-JP)
 shift_jis.title = Japonés (Shift_JIS)
@@ -48,7 +44,7 @@ utf-16le.title = Unicode (UTF-16LE)
 utf-16be.title = Unicode (UTF-16BE)
 iso-8859-5.title = Cirílico (ISO-8859-5)
 windows-1251.title = Cirílico (Windows-1251)
-x-mac-cyrillic.title = Cyrillic (MacCyrillic)
+x-mac-cyrillic.title = Cirílico (MacCyrillic)
 x-mac-ukrainian.title = Cirílico/ucraniano (MacUkrainian)
 koi8-r.title = Cirílico (KOI8-R)
 koi8-u.title = Cirílico/ucraniano (KOI8-U)
@@ -57,22 +53,21 @@ windows-1253.title = Griego (Windows-1253)
 x-mac-greek.title = Griego (MacGreek)
 windows-1258.title = Vietnamita (Windows-1258)
 windows-874.title = Tailandés (Windows-874)
-iso-8859-6.title = Arábigo (ISO-8859-6)
+iso-8859-6.title = Árabe (ISO-8859-6)
 iso-8859-8.title = Hebreo visual (ISO-8859-8)
 iso-8859-8-i.title = Hebreo (ISO-8859-8-I)
 windows-1255.title = Hebreo (Windows-1255)
-windows-1256.title = Arábigo (Windows-1256)
+windows-1256.title = Árabe (Windows-1256)
 x-user-defined.title = Definido por el usuario
 ibm866.title = Cirílico/ruso (CP-866)
 gb18030.title = Chino simplificado (GB18030)
-x-mac-arabic.title = Arábigo (MacArabic)
+x-mac-arabic.title = Árabe (MacArabic)
 x-mac-farsi.title = Farsi (MacFarsi)
 x-mac-hebrew.title = Hebreo (MacHebrew)
 x-mac-devanagari.title = Hindú (MacDevanagari)
 x-mac-gujarati.title = Gujarati (MacGujarati)
 x-mac-gurmukhi.title = Gurmukhi (MacGurmukhi)
 
-
 chardet.off.title                           = (apagado)
 chardet.universal_charset_detector.title    = Universal
 chardet.ja_parallel_state_machine.title     = Japonés
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/junkLog.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/junkLog.dtd
index 9032d5e908a71b44b35c1fc6acb6d98b2e63d0c0..9fad0b27d072cb63ca40e4f007be9fae84a8f632 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/junkLog.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/junkLog.dtd
@@ -2,7 +2,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/. -->
 
-<!ENTITY adaptiveJunkLog.title "Registro de correo basura adaptativo">
+<!ENTITY adaptiveJunkLog.title "Registro de correo basura adaptivo">
 <!ENTITY adaptiveJunkLogInfo.label "Control de actividad del registro del correo basura adaptativo.">
 <!ENTITY clearLog.label "Limpiar el registro">
 <!ENTITY clearLog.accesskey "L">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/localMsgs.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/localMsgs.properties
index 7be354fed72efadbce9b06eb2b41c2ef4239a1fe..c6bd06c2ae6537705ec8f2b0294e22dc1305aae0 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/localMsgs.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/localMsgs.properties
@@ -132,7 +132,7 @@ nsErrorCouldNotConnectViaTls=No se puede establecer una conexión TLS con el ser
 
 # LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
 # "%S" is the the name of the folder.
-pop3MoveFolderToTrash=¿Seguro de sea borrar la carpeta '%S'?
+pop3MoveFolderToTrash=¿Seguro desea borrar la carpeta '%S'?
 
 pop3DeleteFolderDialogTitle=Borrar carpeta
 
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorPersonalDictionary.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorPersonalDictionary.dtd
index ef744e7f88d1235f15cfb10431a1c144d7ef8a8e..41522a7a2ab336fcdb992d41d48b61044a373739 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorPersonalDictionary.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorPersonalDictionary.dtd
@@ -7,7 +7,7 @@
 
 <!ENTITY wordEditField.label "Nueva palabra:">
 <!ENTITY wordEditField.accessKey "N">
-<!ENTITY AddButton.label "Añadir">
+<!ENTITY AddButton.label "Agregar">
 <!ENTITY AddButton.accessKey "A">
 <!ENTITY DictionaryList.label "Palabras en el diccionario:">
 <!ENTITY DictionaryList.accessKey "d">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorSpellCheck.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorSpellCheck.dtd
index 435a7344d0224b123e6700a5e6a57b58289aea14..e90ff862a582d394d71cf672bbf1f091a06737c0 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorSpellCheck.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/EditorSpellCheck.dtd
@@ -24,7 +24,7 @@
 <!ENTITY stopButton.accessKey "t">
 <!ENTITY userDictionary.label "Diccionario personal:">
 <!ENTITY moreDictionaries.label "Descargar más">
-<!ENTITY addToUserDictionaryButton.label "Añadir palabra">
+<!ENTITY addToUserDictionaryButton.label "Agregar palabra">
 <!ENTITY addToUserDictionaryButton.accessKey "d">
 <!ENTITY editUserDictionaryButton.label "Editar...">
 <!ENTITY editUserDictionaryButton.accessKey "E">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/messengercompose.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/messengercompose.dtd
index 98cbbbd24770f9da6b17f1b00b09b8d028a692f5..16c173d14d0bf9d4203c1144c390cda245f6cf55 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/messengercompose.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/messengercompose/messengercompose.dtd
@@ -219,7 +219,7 @@
 <!-- Mail Toolbar -->
 <!ENTITY sendButton.label "Enviar">
 <!ENTITY quoteButton.label "Citar">
-<!ENTITY addressButton.label "Dirección">
+<!ENTITY addressButton.label "Contactos">
 <!ENTITY attachButton.label "Adjuntar">
 <!ENTITY spellingButton.label "Ortografía">
 <!ENTITY saveButton.label "Guardar">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/msgViewPickerOverlay.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/msgViewPickerOverlay.dtd
index dde4206e8a20f288632eaa5645839bb5b82fb1ed..7eb200845227b124ac0ca803caf431506059975d 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/msgViewPickerOverlay.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/msgViewPickerOverlay.dtd
@@ -18,5 +18,5 @@
 <!ENTITY viewCustomViews.accesskey "V">
 <!ENTITY viewVirtualFolder.label "Salvar vista como una carpeta…">
 <!ENTITY viewVirtualFolder.accesskey "S">
-<!ENTITY viewCustomizeView.label "Personalizar">
+<!ENTITY viewCustomizeView.label "Personalizar…">
 <!ENTITY viewCustomizeView.accesskey "P">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/preferences/preferences.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/preferences/preferences.properties
index 2fe59cba4416fbd97e221b93e91405b54748aad0..413b1376f6d3c788a46dbed1e87640c62bd80c34 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/preferences/preferences.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/preferences/preferences.properties
@@ -19,7 +19,7 @@ confirmResetJunkTrainingText=¿Está seguro de querer reiniciar los datos de ent
 #### Downloads
 desktopFolderName=Escritorio
 myDownloadsFolderName=Mis descargas
-chooseAttachmentsFolderTitle=Seleccionar carpeta:
+chooseAttachmentsFolderTitle=Seleccionar carpeta
 
 #### Applications
 
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/prefs.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/prefs.properties
index ae7f4ea3889d26b429b58c501825263c6786c44c..6d33269c85635977002fa9a8f43bc5d657e3eb00 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/prefs.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/prefs.properties
@@ -84,7 +84,7 @@ forAccount=Para la cuenta "%S"
 removeFromServerTitle=Confirmar borrado de mensaje automático y permanente
 removeFromServer=Este ajuste va a eliminar permanentemente los mensajes viejos del servidor remoto Y del almacenamiento local. ¿Está seguro de seguir?
 
-confirmSyncChangesTitle=Confirme los cambios de la sincronización
+confirmSyncChangesTitle=Confirmar cambios de sincronización
 confirmSyncChanges=Se modificó el mensaje de la configuración de la sincronización. \n\n ¿Quiere guardar los cambios?
 confirmSyncChangesDiscard=Descartar
 
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/virtualFolderProperties.dtd b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/virtualFolderProperties.dtd
index 996655223d28257dd2fb66dba0c13f598ceb536c..869d4a1e86fee3022dee333442f879d42d0afac0 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/virtualFolderProperties.dtd
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/messenger/virtualFolderProperties.dtd
@@ -11,7 +11,7 @@
 <!ENTITY searchTermCaption.label "Configurar el criterio de busqueda usado para esta carpeta virtual:">
 
 <!ENTITY folderSelectionCaption.label "Seleccionar las carpetas en las que buscar:">
-<!ENTITY chooseFoldersButton.label "Elegir…">
+<!ENTITY chooseFoldersButton.label "Seleccionar…">
 <!ENTITY chooseFoldersButton.accesskey "E">
 
 <!ENTITY searchOnline.label "Buscar en línea (da resultados actualizados de carpetas IMAP y de noticias, pero aumenta el tiempo de apertura de la carpeta)">
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/passwordmgr/passwordmgr.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/passwordmgr/passwordmgr.properties
index 8e44fc5f16abe566202f28a13e4a507a89bb5580..6052009a6e7994a202cdf1ea9f1f5088c42c6350 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/passwordmgr/passwordmgr.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/passwordmgr/passwordmgr.properties
@@ -25,7 +25,7 @@ updateLoginMsgAddUsername = ¿Quiere agregar un nombre de usuario a la contrase
 # %S is the login's hostname.
 updateLoginMsg3 = ¿Actualizar ingreso para %S?
 updateLoginMsgNoUser3 = ¿Actualizar contraseña para %S?
-updateLoginMsgAddUsername2 = ¿Añadir el nombre de usuario a la contraseña guardada?
+updateLoginMsgAddUsername2 = ¿Agregar el nombre de usuario a la contraseña guardada?
 updateLoginButtonText = Actualizar
 updateLoginButtonAccessKey = U
 updateLoginButtonDeny.label = No actualizar
diff --git a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/pipnss/nsserrors.properties b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/pipnss/nsserrors.properties
index 1d1e654c9159dae77b9031f8ce994096527e51f6..3cebba8aef8e6fa48cb40452aaf3c28e03bcccf7 100644
--- a/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/pipnss/nsserrors.properties
+++ b/thunderbird-l10n/es-AR/chrome/es-AR/locale/es-AR/pipnss/nsserrors.properties
@@ -27,37 +27,37 @@ SSL_ERROR_NO_CIPHERS_SUPPORTED=No hay conjuntos de cifrado presentes y activados
 SSL_ERROR_BAD_BLOCK_PADDING=SSL recibió un registro con un relleno de bloque incorrecto.
 SSL_ERROR_RX_RECORD_TOO_LONG=SSL recibió un registro que excedió la longitud máxima permitida.
 SSL_ERROR_TX_RECORD_TOO_LONG=SSL intentó enviar un registro que excedió la longitud máxima permitida.
-SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL received a malformed Hello Request handshake message.
-SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL received a malformed Client Hello handshake message.
-SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL received a malformed Server Hello handshake message.
-SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL received a malformed Certificate handshake message.
-SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL received a malformed Server Key Exchange handshake message.
-SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL received a malformed Certificate Request handshake message.
-SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL received a malformed Server Hello Done handshake message.
-SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL received a malformed Certificate Verify handshake message.
-SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL received a malformed Client Key Exchange handshake message.
-SSL_ERROR_RX_MALFORMED_FINISHED=SSL received a malformed Finished handshake message.
-SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL received a malformed Change Cipher Spec record.
+SSL_ERROR_RX_MALFORMED_HELLO_REQUEST=SSL recibió un mensaje de protocolo de enlace de solicitud de saludo con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CLIENT_HELLO=SSL recibió un mensaje de protocolo de enlace Client Hello con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_SERVER_HELLO=SSL recibió un mensaje de protocolo de enlace Server Hello con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CERTIFICATE=SSL recibió un mensaje de reconocimiento de certificado con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_SERVER_KEY_EXCH=SSL ha recibido un mensaje de negociación Server Key Exchange de formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CERT_REQUEST=SSL recibió un mensaje de reconocimiento de certificado con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_HELLO_DONE=SSL recibió un mensaje de protocolo de enlace de Server Hello Done con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CERT_VERIFY=SSL recibió un mensaje de negociación Certificate Verify de formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH=SSL recibió un mensaje de negociación Client Key Exchange de formato incorrecto.
+SSL_ERROR_RX_MALFORMED_FINISHED=SSL recibió un mensaje de protocolo de enlace Finished con formato incorrecto.
+SSL_ERROR_RX_MALFORMED_CHANGE_CIPHER=SSL recibió un registro de especificación de cambio de cifrado con formato incorrecto.
 SSL_ERROR_RX_MALFORMED_ALERT=SSL recibió un registro de alerta con formato incorrecto.
-SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL received a malformed Handshake record.
-SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL received a malformed Application Data record.
-SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL received an unexpected Hello Request handshake message.
-SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL received an unexpected Client Hello handshake message.
-SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL received an unexpected Server Hello handshake message.
-SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL received an unexpected Certificate handshake message.
-SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL received an unexpected Server Key Exchange handshake message.
-SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL received an unexpected Certificate Request handshake message.
-SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL received an unexpected Server Hello Done handshake message.
-SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL received an unexpected Certificate Verify handshake message.
-SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL received an unexpected Client Key Exchange handshake message.
-SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL received an unexpected Finished handshake message.
-SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL received an unexpected Change Cipher Spec record.
-SSL_ERROR_RX_UNEXPECTED_ALERT=SSL received an unexpected Alert record.
-SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL received an unexpected Handshake record.
-SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL received an unexpected Application Data record.
-SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL received a record with an unknown content type.
-SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL received a handshake message with an unknown message type.
-SSL_ERROR_RX_UNKNOWN_ALERT=SSL received an alert record with an unknown alert description.
+SSL_ERROR_RX_MALFORMED_HANDSHAKE=SSL recibió un registro de negociación de formato incorrecto.
+SSL_ERROR_RX_MALFORMED_APPLICATION_DATA=SSL recibió un registro de datos de la aplicación con formato incorrecto.
+SSL_ERROR_RX_UNEXPECTED_HELLO_REQUEST=SSL recibió un mensaje de handshake Hello Request inesperado.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_HELLO=SSL recibió un mensaje de negociación Client Hello inesperado.
+SSL_ERROR_RX_UNEXPECTED_SERVER_HELLO=SSL recibió un mensaje de negociación Server Hello inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERTIFICATE=SSL recibió un mensaje de protocolo de enlace de certificado inesperado.
+SSL_ERROR_RX_UNEXPECTED_SERVER_KEY_EXCH=SSL recibió un mensaje de negociación Server Key Exchange inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERT_REQUEST=SSL recibió un mensaje de negociación Certificate Request inesperado.
+SSL_ERROR_RX_UNEXPECTED_HELLO_DONE=SSL recibió un mensaje de protocolo de enlace de Server Hello Done inesperado.
+SSL_ERROR_RX_UNEXPECTED_CERT_VERIFY=SSL recibió un mensaje de negociación Certificate Verify inesperado.
+SSL_ERROR_RX_UNEXPECTED_CLIENT_KEY_EXCH=SSL recibió un mensaje de negociación Client Key Exchange inesperado.
+SSL_ERROR_RX_UNEXPECTED_FINISHED=SSL recibió un mensaje de negociación Finished inesperado.
+SSL_ERROR_RX_UNEXPECTED_CHANGE_CIPHER=SSL recibió un registro Change Cipher Spec inesperado.
+SSL_ERROR_RX_UNEXPECTED_ALERT=SSL recibió un registro Alert inesperado.
+SSL_ERROR_RX_UNEXPECTED_HANDSHAKE=SSL recibió un registro de protocolo de enlace inesperado.
+SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA=SSL recibió un registro de datos de aplicación inesperado.
+SSL_ERROR_RX_UNKNOWN_RECORD_TYPE=SSL recibió un registro con un tipo de contenido desconocido.
+SSL_ERROR_RX_UNKNOWN_HANDSHAKE=SSL ha recibido un mensaje de negociación con un tipo de mensaje desconocido.
+SSL_ERROR_RX_UNKNOWN_ALERT=SSL recibió un registro de alerta con una descripción de alerta desconocida.
 SSL_ERROR_CLOSE_NOTIFY_ALERT=El par SSL ha cerrado esta conexión.
 SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT=SSL peer was not expecting a handshake message it received.
 SSL_ERROR_DECOMPRESSION_FAILURE_ALERT=SSL peer was unable to successfully decompress an SSL record it received.
@@ -72,7 +72,7 @@ SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL S
 SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL Client Key Exchange handshake.
 SSL_ERROR_ENCRYPTION_FAILURE=Falló el algoritmo de cifrado de lotes de datos en la suite de cifrado seleccionada.
 SSL_ERROR_DECRYPTION_FAILURE=Falló el algoritmo de descifrado de lotes de datos en la suite de cifrado seleccionada.
-SSL_ERROR_SOCKET_WRITE_FAILURE=Attempt to write encrypted data to underlying socket failed.
+SSL_ERROR_SOCKET_WRITE_FAILURE=Falló el intento de escribir datos cifrados en el socket subyacente.
 SSL_ERROR_MD5_DIGEST_FAILURE=MD5 digest function failed.
 SSL_ERROR_SHA_DIGEST_FAILURE=SHA-1 digest function failed.
 SSL_ERROR_MAC_COMPUTATION_FAILURE=MAC computation failed.
@@ -86,7 +86,7 @@ SSL_ERROR_NO_SERVER_KEY_FOR_ALG=Server has no key for the attempted key exchange
 SSL_ERROR_TOKEN_INSERTION_REMOVAL=PKCS#11 token was inserted or removed while operation was in progress.
 SSL_ERROR_TOKEN_SLOT_NOT_FOUND=No PKCS#11 token could be found to do a required operation.
 SSL_ERROR_NO_COMPRESSION_OVERLAP=No se puede comunicar de forma segura con el par: no hay algoritmo(s) de compresión comun(es).
-SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Cannot initiate another SSL handshake until current handshake is complete.
+SSL_ERROR_HANDSHAKE_NOT_COMPLETED=No se puede iniciar otra negociación SSL hasta que la actual se haya completado.
 SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Received incorrect handshakes hash values from peer.
 SSL_ERROR_CERT_KEA_MISMATCH=The certificate provided cannot be used with the selected key exchange algorithm.
 SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=No certificate authority is trusted for SSL client authentication.
@@ -183,7 +183,7 @@ SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION=El certificado contiene una extensión crí
 SEC_ERROR_OLD_CRL=New CRL is not later than the current one.
 SEC_ERROR_NO_EMAIL_CERT=Not encrypted or signed: you do not yet have an email certificate.
 SEC_ERROR_NO_RECIPIENT_CERTS_QUERY=Not encrypted: you do not have certificates for each of the recipients.
-SEC_ERROR_NOT_A_RECIPIENT=Cannot decrypt: you are not a recipient, or matching certificate and private key not found.
+SEC_ERROR_NOT_A_RECIPIENT=No se puede descrifrar: no es un destinatario o no se ha encontrado un certificado y clave privada coincidentes.
 SEC_ERROR_PKCS7_KEYALG_MISMATCH=No se puede descifrar: el algoritmo de cifrado de claves no coincide con el certificado.
 SEC_ERROR_PKCS7_BAD_SIGNATURE=Signature verification failed: no signer found, too many signers found, or improper or corrupted data.
 SEC_ERROR_UNSUPPORTED_KEYALG=Unsupported or unknown key algorithm.
@@ -278,7 +278,7 @@ SEC_ERROR_BAD_TEMPLATE=No se ha podido decodificar el dato ASN.1. La plantilla e
 SEC_ERROR_CRL_NOT_FOUND=No se encontró CRL que coincida.
 SEC_ERROR_REUSED_ISSUER_AND_SERIAL=You are attempting to import a cert with the same issuer/serial as an existing cert, but that is not the same cert.
 SEC_ERROR_BUSY=NSS no se pudo cerrar. Aún hay objetos en uso.
-SEC_ERROR_EXTRA_INPUT=DER-encoded message contained extra unused data.
+SEC_ERROR_EXTRA_INPUT=El mensaje codificado con DER contenía datos extra no usados.
 SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Curva elíptica no soportada.
 SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Unsupported elliptic curve point form.
 SEC_ERROR_UNRECOGNIZED_OID=Identificador de objeto no reconocido.
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/es-AR/localization/es-AR/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..08241aa3e40b1576a881e875dd0839a8c69e52a2
--- /dev/null
+++ b/thunderbird-l10n/es-AR/localization/es-AR/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Eliminar evento
+       *[other] Eliminar eventos
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] ¿Está seguro de que quiere eliminar este evento?
+       *[other] ¿Está seguro de que quiere eliminar estos { $count } eventos?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Eliminar tarea
+       *[other] Eliminar tareas
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] ¿Está seguro de que quiere eliminar esta tarea?
+       *[other] ¿Está seguro de que quiere eliminar estas { $count } tareas?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Eliminar elemento
+       *[other] Eliminar elementos
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] ¿Está seguro de que quiere eliminar esta lista?
+       *[other] ¿Está seguro de que quiere eliminar estas { $count } listas?
+    }
+calendar-delete-prompt-disable-message = No preguntarme de nuevo.
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/calendar/preferences.ftl b/thunderbird-l10n/es-AR/localization/es-AR/calendar/preferences.ftl
index 923dfc1d3dca632909a6c8ff6ec1a41ebc704aac..4c3115b2daf04af932d6c94d09cb81c365f46176 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/calendar/preferences.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Editar eventos y tareas en una pestaña en lugar de una ventana de diálogo.
     .accesskey = t
+prompt-delete-label =
+    .label = Preguntar antes de eliminar eventos y tareas.
+    .accesskey = V
 accessibility-legend = Accesibilidad
 accessibility-colors-label =
     .label = Optimizar colores para accesibilidad
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/devtools/client/tooltips.ftl b/thunderbird-l10n/es-AR/localization/es-AR/devtools/client/tooltips.ftl
index 0a56e8f48c64be3a6e5fa93157fc0a038f6ab043..578503e9eaa2e7c5acdc5cbf23fc3298da9845ad 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/devtools/client/tooltips.ftl
@@ -45,8 +45,8 @@ inactive-css-not-grid-container-fix = Intente agregar <strong>display:grid</stro
 inactive-css-not-flex-item-fix-2 = Pruebe agregar <strong>display:flex</strong> o <strong>display:inline-flex</strong> al padre del elemento. { learn-more }
 inactive-css-not-flex-container-fix = Intente agregar <strong>display:flex</strong> o <strong>display:inline-flex</strong>. { learn-more }
 inactive-css-not-inline-or-tablecell-fix = Intente agregar <strong>display:inline</strong> o <strong>display:table-cell</strong>. { learn-more }
-inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Pruebe a añadir <strong>display:inline-block</strong> o <strong>display:block</strong>. { learn-more }
-inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Pruebe a añadir <strong>display:inline-block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Pruebe agregar <strong>display:inline-block</strong> o <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Pruebe agregar <strong>display:inline-block</strong>. { learn-more }
 inactive-css-not-display-block-on-floated-fix = Intente eliminar <strong>flotante</strong> o agregue<strong> display:block </strong>. { learn-more }
 inactive-css-position-property-on-unpositioned-box-fix = Intente establecer la propiedad de<strong> posición </strong> en algo más que <strong>la estática </strong>. { learn-more }
 inactive-text-overflow-when-no-overflow-fix = Intente agregar <strong>overflow:hidden</strong>. { learn-more }
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/accountcreation/accountSetup.ftl
index 1b93d6ffbe998eaf2f2d87aefb22e91b14ec7aaa..1a34800d4a71a37eed3db15d3dff4e5e92544896 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Configuración de cuenta
 ## Header
 
 account-setup-title = Configurar una dirección de correo electrónico existente
-
 account-setup-description =
     Para utilizar su dirección de correo electrónico actual, complete sus credenciales. <br/>
     { -brand-product-name } buscará automáticamente una configuración de servidor recomendada y que funcione.
-
 account-setup-secondary-description = { -brand-product-name } buscará automáticamente la configuración de servidor recomendada y que funcione.
-
 account-setup-success-title = Cuenta creada correctamente
-
 account-setup-success-description = Ahora puede usar esta cuenta con { -brand-short-name }.
-
 account-setup-success-secondary-description = Puede mejorar la experiencia conectando servicios relacionados y configurando los ajustes de cuenta avanzados.
 
 ## Form fields
 
 account-setup-name-label = Nombre completo
     .accesskey = N
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Juan Pérez
-
 account-setup-name-info-icon =
     .title = Su nombre, como se mostrará al resto
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = Dirección de correo electrónico
     .accesskey = e
-
 account-setup-email-input =
     .placeholder = juan.perez@example.com
-
 account-setup-email-info-icon =
     .title = Dirección de correo electrónico existente
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Contraseña
     .accesskey = o
     .title = Opcional, solo se usará para validar el nombre de usuario
-
 account-provisioner-button = Obtener una nueva dirección de correo electrónico
     .accesskey = b
-
 account-setup-password-toggle =
     .title = Mostrar/ocultar contraseña
-
+account-setup-password-toggle-show =
+    .title = Mostrar la contraseña en texto sin cifrar
+account-setup-password-toggle-hide =
+    .title = Ocultar la contraseña
 account-setup-remember-password = Recordar contraseña
     .accesskey = n
-
 account-setup-exchange-label = Nombre de usuario
     .accesskey = d
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = DOMINIO\nombredeusuario
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Inicio de sesión de dominio
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Cancelar
     .accesskey = a
-
 account-setup-button-manual-config = Configurar manualmente
     .accesskey = m
-
 account-setup-button-stop = Detener
     .accesskey = t
-
 account-setup-button-retest = Re-verificar
     .accesskey = v
-
 account-setup-button-continue = Continuar
     .accesskey = C
-
 account-setup-button-done = Listo
     .accesskey = o
 
 ## Notifications
 
 account-setup-looking-up-settings = Buscando configuración…
-
 account-setup-looking-up-settings-guess = Buscando configuración: Intentando nombres de servidor comunes…
-
 account-setup-looking-up-settings-half-manual = Buscando configuración: Sondeando servidor...
-
 account-setup-looking-up-disk = Buscando configuración: Instalación de { -brand-short-name }…
-
 account-setup-looking-up-isp = Buscando configuración: Proveedor de correo electrónico…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Buscando configuración: Base de datos de ISP de Mozilla…
-
 account-setup-looking-up-mx = Buscando configuración: dominio de correo entrante…
-
 account-setup-looking-up-exchange = Buscando configuración: Servidor Exchange…
-
 account-setup-checking-password = Verificando contraseña…
-
 account-setup-installing-addon = Descargando e instalando complemento…
-
 account-setup-success-half-manual = Se encontraron las siguientes configuraciones al sondear el servidor dado:
-
 account-setup-success-guess = Configuración encontrada probando nombres de servidor comunes.
-
 account-setup-success-guess-offline = Está trabajando sin conexión. Se adivinaron algunos parámetros pero necesitará ingresar la configuración correcta.
-
 account-setup-success-password = Contraseña correcta
-
 account-setup-success-addon = El complemento se instaló correctamente
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Configuración encontrada en la base de datos de ISP de Mozilla.
-
 account-setup-success-settings-disk = Configuración encontrada en la instalación de { -brand-short-name }.
-
 account-setup-success-settings-isp = Configuración encontrada en el proveedor de correo electrónico.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Configuración encontrada para un servidor de Microsoft Exchange.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Configuración encontrada para un serv
 
 account-setup-step1-image =
     .title = Configuración inicial
-
 account-setup-step2-image =
     .title = Cargando…
-
 account-setup-step3-image =
     .title = Configuración encontrada
-
 account-setup-step4-image =
     .title = Error de conexión
-
 account-setup-step5-image =
     .title = Cuenta creada
-
 account-setup-privacy-footnote2 = Sus credenciales solo se almacenarán localmente en su computadora.
-
 account-setup-selection-help = ¿No está seguro de qué seleccionar?
-
 account-setup-selection-error = ¿Necesita ayuda?
-
 account-setup-success-help = ¿No está seguro de cómo continuar?
-
 account-setup-documentation-help = Documentación de instalación
-
 account-setup-forum-help = Foro de soporte
-
 account-setup-privacy-help = Política de privacidad
-
 account-setup-getting-started = Comenzar
 
 ## Results area
@@ -177,41 +126,25 @@ account-setup-results-area-title =
         [one] Configuración disponible
        *[other] Configuraciones disponibles
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Mantener las carpetas y correos electrónicos sincronizados en el servidor
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Mantener las carpetas y correos electrónicos en su computadora
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Usar el servidor de Microsoft Exchange o los servicios en la nube de Office365
-
 account-setup-incoming-title = Entrante
-
 account-setup-outgoing-title = Saliente
-
 account-setup-username-title = Nombre de usuario
-
 account-setup-exchange-title = Servidor
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Sin cifrar
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Usar el servidor saliente SMTP existente
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -221,81 +154,54 @@ account-setup-result-username-different = Entrante: { $incoming }, saliente: { $
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Falló la autenticación. O las credenciales introducidas son incorrectas o se requiere un nombre de usuario separado para iniciar sesión. Este nombre de usuario suele ser el inicio de sesión en el dominio de Windows con o sin el dominio (por ejemplo juanperez o AD\\juanperez)
-
 account-setup-credentials-wrong = Falló la autenticación. Verifique el nombre de usuario y la contraseña
-
 account-setup-find-settings-failed = { -brand-short-name } no pudo encontrar la configuración de la cuenta de correo electrónico
-
 account-setup-exchange-config-unverifiable = No se pudo verificar la configuración. Si su nombre de usuario y contraseña son correctos, es probable que el administrador del servidor haya deshabilitado la configuración seleccionada para su cuenta. Intente seleccionar otro protocolo.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Configuración del servidor
-
 account-setup-incoming-server-legend = Servidor entrante
-
 account-setup-protocol-label = Protocolo:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Host
-
 account-setup-port-label = Puerto:
     .title = Establecer el número del puerto en 0 para la detección automática
-
 account-setup-auto-description = { -brand-short-name } intentará detectar automáticamente los campos que se dejan en blanco.
-
 account-setup-ssl-label = Seguridad de la conexión:
-
 account-setup-outgoing-server-legend = Servidor saliente
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Autodetectar
-
 ssl-no-authentication-option = Sin autenticación
-
 ssl-cleartext-password-option = Contraseña normal
-
 ssl-encrypted-password-option = Contraseña cifrada
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Ninguno
-
 account-setup-auth-label = Método de autenticación:
-
 account-setup-username-label = Nombre de usuario:
-
 account-setup-advanced-setup-button = Configuración avanzada
     .accesskey = a
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = ¡Advertencia!
-
 account-setup-insecure-incoming-title = Configuración entrante:
-
 account-setup-insecure-outgoing-title = Configuración saliente:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> no usa cifrado.
-
 account-setup-warning-cleartext-details = Los servidores de correo inseguros no usan conexiones cifradas para proteger sus contraseñas e información privada. Al conectarse a este servidor podría estar exponiendo sus contraseñas e información privada.
-
 account-setup-insecure-server-checkbox = Entiendo los riesgos
     .accesskey = i
-
 account-setup-insecure-description = { -brand-short-name } puede permitirle acceder a su correo utilizando las configuraciones proporcionadas. Sin embargo, debe comunicarse con su administrador o proveedor de correo electrónico con respecto a estas conexiones incorrectas. Consulte las <a data-l10n-name="thunderbird-faq-link"> preguntas frecuentes sobre Thunderbird </a> para obtener más información.
-
 insecure-dialog-cancel-button = Cambiar la configuración
     .accesskey = o
-
 insecure-dialog-confirm-button = Confirmar
     .accesskey = C
 
@@ -304,51 +210,45 @@ insecure-dialog-confirm-button = Confirmar
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } encontró la información de configuración de su cuenta en { $domain }. ¿QUiere continuar y enviar sus credenciales?
-
 exchange-dialog-confirm-button = Iniciar sesión
-
 exchange-dialog-cancel-button = Cancelar
 
+## Dismiss account creation dialog
+
+exit-dialog-title = No se configuró ninguna cuenta de correo electrónico
+exit-dialog-description = ¿Está seguro de que quiere cancelar el proceso de configuración? { -brand-short-name } aún se puede usar sin una cuenta de correo electrónico, pero muchas funciones no estarán disponibles.
+account-setup-no-account-checkbox = Usar { -brand-short-name } sin una cuenta de correo electrónico
+    .accesskey = U
+exit-dialog-cancel-button = Continuar la instalación
+    .accesskey = C
+exit-dialog-confirm-button = Salir de la instalación
+    .accesskey = E
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Error creando cuenta
-
 account-setup-error-server-exists = El servidor de entrada ya existe.
-
 account-setup-confirm-advanced-title = Confirmar configuración avanzada
-
 account-setup-confirm-advanced-description = Este diálogo se cerrará y se creará una cuenta con la configuración actual, aún cuando la configuración sea incorrecta. ¿Quiere continuar?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Instalar
-
 account-setup-addon-install-intro = Un complemento de terceros puede permitirle acceder a su cuenta de correo electrónico en este servidor:
-
 account-setup-addon-no-protocol = Este servidor de correo desafortunadamente no soporta protocolos abiertos. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Configuración de la cuenta
-
 account-setup-encryption-button = Cifrado de punta a punta
-
 account-setup-signature-button = Agregar una firma
-
 account-setup-dictionaries-button = Descargar diccionarios
-
 account-setup-address-book-carddav-button = Conectar a una libreta de direcciones CardDAV
-
 account-setup-address-book-ldap-button = Conectar a un libreta de direcciones LDAP
-
 account-setup-calendar-button = Conectar a un calendario remoto
-
 account-setup-linked-services-title = Conecte sus servicios vinculados
-
 account-setup-linked-services-description = { -brand-short-name } detectó otros servicios vinculados a su cuenta de correo electrónico.
-
 account-setup-no-linked-description = Configure otros servicios para aprovechar al máximo su experiencia con { -brand-short-name }.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -356,7 +256,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name } encontró una libreta de direcciones vinculada a su cuenta de correo electrónico.
        *[other] { -brand-short-name } encontró { $count } libretas de direcciones vinculadas a su cuenta de correo electrónico.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -364,62 +263,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } encontró una libreta de direcciones vinculada a su cuenta de correo electrónico.
        *[other] { -brand-short-name } encontró { $count } libretas de direcciones vinculadas a su cuenta de correo electrónico.
     }
-
 account-setup-button-finish = Finalizar
     .accesskey = F
-
 account-setup-looking-up-address-books = Buscando libretas de direcciones...
-
 account-setup-looking-up-calendars = Buscando calendarios...
-
 account-setup-address-books-button = Libretas de direcciones
-
 account-setup-calendars-button = Calendarios
-
 account-setup-connect-link = Conectar
-
 account-setup-existing-address-book = Conectada
     .title = La libreta de direcciones ya está conectada
-
 account-setup-existing-calendar = Conectado
     .title = El calendario ya está conectado
-
 account-setup-connect-all-calendars = Conectar todos los calendarios
-
 account-setup-connect-all-address-books = Conectar todas las libretas de direcciones
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Conectar el calendario
-
 calendar-dialog-cancel-button = Cancelar
     .accesskey = C
-
 calendar-dialog-confirm-button = Conectar
     .accesskey = n
-
 account-setup-calendar-name-label = Nombre
-
 account-setup-calendar-name-input =
     .placeholder = Mi calendario
-
 account-setup-calendar-color-label = Color
-
 account-setup-calendar-refresh-label = Actualizar
-
 account-setup-calendar-refresh-manual = A mano
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Cada minuto
        *[other] Cada { $count } minutos
     }
-
 account-setup-calendar-read-only = Sólo lectura
     .accesskey = R
-
 account-setup-calendar-show-reminders = Mostrar recordatorios
     .accesskey = S
-
 account-setup-calendar-offline-support = Ayuda sin conexión
     .accesskey = O
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/addressbook/aboutAddressBook.ftl
index 3ed4378bf7645fd9f9eabb10137cce316359fb47..f21ab7512750a224faefad3db1753073da03f4d3 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Todas las libretas de direcciones
-
 about-addressbook-books-context-properties =
     .label = Propiedades
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Eliminar
 about-addressbook-books-context-remove =
     .label = Eliminar
-
 about-addressbook-confirm-delete-book-title = Borrar libreta de direcciones
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Buscar { $name }
 about-addressbook-search-all =
     .placeholder = Buscar en todas las libretas de direcciones
-
 about-addressbook-sort-button =
     .title = Cambiar el orden de la lista
-
 about-addressbook-name-format-display =
     .label = Nombre para mostrar
 about-addressbook-name-format-firstlast =
     .label = El primero al final
 about-addressbook-name-format-lastfirst =
     .label = El último al principio
-
 about-addressbook-sort-name-ascending =
     .label = Ordenar por nombre (A>Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Ordenar por dirección de correo electrónico (A>Z)
 about-addressbook-sort-email-descending =
     .label = Ordenar por dirección de correo electrónico (Z>A)
-
+about-addressbook-cards-context-write =
+    .label = Redactar
 about-addressbook-confirm-delete-mixed-title = Borar contactos y listas
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Editar
 about-addressbook-cancel-edit-contact-button = Cancelar
 about-addressbook-save-edit-contact-button = Guardar
-
 about-addressbook-details-email-addresses-header = Direcciones de correo electrónico
 about-addressbook-details-phone-numbers-header = Números de teléfono
 about-addressbook-details-home-address-header = Dirección personal
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/importDialog.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/importDialog.ftl
index a7d281da73d4d95da6532a32e990fc0d716864d6..5e1f448a3994c9f1e0190d1f1b37364ef3724c8a 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/importDialog.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Importar el correo desde un directorio de perfil de Thunderbird.
-import-select-profile-dir-or-zip = Seleccionar un directorio de perfil o un directorio de perfil comprimido
+import-from-thunderbird-zip =
+    .label = Thunderbird (copia de seguridad del perfil exportada; archivo zip de menos de 2GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (carpeta de perfil)
+    .accesskey = T
 import-select-profile-zip = Seleccionar un directorio comprimido de perfil
+import-select-profile-dir = Seleccionar un directorio de perfiles
+zip-file-too-big-title = Archivo zip demasiado grande
+zip-file-too-big-message = El archivo zip seleccionado tiene más de 2GB. Primero extráigalo y luego impórtelo de la carpeta extraída.
+wizardpage-failed =
+    .label = Importación fallida
+wizardpage-failed-message = La importación falló inesperadamente, puede haber más información disponible en la consola de errores.
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/messengercompose/messengercompose.ftl
index 869133ceb2f90e4427d1961fdaa403296195b23d..e2a2f0dcfc6f4ad396531604eb83285c9a641298 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Agregar adjunto…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Agregar adjunto…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Archivo(s)…
     .accesskey = A
@@ -154,12 +158,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Mostrar { bcc-compose-address-row-label.value } Campo { bcc-compose-show-address-row-menuitem.acceltext }
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Los destinatarios de { $count } en Para y Cc pueden ver la dirección de los demás. Puede evitar revelar destinatarios usando Cco en su lugar.
+to-address-row-label =
+    .value = Para
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Campo para
+    .accesskey = p
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Para
+    .accesskey = P
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Para
+    .title = Mostrar a campo ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Campo Cc
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Mostrar campo Cc ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Cco
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Campo Cco
+    .accesskey = o
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Cco
+    .accesskey = o
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Cco
+    .title = Mostrar campo Cco ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Otros campos de dirección a mostrar
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Su mensaje tiene un destinatario público, Puede evitar  revelar destinatarios usando Cco en su lugar
+       *[other] Los destinatarios de { $count } en Para y Cc pueden ver la dirección de los demás. Puede evitar revelar destinatarios usando Cco en su lugar.
+    }
 many-public-recipients-bcc =
     .label = Usar Cco En Su Lugar
     .accesskey = U
 many-public-recipients-ignore =
     .label = Mantener públicos a los destinatarios
     .accesskey = p
+many-public-recipients-prompt-title = Demasiados destinatarios públicos
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Su mensaje tiene un destinatario público. Esto puede ser un problema de privacidad. Puede evitar revelar destinatarios moviéndolos de A/Cc a Bcc en su lugar.
+       *[other] Su mensaje tiene { $count } destinatarios públicos, que podrán ver las direcciones de los otros. Esto puede ser un problema de privacidad. Puede evitar revelar destinatarios moviéndolos de A/Cc a Bcc en su lugar.
+    }
+many-public-recipients-prompt-cancel = Cancelar envío
+many-public-recipients-prompt-send = Enviar de todas formas
 
 ## Notifications
 
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/policies/policies-descriptions.ftl
index 922611aba425961c79bb173bd4bafbe67583e4a7..6ffb8f566656a6f8437a4495860cd4c35bfb2727 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/policies/policies-descriptions.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/policies/policies-descriptions.ftl
@@ -81,7 +81,7 @@ policy-PromptForDownloadLocation = Preguntar dónde guardar los archivos al desc
 policy-Proxy = Configurar opciones de proxy.
 policy-RequestedLocales = Establezca la lista de localizaciones solicitadas para la aplicación ordenadas por preferencia.
 policy-SanitizeOnShutdown2 = Borrar datos de navegación al cerrar.
-policy-SearchEngines = Configure los ajustes del buscador. Esta política solo está disponible en la versión Extended Support Release (ESR).
+policy-SearchEngines = Configurar los ajustes del buscador. Esta política solo está disponible en la versión Extended Support Release (ESR).
 policy-SearchSuggestEnabled = Habilitar o deshabilitar las sugerencias de búsqueda.
 # For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
 policy-SecurityDevices = Instalar módulos PKCS #11.
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/connection.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/connection.ftl
index f56ce39161542d20f8deb659acf5aa86f3db9c7e..c752cc1ee2fa51c9367759bdd7d551f61265b733 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/connection.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/connection.ftl
@@ -4,20 +4,16 @@
 
 connection-dns-over-https-url-resolver = Usar proveedor
     .accesskey = r
-
 # Variables:
 #   $name (String) - Display name or URL for the DNS over HTTPS provider
 connection-dns-over-https-url-item-default =
     .label = { $name } (Predeterminada)
     .tooltiptext = Usar URL predeterminada para resolver DNS sobre HTTPS
-
 connection-dns-over-https-url-custom =
     .label = Personalizada
     .accesskey = z
     .tooltiptext = Ingresar URL preferida para resolver DNS sobre HTTPS
-
 connection-dns-over-https-custom-label = Personalizada
-
 connection-dialog-window =
     .title = Opciones de conexión
     .style =
@@ -25,93 +21,69 @@ connection-dialog-window =
             [macos] width: 44em !important
            *[other] width: 49em !important
         }
-
 connection-disable-extension =
     .label = Deshabilitar extensión
-
 connection-proxy-legend = Configurar proxies para acceder a Internet
-
 proxy-type-no =
     .label = Sin proxy
     .accesskey = y
-
 proxy-type-wpad =
     .label = Detectar automáticamente la configuración del proxy para esta red
     .accesskey = D
-
 proxy-type-system =
     .label = Usar la configuración de proxy del sistema
     .accesskey = U
-
 proxy-type-manual =
     .label = Configuración manual de proxy:
     .accesskey = m
-
 proxy-http-label =
     .value = Proxy HTTP:
     .accesskey = h
-
 http-port-label =
     .value = Puerto:
     .accesskey = p
-
 proxy-http-sharing =
     .label = Use este proxy también para FTP y HTTPS
     .accesskey = x
-
 proxy-https-label =
     .value = Proxy HTTPS:
     .accesskey = S
-
 ssl-port-label =
     .value = Puerto:
     .accesskey = o
-
 proxy-socks-label =
     .value = Servidor SOCKS:
     .accesskey = c
-
 socks-port-label =
     .value = Puerto:
     .accesskey = t
-
 proxy-socks4-label =
     .label = SOCKS v4
     .accesskey = k
-
 proxy-socks5-label =
     .label = SOCKS v5
     .accesskey = v
-
 proxy-type-auto =
     .label = URL de configuración automática de proxy:
     .accesskey = a
-
 proxy-reload-label =
     .label = Recargar
     .accesskey = R
-
 no-proxy-label =
     .value = Sin proxy para:
     .accesskey = n
-
 no-proxy-example = Ejemplo: .mozilla.org, .net.ar, 192.168.1.0/24
-
 # Note: Do not translate localhost, 127.0.0.1 and ::1.
-no-proxy-localhost-label = Las conexiones a localhost, 127.0.0.1 y ::1 nunca pasan pro proxy.
-
+no-proxy-localhost-label = Las conexiones a localhost, 127.0.0.1 y ::1 nunca pasan por proxy.
 # Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
 connection-proxy-noproxy-localhost-desc-2 = Las conexiones a localhost, 127.0.0.1 y ::1 nunca pasan por proxy.
-
 proxy-password-prompt =
     .label = No pedir autenticación si la contraseña está guardada
     .accesskey = i
     .tooltiptext = Esta opción autentica silenciosamente a los proxys cuand se han gardado credenciales para ellos. Se pedirá si falla la autenticación.
-
 proxy-remote-dns =
     .label = Proxy DNS al usar SOCKS v5
     .accesskey = d
-
 proxy-enable-doh =
     .label = Habilitar DNS por sobre HTTPS
     .accesskey = b
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/preferences.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/preferences.ftl
index f5bbc5fe56b6845b4af6f9841ed9318b24bc17ce..e796ab80fb2cb732e40ff9fdde600fb5b4e961f3 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/preferences.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/preferences/preferences.ftl
@@ -36,7 +36,7 @@ general-reading-and-display-header = Lectura y visualización
 general-updates-header = Actualizaciones
 general-network-and-diskspace-header = Red y espacio en el disco
 general-indexing-label = Indexación
-composition-category-header = Composición
+composition-category-header = Redacción
 composition-attachments-header = Adjuntos
 composition-spelling-title = Ortografía
 compose-html-style-title = Estilo HTML
@@ -470,8 +470,8 @@ edit-directories-label =
     .label = Editar directorios…
     .accesskey = E
 email-picker-label =
-    .label = Añadir automáticamente las direcciones de correo salientes a mi:
-    .accesskey = s
+    .label = Agregar automáticamente las direcciones de correo salientes a mi:
+    .accesskey = A
 default-directory-label =
     .value = Directorio de inicio predeterminado en la ventana de la libreta de direcciones:
     .accesskey = s
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/messenger/troubleshootMode.ftl b/thunderbird-l10n/es-AR/localization/es-AR/messenger/troubleshootMode.ftl
index 199dc7817687a0c917c58d83641cd42a67cda6ce..de7d9d17a8cc00adea91205846603d40134c1d97 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/messenger/troubleshootMode.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/messenger/troubleshootMode.ftl
@@ -5,27 +5,20 @@
 troubleshoot-mode-window =
     .title = Modo de resolución de problemas de { -brand-short-name }
     .style = width: 37em;
-
 troubleshoot-mode-description = Usar este modo especial de { -brand-short-name } para diagnosticar problemas. Sus complementos y personalizaciones serán deshabilitadas temporalmente.
-
 troubleshoot-mode-description2 = Puede hacer permanentes algunos o todos estos cambios:
-
 troubleshoot-mode-disable-addons =
     .label = Deshabilitar todos los complementos
     .accesskey = D
-
 troubleshoot-mode-reset-toolbars =
     .label = Reiniciar barras de herramientas y controles
     .accesskey = R
-
 troubleshoot-mode-change-and-restart =
     .label = Hacer cambios y reiniciar
     .accesskey = M
-
 troubleshoot-mode-continue =
     .label = Continuar en el modo de resolución de problemas
     .accesskey = C
-
 troubleshoot-mode-quit =
     .label =
         { PLATFORM() ->
@@ -34,6 +27,6 @@ troubleshoot-mode-quit =
         }
     .accesskey =
         { PLATFORM() ->
-            [windows] x
-           *[other] O
+            [windows] S
+           *[other] S
         }
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/about/aboutAddons.ftl
index 7dc6923c80ca7ea0e434d8a0a019068ccdd10367..44fa0eec15882129d5b48349852fd1bbccfeaa22 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/about/aboutAddons.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/about/aboutAddons.ftl
@@ -4,37 +4,26 @@
 
 addons-window =
     .title = Administrador de complementos
-
 addons-page-title = Administrador de complementos
-
 search-header =
     .placeholder = Buscar en addons.mozilla.org
     .searchbuttonlabel = Buscar
-
 search-header-shortcut =
     .key = f
-
 list-empty-get-extensions-message = Obtener extensiones y temas en <a data-l10n-name="get-extensions">{ $domain }</a>
-
 list-empty-installed =
     .value = No tiene instalado ningún complemento de este tipo
-
 list-empty-available-updates =
     .value = No se encontraron actualizaciones
-
 list-empty-recent-updates =
     .value = No hubo actualizaciones recientes de ningún complemento
-
 list-empty-find-updates =
     .label = Buscar actualizaciones
-
 list-empty-button =
     .label = Conocer más sobre complementos
-
 help-button = Ayuda sobre complementos
 sidebar-help-button-title =
     .title = Ayuda sobre complementos
-
 preferences =
     { PLATFORM() ->
         [windows] Opciones de { -brand-short-name }
@@ -46,25 +35,19 @@ sidebar-preferences-button-title =
             [windows] Opciones de { -brand-short-name }
            *[other] Preferencias de { -brand-short-name }
         }
-
 addons-settings-button = Preferencias de { -brand-short-name }
 sidebar-settings-button-title =
     .title = Preferencias de { -brand-short-name }
-
 show-unsigned-extensions-button =
     .label = Algunos complementos no pudieron ser verificados
-
 show-all-extensions-button =
     .label = Mostrar todos los complementos
-
 cmd-show-details =
     .label = Mostrar más información
     .accesskey = s
-
 cmd-find-updates =
     .label = Buscar actualizaciones
     .accesskey = B
-
 cmd-preferences =
     .label =
         { PLATFORM() ->
@@ -76,88 +59,65 @@ cmd-preferences =
             [windows] O
            *[other] P
         }
-
 cmd-enable-theme =
     .label = Usar tema
     .accesskey = U
-
 cmd-disable-theme =
     .label = Dejar de usar tema
     .accesskey = u
-
 cmd-install-addon =
     .label = Instalar
     .accesskey = I
-
 cmd-contribute =
     .label = Contribuir
     .accesskey = C
     .tooltiptext = Contribuir al desarrollo de este complemento
-
 detail-version =
     .label = Versión
-
 detail-last-updated =
     .label = Última actualización
-
 detail-contributions-description = El programador de este complemento pide que lo ayuden a mantener su desarrollo continuo mediante una pequeña contribución.
-
 detail-contributions-button = Contribuir
     .title = Contribuir con el desarrollo de este complemento
     .accesskey = C
-
 detail-update-type =
     .value = Actualización automática
-
 detail-update-default =
     .label = Predeterminadas
     .tooltiptext = Instalar actualizaciones automáticas sólo si es la acción predeterminada
-
 detail-update-automatic =
     .label = Sí
     .tooltiptext = Instalar actualizaciones automáticamente
-
 detail-update-manual =
     .label = No
     .tooltiptext = No instalar actualizaciones automáticamente
-
 # Used as a description for the option to allow or block an add-on in private windows.
 detail-private-browsing-label = Ejecutar en ventanas privadas
-
 # Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest.  This
 # cannot be overridden by the user.
 detail-private-disallowed-label = No permitido en ventanas privadas
 detail-private-disallowed-description2 = Esta extensión no se ejecuta en navegación privada. <a data-l10n-name="learn-more">Conocer más</a>
-
 # Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
 detail-private-required-label = Requiere acceso a ventanas privadas
 detail-private-required-description2 = Esta extensión tiene acceso a las actividades en línea mientras se está en navegación privada. <a data-l10n-name="learn-more">Conocer más</a>
-
 detail-private-browsing-on =
     .label = Permitir
     .tooltiptext = Habilitar en navegación privada
-
 detail-private-browsing-off =
     .label = No permitir
     .tooltiptext = Deshabilitar en navegación privada
-
 detail-home =
     .label = Sitio web
-
 detail-home-value =
     .value = { detail-home.label }
-
 detail-repository =
     .label = Perfil del complemento
-
 detail-repository-value =
     .value = { detail-repository.label }
-
 detail-check-for-updates =
     .label = Buscar actualizaciones
     .accesskey = B
     .tooltiptext = Buscar actualizaciones para este complemento
-
 detail-show-preferences =
     .label =
         { PLATFORM() ->
@@ -174,36 +134,24 @@ detail-show-preferences =
             [windows] Cambiar las opciones para este complemento
            *[other] Cambiar las preferencias para este complemento
         }
-
 detail-rating =
     .value = Puntuación
-
 addon-restart-now =
     .label = Reiniciar ahora
-
 disabled-unsigned-heading =
     .value = Se deshabilitaron algunos complementos
-
 disabled-unsigned-description = Los siguientes complementos no fueron verificados para usar en { -brand-short-name }. Puede <label data-l10n-name="find-addons">buscar reemplazos</label> o pedir al desarrollador que los haga verificar.
-
 disabled-unsigned-learn-more = Conocer más sobre nuestros esfuerzos para ayudar a mantenerlo seguro mientras está en línea.
-
 disabled-unsigned-devinfo = Los desarrolladores interesados en conseguir que sus complementos sean verificados pueden continuar leyendo nuestro <label data-l10n-name="learn-more">manual</label>.
-
 plugin-deprecation-description = ¿Falta algo? Algunos plugins ya no son compatibles con { -brand-short-name }. <label data-l10n-name="learn-more">Conocer más.</label>
-
 legacy-warning-show-legacy = Mostrar complementos heredados
-
 legacy-extensions =
     .value = Complementos heredados
-
 legacy-extensions-description = Estos complementos no cumplen los estándares actuales de { -brand-short-name } por lo que se desactivaron. <label data-l10n-name="legacy-learn-more">Conocer sobre los cambios en los complementos</label>
-
 private-browsing-description2 =
     { -brand-short-name } está cambiando la forma en la que funcionan los complementos en la navegación privada. Cualquier nuevo complemento que agregue a
     { -brand-short-name } no se ejecutará de forma predeterminada en las ventanas privadas. A menos que lo permita en la configuración, el complemento no funcionará en la navegación privada, y no tendrá acceso a sus actividades en línea. Hicimos este cambio para mantener privada su navegación privada.
     <label data-l10n-name = "private-browsing-learn-more"> Aprenda cómo administrar la configuración del complemento. </label>
-
 addon-category-discover = Recomendaciones
 addon-category-discover-title =
     .title = Recomendaciones
@@ -239,7 +187,6 @@ extensions-warning-update-security = La verificación de actualizaciones de segu
 extensions-warning-update-security-button = Habilitar
     .title = Habilitar la verificación de las actualizaciones de seguridad
 
-
 ## Strings connected to add-on updates
 
 addon-updates-check-for-updates = Buscar actualizaciones
@@ -276,7 +223,7 @@ addon-updates-manual-updates-found = Ver las actualizaciones disponibles
 addon-install-from-file = Instalar complemento desde archivo…
     .accesskey = I
 addon-install-from-file-dialog-title = Selecionar complemento para instalar
-addon-install-from-file-filter-name = Complemento
+addon-install-from-file-filter-name = Complementos
 addon-open-about-debugging = Depurar complementos
     .accesskey = D
 
@@ -285,43 +232,34 @@ addon-open-about-debugging = Depurar complementos
 # This is displayed in the page options menu
 addon-manage-extensions-shortcuts = Administrar los accesos directos del complemento
     .accesskey = S
-
 shortcuts-no-addons = No tiene ningún complemento habilitado.
 shortcuts-no-commands = Los siguientes complementos no tienen atajos de teclado:
 shortcuts-input =
     .placeholder = Escriba un atajo
-
 shortcuts-browserAction2 = Activar botón de barra de herramientas
 shortcuts-pageAction = Activar Acción de la página
 shortcuts-sidebarAction = Alternar la barra lateral
-
 shortcuts-modifier-mac = Incluir Ctrl, Alt o ⌘
 shortcuts-modifier-other = Incluir Ctrl o Alt
 shortcuts-invalid = Combinación inválida
 shortcuts-letter = Escriba una letra
 shortcuts-system = No se puede anular un atajo de { -brand-short-name }
-
 # String displayed in warning label when there is a duplicate shortcut
 shortcuts-duplicate = Acceso directo duplicado
-
 # String displayed when a keyboard shortcut is already assigned to more than one add-on
 # Variables:
 #   $shortcut (string) - Shortcut string for the add-on
 shortcuts-duplicate-warning-message = El { $shortcut } se está usando como atajo en más de un caso. Los accesos directos duplicados pueden causar un comportamiento inesperado.
-
 # String displayed when a keyboard shortcut is already used by another add-on
 # Variables:
 #   $addon (string) - Name of the add-on
 shortcuts-exists = Ya está en uso por { $addon }
-
 shortcuts-card-expand-button =
     { $numberToShow ->
         [one] Mostrar { $numberToShow } más
        *[other] Mostrar { $numberToShow } más
     }
-
 shortcuts-card-collapse-button = Mostrar menos
-
 header-back-button =
     .title = Retroceder
 
@@ -335,13 +273,10 @@ discopane-intro =
     cambiar la apariencia del navegador y mucho más. Suelen ser terceros los que generalmente desarrollan estos pequeños programas de software. Le ofrecemos una selección de { -brand-product-name }
     <a data-l10n-name="learn-more-trigger">recomendados</a> en seguridad, rendimiento
     y funcionalidad excepcionales.
-
 # Notice to make user aware that the recommendations are personalized.
 discopane-notice-recommendations = Algunas de estas recomendaciones son personalizadas. Se basan en otros complementos que tiene instalados, preferencias de su perfil y estadísticas de uso.
 discopane-notice-learn-more = Conocer más
-
 privacy-policy = Política de privacidad
-
 # Refers to the author of an add-on, shown below the name of the add-on.
 # Variables:
 #   $author (string) - The name of the add-on developer.
@@ -356,7 +291,6 @@ install-theme-button = Instalar tema
 # the detailed add-on view is opened, from where the add-on can be managed.
 manage-addon-button = Administrar
 find-more-addons = Buscar más complementos
-
 # This is a label for the button to open the "more options" menu, it is only
 # used for screen readers.
 addon-options-button =
@@ -382,48 +316,36 @@ preferences-addon-button =
 details-addon-button = Detalles
 release-notes-addon-button = Notas de la versión
 permissions-addon-button = Permisos
-
 extension-enabled-heading = Habilitado
 extension-disabled-heading = Deshabilitado
-
 theme-enabled-heading = Habilitado
 theme-disabled-heading = Deshabilitado
-
 plugin-enabled-heading = Habilitado
 plugin-disabled-heading = Deshabilitado
-
 dictionary-enabled-heading = Habilitado
 dictionary-disabled-heading = Deshabilitado
-
 locale-enabled-heading = Habilitado
 locale-disabled-heading = Deshabilitado
-
 ask-to-activate-button = Preguntar para activar
-
 always-activate-button = Activar siempre
 never-activate-button = No activar nunca
-
 addon-detail-author-label = Autor
 addon-detail-version-label = Versión
 addon-detail-last-updated-label = Última actualización
 addon-detail-homepage-label = Página de inicio
 addon-detail-rating-label = Clasificación
-
 # Message for add-ons with a staged pending update.
 install-postponed-message = Esta extensión se actualizará cuando se reinicie { -brand-short-name }.
 install-postponed-button = Actualizar ahora
-
 # The average rating that the add-on has received.
 # Variables:
 #   $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
 five-star-rating =
     .title = Calificación de { NUMBER($rating, maximumFractionDigits: 1) } sobre 5
-
 # This string is used to show that an add-on is disabled.
 # Variables:
 #   $name (string) - The name of the add-on
 addon-name-disabled = { $name } (deshabilitado)
-
 # The number of reviews that an add-on has received on AMO.
 # Variables:
 #   $numberOfReviews (number) - The number of reviews received
@@ -439,14 +361,12 @@ addon-detail-reviews-link =
 #   $addon (string) - Name of the add-on
 pending-uninstall-description = Se eliminó <span data-l10n-name="addon-name">{ $addon }</span>.
 pending-uninstall-undo-button = Deshacer
-
 addon-detail-updates-label = Permitir las actualizaciones automáticas
 addon-detail-updates-radio-default = Predeterminado
 addon-detail-updates-radio-on = Activado
 addon-detail-updates-radio-off = Desactivar
 addon-detail-update-check-label = Verificar si hay actualizaciones
 install-update-button = Actualizar
-
 # This is the tooltip text for the private browsing badge in about:addons. The
 # badge is the private browsing icon included next to the extension's name.
 addon-badge-private-browsing-allowed2 =
@@ -462,7 +382,6 @@ addon-detail-private-browsing-disallow = No permitir
 addon-badge-recommended2 =
     .title = { -brand-product-name } solo recomienda extensiones que cumplan con nuestros estándares de seguridad y rendimiento
     .aria-label = { addon-badge-recommended2.title }
-
 # We hard code "Mozilla" in the string below because the extensions are built
 # by Mozilla and we don't want forks to display "by Fork".
 addon-badge-line3 =
@@ -476,19 +395,14 @@ addon-badge-verified2 =
 
 available-updates-heading = Actualizaciones disponibles
 recent-updates-heading = Actualizaciones recientes
-
 release-notes-loading = Cargando…
 release-notes-error = Lo sentimos, pero hubo un error al cargar las notas de la versión.
-
 addon-permissions-empty = Este complemento no requiere ningún permiso.
-
 addon-permissions-required = Permisos necesarios para la funcionalidad principal:
 addon-permissions-optional = Permisos opcionales para funciones adicionales:
 addon-permissions-learnmore = Conocer más sobre permisos
-
 recommended-extensions-heading = Complementos recomendados
 recommended-themes-heading = Temas recomendados
-
 # A recommendation for the Firefox Color theme shown at the bottom of the theme
 # list view. The "Firefox Color" name itself should not be translated.
 recommended-theme-1 = ¿Se siente creativo? <a data-l10n-name="link"> Cree su propio tema con Firefox Color. </a>
@@ -503,10 +417,8 @@ locale-heading = Administrar idiomas
 updates-heading = Administrar sus actualizaciones
 discover-heading = Personalice su { -brand-short-name }
 shortcuts-heading = Administrar Accesos directos de extensión
-
 default-heading-search-label = Buscar más complementos
 addons-heading-search-input =
     .placeholder = Buscar en addons.mozilla.org
-
 addon-page-options-button =
     .title = Herramientas para todos los complementos
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/handlerDialog.ftl b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/handlerDialog.ftl
index 12b2c1daf46f481e5432d79977c36408a8982492..dbae7e6d02e318936f2d3bf80a948e1b65f2461b 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/handlerDialog.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/handlerDialog.ftl
@@ -10,15 +10,10 @@
 ##  $appName - Name of the application that will be opened.
 
 permission-dialog-description = ¿Permitir que este sitio abra el enlace { $scheme }?
-
 permission-dialog-description-file = ¿Permitir que este archivo abra el enlace { $scheme }?
-
 permission-dialog-description-host = ¿Permitir que { $host } abra el enlace { $scheme }?
-
 permission-dialog-description-app = ¿Permitir que este sitio abra el enlace { $scheme } con { $appName }?
-
 permission-dialog-description-host-app = ¿Permitir que { $host } abra el enlace { $scheme } con { $appName }?
-
 permission-dialog-description-file-app = ¿Permitir que este archivo abra el enlace { $scheme } con { $appName }?
 
 ## Please keep the emphasis around the hostname and scheme (ie the
@@ -26,7 +21,6 @@ permission-dialog-description-file-app = ¿Permitir que este archivo abra el enl
 ## of the sentence as your language's grammar allows.
 
 permission-dialog-remember = Siempre permitir que <strong> { $host } </strong> abra enlaces <strong> { $scheme }</strong>
-
 permission-dialog-remember-file = Usar siempre este archivo para abrir enlaces <strong>{ $scheme }</strong>
 
 ##
@@ -34,13 +28,10 @@ permission-dialog-remember-file = Usar siempre este archivo para abrir enlaces <
 permission-dialog-btn-open-link =
     .label = Abrir enlace
     .accessKey = e
-
 permission-dialog-btn-choose-app =
     .label = Elegir aplicación
     .accessKey = a
-
 permission-dialog-unset-description = Tendrás que elegir una aplicación.
-
 permission-dialog-set-change-app-link = Elegir una aplicación diferente.
 
 ## Chooser dialog
@@ -50,27 +41,21 @@ permission-dialog-set-change-app-link = Elegir una aplicación diferente.
 chooser-window =
     .title = Elegir aplicación
     .style = min-width: 26em; min-height: 26em;
-
 chooser-dialog =
     .buttonlabelaccept = Abrir enlace
     .buttonaccesskeyaccept = e
-
 chooser-dialog-description = Eligir una aplicación para abrir el enlace { $scheme }.
-
 # Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
 chooser-dialog-remember = Usar siempre esta aplicación para abrir enlaces <strong>{ $scheme }</strong>
-
 chooser-dialog-remember-extra =
     { PLATFORM() ->
         [windows] Esto se puede cambiar en las opciones de { -brand-short-name }.
        *[other] Esto se puede cambiar en las preferencias de { -brand-short-name }.
     }
-
 choose-other-app-description = Elegir otra aplicación
 choose-app-btn =
-    .label = Elegir…
-    .accessKey = E
+    .label = Seleccionar…
+    .accessKey = e
 choose-other-app-window-title = Otra aplicación…
-
 # Displayed under the name of a protocol handler in the Launch Application dialog.
 choose-dialog-privatebrowsing-disabled = Deshabilitado en ventanas privadas
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..c737091d2dada3b6b9a9d8905e06bd9f2e0454ed
--- /dev/null
+++ b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = ¿Terminar de instalar { -brand-short-name }?
+prompt-to-install-message = Complete esta instalación en un solo paso para ayudar a mantener { -brand-short-name } actualizado y prevenir la pérdida de datos. { -brand-short-name } se añadirá a su carpeta de aplicaciones y Dock.
+prompt-to-install-yes-button = Instalar
+prompt-to-install-no-button = No instalar
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Falló la instalación de { -brand-short-name }.
+install-failed-message = { -brand-short-name } no se instaló pero seguirá ejecutándose.
diff --git a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/textActions.ftl b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/textActions.ftl
index d523b69220fec11dfd083defdb103cbf4828b54d..2f0401f7cd65ee9177ea7a51b6fd24d37fb0be3c 100644
--- a/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/es-AR/localization/es-AR/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Deshacer
     .accesskey = D
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Rehacer
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cortar
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copiar
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Pegar
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Borrar
     .accesskey = B
-
 text-action-select-all =
     .label = Seleccionar todo
     .accesskey = a
-
 text-action-select-all-shortcut =
     .key = a
-
 text-action-spell-no-suggestions =
     .label = No hay sugerencias de ortografía
+text-action-spell-add-to-dictionary =
+    .label = Agregar al diccionario
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Deshacer agregar al diccionario
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Verificar ortografía
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Agregar diccionarios…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Idiomas
+    .accesskey = I
diff --git a/thunderbird-l10n/es-AR/manifest.json b/thunderbird-l10n/es-AR/manifest.json
index ef46f6e1e839c5ae45eccbc02fcd7978b7132fd9..bbfcaa18b083b584ce3f5325f2080de2d8e2d016 100644
--- a/thunderbird-l10n/es-AR/manifest.json
+++ b/thunderbird-l10n/es-AR/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Español (AR) Language Pack",
   "description": "Language pack for Thunderbird for es-AR",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "es-AR": {
-      "version": "20210818050741",
+      "version": "20210831213621",
       "chrome_resources": {
         "alerts": "chrome/es-AR/locale/es-AR/alerts/",
         "autoconfig": "chrome/es-AR/locale/es-AR/autoconfig/",
diff --git a/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/es-ES/localization/es-ES/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/es-ES/manifest.json b/thunderbird-l10n/es-ES/manifest.json
index 23c57d50cf8a66c0356a9feeabcedfe2a7945b75..b9d46719469a307df5bba9f6174185d38e94592b 100644
--- a/thunderbird-l10n/es-ES/manifest.json
+++ b/thunderbird-l10n/es-ES/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Español (España) Language Pack",
   "description": "Language pack for Thunderbird for es-ES",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "es-ES": {
-      "version": "20210813135800",
+      "version": "20210831120749",
       "chrome_resources": {
         "alerts": "chrome/es-ES/locale/es-ES/alerts/",
         "autoconfig": "chrome/es-ES/locale/es-ES/autoconfig/",
diff --git a/thunderbird-l10n/et/chrome/et/locale/et/global/commonDialogs.properties b/thunderbird-l10n/et/chrome/et/locale/et/global/commonDialogs.properties
index f3f1b893a8267256c25f7099243e5a8d3c780ba1..2f7998a6f5f6725898ae95720d9d4050a52f48ef 100644
--- a/thunderbird-l10n/et/chrome/et/locale/et/global/commonDialogs.properties
+++ b/thunderbird-l10n/et/chrome/et/locale/et/global/commonDialogs.properties
@@ -6,6 +6,9 @@ Alert=Hoiatus
 Confirm=Kinnitus
 ConfirmCheck=Kinnitus
 Prompt=Teade
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Autentimine - %S
+# LOCALIZATION NOTE - %S is brandFullName
 Select=Vali
 OK=Sobib
 Cancel=Loobu
@@ -17,6 +20,9 @@ DontSave=Ä&ra salvesta
 ScriptDlgGenericHeading=[JavaScripti rakendus]
 ScriptDlgHeading=Veebileht aadressil %S ütleb:
 ScriptDialogLabel=Keela sellel lehel lisanduvate dialoogide loomine
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
 ScriptDialogPreventTitle=Dialoogide eelistuse kinnitamine
 # LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
 # %1 is an untrusted string provided by a remote server. It could try to
@@ -28,9 +34,10 @@ EnterLoginForProxy3=Puhverserver aadressil %2$S nõuab kasutajanime ja parooli.
 EnterUserPasswordFor2=%1$S nõuab kasutajanime ja parooli.
 EnterUserPasswordForCrossOrigin2=%1$S nõuab kasutajanime ja parooli. HOIATUS: sinu parooli ei saadeta saidile, mida praegu külastad!
 EnterPasswordFor=Sisesta parool %1$S jaoks lehel %2$S
+# %S is the username for which a password is requested.
+# %S is the domain of the site being accessed.
+SignIn=Logi sisse
 
-# LOCALIZATION NOTE - %S is brandFullName
-PromptUsernameAndPassword3=Authentication Required - %S
 # LOCALIZATION NOTE - %S is brandFullName
 PromptPassword3=Password Required - %S
 ScriptDlgNullPrincipalHeading=This page says:
@@ -44,4 +51,3 @@ EnterCredentials=This site is asking you to sign in.
 EnterPasswordOnlyFor=This site is asking you to sign in as %S.
 # %S is the domain of the site being accessed.
 EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
-SignIn=Sign in
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-context-menus.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-editable-item.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-print.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/et/localization/et/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/et/localization/et/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/et/localization/et/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/accountManager.ftl b/thunderbird-l10n/et/localization/et/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/et/localization/et/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/et/localization/et/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/et/localization/et/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/et/localization/et/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/chat.ftl b/thunderbird-l10n/et/localization/et/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/et/localization/et/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/exportDialog.ftl b/thunderbird-l10n/et/localization/et/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/importDialog.ftl b/thunderbird-l10n/et/localization/et/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/preferences/am-copies.ftl b/thunderbird-l10n/et/localization/et/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/messenger/troubleshootMode.ftl b/thunderbird-l10n/et/localization/et/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/localization/et/toolkit/global/commonDialog.ftl b/thunderbird-l10n/et/localization/et/toolkit/global/commonDialog.ftl
index 5501cd4b33059e6f31162797665117fa3e42ad57..f8012ca3c1e7c9b060ed4b43cdda7bdac61e39b6 100644
--- a/thunderbird-l10n/et/localization/et/toolkit/global/commonDialog.ftl
+++ b/thunderbird-l10n/et/localization/et/toolkit/global/commonDialog.ftl
@@ -2,3 +2,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/.
 
+common-dialog-username =
+    .value = Kasutajanimi
+common-dialog-password =
+    .value = Parool
diff --git a/thunderbird-l10n/et/localization/et/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/et/localization/et/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/et/localization/et/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/et/manifest.json b/thunderbird-l10n/et/manifest.json
index f7d1a5d46286d19db7b6a268ed9cc9cbed3db168..faf706da93e44efe5f6fa5d703cff3115a5f081c 100644
--- a/thunderbird-l10n/et/manifest.json
+++ b/thunderbird-l10n/et/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Estonian Language Pack",
   "description": "Language pack for Thunderbird for et",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "et": {
-      "version": "20210813135827",
+      "version": "20210831120815",
       "chrome_resources": {
         "alerts": "chrome/et/locale/et/alerts/",
         "autoconfig": "chrome/et/locale/et/autoconfig/",
diff --git a/thunderbird-l10n/eu/localization/eu/messenger/importDialog.ftl b/thunderbird-l10n/eu/localization/eu/messenger/importDialog.ftl
index cbf3240119302d5d23b00b863f025b66c569562f..2c14be4874fb3d591e9f803182b4fa8b2d866e2f 100644
--- a/thunderbird-l10n/eu/localization/eu/messenger/importDialog.ftl
+++ b/thunderbird-l10n/eu/localization/eu/messenger/importDialog.ftl
@@ -6,4 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Inportatu postak Thunderbird profil karpeta batetik
+import-from-thunderbird-zip =
+    .label = Thunderbird (Esportatutako profil babeskopia; zip fitxategia 2GB baino txikiagoa)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profil karpeta)
+    .accesskey = T
 import-select-profile-zip = Hautatu zip formatuko profil karpeta
+import-select-profile-dir = Hautatu profil karpeta
+zip-file-too-big-title = Zip fitxategia handiegia
+zip-file-too-big-message = Hautatutako Zip fitxategia 2GB baino handiagoa da. Mesedez, erauzi lehenengo eta gero inportatu erauzitako karpeta.
+wizardpage-failed =
+    .label = Inportazioak huts egin du
+wizardpage-failed-message = Huts egin du inportazioak ustekabean, informazio gehiago eskuragarri errore kontsolan.
diff --git a/thunderbird-l10n/eu/localization/eu/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/eu/localization/eu/messenger/messengercompose/messengercompose.ftl
index 908e3ec4f9df1522492df6e481b37f180ece5c00..4dec05192a009a0dba51fc7939e26183830835b3 100644
--- a/thunderbird-l10n/eu/localization/eu/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/eu/localization/eu/messenger/messengercompose/messengercompose.ftl
@@ -113,6 +113,13 @@ button-return-receipt =
     .label = Hartu-agiria
     .tooltiptext = Eskatu hartu-agiria mezu honetarako
 
+# Encryption
+
+message-to-be-signed-icon =
+    .alt = Sinatu mezua
+message-to-be-encrypted-icon =
+    .alt = Zifratu mezua
+
 # Addressing Area
 
 to-compose-address-row-label =
@@ -147,12 +154,68 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Erakutsi { bcc-compose-address-row-label.value } eremua { bcc-compose-show-address-row-menuitem.acceltext }
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Nori eta Ccko { $count } hartzailek besteen helbideak ikusiko dituzte. Hartzaileak erakustea saihestu dezakezu Bcc erabiliz.
+to-address-row-label =
+    .value = Nori
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Nori eremua
+    .accesskey = N
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Nori
+    .accesskey = N
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Nori
+    .title = Erakutsi eremua ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Cc eremua
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Erakutsi Cc eremua ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Bcc
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Bcc eremua
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Bcc
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+    .title = Erakutsi Bcc eremua ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Beste helbide eremuak erakusteko
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Zure mezuak hartzaile publikoa du. Hartzaileak erakustea saihestu dezakezu Bcc erabiliz.
+       *[other] Nori eta Ccko { $count } hartzailek besteen helbideak ikusiko dituzte. Hartzaileak erakustea saihestu dezakezu Bcc erabiliz.
+    }
 many-public-recipients-bcc =
     .label = Erabili Bcc horren ordez
     .accesskey = B
 many-public-recipients-ignore =
     .label = Mantendu hartzaileak ikusgai
     .accesskey = i
+many-public-recipients-prompt-title = Hartzaile publiko gehiegi
+many-public-recipients-prompt-cancel = Utzi bidalketa
+many-public-recipients-prompt-send = Jarraitu hala ere
 
 ## Notifications
 
diff --git a/thunderbird-l10n/eu/localization/eu/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/eu/localization/eu/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/eu/localization/eu/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/eu/manifest.json b/thunderbird-l10n/eu/manifest.json
index 0b2a41757a28f74ad0f8d457e7ffe4180a055fbb..4f0dc1e6437119afca5bd478ce9b0e7b2ed7f33f 100644
--- a/thunderbird-l10n/eu/manifest.json
+++ b/thunderbird-l10n/eu/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Basque Language Pack",
   "description": "Language pack for Thunderbird for eu",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "eu": {
-      "version": "20210813135841",
+      "version": "20210831120828",
       "chrome_resources": {
         "alerts": "chrome/eu/locale/eu/alerts/",
         "autoconfig": "chrome/eu/locale/eu/autoconfig/",
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties
index bfcc70fd7b1b49d48a6d4bc8399aada81944b467..d9b8782c2bba0836e13956aba91482cbd4aaf6e1 100644
--- a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties
index c71c668f3e71e2b35fc29e9cd60cbe5b8bd8ee5f..bcd4cf161d5a1236442a579972e656e9e7f40a14 100644
--- a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=The "coords" attribute of the <area shape="poly">
 TablePartRelPosWarning=Relative positioning of table rows and row groups is now supported. This site may need to be updated because it may depend on this feature having no effect.
 ScrollLinkedEffectFound2=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
 
+ScrollLinkedEffectFound3=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
diff --git a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties
index 7ea2f07ca9ae374929f676cd797ee28243855cea..ce73105472ee67bd5d8be3ae16271a5cf7c3db6b 100644
--- a/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties
+++ b/thunderbird-l10n/fi/chrome/fi/locale/fi/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: Length is over “%1$S” byt
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: Length of origin within referrer is over “%1$S” bytes limit - removing referrer with origin “%2$S”.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Less restricted policies, including ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ and ‘unsafe-url’, will be ignored soon for the cross-site request: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Ignoring the less restricted referrer policy “%1$S” for the cross-site request: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Päivitetään suojaamaton pyyntö “%1$S” käyttä
 HTTPSOnlyNoUpgradeException = Ei päivitetä suojaamatonta pyyntöä “%1$S”, koska se on vapautettu.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Suojaamattoman pyynnön “%1$S” päivittäminen epäonnistui. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
 
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl b/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl
index cc2bb7a5f39eb6355e60e605eb87cae8cb0108f9..0920b1d998584bceec8ce829d7576a9b518099ad 100644
--- a/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl
+++ b/thunderbird-l10n/fi/localization/fi/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = Tuo postit Thunderbird-profiilihakemistosta.
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (viety profiilivarmuuskopio; zip-tiedosto on pienempi kuin 2 Gt)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profiilikansio)
+    .accesskey = T
 import-select-profile-zip = Valitse zip-pakattu profiilihakemisto
+import-select-profile-dir = Valitse profiilihakemisto
+zip-file-too-big-title = Zip-tiedosto on liian suuri
+zip-file-too-big-message = Valittu zip-tiedosto on suurempi kuin 2 Gt. Pura tiedosto ensin ja tuo sen jälkeen puretusta kansiosta.
+wizardpage-failed =
+    .label = Tuonti epäonnistui
+wizardpage-failed-message = Tuonti epäonnistui odottamatta, lisätietoja on mahdollisesti saatavissa virhekonsolissa.
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl
index c601903428633e1cd00ad1a42c8ab50257e5c3d9..11d1cc6e912503fc41ebc1d35d75b4cc31946358 100644
--- a/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/fi/localization/fi/messenger/messengercompose/messengercompose.ftl
@@ -7,7 +7,6 @@
 
 #   $type (String) - the type of the addressing row
 remove-address-row-type = Poista { $type } -kenttä
-
 #   $type (String) - the type of the addressing row
 #   $count (Number) - the number of address pills currently present in the addressing row
 address-input-type-aria-label =
@@ -16,7 +15,6 @@ address-input-type-aria-label =
         [one] { $type } ja yksi osoite, valitse se vasemmalla nuolinäppäimellä.
        *[other] { $type } ja { $count } osoitetta, valitse ne vasemmalla nuolinäppäimellä.
     }
-
 #   $email (String) - the email address
 #   $count (Number) - the number of address pills currently present in the addressing row
 pill-aria-label =
@@ -24,25 +22,19 @@ pill-aria-label =
         [one] { $email }: muokkaa painamalla Enter, poista painamalla Delete.
        *[other] { $email }, 1/{ $count }: muokkaa painamalla Enter, poista painamalla Delete.
     }
-
 #   $email (String) - the email address
 pill-tooltip-invalid-address = { $email } ei ole kelvollinen sähköpostiosoite
-
 #   $email (String) - the email address
 pill-tooltip-not-in-address-book = { $email } ei ole osoitekirjassasi
-
 pill-action-edit =
     .label = Muokkaa osoitetta
     .accesskey = M
-
 pill-action-move-to =
     .label = Siirä vastaanottajaksi
     .accesskey = S
-
 pill-action-move-cc =
     .label = Siirrä kopion vastaanottajaksi
     .accesskey = k
-
 pill-action-move-bcc =
     .label = Siirrä piilokopion vastaanottajaksi
     .accesskey = p
@@ -54,35 +46,27 @@ ctrl-cmd-shift-pretty-prefix =
         [macos] ⇧ ⌘{ " " }
        *[other] Ctrl+Shift+
     }
-
 trigger-attachment-picker-key = L
 toggle-attachment-pane-key = M
-
 menuitem-toggle-attachment-pane =
     .label = Liite-paneeli
     .accesskey = L
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
-
 toolbar-button-add-attachment =
     .label = Liitä
     .tooltiptext = Lisää liite ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
-
 add-attachment-notification-reminder =
     .label = Lisää liite…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
-
 menuitem-attach-files =
     .label = Tiedosto(t)…
     .accesskey = T
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
-
 context-menuitem-attach-files =
     .label = Liitä tiedosto(t)…
     .accesskey = i
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
 
-
-
 #   $count (Number) - the number of attachments in the attachment bucket
 attachments-placeholder-tooltip =
     .tooltiptext =
@@ -90,23 +74,18 @@ attachments-placeholder-tooltip =
             [1] { $count } liite
            *[other] { $count } liitettä
         }
-
 #   { attachment-bucket-count.accesskey } - Do not localize this message.
 key-toggle-attachment-pane =
     .key = { attachment-bucket-count.accesskey }
-
 expand-attachment-pane-tooltip =
     .tooltiptext = Näytä Liite-paneeli ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 collapse-attachment-pane-tooltip =
     .tooltiptext = Piilota Liite-paneeli ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 drop-file-label-attachment =
     { $count ->
         [one] Lisää liitteenä
        *[other] Lisää liitteinä
     }
-
 drop-file-label-inline =
     { $count ->
         [one] Liitä sisennettynä
@@ -123,20 +102,28 @@ move-attachment-right-panel-button =
     .label = Siirrä oikealle
 move-attachment-last-panel-button =
     .label = Siirrä viimeiseksi
-
 button-return-receipt =
     .label = Vastaanottokuittaus
     .tooltiptext = Pyydä tämän viestin vastaanottokuittausta
 
+# Encryption
+
+message-to-be-signed-icon =
+    .alt = Allekirjoita viesti
+message-to-be-encrypted-icon =
+    .alt = Salaa viesti
+
 # Addressing Area
 
 many-public-recipients-bcc =
     .label = Käytä sen sijaan piilokopiota (Bcc)
     .accesskey = K
-
 many-public-recipients-ignore =
     .label = Pidä vastaanottajat julkisina
     .accesskey = P
+many-public-recipients-prompt-title = Liian monta julkista vastaanottajaa
+many-public-recipients-prompt-cancel = Peruuta lähettäminen
+many-public-recipients-prompt-send = Lähetä silti
 
 ## Notifications
 
@@ -144,5 +131,6 @@ encrypted-bcc-ignore-button = Ymmärretty
 
 ## Editing
 
+
 # Tools
 
diff --git a/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl b/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl
index 4613dcf4404123a7b3fd9e41c2d1240d68763a90..21a128015001bf9137f3b807349dc72553df187a 100644
--- a/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/fi/localization/fi/messenger/otr/otrUI.ftl
@@ -11,6 +11,7 @@ auth-cancelAccessKey = P
 auth-error = Yhteyshenkilön henkilöllisyyden varmistamisessa tapahtui virhe.
 auth-success = Yhteyshenkilösi henkilöllisyyden varmistaminen onnistui.
 auth-successThem = Yhteyshenkilösi on vahvistanut henkilöllisyytesi. Voit myös varmistaa heidän henkilöllisyytensä esittämällä oman kysymyksesi.
+auth-success-them = Yhteyshenkilösi on vahvistanut henkilöllisyytesi. Voit myös varmistaa heidän henkilöllisyytensä esittämällä oman kysymyksesi.
 auth-fail = Yhteyshenkilösi henkilöllisyyden varmistaminen epäonnistui.
 auth-waiting = Odotetaan yhteyshenkilön varmistuksen suorittamista ...
 finger-verify = Varmista
@@ -67,6 +68,7 @@ verify-title = Varmista yhteyshenkilösi henkilöllisyys
 error-title = Virhe
 success-title = Päästä päähän -salaus
 successThem-title = Varmista yhteyshenkilösi henkilöllisyys
+success-them-title = Varmista yhteyshenkilösi henkilöllisyys
 fail-title = Ei voida varmistaa
 waiting-title = Varmistuspyyntö lähetettiin
 # Do not translate 'OTR' (name of an encryption protocol)
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl
index b390cfc05c78652a296b1f4655d27a38420ea521..a129ca36858b293a91a55988648e7ab8192996c0 100644
--- a/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/about/aboutNetworking.ftl
@@ -6,9 +6,9 @@ about-networking-title = About Networking
 about-networking-http = HTTP
 about-networking-sockets = Sockets
 about-networking-dns = DNS
-about-networking-dns-clear-cache-button = Tyhjennä DNS-välimuisti
+about-networking-dns-clear-cache-button = Clear DNS Cache
 about-networking-dns-trr-url = DoH URL
-about-networking-dns-suffix = DNS-jälkiliite
+about-networking-dns-suffix = DNS suffix
 about-networking-websockets = WebSockets
 about-networking-refresh = Refresh
 about-networking-auto-refresh = Autorefresh every 3 seconds
@@ -20,6 +20,7 @@ about-networking-active = Active
 about-networking-idle = Idle
 about-networking-host = Host
 about-networking-tcp = TCP
+about-networking-type = Type
 about-networking-sent = Sent
 about-networking-received = Received
 about-networking-family = Family
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl b/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl
index 50e724ef9b06dbdd9b185347f3229d06c4a50f1c..afe06a14915fbcfd18010a50a09602311d92a012 100644
--- a/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/fi/localization/fi/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Kumoa
     .accesskey = m
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Tee uudelleen
     .accesskey = T
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Leikkaa
     .accesskey = L
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopioi
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Liitä
     .accesskey = i
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Poista
     .accesskey = o
-
 text-action-select-all =
     .label = Valitse kaikki
     .accesskey = V
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Ei oikeinkirjoituksen ehdotuksia
+text-action-spell-add-to-dictionary =
+    .label = Lisää sanastoon
+    .accesskey = L
+text-action-spell-undo-add-to-dictionary =
+    .label = Kumoa sanastoon lisääminen
+    .accesskey = K
+text-action-spell-check-toggle =
+    .label = Oikolue
+    .accesskey = O
+text-action-spell-add-dictionaries =
+    .label = Lisää sanastoja…
+    .accesskey = ä
+text-action-spell-dictionaries =
+    .label = Kielet
+    .accesskey = K
diff --git a/thunderbird-l10n/fi/manifest.json b/thunderbird-l10n/fi/manifest.json
index 5edbfc1c67ef6d85cff6bc7e8597e8df8fba481d..44f82a44a05487ea8cc73e28b7f03d638ee4db88 100644
--- a/thunderbird-l10n/fi/manifest.json
+++ b/thunderbird-l10n/fi/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Finnish Language Pack",
   "description": "Language pack for Thunderbird for fi",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "fi": {
-      "version": "20210816102637",
+      "version": "20210831205221",
       "chrome_resources": {
         "alerts": "chrome/fi/locale/fi/alerts/",
         "autoconfig": "chrome/fi/locale/fi/autoconfig/",
diff --git a/thunderbird-l10n/fr/chrome/fr/locale/fr/global/layout/htmlparser.properties b/thunderbird-l10n/fr/chrome/fr/locale/fr/global/layout/htmlparser.properties
index 8b5df9d2cff7178a33a7fa71ae3c3ab5c1f08558..ac6c0401b68046892b472ca06020959de99f6c1c 100644
--- a/thunderbird-l10n/fr/chrome/fr/locale/fr/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/fr/chrome/fr/locale/fr/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Fin de fichier à l’intérieur d’un identifiant système.
 errExpectedSystemId=Identifiant système attendu mais le doctype est fermé.
 errMissingSpaceBeforeDoctypeName=Espace manquant avant le nom de doctype.
 errHyphenHyphenBang=« --! » trouvé dans un commentaire.
+errNestedComment=Présence de « <!-- » dans un commentaire. Cause probable : commentaire imbriqué (non autorisé).
 errNcrZero=Référence de caractère remplacée par zéro.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Pas d’espace entre le mot-clé « SYSTEM » du doctype et le guillemet.
 errNoSpaceBetweenPublicAndSystemIds=Pas d’espace entre les identifiants public et system du doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Éléments non fermés sur la pile.
 errEndTagDidNotMatchCurrentOpenElement=Balise fermante « %1$S » ne correspondant pas au nom de l’élément ouvert (« %2$S »).
 errEndTagViolatesNestingRules=Balise fermante « %1$S » en violation des règles d’imbrication.
 errEndWithUnclosedElements=Balise fermante « %1$S » rencontrée, mais des éléments non fermés sont présents.
+errListUnclosedStartTags=Élément ou éléments non fermés.
diff --git a/thunderbird-l10n/fr/localization/fr/calendar/preferences.ftl b/thunderbird-l10n/fr/localization/fr/calendar/preferences.ftl
index f21b51c24cc29b347a64232965adc0c5a9f594a6..ff9565478aaff62017ed87922c770abe54570ba3 100644
--- a/thunderbird-l10n/fr/localization/fr/calendar/preferences.ftl
+++ b/thunderbird-l10n/fr/localization/fr/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Modifier les évènements et les tâches dans un onglet plutôt que dans une fenêtre de dialogue.
     .accesskey = t
+prompt-delete-label =
+    .label = Demander avant de supprimer des évènements et des tâches.
+    .accesskey = D
 accessibility-legend = Accessibilité
 accessibility-colors-label =
     .label = Optimiser les couleurs pour l’accessibilité
diff --git a/thunderbird-l10n/fr/localization/fr/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/fr/localization/fr/messenger/accountcreation/accountSetup.ftl
index 60117c7bf284df9a1e47bb22a0ba51169538dbe8..415f09041a7510d1c1a35ffd3f8595c6be80a85a 100644
--- a/thunderbird-l10n/fr/localization/fr/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/fr/localization/fr/messenger/accountcreation/accountSetup.ftl
@@ -39,6 +39,10 @@ account-provisioner-button = Obtenir une nouvelle adresse électronique
     .accesskey = b
 account-setup-password-toggle =
     .title = Afficher/masquer le mot de passe
+account-setup-password-toggle-show =
+    .title = Afficher le mot de passe
+account-setup-password-toggle-hide =
+    .title = Masquer le mot de passe
 account-setup-remember-password = Retenir le mot de passe
     .accesskey = m
 account-setup-exchange-label = Votre identifiant
@@ -207,6 +211,16 @@ exchange-dialog-question = { -brand-short-name } a trouvé les informations de c
 exchange-dialog-confirm-button = Connexion
 exchange-dialog-cancel-button = Annuler
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Aucun compte de messagerie configuré
+account-setup-no-account-checkbox = Utiliser { -brand-short-name } sans compte de messagerie
+    .accesskey = s
+exit-dialog-cancel-button = Continuer la configuration
+    .accesskey = C
+exit-dialog-confirm-button = Quitter la configuration
+    .accesskey = Q
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Erreur lors de la création du compte
diff --git a/thunderbird-l10n/fr/localization/fr/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/fr/localization/fr/messenger/addressbook/aboutAddressBook.ftl
index 25efd8ae3250163c9a3860cbe549d37937ba473e..2660c71351743b468f3f08329d619341efe6aa56 100644
--- a/thunderbird-l10n/fr/localization/fr/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/fr/localization/fr/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Tous les carnets d’adresses
-
 about-addressbook-books-context-properties =
     .label = Propriétés
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Supprimer
 about-addressbook-books-context-remove =
     .label = Supprimer
-
 about-addressbook-confirm-delete-book-title = Supprimer le carnet d’adresses
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Rechercher { $name }
 about-addressbook-search-all =
     .placeholder = Rechercher dans tous les carnets d’adresses
-
 about-addressbook-sort-button =
     .title = Modifier l’ordre de la liste
-
 about-addressbook-name-format-display =
     .label = Nom à afficher
 about-addressbook-name-format-firstlast =
     .label = Prénom Nom
 about-addressbook-name-format-lastfirst =
     .label = Nom, Prénom
-
 about-addressbook-sort-name-ascending =
     .label = Trier par nom (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Trier par adresse électronique (A > Z)
 about-addressbook-sort-email-descending =
     .label = Trier par adresse électronique (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Écrire
 about-addressbook-confirm-delete-mixed-title = Supprimer des contacts et des listes
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Modifier
 about-addressbook-cancel-edit-contact-button = Annuler
 about-addressbook-save-edit-contact-button = Enregistrer
-
 about-addressbook-details-email-addresses-header = Adresses électroniques
 about-addressbook-details-phone-numbers-header = Numéros de téléphone
 about-addressbook-details-home-address-header = Adresse personnelle
diff --git a/thunderbird-l10n/fr/localization/fr/messenger/importDialog.ftl b/thunderbird-l10n/fr/localization/fr/messenger/importDialog.ftl
index 1a55132f200ec6e29b727873a86be444ed4a414a..06d25cdade206569e833f6be6574d1521472a401 100644
--- a/thunderbird-l10n/fr/localization/fr/messenger/importDialog.ftl
+++ b/thunderbird-l10n/fr/localization/fr/messenger/importDialog.ftl
@@ -6,4 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Importer le courrier d’un répertoire de profil de Thunderbird.
+import-from-thunderbird-zip =
+    .label = Thunderbird (sauvegarde de profil exporté ; fichier zip inférieur à 2 Go)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (dossier de profil)
+    .accesskey = T
 import-select-profile-zip = Sélectionnez un répertoire de profil zippé
+import-select-profile-dir = Sélectionnez un répertoire de profil
+zip-file-too-big-title = Fichier zip trop gros
+zip-file-too-big-message = La taille du fichier zip sélectionné est supérieure à 2 Go. Veuillez d’abord l’extraire, puis importer les données à partir du dossier d’extraction.
+wizardpage-failed =
+    .label = Échec de l’importation
+wizardpage-failed-message = L’importation a échoué de manière inattendue, des informations supplémentaires peuvent être disponibles dans la console d’erreurs.
diff --git a/thunderbird-l10n/fr/localization/fr/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/fr/localization/fr/messenger/messengercompose/messengercompose.ftl
index dc6798b7a0b1b1bfd346c1f735444873e706b437..3baa6fd871e627914712cdcfe70664618e974d4a 100644
--- a/thunderbird-l10n/fr/localization/fr/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/fr/localization/fr/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Ajouter une pièce jointe…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Ajouter une pièce jointe…
+    .accesskey = j
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Fichier(s)…
     .accesskey = F
@@ -153,12 +157,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Afficher le champ { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Les { $count } destinataires en « Pour » et « Copie à » verront les adresses des autres. Vous pouvez éviter de révéler les destinataires en utilisant plutôt « Copie cachée à ».
+to-address-row-label =
+    .value = Pour
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Champ Pour
+    .accesskey = P
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Pour
+    .accesskey = P
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Pour
+    .title = Afficher le champ Pour ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Copie à
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Champ Copie à
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Copie à
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Copie à
+    .title = Afficher le champ Copie à ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Copie cachée à
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Champ Copie cachée à
+    .accesskey = h
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Copie cachée à
+    .accesskey = h
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Copie cachée à
+    .title = Afficher le champ Copie cachée à ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Autres champs d’adressage à afficher
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Votre message a un destinataire public. Vous pouvez éviter de révéler les destinataires en utilisant plutôt « Copie cachée à ».
+       *[other] Les { $count } destinataires en « Pour » et « Copie à » verront les adresses des autres. Vous pouvez éviter de révéler les destinataires en utilisant plutôt « Copie cachée à ».
+    }
 many-public-recipients-bcc =
     .label = Utiliser plutôt la Copie cachée
     .accesskey = U
 many-public-recipients-ignore =
     .label = Garder les destinataires publics
     .accesskey = G
+many-public-recipients-prompt-title = Trop de destinataires publics
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Votre message a un destinataire public. Cela peut être un problème de confidentialité. Vous pouvez l’éviter en déplaçant plutôt le destinataire vers « Copie cachée à ».
+       *[other] Votre message a { $count } destinataires publics, qui pourront voir les adresses les uns des autres. Cela peut être un problème de confidentialité. Vous pouvez éviter de divulguer les destinataires en déplaçant plutôt ceux-ci vers « Copie cachée à ».
+    }
+many-public-recipients-prompt-cancel = Annuler l’envoi
+many-public-recipients-prompt-send = Envoyer quand même
 
 ## Notifications
 
diff --git a/thunderbird-l10n/fr/localization/fr/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/fr/localization/fr/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/fr/localization/fr/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/fr/localization/fr/toolkit/global/textActions.ftl b/thunderbird-l10n/fr/localization/fr/toolkit/global/textActions.ftl
index efd645abff1dcb7adcd9f8ec2055de0750b272f6..cb95b0a553508c859926be90841523ef3a654367 100644
--- a/thunderbird-l10n/fr/localization/fr/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/fr/localization/fr/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Annuler
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Rétablir
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Couper
     .accesskey = C
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copier
     .accesskey = p
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Coller
     .accesskey = o
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Supprimer
     .accesskey = s
-
 text-action-select-all =
     .label = Tout sélectionner
     .accesskey = T
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Aucune suggestion d’orthographe
+text-action-spell-add-to-dictionary =
+    .label = Ajouter au dictionnaire
+    .accesskey = j
+text-action-spell-undo-add-to-dictionary =
+    .label = Annuler l’ajout au dictionnaire
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Vérifier l’orthographe
+    .accesskey = o
+text-action-spell-add-dictionaries =
+    .label = Ajouter des dictionnaires…
+    .accesskey = d
+text-action-spell-dictionaries =
+    .label = Langues
+    .accesskey = L
diff --git a/thunderbird-l10n/fr/manifest.json b/thunderbird-l10n/fr/manifest.json
index c75e959957a43ed0902c8e2d0856a61c9da1ff1e..06a4a92dd194e50ab5292703bcd27b129880f3f7 100644
--- a/thunderbird-l10n/fr/manifest.json
+++ b/thunderbird-l10n/fr/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Français Language Pack",
   "description": "Language pack for Thunderbird for fr",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "fr": {
-      "version": "20210818091907",
+      "version": "20210831175349",
       "chrome_resources": {
         "alerts": "chrome/fr/locale/fr/alerts/",
         "autoconfig": "chrome/fr/locale/fr/autoconfig/",
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/imtooltip.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/imtooltip.properties
index c8d748d3b38b137f4b679a7f865ed204e93a4de8..1786372dbfe2c81d811c2358b119701b618ad1f6 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/imtooltip.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/imtooltip.properties
@@ -7,4 +7,6 @@ buddy.account=Account
 contact.tags=Labels
 
 otr.tag=OTR-steat
+
+encryption.tag=Fersiferingssteat
 message.status=Berjocht fersifere
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/matrix.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/matrix.properties
index 8af29bdd93287ec6654c39ec1ce16786d2f231fc..814d0955a2fac9299a7660597489d44fe6c1b5e8 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/matrix.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/chat/matrix.properties
@@ -18,7 +18,6 @@ matrix.usernameHint=Matrix-ID
 #   These are the protocol specific options shown in the account manager and
 #   account wizard windows.
 options.saveToken=Tagongstoken bewarje
-
 options.deviceDisplayName=Skermnamme fan apparaat
 options.homeserver=Server
 
@@ -37,7 +36,6 @@ connection.requestAccess=Foltôgjen fan autentikaasje
 connection.error.noSupportedFlow=Server biedt gjin kompatibele oanmeldstream.
 connection.error.authCancelled=Jo hawwe it autorisaasjeproses annulearre.
 connection.error.sessionEnded=De sesje is ôfmeld.
-
 connection.error.serverNotFound=Kin de Matrix-server foar de opjûne Matrix-account net identifisearje.
 
 # LOCALIZATION NOTE (chatRoomField.*):
@@ -215,3 +213,4 @@ message.alias.removed=%1$S hat %2$S as alternatyf adres foar dizze romte fuortsm
 #    %3$S is a comma delmited list of added addresses.
 message.alias.removedAndAdded=%1$S hat %2$S fuortsmiten en %3$S tafoege as adres foar dizze romte.
 message.spaceNotSupported=Dizze keamer is in romte, dy't net stipe wurdt.
+message.encryptionStart=Berjochten yn dit petear binne no end-to-end-fersifere.
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/toolbox.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/toolbox.properties
index 1b06627f3c77ff44a6e9eba6d31da0f9e99f5989..00c587dc3450577c00c6901db5ec9c021b2716e2 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/toolbox.properties
@@ -291,3 +291,7 @@ options.deprecationNotice=Ferâldere. Mear ynfo…
 # LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
 options.enableMultiProcessToolbox=De Multiproses-browserarkset ynskeakelje (fereasket opnij starten fan de browserarkset)
+
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+options.enableNewPerformancePanel=Nije prestaasjerecorder ynskeakelje (en dernei DevTools opnij iepenje)
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/webconsole.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/webconsole.properties
index 3558f05be3b74c54c05d00cdea9fa08e052fce65..c46e433e17b461e24cb680ec5802b8346abaaf9d 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/devtools/client/webconsole.properties
@@ -439,6 +439,12 @@ webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] It berjocht kin spit
 # in the console, for example, copy({hello: "world"}).
 webconsole.message.commands.copyValueToClipboard=String nei klamboerd kopiearre
 
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=De opdracht ‘copy’ is mislearre, fan it objekt kin gjin string makke wurde: %S
+
 # LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout/htmlparser.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout/htmlparser.properties
index 1933b012200ee26eb3da36c122f9447d3b526d84..d122825aa6b6a9336ea814664ace8efba0cbbf4f 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Ein fan bestân binnen systeemidentifikator.
 errExpectedSystemId=Systeemidentifikator ferwachte, mar it dokuminttype is sletten.
 errMissingSpaceBeforeDoctypeName=Spaasje foar namme fan dokuminttype ûntbrekt.
 errHyphenHyphenBang=‘--!’ fûn yn opmerking.
+errNestedComment=Der stiet “<!--” binnen in opmerking. Wierskynlike oarsaak: neste opmerking (net tastien).
 errNcrZero=Tekenreferinsje breidet út nei nul.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Gjin spaasje tusken it kaaiwurd ‘SYSTEM’ fan it dokuminttype en it oanhellingsteken.
 errNoSpaceBetweenPublicAndSystemIds=Gjin spaasje tusken it dokuminttype public en systeemidentifikatoren.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Net-sluten eleminten op stapel.
 errEndTagDidNotMatchCurrentOpenElement=Eintag ‘%1$S’ kaam net oerien mei de namme fan it aktuele iepene elemint (‘%2$S’).
 errEndTagViolatesNestingRules=Eintag ‘%1$S’ skeint regels foar nesten.
 errEndWithUnclosedElements=Eintag ‘%1$S’ sjoen, mar der binne net-sluten eleminten.
+errListUnclosedStartTags=Net-sluten elemint of eleminten.
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout_errors.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout_errors.properties
index 660cf1634ea86434574d3143d03f0fed3ebde767..52c846e382886db69ebea18fc3931ad675aaaaec 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout_errors.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=It ‘coords’-attribuut fan de <area shape="poly
 TablePartRelPosWarning=Relative posisjonearing fan tabelrigen en rigegroepen wurdt no stipe. Miskien moat dizze website bywurke wurde, omdat it der op rekkent dat dizze funksje net wurket.
 ScrollLinkedEffectFound2=Dizze website liket in ‘scroll-linked’ pensjonearringseffekt te brûken. Mooglik wurket dit net goed mei asynchronous panning; sjoch https://developers.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects foar fierdere details en it bydragen oan de diskusje oer relatearre ark en funksjes!
 
+ScrollLinkedEffectFound3=Dizze website liket in ‘scroll-linked’ posysjonearringseffekt te brûken. Mooglik wurket dit net goed mei asyngroane panning; sjoch https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html foar fierdere details en it bydragen oan de diskusje oer relatearre helpmiddelen en funksjes!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=Animaasje kin net op de composi
 CompositorAnimationWarningTransformIsBlockedByImportantRules=Transformearringsanimaasje kin net op de compositor útfierd wurde, omdat transformaasje-relatearre eigenskippen troch !important-rigels ûnderdrukt wurde
 CompositorAnimationWarningOpacityFrameInactive=Animaasje kin net op de compositor útfierd wurde, omdat it frame net as aktyf markearre waard foar ‘opacity’-animaasje
 CompositorAnimationWarningHasRenderingObserver=Animaasje kin net op de compositor útfierd wurde, omdat it elemint rendering observers hat (-moz-element of SVG clipping/masking)
-
 CompositorAnimationWarningHasCurrentColor=Animaasjes fan it type ‘background-color’ kinne net op de compositor útfierd wurde mei it keyframe ‘current-color’.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/security/security.properties b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/security/security.properties
index 47300f9d575c9e7e82bae0da13214d908a860d73..5d9c5167bb97db92d32787806a18303303b69cdf 100644
--- a/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/security/security.properties
+++ b/thunderbird-l10n/fy-NL/chrome/fy-NL/locale/fy-NL/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: De lingte is grutter as de li
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: De lingte fan it orizjineel yn de referrer is grutter as de limyt fan ‘%1$S’ bytes – referrer mei oarsprong ‘%2$S’ wurdt fuortsmiten.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Ferwizingsbelied: minder beheinde beliedsrigels, wêrûnder ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ en ‘unsafe-url’, wurde ynkoarten negearre foar it cross-site-fersyk: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Ferwizingsbelied: negearjen fan it minder beheinde ferwizingsbelied “%1$S” foar it cross-site-fersyk: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Der is in ûnjildige X-Frame-Options-koptekst fûn by it laden fan ‘%2$S’: ‘%1$S’ is gjin jildige rjochtline.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Unfeilige oanfraach ‘%1$S’ wurdt fernijd foar gebr
 HTTPSOnlyNoUpgradeException = Unfeilige oanfraach ‘%1$S’ wurdt net upgrade omdat it útsûndere is.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Fernijen fan ûnfeilige oanfraach ‘%1$S’ mislearre. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = It fernijen fan de ûnfeilige oanfraach ‘%S’ is mislearre. Opnij downgrade nei ‘http’.
 
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..a4630c3a995c460faa5011b85bc815e855fe48c0
--- /dev/null
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Barren fuortsmite
+       *[other] Barrens fuortsmite
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Binne jo wis dat jo dit barren fuortsmite wolle?
+       *[other] Binne jo wis dat jo dizze { $count } barrens fuortsmite wolle?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Taak fuortsmite
+       *[other] Taken fuortsmite
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Binne jo wis dat jo dizze taak fuortsmite wolle?
+       *[other] Binne jo wis dat jo dizze { $count } taken fuortsmite wolle?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Item fuortsmite
+       *[other] Items fuortsmite
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Binne jo wis dat jo dit item fuortsmite wolle?
+       *[other] Binne jo wis dat jo dizze { $count } items fuortsmite wolle?
+    }
+calendar-delete-prompt-disable-message = Dit net mear freegje.
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/preferences.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/preferences.ftl
index 3fc4945c25081593863fb53b1de3530378947f33..7e13b2a3d8d11b23a1bda1ac5888c0304f36ab57 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/preferences.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Barrens en taken bewurkje yn in ljepblêd yn stee fan yn in dialoochfinster.
     .accesskey = t
+prompt-delete-label =
+    .label = Freegje eardat barrens en taken fuort te smiten.
+    .accesskey = g
 accessibility-legend = Tagonklikheid
 accessibility-colors-label =
     .label = Kleuren optimalisearje foar tagonklikheid
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/devtools/client/tooltips.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/devtools/client/tooltips.ftl
index 0b90dc4f916715bf89944463930469354980aec0..c7209e679b8993f9b28ff16db3260eaee87888f9 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Mear ynformaasje</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin flexcontainer of gridcontainer is.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong> { $property } </strong> hat gjin effekt op dit elemint, omdat it gjin flex-container, grid-container of in container mei mear kolommen is.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin grid- of flexitem is.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin griditem is.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin gridcontainer is.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin flexitem is.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin flexcontainer is.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> hat gjin effekt op dit elemint, omdat it gjin inline of table-cell-elemint is.
-
 inactive-css-property-because-of-display = <strong>{ $property }</ strong> hat gjin effekt op dit elemint, omdat it in werjefte fan <strong>{ $display }</ strong> hat.
-
 inactive-css-not-display-block-on-floated = De wearde <strong>display</strong> is troch de engine yn <strong>block</strong> wizige, omdat it elemint <strong>floated</strong> is.
-
 inactive-css-property-is-impossible-to-override-in-visited = It is net mooglik om <strong>{ $property }</strong> te oerskriuwen fanwegen de beheining <strong>:visited</strong>.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin posisjonearre elemint is.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> hat gjin effekt op dit elemint, omdat <strong>overflow:hidden</strong> net ynsteld is.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> hat gjin effekt op dit elemint, omdat <strong>outline-style</strong> <strong>auto</strong> of <strong>none</strong> is.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> hat gjin effekt op ynterne tabeleleminten.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> hat gjin effekt op ynterne tabeleleminten, útsein op tabelsellen.
-
 inactive-css-not-table = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it gjin tabel is.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> hat gjin effekt op dit elemint omdat it net skowt.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Probearje <strong>display:grid</strong> of <strong>display:flex</strong> ta te foegjen. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Probearje <strong>display:grid</strong>, of <strong>display:flex</strong>, of <strong>colums:2</strong> ta te foegjen. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Probearje <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> of <strong>display:inline-flex</strong> ta te foegjen. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Probearje <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> of <strong>display:inline-flex</strong> oan it boppelizzende nivo fan it elemint ta te foegjen. { learn-more }
 inactive-css-not-grid-item-fix-2 = Probearje <strong>display:grid</strong> of <strong>display:inline-grid</strong> oan it boppe lizzende elemint ta te foegjen. { learn-more }
-
 inactive-css-not-grid-container-fix = Probearje <strong>display:grid</strong> of <strong>display:inline-grid</strong> ta te foegjen. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Probearje <strong>display:flex</strong> of <strong>display:inline-flex</strong> oan it boppe lizzende elemint ta te foegjen. { learn-more }
-
 inactive-css-not-flex-container-fix = Probearje <strong>display:flex</strong> of <strong>display:inline-flex</strong> ta te foegjen. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Probearje <strong>display:inline</strong> of <strong>display:table-cell</strong> ta te foegjen. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Probearje <strong>display:inline-block</ strong> of <strong>display:block</ strong> ta te foegjen. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Probearje <strong>display:inline-block</ strong> ta te foegjen. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Probearje <strong>float</strong> fuort te smiten of <strong>display:block</strong> ta te foegjen. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Probearje de eigenskip <strong>position</strong> op wat oars as <strong>static</strong> yn te stellen. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Probearje <strong>overflow:hidden</ strong> ta te foegjen. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Probearje de property <strong>display</strong> op wat oars as <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> of <strong>table-footer-group</strong> yn te stellen. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Probearje de property <strong>display</strong> op wat oars as <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> of <strong>table-footer-group</strong> yn te stellen. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Probearje de eigenskip <strong>outline-style</strong> op wat oars as <strong>auto</strong> of <strong>none</strong> yn te stellen. { learn-more }
-
 inactive-css-not-table-fix = Probearje <strong>display:flex</strong> of <strong>display:inline-table</strong> ta te foegjen. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Probearje <strong>overflow:auto</strong>, <strong>overflow:scroll</strong> of <strong>overflow:hidden</strong> ta te foegjen. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Probearje <strong>overfl
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong> { $property } </strong> wurdt net stipe yn de folgjende browsers:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> wie in eksperimintele property dy't neffens de W3C-standerts no ferâldere is. Hy wurdt net stipe yn de folgjende browsers:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> wie in eksperimintele property dy't neffens de W3C-standerts no ferâldere is.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> is ferâldere neffens W3C-standerts. It wurdt net stipe yn de folgjende browsers:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is ferâldere neffens W3C-noarmen.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> is in eksperimintele property. Hy wurdt net stipe yn de folgjende browsers:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is in eksperimintele property.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Mear ynfo</span> oer <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/accountcreation/accountSetup.ftl
index 2cf74c87beda803ece2274f15ab9e539fad8e4a3..b4e1eb28c89e764e73f145b58022d324172103d2 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Account ynstelle
 ## Header
 
 account-setup-title = Jo besteande e-mailadres ynstelle
-
 account-setup-description =
     Folje om jo aktuele e-mailadres te brûken jo oanmeldgegevens yn.<br/>
     { -brand-product-name } siket automatysk nei in wurkjende en oanrekommandearre serverkonfiguraasje.
-
 account-setup-secondary-description = { -brand-product-name } siket automatysk nei in wurkjende en oanrekommandearre serverkonfiguraasje.
-
 account-setup-success-title = Account mei sukses oanmakke
-
 account-setup-success-description = Jo kinne dizze account no brûke mei { -brand-short-name }.
-
 account-setup-success-secondary-description = Jo kinne de ûnderfining ferbetterje troch relatearre services te keppeljen en avansearre accountynstellingen te konfigurearjen.
 
 ## Form fields
 
 account-setup-name-label = Jo folsleine namme
     .accesskey = n
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = John Doe
-
 account-setup-name-info-icon =
     .title = Jo namme, as toant oan oaren
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = E-mailadres
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = john.doe@example.com
-
 account-setup-email-info-icon =
     .title = Jo besteande e-mailadres
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Wachtwurd
     .accesskey = W
     .title = Opsjoneel, wurdt allinnich brûkt om de brûkersnamme te falidearjen
-
 account-provisioner-button = Krij in nij e-mailadres
     .accesskey = K
-
 account-setup-password-toggle =
     .title = Wachtwurd toane/ferstopje
-
+account-setup-password-toggle-show =
+    .title = Wachtwurd yn platte tekst toane
+account-setup-password-toggle-hide =
+    .title = Wachtwurd ferstopje
 account-setup-remember-password = Wachtwurd ûnthâlde
     .accesskey = w
-
 account-setup-exchange-label = Jo oanmelding
     .accesskey = o
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = JODOMEIN\brûkersnamme
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Domeinbrûkersnamme
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Annulearje
     .accesskey = A
-
 account-setup-button-manual-config = Hânmjittich konfigurearje
     .accesskey = H
-
 account-setup-button-stop = Stopje
     .accesskey = S
-
 account-setup-button-retest = Opnij teste
     .accesskey = t
-
 account-setup-button-continue = Trochgean
     .accesskey = T
-
 account-setup-button-done = Dien
     .accesskey = D
 
 ## Notifications
 
 account-setup-looking-up-settings = Konfiguraasje opsykje…
-
 account-setup-looking-up-settings-guess = Konfiguraasje opsykje: algemiene servernammen probearje…
-
 account-setup-looking-up-settings-half-manual = Konfiguraasje opsykje: server sykje…
-
 account-setup-looking-up-disk = Konfiguraasje opsykje: ynstallaasje fan { -brand-short-name }…
-
 account-setup-looking-up-isp = Konfiguraasje opsykje: e-mailprovider…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Konfiguraasje opsykje: Mozilla ISP-database…
-
 account-setup-looking-up-mx = Konfiguraasje opsykje: domein foar ynkommende e-mail…
-
 account-setup-looking-up-exchange = Konfiguraasje opsykje: Exchange-server…
-
 account-setup-checking-password = Wachtwurd kontrolearje…
-
 account-setup-installing-addon = Add-on downloade en ynstallearje…
-
 account-setup-success-half-manual = De folgjende ynstellingen binne fûn troch de opjûne server te sykjen:
-
 account-setup-success-guess = Konfiguraasje fûn troch algemiene servernammen te probearjen.
-
 account-setup-success-guess-offline = Jo binne offline. Wy hawwe wat ynstellingen rieden, mar jo sille de krekte ynstellingen ynfiere moatte.
-
 account-setup-success-password = Wachtwurd oké!
-
 account-setup-success-addon = Add-on is mei sukses ynstallearre
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Konfiguraasje fûn yn Mozilla ISP-database.
-
 account-setup-success-settings-disk = Konfiguraasje fûn by ynstallaasje fan { -brand-short-name }.
-
 account-setup-success-settings-isp = Konfiguraasje fûn by e-mailprovider.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Konfiguraasje fûn foar in Microsoft Exchange-server.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Konfiguraasje fûn foar in Microsoft E
 
 account-setup-step1-image =
     .title = Inisjele konfiguraasje
-
 account-setup-step2-image =
     .title = Lade…
-
 account-setup-step3-image =
     .title = Konfiguraasje fûn
-
 account-setup-step4-image =
     .title = Ferbiningsflater
-
 account-setup-step5-image =
     .title = Account oanmakke
-
 account-setup-privacy-footnote2 = Jo oanmeldgegevens wurde allinnich lokaal op jo kompjûter bewarre.
-
 account-setup-selection-help = Net wis wat jo selektearje moatte?
-
 account-setup-selection-error = Help nedich?
-
 account-setup-success-help = Twivelje jo oer jo folgjende stappen?
-
 account-setup-documentation-help = Ynstellingsdokumintaasje
-
 account-setup-forum-help = Stipefoarum
-
 account-setup-privacy-help = Privacybelied
-
 account-setup-getting-started = Oan it wurk
 
 ## Results area
@@ -177,41 +126,25 @@ account-setup-results-area-title =
         [one] Beskikbere konfiguraasje
        *[other] Beskikbere konfiguraasjes
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Hâld jo mappen en e-mailberjochten syngronisearre op jo server
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Hâld jo mappen en e-mailberjochten op jo kompjûter
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Brûk de Microsoft Exchange-server of Office 365-cloudtsjinsten
-
 account-setup-incoming-title = Ynkommend
-
 account-setup-outgoing-title = Utgeand
-
 account-setup-username-title = Brûkersnamme
-
 account-setup-exchange-title = Server
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Gjin fersifering
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Besteande útgeande (SMTP-)server brûke
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -221,81 +154,54 @@ account-setup-result-username-different = Ynkommend: { $incoming }, útgeand: {
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Autentikaasje mislearre. Of de ynfierde gegevens binne ferkeard of der is in aparte brûkersnamme nedich om oan te melden. Dizze brûkersnamme is normaal jo Windows-domein-oanmelding mei of sûnder it domein (bygelyks janedoe of AD\\janedoe)
-
 account-setup-credentials-wrong = Autentikaasje mislearre. Kontrolearje de brûkersnamme en it wachtwurd
-
 account-setup-find-settings-failed = { -brand-short-name } koe de ynstellingen foar jo e-mailaccount net fine
-
 account-setup-exchange-config-unverifiable = Konfiguraasje koe net ferifiearre wurde. As jo brûkersnamme en wachtwurd goed binne, is it wierskynlik dat de serverbehearder de selektearre konfiguraasje foar jo account útskeakele hat. Probearje in oar protokol te selektearjen.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Serverynstellingen
-
 account-setup-incoming-server-legend = Ynkommende server
-
 account-setup-protocol-label = Protokol:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Hostnamme:
-
 account-setup-port-label = Poarte:
     .title = Stel it poartenûmer yn op 0 foar autodeteksje
-
 account-setup-auto-description = { -brand-short-name } probearret fjilden dy't leech litten binne, automatysk te detektearjen.
-
 account-setup-ssl-label = Ferbiningsbefeiliging:
-
 account-setup-outgoing-server-legend = Utgeande server
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Autodeteksje
-
 ssl-no-authentication-option = Gjin autentikaasje
-
 ssl-cleartext-password-option = Normaal wachtwurd
-
 ssl-encrypted-password-option = Fersifere wachtwurd
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Gjin
-
 account-setup-auth-label = Autentikaasjemetoade:
-
 account-setup-username-label = Brûkersnamme:
-
 account-setup-advanced-setup-button = Wiidweidige konfiguraasje
     .accesskey = W
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Warskôging!
-
 account-setup-insecure-incoming-title = Ynstellingen ynkommend:
-
 account-setup-insecure-outgoing-title = Ynstellingen útgeand:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> brûkt gjin fersifering.
-
 account-setup-warning-cleartext-details = Net-befeilige e-mailservers brûke gjin fersifere ferbiningen om jo wachtwurden en priveegegevens te beskermen. Troch ferbining te meitsjen mei dizze server is it mooglik dat jo wachtwurd en priveegegevens toand wurdt.
-
 account-setup-insecure-server-checkbox = Ik begryp de risiko's
     .accesskey = b
-
 account-setup-insecure-description = { -brand-short-name } kin jo tagong ta jo e-mail jaan mei de opjûne konfiguraasje. Jo soene echter kontakt opnimme moatte mei jo systeembehearder of e-mailprovider fanwegen dizze net-krekte ferbiningen. Sjoch de <a data-l10n-name="thunderbird-faq-link">Thunderbird-FAQ</a> foar mear ynformaasje.
-
 insecure-dialog-cancel-button = Ynstellingen wizigje
     .accesskey = Y
-
 insecure-dialog-confirm-button = Befêstigje
     .accesskey = B
 
@@ -304,51 +210,45 @@ insecure-dialog-confirm-button = Befêstigje
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } hat jo accountynstellingen fan { $domain } fûn. Wolle jo trochgean en jo oanmeldgegevens ferstjoere?
-
 exchange-dialog-confirm-button = Oanmelde
-
 exchange-dialog-cancel-button = Annulearje
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Gjin e-mailaccount ynsteld
+exit-dialog-description = Binne jo wis dat jo it ynstelproses annulearje wolle? { -brand-short-name } kin noch brûkt wurde sûnder in e-mailaccount, mar in protte funksjes sille net beskikber wêze.
+account-setup-no-account-checkbox = { -brand-short-name } sûnder in e-mailaccount brûke
+    .accesskey = s
+exit-dialog-cancel-button = Fierder mei ynstellen
+    .accesskey = y
+exit-dialog-confirm-button = Ynstellen ôfslute
+    .accesskey = l
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Flater by oanmeitsjen fan account
-
 account-setup-error-server-exists = Ynkommende server bestiet al.
-
 account-setup-confirm-advanced-title = Wiidweidige konfiguraasje befêstigje
-
 account-setup-confirm-advanced-description = Dit dialoochfinster sil sluten wurde en der wurdt in account mei de aktuele ynstellingen oanmakke, ek as de konfiguraasje net krekt is. Wolle jo trochgean?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Ynstallearje
-
 account-setup-addon-install-intro = In add-on fan tredden kin tagong jaan ta jo e-mailaccount op dizze server:
-
 account-setup-addon-no-protocol = Dizze e-mailserver stipet spitigernôch gjin iepen protokollen. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Accountynstellingen
-
 account-setup-encryption-button = End-to-end-fersifering
-
 account-setup-signature-button = In hanttekening tafoegje
-
 account-setup-dictionaries-button = Wurdboeken downloade
-
 account-setup-address-book-carddav-button = Ferbining meitsje mei in CardDAV-adresboek
-
 account-setup-address-book-ldap-button = Ferbining meitsje mei in LDAP-adresboek
-
 account-setup-calendar-button = Ferbining meitsje mei in eksterne aginda
-
 account-setup-linked-services-title = Ferbining meitsje mei jo keppele services
-
 account-setup-linked-services-description = { -brand-short-name } hat oare services dy't oan jo e-mailaccount keppele binne detektearre.
-
 account-setup-no-linked-description = Oare services ynstelle om it measte út jo { -brand-short-name }-ûnderfining te heljen.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -356,7 +256,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name } hat ien adresboek dat keppele is oan jo e-mailaccount fûn.
        *[other] { -brand-short-name } hat { $count } adresboeken dy't keppele binne oan jo e-mailaccount fûn.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -364,62 +263,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } hat ien adresboek dy't keppele is oan jo e-mailaccount fûn.
        *[other] { -brand-short-name } hat { $count } adresboeken dy't keppele binne oan jo e-mailaccount fûn.
     }
-
 account-setup-button-finish = Foltôgje
     .accesskey = F
-
 account-setup-looking-up-address-books = Adresboeken opsykje…
-
 account-setup-looking-up-calendars = Aginda’s opsykje…
-
 account-setup-address-books-button = Adresboeken
-
 account-setup-calendars-button = Aginda's
-
 account-setup-connect-link = Ferbine
-
 account-setup-existing-address-book = Ferbûn
     .title = Adresboek al ferbûn
-
 account-setup-existing-calendar = Ferbûn
     .title = Aginda al ferbûn
-
 account-setup-connect-all-calendars = Alle aginda’s ferbine
-
 account-setup-connect-all-address-books = Alle adresboeken ferbine
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Aginda ferbine
-
 calendar-dialog-cancel-button = Annulearje
     .accesskey = A
-
 calendar-dialog-confirm-button = Ferbine
     .accesskey = b
-
 account-setup-calendar-name-label = Namme
-
 account-setup-calendar-name-input =
     .placeholder = Myn aginda
-
 account-setup-calendar-color-label = Kleur
-
 account-setup-calendar-refresh-label = Fernije
-
 account-setup-calendar-refresh-manual = Hânmjittich
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Elke minút
        *[other] Elke { $count } minuten
     }
-
 account-setup-calendar-read-only = Allinnich-lêze
     .accesskey = A
-
 account-setup-calendar-show-reminders = Omtinken toane
     .accesskey = t
-
 account-setup-calendar-offline-support = Offlinestipe
     .accesskey = O
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/addressbook/aboutAddressBook.ftl
index c4dc6c4562dfb6d1aa87eace89ad2d44a80bd60f..2def569f06c7946611ffb29de73a01a5c795adee 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Alle adresboeken
-
 about-addressbook-books-context-properties =
     .label = Eigenskippen
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Fuortsmite
 about-addressbook-books-context-remove =
     .label = Fuortsmite
-
 about-addressbook-confirm-delete-book-title = Adresboek fuortsmite
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = { $name } trochsykje
 about-addressbook-search-all =
     .placeholder = Alle adresboeken trochsykje
-
 about-addressbook-sort-button =
     .title = Listfolchoarder wizigje
-
 about-addressbook-name-format-display =
     .label = Werjeftenamme
 about-addressbook-name-format-firstlast =
     .label = Foarnamme Efternamme
 about-addressbook-name-format-lastfirst =
     .label = Efternamme, foarnamme
-
 about-addressbook-sort-name-ascending =
     .label = Sortearje op namme (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Sortearje op e-mailadres (A > Z)
 about-addressbook-sort-email-descending =
     .label = Sortearje op e-mailadres (Z >A)
-
+about-addressbook-cards-context-write =
+    .label = Opstelle
 about-addressbook-confirm-delete-mixed-title = Kontakten en listen fuortsmite
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Bewurkje
 about-addressbook-cancel-edit-contact-button = Annulearje
 about-addressbook-save-edit-contact-button = Bewarje
-
 about-addressbook-details-email-addresses-header = E-mailadressen
 about-addressbook-details-phone-numbers-header = Telefoannûmers
 about-addressbook-details-home-address-header = Adres
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/importDialog.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/importDialog.ftl
index 617f9d27403c2058ede77a076a4487af2d342090..61223d49652fde18de54058fdbc02a93f75ced8e 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/importDialog.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = E-mail út in Thunderbird-profylmap ymportearje.
-import-select-profile-dir-or-zip = Selektearje in profylmap of in komprimearre profylmap
+import-from-thunderbird-zip =
+    .label = Thunderbird (eksportearre profylreservekopy; zip-bestân lytser as 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profylmap)
+    .accesskey = T
 import-select-profile-zip = Selektearje in map mei ynpakte profilen
+import-select-profile-dir = Selektearje in profylmap
+zip-file-too-big-title = Zip-bestân te grut
+zip-file-too-big-message = It selektearre zip-bestân is grutter as 2 GB. Pak it earst út en ymportearje it dernei út de útpakte map.
+wizardpage-failed =
+    .label = Ymportearjen mislearre
+wizardpage-failed-message = Ymportearjen is ûnferwachte mislearre, mear ynformaasje is mooglik beskikber yn de Flaterconsole.
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/messengercompose/messengercompose.ftl
index d79706cba72ddb3b3358c0a2d12e2772a7b20b28..d1506a5f733bcdbb5cca008b5d7079c3dbdb7ab0 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/messengercompose/messengercompose.ftl
@@ -7,11 +7,9 @@
 
 #   $type (String) - the type of the addressing row
 remove-address-row-type = It fjild { $type } fuortsmite
-
 #   $type (String) - the type of the addressing row
 remove-address-row-button =
     .title = It fjild { $type } fuortsmite
-
 #   $type (String) - the type of the addressing row
 #   $count (Number) - the number of address pills currently present in the addressing row
 address-input-type-aria-label =
@@ -20,7 +18,6 @@ address-input-type-aria-label =
         [one] { $type } mei ien adres, brûk de linkerpylktoets om de fokus dêrop te setten.
        *[other] { $type } mei { $count } adressen, brûk de linkerpylktoets om de fokus dêrop te setten.
     }
-
 #   $email (String) - the email address
 #   $count (Number) - the number of address pills currently present in the addressing row
 pill-aria-label =
@@ -28,29 +25,22 @@ pill-aria-label =
         [one] { $email }: druk Enter om te bewurkjen, Delete om fuort te smiten.
        *[other] { $email }, 1 fan { $count }: druk Enter om te bewurkjen, Delete om fuort te smiten.
     }
-
 #   $email (String) - the email address
 pill-tooltip-invalid-address = { $email } is gjin jildich e-mailadres
-
 #   $email (String) - the email address
 pill-tooltip-not-in-address-book = { $email } stiet net yn jo adresboek
-
 pill-action-edit =
     .label = Adres bewurkje
     .accesskey = d
-
 pill-action-move-to =
     .label = Ferpleatse nei Oan
     .accesskey = O
-
 pill-action-move-cc =
     .label = Ferpleatse nei Cc
     .accesskey = c
-
 pill-action-move-bcc =
     .label = Ferpleatse nei Bcc
     .accesskey = B
-
 pill-action-expand-list =
     .label = List útklappe
     .accesskey = k
@@ -62,35 +52,31 @@ ctrl-cmd-shift-pretty-prefix =
         [macos] ⇧ ⌘{ " " }
        *[other] Ctrl+Shift+
     }
-
 trigger-attachment-picker-key = A
 toggle-attachment-pane-key = M
-
 menuitem-toggle-attachment-pane =
     .label = Bylagepaniel
     .accesskey = l
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
-
 toolbar-button-add-attachment =
     .label = Keppelje
     .tooltiptext = In bylage tafoegje ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
-
 add-attachment-notification-reminder =
     .label = Bylage tafoegje…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
-
+add-attachment-notification-reminder2 =
+    .label = Bylage taheakje…
+    .accesskey = B
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Bestân(nen)…
     .accesskey = B
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
-
 context-menuitem-attach-files =
     .label = Bestân(nen) keppelje…
     .accesskey = B
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
 
-
-
 #   $count (Number) - the number of attachments in the attachment bucket
 attachments-placeholder-tooltip =
     .tooltiptext =
@@ -98,23 +84,18 @@ attachments-placeholder-tooltip =
             [one] { $count } bylage
            *[other] { $count } bylagen
         }
-
 #   { attachment-bucket-count.accesskey } - Do not localize this message.
 key-toggle-attachment-pane =
     .key = { attachment-bucket-count.accesskey }
-
 expand-attachment-pane-tooltip =
     .tooltiptext = It bylagefinster toane ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 collapse-attachment-pane-tooltip =
     .tooltiptext = It bylagefinster ferstopje ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 drop-file-label-attachment =
     { $count ->
         [one] As bylage tafoegje
        *[other] As bylagen tafoegje
     }
-
 drop-file-label-inline =
     { $count ->
         [one] Inline tafoegje
@@ -131,71 +112,126 @@ move-attachment-right-panel-button =
     .label = Nei rjochts
 move-attachment-last-panel-button =
     .label = Nei de lêste
-
 button-return-receipt =
     .label = Untfangstbefêstiging
     .tooltiptext = In ûntfangstbefêstiging foar dit berjocht freegje
 
+# Encryption
+
+message-to-be-signed-icon =
+    .alt = Berjocht ûndertekenje
+message-to-be-encrypted-icon =
+    .alt = Berjocht fersiferje
+
 # Addressing Area
 
 to-compose-address-row-label =
     .value = Oan
-
 #   $key (String) - the shortcut key for this field
 to-compose-show-address-row-menuitem =
     .label = { to-compose-address-row-label.value }-fjild
     .accesskey = T
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 to-compose-show-address-row-label =
     .value = { to-compose-address-row-label.value }
     .tooltiptext = { to-compose-address-row-label.value }-fjild toane ({ to-compose-show-address-row-menuitem.acceltext })
-
 cc-compose-address-row-label =
     .value = Cc
-
 #   $key (String) - the shortcut key for this field
 cc-compose-show-address-row-menuitem =
     .label = { cc-compose-address-row-label.value }-fjild
     .accesskey = C
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 cc-compose-show-address-row-label =
     .value = { cc-compose-address-row-label.value }
     .tooltiptext = { cc-compose-address-row-label.value }-fjild toane ({ cc-compose-show-address-row-menuitem.acceltext })
-
 bcc-compose-address-row-label =
     .value = Bcc
-
 #   $key (String) - the shortcut key for this field
 bcc-compose-show-address-row-menuitem =
     .label = { bcc-compose-address-row-label.value }-fjild
     .accesskey = B
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 bcc-compose-show-address-row-label =
     .value = { bcc-compose-address-row-label.value }
     .tooltiptext = { bcc-compose-address-row-label.value }-fjild toane ({ bcc-compose-show-address-row-menuitem.acceltext })
-
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = De { $count } ûntfangers yn Oan en Cc sille de adressen fan de oaren sjen. Jo kinne foarkomme dat ûntfangers toand wurde troch yn stee hjirfan Bcc te brûken.
-
+to-address-row-label =
+    .value = Oan
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Oan-fjild
+    .accesskey = O
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Oan
+    .accesskey = O
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Oan
+    .title = Oan-fjild toane ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Cc-fjild
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Cc-fjild toane ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Bcc
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Bcc-fjild
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Bcc
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+    .title = Bcc-fjild toane ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Oare te toanen adresfjilden
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Jo berjocht hat in iepenbiere ûntfanger. Jo kinne foarkomme dat ûntfangers toand wurde troch yn stee hjirfan Bcc te brûken.
+       *[other] De { $count } ûntfangers yn Oan en Cc sille de adressen fan de oaren sjen. Jo kinne foarkomme dat ûntfangers toand wurde troch yn stee hjirfan Bcc te brûken.
+    }
 many-public-recipients-bcc =
     .label = Yn stee dêrfan Bcc brûke
     .accesskey = Y
-
 many-public-recipients-ignore =
     .label = Untfangers iepenbier litte
     .accesskey = i
+many-public-recipients-prompt-title = Te folle iepenbiere ûntfangers
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Jo berjocht hat in iepenbiere ûntfanger. Dit kin in privacyprobleem wêze. Jo kinne dit foarkomme troch de ûntfanger yn stee fan Oan/Cc nei Bcc te ferpleatsen.
+       *[other] Jo berjocht hat { $count } iepenbiere ûntfangers, dy't inoars adressen sjen kinne. Dit kin in privacyprobleem wêze. Jo kinne dit foarkomme troch de ûntfanger yn stee fan Oan/Cc nei Bcc te ferpleatsen.
+    }
+many-public-recipients-prompt-cancel = Ferstjoeren annulearje
+many-public-recipients-prompt-send = Dochs ferstjoere
 
 ## Notifications
 
 # Variables:
 # $identity (string) - The name of the used identity, most likely an email address.
 compose-missing-identity-warning = Der is gjin unike identiteit lyk oan it Fan-adres fûn. It berjocht sil ferstjoerd wurde mei it aktuele Fan-fjild en ynstellingen fan de identiteit fan { $identity }.
-
 encrypted-bcc-warning = As jo in fersifere berjocht ferstjoere, wurde ûntfangers yn Bcc net folslein ferstoppe. Alle ûntfangers kinne se mooglik identifisearje.
-
 encrypted-bcc-ignore-button = Begrepen
 
 ## Editing
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/otr/otrUI.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/otr/otrUI.ftl
index 7f7af581cd92ead814fa6d4cbda0554aa6e2d8d8..87ad79a5770f4d78655d68197909616ea1d91579 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/otr/otrUI.ftl
@@ -6,86 +6,66 @@ start-label = In fersifere petear starte
 refresh-label = It fersifere petear fernije
 auth-label = De identiteit fan jo kontakt ferifiearje
 reauth-label = De identiteit fan jo kontakt opnij ferifiearje
-
 auth-cancel = Annulearje
 auth-cancelAccessKey = A
-
 auth-cancel-access-key = A
-
 auth-error = Der is in flater bard by de ferifikaasje fan de identiteit fan jo kontakt.
 auth-success = De ferifikaasje fan de identiteit fan jo kontakt is mei sukses foltôge.
 auth-successThem = Jo kontakt hat jo identiteit mei sukses ferifiearre. Miskien wolle jo ek syn/har identiteit ferifiearje troch jo eigen fraach te stellen.
 auth-success-them = Jo kontakt hat jo identiteit mei sukses ferifiearre. Miskien wolle jo ek syn/har identiteit ferifiearje troch jo eigen fraach te stellen.
 auth-fail = Koe de identiteit fan jo kontakt net ferifiearje.
 auth-waiting = Wachtsje oant it kontakt de ferifikaasje foltôge hat…
-
 finger-verify = Ferifiearje
 finger-verify-accessKey = F
-
 finger-verify-access-key = V
-
 # Do not translate 'OTR' (name of an encryption protocol)
 buddycontextmenu-label = OTR-fingerôfdruk tafoegje
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-start = Wy probearje in fersifere petear mei { $name } te starten.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-refresh = Wy probearje in fersifere petear mei { $name } te fernijen.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone_insecure = It fersifere petear mei { $name } is beëinige.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone-insecure = It fersifere petear mei { $name } is beëinige.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-unseen = De identiteit fan { $name } is noch net ferifiearre. Ienfâldich ôflústerje is net mooglik, mar mei wat muoite kin ien meilústerje. Foarkom ôflústerjen troch de identiteit fan dit kontakt te ferifiearjen.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-seen = { $name } nimt kontakt mei jo op fan in ûnbekende kompjûter ôf. Ienfâldich ôflústerjen is net mooglik, mar mei wat muoite kin ien meilústerje. Foarkom ôflústerjen troch de identiteit fan it kontakt te ferifiearjen.
-
 state-not_private = It aktuele petear is net privee.
-
 state-not-private = It aktuele petear is net privee.
-
+state-generic-not-private = It aktuele petear is net privee.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-unverified = It aktuele petear is fersifere mar net privee, omdat de identiteit fan { $name } noch net ferifiearre is.
-
+state-generic-unverified = It aktuele petear is fersifere mar net privee, omdat guon identiteiten noch net ferifiearre binne.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-private = De identiteit fan { $name } is ferifiearre. It aktuele petear is fersifere en privee.
-
+state-generic-private = It aktuele petear is fersifere en privee.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-finished = { $name } hat syn/har fersifere konversaasje mei jo beëinige; jo moatte itselde dwaan.
-
 state-not_private-label = Unfeilich
-
 state-not-private-label = Unfeilich
 state-unverified-label = Net ferifiearre
 state-private-label = Privee
 state-finished-label = Foltôge
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 verify-request = { $name } hat om ferifikaasje fan jo identiteit frege.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-private = Jo hawwe de identiteit fan { $name } ferifiearre.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-unverified = De identiteit fan { $name } is net ferifiearre.
-
 verify-title = De identiteit fan jo kontakt ferifiearje
 error-title = Flater
 success-title = End-to-end-fersifering
@@ -93,7 +73,6 @@ successThem-title = De identiteit fan jo kontakt ferifiearje
 success-them-title = Ferifiearje de identiteit fan jo kontakt
 fail-title = Kin net ferifiearje
 waiting-title = Ferifikaasjefersyk ferstjoerd
-
 # Do not translate 'OTR' (name of an encryption protocol)
 # Variables:
 #   $error (String) - contains an error message that describes the cause of the failure
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/policies/policies-descriptions.ftl
index 10f9c55afddd771acb93b1b5f077567ce6da5561..4f3add61b4b5708a3de5ce0723416a39607b6fb6 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/policies/policies-descriptions.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/messenger/policies/policies-descriptions.ftl
@@ -11,137 +11,83 @@
 ## in the documentation section in about:policies.
 
 policy-3rdparty = Beliedsrigels ynstelle dy't troch WebExtensions tagong hawwe fia chrome.storage.managed.
-
 policy-AppAutoUpdate = Automatyske applikaasjefernijing yn- of útskeakelje.
-
 policy-AppUpdateURL = Oanpaste app-fernijings-URL ynstelle.
-
 policy-Authentication = Yntegrearre ferifikaasje konfigurearje foar websiden dy't it stypje.
-
+policy-BackgroundAppUpdate2 = Eftergrûnfernijingen yn- of útskeakelje.
 policy-BlockAboutAddons = Tagong ta de add-ons-behearder (about:addons) blokkearje.
-
 policy-BlockAboutConfig = Tagong ta de side about:config blokkearje.
-
 policy-BlockAboutProfiles = Tagong ta de side about:profiles blokkearje.
-
 policy-BlockAboutSupport = Tagong ta de side about:support blokkearje.
-
 policy-CaptivePortal = Stipe foar hotspot-oanmeldingsside yn- of útskeakelje.
-
 policy-CertificatesDescription = Sertifikaten tafoegje of ynboude sertifikaten brûke.
-
 policy-Cookies = Tastean of wegerje dat websites cookies ynstelle.
-
+policy-DisableBuiltinPDFViewer = PDF.js útskeakelje, de ynboude PDF-viewer yn { -brand-short-name }.
 policy-DisabledCiphers = Kodearringssuites útskeakelje.
-
 policy-DefaultDownloadDirectory = Standert downloadmap ynstelle.
-
 policy-DisableAppUpdate = Foarkomme dat { -brand-short-name } bywurke wurdt.
-
 policy-DisableDefaultClientAgent = Foarkomme dat de standert clientagent iennige aksje ûndernimt. Allinnich fan tapassing op Windows; oare platfoarms beskikke net oer de agent.
-
 policy-DisableDeveloperTools = Tagong ta de ûntwikkelershelpmiddelen blokkearje.
-
 policy-DisableFeedbackCommands = Opdrachten foar it ferstjoeren fan kommentaar fan it menu Help út útskeakelje (Kommentaar ferstjoere en Misliedende website rapportearje).
-
 policy-DisableForgetButton = Tagong ta de knop Ferjitte foarkomme.
-
 policy-DisableFormHistory = Gjin syk- en formulierskiednis ûnthâlde.
-
 policy-DisableMasterPasswordCreation = Wannear true, kin gjin haadwachtwurd oanmakke wurde.
-
 policy-DisablePasswordReveal = Net tastean dat wachtwurden te sjen binne yn bewarre oanmeldingen.
-
 policy-DisableProfileImport = De menuopdracht foar it ymportearjen fan gegevens fan in oare applikaasje út útskeakelje.
-
 policy-DisableSafeMode = De funksje foar it opnij starten yn Feilige modus útskeakelje. Noat: de Shift-toets foar it betrêdzjen fan de Feilige modus kin in Windows allinnich útskeakele wurde fia Groepsbelied.
-
 policy-DisableSecurityBypass = Foarkomme dat de brûker bepaalde befeiligingsynstellingen omsylt.
-
 policy-DisableSystemAddonUpdate = Foarkomme dat { -brand-short-name } systeemadd-ons ynstallearret en bywurket.
-
 policy-DisableTelemetry = Telemetry útskeakelje.
-
 policy-DisplayMenuBar = Standert de Menubalke werjaan.
-
 policy-DNSOverHTTPS = DNS oer HTTPS konfigurearje.
-
 policy-DontCheckDefaultClient = Kontrôle op standertclient by opstarten útskeakelje.
-
 policy-DownloadDirectory = De downloadmap ynstelle en beskoattelje.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EnableTrackingProtection = Ynhâldsblokkearring yn- of útskeakelje en opsjoneel beskoattelje.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EncryptedMediaExtensions = Fersifere media-útwreidingen yn- of útskeakelje en opsjoneel beskoattelje.
-
 # A “locked” extension can’t be disabled or removed by the user. This policy
 # takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
 # English or translate them as verbs.
 policy-Extensions = Utwreiding ynstallearje, de-ynstallearje of beskoattelje. De opsje foar ynstallearjen brûkt URL’s of paden as parameters. De opsjes foar de-ynstallearje en beskoattelje brûke útwreidings-ID’s.
-
 policy-ExtensionSettings = Alle aspekten fan ynstallaasje fan útwreidingen beheare.
-
 policy-ExtensionUpdate = Automatyske útwreidings-fernijingen yn- of útskeakelje.
-
+policy-Handlers = Standert tapassinghandlers konfigurearje
 policy-HardwareAcceleration = Wannear false, hardwarefersnelling útskeakelje.
-
 policy-InstallAddonsPermission = Tastean dat bepaalde websites add-ons ynstallearje.
-
 policy-LegacyProfiles = Funksje om in ôfsûnderlik profyl foar elke ynstallaasje ôf te twingen útskeakelje.
 
 ## Do not translate "SameSite", it's the name of a cookie attribute.
 
 policy-LegacySameSiteCookieBehaviorEnabled = Standertynstelling foar ferâldere SameSite-cookiegedrach ynskeakelje.
-
 policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Op spesifike websites tebekgean nei ferâldere SameSite-gedrach foar cookies.
 
 ##
 
 policy-LocalFileLinks = Spesifike websites tastean te keppeljen nei lokale bestannen.
-
+policy-ManualAppUpdateOnly = Allinnich hânmjittige fernijingen tastean en de brûker net oer fernijingen ynformearje.
 policy-NetworkPrediction = ‘Network prediction’ (DNS prefetching) yn- of útskeakelje.
-
 policy-OfferToSaveLogins = De ynstelling foar it tastean dat { -brand-short-name } oanbiede mei bewarre oanmeldingen en wachtwurden te ûnthâlden ôftwinge. Sawol de wearde true as false wurdt akseptearre.
-
 policy-OfferToSaveLoginsDefault = De standertwearde ynstelle foar it tastean dat { -brand-short-name } oanbiede mei bewarre oanmeldingen en wachtwurden te ûnthâlden ôftwingje. Sawol de wearde true as false wurdt akseptearre.
-
 policy-OverrideFirstRunPage = De side foar earste kear útfiere ferfange. Stel dizze beliedsrigel yn op leech as jo de belutsene side útskeakelje wolle.
-
 policy-OverridePostUpdatePage = De side ‘Wat is der nij’ nei in fernijing ferfange. Stel dizze beliedsrigel yn op leech as jo de belutsene side útskeakelje wolle.
-
 policy-PasswordManagerEnabled = Bewarjen fan wachtwurden yn de wachtwurdbehearder ynskeakelje.
-
 # PDF.js and PDF should not be translated
 policy-PDFjs = PDF.js, de yn { -brand-short-name } ynboude PDF-lêzer, útskeakelje of ynstelle.
-
 policy-Permissions2 = Tastimmingen foar kamera, mikrofoan, lokaasje, notifikaasjes en automatysk ôfspyljen konfigurearje.
-
 policy-Preferences = De wearde foar in subset fan foarkarren ynstelle en beskoattelje.
-
+policy-PrimaryPassword = In haadwachtwurd fereaskje of foarkomme.
 policy-PromptForDownloadLocation = Freegje wêr't downloade bestannen bewarre wurde moatte.
-
 policy-Proxy = Proxyynstellingen konfigurearje.
-
 policy-RequestedLocales = De list fan frege locales foar de tapassing ynstelle, op folchoarder fan foarkar.
-
 policy-SanitizeOnShutdown2 = Navigaasjegegevens wiskje by ôfsluten.
-
 policy-SearchEngines = Ynstellingen foar sykmasinen konfigurearje. Dizze beliedsrigel is allinnich beskikber yn de Extended Support Release (ESR)-ferzje.
-
 policy-SearchSuggestEnabled = Syksuggestjes ynskeakelje of útskeakelje.
-
 # For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
 policy-SecurityDevices = PKCS #11-modules ynstallearje.
-
 policy-SSLVersionMax = De maksimale SSL-ferzje ynstelle.
-
 policy-SSLVersionMin = De minimale SSL-ferzje ynstelle.
-
 policy-SupportMenu = In oanpast menu-item foar stipe oan it menu Help tafoegje.
-
 policy-UserMessaging = Bepaalde berjochten net oan de brûker toane.
-
 # “format” refers to the format used for the value of this policy.
 policy-WebsiteFilter = It besykjen fan websites blokkearje. Sjoch de dokumintaasje foar mear ynformaasje oer de notaasje.
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutNetworking.ftl
index 63cbfa4cf177576cca8079bf7c3738e5ca6d411e..181eac59ea76c00bda4eb4e634e6759e3aade4d3 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Aktyf
 about-networking-idle = Wachtet
 about-networking-host = Host
 about-networking-tcp = TCP
+about-networking-type = Type
 about-networking-sent = Ferstjoerd
 about-networking-received = Untfongen
 about-networking-family = Famylje
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutSupport.ftl
index c1f673376df5bed87d7ec2b63d02aa63089b1f76..3285fae2e7d4484193b772d62816d02f8e589e3c 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/about/aboutSupport.ftl
@@ -7,7 +7,6 @@ page-subtitle =
     Dizze side befettet technyske ynformaasje dy't brûkber wêze kin as jo
     probearje om problemen op te lossen. As jo antwurden sykje op algemiene fragen
     oer { -brand-short-name }, sjoch dan op ús <a data-l10n-name="support-link">stipewebsite</a>.
-
 crashes-title = Ungelokrapporten
 crashes-id = Rapport-ID
 crashes-send-date = Ynstjoerd
@@ -63,6 +62,7 @@ app-basics-enabled-plugins = Ynskeakele ynstekkers
 app-basics-build-config = Utjeftekonfiguraasje
 app-basics-user-agent = User Agent
 app-basics-os = OS
+app-basics-os-theme = OS-tema
 # Rosetta is Apple's translation process to run apps containing x86_64
 # instructions on Apple Silicon. This should remain in English.
 app-basics-rosetta = Troch Rosetta oerset
@@ -135,7 +135,6 @@ sandbox-sys-call-number = Syscall
 sandbox-sys-call-args = Arguminten
 safe-mode-title = Probearje de feilige modus
 restart-in-safe-mode-label = Werstart mei útskeakele add-ons…
-
 troubleshoot-mode-title = Problemen analysearje
 restart-in-troubleshoot-mode-label = Probleemoplossingsmodus…
 clear-startup-cache-title = Opstartbuffer probearje te wiskjen
@@ -193,37 +192,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Modulen fan tredden
-support-third-party-modules-module = Modulebestân
-support-third-party-modules-version = Bestânsferzje
-support-third-party-modules-vendor = Leveransiersynfo
-support-third-party-modules-occurrence = Oantal
-support-third-party-modules-process = Prosestype & ID
-support-third-party-modules-thread = Thread
-support-third-party-modules-base = Imagebase-adres
-support-third-party-modules-uptime = Proses-uptime (ms)
-support-third-party-modules-duration = Laadtiid (ms)
-support-third-party-modules-status = Steat
-support-third-party-modules-status-loaded = Laden
-support-third-party-modules-status-blocked = Blokkearre
-support-third-party-modules-status-redirected = Omlaat
-support-third-party-modules-empty = Der binne gjin modulen fan tredden laden.
-support-third-party-modules-no-value = (Gjin wearde)
-support-third-party-modules-button-open =
-    .title = Bestânslokaasje iepenje…
-support-third-party-modules-expand =
-    .title = Detailynformaasje toane
-support-third-party-modules-collapse =
-    .title = Detailynformaasje ynklappe
-support-third-party-modules-unsigned-icon =
-    .title = Dizze module is net ûndertekene
-support-third-party-modules-folder-icon =
-    .title = Bestânslokaasje iepenje…
-support-third-party-modules-down-icon =
-    .title = Detailynformaasje toane
-support-third-party-modules-up-icon =
-    .title = Detailynformaasje ynklappe
-
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
@@ -231,7 +199,6 @@ report-crash-for-days =
         [one] Ungelokrapporten foar de lêste { $days } dei
        *[other] Ungelokrapporten foar de lêste { $days } dagen
     }
-
 # Variables
 # $minutes (integer) - Number of minutes since crash
 crashes-time-minutes =
@@ -239,7 +206,6 @@ crashes-time-minutes =
         [one] { $minutes } minút lyn
        *[other] { $minutes } minuten lyn
     }
-
 # Variables
 # $hours (integer) - Number of hours since crash
 crashes-time-hours =
@@ -247,7 +213,6 @@ crashes-time-hours =
         [one] { $hours } oer lyn
        *[other] { $hours } oer lyn
     }
-
 # Variables
 # $days (integer) - Number of days since crash
 crashes-time-days =
@@ -255,7 +220,6 @@ crashes-time-days =
         [one] { $days } dei lyn
        *[other] { $days } dagen lyn
     }
-
 # Variables
 # $reports (integer) - Number of pending reports
 pending-reports =
@@ -263,7 +227,6 @@ pending-reports =
         [one] Alle ûngelokrapporten (ynklusyf { $reports } ûngelok op wacht yn it opjûne tiidsrak)
        *[other] Alle ûngelokrapporten (ynklusyf { $reports } ûngelokken op wacht yn it opjûne tiidsrak))
     }
-
 raw-data-copied = Rûge gegevens nei klamboerd kopiearre
 text-copied = Tekst nei klamboerd kopiearre
 
@@ -276,11 +239,9 @@ blocked-mismatched-version = Blokkearre foar jo grafyske stjoerprogramma, ferzje
 # Variables
 # $driverVersion - The graphics driver version string
 try-newer-driver = Blokkearre foar jo grafysk stjoerprogramma. Probearje jo grafyske stjoerprogramma by te wurkjen nei ferzje { $driverVersion } of nijer.
-
 # "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
 # there are no good translations, these are only used in about:support
 clear-type-parameters = ClearType parameters
-
 compositing = Gearstalle
 hardware-h264 = Hardwaremjittige H264-dekodearring
 main-thread-no-omtc = haadthread, gjin OMTC
@@ -295,7 +256,6 @@ virtual-monitor-disp = Virtual Monitor Display
 
 found = Fûn
 missing = Untbrekt
-
 gpu-process-pid = GPUProcessPid
 gpu-process = GPUProcess
 gpu-description = Beskriuwing
@@ -319,25 +279,20 @@ webgl2-version = Ferzje fan WebGL 2-stjoerprogramma
 webgl2-driver-extensions = Utwreidingen fan WebGL 2-stjoerprogramma
 webgl2-extensions = WebGL 2-útwreidingen
 blocklisted-bug = Om bekende problemen op de blokkearlist
-
 # Variables
 # $bugNumber (string) - String of bug number from Bugzilla
 bug-link = bug { $bugNumber }
-
 # Variables
 #   $bugNumber (string) - Bug number on Bugzilla
 support-blocklisted-bug = Blokkearre fanwegen bekende problemen: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
-
 # Variables
 # $failureCode (string) - String that can be searched in the source tree.
 unknown-failure = Op blokkearlist; flaterkoade { $failureCode }
-
 d3d11layers-crash-guard = D3D11-compositor
 d3d11video-crash-guard = D3D11-fideodecoder
 d3d9video-crash-guard = D3D9-fideodecoder
 glcontext-crash-guard = OpenGL
 wmfvpxvideo-crash-guard = WMF VPX-fideodecoder
-
 reset-on-next-restart = Opnij ynstelle nij werstart
 gpu-process-kill-button = GPU-proses beëinigje
 gpu-device-reset = Apparaatwerinisjalisaasje
@@ -347,10 +302,8 @@ content-uses-tiling = Brûkt Tiling (Ynhâld)
 off-main-thread-paint-enabled = Off Main Thread Painting ynskeakele
 off-main-thread-paint-worker-count = Oantal Off Main Thread Painting-workers
 target-frame-rate = Doelframerate
-
 min-lib-versions = Minimale ferzje ferwachte
 loaded-lib-versions = Brûkte ferzje
-
 has-seccomp-bpf = Seccomp-BPF (Systeemoanropfiltering)
 has-seccomp-tsync = Seccomp-threadsynchronisatie
 has-user-namespaces = Namespaces fan brûker
@@ -364,18 +317,15 @@ sandbox-proc-type-content = ynhâld
 sandbox-proc-type-file = bestânsynhâld
 sandbox-proc-type-media-plugin = mediaynstekker
 sandbox-proc-type-data-decoder = gegevensdecoder
-
 startup-cache-title = Opstartbuffer
 startup-cache-disk-cache-path = Paad nei skiifbuffer
 startup-cache-ignore-disk-cache = Skiifbuffer negearje
 startup-cache-found-disk-cache-on-init = Skiifbuffer by Init fûn
 startup-cache-wrote-to-disk-cache = Nei skiifbuffer skreaun
-
 launcher-process-status-0 = Ynskeakele
 launcher-process-status-1 = Utskeakele fanwegen flater
 launcher-process-status-2 = Forsearre útskeakele
 launcher-process-status-unknown = Unbekende steat
-
 # Variables
 # $remoteWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -388,7 +338,6 @@ multi-process-status-6 = Utskeakele troch net-stipe tekstynfier
 multi-process-status-7 = Utskeakele troch add-ons
 multi-process-status-8 = Forsearre útskeakele
 multi-process-status-unknown = Unbekende steat
-
 # Variables
 # $fissionWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -403,9 +352,7 @@ fission-status-disabled-by-default = Standert útskeakele
 fission-status-enabled-by-user-pref = Ynskeakele troch brûker
 fission-status-disabled-by-user-pref = Utskeakele troch brûker
 fission-status-disabled-by-e10s-other = E10s útskeakele
-
 fission-status-enabled-by-rollout = Ynskeakele troch fazearre útjefte
-
 async-pan-zoom = Asyngroan panne/zoome
 apz-none = gjin
 wheel-enabled = tsjilynfier ynskeakele
@@ -442,7 +389,6 @@ support-remote-experiments-title = Eksterne eksperiminten
 support-remote-experiments-name = Namme
 support-remote-experiments-branch = Eksperiminttak
 support-remote-experiments-see-about-studies = Sjoch <a data-l10n-name="support-about-studies-link">about:studies</a> foar mear ynformaasje, wêrûnder hoe't jo yndividuele eksperiminten útskeakelje kinne of foarkomme kinne dat{ -brand-short-name } dit soarte eksperiminten yn de takomst útfiert.
-
 support-remote-features-title = Eksterne funksjes
 support-remote-features-name = Namme
 support-remote-features-status = Steat
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..00dc34beda67496bda8042db1133e18b023d0489
--- /dev/null
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name }-ynstallaasje foltôgje?
+prompt-to-install-message = Foltôgje dizze ien-stap-ynstallaasje om { -brand-short-name } by de tiid te hâlden en gegevensfelies foar te kommen. { -brand-short-name } sil oan jo applikaasjemap en Dock tafoege wurde.
+prompt-to-install-yes-button = Ynstallearje
+prompt-to-install-no-button = Net ynstallearje
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name }-ynstallaasje mislearre.
+install-failed-message = { -brand-short-name }-ysntallaasje is mislearre, mar sil wurkje bliuwe.
diff --git a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/textActions.ftl b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/textActions.ftl
index e8047011b52a9e592b1901904c25f90d46d1e3c4..4f57e973cc26deaf7e63e28c9cb59a0d7376db87 100644
--- a/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/fy-NL/localization/fy-NL/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Ungedien meitsje
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Opnij útfiere
     .accesskey = O
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Knippe
     .accesskey = N
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopiearje
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Plakke
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Fuortsmite
     .accesskey = F
-
 text-action-select-all =
     .label = Alles selektearje
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Gjin staveringsuggestjes
+text-action-spell-add-to-dictionary =
+    .label = Tafoegje oan wurdboek
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Tafoegjen oan wurdboek ûngedien meitsje
+    .accesskey = g
+text-action-spell-check-toggle =
+    .label = Stavering kontrolearje
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Wurdboeken tafoegje…
+    .accesskey = t
+text-action-spell-dictionaries =
+    .label = Talen
+    .accesskey = T
diff --git a/thunderbird-l10n/fy-NL/manifest.json b/thunderbird-l10n/fy-NL/manifest.json
index 308121c635485efff54cd2da8213e00d80ca8f94..d6ca8216024ed13dba6d4cc89bee7c1307548dc9 100644
--- a/thunderbird-l10n/fy-NL/manifest.json
+++ b/thunderbird-l10n/fy-NL/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Frysk (fy) Language Pack",
   "description": "Language pack for Thunderbird for fy-NL",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "fy-NL": {
-      "version": "20210813140016",
+      "version": "20210831140752",
       "chrome_resources": {
         "alerts": "chrome/fy-NL/locale/fy-NL/alerts/",
         "autoconfig": "chrome/fy-NL/locale/fy-NL/autoconfig/",
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-context-menus.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-print.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-widgets.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountManager.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/chat.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/exportDialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/importDialog.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/troubleshootMode.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/localization/ga-IE/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ga-IE/localization/ga-IE/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ga-IE/localization/ga-IE/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ga-IE/manifest.json b/thunderbird-l10n/ga-IE/manifest.json
index 61fd35295fe66cc73a76a93de82b28106f252340..f38f5fe6c10801d002d90b6fba9e846f351c7160 100644
--- a/thunderbird-l10n/ga-IE/manifest.json
+++ b/thunderbird-l10n/ga-IE/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Béarla (SAM) Language Pack",
   "description": "Language pack for Thunderbird for ga-IE",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ga-IE": {
-      "version": "20210813140029",
+      "version": "20210831121013",
       "chrome_resources": {
         "alerts": "chrome/ga-IE/locale/ga-IE/alerts/",
         "autoconfig": "chrome/ga-IE/locale/ga-IE/autoconfig/",
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/gd/localization/gd/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/accountManager.ftl b/thunderbird-l10n/gd/localization/gd/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/chat.ftl b/thunderbird-l10n/gd/localization/gd/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/gd/localization/gd/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/exportDialog.ftl b/thunderbird-l10n/gd/localization/gd/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/messenger/importDialog.ftl b/thunderbird-l10n/gd/localization/gd/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/localization/gd/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/gd/localization/gd/toolkit/about/aboutAddons.ftl
index d5c668629ad7a5bf0a5d4459f948294d0455fe48..3e834e505ec1b8d3c74534df96c77f55d2a9d4f7 100644
--- a/thunderbird-l10n/gd/localization/gd/toolkit/about/aboutAddons.ftl
+++ b/thunderbird-l10n/gd/localization/gd/toolkit/about/aboutAddons.ftl
@@ -4,37 +4,26 @@
 
 addons-window =
     .title = Manaidsear nan tuilleadan
-
 addons-page-title = Manaidsear nan tuilleadan
-
 search-header =
     .placeholder = Lorg air addons.mozilla.org
     .searchbuttonlabel = Lorg
-
 search-header-shortcut =
     .key = f
-
 list-empty-get-extensions-message = Faigh leudachain is ùrlaran air <a data-l10n-name="get-extensions">{ $domain }</a>
-
 list-empty-installed =
     .value = Chan eil tuilleadan dhen t-seòrsa seo air a stàladh agad
-
 list-empty-available-updates =
     .value = Cha deach ùrachadh a lorg
-
 list-empty-recent-updates =
     .value = Cha do dh'ùraich thu tuilleadan sam bith o chionn goirid
-
 list-empty-find-updates =
     .label = Lorg ùrachaidhean
-
 list-empty-button =
     .label = Faigh barrachd fiosrachaidh mu thuilleadain
-
 help-button = Taic nan tuilleadan
 sidebar-help-button-title =
     .title = Taic nan tuilleadan
-
 preferences =
     { PLATFORM() ->
         [windows] Roghainnean { -brand-short-name }
@@ -46,25 +35,19 @@ sidebar-preferences-button-title =
             [windows] Roghainnean { -brand-short-name }
            *[other] Roghainnean { -brand-short-name }
         }
-
 addons-settings-button = Roghainnean { -brand-short-name }
 sidebar-settings-button-title =
     .title = Roghainnean { -brand-short-name }
-
 show-unsigned-extensions-button =
     .label = Bha leudachain ann nach b’ urrainn dhuinn dearbhadh
-
 show-all-extensions-button =
     .label = Seall a h-uile leudachan
-
 cmd-show-details =
     .label = Seall barrachd fiosrachaidh
     .accesskey = S
-
 cmd-find-updates =
     .label = Lorg ùrachaidhean
     .accesskey = L
-
 cmd-preferences =
     .label =
         { PLATFORM() ->
@@ -76,88 +59,65 @@ cmd-preferences =
             [windows] o
            *[other] R
         }
-
 cmd-enable-theme =
     .label = Cleachd an t-ùrlar seo
     .accesskey = C
-
 cmd-disable-theme =
     .label = Na cleachd an t-ùrlar seo tuilleadh
     .accesskey = N
-
 cmd-install-addon =
     .label = Stàlaich
     .accesskey = i
-
 cmd-contribute =
     .label = Gabh pàirt ann
     .accesskey = G
     .tooltiptext = Gabh pàirt ann an leasachadh an tuilleadain seo
-
 detail-version =
     .label = Tionndadh
-
 detail-last-updated =
     .label = Ùrachadh mu dheireadh
-
 detail-contributions-description = Dh'iarr leasaichear an tuilleadain seo gun cuir thu taic ri shìor-leasachadh tro thabhartas beag.
-
 detail-contributions-button = Gabh pàirt ann
     .title = Cuir taic ri leasachadh an leudachain seo
     .accesskey = C
-
 detail-update-type =
     .value = Ùrachaidhean fèin-obrachail
-
 detail-update-default =
     .label = Bunaiteach
     .tooltiptext = Na stàlaich ùrachaidhean gu fèin-obrachail ach mas e sin an roghainn bhunaiteach
-
 detail-update-automatic =
     .label = Air
     .tooltiptext = Stàlaich ùrachaidhean gu fèin-obrachail
-
 detail-update-manual =
     .label = Dheth
     .tooltiptext = Na stàlaich ùrachaidhean gu fèin-obrachail
-
 # Used as a description for the option to allow or block an add-on in private windows.
 detail-private-browsing-label = Ruith ann an uinneagan prìobhaideach
-
 # Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest.  This
 # cannot be overridden by the user.
 detail-private-disallowed-label = Chan eil seo ceadaichte ann an uinneagan prìobhaideach
 detail-private-disallowed-description2 = Cha ruith an leudachan seo fhad ’s a nì thu brabhsadh prìobhaideach. <a data-l10n-name="learn-more">Barrachd fiosrachaidh</a>
-
 # Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
 detail-private-required-label = Feumaidh seo cothrom air uinneagan prìobhaideach
 detail-private-required-description2 = Gheibh an leudachan cothrom air a’ ghnìomhachd air loidhne agad nuair a bhios tu ri brabhsadh prìobhaideach. <a data-l10n-name="learn-more">Barrachd fiosrachaidh</a>
-
 detail-private-browsing-on =
     .label = Ceadaich
     .tooltiptext = Cuir an comas ann am brabhsadh prìobhaideach
-
 detail-private-browsing-off =
     .label = Na ceadaich
     .tooltiptext = Cuir à comas ann am brabhsadh prìobhaideach
-
 detail-home =
     .label = Duilleag-dhachaigh
-
 detail-home-value =
     .value = { detail-home.label }
-
 detail-repository =
     .label = Pròifil an tuilleadain
-
 detail-repository-value =
     .value = { detail-repository.label }
-
 detail-check-for-updates =
     .label = Lorg ùrachaidhean
     .accesskey = L
     .tooltiptext = Lorg ùrachaidhean airson an tuilleadain seo
-
 detail-show-preferences =
     .label =
         { PLATFORM() ->
@@ -174,35 +134,23 @@ detail-show-preferences =
             [windows] Atharraich roghainnean an tuilleadain seo
            *[other] Atharraich roghainnean an tuilleadain seo
         }
-
 detail-rating =
     .value = Rangachadh
-
 addon-restart-now =
     .label = Ath-thòisich an-dràsta
-
 disabled-unsigned-heading =
     .value = Chaidh cuid dhe na tuilleadain a chur à comas
-
 disabled-unsigned-description = Cha deach na tuilleadain a leanas a dhearbhadh a chum cleachdaidh ann an { -brand-short-name }. ’S urrainn dhut <label data-l10n-name="find-addons">feadhainn eile a lorg ’nan àite</label> no iarraidh air an luchd-leasachaidh aca an dearbhadh.
-
 disabled-unsigned-learn-more = Barrachd fiosrachaidh mu na nì sinn gus do chumail sàbhailte air loidhne.
-
 disabled-unsigned-devinfo = Mas e neach-leasachaidh a tha annad ’s tu a’ beachdachadh air dearbhadh nan tuilleadan agad, nach leugh thu<label data-l10n-name="learn-more">an stiùireadh againn</label>.
-
 plugin-deprecation-description = Dad a dhìth ort? Chan eil { -brand-short-name } a’ cur taic ri cuid a phlugain tuilleadh. <label data-l10n-name="learn-more">Barrachd fiosrachaidh.</label>
-
 legacy-warning-show-legacy = Seall leudachain dhìleabach
-
 legacy-extensions =
     .value = Leudachain dhìleabach
-
 legacy-extensions-description = Chan eil na leudachain seo a’ coileanadh stannardan { -brand-short-name } agus chaidh an cur às comas ri linn sin. <label data-l10n-name="legacy-learn-more">Fiosraich na tha ùr a thaobh leudachan</label>
-
 private-browsing-description2 =
     Tha { -brand-short-name } ag atharrachadh mar a dh’obraicheas leudachain ann am brabhsadh prìobhaideach. Cha ruith leudachan ùr sam bith a chuireas tu ri { -brand-short-name } ann an uinneagan prìobhaideach. Chan obraich an leudachan ann am brabhsadh prìobhaideach gus an ceadaich thu e sna roghainnean agus cha bhi cothrom aige air do ghnìomhachd air loidhne . Rinn sinn seo gus am brabhsadh prìobhaideach a chumail prìobhaideach.
     <label data-l10n-name="private-browsing-learn-more">Mar a stiùiricheas tu roghainnean nan leudachan</label>
-
 addon-category-discover = Na mholamaid
 addon-category-discover-title =
     .title = Na mholamaid
@@ -238,7 +186,6 @@ extensions-warning-update-security = Chaidh an sgrùdadh tèarainteachd air ùra
 extensions-warning-update-security-button = Cuir an comas
     .title = Cuir an comas sgrùdadh tèarainteachd nan tuilleadan
 
-
 ## Strings connected to add-on updates
 
 addon-updates-check-for-updates = Lorg ùrachaidhean
@@ -284,35 +231,28 @@ addon-open-about-debugging = Dì-bhugaich na tuilleadain
 # This is displayed in the page options menu
 addon-manage-extensions-shortcuts = Stiùirich ath-ghoiridean an leudachain
     .accesskey = S
-
 shortcuts-no-addons = Chan eil leudachan sam bith an comas agad.
 shortcuts-no-commands = Chan eil ath-ghoirid aig na leudachain a leanas:
 shortcuts-input =
     .placeholder = Cuir a-steach ath-ghoirid
-
 shortcuts-browserAction2 = Gnìomhaich putan a’ bhàr-inneal
 shortcuts-pageAction = Cuir gnìomh na duilleige an gnìomh
 shortcuts-sidebarAction = Toglaich am bàr-taoibh
-
 shortcuts-modifier-mac = Gabh a-staigh Ctrl, Alt no ⌘
 shortcuts-modifier-other = Gabh a-staigh Ctrl no Alt
 shortcuts-invalid = Combanaid mhì-dhligheach
 shortcuts-letter = Sgrìobh litir
 shortcuts-system = Cha ghabh ath-ghoirid { -brand-short-name } a thar-àithneadh
-
 # String displayed in warning label when there is a duplicate shortcut
 shortcuts-duplicate = Ath-ghoirid dhùblaichte
-
 # String displayed when a keyboard shortcut is already assigned to more than one add-on
 # Variables:
 #   $shortcut (string) - Shortcut string for the add-on
 shortcuts-duplicate-warning-message = Tha { $shortcut } ’ga chleachdadh ’na ath-ghoirid do dh’iomadh rud. Adhbharaichidh ath-ghoiridean dùblaichte giùlan ris nach eilear an dùil.
-
 # String displayed when a keyboard shortcut is already used by another add-on
 # Variables:
 #   $addon (string) - Name of the add-on
 shortcuts-exists = ’Ga chleachdadh le { $addon } mu thràth
-
 shortcuts-card-expand-button =
     { $numberToShow ->
         [one] Seall { $numberToShow } a bharrachd
@@ -320,9 +260,7 @@ shortcuts-card-expand-button =
         [few] Seall { $numberToShow } a bharrachd
        *[other] Seall { $numberToShow } a bharrachd
     }
-
 shortcuts-card-collapse-button = Seall nas lugha
-
 header-back-button =
     .title = Air ais
 
@@ -334,18 +272,15 @@ discopane-intro =
     Tha leudachain is ùrlaran coltach ri aplacaidean dhan bhrabhsair agad agus leigidh iad leat
     faclan-faire a dhìon, videothan a luchdadh a-nuas, bargain a lorg, sanasachd sàrachail a bhacadh,
     an coltas air a’ bhrabhsair agad atharrachadh is mòran a bharrachd. Tha na prògraman bathair-bhog
-    beaga seo ’gan leasachadh le treas-phràrtaidh gu tric. Seo roghadh is taghadh a tha
+    beaga seo ’gan leasachadh le treas-phàrtaidh gu tric. Seo roghadh is taghadh a tha
     { -brand-product-name } <a data-l10n-name="learn-more-trigger">a’ moladh</a> airson
     tèarainteachd, dèanadas is gleusan nas fheàrr.
-
 # Notice to make user aware that the recommendations are personalized.
 discopane-notice-recommendations =
     Tha cuid dhe na molaidhean seo pearsanaichte. Tha iad stèidhichte air leudachain
     eile a stàlaich thu, roghainnean na pròifil is stadastaireachd a’ chleachdaidh.
 discopane-notice-learn-more = Barrachd fiosrachaidh
-
 privacy-policy = Am poileasaidh prìobhaideachd
-
 # Refers to the author of an add-on, shown below the name of the add-on.
 # Variables:
 #   $author (string) - The name of the add-on developer.
@@ -360,7 +295,6 @@ install-theme-button = Stàlaich an t-ùrlar
 # the detailed add-on view is opened, from where the add-on can be managed.
 manage-addon-button = Stiùirich
 find-more-addons = Lorg barrachd leudachain
-
 # This is a label for the button to open the "more options" menu, it is only
 # used for screen readers.
 addon-options-button =
@@ -386,48 +320,36 @@ preferences-addon-button =
 details-addon-button = Mion-fhiosrachadh
 release-notes-addon-button = Nòtaichean sgaoilidh
 permissions-addon-button = Ceadan
-
 extension-enabled-heading = An comas
 extension-disabled-heading = À comas
-
 theme-enabled-heading = An comas
 theme-disabled-heading = À comas
-
 plugin-enabled-heading = An comas
 plugin-disabled-heading = À comas
-
 dictionary-enabled-heading = An comas
 dictionary-disabled-heading = À comas
-
 locale-enabled-heading = An comas
 locale-disabled-heading = À comas
-
 ask-to-activate-button = Faighnich mus cuirear an gnìomh
-
 always-activate-button = Cuir an gnìomh an-còmhnaidh
 never-activate-button = Na cuir an gnìomh idir
-
 addon-detail-author-label = Ùghdar
 addon-detail-version-label = Tionndadh
 addon-detail-last-updated-label = Ùrachadh mu dheireadh
 addon-detail-homepage-label = Duilleag-dhachaigh
 addon-detail-rating-label = Rangachadh
-
 # Message for add-ons with a staged pending update.
 install-postponed-message = Thèid an leudachan seo ùrachadh nuair a thèid { -brand-short-name } ath-thòiseachadh.
 install-postponed-button = Ùraich an-dràsta
-
 # The average rating that the add-on has received.
 # Variables:
 #   $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
 five-star-rating =
     .title = Rangachadh { NUMBER($rating, maximumFractionDigits: 1) } à 5
-
 # This string is used to show that an add-on is disabled.
 # Variables:
 #   $name (string) - The name of the add-on
 addon-name-disabled = { $name } (à comas)
-
 # The number of reviews that an add-on has received on AMO.
 # Variables:
 #   $numberOfReviews (number) - The number of reviews received
@@ -445,14 +367,12 @@ addon-detail-reviews-link =
 #   $addon (string) - Name of the add-on
 pending-uninstall-description = Chaidh <span data-l10n-name="addon-name">{ $addon }</span> a thoirt air falbh.
 pending-uninstall-undo-button = Neo-dhèan
-
 addon-detail-updates-label = Ceadaich ùrachaidhean fèin-obrachail
 addon-detail-updates-radio-default = Bun-roghainn
 addon-detail-updates-radio-on = Air
 addon-detail-updates-radio-off = Dheth
 addon-detail-update-check-label = Thoir sùil airson ùrachaidhean
 install-update-button = Ùraich
-
 # This is the tooltip text for the private browsing badge in about:addons. The
 # badge is the private browsing icon included next to the extension's name.
 addon-badge-private-browsing-allowed2 =
@@ -468,7 +388,6 @@ addon-detail-private-browsing-disallow = Na ceadaich
 addon-badge-recommended2 =
     .title = Cha mhol { -brand-product-name } ach leudachain a choileanas na stannardan againn a thaobh tèarainteachd is dèanadas
     .aria-label = { addon-badge-recommended2.title }
-
 # We hard code "Mozilla" in the string below because the extensions are built
 # by Mozilla and we don't want forks to display "by Fork".
 addon-badge-line3 =
@@ -482,19 +401,14 @@ addon-badge-verified2 =
 
 available-updates-heading = Ùrachaidhean a tha ri am faighinn
 recent-updates-heading = Na chaidh ùrachadh o chionn goirid
-
 release-notes-loading = ’Ga luchdadh…
 release-notes-error = Tha sinn duilich ach thachair mearachd rè luchdadh nan nòtaichean sgaoilidh.
-
 addon-permissions-empty = Chan eil an leudachan seo feumach air cead sam bith
-
 addon-permissions-required = Ceadan riatanach dha na bun-ghleusan:
 addon-permissions-optional = Ceadan roghainneil airson barrachd ghleusan:
 addon-permissions-learnmore = Barrachd fiosrachaidh mu cheadan
-
 recommended-extensions-heading = Leudachain a mholamaid
 recommended-themes-heading = Ùrlaran a mholamaid
-
 # A recommendation for the Firefox Color theme shown at the bottom of the theme
 # list view. The "Firefox Color" name itself should not be translated.
 recommended-theme-1 = Am bu mhiann leat cruthachadh? <a data-l10n-name="link">Tog an t-ùrlar agad fhèin le Firefox Color.</a>
@@ -509,10 +423,8 @@ locale-heading = Stiùirich na cànain agad
 updates-heading = Stiùirich na h-ùrachaidhean agad
 discover-heading = Cuir dreach pearsanta air { -brand-short-name }
 shortcuts-heading = Stiùirich ath-ghoiridean an leudachain
-
 default-heading-search-label = Lorg barrachd leudachain
 addons-heading-search-input =
     .placeholder = Lorg air addons.mozilla.org
-
 addon-page-options-button =
     .title = Innealan airson a h-uile tuilleadan
diff --git a/thunderbird-l10n/gd/localization/gd/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/gd/localization/gd/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gd/localization/gd/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gd/manifest.json b/thunderbird-l10n/gd/manifest.json
index 35b8828c3e0ed9e3426130202f26c925b4920ffb..5a9afd85a66c4906698a3e9b7f60f6513718f85e 100644
--- a/thunderbird-l10n/gd/manifest.json
+++ b/thunderbird-l10n/gd/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Gàidhlig Language Pack",
   "description": "Language pack for Thunderbird for gd",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "gd": {
-      "version": "20210816065745",
+      "version": "20210831121026",
       "chrome_resources": {
         "alerts": "chrome/gd/locale/gd/alerts/",
         "autoconfig": "chrome/gd/locale/gd/autoconfig/",
diff --git a/thunderbird-l10n/gl/chrome/gl/locale/gl/lightning/lightning.properties b/thunderbird-l10n/gl/chrome/gl/locale/gl/lightning/lightning.properties
index 9167082ca3ff2f94ff0e2c35e1ca667a4d5a57ee..1a6f350c2aed6057614f50489d2f23849fc6f228 100644
--- a/thunderbird-l10n/gl/chrome/gl/locale/gl/lightning/lightning.properties
+++ b/thunderbird-l10n/gl/chrome/gl/locale/gl/lightning/lightning.properties
@@ -276,7 +276,7 @@ imipBarProcessedMultipleNeedsAction=This message contains multiple events that y
 imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarCalendarDeactivated=This message contains event information. Enable a calendar to handle it.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-context-menus.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-editable-item.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-print.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/calendar/calendar-widgets.ftl b/thunderbird-l10n/gl/localization/gl/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/localization/gl/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/gl/localization/gl/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/gl/localization/gl/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/gl/manifest.json b/thunderbird-l10n/gl/manifest.json
index b78d6aecc0141b7e0ccea8e96eb76851e0de8368..cf24cd3be48c49488333fb957ee9feec57b27d93 100644
--- a/thunderbird-l10n/gl/manifest.json
+++ b/thunderbird-l10n/gl/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Galego (España) Language Pack",
   "description": "Language pack for Thunderbird for gl",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "gl": {
-      "version": "20210813140057",
+      "version": "20210831121041",
       "chrome_resources": {
         "alerts": "chrome/gl/locale/gl/alerts/",
         "autoconfig": "chrome/gl/locale/gl/autoconfig/",
diff --git a/thunderbird-l10n/he/chrome/he/locale/he/lightning/lightning.properties b/thunderbird-l10n/he/chrome/he/locale/he/lightning/lightning.properties
index 54e362679f7e9ba7eab81c7cb21dcd79f71e099f..eff8ff8248eb269f2a741084946437a1b26ba372 100644
--- a/thunderbird-l10n/he/chrome/he/locale/he/lightning/lightning.properties
+++ b/thunderbird-l10n/he/chrome/he/locale/he/lightning/lightning.properties
@@ -207,7 +207,7 @@ imipBarProcessedMultipleNeedsAction=This message contains multiple events that y
 imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarCalendarDeactivated=This message contains event information. Enable a calendar to handle it.
diff --git a/thunderbird-l10n/he/localization/he/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/he/localization/he/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/he/localization/he/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/he/localization/he/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/calendar/calendar-print.ftl b/thunderbird-l10n/he/localization/he/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/he/localization/he/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/he/localization/he/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/accountManager.ftl b/thunderbird-l10n/he/localization/he/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/he/localization/he/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/he/localization/he/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/he/localization/he/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/he/localization/he/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/chat.ftl b/thunderbird-l10n/he/localization/he/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/he/localization/he/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/exportDialog.ftl b/thunderbird-l10n/he/localization/he/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/importDialog.ftl b/thunderbird-l10n/he/localization/he/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/preferences/am-copies.ftl b/thunderbird-l10n/he/localization/he/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/messenger/troubleshootMode.ftl b/thunderbird-l10n/he/localization/he/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/he/localization/he/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/he/localization/he/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..c610be9dbe507bdf75eed32575409c1e2614b32b
--- /dev/null
+++ b/thunderbird-l10n/he/localization/he/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = לסיים את התקנת { -brand-short-name }?
+prompt-to-install-message = יש להשלים את ההתקנה כדי לעזור לשמור על { -brand-short-name } מעודכן ולמנוע אובדן נתונים. { -brand-short-name } יתווסף לתיקיית היישומים ול־Dock שלך.
+prompt-to-install-yes-button = להתקין
+prompt-to-install-no-button = לא להתקין
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = ההתקנה של { -brand-short-name } נכשלה.
+install-failed-message = ‏{ -brand-short-name } נכשל בהתקנה אך ימשיך לפעול.
diff --git a/thunderbird-l10n/he/localization/he/toolkit/global/textActions.ftl b/thunderbird-l10n/he/localization/he/toolkit/global/textActions.ftl
index d8d89401e9f032d428313dce353feec07c784d32..695a3c449c3cc6f253587ec15e49e9d590e8a00f 100644
--- a/thunderbird-l10n/he/localization/he/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/he/localization/he/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = ביטול
     .accesskey = ט
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = ביצוע שוב
     .accesskey = צ
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = גזירה
     .accesskey = ×’
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = העתקה
     .accesskey = ת
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = הדבקה
     .accesskey = ×”
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = מחיקה
     .accesskey = ×—
-
 text-action-select-all =
     .label = בחירת הכול
     .accesskey = ×›
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = אין הצעות איות
+text-action-spell-add-to-dictionary =
+    .label = הוספה למילון
+    .accesskey = מ
+text-action-spell-undo-add-to-dictionary =
+    .label = ביטול הוספה למילון
+    .accesskey = ב
+text-action-spell-check-toggle =
+    .label = בדיקת איות
+    .accesskey = ד
+text-action-spell-add-dictionaries =
+    .label = הוספת מילונים…
+    .accesskey = מ
+text-action-spell-dictionaries =
+    .label = שפות
+    .accesskey = ש
diff --git a/thunderbird-l10n/he/manifest.json b/thunderbird-l10n/he/manifest.json
index 17962a0612016f3d730dd7094f39c76e88157090..8dd18d2bc323f18236fec574faf87976d4b5fffe 100644
--- a/thunderbird-l10n/he/manifest.json
+++ b/thunderbird-l10n/he/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Hebrew (IL) Language Pack",
   "description": "Language pack for Thunderbird for he",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "he": {
-      "version": "20210814182725",
+      "version": "20210831200725",
       "chrome_resources": {
         "alerts": "chrome/he/locale/he/alerts/",
         "autoconfig": "chrome/he/locale/he/autoconfig/",
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/hr/localization/hr/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/hr/localization/hr/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..b07d88985542fd9bf421aa1b55c6a715ff0dd8c6
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,11 @@
+# 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/.
+
+import-ab-csv-window =
+    .title = Uvoz adresara iz tekstualne datoteke
+#   $recordNumber (Number) - The current record number of the preview data.
+import-ab-csv-preview-record-number = Pregled uvoza podataka za zapis { $recordNumber }
+import-ab-csv-dialog =
+    .buttonlabelaccept = Uvoz
+    .buttonaccesskeyaccept = U
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/chat.ftl b/thunderbird-l10n/hr/localization/hr/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..f06b43d609ffeaf4d40e30af0418c8f6bf1bc5a3
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/chat.ftl
@@ -0,0 +1,16 @@
+# 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/.
+
+chat-joining-chat-icon2 =
+    .alt = Pridruživanje razgovoru
+chat-left-chat-icon2 =
+    .alt = Napustio razgovor
+chat-participant-owner-role-icon2 =
+    .alt = Vlasnik
+chat-participant-administrator-role-icon2 =
+    .alt = Administrator
+chat-participant-moderator-role-icon2 =
+    .alt = Moderator
+chat-participant-voiced-role-icon2 =
+    .alt = Sudionici mogu slati poruke
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/hr/localization/hr/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..ae4358d1c750c35dc01ae731f91e0a8739de4574
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,20 @@
+# 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/.
+
+compact-dialog-window =
+    .title = Sažmi mape
+    .style = width: 50em;
+compact-dialog =
+    .buttonlabelaccept = Sažmi sada
+    .buttonaccesskeyaccept = S
+    .buttonlabelcancel = Podsjeti me kasnije
+    .buttonaccesskeycancel = k
+    .buttonlabelextra1 = Saznaj više…
+    .buttonaccesskeyextra1 = v
+# Variables:
+#  $data (String): The amount of space to be freed, formatted byte, MB, GB, etc., based on the size.
+compact-dialog-message = { -brand-short-name } mora redovno održavati datoteke kako bi poboljšao performanse vaših mapa za poštu. Ova radnja će osloboditi { $data } prostora na vašem disku bez brisanja vaših poruka. Kako biste dozvolili { -brand-short-name }u da ovo radi automatski u budućnosti, označite kućicu niže prije nego li odaberete ‘{ compact-dialog.buttonlabelaccept }’.
+compact-dialog-never-ask-checkbox =
+    .label = Automatski sažmi mape u budućnosti
+    .accesskey = A
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/exportDialog.ftl b/thunderbird-l10n/hr/localization/hr/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..0f8505d052c67bed5ad6a693ee51cd159700a0a5
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/exportDialog.ftl
@@ -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/.
+
+export-dialog-brand-name = { -brand-product-name }
+export-dialog-window =
+    .title = Izvoz
+export-dialog =
+    .buttonlabelaccept = Dalje
+export-dialog-button-finish = Završi
+export-dialog-file-picker = Izvoz u zip datoteku
+export-dialog-desc1 = Izvezite račune e-pošte, poruke e-pošte, adresare i postavke u zip datoteku.
+export-dialog-desc2 = Po potrebi, možete uvesti zip datoteku kako biste obnovili svoj profil.
+export-dialog-exporting = Izvoz…
+export-dialog-exported = Izvezeno!
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/importDialog.ftl b/thunderbird-l10n/hr/localization/hr/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..4914bb66fcd08a08aa97a54d424bfe8291b4e3fd
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/importDialog.ftl
@@ -0,0 +1,9 @@
+# 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/.
+
+# Short name of the import module
+thunderbird-import-name = Thunderbird
+# Description of the import module
+thunderbird-import-description = Uvezite poštu iz Thunderbird profilne mape.
+import-select-profile-zip = Odaberite komprimiranu mapu profila
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/preferences/am-copies.ftl b/thunderbird-l10n/hr/localization/hr/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..1311ebfba9f54be7d0b7a755917463e860234237
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/preferences/am-copies.ftl
@@ -0,0 +1,5 @@
+# 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/.
+
+account-prefs-show-address-row-description = Ostavite polje za adresu praznim kako biste uvijek prikazali polje adrese prilikom započimanja nove poruke.
diff --git a/thunderbird-l10n/hr/localization/hr/messenger/troubleshootMode.ftl b/thunderbird-l10n/hr/localization/hr/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..8b1b43bdb9ef85a68298d7eab2320095219f9176
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/messenger/troubleshootMode.ftl
@@ -0,0 +1,32 @@
+# 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/.
+
+troubleshoot-mode-window =
+    .title = { -brand-short-name } način rješavanja problema
+    .style = width: 37em;
+troubleshoot-mode-description = Upotrijebite { -brand-short-name } način rješavanja problema za dijagnosticiranje problema. Vaši dodaci i prilagodbe biti će privremeno onemogućeni.
+troubleshoot-mode-description2 = Neke od ovih promjena možete učiniti trajnima:
+troubleshoot-mode-disable-addons =
+    .label = Onemogući sve dodatke
+    .accesskey = d
+troubleshoot-mode-reset-toolbars =
+    .label = Vrati alatne trake i tipke na početne postavke
+    .accesskey = r
+troubleshoot-mode-change-and-restart =
+    .label = Spremi promjene i ponovno pokreni
+    .accesskey = m
+troubleshoot-mode-continue =
+    .label = Nastavite u načinu za rješavanje problema
+    .accesskey = N
+troubleshoot-mode-quit =
+    .label =
+        { PLATFORM() ->
+            [windows] Izlaz
+           *[other] Izlaz
+        }
+    .accesskey =
+        { PLATFORM() ->
+            [windows] I
+           *[other] I
+        }
diff --git a/thunderbird-l10n/hr/localization/hr/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/hr/localization/hr/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hr/localization/hr/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hr/manifest.json b/thunderbird-l10n/hr/manifest.json
index 55f2b420164eae99ae05fa2d0320c5bf604ad535..50ef0a6418ad072c8141d8e639e275f41e798ba8 100644
--- a/thunderbird-l10n/hr/manifest.json
+++ b/thunderbird-l10n/hr/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Hrvatski (HR) Language Pack",
   "description": "Language pack for Thunderbird for hr",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "hr": {
-      "version": "20210813140220",
+      "version": "20210831121201",
       "chrome_resources": {
         "alerts": "chrome/hr/locale/hr/alerts/",
         "autoconfig": "chrome/hr/locale/hr/autoconfig/",
diff --git a/thunderbird-l10n/hsb/chrome/hsb/locale/hsb/global/layout/htmlparser.properties b/thunderbird-l10n/hsb/chrome/hsb/locale/hsb/global/layout/htmlparser.properties
index cc1b1e8fd11df7e55282b4b32ef75da37e11bc0a..e3a6e9dc6775856a966ef7558c9b1f7e2097522c 100644
--- a/thunderbird-l10n/hsb/chrome/hsb/locale/hsb/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/hsb/chrome/hsb/locale/hsb/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Kónc dataje znutřka systemoweho identifikatora.
 errExpectedSystemId=Systemowy identifikator wočakowany, ale doctype je so skónčił.
 errMissingSpaceBeforeDoctypeName=Falowaca mjezera před mjenom doctype.
 errHyphenHyphenBang=“--!” w komentarje namakany.
+errNestedComment=„<!--“ je w komentarje. Prawdźepodobna zawina: Zakašćikowany komentar (njedowoleny).
 errNcrZero=Znamješkowa referenca nulu wopřijima.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Žana mjezera mjez klučowym słowom doctype “SYSTEM” a pazorkami.
 errNoSpaceBetweenPublicAndSystemIds=Žana mjezera mjez zjawnymi a systemowymi identifikatorami doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Njezačinjene elementy na staplu.
 errEndTagDidNotMatchCurrentOpenElement=Kónčny element “%1$S” njeje mjenu aktualneho wočinjeneho elementa wotpowědował (“%2$S”).
 errEndTagViolatesNestingRules=Kónčny element “%1$S” je so přećiwo zakašćikowanskim prawidłam přešoł.
 errEndWithUnclosedElements=Kónčny element “%1$S” namakany, ale běchu wotewrjene elementy.
+errListUnclosedStartTags=Njezačinjeny element abo njezačinjene elementy.
diff --git a/thunderbird-l10n/hsb/localization/hsb/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/hsb/localization/hsb/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..97a299ebf4b8ab3548016552544577937d95281a
--- /dev/null
+++ b/thunderbird-l10n/hsb/localization/hsb/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,47 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Podawk zhašeć
+        [two] Podawkaj zhašeć
+        [few] Podawki zhašeć
+       *[other] Podawki zhašeć
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Chceće woprawdźe tutón podawk zhašeć?
+        [two] Chceće woprawdźe tutej { $count } podawkaj zhašeć?
+        [few] Chceće woprawdźe tute { $count } podawki zhašeć?
+       *[other] Chceće woprawdźe tute { $count } podawkow zhašeć?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Nadawk zhašeć
+        [two] Nadawkaj zhašeć
+        [few] Nadawki zhašeć
+       *[other] Nadawki zhašeć
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Chceće woprawdźe tutón nadawk zhašeć?
+        [two] Chceće woprawdźe tutej { $count } nadawkaj zhašeć?
+        [few] Chceće woprawdźe tute { $count } nadawki zhašeć?
+       *[other] Chceće woprawdźe tute { $count } nadawkow zhašeć?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Zapisk zhašeć
+        [two] Zapiskaj zhašeć
+        [few] Zapiski zhašeć
+       *[other] Zapiski zhašeć
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Chceće woprawdźe tutón zapisk zhašeć?
+        [two] Chceće woprawdźe tutej { $count } zapiskaj zhašeć?
+        [few] Chceće woprawdźe tute { $count } zapiski zhašeć?
+       *[other] Chceće woprawdźe tute { $count } zapiskow zhašeć?
+    }
+calendar-delete-prompt-disable-message = Hižo so njeprašeć.
diff --git a/thunderbird-l10n/hsb/localization/hsb/calendar/preferences.ftl b/thunderbird-l10n/hsb/localization/hsb/calendar/preferences.ftl
index cc184dd7e90fdad828b706f76d96b6abf0b5cd36..f4499af54a93c6b23cbf46b0ba39857ca24701b1 100644
--- a/thunderbird-l10n/hsb/localization/hsb/calendar/preferences.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Podawki a nadawki w rajtarku město w dialogowym woknje wobdźěłać.
     .accesskey = d
+prompt-delete-label =
+    .label = Prašeć so, prjedy hač so podawki a nadawki zhašeja.
+    .accesskey = P
 accessibility-legend = Bjezbarjernosć
 accessibility-colors-label =
     .label = Barby za bjezbarjernosć optiměrować
diff --git a/thunderbird-l10n/hsb/localization/hsb/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/hsb/localization/hsb/messenger/accountcreation/accountSetup.ftl
index 285428b6997ef2dffc9339101698c32580cd7e9f..58a5a3e769fc00557990d73444ec96765b09836c 100644
--- a/thunderbird-l10n/hsb/localization/hsb/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Konfigurowanje konta
 ## Header
 
 account-setup-title = Nastajće swoju eksistowacu e-mejlowu adresu
-
 account-setup-description =
     Zo byšće swoju aktualnu e-mejlowu adresu wužiwał, zapodajće swoje přizjewjenske daty.<br/>
     { -brand-product-name } budźe awtomatisce za fungowacej a doporučenej serwerowej konfiguraciju pytać.
-
 account-setup-secondary-description = { -brand-product-name } budźe awtomatisce za fungowacej a doporučenej serwerowej konfiguraciju pytać.
-
 account-setup-success-title = Konto je so wuspěšnje załožiło
-
 account-setup-success-description = Móžeće tute konto nětko z { -brand-short-name } wužiwać.
-
 account-setup-success-secondary-description = Zwjazajće podobne słužby a konfigurujće rozšěrjene kontowe nastajenja, zo byšće dožiwjenje polěpšił.
 
 ## Form fields
 
 account-setup-name-label = Waše dospołne mjeno
     .accesskey = d
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Jan Njeznaty
-
 account-setup-name-info-icon =
     .title = Waše mjeno, kaž so druhim pokazuje
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = E-mejlowa adresa
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = jan.njeznaty@example.com
-
 account-setup-email-info-icon =
     .title = Waša eksistowaca e-mejlowa adresa
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Hesło
     .accesskey = H
     .title = Opcionalne, wužiwa so jenož, zo by so wužiwarske mjeno přepruwowało
-
 account-provisioner-button = Wobstarajće sej e-mejlowu adresu
     .accesskey = b
-
 account-setup-password-toggle =
     .title = Hesło pokazać/schować
-
+account-setup-password-toggle-show =
+    .title = Hesło lutym teksće pokazać
+account-setup-password-toggle-hide =
+    .title = Hesło schować
 account-setup-remember-password = Hesło sej spomjatkować
     .accesskey = m
-
 account-setup-exchange-label = Waše přizjewjenje
     .accesskey = z
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = YOURDOMAIN\yourusername
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Domenowe přizjewjenje
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Přetorhnyć
     .accesskey = P
-
 account-setup-button-manual-config = Manuelnje konfigurować
     .accesskey = k
-
 account-setup-button-stop = Zastajić
     .accesskey = Z
-
 account-setup-button-retest = Znowa testować
     .accesskey = t
-
 account-setup-button-continue = Dale
     .accesskey = D
-
 account-setup-button-done = Dokónčeny
     .accesskey = o
 
 ## Notifications
 
 account-setup-looking-up-settings = Konfiguracija so přepytuje…
-
 account-setup-looking-up-settings-guess = Konfiguracija so přepytuje: Zwučene serwerowe mjena so wupruwuja…
-
 account-setup-looking-up-settings-half-manual = Konfiguracija so přepytuje: Serwer so testuje
-
 account-setup-looking-up-disk = Konfiguracija so přepytuje: Instalacija { -brand-short-name }…
-
 account-setup-looking-up-isp = Konfiguracija so přepytuje: E-mejlowy poskićowar…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Konfiguracija so přepytuje: Datowa banka Mozilla ISP…
-
 account-setup-looking-up-mx = Konfiguracija so přepytuje: domena dochadźaceje e-mejle…
-
 account-setup-looking-up-exchange = Konfiguracija so přepytuje: Exchange server…
-
 account-setup-checking-password = Hesło so kontroluje…
-
 account-setup-installing-addon = Přidatk so sćahuje a instaluje…
-
 account-setup-success-half-manual = Slědowace nastajenja su so přez wuprobowanje podateho serwera namakali:
-
 account-setup-success-guess = Konfiguracija přez probowanje zwučenych serwerowych mjenow namakana.
-
 account-setup-success-guess-offline = Sće offline. Smy nastajenja předpokładli, ale dyrbiće prawe nastajenja zapodać.
-
 account-setup-success-password = Hesło je w porjadku
-
 account-setup-success-addon = Přidatk je so wuspěšnje zainstalował
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Konfiguracija w datowej bance Mozilla ISP namakana.
-
 account-setup-success-settings-disk = Konfiguracija na instalaciji { -brand-short-name } namakana
-
 account-setup-success-settings-isp = Konfiguracija při e-mejlowym poskićowarju namakana.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Konfiguracija je so za serwer Microsoft Exchange namakała.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Konfiguracija je so za serwer Microsof
 
 account-setup-step1-image =
     .title = Spočatna konfiguracija
-
 account-setup-step2-image =
     .title = Začituje so…
-
 account-setup-step3-image =
     .title = Konfiguracija je so namakała
-
 account-setup-step4-image =
     .title = Zwiskowy zmylk
-
 account-setup-step5-image =
     .title = Konto załožene
-
 account-setup-privacy-footnote2 = Waše přizjewjenske daty budu so jenož lokalnje na wašim ličaku składować.
-
 account-setup-selection-help = Njejsće sej wěsty, štož maće wubrać?
-
 account-setup-selection-error = Trjebaće pomoc?
-
 account-setup-success-help = Nochceće, što maće dale činić?
-
 account-setup-documentation-help = Konfiguraciska dokumentacija
-
 account-setup-forum-help = Forum pomocy
-
 account-setup-privacy-help = Prawidła priwatnosće
-
 account-setup-getting-started = Prěnje kroki
 
 ## Results area
@@ -179,41 +128,25 @@ account-setup-results-area-title =
         [few] K dispoziciji stejace konfiguracije
        *[other] K dispoziciji stejacych konfiguracijow
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Dźeržće swoje rjadowaki a e-mejle na swojim serwerje synchrone
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Wobchowajće swoje rjadowaki a e-mejle na swojim ličaku
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Serwer Microsoft Exchange abo mróčelowe słužby Office 365 wužiwać
-
 account-setup-incoming-title = Dochadźace
-
 account-setup-outgoing-title = Wuchadźace
-
 account-setup-username-title = Wužiwarske mjeno
-
 account-setup-exchange-title = Serwer
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Žane zaklučowanje
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Eksistowacy SMTP-serwer wužiwać
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -223,81 +156,54 @@ account-setup-result-username-different = Dochadny: { $incoming }, wuchadny: { $
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Awtentifikacija je so nimokuliła. Pak the zapodate přizjewjenske daty su wopačne pak přidatne wužiwarske mjeno je trěbne za přizjewjenje. Tute wužiwarske mjeno je zwjetša přizjewjenje Windowsoweje domeny z domenu abo bjez domeny (na přikład jananjeznatowa abo AD\\jananjeznatowa).
-
 account-setup-credentials-wrong = Awtentifikacija je so nimokuliła. Prošu přepruwujće wužiwarske mjeno a hesło
-
 account-setup-find-settings-failed = { -brand-short-name } njemóžeše nastajenja za waše e-mejlowe konto namakać.
-
 account-setup-exchange-config-unverifiable = Konfiguracija njeda so přepruwować. Jeli waše wužiwarske mjeno a waše hesło stej korektnej, je najskerje serwerowy adminsitrator wubranu konfiguraciju za waše konto znjemóžnił. Wubjerće druhi protokol.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Serwerowe nastajenja
-
 account-setup-incoming-server-legend = Dochadny serwer
-
 account-setup-protocol-label = Protokol:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Mjeno hosta:
-
 account-setup-port-label = Port:
     .title = Za awtomatiske wotkryće portowe čisło na 0 stajić
-
 account-setup-auto-description = { -brand-short-name } budźe pospytować, pola awtomatisce wotkryć, kotrež su prózdne.
-
 account-setup-ssl-label = Zwiskowa wěstota:
-
 account-setup-outgoing-server-legend = Wuchadny serwer
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Awtomatisce zwěsćić
-
 ssl-no-authentication-option = Žana awtentifikacija
-
 ssl-cleartext-password-option = Normalne hesło
-
 ssl-encrypted-password-option = Zaklučowane hesło
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Žane
-
 account-setup-auth-label = Awtentifikaciska metoda:
-
 account-setup-username-label = Wužiwarske mjeno:
-
 account-setup-advanced-setup-button = Rozšěrjena konfiguracija
     .accesskey = R
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Warnowanje!
-
 account-setup-insecure-incoming-title = Dochadne nastajenja:
-
 account-setup-insecure-outgoing-title = Wuchadne nastajenja:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> zaklučowanje njewužiwa.
-
 account-setup-warning-cleartext-details = Njewěste serwery njewužiwaja zaklučowane zwiski, zo bychu waše hesła a priwatne daty škitali. Přez zwjazanje z tutym serwerom wy móhli swoje hesło a priwatne daty přeradźić.
-
 account-setup-insecure-server-checkbox = Rozumju rizika
     .accesskey = u
-
 account-setup-insecure-description = { -brand-short-name } móže wam zmóžnić, zo z pomocu podatych konfiguracjiow k swojej e-mejli dóńdźeće. Ale wy měł so ze swojim administratorom abo e-mejlowym poskićowarjom tutych njepřihódnych zwiskow dla do zwiska stajić. Hlejće <a data-l10n-name="thunderbird-faq-link">husto stajene prašenja Thunderbird</a> za dalše informacije.
-
 insecure-dialog-cancel-button = Nastajenja změnić
     .accesskey = N
-
 insecure-dialog-confirm-button = Wobkrućić
     .accesskey = b
 
@@ -306,51 +212,45 @@ insecure-dialog-confirm-button = Wobkrućić
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } je informacije wo konfiguraciji konta na { $domain } namakał. Chceće pokročować a swoje přizjewjenske daty wotpósłać?
-
 exchange-dialog-confirm-button = Přizjewjenje
-
 exchange-dialog-cancel-button = Přetorhnyć
 
+## Dismiss account creation dialog
+
+exit-dialog-title = E-mejlowe konto skonfigurowane njeje
+exit-dialog-description = Chceće woprawdźe konfigurowanski proces přetorhnyć? { -brand-short-name } da so hišće bjez e-mejloweho konta wužiwać, ale wjele funkcijow k dispoziciji njebudźe.
+account-setup-no-account-checkbox = { -brand-short-name } bjez e-mejloweho konta wužiwać
+    .accesskey = b
+exit-dialog-cancel-button = Dale konfigurować
+    .accesskey = D
+exit-dialog-confirm-button = Konfiguracija skónčić
+    .accesskey = K
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Zmylk při załoženju konta
-
 account-setup-error-server-exists = Dochadny serwer hižo eksistuje.
-
 account-setup-confirm-advanced-title = Rozšěrjenu konfiguraciju wobkrućić
-
 account-setup-confirm-advanced-description = Tutón dialog so začini a konto z aktualnymi nastajenjemi so załoži, byrnjež konfiguracija wopačna była. Chceće pokročować?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Instalować
-
 account-setup-addon-install-intro = Přidatk třećeho poskićowarja móže wam přistup na waše e-mejlowe konto na tutym serwerje zmóžnić:
-
 account-setup-addon-no-protocol = Tutón e-mejlowy serwer bohužel wotewrjene protokole njepodpěruje. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Kontowe nastajenja
-
 account-setup-encryption-button = Zaklučowanje wot kónca do kónca
-
 account-setup-signature-button = Signaturu přidać
-
 account-setup-dictionaries-button = Słowniki sćahnyć
-
 account-setup-address-book-carddav-button = Z CardDAV-adresnikom zwjazać
-
 account-setup-address-book-ldap-button = Z LDAP-adresnikom zwjazać
-
 account-setup-calendar-button = Ze zdalenym kalenderom zwjazać
-
 account-setup-linked-services-title = Zwjazajće swoje zwjazane słužby
-
 account-setup-linked-services-description = { -brand-short-name } je druhe słužby namakał, kotrež su z wašim e-mejlowym kontom zwjazane.
-
 account-setup-no-linked-description = Konfigurujće swoje słužby, zo byšće najwjace ze swojeho dožiwjenja { -brand-short-name } wućahnył.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -360,7 +260,6 @@ account-setup-found-address-books-description =
         [few] { -brand-short-name } je { $count } adresniki namakał, kotrež su z wašim e-mejlowym kontom zwjazane.
        *[other] { -brand-short-name } je { $count } adresnikow namakał, kotrež su z wašim e-mejlowym kontom zwjazane.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -370,51 +269,33 @@ account-setup-found-calendars-description =
         [few] { -brand-short-name } je { $count } protyki namakał, kotrež su z wašim e-mejlowym kontom zwjazane.
        *[other] { -brand-short-name } je { $count } protykow namakał, kotrež su z wašim e-mejlowym kontom zwjazane.
     }
-
 account-setup-button-finish = Dokónčić
     .accesskey = D
-
 account-setup-looking-up-address-books = Adresniki so pytaja…
-
 account-setup-looking-up-calendars = Protyki so pytaja…
-
 account-setup-address-books-button = Adresniki
-
 account-setup-calendars-button = Protyki
-
 account-setup-connect-link = Zwjazać
-
 account-setup-existing-address-book = Zwjazany
     .title = Adresnik je hižo zwjazany
-
 account-setup-existing-calendar = Zwjazany
     .title = Protyka je hižo zwjazana
-
 account-setup-connect-all-calendars = Wšě protyki zwjazać
-
 account-setup-connect-all-address-books = Wšě adresniki zwjazać
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Protyku zwjazać
-
 calendar-dialog-cancel-button = Přetorhnyć
     .accesskey = P
-
 calendar-dialog-confirm-button = Zwjazać
     .accesskey = a
-
 account-setup-calendar-name-label = Mjeno
-
 account-setup-calendar-name-input =
     .placeholder = Moja protyka
-
 account-setup-calendar-color-label = Barba
-
 account-setup-calendar-refresh-label = Aktualizować
-
 account-setup-calendar-refresh-manual = Manuelnje
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Kóždu mjeńšinu
@@ -422,12 +303,9 @@ account-setup-calendar-refresh-interval =
         [few] Kóžde { $count } mjeńšiny
        *[other] Kóžde { $count } mjeńšin
     }
-
 account-setup-calendar-read-only = Jenož čitajomny
     .accesskey = J
-
 account-setup-calendar-show-reminders = Dopomnjeća pokazać
     .accesskey = D
-
 account-setup-calendar-offline-support = Podpěra offline
     .accesskey = P
diff --git a/thunderbird-l10n/hsb/localization/hsb/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/hsb/localization/hsb/messenger/addressbook/aboutAddressBook.ftl
index ccf4f7189e6e94aac36da1faeef18d9626f358e0..988bdef63ed32294574012ae00890e84c4342e43 100644
--- a/thunderbird-l10n/hsb/localization/hsb/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = WÅ¡Ä› adresniki
-
 about-addressbook-books-context-properties =
     .label = Kajkosće
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Zhašeć
 about-addressbook-books-context-remove =
     .label = Wotstronić
-
 about-addressbook-confirm-delete-book-title = Adresnik zhašeć
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = { $name } přepytać
 about-addressbook-search-all =
     .placeholder = Wšě adresniki přepytać
-
 about-addressbook-sort-button =
     .title = Lisćinowy porjad změnić
-
 about-addressbook-name-format-display =
     .label = Zwobraznjenske mjeno
 about-addressbook-name-format-firstlast =
     .label = Předmjeno Swójbne mjeno
 about-addressbook-name-format-lastfirst =
     .label = Swójbne mjeno, předmjeno
-
 about-addressbook-sort-name-ascending =
     .label = Po mjenje sortěrować (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Po e-mejlowej adresy sortěrować (A > Z)
 about-addressbook-sort-email-descending =
     .label = Po e-mejlowej adresy sortěrować (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Pisać
 about-addressbook-confirm-delete-mixed-title = Kontakty a lisćiny zhašeć
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -137,7 +133,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Wobdźěłać
 about-addressbook-cancel-edit-contact-button = Přetorhnyć
 about-addressbook-save-edit-contact-button = Składować
-
 about-addressbook-details-email-addresses-header = E-mejlowe adresy
 about-addressbook-details-phone-numbers-header = Telefonowe čisła
 about-addressbook-details-home-address-header = Priwatna adresa
diff --git a/thunderbird-l10n/hsb/localization/hsb/messenger/importDialog.ftl b/thunderbird-l10n/hsb/localization/hsb/messenger/importDialog.ftl
index f60bb8a193dff0ddab0bf2cf10614a3c20c9d352..f220177cfc65785deadac17e9ff6a8b73909b831 100644
--- a/thunderbird-l10n/hsb/localization/hsb/messenger/importDialog.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = E-mejl z profiloweho zapisa Thunderbird importować
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (eksportowane zawěsćenje profila; zip-dataja je mjeńša hač 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profilowy rjadowak)
+    .accesskey = T
 import-select-profile-zip = Wubjerće skomprimowany profilowy zapis
+import-select-profile-dir = Wubjerće profilowy zapis
+zip-file-too-big-title = Zip-dataja je přewulka
+zip-file-too-big-message = Wubrana zip-dataja je wjetša hač 2 GB. Prošu rozpakujće ju najprjedy, a importujće wobsah z rozpakowaneho rjadowaka město toho.
+wizardpage-failed =
+    .label = Importowanje njeje so poradźiło
+wizardpage-failed-message = Importowanje je so njenadźicy nimokuliło, dalše informacije namakaće snano w zmylkowej konsoli.
diff --git a/thunderbird-l10n/hsb/localization/hsb/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/hsb/localization/hsb/messenger/messengercompose/messengercompose.ftl
index c03f62088cfe6f246feb6f92d341109261fe3781..b78cb828cd7ae804a9079d0db4fcaaaec92a3d05 100644
--- a/thunderbird-l10n/hsb/localization/hsb/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/messenger/messengercompose/messengercompose.ftl
@@ -68,6 +68,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Přiwěšk přidać…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Přiwěšk přidać…
+    .accesskey = P
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Dataje…
     .accesskey = D
@@ -164,12 +168,78 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Polo { bcc-compose-address-row-label.value } pokazać ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Přijimarjo budu w polomaj Komu a Kopija adresu druhich widźeć. Ličba: { $count }. Wužiwajće město toho polo Schowana kopija, zo byšće tomu zadźěwał, zo so přijimarjo přeradźuja.
+to-address-row-label =
+    .value = Komu
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Polo Komu
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Komu
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Komu
+    .title = Polo Komu pokazać ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kopija
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Polo Kopija
+    .accesskey = P
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kopija
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kopija
+    .title = Polo Kopija pokazać ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Schowana kopija
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Polo Schowana kopija
+    .accesskey = S
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Schowana kopija
+    .accesskey = S
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Schowana kopija
+    .title = Polo Schowana kopija pokazać ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Druhe adresowe pola, kotrež so maja pokazać
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Waša powěsć ma zjawneho přijimarja. Wužiwajće město toho polo Schowana kopija, zo byšće tomu zadźěwał, zo so přijimarjo přeradźuja.
+        [two] { $count } přijimarjej budźetaj w polomaj Komu a Kopija adresu druhich widźeć. Wužiwajće město toho polo Schowana kopija, zo byšće tomu zadźěwał, zo so přijimarjo přeradźuja.
+        [few] { $count } přijimarjo budu w polomaj Komu a Kopija adresu druhich widźeć. Wužiwajće město toho polo Schowana kopija, zo byšće tomu zadźěwał, zo so přijimarjo přeradźuja.
+       *[other] { $count } přijimarjow budźe w polomaj Komu a Kopija adresu druhich widźeć. Wužiwajće město toho polo Schowana kopija, zo byšće tomu zadźěwał, zo so přijimarjo přeradźuja.
+    }
 many-public-recipients-bcc =
     .label = Schowanu kopiju město toho wužiwać
     .accesskey = S
 many-public-recipients-ignore =
     .label = Přijimarjow zjawnych dźeržeć
     .accesskey = P
+many-public-recipients-prompt-title = Přewjele zjawnych přijimarjow
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Waša powěsć ma zjawneho přijimarja. To móže priwatnosć wohrozyć. Přesuńće přijimarja wot pola Komu/Kopija do pola Schowana kopija.
+        [two] Waša powěsć ma { $count } zjawneju přijimarjow, kotrajž móžetaj mjez sobu swoje adresy widźeć. To móže priwatnosć wohrozyć. Přesuńće tohodla přijimarjow wot pola Komu/Kopija do pola Schowana kopija.
+        [few] Waša powěsć ma { $count } zjawnych přijimarjow, kotřiž móža mjez sobu swoje adresy widźeć. To móže priwatnosć wohrozyć. Přesuńće tohodla přijimarjow wot pola Komu/Kopija do pola Schowana kopija.
+       *[other] Waša powěsć ma { $count } zjawnych přijimarjow, kotřiž móža mjez sobu swoje adresy widźeć. To móže priwatnosć wohrozyć. Přesuńće tohodla přijimarjow wot pola Komu/Kopija do pola Schowana kopija.
+    }
+many-public-recipients-prompt-cancel = Słanje přetorhnyć
+many-public-recipients-prompt-send = Najebać toho słać
 
 ## Notifications
 
diff --git a/thunderbird-l10n/hsb/localization/hsb/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/hsb/localization/hsb/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..3ea4302d349233239ee545c44e54025512ad923a
--- /dev/null
+++ b/thunderbird-l10n/hsb/localization/hsb/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name } doinstalować?
+prompt-to-install-message = Dokónčće tutu jednokročelowu instalaciju, zo byšće { -brand-short-name } aktualny dźeržał a stratu datow wobešoł. { -brand-short-name } so rjadowakej „Programme“ a dokej přida.
+prompt-to-install-yes-button = Instalować
+prompt-to-install-no-button = Njeinstalować
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Instalowanje { -brand-short-name } je so nimokuliło.
+install-failed-message = { -brand-short-name } njeda so instalować, ale dale funguje.
diff --git a/thunderbird-l10n/hsb/localization/hsb/toolkit/global/textActions.ftl b/thunderbird-l10n/hsb/localization/hsb/toolkit/global/textActions.ftl
index 819f4008f3bcddf7ac13238dc6221333499b3a51..e523b74776bacff399999133daeaa9d3a51bf3d8 100644
--- a/thunderbird-l10n/hsb/localization/hsb/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/hsb/localization/hsb/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Cofnyć
     .accesskey = C
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Wospjetować
     .accesskey = o
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Wutřihać
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopěrować
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Zasadźić
     .accesskey = Z
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Zhašeć
     .accesskey = Z
-
 text-action-select-all =
     .label = Wšo wubrać
     .accesskey = u
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Žane prawopisne namjety
+text-action-spell-add-to-dictionary =
+    .label = Słownikej přidać
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Přidaće słownikej cofnyć
+    .accesskey = c
+text-action-spell-check-toggle =
+    .label = Prawopis kontrolować
+    .accesskey = r
+text-action-spell-add-dictionaries =
+    .label = Słowniki přidać…
+    .accesskey = S
+text-action-spell-dictionaries =
+    .label = Rěče
+    .accesskey = R
diff --git a/thunderbird-l10n/hsb/manifest.json b/thunderbird-l10n/hsb/manifest.json
index 08e0102c7c2c1315c1730a9000c65b6da8026536..637da3e9025dcd29ad3799b343bd3bd4d3db7f4d 100644
--- a/thunderbird-l10n/hsb/manifest.json
+++ b/thunderbird-l10n/hsb/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Hornjoserbšćina Language Pack",
   "description": "Language pack for Thunderbird for hsb",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "hsb": {
-      "version": "20210816113901",
+      "version": "20210831180815",
       "chrome_resources": {
         "alerts": "chrome/hsb/locale/hsb/alerts/",
         "autoconfig": "chrome/hsb/locale/hsb/autoconfig/",
diff --git a/thunderbird-l10n/hu/chrome/hu/locale/hu/global/layout/htmlparser.properties b/thunderbird-l10n/hu/chrome/hu/locale/hu/global/layout/htmlparser.properties
index 364119f885aaf0924a5f7a833089b21b607253de..c93809b77e94313e02d421cd8a65fd5a872f51a5 100644
--- a/thunderbird-l10n/hu/chrome/hu/locale/hu/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/hu/chrome/hu/locale/hu/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Fájl vége rendszerazonosítón belül.
 errExpectedSystemId=A várt rendszerazonosító helyett befejeződött a doctype.
 errMissingSpaceBeforeDoctypeName=Hiányzó szóköz a doctype neve előtt.
 errHyphenHyphenBang=„--!” a megjegyzésben.
+errNestedComment=A következő található egy megjegyzésben: „<!--”. Valószínű ok: Beágyazott megjegyzés (nem engedélyezett).
 errNcrZero=A karakterhivatkozás nullára mutat.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Nincs szóköz a „SYSTEM” doctype kulcsszó és az idézőjel között.
 errNoSpaceBetweenPublicAndSystemIds=Nincs szóköz a doctype nyilvános és rendszer azonosítói között.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Lezáratlan elemek a veremben.
 errEndTagDidNotMatchCurrentOpenElement=„%1$S” záró címke nem felelt meg az aktuális nyitó elem („%2$S”) nevének.
 errEndTagViolatesNestingRules=„%1$S” záró címke megsérti a beágyazási szabályokat.
 errEndWithUnclosedElements=„%1$S” záró címkéje megtalálva, de lezáratlan elemek voltak.
+errListUnclosedStartTags=Nem lezárt elem vagy elemek.
diff --git a/thunderbird-l10n/hu/localization/hu/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/hu/localization/hu/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..cb917b8977ddc8e04696ad80f362e0d0335ccdf6
--- /dev/null
+++ b/thunderbird-l10n/hu/localization/hu/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Esemény törlése
+       *[other] Események törlése
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Biztos, hogy törli ezt az eseményt?
+       *[other] Biztos, hogy törli ezt a(z) { $count } eseményt?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Feladat törlése
+       *[other] Feladatok törlése
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Biztos, hogy törli ezt a feladatot?
+       *[other] Biztos, hogy törli ezt a(z) { $count } feladatot?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Elem törlése
+       *[other] Elemek törlése
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Biztos, hogy törli ezt az elemet?
+       *[other] Biztos, hogy törli ezt a(z) { $count } elemet?
+    }
+calendar-delete-prompt-disable-message = Ne kérdezze meg újra.
diff --git a/thunderbird-l10n/hu/localization/hu/calendar/preferences.ftl b/thunderbird-l10n/hu/localization/hu/calendar/preferences.ftl
index 8dda2b77e8ff31148f388944c2d8ca7ddb4990c5..ba06421beb80931269eeebf183b3db71ac37c4e9 100644
--- a/thunderbird-l10n/hu/localization/hu/calendar/preferences.ftl
+++ b/thunderbird-l10n/hu/localization/hu/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Események és feladatok szerkesztése ablak helyett lapon.
     .accesskey = m
+prompt-delete-label =
+    .label = Kérdés az események és feladatok törlése előtt.
+    .accesskey = K
 accessibility-legend = Kisegítő lehetőségek
 accessibility-colors-label =
     .label = Színek optimalizálása
diff --git a/thunderbird-l10n/hu/localization/hu/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/hu/localization/hu/messenger/accountcreation/accountSetup.ftl
index 4048d497c4627748ac9989cba6f3ea8c9eb944c6..c351944d834a495a5d0d29b82ebd5caa6e40310f 100644
--- a/thunderbird-l10n/hu/localization/hu/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/hu/localization/hu/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Fiók beállítása
 ## Header
 
 account-setup-title = Meglévő e-mail fiók beállítása
-
 account-setup-description =
     A jelenlegi e-mail-címe használatához ki kell töltenie a hitelesítő adatait.<br/>
     A { -brand-product-name } automatikusan megkeresi a működő és ajánlott kiszolgálóbeállításokat.
-
 account-setup-secondary-description = A { -brand-product-name } automatikusan megkeresi a kiszolgáló működő és ajánlott beállításait.
-
 account-setup-success-title = Fiók sikeresen létrehozva
-
 account-setup-success-description = Most már használhatja ezt a fiókot a { -brand-short-name }del.
-
 account-setup-success-secondary-description = A kapcsolódó szolgáltatások összekapcsolásával, és a fiók speciális beállításainak konfigurálásával javíthatja a felhasználói élményt.
 
 ## Form fields
 
 account-setup-name-label = A teljes neve
     .accesskey = n
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Gipsz Jakab
-
 account-setup-name-info-icon =
     .title = Így fog megjelenni a neve
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = E-mail cím
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = gipsz.jakab@example.com
-
 account-setup-email-info-icon =
     .title = A meglévő e-mail címe
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Jelszó
     .accesskey = J
     .title = Nem kötelező, csak a felhasználónév ellenőrzéséhez használatos
-
 account-provisioner-button = Új e-mail-cím kérése
     .accesskey = j
-
 account-setup-password-toggle =
     .title = Jelszó megjelenítése/elrejtése
-
+account-setup-password-toggle-show =
+    .title = Jelszó megjelenítése
+account-setup-password-toggle-hide =
+    .title = Jelszó elrejtése
 account-setup-remember-password = Jelszó megjegyzése
     .accesskey = m
-
 account-setup-exchange-label = Az Ön bejelentkezése
     .accesskey = b
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = TARTOMÁNY\felhasználónév
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Tartományi bejelentkezés
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Mégse
     .accesskey = M
-
 account-setup-button-manual-config = Kézi beállítás
     .accesskey = K
-
 account-setup-button-stop = Leállítás
     .accesskey = L
-
 account-setup-button-retest = Újratesztelés
     .accesskey = t
-
 account-setup-button-continue = Folytatás
     .accesskey = F
-
 account-setup-button-done = Kész
     .accesskey = K
 
 ## Notifications
 
 account-setup-looking-up-settings = Konfiguráció keresése…
-
 account-setup-looking-up-settings-guess = Konfiguráció keresése: Gyakori kiszolgálónevek kipróbálása…
-
 account-setup-looking-up-settings-half-manual = Konfiguráció keresése: Kiszolgáló vizsgálata…
-
 account-setup-looking-up-disk = Konfiguráció keresése: { -brand-short-name } telepítés…
-
 account-setup-looking-up-isp = Konfiguráció keresése: E-mail-szolgáltató…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Konfiguráció keresése: Mozilla ISP adatbázis…
-
 account-setup-looking-up-mx = Konfiguráció keresése: Bejövő e-mail domain…
-
 account-setup-looking-up-exchange = Konfiguráció keresése: Exchange kiszolgáló…
-
 account-setup-checking-password = Jelszó ellenőrzése…
-
 account-setup-installing-addon = Kiegészítő letöltése és telepítése…
-
 account-setup-success-half-manual = Az adott kiszolgáló vizsgálata a következő beállításokat találta:
-
 account-setup-success-guess = A beállításokat a gyakori kiszolgálónevek keresése találta.
-
 account-setup-success-guess-offline = Kapcsolat nélküli üzemmódban van. Néhány beállítást kitaláltunk, de meg kell adnia a helyes beállításokat.
-
 account-setup-success-password = Jelszó rendben
-
 account-setup-success-addon = A kiegészítő telepítése sikeresen megtörtént
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = A konfiguráció megtalálható a Mozilla ISP adatbázisában.
-
 account-setup-success-settings-disk = A konfiguráció megtalálható a { -brand-short-name } telepítésben.
-
 account-setup-success-settings-isp = A konfiguráció megtalálható az e-mail-szolgáltatónál.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = A Microsoft Exchange kiszolgáló konfigurációja megtalálva.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = A Microsoft Exchange kiszolgáló konf
 
 account-setup-step1-image =
     .title = Kezdeti beállítás
-
 account-setup-step2-image =
     .title = Betöltés…
-
 account-setup-step3-image =
     .title = Konfiguráció megtalálva
-
 account-setup-step4-image =
     .title = Kapcsolódási hiba
-
 account-setup-step5-image =
     .title = Fiók létrehozva
-
 account-setup-privacy-footnote2 = A hitelesítő adatok csak helyben lesznek tárolva a számítógépen.
-
 account-setup-selection-help = Nem tudja, mit válasszon?
-
 account-setup-selection-error = Segítségre van szüksége?
-
 account-setup-success-help = Nem biztos a következő lépésekben?
-
 account-setup-documentation-help = Telepítési dokumentáció
-
 account-setup-forum-help = Támogatói fórum
-
 account-setup-privacy-help = Adatvédelmi irányelvek
-
 account-setup-getting-started = Első lépések
 
 ## Results area
@@ -177,41 +126,25 @@ account-setup-results-area-title =
         [one] Elérhető konfiguráció
        *[other] Elérhető konfigurációk
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Mappák és e-mailek szinkronban tartása a kiszolgálón
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Mappák és e-mailek tárolása az Ön számítógépén
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Microsoft Exchange vagy Office 365 felhőszolgáltatások használata
-
 account-setup-incoming-title = Bejövő
-
 account-setup-outgoing-title = Kimenő
-
 account-setup-username-title = Felhasználónév
-
 account-setup-exchange-title = Kiszolgáló
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Nincs titkosítás
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Meglévő SMTP-kiszolgáló használata
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -221,81 +154,54 @@ account-setup-result-username-different = Bejövő: { $incoming }, Kimenő: { $o
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Hitelesítés sikertelen. A megadott hitelesítő adatok hibásak vagy külön felhasználónév szükséges a bejelentkezéshez. Ez a felhasználónév általában a Windows tartományi bejelentkezése a tartomány nevével vagy anélkül (például gipszjakab vagy AD\\gipszjakab).
-
 account-setup-credentials-wrong = Hitelesítés sikertelen. Ellenőrizze a felhasználónevet és a jelszót.
-
 account-setup-find-settings-failed = A { -brand-short-name } nem találta meg az e-mail-fiókja beállításait
-
 account-setup-exchange-config-unverifiable = A konfigurációt nem lehetett megerősíteni. Ha a felhasználóneve és a jelszava helyes, akkor valószínű, hogy a kiszolgáló adminisztrátora letiltotta a fiókjának kiválasztott konfigurációját. Próbáljon meg másik protokollt választani.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Kiszolgáló beállításai
-
 account-setup-incoming-server-legend = Bejövő kiszolgáló
-
 account-setup-protocol-label = Protokoll:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Gépnév:
-
 account-setup-port-label = Port:
     .title = Az automatikus észleléshez állítsa 0-ra a portszámot
-
 account-setup-auto-description = A { -brand-short-name } megpróbálja automatikusan észlelni az üresen hagyott mezőket.
-
 account-setup-ssl-label = Kapcsolat biztonsága:
-
 account-setup-outgoing-server-legend = Kimenő kiszolgáló
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Automatikus felismerés
-
 ssl-no-authentication-option = Nincs hitelesítés
-
 ssl-cleartext-password-option = Normál jelszó
-
 ssl-encrypted-password-option = Titkosított jelszó
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Egyik sem
-
 account-setup-auth-label = Hitelesítési módszer:
-
 account-setup-username-label = Felhasználónév:
-
 account-setup-advanced-setup-button = Speciális beállítások
     .accesskey = S
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Vigyázat!
-
 account-setup-insecure-incoming-title = Bejövő beállítások:
-
 account-setup-insecure-outgoing-title = Kimenő beállítások:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = A(z) <b>{ $server }</b> nem használ titkosítást.
-
 account-setup-warning-cleartext-details = A nem biztonságos levelezőkiszolgálók nem használnak titkosított kapcsolatokat a jelszavak és a privát információk védelme érdekében. Ha ilyen kiszolgálóhoz kapcsolódik, a jelszava és privát információi kiderülhetnek.
-
 account-setup-insecure-server-checkbox = Megértettem a kockázatokat
     .accesskey = k
-
 account-setup-insecure-description = A { -brand-short-name } megengedi a levelezést ezzel a konfigurációval. Ennek ellenére kérjük, forduljon a rendszergazdájához vagy az e-mail szolgáltatójához, és hívja fel a figyelmét ezekre a helytelen kapcsolatokra. További részletekért lásd a <a data-l10n-name="thunderbird-faq-link">Thunderbird GYIK</a> dokumentumot.
-
 insecure-dialog-cancel-button = Beállítások módosítása
     .accesskey = B
-
 insecure-dialog-confirm-button = Megerősítés
     .accesskey = M
 
@@ -304,51 +210,45 @@ insecure-dialog-confirm-button = Megerősítés
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = A { -brand-short-name } megtalálta a fiókinformációit ehhez: { $domain }. Folytatja és elküldi a hitelesítő adatait?
-
 exchange-dialog-confirm-button = Bejelentkezés
-
 exchange-dialog-cancel-button = Mégse
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Nincs e-mail-fiók beállítva
+exit-dialog-description = Biztos, hogy megszakítja a telepítési folyamatot? A { -brand-short-name } továbbra is használható lesz e-mail-fiók nélkül, de számos funkció nem lesz elérhető.
+account-setup-no-account-checkbox = A { -brand-short-name } használata e-mail-fiók nélkül
+    .accesskey = h
+exit-dialog-cancel-button = Beállítás folytatása
+    .accesskey = f
+exit-dialog-confirm-button = Kilépés a beállításból
+    .accesskey = K
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Hiba a fiók létrehozásakor
-
 account-setup-error-server-exists = Már van bejövő kiszolgáló.
-
 account-setup-confirm-advanced-title = Speciális beállítások megerősítése
-
 account-setup-confirm-advanced-description = Ez a párbeszédpanel bezáródik, és létrejön egy fiók a jelenlegi beállításokkal, még akkor is, ha a konfiguráció hibás. Folytatja?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Telepítés
-
 account-setup-addon-install-intro = Egy harmadik féltől származó kiegészítővel hozzáférhet az e-mail fiókjához ezen a kiszolgálón:
-
 account-setup-addon-no-protocol = Ez az e-mail-kiszolgáló sajnos nem támogatja a nyílt protokollokat. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Fiókbeállítások
-
 account-setup-encryption-button = Végpontok közötti titkosítás
-
 account-setup-signature-button = Aláírás hozzáadása
-
 account-setup-dictionaries-button = Szótárak letöltése
-
 account-setup-address-book-carddav-button = Kapcsolódás egy CardDAV címjegyzékhez
-
 account-setup-address-book-ldap-button = Kapcsolódás egy LDAP címjegyzékhez
-
 account-setup-calendar-button = Kapcsolódás egy távoli naptárhoz
-
 account-setup-linked-services-title = Kapcsolt szolgáltatások összekapcsolása
-
 account-setup-linked-services-description = A { -brand-short-name } egyéb, az e-mail-fiókjához kapcsolódó szolgáltatások észlelt.
-
 account-setup-no-linked-description = Állítson be más szolgáltatásokat, hogy a legtöbbet hozza ki a { -brand-short-name } élményéből.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -356,7 +256,6 @@ account-setup-found-address-books-description =
         [one] A { -brand-short-name } egy, az e-mail-fiókjához kapcsolódó címjegyzéket talált.
        *[other] A { -brand-short-name } { $count }, az e-mail-fiókjához kapcsolódó címjegyzéket talált.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -364,62 +263,41 @@ account-setup-found-calendars-description =
         [one] A { -brand-short-name } egy, az e-mail-fiókjához kapcsolódó naptárat talált.
        *[other] A { -brand-short-name } { $count }, az e-mail-fiókjához kapcsolódó naptárat talált.
     }
-
 account-setup-button-finish = Befejezés
     .accesskey = B
-
 account-setup-looking-up-address-books = Címjegyzékek keresése…
-
 account-setup-looking-up-calendars = Naptárak keresése…
-
 account-setup-address-books-button = Címjegyzékek
-
 account-setup-calendars-button = Naptárak
-
 account-setup-connect-link = Kapcsolódás
-
 account-setup-existing-address-book = Kapcsolódva
     .title = Már kapcsolódik a címjegyzékhez
-
 account-setup-existing-calendar = Kapcsolódva
     .title = Már kapcsolódik a naptárhoz
-
 account-setup-connect-all-calendars = Kapcsolódás az összes naptárhoz
-
 account-setup-connect-all-address-books = Kapcsolódás az összes címjegyzékhez
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Kapcsolódás egy naptárhoz
-
 calendar-dialog-cancel-button = Mégse
     .accesskey = M
-
 calendar-dialog-confirm-button = Kapcsolódás
     .accesskey = K
-
 account-setup-calendar-name-label = Név
-
 account-setup-calendar-name-input =
     .placeholder = Saját naptár
-
 account-setup-calendar-color-label = Szín
-
 account-setup-calendar-refresh-label = Frissítés
-
 account-setup-calendar-refresh-manual = Kézzel
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Percenként
        *[other] { $minutes } percenként
     }
-
 account-setup-calendar-read-only = Csak olvasható
     .accesskey = o
-
 account-setup-calendar-show-reminders = Emlékeztetők megjelenítése
     .accesskey = E
-
 account-setup-calendar-offline-support = Offline támogatás
     .accesskey = O
diff --git a/thunderbird-l10n/hu/localization/hu/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/hu/localization/hu/messenger/addressbook/aboutAddressBook.ftl
index 78ef88f5ce11a5b09b91c51ae6b9fb0b83dd0d92..50b958403d1b84e0533a4374186c526f60f9f2a1 100644
--- a/thunderbird-l10n/hu/localization/hu/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/hu/localization/hu/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Minden címjegyzék
-
 about-addressbook-books-context-properties =
     .label = Tulajdonságok
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Törlés
 about-addressbook-books-context-remove =
     .label = Eltávolítás
-
 about-addressbook-confirm-delete-book-title = Címjegyzék törlése
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Keresés ebben: { $name }
 about-addressbook-search-all =
     .placeholder = Keresés az összes címjegyzékben
-
 about-addressbook-sort-button =
     .title = A lista sorrendjének módosítása
-
 about-addressbook-name-format-display =
     .label = Megjelenő név
 about-addressbook-name-format-firstlast =
     .label = Utónév, vezetéknév
 about-addressbook-name-format-lastfirst =
     .label = Vezetéknév, utónév
-
 about-addressbook-sort-name-ascending =
     .label = Rendezés név szerint (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Rendezés e-mail-cím szerint (A > Z)
 about-addressbook-sort-email-descending =
     .label = Rendezés e-mail-cím szerint (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Írás
 about-addressbook-confirm-delete-mixed-title = Névjegyek és listák törlése
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Szerkesztés
 about-addressbook-cancel-edit-contact-button = Mégse
 about-addressbook-save-edit-contact-button = Mentés
-
 about-addressbook-details-email-addresses-header = E-mail-címek
 about-addressbook-details-phone-numbers-header = Telefonszámok
 about-addressbook-details-home-address-header = Otthoni cím
diff --git a/thunderbird-l10n/hu/localization/hu/messenger/importDialog.ftl b/thunderbird-l10n/hu/localization/hu/messenger/importDialog.ftl
index 2b374e45d8f2f3b61c9750280f68f1117c734f9a..3f233162d4bc8917023f92122ab0945f6716f2e4 100644
--- a/thunderbird-l10n/hu/localization/hu/messenger/importDialog.ftl
+++ b/thunderbird-l10n/hu/localization/hu/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Levelek importálása egy Thunderbird profilkönyvtárból.
-import-select-profile-dir-or-zip = Válasszon egy profilkönyvtárat vagy egy tömörített profilkönyvtárat
+import-from-thunderbird-zip =
+    .label = Thunderbird (exportált profilmentés; 2 GB-nál kisebb ZIP-fájl)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profilmappa)
+    .accesskey = T
 import-select-profile-zip = Válasszon egy tömörített profilkönyvtárat
+import-select-profile-dir = Válasszon egy profilkönyvtárat
+zip-file-too-big-title = A ZIP-fájl túl nagy
+zip-file-too-big-message = A kiválasztott ZIP-fájl nagyobb, mint 2 GB. Először bontsa ki, majd importálja a kibontott mappából.
+wizardpage-failed =
+    .label = Az importálás nem sikerült
+wizardpage-failed-message = Az importálás váratlanul meghiúsult, további információ lehet elérhető a Hibakonzolban.
diff --git a/thunderbird-l10n/hu/localization/hu/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/hu/localization/hu/messenger/messengercompose/messengercompose.ftl
index 02f26ef19becbb67e337d1105e4b55043d9dc48c..909164ce79be077955eae807a5f74ed57306e8d3 100644
--- a/thunderbird-l10n/hu/localization/hu/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/hu/localization/hu/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Melléklet hozzáadása…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Melléklet hozzáadása…
+    .accesskey = a
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Fájlok…
     .accesskey = F
@@ -154,12 +158,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = A { bcc-compose-address-row-label.value } mező megjelenítése ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = A címzett és másolatot kapó { $count } partner látni fogja egymás címét. Elkerülheti a címzettek közzétételét, ha helyette titkos másolatot használ.
+to-address-row-label =
+    .value = Címzett
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Címzett mező
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Címzett
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Címzett
+    .title = Címzett mező megjelenítése ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Másolatot kap
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Másolatot kap mező
+    .accesskey = M
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Másolatot kap
+    .accesskey = M
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Másolatot kap
+    .title = Másolatot kap mező megjelenítése ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Rejtett másolatot kap
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Rejtett másolatot kap
+    .accesskey = R
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Rejtett másolatot kap
+    .accesskey = R
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Rejtett másolatot kap
+    .title = Rejtett másolatot kap mező megjelenítése ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = További megjelenítendő címzési mezők
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Az üzenetének nyilvános címzettje van. Elkerülheti a címzettek közzétételét, ha helyette titkos másolatot használ.
+       *[other] A címzett és másolatot kapó { $count } partner látni fogja egymás címét. Elkerülheti a címzettek közzétételét, ha helyette titkos másolatot használ.
+    }
 many-public-recipients-bcc =
     .label = Helyette titkos másolat használata
     .accesskey = H
 many-public-recipients-ignore =
     .label = A címzettek legyenek nyilvánosak
     .accesskey = l
+many-public-recipients-prompt-title = Túl sok nyilvános címzett
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Üzenetének nyilvános címzettje van. Ez adatvédelmi aggály lehet. Elkerülheti a címzettek közzétételét, ha áthelyezi a címzetteket a Címzett/Másolatot kap mezőból a Titkos másolatba.
+       *[other] Üzenetének { $count } nyilvános címzettje van, akik láthatják egymás címét. Ez adatvédelmi aggály lehet. Elkerülheti a címzettek közzétételét, ha áthelyezi a címzetteket a Címzett/Másolatot kap mezőből a Titkos másolatba.
+    }
+many-public-recipients-prompt-cancel = Küldés megszakítása
+many-public-recipients-prompt-send = Küldés mindenképp
 
 ## Notifications
 
diff --git a/thunderbird-l10n/hu/localization/hu/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/hu/localization/hu/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..bee20d5de60edb9407e0467c90f27f4f64664653
--- /dev/null
+++ b/thunderbird-l10n/hu/localization/hu/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Befejezi a { -brand-short-name } telepítését?
+prompt-to-install-message = Hajtsa végre ezt az egylépéses telepítést, hogy a { -brand-short-name } naprakész legyen, és megakadályozza az adatvesztést. A { -brand-short-name } hozzá lesz adva az Applications mappához és a Dokkhoz.
+prompt-to-install-yes-button = Telepítés
+prompt-to-install-no-button = Ne telepítse
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = A { -brand-short-name } telepítése sikertelen.
+install-failed-message = A { -brand-short-name } telepítése sikertelen, de továbbra is futni fog.
diff --git a/thunderbird-l10n/hu/localization/hu/toolkit/global/textActions.ftl b/thunderbird-l10n/hu/localization/hu/toolkit/global/textActions.ftl
index 4eb27ad8cc4e09b7db925c7f306308c2a07b0d67..5f0efb29609ea872265b87a9b32a10eb8733101b 100644
--- a/thunderbird-l10n/hu/localization/hu/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/hu/localization/hu/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Visszavonás
     .accesskey = V
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Újra
     .accesskey = r
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Kivágás
     .accesskey = K
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Másolás
     .accesskey = M
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Beillesztés
     .accesskey = B
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Törlés
     .accesskey = s
-
 text-action-select-all =
     .label = Minden kijelölése
     .accesskey = i
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Nincs helyesírási javaslat
+text-action-spell-add-to-dictionary =
+    .label = Hozzáadás a szótárhoz
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Szótárhoz adás visszavonása
+    .accesskey = v
+text-action-spell-check-toggle =
+    .label = Helyesírás-ellenőrzés
+    .accesskey = H
+text-action-spell-add-dictionaries =
+    .label = Szótárak hozzáadása…
+    .accesskey = a
+text-action-spell-dictionaries =
+    .label = Nyelvek
+    .accesskey = N
diff --git a/thunderbird-l10n/hu/manifest.json b/thunderbird-l10n/hu/manifest.json
index ddca15bdc971c11fa8e3014566c6fd9035cb8357..c5cc945919397022d75322d8fefead6a5203301e 100644
--- a/thunderbird-l10n/hu/manifest.json
+++ b/thunderbird-l10n/hu/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Magyar (HU) Language Pack",
   "description": "Language pack for Thunderbird for hu",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "hu": {
-      "version": "20210815102443",
+      "version": "20210831192809",
       "chrome_resources": {
         "alerts": "chrome/hu/locale/hu/alerts/",
         "autoconfig": "chrome/hu/locale/hu/autoconfig/",
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-editable-item.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-print.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountManager.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/chat.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/exportDialog.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/importDialog.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/preferences/am-copies.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/troubleshootMode.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/localization/hy-AM/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/hy-AM/localization/hy-AM/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/hy-AM/localization/hy-AM/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/hy-AM/manifest.json b/thunderbird-l10n/hy-AM/manifest.json
index 05655d9a41a996e196233d1df854856881a39fd9..a57b3c2b84ea995789bbf3227a5464ed3d53a5a6 100644
--- a/thunderbird-l10n/hy-AM/manifest.json
+++ b/thunderbird-l10n/hy-AM/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Armenian (AM) Language Pack",
   "description": "Language pack for Thunderbird for hy-AM",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "hy-AM": {
-      "version": "20210813140317",
+      "version": "20210831121257",
       "chrome_resources": {
         "alerts": "chrome/hy-AM/locale/hy-AM/alerts/",
         "autoconfig": "chrome/hy-AM/locale/hy-AM/autoconfig/",
diff --git a/thunderbird-l10n/id/localization/id/calendar/calendar-editable-item.ftl b/thunderbird-l10n/id/localization/id/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/id/localization/id/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/id/localization/id/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/id/localization/id/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/calendar/calendar-print.ftl b/thunderbird-l10n/id/localization/id/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/id/localization/id/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/id/localization/id/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/accountManager.ftl b/thunderbird-l10n/id/localization/id/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/id/localization/id/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/id/localization/id/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/id/localization/id/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/chat.ftl b/thunderbird-l10n/id/localization/id/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/id/localization/id/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/exportDialog.ftl b/thunderbird-l10n/id/localization/id/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/importDialog.ftl b/thunderbird-l10n/id/localization/id/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/preferences/am-copies.ftl b/thunderbird-l10n/id/localization/id/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/messenger/troubleshootMode.ftl b/thunderbird-l10n/id/localization/id/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/localization/id/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/id/localization/id/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/id/localization/id/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/id/manifest.json b/thunderbird-l10n/id/manifest.json
index 3f9e5f994a81d7d793e4084bb885dae86449e279..f144d649f3f44467ab8a1ee3abaedc0353b4b39a 100644
--- a/thunderbird-l10n/id/manifest.json
+++ b/thunderbird-l10n/id/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Bahasa Indonesia (ID) Language Pack",
   "description": "Language pack for Thunderbird for id",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "id": {
-      "version": "20210813140359",
+      "version": "20210831121338",
       "chrome_resources": {
         "alerts": "chrome/id/locale/id/alerts/",
         "autoconfig": "chrome/id/locale/id/autoconfig/",
diff --git a/thunderbird-l10n/is/localization/is/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/is/localization/is/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/is/localization/is/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/is/manifest.json b/thunderbird-l10n/is/manifest.json
index 1dce4b0de07880a07ce24a2a3ce0ec27d7e46c7a..8ca0100c205c4bc16f5fe5bcb7ecd633fd37c2d1 100644
--- a/thunderbird-l10n/is/manifest.json
+++ b/thunderbird-l10n/is/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Icelandic (IS) Language Pack",
   "description": "Language pack for Thunderbird for is",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "is": {
-      "version": "20210813140423",
+      "version": "20210831121403",
       "chrome_resources": {
         "alerts": "chrome/is/locale/is/alerts/",
         "autoconfig": "chrome/is/locale/is/autoconfig/",
diff --git a/thunderbird-l10n/it/chrome/it/locale/it/calendar/calendar.properties b/thunderbird-l10n/it/chrome/it/locale/it/calendar/calendar.properties
index 4be7e3601fd6cc6072433f0703e511ebf3f35c4b..018670cce3787545c3e7cbbff9fe48f42b0a5f85 100644
--- a/thunderbird-l10n/it/chrome/it/locale/it/calendar/calendar.properties
+++ b/thunderbird-l10n/it/chrome/it/locale/it/calendar/calendar.properties
@@ -417,6 +417,8 @@ TZFromKnownTimezones=Questo fuso orario ZoneInfo è stato scelto in base alla co
 formatListName = Lista
 weekPrinterName = Agenda settimanale
 monthPrinterName = Agenda mensile
+
+# Print Layout
 tasksWithNoDueDate = Attività senza data di scadenza
 
 # Providers
@@ -426,7 +428,7 @@ icsName=iCalendar (ICS)
 memoryName=Temporanea (memoria)
 storageName=Locale (SQLite)
 
-# Used in created html code for list layout print and html export
+# Used in created html code for export
 htmlPrefixTitle=Titolo
 htmlPrefixWhen=Quando
 htmlPrefixLocation=Luogo
@@ -590,6 +592,19 @@ severalShortCalendarWeeks=Sett: %1$S-%2$S
 #    %1$S is a number from 1 to 53 that represents the week number.
 abbreviationOfWeek=%1$S
 
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+#    %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=Sett. %1$S
+
 # Task tree, "Due In" column.
 # LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
 # forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
@@ -604,7 +619,7 @@ dueInLessThanOneHour=<1 ora
 monthInYear=%1$S %2$S
 
 # LOCALIZATION NOTE (monthInYear.monthFormat):
-# If your language requires a different declension, change this to 
+# If your language requires a different declension, change this to
 # one of the values specified in dateFormat.properties.
 # In any case, DO NOT TRANSLATE.
 monthInYear.monthFormat=nominative
@@ -656,7 +671,7 @@ daysIntervalInMonth.monthFormat=
 daysIntervalBetweenMonths=%2$S %1$S – %4$S %3$S %5$S
 
 # LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
-# If your language requires a different declension, change this to 
+# If your language requires a different declension, change this to
 # one of the values specified in dateFormat.properties.
 # In any case, DO NOT TRANSLATE.
 daysIntervalBetweenMonths.monthFormat=
@@ -792,16 +807,3 @@ dialog.attendee.append.delegatedTo=(delegato a %1$S)
 
 # Accessible description of a grid calendar with no selected date
 minimonthNoSelectedDate=Nessuna data selezionata
-
-# LOCALIZATION NOTE (multiweekViewWeek):
-# Used for displaying the week number in the first day box of every week
-# in multiweek and month views.
-# It allows to localize the label with the week number in case your locale
-# requires it.
-# Take into account that this label is placed in the same room of the day label
-# inside the day boxes, exactly on left side, hence a possible string shouldn't
-# be too long otherwise it will create confusion between the week number and
-# the day number other than a possible crop when the window is resized.
-#
-#    %1$S is a number from 1 to 53 that represents the week number.
-multiweekViewWeek=W %1$S
diff --git a/thunderbird-l10n/it/chrome/it/locale/it/lightning/lightning.dtd b/thunderbird-l10n/it/chrome/it/locale/it/lightning/lightning.dtd
index 1aed6eb4d8ac3d4ae289aea77764ca1a48bbda24..13db92c167c60822052b983f806d440087c050cb 100644
--- a/thunderbird-l10n/it/chrome/it/locale/it/lightning/lightning.dtd
+++ b/thunderbird-l10n/it/chrome/it/locale/it/lightning/lightning.dtd
@@ -46,6 +46,10 @@
 <!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1     "Al momento è possibile attivare questa opzione dopo aver impostato questo calendario attraverso la finestra delle proprietà se il server del calendario si occupa della pianificazione.">
 <!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2     "Questa opzione è disponibile solo se il server del calendario si occupa della pianificazione. Se attivata, consentirà la gestione della pianificazione attraverso email standard invece di lasciarla al server.">
 
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label                   "Notifiche">
+<!ENTITY lightning.calendarproperties.globalNotifications.label             "Preferenze globali delle notifiche…">
+
 <!-- iMIP Bar (meeting support) -->
 <!ENTITY lightning.imipbar.btnAccept.label                                  "Accetta">
 <!ENTITY lightning.imipbar.btnAccept2.tooltiptext                           "Accetta l'invito all'evento">
@@ -108,7 +112,3 @@
 <!ENTITY todaypane.showTodayPane.label "Mostra il pannello Oggi">
 <!ENTITY todaypane.showTodayPane.accesskey "n">
 <!ENTITY todaypane.statusButton.label "Pannello Oggi">
-
-<!-- The notifications settings in the properties dialog -->
-<!ENTITY lightning.calendarproperties.notifications.label                   "Notifications">
-<!ENTITY lightning.calendarproperties.globalNotifications.label             "Global Notification Preferences…">
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-editable-item.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-editable-item.ftl
index 6fbe8159b2db12df85a3ecca3b73921192c6e43f..86f07e06a16427b0d66f2c12e64171632f1df462 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-editable-item.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-editable-item.ftl
@@ -1,3 +1,26 @@
 # 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/.
+
+calendar-editable-item-privacy-icon-private =
+    .alt = Privacy: evento privato
+calendar-editable-item-privacy-icon-confidential =
+    .alt = Privacy: mostra solo data e ora
+calendar-editable-item-todo-icon-task =
+    .alt = Attività
+calendar-editable-item-todo-icon-completed-task =
+    .alt = Attività completata
+calendar-editable-item-multiday-event-icon-start =
+    .alt = Inizio di un evento di più giorni
+calendar-editable-item-multiday-event-icon-continue =
+    .alt = Continuazione di un evento di più giorni
+calendar-editable-item-multiday-event-icon-end =
+    .alt = Fine di un evento di più giorni
+calendar-editable-item-reminder-icon-alarm =
+    .alt = È stato programmato un promemoria
+calendar-editable-item-reminder-icon-suppressed-alarm =
+    .alt = Un promemoria è stato programmato ma è attualmente soppresso
+calendar-editable-item-reminder-icon-email =
+    .alt = È programmata una email di promemoria
+calendar-editable-item-reminder-icon-audio =
+    .alt = È programmato un avviso sonoro di promemoria
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-event-dialog-reminder.ftl
index 6fbe8159b2db12df85a3ecca3b73921192c6e43f..d8149c0954ab01ae38a8d3c2af01cd824c7d61e7 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-event-dialog-reminder.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-event-dialog-reminder.ftl
@@ -1,3 +1,10 @@
 # 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/.
+
+calendar-event-reminder-icon-display =
+    .alt = Mostra un avviso
+calendar-event-reminder-icon-email =
+    .alt = Invia una email
+calendar-event-reminder-icon-audio =
+    .alt = Riproduci un avviso sonoro
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-invitations-dialog.ftl
index 6fbe8159b2db12df85a3ecca3b73921192c6e43f..bae3a32d1728f710f1ff6c26a9171cf7002351a8 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-invitations-dialog.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-invitations-dialog.ftl
@@ -1,3 +1,10 @@
 # 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/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+    .alt = Accettato per il momento
+calendar-invitation-current-participation-status-icon-declined =
+    .alt = Rifiutato per il momento
+calendar-invitation-current-participation-status-icon-needs-action =
+    .alt = Ancora indeciso
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-itip-identity-dialog.ftl
index 6fbe8159b2db12df85a3ecca3b73921192c6e43f..da38ad487cc5237fdf14f0d354454b1eb5166dfb 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-itip-identity-dialog.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-itip-identity-dialog.ftl
@@ -1,3 +1,7 @@
 # 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/.
+
+calendar-itip-identity-dialog-title = Imbucarsi a una festa?
+calendar-itip-identity-warning = Non si è ancora nella lista degli invitati.
+calendar-itip-identity-label = Rispondi come:
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-print.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-print.ftl
index 6fbe8159b2db12df85a3ecca3b73921192c6e43f..8d29985daae59f82adda55880a242ed1f7bac155 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-print.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-print.ftl
@@ -1,3 +1,16 @@
 # 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/.
+
+calendar-print-layout-label = Modello
+calendar-print-layout-list = Elenco
+calendar-print-layout-month-grid = Griglia mensile
+calendar-print-layout-week-planner = Agenda settimanale
+calendar-print-filter-label = Da stampare
+calendar-print-filter-events = Eventi
+calendar-print-filter-tasks = Attività
+calendar-print-filter-completedtasks = Attività completate
+calendar-print-filter-taskswithnoduedate = Attività senza scadenza
+calendar-print-range-from = Da
+calendar-print-range-to = A
+calendar-print-next-button = Prossimo
diff --git a/thunderbird-l10n/it/localization/it/calendar/calendar-widgets.ftl b/thunderbird-l10n/it/localization/it/calendar/calendar-widgets.ftl
index 91b765a4e04feacb71d4e6b8cd443f8fa54146f7..6f3dea538cf485ccfba4ec71f4c26a062f4bedb6 100644
--- a/thunderbird-l10n/it/localization/it/calendar/calendar-widgets.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/calendar-widgets.ftl
@@ -4,3 +4,6 @@
 
 calendar-deactivated-notification-events = Tutti i calendari sono attualmente disattivati. Attivare un calendario esistente o aggiungerne uno nuovo per creare e modificare eventi.
 calendar-deactivated-notification-tasks = Tutti i calendari sono attualmente disattivati. Attivare un calendario esistente o aggiungerne uno nuovo per creare e modificare attività.
+calendar-notifications-label = Mostra le notifiche per gli eventi futuri
+calendar-add-notification-button =
+    .label = Aggiungi notifica
diff --git a/thunderbird-l10n/it/localization/it/calendar/preferences.ftl b/thunderbird-l10n/it/localization/it/calendar/preferences.ftl
index 85567bb734f9996ace38eae438b738d7fdddd3ad..284f9ca7e68914a7351f7d3b4533b097bcd6bdfc 100644
--- a/thunderbird-l10n/it/localization/it/calendar/preferences.ftl
+++ b/thunderbird-l10n/it/localization/it/calendar/preferences.ftl
@@ -4,6 +4,7 @@
 
 calendar-title = Calendario
 calendar-title-reminder = Promemoria
+calendar-title-notification = Notifiche
 calendar-title-category = Categorie
 dateformat-label =
     .value = Formato testo data:
@@ -179,6 +180,7 @@ event-alarm-time-label =
 task-alarm-time-label =
     .value = Tempo di attivazione allarme prima di un'attività:
     .accesskey = o
+calendar-notifications-customize-label = Le notifiche possono essere personalizzate per ogni calendario nella finestra delle proprietà del calendario.
 category-new-label = Nuova categoria
 category-edit-label = Modifica categoria
 category-overwrite-title = Attenzione: nome duplicato
diff --git a/thunderbird-l10n/it/localization/it/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/it/localization/it/messenger/accountcreation/accountSetup.ftl
index 8a3b9e757d76e419980e5d5aa5a683f5a0b8caa3..821b2582d0d7a7e88c166f2bc85c23a1b98d86c2 100644
--- a/thunderbird-l10n/it/localization/it/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/it/localization/it/messenger/accountcreation/accountSetup.ftl
@@ -39,6 +39,10 @@ account-provisioner-button = Ottieni un nuovo indirizzo email
     .accesskey = O
 account-setup-password-toggle =
     .title = Mostra/nascondi password
+account-setup-password-toggle-show =
+    .title = Mostra la password in chiaro
+account-setup-password-toggle-hide =
+    .title = Nascondi password
 account-setup-remember-password = Ricorda password
     .accesskey = w
 account-setup-exchange-label = Le tue credenziali
@@ -207,6 +211,17 @@ exchange-dialog-question = { -brand-short-name } ha trovato le informazioni per
 exchange-dialog-confirm-button = Accedi
 exchange-dialog-cancel-button = Annulla
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Nessun account email configurato
+exit-dialog-description = Annullare il processo di configurazione? { -brand-short-name } può anche essere utilizzato senza un account email, ma molte funzioni non saranno disponibili.
+account-setup-no-account-checkbox = Utilizza { -brand-short-name } senza un account di posta elettronica
+    .accesskey = a
+exit-dialog-cancel-button = Continua configurazione
+    .accesskey = c
+exit-dialog-confirm-button = Esci dalla configurazione
+    .accesskey = s
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Errore durante la creazione dell’account
diff --git a/thunderbird-l10n/it/localization/it/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/it/localization/it/messenger/addressbook/aboutAddressBook.ftl
index 1d95447d94d3f67c20ec95235570e993f151f1e9..43d171e46c726d8755fb71db58d731f83707ce5e 100644
--- a/thunderbird-l10n/it/localization/it/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/it/localization/it/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Tutte le rubriche
-
 about-addressbook-books-context-properties =
     .label = Proprietà
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Elimina
 about-addressbook-books-context-remove =
     .label = Elimina
-
 about-addressbook-confirm-delete-book-title = Elimina rubrica
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Cerca in { $name }
 about-addressbook-search-all =
     .placeholder = Cerca in tutte le rubriche
-
 about-addressbook-sort-button =
     .title = Cambia ordine dell’elenco
-
 about-addressbook-name-format-display =
     .label = Nome visualizzato
 about-addressbook-name-format-firstlast =
     .label = Nome Cognome
 about-addressbook-name-format-lastfirst =
     .label = Cognome, Nome
-
 about-addressbook-sort-name-ascending =
     .label = Ordina per nome (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Ordina per indirizzo email (A > Z)
 about-addressbook-sort-email-descending =
     .label = Ordina per indirizzo email (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Scrivi
 about-addressbook-confirm-delete-mixed-title = Elimina contatti e liste
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Modifica
 about-addressbook-cancel-edit-contact-button = Annulla
 about-addressbook-save-edit-contact-button = Salva
-
 about-addressbook-details-email-addresses-header = Indirizzi email
 about-addressbook-details-phone-numbers-header = Numeri di telefono
 about-addressbook-details-home-address-header = Indirizzo di casa
diff --git a/thunderbird-l10n/it/localization/it/messenger/importDialog.ftl b/thunderbird-l10n/it/localization/it/messenger/importDialog.ftl
index d8b3f5ba5936ac317dbc7c39f5bfbfcc1ca22588..5178ab30e7fe309817e60c5d74ebcc9617cef7b0 100644
--- a/thunderbird-l10n/it/localization/it/messenger/importDialog.ftl
+++ b/thunderbird-l10n/it/localization/it/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = Importa messaggi da una cartella del profilo di Thunderbird.
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (backup del profilo esportato; file zip inferiore a 2 GB)
+    .accesskey = b
+import-from-thunderbird-dir =
+    .label = Thunderbird (cartella del profilo)
+    .accesskey = d
 import-select-profile-zip = Seleziona una cartella del profilo compressa
+import-select-profile-dir = Seleziona una cartella del profilo
+zip-file-too-big-title = File ZIP troppo grande
+zip-file-too-big-message = Il file ZIP selezionato è più grande di 2GB. Estrai i file, poi importa dalla cartella estratta.
+wizardpage-failed =
+    .label = Importazione non riuscita
+wizardpage-failed-message = Importazione non riuscita per un errore inatteso; potrebbero essere disponibili ulteriori informazioni nella console degli errori.
diff --git a/thunderbird-l10n/it/localization/it/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/it/localization/it/messenger/messengercompose/messengercompose.ftl
index 5389d48acd14fab82adbb6e4c7fb429d97041530..3d7c388dcf48377cfa3e2cd5ea58505ea3db9352 100644
--- a/thunderbird-l10n/it/localization/it/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/it/localization/it/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Aggiungi allegato…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Aggiungi allegato…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = File…
     .accesskey = F
@@ -158,12 +162,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Mostra campo { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = I { $count } destinatari inseriti nei campi A e Cc possono vedere i rispettivi indirizzi. Puoi evitare di mostrare gli indirizzi dei destinatari utilizzando Ccn.
+to-address-row-label =
+    .value = A
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Campo A
+    .accesskey = a
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = A
+    .accesskey = A
+#   $key (String) - the shortcut key for this field
+show-to-row-button = A
+    .title = Mostra il campo A ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Campo Cc
+    .accesskey = m
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Mostra il campo Cc ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Ccn
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Campo Ccn
+    .accesskey = o
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Ccn
+    .accesskey = n
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Ccn
+    .title = Mostra il campo Ccn ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Altri campi destinatario da mostrare
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Il tuo messaggio ha un destinatario pubblico. Puoi evitare di mostrare gli indirizzi dei destinatari utilizzando Ccn.
+       *[other] I { $count } destinatari inseriti nei campi A e Cc possono vedere i rispettivi indirizzi. Puoi evitare di mostrare gli indirizzi dei destinatari utilizzando Ccn.
+    }
 many-public-recipients-bcc =
     .label = Utilizza Ccn
     .accesskey = U
 many-public-recipients-ignore =
     .label = Mantieni i destinatari visibili
     .accesskey = M
+many-public-recipients-prompt-title = Troppi destinatari pubblici
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Il tuo messaggio ha un destinatario pubblico. Questo potrebbe essere un problema di privacy. Puoi evitare di rivelare i destinatari spostando i destinatari da A/Cc a Ccn.
+       *[other] Il tuo messaggio ha { $count } destinatari pubblici che potranno vedere gli indirizzi degli altri. Questo potrebbe essere un problema di privacy. Puoi evitare di rivelare i destinatari spostando i destinatari da A/Cc a Ccn.
+    }
+many-public-recipients-prompt-cancel = Annulla invio
+many-public-recipients-prompt-send = Invia comunque
 
 ## Notifications
 
diff --git a/thunderbird-l10n/it/localization/it/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/it/localization/it/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..61cf9aa10bb5e2ea871e80b68959158d8db701e1
--- /dev/null
+++ b/thunderbird-l10n/it/localization/it/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,18 @@
+# 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/.
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Completare l’installazione di { -brand-short-name }?
+prompt-to-install-message = Completa la procedura di installazione per mantenere { -brand-short-name } aggiornato ed evitare perdite di dati. { -brand-short-name } verrà aggiunto alla cartella Applicazioni e al Dock.
+prompt-to-install-yes-button = Installa
+prompt-to-install-no-button = Non installare
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Installazione di { -brand-short-name } non riuscita.
+install-failed-message = L’installazione non è riuscita ma { -brand-short-name } continuerà a funzionare.
diff --git a/thunderbird-l10n/it/localization/it/toolkit/global/textActions.ftl b/thunderbird-l10n/it/localization/it/toolkit/global/textActions.ftl
index 008813cf29a4ce7063638e27fc8142bf5a208276..e6bdf54768afd0b4eb4dd857b394ee01f8a2bf6b 100644
--- a/thunderbird-l10n/it/localization/it/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/it/localization/it/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Annulla
     .accesskey = A
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Ripeti
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Taglia
     .accesskey = T
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copia
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Incolla
     .accesskey = I
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Elimina
     .accesskey = E
-
 text-action-select-all =
     .label = Seleziona tutto
     .accesskey = S
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Nessun suggerimento ortografico
+text-action-spell-add-to-dictionary =
+    .label = Aggiungi al dizionario
+    .accesskey = z
+text-action-spell-undo-add-to-dictionary =
+    .label = Annulla “Aggiungi al dizionario”
+    .accesskey = z
+text-action-spell-check-toggle =
+    .label = Controllo ortografico
+    .accesskey = o
+text-action-spell-add-dictionaries =
+    .label = Aggiungi dizionari…
+    .accesskey = z
+text-action-spell-dictionaries =
+    .label = Lingue
+    .accesskey = u
diff --git a/thunderbird-l10n/it/manifest.json b/thunderbird-l10n/it/manifest.json
index 5974f3d955fc213652c619c805daf880b8b264b5..add1bb7cd01ab881e744bd636e50656a1c56fa10 100644
--- a/thunderbird-l10n/it/manifest.json
+++ b/thunderbird-l10n/it/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Italiano (IT) Language Pack",
   "description": "Language pack for Thunderbird for it",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "it": {
-      "version": "20210818165745",
+      "version": "20210901073648",
       "chrome_resources": {
         "alerts": "chrome/it/locale/it/alerts/",
         "autoconfig": "chrome/it/locale/it/autoconfig/",
diff --git a/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/imtooltip.properties b/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/imtooltip.properties
index 44539f4c759977ac9d99ea405021d694043dac37..7a8c4c75060bb593c561ab6e5fa8b7b07695b8a1 100644
--- a/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/imtooltip.properties
+++ b/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/imtooltip.properties
@@ -7,4 +7,6 @@ buddy.account=アカウント
 contact.tags=ã‚¿ã‚°
 
 otr.tag=OTR 状態
+
+encryption.tag=暗号化状態
 message.status=メッセージが暗号化されています
diff --git a/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/matrix.properties b/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/matrix.properties
index 752615136b8aa2f03b035b8d1c2660411e9101e6..cef8588511eaeb3877f30c404f09d52a3e16776b 100644
--- a/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/matrix.properties
+++ b/thunderbird-l10n/ja/chrome/ja/locale/ja/chat/matrix.properties
@@ -213,3 +213,4 @@ message.alias.removed=%1$S がこの部屋の別名アドレス %2$S を削除
 #    %3$S is a comma delmited list of added addresses.
 message.alias.removedAndAdded=%1$S がこの部屋の別名アドレス %2$S を削除し、%3$S を追加しました。
 message.spaceNotSupported=このルームはサポートされていないスペースです。
+message.encryptionStart=この会話のメッセージはエンドツーエンド暗号化されます。
diff --git a/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/toolbox.properties b/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/toolbox.properties
index 1d4c03dcf6940e7e616632acdf9ff0d6ff4e92d8..7c65d02b0e976d9c041270d3ed916f88ab7424af 100644
--- a/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/toolbox.properties
@@ -291,3 +291,7 @@ options.deprecationNotice			=非推奨です。詳細...
 # LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
 options.enableMultiProcessToolbox		=マルチプロセスブラウザーツールボックスを有効化 (ブラウザーツールボックスの再起動が必要です)
+
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+options.enableNewPerformancePanel		=新しいパフォーマンスツールを有効化 (開発ツールを開きなおしてください)
diff --git a/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/webconsole.properties b/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/webconsole.properties
index 64f11715bd16da0e799b9798f2b0a7d7deba0ff5..ca822d3d5fa8dcca498197355992c1f2e566cf51 100644
--- a/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/ja/chrome/ja/locale/ja/devtools/client/webconsole.properties
@@ -439,6 +439,12 @@ webconsole.message.componentDidCatch.label		=[開発ツールエラー] 申し
 # in the console, for example, copy({hello: "world"}).
 webconsole.message.commands.copyValueToClipboard	=文字列をクリップボードにコピーしました。
 
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError			=`copy` コマンドに失敗しました。オブジェクトを文字列化できません: %S
+
 # LOCALIZATION NOTE (webconsole.message.commands.blockedURL)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
diff --git a/thunderbird-l10n/ja/chrome/ja/locale/ja/global/layout_errors.properties b/thunderbird-l10n/ja/chrome/ja/locale/ja/global/layout_errors.properties
index 7c20e9a0494ca5fc42fd00f029b86bf0ced9bc74..7a83a0c253c24aa779288dc598bf5c2915dad018 100644
--- a/thunderbird-l10n/ja/chrome/ja/locale/ja/global/layout_errors.properties
+++ b/thunderbird-l10n/ja/chrome/ja/locale/ja/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords		=<area shape="poly"> タグの coords 属性で
 TablePartRelPosWarning			=テーブル列と列グループは相対的な位置に配置できます。この機能の効果が見られない場合、サイトは更新される必要があるでしょう。
 ScrollLinkedEffectFound2		=このサイトはスクロールに対して配置を固定する効果が使用されています。これは非同期パンで正しく動作しない可能性があります。詳細は https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects を参照し、関連するツールと機能の議論に参加してください。
 
+ScrollLinkedEffectFound3		=このサイトはスクロールに対して配置を固定する効果が使用されています。これは非同期パンで正しく動作しない可能性があります。詳細は https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html を参照し、関連するツールと機能の議論に参加してください。
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
diff --git a/thunderbird-l10n/ja/localization/ja/devtools/client/perftools.ftl b/thunderbird-l10n/ja/localization/ja/devtools/client/perftools.ftl
index de568394c5cffd35c2e446f03a7158432913dfde..77efc34b04f996f21537dae2bf26dba895bd3d2c 100644
--- a/thunderbird-l10n/ja/localization/ja/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/ja/localization/ja/devtools/client/perftools.ftl
@@ -91,9 +91,6 @@ perftools-thread-img-decoder =
   .title = 画像デコードスレッドです
 perftools-thread-dns-resolver =
   .title = DNS の名前解決が行われるスレッドです
-perftools-thread-js-helper =
-  .title = メインスレッド外コンパイルなど、JS エンジンのバックエンド処理のスレッドです
-
 perftools-thread-task-controller =
   .title = タスクコントローラのスレッドプールにあるスレッドです
 
diff --git a/thunderbird-l10n/ja/localization/ja/devtools/client/tooltips.ftl b/thunderbird-l10n/ja/localization/ja/devtools/client/tooltips.ftl
index eda3a3a06f5b7856fefcacc47d5528e07634a7f4..f9ae512d72b01e3cefb3cc863fe71ace1b4f2eed 100644
--- a/thunderbird-l10n/ja/localization/ja/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/ja/localization/ja/devtools/client/tooltips.ftl
@@ -39,8 +39,6 @@ inactive-css-position-property-on-unpositioned-box = この要素は配置の指
 
 inactive-text-overflow-when-no-overflow = <strong>overflow:hidden</strong> が設定されてないため、<strong>{ $property }</strong> はこの要素に影響を及ぼしません。
 
-inactive-outline-radius-when-outline-style-auto-or-none = この要素の <strong>outline-style</strong> は <strong>auto</strong> または <strong>none</strong> となっているため、<strong>{ $property }</strong> はこの要素に影響を及ぼしません。
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> はテーブルを構成する要素に影響を及ぼしません。
 
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> はセル以外のテーブルを構成する要素に影響を及ぼしません。
@@ -59,6 +57,8 @@ inactive-css-not-grid-or-flex-container-or-multicol-container-fix = <strong>disp
 
 inactive-css-not-grid-or-flex-item-fix-2 = <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, または <strong>display:inline-flex</strong> を追加してみてください。{ learn-more }
 
+inactive-css-not-grid-or-flex-item-fix-3 = <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, または <strong>display:inline-flex</strong> を親要素に追加してみてください。{ learn-more }
+
 inactive-css-not-grid-item-fix-2 =<strong>display:grid</strong> または <strong>display:inline-grid</strong> を要素の親に追加してみてください。{ learn-more }
 
 inactive-css-not-grid-container-fix = <strong>display:grid</strong> または <strong>display:inline-grid</strong> を追加してみてください。{ learn-more }
@@ -83,8 +83,6 @@ inactive-css-not-for-internal-table-elements-fix = <strong>セル</strong>、<st
 
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = <strong>列</strong>、<strong>行</strong>、<strong>列グループ</strong>、<strong>行グループ</strong> または <strong>フッターグループ</strong> 以外の要素に <strong>display</strong> プロパティを設定してみてください。{ learn-more }
 
-inactive-outline-radius-when-outline-style-auto-or-none-fix = <strong>outline-style</strong> プロパティに <strong>auto</strong> または <strong>none</strong> 以外の値を設定してみてください。{ learn-more }
-
 inactive-css-not-table-fix = <strong>display:table</strong> または <strong>display:inline-table</strong> を追加してみてください。{ learn-more }
 
 inactive-scroll-padding-when-not-scroll-container-fix = <strong>overflow:auto</strong>、<strong>overflow:scroll</strong> または <strong>overflow:hidden</strong> を追加してみてください。{ learn-more }
diff --git a/thunderbird-l10n/ja/localization/ja/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/ja/localization/ja/messenger/messengercompose/messengercompose.ftl
index ba5d01c49de9be0cda7920c24fde2fd105255b24..7a0f4db1c3151b1f9ae1ce77e46c6520e575fe23 100644
--- a/thunderbird-l10n/ja/localization/ja/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/ja/localization/ja/messenger/messengercompose/messengercompose.ftl
@@ -97,6 +97,11 @@ move-attachment-last-panel-button =
 button-return-receipt =
     .label = 開封確認
     .tooltiptext = このメッセージの開封確認の返送を求めます
+# Encryption
+message-to-be-signed-icon =
+    .alt = メッセージに署名
+message-to-be-encrypted-icon =
+    .alt = メッセージを暗号化
 
 ## Addressing Area
 
@@ -132,12 +137,27 @@ bcc-compose-show-address-row-label =
     .tooltiptext = { bcc-compose-address-row-label.value } フィールドを表示します ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = 宛先および Cc フィールドの {$count} 件の受信者は互いのアドレスを見られます。代わりに Bcc フィールドを使用すると受信者アドレスの開示を避けられます。
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice = { $count ->
+    [one] あなたのメッセージの受信者は開示されています。代わりに Bcc フィールドを使用すると受信者アドレスの開示を避けられます。
+    *[other] 宛先および Cc フィールドの {$count} 件の受信者アドレスは開示されており、受信者が互いにこれらのアドレスを見られます。代わりに Bcc フィールドを使用すると受信者アドレスの開示を避けられます。
+}
 many-public-recipients-bcc =
     .label = 代わりに Bcc を使用する
     .accesskey = U
 many-public-recipients-ignore =
     .label = 受信者を開示したままにする
     .accesskey  = K
+many-public-recipients-prompt-title = 開示された受信者が多すぎます
+
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg = { $count -> 
+    [one] あなたのメッセージの受信者は開示されており、プライバシー上の懸念が生じる可能性があります。受信者を宛先または Cc フィールドから Bcc フィールドへ移動することで受信者アドレスの開示を避けられます。
+    *[other] あなたのメッセージは {$count} 件の受信者が開示されており、受信者が互いにこれらのアドレスを見られるため、プライバシー上の懸念が生じる可能性があります。受信者を宛先または Cc フィールドから Bcc フィールドへ移動することで受信者アドレスの開示を避けられます。
+}
+
+many-public-recipients-prompt-cancel = 送信をキャンセル
+many-public-recipients-prompt-send = 強制送信
 
 ## Notifications
 
diff --git a/thunderbird-l10n/ja/localization/ja/messenger/otr/otrUI.ftl b/thunderbird-l10n/ja/localization/ja/messenger/otr/otrUI.ftl
index 3183a2eb3aed4a2d6fe04e150239f1160125ec4e..465793823bbbdea0086f26d8dead3a7a6659aabd 100644
--- a/thunderbird-l10n/ja/localization/ja/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/ja/localization/ja/messenger/otr/otrUI.ftl
@@ -52,14 +52,20 @@ state-not_private = 現在の会話はプライベートではありません。
 
 state-not-private = 現在の会話はプライベートではありません。
 
+state-generic-not-private = 現在の会話はプライベートではありません。
+
 # Variables:
 #   $name (String) - the screen name of a chat contact person
-state-unverified = { $name } さんの身元がまだ確認されていないため、現在の会話は暗号化されていますがプライベートではありません。
+state-unverified = 現在の会話は暗号化されていますが、{ $name } さんの身元がまだ確認されていないためプライベートではありません。
+
+state-generic-unverified = 現在の会話は暗号化されていますが、一部の参加者の身元がまだ確認されていないためプライベートではありません。
 
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-private = { $name } さんの身元が確認されました。現在の会話は暗号化されておりプライベートです。
 
+state-generic-private = 現在の会話は暗号化されておりプライベートです。
+
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-finished = { $name } さんはあなたとの暗号化された会話を終了しています。同様に会話を終了してください。
diff --git a/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutAddons.ftl
index 7ff89d25ec01b4b185184953b3afe67a974476c9..b52e262a22c1118726a9f68934f2d0926723a4b4 100644
--- a/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutAddons.ftl
+++ b/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutAddons.ftl
@@ -199,8 +199,8 @@ addon-updates-view-updates = 最近更新したアドオンを表示
 
 # This menu item is a checkbox that toggles the default global behavior for
 # add-on update checking.
-
-addon-updates-update-addons-automatically = アドオンを自動的に更新
+# (^m^) en-US: Update Add-ons Autmatically
+addon-updates-update-addons-automatically = アドオンを既定で自動更新する
     .accesskey = A
 
 ## Specific add-ons can have custom update checking behaviors ("Manually",
@@ -208,10 +208,11 @@ addon-updates-update-addons-automatically = アドオンを自動的に更新
 ## update checking behavior for all add-ons to the default global behavior
 ## (which itself is either "Automatically" or "Manually", controlled by the
 ## extensions-updates-update-addons-automatically.label menu item).
-
-addon-updates-reset-updates-to-automatic = すべてのアドオンを自動的に更新
+# (^m^) 原文が直感的でないため実際の動作に合わせて、"Automatically / Manually" を使わない表現に変更した。
+# https://github.com/mozilla-japan/gecko-l10n/issues/263
+addon-updates-reset-updates-to-automatic = すべてのアドオンの更新設定を既定にリセット
     .accesskey = R
-addon-updates-reset-updates-to-manual = すべてのアドオンを手動で更新
+addon-updates-reset-updates-to-manual = すべてのアドオンの更新設定を既定にリセット
     .accesskey = R
 
 ## Status messages displayed when updating add-ons
@@ -362,11 +363,11 @@ addon-detail-reviews-link = { $numberOfReviews } 件のレビュー
 #   $addon (string) - Name of the add-on
 pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> は削除されます。
 pending-uninstall-undo-button = 元に戻す
-addon-detail-updates-label = 自動更新の許可
+addon-detail-updates-label = このアドオンの自動更新
 addon-detail-updates-radio-default = 既定
-addon-detail-updates-radio-on = オン
-addon-detail-updates-radio-off = オフ
-addon-detail-update-check-label = 更新の確認
+addon-detail-updates-radio-on = 許可する
+addon-detail-updates-radio-off = 許可しない
+addon-detail-update-check-label = 今すぐ確認
 install-update-button = æ›´æ–°
 # This is the tooltip text for the private browsing badge in about:addons. The
 # badge is the private browsing icon included next to the extension's name.
diff --git a/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutSupport.ftl
index eb83d9bc97715dd33b93731178e3c1c682df1750..e96575c007698d67f0c9e9f5c0b32143c75f7013 100644
--- a/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/ja/localization/ja/toolkit/about/aboutSupport.ftl
@@ -37,7 +37,7 @@ app-basics-title = アプリケーション基本情報
 app-basics-name = 製品名
 app-basics-version = バージョン
 app-basics-build-id = ビルド ID
-app-basics-distribution-id = 区域 ID
+app-basics-distribution-id = ディストリビューション ID
 app-basics-update-channel = 更新チャンネル
 app-basics-update-dir =
     { PLATFORM() ->
diff --git a/thunderbird-l10n/ja/localization/ja/toolkit/about/certviewer.ftl b/thunderbird-l10n/ja/localization/ja/toolkit/about/certviewer.ftl
index 21d145b9a7e24286f4bf9416d6f4b04c583fdaa5..d2215aed4950662b6a12438239caa218fe55cfb0 100644
--- a/thunderbird-l10n/ja/localization/ja/toolkit/about/certviewer.ftl
+++ b/thunderbird-l10n/ja/localization/ja/toolkit/about/certviewer.ftl
@@ -40,8 +40,8 @@ certificate-viewer-logid = ログ ID
 certificate-viewer-method = 方式
 certificate-viewer-modulus = 母数
 certificate-viewer-name = 名称
-certificate-viewer-not-after = 開始日
-certificate-viewer-not-before = 終了日
+certificate-viewer-not-after = 終了日
+certificate-viewer-not-before = 開始日
 certificate-viewer-organization = 組織
 certificate-viewer-organizational-unit = 組織単位
 certificate-viewer-policy = ポリシー
diff --git a/thunderbird-l10n/ja/localization/ja/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ja/localization/ja/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ja/localization/ja/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ja/manifest.json b/thunderbird-l10n/ja/manifest.json
index 6668f6605842bcf93ebac21928bb06c558eeea17..5a4d5ff8eb507c9f85354611131362a3c6b78ac9 100644
--- a/thunderbird-l10n/ja/manifest.json
+++ b/thunderbird-l10n/ja/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Japanese Language Pack",
   "description": "Language pack for Thunderbird for ja",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ja": {
-      "version": "20210813140520",
+      "version": "20210831121457",
       "chrome_resources": {
         "alerts": "chrome/ja/locale/ja/alerts/",
         "autoconfig": "chrome/ja/locale/ja/autoconfig/",
diff --git a/thunderbird-l10n/ka/chrome/ka/locale/ka/global/layout/htmlparser.properties b/thunderbird-l10n/ka/chrome/ka/locale/ka/global/layout/htmlparser.properties
index 615544cc76fe3038fa353ded29d89a150ed7bf4f..a5b826584500ba36fa2654595e494d7b7d334ff2 100644
--- a/thunderbird-l10n/ka/chrome/ka/locale/ka/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/ka/chrome/ka/locale/ka/global/layout/htmlparser.properties
@@ -34,11 +34,11 @@ errBogusComment=Bogus comment.
 errUnquotedAttributeLt=“<” in an unquoted attribute value. Probable cause: Missing “>” immediately before.
 errUnquotedAttributeGrave=“`” in an unquoted attribute value. Probable cause: Using the wrong character as a quote.
 errUnquotedAttributeQuote=Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
-errUnquotedAttributeEquals=“=”  ბრჭყალების არმქონე თვისების მნიშვნელობაში. შესაძლო მიზეზები: ერთად გაშვებული თვისებები ან URL-მოთხოვნის სტრიქონი ბრჭყალების არმქონე თვისების მნიშვნელობაში.
+errUnquotedAttributeEquals=“=” in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
 errSlashNotFollowedByGt=წილადის ხაზს მაშინვე “>” არ მოჰყვა.
 errNoSpaceBetweenAttributes=თვისებებს შორის სივრცე არაა.
 errUnquotedAttributeStartLt=“<” ბრჭყალების არმქონე თვისების მნიშვნელობის თავში. შესაძლო მიზეზი: გამოტოვებული “>” მის წინ.
-errUnquotedAttributeStartGrave=“`” ბრჭყალების არმქონე თვისების მნიშვნელობის თავში. სავარაუდო მიზეზი: არასწორი სიმბოლოს გამოყენება ბრჭყალად.
+errUnquotedAttributeStartGrave=“`” at the start of an unquoted attribute value. Probable cause: Using the wrong character as a quote.
 errUnquotedAttributeStartEquals=“=” at the start of an unquoted attribute value. Probable cause: Stray duplicate equals sign.
 errAttributeValueMissing=თვისების მნიშვნელობა მითითებული არაა.
 errBadCharBeforeAttributeNameLt=Saw “<” when expecting an attribute name. Probable cause: Missing “>” immediately before.
@@ -53,9 +53,9 @@ errQuoteBeforeAttributeName=Saw a quote when expecting an attribute name. Probab
 errLtInAttributeName=“<” in attribute name. Probable cause: “>” missing immediately before.
 errQuoteInAttributeName=Quote in attribute name. Probable cause: Matching quote missing somewhere earlier.
 errExpectedPublicId=Expected a public identifier but the doctype ended.
-errBogusDoctype=ყალბი doctype.
+errBogusDoctype=Bogus doctype.
 maybeErrAttributesOnEndTag=დამხურავ ჭდეს აქვს თვისებები.
-maybeErrSlashInEndTag=მიუსაფარი “/” დამაბალოებელი იარლიყის ბოლოში.
+maybeErrSlashInEndTag=Stray “/” at the end of an end tag.
 errNcrNonCharacter=Character reference expands to a non-character.
 errNcrSurrogate=Character reference expands to a surrogate.
 errNcrControlChar=Character reference expands to a control character.
@@ -77,13 +77,14 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
 errNoSpaceBetweenDoctypePublicKeywordAndQuote=No space between the doctype “PUBLIC” keyword and the quote.
 
 # Tree builder errors
-errDeepTree=დოკუმენტის ხე მეტად ღრმაა. შემოკლდება 513 ელემენტის სიღრმემდე.
+errDeepTree=The document tree is too deep. The tree will be flattened to be 513 elements deep.
 errStrayStartTag2=მიუსაფარი საწყისი იარლიყი “%1$S”.
 errStrayEndTag=მიუსაფარი ბოლო იარლიყი “%1$S”.
 errUnclosedElements=End tag “%1$S” seen, but there were open elements.
@@ -130,5 +131,6 @@ errStartTagSeenWithoutRuby=Start tag “%1$S” seen without a “ruby” elemen
 errSelfClosing=Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.
 errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
-errEndTagViolatesNestingRules=მაბოლოებელი იარლიყი “%1$S” არღვევს ჩადგმის წესებს.
+errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=დაუხურავი ელემენტი ან ელემენტები.
diff --git a/thunderbird-l10n/ka/localization/ka/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ka/localization/ka/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ka/localization/ka/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ka/localization/ka/toolkit/global/textActions.ftl b/thunderbird-l10n/ka/localization/ka/toolkit/global/textActions.ftl
index 940c56504ba83a849a95eb6348280df055f18eec..b8e88b2c443bcaac8000b6dc72c89d55c655c34b 100644
--- a/thunderbird-l10n/ka/localization/ka/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/ka/localization/ka/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = დაბრუნება
     .accesskey = დ
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = კვლავ შესრულება
     .accesskey = კ
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = ამოჭრა
     .accesskey = ა
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = ასლი
     .accesskey = ს
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = ჩასმა
     .accesskey = ჩ
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = წაშლა
     .accesskey = წ
-
 text-action-select-all =
     .label = ყველაფრის მონიშვნა
     .accesskey = ყ
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = მართლწერის შემოთავაზებები არაა
+text-action-spell-add-to-dictionary =
+    .label = ლექსიკონში დამატება
+    .accesskey = ლ
+text-action-spell-undo-add-to-dictionary =
+    .label = ლექსიკონში დამატების გაუქმება
+    .accesskey = უ
+text-action-spell-check-toggle =
+    .label = მართლწერის შემოწმება
+    .accesskey = წ
+text-action-spell-add-dictionaries =
+    .label = ლექსიკონების დამატება…
+    .accesskey = დ
+text-action-spell-dictionaries =
+    .label = ენები
+    .accesskey = ე
diff --git a/thunderbird-l10n/ka/manifest.json b/thunderbird-l10n/ka/manifest.json
index fc590d0013bd822922196cad6df9ae1800670c62..19da3698112ace9189fc02da074261f7707bfeb1 100644
--- a/thunderbird-l10n/ka/manifest.json
+++ b/thunderbird-l10n/ka/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Georgian (ქართული) Language Pack",
   "description": "Language pack for Thunderbird for ka",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ka": {
-      "version": "20210818081506",
+      "version": "20210831121512",
       "chrome_resources": {
         "alerts": "chrome/ka/locale/ka/alerts/",
         "autoconfig": "chrome/ka/locale/ka/autoconfig/",
diff --git a/thunderbird-l10n/kab/localization/kab/devtools/client/perftools.ftl b/thunderbird-l10n/kab/localization/kab/devtools/client/perftools.ftl
index 9170aa11fd99f922c4a60934f265c29b1ebee32d..7092f020400847158cac52b651bab0033f2699f5 100644
--- a/thunderbird-l10n/kab/localization/kab/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/kab/localization/kab/devtools/client/perftools.ftl
@@ -90,6 +90,7 @@ perftools-thread-dns-resolver =
 
 ##
 
+perftools-record-all-registered-threads = Zgel afranen-a nnig, teskelseḍ akk isqerdcen
 
 ## Onboarding UI labels. These labels are displayed in the new performance panel UI, when
 ## both devtools.performance.new-panel-onboarding & devtools.performance.new-panel-enabled
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/kab/localization/kab/messenger/accountcreation/accountSetup.ftl
index 6e2aa4c55333ec675acbabceeb0672a69d2e08ec..af431e7c0b347ba6482319f60de685e86c67c9af 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/accountcreation/accountSetup.ftl
@@ -181,6 +181,9 @@ account-setup-advanced-setup-button = Tawila leqqayen
 account-setup-insecure-title = Ɣur-k·m!
 account-setup-insecure-incoming-title = Tawila n unekcum:
 account-setup-insecure-outgoing-title = Tawila n tuffɣa:
+# Variables:
+#  $server (String): The name of the hostname of the server the user was trying to connect to.
+account-setup-warning-cleartext = <b>{ $server }</b> ur isseqdac ara awgelhen.
 account-setup-warning-cleartext-details = Iqeddacen n tirawt ur nelli ara d iɣalsanen ur seqdacen ara tuqqna tawgelhant akken ad mmestnen awalen-inek uffiren akked talɣut-inek tusligt.
 account-setup-insecure-server-checkbox = Gziɣ d acu ara d-yeḍrun
     .accesskey = G
@@ -208,8 +211,16 @@ account-setup-addon-install-intro = Azegrir wis tlata ad k-yeǧǧ ad tkecmeḍ 
 
 ## Success view
 
+account-setup-settings-button = Iɣewwaren n umiḍan
 account-setup-encryption-button = Awgelhen seg yixef ɣer wayeḍ
+account-setup-signature-button = Rnu azmul
 account-setup-dictionaries-button = Zdem n imawalen
+account-setup-address-book-carddav-button = Qqen ɣer umedlis n tansiwin CardDAV
+account-setup-address-book-ldap-button = Qqen ɣer umedlis n tansiwin LDAP
+account-setup-calendar-button = Qqen ɣer uwitay anmeggag
+account-setup-linked-services-title = Qqen ɣer yimeẓla-inek·inem yeqqnen
+account-setup-linked-services-description = { -brand-short-name } yufa-d imeɣla-nniḍen yeqqnen ɣer umiḍan-ik·im n yimayl.
+account-setup-no-linked-description = Sesteb imeẓla-nniḍen i wakken ad tfaṛseḍ ugar seg termit n { -brand-short-name }.
 account-setup-button-finish = Fak
     .accesskey = F
 account-setup-looking-up-address-books = Anadi n yimedlisen n tansiwin…
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/kab/localization/kab/messenger/addressbook/fieldMapImport.ftl
index 4b2cddd4298a35dd673f94ff2ec374965412e0d0..67a345839db4564ec893e7363a70e852dbe521f7 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/addressbook/fieldMapImport.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/addressbook/fieldMapImport.ftl
@@ -2,6 +2,10 @@
 # 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/.
 
+import-ab-csv-window =
+    .title = Kter amedlis n tansiwin seg ufaylu n uḍris
+#   $recordNumber (Number) - The current record number of the preview data.
+import-ab-csv-preview-record-number = Taskant n yifeska yettwaktaren i usekles n { $recordNumber }
 import-ab-csv-dialog =
     .buttonlabelaccept = Kter
     .buttonaccesskeyaccept = K
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp-frontend.ftl b/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp-frontend.ftl
index 860fa211a6b5015b341c88672e5eef21f0fdcfd8..ab6456717677efd64fbe5750ceb9cc20c72b615c 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp-frontend.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp-frontend.ftl
@@ -5,7 +5,6 @@
 openpgp-manage-keys-openpgp-cmd =
     .label = Amsefrak n tsarut OpenPGP
     .accesskey = O
-
 openpgp-ctx-decrypt-open =
     .label = Wgelhen syen ldi
     .accesskey = D
@@ -18,40 +17,32 @@ openpgp-ctx-import-key =
 openpgp-ctx-verify-att =
     .label = Senqed azmul
     .accesskey = V
-
 openpgp-has-sender-key = Yettban-d yizen-a deg-s tasarut tazayezt OpenPGP n unezmal.
 openpgp-be-careful-new-key = Ɣur-k·m: Tasarut tazayezt tamaynut OpenPGP deg yizen-a temgarrad ɣef tsura tizuyaz i tqebleḍ yakan i { $email }.
-
 openpgp-import-sender-key =
     .label = Kter…
-
 openpgp-search-keys-openpgp =
     .label = Snirem tasarut OpenPGP
-
 openpgp-missing-signature-key = Izen-a yettwazmel s tsarut urɛad tesɛiḍ.
-
 openpgp-search-signature-key =
     .label = Snirem…
-
 # Don't translate the terms "OpenPGP" and "MS-Exchange"
 openpgp-broken-exchange-opened = Wagi d izen OpenPGP ara yettbanen isexser-it MS-Exchange, ihi ur izmir ara ad d-yeldi seg ufaylu adigan. Nɣel izen ɣer ukaram n yizen akken ad tɛerḍeḍ aṣeggem awurman.
 openpgp-broken-exchange-info = Wagi d izen OpenPGP ara yettbanen isexser-it MS-Exchange. Ma yella ur d-iban ara ugbur n yizen tzemreḍ ad tɛerḍeḍ aṣeggem awurman.
 openpgp-broken-exchange-repair =
     .label = Izen n useggem
 openpgp-broken-exchange-wait = Ttxil rǧu…
-
 openpgp-cannot-decrypt-because-mdc =
     Wagi d izen awgelhan i isseqdacen tarrayt taqburt ur neǧhid ara.
     Izmer ahat ibeddel akken ad yettwaker ugbur-is. Akken ur  d-iḍerru wayen n diri, agbur ur d-yettwaskan ara.
-
 openpgp-cannot-decrypt-because-missing-key = Tasarut tuffirt i yettusran i uwgelhen n yizen-a ulac-itt.
-
 openpgp-partially-signed =
     Ala aḥric seg yizen-a i yettwaszemlen s wudem umdin s OpenPGP.
     Ma tsenndeḍ ɣef tqeffalt senqed, iḥricen ur yettammestnen ara ad ttwaffren, daɣen addad n uzmul umdin ad d-yettwasken.
-
+openpgp-partially-encrypted =
+    Ala aḥric kan seg yizen-a i yettwawgelhen s useqdec n OpenPGP.
+    Iḥricen i d-ibanen n yizen i d-yettwaskanen yakan ur ttwawgelhen ara.
+    Ma yella tsateḍ ɣef tqeffalt n uwgelhen, igburen n yiḥricen yettwawgelhen ara d-yettwaskanen.
 openpgp-reminder-partial-display = Asmekti: Izen i d-yettbanen ddaw d tagrumma kan tasnawant n yizen agejdan.
-
 openpgp-partial-verify-button = Senqed
 openpgp-partial-decrypt-button = Wgelhen
-
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp.ftl b/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp.ftl
index 7ad6ae21bf7f1e5e1fea2f026cd8ccbd6aa3b289..3c16d54400351be81fd439b649dcf54e83de3fe9 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/openpgp/openpgp.ftl
@@ -272,16 +272,25 @@ openpgp-description =
         [one] Thunderbird yufa-d { $count } tasarut OpenPGP tudmawant i icudden ɣer </b> { $identity } </b>
        *[other] Thunderbird yufa-d { $count } tisura OpenPGP tudmawanin i icudden ɣer <b> { $identity } </b>
     }
+#   $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-have-key = Tawila-inek·inem tamirant tesseqdac asula n tsarut <b>{ $key }</b>
+#   $key (String) - the currently selected OpenPGP key
+openpgp-selection-status-error = Tawila-inek·inem tamirant tesseqdac tasarut <b>{ $key }</b>, i yemmuten.
 openpgp-add-key-button =
     .label = Rnu tasarut…
     .accesskey = A
 e2e-learn-more = Issin ugar
+openpgp-keygen-success = Tasarut n OpenPGP tettwarna akken iwata!
+openpgp-keygen-import-success = Tasarut n OpenPGP tettwakter akken iwata!
+openpgp-keygen-external-success = Asulay n tsarut GnuPG tazɣarayt tettwasekles!
 
 ## OpenPGP Key selection area
 
 openpgp-radio-none =
     .label = Ula yiwen
 openpgp-radio-none-desc = Ur seqdac ara OpenPGP i tmagit-a.
+openpgp-radio-key-not-usable = Tasarut-a ur tezmir ara ad tettuseqdac am tsaraut tudmawant, acku tasarut tuffirt truḥ!
+openpgp-radio-key-not-accepted = I useqdec n tsarut-a, ilaq ad tt-tmuddeḍ am tsarut tudmawant!
 #   $key (String) - the expiration date of the OpenPGP key
 openpgp-radio-key-expires = Azemz n taggara: { $date }
 openpgp-key-expires-image =
@@ -290,6 +299,10 @@ openpgp-key-expires-image =
 openpgp-radio-key-expired = Temmut deg: { $date }
 openpgp-key-expired-image =
     .tooltiptext = Tasarut temmut
+openpgp-key-expires-within-6-months-icon =
+    .title = Tasarut ad temmet sya ɣer 6 n wayyuren
+openpgp-key-has-expired-icon =
+    .title = Tasarut temmut
 openpgp-key-expand-section =
     .tooltiptext = Ugar n telɣut
 openpgp-key-revoke-title = Ḥwi tasarut
@@ -343,9 +356,18 @@ import-info-details = Sken talqayt daɣen sefrek aqbayl n tsura
 import-info-no-keys = Ulac tisura i d-yettwaketren.
 # Strings in enigmailKeyManager.js
 import-from-clip = Tebɣiḍ ad tketreḍ kra n tsura yellan ɣef afus?
+export-to-file = Sifeḍ tasarut tazayezt ɣer ufaylu
+general-error = Tuccḍa: { $reason }
+dlg-button-delete = &Kkes
 
 ## Account settings export output
 
+# Strings in gnupg-keylist.jsm
+keyring-photo = Tawlaft
+user-att-photo = Seqdec imyerr (tugna JPEG)
+key-man-button-revoke-key = &Ḥwi tasarut
+# Strings in keyRing.jsm & decryption.jsm
+key-man-button-import = &Kter
 # Strings used in trust.jsm
 key-valid-unknown = arussin
 key-valid-invalid = arameɣtu
@@ -353,6 +375,41 @@ key-valid-disabled = yensa
 key-valid-revoked = yettwaḥwi
 key-valid-expired = yemmut
 key-trust-untrusted = ur yettwaman ara
+key-trust-group = (agraw)
+# Strings used in commonWorkflows.js
+import-key-file = Kter afaylu n tsarut OpenPGP
+gnupg-file = Ifuyla GnuPG
+gen-going = Asirew n tsarut yebda yakan iteddu!
+expiry-too-short = Tasarut-ik·im ilaq ad tili d tameɣtut xerṣum yiwen wass.
+expiry-too-long = Ur tezmireḍ ara ad d-tesnulfuḍ tasarut ara yemmten deg wugar n 100 n yiseggasen.
+key-confirm = Sirew tasarut tazayezt tufurt i ‘{ $id }’?
+key-abort = Sefsex asirew n tsarut
 
 # Strings used in enigmailMessengerOverlay.js
 
+failed-decrypt = Tuccḍa - awgelhen yecceḍ
+# Strings used in enigmailMsgComposeOverlay.js
+msg-compose-button-send = &Azen izen
+msg-compose-details-button-label = Talqayt…
+msg-compose-details-button-access-key = D
+compose-menu-attach-key =
+    .label = Seddu tasarut-iw tazayazt
+    .accesskey = S
+do-import-one = Kter { $name } ({ $id })?
+dlg-button-view = &Sken
+repeat-suffix-singular = ugar n wakud.
+repeat-suffix-plural = ugar n wakuden.
+dlg-button-ok = &IH
+dlg-button-close = &Mdel
+dlg-button-cancel = &Sefsex
+enig-confirm = Asentem OpenPGP
+enig-alert = Alɣu OpenPGP
+enig-info = Talɣut OpenPGP
+# Strings used in persistentCrypto.jsm
+dlg-button-retry = Ɛ&reḍ tikelt nniḍen
+dlg-button-skip = &Zgel
+# Strings used in enigmailCommon.js
+enig-error = Tuccḍa OpenPGP
+# Strings used in enigmailMsgBox.js
+enig-alert-title =
+    .title = Alɣu OpenPGP
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/otr/otrUI.ftl b/thunderbird-l10n/kab/localization/kab/messenger/otr/otrUI.ftl
index 81a94b624c4d67f42d646c5bec37bec679a3393c..8f33154d6456ea409fd3b5fd0315922e44959c57 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/otr/otrUI.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/otr/otrUI.ftl
@@ -6,86 +6,66 @@ start-label = Bdu adiwenni awgelhan
 refresh-label = Smiren adiwenni awgelhan
 auth-label = Senqed timagit n unermas-inek/inem
 reauth-label = Ales asenqed n timagit n unermas-inek/inem
-
 auth-cancel = Sefsex
 auth-cancelAccessKey = C
-
 auth-cancel-access-key = C
-
 auth-error = Tella-d tuccḍa lawan n usenqed n tmagit n unermas-ik/im.
 auth-success = Asenqed n tmagit n unermas-ik/im yedda akken iwata.
 auth-successThem = Anermas-ik/im isenqed akken ilaq timagit-ik/im. Tzemreḍ ula d kečč(kemm) ad tesneqdeḍ timagit-nsen s tikci n usteqsi-inek-inem).
 auth-success-them = Anermas-ik/im isenqed akken ilaq timagit-ik/im. Tzemreḍ ula d kečč(kemm) ad tesneqdeḍ timagit-nsen s tikci n usteqsi-inek-inem).
 auth-fail = D awezɣi ad nsenqed timagit n unermas-inek/inem.
 auth-waiting = Aṛaǧu sya ara isali unermas asenqed…
-
 finger-verify = Senqed
 finger-verify-accessKey = V
-
 finger-verify-access-key = V
-
 # Do not translate 'OTR' (name of an encryption protocol)
 buddycontextmenu-label = Rnu adsil umḍin OTR
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-start = Aneεruḍ n usenker n udiwenni awgelhen d { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-refresh = Aneεruḍ n usmiren n udiwenni awgelhen d { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone_insecure = Adiwenni awgelhan d { $name } yekfa.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 alert-gone-insecure = Adiwenni awgelhan d { $name } yekfa.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-unseen = Timagit n { $name } mazal ur tettwasenqed ara. Asmuzget aralɣawi ur yezmir ara ad d-yili, maca s cwiṭ n lǧehd yella win ara as-yeslen. Sewḥel yal taεessast s usenqed n unermas-a.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 finger-seen = { $name } inermes-ik-ikem)-id seg uselkim ur nettwassen ara. Asmuzget aralɣawi ur yezmir ara ad d-yili, maca s cwiṭ n lǧehd yella win ara as-yeslen. Sewḥel yal taεessast s usenqed n unermas-a.
-
 state-not_private = Adiwenni amiran mačči d uslig.
-
 state-not-private = Adiwenni amiran mačči d uslig.
-
+state-generic-not-private = Adiwenni amiran mačči d uslig.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-unverified = Adiwenni-a amiran d awgelhen maca mačči d uslig, acku timagit n { $name } mazal ur yettusenqed ara.
-
+state-generic-unverified = Adiwenni-a amiran d awgelhen maca mačči d uslig, acku kra n tmagiyin mazaal ur ttwasneqdent ara.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-private = Timagit n { $name } tettwasenqed. Adiwenni amiran d awgelhen, d uslig.
-
+state-generic-private = Adiwenni amiran mačči d awgelhan, d uslig.
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 state-finished = { $name } yeḥbes adiwenni awgelhen yid-k/m; ilaq ad txedmeḍ am netta.
-
 state-not_private-label = Araɣelsan
-
 state-not-private-label = Araɣelsan
 state-unverified-label = Ur yettwasenqed ara
 state-private-label = Uslig
 state-finished-label = Yekfa
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 verify-request = { $name } isuter-d asenqed n tmagit-ik/im.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-private = Tesneqdeḍ timagit n { $name }.
-
 # Variables:
 #   $name (String) - the screen name of a chat contact person
 afterauth-unverified = Timagit n { $name } ur yettusenqed ara.
-
 verify-title = Senqed timagit n unermas-inek/inem
 error-title = Tuccḍa
 success-title = Awgelhen seg yixef ɣer wayeḍ
@@ -93,7 +73,6 @@ successThem-title = Senqed timagit n unermas-inek/inem
 success-them-title = Senqed timagit n unermas-inek·inem
 fail-title = Asenqed d awezɣi
 waiting-title = Asuter n usenqed yettwazen
-
 # Do not translate 'OTR' (name of an encryption protocol)
 # Variables:
 #   $error (String) - contains an error message that describes the cause of the failure
diff --git a/thunderbird-l10n/kab/localization/kab/messenger/policies/policies-descriptions.ftl b/thunderbird-l10n/kab/localization/kab/messenger/policies/policies-descriptions.ftl
index 9e36ba93c225c1a0ea39d842ba93bcdb26d148c7..0a286f7b70f0cb5159706b2e295f703d1b5365ed 100644
--- a/thunderbird-l10n/kab/localization/kab/messenger/policies/policies-descriptions.ftl
+++ b/thunderbird-l10n/kab/localization/kab/messenger/policies/policies-descriptions.ftl
@@ -11,137 +11,83 @@
 ## in the documentation section in about:policies.
 
 policy-3rdparty = Sbadu tisertiyin ara yeǧǧen WebExtensions ad yekcem s chrome.storage.managed.
-
 policy-AppAutoUpdate = Rmed neɣ ssens aleqqem awurman n yisnasen.
-
 policy-AppUpdateURL = Sbadu URL n uleqqem udmawan i usnas.
-
 policy-Authentication = Swel asesteb usliɣ i yismal web i ten-yessefraken.
-
+policy-BackgroundAppUpdate2 = Rmed neɣ sens aleqqam n ugilal.
 policy-BlockAboutAddons = Sewḥel anekcum ɣer umsefrek n yizegrar (about:addons).
-
 policy-BlockAboutConfig = Sewḥel anekcum ɣer usebter n about:config.
-
 policy-BlockAboutProfiles = Sewḥel anekcum ɣer usebter n about:profiles.
-
 policy-BlockAboutSupport = Sewḥel anekcum ɣer usebter n about:support.
-
 policy-CaptivePortal = Rmed neɣ sens asefrek n uwwur yettwaṭṭfen.
-
 policy-CertificatesDescription = Rnu iselkinen neɣ seqdec iselkinen usliɣen.
-
 policy-Cookies = Sireg neɣ gdel asbadu n yinagan n tuqqna i yisebtar.
-
+policy-DisableBuiltinPDFViewer = Sens PDF.js, ameskan PDF usliɣ deg { -brand-short-name }.
 policy-DisabledCiphers = Sens allalen n uwgelhen.
-
 policy-DefaultDownloadDirectory = Ad yesbadu akaram n usider s wudem amezwer.
-
 policy-DisableAppUpdate = Sewḥel { -brand-short-name } seg uleqqem.
-
 policy-DisableDefaultClientAgent = Ad isewḥel imeggi n umsaɣ s wudem amezwer akken ur itegg ara kra. Ad yeddu kan deg Windows; inagrawen-nniḍen ur sɛin ara imeggi-a.
-
 policy-DisableDeveloperTools = Sewḥel anekcum ɣer yifecka n tneflit.
-
 policy-DisableFeedbackCommands = Ssens tiludna akken ad aɣ-d-tazneḍ tikti-ik seg wumuɣ n tallelt ( Azen-d tikti temleḍ-aɣ-d ismal ur nemɛin ara).
-
 policy-DisableForgetButton = Sewḥel anekcum ɣer tqeffalt n usfaḍ n yisefka.
-
 policy-DisableFormHistory = Ur ḥerrez ara azray n unadi d tferkit.
-
 policy-DisableMasterPasswordCreation = Ma d tidet, awal uffir agejdan ur yezmir ara ad yettwarnu.
-
 policy-DisablePasswordReveal = Ur ttaǧǧa ara awalen uffiren ad d-banen deg yinekcam yettwaskelsen.
-
 policy-DisableProfileImport = Sens taladna n wumuɣ akken ad tketreḍ isefka seg usnas-nniḍen.
-
 policy-DisableSafeMode = Sens tamahilt akken ad talseḍ asenker deg uskar aɣelsan. Tamawt: tasarut Shift i unekcum ɣer uskar aɣelsan tezmer kan ad yettwasens deg Windows s useqdec n tsertit n ugraw.
-
 policy-DisableSecurityBypass = Sewḥel aseqdec akken ur iɣelli ara deg kra n wuguren n tɣellist.
-
 policy-DisableSystemAddonUpdate = Sewḥel { -brand-short-name } ɣef usbeddi d uleqqem n yizegrar n unagraw.
-
 policy-DisableTelemetry = Sens tilisɣelt.
-
 policy-DisplayMenuBar = Sken-d afeggag n wumuɣ s wudem amezwer.
-
 policy-DNSOverHTTPS = Swel DNS s HTTPS.
-
 policy-DontCheckDefaultClient = Sens asenqed amezwer i umsaɣ deg tnekra.
-
 policy-DownloadDirectory = Sbadu tṣekkreḍ akaram n usider.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EnableTrackingProtection = Rmed neɣ sens asewḥel n ugbur tṣekkreḍ-t ma tebɣiḍ.
-
 # “lock” means that the user won’t be able to change this setting
 policy-EncryptedMediaExtensions = Rmed neɣ sens isiɣzaf n wallalen n teywalt yettwawgelhen rnu sekkeṛ-it ma tebɣiḍ.
-
 # A “locked” extension can’t be disabled or removed by the user. This policy
 # takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
 # English or translate them as verbs.
 policy-Extensions = Sebded, kkes neɣ sewḥel isiɣzaf. Asebeddi yettawi URLs neɣ iberdan d iɣewwaṛen. Iɣewwaṛen n tukksa d usewḥel ttawin asiɣzef IDs.
-
 policy-ExtensionSettings = Sefrek akk timeẓra n usbeddi n yisiɣzaf.
-
 policy-ExtensionUpdate = Rmed neɣ sens ileqman n usiɣzef s wudem awurman.
-
+policy-Handlers = Swel imsefrak n usnas s wuem amezwer.
 policy-HardwareAcceleration = Ma ur yelli d ameɣtu, sens tasɣiwelt n warrum.
-
 policy-InstallAddonsPermission = Sireg asebeddi n yizegrar i kra n yismal web.
-
 policy-LegacyProfiles = Sens tamahilt i ihettmen aseqdec n umaɣnu yemgaraden i yal asebeddi.
 
 ## Do not translate "SameSite", it's the name of a cookie attribute.
 
 policy-LegacySameSiteCookieBehaviorEnabled = Sermed iɣewwaren n tikli uzwir n yinagan n tuqqna SameSite aqdim.
-
 policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Uɣal ɣer tikli taqdimt n SameSite i yinigan n tuqqna deg yismal i d-yettunefken.
 
 ##
 
 policy-LocalFileLinks = Sireg ismal usdiden ad cudden ɣer yifuyla idiganen.
-
+policy-ManualAppUpdateOnly = Mudd kan tisirag i yileqman s ufus, ur ttalɣu ara aseqdac ɣef yileqman.
 policy-NetworkPrediction = Rmed neɣ sens tifin n yiẓeḍwa (taɣuri tuzwirt DNS)
-
 policy-OfferToSaveLogins = Snes aɣewwaṛ akken ad tsirgeḍ { -brand-short-name } iwakken ad yecfu ɣef yinekcam d wawalen uffiren yettwakelsen. S wazalen iṣeḥḥan s wid iɣelḍen ad ttwaqeblen akk.
-
 policy-OfferToSaveLoginsDefault = Sbadu ma yella, swudem amezwer, { -brand-short-name } yessefk ad yecfu i unekcum akked wawalen uffiren. Azal tru akked false ad ttwaqeblen.
-
 policy-OverrideFirstRunPage = Beddel asebter amezwaru n uskar. Sbadu tasertit d tilemt ma tebɣiḍ ad tessenseḍ asebter amezwaru n uskar.
-
 policy-OverridePostUpdatePage = Beddel asebter "Acu-t amaynut" seld aleqqem. sbadu tasertit d tilemt ma tebɣiḍ ad tessenseḍ  asebter n uleqqem.
-
 policy-PasswordManagerEnabled = Rmed asekles n wawalen uffiren deg umsefrak n wawalen uffiren.
-
 # PDF.js and PDF should not be translated
 policy-PDFjs = Sens neɣ swel PDF.js, ameskan PDF usliɣ deg { -brand-short-name }.
-
 policy-Permissions2 = Swel tisirag i tkamirat, asawaḍ, adig, ilɣa akked tɣuri tawurmant.
-
 policy-Preferences = Sbadu tṣekkreḍ azal n taggayt taddayt n yismenyifen.
-
+policy-PrimaryPassword = Suter neɣ agi aseqdec n wawal uffir agejdan.
 policy-PromptForDownloadLocation = Suter anida ara ttwaskelsen yifuyla deg usider.
-
 policy-Proxy = Swel iɣewwaṛen n upṛuksi.
-
 policy-RequestedLocales = Sbadu tabdart n tutlayin yettwasutren i usnas akken i tesmenyafeḍ
-
 policy-SanitizeOnShutdown2 = Sfeḍ isefka n tunigin deg usexsi.
-
 policy-SearchEngines = Swel iɣewwaṛen n umsedday n unadi. Tasertit-a tella kan deg llqem Extended Support Release (ESR).
-
 policy-SearchSuggestEnabled = Ad yermed neɣ ad yessens isumar n unadi.
-
 # For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
 policy-SecurityDevices = Sebded izegrar n PKCS #11.
-
 policy-SSLVersionMax = Sbadu llqem afellay n SSL.
-
 policy-SSLVersionMin = Sbadu llqem adday n SSL.
-
 policy-SupportMenu = Rnu aferdis n wumuɣ n tallelt yugnen ɣer wumuɣ n uɛiwen.
-
 policy-UserMessaging = Ur d-skan ara kra n yiznan i useqdac.
-
 # “format” refers to the format used for the value of this policy.
 policy-WebsiteFilter = Sewḥel anekcum ɣer yismal web. Wali tasemlit i wugar n telqayt ɣef umasal.
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutNetworking.ftl
index 41db959726c009e41a2490090ab4e57c832fb58a..10cc0a1a75fb5614ef541312f86ea10d345e3a53 100644
--- a/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Urmid
 about-networking-idle = idle
 about-networking-host = Asenneftaɣ
 about-networking-tcp = TCP
+about-networking-type = Anaw
 about-networking-sent = Ţwaznen
 about-networking-received = IÅ£warmes
 about-networking-family = Tawacult
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutSupport.ftl
index dcbccf57a78c765192614848d2175903a6835fa1..4d3c44468a79392c751d9e64d96346bcf8f2ee44 100644
--- a/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/about/aboutSupport.ftl
@@ -59,6 +59,7 @@ app-basics-enabled-plugins = Izegrar iremden
 app-basics-build-config = Aswel n usefsu
 app-basics-user-agent = Ameggi aseqdac
 app-basics-os = NGR.MMD
+app-basics-os-theme = Asentel n unagraw n wammud
 # Rosetta is Apple's translation process to run apps containing x86_64
 # instructions on Apple Silicon. This should remain in English.
 app-basics-rosetta = Yettusuqel sɣur Rosetta
@@ -188,36 +189,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Izegrar n wis kraḍ
-support-third-party-modules-module = Isem n uzegrir
-support-third-party-modules-version = Lqem n ufaylu
-support-third-party-modules-vendor = Talɣut n umsenzi
-support-third-party-modules-occurrence = Timeḍriwt
-support-third-party-modules-process = Anaw & usulay n ukala
-support-third-party-modules-thread = Asqerdec
-support-third-party-modules-base = Tansa n taffa n tugniwin
-support-third-party-modules-uptime = Akud n useddu n ukala (ms)
-support-third-party-modules-duration = Tanzagt n usali (ms)
-support-third-party-modules-status = Addad
-support-third-party-modules-status-loaded = Yuli-d
-support-third-party-modules-status-blocked = Iwḥel
-support-third-party-modules-status-redirected = Yettuwelleh i tikkelt-nniḍen
-support-third-party-modules-empty = Ulac izegrar n wis kraḍ i d-yettwasulin.
-support-third-party-modules-no-value = (Ulac azal)
-support-third-party-modules-button-open =
-    .title = Ldi adeg n ufaylu…
-support-third-party-modules-expand =
-    .title = Sken Talɣut n usmel
-support-third-party-modules-collapse =
-    .title = Fneẓ  talɣut leqqayen
-support-third-party-modules-unsigned-icon =
-    .title = Azegrir-a ur yettusezmel ara
-support-third-party-modules-folder-icon =
-    .title = Ldi adeg n ufaylu…
-support-third-party-modules-down-icon =
-    .title = Sken Talɣut leqqayen
-support-third-party-modules-up-icon =
-    .title = Fneẓ talɣut leqqayen
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/featuregates/features.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/featuregates/features.ftl
index 01ce987a82f84e9defd3d981a2f7b327b885bd59..5244e98e552f380a7d400f94ab9987e9c35f5928 100644
--- a/thunderbird-l10n/kab/localization/kab/toolkit/featuregates/features.ftl
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/featuregates/features.ftl
@@ -7,101 +7,84 @@
 experimental-features-css-masonry2 =
     .label = CSS: Masonry Layout
 experimental-features-css-masonry-description = Rmed asefrek n tmahilt tarmitant CSS Masonry Layout. Wali <a data-l10n-name="explainer">asegzi-a</a> i uglam s uswir εlayen n tmahilt-a. I wakken ad d-tefkeḍ tamuɣli-k/m, ttxil-k/m wennet deg <a data-l10n-name="w3c-issue">ugur-a ɣef GitHub</a> neɣ <a data-l10n-name="bug">abug-a</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-gpu2 =
     .label = Web API: WebGPU
 experimental-features-web-gpu-description2 = API-agi tamaynut tettmuddu asefrek n uswir ameẓẓyan i usiḍen n uselken d uskan n unuḍaf s useqdec n <a data-l10n-name="wikipedia">uferdis asesfer n unuḍaf (GPU)</a> n yibenk n useqdac neɣ n uselkim. <a data-l10n-name="spec">alugen</a> mazal-it iteddu yettnerni. Wali <a data-l10n-name="bugzilla">abug 1602129</a> i wugar n telqayt.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-avif =
     .label = Amedya: AVIF
 experimental-features-media-avif-description = S tmahilt-a yettwaremden, { -brand-short-name } yessefrak amasal AV1 n ufaylu n tugna (AVIF). Wagi d amasal n ufaylu n tuqna ireṣṣan i yessexdamen tizemmar n yilguritmen n uskussem n tvidyut AV1 i usemẓi n teɣzi n tugna. Wali <a data-l10n-name="bugzilla">abug 1443863</a> i wugar n telqayt.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-jxl =
     .label = Amidiyat: JPEG XL
-
+experimental-features-media-jxl-description = Ma tettwarmad tmahilt-a, { -brand-short-name } issefrak amasal JPEG XL (JXL). Wagi d amasal n ufaylu n tugna yennernan issefrak asaka war asruḥu seg yifuyla n JPEG iqburen. Wali <a data-l10n-name="bugzilla">abug1539075</a> i wugar n telqayt.
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-api-inputmode =
     .label = API web: inputmode
 # "inputmode" and "contenteditable" are technical terms and shouldn't be translated.
 experimental-features-web-api-inputmode-description = Asebded-nneɣ i yimyerr amatu <a data-l10n-name="mdn-inputmode">inputmode</a> yettuleqqem almend n <a data-l10n-name="whatwg">ulugen WHATWG</a>, maca mazal nesra ad neg kra n yisnifal daɣen, d amedya ad t-nerr yella deg ugbur ara yettwaẓergen. Wali <a data-l10n-name="bugzilla">abug1205133</a> i wugar n telqayt.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-css-constructable-stylesheets =
     .label = CSS: Constructable Stylesheets
 experimental-features-css-constructable-stylesheets-description = Timerna n umeṣkaw ɣer ugrudem <a data-l10n-name="mdn-cssstylesheet">CSSStyleSheet</a> d tegrumma n yisenfal yemgaraden yemcudden, yezmer ad ttwarnunt srid tferkiyin timaynutin n uɣanib s war timerna n tferkit HTML. Aya ad yessishel timerna n tferkiyin n uɣanib ara yettwallsen deg useqdec i useqdec d <a data-l10n-name="mdn-shadowdom">Shadow DOM</a>. Wali <a data-l10n-name="bugzilla">abug1520690</a> i wugar n telqayt.
-
 experimental-features-devtools-color-scheme-simulation =
     .label = Ifecka n uneflay: Aserwes n tegrumma n yiniten
 experimental-features-devtools-color-scheme-simulation-description = Yerna taxtiṛt n tuttra n yizenziɣen n yiniten yemgaraden ara ak-akem-yeǧǧen ad teskeydeḍ ilugan n yimidyaten <a data-l10n-name="mdn-preferscolorscheme">@prefers-color-scheme</a>. Aseqdec n tuttra n umidyat-a ad yeǧǧ tiferkit-ik·m n uɣanib ad terr ma yella aseqdac ad yefren agrudem n useqdac amceɛlal neɣ aberkan. Tamahilt-a ad ak·akem-teǧǧ ad teskeydeḍ tangalt-ik·im war ma tesnifleḍ iɣewwaren deg yiminig-ik·im (neɣ anagraw n wammud, ma yella iminig yeṭṭafar aɣewwar n uzenziɣ n yiniten ɣef uswir n unagraw). Wali <a data-l10n-name="bugzilla1">abug1550804</a> d <a data-l10n-name="bugzilla2">wabug1137699</a> i wugar n telqayt.
-
 experimental-features-devtools-execution-context-selector =
     .label = Ifecka n uneflay: Amsefren n usatal n uselkem
 experimental-features-devtools-execution-context-selector-description = Tamahilt-a teskanay-d taqeffalt deg yizirig n tladna n tdiwent ara ak·akem-yeǧǧen ad tesnifleḍ amnaḍ ideg ara tettwaselkem tenfalit ara teskecmeḍ. Wali <a data-l10n-name="bugzilla1">abug 1605154</a> d <a data-l10n-name="bugzilla2">wabug 1605153</a> i wugar n telqayt.
-
 experimental-features-devtools-compatibility-panel =
     .label = Ifecka n uneflay: Agalis n umá¹£ada
 experimental-features-devtools-compatibility-panel-description = Agalis adisan n umaswaḍ n usebter i d-yeskanayen talɣut s telqayt n waddaden n umṣada gar yiminigen n usnas-inek·inem. Wali <a data-l10n-name="bugzilla">abug 1584464</a> i wugar n telqayt.
-
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-lax-by-default2 =
     .label = Inagan n tuqqna: SameSite=Lax s wudem amezwer
 experimental-features-cookie-samesite-lax-by-default2-description = Ḥseb inagan n tuqqna am “SameSite=Lax” s wudem amezwer ma yella ulac imyerr n “SameSite” yettwafernen. Ineflayen ilaq ad qeblen addad-a amiran n useqdec war tilas s uwekked n tidet ɣef “SameSite=”.
-
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-none-requires-secure2 =
     .label = Inagan n tuqqna: SameSite=None yesra imyerr aɣelsan
 experimental-features-cookie-samesite-none-requires-secure2-description = Inagan n tuqqna s yimyerr “SameSite=None” sran imyerr aɣelsan. Tamahilt-a tesra “Inagan n tuqqna: SameSite=Lax by default”.
-
 # about:home should be kept in English, as it refers to the the URI for
 # the internal default home page.
 experimental-features-abouthome-startup-cache =
     .label = ɣef: tuffirt n usenker agensan
 experimental-features-abouthome-startup-cache-description = Tuffirt i ugbur amezwaru ɣef:isemli agejdan i d-yulin s wudem amewer deg usenker. Iswi seg tuffra-a  d asnerni n temlellit n usenker.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-cookie-samesite-schemeful =
     .label = Inagan n tuqqna: Schemeful SameSite
 experimental-features-cookie-samesite-schemeful-description = Sesfer inagan n tuqqna seg yiwet n taɣult, maca s yizenzaɣ yemgaraden (am. http://example.com d https://example.com) am gar yismal deg wadeg n yiwen n usmel. Yessiǧhid taɣellist, d acu yezmer ad d-yeglu s truẓi.
-
 # "Service Worker" is an API name and is usually not translated.
 experimental-features-devtools-serviceworker-debugger-support =
     .label = Ifecka n uneflay: Tamseɣtayt n unmahal n umeẓlu
 # "Service Worker" is an API name and is usually not translated.
 experimental-features-devtools-serviceworker-debugger-support-description = Yermed tallalt tarmitant i yimahalen n umeẓlu deg ugalis n temseɣtit. Tamahilt-a yezmer ad terr ifecka n tneflit ẓẓayit, tessalay daɣen asadur n tkatut.
-
 # WebRTC global mute toggle controls
 experimental-features-webrtc-global-mute-toggles =
     .label = Rmed/Sens imesli amatu n WebRTC
 experimental-features-webrtc-global-mute-toggles-description = Rnu senqaden ɣer umatar n beṭṭu amatu n WebRTC ara yessirgen iseqdacen ad sensen imesli s umata n usawaḍ d tkamiṛat nsen.
-
 # Win32k Lockdown
 experimental-features-win32k-lockdown =
     .label = Asekkar Win32k
-
+experimental-features-win32k-lockdown-description = Sens aseqdec n Win32k APIs deg waccaren n yiminig. Itegg asnerni deg tɣellist, maca yezmer ur trekked ara akka tura neɣ ur tettemmed ara. (Windows kan)
 # JS JIT Warp project
 experimental-features-js-warp =
     .label = JavaScript JIT: Warp
 experimental-features-js-warp-description = Rmed Wrap, d asenfar i usnerni n tmellit n JavaScript d useqdec n tkatut.
-
 # Fission is the name of the feature and should not be translated.
 experimental-features-fission =
     .label = Fission (aɛzal n usmel)
 experimental-features-fission-description = Fission (aɛzal n usmel) d tamahilt tarmitant deg { -brand-short-name } i umuddu n tissi-nniḍen n uḥareb mgal abugen n tɣellist. S uɛzal n yal asmel deg ukala i yettwaɛezlen, Fission tettarra anekcum ɣer yisebtar-nniḍen wuɣur i trezzuḍ yewɛer aṭas i yir ismal web. Wagi d asenfel agejdan asegdan deg { -brand-short-name }, nekkni ad ak·akem-nesnemmer ɣef usekyed d tuzna n wuguren i tzemreḍ ad d-temlileḍ. I wugar n telqayt, wali <a data-l10n-name="wiki">awiki</a>.
-
 # Support for having multiple Picture-in-Picture windows open simultaneously
 experimental-features-multi-pip =
     .label = Tallalt n tugna deg tugna yeggten
 experimental-features-multi-pip-description = Tallalt tarmitant i usireg n waṭas n yisfuyla n tugna deg tugna ara yeldin ɣef tikkelt.
-
 # Search during IME
 experimental-features-ime-search =
     .label = Afeggag n tansiwin: Sken igmaḍ lawan n usuddes n IME
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/global/resetProfile.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/global/resetProfile.ftl
index 612734ab9a0fc4b9006d7b6b53d0d2f4124d630b..53f876a239e14ab3ca86e8cb08cdf8042594f16e 100644
--- a/thunderbird-l10n/kab/localization/kab/toolkit/global/resetProfile.ftl
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/global/resetProfile.ftl
@@ -4,7 +4,6 @@
 
 refresh-profile-dialog =
     .title = Smiren { -brand-short-name }
-
 refresh-profile-dialog-title = Smiren { -brand-short-name } ɣer yiɣewwaren-ines imezwer?
 refresh-profile-dialog-button =
     .label = Smiren { -brand-short-name }
@@ -12,6 +11,7 @@ refresh-profile-description = Senker tirirt tawurmant i weseɣti n wuguren d tme
 refresh-profile-description-details = Ma teddiḍ :
 refresh-profile-remove = Kkes aggan d izegrar-inek
 refresh-profile-restore = Err-d iɣewwaren n iminig-inek ɣer wazalen-nsen n uwennez n tazwara
+refresh-profile-dialog-description = Bdu-d seg tazwara i uṣeggem n wuguren n temlellit. Aya ad yekkes isiɣzaf d usagen inek·inem. Ur ak·am-tettruḥu ula d yiwet n talɣut yesɛan azal am tecraḍ n yisebtar d wawalen uffiren.
 refresh-profile = Mudd cvaḥa i { -brand-short-name }
 refresh-profile-button = Smiren { -brand-short-name }…
 refresh-profile-learn-more = Issin ugar
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kab/localization/kab/toolkit/global/textActions.ftl b/thunderbird-l10n/kab/localization/kab/toolkit/global/textActions.ftl
index 7ac4d91f1792ea6e13ed8f5a20a29d4783f2c92d..1146d07a5ce841938b560227afbd77d2d2cf76db 100644
--- a/thunderbird-l10n/kab/localization/kab/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/kab/localization/kab/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Sefsex
     .accesskey = S
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Err-d
     .accesskey = E
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Gzem
     .accesskey = G
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = NÉ£el
     .accesskey = N
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Senṭeḍ
     .accesskey = n
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Kkes
     .accesskey = K
-
 text-action-select-all =
     .label = Fren Kullec
     .accesskey = F
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Ulac awalen ittwasumren
+text-action-spell-add-to-dictionary =
+    .label = Rnu ɣer umawal
+    .accesskey = n
+text-action-spell-undo-add-to-dictionary =
+    .label = Sefsex timerna n umawal
+    .accesskey = e
+text-action-spell-check-toggle =
+    .label = Senqed tira
+    .accesskey = a
+text-action-spell-add-dictionaries =
+    .label = Rnu imawalen...
+    .accesskey = R
+text-action-spell-dictionaries =
+    .label = Tutlayin
+    .accesskey = T
diff --git a/thunderbird-l10n/kab/manifest.json b/thunderbird-l10n/kab/manifest.json
index 915098fe042f022ab249a3e802e103dd6e44fcbd..70bba0bde4b530c9f729896ad180dae113175a45 100644
--- a/thunderbird-l10n/kab/manifest.json
+++ b/thunderbird-l10n/kab/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Taqbaylit Language Pack",
   "description": "Language pack for Thunderbird for kab",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "kab": {
-      "version": "20210813140551",
+      "version": "20210831121525",
       "chrome_resources": {
         "alerts": "chrome/kab/locale/kab/alerts/",
         "autoconfig": "chrome/kab/locale/kab/autoconfig/",
diff --git a/thunderbird-l10n/kk/chrome/kk/locale/kk/global/commonDialogs.properties b/thunderbird-l10n/kk/chrome/kk/locale/kk/global/commonDialogs.properties
index cdcf079f375f415bfb17baa899679ebe24b06756..29f789dc0924bdd91af552715258ff29430262ed 100644
--- a/thunderbird-l10n/kk/chrome/kk/locale/kk/global/commonDialogs.properties
+++ b/thunderbird-l10n/kk/chrome/kk/locale/kk/global/commonDialogs.properties
@@ -22,6 +22,9 @@ ScriptDlgGenericHeading=[JavaScript бағдарламасы]
 ScriptDlgHeading=%S адресіндегі бет хабарлайды:
 ScriptDlgNullPrincipalHeading=Бұл парақ хабарлайды:
 ScriptDialogLabel=Бұл параққа қосымша сұхбаттарды жасауға тыйым салу
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
 ScriptDialogPreventTitle=Сұхбат баптауын растау
 # LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
 # %1 is an untrusted string provided by a remote server. It could try to
@@ -33,6 +36,9 @@ EnterLoginForProxy3=%2$S проксиі пайдаланушы атын мен 
 EnterUserPasswordFor2=%1$S сіздің пайдаланушы атын және паролін сұрап тұр.
 EnterUserPasswordForCrossOrigin2=%1$S сіздің пайдаланушы атын және паролін сұрап тұр. ЕСКЕРТУ: Сіздің пароліңіз сіз ағымдағы уақытта қарап отырған вебсайтқа жіберілмейді!
 EnterPasswordFor=%1$S үшін %2$S ішіндегі паролін енгізіңіз
+# %S is the username for which a password is requested.
+# %S is the domain of the site being accessed.
+SignIn=Кіру
 
 ScriptDialogLabelNullPrincipal=Don’t allow this site to prompt you again
 # LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
@@ -44,4 +50,3 @@ EnterCredentials=This site is asking you to sign in.
 EnterPasswordOnlyFor=This site is asking you to sign in as %S.
 # %S is the domain of the site being accessed.
 EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
-SignIn=Sign in
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/kk/localization/kk/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/accountManager.ftl b/thunderbird-l10n/kk/localization/kk/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/kk/localization/kk/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/kk/localization/kk/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/kk/localization/kk/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/chat.ftl b/thunderbird-l10n/kk/localization/kk/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/kk/localization/kk/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/exportDialog.ftl b/thunderbird-l10n/kk/localization/kk/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/importDialog.ftl b/thunderbird-l10n/kk/localization/kk/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/preferences/am-copies.ftl b/thunderbird-l10n/kk/localization/kk/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/messenger/troubleshootMode.ftl b/thunderbird-l10n/kk/localization/kk/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/security/certificates/certManager.ftl b/thunderbird-l10n/kk/localization/kk/security/certificates/certManager.ftl
index f497549fb8ccd7aeabe9e9face1c9dcb984ce40b..efb6c65c7708f3a9bc7e68a4b02b64ea709967b5 100644
--- a/thunderbird-l10n/kk/localization/kk/security/certificates/certManager.ftl
+++ b/thunderbird-l10n/kk/localization/kk/security/certificates/certManager.ftl
@@ -4,184 +4,128 @@
 
 certmgr-title =
     .title = Сертификаттар менеджері
-
 certmgr-tab-mine =
     .label = Сертификаттарыңыз
-
 certmgr-tab-remembered =
     .label = Аутентификация шешімдері
-
 certmgr-tab-people =
     .label = Адамдар
-
 certmgr-tab-servers =
     .label = Серверлер
-
 certmgr-tab-ca =
     .label = Сертификаттау орталықтары
-
 certmgr-mine = Сізде келесі ұйымдардан алынған сізді анықтайтын сертификаттар бар
 certmgr-remembered = Бұл сертификаттар сізді веб-сайттарға идентификациялау үшін қолданылады.
 certmgr-people = Сізде келесі адамдарды анықтайтын сертификаттар файлы бар
 certmgr-servers = Сізде келесі серверлерді анықтайтын сертификаттар файлы бар
 certmgr-server = Бұл жазбалар сервер сертификатының қателері үшін ережеден тыс жағдайларды анықтайды
 certmgr-ca = Сізде келесі сертификаттарды растаушыларды анықтайтын сертификаттар файлы бар
-
 certmgr-detail-general-tab-title =
     .label = Жалпы
     .accesskey = Ж
-
 certmgr-detail-pretty-print-tab-title =
     .label = Көбірек білу
     .accesskey = К
-
 certmgr-pending-label =
     .value = Сертификат тексерілуде…
-
 certmgr-subject-label = Кімге берілген
-
 certmgr-issuer-label = Кім берген
-
 certmgr-period-of-validity = Жарамдылық мерзімі
-
 certmgr-fingerprints = Баспалар
-
 certmgr-cert-detail =
     .title = Сертификат ақпараты
     .buttonlabelaccept = Жабу
     .buttonaccesskeyaccept = Ж
-
 certmgr-cert-detail-commonname = Жалпы аты (CN)
-
 certmgr-cert-detail-org = Ұйым (O)
-
 certmgr-cert-detail-orgunit = Бөлім (OU)
-
 certmgr-cert-detail-serial-number = Сериялық нөмірі
-
 certmgr-cert-detail-sha-256-fingerprint = SHA-256 баспасы
-
 certmgr-cert-detail-sha-1-fingerprint = SHA1 баспасы
-
 certmgr-edit-ca-cert =
     .title = CA сертификатына сену баптауларын түзету
     .style = width: 48em;
-
 certmgr-edit-cert-edit-trust = Сену баптауларын түзету:
-
 certmgr-edit-cert-trust-ssl =
     .label = Осы сертификат веб-сайттарды анықтай алады.
-
 certmgr-edit-cert-trust-email =
     .label = Осы сертификат электронды пошта пайдаланушыларын анықтай алады.
-
 certmgr-delete-cert =
     .title = Сертификатты өшіру
     .style = width: 48em; height: 24em;
-
 certmgr-cert-host =
     .label = Хост
-
 certmgr-cert-name =
     .label = Сертификат аты
-
 certmgr-cert-server =
     .label = Сервері
-
 certmgr-override-lifetime =
     .label = Мерзімі
-
 certmgr-token-name =
     .label = Қауіпсіздік құрылғысы
-
 certmgr-begins-on = Басталу уақыты
-
 certmgr-begins-label =
     .label = Басталу уақыты
-
 certmgr-expires-on = Мерзімі
-
 certmgr-expires-label =
     .label = Мерзімі
-
 certmgr-email =
     .label = Электронды пошта адресі
-
 certmgr-serial =
     .label = Сериялық нөмірі
-
 certmgr-view =
     .label = Қарап шығу…
     .accesskey = ш
-
 certmgr-edit =
     .label = Сенімді түзету…
     .accesskey = е
-
 certmgr-export =
     .label = Экспорттау…
     .accesskey = п
-
 certmgr-delete =
     .label = Өшіру…
     .accesskey = ш
-
 certmgr-delete-builtin =
     .label = Өшіру не сенбеу…
     .accesskey = ш
-
 certmgr-backup =
     .label = Көшірмесін сақтау…
     .accesskey = м
-
 certmgr-backup-all =
     .label = Барлығының көшірмелерін сақтау…
     .accesskey = Б
-
 certmgr-restore =
     .label = Импорттау…
     .accesskey = м
-
 certmgr-details =
     .value = Сертификат жолдары
     .accesskey = ж
-
 certmgr-fields =
     .value = Жол мәні
     .accesskey = м
-
 certmgr-hierarchy =
     .value = Сертификаттар иерархиясы
     .accesskey = Ñ…
-
 certmgr-add-exception =
     .label = Ерекше ережені қосу…
     .accesskey = р
-
 exception-mgr =
     .title = Қауіпсіздік ерекше ережені қосу
-
 exception-mgr-extra-button =
     .label = Қауіпсіздік ерекше ережені растау
     .accesskey = р
-
 exception-mgr-supplemental-warning = Шын банктар, дүкендер, және басқа да сайттар сізден осыны сұрамайды.
-
 exception-mgr-cert-location-url =
     .value = Адресі:
-
 exception-mgr-cert-location-download =
     .label = Сертификат алу
     .accesskey = л
-
 exception-mgr-cert-status-view-cert =
     .label = Қарау…
     .accesskey = р
-
 exception-mgr-permanent =
     .label = Осы ерекше ережені сақтау
     .accesskey = ж
-
 pk11-bad-password = Енгізілген пароль қате.
 pkcs12-decode-err = Файлды декодалау мүмкін емес.  Бұл файл PKCS #12 пішімінде емес, немесе зақымдалған, немесе енгізілген пароль дұрыс емес.
 pkcs12-unknown-err-restore = PKCS #12 қалпына келтіру файлынан қайтару белгісіз себептермен мүмкін емес.
@@ -214,30 +158,22 @@ delete-user-cert-title =
     .title = Жеке сертификаттарды өшіру
 delete-user-cert-confirm = Осы сертификаттарды өшіруді шынымен қалайсыз ба?
 delete-user-cert-impact = Егер сіз өзініздің сертификаттарыңызды өнірсеңіз, одан әрі оларды өзінізді анықтау үшін қолдана алмайсыз.
-
-
 delete-ssl-cert-title =
     .title = Server Certificate Exceptions өшіру
 delete-ssl-cert-confirm = Осы сервер үшін қауіпсіздік ерекше ережені өшіруді шынымен қалайсыз ба?
 delete-ssl-cert-impact = Сервер үшін ерекше ереже өшірсеңіз, одан әрі осы сервердің шындылығын анықтау қайта қосылады.
-
-
 delete-ssl-override-title =
     .title = Сервер сертификаты үшін ережеден тыс жағдайларды өшіру
 delete-ssl-override-confirm = Сервер сертификаты үшін бұл ережеден тыс жағдайды өшіруді қалайсыз ба?
 delete-ssl-override-impact = Сервер үшін ерекше ереже өшірсеңіз, одан әрі осы сервердің шындылығын анықтау қайта қосылады.
-
 delete-ca-cert-title =
     .title = CA сертификаттарын өшіру не сенбеу
 delete-ca-cert-confirm = Сіз бұл CA сертификаттарын өшіруді сұрадыңыз. Құрамындағы сертификаттар үшін бұл дегеніміз - барлық сенімдердің өшірілуі. Өшіру не сенбеуді орындауды шынымен қалайсыз ба?
 delete-ca-cert-impact = Егер сіз шығарушы (CA) сертификатын өшірсеңіз не оған сенбесеңіз, бұл қолданба ол CA шығарған ешбір сертификатқа енді сенбейтін болады.
-
-
 delete-email-cert-title =
     .title = Электронды пошта сертификаттарын өшіру
 delete-email-cert-confirm = Осы электронды пошта пайдаланушының сертификатын өшіруді шынымен қалайсыз ба?
 delete-email-cert-impact = Егер сіз электронды пошта пайдаланушының сертификатын өшірсеңіз, одан әрі ол пайдаланушыдан келген поштаны оқи алмайсыз.
-
 # Used for semi-uniquely representing a cert.
 #
 # Variables:
@@ -253,29 +189,21 @@ cert-with-serial =
 #   $certificate : a string representative of the certificate being viewed.
 cert-viewer-title =
     .title = Сертификатты қарап шығу: "{ $certName }"
-
 not-present =
     .value = <сертификат бөлігі емес>
-
 # Cert verification
 cert-verified = Бұл сертификат келесі мақсаттармен верификацияланған:
-
 # Add usage
 verify-ssl-client =
     .value = SSL клиент сертификаты
-
 verify-ssl-server =
     .value = SSL сервер сертификаты
-
 verify-ssl-ca =
     .value = SSL сертификаттау орталығы
-
 verify-email-signer =
     .value = Электрондық пошта сертификаты
-
 verify-email-recip =
     .value = Электрондық пошта адресатының сертификаты
-
 # Cert verification
 cert-not-verified-cert-revoked = Сертификат верификациясы мүмкін емес - ол қайта шақырылды.
 cert-not-verified-cert-expired = Сертификат верификациясы мүмкін емес - оның мерзімі аяқталды.
@@ -285,12 +213,12 @@ cert-not-verified-issuer-unknown = Сертификат верификацияс
 cert-not-verified-ca-invalid = Сертификат верификациясы мүмкін емес - орталықтың сертификаты жарамсыз.
 cert-not-verified_algorithm-disabled = Бұл сертификатты растау мүмкін емес, өйткені оған қауіпсіз емес болғаны үшін сөндірілген алгоритмімен қолтаңба қойылған.
 cert-not-verified-unknown = Сертификат верификациясы белгісіз себептерден мүмкін емес.
-
 # Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
 send-no-client-certificate = Клиент сертификатын жібермеу
-
 # Used when no cert is stored for an override
 no-cert-stored-for-override = (Сақталмаған)
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (Қолжетімсіз)
 
 ## Used to show whether an override is temporary or permanent
 
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutNetworking.ftl
index a4c48aade6bbd7e47c8765eb0092b54c82245f6a..74488f80842c237bd94bf13e335a4a3251ebe051 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Белсенді
 about-networking-idle = Іссіз
 about-networking-host = Хост
 about-networking-tcp = TCP
+about-networking-type = Түрі
 about-networking-sent = Жіберілген
 about-networking-received = Алынған
 about-networking-family = Отбасы
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutProcesses.ftl
index 4adeff09d28b9e2172db82345f921f14e5fc2fd0..2179a4f25c4e0f8e04a77d0be2d028ff77253f88 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutProcesses.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutProcesses.ftl
@@ -4,7 +4,6 @@
 
 # Page title
 about-processes-title = Үрдістер басқарушысы
-
 # The Actions column
 about-processes-column-action =
     .title = Әрекеттер
@@ -25,18 +24,26 @@ about-processes-column-cpu-total = Процессор
 ## Process names
 ## Variables:
 ##    $pid (String) The process id of this process, assigned by the OS.
-##    $origin (String) The domain name for this process.
-##    $type (String) The raw type for this process. Used for unknown processes.
 
-## Process names
-## Variables:
-##    $pid (String) The process id of this process, assigned by the OS.
+about-processes-browser-process = { -brand-short-name } ({ $pid })
+about-processes-web-process = Ортақ веб-процессі ({ $pid })
+about-processes-file-process = Файлдар ({ $pid })
+about-processes-extension-process = Кеңейтулер ({ $pid })
+about-processes-privilegedabout-process = About беттері ({ $pid })
+about-processes-plugin-process = Плагиндер ({ $pid })
+about-processes-privilegedmozilla-process = { -vendor-short-name } сайттары ({ $pid })
+about-processes-gmp-plugin-process = Gecko медиа плагиндері ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = VR ({ $pid })
+about-processes-rdd-process = Деректер декодтаушы ({ $pid })
+about-processes-socket-process = Желі ({ $pid })
 
 ## Isolated process names
 ## Variables:
 ##    $pid (String) The process id of this process, assigned by the OS.
 ##    $origin (String) The domain name for this process.
 
+
 ## Details within processes
 
 # Tab
@@ -44,12 +51,10 @@ about-processes-column-cpu-total = Процессор
 #   $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
 about-processes-tab-name = Бет: { $name }
 about-processes-preloaded-tab = Алдын-ала жүктелген жаңа бет
-
 # Single subframe
 # Variables:
 #   $url (String) The full url of this subframe.
 about-processes-frame-name-one = Ішкі фрейм: { $url }
-
 # Group of subframes
 # Variables:
 #   $number (Number) The number of subframes in this group. Always ≥ 1.
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutSupport.ftl
index a33b5cabbab793f0a0e5f1dc83d26c153fd7e376..b53fa8ec4f9a9a5ec79f7b5d907c71a391d28ce3 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutSupport.ftl
@@ -4,7 +4,6 @@
 
 page-title = Мәселелерді шешу ақпараты
 page-subtitle = Бұл парақта мәселелерді шешуде пайдалы бола алатын техникалық ақпарат бар. Егер сіз { -brand-short-name } туралы жалпы сұрақтарға жауапты іздесеңіз, біздің <a data-l10n-name="support-link">қолдау көрсету</a> сайтын шолыңыз.
-
 crashes-title = Құлау туралы хабарлар
 crashes-id = Хабарлама ID
 crashes-send-date = Жіберілген
@@ -60,12 +59,14 @@ app-basics-enabled-plugins = Іске қосулы плагиндер
 app-basics-build-config = Жинау баптаулары
 app-basics-user-agent = User Agent
 app-basics-os = ОЖ
+app-basics-os-theme = ОЖ темасы
 # Rosetta is Apple's translation process to run apps containing x86_64
 # instructions on Apple Silicon. This should remain in English.
 app-basics-rosetta = Rosetta бинарлық трансляциясы
 app-basics-memory-use = Жады қолданылуы
 app-basics-performance = Өнімділік
 app-basics-service-workers = Тіркелген жұмыс үрдістері
+app-basics-third-party = Үшінші жақты модульдер
 app-basics-profiles = Профильдер
 app-basics-launcher-process-status = Жөнелтетін үрдіс
 app-basics-multi-process-support = Мультипроцесс терезелері
@@ -131,7 +132,6 @@ sandbox-sys-call-number = Жүйелік шақыру
 sandbox-sys-call-args = Аргументтер
 safe-mode-title = Қауіпсіз режимін қолданып көру
 restart-in-safe-mode-label = Сөндірілген кеңейтулермен қайта қосу…
-
 troubleshoot-mode-title = Мәселелерді диагностикалау
 restart-in-troubleshoot-mode-label = Жөндеу режимі…
 clear-startup-cache-title = Іске қосылу кэшін тарартып көріңіз
@@ -189,37 +189,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Үшінші жақты модульдер
-support-third-party-modules-module = Модуль файлы
-support-third-party-modules-version = Файл нұсқасы
-support-third-party-modules-vendor = Өндіруші ақпараты
-support-third-party-modules-occurrence = Көшірмелер
-support-third-party-modules-process = Үрдіс түрі және идентификаторы
-support-third-party-modules-thread = Ағын
-support-third-party-modules-base = Бейненің базалық жүктелудің адресі
-support-third-party-modules-uptime = Үрдістің жұмыс істеу уақыты (мс)
-support-third-party-modules-duration = Жүктелудің ұзақтығы (мс)
-support-third-party-modules-status = Қалып-күйі
-support-third-party-modules-status-loaded = Жүктелген
-support-third-party-modules-status-blocked = Бұғатталған
-support-third-party-modules-status-redirected = Қайта бағдарланған
-support-third-party-modules-empty = Үшінші жақты модульдер жүктелмеген.
-support-third-party-modules-no-value = (Мән жоқ)
-support-third-party-modules-button-open =
-    .title = Файл орналасуын ашу…
-support-third-party-modules-expand =
-    .title = Көбірек ақпаратты көрсету
-support-third-party-modules-collapse =
-    .title = Көбірек ақпаратты жасыру
-support-third-party-modules-unsigned-icon =
-    .title = Бұл модульге қол қойылмаған
-support-third-party-modules-folder-icon =
-    .title = Файл орналасуын ашу…
-support-third-party-modules-down-icon =
-    .title = Көбірек ақпаратты көрсету
-support-third-party-modules-up-icon =
-    .title = Көбірек ақпаратты жасыру
-
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
@@ -227,7 +196,6 @@ report-crash-for-days =
         [one] Соңғы { $days } күн үшін құлау хабарламалары
        *[other] Соңғы { $days } күн үшін құлау хабарламалары
     }
-
 # Variables
 # $minutes (integer) - Number of minutes since crash
 crashes-time-minutes =
@@ -235,7 +203,6 @@ crashes-time-minutes =
         [one] { $minutes } минут бұрын
        *[other] { $minutes } минут бұрын
     }
-
 # Variables
 # $hours (integer) - Number of hours since crash
 crashes-time-hours =
@@ -243,7 +210,6 @@ crashes-time-hours =
         [one] { $hours } сағат бұрын
        *[other] { $hours } сағат бұрын
     }
-
 # Variables
 # $days (integer) - Number of days since crash
 crashes-time-days =
@@ -251,7 +217,6 @@ crashes-time-days =
         [one] { $days } күн бұрын
        *[other] { $days } күн бұрын
     }
-
 # Variables
 # $reports (integer) - Number of pending reports
 pending-reports =
@@ -259,7 +224,6 @@ pending-reports =
         [one] Барлық құлау хабарламалары (соның ішінде берілген уақыт аралығындағы әлі жіберілмеген { $reports } құлау)
        *[other] Барлық құлау хабарламалары (соның ішінде берілген уақыт аралығындағы әлі жіберілмеген { $reports } құлау)
     }
-
 raw-data-copied = Өнделмеген мәліметтерді алмасу буферіне көшірілген
 text-copied = Мәтінді алмасу буферіне көшірілген
 
@@ -272,11 +236,9 @@ blocked-mismatched-version = Графикалық драйверіңіздің 
 # Variables
 # $driverVersion - The graphics driver version string
 try-newer-driver = Графикалық драйверіңіз нұсқасымен блокталған. Драйверіңізді { $driverVersion } не жаңалау нұсқасына дейін жаңартыңыз.
-
 # "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
 # there are no good translations, these are only used in about:support
 clear-type-parameters = ClearType баптаулары
-
 compositing = Композитинг
 hardware-h264 = Құрылғылық H264 декодтау
 main-thread-no-omtc = басты ағын, OMTC жоқ
@@ -291,7 +253,6 @@ virtual-monitor-disp = Виртуалды монитор экраны
 
 found = Табылған
 missing = Жоқ
-
 gpu-process-pid = GPUProcessPid
 gpu-process = GPUProcess
 gpu-description = Сипаттамасы
@@ -315,25 +276,20 @@ webgl2-version = WebGL 2 драйвер нұсқасы
 webgl2-driver-extensions = WebGL 2 драйвер кеңейтулері
 webgl2-extensions = WebGL 2 кеңейтулері
 blocklisted-bug = Белгілі осалдылықтар салдарынан блоктізімде
-
 # Variables
 # $bugNumber (string) - String of bug number from Bugzilla
 bug-link = ақаулық { $bugNumber }
-
 # Variables
 #   $bugNumber (string) - Bug number on Bugzilla
 support-blocklisted-bug = Белгілі мәселелерге байланысты бұғатталған: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
-
 # Variables
 # $failureCode (string) - String that can be searched in the source tree.
 unknown-failure = Блоктізіміде; қателік коды { $failureCode }
-
 d3d11layers-crash-guard = D3D11 араластырушысы
 d3d11video-crash-guard = D3D11 видео декодері
 d3d9video-crash-guard = D3D9 видео декодері
 glcontext-crash-guard = OpenGL
 wmfvpxvideo-crash-guard = WMF VPX видео декодері
-
 reset-on-next-restart = Келесі іске қосылған кезде тастау
 gpu-process-kill-button = GPU процесін тоқтату
 gpu-device-reset = Құрылғыны қалпына келтіру
@@ -343,10 +299,8 @@ content-uses-tiling = Тайлинг қолданады (мазмұны)
 off-main-thread-paint-enabled = Басты емес ағында элементтерді суреттеу іске қосылған
 off-main-thread-paint-worker-count = Негізгі ағыннан тыс салатын воркер саны
 target-frame-rate = Кадр/сек мақсат көрсеткіші
-
 min-lib-versions = Күтілген минималды нұсқасы
 loaded-lib-versions = Қолданыстағы нұсқасы
-
 has-seccomp-bpf = Seccomp-BPF (Жүйелік шақыруларды сүзгілеу)
 has-seccomp-tsync = Seccomp ағынының синхрондалуы
 has-user-namespaces = Пайдаланушының аттар кеңістіктері
@@ -359,18 +313,15 @@ sandbox-proc-type-content = құрамасы
 sandbox-proc-type-file = файл құрамасы
 sandbox-proc-type-media-plugin = медиа плагині
 sandbox-proc-type-data-decoder = деректер декодері
-
 startup-cache-title = Іске қосу кэші
 startup-cache-disk-cache-path = Диск кэш жолы
 startup-cache-ignore-disk-cache = Диск кэшін елемеу
 startup-cache-found-disk-cache-on-init = Іске қосылу кезінде диск кэші табылды
 startup-cache-wrote-to-disk-cache = Диск кэшіне жазылды
-
 launcher-process-status-0 = Іске қосулы
 launcher-process-status-1 = Ақаулығы салдарынан сөндірілген
 launcher-process-status-2 = Мәжбүрлі сөндірілген
 launcher-process-status-unknown = Қалып-күйі белгісіз
-
 # Variables
 # $remoteWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -383,7 +334,6 @@ multi-process-status-6 = Қолдауы жоқ мәтіндік енгізу с
 multi-process-status-7 = Қосымшалармен сөндірілген
 multi-process-status-8 = Мәжбүрлі түрде сөндірілген
 multi-process-status-unknown = Қалып-күйі белгісіз
-
 # Variables
 # $fissionWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -398,7 +348,6 @@ fission-status-disabled-by-default = Үнсіз келісім бойынша с
 fission-status-enabled-by-user-pref = Пайдаланушымен іске қосылған
 fission-status-disabled-by-user-pref = Пайдаланушымен сөндірілген
 fission-status-disabled-by-e10s-other = E10s сөндірілген
-
 async-pan-zoom = Асинхронды панорамдау/масштабтау
 apz-none = ешнәрсе
 wheel-enabled = тышқан дөңгелегімен енгізу іске қосылған
@@ -435,7 +384,6 @@ support-remote-experiments-title = Қашықтағы тәжірибелер
 support-remote-experiments-name = Аты
 support-remote-experiments-branch = Сынамалы бұтақ
 support-remote-experiments-see-about-studies = Қосымша ақпаратты, соның ішінде жеке-жеке тәжірибелерді сөндіру немесе { -brand-short-name } үшін осындай түрдегі тәжірибелерді болашақта орындамауды қалай іске қосу туралы қосымша ақпаратты <a data-l10n-name="support-about-studies-link">about:studies</a> бөлімінен қараңыз.
-
 support-remote-features-title = Қашықтағы мүмкіндіктер
 support-remote-features-name = Аты
 support-remote-features-status = Қалып-күйі
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutThirdParty.ftl
index 5501cd4b33059e6f31162797665117fa3e42ad57..6adba6daa1b7acbb47131b23cc4ab805f43f7001 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutThirdParty.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/about/aboutThirdParty.ftl
@@ -2,3 +2,15 @@
 # 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/.
 
+third-party-message-no-duration = Жазылған жоқ
+third-party-detail-version = Файл нұсқасы
+third-party-detail-vendor = Өндіруші ақпараты
+third-party-detail-app = Қолданба
+third-party-detail-publisher = Жариялаушы
+third-party-th-process = Процесс
+third-party-th-duration = Жүктелу ұзақтығы (мс)
+third-party-th-status = Қалып-күйі
+third-party-status-loaded = Жүктелген
+third-party-status-blocked = Бұғатталған
+third-party-status-redirected = Қайта бағдарланған
+third-party-button-copy-to-clipboard = Өнделмеген мәліметтерді алмасу буферіне көшіріп алу
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/global/processTypes.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/global/processTypes.ftl
index 19f7449ae3d0c820d4b0cec962c9274e34d1add0..edeade1eea7901fa6b3feaadbfd184bf5d2c4e21 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/global/processTypes.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/global/processTypes.ftl
@@ -2,33 +2,27 @@
 # 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/.
 
+
 ##
 ## Localization for remote types defined in RemoteType.h
 ##
 
 process-type-web = Веб құрамасы
-
 # process used to run privileged about pages,
 # such as about:home
 process-type-privilegedabout = Привилегиялық About парағы
-
 # process used to run privileged mozilla pages,
 # such as accounts.firefox.com
 process-type-privilegedmozilla = Привилегиялық Mozilla мазмұны
-
 process-type-extension = Кеңейту
-
 # process used to open file:// URLs
 process-type-file = Жергілікті файл
-
 # process used to isolate webpages that requested special
 # permission to allocate large amounts of memory
 process-type-weblargeallocation = Үлкен бөлу
-
 # process used to isolate a webpage from other web pages
 # to improve security
 process-type-webisolated = Оқшауланған веб-мазмұны
-
 # process preallocated; may change to other types
 process-type-prealloc = Алдын-ала бөлінген
 
@@ -36,14 +30,19 @@ process-type-prealloc = Алдын-ала бөлінген
 ## Localization for Gecko process types defined in GeckoProcessTypes.h
 ##
 
+process-type-default = Негізгі
+process-type-tab = Бет
 # process used to communicate with the GPU for
 # graphics acceleration
 process-type-gpu = GPU
-
 # process used to perform network operations
 process-type-socket = Сокет
+# process used to decode media
+process-type-rdd = RDD
 
 ##
 ## Other
 ##
 
+# fallback
+process-type-unknown = Белгісіз
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/global/resetProfile.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/global/resetProfile.ftl
index fb3a8f3484ea80491ea2b9ba719e0225f521d8e2..723fba36a1f5a06bf5f0054d95fd04d160f01be4 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/global/resetProfile.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/global/resetProfile.ftl
@@ -4,7 +4,6 @@
 
 refresh-profile-dialog =
     .title = { -brand-short-name } жаңғырту
-
 refresh-profile-dialog-button =
     .label = { -brand-short-name } жаңғырту
 refresh-profile-description = Мәселелерді шешу және өнімділікті қалпына келтіру үшін жаңадан бастау.
@@ -13,3 +12,4 @@ refresh-profile-remove = Кеңейтулер және баптаулар өші
 refresh-profile-restore = Браузер баптаулары бастапқы мәндеріне тасталады
 refresh-profile = { -brand-short-name } үдетіп жіберу
 refresh-profile-button = { -brand-short-name } жұмысын жаңғырту…
+refresh-profile-learn-more = Көбірек білу
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/global/textActions.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/global/textActions.ftl
index 5edcda62b49d43b06830dbdf6f3afc42c2b40d79..7bddbb3f92b1c5b262dd3e294afb705372c4480d 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Болдырмау
     .accesskey = Б
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Қайталау
     .accesskey = й
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Қиып алу
     .accesskey = Ñ‹
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Көшіріп алу
     .accesskey = К
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Кірістіру
     .accesskey = р
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Өшіру
     .accesskey = ш
-
 text-action-select-all =
     .label = Барлығын ерекшелеу
     .accesskey = е
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Ұсыныстар табылмады
+text-action-spell-add-to-dictionary =
+    .label = Сөздікке қосу
+    .accesskey = з
+text-action-spell-undo-add-to-dictionary =
+    .label = Сөздікке қосуды болдырмау
+    .accesskey = л
+text-action-spell-check-toggle =
+    .label = Емлені тексеру
+    .accesskey = к
+text-action-spell-add-dictionaries =
+    .label = Сөздіктерді қосу…
+    .accesskey = о
+text-action-spell-dictionaries =
+    .label = Тілдер
+    .accesskey = л
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/intl/languageNames.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/intl/languageNames.ftl
index 8ff072cda0cfaaed2f80c0479befd6c6df09cfa7..08c799f988a5a8ebb27c57e061d902bbe4939778 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/intl/languageNames.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/intl/languageNames.ftl
@@ -159,6 +159,7 @@ language-name-ru = Орыс
 language-name-rw = Киньяруанда
 language-name-sa = Санскрит
 language-name-sc = Сардин
+language-name-sco = Шотланд
 language-name-sd = Синдхи
 language-name-se = Солтүстік Сами
 language-name-sg = Санго
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/printing/printUI.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/printing/printUI.ftl
index 1b4c9114ea6fffef475186157e7a4d4759ecd322..a881f63e5c7cce0c596bc8b491c2b887528d4a68 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/printing/printUI.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/printing/printUI.ftl
@@ -5,14 +5,12 @@
 printui-title = Баспаға шығару
 # Dialog title to prompt the user for a filename to save print to PDF.
 printui-save-to-pdf-title = Қалайша сақтау
-
 # Variables
 # $sheetCount (integer) - Number of paper sheets
 printui-sheets-count =
     { $sheetCount ->
        *[other] { $sheetCount } қағаз парағы
     }
-
 printui-page-range-all = Барлығы
 printui-page-range-custom = Таңдауыңызша
 printui-page-range-label = Парақтар
@@ -21,29 +19,22 @@ printui-page-range-picker =
 printui-page-custom-range-input =
     .aria-label = Таңдауыңызша парақтар ауқымын енгізу
     .placeholder = мыс. 2-6, 9, 12-16
-
 # Section title for the number of copies to print
 printui-copies-label = Көшірмелер
-
 printui-orientation = Бағыт
 printui-landscape = Жатық
 printui-portrait = Тік
-
 # Section title for the printer or destination device to target
 printui-destination-label = Мақсаты
 printui-destination-pdf-label = PDF ретінде сақтау
-
 printui-more-settings = Көбірек баптаулар
 printui-less-settings = Азырақ баптаулар
-
 printui-paper-size-label = Қағаз өлшемі
-
 # Section title (noun) for the print scaling options
 printui-scale = Масштаб
 printui-scale-fit-to-page-width = Парақтың енімен
 # Label for input control where user can set the scale percentage
 printui-scale-pcent = Масштаб
-
 # Section title (noun) for the two-sided print options
 printui-two-sided-printing = Екі жақты баспа
 printui-two-sided-printing-off = Сөндірулі
@@ -51,54 +42,58 @@ printui-two-sided-printing-off = Сөндірулі
 printui-two-sided-printing-long-edge = Ұзын жақтан аудару
 # Flip the sheet as if it were bound along its short edge.
 printui-two-sided-printing-short-edge = Қысқа жақтан аудару
-
 # Section title for miscellaneous print options
 printui-options = Опциялар
 printui-headers-footers-checkbox = Үстіңгі және астыңғы тақырыптамаларды баспаға шығару
 printui-backgrounds-checkbox = Фондарды баспаға шығару
 
-printui-selection-checkbox = Тек таңдалғанды баспаға шығару
-
 ## The "Format" section, select a version of the website to print. Radio
 ## options to select between the original page, selected text only, or a version
 ## where the page is processed with "Reader View".
 
+# The section title.
+printui-source-label = Пішімі
+# Option for printing the original page.
+printui-source-radio = Түпнұсқа
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Таңдалған
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Жеңілдетілген
+
 ##
 
 printui-color-mode-label = Түс режимі
 printui-color-mode-color = Түс
 printui-color-mode-bw = Қара және ақ
-
 printui-margins = Шеттер
 printui-margins-default = Бастапқы
 printui-margins-min = Минималды
 printui-margins-none = Жоқ
 printui-margins-custom-inches = Таңдауыңызша (дюйм)
+printui-margins-custom-mm = Таңдауыңызша (мм)
 printui-margins-custom-top = Жоғарғы
 printui-margins-custom-top-inches = Жоғарғы (дюйм)
+printui-margins-custom-top-mm = Жоғарғы (мм)
 printui-margins-custom-bottom = Төменгі
 printui-margins-custom-bottom-inches = Төменгі (дюйм)
+printui-margins-custom-bottom-mm = Төменгі (мм)
 printui-margins-custom-left = Сол жақ
 printui-margins-custom-left-inches = Сол жақ (дюйм)
+printui-margins-custom-left-mm = Сол жақ (мм)
 printui-margins-custom-right = Оң жақ
 printui-margins-custom-right-inches = Оң жақ (дюйм)
-
+printui-margins-custom-right-mm = Оң жақ (мм)
 printui-system-dialog-link = Жүйелік сұхбатын қолданып, баспаға шығару…
-
 printui-primary-button = Баспаға шығару
 printui-primary-button-save = Сақтау
 printui-cancel-button = Бас тарту
 printui-close-button = Жабу
-
 printui-loading = Алдын ала қарауды дайындау
-
 # Reported by screen readers and other accessibility tools to indicate that
 # the print preview has focus.
 printui-preview-label =
     .aria-label = Алдын-ала қарау
-
 printui-pages-per-sheet = Беттегі парақтар саны
-
 # This is shown next to the Print button with an indefinite loading spinner
 # when the user prints a page and it is being sent to the printer.
 printui-print-progress-indicator = Баспаға шығару…
@@ -125,7 +120,6 @@ printui-paper-tabloid = Tabloid
 printui-error-invalid-scale = Масштаб 10 мен 200 арасындағы сан болуы керек.
 printui-error-invalid-margin = Таңдалған қағаз өлшемі үшін жарамды шет өрісін енгізіңіз.
 printui-error-invalid-copies = Көшірмелер 1 мен 10000 арасындағы сан болуы керек.
-
 # Variables
 # $numPages (integer) - Number of pages
 printui-error-invalid-range = Ауқым 1 мен { $numPages } арасындағы сан болуы керек.
diff --git a/thunderbird-l10n/kk/localization/kk/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/kk/localization/kk/toolkit/updates/backgroundupdate.ftl
index 5501cd4b33059e6f31162797665117fa3e42ad57..641b04b2c8de6b0ea2b1b3574aefba9b8cace5d4 100644
--- a/thunderbird-l10n/kk/localization/kk/toolkit/updates/backgroundupdate.ftl
+++ b/thunderbird-l10n/kk/localization/kk/toolkit/updates/backgroundupdate.ftl
@@ -2,3 +2,4 @@
 # 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/.
 
+backgroundupdate-task-description = Фондық жаңарту тапсырмасы { -brand-short-name } жұмыс істемей тұрған кезде { -brand-short-name } жаңартуларын тексереді. Бұл тапсырма { -brand-short-name } арқылы автоматты түрде орнатылады және { -brand-short-name } іске қосылғанда қайта орнатылады. Бұл тапсырманы өшіру үшін браузер параметрлерін немесе { -brand-short-name } кәсіпорын саясатының "BackgroundAppUpdate" параметрін жаңартыңыз.
diff --git a/thunderbird-l10n/kk/manifest.json b/thunderbird-l10n/kk/manifest.json
index e1d216b8c2b99afc4e9faeff26a118a35b774965..fecf444a202c9560cbb23b7f0bc0c7b147ed876a 100644
--- a/thunderbird-l10n/kk/manifest.json
+++ b/thunderbird-l10n/kk/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Kazakh (KZ) Language Pack",
   "description": "Language pack for Thunderbird for kk",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "kk": {
-      "version": "20210813140604",
+      "version": "20210831121539",
       "chrome_resources": {
         "alerts": "chrome/kk/locale/kk/alerts/",
         "autoconfig": "chrome/kk/locale/kk/autoconfig/",
diff --git a/thunderbird-l10n/ko/chrome/ko/locale/ko/global/layout/htmlparser.properties b/thunderbird-l10n/ko/chrome/ko/locale/ko/global/layout/htmlparser.properties
index 950660599b28849bd19493815e137e8295a85b3d..d2fec70abd17563871d6d9c8aef049f0cf9e276e 100644
--- a/thunderbird-l10n/ko/chrome/ko/locale/ko/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/ko/chrome/ko/locale/ko/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=시스템 식별자의 도중에 파일 끝에 이르렀습니
 errExpectedSystemId=문서형 선언에 시스템 식별자가 지정되어 있지 않습니다.
 errMissingSpaceBeforeDoctypeName=문서형 이름 전에 공백이 있습니다.
 errHyphenHyphenBang=주석 처리중에 "--!"가 발견되었습니다.
+errNestedComment=주석에서 “<!--”가 발견되었습니다. 중첩된 주석(허용되지 않음)일 가능성이 있습니다.
 errNcrZero=0으로 전개되는 문자 참조가 발견되었습니다.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=문서형 선언의 "SYSTEM" 키워드와 인용 부호의 사이에 공백이 있습니다.
 errNoSpaceBetweenPublicAndSystemIds=문서형 선언의 공개 식별자와 시스템 식별자의 사이에 공백이 있습니다.
@@ -87,8 +88,8 @@ errDeepTree=문서 트리가 너무 깊습니다. 트리는 513 요소 깊이로
 errStrayStartTag2=시작 태그 “%1$S”가 빠졌습니다.
 errStrayEndTag=종료 태그 “%1$S”가 빠졌습니다.
 errUnclosedElements=“%1$S” 종료 태그가 있으나 열린 요소가 있습니다.
-errUnclosedElementsImplied=종료 태그 “%1$S”가 적용되었으나 시작 요소가 없습니다.
-errUnclosedElementsCell=테이블 셀이 닫혔으나, 시작 요소가 없습니다.
+errUnclosedElementsImplied=종료 태그 “%1$S”가 적용되었으나 열린 요소가 있습니다.
+errUnclosedElementsCell=테이블 셀이 암시적으로 닫혔으나, 열린 요소가 있습니다.
 errStrayDoctype=DOCTYPE이 빠졌습니다.
 errAlmostStandardsDoctype=거의 표준 모드 doctype입니다. “<!DOCTYPE html>”로 처리합니다.
 errQuirkyDoctype=Quirky doctype입니다.“<!DOCTYPE html>”로 처리합니다.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=스택에 닫히지 않은 요소가 있습니
 errEndTagDidNotMatchCurrentOpenElement=“%1$S”의 종료태그는 현재 열린 요소(“%2$S”)와 이름이 맞지 않습니다.
 errEndTagViolatesNestingRules=“%1$S”의 종료 태그는 포함 규칙을 위반하였습니다.
 errEndWithUnclosedElements=“%1$S”의 종료태그가 있지만 닫히지 않은 요소가 있습니다.
+errListUnclosedStartTags=닫히지 않은 요소
diff --git a/thunderbird-l10n/ko/chrome/ko/locale/ko/global/textcontext.dtd b/thunderbird-l10n/ko/chrome/ko/locale/ko/global/textcontext.dtd
index 7640f1dba9ed95ccf504ff323cc1f1087527a5c7..2c1181a6e149f3fe5e0a830405c4c2a6928f03cc 100644
--- a/thunderbird-l10n/ko/chrome/ko/locale/ko/global/textcontext.dtd
+++ b/thunderbird-l10n/ko/chrome/ko/locale/ko/global/textcontext.dtd
@@ -2,9 +2,9 @@
    - 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/. -->
 
-<!ENTITY spellAddToDictionary.label "사전 추가">
+<!ENTITY spellAddToDictionary.label "사전에 추가">
 <!ENTITY spellAddToDictionary.accesskey "o">
-<!ENTITY spellUndoAddToDictionary.label "맞춤법 검사 사전 추가 실행 취소">
+<!ENTITY spellUndoAddToDictionary.label "사전에 추가 취소">
 <!ENTITY spellUndoAddToDictionary.accesskey "n">
 <!ENTITY spellCheckToggle.label "맞춤법 검사">
 <!ENTITY spellCheckToggle.accesskey "g">
diff --git a/thunderbird-l10n/ko/localization/ko/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ko/localization/ko/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ko/localization/ko/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ko/localization/ko/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ko/localization/ko/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/calendar/calendar-print.ftl b/thunderbird-l10n/ko/localization/ko/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ko/localization/ko/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/accountManager.ftl b/thunderbird-l10n/ko/localization/ko/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/ko/localization/ko/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/ko/localization/ko/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ko/localization/ko/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/chat.ftl b/thunderbird-l10n/ko/localization/ko/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ko/localization/ko/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/exportDialog.ftl b/thunderbird-l10n/ko/localization/ko/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/importDialog.ftl b/thunderbird-l10n/ko/localization/ko/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ko/localization/ko/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/messenger/troubleshootMode.ftl b/thunderbird-l10n/ko/localization/ko/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ko/localization/ko/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ko/localization/ko/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..631598203ce76a6d9fc5e7682ae55c1b2132acc1
--- /dev/null
+++ b/thunderbird-l10n/ko/localization/ko/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name } 설치를 마치시겠습니까?
+prompt-to-install-message = 이 한 단계 설치를 완료하면 { -brand-short-name }를 최신 상태로 유지하고 데이터 손실을 방지할 수 있습니다. { -brand-short-name }가 애플리케이션 폴더와 Dock에 추가됩니다.
+prompt-to-install-yes-button = 설치
+prompt-to-install-no-button = 설치 안 함
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } 설치에 실패했습니다.
+install-failed-message = { -brand-short-name } 설치에 실패했지만 계속 실행됩니다.
diff --git a/thunderbird-l10n/ko/localization/ko/toolkit/global/textActions.ftl b/thunderbird-l10n/ko/localization/ko/toolkit/global/textActions.ftl
index 17a8eec27e1473461166ff959a53785523bb10ca..f5bb6a940af0a83be241f6b5f832486ab7747074 100644
--- a/thunderbird-l10n/ko/localization/ko/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/ko/localization/ko/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = 실행 취소
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = 다시 실행
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = 잘라내기
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = 복사
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = 붙여넣기
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = 삭제
     .accesskey = D
-
 text-action-select-all =
     .label = 모두 선택
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = 맞춤법 제안 없음
+text-action-spell-add-to-dictionary =
+    .label = 사전에 추가
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = 사전에 추가 취소
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = 맞춤법 검사
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = 사전 추가…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = 언어
+    .accesskey = L
diff --git a/thunderbird-l10n/ko/manifest.json b/thunderbird-l10n/ko/manifest.json
index 0ef7a08be9aed8a36e358f736583dc4a13ca1ca3..5a379bb1fbffd905f77aa12a96a199d45247b1a0 100644
--- a/thunderbird-l10n/ko/manifest.json
+++ b/thunderbird-l10n/ko/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Korean (KR) Language Pack",
   "description": "Language pack for Thunderbird for ko",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ko": {
-      "version": "20210813223832",
+      "version": "20210831213645",
       "chrome_resources": {
         "alerts": "chrome/ko/locale/ko/alerts/",
         "autoconfig": "chrome/ko/locale/ko/autoconfig/",
diff --git a/thunderbird-l10n/lt/localization/lt/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/lt/localization/lt/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/calendar/calendar-print.ftl b/thunderbird-l10n/lt/localization/lt/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/lt/localization/lt/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/lt/localization/lt/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/lt/localization/lt/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/messenger/exportDialog.ftl b/thunderbird-l10n/lt/localization/lt/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/messenger/importDialog.ftl b/thunderbird-l10n/lt/localization/lt/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/localization/lt/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/lt/localization/lt/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lt/localization/lt/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lt/manifest.json b/thunderbird-l10n/lt/manifest.json
index a935509141257a712742b472cceec03b5a9f2709..3a2c2b642d1693de87b9c4c92d37caaa4cb0a893 100644
--- a/thunderbird-l10n/lt/manifest.json
+++ b/thunderbird-l10n/lt/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Lietuvių Language Pack",
   "description": "Language pack for Thunderbird for lt",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "lt": {
-      "version": "20210813140822",
+      "version": "20210831121800",
       "chrome_resources": {
         "alerts": "chrome/lt/locale/lt/alerts/",
         "autoconfig": "chrome/lt/locale/lt/autoconfig/",
diff --git a/thunderbird-l10n/lv/chrome/lv/locale/lv/lightning/lightning.properties b/thunderbird-l10n/lv/chrome/lv/locale/lv/lightning/lightning.properties
index 2d8c16e07bf498c83de3a59556e10f8b264f7be1..b2ad75ab261002c87d159382c4c5e9805a7d561a 100644
--- a/thunderbird-l10n/lv/chrome/lv/locale/lv/lightning/lightning.properties
+++ b/thunderbird-l10n/lv/chrome/lv/locale/lv/lightning/lightning.properties
@@ -130,7 +130,7 @@ imipBarProcessedSeriesNeedsAction=This message contains an event series that you
 imipBarReplyText=This message contains a reply to an invitation.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarProcessingFailed=Processing message failed. Status: %1$S.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-context-menus.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-editable-item.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-print.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/calendar-widgets.ftl b/thunderbird-l10n/lv/localization/lv/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/category-dialog.ftl b/thunderbird-l10n/lv/localization/lv/calendar/category-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/category-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/calendar/preferences.ftl b/thunderbird-l10n/lv/localization/lv/calendar/preferences.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/calendar/preferences.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/lv/localization/lv/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/lv/localization/lv/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/accountManager.ftl b/thunderbird-l10n/lv/localization/lv/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/lv/localization/lv/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/lv/localization/lv/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/lv/localization/lv/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/chat.ftl b/thunderbird-l10n/lv/localization/lv/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/lv/localization/lv/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/exportDialog.ftl b/thunderbird-l10n/lv/localization/lv/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/importDialog.ftl b/thunderbird-l10n/lv/localization/lv/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/preferences/am-copies.ftl b/thunderbird-l10n/lv/localization/lv/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/messenger/troubleshootMode.ftl b/thunderbird-l10n/lv/localization/lv/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/localization/lv/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/lv/localization/lv/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/lv/localization/lv/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/lv/manifest.json b/thunderbird-l10n/lv/manifest.json
index c31cde933b9016cac169d58029ab4a2328f7c08c..c174e3b382efbcf7a10520490cbab97489118eaa 100644
--- a/thunderbird-l10n/lv/manifest.json
+++ b/thunderbird-l10n/lv/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Latviešu (LV) Language Pack",
   "description": "Language pack for Thunderbird for lv",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "lv": {
-      "version": "20210813140847",
+      "version": "20210831121825",
       "chrome_resources": {
         "alerts": "chrome/lv/locale/lv/alerts/",
         "autoconfig": "chrome/lv/locale/lv/autoconfig/",
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-context-menus.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-print.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/calendar/calendar-widgets.ftl b/thunderbird-l10n/ms/localization/ms/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/ms/localization/ms/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ms/localization/ms/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/accountManager.ftl b/thunderbird-l10n/ms/localization/ms/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/ms/localization/ms/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/chat.ftl b/thunderbird-l10n/ms/localization/ms/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ms/localization/ms/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/exportDialog.ftl b/thunderbird-l10n/ms/localization/ms/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/importDialog.ftl b/thunderbird-l10n/ms/localization/ms/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ms/localization/ms/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/messenger/troubleshootMode.ftl b/thunderbird-l10n/ms/localization/ms/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/localization/ms/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ms/localization/ms/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ms/localization/ms/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ms/manifest.json b/thunderbird-l10n/ms/manifest.json
index 5089ceb8f10abd82181ec4e1daab4451db61a3fa..2fe1d4caa5387c011271cffc5dbcc6c7bdf834c2 100644
--- a/thunderbird-l10n/ms/manifest.json
+++ b/thunderbird-l10n/ms/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Bahasa Melayu (ms) Language Pack",
   "description": "Language pack for Thunderbird for ms",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ms": {
-      "version": "20210813141028",
+      "version": "20210831122016",
       "chrome_resources": {
         "alerts": "chrome/ms/locale/ms/alerts/",
         "autoconfig": "chrome/ms/locale/ms/autoconfig/",
diff --git a/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/layout/htmlparser.properties b/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/layout/htmlparser.properties
index 43a52ef5f27b716ef5534e1ccb7de9ea117730bc..eaf1051fd42db504657131ead5b674f4fd9ef8a9 100644
--- a/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Så «<!--» inne i en kommentar. Sannsynlig årsak: Nøstet kommentar (ikke tillatt).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Ikke lukket element eller elementer.
diff --git a/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/security/security.properties b/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/security/security.properties
index 44529e8bf0e6832cfeea5d1788e41e1d328ed9a4..d0bb5cd3e913ffe6dc4f637cd411d63434d5b587 100644
--- a/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/security/security.properties
+++ b/thunderbird-l10n/nb-NO/chrome/nb-NO/locale/nb-NO/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: Lengden er over grensen på 
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: Lengden for opphav innen referrer er over grensen på «%1$S» byte - fjerner referrer med opphav: «%2$S».
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer-policy: Mindre begrensede policy-er, inkludert «no-referrer-when-downgrade», «origin-when-cross-origin» og «unsafe-url», blir snart ignorert for forespørsel på tvers av nettsteder: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer-policy: Ignorerer den mindre begrensede referrer-policy-en «%1$S» for forespørselen på tvers av nettsteder: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = En ugyldig X-Frame-Options-header ble funnet under innlesing av «%1$S»: «%2$S» er ikke et gyldig direktiv.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Oppgraderer usikker forespørsel «%1$S» til å bruke
 HTTPSOnlyNoUpgradeException = Oppgraderer ikke usikker forespørsel «%1$S» fordi den er unntatt.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Oppgradering av usikker forespørsel «%1$S» mislyktes. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Oppgradering av usikker forespørsel «%S» feilet. Nedgradering til «http» igjen.
 
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountManager.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/chat.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/exportDialog.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/importDialog.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/preferences/am-copies.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..336442190582b73ca27c590df2971ed325af32d8
--- /dev/null
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Fullføre installeringen av { -brand-short-name }?
+prompt-to-install-message = Fullfør denne ett-trinns installasjonen for å holde { -brand-short-name } oppdatert og forhindre tap av data. { -brand-short-name } blir lagt til i Programmer-mappen og i Dock.
+prompt-to-install-yes-button = Installer
+prompt-to-install-no-button = Ikke installer
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } installasjonen mislyktes.
+install-failed-message = { -brand-short-name } kunne ikke installeres, men vil fortsette å kjøre.
diff --git a/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/textActions.ftl b/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/textActions.ftl
index 2bab7eec597969e721a4b27aa0daa7cd80998393..64918e5c6a2f89ec9b156586e692976359c21014 100644
--- a/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/nb-NO/localization/nb-NO/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Angre
     .accesskey = A
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Gjenta
     .accesskey = G
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Klipp ut
     .accesskey = u
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopier
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Lim inn
     .accesskey = L
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Slett
     .accesskey = t
-
 text-action-select-all =
     .label = Merk alt
     .accesskey = M
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = (Ingen staveforslag)
+text-action-spell-add-to-dictionary =
+    .label = Legg til i ordbok
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Angre tillegg i ordbok
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Stavekontroll
+    .accesskey = t
+text-action-spell-add-dictionaries =
+    .label = Legg til ordbøker…
+    .accesskey = L
+text-action-spell-dictionaries =
+    .label = Språk
+    .accesskey = S
diff --git a/thunderbird-l10n/nb-NO/manifest.json b/thunderbird-l10n/nb-NO/manifest.json
index 35e72f7b612cbcd90528f2aedfbd65cb334ff97c..0eaf2135974fbfa5e3b5267b66ff1a119c2b24b1 100644
--- a/thunderbird-l10n/nb-NO/manifest.json
+++ b/thunderbird-l10n/nb-NO/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Norsk (bokmål) Language Pack",
   "description": "Language pack for Thunderbird for nb-NO",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "nb-NO": {
-      "version": "20210817074707",
+      "version": "20210831174435",
       "chrome_resources": {
         "alerts": "chrome/nb-NO/locale/nb-NO/alerts/",
         "autoconfig": "chrome/nb-NO/locale/nb-NO/autoconfig/",
diff --git a/thunderbird-l10n/nl/chrome/nl/locale/nl/devtools/client/webconsole.properties b/thunderbird-l10n/nl/chrome/nl/locale/nl/devtools/client/webconsole.properties
index b20d5def46a205456b5422b8f12ed9615ff7ace1..8f81f1578480dffee7c19a09845e58bbebfd684f 100644
--- a/thunderbird-l10n/nl/chrome/nl/locale/nl/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/nl/chrome/nl/locale/nl/devtools/client/webconsole.properties
@@ -439,6 +439,12 @@ webconsole.message.componentDidCatch.label=[DEVTOOLS-FOUT] Het bericht kan helaa
 # in the console, for example, copy({hello: "world"}).
 webconsole.message.commands.copyValueToClipboard=Tekstfragment naar klembord gekopieerd.
 
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=De opdracht ‘copy’ is mislukt, van het object kan geen string worden gemaakt: %S
+
 # LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
diff --git a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout/htmlparser.properties b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout/htmlparser.properties
index 3bc1f32d10c207f6f63a0b1a73ba22040f78d587..c6ede3ecce1eb4251651ad46f708cf05799f1368 100644
--- a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Einde van bestand binnen systeemidentificator.
 errExpectedSystemId=Systeemidentificator verwacht, maar het documenttype is gesloten.
 errMissingSpaceBeforeDoctypeName=Spatie voor naam van documenttype ontbreekt.
 errHyphenHyphenBang=‘--!’ gevonden in opmerking.
+errNestedComment=Er staat “<!--” binnen een opmerking. Waarschijnlijke oorzaak: geneste opmerking (niet toegestaan).
 errNcrZero=Tekenreferentie breidt uit naar nul.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Geen spatie tussen het sleutelwoord ‘SYSTEM’ van het documenttype en het aanhalingsteken.
 errNoSpaceBetweenPublicAndSystemIds=Geen spatie tussen het documenttype public en systeemidentificatoren.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Niet-gesloten elementen op stapel.
 errEndTagDidNotMatchCurrentOpenElement=Eindtag ‘%1$S’ kwam niet overeen met de naam van het huidige geopende element (‘%2$S’).
 errEndTagViolatesNestingRules=Eindtag ‘%1$S’ schendt regels voor nesten.
 errEndWithUnclosedElements=Eindtag ‘%1$S’ gezien, maar er zijn niet-gesloten elementen.
+errListUnclosedStartTags=Niet-gesloten element of elementen.
diff --git a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout_errors.properties b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout_errors.properties
index 5c42e94200633958ae6898c8c3516397b7a6f7b3..5f116d7486143a9972fa18e5da6959a4aa5fe0d2 100644
--- a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout_errors.properties
+++ b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=Het ‘coords’-attribuut van de <area shape="pol
 TablePartRelPosWarning=Relatieve positionering van tabelrijen en rijgroepen wordt nu ondersteund. Wellicht dient deze website te worden bijgewerkt, omdat hij erop kan rekenen dat deze functie niet werkt.
 ScrollLinkedEffectFound2=Deze website lijkt een ‘scroll-linked’ positioneringseffect te gebruiken. Mogelijk werkt dit niet goed met asynchronous panning; zie https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects voor verdere details en het bijdragen aan de discussie over gerelateerde hulpmiddelen en functies!
 
+ScrollLinkedEffectFound3=Deze website lijkt een ‘scroll-linked’ positioneringseffect te gebruiken. Mogelijk werkt dit niet goed met asynchrone panning; zie https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html voor verdere details en het bijdragen aan de discussie over gerelateerde hulpmiddelen en functies!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=Animatie kan niet op de composi
 CompositorAnimationWarningTransformIsBlockedByImportantRules=Transformeringsanimatie kan niet op de compositor worden uitgevoerd omdat transformatie-gerelateerde eigenschappen door !important-regels worden onderdrukt
 CompositorAnimationWarningOpacityFrameInactive=Animatie kan niet op de compositor worden uitgevoerd, omdat het frame niet actief is gemarkeerd voor ‘opacity’-animatie
 CompositorAnimationWarningHasRenderingObserver=Animatie kan niet op de compositor worden uitgevoerd, omdat het element rendering observers heeft (-moz-element of SVG clipping/masking)
-
 CompositorAnimationWarningHasCurrentColor=Animaties van het type ‘background-color’ kunnen niet op de compositor worden uitgevoerd met het keyframe ‘current-color’.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/security/security.properties b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/security/security.properties
index 42e7ce6079ba913d33bfb060c5ae067344c3d02c..fd3af80c4e543f264e2e18acb141945672e4730c 100644
--- a/thunderbird-l10n/nl/chrome/nl/locale/nl/global/security/security.properties
+++ b/thunderbird-l10n/nl/chrome/nl/locale/nl/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: De lengte is groter dan de li
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: De lengte van het origineel in de referrer is groter dan de limiet van ‘%1$S’ bytes – referrer met oorsprong ‘%2$S’ wordt verwijderd.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Verwijzingsbeleid: minder beperkte beleidsregels, waaronder ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ en ‘unsafe-url’, worden binnenkort genegeerd voor het cross-site-verzoek: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Verwijzingsbeleid: negeren van het minder beperkte verwijzingsbeleid “%1$S” voor het cross-site-verzoek: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Er is een ongeldige X-Frame-Options-koptekst gevonden bij het laden van ‘%2$S’: ‘%1$S’ is geen geldige richtlijn.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Onveilige aanvraag ‘%1$S’ wordt geüpgraded voor g
 HTTPSOnlyNoUpgradeException = Onveilige aanvraag ‘%1$S’ wordt niet geüpgraded omdat het is uitgezonderd.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Upgraden van onveilige aanvraag ‘%1$S’ mislukt. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Het upgraden van de onveilige aanvraag ‘%S’ is mislukt. Opnieuw downgraden naar ‘http’.
 
diff --git a/thunderbird-l10n/nl/chrome/nl/locale/nl/messenger/messenger.dtd b/thunderbird-l10n/nl/chrome/nl/locale/nl/messenger/messenger.dtd
index 8773fdaf1aa6d55440d494e387dc3739bb8407d7..db579ef549c82b66f590825a56bd29d19b3e5213 100644
--- a/thunderbird-l10n/nl/chrome/nl/locale/nl/messenger/messenger.dtd
+++ b/thunderbird-l10n/nl/chrome/nl/locale/nl/messenger/messenger.dtd
@@ -172,7 +172,7 @@
 <!ENTITY recentFolders.accesskey "R">
 <!ENTITY compactVersion.label "Compacte weergave">
 <!ENTITY compactVersion.accesskey "C">
-<!ENTITY folderPaneBar.label "Mappenvensterwerkbalk">
+<!ENTITY folderPaneBar.label "Mappenpaneelwerkbalk">
 <!ENTITY folderPaneBar.accesskey "v">
 
 <!-- Sort Menu -->
diff --git a/thunderbird-l10n/nl/localization/nl/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/nl/localization/nl/messenger/accountcreation/accountSetup.ftl
index 874410084080c823d814613505fb647a3e58268a..8c6398a6ef60e3d315bb1ec54757b187ba6f7ace 100644
--- a/thunderbird-l10n/nl/localization/nl/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/nl/localization/nl/messenger/accountcreation/accountSetup.ftl
@@ -41,6 +41,10 @@ account-provisioner-button = Een nieuw e-mailadres aanvragen
     .accesskey = v
 account-setup-password-toggle =
     .title = Wachtwoord tonen/verbergen
+account-setup-password-toggle-show =
+    .title = Wachtwoord in leesbare tekst tonen
+account-setup-password-toggle-hide =
+    .title = Wachtwoorden verbergen
 account-setup-remember-password = Wachtwoord onthouden
     .accesskey = h
 account-setup-exchange-label = Uw aanmelding
@@ -209,6 +213,17 @@ exchange-dialog-question = { -brand-short-name } heeft uw accountinstellingen op
 exchange-dialog-confirm-button = Aanmelden
 exchange-dialog-cancel-button = Annuleren
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Geen e-mailaccount geconfigureerd
+exit-dialog-description = Weet u zeker dat u het installatieproces wilt annuleren? { -brand-short-name } kan nog steeds worden gebruikt zonder een e-mailaccount, maar veel functies zijn niet beschikbaar.
+account-setup-no-account-checkbox = { -brand-short-name } zonder e-mailaccount gebruiken
+    .accesskey = z
+exit-dialog-cancel-button = Doorgaan met instellen
+    .accesskey = D
+exit-dialog-confirm-button = Instellen afsluiten
+    .accesskey = I
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Fout bij aanmaken van account
diff --git a/thunderbird-l10n/nl/localization/nl/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/nl/localization/nl/messenger/addressbook/aboutAddressBook.ftl
index 1275bd73d059c8ea58ec580bf014838d9594cfa6..4241775218f822c30d18cc9272c982a4027a63c8 100644
--- a/thunderbird-l10n/nl/localization/nl/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/nl/localization/nl/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Alle adresboeken
-
 about-addressbook-books-context-properties =
     .label = Eigenschappen
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Verwijderen
 about-addressbook-books-context-remove =
     .label = Verwijderen
-
 about-addressbook-confirm-delete-book-title = Adresboek verwijderen
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = { $name } doorzoeken
 about-addressbook-search-all =
     .placeholder = Alle adresboeken doorzoeken
-
 about-addressbook-sort-button =
     .title = Lijstvolgorde wijzigen
-
 about-addressbook-name-format-display =
     .label = Weergavenaam
 about-addressbook-name-format-firstlast =
     .label = Voornaam Achternaam
 about-addressbook-name-format-lastfirst =
     .label = Achternaam, Voornaam
-
 about-addressbook-sort-name-ascending =
     .label = Sorteren op naam (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Sorteren op e-mailadres (A > Z)
 about-addressbook-sort-email-descending =
     .label = Sorteren op e-mailadres (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Opstellen
 about-addressbook-confirm-delete-mixed-title = Contacten en lijsten verwijderen
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Bewerken
 about-addressbook-cancel-edit-contact-button = Annuleren
 about-addressbook-save-edit-contact-button = Opslaan
-
 about-addressbook-details-email-addresses-header = E-mailadressen
 about-addressbook-details-phone-numbers-header = Telefoonnummers
 about-addressbook-details-home-address-header = Adres
diff --git a/thunderbird-l10n/nl/localization/nl/messenger/importDialog.ftl b/thunderbird-l10n/nl/localization/nl/messenger/importDialog.ftl
index f51452839a52799b49483be3ff5d1706779443f2..f8e40ef80f264b124be555914d93270b78dce91d 100644
--- a/thunderbird-l10n/nl/localization/nl/messenger/importDialog.ftl
+++ b/thunderbird-l10n/nl/localization/nl/messenger/importDialog.ftl
@@ -6,4 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = E-mail uit een Thunderbird-profielmap importeren.
+import-from-thunderbird-zip =
+    .label = Thunderbird (geëxporteerde profielback-up; zip-bestand kleiner dan 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profielmap)
+    .accesskey = T
 import-select-profile-zip = Selecteer een gecomprimeerde profielmap
+import-select-profile-dir = Selecteer een profielmap
+zip-file-too-big-title = Zip-bestand te groot
+zip-file-too-big-message = Het geselecteerde zip-bestand is groter dan 2 GB. Pak het eerst uit en importeer het vervolgens uit de uitgepakte map.
+wizardpage-failed =
+    .label = Importeren mislukt
+wizardpage-failed-message = Importeren is onverwacht mislukt, meer informatie is mogelijk beschikbaar in de Foutconsole.
diff --git a/thunderbird-l10n/nl/localization/nl/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/nl/localization/nl/messenger/messengercompose/messengercompose.ftl
index af879303a9faf6b5d5aaab986603868cdc7b2caa..124f0447967f1858b8c68291a0663ce9c9694d4f 100644
--- a/thunderbird-l10n/nl/localization/nl/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/nl/localization/nl/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Bijlage toevoegen…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Bijlage toevoegen…
+    .accesskey = B
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Bestand(en)…
     .accesskey = B
@@ -153,12 +157,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Veld { bcc-compose-address-row-label.value } tonen ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = De { $count } ontvangers in Aan en Cc zullen elkaars adres zien. U kunt voorkomen dat ontvangers worden onthuld door in plaats hiervan Bcc te gebruiken.
+to-address-row-label =
+    .value = Aan
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Aan-veld
+    .accesskey = A
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Aan
+    .accesskey = A
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Aan
+    .title = Aan-veld tonen ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Cc-veld
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Cc-veld tonen ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Bcc
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Bcc-veld
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Bcc
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+    .title = Bcc-veld tonen ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Andere te tonen adresvelden
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Uw bericht heeft een openbare ontvanger. U kunt voorkomen dat ontvangers worden onthuld door in plaats hiervan Bcc te gebruiken.
+       *[other] De { $count } ontvangers in Aan en Cc zullen elkaars adres zien. U kunt voorkomen dat ontvangers worden onthuld door in plaats hiervan Bcc te gebruiken.
+    }
 many-public-recipients-bcc =
     .label = In plaats hiervan Bcc gebruiken
     .accesskey = g
 many-public-recipients-ignore =
     .label = Ontvangers openbaar laten
     .accesskey = l
+many-public-recipients-prompt-title = Te veel openbare ontvangers
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Uw bericht heeft een openbare ontvanger. Dit kan een privacyprobleem zijn. U kunt dit voorkomen door de ontvanger in plaats van Aan/Cc naar Bcc te verplaatsen.
+       *[other] Uw bericht heeft { $count } openbare ontvangers, die elkaars adressen kunnen zien. Dit kan een privacyprobleem zijn. U kunt voorkomen dat ontvangers openbaar worden gemaakt door ontvangers in plaats van Aan/Cc naar Bcc te verplaatsen.
+    }
+many-public-recipients-prompt-cancel = Verzenden annuleren
+many-public-recipients-prompt-send = Toch verzenden
 
 ## Notifications
 
diff --git a/thunderbird-l10n/nl/localization/nl/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/nl/localization/nl/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..04e8cf367e6b1ecde8bff38b7794d2c50bed7a01
--- /dev/null
+++ b/thunderbird-l10n/nl/localization/nl/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name }-installatie voltooien?
+prompt-to-install-message = Voltooi deze installatie in één stap om { -brand-short-name } up-to-date te houden en gegevensverlies te voorkomen. { -brand-short-name } wordt aan uw map Programma's en Dock toegevoegd.
+prompt-to-install-yes-button = Installeren
+prompt-to-install-no-button = Niet installeren
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name }-installatie mislukt.
+install-failed-message = { -brand-short-name } kan niet worden geïnstalleerd, maar blijft actief.
diff --git a/thunderbird-l10n/nl/localization/nl/toolkit/global/textActions.ftl b/thunderbird-l10n/nl/localization/nl/toolkit/global/textActions.ftl
index f5920b660e129419a84e168f571084accb169d1d..7126d45049030eb7bbbe4d929f585b19d3f05cf6 100644
--- a/thunderbird-l10n/nl/localization/nl/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/nl/localization/nl/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Ongedaan maken
     .accesskey = O
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Opnieuw uitvoeren
     .accesskey = u
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Knippen
     .accesskey = n
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopiëren
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Plakken
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Verwijderen
     .accesskey = V
-
 text-action-select-all =
     .label = Alles selecteren
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Geen spellingsuggesties
+text-action-spell-add-to-dictionary =
+    .label = Toevoegen aan woordenboek
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Toevoegen aan woordenboek ongedaan maken
+    .accesskey = g
+text-action-spell-check-toggle =
+    .label = Spelling controleren
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Woordenboeken toevoegen…
+    .accesskey = t
+text-action-spell-dictionaries =
+    .label = Talen
+    .accesskey = T
diff --git a/thunderbird-l10n/nl/manifest.json b/thunderbird-l10n/nl/manifest.json
index 68c8eef45763d37064bee74544133cb1d51f24e2..ff827e5771bc6b256a91f47ed1052e41e496ca9d 100644
--- a/thunderbird-l10n/nl/manifest.json
+++ b/thunderbird-l10n/nl/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Nederlands (NL) Language Pack",
   "description": "Language pack for Thunderbird for nl",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "nl": {
-      "version": "20210817081535",
+      "version": "20210901071205",
       "chrome_resources": {
         "alerts": "chrome/nl/locale/nl/alerts/",
         "autoconfig": "chrome/nl/locale/nl/autoconfig/",
diff --git a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/toolbox.properties b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/toolbox.properties
index abf882a517e194567636bcd6e16fe1858719f8b6..d83a77d7d69fb4cf893f13c67a5a5539ca2936dd 100644
--- a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/toolbox.properties
@@ -291,3 +291,7 @@ options.deprecationNotice=Deprecated. Learn More…
 # LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
 options.enableMultiProcessToolbox=Enable the Multiprocess Browser Toolbox (requires restarting the Browser Toolbox)
+
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+options.enableNewPerformancePanel=Enable new performance recorder (then re-open DevTools)
diff --git a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/webconsole.properties b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/webconsole.properties
index 0cd3301a17104fb8196e7866ce4cffba35786324..812aeeffd575658babd9ffeedb25539cc3157f99 100644
--- a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/devtools/client/webconsole.properties
@@ -439,6 +439,12 @@ webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] We’re sorry, we co
 # in the console, for example, copy({hello: "world"}).
 webconsole.message.commands.copyValueToClipboard=Strengen vart kopiert til utklippstavla.
 
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=`copy` command failed, object can’t be stringified: %S
+
 # LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
diff --git a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout/htmlparser.properties b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout/htmlparser.properties
index 7acb03c3ecd2b253a478ca0d646e22ec81597b9d..91d61329f8321635d1795822626d789561653415 100644
--- a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=End of file inside system identifier.
 errExpectedSystemId=Expected a system identifier but the doctype ended.
 errMissingSpaceBeforeDoctypeName=Missing space before doctype name.
 errHyphenHyphenBang=“--!” found in comment.
+errNestedComment=Såg «<!--» inne i ein kommentar. Sannsynleg årsak: Nesta kommentar (ikkje tillaten).
 errNcrZero=Character reference expands to zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
 errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
 errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
 errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
 errEndWithUnclosedElements=End tag for “%1$S” seen, but there were unclosed elements.
+errListUnclosedStartTags=Ikkje attlatne element.
diff --git a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout_errors.properties b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout_errors.properties
index 7ca9928ac0e2e356408d24a421e29e741e65e367..2a82d92dbd75eb90ed5d89b41862409dd9cc18ee 100644
--- a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout_errors.properties
+++ b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=The "coords" attribute of the <area shape="poly">
 TablePartRelPosWarning=Relative positioning of table rows and row groups is now supported. This site may need to be updated because it may depend on this feature having no effect.
 ScrollLinkedEffectFound2=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
 
+ScrollLinkedEffectFound3=Denne nettstaden ser ut til å bruke ein rullekopla posisjoneringseffekt. Dette fungerer kanskje ikkje bra med asynkron panorering; sjå https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for ytterlegare detaljar og for å bli med i diskusjonen om relaterte verktøy og funksjonar!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=Async animation disabled becaus
 CompositorAnimationWarningTransformIsBlockedByImportantRules=Transform-animasjon kan ikkje køyrast på kompositøren fordi transformasjonsrelaterte eigenskapar er overstyrte av !important-reglar
 CompositorAnimationWarningOpacityFrameInactive=Async animation disabled because frame was not marked active for 'opacity' animation
 CompositorAnimationWarningHasRenderingObserver=Animering kan ikkje køyrast på compositor fordi elementet har renderingsobservatørar (-moz-element eller SVG klippning/maskering)
-
 CompositorAnimationWarningHasCurrentColor=Animasjonar av «background-color» kan ikkje køyrast på kompositøren med «current-color»-keyframe.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/security/security.properties b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/security/security.properties
index b806350fe5fc40ee62b760c835ea3c48fcd701a8..10983d9066d0df32037e826cccd12443a8e0243f 100644
--- a/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/security/security.properties
+++ b/thunderbird-l10n/nn-NO/chrome/nn-NO/locale/nn-NO/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: Lengda er over grensa på «%
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: Lengda for opphav innen referrer er over grensa på «%1$S» byte - fjernar referrer med opphav: «%2$S».
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer-policy: Mindre avgrensa policy-ar, inkludert «no-referrer-when-downgrade», «origin-when-cross-origin» og «unsafe-url», blir snart ignorert for førspurnad på tvers av nettstadar: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer-policy: Ignorerer den mindre avgrensa referrer-policy-en «%1$S» for førespurnadenn på tvers av nettstadar: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = Ein ugyldig X-Frame-Options-header vart funnen under innlesing av «%1$S»: «%2$S» er ikkje eit gyldig direktiv.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Oppgraderer usikker førespurnad «%1$S» til å bruke
 HTTPSOnlyNoUpgradeException = Oppgraderer ikkje utrygg førespurnad «%1$S» fordi han er unntatt.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Oppgradering av utrygg førespurnad «%1$S» mislyktast. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Oppgradering av usikker førespurnad «%S» feila. Nedgraderer till «http» igjen.
 
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/devtools/client/tooltips.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/devtools/client/tooltips.ftl
index 9cd23530f5ca47bd08697135a715bc22189ea113..6d450c8033aeb5859bb04cd9cca194e67c5b555f 100644
--- a/thunderbird-l10n/nn-NO/localization/nn-NO/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Learn more</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s neither a flex container nor a grid container.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container, a grid container, or a multi-column container.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid or flex item.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid item.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> has no effect on this element since it’s not a grid container.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a flex item.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> has no effect on this element since it’s not an inline or table-cell element.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> has no effect on this element since it has a display of <strong>{ $display }</strong>.
-
 inactive-css-not-display-block-on-floated = The <strong>display</strong> value has been changed by the engine to <strong>block</strong> because the element is <strong>floated</strong>.
-
 inactive-css-property-is-impossible-to-override-in-visited = It’s impossible to override <strong>{ $property }</strong> due to <strong>:visited</strong> restriction.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> has no effect on this element since it’s not a positioned element.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> has no effect on this element since <strong>overflow:hidden</strong> is not set.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> has no effect on this element because its <strong>outline-style</strong> is <strong>auto</strong> or <strong>none</strong>.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> has no effect on internal table elements.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> has no effect on internal table elements except table cells.
-
 inactive-css-not-table = <strong>{ $property }</strong> has no effect on this element since it’s not a table.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> has no effect on this element since it doesn’t scroll.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Try adding <strong>display:grid</strong> or <strong>display:flex</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Try adding either <strong>display:grid</strong>, <strong>display:flex</strong>, or <strong>columns:2</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong>. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
 inactive-css-not-grid-item-fix-2 = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong> to the element’s parent. { learn-more }
-
 inactive-css-not-grid-container-fix = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong>. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
-
 inactive-css-not-flex-container-fix = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong>. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Try adding <strong>display:inline</strong> or <strong>display:table-cell</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Try adding <strong>display:inline-block</strong> or <strong>display:block</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try adding <strong>display:inline-block</strong>. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Try removing <strong>float</strong> or adding <strong>display:block</strong>. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Try setting its <strong>position</strong> property to something other than <strong>static</strong>. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Try adding <strong>overflow:hidden</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Try setting its <strong>display</strong> property to something else than <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Try setting its <strong>display</strong> property to something else than <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Try setting its <strong>outline-style</strong> property to something other than <strong>auto</strong> or <strong>none</strong>. { learn-more }
-
 inactive-css-not-table-fix = Try adding <strong>display:table</strong> or <strong>display:inline-table</strong>. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, or <strong>overflow:hidden</strong>. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overf
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> is not supported in the following browsers:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards. It is not supported in the following browsers:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> is deprecated by W3C standards. It is not supported in the following browsers:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is deprecated by W3C standards.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> is an experimental property. It is not supported in the following browsers:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is an experimental property.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Learn more</span> about <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/accountManager.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/chat.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/exportDialog.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/importDialog.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/preferences/am-copies.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/textActions.ftl b/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/textActions.ftl
index 8feda2abf3578c6d4487c35361e02e51546a7898..395570596056df2f174f94ac24ccacca883b8035 100644
--- a/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/nn-NO/localization/nn-NO/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Angre
     .accesskey = A
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Gjer om
     .accesskey = G
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Klipp ut
     .accesskey = u
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopier
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Lim inn
     .accesskey = L
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Slett
     .accesskey = t
-
 text-action-select-all =
     .label = Merk alt
     .accesskey = M
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = (Ingen staveforslag)
+text-action-spell-add-to-dictionary =
+    .label = Legg til i ordbok
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Angre tillegg i ordbok
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Stavekontroll
+    .accesskey = t
+text-action-spell-add-dictionaries =
+    .label = Legg til ordbøker…
+    .accesskey = L
+text-action-spell-dictionaries =
+    .label = Språk
+    .accesskey = S
diff --git a/thunderbird-l10n/nn-NO/manifest.json b/thunderbird-l10n/nn-NO/manifest.json
index 16278cb012dcdfdd813c595a15005c5888ce7d7f..d330df19fa06927beaa388a6afd9bfada0936ecb 100644
--- a/thunderbird-l10n/nn-NO/manifest.json
+++ b/thunderbird-l10n/nn-NO/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Norsk (nynorsk) Language Pack",
   "description": "Language pack for Thunderbird for nn-NO",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "nn-NO": {
-      "version": "20210817180747",
+      "version": "20210831122127",
       "chrome_resources": {
         "alerts": "chrome/nn-NO/locale/nn-NO/alerts/",
         "autoconfig": "chrome/nn-NO/locale/nn-NO/autoconfig/",
diff --git a/thunderbird-l10n/pa-IN/chrome/pa-IN/locale/pa-IN/lightning/lightning.properties b/thunderbird-l10n/pa-IN/chrome/pa-IN/locale/pa-IN/lightning/lightning.properties
index e67630c52ab0a49eecc108c6e7603b6dfb848503..0ce9bf3d3d8bb6a69920da023a2b9c284170e577 100644
--- a/thunderbird-l10n/pa-IN/chrome/pa-IN/locale/pa-IN/lightning/lightning.properties
+++ b/thunderbird-l10n/pa-IN/chrome/pa-IN/locale/pa-IN/lightning/lightning.properties
@@ -164,7 +164,7 @@ imipBarProcessedMultipleNeedsAction=This message contains multiple events that y
 imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarCalendarDeactivated=This message contains event information. Enable a calendar to handle it.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-context-menus.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-editable-item.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-print.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-widgets.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountManager.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/chat.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/exportDialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/importDialog.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/preferences/am-copies.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/troubleshootMode.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/localization/pa-IN/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/pa-IN/localization/pa-IN/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pa-IN/localization/pa-IN/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pa-IN/manifest.json b/thunderbird-l10n/pa-IN/manifest.json
index d58ebd20ddd3bbf5939b38a09b9ae0fd2adc0ae9..5d5b7a78c6ec2472c93333a928409d85c1e2e852 100644
--- a/thunderbird-l10n/pa-IN/manifest.json
+++ b/thunderbird-l10n/pa-IN/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Punjabi (Gurmukhi) Language Pack",
   "description": "Language pack for Thunderbird for pa-IN",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "pa-IN": {
-      "version": "20210813141250",
+      "version": "20210831122242",
       "chrome_resources": {
         "alerts": "chrome/pa-IN/locale/pa-IN/alerts/",
         "autoconfig": "chrome/pa-IN/locale/pa-IN/autoconfig/",
diff --git a/thunderbird-l10n/pl/chrome/pl/locale/pl/global/layout/htmlparser.properties b/thunderbird-l10n/pl/chrome/pl/locale/pl/global/layout/htmlparser.properties
index c5253446a1bd52f22dfea465f1303f8d5c222147..cdeb497c4704d6139fc38329c2d14fa07e7f6c3a 100644
--- a/thunderbird-l10n/pl/chrome/pl/locale/pl/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/pl/chrome/pl/locale/pl/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Koniec pliku wewnÄ…trz identyfikatora systemowego.
 errExpectedSystemId=Oczekiwano identyfikatora systemowego, ale doctype się skończył.
 errMissingSpaceBeforeDoctypeName=Brak spacji przed nazwą doctype.
 errHyphenHyphenBang=„--!” w komentarzu.
+errNestedComment=Napotkano „<!--” w komentarzu. Prawdopodobna przyczyna: zagnieżdżony komentarz (niedozwolone).
 errNcrZero=Odwołanie znakowe wskazuje na zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Brak spacji między słowem kluczowym „SYSTEM” a cudzysłowem w doctype.
 errNoSpaceBetweenPublicAndSystemIds=Brak spacji między identyfikatorami publicznym a systemowym w doctype.
@@ -131,4 +132,5 @@ errSelfClosing=Składnia samozamykająca („/>”) użyta na niepustym elemenci
 errNoCheckUnclosedElementsOnStack=Niezamknięte elementy na stosie.
 errEndTagDidNotMatchCurrentOpenElement=Znacznik końcowy „%1$S” nie pasuje do nazwy obecnie otwartego elementu („%2$S”).
 errEndTagViolatesNestingRules=Znacznik końcowy „%1$S” łamie zasady zagnieżdżania.
-errEndWithUnclosedElements=Napotkano znacznik końcowy „%1$S”, ale nie było niezakończonych elementów.
+errEndWithUnclosedElements=Napotkano znacznik końcowy „%1$S”, ale były niezamknięte elementy.
+errListUnclosedStartTags=Niezamknięty element lub elementy.
diff --git a/thunderbird-l10n/pl/localization/pl/messenger/importDialog.ftl b/thunderbird-l10n/pl/localization/pl/messenger/importDialog.ftl
index 5b182f48408358b5b91af0955a62b6485d0e53e8..8e5190ccdccc9cca2a00b61239ac86d7cb410c49 100644
--- a/thunderbird-l10n/pl/localization/pl/messenger/importDialog.ftl
+++ b/thunderbird-l10n/pl/localization/pl/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Import wiadomości z katalogu profilu Thunderbirda.
-import-select-profile-dir-or-zip = Wybierz katalog profilu lub skompresowany katalog profilu
+import-from-thunderbird-zip =
+    .label = Thunderbird (wyeksportowana kopia zapasowa profilu, plik ZIP mniejszy niż 2 GB)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (folder profilu)
+    .accesskey = T
 import-select-profile-zip = Wybierz skompresowany katalog profilu
+import-select-profile-dir = Wybierz katalog profilu
+zip-file-too-big-title = Plik ZIP jest za duży
+zip-file-too-big-message = Wybrany plik ZIP jest większy niż 2 GB. Najpierw go rozpakuj, a następnie zaimportuj z rozpakowanego folderu.
+wizardpage-failed =
+    .label = Import się nie powiódł
+wizardpage-failed-message = Import nieoczekiwanie się nie powiódł. Więcej informacji może być dostępnych w konsoli błędów.
diff --git a/thunderbird-l10n/pl/localization/pl/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/pl/localization/pl/messenger/messengercompose/messengercompose.ftl
index cc4185f0ad0bed7ae16640cc2d96924dd97068f9..70c9a7cf6015bd9dbd748197007d8e22e2b26b31 100644
--- a/thunderbird-l10n/pl/localization/pl/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/pl/localization/pl/messenger/messengercompose/messengercompose.ftl
@@ -159,12 +159,76 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Pokaż pole „{ bcc-compose-address-row-label.value }” ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = { $count } odbiorców w polach Do i Kopia będzie widzieć swoje adresy. Można uniknąć ujawniania odbiorców, używając zamiast tego pola Ukryta kopia.
+to-address-row-label =
+    .value = Do
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Pole „Do”
+    .accesskey = D
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Do
+    .accesskey = D
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Do
+    .title = Pokaż pole „Do” ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kopia
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Pole „Kopia”
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kopia
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kopia
+    .title = Pokaż pole „Kopia” ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Ukryta kopia
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Pole „Ukryta kopia”
+    .accesskey = U
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Ukryta kopia
+    .accesskey = U
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Ukryta kopia
+    .title = Pokaż pole „Ukryta kopia” ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Pozostałe pola adresowania
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Wiadomość ma publicznego odbiorcę. Można uniknąć ujawniania odbiorców, używając zamiast tego pola Ukryta kopia.
+        [few] { $count } odbiorców w polach Do i Kopia będzie widzieć swoje adresy. Można uniknąć ujawniania odbiorców, używając zamiast tego pola Ukryta kopia.
+       *[many] { $count } odbiorców w polach Do i Kopia będzie widzieć swoje adresy. Można uniknąć ujawniania odbiorców, używając zamiast tego pola Ukryta kopia.
+    }
 many-public-recipients-bcc =
     .label = Użyj pola Ukryta kopia
     .accesskey = U
 many-public-recipients-ignore =
     .label = Ujawnij odbiorców
     .accesskey = w
+many-public-recipients-prompt-title = Za dużo publicznych odbiorców
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Wiadomość ma publicznego odbiorcę. Może to budzić obawy dotyczące prywatności. Można tego uniknąć, przenosząc odbiorcę z pól Do/Kopia do pola Ukryta kopia.
+        [few] Wiadomość ma { $count } publicznych odbiorców, którzy będą mogli widzieć swoje adresy. Może to budzić obawy dotyczące prywatności. Można uniknąć ujawniania odbiorców, przenosząc ich z pól Do/Kopia do pola Ukryta kopia.
+       *[many] Wiadomość ma { $count } publicznych odbiorców, którzy będą mogli widzieć swoje adresy. Może to budzić obawy dotyczące prywatności. Można uniknąć ujawniania odbiorców, przenosząc ich z pól Do/Kopia do pola Ukryta kopia.
+    }
+many-public-recipients-prompt-cancel = Anuluj wysyłanie
+many-public-recipients-prompt-send = Wyślij mimo to
 
 ## Notifications
 
diff --git a/thunderbird-l10n/pl/localization/pl/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/pl/localization/pl/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pl/localization/pl/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pl/localization/pl/toolkit/global/textActions.ftl b/thunderbird-l10n/pl/localization/pl/toolkit/global/textActions.ftl
index 6fc27816a60a812f66a37c8362b22b462ff08dda..04ea83807c4faa6b386915a51620041d14879ffe 100644
--- a/thunderbird-l10n/pl/localization/pl/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/pl/localization/pl/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Cofnij
     .accesskey = C
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Ponów
     .accesskey = P
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Wytnij
     .accesskey = W
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopiuj
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Wklej
     .accesskey = e
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Usuń
     .accesskey = U
-
 text-action-select-all =
     .label = Zaznacz wszystko
     .accesskey = a
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Brak sugestii
+text-action-spell-add-to-dictionary =
+    .label = Dodaj do słownika
+    .accesskey = D
+text-action-spell-undo-add-to-dictionary =
+    .label = Cofnij dodanie do słownika
+    .accesskey = o
+text-action-spell-check-toggle =
+    .label = Sprawdzanie pisowni
+    .accesskey = S
+text-action-spell-add-dictionaries =
+    .label = Dodaj słowniki…
+    .accesskey = o
+text-action-spell-dictionaries =
+    .label = Języki
+    .accesskey = J
diff --git a/thunderbird-l10n/pl/localization/pl/toolkit/intl/languageNames.ftl b/thunderbird-l10n/pl/localization/pl/toolkit/intl/languageNames.ftl
index 8ec07fceec186bcca8c28f8a7d16fc6eefd282ce..4562bfadb69c6677a93db305ee7ec97c1877b25e 100644
--- a/thunderbird-l10n/pl/localization/pl/toolkit/intl/languageNames.ftl
+++ b/thunderbird-l10n/pl/localization/pl/toolkit/intl/languageNames.ftl
@@ -78,7 +78,7 @@ language-name-hy = Ormiański
 language-name-hz = Herero
 language-name-ia = Interlingua
 language-name-id = Indonezyjski
-language-name-ie = Interlingua
+language-name-ie = Interlingue
 language-name-ig = Igbo
 language-name-ii = Syczuański
 language-name-ik = Inupiak
diff --git a/thunderbird-l10n/pl/manifest.json b/thunderbird-l10n/pl/manifest.json
index 253fcddb902527e6fc99c15db1ee6c92b74fe78f..65de5e02e267d00a710b5ddd6d70c36bd640c15e 100644
--- a/thunderbird-l10n/pl/manifest.json
+++ b/thunderbird-l10n/pl/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Polski Language Pack",
   "description": "Language pack for Thunderbird for pl",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "pl": {
-      "version": "20210815112549",
+      "version": "20210831122322",
       "chrome_resources": {
         "alerts": "chrome/pl/locale/pl/alerts/",
         "autoconfig": "chrome/pl/locale/pl/autoconfig/",
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/calendar/calendar.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/calendar/calendar.properties
index 51ed1252e9758c05d911a76a6bbeac10e023c835..14afb368dbd92383522fad982e006a5610e8f9b9 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/calendar/calendar.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/calendar/calendar.properties
@@ -532,7 +532,7 @@ errorWriting2=Ocorreu um erro ao escrever na agenda %1$S! Veja mais informaçõe
 
 # LOCALIZATION NOTE (errorWritingDetails):
 # This will be displayed in the detail section of the error dialog
-errorWritingDetails=Se está vendo esta mensagem depois de silenciar ou dispensar um lembrete e isso é de uma agenda em que você não quer adicionar ou editar eventos, pode marcar esta agenda como somente-leitura para evitar essa mensagem no futuro. Para isso, acesse as propriedades da agenda clicando com o botão direito nesta agenda na lista, no modo de agenda ou de tarefas.
+errorWritingDetails=Se está vendo esta mensagem após silenciar ou dispensar um lembrete de uma agenda em que você não quer adicionar ou editar eventos, pode marcar a agenda como somente-leitura para evitar que a mensagem volte a aparecer. Para fazer isso, acesse as propriedades da agenda clicando com o botão direito na agenda na lista, na visão de agenda ou de tarefas.
 
 # LOCALIZATION NOTE (tooltipCalendarDisabled):
 # used for an alert-message like 'The calendar Home is momentarily not available'
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/chat/irc.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/chat/irc.properties
index 6c211f5e97da8e3a7f3030cfab970f917dd82d1b..90dc381ab0c1565981e5beb7eb4192751ab48024 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/chat/irc.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/chat/irc.properties
@@ -58,7 +58,7 @@ command.join=%S &lt;canal1&gt;[ &lt;chave1&gt;][&lt;canal2&gt;[ &lt;chave2&gt;]]
 command.kick=%S &lt;apelido&gt; [&lt;mensagem&gt;]: remove alguém de um canal. Você precisa ser um operador de canal para fazer isso.
 command.list=%S: Exibe uma lista das salas de conversa na rede. Atenção, alguns servidores podem te desconectar por fazer isso.
 command.memoserv=%S &lt;comando&gt;: envia um comando para MemoServ.
-command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;mode&gt;]: Verifica, define ou remove modo de usuário.
+command.modeUser2=%S &lt;apelido&gt; [(+|-)&lt;modo&gt;]: Obtém, define ou remove um modo de usuário.
 command.modeChannel2=%S [&lt;channel&gt;] [(+|-)&lt;new mode&gt; [&lt;parameter&gt;][,&lt;parameter&gt;]*]: Verifica, define ou remove modo do Canal.
 command.msg=%S &lt;apelido&gt; &lt;mensagem&gt;: envia uma mensagem privada ao usuário (em vez de para um canal).
 command.nick=%S &lt;novo apelido&gt;: modifica o seu apelido.
@@ -72,7 +72,7 @@ command.quit=%S &lt;mensagem&gt;: desconecta do servidor com uma mensagem opcion
 command.quote=%S &lt;comando&gt;: envia um comando sem processamento para o servidor.
 command.time=%S: exibe a hora local do servidor IRC.
 command.topic=%S [&lt;novo tópico&gt;]: define o tópico deste canal.
-command.umode=%S (+|-)&lt;novo modo&gt;: define ou não define um modo de usuário.
+command.umode=%S (+|-)&lt;novo modo&gt;: Define ou remove um modo de usuário.
 command.version=%S &lt;apelido&gt;: solicita a versão do cliente de um usuário.
 command.voice=%S &lt;apelido1&gt;[,&lt;apelido2&gt;]*: concede o status de voz do canal para alguém. Você precisa ser um operador de canal para fazer isso.
 command.whois2=%S &lt;apelido&gt;: obtém informações sobre um usuário.
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/global/layout/htmlparser.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/global/layout/htmlparser.properties
index 80b2600fc2e6948d04b90842f5eda19640951ab3..c53a9adb060cd7e722938df49ce70a6e80889a14 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Fim de arquivo dentro do identificador de sistema.
 errExpectedSystemId=Esperado identificador de sistema mas o doctype foi fechado.
 errMissingSpaceBeforeDoctypeName=Falta de espaço antes do nome do doctype.
 errHyphenHyphenBang=“--!” encontrado em um comentário.
+errNestedComment=Apareceu “<!--” dentro de um comentário. Causa provável: comentário aninhado (não permitido).
 errNcrZero=Referência a caractere expandiu-se para zero.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Sem espaço entre a palavra-chave “SYSTEM” do doctype e as aspas.
 errNoSpaceBetweenPublicAndSystemIds=Não há espaço entre os identificadores público e de sistema do doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Elementos não fechados na pilha.
 errEndTagDidNotMatchCurrentOpenElement=Tag de fechamento “%1$S” não corresponde ao nome do elemento aberto atual (“%2$S”).
 errEndTagViolatesNestingRules=Tag de fechamento “%1$S” viola as regras de aninhamento.
 errEndWithUnclosedElements=Tag de fechamento de “%1$S” encontrada, mas havia elementos não fechados.
+errListUnclosedStartTags=Elemento ou elementos não fechados.
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/feed-subscriptions.dtd b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/feed-subscriptions.dtd
index 7705484ecb3c7ed99ae178c39c7083c4edbdb87f..228b15d11d95353ca7ce9c29e09e0acb43eba931 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/feed-subscriptions.dtd
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/feed-subscriptions.dtd
@@ -19,7 +19,7 @@
 <!ENTITY feedFolder.accesskey        "r">
 
 <!-- Account Settings and Subscription Dialog -->
-<!ENTITY biffStart.label             "Verificar por novos artigos a cada ">
+<!ENTITY biffStart.label             "Verificar se há novos artigos a cada ">
 <!ENTITY biffStart.accesskey         "k">
 <!ENTITY biffMinutes.label           "minutos">
 <!ENTITY biffMinutes.accesskey       "n">
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/newsblog.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/newsblog.properties
index e9c8948e5b6071c1a05b5d887d01ed2354bd1188..b9690de449dbd396b5b6478ad620d651df217443 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/newsblog.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger-newsblog/newsblog.properties
@@ -65,7 +65,7 @@ subscribe-gettingFeedItems=Recebendo itens do RSS (%S de %S)…
 
 newsblog-noNewArticlesForFeed=Não há novos itens neste RSS.
 ## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
-newsblog-networkError=%S não foi encontrado. Por favor, verifique o nome e tente de novo.
+newsblog-networkError=%S não foi encontrado. Verifique o nome e tente novamente.
 ## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
 newsblog-feedNotValid=%S não é um RSS válido.
 ## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/imapMsgs.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/imapMsgs.properties
index 3d3c57a66f268fd3ababfb36c02f5fb96e20bb8e..035e6d99bff90a0ffd75b5e00a837d391002057a 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/imapMsgs.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/imapMsgs.properties
@@ -235,13 +235,13 @@ imapDeleteFolderDialogTitle=Excluir pasta
 imapDeleteFolderButtonLabel=E&xcluir pasta
 
 # LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
-imapAuthChangeEncryptToPlainSSL=O servidor IMAP %S parece não oferece suporte a senhas criptografadas. Se você acabou de criar esta conta, experimente alterar o 'Modo de autenticação' para 'Senha normal' em 'Configuração de contas | Configuração de servidor'. Se estava funcionando e começou a dar erro, entre em contato com seu administrador ou provedor de email.
+imapAuthChangeEncryptToPlainSSL=O servidor IMAP %S parece não oferece suporte a senhas criptografadas. Se você acabou de criar esta conta, experimente alterar o 'Método de autenticação' para 'Senha normal' em 'Configurações da conta | Configuração de servidor'. Se estava funcionando e começou a dar erro, entre em contato com seu administrador ou provedor de email.
 
 # LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
-imapAuthChangePlainToEncrypt=O servidor IMAP %S não permite senhas sem criptografia. Experimente alterar o 'Modo de autenticação' para 'Senha criptografada' em 'Configurar contas | Servidor'.
+imapAuthChangePlainToEncrypt=O servidor IMAP %S não permite senhas sem criptografia. Experimente alterar o 'Método de autenticação' para 'Senha criptografada' em 'Configurações da conta | Servidor'.
 
 # LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
-imapAuthChangeEncryptToPlainNoSSL=O servidor IMAP %S parece não oferecer suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Modo de autenticação' para 'Senha, transmitida de forma não segura' em 'Configurar contas | Servidor'. Se esta configuração funcionava e começou a dar erro, é um cenário comum em que alguém pode ter roubado sua senha.
+imapAuthChangeEncryptToPlainNoSSL=O servidor IMAP %S parece não oferecer suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Método de autenticação' para 'Senha, transmitida de forma não segura' em 'Configurações da conta | Servidor'. Se esta configuração funcionava e começou a dar erro, é um cenário comum em que alguém pode ter roubado sua senha.
 
 # LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
 imapAuthMechNotSupported=O servidor IMAP %S não oferece suporte ao método de autenticação selecionado. Altere o 'Método de autenticação' em 'Configuração da conta | Servidor'.
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/localMsgs.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/localMsgs.properties
index 7d50ed0b9b70d7c89cef9ab637dea3a4f8d98b5e..a6dd759581adc5a8f0bbf6d0ac2226ddef778b19 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/localMsgs.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/localMsgs.properties
@@ -128,7 +128,7 @@ pop3ServerDoesNotSupportUidlEtc=O servidor de email POP3 (%S) não oferece supor
 # Do not translate "TOP"
 pop3ServerDoesNotSupportTopCommand=O servidor de email POP3 (%S) não oferece suporte ao comando TOP. Sem suporte do servidor a este comando, não conseguimos implementar a preferência ``Tamanho máximo da mensagem'' ou ``Receber somente os cabeçalhos''.  Esta opção foi desativada e as mensagens serão baixadas independentemente do tamanho.
 
-nsErrorCouldNotConnectViaTls=Não foi possível estabelecer uma conexão TLS para o servidor POP3. O servidor pode estar desligado ou estar incorretamente configurado. Verifique se as configurações do servidor estão corretas e tente novamente.
+nsErrorCouldNotConnectViaTls=Não foi possível estabelecer uma conexão TLS com o servidor POP3. O servidor pode estar desligado ou estar incorretamente configurado. Verifique se as configurações do servidor estão corretas e tente novamente.
 
 # LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
 # "%S" is the the name of the folder.
@@ -140,14 +140,14 @@ pop3DeleteFolderButtonLabel=E&xcluir pasta
 
 pop3AuthInternalError=Erro interno durante a autenticação do servidor POP3. Este é um erro interno e inesperado da aplicação, relate-o como uma falha.
 
-pop3AuthChangeEncryptToPlainNoSSL=O servidor POP3 parece não oferece suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Modo de autenticação' para 'Senha, transmitida de forma não segura' em 'Configurar contas | Servidor'. Se esta configuração funcionava e começou a dar erro, é um cenário comum em que alguém pode ter roubado sua senha.
+pop3AuthChangeEncryptToPlainNoSSL=O servidor POP3 parece não oferece suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Método de autenticação' para 'Senha, transmitida de forma não segura' em 'Configurações da conta | Servidor'. Se esta configuração funcionava e começou a dar erro, é um cenário comum em que alguém pode ter roubado sua senha.
 
-pop3AuthChangeEncryptToPlainSSL=O servidor POP3 parece não oferecer suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Modo de autenticação' para 'Senha normal' em 'Configurar contas | Servidor'. Se esta configuração funcionava e começou a dar erro, contate o provedor de serviço ou o administrador de email.
+pop3AuthChangeEncryptToPlainSSL=O servidor POP3 parece não oferecer suporte a senhas criptografadas. Se você acabou de configurar esta conta, experimente alterar o 'Método de autenticação' para 'Senha normal' em 'Configurações da conta | Servidor'. Se esta configuração funcionava e começou a dar erro, contate o provedor de serviço ou o administrador de email.
 
-pop3AuthChangePlainToEncrypt=Este servidor POP3 não permite senhas não criptografadas. Experimente alterar o 'Modo de autenticação' para 'Senha criptografada' em 'Configurar contas | Servidor'.
+pop3AuthChangePlainToEncrypt=Este servidor POP3 não permite senhas não criptografadas. Experimente alterar o 'Método de autenticação' para 'Senha criptografada' em 'Configurações da conta | Servidor'.
 
 # Authentication server caps and pref don't match
-pop3AuthMechNotSupported=O servidor não oferece suporte ao método de autenticação selecionado. Altere o 'Método de autenticação' em 'Configuração da conta | Servidor'.
+pop3AuthMechNotSupported=O servidor não oferece suporte ao método de autenticação selecionado. Altere o 'Método de autenticação' em 'Configurações da conta | Servidor'.
 
 # Status - Could not log in to GSSAPI, and it was the only method
 pop3GssapiFailure=O ticket Kerberos/GSSAPI não foi aceito pelo servidor POP. Verifique se você está identificado no domínio Kerberos/GSSAPI.
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messenger.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messenger.properties
index f7decc5b0d8a3e4975a81281ee59efee5603daa0..f126529b36df297db8f62f696ff7bf4b147005d4 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messenger.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messenger.properties
@@ -91,7 +91,7 @@ filterFolderHdrAddFailed=As mensagens não foram filtradas para a pasta '%S' por
 filterFolderWriteFailed=As mensagens não puderam ser filtradas para a pasta '%S' porque houve falha de escrita na pasta. Verifique se há espaço suficiente em disco e se você tem privilégio de escrita no sistema de arquivos, depois tente novamente.
 copyMsgWriteFailed=As mensagens não puderam ser movidas ou copiadas para a pasta “%S” porque houve falha ao escrever na pasta. Para liberar espaço em disco, abra o menu 'Arquivo', selecione 'Esvaziar lixeira', depois 'Compactar pastas' e tente novamente.
 cantMoveMsgWOBodyOffline=Enquanto estiver no modo desconectado não é possível mover ou copiar mensagens que não foram recebidas para uso desconectado. Na janela de email, abra o menu Arquivo, escolha Desconectado, desmarque a opção Trabalhar desconectado e tente novamente.
-operationFailedFolderBusy=A operação falhou porque outra operação está usando a pasta. Por favor, aguarde pela sua conclusão e tente de novo.
+operationFailedFolderBusy=A operação falhou porque outra operação está usando a pasta. Aguarde a conclusão daquela operação e tente novamente.
 folderRenameFailed=A pasta não pôde ser renomeada. Talvez a pasta esteja sendo reprocessada ou o novo nome não seja um nome de pasta válido.
 # LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
 verboseFolderFormat=%1$S (conta %2$S)
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messengercompose/composeMsgs.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messengercompose/composeMsgs.properties
index 4ef64e5621d3be84464d5580e0ab3198f6f98ba1..aea9fd158b35860a501204c95d9d96c1b371515e 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messengercompose/composeMsgs.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/messengercompose/composeMsgs.properties
@@ -99,22 +99,22 @@ smtpSendInterrupted=A mensagem não foi enviada porque a conexão com o servidor
 smtpSendTimeout=A mensagem não foi enviada porque a conexão com o servidor de envio (SMTP) %S expirou. Tente novamente.
 
 ## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
-smtpSendFailedUnknownReason=A mensagem não foi enviada através do servidor de envio (SMTP) %S por uma razão desconhecida. Por favor, verifique se as configurações do servidor de envio (SMTP) estão corretos e tente novamente.
+smtpSendFailedUnknownReason=A mensagem não foi enviada através do servidor de envio (SMTP) %S por motivo desconhecido. Verifique se as configurações do servidor de envio (SMTP) estão corretos e tente novamente.
 
 # LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
-smtpHintAuthEncryptToPlainNoSsl=Parece que o servidor envio (SMTP) %S não tem suporte a senhas criptografadas. Se acabou de configurar a conta, tente mudar para 'Senha, envio sem segurança' como 'Modo de autenticação' nas 'Configurações da conta | Configurações do servidor'. Se funcionava e subitamente deixou de funcionar, pode ser que alguém tenha de apoderado da sua senha.
+smtpHintAuthEncryptToPlainNoSsl=Parece que o servidor envio (SMTP) %S não tem suporte a senhas criptografadas. Se acabou de configurar a conta, tente mudar para 'Senha, envio sem segurança' como 'Método de autenticação' nas 'Configurações da conta | Configurações do servidor'. Se funcionava e subitamente deixou de funcionar, pode ser que alguém tenha de apoderado da sua senha.
 
 # LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
-smtpHintAuthEncryptToPlainSsl=Parece que o servidor de envio (SMTP) %S não tem suporte a senhas criptografadas. Se acabou de configurar a conta, tente mudar para 'Senha normal' como 'Modo de autenticação' nas 'Configurações da conta | Configurações do servidor'.
+smtpHintAuthEncryptToPlainSsl=Parece que o servidor de envio (SMTP) %S não tem suporte a senhas criptografadas. Se você acabou de configurar a conta, experimente mudar o 'Método de autenticação' para 'Senha normal' nas 'Configurações da conta | Servidor de envio (SMTP)'.
 
 # LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
-smtpHintAuthPlainToEncrypt=O servidor de envio (SMTP) %S não permite senhas em texto puro. Por favor, tente alterar o 'Modo de autenticação' em 'Configurações de Conta | Servidor de envio (SMTP)' para 'Senha criptografada'.
+smtpHintAuthPlainToEncrypt=O servidor de envio (SMTP) %S não permite senhas em texto puro. Experimente alterar o 'Método de autenticação' em 'Configurações da conta | Servidor de envio (SMTP)' para 'Senha criptografada'.
 
 # LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
-smtpAuthFailure=Não foi possível autenticar-se no servidor de envio (SMTP) %S. Por favor, verifique sua senha e a opção 'Modo de autenticação' em 'Configurar contas | Servidor de envio (SMTP)'.
+smtpAuthFailure=Não foi possível autenticar no servidor de envio (SMTP) %S. Verifique sua senha e a opção 'Método de autenticação' em 'Configurações da conta | Servidor de envio (SMTP)'.
 
 # LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
-smtpAuthGssapi=O ticket Kerberos/GSSAPI não foi aceito pelo servidor de envio (SMTP) %S. Por favor verifique se tem acesso no domínio Kerberos/GSSAPI.
+smtpAuthGssapi=O ticket Kerberos/GSSAPI não foi aceito pelo servidor de envio (SMTP) %S. Verifique se você está no domínio Kerberos/GSSAPI.
 
 # LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
 smtpAuthMechNotSupported=O servidor de envio (SMTP) %S não oferece suporte ao método de autenticação selecionado. Altere o 'Método de autenticação' em 'Configuração da conta | Servidor de envio (SMTP)'.
@@ -137,7 +137,7 @@ discardButtonLabel=&Descartar alterações
 ## generics string
 defaultSubject=(sem assunto)
 chooseFileToAttach=Anexar arquivos
-genericFailureExplanation=Verifique se as suas configurações da conta estão corretas e tente novamente.
+genericFailureExplanation=Verifique se as configurações da sua conta estão corretas e tente novamente.
 
 ## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
 undisclosedRecipients=destinatarios-nao-revelados
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/migration/migration.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/migration/migration.properties
index faeb9ebcf4387d5ce301aa9bd25d9de734ecaed7..83e46186e9abf8c5febbcedc884698ff2a3b97b0 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/migration/migration.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/migration/migration.properties
@@ -9,9 +9,9 @@ profileName_format=%S %S
 
 1_thunderbird=Preferências
 
-2_seamonkey=Configurações de contas
+2_seamonkey=Configurações da conta
 2_thunderbird=Configurações da conta
-2_outlook=Configurações de contas
+2_outlook=Configurações da conta
 
 4_seamonkey=Catálogos de endereços
 4_thunderbird=Catálogos de endereços
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/newmailaccount/accountProvisioner.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/newmailaccount/accountProvisioner.properties
index f1fd1dbe7a9805a74d7125bb43d444820e9bbf6c..690d91a749115d46563c7ac9ebf6f089e68f7a13 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/newmailaccount/accountProvisioner.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/newmailaccount/accountProvisioner.properties
@@ -29,4 +29,4 @@ tos=Termos do serviço
 # LOCALIZATION NOTE (searchEngineDesc):
 #   %S will be the selected search engine.
 searchEngineDesc=Usar %S como meu mecanismo de pesquisa padrão
-cannotConnect=Desculpe - não foi possível comunicar-se com nosso servidor de inscrições. Por favor, verifique sua conexão.
+cannotConnect=Desculpe, não foi possível comunicar com nosso servidor de inscrições. Verifique sua conexão.
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/news.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/news.properties
index 37d86bbcf45290d11648ea50eeba6893174fb7e1..2d6a9d224f7b3f03d539e3a6bc4927a8bc7bd003 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/news.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/news.properties
@@ -8,10 +8,10 @@ cancelConfirm=Deseja cancelar esta mensagem?
 messageCancelled=Mensagem cancelada.
 enterUserPassTitle=Solicitado nome de usuário e senha do servidor de news
 # LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
-enterUserPassServer=Por favor, forneça um nome de usuário e senha para %S:
+enterUserPassServer=Forneça um nome de usuário e senha de %S:
 # LOCALIZATION NOTE (enterUserPassGroup): %1$S is a specific newsgroup to set
 # the password for; %2$S is the server from which the newsgroup is accessed
-enterUserPassGroup=Por favor, forneça um nome de usuário e senha para %1$S em %2$S:
+enterUserPassGroup=Forneça um nome de usuário e senha de %1$S em %2$S:
 okButtonText=OK
 
 noNewMessages=Não há novas mensagens no servidor
@@ -48,7 +48,7 @@ autoSubscribeText=Deseja inscrever %1$S?
 # Error - NNTP authinfo failure
 ## @name NNTP_AUTH_FAILED
 ## @loc None
--260=Ocorreu um erro de autorização. Por favor, forneça seu nome e/ou senha de novo.
+-260=Ocorreu um erro de autorização. Forneça seu nome e/ou senha novamente.
 
 # Error - TCP error
 ## @name TCP_ERROR
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/prefs.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/prefs.properties
index 0491ccf1adb90d09362654a2c6256ec57b2697ba..0c5c9f39ab38b38c2b2c20c5e25ab6d19081a459 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/prefs.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/prefs.properties
@@ -5,11 +5,11 @@
 # The following are used by the Account Wizard
 #
 enterValidEmail=Digite um endereço de email válido.
-accountNameExists=Uma conta com este nome já existe. Por favor, forneça um nome diferente.
+accountNameExists=Já existe uma conta com este nome. Digite um nome diferente.
 accountNameEmpty=O nome da conta não pode ficar em branco.
-modifiedAccountExists=Uma conta com este nome e servidor já existe. Por favor, forneça um nome de usuário e/ou nome do servidor diferentes.
+modifiedAccountExists=Já existe uma conta com este nome de usuário e nome de servidor. Digite outro nome de usuário e/ou nome de servidor.
 userNameChanged=Seu nome de usuário foi atualizado. Pode também ser necessário que você atualize seu endereço de email e/ou nome de usuário associado a esta conta.
-serverNameChanged=O nome do servidor foi modificado. Por favor, verifique se as pastas usadas por filtros existem no novo servidor.
+serverNameChanged=O nome do servidor foi alterado. Verifique se as pastas usadas por filtros existem no novo servidor.
 # LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
 junkSettingsBroken=As configurações de spam da conta "%1$S" parecem ter um problema. Quer revisar antes de salvar as configurações da conta?
 # LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
@@ -17,9 +17,9 @@ localDirectoryChanged=O %1$S precisa reiniciar agora para aplicar a alteração
 localDirectoryRestart=Reiniciar
 userNameEmpty=O nome do usuário não pode ficar em branco.
 # LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
-localDirectoryInvalid=O diretório local "%1$S" é inválido. Por favor, escolha um diretório diferente.
+localDirectoryInvalid=O caminho de diretório local "%1$S" é inválido. Escolha outro diretório.
 # LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
-localDirectoryNotAllowed=O diretório local "%1$S" não é adequado para o armazenamento de mensagens. Por favor, escolha um diretório diferente.
+localDirectoryNotAllowed=O caminho de diretório local "%1$S" não é adequado para armazenamento de mensagens. Escolha outro diretório.
 # if the user chooses to cancel the wizard when no accounts are there throw a message
 # LOCALIZATION NOTE (cancelWizard)
 # do not localize "\n\n"
@@ -28,7 +28,7 @@ accountWizard=Assistente de contas
 WizardExit=Sair
 WizardContinue=Cancelar
 # when the wizard already has a domain (Should we say something different?)
-enterValidServerName=Por favor, forneça um nome de servidor válido.
+enterValidServerName=Digite um nome de servidor válido.
 failedRemoveAccount=Falha ao remover esta conta.
 #LOCALIZATION NOTE: accountName: %1$S is server name, %2$S is user name
 accountName=%1$S - %2$S
diff --git a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/subscribe.properties b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/subscribe.properties
index 30a6eadb23fc6b1cfe237271bd5616b3c788f19f..1e29acafe0d58b828d8edf446c8ade748598dc19 100644
--- a/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/subscribe.properties
+++ b/thunderbird-l10n/pt-BR/chrome/pt-BR/locale/pt-BR/messenger/subscribe.properties
@@ -8,6 +8,6 @@ currentListTab-nntp.label=Lista atual dos grupos
 currentListTab-nntp.accesskey=L
 currentListTab-imap.label=Lista de pastas
 currentListTab-imap.accesskey=L
-pleaseWaitString=Por favor, aguarde…
+pleaseWaitString=Aguarde…
 offlineState=Você está desconectado. Os itens não puderam ser recuperados do servidor.
 errorPopulating=Erro ao recuperar itens do servidor.
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..d49cf84fac6e43ba1988f66d9f20a1555f9702fe
--- /dev/null
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Excluir evento
+       *[other] Excluir eventos
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Quer mesmo excluir este evento?
+       *[other] Quer mesmo excluir esses { $count } eventos?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Excluir tarefa
+       *[other] Excluir tarefas
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Quer mesmo excluir esta tarefa?
+       *[other] Quer mesmo excluir essas { $count } tarefas?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Excluir item
+       *[other] Excluir itens
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Quer mesmo excluir este item?
+       *[other] Quer mesmo excluir esses { $count } itens?
+    }
+calendar-delete-prompt-disable-message = Não perguntar novamente.
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/preferences.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/preferences.ftl
index 342f264383a8e381ba4aea545f2ce6c66cff78c7..86a62c1bf4b83951dc69797416633503169c9ec1 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/preferences.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Editar eventos e tarefas em uma nova aba ao invés de em uma nova janela.
     .accesskey = t
+prompt-delete-label =
+    .label = Perguntar antes de excluir eventos e tarefas.
+    .accesskey = V
 accessibility-legend = Acessibilidade
 accessibility-colors-label =
     .label = Otimizar as cores para acessibilidade
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountCentral.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountCentral.ftl
index af1f859e43b8a8eb2d3e3eb1b5432e237c8ba851..721323673647b3849a9dc696a4063f03afc1248b 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountCentral.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountCentral.ftl
@@ -4,61 +4,45 @@
 
 account-central-title = Boas-vindas ao { -brand-full-name }
 account-settings = Configurações da conta
-
 #   $accounts (Number) - the number of configured accounts
 setup-title = Escolha o que configurar
 about-title = Sobre o { -brand-full-name }
 resources-title = Recursos
-
 release-notes =
     .title = Sobre o { -brand-full-name }
-
 email-label = Email
     .aria-label = Conectar à sua conta de email já existente
 email-description = O { -brand-short-name } permite conectar-se à sua conta de email existente, para ler seus emails de maneira conveniente e eficiente, dentro do aplicativo.
-
 calendar-label = Agenda
     .aria-label = Criar uma nova agenda
 calendar-description = O { -brand-short-name } permite gerenciar eventos e manter você organizado. A conexão com uma agenda remota mantém todos os seus eventos sincronizados em todos os seus dispositivos.
-
 chat-label = Conversa
     .aria-label = Conectar-se à sua conta de conversas
 chat-description = O { -brand-short-name } permite conectar-se a várias contas de mensagens instantâneas, oferecendo suporte a várias plataformas.
-
 filelink-label = Filelink
     .aria-label = Configurar anexos online
 filelink-description = O { -brand-short-name } permite configurar uma conveniente conta na nuvem de links de arquivos para enviar anexos grandes com facilidade.
-
 addressbook-label = Catálogo de endereços
     .aria-label = Criar um novo catálogo de endereços
 addressbook-description = O { -brand-short-name } permite organizar todos os seus contatos em um catálogo de endereços. Você também pode se conectar a um catálogo de endereços remoto para manter todos os seus contatos sincronizados.
-
 feeds-label = RSS
     .aria-label = Conectar-se a RSS
 feeds-description = O { -brand-short-name } permite conectar-se a feeds RSS/Atom para obter notícias e atualizações de todos os lados.
-
 newsgroups-label = Grupos de notícias
     .aria-label = Conectar a um grupos de notícias
 newsgroups-description = O { -brand-short-name } permite conectar-se a todos os grupos de notícias que deseja.
-
 import-title = Importar de outro programa
 import-paragraph = O { -brand-short-name } permite importar mensagens de email, itens do catálogo de endereços, assinaturas de feeds, preferências e/ou filtros de outros programas de email e de formatos comuns de catálogo de endereços.
-
 import-label = Importar
     .aria-label = Importar dados de outros programas
-
 about-paragraph = O Thunderbird é o principal cliente de email e agenda de código aberto, multiplataforma e livre para uso comercial e pessoal. Queremos que ele permaneça seguro e melhore ainda mais. Uma doação nos permitirá contratar mais desenvolvedores, pagar a infraestrutura e continuar a aprimorar.
-
 about-paragraph-2 = <b>O Thunderbird é financiado por usuários como você! Se gosta de usar o Thunderbird, considere fazer uma doação.</b> A melhor maneira de garantir que o Thunderbird permaneça disponível é
 about-donation = fazer uma doação
-
 about-paragraph-consider-donation = <b>O Thunderbird é financiado por usuários como você! Se você gosta do Thunderbird, considere fazer uma doação.</b> A melhor maneira de garantir que o Thunderbird continue disponível é <a data-l10n-name="donation-link">fazer uma doação</a>.
-
 explore-link = Explorar recursos
 support-link = Suporte
 involved-link = Envolva-se
 developer-link = Documentação de desenvolvimento
-
 read = Ler mensagens
 compose = Escrever uma nova mensagem
 search = Pesquisar mensagens
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountcreation/accountSetup.ftl
index 293145426047c89d7eded7827f66783f476574e0..731e0123378ec1b5cd28c282af92df157b68ea4f 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/accountcreation/accountSetup.ftl
@@ -39,6 +39,10 @@ account-provisioner-button = Obter um novo endereço de email
     .accesskey = O
 account-setup-password-toggle =
     .title = Exibir/ocultar senha
+account-setup-password-toggle-show =
+    .title = Exibir senha
+account-setup-password-toggle-hide =
+    .title = Ocultar senha
 account-setup-remember-password = Memorizar senha
     .accesskey = M
 account-setup-exchange-label = Sua conta
@@ -207,6 +211,17 @@ exchange-dialog-question = O { -brand-short-name } encontrou informações de co
 exchange-dialog-confirm-button = Entrar
 exchange-dialog-cancel-button = Cancelar
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Nenhuma conta de email configurada
+exit-dialog-description = Tem certeza que quer cancelar o processo de configuração? O { -brand-short-name } ainda pode ser usado sem nenhuma conta de email, mas muitos recursos não estarão disponíveis.
+account-setup-no-account-checkbox = Usar o { -brand-short-name } sem contas de email
+    .accesskey = U
+exit-dialog-cancel-button = Continuar a configuração
+    .accesskey = C
+exit-dialog-confirm-button = Sair da configuração
+    .accesskey = S
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Erro ao criar conta
@@ -222,7 +237,7 @@ account-setup-addon-no-protocol = Este servidor de email infelizmente não ofere
 
 ## Success view
 
-account-setup-settings-button = Configurações de contas
+account-setup-settings-button = Configurações da conta
 account-setup-encryption-button = Criptografia de ponta a ponta
 account-setup-signature-button = Adicionar uma assinatura
 account-setup-dictionaries-button = Baixar dicionários
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/addressbook/aboutAddressBook.ftl
index be4ac9bb2edb8edbc97469f4ac97f4522e77db90..5776f7a7bb9894394e17e4f5390dd53ab317ac68 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Todos os catálogos de endereços
-
 about-addressbook-books-context-properties =
     .label = Propriedades
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Excluir
 about-addressbook-books-context-remove =
     .label = Remover
-
 about-addressbook-confirm-delete-book-title = Excluir catálogo de endereços
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Pesquisar { $name }
 about-addressbook-search-all =
     .placeholder = Pesquisar em todos os catálogos de endereços
-
 about-addressbook-sort-button =
     .title = Alterar a ordem da lista
-
 about-addressbook-name-format-display =
     .label = Nome de exibição
 about-addressbook-name-format-firstlast =
     .label = Primeiro Último
 about-addressbook-name-format-lastfirst =
     .label = Último, Primeiro
-
 about-addressbook-sort-name-ascending =
     .label = Ordenar por nome (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Ordenar por endereço de email (A > Z)
 about-addressbook-sort-email-descending =
     .label = Ordenar por endereço de email (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Escrever
 about-addressbook-confirm-delete-mixed-title = Excluir contatos e listas
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Editar
 about-addressbook-cancel-edit-contact-button = Cancelar
 about-addressbook-save-edit-contact-button = Salvar
-
 about-addressbook-details-email-addresses-header = Endereços de email
 about-addressbook-details-phone-numbers-header = Números de telefone
 about-addressbook-details-home-address-header = Endereço residencial
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/importDialog.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/importDialog.ftl
index 005ab59c19a268fc39d658e94f037edf7d9097ad..6edbc10d7e3805d250963795661bfc72d6fbc2ac 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/importDialog.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Importar emails de um diretório de perfil do Thunderbird.
-import-select-profile-dir-or-zip = Selecione um diretório de perfil ou um diretório de perfil compactado
+import-from-thunderbird-zip =
+    .label = Thunderbird (backup de perfil exportado; arquivo zip menor que 2GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (pasta de perfil)
+    .accesskey = T
 import-select-profile-zip = Selecionar um diretório de perfil compactado
+import-select-profile-dir = Selecionar um diretório de perfil
+zip-file-too-big-title = Arquivo zip grande demais
+zip-file-too-big-message = O arquivo zip selecionado tem mais de 2GB. Primeiro extraia o conteúdo, depois importe a partir da pasta onde foi extraído.
+wizardpage-failed =
+    .label = Falha na importação
+wizardpage-failed-message = A importação falhou inesperadamente; mais informações podem estar disponíveis no console de erro.
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/messengercompose/messengercompose.ftl
index bd828c65049d28d3acd0ac7f7d433471685975b5..700306c40fc8dcb3140888b45777f1da87cc83ea 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Adicionar anexo…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Adicionar anexo…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Arquivos…
     .accesskey = A
@@ -154,12 +158,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Exibir campo { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Os { $count } destinatários em Para e Cc irão ver os endereços uns dos outros. Você pode evitar revelar destinatários usando Cco.
+to-address-row-label =
+    .value = Para
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Campo Para
+    .accesskey = P
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Para
+    .accesskey = P
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Para
+    .title = Exibir o campo Para ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Cc
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Campo Cc
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Exibir campo Cc ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Cco
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Campo Cco
+    .accesskey = o
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Cco
+    .accesskey = o
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Cco
+    .title = Exibir campo Cco ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Outros campos de endereçamento a exibir
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Sua mensagem tem um destinatário público. Você pode evitar revelar destinatários usando Cco em vez de Para ou Cc.
+       *[other] Os { $count } destinatários em Para e Cc irão ver os endereços uns dos outros. Você pode evitar revelar destinatários usando Cco.
+    }
 many-public-recipients-bcc =
     .label = Mudar para Cco (com cópia oculta)
     .accesskey = u
 many-public-recipients-ignore =
     .label = Manter públicos os destinatários
     .accesskey = M
+many-public-recipients-prompt-title = Destinatários públicos demais
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Sua mensagem tem um destinatário público. Isso pode ser motivo de preocupação com privacidade. Você pode evitar movendo o destinatário de Para/Cc para Cco.
+       *[other] Sua mensagem tem { $count } destinatários públicos, que poderão ver os endereços uns dos outros. Isso pode ser motivo de preocupação com privacidade. Você pode evitar revelar destinatários movendo de Para/Cc para Cco.
+    }
+many-public-recipients-prompt-cancel = Cancelar envio
+many-public-recipients-prompt-send = Enviar assim mesmo
 
 ## Notifications
 
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/permissions.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/permissions.ftl
index 2f17946637f367cd1a8f45bfb02d27491135c651..bb43da1b578ddce90aab6dfb019fb318642a6a56 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/permissions.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/permissions.ftl
@@ -5,55 +5,41 @@
 permissions-reminder-window =
     .title = Exceções
     .style = width: 36em;
-
 window-close-key =
     .key = W
-
 permission-preferences-close-window =
     .key = w
-
 website-address-label =
     .value = Endereço do site:
     .accesskey = n
-
 block-button =
     .label = Bloquear
     .accesskey = B
-
 allow-session-button =
     .label = Excluir ao sair
     .accesskey = x
-
 allow-button =
     .label = Permitir
     .accesskey = P
-
 treehead-sitename-label =
     .label = Site
-
 treehead-status-label =
     .label = Status
-
 remove-site-button =
     .label = Remover site
     .accesskey = R
-
 remove-all-site-button =
     .label = Excluir tudo
     .accesskey = t
-
 cancel-button =
     .label = Cancelar
     .accesskey = C
-
 save-button =
     .label = Salvar alterações
     .accesskey = S
-
 permission-can-label = Permitir
 permission-can-access-first-party-label = Permitir somente a primeira festa
 permission-can-session-label = Excluir ao sair
 permission-cannot-label = Bloquear
-
-invalid-uri-message = Por favor, forneça um nome de servidor válido
+invalid-uri-message = Digite um nome de servidor válido
 invalid-uri-title = Nome de servidor inválido
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/preferences.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/preferences.ftl
index 2d5234ffe7b4b1badfe829ce3aff17ce61decf98..dd6d1767fd5c82535d1fbaea4f624d84a1323af8 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/preferences.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/messenger/preferences/preferences.ftl
@@ -562,7 +562,7 @@ primary-password-button =
     .accesskey = A
 forms-primary-pw-fips-title = Você está no momento no modo FIPS. O modo FIPS exige uma senha principal não vazia.
 forms-master-pw-fips-desc = Falha na alteração da senha
-junk-description = Defina suas configurações padrão para spam. Opções específicas para cada conta podem ser definidas em “Configurar contas”.
+junk-description = Defina suas configurações padrão de spam. Opções específicas de cada conta podem ser definidas nas configurações da conta.
 junk-label =
     .label = Ao marcar mensagens como spam:
     .accesskey = A
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..29b42f4a24bc0352251edca155dd0e5de64f64d2
--- /dev/null
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Concluir a instalação do { -brand-short-name }?
+prompt-to-install-message = Conclua esta instalação para ajudar a manter o { -brand-short-name } atualizado e evitar perda de dados. O { -brand-short-name } será adicionado à pasta Aplicativos e ao Dock.
+prompt-to-install-yes-button = Instalar
+prompt-to-install-no-button = Não instalar
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Falha na instalação do { -brand-short-name }.
+install-failed-message = Houve falha na instalação do { -brand-short-name }, mas continuará sendo executado.
diff --git a/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/textActions.ftl b/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/textActions.ftl
index 257618d45b9da435afed27dff90e395b13139ffc..4e4d928defee38b357364f8b2d613a0cbae8803d 100644
--- a/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/pt-BR/localization/pt-BR/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Desfazer
     .accesskey = D
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Refazer
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cortar
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copiar
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Colar
     .accesskey = o
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Excluir
     .accesskey = x
-
 text-action-select-all =
     .label = Selecionar tudo
     .accesskey = S
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Nenhuma sugestão de ortografia
+text-action-spell-add-to-dictionary =
+    .label = Adicionar ao dicionário
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Desfazer adicionar ao dicionário
+    .accesskey = z
+text-action-spell-check-toggle =
+    .label = Verificação ortográfica
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Adicionar dicionários…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Idiomas
+    .accesskey = I
diff --git a/thunderbird-l10n/pt-BR/manifest.json b/thunderbird-l10n/pt-BR/manifest.json
index ab180cc53de05523c70d7c2edf36495e718238b2..44e81580b3766cc4c8cb35a95488d854a6ff617c 100644
--- a/thunderbird-l10n/pt-BR/manifest.json
+++ b/thunderbird-l10n/pt-BR/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Português (pt-BR) Language Pack",
   "description": "Language pack for Thunderbird for pt-BR",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "pt-BR": {
-      "version": "20210814032800",
+      "version": "20210831183524",
       "chrome_resources": {
         "alerts": "chrome/pt-BR/locale/pt-BR/alerts/",
         "autoconfig": "chrome/pt-BR/locale/pt-BR/autoconfig/",
diff --git a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties
index 47ff6c808bf94d81a4198fb8b9a3e60b925b5bb3..767b05b5746b2d70e7e9a56bd845439439bd4837 100644
--- a/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties
+++ b/thunderbird-l10n/pt-PT/chrome/pt-PT/locale/pt-PT/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=O atributo “coords” da etiqueta <area shape="p
 TablePartRelPosWarning=O posicionamento relativo de linhas e grupos de linhas de tabelas já é suportado. Este site pode precisar de ser atualizado pois pode depender desta funcionalidade, não tendo qualquer efeito.
 ScrollLinkedEffectFound2=Este site aparenta utilizar um efeito de posicionamento scroll-linked. Isto pode não funcionar bem com o deslocamento panorâmico assíncrono; veja https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects para mais detalhes e para se juntar à discussão de ferramentas e funcionalidades relacionadas!
 
+ScrollLinkedEffectFound3=Este site aparenta utilizar um efeito de posicionamento scroll-linked. Isto pode não funcionar bem com deslocamento panorâmico assíncrono; veja https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html para mais detalhes e para se juntar à discussão de ferramentas e funcionalidades relacionadas!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
@@ -36,7 +38,6 @@ CompositorAnimationWarningTransformFrameInactive=As animações não podem ser e
 CompositorAnimationWarningTransformIsBlockedByImportantRules=A animação transform não pode ser executada no compositor porque as propriedades relacionadas à transformação são substituídas por regras !important
 CompositorAnimationWarningOpacityFrameInactive=As animações não podem ser executadas no compositor porque o frame não foi marcado ativo para a animação 'opacity'
 CompositorAnimationWarningHasRenderingObserver=A animação não pode ser executada no compositor porque o elemento tem observadores de renderização (-moz-element ou SVG clipping/masking)
-
 CompositorAnimationWarningHasCurrentColor=As animações de ‘background-color’ não podem ser executadas no compositor com o fotograma-chave ‘current-color’.
 
 ## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/exportDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl
index 6d57c620ee750a0b57adb22a66c63932e6d011c3..c94a35be564104c1c75723551f4020d1f4df9ebd 100644
--- a/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/pt-PT/localization/pt-PT/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Desfazer
     .accesskey = D
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Refazer
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cortar
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copiar
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Colar
     .accesskey = o
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Apagar
     .accesskey = A
-
 text-action-select-all =
     .label = Selecionar tudo
     .accesskey = S
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Sem sugestões ortográficas
+text-action-spell-add-to-dictionary =
+    .label = Adicionar ao dicionário
+    .accesskey = A
+text-action-spell-undo-add-to-dictionary =
+    .label = Anular adicionar ao dicionário
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Verificação ortográfica
+    .accesskey = V
+text-action-spell-add-dictionaries =
+    .label = Adicionar dicionários…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Idiomas
+    .accesskey = I
diff --git a/thunderbird-l10n/pt-PT/manifest.json b/thunderbird-l10n/pt-PT/manifest.json
index 5b18cd38b1ff198eff98087975b871a846bdcb9e..d26f2c9e788f4c671aaf84f0e2ec1ed15533dce8 100644
--- a/thunderbird-l10n/pt-PT/manifest.json
+++ b/thunderbird-l10n/pt-PT/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Português (Europeu) Language Pack",
   "description": "Language pack for Thunderbird for pt-PT",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "pt-PT": {
-      "version": "20210813141410",
+      "version": "20210831122403",
       "chrome_resources": {
         "alerts": "chrome/pt-PT/locale/pt-PT/alerts/",
         "autoconfig": "chrome/pt-PT/locale/pt-PT/autoconfig/",
diff --git a/thunderbird-l10n/rm/chrome/rm/locale/rm/global/layout/htmlparser.properties b/thunderbird-l10n/rm/chrome/rm/locale/rm/global/layout/htmlparser.properties
index 0c63f9fb8240cc5a8950afe3b10cdd0f587c235d..221616f3ba2ce4014523018547d2031506163986 100644
--- a/thunderbird-l10n/rm/chrome/rm/locale/rm/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/rm/chrome/rm/locale/rm/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Fin da la datoteca entaifer l'identificatur dal sistem.
 errExpectedSystemId=Spetgà in identificatur dal sistem ma il doctype è a fin.
 errMissingSpaceBeforeDoctypeName=Il segn vid avant il num dal doctype manca.
 errHyphenHyphenBang=Chattà “--!” en in commentari.
+errNestedComment=Scuvrì «<!--» en in commentari. Motiv probabel: Commentari ignivà (betg permess).
 errNcrZero=Referenza da caracters vegn remplazzada cun nulla.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Nagin spazi vid tranter l'expressiun “SYSTEM” dal doctype e la virguletta.
 errNoSpaceBetweenPublicAndSystemIds=Nagin spazi vid tranter ils identificaturs public e system dal doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Elements betg serrads sin il stack.
 errEndTagDidNotMatchCurrentOpenElement=Il tag da fin “%1$S” na correspunda betg al num da l'element avert actualmain (“%2$S”).
 errEndTagViolatesNestingRules=Il tag da fin “%1$S” cuntradi a las reglas d'ignivar.
 errEndWithUnclosedElements=Chattà il tag final per “%1$S”, ma igl aveva anc elements betg serrads.
+errListUnclosedStartTags=Element u elements betg serrads.
diff --git a/thunderbird-l10n/rm/chrome/rm/locale/rm/global/security/security.properties b/thunderbird-l10n/rm/chrome/rm/locale/rm/global/security/security.properties
index aa21eede30dc53d0d80d10d9b971b1d5fe80e335..aeef39a3802fc5705dadda9f031679358823fd6b 100644
--- a/thunderbird-l10n/rm/chrome/rm/locale/rm/global/security/security.properties
+++ b/thunderbird-l10n/rm/chrome/rm/locale/rm/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer header: la lunghezza surpassa la limi
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer header: la lunghezza da l'origin en il referrer surpassa la limita da «%1$S» bytes. Allontanà il referrer cun origin: «%2$S».
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Directivas main restrictivas, inclus ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ ed ‘unsafe-url’, vegnan prest ignoradas per la dumonda tranter websites: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: La directiva da referenzas main restrictiva «%1$S» vegn ignorada per la dumonda tranter websites: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = In chau-pagina X-Frame-Options nunvalid è vegnì chattà durant chargiar «%2$S»: «%1$S» n'è betg ina directiva valida.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = La dumonda betg segirada «%1$S» utilisescha ussa «%
 HTTPSOnlyNoUpgradeException = La dumonda betg segirada «%1$S» na vegn betg actualisada perquai ch'ella è exempta.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = I n'è betg reussì dad actualisar la dumonda betg segirada «%1$S». (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = La meglieraziun da la dumonda betg segirada «%S» n'è betg reussida. Returnar danovamain a «http».
 
diff --git a/thunderbird-l10n/rm/localization/rm/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/rm/localization/rm/toolkit/about/aboutNetworking.ftl
index 1f474e561082122dd19e7fcc99b685f9e1bec372..fe592d4832baceec17d79373af8896969c6382fa 100644
--- a/thunderbird-l10n/rm/localization/rm/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/rm/localization/rm/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Activ
 about-networking-idle = inactiv
 about-networking-host = Host
 about-networking-tcp = TCP
+about-networking-type = Tip
 about-networking-sent = Tramess
 about-networking-received = Reschavì
 about-networking-family = Famiglia
diff --git a/thunderbird-l10n/rm/localization/rm/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/rm/localization/rm/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/rm/localization/rm/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/rm/localization/rm/toolkit/global/textActions.ftl b/thunderbird-l10n/rm/localization/rm/toolkit/global/textActions.ftl
index 634f5ffa5c11609f23bb9d4c86c5ed88f7cb1d32..c35e3da7381f6e117945c480a3d7ca1b4f665366 100644
--- a/thunderbird-l10n/rm/localization/rm/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/rm/localization/rm/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Revocar
     .accesskey = R
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Restituir
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Tagliar ora
     .accesskey = a
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Copiar
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Encollar
     .accesskey = E
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Stizzar
     .accesskey = S
-
 text-action-select-all =
     .label = Selecziunar tut
     .accesskey = t
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Naginas propostas ortograficas
+text-action-spell-add-to-dictionary =
+    .label = Agiuntar al dicziunari
+    .accesskey = i
+text-action-spell-undo-add-to-dictionary =
+    .label = Revocar l'agiuntar al dicziunari
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Controllar l'ortografia
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Agiuntar dicziunaris…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Linguas
+    .accesskey = L
diff --git a/thunderbird-l10n/rm/manifest.json b/thunderbird-l10n/rm/manifest.json
index 9c00cab0c1a427d85f0f03a986216a9e69cf0d60..0e209de3a3de05ef9726625e0700bb2aab0eeafb 100644
--- a/thunderbird-l10n/rm/manifest.json
+++ b/thunderbird-l10n/rm/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Rumantsch Language Pack",
   "description": "Language pack for Thunderbird for rm",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "rm": {
-      "version": "20210814203541",
+      "version": "20210831122441",
       "chrome_resources": {
         "alerts": "chrome/rm/locale/rm/alerts/",
         "autoconfig": "chrome/rm/locale/rm/autoconfig/",
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/pdfviewer/viewer.properties b/thunderbird-l10n/ro/chrome/ro/locale/pdfviewer/viewer.properties
index c85007a258065051b386bdda6494bfd54fabfcaf..a6c69c996015acf6ba52ac59607de896ad8eaba0 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/pdfviewer/viewer.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/pdfviewer/viewer.properties
@@ -151,6 +151,7 @@ findbar_label=Caută
 # LOCALIZATION NOTE (page_canvas): "{{page}}" will be replaced by the page number.
 page_canvas=Pagina {{page}}
 
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
 # Thumbnails panel item (tooltip and alt text for images)
 # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
 # number.
@@ -225,6 +226,7 @@ page_scale_percent={{scale}}%
 # Loading indicator messages
 loading_error_indicator=Eroare
 
+# Loading indicator messages
 loading_error=A intervenit o eroare la încărcarea PDF-ului.
 invalid_file_error=Fișier PDF nevalid sau corupt.
 missing_file_error=Fișier PDF lipsă.
@@ -241,7 +243,7 @@ annotation_date_string={{date}}, {{time}}
 text_annotation_type.alt=[Adnotare {{type}}]
 password_label=Introdu parola pentru a deschide acest fișier PDF.
 password_invalid=Parolă nevalidă. Te rugăm să încerci din nou.
-password_ok=Ok
+password_ok=OK
 password_cancel=Renunță
 
 printing_not_supported=Avertisment: Tipărirea nu este suportată în totalitate de acest browser.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/accessibility.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/accessibility.properties
index da5a0fc53dbd7a968acde129ba73713545ca4c16..19ae2890b6574d73a8a7413ee9717e11724fc9c6 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/accessibility.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/accessibility.properties
@@ -249,12 +249,12 @@ accessibility.beta=beta
 # LOCALIZATION NOTE (accessibility.pref.scroll.into.view.title): A title
 # text for the tooltip for the checkbox pref in the accessibility panel that
 # sets node auto scroll.
-accessibility.pref.scroll.into.view.title=Derulează automat nodul selectat în vizualizare
+accessibility.pref.scroll.into.view.title=Derulează automat nodul selectat înspre vizualizare
 
 # LOCALIZATION NOTE (accessibility.pref.scroll.into.view.label): A title
 # text for the checkbox pref in the accessibility panel that sets node auto
 # scroll.
-accessibility.pref.scroll.into.view.label=Derulează în vizualizare
+accessibility.pref.scroll.into.view.label=Derulează înspre vizualizare
 
 # LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
 # the Documentation menu item.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/debugger.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/debugger.properties
index 446dc7c0e12ac5505f496b713c0c1a56c427f0bf..8639b65942d4ed06bb367bb3356e49f81c322381 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/debugger.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/debugger.properties
@@ -220,15 +220,15 @@ domMutationHeader=Puncte de întrerupere mutații DOM
 
 # LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
 # DOM Mutation Breakpoints panel for an attribute change
-domMutationTypes.attribute=Modificare atribut
+domMutationTypes.attribute=Modificarea atributului
 
 # LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
 # DOM Mutation Breakpoints panel for a DOM node removal
-domMutationTypes.removal=Eliminare nod
+domMutationTypes.removal=Eliminarea nodului
 
 # LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
 # DOM Mutation Breakpoints panel for a DOM subtree change
-domMutationTypes.subtree=Modificare sub-arbore
+domMutationTypes.subtree=Modificarea subarborelui
 
 # LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
 # searching all the source files the debugger has seen.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/inspector.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/inspector.properties
index 8a6f2c76eb550324bd800825a784153ecbe49bea..2e15b145bd1cfa2c9556973deb3db0c9e6c42c96 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/inspector.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/inspector.properties
@@ -260,7 +260,7 @@ inspectorHTMLPasteLastChild.accesskey=L
 # LOCALIZATION NOTE (inspectorScrollNodeIntoView.label): This is the label
 # shown in the inspector contextual-menu for the item that lets users scroll
 # the current node into view
-inspectorScrollNodeIntoView.label=Derulează spre vizualizare
+inspectorScrollNodeIntoView.label=Derulează înspre vizualizare
 inspectorScrollNodeIntoView.accesskey=S
 
 # LOCALIZATION NOTE (inspectorHTMLDelete.label): This is the label shown in
@@ -295,17 +295,17 @@ inspectorBreakpointSubmenu.label=Întrerupe la…
 # LOCALIZATION NOTE (inspectorSubtreeModification.label): This is the label shown
 # in the inspector contextual-menu for the item that lets users add a DOM breakpoint
 # for subtree modification.
-inspectorSubtreeModification.label=Modificare sub-arbore
+inspectorSubtreeModification.label=O modificare a subarborelui
 
 # LOCALIZATION NOTE (inspectorAttributeModification.label): This is the label shown
 # in the inspector contextual-menu for the item that lets users add a DOM breakpoint
 # for attribute modification.
-inspectorAttributeModification.label=Modificare atribut
+inspectorAttributeModification.label=O modificare a atributului
 
 # LOCALIZATION NOTE (inspectorNodeRemoval.label): This is the label shown
 # in the inspector contextual-menu for the item that lets users add a DOM breakpoint
 # for node removal.
-inspectorNodeRemoval.label=Eliminare nod
+inspectorNodeRemoval.label=Eliminarea nodului
 
 # LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
 # shown as the placeholder for the markup view search in the inspector.
@@ -350,7 +350,7 @@ inspectorCollapseAll.label=Restrânge-le pe toate
 # LOCALIZATION NOTE (inspectorScreenshotNode.label): This is the label
 # shown in the inspector contextual-menu for the item that lets users take
 # a screenshot of the currently selected node.
-inspectorScreenshotNode.label=Realizează o captură de ecran cu nodul
+inspectorScreenshotNode.label=Realizează o captură de ecran a nodului
 
 # LOCALIZATION NOTE (inspectorDuplicateNode.label): This is the label
 # shown in the inspector contextual-menu for the item that lets users
@@ -360,7 +360,7 @@ inspectorDuplicateNode.label=Duplică nodul
 # LOCALIZATION NOTE (inspectorAddNode.label): This is the label shown in
 # the inspector toolbar for the button that lets users add elements to the
 # DOM (as children of the currently selected element).
-inspectorAddNode.label=Creează nod nou
+inspectorAddNode.label=Creează un nod nou
 inspectorAddNode.accesskey=C
 
 # LOCALIZATION NOTE (inspectorCopyHTMLSubmenu.label): This is the label
@@ -521,7 +521,7 @@ markupView.scrollableBadge.interactive.tooltip=Elementul are debord de defilare.
 
 # LOCALIZATION NOTE (markupView.overflowBadge.label): This is the text displayed inside a
 # badge, in the inspector, next to nodes that are causing overflow in other elements.
-markupView.overflowBadge.label=depășire
+markupView.overflowBadge.label=overflow
 
 # LOCALIZATION NOTE (markupView.overflowBadge.tooltip): This is the tooltip that is displayed
 # when hovering over badges next to overflow causing elements in the inspector.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/responsive.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/responsive.properties
index 200917e0cf083f22b3838e85dbcb4499a1f076eb..7281e26e1e8615c1e96908293d3aa28b6a9849d5 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/responsive.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/responsive.properties
@@ -34,7 +34,7 @@ responsive.enableTouch=Activează simularea de gesturi tactile
 responsive.disableTouch=Dezactivează simularea de gesturi tactile
 
 # LOCALIZATION NOTE  (responsive.screenshot): Tooltip of the screenshot button.
-responsive.screenshot=Realizează o captură de ecran cu zona vizibilă
+responsive.screenshot=Realizează o captură de ecran a zonei vizibile
 
 # LOCALIZATION NOTE (responsive.screenshotGeneratedFilename): The auto generated
 # filename.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/toolbox.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/toolbox.properties
index e483e34c72c57f04f2c7ef3966c30f71ee958ce2..b6b5780bfffd86c07811f18a83b541016235157b 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/devtools/client/toolbox.properties
@@ -181,6 +181,7 @@ toolbox.closebutton.tooltip=ÃŽnchide instrumentele pentru dezvoltatori
 
 # LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
 # the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Afișează consola divizată
 
 # LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
 # will be used for the error count button in the devTools settings panel.
@@ -290,9 +291,9 @@ options.deprecationNotice=Perimat. Află mai multe…
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
 options.enableMultiProcessToolbox=Activează caseta de instrumente a browserului pentru multiprocese (necesită repornirea casetei de instrumente a browserului)
 
-# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
-# the error count button displayed in the developer tools toolbox.
-toolbox.errorCountButton.tooltip=Show Split Console
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+
 # LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
 # will be used for the error count button in the devTools settings panel.
 toolbox.errorCountButton.description=Show the number of errors on the page
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/global/commonDialogs.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/global/commonDialogs.properties
index 8ceb8a5ce80b5e5463ed978142608cc5cc97f943..6f949d2f20162e5cd1137fb29ab99c057d5df3b4 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/global/commonDialogs.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/global/commonDialogs.properties
@@ -11,7 +11,7 @@ PromptUsernameAndPassword3=Autentificare necesară - %S
 # LOCALIZATION NOTE - %S is brandFullName
 PromptPassword3=Parolă necesară - %S
 Select=Selecție
-OK=Ok
+OK=OK
 Cancel=Renunță
 Yes=&Da
 No=&Nu
@@ -21,6 +21,9 @@ DontSave=&Nu salva
 ScriptDlgGenericHeading=[Aplicație JavaScript]
 ScriptDlgHeading=Pagina de la %S spune:
 ScriptDialogLabel=Împiedică această pagină să mai creeze alte casete de dialog
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
 ScriptDialogPreventTitle=Confirmă preferințele pentru casetele de dialog
 # LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
 # %1 is an untrusted string provided by a remote server. It could try to
@@ -32,6 +35,8 @@ EnterLoginForProxy3=Proxy-ul %2$S cere un nume de utilizator și o parolă. Site
 EnterUserPasswordFor2=%1$S cere numele tău de utilizator și parola.
 EnterUserPasswordForCrossOrigin2=%1$S cere numele tău de utilizator și parola. AVERTISMENT: Parola nu va fi trimisă site-ului web pe care îl vizitezi în prezent!
 EnterPasswordFor=Introdu parola pentru %1$S pe %2$S
+# %S is the username for which a password is requested.
+# %S is the domain of the site being accessed.
 
 ScriptDlgNullPrincipalHeading=This page says:
 ScriptDialogLabelNullPrincipal=Don’t allow this site to prompt you again
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/global/dialog.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/global/dialog.properties
index 7a7c1a454f3ab35f76d48594228cf561b823cbc0..4e8bab0f2f6f4a5c87c242e135ad43349d792b49 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/global/dialog.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/global/dialog.properties
@@ -2,7 +2,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/.
 
-button-accept=Ok
+button-accept=OK
 button-cancel=Renunță
 button-help=Ajutor
 button-disclosure=Mai multe informații
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger-smime/msgReadSMIMEOverlay.properties b/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger-smime/msgReadSMIMEOverlay.properties
index ecdc8ecb2dbf1f2d30a34afbfa84895d2069a20a..2aa99a158af01a4483af1303249e96080143bc3f 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger-smime/msgReadSMIMEOverlay.properties
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger-smime/msgReadSMIMEOverlay.properties
@@ -2,7 +2,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/.
 
-ImapOnDemand=Mesajul afișat a fost semnat digital, însă nu au fost încă descărcate toate atașamentele. De aceea semnătura nu poate fi validată. Clic pe „Ok” pentru a descărca mesajul complet și a valida semnătura.
+ImapOnDemand=Mesajul afișat a fost semnat digital, însă nu au fost încă descărcate toate atașamentele. De aceea semnătura nu poate fi validată. Clic pe OK pentru a descărca mesajul complet și a valida semnătura.
 #
 #NOTE To translator, anything between %..% and <..> should not be translated.
 # the former will be replaced by java script, and the latter is HTML formatting.
diff --git a/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger/messenger.dtd b/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger/messenger.dtd
index 6a715ef2b4f58b2f508d82a4a4d3dd9edc47750f..26ab6bc534698b221f867794bf64ff734a8b5923 100644
--- a/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger/messenger.dtd
+++ b/thunderbird-l10n/ro/chrome/ro/locale/ro/messenger/messenger.dtd
@@ -554,7 +554,7 @@
 <!ENTITY junkItem.title "Nesolicitat">
 <!ENTITY junkButton.label "Nesolicitat">
 <!ENTITY notJunkButton.label "Nu e nesolicitat">
-<!ENTITY addressBookButton.label "Contacte">
+<!ENTITY addressBookButton.label "Agendă de contacte">
 <!ENTITY chatButton.label "Chat">
 <!ENTITY glodaSearch.title "Căutare globală">
 <!ENTITY searchItem.title "Căutare rapidă">
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-context-menus.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-editable-item.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/calendar/calendar-print.ftl b/thunderbird-l10n/ro/localization/ro/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/devtools/client/application.ftl b/thunderbird-l10n/ro/localization/ro/devtools/client/application.ftl
index 32a95591c6dac078d8e346d4f19e6354e0e6720b..ee2961a3de0dc0856fcaa9afb4aff8abf715b221 100644
--- a/thunderbird-l10n/ro/localization/ro/devtools/client/application.ftl
+++ b/thunderbird-l10n/ro/localization/ro/devtools/client/application.ftl
@@ -14,45 +14,35 @@
 
 # Header for the list of Service Workers displayed in the application panel for the current page.
 serviceworker-list-header = Scripturi Service Worker
-
 # Text displayed next to the list of Service Workers to encourage users to check out
 # about:debugging to see all registered Service Workers.
 serviceworker-list-aboutdebugging = Deschide <a>about:debugging</a> pentru scripturile Service Worker de pe alte domenii
-
 # Text for the button to unregister a Service Worker. Displayed for active Service Workers.
 serviceworker-worker-unregister = Dezînregistrează
-
 # Text for the debug link displayed for an already started Service Worker. Clicking on the
 # link opens a new devtools toolbox for this service worker. The title attribute is only
 # displayed when the link is disabled.
 serviceworker-worker-debug = Depanează
     .title = Numai scripturile service worker în curs de rulare pot fi depanate
-
 # Text for the debug link displayed for an already started Service Worker, when we
 # are in multi e10s mode, which effectively disables this link.
 serviceworker-worker-debug-forbidden = Depanare
     .title = Poți depana service workeri numai dacă multi e10s este dezactivat
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start2 = Start
     .title = Poți porni service workeri numai dacă multi e10s este dezactivat
-
 # Alt text for the image icon displayed inside a debug link for a service worker.
 serviceworker-worker-inspect-icon =
     .alt = Inspectează
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start3 = Pornește
-
 # Text displayed for the updated time of the service worker. The <time> element will
 # display the last update time of the service worker script.
 serviceworker-worker-updated = Actualizat <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
-
 # Text displayed next to the URL for the source of the service worker (e-g. "Source my/path/to/worker-js")
 serviceworker-worker-source = Sursă
-
 # Text displayed next to the current status of the service worker.
 serviceworker-worker-status = Stare
 
@@ -62,126 +52,93 @@ serviceworker-worker-status = Stare
 # Service Worker status. A running service worker is registered, currently executed, can
 # be debugged and stopped.
 serviceworker-worker-status-running = În execuție
-
 # Service Worker status. A stopped service worker is registered but not currently active.
 serviceworker-worker-status-stopped = Oprit
-
 # Text displayed when no service workers are visible for the current page. Clicking on the
 # link will open https://developer-mozilla-org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro = Trebuie să înregistrezi un Service Worker pentru a-l inspecta aici. <a>Află mai multe</a>
-
 # Text displayed when there are no Service Workers to display for the current page,
 # introducing hints to debug Service Worker issues.
 serviceworker-empty-suggestions = Dacă pagina actuală ar trebui să aibă un service worker, iată câteva lucruri pe care le poți încerca
-
 # Suggestion to check for errors in the Console to investigate why a service worker is not
 # registered. Clicking on the link opens the webconsole.
 serviceworker-empty-suggestions-console = Caută erori în consolă. <a>Deschide consola</a>
-
 # Suggestion to use the debugger to investigate why a service worker is not registered.
 # Clicking on the link will switch from the Application panel to the debugger.
 serviceworker-empty-suggestions-debugger = Execută pas cu pas înregistrarea scripturilor service worker și caută excepții. <a>Deschide depanatorul</a>
-
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Clicking on the link will open about:debugging in a new tab.
 serviceworker-empty-suggestions-aboutdebugging = Inspectează scripturile service worker din alte domenii. <a>Deschide about:debugging</a>
-
 # Text displayed when no service workers are visible for the current page.
 serviceworker-empty-intro2 = Nu a fost găsit niciun script service worker
-
 # Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro-link = Află mai multe
-
 # Text displayed when there are no Service Workers to display for the current page,
 # introducing hints to debug Service Worker issues.
 # <a> and <span> are links that will open the webconsole and the debugger, respectively.
 serviceworker-empty-suggestions2 = Dacă pagina curentă ar trebui să aibă un script service worker, poți căuta erori în <a>Consolă</a>sau poți parcurge înregistrarea scriptului service worker în <span>Depanator</span>.
-
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Link will open about:debugging in a new tab.
 serviceworker-empty-suggestions-aboutdebugging2 = Afișează scripturi service worker din alte domenii
-
 # Header for the Manifest page when we have an actual manifest
 manifest-view-header = Manifestul aplicației
-
 # Header for the Manifest page when there's no manifest to inspect
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro = Trebuie să adaugi un manifest de aplicație web pentru a-l inspecta aici. <a>Află mai multe</a>
-
 # Header for the Manifest page when there's no manifest to inspect
-manifest-empty-intro2 = Nu a fost depistat niciun manifest de aplicație web
-
+manifest-empty-intro2 = Nu a fost detectat niciun manifest de aplicație web
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro-link = Află cum poți adăuga un manifest
-
 # Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
 manifest-item-warnings = Erori și avertismente
-
 # Header for the Identity section of Manifest inspection displayed in the application panel.
 manifest-item-identity = Identitate
-
 # Header for the Presentation section of Manifest inspection displayed in the application panel.
 manifest-item-presentation = Prezentare
-
 # Header for the Icon section of Manifest inspection displayed in the application panel.
 manifest-item-icons = Pictograme
-
 # Text displayed while we are loading the manifest file
 manifest-loading = Se încarcă manifestul...
-
 # Text displayed when the manifest has been successfully loaded
 manifest-loaded-ok = Manifest încărcat.
-
 # Text displayed as a caption when there has been an error while trying to
 # load the manifest
 manifest-loaded-error = A apărut o eroare la încărcarea manifestului:
-
 # Text displayed as an error when there has been a Firefox DevTools error while
 # trying to load the manifest
 manifest-loaded-devtools-error = Eroare privind DevTools Firefox
-
 # Text displayed when the page has no manifest available
 manifest-non-existing = Nu s-a găsit niciun manifest de inspectat.
-
 # Text displayed when the page has a manifest embedded in a Data URL and
 # thus we cannot link to it.
 manifest-json-link-data-url = Manifestul este înglobat într-un URL de date.
-
 # Text displayed at manifest icons to label their purpose, as declared
 # in the manifest.
 manifest-icon-purpose = Scop: <code>{ $purpose }</code>
-
 # Text displayed as the alt attribute for <img> tags showing the icons in the
 # manifest.
 manifest-icon-img =
     .alt = Pictogramă
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest. `$sizes` is a user-dependent string that has been parsed as a
 # space-separated list of `<width>x<height>` sizes or the keyword `any`.
 manifest-icon-img-title = Pictogramă cu mărimi: { $sizes }
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest, in case there's no icon size specified by the user
 manifest-icon-img-title-no-sizes = Pictogramă de mărime nespecificată
-
 # Sidebar navigation item for Manifest sidebar item section
 sidebar-item-manifest = Manifest
     .alt = Pictogramă manifest
     .title = Manifest
-
 # Sidebar navigation item for Service Workers sidebar item section
 sidebar-item-service-workers = Scripturi service worker
     .alt = Pictogramă pentru scripturile service worker
     .title = Scripturi service worker
-
 # Text for the ALT and TITLE attributes of the warning icon
 icon-warning =
     .alt = Pictogramă de avertizare
     .title = Avertisment
-
 # Text for the ALT and TITLE attributes of the error icon
 icon-error =
     .alt = Pictogramă de eroare
     .title = Eroare
-
diff --git a/thunderbird-l10n/ro/localization/ro/devtools/client/toolbox-options.ftl b/thunderbird-l10n/ro/localization/ro/devtools/client/toolbox-options.ftl
index acd8f2bf716c2e1bc88ce57fef8d56af942f8ba9..47e0bd0cabb7106414d46d8c90c15d9e0a69eb52 100644
--- a/thunderbird-l10n/ro/localization/ro/devtools/client/toolbox-options.ftl
+++ b/thunderbird-l10n/ro/localization/ro/devtools/client/toolbox-options.ftl
@@ -10,19 +10,15 @@
 
 # The heading
 options-select-default-tools-label = Instrumente pentru dezvoltatori implicite
-
 # The label for the explanation of the * marker on a tool which is currently not supported
 # for the target of the toolbox.
 options-tool-not-supported-label = * Nu este compatibil pentru ținta actuală a casetei de instrumente
-
 # The label for the heading of group of checkboxes corresponding to the developer tools
 # added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
 options-select-additional-tools-label = Instrumente pentru dezvoltatori instalate prin suplimente
-
 # The label for the heading of group of checkboxes corresponding to the default developer
 # tool buttons.
 options-select-enabled-toolbox-buttons-label = Butoane disponibile în caseta de instrumente
-
 # The label for the heading of the radiobox corresponding to the theme
 options-select-dev-tools-theme-label = Teme
 
@@ -30,12 +26,10 @@ options-select-dev-tools-theme-label = Teme
 
 # The heading
 options-context-inspector = Inspector
-
 # The label for the checkbox option to show user agent styles
 options-show-user-agent-styles-label = Afișează stilurile browserului
 options-show-user-agent-styles-tooltip =
     .title = Pornirea acestei opțiuni va afișa stilurile implicite care sunt încărcate de browser.
-
 # The label for the checkbox option to enable collapse attributes
 options-collapse-attrs-label = Trunchiază atributele DOM
 options-collapse-attrs-tooltip =
@@ -54,7 +48,6 @@ options-default-color-unit-name = Nume de culori
 
 # The heading
 options-styleeditor-label = Editor de stiluri
-
 # The label for the checkbox that toggles autocompletion of css in the Style Editor
 options-stylesheet-autocompletion-label = Completează automat CSS
 options-stylesheet-autocompletion-tooltip =
@@ -64,12 +57,10 @@ options-stylesheet-autocompletion-tooltip =
 
 # The heading
 options-screenshot-label = Comportamentul capturilor de ecran
-
 # Label for the checkbox that toggles screenshot to clipboard feature
-options-screenshot-clipboard-label = Captură de ecran în clipboard
+options-screenshot-clipboard-label = Salvează captura de ecran în clipboard
 options-screenshot-clipboard-tooltip =
     .title = Salvează capturile de ecran direct în clipboard
-
 # Label for the checkbox that toggles the camera shutter audio for screenshot tool
 options-screenshot-audio-label = Redă sunetul obturatorului de cameră
 options-screenshot-audio-tooltip =
@@ -79,7 +70,6 @@ options-screenshot-audio-tooltip =
 
 # The heading
 options-sourceeditor-label = Preferințe pentru editor
-
 options-sourceeditor-detectindentation-tooltip =
     .title = Dedu indentarea în baza contextului-sursă
 options-sourceeditor-detectindentation-label = Detectează indentările
@@ -97,40 +87,32 @@ options-sourceeditor-keybinding-default-label = Implicite
 
 # The heading (this item is also used in perftools.ftl)
 options-context-advanced-settings = Setări avansate
-
 # The label for the checkbox that toggles the HTTP cache on or off
 options-disable-http-cache-label = Dezactivează cache-ul HTTP (când este deschisă caseta de instrumente)
 options-disable-http-cache-tooltip =
     .title = Pornirea acestei opțiuni va dezactiva cache-ul HTTP pentru toate filele care au deschisă caseta de instrumente. Scripturile service worker nu sunt afectate.
-
 # The label for checkbox that toggles JavaScript on or off
 options-disable-javascript-label = Dezactivează JavaScript *
 options-disable-javascript-tooltip =
     .title = Pornirea acestei opțiuni va dezactiva JavaScript pentru fila actuală. Setarea va fi uitată la închiderea filei sau a casetei de instrumente.
-
 # The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
 options-enable-chrome-label = Activează casetele de instrumente pentru depanare chrome și suplimente
 options-enable-chrome-tooltip =
     .title = Pornirea acestei opțiuni îți va permite să folosești diverse instrumente pentru dezvoltatori în contextul browserului (via Instrumente -> Dezvoltator web -> Caseta de instrumente a browserului) și să depanezi suplimente din Managerul de suplimente
-
 # The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
 options-enable-remote-label = Activează depanarea la distanță
 options-enable-remote-tooltip2 =
     .title = Pornirea acestei opțiuni va permite depanarea la distanță a acestei instanțe a browserului
-
 # The label for checkbox that toggles the service workers testing over HTTP on or off.
 options-enable-service-workers-http-label = Activează scripturile Service Worker prin HTTP (când este deschisă caseta de instrumente)
 options-enable-service-workers-http-tooltip =
     .title = Pornirea acestei opțiuni va permite trecerea scripturilor service worker prin HTTP pentru toate filele care au caseta de instrumente deschisă.
-
 # The label for the checkbox that toggles source maps in all tools.
 options-source-maps-label = Activează hărțile pentru surse
 options-source-maps-tooltip =
     .title = Dacă activezi opțiunea, sursele vor fi cartate în unelte.
-
 # The message shown for settings that trigger page reload
 options-context-triggers-page-refresh = * Doar sesiunea actuală, reîncarcă pagina
-
 # The label for the checkbox that toggles the display of the platform data in the
 # Profiler i.e. devtools.profiler.ui.show-platform-data a boolean preference in about:config
 options-show-platform-data-label = Afișează datele platformei Gecko
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/ro/localization/ro/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/ro/localization/ro/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/accountManager.ftl b/thunderbird-l10n/ro/localization/ro/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/ro/localization/ro/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/ro/localization/ro/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/chat.ftl b/thunderbird-l10n/ro/localization/ro/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/ro/localization/ro/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/exportDialog.ftl b/thunderbird-l10n/ro/localization/ro/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/importDialog.ftl b/thunderbird-l10n/ro/localization/ro/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/preferences/am-copies.ftl b/thunderbird-l10n/ro/localization/ro/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/messenger/troubleshootMode.ftl b/thunderbird-l10n/ro/localization/ro/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/localization/ro/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/ro/localization/ro/toolkit/about/aboutProcesses.ftl
index 44c381205ebeb09ddf3e4bf28dc5f6410e395e09..84fd36c0739fc6e5f37e0fdb3623010afc2585c1 100644
--- a/thunderbird-l10n/ro/localization/ro/toolkit/about/aboutProcesses.ftl
+++ b/thunderbird-l10n/ro/localization/ro/toolkit/about/aboutProcesses.ftl
@@ -2,21 +2,29 @@
 # 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/.
 
+
 ## Tooltips
 
+about-processes-shutdown-tab =
+    .title = ÃŽnchide fila
+
 ## Column headers
 
+
 ## Process names
 ## Variables:
 ##    $pid (String) The process id of this process, assigned by the OS.
 
+
 ## Isolated process names
 ## Variables:
 ##    $pid (String) The process id of this process, assigned by the OS.
 ##    $origin (String) The domain name for this process.
 
+
 ## Details within processes
 
+
 ## Displaying CPU (percentage and total)
 ## Variables:
 ##    $percent (Number) The percentage of CPU used by the process or thread.
@@ -26,6 +34,7 @@
 ##    $unit (String) The unit in which to display $total. See the definitions
 ##                   of `duration-unit-*`.
 
+
 ## Displaying Memory (total and delta)
 ## Variables:
 ##    $total (Number) The amount of memory currently used by the process.
@@ -37,7 +46,9 @@
 ##    $deltaUnit (String) The unit in which to display $delta. See the definitions
 ##                        of `memory-unit-*`.
 
+
 ## Duration units
 
+
 ## Memory units
 
diff --git a/thunderbird-l10n/ro/localization/ro/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ro/localization/ro/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ro/localization/ro/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ro/manifest.json b/thunderbird-l10n/ro/manifest.json
index 342c4d83e3c7330216f1cf3aa15b926561dacb71..219d8bfbaf85ee9c626fff798efd565fa78ea37d 100644
--- a/thunderbird-l10n/ro/manifest.json
+++ b/thunderbird-l10n/ro/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Română (România) Language Pack",
   "description": "Language pack for Thunderbird for ro",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ro": {
-      "version": "20210813141458",
+      "version": "20210831122455",
       "chrome_resources": {
         "alerts": "chrome/ro/locale/ro/alerts/",
         "autoconfig": "chrome/ro/locale/ro/autoconfig/",
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/markers.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/markers.properties
index 750a03a300cfd8818364efd9757fbab5b32be2bd..9fda5b091f9679bb34a929f66671fa7b044c1ebd 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/markers.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/markers.properties
@@ -105,7 +105,7 @@ marker.gcreason.label.API=Вызов API
 marker.gcreason.label.EAGER_ALLOC_TRIGGER=Триггер интенсивного выделения
 marker.gcreason.label.DESTROY_RUNTIME=Завершение работы
 marker.gcreason.label.LAST_DITCH=Недостаточно памяти
-marker.gcreason.label.TOO_MUCH_MALLOC=Слишком много выделенных байт
+marker.gcreason.label.TOO_MUCH_MALLOC=Слишком много байт выделено
 marker.gcreason.label.ALLOC_TRIGGER=Слишком много выделено
 marker.gcreason.label.DEBUG_GC=Отладка GC
 marker.gcreason.label.COMPARTMENT_REVIVED=Доступ к неиспользуемому глобальному объекту
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/memory.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/memory.properties
index ff2e1e73ca7e52110d841a9877b4edb514a33269..e9981ddda5f666cf10f995f340868fde4e4648de 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/memory.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/memory.properties
@@ -351,7 +351,7 @@ heapview.noAllocationStacks=Стеки вызовов не найдены. За
 
 # LOCALIZATION NOTE (heapview.field.retainedSize): The name of the column in the
 # dominator tree view for retained byte sizes.
-heapview.field.retainedSize=Общий объем памяти (Байт)
+heapview.field.retainedSize=Общий объём памяти (байт)
 
 # LOCALIZATION NOTE (heapview.field.retainedSize.tooltip): The tooltip for the
 # column header in the dominator tree view for retained byte sizes.
@@ -359,7 +359,7 @@ heapview.field.retainedSize.tooltip=Сумма объема памяти сам
 
 # LOCALIZATION NOTE (heapview.field.shallowSize): The name of the column in the
 # dominator tree view for shallow byte sizes.
-heapview.field.shallowSize=Чистый объем памяти (Байт)
+heapview.field.shallowSize=Чистый объём памяти (байт)
 
 # LOCALIZATION NOTE (heapview.field.shallowSize.tooltip): The tooltip for the
 # column header in the dominator tree view for shallow byte sizes.
@@ -375,7 +375,7 @@ dominatortree.field.label.tooltip=Метка для объекта в памят
 
 # LOCALIZATION NOTE (heapview.field.bytes): The name of the column in the heap
 # view for bytes.
-heapview.field.bytes=Байты
+heapview.field.bytes=Байт
 
 # LOCALIZATION NOTE (heapview.field.bytes.tooltip): The tooltip for the column
 # header in the heap view for bytes.
@@ -395,7 +395,7 @@ heapview.field.totalbytes=Всего байт
 
 # LOCALIZATION NOTE (heapview.field.totalbytes.tooltip): The tooltip for the
 # column header in the heap view for total bytes.
-heapview.field.totalbytes.tooltip=Число байт, занятых этой группой, включая подгруппы
+heapview.field.totalbytes.tooltip=Число байтов, занятых этой группой, включая подгруппы
 
 # LOCALIZATION NOTE (heapview.field.totalcount): The name of the column in the
 # heap view for total count.
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/netmonitor.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/netmonitor.properties
index c3b1a47a04fe2421cea990d8408e2e7105b10697..36de71f6cedde86467fbaf6dd6237d41c68adb41 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/netmonitor.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/netmonitor.properties
@@ -423,7 +423,7 @@ charts.totalS=%S с
 
 # LOCALIZATION NOTE (charts.totalTransferredSize): This is the label displayed
 # in the performance analysis view for total transferred size, in kilobytes.
-charts.totalTransferredSize=Размер передачи: %S КБ
+charts.totalTransferredSize=Передано: %S КБ
 
 # LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
 # in the performance analysis view for "cache enabled" charts.
@@ -1071,7 +1071,7 @@ netmonitor.summary.learnMore=Узнайте больше о кодах сост
 
 # LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
 # in the network details headers tab identifying the referrer policy.
-netmonitor.headers.referrerPolicy=Политика Referrer
+netmonitor.headers.referrerPolicy=Referrer policy
 
 # LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
 # in the network details headers tab identifying the content blocking mode.
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/performance.dtd b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/performance.dtd
index c7d603e006cb517b29e092131d64798f6a13842a..712ce579a30714f85f034db407d9e55e83f2a390 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/performance.dtd
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/devtools/client/performance.dtd
@@ -27,7 +27,7 @@
 <!-- LOCALIZATION NOTE (performanceUI.unavailableNoticePB): This is the label shown
   -  in the details view while the profiler is unavailable, for example, while
   -  in Private Browsing mode. -->
-<!ENTITY performanceUI.unavailableNoticePB "Запись профиля в настоящее время недоступна. Пожалуйста, закройте все окна приватного просмотра и попробуйте ещё раз.">
+<!ENTITY performanceUI.unavailableNoticePB "Запись профиля в настоящее время недоступна. Пожалуйста, закройте все приватные окна и попробуйте ещё раз.">
 
 <!-- LOCALIZATION NOTE (performanceUI.loadingNotice): This is the label shown
   -  in the details view while loading a profile. -->
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/dom/dom.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/dom/dom.properties
index 24c88993fe19577209d6cd636c980ba4e72c445e..8c4b9b442c5c020d0330c385f991d9a1d41ebc64 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/dom/dom.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/dom/dom.properties
@@ -213,11 +213,11 @@ ServiceWorkerRegisterNetworkError=Не удалось зарегистриров
 # LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
 ServiceWorkerRegisterMimeTypeError2=Не удалось зарегистрировать/обновить ServiceWorker для области видимости «%1$S»: Для сценария «%3$S» указан некорректный Content-Type «%2$S».  Он должен быть MIME-типом JavaScript.
 # LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
-ServiceWorkerRegisterStorageError=Не удалось зарегистрировать/обновить ServiceWorker для области видимости «%S»: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройкам приватности или режимом приватного просмотра.
-ServiceWorkerGetRegistrationStorageError=Не удалось зарегистрировать service worker: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или режимом приватного просмотра.
-ServiceWorkerGetClientStorageError=Не удалось получить доступ к клиенту(ам) service worker: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или режимом приватного просмотра.
+ServiceWorkerRegisterStorageError=Не удалось зарегистрировать/обновить ServiceWorker для области видимости «%S»: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройкам приватности или приватным режимом.
+ServiceWorkerGetRegistrationStorageError=Не удалось зарегистрировать service worker: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или приватным режимом.
+ServiceWorkerGetClientStorageError=Не удалось получить доступ к клиенту(ам) service worker: Доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или приватным режимом.
 # LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
-ServiceWorkerPostMessageStorageError=ServiceWorker для области видимости «%S» не смог выполнить «postMessage», так как доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или режимом приватного просмотра.
+ServiceWorkerPostMessageStorageError=ServiceWorker для области видимости «%S» не смог выполнить «postMessage», так как доступ к хранилищу в этом контексте ограничен в соответствии с пользовательскими настройками или приватным режимом.
 # LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
 ServiceWorkerGraceTimeoutTermination=Завершаю работу ServiceWorker для области видимости «%1$S» с ожидающими waitUntil/respondWith promises из-за grace timeout.
 # LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
@@ -344,7 +344,7 @@ InvalidKeyframePropertyValue=Значение свойства ключевог
 # LOCALIZATION NOTE: Do not translate "ReadableStream".
 ReadableStreamReadingFailed=Не удалось прочитать данные из ReadableStream: «%S».
 # LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
-RegisterProtocolHandlerPrivateBrowsingWarning=Невозможно использовать registerProtocolHandler в режиме приватного просмотра.
+RegisterProtocolHandlerPrivateBrowsingWarning=Невозможно использовать registerProtocolHandler в приватном режиме.
 MotionEventWarning=Использование датчика движения является устаревшим.
 OrientationEventWarning=Использование датчика ориентации является устаревшим.
 ProximityEventWarning=Использование датчика приближения является устаревшим.
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/layout/htmlparser.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/layout/htmlparser.properties
index 4c13e5071de3cef0df7b94e3f32ee47c2676ae57..68b647a8293c6c68404e3289efe0cb3eec2ecf6c 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Конец файла внутри системного иде
 errExpectedSystemId=Ожидался системный идентификатор, но doctype завершен.
 errMissingSpaceBeforeDoctypeName=Перед именем doctype отсутствует пробел.
 errHyphenHyphenBang=В комментарии найден «--!».
+errNestedComment=Внутри комментария найдено «<!--». Возможная причина: Вложенный комментарий (не разрешено).
 errNcrZero=Ссылка на символ разворачивается в нуль.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Нет пробела между ключевым словом «SYSTEM» для doctype и кавычкой.
 errNoSpaceBetweenPublicAndSystemIds=Нет пробела между публичным и системным идентификатором doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Незакрытые элементы в ст
 errEndTagDidNotMatchCurrentOpenElement=Закрывающий тег «%1$S» не соответствует имени текущего открытого элемента («%2$S»).
 errEndTagViolatesNestingRules=Закрывающий тег «%1$S» нарушает правила вложения.
 errEndWithUnclosedElements=Обнаружен закрывающий тег «%1$S», но имеются незакрытые элементы.
+errListUnclosedStartTags=Незакрытый элемент или элементы.
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/security/security.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/security/security.properties
index fcc44c4b2976c6c7f954a97fddb788c96ae36572..594fb448b64c02514af9ad208e95cfc1eff2914e 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/global/security/security.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/global/security/security.properties
@@ -38,9 +38,9 @@ STSCouldNotSaveState=Strict-Transport-Security: При обозначении э
 
 # LOCALIZATION NOTE: Do not translate "SHA-1"
 SHA1Sig=Этот сайт использует сертификат SHA-1; рекомендуется использовать сертификаты с алгоритмами подписи, использующими более сильные хеш-функции, чем SHA-1.
-InsecurePasswordsPresentOnPage=Незащищённая (http://) страница содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учетные данные для входа пользователя.
-InsecureFormActionPasswordsPresent=Форма с незащищённым (http://) действием содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учетные данные для входа пользователя.
-InsecurePasswordsPresentOnIframe=Незащищённый (http://) iframe содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учетные данные для входа пользователя.
+InsecurePasswordsPresentOnPage=Незащищённая (http://) страница содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учётные данные для входа пользователя.
+InsecureFormActionPasswordsPresent=Форма с незащищённым (http://) действием содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учётные данные для входа пользователя.
+InsecurePasswordsPresentOnIframe=Незащищённый (http://) iframe содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учётные данные для входа пользователя.
 # LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
 LoadingMixedActiveContent2=Загрузка смешанного (незащищённого) активного содержимого «%1$S» на защищённой странице
 LoadingMixedDisplayContent2=Загрузка смешанного (незащищённого) отображаемого содержимого «%1$S» на защищённой странице
@@ -126,9 +126,14 @@ FeaturePolicyInvalidEmptyAllowValue= Корпоративная политика
 FeaturePolicyInvalidAllowValue=Корпоративная политика: Пропускаем запрещённое значение «%S».
 
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
-ReferrerLengthOverLimitation=HTTP заголовок Referrer: Длина заголовка превышает лимит в «%1$S» байт — обрезаем заголовок referrer до origin: «%2$S»
+ReferrerLengthOverLimitation=HTTP-заголовок Referer: Длина заголовка превышает лимит в %1$S байт — заголовок обрезан до origin: %2$S
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
-ReferrerOriginLengthOverLimitation=HTTP заголовок Referrer: Длина origin в заголовке превышает лимит в «%1$S» байт — удаляем заголовок целиком с origin «%2$S».
+ReferrerOriginLengthOverLimitation=HTTP-заголовок Referer: Длина origin превышает лимит в %1$S байт — заголовок удалён; origin: %2$S
+
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer policy: Менее строгие политики, включая no-referrer-when-downgrade, origin-when-cross-origin и unsafe-url, скоро будут игнорироваться для междоменного запроса: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer policy: Менее строгая политика %1$S игнорирована для междоменного запроса: %2$S
 
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Обновление незащищённого зап
 HTTPSOnlyNoUpgradeException = Незащищённый запрос «%1$S» не обновляется, поскольку он является исключением.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Обновление незащищённого запроса «%1$S» не удалось. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Обновление незащищённого запроса «%S» не удалось. Переходим обратно на «http».
 
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/mozapps/downloads/downloads.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/mozapps/downloads/downloads.properties
index 17a92dc3b82416860137e68f1c4c3d4a7d474b3e..7858f2e122858da65aeece98488e705b660ce04d 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/mozapps/downloads/downloads.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/mozapps/downloads/downloads.properties
@@ -41,14 +41,14 @@ offlineCancelDownloadsAlertTitle=Отменить все загрузки?
 offlineCancelDownloadsAlertMsg=При переходе в автономный режим работы будет отменена одна загрузка. Вы действительно этого хотите?
 offlineCancelDownloadsAlertMsgMultiple=При переходе в автономный режим работы будет отменено несколько (%S) загрузок. Вы действительно этого хотите?
 leavePrivateBrowsingCancelDownloadsAlertTitle=Отменить все загрузки?
-leavePrivateBrowsingWindowsCancelDownloadsAlertMsg2=Если вы сейчас закроете все окна Приватного просмотра, будет отменена 1 загрузка. Вы уверены, что хотите выйти из Приватного просмотра?
-leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2=Если вы сейчас закроете все окна Приватного просмотра, будет отменено %S загрузок. Вы уверены, что хотите выйти из Приватного просмотра?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsg2=Если вы сейчас закроете все приватные окна, будет отменена 1 загрузка. Вы уверены, что хотите выйти из приватного режима?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2=Если вы сейчас закроете все приватные окна, будет отменено %S загрузок. Вы уверены, что хотите выйти из приватного режима?
 cancelDownloadsOKText=Отменить загрузку
 cancelDownloadsOKTextMultiple=Отменить несколько (%S) загрузок
 dontQuitButtonWin=Не завершать работу
 dontQuitButtonMac=Не завершать работу
 dontGoOfflineButton=Сохранить подключение
-dontLeavePrivateBrowsingButton2=Остаться в Приватном просмотре
+dontLeavePrivateBrowsingButton2=Остаться в приватном режиме
 
 # LOCALIZATION NOTE (infiniteRate):
 # If download speed is a JavaScript Infinity value, this phrase is used
diff --git a/thunderbird-l10n/ru/chrome/ru/locale/ru/pipnss/pipnss.properties b/thunderbird-l10n/ru/chrome/ru/locale/ru/pipnss/pipnss.properties
index 5f3e73981e5884d05d74ecc80c8a1f236903a262..8cbb3f576a060a795b5deb2028d3816f309139e3 100644
--- a/thunderbird-l10n/ru/chrome/ru/locale/ru/pipnss/pipnss.properties
+++ b/thunderbird-l10n/ru/chrome/ru/locale/ru/pipnss/pipnss.properties
@@ -250,7 +250,7 @@ CertDumpECsect409k1=SECG эллиптические кривые sect409k1 (aka
 CertDumpECsect409r1=SECG эллиптические кривые sect409r1 (aka NIST B-409)
 CertDumpECsect571k1=SECG эллиптические кривые sect571k1 (aka NIST K-571)
 CertDumpECsect571r1=SECG эллиптические кривые sect571r1 (aka NIST B-571)
-CertDumpRawBytesHeader=Размер: %S Байт / %S Бит
+CertDumpRawBytesHeader=Размер: %S байт / %S бит
 AVATemplate=%S = %S
 
 PSMERR_SSL_Disabled=Не удалось установить защищённое соединение, так как была отключена поддержка протокола SSL.
diff --git a/thunderbird-l10n/ru/localization/ru/devtools/client/perftools.ftl b/thunderbird-l10n/ru/localization/ru/devtools/client/perftools.ftl
index 12eeb3d9643e5cdf72c51af8ed1e4408247684fd..d4cd0103c98e99fbf7dfc8d15631cd6c0d9c21f7 100644
--- a/thunderbird-l10n/ru/localization/ru/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/ru/localization/ru/devtools/client/perftools.ftl
@@ -42,9 +42,7 @@ perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits:
 
 # The size of the memory buffer used to store things in the profiler.
 perftools-range-entries-label = Размер буфера:
-
 perftools-custom-threads-label = Добавить собственные потоки по имени:
-
 perftools-devtools-interval-label = Интервал:
 perftools-devtools-threads-label = Потоки:
 perftools-devtools-settings-label = Настройки
@@ -52,7 +50,7 @@ perftools-devtools-settings-label = Настройки
 ## Various statuses that affect the current state of profiling, not typically displayed.
 
 perftools-status-private-browsing-notice =
-    Профайлер отключается, когда включён приватный просмотр.
+    Профайлер отключается, когда включён приватный режим.
     Закройте все приватные окна, чтобы заново включить профайлер
 perftools-status-recording-stopped-by-another-tool = Запись была остановлена другим инструментом.
 perftools-status-restart-required = Для включения этой функции необходимо перезапустить браузер.
@@ -97,16 +95,12 @@ perftools-thread-img-decoder =
     .title = Потоки декодирования изображений
 perftools-thread-dns-resolver =
     .title = В этом потоке происходит разрешение DNS
-perftools-thread-js-helper =
-    .title = Фоновая работа JS-движка, например компиляция вне основного потока
-
 perftools-thread-task-controller =
     .title = Потоки пула потоков TaskController
 
 ##
 
 perftools-record-all-registered-threads = Игнорировать выбор выше и записывать все регистрируемые потоки
-
 perftools-tools-threads-input-label =
     .title = Эти имена потоков представляют собой список разделенный запятыми, который используется для включения профилирования потоков в профайлере. Имя может быть только частичным совпадением с именем потока, который будет включён. Это поле чувствительно к пробелам.
 
@@ -115,9 +109,7 @@ perftools-tools-threads-input-label =
 ## preferences are true.
 
 perftools-onboarding-message = <b>Новое</b>:  В Инструменты разработчика теперь интегрирован { -profiler-brand-name }. <a>Узнайте больше</a> об этом новом, мощном инструменте.
-
 # `options-context-advanced-settings` is defined in toolbox-options.ftl
 perftools-onboarding-reenable-old-panel = (В течение ограниченного периода времени вы сможете использовать старую панель Производительности, используя <a>{ options-context-advanced-settings }</a>)
-
 perftools-onboarding-close-button =
     .aria-label = Закрыть приветственное сообщение
diff --git a/thunderbird-l10n/ru/localization/ru/messenger/importDialog.ftl b/thunderbird-l10n/ru/localization/ru/messenger/importDialog.ftl
index eb00d2235ae3fed54ad9eb60bf2c08988ae9f2de..73a111d0675f9e6f07f5c8056969dbe773548cf3 100644
--- a/thunderbird-l10n/ru/localization/ru/messenger/importDialog.ftl
+++ b/thunderbird-l10n/ru/localization/ru/messenger/importDialog.ftl
@@ -5,6 +5,17 @@
 # Short name of the import module
 thunderbird-import-name = Thunderbird
 # Description of the import module
-thunderbird-import-description = Импорт почты из каталога профиля Thunderbird.
-import-select-profile-dir-or-zip = Выберите каталог профиля или zip-архив с каталогом профиля
-import-select-profile-zip = Выберите zip-архив с каталогом профиля
+thunderbird-import-description = Импорт почты из папки профиля Thunderbird.
+import-from-thunderbird-zip =
+    .label = Thunderbird (резервная копия экспортированного профиля; zip-файл размером менее 2 ГБ)
+    .accesskey = з
+import-from-thunderbird-dir =
+    .label = Thunderbird (папка профиля)
+    .accesskey = T
+import-select-profile-zip = Выберите zip-архив с папкой профиля
+import-select-profile-dir = Выберите папку профиля
+zip-file-too-big-title = Размер zip-файла слишком велик
+zip-file-too-big-message = Размер выбранного zip-файла превышает 2 ГБ. Пожалуйста, сначала распакуйте его, а затем импортируйте из распакованной папки.
+wizardpage-failed =
+    .label = Импорт не удался
+wizardpage-failed-message = В процессе импорта произошёл непредвиденный сбой. Более подробная информация может быть доступна в Консоли ошибок.
diff --git a/thunderbird-l10n/ru/localization/ru/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/ru/localization/ru/messenger/messengercompose/messengercompose.ftl
index 2683245ee2c62bec6424bd31d159b915868d3173..4ca67b1d15620b02c41b37d28e49483d3854c1e5 100644
--- a/thunderbird-l10n/ru/localization/ru/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/ru/localization/ru/messenger/messengercompose/messengercompose.ftl
@@ -159,12 +159,76 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Показать поле { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = { $count } адресата(ов) в полях «Кому» и «Копия» увидят адреса друг друга. Вы можете избежать раскрытия адресата(ов), используя вместо этого «Скрытую копию».
+to-address-row-label =
+    .value = Кому
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Поле «Кому»
+    .accesskey = м
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Кому
+    .accesskey = м
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Кому
+    .title = Показать поле «Кому» ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Копия
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Поле «Копия»
+    .accesskey = п
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Копия
+    .accesskey = п
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Копия
+    .title = Показать поле «Копия» ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Скрытая копия
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Поле «Скрытая копия»
+    .accesskey = Ñ‹
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Скрытая копия
+    .accesskey = Ñ‹
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Скрытая копия
+    .title = Показать поле «Скрытая копия» ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Другие отображаемые поля для адреса
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] В вашем сообщении есть публичный адресат. Вы можете избежать раскрытия адресата, используя вместо этого «Скрытую копию».
+        [few] { $count } адресата в полях «Кому» и «Копия» увидят адреса друг друга. Вы можете избежать раскрытия адресатов, используя вместо этого «Скрытую копию».
+       *[many] { $count } адресатов в полях «Кому» и «Копия» увидят адреса друг друга. Вы можете избежать раскрытия адресатов, используя вместо этого «Скрытую копию».
+    }
 many-public-recipients-bcc =
     .label = Использовать «Скрытую копию»
     .accesskey = п
 many-public-recipients-ignore =
     .label = Позволить адресатам видеть адреса друг друга
     .accesskey = в
+many-public-recipients-prompt-title = Слишком много публичных адресатов
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] У вашего сообщения есть публичный адресат. Это может вызвать проблему с приватностью. Вы можете избежать раскрытия адресата, переместив его из «Кому»/«Копия» в «Скрытую копию».
+        [few] У вашего сообщения есть { $count } публичных адресата, которые смогут видеть адреса друг друга. Это может вызвать проблему с приватностью. Вы можете избежать раскрытия адресатов, переместив их из «Кому»/«Копия» в «Скрытую копию».
+       *[many] У вашего сообщения есть { $count } публичных адресатов, которые смогут видеть адреса друг друга. Это может вызвать проблему с приватностью. Вы можете избежать раскрытия адресатов, переместив их из «Кому»/«Копия» в «Скрытую копию».
+    }
+many-public-recipients-prompt-cancel = Отменить отправку
+many-public-recipients-prompt-send = Всё равно отправить
 
 ## Notifications
 
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutAddons.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutAddons.ftl
index c341a2380cb5e3e05de4bd44f7f139a6ea26b653..3763faec76df4a22ab91741b72c6f53381934ff5 100644
--- a/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutAddons.ftl
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutAddons.ftl
@@ -4,37 +4,26 @@
 
 addons-window =
     .title = Управление дополнениями
-
 addons-page-title = Управление дополнениями
-
 search-header =
     .placeholder = Поиск на addons.mozilla.org
     .searchbuttonlabel = Поиск
-
 search-header-shortcut =
     .key = f
-
 list-empty-get-extensions-message = Загрузите расширения и темы на <a data-l10n-name="get-extensions">{ $domain }</a>
-
 list-empty-installed =
     .value = У вас не установлено ни одного дополнения данного типа
-
 list-empty-available-updates =
     .value = Обновлений не найдено
-
 list-empty-recent-updates =
     .value = В последнее время вы не обновляли никаких дополнений
-
 list-empty-find-updates =
     .label = Проверить наличие обновлений
-
 list-empty-button =
     .label = Узнать больше о дополнениях
-
 help-button = Поддержка дополнений
 sidebar-help-button-title =
     .title = Поддержка дополнений
-
 preferences =
     { PLATFORM() ->
         [windows] Настройки { -brand-short-name }
@@ -46,25 +35,19 @@ sidebar-preferences-button-title =
             [windows] Настройки { -brand-short-name }
            *[other] Настройки { -brand-short-name }
         }
-
 addons-settings-button = Настройки { -brand-short-name }
 sidebar-settings-button-title =
     .title = Настройки { -brand-short-name }
-
 show-unsigned-extensions-button =
     .label = Некоторые расширения не могут быть проверены
-
 show-all-extensions-button =
     .label = Показать все расширения
-
 cmd-show-details =
     .label = Подробнее
     .accesskey = р
-
 cmd-find-updates =
     .label = Найти обновления
     .accesskey = а
-
 cmd-preferences =
     .label =
         { PLATFORM() ->
@@ -76,88 +59,65 @@ cmd-preferences =
             [windows] с
            *[other] с
         }
-
 cmd-enable-theme =
     .label = Использовать тему
     .accesskey = п
-
 cmd-disable-theme =
     .label = Больше не использовать тему
     .accesskey = п
-
 cmd-install-addon =
     .label = Установить
     .accesskey = н
-
 cmd-contribute =
     .label = Внести вклад
     .accesskey = Ñ‚
     .tooltiptext = Внести вклад в развитие этого дополнения
-
 detail-version =
     .label = Версия
-
 detail-last-updated =
     .label = Последнее обновление
-
 detail-contributions-description = Разработчик этого дополнения просит вас помочь поддержать его дальнейшее развитие, внеся небольшое пожертвование.
-
 detail-contributions-button = Поддержать
     .title = Внести вклад в разработку этого дополнения
     .accesskey = ж
-
 detail-update-type =
     .value = Автоматическое обновление
-
 detail-update-default =
     .label = По умолчанию
     .tooltiptext = Автоматически устанавливать обновления только если это настройка по умолчанию
-
 detail-update-automatic =
     .label = Включено
     .tooltiptext = Устанавливать обновления автоматически
-
 detail-update-manual =
     .label = Отключено
     .tooltiptext = Не устанавливать обновления автоматически
-
 # Used as a description for the option to allow or block an add-on in private windows.
 detail-private-browsing-label = Запуск в приватных окнах
-
 # Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest.  This
 # cannot be overridden by the user.
 detail-private-disallowed-label = Не разрешено в приватных окнах
-detail-private-disallowed-description2 = Это расширение не будет работать в режиме приватного просмотра. <a data-l10n-name="learn-more">Подробнее</a>
-
+detail-private-disallowed-description2 = Это расширение не работает в приватном режиме. <a data-l10n-name="learn-more">Подробнее</a>
 # Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
 detail-private-required-label = Требует доступа к приватным окнам
-detail-private-required-description2 = Это расширение имеет доступ к вашей активности в Интернете во время приватного просмотра. <a data-l10n-name="learn-more">Подробнее</a>
-
+detail-private-required-description2 = Это расширение имеет доступ к вашей активности в Интернете в приватном режиме. <a data-l10n-name="learn-more">Подробнее</a>
 detail-private-browsing-on =
     .label = Разрешить
-    .tooltiptext = Включать при приватном просмотре
-
+    .tooltiptext = Включать в приватном режиме
 detail-private-browsing-off =
     .label = Не разрешать
-    .tooltiptext = Отключать при приватном просмотре
-
+    .tooltiptext = Отключать в приватном режиме
 detail-home =
     .label = Домашняя страница
-
 detail-home-value =
     .value = { detail-home.label }
-
 detail-repository =
     .label = Профиль дополнения
-
 detail-repository-value =
     .value = { detail-repository.label }
-
 detail-check-for-updates =
     .label = Проверить наличие обновлений
     .accesskey = в
     .tooltiptext = Проверить наличие обновлений для этого дополнения
-
 detail-show-preferences =
     .label =
         { PLATFORM() ->
@@ -174,38 +134,26 @@ detail-show-preferences =
             [windows] Изменить настройки этого дополнения
            *[other] Изменить настройки этого дополнения
         }
-
 detail-rating =
     .value = Рейтинг
-
 addon-restart-now =
     .label = Перезапустить сейчас
-
 disabled-unsigned-heading =
     .value = Некоторые дополнения были отключены
-
 disabled-unsigned-description = Работа следующих дополнений в { -brand-short-name } не была проверена. Вы можете <label data-l10n-name="find-addons">найти им замену</label> или попросить разработчика произвести их проверку.
-
 disabled-unsigned-learn-more = Узнайте больше о наших усилиях по обеспечению вашей безопасности в Интернете.
-
 disabled-unsigned-devinfo = Разработчики, заинтересованные в проверке своих дополнений, могут прочесть наше <label data-l10n-name="learn-more">руководство</label>.
-
 plugin-deprecation-description = Что-то отсутствует? { -brand-short-name } больше не поддерживает некоторые плагины. <label data-l10n-name="learn-more">Подробнее.</label>
-
 legacy-warning-show-legacy = Показать устаревшие расширения
-
 legacy-extensions =
     .value = Устаревшие расширения
-
 legacy-extensions-description = Эти расширения не соответствуют текущим стандартам { -brand-short-name }, поэтому они были отключены. <label data-l10n-name="legacy-learn-more">Узнайте об изменениях в дополнениях</label>
-
 private-browsing-description2 =
     { -brand-short-name } изменяет работу расширений в приватном режиме. Любые новые расширения, которые вы добавите в
     { -brand-short-name }, не будут запускаться по умолчанию в приватных окнах. Если вы не разрешите этого в настройках,
-    расширение не будет работать во время приватного просмотра и не будет иметь доступа к вашей активности в Интернете.
-    Мы внесли это изменение, чтобы сделать ваш приватный просмотр по-настоящему приватным.
+    расширение не будет работать в приватном режиме и не будет иметь доступа к вашей активности в Интернете.
+    Мы внесли это изменение, чтобы сделать ваш приватный режим по-настоящему приватным.
     <label data-l10n-name="private-browsing-learn-more">Узнайте, как управлять настройками расширений.</label>
-
 addon-category-discover = Рекомендации
 addon-category-discover-title =
     .title = Рекомендации
@@ -241,7 +189,6 @@ extensions-warning-update-security = Проверка безопасного о
 extensions-warning-update-security-button = Включить
     .title = Включить проверку безопасного обновления дополнений
 
-
 ## Strings connected to add-on updates
 
 addon-updates-check-for-updates = Проверить наличие обновлений
@@ -287,44 +234,35 @@ addon-open-about-debugging = Отладка дополнений
 # This is displayed in the page options menu
 addon-manage-extensions-shortcuts = Управление горячими клавишами расширений
     .accesskey = п
-
 shortcuts-no-addons = У вас не включено ни одного расширения.
 shortcuts-no-commands = У следующих расширений нет горячих клавиш:
 shortcuts-input =
     .placeholder = Введите горячую клавишу
-
 shortcuts-browserAction2 = Активировать кнопку панели инструментов
 shortcuts-pageAction = Активировать действие на странице
 shortcuts-sidebarAction = Показать/скрыть боковую панель
-
 shortcuts-modifier-mac = Добавьте Ctrl, Alt или ⌘
 shortcuts-modifier-other = Добавьте Ctrl или Alt
 shortcuts-invalid = Неверная комбинация
 shortcuts-letter = Введите букву
 shortcuts-system = Нельзя переопределить горячую клавишу { -brand-short-name }
-
 # String displayed in warning label when there is a duplicate shortcut
 shortcuts-duplicate = Дублирующееся сочетание клавиш
-
 # String displayed when a keyboard shortcut is already assigned to more than one add-on
 # Variables:
 #   $shortcut (string) - Shortcut string for the add-on
 shortcuts-duplicate-warning-message = { $shortcut } используется более одного раза. Дублирующиеся сочетания клавиш могут вызвать неожиданное поведение.
-
 # String displayed when a keyboard shortcut is already used by another add-on
 # Variables:
 #   $addon (string) - Name of the add-on
 shortcuts-exists = Уже используется { $addon }
-
 shortcuts-card-expand-button =
     { $numberToShow ->
         [one] Показать ещё { $numberToShow }
         [few] Показать ещё { $numberToShow }
        *[many] Показать ещё { $numberToShow }
     }
-
 shortcuts-card-collapse-button = Показать меньше
-
 header-back-button =
     .title = Вернуться назад
 
@@ -338,15 +276,12 @@ discopane-intro =
     внешний вид браузера и многое другое. Эти небольшие программные продукты
     обычно разрабатываются сторонними разработчиками. Вот подборка расширений и тем, <a data-l10n-name="learn-more-trigger">рекомендуемых</a> { -brand-product-name } за свою исключительную
     безопасность, производительность и функциональность.
-
 # Notice to make user aware that the recommendations are personalized.
 discopane-notice-recommendations =
     Некоторые из этих рекомендаций персонализированы. Они основаны на других
     установленных вами расширениях, настройках профиля и статистике использования.
 discopane-notice-learn-more = Подробнее
-
 privacy-policy = Политика приватности
-
 # Refers to the author of an add-on, shown below the name of the add-on.
 # Variables:
 #   $author (string) - The name of the add-on developer.
@@ -361,7 +296,6 @@ install-theme-button = Установить тему
 # the detailed add-on view is opened, from where the add-on can be managed.
 manage-addon-button = Управление
 find-more-addons = Найти больше дополнений
-
 # This is a label for the button to open the "more options" menu, it is only
 # used for screen readers.
 addon-options-button =
@@ -387,48 +321,36 @@ preferences-addon-button =
 details-addon-button = Подробности
 release-notes-addon-button = Примечания к выпуску
 permissions-addon-button = Разрешения
-
 extension-enabled-heading = Включены
 extension-disabled-heading = Отключены
-
 theme-enabled-heading = Включены
 theme-disabled-heading = Отключены
-
 plugin-enabled-heading = Включены
 plugin-disabled-heading = Отключены
-
 dictionary-enabled-heading = Включены
 dictionary-disabled-heading = Отключены
-
 locale-enabled-heading = Включены
 locale-disabled-heading = Отключены
-
 ask-to-activate-button = Включать по запросу
-
 always-activate-button = Всегда включать
 never-activate-button = Никогда не включать
-
 addon-detail-author-label = Автор
 addon-detail-version-label = Версия
 addon-detail-last-updated-label = Последнее обновление
 addon-detail-homepage-label = Домашняя страница
 addon-detail-rating-label = Рейтинг
-
 # Message for add-ons with a staged pending update.
 install-postponed-message = Это расширение будет обновлено после перезапуска { -brand-short-name }.
 install-postponed-button = Обновить сейчас
-
 # The average rating that the add-on has received.
 # Variables:
 #   $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
 five-star-rating =
     .title = Оценено на { NUMBER($rating, maximumFractionDigits: 1) } из 5
-
 # This string is used to show that an add-on is disabled.
 # Variables:
 #   $name (string) - The name of the add-on
 addon-name-disabled = { $name } (отключено)
-
 # The number of reviews that an add-on has received on AMO.
 # Variables:
 #   $numberOfReviews (number) - The number of reviews received
@@ -445,20 +367,18 @@ addon-detail-reviews-link =
 #   $addon (string) - Name of the add-on
 pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> было удалено.
 pending-uninstall-undo-button = Отмена
-
 addon-detail-updates-label = Разрешить автообновления
 addon-detail-updates-radio-default = По умолчанию
 addon-detail-updates-radio-on = Включено
 addon-detail-updates-radio-off = Отключено
 addon-detail-update-check-label = Проверить наличие обновлений
 install-update-button = Обновить
-
 # This is the tooltip text for the private browsing badge in about:addons. The
 # badge is the private browsing icon included next to the extension's name.
 addon-badge-private-browsing-allowed2 =
     .title = Разрешено в приватных окнах
     .aria-label = { addon-badge-private-browsing-allowed2.title }
-addon-detail-private-browsing-help = Когда разрешено, расширение будет иметь доступ к вашей активности в Интернете во время приватного просмотра. <a data-l10n-name="learn-more">Подробнее</a>
+addon-detail-private-browsing-help = Когда разрешено, расширение будет иметь доступ к вашей активности в Интернете в приватном режиме. <a data-l10n-name="learn-more">Подробнее</a>
 addon-detail-private-browsing-allow = Разрешить
 addon-detail-private-browsing-disallow = Не разрешать
 
@@ -468,7 +388,6 @@ addon-detail-private-browsing-disallow = Не разрешать
 addon-badge-recommended2 =
     .title = { -brand-product-name } рекомендует только те расширения, которые соответствуют нашим стандартам по безопасности и производительности
     .aria-label = { addon-badge-recommended2.title }
-
 # We hard code "Mozilla" in the string below because the extensions are built
 # by Mozilla and we don't want forks to display "by Fork".
 addon-badge-line3 =
@@ -482,19 +401,14 @@ addon-badge-verified2 =
 
 available-updates-heading = Доступные обновления
 recent-updates-heading = Недавно обновлённые
-
 release-notes-loading = Загрузка…
 release-notes-error = При загрузке примечаний к выпуску возникли проблемы.
-
 addon-permissions-empty = Это расширение не требует дополнительных разрешений
-
 addon-permissions-required = Необходимые разрешения для основных функций:
 addon-permissions-optional = Необязательные разрешения для дополнительных функций:
 addon-permissions-learnmore = Узнать больше о разрешениях
-
 recommended-extensions-heading = Рекомендуемые расширения
 recommended-themes-heading = Рекомендуемые темы
-
 # A recommendation for the Firefox Color theme shown at the bottom of the theme
 # list view. The "Firefox Color" name itself should not be translated.
 recommended-theme-1 = Чувствуете прилив вдохновения? <a data-l10n-name="link">Создайте свою собственную тему с помощью Firefox Color.</a>
@@ -509,10 +423,8 @@ locale-heading = Управление моими языками
 updates-heading = Управление моими обновлениями
 discover-heading = Сделайте { -brand-short-name } своим
 shortcuts-heading = Управление горячими клавишами расширений
-
 default-heading-search-label = Найти больше дополнений
 addons-heading-search-input =
     .placeholder = Поиск на addons.mozilla.org
-
 addon-page-options-button =
     .title = Инструменты для всех дополнений
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutRights.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutRights.ftl
index 5e7d5338ad4345476848879f3f77f26cb3c15a1f..5bc8f9bb5b9d74cdc1b9035d58a0bda9bda80747 100644
--- a/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutRights.ftl
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/about/aboutRights.ftl
@@ -20,11 +20,11 @@ rights-safebrowsing-term-2 = Выберите раздел Защита
 rights-safebrowsing-term-3 = Снимите флажок "{ enableSafeBrowsing-label }"
 enableSafeBrowsing-label = Блокировать опасное и обманывающее содержимое
 rights-safebrowsing-term-4 = Safe Browsing теперь отключён
-rights-locationawarebrowsing = <strong>Определение местоположения при веб-серфинге: </strong>всегда требует вашего разрешения. Никакая информация о местоположении никогда не отправляется без вашего разрешения. Если вы хотите полностью отключить эту функцию, выполните следующие действия:
+rights-locationawarebrowsing = <strong>Определение местоположения сайтами: </strong>всегда требует вашего разрешения. Никакая информация о местоположении никогда не отправляется без вашего разрешения. Если вы хотите полностью отключить эту функцию, выполните следующие действия:
 rights-locationawarebrowsing-term-1 = В строке адреса наберите <code>about:config</code>
 rights-locationawarebrowsing-term-2 = Наберите geo.enabled
 rights-locationawarebrowsing-term-3 = Произведите двойной щелчок по параметру geo.enabled
-rights-locationawarebrowsing-term-4 = Определение местоположения при веб-серфинге теперь отключено
+rights-locationawarebrowsing-term-4 = Определение местоположения сайтами теперь отключено
 rights-webservices-unbranded = Обзор служб информирования о веб-сайтах, включённых в продукт, вместе с инструкциями по их отключению, если таковые требуются, должен быть приведён здесь.
 rights-webservices-term-unbranded = Любые применимые политики использования служб для этого продукта должны быть перечислены здесь.
 rights-webservices-term-1 = { -vendor-short-name } и её сотрудники, лицензиары и партнёры прилагают все усилия для предоставления самой точной и актуальной информации через Службы. Однако мы не можем гарантировать, что эта информация является полной и не содержит ошибок. Например, служба Safe Browsing может не определять некоторые опасные сайты, а может обозначать некоторые безопасные сайты по ошибке как опасные, а все местоположения, возвращаемые нашей Службой Определения Местоположения, являются лишь приблизительными. Ни мы, ни наши сервис-провайдеры не можем гарантировать точность предоставленных местоположений.
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/about/abuseReports.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/about/abuseReports.ftl
index e4dcc7c36146520aca5cc40e70475d0609b0855b..8989f961ea42f0a2a05d21b588c9e7062a80980d 100644
--- a/thunderbird-l10n/ru/localization/ru/toolkit/about/abuseReports.ftl
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/about/abuseReports.ftl
@@ -8,19 +8,15 @@
 # Variables:
 #   $addon-name (string) - Name of the add-on being reported
 abuse-report-dialog-title = Пожаловаться на { $addon-name }
-
 abuse-report-title-extension = Пожаловаться на это расширение в { -vendor-short-name }
 abuse-report-title-theme = Пожаловаться на эту тему в { -vendor-short-name }
 abuse-report-subtitle = С какой проблемой вы столкнулись?
-
 # Variables:
 #   $author-name (string) - Name of the add-on author
 abuse-report-addon-authored-by = от <a data-l10n-name="author-name">{ $author-name }</a>
-
 abuse-report-learnmore =
     Не знаете, какую проблему выбрать?
     <a data-l10n-name="learnmore-link">Подробнее о жалобах на расширения и темы</a>
-
 abuse-report-submit-description = Опишите проблему (необязательно)
 abuse-report-textarea =
     .placeholder = Нам легче решить проблему, если она подробно описана. Пожалуйста, расскажите все подробности. Спасибо за помощь в поддержке здорового Интернета.
@@ -41,6 +37,7 @@ abuse-report-submit-button = Отправить
 ## Variables:
 ##   $addon-name (string) - Name of the add-on
 
+
 ## Message bars descriptions.
 ##
 ## Variables:
@@ -68,18 +65,14 @@ abuse-report-messagebar-action-cancel = Отмена
 
 abuse-report-damage-reason-v2 = Вредит работе компьютера или крадёт мои данные
 abuse-report-damage-example = Например: Вредоносное ПО или кража данных
-
 abuse-report-spam-reason-v2 = Содержит спам или вставляет нежелательную рекламу
 abuse-report-spam-example = Например: Вставляет рекламу на веб-страницы
-
 abuse-report-settings-reason-v2 = Изменяет мою поисковую систему, домашнюю страницу или страницу новой вкладки, не сообщая и не спрашивая меня
 abuse-report-settings-suggestions = Перед отправкой жалобы на расширение, вы можете попробовать изменить настройки:
 abuse-report-settings-suggestions-search = Изменяет настройки поиска по умолчанию
 abuse-report-settings-suggestions-homepage = Изменяет домашнюю страницу и страницу новой вкладки
-
 abuse-report-deceptive-reason-v2 = Выдаёт себя не за то, чем является
 abuse-report-deceptive-example = Например: Описание или изображение вводят в заблуждение
-
 abuse-report-broken-reason-extension-v2 = Не работает, ломает веб-сайты или замедляет работу { -brand-product-name }
 abuse-report-broken-reason-theme-v2 = Не работает или нарушает работу браузера
 abuse-report-broken-example = Например: Медленная работа, трудности с использованием или не работает; части веб-сайтов не загружаются или выглядят необычно
@@ -88,18 +81,14 @@ abuse-report-broken-suggestions-extension =
     решения проблемы будет связь с разработчиком расширения.
     <a data-l10n-name="support-link">Посетите веб-сайт расширения</a> для получения информации о разработчике.
 abuse-report-broken-suggestions-theme =
-    Похоже, что вы обнаружили ошибку. В дополнение к отправке жалобы здесь, лучшим способом
+    Похоже, что вы обнаружили ошибку. В дополнение к отправке отчёта здесь, лучшим способом
     решения проблемы будет связь с разработчиком темы.
     <a data-l10n-name="support-link">Посетите веб-сайт темы</a> для получения информации о разработчике.
-
 abuse-report-policy-reason-v2 = Содержит незаконное, жестокое, вызывающее ненависть содержимое
 abuse-report-policy-suggestions =
     Примечание: Жалобы о нарушении авторских прав или прав на товарный знак должны подаваться отдельно.
     <a data-l10n-name="report-infringement-link">Воспользуйтесь этими инструкциями</a>, чтобы
     сообщить о проблеме.
-
 abuse-report-unwanted-reason-v2 = Я никогда не устанавливал(а) его и не знаю, как от него избавиться
 abuse-report-unwanted-example = Например: Приложение установило его без моего разрешения
-
 abuse-report-other-reason = Что-то другое
-
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/featuregates/features.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/featuregates/features.ftl
index bf211009490d5ab50474f2f370274b459d24a84b..6bdffb0bbf2b39e3c7fe9f4666920933cdc8e83b 100644
--- a/thunderbird-l10n/ru/localization/ru/toolkit/featuregates/features.ftl
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/featuregates/features.ftl
@@ -7,103 +7,84 @@
 experimental-features-css-masonry2 =
     .label = CSS: «Masonry-раскладка»
 experimental-features-css-masonry-description = Включает поддержку экспериментальной «Masonry-раскладки» в CSS. Прочтите <a data-l10n-name="explainer">объяснения</a> для получения высокоуровневого описания функции. Оставляйте свои отзывы и комментарии в <a data-l10n-name="w3c-issue">этой issue на GitHub</a> или в <a data-l10n-name="bug">этом баг-репорте</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-gpu2 =
     .label = Web API: WebGPU
 experimental-features-web-gpu-description2 = Этот новый API предоставляет низкоуровневую поддержку совершения вычислений и отображения графики с помощью <a data-l10n-name="wikipedia">графических процессоров (GPU)</a> компьютера пользователя. <a data-l10n-name="spec">Спецификация</a> всё ещё находится в разработке. Дополнительную информацию можно узнать в  <a data-l10n-name="bugzilla">баге 1602129</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-avif =
     .label = Media: AVIF
 experimental-features-media-avif-description = Если эта функция включена, { -brand-short-name } будет поддерживать формат AV1 Image File (AVIF). Это формат файлов неподвижных изображений, который использует возможности алгоритмов сжатия видео AV1, чтобы уменьшить размер файла. Дополнительная информация доступна в <a data-l10n-name="bugzilla">баге 1443863</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-jxl =
     .label = Медиа: JPEG XL
 experimental-features-media-jxl-description = При включении этой функции, { -brand-short-name } начнёт поддерживать формат JPEG XL (JXL). Это улучшенный формат файлов изображений, который поддерживает сжатие без потерь обычных файлов JPEG. Дополнительная информация доступна в <a data-l10n-name="bugzilla">баге 1539075</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-api-inputmode =
     .label = Web API: inputmode
 # "inputmode" and "contenteditable" are technical terms and shouldn't be translated.
 experimental-features-web-api-inputmode-description = Наша реализация глобального атрибута <a data-l10n-name="mdn-inputmode">inputmode</a> была обновлена в соответствии со <a data-l10n-name="whatwg">спецификацией WHATWG</a>, однако нам нужно произвести дополнительные изменения, такие как обеспечить его доступность для "contenteditable" содержимого. Дополнительная информация доступна в <a data-l10n-name="bugzilla">баге 1205133</a>.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-css-constructable-stylesheets =
     .label = CSS: Constructable Stylesheets
 experimental-features-css-constructable-stylesheets-description = Добавление конструктора к интерфейсу <a data-l10n-name="mdn-cssstylesheet">CSSStyleSheet</a>, а также ряд связанных с этим изменений позволяют напрямую создавать новые таблицы стилей без необходимости добавления листа в HTML. Это значительно упрощает создание таблиц стилей многократного использования с <a data-l10n-name="mdn-shadowdom">Shadow DOM</a>. Для получения дополнительной информации прочитайте  <a data-l10n-name="bugzilla">баг 1520690</a>.
-
 experimental-features-devtools-color-scheme-simulation =
     .label = Инструменты разработчика: Симуляция цветовой схемы
 experimental-features-devtools-color-scheme-simulation-description = Добавляет опцию для симуляции различных цветовых схем, позволяющую тестировать медиазапросы <a data-l10n-name="mdn-preferscolorscheme">@prefers-color-scheme</a>. Использование этого медиазапроса позволяет вашей таблице стилей ответить на то, предпочитает ли пользователь светлый или тёмный интерфейс пользователя. Эта функция позволяет вам тестировать код без необходимости изменять настройки в вашем браузере (или операционной системе, если браузер следует общесистемной настройке цветовой схемы). Для получения дополнительной информации прочитайте <a data-l10n-name="bugzilla1">баг 1550804</a> и <a data-l10n-name="bugzilla2">баг 1137699</a>.
-
 experimental-features-devtools-execution-context-selector =
     .label = Инструменты разработчика: Выбор контекста выполнения
 experimental-features-devtools-execution-context-selector-description = Эта функция отображает кнопку в командной строке консоли, позволяющую изменить контекст, в котором будет выполняться введённое вами выражение. Для получения дополнительной информации прочитайте <a data-l10n-name="bugzilla1">баг 1605154</a> и <a data-l10n-name="bugzilla2">баг 1605153</a>.
-
 experimental-features-devtools-compatibility-panel =
     .label = Инструменты разработчика: Панель совместимости
 experimental-features-devtools-compatibility-panel-description = Боковая панель для Инспектора страниц, отображающая информацию о состоянии кроссбраузерной совместимости вашего приложения. Для получения дополнительной информации прочитайте <a data-l10n-name="bugzilla">баг 1584464</a>.
-
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-lax-by-default2 =
     .label = Куки: SameSite = Lax по умолчанию
 experimental-features-cookie-samesite-lax-by-default2-description = Рассматривать куки по умолчанию как «SameSite = Lax», если не указан атрибут «SameSite». Чтобы работать в режиме текущего статус-кво неограниченного использования, разработчики должны будут в явном виде указывать «SameSite = None».
-
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-none-requires-secure2 =
     .label = Куки: SameSite = None требует атрибута «secure»
 experimental-features-cookie-samesite-none-requires-secure2-description = Куки с атрибутом «SameSite = None» требуют атрибута «secure». Для работы этой функции необходимо включить «Куки: SameSite = Lax по умолчанию».
-
 # about:home should be kept in English, as it refers to the the URI for
 # the internal default home page.
 experimental-features-abouthome-startup-cache =
     .label = Кэш запуска about:home
 experimental-features-abouthome-startup-cache-description = Кэш для изначального документа about:home, который загружается по умолчанию при запуске. Целью кеша является повышение скорости запуска.
-
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-cookie-samesite-schemeful =
     .label = Куки: Schemeful SameSite
 experimental-features-cookie-samesite-schemeful-description = Рассматривать куки из одинакового домена, но с отличающимися схемами (например, http://example.com и https://example.com) как межсайтовые, а не относящиеся к одному сайту. Повышает безопасность, но потенциально может привести к нарушению работы.
-
 # "Service Worker" is an API name and is usually not translated.
 experimental-features-devtools-serviceworker-debugger-support =
     .label = Инструменты разработчика: Отладка Service Worker
 # "Service Worker" is an API name and is usually not translated.
 experimental-features-devtools-serviceworker-debugger-support-description = Добавляет экспериментальную поддержку Service Workers'ов на Панель отладчика. Это функция может замедлять работу Инструментов разработчика и увеличить потребление памяти.
-
 # WebRTC global mute toggle controls
 experimental-features-webrtc-global-mute-toggles =
     .label = Переключатель глобального отключения звука WebRTC
 experimental-features-webrtc-global-mute-toggles-description = Добавляет элементы управления к глобальному индикатору доступа WebRTC, который позволяет пользователям глобально отключать доступ к их микрофону и камере.
-
 # Win32k Lockdown
 experimental-features-win32k-lockdown =
     .label = Блокировка Win32k
 experimental-features-win32k-lockdown-description = Запрещает использование API Win32k во вкладках браузера. Повышает безопасность, однако в данный момент это может работать нестабильно или с ошибками (только в Windows).
-
 # JS JIT Warp project
 experimental-features-js-warp =
     .label = JavaScript JIT: Warp
 experimental-features-js-warp-description = Активирует проект Warp, повышающий производительность JavaScript и снижающий потребление памяти.
-
 # Fission is the name of the feature and should not be translated.
 experimental-features-fission =
     .label = Fission (изоляция сайта)
-experimental-features-fission-description = Fission (изоляция сайта) — это экспериментальная функция в { -brand-short-name }, обеспечивающая дополнительный уровень защиты от ошибок системы безопасности. Изолируя каждый сайт в отдельный процесс, Fission затрудняет доступ вредоносных веб-сайтов к информации с других посещаемых вами страниц. Это серьезное архитектурное изменение в { -brand-short-name }, и мы будем благодарны вас за тестирование и сообщения о любых проблемах, с которыми вы можете столкнуться. Для получения дополнительных сведений прочтите <a data-l10n-name="wiki">вики</a>.
-
+experimental-features-fission-description = Fission (изоляция сайта) — это экспериментальная функция в { -brand-short-name }, обеспечивающая дополнительный уровень защиты от ошибок системы безопасности. Изолируя каждый сайт в отдельный процесс, Fission затрудняет доступ вредоносных веб-сайтов к информации с других посещаемых вами страниц. Это серьёзное архитектурное изменение в { -brand-short-name }, и мы будем благодарны вам за тестирование и сообщения о любых проблемах, с которыми вы можете столкнуться. Для получения дополнительных сведений прочтите <a data-l10n-name="wiki">вики</a>.
 # Support for having multiple Picture-in-Picture windows open simultaneously
 experimental-features-multi-pip =
     .label = Поддержка нескольких окон «Картинка в картинке»
 experimental-features-multi-pip-description = Экспериментальная поддержка, позволяющая одновременно открывать несколько окон «Картинка в картинке».
-
 # Search during IME
 experimental-features-ime-search =
     .label = Адресная строка: показывать результаты при составлении IME
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/ru/localization/ru/toolkit/global/textActions.ftl b/thunderbird-l10n/ru/localization/ru/toolkit/global/textActions.ftl
index 2d2244bdf3b8055f295c6113e2a576fef85a82db..e995c00f05d30e9e6cf536ad04ec3781141af262 100644
--- a/thunderbird-l10n/ru/localization/ru/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/ru/localization/ru/toolkit/global/textActions.ftl
@@ -4,49 +4,51 @@
 
 text-action-undo =
     .label = Отменить
-    .accesskey = О
-
+    .accesskey = ь
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Повторить
     .accesskey = р
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Вырезать
-    .accesskey = Ð’
-
+    .accesskey = з
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Копировать
-    .accesskey = К
-
+    .accesskey = п
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Вставить
     .accesskey = с
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Удалить
-    .accesskey = У
-
+    .accesskey = Ñ‚
 text-action-select-all =
     .label = Выделить всё
-    .accesskey = д
-
+    .accesskey = Ñ‘
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Вариантов не найдено
+text-action-spell-add-to-dictionary =
+    .label = Добавить в словарь
+    .accesskey = а
+text-action-spell-undo-add-to-dictionary =
+    .label = Отменить добавление в словарь
+    .accesskey = м
+text-action-spell-check-toggle =
+    .label = Проверка орфографии
+    .accesskey = в
+text-action-spell-add-dictionaries =
+    .label = Добавить словари…
+    .accesskey = л
+text-action-spell-dictionaries =
+    .label = Языки
+    .accesskey = Ñ‹
diff --git a/thunderbird-l10n/ru/manifest.json b/thunderbird-l10n/ru/manifest.json
index 155b4402adef6bf3827271876fd0c42ce621017c..ffde7c9b7ee663040c1665bc834546a4ee8d7c6b 100644
--- a/thunderbird-l10n/ru/manifest.json
+++ b/thunderbird-l10n/ru/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Russian (RU) Language Pack",
   "description": "Language pack for Thunderbird for ru",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "ru": {
-      "version": "20210815133459",
+      "version": "20210831122509",
       "chrome_resources": {
         "alerts": "chrome/ru/locale/ru/alerts/",
         "autoconfig": "chrome/ru/locale/ru/autoconfig/",
diff --git a/thunderbird-l10n/sk/chrome/sk/locale/sk/global/layout/htmlparser.properties b/thunderbird-l10n/sk/chrome/sk/locale/sk/global/layout/htmlparser.properties
index efe663e56a2c497ffa2b926f469e994e42968c7d..46db40aa3017f1216b1ed371e6053e0d4b5fe9f9 100644
--- a/thunderbird-l10n/sk/chrome/sk/locale/sk/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/sk/chrome/sk/locale/sk/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Dosiahnutý koniec súboru vo vnútri identifikátora system.
 errExpectedSystemId=Bol očakávaný identifikátor system, ale doctype už bol ukončený.
 errMissingSpaceBeforeDoctypeName=Pred názvom doctype chýba medzera.
 errHyphenHyphenBang=V komentári bolo nájdené “--!”.
+errNestedComment=V komentári sa nachádza sekvencia “<!--”. Pravdepodobne ide o vnorený komentár, ktoré nie sú povolené.
 errNcrZero=Referencia znaku reprezentuje nulový znak.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Medzi kľúčovým slovom doctype “SYSTEM” a úvodzovkou chýba medzera.
 errNoSpaceBetweenPublicAndSystemIds=Medzi verejným a systémovým identifikátorom doctype chýba medzera.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Neukončené prvky v zásobníku.
 errEndTagDidNotMatchCurrentOpenElement=Koncová značka “%1$S” nezodpovedá názvu aktuálne otvoreného prvku “%2$S”.
 errEndTagViolatesNestingRules=Koncová značka “%1$S” porušuje pravidlá vnorenia.
 errEndWithUnclosedElements=Bola nájdená koncová značka pre “%1$S”, avšak stále nie sú uzavreté niektoré prvky.
+errListUnclosedStartTags=Neukončený prvok alebo prvky.
diff --git a/thunderbird-l10n/sk/localization/sk/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/sk/localization/sk/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..4fd6297aac13044acbec249fb26326d23fc02e98
--- /dev/null
+++ b/thunderbird-l10n/sk/localization/sk/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,41 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Odstrániť udalosť
+        [few] Odstrániť udalosti
+       *[other] Odstrániť udalosti
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Naozaj chcete odstrániť túto udalosť?
+        [few] Naozaj chcete odstrániť tieto { $count } udalosti?
+       *[other] Naozaj chcete odstrániť týchto { $count } udalostí?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Odstrániť úlohu
+        [few] Odstrániť úlohy
+       *[other] Odstrániť úlohy
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Naozaj chcete odstrániť túto úlohu?
+        [few] Naozaj chcete odstrániť tieto { $count } úlohy?
+       *[other] Naozaj chcete odstrániť týchto { $count } úloh?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Odstrániť položku
+        [few] Odstrániť položky
+       *[other] Odstrániť položky
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Naozaj chcete odstrániť túto položku?
+        [few] Naozaj chcete odstrániť tieto { $count } položky?
+       *[other] Naozaj chcete odstrániť týchto { $count } položiek?
+    }
+calendar-delete-prompt-disable-message = Nabudúce sa už nepýtať
diff --git a/thunderbird-l10n/sk/localization/sk/calendar/preferences.ftl b/thunderbird-l10n/sk/localization/sk/calendar/preferences.ftl
index 940af1243c94bc8b49ab4a373fafd8b46ba46a05..ddef24fcfb7cf094bf5a52833e40103435d09e6d 100644
--- a/thunderbird-l10n/sk/localization/sk/calendar/preferences.ftl
+++ b/thunderbird-l10n/sk/localization/sk/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Upravovať udalosti a úlohy na karte namiesto dialógového okna.
     .accesskey = r
+prompt-delete-label =
+    .label = Zobraziť výzvu pred odstránením udalostí a úloh.
+    .accesskey = b
 accessibility-legend = Zjednodušenie ovládania
 accessibility-colors-label =
     .label = Optimalizovať farby pre zjednodušenie ovládania
diff --git a/thunderbird-l10n/sk/localization/sk/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/sk/localization/sk/messenger/accountcreation/accountSetup.ftl
index cf21afed582e6b4a9aa77464e0071e03dc062f9f..65432dfe50d8c3c1d8984f817728bdc35b466b58 100644
--- a/thunderbird-l10n/sk/localization/sk/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/sk/localization/sk/messenger/accountcreation/accountSetup.ftl
@@ -41,6 +41,10 @@ account-provisioner-button = Získať novú e-mailovú adresu
     .accesskey = n
 account-setup-password-toggle =
     .title = Zobraziť/skryť heslo
+account-setup-password-toggle-show =
+    .title = Zobraziť heslo ako čistý text
+account-setup-password-toggle-hide =
+    .title = Skryť heslo
 account-setup-remember-password = Zapamätať si heslo
     .accesskey = Z
 account-setup-exchange-label = Vaše prihlasovacie údaje
@@ -210,6 +214,17 @@ exchange-dialog-question = { -brand-short-name } našiel informácie o nastaven
 exchange-dialog-confirm-button = Prihlásiť sa
 exchange-dialog-cancel-button = Zrušiť
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Nie je nakonfigurovaný žiadny e-mailový účet
+exit-dialog-description = Naozaj chcete zrušiť proces nastavenia? { -brand-short-name } je stále možné používať aj bez e-mailového účtu, ale mnohé funkcie nebudú k dispozícii.
+account-setup-no-account-checkbox = Používať { -brand-short-name } bez e-mailového účtu
+    .accesskey = u
+exit-dialog-cancel-button = Pokračovať v nastavení
+    .accesskey = P
+exit-dialog-confirm-button = Ukončiť nastavenie
+    .accesskey = U
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Chyba pri vytváraní účtu
diff --git a/thunderbird-l10n/sk/localization/sk/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/sk/localization/sk/messenger/addressbook/aboutAddressBook.ftl
index b25a0e80e2e38ee47e0e35e8b9adf6a70e666a86..db8bd3df4e07ed2270df638f9624d6029122bd47 100644
--- a/thunderbird-l10n/sk/localization/sk/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/sk/localization/sk/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Všetky adresáre kontaktov
-
 about-addressbook-books-context-properties =
     .label = Vlastnosti
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Odstrániť
 about-addressbook-books-context-remove =
     .label = Odstrániť
-
 about-addressbook-confirm-delete-book-title = Odstránenie adresára
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Hľadať v adresári { $name }
 about-addressbook-search-all =
     .placeholder = Hľadať vo všetkých adresároch
-
 about-addressbook-sort-button =
     .title = Zmeniť poradie zoznamu
-
 about-addressbook-name-format-display =
     .label = Zobrazované meno
 about-addressbook-name-format-firstlast =
     .label = Meno Priezvisko
 about-addressbook-name-format-lastfirst =
     .label = Priezvisko, Meno
-
 about-addressbook-sort-name-ascending =
     .label = Usporiadať podľa mena (A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Usporiadať podľa e-mailovej adresy (A > Z)
 about-addressbook-sort-email-descending =
     .label = Usporiadať podľa e-mailovej adresy (Z > A)
-
+about-addressbook-cards-context-write =
+    .label = Napísať správu
 about-addressbook-confirm-delete-mixed-title = Odstránenie kontaktov a zoznamov
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -131,7 +127,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Upraviť
 about-addressbook-cancel-edit-contact-button = Zrušiť
 about-addressbook-save-edit-contact-button = Uložiť
-
 about-addressbook-details-email-addresses-header = E-mailové adresy
 about-addressbook-details-phone-numbers-header = Telefónne čísla
 about-addressbook-details-home-address-header = Adresa domov
diff --git a/thunderbird-l10n/sk/localization/sk/messenger/importDialog.ftl b/thunderbird-l10n/sk/localization/sk/messenger/importDialog.ftl
index 1f09aad3f32cb1571ef597d41654c9846d8ddfe9..f47bf4b54f0c1d5cb8df362e51a47b3de3a54e45 100644
--- a/thunderbird-l10n/sk/localization/sk/messenger/importDialog.ftl
+++ b/thunderbird-l10n/sk/localization/sk/messenger/importDialog.ftl
@@ -6,4 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Importuje poštu z priečinka profilu Thunderbirdu.
+import-from-thunderbird-zip =
+    .label = Thunderbird (záloha exportovaného profilu; súbor zip menší ako 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (priečinok profilu)
+    .accesskey = T
 import-select-profile-zip = Zvoľte priečinok so skomprimovaným profilom
+import-select-profile-dir = Zvoľte priečinok profilu
+zip-file-too-big-title = Súbor ZIP je príliš veľký
+zip-file-too-big-message = Zvolený súbor zip je väčší ako 2 GB. Najprv ho rozbaľte a potom importujte z extrahovaného priečinka.
+wizardpage-failed =
+    .label = Import zlyhal
+wizardpage-failed-message = Import neočakávane zlyhal, ďalšie informácie môžu byť k dispozícii v Chybovej konzole.
diff --git a/thunderbird-l10n/sk/localization/sk/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/sk/localization/sk/messenger/messengercompose/messengercompose.ftl
index ac5b3b851a088b3aebacf0c95b2931114efe8d04..7c57789de289c55fe3976bfb28f601d3a3410871 100644
--- a/thunderbird-l10n/sk/localization/sk/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/sk/localization/sk/messenger/messengercompose/messengercompose.ftl
@@ -66,6 +66,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Pridať prílohu…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Pridať prílohu…
+    .accesskey = h
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Súbor…
     .accesskey = S
@@ -159,12 +163,76 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Zobraziť pole { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Príjemcovia (celkom { $count }) v poliach Komu a Kópia si navzájom uvidia adresy. Zverejňovaniu príjemcov sa môžete vyhnúť použitím Skrytej kópie.
+to-address-row-label =
+    .value = Komu
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Pole Komu
+    .accesskey = m
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Komu
+    .accesskey = m
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Komu
+    .title = Zobraziť pole Komu ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kópia
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Pole Kópia
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kópia
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kópia
+    .title = Zobraziť pole Kópia ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Skrytá kópia
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Pole Skrytá kópia
+    .accesskey = S
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Skrytá kópia
+    .accesskey = S
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Skrytá kópia
+    .title = Zobraziť pole Skrytá kópia ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Ostatné polia s adresou, ktoré sa majú zobraziť
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Vaša správa má viditeľného príjemcu. Zverejňovaniu príjemcov sa môžete vyhnúť použitím Skrytej kópie.
+        [few] Príjemcovia (celkom { $count }) v poliach Komu a Kópia si navzájom uvidia adresy. Zverejňovaniu príjemcov sa môžete vyhnúť použitím Skrytej kópie.
+       *[other] Príjemcovia (celkom { $count }) v poliach Komu a Kópia si navzájom uvidia adresy. Zverejňovaniu príjemcov sa môžete vyhnúť použitím Skrytej kópie.
+    }
 many-public-recipients-bcc =
     .label = Použiť Skrytú kópiu
     .accesskey = S
 many-public-recipients-ignore =
     .label = Ponechať príjemcov viditeľných
     .accesskey = P
+many-public-recipients-prompt-title = Príliš veľa verejných príjemcov
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Vaša správa má viditeľného príjemcu. Môže ísť o problém ochrany osobných údajov. Odhaleniu príjemcov sa môžete vyhnúť presunutím príjemcov z polí Komu/Kópia do poľa Skrytá kópia.
+        [few] Vaša správa má { $count } príjemcov, ktorí si budú navzájom vidieť adresy. Môže ísť o problém ochrany osobných údajov. Odhaleniu príjemcov sa môžete vyhnúť presunutím príjemcov z polí Komu/Kópia do poľa Skrytá kópia.
+       *[other] Vaša správa má { $count } príjemcov, ktorí si budú navzájom vidieť adresy. Môže ísť o problém ochrany osobných údajov. Odhaleniu príjemcov sa môžete vyhnúť presunutím príjemcov z polí Komu/Kópia do poľa Skrytá kópia.
+    }
+many-public-recipients-prompt-cancel = Zrušiť odoslanie
+many-public-recipients-prompt-send = Napriek tomu odoslať
 
 ## Notifications
 
diff --git a/thunderbird-l10n/sk/localization/sk/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/sk/localization/sk/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..46f9d330c17f91d54cfaf3e109bb3a5bef94fb13
--- /dev/null
+++ b/thunderbird-l10n/sk/localization/sk/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Dokončiť inštaláciu aplikácie { -brand-short-name }?
+prompt-to-install-message = Dokončite túto jednokrokovú inštaláciu, aby bola aplikácia { -brand-short-name } aktualizovaná a zabránilo sa strate údajov. { -brand-short-name } bude pridaný do vášho priečinka Aplikácie a do Docku.
+prompt-to-install-yes-button = Nainštalovať
+prompt-to-install-no-button = Neinštalovať
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Inštalácia aplikácie { -brand-short-name } zlyhala.
+install-failed-message = { -brand-short-name } sa nepodarilo nainštalovať, ale bude naďalej fungovať.
diff --git a/thunderbird-l10n/sk/localization/sk/toolkit/global/textActions.ftl b/thunderbird-l10n/sk/localization/sk/toolkit/global/textActions.ftl
index 0996e576d6020720cad98446484489ae454e5c29..b7d0f35ef283202247c486019f504a77079e7bb9 100644
--- a/thunderbird-l10n/sk/localization/sk/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/sk/localization/sk/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Späť
     .accesskey = S
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Znovu
     .accesskey = Z
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Vystrihnúť
     .accesskey = V
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopírovať
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Prilepiť
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Odstrániť
     .accesskey = O
-
 text-action-select-all =
     .label = Vybrať všetko
     .accesskey = a
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Žiadne pravopisné návrhy
+text-action-spell-add-to-dictionary =
+    .label = Pridať do slovníka
+    .accesskey = r
+text-action-spell-undo-add-to-dictionary =
+    .label = Vrátiť späť pridanie do slovníka
+    .accesskey = r
+text-action-spell-check-toggle =
+    .label = Kontrola pravopisu
+    .accesskey = n
+text-action-spell-add-dictionaries =
+    .label = Pridať slovníky…
+    .accesskey = P
+text-action-spell-dictionaries =
+    .label = Jazyky
+    .accesskey = J
diff --git a/thunderbird-l10n/sk/manifest.json b/thunderbird-l10n/sk/manifest.json
index 0d5496661a205cc6d08dc621b311aaf5eeb844ad..0b0818f5ad8cf7932e2906a96b3c152ee8ebd8d4 100644
--- a/thunderbird-l10n/sk/manifest.json
+++ b/thunderbird-l10n/sk/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Slovak (SK) Language Pack",
   "description": "Language pack for Thunderbird for sk",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "sk": {
-      "version": "20210814192844",
+      "version": "20210831161549",
       "chrome_resources": {
         "alerts": "chrome/sk/locale/sk/alerts/",
         "autoconfig": "chrome/sk/locale/sk/autoconfig/",
diff --git a/thunderbird-l10n/sl/chrome/sl/locale/sl/global/dom/dom.properties b/thunderbird-l10n/sl/chrome/sl/locale/sl/global/dom/dom.properties
index 92c5aa805d6e63d92192f1c23cb763847c54fc75..2ae0b8bccd1d9b506bb6cc9728448f1bdbe065db 100644
--- a/thunderbird-l10n/sl/chrome/sl/locale/sl/global/dom/dom.properties
+++ b/thunderbird-l10n/sl/chrome/sl/locale/sl/global/dom/dom.properties
@@ -37,7 +37,8 @@ FormValidationFileMissing=Izberite datoteko.
 FormValidationSelectMissing=Izberite predmet na seznamu.
 FormValidationInvalidEmail=Vnesite elektronski naslov.
 FormValidationInvalidURL=Vnesite URL.
-FormValidationInvalidDate =Vnesite veljaven datum.
+FormValidationInvalidDate=Vnesite veljaven datum.
+FormValidationInvalidTime=Vnesite veljaven čas.
 FormValidationPatternMismatch=Uporabite zahtevano obliko.
 # LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
 FormValidationPatternMismatchWithTitle=Uporabite zahtevano obliko: %S.
@@ -422,7 +423,6 @@ ElementReleaseCaptureWarning=Element.releaseCapture() je zastarel. Namesto njega
 # LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
 DocumentReleaseCaptureWarning=Document.releaseCapture() je zastarel. Namesto njega uporabite Element.releasePointerCapture(). Za pomoč glejte https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
 
-FormValidationInvalidTime=Please enter a valid time.
 # LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
 MediaElementStreamCaptureCycle=The MediaStream assigned to srcObject comes from a capture of this HTMLMediaElement, forming a cycle, assignment ignored.
 WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
diff --git a/thunderbird-l10n/sl/localization/sl/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/sl/localization/sl/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..47d54218129773adec9f353526b764275dba7008
--- /dev/null
+++ b/thunderbird-l10n/sl/localization/sl/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,47 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Izbriši dogodek
+        [two] Izbriši dogodka
+        [few] Izbriši dogodke
+       *[other] Izbriši dogodke
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Ali res želite izbrisati ta dogodek?
+        [two] Ali res želite izbrisati ta { $count } dogodka?
+        [few] Ali res želite izbrisati te { $count } dogodke?
+       *[other] Ali res želite izbrisati teh { $count } dogodkov?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Izbriši opravilo
+        [two] Izbriši opravili
+        [few] Izbriši opravila
+       *[other] Izbriši opravila
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Ali res želite izbrisati to opravilo?
+        [two] Ali res želite izbrisati ti { $count } opravili?
+        [few] Ali res želite izbrisati ta { $count } opravila?
+       *[other] Ali res želite izbrisati teh { $count } opravil?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Izbriši predmet
+        [two] Izbriši predmeta
+        [few] Izbriši predmete
+       *[other] Izbriši predmete
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Ali res želite izbrisati ta predmet?
+        [two] Ali res želite izbrisati ta { $count } predmeta?
+        [few] Ali res želite izbrisati te { $count } predmete?
+       *[other] Ali res želite izbrisati teh { $count } predmetov?
+    }
+calendar-delete-prompt-disable-message = Ne sprašuj več.
diff --git a/thunderbird-l10n/sl/localization/sl/calendar/preferences.ftl b/thunderbird-l10n/sl/localization/sl/calendar/preferences.ftl
index ee24244350b6f11fa0911c24210d454f6d1ba842..47147bb6dbbc3cc45c514f5fadde7618c9840337 100644
--- a/thunderbird-l10n/sl/localization/sl/calendar/preferences.ftl
+++ b/thunderbird-l10n/sl/localization/sl/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Uredi dogodke in opravila v zavihku namesto v pogovornem oknu.
     .accesskey = U
+prompt-delete-label =
+    .label = Vprašaj pred brisanjem dogodkov in opravil.
+    .accesskey = V
 accessibility-legend = Dostopnost
 accessibility-colors-label =
     .label = Optimiziraj barve za dostopnost
diff --git a/thunderbird-l10n/sl/localization/sl/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/sl/localization/sl/messenger/accountcreation/accountSetup.ftl
index e4de50f5441e9c28c1bef8fa1cb225b77ba270ca..2b04c4920e00a5baef9cfad16b46236cf06e66d6 100644
--- a/thunderbird-l10n/sl/localization/sl/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/sl/localization/sl/messenger/accountcreation/accountSetup.ftl
@@ -38,6 +38,10 @@ account-provisioner-button = Pridobite nov e-poštni naslov
     .accesskey = n
 account-setup-password-toggle =
     .title = Pokaži/skrij geslo
+account-setup-password-toggle-show =
+    .title = Pokaži geslo kot čisto besedilo
+account-setup-password-toggle-hide =
+    .title = Skrij geslo
 account-setup-remember-password = Zapomni si geslo
     .accesskey = Z
 account-setup-exchange-label = Vaša prijava
@@ -205,6 +209,13 @@ exchange-dialog-question = { -brand-short-name } je našel podatke za nastavitev
 exchange-dialog-confirm-button = Prijava
 exchange-dialog-cancel-button = Prekliči
 
+## Dismiss account creation dialog
+
+account-setup-no-account-checkbox = Uporabljaj { -brand-short-name } brez e-poštnega računa
+    .accesskey = U
+exit-dialog-cancel-button = Nadaljuj nastavitev
+    .accesskey = N
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Napaka pri ustvarjanju računa
diff --git a/thunderbird-l10n/sl/localization/sl/messenger/importDialog.ftl b/thunderbird-l10n/sl/localization/sl/messenger/importDialog.ftl
index c7c27a75b07bb2822a5afe74c8ed1bf51bfee22a..0376608f13795c63cb9ad0f1cfe5b3bbd2ddf980 100644
--- a/thunderbird-l10n/sl/localization/sl/messenger/importDialog.ftl
+++ b/thunderbird-l10n/sl/localization/sl/messenger/importDialog.ftl
@@ -6,4 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Uvozite pošto iz Thunderbirdove mape s profilom.
+import-from-thunderbird-zip =
+    .label = Thunderbird (izvožena varnostna kopija profila; datoteka .zip, manjša od 2&nbsp;GB)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird (mapa s profilom)
+    .accesskey = T
 import-select-profile-zip = Izberite stisnjeno mapo s profilom
+import-select-profile-dir = Izberite mapo s profilom
+zip-file-too-big-title = Datoteka .zip je prevelika
+zip-file-too-big-message = Izbrana datoteka .zip je večje od 2&nbsp;GB. Namesto uvoza jo ekstrahirajte, nato pa uvozite ekstrahirano mapo.
+wizardpage-failed =
+    .label = Uvoz neuspešen
+wizardpage-failed-message = Uvoz je nepričakovano spodletel. Več podatkov je morda na voljo v konzoli napak.
diff --git a/thunderbird-l10n/sl/localization/sl/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/sl/localization/sl/messenger/messengercompose/messengercompose.ftl
index 98042e53d931ae259c937e06c7b953505ef3fae2..63a45e77034a7ab06f6273a889df28c57e66a668 100644
--- a/thunderbird-l10n/sl/localization/sl/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/sl/localization/sl/messenger/messengercompose/messengercompose.ftl
@@ -68,6 +68,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Dodaj priponko …
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Dodaj priponko …
+    .accesskey = p
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Datoteke …
     .accesskey = D
@@ -164,12 +168,70 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Prikaži polje { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Prejemniki v poljih Za in Kp ({ $count }) bodo videli naslove drug drugega. Prejemnike lahko prikrijete tako, da uporabite polje Skp.
+to-address-row-label =
+    .value = Za
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Polje Za
+    .accesskey = Z
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Za
+    .accesskey = Z
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Za
+    .title = Prikaži polje Za ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kp
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Polje Kp
+    .accesskey = K
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kp
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kp
+    .title = Prikaži polje Kp ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Skp
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Polje Skp
+    .accesskey = S
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Skp
+    .accesskey = S
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Skp
+    .title = Prikaži polje Skp ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Druga polja za naslavljanje, ki naj bodo prikazana
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Sporočilo ima javnega prejemnika.  Prejemnike lahko prikrijete tako, da uporabite polje Skp.
+        [two] Prejemnika v poljih Za in Kp bosta videla naslove drug drugega. Prejemnike lahko prikrijete tako, da uporabite polje Skp.
+        [few] { $count } prejemniki v poljih Za in Kp bodo videli naslove drug drugega. Prejemnike lahko prikrijete tako, da uporabite polje Skp.
+       *[other] { $count } prejemnikov v poljih Za in Kp bo videlo naslove drug drugega. Prejemnike lahko prikrijete tako, da uporabite polje Skp.
+    }
 many-public-recipients-bcc =
     .label = Raje uporabi Skp
     .accesskey = S
 many-public-recipients-ignore =
     .label = Naj bodo prejemniki javni
     .accesskey = N
+many-public-recipients-prompt-title = Preveč javnih prejemnikov
+many-public-recipients-prompt-cancel = Prekliči pošiljanje
+many-public-recipients-prompt-send = Vseeno pošlji
 
 ## Notifications
 
diff --git a/thunderbird-l10n/sl/localization/sl/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/sl/localization/sl/toolkit/about/aboutSupport.ftl
index a91675db1653e5e7fce8e63430143b47d85ad4c0..366a41c57762273cd238a47a4c97240bc917af8d 100644
--- a/thunderbird-l10n/sl/localization/sl/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/sl/localization/sl/toolkit/about/aboutSupport.ftl
@@ -7,7 +7,6 @@ page-subtitle =
     Ta stran vsebuje tehnične podatke, ki jih boste morda potrebovali pri odpravljanju
     težav. Če iščete odgovore na splošna vprašanja o programu
     { -brand-short-name }, obiščite <a data-l10n-name="support-link">strani za podporo uporabnikom</a>.
-
 crashes-title = Poročila o sesutjih
 crashes-id = ID poročila
 crashes-send-date = Datum pošiljanja
@@ -63,6 +62,7 @@ app-basics-enabled-plugins = Omogočeni vtičniki
 app-basics-build-config = Nastavitev graditve
 app-basics-user-agent = Uporabniški agent
 app-basics-os = OS
+app-basics-os-theme = Tema operacijskega sistema
 # Rosetta is Apple's translation process to run apps containing x86_64
 # instructions on Apple Silicon. This should remain in English.
 app-basics-rosetta = Prevedeno z Rosetto
@@ -135,7 +135,6 @@ sandbox-sys-call-number = Sistemski klic
 sandbox-sys-call-args = Argumenti
 safe-mode-title = Poskusite varni način
 restart-in-safe-mode-label = Ponovno zaženi z onemogočenimi dodatki …
-
 troubleshoot-mode-title = Odkrivanje težav
 restart-in-troubleshoot-mode-label = Način za odpravljanje težav …
 clear-startup-cache-title = Poskusite počistiti predpomnilnik zagona
@@ -193,37 +192,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Moduli drugih ponudnikov
-support-third-party-modules-module = Datoteka modula
-support-third-party-modules-version = Različica datoteke
-support-third-party-modules-vendor = Podatki o izdelovalcu
-support-third-party-modules-occurrence = Ponovitev
-support-third-party-modules-process = Vrsta in ID procesa
-support-third-party-modules-thread = Nit
-support-third-party-modules-base = Naslov Imagebase
-support-third-party-modules-uptime = ÄŒas delovanja (ms)
-support-third-party-modules-duration = Trajanje nalaganja (ms)
-support-third-party-modules-status = Stanje
-support-third-party-modules-status-loaded = Naložen
-support-third-party-modules-status-blocked = Zavrnjen
-support-third-party-modules-status-redirected = Preusmerjen
-support-third-party-modules-empty = Ni naloženih modulov drugih ponudnikov.
-support-third-party-modules-no-value = (brez vrednosti)
-support-third-party-modules-button-open =
-    .title = Odpri mesto datoteke …
-support-third-party-modules-expand =
-    .title = Prikaži podrobne informacije
-support-third-party-modules-collapse =
-    .title = Skrij podrobne informacije
-support-third-party-modules-unsigned-icon =
-    .title = Ta modul ni podpisan
-support-third-party-modules-folder-icon =
-    .title = Odpri mesto datoteke …
-support-third-party-modules-down-icon =
-    .title = Prikaži podrobne informacije
-support-third-party-modules-up-icon =
-    .title = Skrij podrobne informacije
-
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
@@ -233,7 +201,6 @@ report-crash-for-days =
         [few] Poročila o sesutjih za zadnje { $days } dni
        *[other] Poročila o sesutjih za zadnjih { $days } dni
     }
-
 # Variables
 # $minutes (integer) - Number of minutes since crash
 crashes-time-minutes =
@@ -243,7 +210,6 @@ crashes-time-minutes =
         [few] Pred { $minutes } minutami
        *[other] Pred { $minutes } minutami
     }
-
 # Variables
 # $hours (integer) - Number of hours since crash
 crashes-time-hours =
@@ -253,7 +219,6 @@ crashes-time-hours =
         [few] Pred { $hours } urami
        *[other] Pred { $hours } urami
     }
-
 # Variables
 # $days (integer) - Number of days since crash
 crashes-time-days =
@@ -263,7 +228,6 @@ crashes-time-days =
         [few] Pred { $days } dnevi
        *[other] Pred { $days } dnevi
     }
-
 # Variables
 # $reports (integer) - Number of pending reports
 pending-reports =
@@ -273,7 +237,6 @@ pending-reports =
         [few] Vsa poročila o sesutjih, vključno s { $reports } čakajočimi sesutji v danem časovnem obsegu
        *[other] Vsa poročila o sesutjih, vključno s { $reports } čakajočimi sesutji v danem časovnem obsegu
     }
-
 raw-data-copied = Neobdelani podatki kopirani v odložišče
 text-copied = Besedilo kopirano v odložišče
 
@@ -286,11 +249,9 @@ blocked-mismatched-version = Onemogočeno zaradi neujemanja različice grafične
 # Variables
 # $driverVersion - The graphics driver version string
 try-newer-driver = Onemogočeno za vaš grafični gonilnik. Poskusite ga posodobiti na različico { $driverVersion } ali novejšo.
-
 # "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
 # there are no good translations, these are only used in about:support
 clear-type-parameters = Parametri ClearType
-
 compositing = Sestavljanje
 hardware-h264 = Strojno dekodiranje H264
 main-thread-no-omtc = glavna nit, brez OMTC
@@ -305,7 +266,6 @@ virtual-monitor-disp = Navidezni zaslon
 
 found = Najdeno
 missing = Manjka
-
 gpu-process-pid = GPUProcessPid
 gpu-process = GPUProcess
 gpu-description = Opis
@@ -329,25 +289,20 @@ webgl2-version = Različica gonilnika WebGL 2
 webgl2-driver-extensions = Razširitve gonilnika WebGL 2
 webgl2-extensions = Razširitve WebGL 2
 blocklisted-bug = Dodano na seznam zavrnjenih zaradi znanih težav
-
 # Variables
 # $bugNumber (string) - String of bug number from Bugzilla
 bug-link = hrošč { $bugNumber }
-
 # Variables
 #   $bugNumber (string) - Bug number on Bugzilla
 support-blocklisted-bug = Dodano na seznam zavrnjenih zaradi znanih težav: <a data-l10n-name="bug-link">hrošč { $bugNumber }</a>
-
 # Variables
 # $failureCode (string) - String that can be searched in the source tree.
 unknown-failure = Dodano na seznam zavrnjenih; koda napake { $failureCode }
-
 d3d11layers-crash-guard = Sestavljalnik D3D11
 d3d11video-crash-guard = Videodekodirnik D3D11
 d3d9video-crash-guard = Videodekodirnik D3D9
 glcontext-crash-guard = OpenGL
 wmfvpxvideo-crash-guard = Videodekodirnik WMF VPX
-
 reset-on-next-restart = Ponastavi ob naslednjem zagonu
 gpu-process-kill-button = Prekini proces GPE
 gpu-device-reset = Ponastavitev naprave
@@ -357,10 +312,8 @@ content-uses-tiling = Uporablja razpostavljanje (vsebina)
 off-main-thread-paint-enabled = Izrisovanje izven glavne niti je omogočeno
 off-main-thread-paint-worker-count = Å tevilo workerjev za izrisovanje izven glavne niti
 target-frame-rate = Ciljna hitrost sličic
-
 min-lib-versions = Najnižja podprta različica
 loaded-lib-versions = Trenutna različica
-
 has-seccomp-bpf = Seccomp-BPF (Filtriranje sistemskih klicev)
 has-seccomp-tsync = Sinhronizacija niti Seccomp
 has-user-namespaces = Uporabniški imenski prostori
@@ -373,18 +326,15 @@ sandbox-proc-type-content = vsebina
 sandbox-proc-type-file = vsebina datoteke
 sandbox-proc-type-media-plugin = večpredstavni vtičnik
 sandbox-proc-type-data-decoder = podatkovni dekodirnik
-
 startup-cache-title = Predpomnilnik zagona
 startup-cache-disk-cache-path = Pot predpomnilnika diska
 startup-cache-ignore-disk-cache = Prezri predpomnilnik diska
 startup-cache-found-disk-cache-on-init = Najden predpomnilnik diska ob inicializaciji
 startup-cache-wrote-to-disk-cache = Zapisano v predpomnilnik diska
-
 launcher-process-status-0 = Omogočeno
 launcher-process-status-1 = Onemogočeno zaradi napake
 launcher-process-status-2 = Prisilno onemogočeno
 launcher-process-status-unknown = Neznano stanje
-
 # Variables
 # $remoteWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -397,7 +347,6 @@ multi-process-status-6 = Onemogočeno zaradi nepodprtega vnosa besedila
 multi-process-status-7 = Onemogočili dodatki
 multi-process-status-8 = Prisilno onemogočeno
 multi-process-status-unknown = Neznano stanje
-
 # Variables
 # $fissionWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -412,7 +361,6 @@ fission-status-disabled-by-default = Privzeto onemogočeno
 fission-status-enabled-by-user-pref = Omogočil uporabnik
 fission-status-disabled-by-user-pref = Onemogočil uporabnik
 fission-status-disabled-by-e10s-other = E10s Onemogočen
-
 async-pan-zoom = Asinhrono pomikanje/povečava
 apz-none = brez
 wheel-enabled = vnos s koleščkom omogočen
@@ -449,7 +397,6 @@ support-remote-experiments-title = Oddaljeni poskusi
 support-remote-experiments-name = Ime
 support-remote-experiments-branch = Področje poskusa
 support-remote-experiments-see-about-studies = Oglejte si <a data-l10n-name="support-about-studies-link">about:studies</a> za več informacij, med drugim o onemogočanju posameznih poskusov ali preprečevanju, da bi { -brand-short-name } izvajal poskuse te vrste v prihodnje.
-
 support-remote-features-title = Oddaljene zmogljivosti
 support-remote-features-name = Ime
 support-remote-features-status = Stanje
diff --git a/thunderbird-l10n/sl/localization/sl/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/sl/localization/sl/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sl/localization/sl/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sl/localization/sl/toolkit/global/textActions.ftl b/thunderbird-l10n/sl/localization/sl/toolkit/global/textActions.ftl
index ca6ad8543515472f4ed054befd34ee53ae8a5031..cf37145b1ee769d49ca61f0e6de96ab4f1e7c3e4 100644
--- a/thunderbird-l10n/sl/localization/sl/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/sl/localization/sl/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Razveljavi …
     .accesskey = Z
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Ponovi
     .accesskey = O
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Izreži
     .accesskey = i
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopiraj
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = c
-
 text-action-paste =
     .label = Prilepi
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Izbriši
     .accesskey = B
-
 text-action-select-all =
     .label = Izberi vse
     .accesskey = V
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Ni predlogov črkovanja
+text-action-spell-add-to-dictionary =
+    .label = Dodaj v slovar
+    .accesskey = s
+text-action-spell-undo-add-to-dictionary =
+    .label = Razveljavi dodajanje v slovar
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Preverjaj črkovanje
+    .accesskey = r
+text-action-spell-add-dictionaries =
+    .label = Dodaj slovarje …
+    .accesskey = a
+text-action-spell-dictionaries =
+    .label = Jeziki
+    .accesskey = J
diff --git a/thunderbird-l10n/sl/manifest.json b/thunderbird-l10n/sl/manifest.json
index de2446ad7852bfe2164491a44cc07d033686b14d..23b8e2e447bd50f3670d4e101772cf169b65e6b8 100644
--- a/thunderbird-l10n/sl/manifest.json
+++ b/thunderbird-l10n/sl/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Slovenski jezik Language Pack",
   "description": "Language pack for Thunderbird for sl",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "sl": {
-      "version": "20210814102733",
+      "version": "20210831165459",
       "chrome_resources": {
         "alerts": "chrome/sl/locale/sl/alerts/",
         "autoconfig": "chrome/sl/locale/sl/autoconfig/",
diff --git a/thunderbird-l10n/sq/localization/sq/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/sq/localization/sq/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sq/localization/sq/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sq/manifest.json b/thunderbird-l10n/sq/manifest.json
index 434e2ee58cfe2dc9a33a242521e58dd6df4b7e85..d52471d5a0c0a8fd75d4adf0b1cc1548e3336c1d 100644
--- a/thunderbird-l10n/sq/manifest.json
+++ b/thunderbird-l10n/sq/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Shqip Language Pack",
   "description": "Language pack for Thunderbird for sq",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "sq": {
-      "version": "20210813141734",
+      "version": "20210831122732",
       "chrome_resources": {
         "alerts": "chrome/sq/locale/sq/alerts/",
         "autoconfig": "chrome/sq/locale/sq/autoconfig/",
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/pdfviewer/chrome.properties b/thunderbird-l10n/sr/chrome/sr/locale/pdfviewer/chrome.properties
index e378f42256ff755a7c115640a50b9ff4731bbd1f..ff028ba8b48ddacd36616d6b485f3255f05076d5 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/pdfviewer/chrome.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/pdfviewer/chrome.properties
@@ -15,7 +15,6 @@
 # Chrome notification bar messages and buttons
 unsupported_feature=Овај PDF докуменат можда није приказан исправно.
 unsupported_feature_forms=Овај PDF докуменат садржи форме. Попуњавање поља форме није подржано.
+unsupported_feature_signatures=Овај PDF документ садржи дигиталне потписе. Потврда потписа није подржана.
 open_with_different_viewer=Отвори са другим приказивачем
 open_with_different_viewer.accessKey=О
-
-unsupported_feature_signatures=This PDF document contains digital signatures. Validation of signatures is not supported.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/calendar/calendar.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/calendar/calendar.properties
index 9273db314fd11556a0c4795d7440bfd6c5fe803f..092631c3fb69dfe36febac5697aaeacb6b2b9609 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/calendar/calendar.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/calendar/calendar.properties
@@ -105,10 +105,6 @@ pasteDontNotifyLabel=Убаци без слања
 #    %1$S will be replaced with number of failed items
 #    %2$S will be replaced with last error code / error string
 importItemsFailed=%1$S ставки нису успешно увезене. Последња грешка је била: %2$S
-# LOCALIZATION NOTE (noItemsInCalendarFile):
-#    %1$S will be replaced with file path
-noItemsInCalendarFile=Нисам успео да увезем из %1$S. Нема ставки за увоз у овој датотеци.
-
 # LOCALIZATION NOTE (noItemsInCalendarFile2):
 #    %1$S will be replaced with file path
 noItemsInCalendarFile2=Није могуће увести из %1$S. Ова датотека не садржи ништа што се може увести.
@@ -132,8 +128,6 @@ timezoneError=Непозната и недефинсана временска з
 duplicateError=%1$S ставки је занемарено јер постоје у одредишном календару и у %2$S.
 
 unableToCreateProvider=Догодила се грешка приликом припреме календара на месту %1$S за коришћење. Неће бити доступан.
-unknownTimezonesError=Догодила се грешка приликом припреме календара на месту %1$S за употребу. Календар можда користи непознате временске зоне. Инсталирајте најновији calendar-timezones.xpi.
-missingCalendarTimezonesError=Временска зона није пронађена! Инсталирајте calendar-timezones.xpi.
 
 # Sample: Unknown timezone "USPacific" in "Dentist Appt".  Using the 'floating' local timezone instead: 2008/02/28 14:00:00
 unknownTimezoneInItem=Непозната временска зона „%1$S“ у „%2$S“.  Сматрам је „плутајућом“ локалном временском зоном уместо: %3$S
@@ -163,24 +157,6 @@ removeCalendarMessageUnsubscribe=Да ли желите укинути прет
 WeekTitle=Недеља %1$S
 None=Ништа
 
-# Error strings
-## @name UID_NOT_FOUND
-## @loc none
-tooNewSchemaErrorBoxTitle=Ваши календарски подаци нису подударни са овим издањем програма %1$S
-
-# LOCALIZATION NOTE (tooNewSchemaErrorBoxTextLightning):
-#    %1$S will be replaced with the name of the calendar application e.g. 'Lightning'
-#    %2$S will be replaced with the name of the host application 'calendar'
-tooNewSchemaErrorBoxTextLightning=Подаци календара у вашем профилу су ажурирани од стране новије верзије %1$S-а и коришћењем ће вероватно настати губитак или оштећење података. %1$S ће бити онемогућен а %2$S поново покренут.
-
-# LOCALIZATION NOTE (tooNewSchemaButtonRestart):
-#    %1$S will be replaced with the name of the host application 'Calendar'
-tooNewSchemaButtonRestart=Поново покрени %1$S
-
-# LOCALIZATION NOTE (tooNewSchemaButtonQuit):
-#    %1$S will be replaced with the name of the host application 'Calendar'
-tooNewSchemaButtonQuit=Изађи из %1$S
-
 # Error strings
 ## @name UID_NOT_FOUND
 ## @loc none
@@ -441,6 +417,8 @@ TZFromKnownTimezones=Ова ZoneInfo временска зона је изабр
 formatListName = Листа
 weekPrinterName = Недељни роковник
 monthPrinterName = Месечна мрежа
+
+# Print Layout
 tasksWithNoDueDate = Задаци без крајњег рока
 
 # Providers
@@ -450,7 +428,7 @@ icsName=iCalendar (ICS)
 memoryName=Привремено (меморија)
 storageName=Локално (SQLite)
 
-# Used in created html code for list layout print and html export
+# Used in created html code for export
 htmlPrefixTitle=Наслов
 htmlPrefixWhen=Када
 htmlPrefixLocation=Место
@@ -614,6 +592,19 @@ severalShortCalendarWeeks=КН-е: %1$S-%2$S
 #    %1$S is a number from 1 to 53 that represents the week number.
 abbreviationOfWeek=%1$S
 
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+#    %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=%1$S недеља
+
 # Task tree, "Due In" column.
 # LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
 # forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
@@ -628,7 +619,7 @@ dueInLessThanOneHour=мање од једног сата
 monthInYear=%1$S %2$S
 
 # LOCALIZATION NOTE (monthInYear.monthFormat):
-# If your language requires a different declension, change this to 
+# If your language requires a different declension, change this to
 # one of the values specified in dateFormat.properties.
 # In any case, DO NOT TRANSLATE.
 monthInYear.monthFormat=nominative
@@ -680,7 +671,7 @@ daysIntervalInMonth.monthFormat=nominative
 daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
 
 # LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
-# If your language requires a different declension, change this to 
+# If your language requires a different declension, change this to
 # one of the values specified in dateFormat.properties.
 # In any case, DO NOT TRANSLATE.
 daysIntervalBetweenMonths.monthFormat=nominative
@@ -816,16 +807,3 @@ dialog.attendee.append.delegatedTo=(пребачено на %1$S)
 
 # Accessible description of a grid calendar with no selected date
 minimonthNoSelectedDate=Није изабран датум
-
-# LOCALIZATION NOTE (multiweekViewWeek):
-# Used for displaying the week number in the first day box of every week
-# in multiweek and month views.
-# It allows to localize the label with the week number in case your locale
-# requires it.
-# Take into account that this label is placed in the same room of the day label
-# inside the day boxes, exactly on left side, hence a possible string shouldn't
-# be too long otherwise it will create confusion between the week number and
-# the day number other than a possible crop when the window is resized.
-#
-#    %1$S is a number from 1 to 53 that represents the week number.
-multiweekViewWeek=W %1$S
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/debugger.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/debugger.properties
index b9deb3c944fd311ac8dcf45dbad14cd05add76b5..bf8cd878e2f6f8f65d545f79a20e26605b8b26e8 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/debugger.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/debugger.properties
@@ -205,6 +205,7 @@ eventListenersHeader1=Event Listener Breakpoints
 # LOCALIZATION NOTE (noDomMutationBreakpoints): The text to
 # display in the DOM Mutation Breakpoints pane when there are no events.
 # %S will be replaced by an active link using inspectorTool as text
+noDomMutationBreakpoints=Десним кликом изаберите ставку у %S и изаберите “Прекини код…” да додате тачку прекида
 
 # LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
 inspectorTool=Инспектор
@@ -555,6 +556,7 @@ settings.disableJavaScript.tooltip=Онемогућава JavaScript (потре
 
 # LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
 # tooltip for toggling the source maps feature
+settings.toggleSourceMaps.tooltip=Омогућите мапе извора да би алатке за програмере учитавале ваше оригиналне изворе поред генерисаних
 
 # LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
 # label for toggling the source maps feature
@@ -1126,11 +1128,3 @@ serviceWorkerInfo.redundant=сувишан
 # LOCALIZATION NOTE (serviceWorkerInfo.unknown): State displayed for a
 # service worker that is in an unknown state.
 serviceWorkerInfo.unknown=непознат
-
-# LOCALIZATION NOTE (noDomMutationBreakpoints): The text to
-# display in the DOM Mutation Breakpoints pane when there are no events.
-# %S will be replaced by an active link using inspectorTool as text
-noDomMutationBreakpoints=Right click an element in the %S and select “Break on…” to add a breakpoint
-# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
-# tooltip for toggling the source maps feature
-settings.toggleSourceMaps.tooltip=Enable Source Maps to let DevTools load your original sources in addition to your generated ones
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/inspector.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/inspector.properties
index 0932de0d48b6ffba1e3e56f51839d3f05bf1a6f6..0be6e01fcb5ecfe1dce89bce9ae1890c7c523178 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/inspector.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/inspector.properties
@@ -505,10 +505,12 @@ inspector.colorSchemeSimulation.tooltip=Укључите/искључите си
 # LOCALIZATION NOTE (inspector.colorSchemeSimulationLight.tooltip):
 # This is the tooltip of the light color scheme simulation button in the Rule View
 # toolbar that toggles light color scheme simulation.
+inspector.colorSchemeSimulationLight.tooltip=Укључите/искључите симулацију шеме светлих боја за страницу
 
 # LOCALIZATION NOTE (inspector.colorSchemeSimulationDark.tooltip):
 # This is the tooltip of the dark color scheme simulation button in the Rule View
 # toolbar that toggles dark color scheme simulation.
+inspector.colorSchemeSimulationDark.tooltip=Укључите/искључите симулацију шеме тамних боја за страницу
 
 # LOCALIZATION NOTE (markupView.scrollableBadge.label): This is the text displayed inside a
 # badge, in the inspector, next to nodes that are scrollable in the page.
@@ -566,12 +568,3 @@ colorPickerTooltip.alphaSliderTitle=Opacity
 # that the color contrast criteria used is for large text. %S in the content will be replaced by a
 # large text indicator span at run time.
 colorPickerTooltip.contrast.large.title=Контраст %S:
-
-# LOCALIZATION NOTE (inspector.colorSchemeSimulationLight.tooltip):
-# This is the tooltip of the light color scheme simulation button in the Rule View
-# toolbar that toggles light color scheme simulation.
-inspector.colorSchemeSimulationLight.tooltip=Toggle light color scheme simulation for the page
-# LOCALIZATION NOTE (inspector.colorSchemeSimulationDark.tooltip):
-# This is the tooltip of the dark color scheme simulation button in the Rule View
-# toolbar that toggles dark color scheme simulation.
-inspector.colorSchemeSimulationDark.tooltip=Toggle dark color scheme simulation for the page
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/netmonitor.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/netmonitor.properties
index d8a88c5a6d989a7d8050d94b19a07923207a5198..ff94bdb33a971c85272d9b376077f92ddfc1cc38 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/netmonitor.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/netmonitor.properties
@@ -60,11 +60,11 @@ collapseDetailsPane=Hide request details
 
 # LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
 # that collapses the network action pane in the UI.
-collapseActionPane=Сакриј мрежну радњу
+collapseActionPane=Hide network action
 
 # LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
 # displayed when hovering over the tabs overflow button.
-allTabsMenuButton.tooltip=Прикажи све картице
+allTabsMenuButton.tooltip=Show all tabs
 
 # LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
 # headers tab of the network details pane when there are no headers available.
@@ -97,6 +97,7 @@ paramsEmptyText=No parameters for this request
 
 # LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
 # request tab of the network details pane when there are no params available.
+paramsNoPayloadText=Нема параметара за овај упит
 
 # LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
 # request tab of the network details pane for the filtering input.
@@ -117,7 +118,7 @@ paramsPostPayload=Request payload
 # LOCALIZATION NOTE (netmonitor.request.raw): This is the label displayed
 # on the button in the network details request tab that toggles the
 # view of the network request between the raw data and the formatted display.
-netmonitor.request.raw=Необрађено
+netmonitor.request.raw=Raw
 
 # LOCALIZATION NOTE (requestHeaders): This is the label displayed
 # in the network details headers tab identifying the request headers.
@@ -147,7 +148,7 @@ responsePayload=Response payload
 # LOCALIZATION NOTE (netmonitor.response.raw): This is the label displayed
 # on the button in the network details response tab that toggles the
 # view of the network response between the raw data and the formatted display.
-netmonitor.response.raw=Необрађено
+netmonitor.response.raw=Raw
 
 # LOCALIZATION NOTE (netmonitor.response.html): This is the text displayed
 # in the response tab of the network details pane for an HTML preview.
@@ -236,7 +237,7 @@ networkMenu.summary.tooltip.finish=Total time needed to load all requests
 # LOCALIZATION NOTE (networkMenu.ws.summary.framesCount2): This label is displayed
 # in the messages table footer providing the number of frames
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-networkMenu.ws.summary.framesCount2=#1 порука;#1 поруке;#1 порука
+networkMenu.ws.summary.framesCount2=#1 message;#1 messages;#1 messages
 
 # LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
 # in the messages table footer when there are no frames
@@ -253,7 +254,7 @@ networkMenu.ws.summary.tooltip.framesTotalSize=Total size of displayed messages
 # LOCALIZATION NOTE (networkMenu.ws.summary.label.framesTranferredSize): A label showing
 # summary size info related to the current list of WS messages
 # %1$S is the total size of the transferred data, %2$S is the size of sent data, %3$S is the size of received data.
-networkMenu.ws.summary.label.framesTranferredSize=Укупно: %1$S total, послато: %2$S, примљено: %3$S
+networkMenu.ws.summary.label.framesTranferredSize=%1$S total, %2$S sent, %3$S received
 
 # LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
 # what framesTotalTime displays
@@ -297,16 +298,16 @@ networkMenu.sizeServiceWorker=service worker
 
 # LOCALIZATION NOTE (networkMenu.blocked2): This is a generic message for a
 # URL that has been blocked for an unknown reason
-networkMenu.blocked2=Блокирано
+networkMenu.blocked2=Blocked
 
 # LOCALIZATION NOTE (networkMenu.blockedby): This is a generic message for a
 # URL that has been blocked by an extension
 # %S is the extension name.
-networkMenu.blockedby=Блокирао додатак %S
+networkMenu.blockedby=Blocked By %S
 
 # LOCALIZATION NOTE (networkMenu.blockedTooltip): This is a the text displayed
 # as a tooltip for the blocked icon in the request list
-networkMenu.blockedTooltip=Блокирано
+networkMenu.blockedTooltip=Blocked
 
 # LOCALIZATION NOTE (networkMenu.totalMS2): This is the label displayed
 # in the network menu specifying the time for a request to finish (in milliseconds).
@@ -352,29 +353,29 @@ netmonitor.waterfall.tooltip.receive=Receive %S ms
 
 # LOCALIZATION NOTE (netmonitor.timings.requestTiming): This is the title of the existing
 # section in Timings side panel. This section contains request timings.
-netmonitor.timings.requestTiming=Време захтева
+netmonitor.timings.requestTiming=Request Timing
 
 # LOCALIZATION NOTE (netmonitor.timings.serverTiming): This is the title of a new section
 # in Timings side panel. This section contains server timings transferred from the server
 # through the "Server-Timing" header.
-netmonitor.timings.serverTiming=Време сервера
+netmonitor.timings.serverTiming=Server Timing
 
 # LOCALIZATION NOTE (netmonitor.timings.queuedAt): This is relative queued time to the
 # first request. %S is time expressed in milliseconds or minutes.
-netmonitor.timings.queuedAt=На чекању: %S
+netmonitor.timings.queuedAt=Queued: %S
 
 # LOCALIZATION NOTE (netmonitor.timings.startedAt): Relative to the first request,
 # when the request actually started. %S is time expressed in milliseconds or minutes.
-netmonitor.timings.startedAt=Започето: %S
+netmonitor.timings.startedAt=Started: %S
 
 # LOCALIZATION NOTE (netmonitor.timings.downloadedAt): Relative to first request,
 # when the request actually finished downloading.
 # %S is time expressed in milliseconds or minutes.
-netmonitor.timings.downloadedAt=Преузето: %S
+netmonitor.timings.downloadedAt=Downloaded: %S
 
 # LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
 # timings pane when thea request has been blocked
-netmonitor.timings.noTimings=У овом захтеву нема тајминга
+netmonitor.timings.noTimings=No timings for this request
 
 # LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
 # in the network menu specifying timing interval divisions (in milliseconds).
@@ -689,15 +690,15 @@ netmonitor.ws.toolbar.time=Time
 
 # LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
 # in the messages table header, above the "eventName" column.
-netmonitor.ws.toolbar.eventName=Назив догађаја
+netmonitor.ws.toolbar.eventName=Event Name
 
 # LOCALIZATION NOTE (netmonitor.ws.toolbar.retry): This is the label displayed
 # in the messages table header, above the "retry" column.
-netmonitor.ws.toolbar.retry=Покушај поново
+netmonitor.ws.toolbar.retry=Retry
 
 # LOCALIZATION NOTE (netmonitor.ws.toolbar.lastEventId): This is the label displayed
 # in the messages table header, above the "lastEventId" column.
-netmonitor.ws.toolbar.lastEventId=ID последњег догађаја
+netmonitor.ws.toolbar.lastEventId=Last Event ID
 
 # LOCALIZATION NOTE (netmonitor.ws.toolbar.clear): This is the label displayed
 # in the messages panel toolbar for the "Clear" button.
@@ -741,23 +742,23 @@ netmonitor.ws.context.received.accesskey=R
 
 # LOCALIZATION NOTE (netmonitor.ws.context.controlFrames): This is the label displayed
 # on the context menu that shows "Control Frames" WebSocket frames.
-netmonitor.ws.context.controlFrames=Контролни
+netmonitor.ws.context.controlFrames=Control
 
 # LOCALIZATION NOTE (netmonitor.ws.context.controlFrames.accesskey): This is the access key
 # for the "Control Frames" menu item displayed in the context menu in the websocket toolbar.
-netmonitor.ws.context.controlFrames.accesskey=К
+netmonitor.ws.context.controlFrames.accesskey=o
 
 # LOCALIZATION NOTE (netmonitor.ws.context.copyFrame): This is the label displayed
 # on the context menu that shows "Copy Message".
-netmonitor.ws.context.copyFrame=Копирај поруку
+netmonitor.ws.context.copyFrame=Copy Message
 
 # LOCALIZATION NOTE (netmonitor.ws.context.copyFrame.accesskey): This is the access key
 # for the "Copy Message" menu item displayed in the context menu of a WebSocket frame.
-netmonitor.ws.context.copyFrame.accesskey=К
+netmonitor.ws.context.copyFrame.accesskey=C
 
 # LOCALIZATION NOTE (netmonitor.ws.connection.closed): This is the text displayed in the
 # websocket messages panel when the connection is closed
-netmonitor.ws.connection.closed=Веза је затворена
+netmonitor.ws.connection.closed=Connection Closed
 
 # LOCALIZATION NOTE (netmonitor.ws.type.sent): This is the label used as
 # accessible text for the "sent" type icon in the websocket table's "data" column.
@@ -785,91 +786,96 @@ netmonitor.search.toolbar.clear=Clear Search Results
 
 # LOCALIZATION NOTE (netmonitor.search.toolbar.caseSensitive): This is the label
 # displayed in the search toolbar to do a case sensitive search.
-netmonitor.search.toolbar.caseSensitive=Разликовање великих и малих слова
+netmonitor.search.toolbar.caseSensitive=Connection Closed
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.fetching): This is the label
 # displayed in the search results status bar when status is set to fetching.
-netmonitor.search.status.labels.fetching=Претрага…
+netmonitor.search.status.labels.fetching=Searching…
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.canceled): This is the label
 # displayed in the search results status bar when status is set to cancelled.
-netmonitor.search.status.labels.canceled=Претрага је отказана.
+netmonitor.search.status.labels.canceled=Search canceled.
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.done): This is the label
 # displayed in the search results status bar when status is set to done.
 # %1$S is the number of matching lines in search results (netmonitor.search.status.labels.matchingLines)
 # %2$S is the number of files in which matching lines were found (netmonitor.search.status.labels.fileCount)
-netmonitor.search.status.labels.done=Претрага је завршена. %1$S %2$S.
+netmonitor.search.status.labels.done=Search finished. %1$S %2$S.
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.matchingLines): Semi-colon list of plural forms.
 # This is the label displayed in the search results status bar showing matching lines found.
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 is the number of matching lines found
+netmonitor.search.status.labels.matchingLines=Found #1 matching line;Found #1 matching lines;Found #1 matching lines
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.fileCount): Semi-colon list of plural forms.
 # This is the label displayed in the search results status bar showing file count
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 is the number of files in which matching lines were found
-netmonitor.search.status.labels.fileCount=у #1 датотеци;у #1 датотеке;у #1 датотека
+netmonitor.search.status.labels.fileCount=in #1 file;in #1 files;in #1 files
 
 # LOCALIZATION NOTE (netmonitor.search.status.labels.error): This is the label
 # displayed in the search results status bar when status is set to error.
-netmonitor.search.status.labels.error=Грешка у претрази.
+netmonitor.search.status.labels.error=Search error.
 
 # LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
 # over the toolbar's Request Blocking buttonn
-netmonitor.toolbar.requestBlocking=Блокирање захтева
+netmonitor.toolbar.requestBlocking=Request Blocking
 
 # LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
 # in the action bar's request blocking tab
-netmonitor.actionbar.requestBlocking2=Блокирање
+netmonitor.actionbar.requestBlocking2=Blocking
 
 # LOCALIZATION NOTE (netmonitor.actionbar.enableBlocking): This is the label displayed
 # in request blocking tab to represent if requests blocking should be enabled
-netmonitor.actionbar.enableBlocking=Омогући блокирање захтева
+netmonitor.actionbar.enableBlocking=Enable Request Blocking
 
 # LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
 # placeholder text for the request addition form
-netmonitor.actionbar.blockSearchPlaceholder=Блокирај ресурс када URL садржи
+netmonitor.actionbar.blockSearchPlaceholder=Block resource when URL contains
 
 # LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
 # tooltip shown over the remove button for blocked URL item
-netmonitor.actionbar.removeBlockedUrl=Уклони шаблон
+netmonitor.actionbar.removeBlockedUrl=Remove pattern
 
 # LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
 # usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Add URL patterns here to block matching requests.
 
 # LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingAddNotice): This is the
 # add notice that explains ways to add blocking pattern that is displayed when
 # network blocking list is empty
+netmonitor.actionbar.requestBlockingAddNotice=Start by adding a pattern or dragging a row from the network table.
 
 # LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
 # context menu item for removing all blocked URLs
-netmonitor.requestBlockingMenu.removeAllBlockedUrls=Уклони све
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Remove all
 
 # LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
 # context menu item for enabling all blocked URLs
-netmonitor.requestBlockingMenu.enableAllBlockedUrls=Омогући све
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Enable all
 
 # LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
 # context menu item for disabling all blocked URLs
-netmonitor.requestBlockingMenu.disableAllBlockedUrls=Онемогући све
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Disable all
 
 # LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
 # in the action bar's search tab
-netmonitor.actionbar.search=Претражи
+netmonitor.actionbar.search=Search
 
 # LOCALIZATION NOTE (messagesTruncated): This is the text displayed
 # in the messages panel when the number of messages is over the
 # truncation limit.
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+netmonitor.ws.truncated-messages.warning=#1 message has been truncated to conserve memory;#1 messages have been truncated to conserve memory;#1 messages have been truncated to conserve memory
 
 # LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
 # in the messages panel checkbox label for toggling message truncation.
-toggleMessagesTruncation=Задржи све будуће поруке
+toggleMessagesTruncation=Keep all future messages
 
 # LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
 # to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Keep all future messages or continue showing truncated messages
 
 # LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
 # to describe to describe data truncation in the messages panel.
@@ -897,7 +903,7 @@ netmonitor.tab.params=Params
 
 # LOCALIZATION NOTE (netmonitor.tab.request): This is the label displayed
 # in the network details pane identifying the request tab.
-netmonitor.tab.request=Захтев
+netmonitor.tab.request=Request
 
 # LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
 # in the network details pane identifying the response tab.
@@ -1017,11 +1023,11 @@ netmonitor.toolbar.resetSorting=Reset Sorting
 
 # LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent): This is the label
 # displayed in the network table header context menu to resize a column to fit its content
-netmonitor.toolbar.resizeColumnToFitContent=Прилагоди величину колоне садржају
+netmonitor.toolbar.resizeColumnToFitContent=Resize Column To Fit Content
 
 # LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent.title): This is the title
 # tooltip displayed when draggable resizer in network table headers is hovered
-netmonitor.toolbar.resizeColumnToFitContent.title=Кликните двапут да бисте прилагодили колону садржају
+netmonitor.toolbar.resizeColumnToFitContent.title=Double-click to fit column to content
 
 # LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
 # displayed in the network table header context menu for the timing submenu
@@ -1035,28 +1041,28 @@ netmonitor.toolbar.responseHeaders=Response Headers
 # LOCALIZATION NOTE (netmonitor.headers.toolbar.block): This is the
 # label displayed in the network details headers tab identifying the
 # block url toolbar button.
-netmonitor.headers.toolbar.block=Блокирај
+netmonitor.headers.toolbar.block=Block
 
 # LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
 # in the network details headers tab identifying the remote address.
-netmonitor.headers.address=Адреса
+netmonitor.headers.address=Address
 
 # LOCALIZATION NOTE (netmonitor.headers.status): This is the label displayed
 # in the network details headers tab identifying the status code.
-netmonitor.headers.status=Статус
+netmonitor.headers.status=Status
 
 # LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
 # in the network details headers tab identifying the size.
-netmonitor.headers.size=Величина
+netmonitor.headers.size=Size
 
 # LOCALIZATION NOTE (networkMenu.headers.sizeDetails): This label is displayed
 # in the network details headers tab providing the size details.
 # %1$S is the transferred size, %2$S is the size.
-netmonitor.headers.sizeDetails=%1$S (величина %2$S)
+netmonitor.headers.sizeDetails=%1$S (%2$S size)
 
 # LOCALIZATION NOTE (netmonitor.headers.version): This is the label displayed
 # in the network details headers tab identifying the http version.
-netmonitor.headers.version=Верзија
+netmonitor.headers.version=Version
 
 # LOCALIZATION NOTE (netmonitor.summary.learnMore): This is the label displayed
 # in the network details headers tab, with a link to external documentation for
@@ -1065,6 +1071,7 @@ netmonitor.summary.learnMore=Learn more about status code
 
 # LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
 # in the network details headers tab identifying the referrer policy.
+netmonitor.headers.referrerPolicy=Referrer Policy
 
 # LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
 # in the network details headers tab identifying the content blocking mode.
@@ -1139,6 +1146,7 @@ netmonitor.timings.learnMore=Learn more about timings
 # LOCALIZATION NOTE (netmonitor.audits.slowIconTooltip): This is the tooltip text displayed
 # in the network request list file column, on the slow icon button.
 # %1$S is the waiting time %2$S is the slow threshold.
+netmonitor.audits.slowIconTooltip=Slow server response time (%1$S). The recommended limit is %2$S.
 
 # LOCALIZATION NOTE (netmonitor.security.warning.cipher): A tooltip
 # for warning icon that indicates a connection uses insecure cipher suite.
@@ -1266,6 +1274,7 @@ netmonitor.context.copyAsCurl.accesskey=C
 netmonitor.context.copyAsCurl.win=%S (Windows)
 netmonitor.context.copyAsCurl.win.accesskey=С
 netmonitor.context.copyAsCurl.posix=%S (POSIX)
+netmonitor.context.copyAsCurl.posix.accesskey=P
 
 # LOCALIZATION NOTE (netmonitor.context.copyAsFetch): This is the label displayed
 # on the context menu that copies the selected request as a fetch request.
@@ -1547,42 +1556,7 @@ netmonitor.settings.copyHarTooltip=Копирај мрежне податке у
 netmonitor.errorpanel.description=Панел „Мрежа” је отказао.
 
 # LOCALIZATION NOTE (netmonitor.errorpanel.fileBugButton): This is the text that appears in the button to visit the bug filing link.
+netmonitor.errorpanel.fileBugButton=Пошаљите извештај о грешци
 
 # LOCALIZATION NOTE (netmonitor.errorpanel.reloadPanelInfo): This is the text that appears after Network panel errors to instruct the user to reload the panel.
-
-
-# LOCALIZATION NOTE (paramsNoPayloadText): This is the text displayed in the
-# request tab of the network details pane when there are no params available.
-paramsNoPayloadText=No payload for this request
-# LOCALIZATION NOTE (netmonitor.search.status.labels.matchingLines): Semi-colon list of plural forms.
-# This is the label displayed in the search results status bar showing matching lines found.
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-# #1 is the number of matching lines found
-netmonitor.search.status.labels.matchingLines=Found #1 matching line;Found #1 matching lines
-# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
-# usage notice displayed when network blocking list is empty
-netmonitor.actionbar.requestBlockingUsageNotice=Add URL patterns here to block matching requests.
-# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingAddNotice): This is the
-# add notice that explains ways to add blocking pattern that is displayed when
-# network blocking list is empty
-netmonitor.actionbar.requestBlockingAddNotice=Start by adding a pattern or dragging a row from the network table.
-# LOCALIZATION NOTE (messagesTruncated): This is the text displayed
-# in the messages panel when the number of messages is over the
-# truncation limit.
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-netmonitor.ws.truncated-messages.warning=#1 message has been truncated to conserve memory;#1 messages have been truncated to conserve memory
-# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
-# to describe the checkbox used to toggle message truncation.
-toggleMessagesTruncation.title=Keep all future messages or continue showing truncated messages
-# LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
-# in the network details headers tab identifying the referrer policy.
-netmonitor.headers.referrerPolicy=Referrer Policy
-# LOCALIZATION NOTE (netmonitor.audits.slowIconTooltip): This is the tooltip text displayed
-# in the network request list file column, on the slow icon button.
-# %1$S is the waiting time %2$S is the slow threshold.
-netmonitor.audits.slowIconTooltip=Slow server response time (%1$S). The recommended limit is %2$S.
-netmonitor.context.copyAsCurl.posix.accesskey=P
-# LOCALIZATION NOTE (netmonitor.errorpanel.fileBugButton): This is the text that appears in the button to visit the bug filing link.
-netmonitor.errorpanel.fileBugButton=File Bug Report
-# LOCALIZATION NOTE (netmonitor.errorpanel.reloadPanelInfo): This is the text that appears after Network panel errors to instruct the user to reload the panel.
 netmonitor.errorpanel.reloadPanelInfo=Close and reopen the toolbox to clear this error.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/toolbox.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/toolbox.properties
index 525dcbbf130e5006d0e4af86f35671e4e00bb66c..64e075bed56a40e41444aa9baba8352e508e26ae 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/toolbox.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/toolbox.properties
@@ -17,7 +17,7 @@ toolbox.titleTemplate2=Developer Tools - %1$S - %2$S
 # the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
 # This Browser Toolbox allows to debug the parent process as well as the content
 # processes in the same toolbox.
-toolbox.multiProcessBrowserToolboxTitle=Алатке вишепроцесног прегледача
+toolbox.multiProcessBrowserToolboxTitle=Multiprocess Browser Toolbox
 
 # LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
 # name when no tool is selected.
@@ -181,9 +181,11 @@ toolbox.closebutton.tooltip=Close Developer Tools
 
 # LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
 # the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Show Split Console
 
 # LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
 # will be used for the error count button in the devTools settings panel.
+toolbox.errorCountButton.description=Show the number of errors on the page
 
 # LOCALIZATION NOTE (toolbox.sourceMapFailure): This is shown in the web console
 # when there is a failure to fetch or parse a source map.
@@ -220,7 +222,7 @@ toolbox.debugTargetInfo.runtimeLabel.thisFirefox=This Firefox (%S)
 # e.g. This Firefox (65.0a1)
 # The name of the current runtime/application (brandShorterName): %1$S
 # The version of runtime: %2$S
-toolbox.debugTargetInfo.runtimeLabel.thisRuntime=Овај %1$S (%2$S)
+toolbox.debugTargetInfo.runtimeLabel.thisRuntime=This %1$S (%2$S)
 
 # LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleRemote):
 # Used as the tab title for about:devtools-toolbox when connected to a remote target.
@@ -248,15 +250,15 @@ toolbox.debugTargetInfo.connection.network=Network
 
 # LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
 # Used as the reload button tooltip
-toolbox.debugTargetInfo.reload=Поново учитај
+toolbox.debugTargetInfo.reload=Reload
 
 # LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
 # Used as the navigation's "forward" button tooltip
-toolbox.debugTargetInfo.forward=Напред
+toolbox.debugTargetInfo.forward=Forward
 
 # LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
 # Used as the navigation's "back" button tooltip
-toolbox.debugTargetInfo.back=Назад
+toolbox.debugTargetInfo.back=Back
 
 # LOCALIZATION NOTE (toolbox.debugTargetInfo.targetType.*): This is displayed as the
 # alt attribute for an icon in the toolbox header in about:devtools-toolbox,
@@ -284,15 +286,12 @@ toolbox.debugTargetErrorPage.description = Cannot connect to the debug target. S
 # LOCALIZATION NOTE (options.deprecationNotice): This is the text that appears in the
 # settings panel for panel that will be removed in future releases.
 # This entire text is treated as a link to an MDN page.
-options.deprecationNotice=Застарело. Сазнајте више…
+options.deprecationNotice=Deprecated. Learn More…
 
 # LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
 # settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
-options.enableMultiProcessToolbox=Омогућите алатке вишепроцесног прегледача (потребно је рестартовање алатки прегледача)
+options.enableMultiProcessToolbox=Enable the Multiprocess Browser Toolbox (requires restarting the Browser Toolbox)
 
-# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
-# the error count button displayed in the developer tools toolbox.
-toolbox.errorCountButton.tooltip=Show Split Console
-# LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
-# will be used for the error count button in the devTools settings panel.
-toolbox.errorCountButton.description=Show the number of errors on the page
+# LOCALIZATION NOTE (options.enableNewPerformancePanel): This is the text that appears in the
+# settings panel for the checkbox that enables the new performance panel.
+options.enableNewPerformancePanel=Enable new performance recorder (then re-open DevTools)
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/webconsole.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/webconsole.properties
index f9265ed977e43b9a6a1e4e3d12bdf5d3aab8e33c..0331083612fcf27661ca5a186e7c064bf5e4dd21 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/devtools/client/webconsole.properties
@@ -16,7 +16,7 @@ browserConsole.title=Browser Console
 # Console window when the pref `devtools.browsertoolbox.fission` is true. This
 # Browser Console will log messages from all processes, not just the the parent
 # process.
-multiProcessBrowserConsole.title=Конзола вишепроцесног прегледача
+multiProcessBrowserConsole.title=Multiprocess Browser Console
 
 # LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
 # %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
@@ -140,7 +140,7 @@ logpoint.title=Logpoints from the debugger
 
 # LOCALIZATION NOTE (blockedReason.title)
 # Tooltip shown for blocked network events sent from the network panel
-blockedrequest.label=Блокирале алатке за програмере
+blockedrequest.label=Blocked by DevTools
 
 # LOCALIZATION NOTE (webconsole.find.key)
 # Key shortcut used to focus the search box on upper right of the console
@@ -183,6 +183,8 @@ webconsole.menu.resendNetworkRequest.accesskey=n
 # LOCALIZATION NOTE (webconsole.menu.openNodeInInspector.label)
 # Label used for a context-menu item displayed for DOM Node logs. Clicking on it will
 # reveal that specific DOM Node in the Inspector.
+webconsole.menu.openNodeInInspector.label=Reveal in Inspector
+webconsole.menu.openNodeInInspector.accesskey=Q
 
 # LOCALIZATION NOTE (webconsole.menu.storeAsGlobalVar.label)
 # Label used for a context-menu item displayed for object/variable logs. Clicking on it
@@ -211,6 +213,7 @@ webconsole.menu.selectAll.accesskey=A
 # LOCALIZATION NOTE (webconsole.menu.openInSidebar.label)
 # Label used for a context-menu item displayed for object/variable logs. Clicking on it
 # opens the webconsole sidebar for the logged variable.
+webconsole.menu.openInSidebar.label1=Inspect object in Sidebar
 webconsole.menu.openInSidebar.accesskey=V
 
 # LOCALIZATION NOTE (webconsole.menu.exportSubmenu.label)
@@ -279,6 +282,7 @@ webconsole.cssFilterButton.label=CSS
 # LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
 # Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
 # filter is inactive (=unchecked).
+webconsole.cssFilterButton.inactive.tooltip=Stylesheets will be reparsed to check for errors. Refresh the page to also see errors from stylesheets modified from Javascript.
 
 # LOCALIZATION NOTE (webconsole.xhrFilterButton.label)
 # Label used as the text of the "XHR" button in the additional filter toolbar.
@@ -311,35 +315,40 @@ webconsole.filteredMessagesByText.tooltip=#1 item hidden by text filter;#1 items
 # LOCALIZATION NOTE (webconsole.console.settings.menu.menuButton.tooltip)
 # Tooltip for the filter bar preferences menu. This menu will display multiple perefences for the
 # filter bar, such as enabling the compact toolbar mode, enable the timestamps, persist logs, etc
-webconsole.console.settings.menu.button.tooltip=Подешавања конзоле
+webconsole.console.settings.menu.button.tooltip=Console Settings
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.compactToolbar.label)
 # Label for the `Compact Toolbar` preference option. This will turn the message filters buttons
 # into a Menu Button, making the filter bar more compact.
-webconsole.console.settings.menu.item.compactToolbar.label=Компактна трака са алаткама
+webconsole.console.settings.menu.item.compactToolbar.label=Compact Toolbar
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.label)
 # Label for enabling the timestamps in the Web Console.
-webconsole.console.settings.menu.item.timestamps.label=Временске ознаке
+webconsole.console.settings.menu.item.timestamps.label=Show Timestamps
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=If you enable this option commands and output in the Web Console will display a timestamp
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.label)
 # Label for grouping the similar messages in the Web Console
-webconsole.console.settings.menu.item.warningGroups.label=Групиши сличне поруке
+webconsole.console.settings.menu.item.warningGroups.label=Group Similar Messages
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=When enabled, similar messages are placed into groups
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.label)
 # Label for enabling autocomplete for input in the Web Console
-webconsole.console.settings.menu.item.autocomplete.label=Аутоматско довршавање
+webconsole.console.settings.menu.item.autocomplete.label=Enable Autocompletion
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=If you enable this option the input will display suggestions as you type in it
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
-webconsole.console.settings.menu.item.enablePersistentLogs.label=Сталне евиденције
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Persist Logs
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=If you enable this option the output will not be cleared each time you navigate to a new page
 
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
-webconsole.console.settings.menu.item.instantEvaluation.label=Тренутна процена
+webconsole.console.settings.menu.item.instantEvaluation.label=Instant Evalutation
 # LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=If you enable this option the input will be instantly evaluated as you type in it
 
 # LOCALIZATION NOTE (browserconsole.contentMessagesCheckbox.label)
 # Label used in the browser console filter bar. This label is used for a checkbox that
@@ -425,18 +434,30 @@ webconsole.cssWarningElements.label=Elements matching selector: %S
 # Parameters: %S is the URL to file a bug about the error.
 webconsole.message.componentDidCatch.label=[DEVTOOLS ERROR] We’re sorry, we couldn’t render the message. This shouldn’t have happened - please file a bug at %S with the message metadata in the description.
 
-# LOCALIZATION NOTE (webconsole.message.commands.blockedURL)
+# LOCALIZATION NOTE (webconsole.message.commands.copyValueToClipboard)
+# Label displayed when the string is copied to the clipboard as a result of a copy command,
+# in the console, for example, copy({hello: "world"}).
+webconsole.message.commands.copyValueToClipboard=String was copied to clipboard.
+
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=`copy` command failed, object can’t be stringified: %S
+
+# LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
+webconsole.message.commands.blockedURL=Requests to URL containing “%S” are now blocked
 
 # LOCALIZATION NOTE (webconsole.message.commands.unblockedURL)
 # Label displayed when the :unblock <url> command is successful
 # Parameters: %S is the URL filter
-webconsole.message.commands.unblockedURL=Уклоњен је филтер за блокирање „%S”
+webconsole.message.commands.unblockedURL=Removed blocking filter “%S”
 
 # LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
 # Message displayed when no filter is passed to block/unblock command
-webconsole.messages.commands.blockArgMissing=Није наведен ниједан филтер
+webconsole.messages.commands.blockArgMissing=No filter was specified
 
 # LOCALIZATION NOTE (webconsole.message.componentDidCatch.copyButton.label)
 # Label displayed on the button next to the message we display when the webconsole
@@ -454,14 +475,14 @@ webconsole.editor.toolbar.executeButton.label=Run
 # The Reverse Search is a feature that mimics the bash-like reverse search of
 # command history in WebConsole, searching commands from the last item backwards.
 # Parameters: %S is the keyboard shortcut.
-webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip=Отвори обрнуту претрагу историје (%S)
+webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip=Open History Reverse Search (%S)
 
 # LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip)
 # Label used for the tooltip on the reverse search button for closing the Reverse Search UI.
 # The Reverse Search is a feature that mimics the bash-like reverse search of
 # command history in WebConsole, searching commands from the last item backwards.
 # Parameters: %S is the keyboard shortcut.
-webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip=Затвори обрнуту претрагу историје (%S)
+webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip=Close History Reverse Search (%S)
 
 # LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
 # Label used for the tooltip on the execute button, in the editor toolbar, which is
@@ -472,6 +493,7 @@ webconsole.editor.toolbar.executeButton.tooltip=Run expression (%S). This won’
 # LOCALIZATION NOTE (webconsole.editor.toolbar.prettyPrintButton.tooltip)
 # Label used for the tooltip on the prettyPrint button, in the editor toolbar, which is
 # displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.prettyPrintButton.tooltip=Pretty print expression
 
 # LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
 # Label used for the tooltip on the history previous expression, in the editor toolbar,
@@ -488,11 +510,13 @@ webconsole.editor.toolbar.history.nextExpressionButton.tooltip=Next Expression
 # Label used for the tooltip on the close button, in the editor toolbar, which is
 # displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
 # Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.closeButton.tooltip2=Switch back to inline mode (%S)
 
 # LOCALIZATION NOTE (webconsole.input.openEditorButton.tooltip2)
 # Label used for the tooltip on the open editor button, in console input, which is
 # displayed when the console is in regular mode.
 # Parameters: %S is the keyboard shortcut.
+webconsole.input.openEditorButton.tooltip2=Switch to multi-line editor mode (%S)
 
 # LOCALIZATION NOTE (webconsole.warningGroup.messageCount.tooltip): the tooltip text
 # displayed when you hover a warning group badge (i.e. repeated warning messages for a
@@ -501,17 +525,18 @@ webconsole.editor.toolbar.history.nextExpressionButton.tooltip=Next Expression
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 number of message in the group.
 # example: 3 messages
-webconsole.warningGroup.messageCount.tooltip=#1 порука;#1 поруке;#1 порука
+webconsole.warningGroup.messageCount.tooltip=#1 message;#1 messages;#1 messages
 
 # LOCALIZATION NOTE (webconsole.input.editor.onboarding.label): the text that is displayed
 # when displaying the multiline-input mode for the first time, until the user dismiss the
 # text.
 # Parameters: %1$S is Enter key, %2$S is the shorcut to evaluate the expression (
 # Ctrl+Enter or Cmd+Enter on OSX).
+webconsole.input.editor.onboarding.label=Iterate on your code faster with the new multi-line editor mode. Use %1$S to add new lines and %2$S to run.
 
 # LOCALIZATION NOTE (webconsole.input.editor.onboarding.dismiss.label): the text that is
 # displayed in the multiline-input mode onboarding UI to dismiss it.
-webconsole.input.editor.onboarding.dismiss.label=Разумем
+webconsole.input.editor.onboarding.dismiss.label=Got it!
 
 # LOCALIZATION NOTE (webconsole.enterKey): The text that will be used to represent the
 # Enter key in the editor onboarding UI, as well as on the Editor toolbar "Run" button
@@ -521,78 +546,27 @@ webconsole.enterKey=Enter
 # LOCALIZATION NOTE (webconsole.input.openJavaScriptFile): This is a label
 # used for opening a file in the console input (Ctrl+O or Cmd+O on OSX while
 # being focused on the input).
-webconsole.input.openJavaScriptFile=Отвори JavaScript датотеку
+webconsole.input.openJavaScriptFile=Open JavaScript File
 
 # LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
 # This string is displayed as a filter when opening a file in the console input.
-webconsole.input.openJavaScriptFileFilter=JavaScript датотеке
+webconsole.input.openJavaScriptFileFilter=JavaScript Files
 
 # LOCALIZATION NOTE (webconsole.input.selector.top): This is the term used
 # to describe the primary thread of execution in the page
-webconsole.input.selector.top=Примарна
+webconsole.input.selector.top=Top
 
 # LOCALIZATION NOTE (webconsole.input.selector.tooltip): This is the tooltip
 # shown when users select a thread that they want to evaluate an
 # expression for.
+webconsole.input.selector.tooltip=Select evaluation context
 
 # LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled): do not translate 'sameSite'.
-webconsole.group.cookieSameSiteLaxByDefaultEnabled=Неки колачићи погрешно користе атрибут „SameSite”, зато неће радити како треба
+webconsole.group.cookieSameSiteLaxByDefaultEnabled=Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected
 # LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled): do not translate 'sameSite'.
-webconsole.group.cookieSameSiteLaxByDefaultDisabled=Неки колачићи погрешно користе препоручени атрибут „sameSite”
+webconsole.group.cookieSameSiteLaxByDefaultDisabled=Some cookies are misusing the recommended “sameSite“ attribute
 
 # LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
-webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Неки колачићи погрешно користе атрибут „SameSite”, зато неће радити како треба
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Some cookies are misusing the “SameSite“ attribute, so it won’t work as expected
 # LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
-webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Неки колачићи погрешно користе препоручени атрибут „SameSite”
-
-# LOCALIZATION NOTE (webconsole.menu.openNodeInInspector.label)
-# Label used for a context-menu item displayed for DOM Node logs. Clicking on it will
-# reveal that specific DOM Node in the Inspector.
-webconsole.menu.openNodeInInspector.label=Reveal in Inspector
-webconsole.menu.openNodeInInspector.accesskey=Q
-# LOCALIZATION NOTE (webconsole.menu.openInSidebar.label)
-# Label used for a context-menu item displayed for object/variable logs. Clicking on it
-# opens the webconsole sidebar for the logged variable.
-webconsole.menu.openInSidebar.label1=Inspect object in Sidebar
-# LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
-# Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
-# filter is inactive (=unchecked).
-webconsole.cssFilterButton.inactive.tooltip=Stylesheets will be reparsed to check for errors. Refresh the page to also see errors from stylesheets modified from Javascript.
-# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
-webconsole.console.settings.menu.item.timestamps.tooltip=If you enable this option commands and output in the Web Console will display a timestamp
-# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
-webconsole.console.settings.menu.item.warningGroups.tooltip=When enabled, similar messages are placed into groups
-# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
-webconsole.console.settings.menu.item.autocomplete.tooltip=If you enable this option the input will display suggestions as you type in it
-# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
-webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=If you enable this option the output will not be cleared each time you navigate to a new page
-# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
-webconsole.console.settings.menu.item.instantEvaluation.tooltip=If you enable this option the input will be instantly evaluated as you type in it
-# LOCALIZATION NOTE (webconsole.message.commands.blockedURL)
-# Label displayed when the :block <url> command is successful
-# Parameters: %S is the URL filter
-webconsole.message.commands.blockedURL=Requests to URL containing “%S” are now blocked
-# LOCALIZATION NOTE (webconsole.editor.toolbar.prettyPrintButton.tooltip)
-# Label used for the tooltip on the prettyPrint button, in the editor toolbar, which is
-# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
-webconsole.editor.toolbar.prettyPrintButton.tooltip=Pretty print expression
-# LOCALIZATION NOTE (webconsole.editor.toolbar.closeButton.tooltip2)
-# Label used for the tooltip on the close button, in the editor toolbar, which is
-# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
-# Parameters: %S is the keyboard shortcut.
-webconsole.editor.toolbar.closeButton.tooltip2=Switch back to inline mode (%S)
-# LOCALIZATION NOTE (webconsole.input.openEditorButton.tooltip2)
-# Label used for the tooltip on the open editor button, in console input, which is
-# displayed when the console is in regular mode.
-# Parameters: %S is the keyboard shortcut.
-webconsole.input.openEditorButton.tooltip2=Switch to multi-line editor mode (%S)
-# LOCALIZATION NOTE (webconsole.input.editor.onboarding.label): the text that is displayed
-# when displaying the multiline-input mode for the first time, until the user dismiss the
-# text.
-# Parameters: %1$S is Enter key, %2$S is the shorcut to evaluate the expression (
-# Ctrl+Enter or Cmd+Enter on OSX).
-webconsole.input.editor.onboarding.label=Iterate on your code faster with the new multi-line editor mode. Use %1$S to add new lines and %2$S to run.
-# LOCALIZATION NOTE (webconsole.input.selector.tooltip): This is the tooltip
-# shown when users select a thread that they want to evaluate an
-# expression for.
-webconsole.input.selector.tooltip=Select evaluation context
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Some cookies are misusing the recommended “SameSite“ attribute
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/commonDialogs.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/commonDialogs.properties
index f8562c484e8383f4136d495fb030657d644c6e1c..324b37bca87289df570f25c56b7ec97897929dd4 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/commonDialogs.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/commonDialogs.properties
@@ -42,7 +42,5 @@ EnterCredentials=Овај сајт тражи од вас да се пријав
 # %S is the username for which a password is requested.
 EnterPasswordOnlyFor=Овај сајт тражи од вас да се пријавите као %S.
 # %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=Ова страница захтева да се пријавите. Упозорење: ваши подаци за пријављивање ће се делити са %S, а не са страницом на којој сте тренутно.
 SignIn=Пријави ме
-
-# %S is the domain of the site being accessed.
-EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/css.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/css.properties
index c7d6563fae0c98efbdb2ecd110393d961258041d..6766de34f38ba6b8903de7b7b184d8440a15c7de 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/css.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/css.properties
@@ -41,8 +41,7 @@ PEExpectedNoneOrURL=Очекиван 'none' или URL али пронађено
 PEExpectedNoneOrURLOrFilterFunction=Очекиван 'none, URL, или функција филтера али је пронађено '%1$S'.
 PEDisallowedImportRule=@import правила још увек нису важећа у изграђеним стилским таблицама.
 
+PENeverMatchingHostSelector=:host селектор у ‘%S’ није без карактеристика и никада се неће подударати. Можда сте хтели да користите :host()?
 
 TooLargeDashedRadius=Border radius је превелик за стил ‘dashed’ (органичење је 100000px). Рендерује се као solid.
 TooLargeDottedRadius=Border radius је превелик за стил ‘dotted’ (органичење је 100000px). Рендерује се као solid.
-
-PENeverMatchingHostSelector=:host selector in ‘%S’ is not featureless and will never match. Maybe you intended to use :host()?
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/dom/dom.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/dom/dom.properties
index 66accffda2ca3d694e4930a34e17892423341d42..c6c9913aeccdccc3f329be1e1e671cc070827c8b 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/dom/dom.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/dom/dom.properties
@@ -20,6 +20,7 @@ DontAskAgain=&Немој ме поново питати
 WindowCloseBlockedWarning=Скрипте не смеју затворити прозоре који нису отворени од стране скрипте.
 OnBeforeUnloadTitle=Да ли сте сигурни?
 OnBeforeUnloadMessage=Ова страница пита да ли је желите напустити. Подаци које сте унели можда неће бити сачувани.
+OnBeforeUnloadMessage2=Ова страница пита да ли је желите напустити — подаци које сте унели можда неће бити сачувани.
 OnBeforeUnloadStayButton=Остани на страници
 OnBeforeUnloadLeaveButton=Напусти страницу
 EmptyGetElementByIdParam=Празан стринг је прослеђен у getElementById().
@@ -36,7 +37,8 @@ FormValidationFileMissing=Изаберите датотеку.
 FormValidationSelectMissing=Изаберите ставку са листе.
 FormValidationInvalidEmail=Унесите адресу е-поште.
 FormValidationInvalidURL=Унесите URL.
-FormValidationInvalidDate =Унесите исправан датум.
+FormValidationInvalidDate=Унесите исправан датум.
+FormValidationInvalidTime=Унесите исправно време.
 FormValidationPatternMismatch=Ускладите са траженим форматом.
 # LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
 FormValidationPatternMismatchWithTitle=Ускладите са траженим форматом: %S.
@@ -335,6 +337,7 @@ ModuleSourceMalformed=Изворни URI модула је неисправан:
 # LOCALIZATION NOTE: Do not translate "<script>".
 ScriptSourceNotAllowed=<script> изворни URI није дозвољен у овом документу: “%S”.
 ModuleSourceNotAllowed=Изворни URI модула није омогућен у овом документу: “%S”.
+WebExtContentScriptModuleSourceNotAllowed=WebExtension скрипте садржаја могу учитавати модуле само са moz- URL везама проширења, а не: “%S”.
 ModuleResolveFailure=Грешка при решавању спецификатора модула “%S”. Релативни спецификатори модула морају почињати са “./”, “../” или “/”. 
 # LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
 InvalidKeyframePropertyValue=Вредност својства кључног фрејма “%1$S” није важећи према синтакси “%2$S”.
@@ -423,9 +426,6 @@ FolderUploadPrompt.acceptButtonLabel = Отпреми
 # LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
 # LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
 
-OnBeforeUnloadMessage2=This page is asking you to confirm that you want to leave — information you’ve entered may not be saved.
-FormValidationInvalidTime=Please enter a valid time.
-WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
 # LOCALIZATION NOTE: do not trnaslated "document.domain"
 DocumentSetDomainNotAllowedWarning=Setting document.domain in a cross-origin isolated environment is not allowed.
 # LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/MediaDocument.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/MediaDocument.properties
index 7f4fb53e4f352785cf71a909986624b80490399f..790796b833c1e766eab172f5c71314b78e7978dc 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/MediaDocument.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/MediaDocument.properties
@@ -16,8 +16,7 @@ MediaTitleWithFile=%S (%S објекат)
 MediaTitleWithNoInfo=(%S објекат)
 
 InvalidImage=Слика \u201c%S\u201d не може бити приказана зато што садржи грешке.
+UnsupportedImage=Слика “%S” се не може приказати јер захтева неподржане функције.
 ScaledImage=Размера (%S%%)
 
 TitleWithStatus=%S – %S
-
-UnsupportedImage=The image “%S” cannot be displayed because it requires unsupported features.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/htmlparser.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/htmlparser.properties
index 1bc3190d610fae7715520a0723ed5f34a5c2d12f..19fb1e929f1b740fc2ae981bbbadc4000bbec80a 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Крај датотеке унутар системског и
 errExpectedSystemId=Очекиван је системски идентификатор, али је doctype завршен.
 errMissingSpaceBeforeDoctypeName=Пре назива doctype-а недостаје размак.
 errHyphenHyphenBang=„--!“ нађен у коментару.
+errNestedComment=Присуство “<!--” у коментару. Вероватни узрок: угнежђени коментар (није дозвољен).
 errNcrZero=Референца на знак показује на нулу.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Недостаје размак између кључне речи „SYSTEM“ и наводника.
 errNoSpaceBetweenPublicAndSystemIds=Нема размак између јавних и системских идентификатора doctype-а.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Не затворени елементи на
 errEndTagDidNotMatchCurrentOpenElement=Крајња ознака „%1$S“ не одговара имену тренутно отвореног елемента („%2$S“).
 errEndTagViolatesNestingRules=Крајња ознака „%1$S“ није исправно угнеждена.
 errEndWithUnclosedElements=Крајња ознака за “%1$S” је нађена, али било је незатворених елемената.
+errListUnclosedStartTags=Незатворен елемент или елементи.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout_errors.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout_errors.properties
index c5b409b6b872892dff889b28c643193d9c323eba..69fa0ff507882359f82d5e7be63ac45de56a1b38 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout_errors.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=Атрибут „coords‟ елемента <area
 TablePartRelPosWarning=Релативна позиција редова табела и група редова јe сада подржана. Овај сајт ће можда морати да се ажурира је можда ова могућност неће имати ефекта.
 ScrollLinkedEffectFound2=Овај сајт користи "scroll-linked" ефекат позиционирања. Ово можда неће радити добро са асинхроним померањем; погледајте https://developers.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects за више информација и да се придружите дискусији о сличним алаткама и могућностима!
 
+ScrollLinkedEffectFound3=Овај сајт користи scroll-linked ефекат позиционирања. Овај ефекат можда неће исправно радити са асинхроним померањем. Погледајте https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html за више детаља и за придруживање расправи о сличним алаткама и функцијама!
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/security/security.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/security/security.properties
index 301024a8dac517026cb43861facf40ceeaa25089..03a1e19fd7aabeb7ab88a0ef8e57ae854add9440 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/global/security/security.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/global/security/security.properties
@@ -20,8 +20,10 @@ CORSAllowOriginNotMatchingOrigin=Cross-Origin захтев је блокиран
 CORSNotSupportingCredentials=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара ‘%1$S’. (Разлог: Акредитив није подржан ако је CORS заглавље ‘Access-Control-Allow-Origin’ постављено на ‘*’).
 CORSMethodNotFound=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: Није пронађена метода у CORS заглављу 'Access-Control-Allow-Methods').
 CORSMissingAllowCredentials=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: очекивано 'true' у CORS заглављу 'Access-Control-Allow-Credentials').
+CORSPreflightDidNotSucceed2=Cross-Origin захтев блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: CORS preflight одзив није успео).
 CORSInvalidAllowMethod=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: неисправан токен '%2$S' у CORS заглављу 'Access-Control-Allow-Methods').
 CORSInvalidAllowHeader=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: неисправан токен '%2$S' у CORS заглављу 'Access-Control-Allow-Headers').
+CORSMissingAllowHeaderFromPreflight2=Cross-Origin захтев је блокиран: Полиса истог порекла не дозвољава да читате ресурсе са удаљеног рачунара %1$S. (Разлог: заглавље ‘%2$S’ није дозвољено према ‘Access-Control-Allow-Headers’ заглављу из CORS preflight одзива).
 
 # LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
 STSUnknownError=Strict-Transport-Security: Десила се непозната грешка, обрађујем заглавље које је сајт навео.
@@ -42,6 +44,7 @@ InsecurePasswordsPresentOnIframe=Поља за лозинке су предст
 # LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
 LoadingMixedActiveContent2=Учитавам мешовит (несигуран) активан садржај "%1$S" на безбедној страници
 LoadingMixedDisplayContent2=Учитавам мешовит (несигуран) саджрај "%1$S" за приказ на безбедној страници 
+LoadingMixedDisplayObjectSubrequestDeprecation=Учитавање мешовитог (несигурног) садржај “%1$S” у додатак на безбедној страници није препоручљиво и ускоро ће бити блокирано.
 # LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
 MixedContentBlockedDownload = Блокирано је преузимање небезбедног садржаја „%S”.
 
@@ -49,6 +52,7 @@ MixedContentBlockedDownload = Блокирано је преузимање не
 BothAllowScriptsAndSameOriginPresent=iframe који има allow-scripts и allow-same-origin за његов sandbox атрибут може да уклони његово извршавање.
 
 # LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=iframe који има и allow-top-navigation и allow-top-navigation-by-user-activation за његов sandbox атрибут ће омогућити навигацију према врху.
 
 # Sub-Resource Integrity
 # LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
@@ -92,6 +96,7 @@ BlockSubresourceRedirectToData=Прослеђујем небезбедним п
 
 BlockSubresourceFTP=Учитавање FTP подизвора унутар http(s) странице није дозвољено (Блокирано учитавање: “%1$S”)
 
+RestrictBrowserEvalUsage=eval() и сличне eval употребе нису дозвољене у родитељском процесу или контексту система (блокирана употреба у “%1$S”)
 
 # LOCALIZATION NOTE (BrowserUpgradeInsecureDisplayRequest):
 # %1$S is the browser name "brandShortName"; %2$S is the URL of the upgraded request; %1$S is the upgraded scheme.
@@ -99,6 +104,7 @@ BrowserUpgradeInsecureDisplayRequest = %1$S надограђује ‘%2$S’, 
 
 # LOCALIZATION NOTE (MixedContentAutoUpgrade):
 # %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Надограђивање небезбедног захтева за екран ‘%1$S’ за коришћење ‘%2$S’
 # LOCALIZATION NOTE (RunningClearSiteDataValue):
 # %S is the URI of the resource whose data was cleaned up
 RunningClearSiteDataValue=Заглавље брисања података сајта је форсирало брисање “%S” података.
@@ -124,51 +130,32 @@ ReferrerLengthOverLimitation=Заглавље HTTP Referrer: дужина је 
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=Заглавље HTTP Referrer: дужина изворне вредности у referrer-у је за “%1$S” бајтова већа од ограничења - уклања се referrer са извором “%2$S”.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer политика: мање рестриктивне смернице, укључујући ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ и ‘unsafe-url’, ускоро ће бити занемарене за захтев више сајтова: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer политика: занемаривање мање рестриктивне referrer политике “%1$S” за захтев више сајтова: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Неважеће X-Frame-Options заглавље је пронађено при учитавању “%2$S”: “%1$S” није важећа директива.
 # LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=Учитавање “%2$S” у оквиру је одбијено “X-Frame-Options“ директивом постављеном на “%1$S“.
 
 # HTTPS-Only Mode
 # LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Надограђивање небезбедног захтева “%1$S” на “%2$S”.
 # LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Небезбедан захтев “%1$S” се не надограђује јер је празан.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
-
+HTTPSOnlyFailedRequest = Надоградња небезбедног захтева “%1$S” није успела. (%2$S)
 # LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Надоградња небезбедног захтева “%S” није успела. Враћање на “http”.
 
 # LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Преузимање “%S” је блокирано јер iframe оквир који га покреће има опцију sandbox.
 
 # Sanitizer API
 # LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Примљено празно или без уноса. Враћање празног DocumentFragment.
 # LOCALIZATION NOTE: "Sanitizer" is the name of the API. Please do not localize.
-
-
-CORSPreflightDidNotSucceed2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight response did not succeed).
-CORSMissingAllowHeaderFromPreflight2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: header ‘%2$S’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
-LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon.
-# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
-BothAllowTopNavigationAndUserActivationPresent=An iframe which has both allow-top-navigation and allow-top-navigation-by-user-activation for its sandbox attribute will permit top navigations.
-RestrictBrowserEvalUsage=eval() and eval-like uses are not allowed in the Parent Process or in System Contexts (Blocked usage in “%1$S”)
-# LOCALIZATION NOTE (MixedContentAutoUpgrade):
-# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
-MixedContentAutoUpgrade=Upgrading insecure display request ‘%1$S’ to use ‘%2$S’
-# X-Frame-Options
-# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
-XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
-# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
-XFrameOptionsDeny=The loading of “%2$S” in a frame is denied by “X-Frame-Options“ directive set to “%1$S“.
-# HTTPS-Only Mode
-# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
-HTTPSOnlyUpgradeRequest = Upgrading insecure request “%1$S” to use “%2$S”.
-# LOCALIZATION NOTE: %1$S is the URL of request.
-HTTPSOnlyNoUpgradeException = Not upgrading insecure request “%1$S” because it is exempt.
-# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
-HTTPSOnlyFailedRequest = Upgrading insecure request “%1$S” failed. (%2$S)
-# LOCALIZATION NOTE: %S is the URL of the failed request;
-HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
-# LOCALIZATION NOTE: %S is the URL of the blocked request;
-IframeSandboxBlockedDownload = Download of “%S” was blocked because the triggering iframe has the sandbox flag set.
-# Sanitizer API
-# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
-SanitizerRcvdNoInput = Received empty or no input. Returning an empty DocumentFragment.
-# LOCALIZATION NOTE: "Sanitizer" is the name of the API. Please do not localize.
-SanitizerOptionsDiscarded = Options for the Sanitizer constructor are not yet supported. Please note this is experimental behavior.
+SanitizerOptionsDiscarded = Опције за Sanitizer конструктор још нису подржане. Имајте на уму да је ово експериментално понашање.
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/lightning/lightning.dtd b/thunderbird-l10n/sr/chrome/sr/locale/sr/lightning/lightning.dtd
index 61f340758eb0c0fa97d19fb458db3c13ead6f8eb..c59ddd2c28381f904d534c875742cbf82a70beb7 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/lightning/lightning.dtd
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/lightning/lightning.dtd
@@ -18,12 +18,6 @@
 <!ENTITY lightning.menupopup.new.calendar.label "Календар…">
 <!ENTITY lightning.menupopup.new.calendar.accesskey "н">
 
-<!-- Open menu popup in File menu -->
-<!ENTITY lightning.menupopup.open.label               "Отвори">
-<!ENTITY lightning.menupopup.open.accesskey           "О">
-<!ENTITY lightning.menupopup.open.message.label       "Сачувана порука…">
-<!ENTITY lightning.menupopup.open.message.accesskey   "п">
-
 <!-- Open menu popup in File menu -->
 <!ENTITY lightning.menupopup.open.calendar.label      "Датотека календара…">
 <!ENTITY lightning.menupopup.open.calendar.accesskey  "л">
@@ -52,6 +46,10 @@
 <!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1     "За сада, можете омогућити ово након што подесите овај календар унутар његовог прозорчета својстава ако се календарски сервер побринуо за заказивање.">
 <!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2     "Ова опција је доступна само ако је календарски сервер задужен за заказивање. Омогућавањем ћете одступити на уобичајено заказивање преко мејла уместо да то препустите серверу.">
 
+<!-- The notifications settings in the properties dialog -->
+<!ENTITY lightning.calendarproperties.notifications.label                   "Обавештења">
+<!ENTITY lightning.calendarproperties.globalNotifications.label             "Општа подешавања обавештења…">
+
 <!-- iMIP Bar (meeting support) -->
 <!ENTITY lightning.imipbar.btnAccept.label                                  "Прихвати">
 <!ENTITY lightning.imipbar.btnAccept2.tooltiptext                           "Прихвати позивницу на догађај">
@@ -114,7 +112,3 @@
 <!ENTITY todaypane.showTodayPane.label "Прикажи данашњу површ">
 <!ENTITY todaypane.showTodayPane.accesskey "о">
 <!ENTITY todaypane.statusButton.label "Данашња површ">
-
-<!-- The notifications settings in the properties dialog -->
-<!ENTITY lightning.calendarproperties.notifications.label                   "Notifications">
-<!ENTITY lightning.calendarproperties.globalNotifications.label             "Global Notification Preferences…">
diff --git a/thunderbird-l10n/sr/chrome/sr/locale/sr/necko/necko.properties b/thunderbird-l10n/sr/chrome/sr/locale/sr/necko/necko.properties
index b438f657e5f23be64d347222a86a818edb0e0d58..95f2453ae3b7ec084bffe424f17daef5b7a3493d 100644
--- a/thunderbird-l10n/sr/chrome/sr/locale/sr/necko/necko.properties
+++ b/thunderbird-l10n/sr/chrome/sr/locale/sr/necko/necko.properties
@@ -47,6 +47,7 @@ CookieBlockedForeign=Захтев за приступ колачићима ил
 # As part of dynamic state partitioning, third-party resources might be limited to "partitioned" storage access that is separate from the first-party context.
 # This allows e.g. cookies to still be set, and prevents tracking without totally blocking storage access. This message is shown in the web console when this happens
 # to inform developers that their storage is isolated.
+CookiePartitionedForeign2=Приступ партицијском колачићу или складишту је одобрен “%1$S” јер се учитава у контексту трећих страна и омогућено је динамично партиционисање стања.
 
 # LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
 CookieAllowedForOriginByStorageAccessAPI=Приступ за складиштење је одобрен за извор “%2$S” на “%1$S”.
@@ -106,8 +107,3 @@ CookieRejectedNonsecureOverSecure=Колачић “%1$S” је одбијен
 CookieRejectedExpired=Колачић “%1$S” је одбијен зато што је истекао.
 # LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
 CookieRejectedForNonSameSiteness=Колачић “%1$S” је одбијен зато што је у контексту трећих страна и његов “SameSite” је “Lax” или “Strict”.
-
-# As part of dynamic state partitioning, third-party resources might be limited to "partitioned" storage access that is separate from the first-party context.
-# This allows e.g. cookies to still be set, and prevents tracking without totally blocking storage access. This message is shown in the web console when this happens
-# to inform developers that their storage is isolated.
-CookiePartitionedForeign2=Partitioned cookie or storage access was provided to “%1$S” because it is loaded in the third-party context and dynamic state partitioning is enabled.
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-editable-item.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..f05d5723284412a810b5c016123d5634e7bb13fa
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-editable-item.ftl
@@ -0,0 +1,26 @@
+# 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/.
+
+calendar-editable-item-privacy-icon-private =
+    .alt = Приватност: приватни догађај
+calendar-editable-item-privacy-icon-confidential =
+    .alt = Приватност: прикажи само време и датум
+calendar-editable-item-todo-icon-task =
+    .alt = Задатак
+calendar-editable-item-todo-icon-completed-task =
+    .alt = Завршен задатак
+calendar-editable-item-multiday-event-icon-start =
+    .alt = Вишедневни догађај почиње
+calendar-editable-item-multiday-event-icon-continue =
+    .alt = Вишедневни догађај се наставља
+calendar-editable-item-multiday-event-icon-end =
+    .alt = Вишедневни догађај завршава
+calendar-editable-item-reminder-icon-alarm =
+    .alt = Подсетник је заказан
+calendar-editable-item-reminder-icon-suppressed-alarm =
+    .alt = Подсетник је заказан али је тренутно потиснут
+calendar-editable-item-reminder-icon-email =
+    .alt = Подсетник путем е-поште је заказан
+calendar-editable-item-reminder-icon-audio =
+    .alt = Звучни подсетник је заказан
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..0be5e6867935f203d07d78e1d4fea5ed9b965232
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# 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/.
+
+calendar-event-reminder-icon-display =
+    .alt = Прикажи упозорење
+calendar-event-reminder-icon-email =
+    .alt = Пошаљи имејл
+calendar-event-reminder-icon-audio =
+    .alt = Репродукуј звучно упозорење
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..1aad5027d0571dd495071aef5be91061644a538f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# 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/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+    .alt = Тренутно одобрено
+calendar-invitation-current-participation-status-icon-declined =
+    .alt = Тренутно одбијено
+calendar-invitation-current-participation-status-icon-needs-action =
+    .alt = Тренутно неодлучено
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..54193a5d680dc6286d5f61e80bbe863e74ae7b3d
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,7 @@
+# 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/.
+
+calendar-itip-identity-dialog-title = Позивате ли се сами?
+calendar-itip-identity-warning = Још увек нисте на листи гостију.
+calendar-itip-identity-label = Одговори као:
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-print.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..541b4142c8a468bb9a333275a7e7a43f545d5756
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-print.ftl
@@ -0,0 +1,16 @@
+# 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/.
+
+calendar-print-layout-label = Распоред
+calendar-print-layout-list = Листа
+calendar-print-layout-month-grid = Месечни преглед
+calendar-print-layout-week-planner = Недељни планер
+calendar-print-filter-label = Шта штампати
+calendar-print-filter-events = Догађаји
+calendar-print-filter-tasks = Задаци
+calendar-print-filter-completedtasks = Завршени задаци
+calendar-print-filter-taskswithnoduedate = Задаци без рока
+calendar-print-range-from = Од
+calendar-print-range-to = За
+calendar-print-next-button = Даље
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/calendar-widgets.ftl b/thunderbird-l10n/sr/localization/sr/calendar/calendar-widgets.ftl
index 9f9cac599378aee28c17f513fd5f8e7bb5681bd8..9b3959fd0fa9ecaf265202ea6866afc68bbb3c00 100644
--- a/thunderbird-l10n/sr/localization/sr/calendar/calendar-widgets.ftl
+++ b/thunderbird-l10n/sr/localization/sr/calendar/calendar-widgets.ftl
@@ -4,3 +4,6 @@
 
 calendar-deactivated-notification-events = Сви календари су тренутно онемогућени. Омогућите постојећи календар или додајте нови за креирање и уређивање догађаја.
 calendar-deactivated-notification-tasks = Сви календари су тренутно онемогућени. Омогућите постојећи календар или додајте нови за креирање и уређивање задатака.
+calendar-notifications-label = Прикажите обавештења о претходним догађајима
+calendar-add-notification-button =
+    .label = Додај обавештење
diff --git a/thunderbird-l10n/sr/localization/sr/calendar/preferences.ftl b/thunderbird-l10n/sr/localization/sr/calendar/preferences.ftl
index a7bf8c09242b87e1555f7d133a5830b12814eb93..4ea54f84bb4e94e1f6889adf092267df5b4fa203 100644
--- a/thunderbird-l10n/sr/localization/sr/calendar/preferences.ftl
+++ b/thunderbird-l10n/sr/localization/sr/calendar/preferences.ftl
@@ -4,6 +4,7 @@
 
 calendar-title = Календар
 calendar-title-reminder = Подсетници
+calendar-title-notification = Обавештења
 calendar-title-category = Категорије
 dateformat-label =
     .value = Формат текста датума:
@@ -179,6 +180,7 @@ event-alarm-time-label =
 task-alarm-time-label =
     .value = Подразумевано време у које се подсетник поставља пре задатка:
     .accesskey = о
+calendar-notifications-customize-label = Обавештења се могу прилагодити за сваки календар у прозору својстава календара.
 category-new-label = Нова категорија
 category-edit-label = Уреди категорију
 category-overwrite-title = Упозорење: Дупло име
diff --git a/thunderbird-l10n/sr/localization/sr/devtools/client/application.ftl b/thunderbird-l10n/sr/localization/sr/devtools/client/application.ftl
index 098c77272f7d102c01fb49279616451f3adba5eb..a63c38cf17204bb467ed9e183106975861f97b31 100644
--- a/thunderbird-l10n/sr/localization/sr/devtools/client/application.ftl
+++ b/thunderbird-l10n/sr/localization/sr/devtools/client/application.ftl
@@ -14,45 +14,35 @@
 
 # Header for the list of Service Workers displayed in the application panel for the current page.
 serviceworker-list-header = Service Workers
-
 # Text displayed next to the list of Service Workers to encourage users to check out
 # about:debugging to see all registered Service Workers.
 serviceworker-list-aboutdebugging = Open <a>about:debugging</a> for Service Workers from other domains
-
 # Text for the button to unregister a Service Worker. Displayed for active Service Workers.
 serviceworker-worker-unregister = Опозови регистрацију
-
 # Text for the debug link displayed for an already started Service Worker. Clicking on the
 # link opens a new devtools toolbox for this service worker. The title attribute is only
 # displayed when the link is disabled.
 serviceworker-worker-debug = Debug
     .title = Only running service workers can be debugged
-
 # Text for the debug link displayed for an already started Service Worker, when we
 # are in multi e10s mode, which effectively disables this link.
 serviceworker-worker-debug-forbidden = Debug
     .title = Can only debug service workers if multi e10s is disabled
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start2 = Start
     .title = Can only start service workers if multi e10s is disabled
-
 # Alt text for the image icon displayed inside a debug link for a service worker.
 serviceworker-worker-inspect-icon =
     .alt = Прегледај
-
 # Text for the start link displayed for a registered but not running Service Worker.
 # Clicking on the link will attempt to start the service worker.
 serviceworker-worker-start3 = Покрени
-
 # Text displayed for the updated time of the service worker. The <time> element will
 # display the last update time of the service worker script.
 serviceworker-worker-updated = Updated <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
-
 # Text displayed next to the URL for the source of the service worker (e-g. "Source my/path/to/worker-js")
 serviceworker-worker-source = Source
-
 # Text displayed next to the current status of the service worker.
 serviceworker-worker-status = Status
 
@@ -62,121 +52,93 @@ serviceworker-worker-status = Status
 # Service Worker status. A running service worker is registered, currently executed, can
 # be debugged and stopped.
 serviceworker-worker-status-running = Running
-
 # Service Worker status. A stopped service worker is registered but not currently active.
 serviceworker-worker-status-stopped = Stopped
-
 # Text displayed when no service workers are visible for the current page. Clicking on the
 # link will open https://developer-mozilla-org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro = You need to register a Service Worker to inspect it here. <a>Learn more</a>
-
 # Text displayed when there are no Service Workers to display for the current page,
 # introducing hints to debug Service Worker issues.
 serviceworker-empty-suggestions = If the current page should have a service worker, here are some things you can try
-
 # Suggestion to check for errors in the Console to investigate why a service worker is not
 # registered. Clicking on the link opens the webconsole.
 serviceworker-empty-suggestions-console = Look for errors in the Console. <a>Open the Console</a>
-
 # Suggestion to use the debugger to investigate why a service worker is not registered.
 # Clicking on the link will switch from the Application panel to the debugger.
 serviceworker-empty-suggestions-debugger = Step through your Service Worker registration and look for exceptions. <a>Open the Debugger</a>
-
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Clicking on the link will open about:debugging in a new tab.
 serviceworker-empty-suggestions-aboutdebugging = Inspect Service Workers from other domains. <a>Open about:debugging</a>
-
 # Text displayed when no service workers are visible for the current page.
 serviceworker-empty-intro2 = Service worker-и нису пронађени
-
 # Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
 serviceworker-empty-intro-link = Сазнајте више
-
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+# <a> and <span> are links that will open the webconsole and the debugger, respectively.
+serviceworker-empty-suggestions2 = Ако тренутна страница треба да има веб воркера, можете да потражите грешке у <a>конзоли</a> или да прођете кроз регистрацију ваших веб воркера у <span>програму за отклањање грешака</span>.
 # Suggestion to go to about:debugging in order to see Service Workers for all domains.
 # Link will open about:debugging in a new tab.
 serviceworker-empty-suggestions-aboutdebugging2 = Прикажи service worker-е са других домена
-
 # Header for the Manifest page when we have an actual manifest
 manifest-view-header = Манифест апликације
-
 # Header for the Manifest page when there's no manifest to inspect
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro = Прво додајте манифест веб-апликације да бисте га прегледали овде. <a>Сазнајте више</a>
-
 # Header for the Manifest page when there's no manifest to inspect
 manifest-empty-intro2 = Манифест веб-апликације није пронађен
-
 # The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
 manifest-empty-intro-link = Сазнајте како да додате манифест
-
 # Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
 manifest-item-warnings = Грешке и упозорења
-
 # Header for the Identity section of Manifest inspection displayed in the application panel.
 manifest-item-identity = Идентитет
-
 # Header for the Presentation section of Manifest inspection displayed in the application panel.
 manifest-item-presentation = Презентација
-
 # Header for the Icon section of Manifest inspection displayed in the application panel.
 manifest-item-icons = Иконе
-
 # Text displayed while we are loading the manifest file
 manifest-loading = Учитавање манифеста…
-
 # Text displayed when the manifest has been successfully loaded
 manifest-loaded-ok = Манифест је учитан.
-
 # Text displayed as a caption when there has been an error while trying to
 # load the manifest
 manifest-loaded-error = Дошло је до грешке при учитавању манифеста:
-
 # Text displayed as an error when there has been a Firefox DevTools error while
 # trying to load the manifest
 manifest-loaded-devtools-error = Грешка у Firefox-овим алаткама за програмере
-
 # Text displayed when the page has no manifest available
 manifest-non-existing = Манифест за преглед није пронађен.
-
 # Text displayed when the page has a manifest embedded in a Data URL and
 # thus we cannot link to it.
 manifest-json-link-data-url = Манифест је уграђен у data URL.
-
 # Text displayed at manifest icons to label their purpose, as declared
 # in the manifest.
 manifest-icon-purpose = Намена: <code>{ $purpose }</code>
-
 # Text displayed as the alt attribute for <img> tags showing the icons in the
 # manifest.
 manifest-icon-img =
     .alt = Икона
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest. `$sizes` is a user-dependent string that has been parsed as a
 # space-separated list of `<width>x<height>` sizes or the keyword `any`.
 manifest-icon-img-title = Икона са величинама: { $sizes }
-
 # Text displayed as the title attribute for <img> tags showing the icons in the
 # manifest, in case there's no icon size specified by the user
 manifest-icon-img-title-no-sizes = Икона ненаведене величине
-
 # Sidebar navigation item for Manifest sidebar item section
 sidebar-item-manifest = Манифест
     .alt = Икона манифеста
     .title = Манифест
-
 # Sidebar navigation item for Service Workers sidebar item section
 sidebar-item-service-workers = Сервис воркери
     .alt = Икона сервис воркера
     .title = Сервис воркери
-
 # Text for the ALT and TITLE attributes of the warning icon
 icon-warning =
     .alt = Икона упозорења
     .title = Упозорење
-
 # Text for the ALT and TITLE attributes of the error icon
 icon-error =
     .alt = Икона грешке
     .title = Грешка
-
diff --git a/thunderbird-l10n/sr/localization/sr/devtools/client/perftools.ftl b/thunderbird-l10n/sr/localization/sr/devtools/client/perftools.ftl
index 1e1853ce6fefd5e9913b3a1222a7a7947311ffb7..f3dd19dac77681f20411880be7766f2076f97d97 100644
--- a/thunderbird-l10n/sr/localization/sr/devtools/client/perftools.ftl
+++ b/thunderbird-l10n/sr/localization/sr/devtools/client/perftools.ftl
@@ -7,6 +7,10 @@
 ### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
 ### file that are used for the profiler popup.
 
+perftools-intro-title = Profiler подешавања
+perftools-intro-description =
+    Регистрације покрећу profiler.firefox.com у новом језичку. Сви подаци су сачувани
+    локално, али можете изабрати да их пошаљете за дељење.
 
 ## All of the headings for the various sections.
 
@@ -21,6 +25,9 @@ perftools-heading-local-build = Локална верзија
 
 ##
 
+perftools-description-intro =
+    Регистрације покрећу <a>profiler.firefox.com</a> у новом језичку. Сви подаци су сачувани
+    локално, али можете изабрати да их пошаљете за дељење.
 
 ## The controls for the interval at which the profiler samples the code.
 
@@ -31,7 +38,6 @@ perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits:
 
 # The size of the memory buffer used to store things in the profiler.
 perftools-range-entries-label = Величина бафера:
-
 perftools-devtools-interval-label = Интервал:
 perftools-devtools-threads-label = Нити:
 perftools-devtools-settings-label = Подешавања
diff --git a/thunderbird-l10n/sr/localization/sr/devtools/client/storage.ftl b/thunderbird-l10n/sr/localization/sr/devtools/client/storage.ftl
index b3d28a437513e30ed53abe54439b6040af8daf11..cc04789948b7edee20bb651c20fb58eca2e249ad 100644
--- a/thunderbird-l10n/sr/localization/sr/devtools/client/storage.ftl
+++ b/thunderbird-l10n/sr/localization/sr/devtools/client/storage.ftl
@@ -7,4 +7,21 @@
 
 # Hint shown when the selected storage host does not contain any data
 storage-table-empty-text = Нема података за изабрани хост
-
+# Hint shown when the cookies storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cookies
+storage-table-type-cookies-hint = Изаберите хост за преглед и уређивање колачића. <a data-l10n-name="learn-more-link">Сазнајте више</a>
+# Hint shown when the local storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-localstorage-hint = Изаберите хост за преглед и уређивање локалне меморије. <a data-l10n-name="learn-more-link">Сазнајте више</a>
+# Hint shown when the session storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-sessionstorage-hint = Изаберите хост за преглед и уређивање меморије сесије. <a data-l10n-name="learn-more-link">Сазнајте више</a>
+# Hint shown when the IndexedDB storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/IndexedDB
+storage-table-type-indexeddb-hint = Изаберите базу података за преглед и уређивање ставки у IndexedDB. <a data-l10n-name="learn-more-link">Сазнајте више</a>
+# Hint shown when the cache storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cache_Storage
+storage-table-type-cache-hint = Изаберите меморију за преглед и уређивање уноса у кеш меморији. <a data-l10n-name="learn-more-link">Сазнајте више</a>
+# Hint shown when the extension storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Extension_Storage
+storage-table-type-extensionstorage-hint = Изаберите хост за преглед и уређивање меморије проширења. <a data-l10n-name="learn-more-link">Сазнајте више</a>
diff --git a/thunderbird-l10n/sr/localization/sr/devtools/client/toolbox-options.ftl b/thunderbird-l10n/sr/localization/sr/devtools/client/toolbox-options.ftl
index bcd63cea4618e8c9b2f01e00890339f27285cc99..6f35b7c6acacb913797b0413cf3fd10ac8982339 100644
--- a/thunderbird-l10n/sr/localization/sr/devtools/client/toolbox-options.ftl
+++ b/thunderbird-l10n/sr/localization/sr/devtools/client/toolbox-options.ftl
@@ -10,19 +10,15 @@
 
 # The heading
 options-select-default-tools-label = Default Developer Tools
-
 # The label for the explanation of the * marker on a tool which is currently not supported
 # for the target of the toolbox.
 options-tool-not-supported-label = * Not supported for current toolbox target
-
 # The label for the heading of group of checkboxes corresponding to the developer tools
 # added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
 options-select-additional-tools-label = Developer Tools installed by add-ons
-
 # The label for the heading of group of checkboxes corresponding to the default developer
 # tool buttons.
 options-select-enabled-toolbox-buttons-label = Available Toolbox Buttons
-
 # The label for the heading of the radiobox corresponding to the theme
 options-select-dev-tools-theme-label = Themes
 
@@ -30,12 +26,10 @@ options-select-dev-tools-theme-label = Themes
 
 # The heading
 options-context-inspector = Inspector
-
 # The label for the checkbox option to show user agent styles
 options-show-user-agent-styles-label = Show Browser Styles
 options-show-user-agent-styles-tooltip =
     .title = Turning this on will show default styles that are loaded by the browser.
-
 # The label for the checkbox option to enable collapse attributes
 options-collapse-attrs-label = Truncate DOM attributes
 options-collapse-attrs-tooltip =
@@ -54,7 +48,6 @@ options-default-color-unit-name = Color Names
 
 # The heading
 options-styleeditor-label = Style Editor
-
 # The label for the checkbox that toggles autocompletion of css in the Style Editor
 options-stylesheet-autocompletion-label = Autocomplete CSS
 options-stylesheet-autocompletion-tooltip =
@@ -64,12 +57,14 @@ options-stylesheet-autocompletion-tooltip =
 
 # The heading
 options-screenshot-label = Screenshot Behavior
-
 # Label for the checkbox that toggles screenshot to clipboard feature
 options-screenshot-clipboard-label = Screenshot to clipboard
 options-screenshot-clipboard-tooltip =
     .title = Saves to the screenshot directly to the clipboard
-
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-only-label = Снимај само у привремену меморију
+options-screenshot-clipboard-tooltip2 =
+    .title = Сачувајте снимак екрана директно у привремену меморију
 # Label for the checkbox that toggles the camera shutter audio for screenshot tool
 options-screenshot-audio-label = Play camera shutter sound
 options-screenshot-audio-tooltip =
@@ -79,7 +74,6 @@ options-screenshot-audio-tooltip =
 
 # The heading
 options-sourceeditor-label = Editor Preferences
-
 options-sourceeditor-detectindentation-tooltip =
     .title = Guess indentation based on source content
 options-sourceeditor-detectindentation-label = Detect indentation
@@ -95,42 +89,34 @@ options-sourceeditor-keybinding-default-label = Default
 
 ## Advanced section
 
-# The heading
+# The heading (this item is also used in perftools.ftl)
 options-context-advanced-settings = Advanced settings
-
 # The label for the checkbox that toggles the HTTP cache on or off
 options-disable-http-cache-label = Disable HTTP Cache (when toolbox is open)
 options-disable-http-cache-tooltip =
     .title = Turning this option on will disable the HTTP cache for all tabs that have the toolbox open. Service Workers are not affected by this option.
-
 # The label for checkbox that toggles JavaScript on or off
 options-disable-javascript-label = Disable JavaScript *
 options-disable-javascript-tooltip =
     .title = Turning this option on will disable JavaScript for the current tab. If the tab or the toolbox is closed then this setting will be forgotten.
-
 # The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
 options-enable-chrome-label = Enable browser chrome and add-on debugging toolboxes
 options-enable-chrome-tooltip =
     .title = Turning this option on will allow you to use various developer tools in browser context (via Tools > Web Developer > Browser Toolbox) and debug add-ons from the Add-ons Manager
-
 # The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
 options-enable-remote-label = Enable remote debugging
 options-enable-remote-tooltip2 =
     .title = Укључивањем ове опције омогућиће се даљинско уклањање грешака ове инстанце прегледача
-
 # The label for checkbox that toggles the service workers testing over HTTP on or off.
 options-enable-service-workers-http-label = Enable Service Workers over HTTP (when toolbox is open)
 options-enable-service-workers-http-tooltip =
     .title = Turning this option on will enable the service workers over HTTP for all tabs that have the toolbox open.
-
 # The label for the checkbox that toggles source maps in all tools.
 options-source-maps-label = Enable Source Maps
 options-source-maps-tooltip =
     .title = If you enable this option sources will be mapped in the tools.
-
 # The message shown for settings that trigger page reload
 options-context-triggers-page-refresh = * Current session only, reloads the page
-
 # The label for the checkbox that toggles the display of the platform data in the
 # Profiler i.e. devtools.profiler.ui.show-platform-data a boolean preference in about:config
 options-show-platform-data-label = Show Gecko platform data
diff --git a/thunderbird-l10n/sr/localization/sr/devtools/client/tooltips.ftl b/thunderbird-l10n/sr/localization/sr/devtools/client/tooltips.ftl
index 7802da7c07ca4143dbdc05616f1c7234ab28e18b..6d450c8033aeb5859bb04cd9cca194e67c5b555f 100644
--- a/thunderbird-l10n/sr/localization/sr/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/sr/localization/sr/devtools/client/tooltips.ftl
@@ -15,40 +15,45 @@ learn-more = <span data-l10n-name="link">Learn more</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s neither a flex container nor a grid container.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container, a grid container, or a multi-column container.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid or flex item.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> has no effect on this element since it’s not a grid item.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> has no effect on this element since it’s not a grid container.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> has no effect on this element since it’s not a flex item.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> has no effect on this element since it’s not a flex container.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> has no effect on this element since it’s not an inline or table-cell element.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> has no effect on this element since it has a display of <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = The <strong>display</strong> value has been changed by the engine to <strong>block</strong> because the element is <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = It’s impossible to override <strong>{ $property }</strong> due to <strong>:visited</strong> restriction.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> has no effect on this element since it’s not a positioned element.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> has no effect on this element since <strong>overflow:hidden</strong> is not set.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> has no effect on internal table elements.
+inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> has no effect on internal table elements except table cells.
+inactive-css-not-table = <strong>{ $property }</strong> has no effect on this element since it’s not a table.
+inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> has no effect on this element since it doesn’t scroll.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
 ## an icon. When this icon is hovered this message is displayed to explain how
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Try adding <strong>display:grid</strong> or <strong>display:flex</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Try adding either <strong>display:grid</strong>, <strong>display:flex</strong>, or <strong>columns:2</strong>. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-2 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-3 = Try adding <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
+inactive-css-not-grid-item-fix-2 = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong> to the element’s parent. { learn-more }
 inactive-css-not-grid-container-fix = Try adding <strong>display:grid</strong> or <strong>display:inline-grid</strong>. { learn-more }
-
+inactive-css-not-flex-item-fix-2 = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong> to the element’s parent. { learn-more }
 inactive-css-not-flex-container-fix = Try adding <strong>display:flex</strong> or <strong>display:inline-flex</strong>. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Try adding <strong>display:inline</strong> or <strong>display:table-cell</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Try adding <strong>display:inline-block</strong> or <strong>display:block</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try adding <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Try removing <strong>float</strong> or adding <strong>display:block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Try setting its <strong>position</strong> property to something other than <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Try adding <strong>overflow:hidden</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-fix = Try setting its <strong>display</strong> property to something else than <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-for-internal-table-elements-except-table-cells-fix = Try setting its <strong>display</strong> property to something else than <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, or <strong>table-footer-group</strong>. { learn-more }
+inactive-css-not-table-fix = Try adding <strong>display:table</strong> or <strong>display:inline-table</strong>. { learn-more }
+inactive-scroll-padding-when-not-scroll-container-fix = Try adding <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, or <strong>overflow:hidden</strong>. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
 ## we display an icon. When this icon is hovered this message is displayed to explain why
@@ -57,12 +62,11 @@ inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Try addin
 ##   $property (string) - A CSS declaration name e.g. "-moz-user-select" that can be a platform specific alias.
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
-css-compatibility-deprecated-message = Својство <strong>{ $property }</strong> је застарело према W3C стандардима. Није подржано у следећим прегледачима:
-
-css-compatibility-deprecated-supported-message = Својство <strong>{ $property }</strong> је застарело према W3C стандардима.
-
-css-compatibility-experimental-message = <strong>{ $property }</strong> је експериментално својство. Није подржано у следећим прегледачима:
-
-css-compatibility-experimental-supported-message = <strong>{ $property }</strong> је експериментално својство.
-
-css-compatibility-learn-more-message = <span data-l10n-name="link">Сазнајте више</span> о <strong>{ $rootProperty }</strong>
+css-compatibility-default-message = <strong>{ $property }</strong> is not supported in the following browsers:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> was an experimental property that is now deprecated by W3C standards.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> is deprecated by W3C standards. It is not supported in the following browsers:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> is deprecated by W3C standards.
+css-compatibility-experimental-message = <strong>{ $property }</strong> is an experimental property. It is not supported in the following browsers:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> is an experimental property.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Learn more</span> about <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/sr/localization/sr/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/sr/localization/sr/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/chat.ftl b/thunderbird-l10n/sr/localization/sr/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/sr/localization/sr/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/exportDialog.ftl b/thunderbird-l10n/sr/localization/sr/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/importDialog.ftl b/thunderbird-l10n/sr/localization/sr/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/messenger/preferences/am-copies.ftl b/thunderbird-l10n/sr/localization/sr/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/security/certificates/certManager.ftl b/thunderbird-l10n/sr/localization/sr/security/certificates/certManager.ftl
index 4bb800ae448857b6b0d02cb938ebbe5f36ed5d45..3274f72ddf89bcd6f965be5de19250e8f3cc5464 100644
--- a/thunderbird-l10n/sr/localization/sr/security/certificates/certManager.ftl
+++ b/thunderbird-l10n/sr/localization/sr/security/certificates/certManager.ftl
@@ -4,184 +4,128 @@
 
 certmgr-title =
     .title = Менаџер сертификата
-
 certmgr-tab-mine =
     .label = Ваши сертификати
-
 certmgr-tab-remembered =
     .label = Одлуке о аутентификацији
-
 certmgr-tab-people =
     .label = Људи
-
 certmgr-tab-servers =
     .label = Сервери
-
 certmgr-tab-ca =
     .label = Ауторитети
-
 certmgr-mine = Имате сертификате ових организација које вас идентификују
 certmgr-remembered = Ови сертификати се користе за вашу идентификацију на веб страницама.
 certmgr-people = Имате сертификате датотеке која идентификује ове људе
 certmgr-servers = Имате сертификате датотеке која идентификује ове сервере
 certmgr-server = Ови уноси идентификују изузетке грешака сертификата сервера
 certmgr-ca = Имате сертификате датотеке која идентификује ова сертификациона тела
-
 certmgr-detail-general-tab-title =
     .label = Основне поставке
     .accesskey = О
-
 certmgr-detail-pretty-print-tab-title =
     .label = Детаљи
     .accesskey = Д
-
 certmgr-pending-label =
     .value = Провера сертификата је у току…
-
 certmgr-subject-label = Издато за
-
 certmgr-issuer-label = Издато од
-
 certmgr-period-of-validity = Период важења
-
 certmgr-fingerprints = Отисак кључа
-
 certmgr-cert-detail =
     .title = Детаљи сертификата
     .buttonlabelaccept = Затвори
     .buttonaccesskeyaccept = З
-
 certmgr-cert-detail-commonname = Општи назив (CN)
-
 certmgr-cert-detail-org = Организација (O)
-
 certmgr-cert-detail-orgunit = Организациона јединица (OU)
-
 certmgr-cert-detail-serial-number = Серијски број
-
 certmgr-cert-detail-sha-256-fingerprint = SHA-256 отисак кључа
-
 certmgr-cert-detail-sha-1-fingerprint = SHA1 отисак кључа
-
 certmgr-edit-ca-cert =
     .title = Измени поставке поверења сертификационог тела
     .style = width: 48em;
-
 certmgr-edit-cert-edit-trust = Измени поставке поверења:
-
 certmgr-edit-cert-trust-ssl =
     .label = Овај сертификат може да идентификује веб сајтове.
-
 certmgr-edit-cert-trust-email =
     .label = Овај сертификат може да идентификује кориснике е-поште.
-
 certmgr-delete-cert =
     .title = Избриши сертификат
     .style = width: 48em; height: 24em;
-
 certmgr-cert-host =
     .label = Хост
-
 certmgr-cert-name =
     .label = Назив сертификата
-
 certmgr-cert-server =
     .label = Сервер
-
 certmgr-override-lifetime =
     .label = Животни век
-
 certmgr-token-name =
     .label = Безбедносни уређај
-
 certmgr-begins-on = Важи од
-
 certmgr-begins-label =
     .label = Важи од
-
 certmgr-expires-on = Истиче
-
 certmgr-expires-label =
     .label = Истиче
-
 certmgr-email =
     .label = Имејл-адреса
-
 certmgr-serial =
     .label = Серијски број
-
 certmgr-view =
     .label = Преглед…
     .accesskey = П
-
 certmgr-edit =
     .label = Уреди поверење…
     .accesskey = р
-
 certmgr-export =
     .label = Извоз…
     .accesskey = И
-
 certmgr-delete =
     .label = Уклони…
     .accesskey = У
-
 certmgr-delete-builtin =
     .label = Избриши или прогласи неповерљивим…
     .accesskey = И
-
 certmgr-backup =
     .label = Архивирај…
     .accesskey = А
-
 certmgr-backup-all =
     .label = Архивирај све…
     .accesskey = с
-
 certmgr-restore =
     .label = Увоз…
     .accesskey = У
-
 certmgr-details =
     .value = Поља сертификата
     .accesskey = П
-
 certmgr-fields =
     .value = Вредност поља
     .accesskey = Ð’
-
 certmgr-hierarchy =
     .value = Хијерархија сертификата
     .accesskey = Х
-
 certmgr-add-exception =
     .label = Додај изузетак…
     .accesskey = Ñ‚
-
 exception-mgr =
     .title = Додавање безбедносног изузетка
-
 exception-mgr-extra-button =
     .label = Потврди безбедносни изузетак
     .accesskey = П
-
 exception-mgr-supplemental-warning = Легитимне банке, продавнице и други јавни сајтови неће тражити да ово радите.
-
 exception-mgr-cert-location-url =
     .value = Адреса:
-
 exception-mgr-cert-location-download =
     .label = Добави сертификат
     .accesskey = Ð’
-
 exception-mgr-cert-status-view-cert =
     .label = Преглед…
     .accesskey = е
-
 exception-mgr-permanent =
     .label = Трајно сачувај овај изузетак
     .accesskey = Т
-
 pk11-bad-password = Унешена лозинка није исправна.
 pkcs12-decode-err = Грешка при дешифровању датотеке. Можда то није датотека PKCS#12 , датотека није у реду или унешена лозинка није исправна.
 pkcs12-unknown-err-restore = Немогуће је обновити датотеку PKCS #12 из непознатог разлога.
@@ -214,30 +158,22 @@ delete-user-cert-title =
     .title = Брисање сертификата
 delete-user-cert-confirm = Желите ли заиста да избришете ове сертификате?
 delete-user-cert-impact = Ако избришете један од сертификата, нећете бити у могућности да се представите.
-
-
 delete-ssl-cert-title =
     .title = Уклони изузетак о серверском сертификату
 delete-ssl-cert-confirm = Да ли сигурно желите да уклоните ове серверске изузетке?
 delete-ssl-cert-impact = Ако уклоните серверски изузетак, враћате уобичајену проверу безбедности за сервер и захтевате да поседује важећи сертификат.
-
-
 delete-ssl-override-title =
     .title = Избриши изузетак сертификата сервера
 delete-ssl-override-confirm = Да ли сте сигурни да желите да избришете овај изузетак сервера?
 delete-ssl-override-impact = Ако избришете изузетак сервера, онда вратите стандардне безбедносне провере за овај сервер и захтевајте да користи важећи сертификат.
-
 delete-ca-cert-title =
     .title = Избриши или укини поверење сертификационом телу
 delete-ca-cert-confirm = Захтевали сте да се избришу ови сертификати. За уграђене сертификате, све дозволе и поверења ће бити уклоњени, што има исти ефекат. Желите ли да их избришете или укинете поверења?
 delete-ca-cert-impact = Ако избришете или укинете сертификат сертификационог тела (CA), ова апликација неће више веровати ни једном сертификату који је тај издавач издао.
-
-
 delete-email-cert-title =
     .title = Избришите сертификат е-поште
 delete-email-cert-confirm = Да ли сте сигурни да желите да избришете сертификате е-поште за следеће кориснике?
 delete-email-cert-impact = Ако уклоните сертификат за е-пошту неке особе, више нећете моћи да јој шаљете е-пошту.
-
 # Used for semi-uniquely representing a cert.
 #
 # Variables:
@@ -253,29 +189,21 @@ cert-with-serial =
 #   $certificate : a string representative of the certificate being viewed.
 cert-viewer-title =
     .title = Прегледач сертификата: “{ $certName }”
-
 not-present =
     .value = <Није део сертификата>
-
 # Cert verification
 cert-verified = Сертификат је потврђен за следеће кориснике:
-
 # Add usage
 verify-ssl-client =
     .value = SSL сертификат клијента
-
 verify-ssl-server =
     .value = SSL сертификат сервера
-
 verify-ssl-ca =
     .value = SSL сертификационо тело
-
 verify-email-signer =
     .value = Сертификат потписника е-поште
-
 verify-email-recip =
     .value = Сертификат примаоца е-поште
-
 # Cert verification
 cert-not-verified-cert-revoked = Провера сертификата није могућа зато што је отказана.
 cert-not-verified-cert-expired = Провера сертификата није могућа зато што је рок трајања истекао.
@@ -285,12 +213,12 @@ cert-not-verified-issuer-unknown = Провера сертификата ниј
 cert-not-verified-ca-invalid = Провера сертификата није могућа зато што је сертификационо тело непостојеће.
 cert-not-verified_algorithm-disabled = Провера сертификата није могућа зато што је алгоритам који служи за учитавање небезбедан.
 cert-not-verified-unknown = Провера сертификата није могућа.
-
 # Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
 send-no-client-certificate = Не шаљи потврду клијента
-
 # Used when no cert is stored for an override
 no-cert-stored-for-override = (Није сачувано)
+# When a certificate is unavailable (for example, it has been deleted or the token it exists on has been removed).
+certificate-not-available = (Недоступно)
 
 ## Used to show whether an override is temporary or permanent
 
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutGlean.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutGlean.ftl
index 1c167792fb50318ee69c8e555894813c4e4dddfc..be8025906b1ec97582df6971a50c516e946d8527 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutGlean.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutGlean.ftl
@@ -6,6 +6,7 @@
 ### "Glean" and "Glean SDK" should remain in English.
 
 about-glean-page-title = О Glean-у
+about-glean-description = <a data-l10n-name="glean-sdk-doc-link">Glean SDK</a> је библиотека која се користи у Mozilla производима за прикупљање података. Ова страница је за програмере и тестере који треба да <a data-l10n-name="fog-debug-doc-link">подесе стање отклањања грешака и евиденције у Glean SDK</a>.
 about-glean-warning =
     Погрешно коришћење овог интерфејса може да проузрокује отказивање { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -13,7 +14,7 @@ about-glean-warning =
         [neuter] { -brand-short-name(case: "gen") }
        *[other] програма { -brand-short-name }
     }.
-
 tag-pings-label = Додели ову ознаку свим послатим пинговима
+log-pings-label = Снимити пинг садржај пре слања?
 send-pings-label = Пошаљи именовани пинг
 controls-button-label = Пошаљи подешавања
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutNetworking.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutNetworking.ftl
index c7ffe603e6e347cf797c4dc199e1d1cd3c332819..cccc4e0c729ac15a7dab300cbdd9be632ce43a79 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutNetworking.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutNetworking.ftl
@@ -20,6 +20,7 @@ about-networking-active = Активно
 about-networking-idle = Чекање
 about-networking-host = Хост
 about-networking-tcp = TCP
+about-networking-type = Тип
 about-networking-sent = Послато
 about-networking-received = Примљено
 about-networking-family = Породица
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutProcesses.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutProcesses.ftl
index 9172b8ce6a85df333ae397b353dce3978e486cdd..dae4533b07c16e9d9263f289d56ab74b3488096f 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutProcesses.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutProcesses.ftl
@@ -4,7 +4,6 @@
 
 # Page title
 about-processes-title = Менаџер процеса
-
 # The Actions column
 about-processes-column-action =
     .title = Радње
@@ -22,28 +21,25 @@ about-processes-column-name = Назив
 about-processes-column-memory-resident = Меморија
 about-processes-column-cpu-total = CPU
 
-## Process names
-## Variables:
-##    $pid (String) The process id of this process, assigned by the OS.
-##    $origin (String) The domain name for this process.
-##    $type (String) The raw type for this process. Used for unknown processes.
-
 ## Process names
 ## Variables:
 ##    $pid (String) The process id of this process, assigned by the OS.
 
+about-processes-browser-process = { -brand-short-name } ({ $pid })
 about-processes-web-process = Дељени веб-процес ({ $pid })
 about-processes-file-process = Датотеке ({ $pid })
 about-processes-extension-process = Додаци ({ $pid })
 about-processes-privilegedabout-process = Странице about: ({ $pid })
 about-processes-plugin-process = Додатне компоненте ({ $pid })
 about-processes-privilegedmozilla-process = Сајтови организације { -vendor-short-name } ({ $pid })
+about-processes-gmp-plugin-process = Gecko медијска проширења ({ $pid })
 about-processes-gpu-process = GPU ({ $pid })
 about-processes-vr-process = VR ({ $pid })
 about-processes-rdd-process = Декодер података ({ $pid })
 about-processes-socket-process = Мрежа ({ $pid })
+about-processes-remote-sandbox-broker-process = Даљински Sandbox Broker ({ $pid })
+about-processes-fork-server-process = Fork Server ({ $pid })
 about-processes-preallocated-process = Унапред додељено ({ $pid })
-
 # Unknown process names
 # Variables:
 #    $pid (String) The process id of this process, assigned by the OS.
@@ -80,7 +76,6 @@ about-processes-active-threads =
         [few] { $active } активне нити од { $number }: { $list }
        *[other] { $active } активних нити од { $number }: { $list }
     }
-
 # Single-line summary of threads (idle process)
 # Variables:
 #    $number (Number) The number of threads in the process. Typically larger
@@ -93,25 +88,21 @@ about-processes-inactive-threads =
         [few] { $number } неактивне нити
        *[other] { $number } неактивних нити
     }
-
 # Thread details
 # Variables:
 #   $name (String) The name assigned to the thread.
 #   $tid (String) The thread id of this thread, assigned by the OS.
 about-processes-thread-name-and-id = { $name }
     .title = ID нити: { $tid }
-
 # Tab
 # Variables:
 #   $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
-about-processes-tab-name = Картица: { $name }
+about-processes-tab-name = Језичак: { $name }
 about-processes-preloaded-tab = Унапред учитана нова картица
-
 # Single subframe
 # Variables:
 #   $url (String) The full url of this subframe.
 about-processes-frame-name-one = Подоквир: { $url }
-
 # Group of subframes
 # Variables:
 #   $number (Number) The number of subframes in this group. Always ≥ 1.
@@ -130,10 +121,8 @@ about-processes-frame-name-many = Подоквири ({ $number }): { $shortUrl
 # Common case.
 about-processes-cpu = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") }
     .title = Укупно процесорско време: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
-
 # Special case: data is not available yet.
 about-processes-cpu-user-and-kernel-not-ready = (мерење)
-
 # Special case: process or thread is currently idle.
 about-processes-cpu-idle = неактиван
     .title = Укупно процесорско време: { NUMBER($total, maximumFractionDigits: 2) }{ $unit }
@@ -152,7 +141,6 @@ about-processes-cpu-idle = неактиван
 # Common case.
 about-processes-total-memory-size-changed = { NUMBER($total, maximumFractionDigits: 0) } { $totalUnit }
     .title = Развој: { $deltaSign }{ NUMBER($delta, maximumFractionDigits: 0) } { $deltaUnit }
-
 # Special case: no change.
 about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
 
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutSupport.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutSupport.ftl
index 770bff0b03d95837a02dd48418ff0e12be88ff85..b80857198ca6b89ca9d3349b335166f3d214183e 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutSupport.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutSupport.ftl
@@ -7,7 +7,6 @@ page-subtitle =
     Ова страница садржи техничке податке који могу бити корисни када
     покушавате да решите неки проблем. Ако вам требају одговори на често постављана питања
     о програму { -brand-short-name }, прегледајте наш <a data-l10n-name="support-link">веб сајт за подршку</a>.
-
 crashes-title = Извештаји о отказивању
 crashes-id = ID извештаја
 crashes-send-date = Послато
@@ -61,12 +60,14 @@ app-basics-enabled-plugins = Омогућене додатне компонен
 app-basics-build-config = Конфигурација изградње
 app-basics-user-agent = Корисник
 app-basics-os = ОС
+app-basics-os-theme = Системска тема
 # Rosetta is Apple's translation process to run apps containing x86_64
 # instructions on Apple Silicon. This should remain in English.
 app-basics-rosetta = Rosetta Translated
 app-basics-memory-use = Меморија
 app-basics-performance = Перформансе
 app-basics-service-workers = Регистровани сервис воркери
+app-basics-third-party = Модули других произвођача
 app-basics-profiles = Профили
 app-basics-launcher-process-status = Покретачки процес
 app-basics-multi-process-support = Вишепроцесорски прозори
@@ -127,7 +128,6 @@ sandbox-sys-call-number = Системски позив
 sandbox-sys-call-args = Аргументи
 safe-mode-title = Покушај безбедни режим
 restart-in-safe-mode-label = Рестартуј са онемогућеним додацима…
-
 troubleshoot-mode-title = Дијагностика проблема
 restart-in-troubleshoot-mode-label = Режим за решавање проблема…
 clear-startup-cache-title = Покушајте да избришете предмеморију покретања
@@ -185,37 +185,6 @@ remote-debugging-url = URL
 
 ##
 
-support-third-party-modules-title = Модули независних произвођача
-support-third-party-modules-module = Датотека модула
-support-third-party-modules-version = Верзија датотеке
-support-third-party-modules-vendor = Информације о добављачу
-support-third-party-modules-occurrence = Учесталост
-support-third-party-modules-process = Тип процеса и ID
-support-third-party-modules-thread = Нит
-support-third-party-modules-base = Imagebase адреса
-support-third-party-modules-uptime = Трајање процеса (ms)
-support-third-party-modules-duration = Трајање учитавања (ms)
-support-third-party-modules-status = Статус
-support-third-party-modules-status-loaded = Учитано
-support-third-party-modules-status-blocked = Блокирано
-support-third-party-modules-status-redirected = Преусмерено
-support-third-party-modules-empty = Нису учитани модули независних произвођача.
-support-third-party-modules-no-value = (Без вредности)
-support-third-party-modules-button-open =
-    .title = Отвори локацију датотеке…
-support-third-party-modules-expand =
-    .title = Прикажи детаљне информације
-support-third-party-modules-collapse =
-    .title = Сакриј детаљне информације
-support-third-party-modules-unsigned-icon =
-    .title = Овај модул није потписан
-support-third-party-modules-folder-icon =
-    .title = Отвори локацију датотеке…
-support-third-party-modules-down-icon =
-    .title = Прикажи детаљне информације
-support-third-party-modules-up-icon =
-    .title = Сакриј детаљне информације
-
 # Variables
 # $days (Integer) - Number of days of crashes to log
 report-crash-for-days =
@@ -224,7 +193,6 @@ report-crash-for-days =
         [few] Извештаји о отказивању за протекла { $days } дана
        *[other] Извештаји о отказивању за протеклих { $days } дана
     }
-
 # Variables
 # $minutes (integer) - Number of minutes since crash
 crashes-time-minutes =
@@ -233,7 +201,6 @@ crashes-time-minutes =
         [few] Пре { $minutes } минута
        *[other] Пре { $minutes } минута
     }
-
 # Variables
 # $hours (integer) - Number of hours since crash
 crashes-time-hours =
@@ -242,7 +209,6 @@ crashes-time-hours =
         [few] Пре { $hours } сата
        *[other] Пре { $hours } сати
     }
-
 # Variables
 # $days (integer) - Number of days since crash
 crashes-time-days =
@@ -251,7 +217,6 @@ crashes-time-days =
         [few] Пре { $days } дана
        *[other] Пре { $days } дана
     }
-
 # Variables
 # $reports (integer) - Number of pending reports
 pending-reports =
@@ -260,7 +225,6 @@ pending-reports =
         [few] Сви извештаји о отказивању (укључујући { $reports } нерешена случаја у датом периоду)
        *[other] Сви извештаји о отказивању (укључујући { $reports } нерешених случаја у датом периоду)
     }
-
 raw-data-copied = Подаци копирани у бележницу
 text-copied = Текст копиран у бележницу
 
@@ -273,11 +237,9 @@ blocked-mismatched-version = Блокирана верзија драјвера
 # Variables
 # $driverVersion - The graphics driver version string
 try-newer-driver = Блокирано за верзију драјвера графике коју имате. Покушајте да ажурирате управљачки програм на верзију { $driverVersion } или новију.
-
 # "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
 # there are no good translations, these are only used in about:support
 clear-type-parameters = ClearType параметри
-
 compositing = Састављање
 hardware-h264 = Hardware H264 декодирање
 main-thread-no-omtc = главна нит, без OMTC
@@ -292,7 +254,6 @@ virtual-monitor-disp = Приказ виртуелног монитора
 
 found = Пронађено
 missing = Недостаје
-
 gpu-process-pid = GPUProcessPid
 gpu-process = GPUProcess
 gpu-description = Опис
@@ -316,25 +277,20 @@ webgl2-version = WebGL 2 верзија драјвера
 webgl2-driver-extensions = WebGL 2 – проширења драјвера
 webgl2-extensions = WebGL 2 – проширења
 blocklisted-bug = На црној листи због познатих проблема
-
 # Variables
 # $bugNumber (string) - String of bug number from Bugzilla
 bug-link = грешка { $bugNumber }
-
 # Variables
 #   $bugNumber (string) - Bug number on Bugzilla
 support-blocklisted-bug = Блокирано због познатих проблема: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
-
 # Variables
 # $failureCode (string) - String that can be searched in the source tree.
 unknown-failure = На црној листи; код грешке { $failureCode }
-
 d3d11layers-crash-guard = D3D11 композитор
 d3d11video-crash-guard = D3D11 видео декодер
 d3d9video-crash-guard = D3D9 видео декодер
 glcontext-crash-guard = OpenGL
 wmfvpxvideo-crash-guard = WMF VPX видео декодер
-
 reset-on-next-restart = Ресетуј при следећем покретању
 gpu-process-kill-button = Угаси GPU процес
 gpu-device-reset = Поновно покретање уређаја
@@ -344,10 +300,8 @@ content-uses-tiling = Користи плочице (садржај)
 off-main-thread-paint-enabled = Нит за сликање омогућена
 off-main-thread-paint-worker-count = Thread Painting Worker бројач
 target-frame-rate = Циљана брзина освежавања тј. Framerate
-
 min-lib-versions = Очекивана минимална верзија
 loaded-lib-versions = Верзија у употреби
-
 has-seccomp-bpf = Seccomp-BPF (Системско филтрирање позива)
 has-seccomp-tsync = Seccomp синхронизација нити
 has-user-namespaces = Именски простори корисника
@@ -356,22 +310,20 @@ can-sandbox-content = Sandboxing процеса садржаја
 can-sandbox-media = Медијска компонента Sandboxing
 content-sandbox-level = Ниво Sandbox процеса садржаја
 effective-content-sandbox-level = Ефективни ниво Sandbox процеса садржаја
+content-win32k-lockdown-state = Стање закључавања Win32k за процес садржаја
 sandbox-proc-type-content = садржај
 sandbox-proc-type-file = садржај дадотеке
 sandbox-proc-type-media-plugin = медијска компонента
 sandbox-proc-type-data-decoder = декодер података
-
 startup-cache-title = Кеш покретања
 startup-cache-disk-cache-path = Путања до дисковног кеша
 startup-cache-ignore-disk-cache = Игноришите дисковни кеш
 startup-cache-found-disk-cache-on-init = Дисковни кеш пронађен током иницијализације
 startup-cache-wrote-to-disk-cache = Записано у дисковни кеш
-
 launcher-process-status-0 = Омогућено
 launcher-process-status-1 = Онемогућено због грешке
 launcher-process-status-2 = Онемогућен силом
 launcher-process-status-unknown = Непознат статус
-
 # Variables
 # $remoteWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -384,7 +336,6 @@ multi-process-status-6 = Онемогућио неподржани метод у
 multi-process-status-7 = Онемогућили додаци
 multi-process-status-8 = Присилно онемогућено
 multi-process-status-unknown = Непознат статус
-
 # Variables
 # $fissionWindows (integer) - Number of remote windows
 # $totalWindows (integer) - Number of total windows
@@ -399,7 +350,7 @@ fission-status-disabled-by-default = Подразумевано онемогућ
 fission-status-enabled-by-user-pref = Омогућио корисник
 fission-status-disabled-by-user-pref = Онемогућио корисник
 fission-status-disabled-by-e10s-other = E10s онемогућен
-
+fission-status-enabled-by-rollout = Омогућено фазним распоређивањем
 async-pan-zoom = Асинхроно кретање/увеличавање
 apz-none = нема
 wheel-enabled = унос точкића омогућен
@@ -435,7 +386,7 @@ support-printing-prefs-value = Вредност
 support-remote-experiments-title = Удаљени експерименти
 support-remote-experiments-name = Назив
 support-remote-experiments-branch = Експериментална грана
-
+support-remote-experiments-see-about-studies = За више информација погледајте <a data-l10n-name="support-about-studies-link">about:studies</a>, укључујући како онемогућити појединачне експерименте или како да забранитите да их { -brand-short-name } покреће у будућности.
 support-remote-features-title = Удаљене функције
 support-remote-features-name = Назив
 support-remote-features-status = Статус
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutThirdParty.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutThirdParty.ftl
index a90418f5097135bab58237784475e2799f89d341..33e0973f0306611c5cd4a8bf514df13c84ccb971 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutThirdParty.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/about/aboutThirdParty.ftl
@@ -4,13 +4,12 @@
 
 third-party-page-title = Информације о модулу треће стране
 third-party-section-title = Листа модула трећих страна у { -brand-short-name(case: "loc") }
-
-third-party-header-module-list = Листа модула
-third-party-header-loading-events = Учитавање догађаја
-
+third-party-intro =
+    Ова страница приказује листу модула трећих страна који су уметнути у вашу { -brand-short-name } апликацију.
+    Сваки модул који није потписао Microsoft или
+    { -vendor-short-name } сматра се модулом треће стране.
 third-party-message-empty = Модули трећих страна нису пронађени.
 third-party-message-no-duration = Није снимљено
-
 third-party-detail-version = Верзија датотеке
 third-party-detail-vendor = Информације о произвођачу
 third-party-detail-occurrences = Понављања
@@ -19,16 +18,25 @@ third-party-detail-duration = Просечно време блокирања (ms
     .title = Колико дуго је овај модул блокирао апликацију.
 third-party-detail-app = Апликација
 third-party-detail-publisher = Издавач
-
 third-party-th-process = Процес
 third-party-th-duration = Време учитавања (ms)
 third-party-th-status = Статус
-
+third-party-tag-ime = IME
+    .title = Ова врста модула се учитава када користите IME треће стране.
+third-party-tag-shellex = Shell проширења
+    .title = Ова врста модула се учитава када отворите дијалог системске датотеке.
+third-party-tag-background = Позадина
+    .title = Овај модул није блокирао апликацију јер је учитана у позадини.
+third-party-unsigned-icon =
+    .title = Овај модул није потписан
+third-party-warning-icon =
+    .title = { -brand-short-name } се срушио у коду овог модула.
 third-party-status-loaded = Учитано
 third-party-status-blocked = Блокирано
 third-party-status-redirected = Преусмерено
-
 third-party-button-copy-to-clipboard = Копирај необрађене податке
+third-party-button-reload = Поново учитајте информације о систему
+    .title = Поново учитајте информације о систему
 third-party-button-open =
     .title = Отвори локацију датотеке…
 third-party-button-expand =
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/featuregates/features.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/featuregates/features.ftl
index ffeb6557b41b49e1177820de58556cd2d2bb282d..a645761f0b8f3727fbeac9862ee57f5fbc6a761f 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/featuregates/features.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/featuregates/features.ftl
@@ -2,64 +2,90 @@
 # 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/.
 
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+    .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Омогућава подршку за експерименталну CSS Masonry Layout функцију. Погледајте <a data-l10n-name="explainer">објашњење</a> за опис функције на високом нивоу. За слање повратних информација, оставите коментар на <a data-l10n-name="w3c-issue">GitHub сајту</a> или на <a data-l10n-name="bug">ову грешку</a>.
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-web-gpu2 =
     .label = Веб API: WebGPU
-
+experimental-features-web-gpu-description2 = Овај нови API пружа подршку ниског нивоа за рачунарство и графички приказ преко <a data-l10n-name="wikipedia">графичког процесора (GPU)</a> корисниковог уређаја или рачунара. <a data-l10n-name="spec">Спецификација</a> је још увек у току. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1602129</a>.
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-avif =
     .label = Media: AVIF
-
+experimental-features-media-avif-description = Омогућавањем ове функције, { -brand-short-name } подржава AV1 формат датотеке слике (AVIF). То је формат статичне слике који користи алгоритме компресије видео записа AV1 за смањење величине слике. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1443863</a>.
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-media-jxl =
     .label = Медиј: JPEG XL
-
+experimental-features-media-jxl-description = Омогућавањем ове функције, { -brand-short-name } подржава JPEG XL (JXL) формат. То је побољшани формат сликовне датотеке који подржава прелазак са традиционалних JPEG датотека без губитака. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1539075</a>.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-api-inputmode =
+    .label = Web API: inputmode
+# "inputmode" and "contenteditable" are technical terms and shouldn't be translated.
+experimental-features-web-api-inputmode-description = Имплементација глобалног <a data-l10n-name="mdn-inputmode">inputmode</a> атрибута ажурирана је на основу <a data-l10n-name="whatwg">WHATWG спецификације</a>, али и даље морамо да уведемо друге промене, на пример да га учинимо доступним на „прихватљивом“ садржају. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1205133</a>.
 # The title of the experiment should be kept in English as it may be referenced
 # by various online articles and is technical in nature.
 experimental-features-css-constructable-stylesheets =
     .label = CSS: Constructable Stylesheets
-
+experimental-features-css-constructable-stylesheets-description = Додавање конструктора интерфејсу <a data-l10n-name="mdn-cssstylesheet">CSSStyleSheet</a> и сродне промене омогућавају вам да креирате нове стилове без додавања стила у HTML. Ово увелико олакшава стварање стилова који се могу рециклирати за употребу са <a data-l10n-name="mdn-shadowdom">Shadow DOM</a>. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1520690</a>.
 experimental-features-devtools-color-scheme-simulation =
     .label = Алатке за програмере: симулација шеме боја
-
+experimental-features-devtools-color-scheme-simulation-description = Додаје могућност симулације различитих шема боја за тестирање <a data-l10n-name="mdn-preferscolorscheme">@prefers-color-scheme</a> медијских упита. Користећи медијски упит, ваш стил може одговорити да ли корисник више воли светли или тамни кориснички интерфејс. Помоћу ове функције можете тестирати ваш код без потребе за променом подешавања прегледача (или оперативног система ако прегледач прати шему боја за цео систем). За више детаља погледајте <a data-l10n-name="bugzilla1">грешку 1550804</a> и <a data-l10n-name="bugzilla2">грешку 1137699</a>.
 experimental-features-devtools-execution-context-selector =
     .label = Алатке за програмере: селектор контекста извршавања
-
+experimental-features-devtools-execution-context-selector-description = Ова функција приказује дугме на командној линији конзоле које вам омогућава да промените окружење у којем се извршава унети израз. За више детаља погледајте <a data-l10n-name="bugzilla1">грешку 1605154</a> и <a data-l10n-name="bugzilla2">грешку 1605153</a>.
 experimental-features-devtools-compatibility-panel =
     .label = Алатке за програмере: панел компатибилности
-
+experimental-features-devtools-compatibility-panel-description = Бочна трака за прегледа страница која приказује информације о статусу компатибилности апликација међу прегледачима. За више детаља погледајте <a data-l10n-name="bugzilla">грешку 1584464</a>.
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-lax-by-default2 =
     .label = Колачићи: SameSite=Lax по подразумеваном
-
+experimental-features-cookie-samesite-lax-by-default2-description = Подразумевано третирајте колачиће као “SameSite=Lax” ако атрибут “SameSite” није наведен. Програмери морају изричито захтевати тренутну неограничену употребу навођењем “SameSite=None”.
 # Do not translate 'SameSite', 'Lax' and 'None'.
 experimental-features-cookie-samesite-none-requires-secure2 =
     .label = Колачићи: SameSite=None захтева атрибут secure
-
+experimental-features-cookie-samesite-none-requires-secure2-description = Колачић са “SameSite=None” атрибутом захтева атрибут secure. Ова функција захтева “Колачићи: SameSite=Lax по подразумеваном”.
 # about:home should be kept in English, as it refers to the the URI for
 # the internal default home page.
 experimental-features-abouthome-startup-cache =
     .label = Кеш покретања странице about:home
-
+experimental-features-abouthome-startup-cache-description = Кеш меморија за почетни about:home документ, који се подразумевано учитава при покретању. Сврха кеша је побољшање перформанси покретања.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-cookie-samesite-schemeful =
+    .label = Колачићи: Schemeful SameSite
+experimental-features-cookie-samesite-schemeful-description = Третирајте колачиће са истог домена, али са другачијим шемама (нпр.: http://example.com и https://example.com) као cross-site. Ово повећава сигурност, али може довести и до грешака.
 # "Service Worker" is an API name and is usually not translated.
 experimental-features-devtools-serviceworker-debugger-support =
     .label = Алатке за програмере: отклањање грешака сервис воркера
-
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Омогућава експерименталну подршку за сервис воркере у панелу за отклањање грешака. Ова функција може успорити алатке за програмере и повећати потрошњу меморије.
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+    .label = Глобална контрола WebRTC искључивања
+experimental-features-webrtc-global-mute-toggles-description = Додаје контроле глобалном WebRTC индикатору за дељење које корисницима омогућавају да искључе микрофоне и камере.
 # Win32k Lockdown
 experimental-features-win32k-lockdown =
     .label = Win32k блокада
-
+experimental-features-win32k-lockdown-description = Онемогућава употребу Win32k APIs у језичцима прегледача. Повећава сигурност, али тренутно може бити нестабилна или неисправна. (Само за Windows)
 # JS JIT Warp project
 experimental-features-js-warp =
     .label = JavaScript JIT: Warp
-
+experimental-features-js-warp-description = Омогућите Warp, што побољшава JavaScript перформансе и употребу меморије.
 # Fission is the name of the feature and should not be translated.
 experimental-features-fission =
     .label = Fission (изолација сајтова)
-
+experimental-features-fission-description = Fission (изолација сајтова) је експериментална { -brand-short-name } функција која пружа додатни слој заштите од безбедносних пропуста. Одвајањем сваког сајта у посебан процес, Fission отежава злонамерним сајтовима приступ подацима са осталих сајтова које посећујете. Ово је велика архитектонска промена у { -brand-short-name }-у, и ценили бисмо да испробате и пријавите грешке. За више детаља погледајте <a data-l10n-name="wiki">вики</a>.
+# Support for having multiple Picture-in-Picture windows open simultaneously
+experimental-features-multi-pip =
+    .label = Подршка за вишеструки слика-у-слици приказ
+experimental-features-multi-pip-description = Експериментална подршка за истовремено отварање више слика-у-слици видео приказа.
 # Search during IME
 experimental-features-ime-search =
     .label = Трака за адресу: приказуј резултате током IME уноса
+experimental-features-ime-search-description = IME (уређивач методе уноса) је алатка која вам омогућава да унесете сложене симболе, попут оних из источноазијских или индијских писама, користећи стандардну тастатуру. Омогућавањем овог експеримента, панел са траке за адресу ће остати отворен, а резултате претраживања и предлоге добићете ако користите IME за унос текста. Имајте на уму да IME може приказати панел који заклања резултате у адресној траци, па се ово подешавање препоручује само за IME који не користе ову врсту панела.
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/global/commonDialog.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/global/commonDialog.ftl
index 76a000f7caeaf62de4d5c6d882ff10dd78b1a9d4..f53758eb2b4066be60e1548c4329a3e4643f78ae 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/global/commonDialog.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/global/commonDialog.ftl
@@ -2,10 +2,10 @@
 # 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/.
 
+common-dialog-title-null = Ова страница каже
 common-dialog-title-system = { -brand-short-name }
 # Title displayed when the origin of a web dialog is unknown.
 common-dialog-title-unknown = Непознато
-
 common-dialog-username =
     .value = Корисничко име
 common-dialog-password =
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/global/resetProfile.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/global/resetProfile.ftl
index 58435e9f358a8e36a32aceaffff436800cd23c09..a75d6ef55b583b7ea06f1308b23f8ccadc013dd5 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/global/resetProfile.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/global/resetProfile.ftl
@@ -4,7 +4,6 @@
 
 refresh-profile-dialog =
     .title = Освежи { -brand-short-name }
-
 refresh-profile-dialog-title =
     Вратити подразумевана подешавања { -brand-short-name.gender ->
         [masculine] { -brand-short-name(case: "gen") }
@@ -18,6 +17,7 @@ refresh-profile-description = Започните са свежом верзиј
 refresh-profile-description-details = Ово ће:
 refresh-profile-remove = Уклонити додатке и прилагођавања
 refresh-profile-restore = Враћање подразумеваних подешавања
+refresh-profile-dialog-description = Вратите се у почетно стање и решите проблем перформанси. Ово ће уклонити ваша проширења и прилагођавања. Нећете изгубити основне податке попут обележивача и лозинки.
 refresh-profile = Подеси { -brand-short-name }
 refresh-profile-button = Освежи { -brand-short-name }…
 refresh-profile-learn-more = Сазнајте више
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/global/textActions.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/global/textActions.ftl
index 14e363a42af30e634557a95487518879bf4b215d..7a43441e3447580731cf5216db601dcc13165a41 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Опозови
     .accesskey = О
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Понови
     .accesskey = П
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Исеци
     .accesskey = ц
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Копирај
     .accesskey = К
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Налепи
     .accesskey = Н
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Избриши
     .accesskey = ш
-
 text-action-select-all =
     .label = Изабери све
     .accesskey = И
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Нема правописних предлога
+text-action-spell-add-to-dictionary =
+    .label = Додај у речник
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Опозови додавање у речник
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Провери правопис
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Додај речнике…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Језици
+    .accesskey = L
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/intl/languageNames.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/intl/languageNames.ftl
index f387ef305065687aebd1db545aeddc1aab030ae9..f70b59d9e83e50fc5d1ac5222ff346aff9d444bc 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/intl/languageNames.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/intl/languageNames.ftl
@@ -159,6 +159,7 @@ language-name-ru = руски
 language-name-rw = кинјарванда
 language-name-sa = санскрит
 language-name-sc = сардински
+language-name-sco = шкотски
 language-name-sd = синди
 language-name-se = северни сами
 language-name-sg = санго
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/printing/printUI.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/printing/printUI.ftl
index f077228f0a937550326a3abb8f9121c79b266cee..cd7329cbe7f4bbc706c149eb099a065fa7c6a59b 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/printing/printUI.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/printing/printUI.ftl
@@ -5,7 +5,6 @@
 printui-title = Штампање
 # Dialog title to prompt the user for a filename to save print to PDF.
 printui-save-to-pdf-title = Чување
-
 # Variables
 # $sheetCount (integer) - Number of paper sheets
 printui-sheets-count =
@@ -14,7 +13,6 @@ printui-sheets-count =
         [few] { $sheetCount } листа папира
        *[other] { $sheetCount } листова папира
     }
-
 printui-page-range-all = Све
 printui-page-range-custom = Прилагођено
 printui-page-range-label = Странице
@@ -23,50 +21,52 @@ printui-page-range-picker =
 printui-page-custom-range-input =
     .aria-label = Унеси прилагођени опсег страница
     .placeholder = нпр. 2-6, 9, 12-16
-
 # Section title for the number of copies to print
 printui-copies-label = Копије
-
 printui-orientation = Положај
 printui-landscape = Водоравно
 printui-portrait = Усправно
-
 # Section title for the printer or destination device to target
 printui-destination-label = Одредиште
 printui-destination-pdf-label = Сачувај као PDF
-
 printui-more-settings = Више подешавања
 printui-less-settings = Мање подешавања
-
 printui-paper-size-label = Величина папира
-
 # Section title (noun) for the print scaling options
 printui-scale = Размера
 printui-scale-fit-to-page-width = Прилагоди ширини странице
 # Label for input control where user can set the scale percentage
 printui-scale-pcent = Размера
-
 # Section title (noun) for the two-sided print options
 printui-two-sided-printing = Двострано штампање
 printui-two-sided-printing-off = Искљ.
-
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Окрените на дужу ивицу
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Окрените на краћу ивицу
 # Section title for miscellaneous print options
 printui-options = Опције
 printui-headers-footers-checkbox = Штампај заглавља и подножја
 printui-backgrounds-checkbox = Штампај позадине
 
-printui-selection-checkbox = Штампај само изабрано
-
 ## The "Format" section, select a version of the website to print. Radio
 ## options to select between the original page, selected text only, or a version
 ## where the page is processed with "Reader View".
 
+# The section title.
+printui-source-label = Формат
+# Option for printing the original page.
+printui-source-radio = Оригинал
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Одабир
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Поједностављено
+
 ##
 
 printui-color-mode-label = Режим боје
 printui-color-mode-color = У боји
 printui-color-mode-bw = Црно-бело
-
 printui-margins = Маргине
 printui-margins-default = Подразумевано
 printui-margins-min = Минимално
@@ -85,23 +85,17 @@ printui-margins-custom-left-mm = Лево (mm)
 printui-margins-custom-right = Десно
 printui-margins-custom-right-inches = Десно (инчи)
 printui-margins-custom-right-mm = Десно (mm)
-
 printui-system-dialog-link = Штампај помоћу системског дијалога…
-
 printui-primary-button = Одштампај
 printui-primary-button-save = Сачувај
 printui-cancel-button = Откажи
 printui-close-button = Затвори
-
 printui-loading = Припрема прегледа
-
 # Reported by screen readers and other accessibility tools to indicate that
 # the print preview has focus.
 printui-preview-label =
     .aria-label = Преглед пре штампе
-
 printui-pages-per-sheet = Страница по листу
-
 # This is shown next to the Print button with an indefinite loading spinner
 # when the user prints a page and it is being sent to the printer.
 printui-print-progress-indicator = Штампам…
@@ -128,7 +122,6 @@ printui-paper-tabloid = Таблоид
 printui-error-invalid-scale = Мера мора бити број између 10 и 200.
 printui-error-invalid-margin = Унесите важећу маргину за изабрану величину папира.
 printui-error-invalid-copies = Број примерака мора бити између 1 и 10.000.
-
 # Variables
 # $numPages (integer) - Number of pages
 printui-error-invalid-range = Мера мора бити број између 1 и { $numPages }.
diff --git a/thunderbird-l10n/sr/localization/sr/toolkit/updates/backgroundupdate.ftl b/thunderbird-l10n/sr/localization/sr/toolkit/updates/backgroundupdate.ftl
index 5501cd4b33059e6f31162797665117fa3e42ad57..217551c9772df1be8e80b99d2129eb6b335a2b42 100644
--- a/thunderbird-l10n/sr/localization/sr/toolkit/updates/backgroundupdate.ftl
+++ b/thunderbird-l10n/sr/localization/sr/toolkit/updates/backgroundupdate.ftl
@@ -2,3 +2,4 @@
 # 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/.
 
+backgroundupdate-task-description = Задатак ажурирање у позадини проверава да ли постоје { -brand-short-name } ажурирања ако { -brand-short-name } није покренут. Задатак се аутоматски инсталира са { -brand-short-name } и поново се инсталира при { -brand-short-name } покретању. Да бисте онемогућили овај задатак, ажурирајте подешавања прегледача или { -brand-short-name } поставку смерница компаније “BackgroundAppUpdate”.
diff --git a/thunderbird-l10n/sr/manifest.json b/thunderbird-l10n/sr/manifest.json
index b04368bdfc783903199b95918b44229670afe8d3..a8d215a815d1dd168635a1d63d71f80569d4a572 100644
--- a/thunderbird-l10n/sr/manifest.json
+++ b/thunderbird-l10n/sr/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "српски (sr) Language Pack",
   "description": "Language pack for Thunderbird for sr",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "sr": {
-      "version": "20210814060219",
+      "version": "20210831122746",
       "chrome_resources": {
         "alerts": "chrome/sr/locale/sr/alerts/",
         "autoconfig": "chrome/sr/locale/sr/autoconfig/",
diff --git a/thunderbird-l10n/sv-SE/chrome/sv-SE/locale/sv-SE/global/layout/htmlparser.properties b/thunderbird-l10n/sv-SE/chrome/sv-SE/locale/sv-SE/global/layout/htmlparser.properties
index 65326449752609c44be2c81f492bddcbf01815ba..807b9235b92d30c779a8e9a8e93c8eb633cee963 100644
--- a/thunderbird-l10n/sv-SE/chrome/sv-SE/locale/sv-SE/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/sv-SE/chrome/sv-SE/locale/sv-SE/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Filslut i systemidentifierare.
 errExpectedSystemId=Förväntade sig systemidentifierare men doctypen avslutades.
 errMissingSpaceBeforeDoctypeName=Saknas blanktecken före doctype-namnet.
 errHyphenHyphenBang=”--!” funnet i en kommentar.
+errNestedComment=Hittade “<!--” i en kommentar. Trolig orsak: Nästlad kommentar (ej tillåten).
 errNcrZero=Ogiltig teckenkod (noll) i teckenreferens.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Saknas blanktecken mellan doctypens nyckelord ”SYSTEM” och citatet.
 errNoSpaceBetweenPublicAndSystemIds=Saknas blanktecken mellan doctypens publik- och systemidentifierare.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Öppna element i stack.
 errEndTagDidNotMatchCurrentOpenElement=Sluttaggen ”%1$S” matchade inte namnet på det nu öppna elementet (”%2$S”).
 errEndTagViolatesNestingRules=Sluttaggen ”%1$S” bryter mot inkapslingsreglerna.
 errEndWithUnclosedElements=Hittade sluttaggen ”%1$S”, men det fanns fortfarande öppna element.
+errListUnclosedStartTags=Öppet element eller flera element.
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6180941c412014307d8ca2a476c0054899eac47b
--- /dev/null
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Ta bort händelse
+       *[other] Ta bort händelser
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Är du säker på att du vill ta bort denna händelse?
+       *[other] Är du säker på att du vill ta bort dessa { $count } händelser?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Ta bort uppgift
+       *[other] Ta bort uppgifter
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Är du säker på att du vill ta bort denna uppgift?
+       *[other] Är du säker på att du vill ta bort dessa { $count } uppgifter?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Ta bort objekt
+       *[other] Ta bort objekt
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Är du säker på att du vill ta bort detta objekt?
+       *[other] Är du säker på att du vill ta bort dessa { $count } objekt?
+    }
+calendar-delete-prompt-disable-message = Fråga mig inte igen.
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/preferences.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/preferences.ftl
index a00f3d3aa5e64ddce771d52d858c448f88805c41..6a401462d258c0f7497b18fb031fad918fb1f26e 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/preferences.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Redigera händelser och uppgifter i en flik istället för i en dialogruta.
     .accesskey = f
+prompt-delete-label =
+    .label = Fråga innan du tar bort händelser och uppgifter.
+    .accesskey = F
 accessibility-legend = Tillgänglighet
 accessibility-colors-label =
     .label = Optimera färger för tillgänglighet
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/accountcreation/accountSetup.ftl
index 7b9d73fa6e4f92b2055577922ac7eb6a3bb2a19a..8572ac0cb10256245fca1e6240c469948e5bff83 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/accountcreation/accountSetup.ftl
@@ -7,65 +7,49 @@ account-setup-tab-title = Kontokonfiguration
 ## Header
 
 account-setup-title = Konfigurera en befintlig e-postadress
-
 account-setup-description = För att använda din nuvarande e-postadress, fyll i dina uppgifter.
-
 account-setup-secondary-description = { -brand-product-name } söker automatiskt efter en fungerande och rekommenderad serverkonfiguration.
-
 account-setup-success-title = Konto skapades
-
 account-setup-success-description = Du kan nu använda det här kontot med { -brand-short-name }.
-
 account-setup-success-secondary-description = Du kan förbättra upplevelsen genom att ansluta relaterade tjänster och konfigurera avancerade kontoinställningar.
 
 ## Form fields
 
 account-setup-name-label = Ditt fullständiga namn
     .accesskey = D
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Sven Svensson
-
 account-setup-name-info-icon =
     .title = Ditt namn, som det visas för andra
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = E-postadress
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = sven.svensson@exempel.se
-
 account-setup-email-info-icon =
     .title = Din befintliga e-postadress
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Lösenord
     .accesskey = L
     .title = Valfritt, kommer endast att användas för att validera användarnamnet
-
 account-provisioner-button = Skapa en ny e-postadress
     .accesskey = S
-
 account-setup-password-toggle =
     .title = Visa/dölj lösenord
-
+account-setup-password-toggle-show =
+    .title = Visa lösenord i klartext
+account-setup-password-toggle-hide =
+    .title = Dölj lösenord
 account-setup-remember-password = Kom ihåg lösenord
     .accesskey = K
-
 account-setup-exchange-label = Din inloggning
     .accesskey = D
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = DINDOMÄN\dittanvändarnamn
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Domäninloggning
@@ -74,62 +58,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Avbryt
     .accesskey = A
-
 account-setup-button-manual-config = Konfigurera manuellt
     .accesskey = m
-
 account-setup-button-stop = Stoppa
     .accesskey = S
-
 account-setup-button-retest = Testa igen
     .accesskey = T
-
 account-setup-button-continue = Fortsätt
     .accesskey = F
-
 account-setup-button-done = Klar
     .accesskey = K
 
 ## Notifications
 
 account-setup-looking-up-settings = Undersöker konfigurationen…
-
 account-setup-looking-up-settings-guess = Undersöker konfigurationen: Försöker med vanliga servernamn…
-
 account-setup-looking-up-settings-half-manual = Undersöker konfiguration: Avsöker server...
-
 account-setup-looking-up-disk = Undersöker konfiguration: { -brand-short-name } installation…
-
 account-setup-looking-up-isp = Undersöker konfiguration: E-postleverantör…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Undersöker konfiguration: Mozilla ISP-databas…
-
 account-setup-looking-up-mx = Undersöker konfiguration: Inkommande e-postdomän…
-
 account-setup-looking-up-exchange = Undersöker konfiguration: Exchange-server…
-
 account-setup-checking-password = Kontrollerar lösenord…
-
 account-setup-installing-addon = Hämtar och installerar tillägg…
-
 account-setup-success-half-manual = Följande inställningar hittades genom att sondera den givna servern:
-
 account-setup-success-guess = Konfiguration hittades genom att prova vanliga servernamn.
-
 account-setup-success-guess-offline = Du är offline. Vi gissade några inställningar men du måste ange rätt inställningar.
-
 account-setup-success-password = Lösenord OK
-
 account-setup-success-addon = Tillägget har installerats
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Konfiguration hittades i Mozilla ISP-databas.
-
 account-setup-success-settings-disk = Konfiguration hittades vid installationen av { -brand-short-name }.
-
 account-setup-success-settings-isp = Konfigurationen hittades hos e-postleverantören.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Konfiguration hittades för en Microsoft Exchange-server.
 
@@ -137,33 +98,21 @@ account-setup-success-settings-exchange = Konfiguration hittades för en Microso
 
 account-setup-step1-image =
     .title = Första installationen
-
 account-setup-step2-image =
     .title = Laddar…
-
 account-setup-step3-image =
     .title = Konfiguration hittad
-
 account-setup-step4-image =
     .title = Anslutningsfel
-
 account-setup-step5-image =
     .title = Konto skapat
-
 account-setup-privacy-footnote2 = Dina uppgifter lagras endast lokalt på din dator.
-
 account-setup-selection-help = Är du inte säker på vad du ska välja?
-
 account-setup-selection-error = Behöver du hjälp?
-
 account-setup-success-help = Är du inte säker på ditt nästa steg?
-
 account-setup-documentation-help = Installationsdokumentation
-
 account-setup-forum-help = Supportforum
-
 account-setup-privacy-help = Sekretesspolicy
-
 account-setup-getting-started = Komma igång
 
 ## Results area
@@ -175,41 +124,25 @@ account-setup-results-area-title =
         [one] Tillgänglig konfiguration
        *[other] Tillgängliga konfigurationer
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Håll dina mappar och e-postmeddelanden synkroniserade på din server
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Håll dina mappar och e-postmeddelanden på din dator
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Använd Microsoft Exchange-servern eller Office365 molntjänster
-
 account-setup-incoming-title = Inkommande
-
 account-setup-outgoing-title = Utgående
-
 account-setup-username-title = Användarnamn
-
 account-setup-exchange-title = Server
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Ingen kryptering
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Använd befintlig utgående SMTP-server
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -219,81 +152,54 @@ account-setup-result-username-different = Inkommande: { $incoming }, Utgående:
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Autentisering misslyckades. Antingen är de angivna uppgifterna felaktiga eller så krävs ett separat användarnamn för inloggning. Detta användarnamn är vanligtvis din Windows-domäninloggning med eller utan domänen (till exempel janedoe eller AD\\janedoe)
-
 account-setup-credentials-wrong = Autentisering misslyckades. Kontrollera användarnamnet och lösenordet
-
 account-setup-find-settings-failed = { -brand-short-name } misslyckades med att hitta inställningarna för ditt e-postkonto
-
 account-setup-exchange-config-unverifiable = Konfigurationen kunde inte verifieras. Om ditt användarnamn och lösenord är korrekt är det troligt att serveradministratören har inaktiverat den valda konfigurationen för ditt konto. Försök att välja ett annat protokoll.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Serverinställningar
-
 account-setup-incoming-server-legend = Inkommande server
-
 account-setup-protocol-label = Protokoll:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Värdnamn:
-
 account-setup-port-label = Port:
     .title = Ställ in portnumret till 0 för automatisk detektering
-
 account-setup-auto-description = { -brand-short-name } försöker automatiskt fylla i fält som lämnats tomma.
-
 account-setup-ssl-label = Anslutningssäkerhet:
-
 account-setup-outgoing-server-legend = Utgående server
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Identifiera automatiskt
-
 ssl-no-authentication-option = Ingen autentisering
-
 ssl-cleartext-password-option = Normalt lösenord
-
 ssl-encrypted-password-option = Krypterat lösenord
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Ingen
-
 account-setup-auth-label = Autentiseringsmetod:
-
 account-setup-username-label = Användarnamn:
-
 account-setup-advanced-setup-button = Avancerad konfiguration
     .accesskey = A
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Varning!
-
 account-setup-insecure-incoming-title = Inställningar för inkommande:
-
 account-setup-insecure-outgoing-title = Inställningar för utgående:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> använder inte kryptering.
-
 account-setup-warning-cleartext-details = En osäker e-postserver använder inte en krypterad anslutning för att skydda dina lösenord och privata uppgifter. Genom att ansluta till den här servern kan dina lösenord och privata uppgifter avslöjas.
-
 account-setup-insecure-server-checkbox = Jag förstår riskerna
     .accesskey = f
-
 account-setup-insecure-description = Med { -brand-short-name } kan du komma åt din e-post med de angivna inställningarna. Du bör dock kontakta din administratör eller e-postleverantör angående dessa felaktiga anslutningar. Se <a data-l10n-name="thunderbird-faq-link">vanliga frågor om Thunderbird</a> för mer information.
-
 insecure-dialog-cancel-button = Ändra inställningar
     .accesskey = n
-
 insecure-dialog-confirm-button = Bekräfta
     .accesskey = B
 
@@ -302,51 +208,45 @@ insecure-dialog-confirm-button = Bekräfta
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } hittade din kontoinställningsinformation på { $domain }. Vill du fortsätta och skicka dina uppgifter?
-
 exchange-dialog-confirm-button = Inloggning
-
 exchange-dialog-cancel-button = Avbryt
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Inget e-postkonto har konfigurerats
+exit-dialog-description = Är du säker på att du vill avbryta installationsprocessen? { -brand-short-name } kan fortfarande användas utan ett e-postkonto, men många funktioner är inte tillgängliga.
+account-setup-no-account-checkbox = Använd { -brand-short-name } utan ett e-postkonto
+    .accesskey = A
+exit-dialog-cancel-button = Fortsätt installationen
+    .accesskey = F
+exit-dialog-confirm-button = Avsluta installationen
+    .accesskey = A
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Fel vid skapande av konto
-
 account-setup-error-server-exists = Inkommande server finns redan.
-
 account-setup-confirm-advanced-title = Bekräfta avancerad konfiguration
-
 account-setup-confirm-advanced-description = Denna dialogruta stängs och ett konto med de aktuella inställningarna skapas, även om konfigurationen är felaktig. Vill du fortsätta?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Installera
-
 account-setup-addon-install-intro = Ett tillägg från tredje part kan låta dig komma åt ditt e-postkonto på den här servern:
-
 account-setup-addon-no-protocol = Den här e-postservern stöder tyvärr inte öppna protokoll. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Kontoinställningar
-
 account-setup-encryption-button = End-to-end kryptering
-
 account-setup-signature-button = Lägg till en signatur
-
 account-setup-dictionaries-button = Hämta ordlistor
-
 account-setup-address-book-carddav-button = Anslut till en CardDAV-adressbok
-
 account-setup-address-book-ldap-button = Anslut till en LDAP-adressbok
-
 account-setup-calendar-button = Anslut till en fjärrkalender
-
 account-setup-linked-services-title = Anslut dina länkade tjänster
-
 account-setup-linked-services-description = { -brand-short-name } upptäckte andra tjänster som är länkade till ditt e-postkonto.
-
 account-setup-no-linked-description = Konfigurera andra tjänster för att få ut det mesta av din { -brand-short-name }-upplevelse.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -354,7 +254,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name }{ -brand-short-name } hittade en adressbok länkad till ditt e-postkonto.
        *[other] { -brand-short-name } hittade { $count } adressböcker länkade till ditt e-postkonto.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -362,62 +261,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } hittade en kalender länkad till ditt e-postkonto.
        *[other] { -brand-short-name } hittade { $count } kalendrar länkade till ditt e-postkonto.
     }
-
 account-setup-button-finish = Slutför
     .accesskey = S
-
 account-setup-looking-up-address-books = Söker efter adressböcker…
-
 account-setup-looking-up-calendars = Söker efter kalendrar…
-
 account-setup-address-books-button = Adressböcker
-
 account-setup-calendars-button = Kalendrar
-
 account-setup-connect-link = Anslut
-
 account-setup-existing-address-book = Ansluten
     .title = Adressboken är redan ansluten
-
 account-setup-existing-calendar = Ansluten
     .title = Kalendern är redan ansluten
-
 account-setup-connect-all-calendars = Anslut alla kalendrar
-
 account-setup-connect-all-address-books = Anslut alla adressböcker
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Anslut kalendern
-
 calendar-dialog-cancel-button = Avbryt
     .accesskey = A
-
 calendar-dialog-confirm-button = Anslut
     .accesskey = A
-
 account-setup-calendar-name-label = Namn
-
 account-setup-calendar-name-input =
     .placeholder = Min kalender
-
 account-setup-calendar-color-label = Färg
-
 account-setup-calendar-refresh-label = Uppdatera
-
 account-setup-calendar-refresh-manual = Manuellt
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Varje minut
        *[other] Var { $count } minut
     }
-
 account-setup-calendar-read-only = Skrivskyddad
     .accesskey = S
-
 account-setup-calendar-show-reminders = Visa påminnelser
     .accesskey = V
-
 account-setup-calendar-offline-support = Offline-support
     .accesskey = O
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/addressbook/aboutAddressBook.ftl
index 865e01915e3577e3daa448b9fac0bd5fcb6c1074..c1d4767fbb4ed2ec50bffe9a92d87c4e610c2b32 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Alla adressböcker
-
 about-addressbook-books-context-properties =
     .label = Egenskaper
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Ta bort
 about-addressbook-books-context-remove =
     .label = Ta bort
-
 about-addressbook-confirm-delete-book-title = Ta bort adressbok
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Sök i { $name }
 about-addressbook-search-all =
     .placeholder = Sök i alla adressböcker
-
 about-addressbook-sort-button =
     .title = Ändra listordningen
-
 about-addressbook-name-format-display =
     .label = Visningsnamn
 about-addressbook-name-format-firstlast =
     .label = Förnamn Efternamn
 about-addressbook-name-format-lastfirst =
     .label = Efternamn, Förnamn
-
 about-addressbook-sort-name-ascending =
     .label = Sortera efter namn (A > Ö)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Sortera efter e-postadress (A > Ö)
 about-addressbook-sort-email-descending =
     .label = Sortera efter e-postadress (Ö > A)
-
+about-addressbook-cards-context-write =
+    .label = Skriv meddelande
 about-addressbook-confirm-delete-mixed-title = Ta bort kontakter och listor
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -125,7 +121,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Redigera
 about-addressbook-cancel-edit-contact-button = Avbryt
 about-addressbook-save-edit-contact-button = Spara
-
 about-addressbook-details-email-addresses-header = E-postadresser
 about-addressbook-details-phone-numbers-header = Telefonnummer
 about-addressbook-details-home-address-header = Hemadresser
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/importDialog.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/importDialog.ftl
index 926316908246bc93310c72d791374669fa252360..13b354391b1e0436b2a1e7802deced3f4fa5371c 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/importDialog.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/importDialog.ftl
@@ -4,8 +4,18 @@
 
 # Short name of the import module
 thunderbird-import-name = Thunderbird
-
 # Description of the import module
 thunderbird-import-description = Importera e-post från en Thunderbird-profilkatalog.
-
+import-from-thunderbird-zip =
+    .label = Thunderbird (exporterad profilbackup; zip-fil mindre än 2 GB)
+    .accesskey = z
+import-from-thunderbird-dir =
+    .label = Thunderbird (profilmapp)
+    .accesskey = T
 import-select-profile-zip = Välj en zippad profilkatalog
+import-select-profile-dir = Välj en profilkatalog
+zip-file-too-big-title = Zip-filen är för stor
+zip-file-too-big-message = Den valda zip-filen är större än 2 GB. Extrahera den först och importera sedan från den extraherade mappen istället.
+wizardpage-failed =
+    .label = Import misslyckades
+wizardpage-failed-message = Importen misslyckades oväntat, mer information kan finnas tillgänglig i felkonsolen.
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/messengercompose/messengercompose.ftl
index 4244119dbbddee29b8215e27173efbaff716d317..34129eaf34d36bf40057124a70b94bb7ba529c40 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/messenger/messengercompose/messengercompose.ftl
@@ -64,6 +64,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Lägg till bilaga…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Lägg till bilaga…
+    .accesskey = L
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Fil(er)…
     .accesskey = F
@@ -154,12 +158,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Visa fältet { bcc-compose-address-row-label.value } ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = { $count } mottagare i fältet Till och Kopia kan se varandras adresser. Du kan undvika att avslöja mottagare genom att använda Dold kopia istället.
+to-address-row-label =
+    .value = Till
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Fältet till
+    .accesskey = T
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Till
+    .accesskey = T
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Till
+    .title = Visa fält till ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Kopia
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Fältet kopia
+    .accesskey = k
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Kopia
+    .accesskey = K
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Kopia
+    .title = Visa fältet kopia ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Dold kopia
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Fältet dold kopia
+    .accesskey = d
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Dold kopia
+    .accesskey = D
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Dold kopia
+    .title = Visa fältet dold kopia ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Andra adresseringsfält att visa
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Ditt meddelande har en offentlig mottagare. Du kan undvika att avslöja mottagare genom att använda Dold kopia istället.
+       *[other] { $count } mottagare i fältet Till och Kopia kan se varandras adresser. Du kan undvika att avslöja mottagare genom att använda Dold kopia istället.
+    }
 many-public-recipients-bcc =
     .label = Använd dold kopia istället
     .accesskey = A
 many-public-recipients-ignore =
     .label = HÃ¥ll mottagarna offentliga
     .accesskey = H
+many-public-recipients-prompt-title = För många offentliga mottagare
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Ditt meddelande har en offentlig mottagare. Detta kan vara en integritetsfråga. Du kan undvika detta genom att flytta mottagaren från Till/Kopia till Dold kopia istället.
+       *[other] Ditt meddelande har { $count } offentliga mottagare, som kommer att kunna se varandras adresser. Detta kan vara en integritetsfråga. Du kan undvika att avslöja mottagare genom att flytta mottagare från Till/Kopia till Dold kopia istället.
+    }
+many-public-recipients-prompt-cancel = Avbryt sändning
+many-public-recipients-prompt-send = Skicka ändå
 
 ## Notifications
 
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..32deca7de03808010168cc99864ba39ded150cd9
--- /dev/null
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Vill du slutföra installationen av { -brand-short-name }?
+prompt-to-install-message = Slutför denna installation i ett steg för att hålla { -brand-short-name } uppdaterad och förhindra dataförlust. { -brand-short-name } läggs till i mappen Program och Dock.
+prompt-to-install-yes-button = Installera
+prompt-to-install-no-button = Installera inte
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = installationen av { -brand-short-name } misslyckades.
+install-failed-message = Installationen misslyckades men { -brand-short-name } fortsätter att fungera.
diff --git a/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/textActions.ftl b/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/textActions.ftl
index 55c2b8fac99cd6c927564f70266da1122bb2afe5..60a62901e5c48a7e9e159c928cec61e36e1281fd 100644
--- a/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/sv-SE/localization/sv-SE/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Ã…ngra
     .accesskey = Ã…
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Gör om
     .accesskey = G
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Klipp ut
     .accesskey = K
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopiera
     .accesskey = o
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Klistra in
     .accesskey = l
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Ta bort
     .accesskey = T
-
 text-action-select-all =
     .label = Markera allt
     .accesskey = a
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Inga stavningsförslag
+text-action-spell-add-to-dictionary =
+    .label = Lägg till i ordlista
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Ångra lägg till i ordlista
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Kontrollera stavning
+    .accesskey = K
+text-action-spell-add-dictionaries =
+    .label = Lägg till ordlistor…
+    .accesskey = L
+text-action-spell-dictionaries =
+    .label = Språk
+    .accesskey = S
diff --git a/thunderbird-l10n/sv-SE/manifest.json b/thunderbird-l10n/sv-SE/manifest.json
index 04c811039cc840d065c675cf31b7c4097fec8a34..a3f8002a3f1ad37f729795101350c51079b93ac6 100644
--- a/thunderbird-l10n/sv-SE/manifest.json
+++ b/thunderbird-l10n/sv-SE/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Svenska (SE) Language Pack",
   "description": "Language pack for Thunderbird for sv-SE",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "sv-SE": {
-      "version": "20210813185642",
+      "version": "20210831232722",
       "chrome_resources": {
         "alerts": "chrome/sv-SE/locale/sv-SE/alerts/",
         "autoconfig": "chrome/sv-SE/locale/sv-SE/autoconfig/",
diff --git a/thunderbird-l10n/th/localization/th/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/th/localization/th/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/th/localization/th/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/th/localization/th/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/calendar/calendar-print.ftl b/thunderbird-l10n/th/localization/th/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/th/localization/th/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/th/localization/th/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/accountManager.ftl b/thunderbird-l10n/th/localization/th/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/th/localization/th/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/th/localization/th/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/th/localization/th/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/chat.ftl b/thunderbird-l10n/th/localization/th/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/th/localization/th/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/exportDialog.ftl b/thunderbird-l10n/th/localization/th/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/importDialog.ftl b/thunderbird-l10n/th/localization/th/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/preferences/am-copies.ftl b/thunderbird-l10n/th/localization/th/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/messenger/troubleshootMode.ftl b/thunderbird-l10n/th/localization/th/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/localization/th/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/th/localization/th/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/th/localization/th/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/th/manifest.json b/thunderbird-l10n/th/manifest.json
index 30f9091ebf6ce7c3500ca9d99ceaa17c5d66ec33..1796d900afca4ca025a19b1446272d11cfeb03df 100644
--- a/thunderbird-l10n/th/manifest.json
+++ b/thunderbird-l10n/th/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "ไทย Language Pack",
   "description": "Language pack for Thunderbird for th",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "th": {
-      "version": "20210815123657",
+      "version": "20210831122955",
       "chrome_resources": {
         "alerts": "chrome/th/locale/th/alerts/",
         "autoconfig": "chrome/th/locale/th/autoconfig/",
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/chat/imtooltip.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/chat/imtooltip.properties
index a6bfee78e48faa340568decccf00f65cd3a04ec3..eec5bbc1ba11a640a88cf6cc5aaaac44cd1f722d 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/chat/imtooltip.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/chat/imtooltip.properties
@@ -7,4 +7,6 @@ buddy.account=Hesap
 contact.tags=Etiketler
 
 otr.tag=OTR durumu
+
+encryption.tag=Åžifreleme durumu
 message.status=Ä°leti ÅŸifrelenmiÅŸ
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/devtools/client/webconsole.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/devtools/client/webconsole.properties
index bc927452571522c6a8b44e39f3f00f3a679fd1b6..79f4b687faa3ec5ff36f98926c2c11d9df6b7330 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/devtools/client/webconsole.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/devtools/client/webconsole.properties
@@ -439,6 +439,12 @@ webconsole.message.componentDidCatch.label=[GELİŞTİRİCİ ARAÇLARI HATASI] M
 # in the console, for example, copy({hello: "world"}).
 webconsole.message.commands.copyValueToClipboard=Dizge panoya kopyalandı.
 
+# LOCALIZATION NOTE (webconsole.error.commands.copyError):
+# the error that is displayed when the "copy" command can't stringify an object
+# "copy" should not be translated, because is a function name.
+# Parameters: %S is the original error message
+webconsole.error.commands.copyError=`copy` komutu başarısız oldu. Nesne dizgeleştirilemedi: %S
+
 # LOCALIZATION NOTE (webconsole.message.commands.blockedUR)
 # Label displayed when the :block <url> command is successful
 # Parameters: %S is the URL filter
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout/htmlparser.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout/htmlparser.properties
index bc2979cc9c3f9d32230f79e2a322c16a1ba9cbe0..c7c3d6799d5e7627d87eaec70e8e2a4947bd7355 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Sistem tanımlayıcısı içinde dosya sonu.
 errExpectedSystemId=Sistem tanımlayıcı bekleniyordu ama doctype sona erdi.
 errMissingSpaceBeforeDoctypeName=doctype adı öncesinde eksik boşluk.
 errHyphenHyphenBang=Yorumda “--!” bulundu.
+errNestedComment=Yorum içinde “<!--” görüldü. Olası sebep: İç içe geçmiş yorum (İzin verilmez.)
 errNcrZero=Karakter referansı sıfıra genişliyor.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Doctype “SYSTEM” anahtar kelimesiyle tırnak arasında boşluk yok.
 errNoSpaceBetweenPublicAndSystemIds=Doctype açık ve sistem tanımlayıcıları arasında boşluk yok.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Yığın içinde kapatılmamış elemanlar var
 errEndTagDidNotMatchCurrentOpenElement=Bitiş etiketi “%1$S” geçerli açık elemanın (“%2$S”) adıyla eşleşmedi.
 errEndTagViolatesNestingRules=Bitiş etiketi “%1$S” yuvalama kurallarını ihlal ediyor.
 errEndWithUnclosedElements=Bitirme etiketi “%1$S” görüldü ama kapatılmamış elemanlar var.
+errListUnclosedStartTags=Kapatılmamış eleman veya elemanlar.
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout_errors.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout_errors.properties
index 6495df673922d6463685998c9c53fb290f94a9b5..cc0cf6f7b7333bf35c6f387ad87b03ba67e2fb5e 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout_errors.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/layout_errors.properties
@@ -11,6 +11,8 @@ ImageMapPolyOddNumberOfCoords=<area shape="poly">etiketi içindeki "coords" özn
 TablePartRelPosWarning=Tablo sütun ve satırlarının relative pozisyonları artık destekleniyor. Bu site bu özelliğin etkisinin olmamasını bekliyor olabilir, o yüzden sitenin güncellenmesi gerekebilir.
 ScrollLinkedEffectFound2=Bu sitede scroll-linked positioning efekti kullanılıyor gibi görünüyor. Bu efekt, asenkron panning ile birlikte düzgün çalışmayabilir. Ayrıntılar için https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects adresine bakabilir, ilgili araçlar ve özelliklerle ilgili tartışmaya katılabilirsiniz.
 
+ScrollLinkedEffectFound3=Bu sitede scroll-linked positioning efekti kullanılıyor gibi görünüyor. Bu efekt, asenkron panning ile birlikte düzgün çalışmayabilir. Ayrıntılar için https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html adresine bakabilir, ilgili araçlar ve özelliklerle ilgili tartışmaya katılabilirsiniz.
+
 ## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
 ## %1$S is an integer value of the area of the frame
 ## %2$S is an integer value of the area of a limit based on the viewport size
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/security/security.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/security/security.properties
index b3291689390701a2e330b08c8a5152d7da086304..491b24942dae982a2a3a9e10a6a29a95abe44185 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/global/security/security.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/global/security/security.properties
@@ -130,6 +130,11 @@ ReferrerLengthOverLimitation=HTTP Referrer üst bilgisi: Uzunluk “%1$S” bayt
 # LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
 ReferrerOriginLengthOverLimitation=HTTP Referrer üst bilgisi: Referrer içindeki köken uzunluu “%1$S” bayt sınırını aşıyor: “%2$S” kökenli referrer kaldırıldı.
 
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer ilkesi: ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ ve ‘unsafe-url’, gibi daha az kısıtlamalı ilkeler yakında siteler arası istekler için görmezden gelinmeye başlanacaktır: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer ilkesi: Siteler arası istek için daha az kısıtlamalı “%1$S” referrer ilkesi görmezden geliniyor: %2$S
+
 # X-Frame-Options
 # LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
 XFrameOptionsInvalid = “%2$S” yüklenirken geçersiz X-Frame-Options üstbilgisi bulundu: “%1$S” geçerli bir direktif değil.
@@ -143,7 +148,6 @@ HTTPSOnlyUpgradeRequest = Güvensiz “%1$S” isteği “%2$S” kullanmak üze
 HTTPSOnlyNoUpgradeException = Güvensiz “%1$S” isteği istisna olduğu için yükseltilmiyor.
 # LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
 HTTPSOnlyFailedRequest = Güvensiz “%1$S” isteğinin yükseltilmesi başarısız oldu. (%2$S)
-
 # LOCALIZATION NOTE: %S is the URL of the failed request;
 HTTPSOnlyFailedDowngradeAgain = Güvensiz “%S” isteği yükseltilemedi. Yeniden “http”ye geçiliyor.
 
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addons.properties b/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addons.properties
index 4c8b00b4995d64a56464cfc66c5e1059e326b593..1ef11ee68e3750011c23b4280c5f412ffc79de72 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addons.properties
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addons.properties
@@ -185,6 +185,7 @@ webextPerms.optionalPermsDeny.accessKey=R
 webextPerms.description.accountsFolders=Posta hesabı klasörleri oluşturma, yeniden adlandırma ve silme
 webextPerms.description.accountsRead=Posta hesaplarınızı ve klasörlerini görme
 webextPerms.description.accountsIdentities=Posta hesabı kimlileri oluşturma, değiştirme ve silme
+webextPerms.description.accountsRead2=Posta hesaplarınızı, hesap kimliklerini ve klasörlerini görüntüleme
 webextPerms.description.addressBooks=Adres defterlerinizi ve kiÅŸilerinizi okuma ve deÄŸiÅŸtirme
 webextPerms.description.bookmarks=Yer imlerini okuma ve deÄŸiÅŸtirme
 webextPerms.description.browserSettings=Tarayıcı ayarlarını okuma ve değiştirme
@@ -267,5 +268,3 @@ webext.remove.confirmation.title=%S eklentisini kaldır
 # %2$S is brandShorterName
 webext.remove.confirmation.message=%1$S, %2$S uygulamasından kaldırılsın mı?
 webext.remove.confirmation.button=Kaldır
-
-webextPerms.description.accountsRead2=See your mail accounts, their identities and their folders
diff --git a/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addressbook/abMainWindow.dtd b/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addressbook/abMainWindow.dtd
index 701a6ccfa4eafc3ed3c419797fdbc48e186d23e2..2dd91c4a1da57309de550ea8af4d7e4317fcc0f3 100644
--- a/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addressbook/abMainWindow.dtd
+++ b/thunderbird-l10n/tr/chrome/tr/locale/tr/messenger/addressbook/abMainWindow.dtd
@@ -48,7 +48,9 @@
 <!ENTITY editMenu.accesskey                             "ü">
 <!ENTITY deleteCmd.label                                "Sil">
 <!ENTITY deleteAbCmd.label                              "Adres defterini sil">
+<!ENTITY deleteAbCmd.accesskey                          "S">
 <!ENTITY removeAbCmd.label                              "Adres defterini kaldır">
+<!ENTITY removeAbCmd.accesskey                          "k">
 <!ENTITY deleteContactCmd.label                         "KiÅŸiyi sil">
 <!ENTITY deleteContactsCmd.label                        "KiÅŸileri Sil">
 <!ENTITY deleteListCmd.label                            "Listeyi Sil">
@@ -225,6 +227,3 @@ because displayed names don't have the comma in between. -->
 <!ENTITY minimizeWindow.key                             "m">
 <!ENTITY bringAllToFront.label                          "Tümünü öne getir">
 <!ENTITY zoomWindow.label                               "Yakınlaş">
-
-<!ENTITY deleteAbCmd.accesskey                          "D">
-<!ENTITY removeAbCmd.accesskey                          "d">
diff --git a/thunderbird-l10n/tr/localization/tr/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/tr/localization/tr/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..d2d42aafa879c62c2d5c39fa96fca1898f1a45bb
--- /dev/null
+++ b/thunderbird-l10n/tr/localization/tr/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,35 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] EtkinliÄŸi sil
+       *[other] Etkinlikleri sil
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Bu etkinliÄŸi silmek istediÄŸinizden emin misiniz?
+       *[other] Bu { $count } etkinliÄŸi silmek istediÄŸinizden emin misiniz?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Görevi sil
+       *[other] Görevleri sil
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Bu görevi silmek istediğinizden emin misiniz?
+       *[other] Bu { $count } görevi silmek istediğinizden emin misiniz?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Öğeyi sil
+       *[other] Öğeleri sil
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Bu öğeyi silmek istediğinizden emin misiniz?
+       *[other] Bu { $count } öğeyi silmek istediğinizden emin misiniz?
+    }
+calendar-delete-prompt-disable-message = Bunu bir daha sorma.
diff --git a/thunderbird-l10n/tr/localization/tr/calendar/preferences.ftl b/thunderbird-l10n/tr/localization/tr/calendar/preferences.ftl
index e6428be848618e712dd99af9a37052a5cba04045..c7ffd87e618f5901115ba878440442437ac48875 100644
--- a/thunderbird-l10n/tr/localization/tr/calendar/preferences.ftl
+++ b/thunderbird-l10n/tr/localization/tr/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Etkinlikleri ve görevleri iletişim kutusu yerine sekme içinde düzenle.
     .accesskey = t
+prompt-delete-label =
+    .label = Etkinlikleri ve görevleri silmeden önce sor.
+    .accesskey = ö
 accessibility-legend = EriÅŸilebilirlik
 accessibility-colors-label =
     .label = Erişilebilirlik için renkleri iyileştir
diff --git a/thunderbird-l10n/tr/localization/tr/devtools/client/tooltips.ftl b/thunderbird-l10n/tr/localization/tr/devtools/client/tooltips.ftl
index 5483acc63faede21625806c02d366223124a11e3..cfe5c36862f4dc560980b45f5bea8caf692b7bdc 100644
--- a/thunderbird-l10n/tr/localization/tr/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/tr/localization/tr/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Daha fazla bilgi al</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = Bu eleman flex kapsayıcı veya grid kapsayıcı olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = Bu eleman flex kapsayıcı, grid kapsayıcı veya çok sütunlu kapsayıcı olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-grid-or-flex-item = Bu eleman bir flex veya grid öğesi olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-grid-item = Bu eleman bir grid öğesi olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-grid-container = Bu eleman bir grid kapsayıcı olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-flex-item = Bu eleman bir flex öğesi olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-flex-container = Bu eleman bir flex kapsayıcı olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-inline-or-tablecell = Bu eleman bir inline veya table-cell öğesi olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-property-because-of-display = Bu eleman <strong>{ $display }</strong> olarak görüntülendiği için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-display-block-on-floated = Bu eleman <strong>floated<strong> olduğu için <strong>display</strong> değeri motor tarafından <strong>block</strong> olarak değiştirildi.
-
 inactive-css-property-is-impossible-to-override-in-visited = <strong>:visited</strong> kısıtlaması nedeniyle <strong>{ $property }</strong> geçersiz kılanamaz.
-
 inactive-css-position-property-on-unpositioned-box = Bu elemanın pozisyonu olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-text-overflow-when-no-overflow = <strong>overflow:hidden</strong> ayarlanmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>outline-style</strong> <strong>auto</strong> veya <strong>none</strong> olarak ayarlandığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong>, iç tablo elemanlarını etkilemez.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong>, tablo hücreleri dışında hiçbir iç tablo elemanını etkilemez.
-
 inactive-css-not-table = Bu eleman bir tablo olmadığı için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
-
 inactive-scroll-padding-when-not-scroll-container = Bu eleman scroll edilemediği için <strong>{ $property }</strong> özelliğinin bu eleman üzerinde etkisi yoktur.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = Bu eleman scroll edilemediÄŸ
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = <strong>display:grid</strong> veya <strong>display:flex</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = <strong>display:grid</strong>, <strong>display:flex</strong> veya <strong>columns:2</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> veya <strong>display:inline-flex</strong> eklemeyi deneyin. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Bu elemanın üst elemanına <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong> veya <strong>display:inline-flex</strong> eklemeyi deneyin. { learn-more }
 inactive-css-not-grid-item-fix-2 = Bu elemanın üst elemanına <strong>display:grid</strong> veya <strong>display:inline-grid</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-grid-container-fix = <strong>display:grid</strong> veya <strong>display:inline-grid</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Bu elemanın üst elemanına <strong>display:flex</strong> veya <strong>display:inline-flex</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-flex-container-fix = <strong>display:flex</strong> veya <strong>display:inline-flex</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = <strong>display:inline</strong> veya <strong>display:table-cell</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = <strong>display:inline-block</strong> veya <strong>display:block</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = <strong>display:inline-block</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = <strong>float</strong>'u silmeyi veya <strong>display:block</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = <strong>position</strong> özelliğini <strong>static</strong> dışında bir şey yapmayı deneyin. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = <strong>overflow:hidden</strong> eklemeyi deneyin. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = <strong>display</strong> özelliğini <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ve <strong>table-footer-group</strong> dışında bir şey yapmayı deneyin. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = <strong>display</strong> özelliğini <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong> ve <strong>table-footer-group</strong> dışında bir şey yapmayı deneyin. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = <strong>outline-style</strong> özelliğini <strong>auto</strong> veya <strong>none</strong> dışında bir şey yapmayı deneyin. { learn-more }
-
 inactive-css-not-table-fix = <strong>display:table</strong> veya <strong>display:inline-table</strong> eklemeyi deneyin. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = <strong>overflow:auto</strong>, <strong>overflow:scroll</strong> veya <strong>overflow:hidden</strong> eklemeyi deneyin. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = <strong>overflow:auto</s
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> şu tarayıcılarda desteklenmiyor:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> deneysel bir özellikti ve W3C standartlarınca kullanımdan kaldırıldı. Şu tarayıcılarda desteklenmemektedir:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> deneysel bir özellikti ve W3C standartlarınca kullanımdan kaldırıldı.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> W3C standartlarınca kullanımdan kaldırıldı. Şu tarayıcılarda desteklenmemektedir:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> W3C standartlarınca kullanımdan kaldırıldı.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> deneysel bir özelliktir. Şu tarayıcılarda desteklenmemektedir:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> deneysel bir özelliktir.
-
 css-compatibility-learn-more-message = <strong>{ $rootProperty }</strong> hakkında <span data-l10n-name="link">daha fazla bilgi alın</span>
diff --git a/thunderbird-l10n/tr/localization/tr/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/tr/localization/tr/messenger/messengercompose/messengercompose.ftl
index b5bdcdac3666428c06e2d91130c0966e014424d9..f2842144c9949c5512d812c877ab41857174a2ac 100644
--- a/thunderbird-l10n/tr/localization/tr/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/tr/localization/tr/messenger/messengercompose/messengercompose.ftl
@@ -7,11 +7,9 @@
 
 #   $type (String) - the type of the addressing row
 remove-address-row-type = { $type } alanını kaldır
-
 #   $type (String) - the type of the addressing row
 remove-address-row-button =
     .title = { $type } alanını kaldır
-
 #   $type (String) - the type of the addressing row
 #   $count (Number) - the number of address pills currently present in the addressing row
 address-input-type-aria-label =
@@ -20,7 +18,6 @@ address-input-type-aria-label =
         [one] Tek adresli { $type } satırına odaklanmak için sol ok tuşunu kullanın.
        *[other] { $count } adresli { $type } satırlarına odaklanmak için sol ok tuşunu kullanın.
     }
-
 #   $email (String) - the email address
 #   $count (Number) - the number of address pills currently present in the addressing row
 pill-aria-label =
@@ -28,29 +25,22 @@ pill-aria-label =
         [one] { $email }: Düzenlemek için Enter'a, silmek için Delete'e basın.
        *[other] { $email }, 1/{ $count }: Düzenlemek için Enter'a, silmek için Delete'e basın.
     }
-
 #   $email (String) - the email address
 pill-tooltip-invalid-address = { $email } geçerli bir e-posta adresi değil
-
 #   $email (String) - the email address
 pill-tooltip-not-in-address-book = { $email } adres defterinizde yok
-
 pill-action-edit =
     .label = Adresi düzenle
     .accesskey = d
-
 pill-action-move-to =
     .label = Kime alanına taşı
     .accesskey = m
-
 pill-action-move-cc =
     .label = Cc alanına taşı
     .accesskey = C
-
 pill-action-move-bcc =
     .label = Bcc alanına taşı
     .accesskey = B
-
 pill-action-expand-list =
     .label = Listeyi geniÅŸlet
     .accesskey = n
@@ -62,35 +52,27 @@ ctrl-cmd-shift-pretty-prefix =
         [macos] ⇧ ⌘{ " " }
        *[other] Ctrl+Shift+
     }
-
 trigger-attachment-picker-key = A
 toggle-attachment-pane-key = M
-
 menuitem-toggle-attachment-pane =
     .label = Ek bölmesi
     .accesskey = m
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key }
-
 toolbar-button-add-attachment =
     .label = Ekle
     .tooltiptext = Dosya ekle ({ ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key })
-
 add-attachment-notification-reminder =
     .label = Dosya ekle…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
-
 menuitem-attach-files =
     .label = Dosya(lar)…
     .accesskey = D
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
-
 context-menuitem-attach-files =
     .label = Dosya ekle…
     .accesskey = D
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ trigger-attachment-picker-key }
 
-
-
 #   $count (Number) - the number of attachments in the attachment bucket
 attachments-placeholder-tooltip =
     .tooltiptext =
@@ -99,23 +81,18 @@ attachments-placeholder-tooltip =
             [one] { $count } ek
            *[other] { $count } ek
         }
-
 #   { attachment-bucket-count.accesskey } - Do not localize this message.
 key-toggle-attachment-pane =
     .key = { attachment-bucket-count.accesskey }
-
 expand-attachment-pane-tooltip =
     .tooltiptext = Ek bölmesini göster ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 collapse-attachment-pane-tooltip =
     .tooltiptext = Ek bölmesini gizle ({ ctrl-cmd-shift-pretty-prefix }{ toggle-attachment-pane-key })
-
 drop-file-label-attachment =
     { $count ->
         [one] Dosya olarak ekle
        *[other] Dosya olarak ekle
     }
-
 drop-file-label-inline =
     { $count ->
         [one] Satır içi ekle
@@ -132,72 +109,90 @@ move-attachment-right-panel-button =
     .label = Sağa taşı
 move-attachment-last-panel-button =
     .label = Sona taşı
-
 button-return-receipt =
     .label = Alındı onayı
     .tooltiptext = Bu ileti için alındı onayı iste
 
+# Encryption
+
+
 # Addressing Area
 
 to-compose-address-row-label =
     .value = Alıcı
-
 #   $key (String) - the shortcut key for this field
 to-compose-show-address-row-menuitem =
     .label = { to-compose-address-row-label.value } alanı
     .accesskey = K
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 to-compose-show-address-row-label =
     .value = { to-compose-address-row-label.value }
     .tooltiptext = { to-compose-address-row-label.value } alanını göster ({ to-compose-show-address-row-menuitem.acceltext })
-
 cc-compose-address-row-label =
     .value = Cc
-
 #   $key (String) - the shortcut key for this field
 cc-compose-show-address-row-menuitem =
     .label = { cc-compose-address-row-label.value } alanı
     .accesskey = C
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 cc-compose-show-address-row-label =
     .value = { cc-compose-address-row-label.value }
     .tooltiptext = { cc-compose-address-row-label.value } alanını göster ({ cc-compose-show-address-row-menuitem.acceltext })
-
 bcc-compose-address-row-label =
     .value = Bcc
-
 #   $key (String) - the shortcut key for this field
 bcc-compose-show-address-row-menuitem =
     .label = { bcc-compose-address-row-label.value } alanı
     .accesskey = B
     .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
-
 bcc-compose-show-address-row-label =
     .value = { bcc-compose-address-row-label.value }
     .tooltiptext = { bcc-compose-address-row-label.value } alanını göster ({ bcc-compose-show-address-row-menuitem.acceltext })
-
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = Kime ve Cc alanlarındaki { $count } alıcı birbirlerinin adresini görebilecek. Bunun yerine Bcc kullanarak alıcıları göstermekten kaçınabilirsiniz.
-
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Cc
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Cc
+    .title = Cc alanını göster ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Bcc
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Bcc alanı
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Bcc
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Bcc
+    .title = Bcc alanını göster ({ ctrl-cmd-shift-pretty-prefix }{ $key })
 many-public-recipients-bcc =
     .label = Bcc kullan
     .accesskey = B
-
 many-public-recipients-ignore =
     .label = Alıcılar herkese açık kalsın
     .accesskey = A
+many-public-recipients-prompt-cancel = Göndermekten vazgeç
+many-public-recipients-prompt-send = Yine de gönder
 
 ## Notifications
 
 # Variables:
 # $identity (string) - The name of the used identity, most likely an email address.
 compose-missing-identity-warning = Gönderen adresiyle eşleşen benzersiz kimlik bulunamadı. İleti, mevcut "Gönderen" alanı ve { $identity } kimliğine ait ayarlarla gönderilecek.
-
 encrypted-bcc-ignore-button = Anladım
 
 ## Editing
 
+
 # Tools
 
+compose-tool-button-remove-text-styling =
+    .tooltiptext = Metin stilini kaldır
diff --git a/thunderbird-l10n/tr/localization/tr/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/tr/localization/tr/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..b60d0d7011e75ed20695d91aa3c5f08d4171194f
--- /dev/null
+++ b/thunderbird-l10n/tr/localization/tr/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,17 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = { -brand-short-name } yüklemesi tamamlansın mı?
+prompt-to-install-yes-button = Yükle
+prompt-to-install-no-button = Yükleme
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } yüklemesi başarısız oldu.
diff --git a/thunderbird-l10n/tr/localization/tr/toolkit/global/textActions.ftl b/thunderbird-l10n/tr/localization/tr/toolkit/global/textActions.ftl
index 43e5584a08e870729b672d879bac0b319e793eca..fc263e79b54278a82437beb38189b6e9755c825b 100644
--- a/thunderbird-l10n/tr/localization/tr/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/tr/localization/tr/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Geri al
     .accesskey = G
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Yinele
     .accesskey = n
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Kes
     .accesskey = e
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Kopyala
     .accesskey = K
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Yapıştır
     .accesskey = a
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Sil
     .accesskey = S
-
 text-action-select-all =
     .label = Tümünü seç
     .accesskey = ü
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Yazım önerisi yok
+text-action-spell-add-to-dictionary =
+    .label = Sözlüğe ekle
+    .accesskey = z
+text-action-spell-undo-add-to-dictionary =
+    .label = Sözlüğe eklemeyi geri al
+    .accesskey = z
+text-action-spell-check-toggle =
+    .label = Yazımı denetle
+    .accesskey = m
+text-action-spell-add-dictionaries =
+    .label = Sözlükleri ekle…
+    .accesskey = S
+text-action-spell-dictionaries =
+    .label = Diller
+    .accesskey = D
diff --git a/thunderbird-l10n/tr/manifest.json b/thunderbird-l10n/tr/manifest.json
index f121be3396e40cb0154b8ad06370cc74f325f4ba..615bbacd81bbdc3ec33b026303ac97847c8c6c82 100644
--- a/thunderbird-l10n/tr/manifest.json
+++ b/thunderbird-l10n/tr/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Türkçe (TR) Language Pack",
   "description": "Language pack for Thunderbird for tr",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "tr": {
-      "version": "20210818104620",
+      "version": "20210831230918",
       "chrome_resources": {
         "alerts": "chrome/tr/locale/tr/alerts/",
         "autoconfig": "chrome/tr/locale/tr/autoconfig/",
diff --git a/thunderbird-l10n/uk/chrome/uk/locale/uk/global/layout/htmlparser.properties b/thunderbird-l10n/uk/chrome/uk/locale/uk/global/layout/htmlparser.properties
index a26c3f7d7f72a9e61439a74e23b3ec95ac5dd7a6..ec4226234acae6376c1ec0198f71072c69d3b0dd 100644
--- a/thunderbird-l10n/uk/chrome/uk/locale/uk/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/uk/chrome/uk/locale/uk/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Кінець файлу всередині ідентифіка
 errExpectedSystemId=Очікувався ідентифікатор системи, але doctype завершився.
 errMissingSpaceBeforeDoctypeName=Відсутній пробіл перед іменем doctype.
 errHyphenHyphenBang=“--!” знайдено в коментарі.
+errNestedComment=Побачили “<!--” в коментарі. Ймовірна причина: Вкладений коментар (не дозволено).
 errNcrZero=Посилання на символ розгортається в нуль.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Немає пробілу між ключовим словом “SYSTEM” для doctype і лапкою.
 errNoSpaceBetweenPublicAndSystemIds=Немає пробілу між публічним і системним ідентифікаторами doctype.
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Незакриті елементи в сте
 errEndTagDidNotMatchCurrentOpenElement=Завершальний тег “%1$S” не збігається з іменем поточного відкритого елемента (“%2$S”).
 errEndTagViolatesNestingRules=Завершальний тег “%1$S” порушує правила вкладення.
 errEndWithUnclosedElements=Виявлено завершальний тег “%1$S”, але наявні незакриті елементи.
+errListUnclosedStartTags=Незакритий елемент або елементи.
diff --git a/thunderbird-l10n/uk/localization/uk/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/uk/localization/uk/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..511f318f12dc1ff962da4621a9c98485fa478955
--- /dev/null
+++ b/thunderbird-l10n/uk/localization/uk/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,41 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+        [one] Видалити подію
+        [few] Видалити події
+       *[many] Видалити події
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+        [one] Ви справді бажаєте видалити цю подію?
+        [few] Ви справді бажаєте видалити ці { $count } події?
+       *[many] Ви справді бажаєте видалити ці { $count } подій?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+        [one] Видалити завдання
+        [few] Видалити завдання
+       *[many] Видалити завдання
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+        [one] Ви справді бажаєте видалити це завдання?
+        [few] Ви справді бажаєте видалити ці { $count } завдання?
+       *[many] Ви справді бажаєте видалити ці { $count } завдань?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+        [one] Видалити елемент
+        [few] Видалити елементи
+       *[many] Видалити елементи
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+        [one] Ви справді бажаєте видалити цей елемент?
+        [few] Ви справді бажаєте видалити ці { $count } елементи?
+       *[many] Ви справді бажаєте видалити ці { $count } елементів?
+    }
+calendar-delete-prompt-disable-message = Не питати знову.
diff --git a/thunderbird-l10n/uk/localization/uk/calendar/preferences.ftl b/thunderbird-l10n/uk/localization/uk/calendar/preferences.ftl
index dfb955fcedd0a6ee773b70feb31464988712eb07..db6f2601c949763e417166492bd3444f0844942a 100644
--- a/thunderbird-l10n/uk/localization/uk/calendar/preferences.ftl
+++ b/thunderbird-l10n/uk/localization/uk/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Змінювати події та завдання у вкладці замість діалогового вікна.
     .accesskey = З
+prompt-delete-label =
+    .label = Запитувати перед видаленням подій та завдань.
+    .accesskey = о
 accessibility-legend = Доступність
 accessibility-colors-label =
     .label = Оптимізувати кольори для доступності
diff --git a/thunderbird-l10n/uk/localization/uk/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/uk/localization/uk/messenger/accountcreation/accountSetup.ftl
index 4c19bdac06bc3c61577890c4f5b5bc22260a8c97..cd02b81f33f0ce045a7ec567056d48cab93a44e4 100644
--- a/thunderbird-l10n/uk/localization/uk/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/uk/localization/uk/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = Налаштування облікового запи
 ## Header
 
 account-setup-title = Налаштуйте свою наявну електронну адресу
-
 account-setup-description =
     Щоб використовувати поточну адресу електронної пошти, заповніть свої дані. <br/>
     { -brand-product-name } автоматично шукатиме робочу та рекомендовану конфігурацію сервера.
-
 account-setup-secondary-description = { -brand-product-name } автоматично шукатиме робочу та рекомендовану конфігурації сервера.
-
 account-setup-success-title = Обліковий запис створено!
-
 account-setup-success-description = Тепер ви можете користуватися цим обліковим записом у { -brand-short-name }.
-
 account-setup-success-secondary-description = Ви можете додати функціональність, під'єднавши пов'язані служби та сконфігурувавши розширені налаштування облікового запису.
 
 ## Form fields
 
 account-setup-name-label = Ваше повне ім'я
     .accesskey = Ñ–
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = Тарас Шевченко
-
 account-setup-name-info-icon =
     .title = Ваше ім’я, яким його бачитимуть інші
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = Адреса електронної пошти
     .accesskey = е
-
 account-setup-email-input =
     .placeholder = john.doe@example.com
-
 account-setup-email-info-icon =
     .title = Ваша наявна адреса електронної пошти
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = Пароль
     .accesskey = П
     .title = Необов’язково, потрібен лише для перевірки імені користувача
-
 account-provisioner-button = Отримати нову електронну адресу
     .accesskey = О
-
 account-setup-password-toggle =
     .title = Показати/сховати пароль
-
+account-setup-password-toggle-show =
+    .title = Показати пароль відкритим текстом
+account-setup-password-toggle-hide =
+    .title = Сховати пароль
 account-setup-remember-password = Запам’ятати пароль
     .accesskey = м
-
 account-setup-exchange-label = Ваше ім'я
     .accesskey = а
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = ДОМЕН\користувач
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = Ім'я користувача домену
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = Скасувати
     .accesskey = к
-
 account-setup-button-manual-config = Налаштувати власноруч
     .accesskey = в
-
 account-setup-button-stop = Зупинити
     .accesskey = З
-
 account-setup-button-retest = Спробувати
     .accesskey = п
-
 account-setup-button-continue = Продовжити
     .accesskey = П
-
 account-setup-button-done = Готово
     .accesskey = Г
 
 ## Notifications
 
 account-setup-looking-up-settings = Пошук конфігурації…
-
 account-setup-looking-up-settings-guess = Пошук конфігурації: Перевірка поширених імен серверів…
-
 account-setup-looking-up-settings-half-manual = Пошук конфігурації: Випробування сервера…
-
 account-setup-looking-up-disk = Пошук конфігурації: встановлення { -brand-short-name }...
-
 account-setup-looking-up-isp = Пошук конфігурації: постачальник електронної пошти…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = Пошук конфігурації: база даних ISP Mozilla…
-
 account-setup-looking-up-mx = Пошук конфігурації: домен вхідної пошти…
-
 account-setup-looking-up-exchange = Пошук конфігурації: Сервер Exchange…
-
 account-setup-checking-password = Перевірка пароля…
-
 account-setup-installing-addon = Завантаження і встановлення додатка…
-
 account-setup-success-half-manual = Такі налаштування було знайдено під час випробування цього сервера:
-
 account-setup-success-guess = Конфігурацію знайдено за допомогою перевірки поширених імен серверів.
-
 account-setup-success-guess-offline = Ви працюєте в автономному режимі. Ми здогадалися про деякі налаштування, але ви повинні ввести правильні налаштування власноруч.
-
 account-setup-success-password = Пароль прийнято
-
 account-setup-success-addon = Додаток успішно встановлено
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = Конфігурацію знайдено в базі даних ISP Mozilla.
-
 account-setup-success-settings-disk = Конфігурацію знайдено під час встановлення { -brand-short-name }.
-
 account-setup-success-settings-isp = Конфігурацію знайдено у постачальника послуг електронної пошти.
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = Знайдено конфігурацію для сервера Microsoft Exchange.
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = Знайдено конфігурац
 
 account-setup-step1-image =
     .title = Початкове налаштування
-
 account-setup-step2-image =
     .title = Завантаження…
-
 account-setup-step3-image =
     .title = Конфігурацію знайдено
-
 account-setup-step4-image =
     .title = Помилка з'єднання
-
 account-setup-step5-image =
     .title = Обліковий запис створено
-
 account-setup-privacy-footnote2 = Ваші облікові дані зберігатимуться лише локально на вашому комп’ютері.
-
 account-setup-selection-help = Не знаєте, що вибрати?
-
 account-setup-selection-error = Потрібна допомога?
-
 account-setup-success-help = Не впевнені що робити далі?
-
 account-setup-documentation-help = Документація з налаштування
-
 account-setup-forum-help = Форум підтримки
-
 account-setup-privacy-help = Політика приватності
-
 account-setup-getting-started = Почнімо
 
 ## Results area
@@ -178,41 +127,25 @@ account-setup-results-area-title =
         [few] Доступні конфігурації
        *[many] Доступні конфігурації
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = Синхронізуйте свої теки та електронні листи на сервері
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = Зберігайте теки та електронні листи на комп’ютері
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = Користуйтеся сервером Microsoft Exchange або хмарними службами Office365
-
 account-setup-incoming-title = Вхідні
-
 account-setup-outgoing-title = Вихідні
-
 account-setup-username-title = Ім'я користувача
-
 account-setup-exchange-title = Сервер
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = Без шифрування
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = Використовувати наявний вихідний SMTP-сервер
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -222,81 +155,54 @@ account-setup-result-username-different = Вхідний: { $incoming }, вих
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = Помилка автентифікації. Або введені облікові дані неправильні, або для входу потрібно окреме ім’я користувача. Це ім’я користувача, як правило, є вашим ім'ям домену Windows із доменом або без нього (наприклад, janedoe або AD\\janedoe)
-
 account-setup-credentials-wrong = Помилка автентифікації. Перевірте ім’я користувача та пароль
-
 account-setup-find-settings-failed = { -brand-short-name } не може знайти налаштування для вашого облікового запису електронної пошти
-
 account-setup-exchange-config-unverifiable = Не вдалося перевірити конфігурацію. Якщо ваше ім’я користувача та пароль правильні, ймовірно, що адміністратор сервера вимкнув вибрану конфігурацію для вашого облікового запису. Спробуйте вибрати інший протокол.
 
 ## Manual configuration area
 
 account-setup-manual-config-title = Налаштування сервера
-
 account-setup-incoming-server-legend = Сервер вхідної пошти
-
 account-setup-protocol-label = Протокол:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = Ім'я хоста:
-
 account-setup-port-label = Порт:
     .title = Встановіть для порту номер 0 для автоматичного виявлення
-
 account-setup-auto-description = { -brand-short-name } спробує автоматично визначити поля, які залишились порожніми.
-
 account-setup-ssl-label = Безпека з’єднання:
-
 account-setup-outgoing-server-legend = Сервер вихідної пошти
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = Автовиявлення
-
 ssl-no-authentication-option = Без автентифікації
-
 ssl-cleartext-password-option = Звичайний пароль
-
 ssl-encrypted-password-option = Зашифрований пароль
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = Немає
-
 account-setup-auth-label = Метод автентифікації:
-
 account-setup-username-label = Ім’я користувача:
-
 account-setup-advanced-setup-button = Розширені налаштування
     .accesskey = Р
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = Увага!
-
 account-setup-insecure-incoming-title = Налаштування вхідної пошти:
-
 account-setup-insecure-outgoing-title = Налаштування вихідної пошти:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> не застосовує шифрування.
-
 account-setup-warning-cleartext-details = Небезпечні поштові сервери не використовують шифрований зв’язок для захисту ваших паролів та інших особистих даних. З’єднуючись з цим сервером ви можете видати ваш пароль та особисті дані.
-
 account-setup-insecure-server-checkbox = Я розумію ризики
     .accesskey = о
-
 account-setup-insecure-description = { -brand-short-name } може дозволити вам отримати вашу пошту з використанням зазначеної конфігурації. Однак, вам варто звернутись до вашого адміністратора чи поштового постачальника щодо цих неправильних з’єднань. Перегляньте <a data-l10n-name="thunderbird-faq-link">ЧаП Thunderbird</a> для отримання додаткових відомостей.
-
 insecure-dialog-cancel-button = Змінити налаштування.
     .accesskey = н
-
 insecure-dialog-confirm-button = Підтвердити
     .accesskey = П
 
@@ -305,51 +211,45 @@ insecure-dialog-confirm-button = Підтвердити
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } знайшов налаштування для вашого облікового запису на { $domain }. Хочете продовжити та ввести свої облікові дані?
-
 exchange-dialog-confirm-button = Ім'я користувача
-
 exchange-dialog-cancel-button = Скасувати
 
+## Dismiss account creation dialog
+
+exit-dialog-title = Обліковий запис електронної пошти не сконфігуровано
+exit-dialog-description = Ви впевнені, що хочете скасувати процес налаштування? { -brand-short-name } й надалі можна використовувати без облікового запису електронної пошти, але багато можливостей будуть недоступні.
+account-setup-no-account-checkbox = Користуватися { -brand-short-name } без облікового запису електронної пошти
+    .accesskey = К
+exit-dialog-cancel-button = Продовжити налаштування
+    .accesskey = П
+exit-dialog-confirm-button = Вийти з налаштування
+    .accesskey = Ð’
+
 ## Alert dialogs
 
 account-setup-creation-error-title = Помилка створення облікового запису
-
 account-setup-error-server-exists = Сервер вхідної пошти вже існує.
-
 account-setup-confirm-advanced-title = Підтвердити персональні конфігурації
-
 account-setup-confirm-advanced-description = Це діалогове вікно буде закрито, а також буде створено обліковий запис із поточними налаштуваннями, навіть якщо конфігурація неправильна. Хочете продовжити?
 
 ## Addon installation section
 
 account-setup-addon-install-title = Встановити
-
 account-setup-addon-install-intro = Отримати доступ до вашого облікового запису пошти на цьому сервері може допомогти сторонній додаток:
-
 account-setup-addon-no-protocol = На жаль, цей поштовий сервер не підтримує відкриті протоколи. { account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = Налаштування облікового запису
-
 account-setup-encryption-button = Наскрізне шифрування
-
 account-setup-signature-button = Додати підпис
-
 account-setup-dictionaries-button = Завантажити словники
-
 account-setup-address-book-carddav-button = Під'єднати адресну книгу CardDAV
-
 account-setup-address-book-ldap-button = Під'єднати адресну книгу LDAP
-
 account-setup-calendar-button = Під'єднати віддалений календар
-
 account-setup-linked-services-title = Під'єднати пов’язані служби
-
 account-setup-linked-services-description = { -brand-short-name } виявив інші служби, пов’язані з вашим обліковим записом електронної пошти.
-
 account-setup-no-linked-description = Налаштуйте інші служби, щоб отримати максимальну зручність роботи з { -brand-short-name }.
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -358,7 +258,6 @@ account-setup-found-address-books-description =
         [few] { -brand-short-name } знайшов { $count } адресні книги, пов’язані з вашою електронною адресою.
        *[many] { -brand-short-name } знайшов { $count } адресних книг, пов’язаних з вашою електронною адресою.
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -367,63 +266,42 @@ account-setup-found-calendars-description =
         [few] { -brand-short-name } знайшов { $count } календарі, пов’язані з вашою електронною адресою.
        *[many] { -brand-short-name } знайшов { $count } календарів, пов’язаних з вашою електронною адресою.
     }
-
 account-setup-button-finish = Завершити
     .accesskey = З
-
 account-setup-looking-up-address-books = Пошук адресних книг…
-
 account-setup-looking-up-calendars = Пошук календарів…
-
 account-setup-address-books-button = Адресні книги
-
 account-setup-calendars-button = Календарі
-
 account-setup-connect-link = Під'єднати
-
 account-setup-existing-address-book = Під'єднано
     .title = Адресна книга вже під'єднана
-
 account-setup-existing-calendar = Під'єднано
     .title = Календар вже під'єднаний
-
 account-setup-connect-all-calendars = Під’єднайте всі календарі
-
 account-setup-connect-all-address-books = Під’єднайте всі адресні книги
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = Під'єднати календар
-
 calendar-dialog-cancel-button = Скасувати
     .accesskey = С
-
 calendar-dialog-confirm-button = Під'єднати
     .accesskey = н
-
 account-setup-calendar-name-label = Назва
-
 account-setup-calendar-name-input =
     .placeholder = Мій календар
-
 account-setup-calendar-color-label = Колір
-
 account-setup-calendar-refresh-label = Оновлювати
-
 account-setup-calendar-refresh-manual = Вручну
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] Щохвилини
         [few] Кожні { $count } хв
        *[many] Кожні { $count } хв
     }
-
 account-setup-calendar-read-only = Лише для читання
     .accesskey = и
-
 account-setup-calendar-show-reminders = Показувати сповіщення
     .accesskey = П
-
 account-setup-calendar-offline-support = Підтримка автономного режиму
     .accesskey = а
diff --git a/thunderbird-l10n/uk/localization/uk/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/uk/localization/uk/messenger/addressbook/aboutAddressBook.ftl
index d95987b4e2edbc1ac92c306184890e144cf87762..6da0be50fc1994f7ff45f8fa585e103a66909baf 100644
--- a/thunderbird-l10n/uk/localization/uk/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/uk/localization/uk/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = Усі адресні книги
-
 about-addressbook-books-context-properties =
     .label = Властивості
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = Видалити
 about-addressbook-books-context-remove =
     .label = Вилучити
-
 about-addressbook-confirm-delete-book-title = Видалити адресну книгу
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = Пошук { $name }
 about-addressbook-search-all =
     .placeholder = Пошук у всіх адресних книгах
-
 about-addressbook-sort-button =
     .title = Змінити порядок списку
-
 about-addressbook-name-format-display =
     .label = Ім'я для показу
 about-addressbook-name-format-firstlast =
     .label = Ім’я Прізвище
 about-addressbook-name-format-lastfirst =
     .label = Прізвище, ім’я
-
 about-addressbook-sort-name-ascending =
     .label = Впорядкувати за іменем (А > Я)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = Впорядкувати за адресою електронної пошти (А > Я)
 about-addressbook-sort-email-descending =
     .label = Впорядкувати за адресою електронної пошти (Я > А)
-
+about-addressbook-cards-context-write =
+    .label = Записати
 about-addressbook-confirm-delete-mixed-title = Видалити контакти та списки
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -131,7 +127,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = Редагувати
 about-addressbook-cancel-edit-contact-button = Скасувати
 about-addressbook-save-edit-contact-button = Зберегти
-
 about-addressbook-details-email-addresses-header = Адреси електронної пошти
 about-addressbook-details-phone-numbers-header = Номери телефону
 about-addressbook-details-home-address-header = Домашня адреса
diff --git a/thunderbird-l10n/uk/localization/uk/messenger/importDialog.ftl b/thunderbird-l10n/uk/localization/uk/messenger/importDialog.ftl
index 53d0f30baafc228c1f2c634f39610053ad672162..6f418232c142de055bd6ba74fa81c9b99939847e 100644
--- a/thunderbird-l10n/uk/localization/uk/messenger/importDialog.ftl
+++ b/thunderbird-l10n/uk/localization/uk/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = Імпортувати пошту з каталогу профілю Thunderbird.
-import-select-profile-dir-or-zip = Виберіть каталог профілів або каталог з архівованим профілем
+import-from-thunderbird-zip =
+    .label = Thunderbird (експортована резервна копія профілю; zip-файл обсягом менш як 2 ГБ)
+    .accesskey = ш
+import-from-thunderbird-dir =
+    .label = Thunderbird (тека профілю)
+    .accesskey = Ñ‚
 import-select-profile-zip = Виберіть каталог стисненого профілю
+import-select-profile-dir = Вибрати каталог профілю
+zip-file-too-big-title = Zip-файл завеликий
+zip-file-too-big-message = Вибраний zip-файл більший ніж 2 ГБ. Спочатку видобудьте його, а потім імпортуйте з видобутої теки.
+wizardpage-failed =
+    .label = Не вдалося імпортувати
+wizardpage-failed-message = Не вдалося імпортувати, можливо, більше даних буде доступно у Консолі помилок.
diff --git a/thunderbird-l10n/uk/localization/uk/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/uk/localization/uk/messenger/messengercompose/messengercompose.ftl
index 9755d9c3102d34955f3fb99d564096aad6d611e3..17527d8bcdd139e675cd468706be0bf8c8a910c8 100644
--- a/thunderbird-l10n/uk/localization/uk/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/uk/localization/uk/messenger/messengercompose/messengercompose.ftl
@@ -66,6 +66,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = Додати вкладення…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = Додати вкладення…
+    .accesskey = о
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = Файл(и)
     .accesskey = Ф
@@ -159,12 +163,76 @@ bcc-compose-show-address-row-label =
     .tooltiptext = Показати { bcc-compose-address-row-label.value } Поле ({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = { $count } одержувачі у Кому та Копія бачитимуть адресу одне одного. Ви можете уникнути розголошення одержувачів, використовуючи замість цього приховану копію.
+to-address-row-label =
+    .value = Кому
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = Поле кому
+    .accesskey = П
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = Кому
+    .accesskey = К
+#   $key (String) - the shortcut key for this field
+show-to-row-button = Кому
+    .title = Показати поле кому ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = Копія
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = Поле копія
+    .accesskey = к
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = Копія
+    .accesskey = о
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = Копія
+    .title = Показати поле копія ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = Прихована копія
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = Поле прихована копія
+    .accesskey = л
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = Прихована копія
+    .accesskey = и
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = Прихована копія
+    .title = Показати поле прихована копія ({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = Інші поля адресування для показу
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] Ваше повідомлення має публічного отримувача. Ви можете уникнути розкриття адрес отримувачів, скориставшись натомість полем ПК (прихована копія).
+        [few] { $count } отримувачі в полях Кому та Копія бачитимуть всіх адресатів. Ви можете уникнути розкриття адрес отримувачів, скориставшись натомість полем ПК (прихована копія).
+       *[many] { $count } отримувачів у полях Кому та Копія бачитимуть всіх адресатів. Ви можете уникнути розкриття адрес отримувачів, скориставшись натомість полем ПК (прихована копія).
+    }
 many-public-recipients-bcc =
     .label = Використовувати приховану копію натомість
     .accesskey = Ð’
 many-public-recipients-ignore =
     .label = Залишити отримувачів видимими
     .accesskey = З
+many-public-recipients-prompt-title = Надто багато публічних отримувачів
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] Ваше повідомлення має публічного отримувача. Це може бути проблемою приватності. Ви можете уникнути цього, перемістивши отримувача в поле ПК (прихована копія).
+        [few] Ваше повідомлення має { $count } публічні отримувачі. Це може бути проблемою приватності. Ви можете уникнути цього, перемістивши отримувачів у поле ПК (прихована копія).
+       *[many] Ваше повідомлення має { $count } публічних отримувачів. Це може бути проблемою приватності. Ви можете уникнути цього, перемістивши отримувачів у поле ПК (прихована копія).
+    }
+many-public-recipients-prompt-cancel = Скасувати надсилання
+many-public-recipients-prompt-send = Все одно надіслати
 
 ## Notifications
 
diff --git a/thunderbird-l10n/uk/localization/uk/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/uk/localization/uk/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..c79222521c5d3cc2fbb4a1711a07957b77fa0af3
--- /dev/null
+++ b/thunderbird-l10n/uk/localization/uk/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Завершити встановлення { -brand-short-name }?
+prompt-to-install-message = Виконайте це одноетапне встановлення, щоб оновити { -brand-short-name } до актуального стану та запобігти втраті даних. { -brand-short-name } буде додано до вашої теки Програми та Dock.
+prompt-to-install-yes-button = Установити
+prompt-to-install-no-button = Не встановлювати
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Не вдалося встановити { -brand-short-name }.
+install-failed-message = Не вдалося встановити { -brand-short-name }, але він продовжуватиме працювати.
diff --git a/thunderbird-l10n/uk/localization/uk/toolkit/global/textActions.ftl b/thunderbird-l10n/uk/localization/uk/toolkit/global/textActions.ftl
index 267e3af2c2629e99cdc00d1ebda9eb245b6df355..a711c7cf4b180e3c8978b36933594ef4b57e2055 100644
--- a/thunderbird-l10n/uk/localization/uk/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/uk/localization/uk/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Повернути
     .accesskey = н
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Повторити
     .accesskey = в
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Вирізати
     .accesskey = и
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Копіювати
     .accesskey = п
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Вставити
     .accesskey = Ñ‚
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Видалити
     .accesskey = Ð’
-
 text-action-select-all =
     .label = Вибрати все
     .accesskey = Ð’
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Немає пропозицій написання
+text-action-spell-add-to-dictionary =
+    .label = Додати до словника
+    .accesskey = о
+text-action-spell-undo-add-to-dictionary =
+    .label = Скасувати додавання до словника
+    .accesskey = к
+text-action-spell-check-toggle =
+    .label = Перевіряти правопис
+    .accesskey = я
+text-action-spell-add-dictionaries =
+    .label = Додати словники…
+    .accesskey = Ñ‚
+text-action-spell-dictionaries =
+    .label = Мови
+    .accesskey = М
diff --git a/thunderbird-l10n/uk/manifest.json b/thunderbird-l10n/uk/manifest.json
index d465ed02ef9003e6a598aaf563c07287dd3f9278..7c8f109c874ac69a0f1bd5c95d077372cd32dbf2 100644
--- a/thunderbird-l10n/uk/manifest.json
+++ b/thunderbird-l10n/uk/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Ukrainian (UA) Language Pack",
   "description": "Language pack for Thunderbird for uk",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "uk": {
-      "version": "20210814191621",
+      "version": "20210831134811",
       "chrome_resources": {
         "alerts": "chrome/uk/locale/uk/alerts/",
         "autoconfig": "chrome/uk/locale/uk/autoconfig/",
diff --git a/thunderbird-l10n/uz/chrome/uz/locale/uz/lightning/lightning.properties b/thunderbird-l10n/uz/chrome/uz/locale/uz/lightning/lightning.properties
index d20b4b5461728126dcc764da0b60d44850df065f..1212eea5588ae2509dbfae2d70a24d602e1a090a 100644
--- a/thunderbird-l10n/uz/chrome/uz/locale/uz/lightning/lightning.properties
+++ b/thunderbird-l10n/uz/chrome/uz/locale/uz/lightning/lightning.properties
@@ -269,7 +269,7 @@ imipBarProcessedMultipleNeedsAction=This message contains multiple events that y
 imipBarProcessedSeriesNeedsAction=This message contains an event series that you have not yet responded to.
 imipBarReplyToNotExistingItem=This message contains a reply referring to an event that is not in your calendar.
 # LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
-# %1$S - datetime of deletion
+# %1$S - time of deletion
 imipBarReplyToRecentlyRemovedItem=This message contains a reply referring to an event that was removed from your calendar at %1$S.
 imipBarUnsupportedText2=This message contains an event that this version of %1$S cannot process.
 imipBarCalendarDeactivated=This message contains event information. Enable a calendar to handle it.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-context-menus.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-context-menus.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-editable-item.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-editable-item.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-event-dialog-reminder.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-invitations-dialog.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-itip-identity-dialog.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-print.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-print.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-print.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-summary-dialog.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-uri-redirect-dialog.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/calendar/calendar-widgets.ftl b/thunderbird-l10n/uz/localization/uz/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/calendar/calendar-widgets.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/aboutAddonsExtra.ftl b/thunderbird-l10n/uz/localization/uz/messenger/aboutAddonsExtra.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/aboutAddonsExtra.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/aboutSupportCalendar.ftl b/thunderbird-l10n/uz/localization/uz/messenger/aboutSupportCalendar.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/aboutSupportCalendar.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/accountManager.ftl b/thunderbird-l10n/uz/localization/uz/messenger/accountManager.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/accountManager.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/uz/localization/uz/messenger/accountcreation/accountSetup.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/accountcreation/accountSetup.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/addressbook/abCardDAVProperties.ftl b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/abCardDAVProperties.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/aboutAddressBook.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/aboutAddressBook.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/addressbook/fieldMapImport.ftl b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/fieldMapImport.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/addressbook/fieldMapImport.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/chat.ftl b/thunderbird-l10n/uz/localization/uz/messenger/chat.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/chat.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/compactFoldersDialog.ftl b/thunderbird-l10n/uz/localization/uz/messenger/compactFoldersDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/compactFoldersDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/exportDialog.ftl b/thunderbird-l10n/uz/localization/uz/messenger/exportDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/exportDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/importDialog.ftl b/thunderbird-l10n/uz/localization/uz/messenger/importDialog.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/importDialog.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/preferences/am-copies.ftl b/thunderbird-l10n/uz/localization/uz/messenger/preferences/am-copies.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/preferences/am-copies.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/messenger/troubleshootMode.ftl b/thunderbird-l10n/uz/localization/uz/messenger/troubleshootMode.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/messenger/troubleshootMode.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/localization/uz/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/uz/localization/uz/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe8159b2db12df85a3ecca3b73921192c6e43f
--- /dev/null
+++ b/thunderbird-l10n/uz/localization/uz/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,3 @@
+# 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/.
diff --git a/thunderbird-l10n/uz/manifest.json b/thunderbird-l10n/uz/manifest.json
index 571f068fd8d25a58a1d6ab83882cf3d1f8b9799f..e9879c59df626f0f6b1e2a0269dc2fe72f5dc35c 100644
--- a/thunderbird-l10n/uz/manifest.json
+++ b/thunderbird-l10n/uz/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Uzbek Language Pack",
   "description": "Language pack for Thunderbird for uz",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "uz": {
-      "version": "20210813142153",
+      "version": "20210831123149",
       "chrome_resources": {
         "alerts": "chrome/uz/locale/uz/alerts/",
         "autoconfig": "chrome/uz/locale/uz/autoconfig/",
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.dtd
index 0ad05495b622efbc049cd9acadcc9bbe2aaf4e7c..699768c3daab459e9aa4481af3967a1afe929eb5 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.dtd
@@ -2,7 +2,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/. -->
 
-<!ENTITY event.title.label                  "Chỉnh sửa Mục" >
+<!ENTITY event.title.label                  "Chỉnh sửa mục" >
 
 <!ENTITY event.dialog.keepDurationButton.tooltip   "Giữ thời lượng khi thay đổi ngày kết thúc">
 <!ENTITY event.dialog.keepDurationButton.accesskey "K">
@@ -45,6 +45,8 @@
 <!-- Keyboard Shortcuts -->
 <!ENTITY event.dialog.new.event.key2              "I">
 <!ENTITY event.dialog.new.task.key2               "D">
+
+<!-- Keyboard Shortcuts -->
 <!ENTITY event.dialog.new.message.key2            "N">
 <!ENTITY event.dialog.close.key                   "W">
 <!ENTITY event.dialog.save.key                    "S">
@@ -85,13 +87,13 @@
     - menu item when editing events/tasks in a dialog window.
     - event.menu.item.saveandclose.tab.accesskey is used for "Save and Close"
     - when editing events/tasks in a tab. -->
-<!ENTITY  event.menu.item.saveandclose.label              "Lưu và Đóng">
+<!ENTITY  event.menu.item.saveandclose.label              "Lưu và đóng">
 <!ENTITY  event.menu.item.saveandclose.accesskey          "v">
 <!ENTITY  event.menu.item.saveandclose.tab.accesskey      "z">
 
 <!ENTITY  event.menu.item.delete.label                    "Xóa…">
 <!ENTITY  event.menu.item.delete.accesskey                "X">
-<!ENTITY  event.menu.item.page.setup.label                "Thiết lập Trang">
+<!ENTITY  event.menu.item.page.setup.label                "Thiết lập trang">
 <!ENTITY  event.menu.item.page.setup.accesskey            "p">
 <!ENTITY  event.menu.item.print.label                     "In">
 <!ENTITY  event.menu.item.print.accesskey                 "I">
@@ -108,23 +110,23 @@
 <!ENTITY  event.menu.edit.copy.accesskey                  "C">
 <!ENTITY  event.menu.edit.paste.label                     "Dán">
 <!ENTITY  event.menu.edit.paste.accesskey                 "D">
-<!ENTITY  event.menu.edit.select.all.label                "Chọn Toàn Bộ">
+<!ENTITY  event.menu.edit.select.all.label                "Chọn toàn bộ">
 <!ENTITY  event.menu.edit.select.all.accesskey            "B">
 
 <!ENTITY  event.menu.view.label                           "Hiển thị">
 <!ENTITY  event.menu.view.accesskey                       "H">
-<!ENTITY  event.menu.view.toolbars.label                  "Thanh Công Cụ">
+<!ENTITY  event.menu.view.toolbars.label                  "Thanh công cụ">
 <!ENTITY  event.menu.view.toolbars.accesskey              "C">
-<!ENTITY  event.menu.view.toolbars.event.label            "Thanh Sự Kiện">
+<!ENTITY  event.menu.view.toolbars.event.label            "Thanh sự kiện">
 <!ENTITY  event.menu.view.toolbars.event.accesskey        "S">
 <!ENTITY  event.menu.view.toolbars.customize.label        "Tùy biến…">
 <!ENTITY  event.menu.view.toolbars.customize.accesskey    "y">
-<!ENTITY  event.menu.view.showlink.label                  "Hiển thị Liên kết Liên quan">
+<!ENTITY  event.menu.view.showlink.label                  "Hiển thị liên kết liên quan">
 <!ENTITY  event.menu.view.showlink.accesskey              "H">
 
 <!ENTITY  event.menu.options.label                            "Tùy chọn">
 <!ENTITY  event.menu.options.accesskey                        "y">
-<!ENTITY  event.menu.options.attendees.label                  "Mời khách Tham dự…">
+<!ENTITY  event.menu.options.attendees.label                  "Mời người tham dự…">
 <!ENTITY  event.menu.options.attendees.accesskey              "M">
 <!ENTITY  event.menu.options.timezone2.label                  "Hiển thị múi giờ">
 <!ENTITY  event.menu.options.timezone2.accesskey              "z">
@@ -140,11 +142,11 @@
 <!ENTITY  event.menu.options.priority.high.accesskey          "C">
 <!ENTITY  event.menu.options.privacy.label                    "Riêng tư">
 <!ENTITY  event.menu.options.privacy.accesskey                "R">
-<!ENTITY  event.menu.options.privacy.public.label             "Sự kiện Công khai">
+<!ENTITY  event.menu.options.privacy.public.label             "Sự kiện công khai">
 <!ENTITY  event.menu.options.privacy.public.accesskey         "S">
-<!ENTITY  event.menu.options.privacy.confidential.label       "Chỉ hiện Ngày và Giờ">
+<!ENTITY  event.menu.options.privacy.confidential.label       "Chỉ hiện ngày và giờ">
 <!ENTITY  event.menu.options.privacy.confidential.accesskey   "N">
-<!ENTITY  event.menu.options.privacy.private.label            "Sự kiện Cá nhân">
+<!ENTITY  event.menu.options.privacy.private.label            "Sự kiện riêng tư">
 <!ENTITY  event.menu.options.privacy.private.accesskey        "C">
 <!ENTITY  event.menu.options.show.time.label                  "Hiện tình trạng lịch trình là">
 <!ENTITY  event.menu.options.show.time.accesskey              "t">
@@ -153,11 +155,11 @@
 <!ENTITY  event.menu.options.show.time.free.label             "Rảnh">
 <!ENTITY  event.menu.options.show.time.free.accesskey         "F">
 
-<!ENTITY event.invite.attendees.label                     "Mời khách Tham dự…">
+<!ENTITY event.invite.attendees.label                     "Mời người tham dự…">
 <!ENTITY event.invite.attendees.accesskey                 "M">
-<!ENTITY event.email.attendees.label                      "Gửi Email cho Tất cả Khách tham dự…">
+<!ENTITY event.email.attendees.label                      "Soạn E-Mail cho tất cả người tham dự…">
 <!ENTITY event.email.attendees.accesskey                  "a">
-<!ENTITY event.email.tentative.attendees.label            "Gửi Email cho các Khách tham dự Chưa quyết định…">
+<!ENTITY event.email.tentative.attendees.label            "Soạn E-mail cho những người tham dự chưa quyết định…">
 <!ENTITY event.email.tentative.attendees.accesskey        "u">
 <!ENTITY event.remove.attendees.label2                    "Xóa tất cả những người tham dự">
 <!ENTITY event.remove.attendees.accesskey                 "r">
@@ -168,13 +170,13 @@
 <!ENTITY  event.toolbar.save.label2                       "LÆ°u">
 <!ENTITY  event.toolbar.saveandclose.label                "Lưu và đóng">
 <!ENTITY  event.toolbar.delete.label                      "Xóa">
-<!ENTITY  event.toolbar.attendees.label                   "Mời khách Tham dự">
+<!ENTITY  event.toolbar.attendees.label                   "Mời người tham dự">
 <!ENTITY  event.toolbar.privacy.label                     "Riêng tư">
 
 <!ENTITY  event.toolbar.save.tooltip2                     "LÆ°u">
 <!ENTITY  event.toolbar.saveandclose.tooltip              "Lưu và đóng">
 <!ENTITY  event.toolbar.delete.tooltip                    "Xóa">
-<!ENTITY  event.toolbar.attendees.tooltip                 "Mời khách tham dự">
+<!ENTITY  event.toolbar.attendees.tooltip                 "Mời người tham dự">
 <!ENTITY  event.toolbar.attachments.tooltip               "Thêm đính kèm">
 <!ENTITY  event.toolbar.privacy.tooltip                   "Thay đổi quyền riêng tư">
 <!ENTITY  event.toolbar.priority.tooltip                  "Thay đổi ưu tiên">
@@ -205,9 +207,9 @@
 <!ENTITY event.categories.textbox.label                   "Thêm một danh mục mới" >
 <!ENTITY event.calendar.label                             "Lịch:" >
 <!ENTITY event.calendar.accesskey                         "L">
-<!ENTITY event.attendees.label                            "Khách tham dự:" >
+<!ENTITY event.attendees.label                            "Người tham dự:" >
 <!ENTITY event.attendees.accesskey                        "a">
-<!ENTITY event.alldayevent.label                          "Sự kiện Cả ngày" >
+<!ENTITY event.alldayevent.label                          "Sự kiện cả ngày" >
 <!ENTITY event.alldayevent.accesskey                      "S">
 <!ENTITY event.from.label                                 "Bắt đầu:" >
 <!ENTITY event.from.accesskey                             "B">
@@ -239,31 +241,31 @@
 <!ENTITY event.attachments.popup.open.accesskey           "M" >
 <!ENTITY event.attachments.popup.removeAll.label          "Xóa tất cả" >
 <!ENTITY event.attachments.popup.removeAll.accesskey      "a" >
-<!ENTITY event.attachments.popup.attachPage.label         "Đính kèm Trang web…" >
+<!ENTITY event.attachments.popup.attachPage.label         "Đính kèm trang web…" >
 <!ENTITY event.attachments.popup.attachPage.accesskey     "w" >
-<!ENTITY event.url.label                                  "Liên kết Liên quan:" >
+<!ENTITY event.url.label                                  "Liên kết liên quan:" >
 <!ENTITY event.priority2.label                            "Ưu tiên:">
 
-<!ENTITY event.reminder.none.label                        "Không có nhắc việc " >
-<!ENTITY event.reminder.0minutes.before.label             "0 phút trước" >
-<!ENTITY event.reminder.5minutes.before.label             "5 phút trước lúc đó" >
-<!ENTITY event.reminder.15minutes.before.label            "15 phút trước lúc đó" >
-<!ENTITY event.reminder.30minutes.before.label            "30 phút trước lúc đó" >
-<!ENTITY event.reminder.1hour.before.label                "1 tiếng trước lúc đó" >
-<!ENTITY event.reminder.2hours.before.label               "2 tiếng trước lúc đó" >
-<!ENTITY event.reminder.12hours.before.label              "12 giờ trước" >
-<!ENTITY event.reminder.1day.before.label                 "1 ngày trước lúc đó" >
-<!ENTITY event.reminder.2days.before.label                "2 ngày trước lúc đó" >
-<!ENTITY event.reminder.1week.before.label                "1 tuần trước lúc đó" >
+<!ENTITY event.reminder.none.label                        "Không có lời nhắc " >
+<!ENTITY event.reminder.0minutes.before.label             "0 phút trước khi" >
+<!ENTITY event.reminder.5minutes.before.label             "5 phút trước khi" >
+<!ENTITY event.reminder.15minutes.before.label            "15 phút trước khi" >
+<!ENTITY event.reminder.30minutes.before.label            "30 phút trước khi" >
+<!ENTITY event.reminder.1hour.before.label                "1 tiếng trước khi" >
+<!ENTITY event.reminder.2hours.before.label               "2 tiếng trước khi" >
+<!ENTITY event.reminder.12hours.before.label              "12 tiếng trước khi" >
+<!ENTITY event.reminder.1day.before.label                 "1 ngày trước khi" >
+<!ENTITY event.reminder.2days.before.label                "2 ngày trước khi" >
+<!ENTITY event.reminder.1week.before.label                "1 tuần trước khi" >
 <!ENTITY event.reminder.custom.label                      "Tùy biến…" >
 
-<!ENTITY event.reminder.multiple.label                    "Nhiều lời Nhắc việc…" >
+<!ENTITY event.reminder.multiple.label                    "Nhiều lời nhắc…" >
 
 <!ENTITY event.statusbarpanel.freebusy.label              "Tình trạng lịch trình:">
 <!ENTITY event.statusbarpanel.privacy.label               "Riêng tư:">
 
 <!-- Recurrence dialog -->
-<!ENTITY recurrence.title.label                         "Chỉnh sửa Việc tái diễn">
+<!ENTITY recurrence.title.label                         "Chỉnh sửa lặp lại">
 
 <!ENTITY event.repeat.does.not.repeat.label             "Không lặp lại">
 <!ENTITY event.repeat.daily.label                       "Hàng ngày">
@@ -299,13 +301,13 @@
 <!ENTITY event.recurrence.monthly.fifth.label           "Tuần Năm">
 <!ENTITY event.recurrence.monthly.last.label            "Tuần Cuối">
 <!ENTITY event.recurrence.pattern.monthly.week.1.label  "Chủ nhật" >
-<!ENTITY event.recurrence.pattern.monthly.week.2.label  "Thứ Hai" >
-<!ENTITY event.recurrence.pattern.monthly.week.3.label  "Thứ Ba" >
-<!ENTITY event.recurrence.pattern.monthly.week.4.label  "Thứ Tư" >
-<!ENTITY event.recurrence.pattern.monthly.week.5.label  "Thứ Năm" >
-<!ENTITY event.recurrence.pattern.monthly.week.6.label  "Thứ Sáu" >
-<!ENTITY event.recurrence.pattern.monthly.week.7.label  "Thứ Bảy" >
-<!ENTITY event.recurrence.repeat.dayofmonth.label       "Ngày của tháng">
+<!ENTITY event.recurrence.pattern.monthly.week.2.label  "Thứ hai" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label  "Thứ ba" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label  "Thứ tư" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label  "Thứ năm" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label  "Thứ sáu" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label  "Thứ bảy" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label       "Ngày trong tháng">
 <!ENTITY event.recurrence.repeat.recur.label            "Tái diễn vào ngày">
 
 <!ENTITY event.recurrence.every.label                        "Má»—i:" >
@@ -321,18 +323,18 @@
 -->
 <!ENTITY event.recurrence.pattern.yearly.of.label            "" >
 
-<!ENTITY event.recurrence.pattern.yearly.month.1.label       "Tháng Một" >
-<!ENTITY event.recurrence.pattern.yearly.month.2.label       "Tháng Hai" >
-<!ENTITY event.recurrence.pattern.yearly.month.3.label       "Tháng Ba" >
-<!ENTITY event.recurrence.pattern.yearly.month.4.label       "Tháng Tư" >
-<!ENTITY event.recurrence.pattern.yearly.month.5.label       "Tháng Năm" >
-<!ENTITY event.recurrence.pattern.yearly.month.6.label       "Tháng Sáu" >
-<!ENTITY event.recurrence.pattern.yearly.month.7.label       "Tháng Bảy" >
-<!ENTITY event.recurrence.pattern.yearly.month.8.label       "Tháng Tám" >
-<!ENTITY event.recurrence.pattern.yearly.month.9.label       "Tháng Chín" >
-<!ENTITY event.recurrence.pattern.yearly.month.10.label      "Tháng Mười" >
-<!ENTITY event.recurrence.pattern.yearly.month.11.label      "Tháng Mười Một" >
-<!ENTITY event.recurrence.pattern.yearly.month.12.label      "Tháng Mười Hai" >
+<!ENTITY event.recurrence.pattern.yearly.month.1.label       "Tháng một" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label       "Tháng hai" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label       "Tháng ba" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label       "Tháng tư" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label       "Tháng năm" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label       "Tháng sáu" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label       "Tháng bảy" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label       "Tháng tám" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label       "Tháng chín" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label      "Tháng mười" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label      "Tháng mười một" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label      "Tháng mười hai" >
 <!ENTITY event.recurrence.yearly.every.label                 "Má»—i">
 <!ENTITY event.recurrence.yearly.first.label                 "Tuần Đầu">
 <!ENTITY event.recurrence.yearly.second.label                "Tuần Hai">
@@ -341,26 +343,26 @@
 <!ENTITY event.recurrence.yearly.fifth.label                 "Tuần Năm">
 <!ENTITY event.recurrence.yearly.last.label                  "Tuần Cuối">
 <!ENTITY event.recurrence.pattern.yearly.week.1.label        "Chủ nhật" >
-<!ENTITY event.recurrence.pattern.yearly.week.2.label        "Thứ Hai" >
-<!ENTITY event.recurrence.pattern.yearly.week.3.label        "Thứ Ba" >
-<!ENTITY event.recurrence.pattern.yearly.week.4.label        "Thứ Tư" >
-<!ENTITY event.recurrence.pattern.yearly.week.5.label        "Thứ Năm" >
-<!ENTITY event.recurrence.pattern.yearly.week.6.label        "Thứ Sáu" >
-<!ENTITY event.recurrence.pattern.yearly.week.7.label        "Thứ Bảy" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label        "Thứ hai" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label        "Thứ ba" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label        "Thứ tư" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label        "Thứ năm" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label        "Thứ sáu" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label        "Thứ bảy" >
 <!ENTITY event.recurrence.pattern.yearly.day.label           "ngày" >
 <!ENTITY event.recurrence.of.label                           "của" >
-<!ENTITY event.recurrence.pattern.yearly.month2.1.label      "Tháng Một" >
-<!ENTITY event.recurrence.pattern.yearly.month2.2.label      "Tháng Hai" >
-<!ENTITY event.recurrence.pattern.yearly.month2.3.label      "Tháng Ba" >
-<!ENTITY event.recurrence.pattern.yearly.month2.4.label      "Tháng Tư" >
-<!ENTITY event.recurrence.pattern.yearly.month2.5.label      "Tháng Năm" >
-<!ENTITY event.recurrence.pattern.yearly.month2.6.label      "Tháng Sáu" >
-<!ENTITY event.recurrence.pattern.yearly.month2.7.label      "Tháng Bảy" >
-<!ENTITY event.recurrence.pattern.yearly.month2.8.label      "Tháng Tám" >
-<!ENTITY event.recurrence.pattern.yearly.month2.9.label      "Tháng Chín" >
-<!ENTITY event.recurrence.pattern.yearly.month2.10.label     "Tháng Mười" >
-<!ENTITY event.recurrence.pattern.yearly.month2.11.label     "Tháng Mười Một" >
-<!ENTITY event.recurrence.pattern.yearly.month2.12.label     "Tháng Mười Hai" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label      "Tháng một" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label      "Tháng hai" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label      "Tháng ba" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label      "Tháng tư" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label      "Tháng năm" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label      "Tháng sáu" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label      "Tháng bảy" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label      "Tháng tám" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label      "Tháng chín" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label     "Tháng mười" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label     "Tháng mười một" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label     "Tháng mười hai" >
 
 <!ENTITY event.recurrence.range.label                   "Khoảng thời gian tái diễn">
 <!ENTITY event.recurrence.forever.label                 "Không có ngày kết thúc" >
@@ -370,7 +372,7 @@
 <!ENTITY event.recurrence.preview.label                 "Xem trÆ°á»›c">
 
 <!-- Attendees dialog -->
-<!ENTITY invite.title.label                     "Mời khách Tham dự">
+<!ENTITY invite.title.label                     "Mời người tham dự">
 <!ENTITY event.organizer.label                  "Người tổ chức">
 <!ENTITY event.freebusy.suggest.slot            "Đề xuất khung thời gian:">
 <!ENTITY event.freebusy.button.next.slot        "Khe tiếp theo">
@@ -381,10 +383,10 @@
 <!ENTITY event.freebusy.legend.busy_tentative   "Phân vân" >
 <!ENTITY event.freebusy.legend.busy_unavailable "Ra khỏi văn phòng" >
 <!ENTITY event.freebusy.legend.unknown          "Không có thông tin" >
-<!ENTITY event.attendee.role.required           "Người tham dự Quan trọng">
-<!ENTITY event.attendee.role.optional           "Người tham dự Phụ">
+<!ENTITY event.attendee.role.required           "Người tham dự bắt buộc">
+<!ENTITY event.attendee.role.optional           "Người tham dự phụ">
 <!ENTITY event.attendee.role.chair              "Chủ tọa">
-<!ENTITY event.attendee.role.nonparticipant     "Không có Người tham dự">
+<!ENTITY event.attendee.role.nonparticipant     "Không có người tham dự">
 <!ENTITY event.attendee.usertype.individual     "Cá nhân">
 <!ENTITY event.attendee.usertype.group          "Nhóm">
 <!ENTITY event.attendee.usertype.resource       "Tài nguyên">
@@ -392,7 +394,7 @@
 <!ENTITY event.attendee.usertype.unknown        "Không rõ">
 
 <!-- Timezone dialog -->
-<!ENTITY timezone.title.label            "Vui lòng Xác định Múi giờ">
+<!ENTITY timezone.title.label            "Vui lòng chỉ định múi giờ">
 <!ENTITY event.timezone.custom.label     "Hiện thêm múi giờ…">
 
 <!-- Read-Only dialog -->
@@ -409,9 +411,9 @@
 <!ENTITY read.only.organizer.label       "Người tổ chức:">
 <!ENTITY read.only.reminder.label        "Nhắc việc:">
 <!ENTITY read.only.attachments.label     "Đính kèm:">
-<!ENTITY read.only.attendees.label       "Khách tham dự">
+<!ENTITY read.only.attendees.label       "Người tham dự">
 <!ENTITY read.only.description.label     "Mô tả">
-<!ENTITY read.only.link.label            "Liên kết Liên quan">
+<!ENTITY read.only.link.label            "Liên kết liên quan">
 
 <!-- Summary dialog -->
 <!ENTITY summary.dialog.saveclose.label         "Lưu và đóng">
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.properties b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.properties
index 6b37ddf68b1c42998bb47e87dc60f7fe1be3385c..40a8ab5abc57bee822e168639c57a88b9dfb0f03 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.properties
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar-event-dialog.properties
@@ -50,17 +50,17 @@ weeklyEveryNth=mỗi tuần;mỗi #1 tuần
 # following strings if there is a weekday in the rule string.
 repeatDetailsDay1=Chủ nhật
 repeatDetailsDay1Nounclass=nounclass1
-repeatDetailsDay2=Thứ Hai
+repeatDetailsDay2=Thứ hai
 repeatDetailsDay2Nounclass=nounclass1
-repeatDetailsDay3=Thứ Ba
+repeatDetailsDay3=Thứ ba
 repeatDetailsDay3Nounclass=nounclass1
-repeatDetailsDay4=Thứ Tư
+repeatDetailsDay4=Thứ tư
 repeatDetailsDay4Nounclass=nounclass1
-repeatDetailsDay5=Thứ Năm
+repeatDetailsDay5=Thứ năm
 repeatDetailsDay5Nounclass=nounclass1
-repeatDetailsDay6=Thứ Sáu
+repeatDetailsDay6=Thứ sáu
 repeatDetailsDay6Nounclass=nounclass1
-repeatDetailsDay7=Thứ Bảy
+repeatDetailsDay7=Thứ bảy
 repeatDetailsDay7Nounclass=nounclass1
 
 # LOCALIZATION NOTE (repeatDetailsAnd)
@@ -219,18 +219,18 @@ yearlyOnEveryNthOfNthNounclass2=mỗi %1$S của %2$S;mỗi #3 năm vào mỗi %
 # e.g. "every 3 years every day of December"
 yearlyEveryDayOf=mỗi ngày của %1$S, cứ sau 2 năm mỗi ngày của %1$S
 
-repeatDetailsMonth1=Tháng Một
-repeatDetailsMonth2=Tháng Hai
-repeatDetailsMonth3=Tháng Ba
-repeatDetailsMonth4=Tháng Tư
-repeatDetailsMonth5=Tháng Năm
-repeatDetailsMonth6=Tháng Sáu
-repeatDetailsMonth7=Tháng Bảy
-repeatDetailsMonth8=Tháng Tám
-repeatDetailsMonth9=Tháng Chín
-repeatDetailsMonth10=Tháng Mười
-repeatDetailsMonth11=Tháng Mười Một
-repeatDetailsMonth12=Tháng Mười Hai
+repeatDetailsMonth1=Tháng một
+repeatDetailsMonth2=Tháng hai
+repeatDetailsMonth3=Tháng ba
+repeatDetailsMonth4=Tháng tư
+repeatDetailsMonth5=Tháng năm
+repeatDetailsMonth6=Tháng sáu
+repeatDetailsMonth7=Tháng bảy
+repeatDetailsMonth8=Tháng tám
+repeatDetailsMonth9=Tháng chín
+repeatDetailsMonth10=Tháng mười
+repeatDetailsMonth11=Tháng mười một
+repeatDetailsMonth12=Tháng mười hai
 
 # LOCALIZATION NOTE (repeatCount):
 # Edit recurrence window -> Recurrence details link on Event/Task dialog window
@@ -322,8 +322,8 @@ ruleTooComplex=Nhấn vào đây để biết thêm chi tiết
 ruleTooComplexSummary=Không xác định lặp lại chi tiết
 
 # differences between the dialog for an Event or a Task
-newEvent=Sự kiện Mới
-newTask=Tác vụ Mới
+newEvent=Sự kiện mới
+newTask=Tác vụ mới
 itemMenuLabelEvent=Sự kiện
 itemMenuAccesskeyEvent2=F
 itemMenuLabelTask=Tác vụ
@@ -340,7 +340,7 @@ summaryDueTaskLabel=Đến hạn:
 # Attach File Dialog
 attachViaFilelink=Tập tin sử dụng %1$S
 selectAFile=Vui lòng chọn tập tin đính kèm
-removeCalendarsTitle=Xóa phần Đính kèm
+removeCalendarsTitle=Xóa phần đính kèm
 
 # LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
 # prompting attachment removal.
@@ -396,12 +396,12 @@ pluralForWeekdays=false
 # - yearlyOnEveryNthOfNth
 #     e.g. "every Friday of March;every 2 years on every Friday of March"
 repeatDetailsDay1Plural=Chủ nhật
-repeatDetailsDay2Plural=Thứ Hai
-repeatDetailsDay3Plural=Thứ Ba
-repeatDetailsDay4Plural=Thứ Tư
-repeatDetailsDay5Plural=Thứ Năm
-repeatDetailsDay6Plural=Thứ Sáu
-repeatDetailsDay7Plural=Thứ Bảy
+repeatDetailsDay2Plural=Thứ hai
+repeatDetailsDay3Plural=Thứ ba
+repeatDetailsDay4Plural=Thứ tư
+repeatDetailsDay5Plural=Thứ năm
+repeatDetailsDay6Plural=Thứ sáu
+repeatDetailsDay7Plural=Thứ bảy
 
 # LOCALIZATION NOTE (eventRecurrenceForeverLabel):
 # Edit/New Event dialog -> datepicker that sets the until date.
@@ -471,32 +471,32 @@ eventNeedsAction=Bạn chưa trả lời lời mời này
 
 # LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
 # in the summary dialog if the user has accepted the assigned task
-taskAccepted=Bạn đã chấp nhận để làm nhiệm vụ này
+taskAccepted=Bạn đã chấp nhận để làm tác vụ này
 
 # LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
 # in the summary dialog if the user has accepted tentatively the assigned task
-taskTentative=Bạn đã chấp nhận tạm thời để làm nhiệm vụ này
+taskTentative=Bạn đã chấp nhận tạm thời để làm tác vụ này
 
 # LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
 # in the summary dialog if the user has declined the assigned task
-taskDeclined=Bạn đã từ chối làm nhiệm vụ này
+taskDeclined=Bạn đã từ chối làm tác vụ này
 
 # LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
 # in the summary dialog if the user has delegated his/her assignment to one or
 # more others (without attending / working on it his/herself)
-taskDelegated=Bạn đã ủy quyền công việc cho nhiệm vụ này
+taskDelegated=Bạn đã ủy quyền công việc cho tác vụ này
 
 # LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
 # in the summary dialog if the user hasn't yet responded to the task assignment
-taskNeedsAction=Bạn chưa trả lời cho nhiệm vụ này
+taskNeedsAction=Bạn chưa trả lời cho tác vụ này
 
 # LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
 # in the summary dialog if the user is working on an assigned task
-taskInProgress=Bạn đã bắt đầu làm việc với nhiệm vụ được giao này
+taskInProgress=Bạn đã bắt đầu làm việc với tác vụ được giao này
 
 # LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
 # in the summary dialog if the user has completed the work on this assigned task
-taskCompleted=Bạn đã hoàn thành công việc của mình trong nhiệm vụ được giao này
+taskCompleted=Bạn đã hoàn thành công việc của mình trong tác vụ được giao này
 
 # LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
 # event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.dtd
index ee2ec0368e1cab9d6be5c1677d4497715a505afd..1c70b0ef8bda85fc00898f54d62f086894b13ad6 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.dtd
@@ -7,11 +7,9 @@
 <!ENTITY calendar.calendar.accesskey "C">
 
 <!ENTITY calendar.newevent.button.tooltip         "Tạo một sự kiện mới" >
-<!ENTITY calendar.newtask.button.tooltip          "Tạo một nhiệm vụ mới" >
+<!ENTITY calendar.newtask.button.tooltip          "Tạo một tác vụ mới" >
 
-<!ENTITY calendar.unifinder.todoitems.label       "Nhiệm vụ" >
-
-<!ENTITY calendar.unifinder.showcompletedtodos.label "Hiện các nhiệm vụ đã hoàn tất">
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Hiện các tác vụ đã hoàn tất">
 
 <!ENTITY calendar.today.button.label          "Hôm nay">
 <!ENTITY calendar.tomorrow.button.label       "Ngày mai">
@@ -58,48 +56,48 @@
 <!ENTITY calendar.unifinder.tree.duration.tooltip2         "Sắp xếp theo thời gian cho đến khi đến hạn">
 <!ENTITY calendar.unifinder.close.tooltip                  "Đóng tìm kiếm và danh sách sự kiện">
 
-<!ENTITY calendar.today.button.tooltip          "Nhảy tới Hôm nay" >
-<!ENTITY calendar.todaypane.button.tooltip      "Hiện Bảng Ngày Hôm Nay" >
+<!ENTITY calendar.today.button.tooltip          "Đi đến hôm nay" >
+<!ENTITY calendar.todaypane.button.tooltip      "Hiển thị bảng hôm nay" >
 
 <!ENTITY calendar.day.button.tooltip            "Chuyển sang xem theo ngày" >
 <!ENTITY calendar.week.button.tooltip           "Chuyển sang xem theo tuần" >
 <!ENTITY calendar.month.button.tooltip          "Chuyển sang xem theo tháng" >
 <!ENTITY calendar.multiweek.button.tooltip      "Chuyển sang xem theo nhiều tuần" >
 
-<!ENTITY calendar.nextday.label                 "Ngày Sau" >
-<!ENTITY calendar.prevday.label                 "Ngày Trước" >
+<!ENTITY calendar.nextday.label                 "Ngày sau" >
+<!ENTITY calendar.prevday.label                 "Ngày trước" >
 <!ENTITY calendar.nextday.accesskey             "x" >
 <!ENTITY calendar.prevday.accesskey             "s" >
-<!ENTITY calendar.nextweek.label                "Tuần Sau" >
-<!ENTITY calendar.prevweek.label                "Tuần Trước" >
+<!ENTITY calendar.nextweek.label                "Tuần sau" >
+<!ENTITY calendar.prevweek.label                "Tuần trước" >
 <!ENTITY calendar.nextweek.accesskey            "x" >
 <!ENTITY calendar.prevweek.accesskey            "s" >
-<!ENTITY calendar.nextmonth.label               "Tháng Sau" >
-<!ENTITY calendar.prevmonth.label               "Tháng Trước" >
+<!ENTITY calendar.nextmonth.label               "Tháng sau" >
+<!ENTITY calendar.prevmonth.label               "Tháng trước" >
 <!ENTITY calendar.nextmonth.accesskey           "x" >
 <!ENTITY calendar.prevmonth.accesskey           "s" >
 
-<!ENTITY calendar.navigation.nextday.tooltip    "Tiến Một Ngày" >
+<!ENTITY calendar.navigation.nextday.tooltip    "Tiến một ngày" >
 <!ENTITY calendar.navigation.prevday.tooltip    "Lùi một ngày" >
-<!ENTITY calendar.navigation.nextweek.tooltip   "Tiến Một Tuần" >
+<!ENTITY calendar.navigation.nextweek.tooltip   "Tiến một tuần" >
 <!ENTITY calendar.navigation.prevweek.tooltip   "Lùi một tuần" >
-<!ENTITY calendar.navigation.nextmonth.tooltip  "Tiến Một Tháng" >
+<!ENTITY calendar.navigation.nextmonth.tooltip  "Tiến một tháng" >
 <!ENTITY calendar.navigation.prevmonth.tooltip  "Lùi một tháng" >
 
-<!ENTITY calendar.newevent.button.label         "Sự kiện Mới" >
-<!ENTITY calendar.newtask.button.label          "Tác vụ Mới" >
+<!ENTITY calendar.newevent.button.label         "Sự kiện mới" >
+<!ENTITY calendar.newtask.button.label          "Tác vụ mới" >
 <!ENTITY calendar.print.button.label            "In" >
 <!ENTITY calendar.print.button.accesskey        "P">
 
 <!ENTITY calendar.day.button.label              "Ngày" >
 <!ENTITY calendar.week.button.label             "Tuần" >
 <!ENTITY calendar.month.button.label            "Tháng" >
-<!ENTITY calendar.multiweek.button.label        "Nhiều Tuần" >
+<!ENTITY calendar.multiweek.button.label        "Nhiều tuần" >
 <!ENTITY calendar.onlyworkday.checkbox.label    "Chỉ hiện các ngày làm việc" >
 <!ENTITY calendar.onlyworkday.checkbox.accesskey  "l" >
-<!ENTITY calendar.displaytodos.checkbox.label   "Tác vụ trong Trang lịch" >
+<!ENTITY calendar.displaytodos.checkbox.label   "Tác vụ trong chế độ xem" >
 <!ENTITY calendar.displaytodos.checkbox.accesskey "v" >
-<!ENTITY calendar.completedtasks.checkbox.label     "Hiện các Tác vụ đã hoàn tất" >
+<!ENTITY calendar.completedtasks.checkbox.label     "Hiện các tác vụ đã hoàn tất" >
 <!ENTITY calendar.completedtasks.checkbox.accesskey "H" >
 
 <!ENTITY calendar.orientation.label "Xoay bố cục Trang lịch" >
@@ -114,15 +112,15 @@
 <!ENTITY calendar.task.filter.all.accesskey         "T">
 <!ENTITY calendar.task.filter.today.label           "Hôm nay">
 <!ENTITY calendar.task.filter.today.accesskey       "H">
-<!ENTITY calendar.task.filter.next7days.label       "Bảy Ngày Tới">
+<!ENTITY calendar.task.filter.next7days.label       "Bảy ngày tới">
 <!ENTITY calendar.task.filter.next7days.accesskey   "B">
-<!ENTITY calendar.task.filter.notstarted.label      "Tác vụ Chưa bắt đầu">
+<!ENTITY calendar.task.filter.notstarted.label      "Tác vụ chưa bắt đầu">
 <!ENTITY calendar.task.filter.notstarted.accesskey  "a">
-<!ENTITY calendar.task.filter.overdue.label         "Tác vụ Quá hạn">
+<!ENTITY calendar.task.filter.overdue.label         "Tác vụ quá hạn">
 <!ENTITY calendar.task.filter.overdue.accesskey     "Q">
-<!ENTITY calendar.task.filter.completed.label       "Tác vụ Đã hoàn tất">
+<!ENTITY calendar.task.filter.completed.label       "Tác vụ đã hoàn tất">
 <!ENTITY calendar.task.filter.completed.accesskey   "o">
-<!ENTITY calendar.task.filter.open.label            "Tác vụ Chưa hoàn tất">
+<!ENTITY calendar.task.filter.open.label            "Tác vụ chưa hoàn tất">
 <!ENTITY calendar.task.filter.open.accesskey        "v">
 
 <!-- LOCALIZATION NOTE(calendar.task.filter.current.label)
@@ -157,15 +155,15 @@
 <!-- Context Menu -->
 <!ENTITY calendar.context.modifyorviewitem.label      "Mở">
 <!ENTITY calendar.context.modifyorviewitem.accesskey  "M">
-<!ENTITY calendar.context.modifyorviewtask.label      "Mở Tác Vụ…">
+<!ENTITY calendar.context.modifyorviewtask.label      "Mở tác vụ…">
 <!ENTITY calendar.context.modifyorviewtask.accesskey  "M">
-<!ENTITY calendar.context.newevent.label              "Sự kiện Mới…">
+<!ENTITY calendar.context.newevent.label              "Sự kiện mới…">
 <!ENTITY calendar.context.newevent.accesskey          "S">
-<!ENTITY calendar.context.newtodo.label               "Tác vụ Mới…">
+<!ENTITY calendar.context.newtodo.label               "Tác vụ mới…">
 <!ENTITY calendar.context.newtodo.accesskey           "v">
-<!ENTITY calendar.context.deletetask.label            "Xóa Tác Vụ">
+<!ENTITY calendar.context.deletetask.label            "Xóa tác vụ">
 <!ENTITY calendar.context.deletetask.accesskey        "X">
-<!ENTITY calendar.context.deleteevent.label           "Xóa Sự Kiện">
+<!ENTITY calendar.context.deleteevent.label           "Xóa sự kiện">
 <!ENTITY calendar.context.deleteevent.accesskey       "a">
 <!ENTITY calendar.context.cutevent.label              "Cắt">
 <!ENTITY calendar.context.cutevent.accesskey          "t">
@@ -173,10 +171,10 @@
 <!ENTITY calendar.context.copyevent.accesskey         "C">
 <!ENTITY calendar.context.pasteevent.label            "Dán">
 <!ENTITY calendar.context.pasteevent.accesskey        "D">
-<!ENTITY calendar.context.button.label                "Bảng Ngày Hôm Nay">
+<!ENTITY calendar.context.button.label                "Bảng hôm nay">
 <!ENTITY calendar.context.button.accesskey            "B">
 
-<!ENTITY calendar.context.attendance.menu.label                 "Tham dá»±">
+<!ENTITY calendar.context.attendance.menu.label                 "NgÆ°Æ¡Ì€i tham dÆ°Ì£">
 <!ENTITY calendar.context.attendance.menu.accesskey             "d">
 <!ENTITY calendar.context.attendance.occurrence.label           "Lần xuất hiện này">
 <!ENTITY calendar.context.attendance.all2.label                 "Tất cả các chuỗi sự kiện">
@@ -220,12 +218,12 @@
 <!ENTITY calendar.context.progress.accesskey          "i">
 <!ENTITY calendar.context.priority.label              "Ưu tiên">
 <!ENTITY calendar.context.priority.accesskey          "u">
-<!ENTITY calendar.context.postpone.label              "Hoãn nhiệm vụ">
+<!ENTITY calendar.context.postpone.label              "Hoãn tác vụ">
 <!ENTITY calendar.context.postpone.accesskey          "s">
 
 <!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
 
-<!ENTITY calendar.context.markcompleted.label     "Đánh dấu Đã hoàn tất">
+<!ENTITY calendar.context.markcompleted.label     "Đánh dấu là đã hoàn tất">
 <!ENTITY calendar.context.markcompleted.accesskey "o">
 
 <!ENTITY progress.level.0             "Xong 0&percnt;">
@@ -264,9 +262,9 @@
 <!ENTITY calendar.taskview.delete.label     "Xóa">
 
 <!-- Server Context Menu -->
-<!ENTITY calendar.context.newserver.label              "Lịch Mới…">
+<!ENTITY calendar.context.newserver.label              "Lịch mới…">
 <!ENTITY calendar.context.newserver.accesskey          "L">
-<!ENTITY calendar.context.findcalendar.label           "Tìm Lịch…" >
+<!ENTITY calendar.context.findcalendar.label           "Tìm lịch…" >
 <!ENTITY calendar.context.findcalendar.accesskey       "T" >
 <!ENTITY calendar.context.deleteserver2.label          "Xóa lịch…">
 <!ENTITY calendar.context.deleteserver2.accesskey      "D">
@@ -281,7 +279,7 @@
 <!ENTITY calendar.context.unsubscribeserver.accesskey  "U">
 <!ENTITY calendar.context.synccalendars.label          "Đồng bộ hóa lịch">
 <!ENTITY calendar.context.synccalendars.accesskey      "S">
-<!ENTITY calendar.context.publish.label                "Xuất bản Lịch…">
+<!ENTITY calendar.context.publish.label                "Xuất bản lịch…">
 <!ENTITY calendar.context.publish.accesskey            "b">
 <!ENTITY calendar.context.export.label                 "Xuất lịch…">
 <!ENTITY calendar.context.export.accesskey             "X">
@@ -302,7 +300,7 @@
 <!ENTITY calendar.context.showall.label                "Hiển thị tất cả các lịch">
 <!ENTITY calendar.context.showall.accesskey            "A">
 
-<!ENTITY calendar.context.convertmenu.label              "Chuyển đổi Thành">
+<!ENTITY calendar.context.convertmenu.label              "Chuyển đổi thành">
 <!ENTITY calendar.context.convertmenu.accesskey.mail     "n">
 <!ENTITY calendar.context.convertmenu.accesskey.calendar "h">
 <!ENTITY calendar.context.convertmenu.event.label        "Sự kiện…">
@@ -315,10 +313,10 @@
 <!ENTITY calendar.tasks.view.minimonth.label           "Tháng Mini">
 <!ENTITY calendar.tasks.view.minimonth.accesskey       "M">
 
-<!ENTITY calendar.tasks.view.calendarlist.label        "Danh sách Lịch">
+<!ENTITY calendar.tasks.view.calendarlist.label        "Danh sách lịch">
 <!ENTITY calendar.tasks.view.calendarlist.accesskey    "L">
 
-<!ENTITY calendar.tasks.view.filtertasks.label           "Lọc các Tác vụ">
+<!ENTITY calendar.tasks.view.filtertasks.label           "Lọc tác vụ">
 <!ENTITY calendar.tasks.view.filtertasks.accesskey       "L">
 
 <!-- Calendar Alarm Dialog -->
@@ -326,20 +324,20 @@
 <!ENTITY calendar.alarm.location.label              "Địa chỉ:" >
 <!ENTITY calendar.alarm.details.label               "Chi tiết…" >
 
-<!ENTITY calendar.alarm.snoozefor.label             "Tạm im trong" >
-<!ENTITY calendar.alarm.snoozeallfor.label          "Tạm im Tất cả trong" >
-<!ENTITY calendar.alarm.title.label                 "Chuông báo Lịch" >
+<!ENTITY calendar.alarm.snoozefor.label             "Tạm im lặng trong" >
+<!ENTITY calendar.alarm.snoozeallfor.label          "Tạm im lặng tất cả trong" >
+<!ENTITY calendar.alarm.title.label                 "Nhắc nhở lịch" >
 <!ENTITY calendar.alarm.dismiss.label               "Bỏ qua" >
 <!ENTITY calendar.alarm.dismissall.label            "Bỏ qua tất cả" >
 
 <!ENTITY calendar.alarm.snooze.5minutes.label       "5 Phút" >
-<!ENTITY calendar.alarm.snooze.10minutes.label      "10 Phút" >
-<!ENTITY calendar.alarm.snooze.15minutes.label      "15 Phút" >
-<!ENTITY calendar.alarm.snooze.30minutes.label      "30 Phút" >
-<!ENTITY calendar.alarm.snooze.45minutes.label      "45 Phút" >
-<!ENTITY calendar.alarm.snooze.1hour.label          "1 Tiếng" >
-<!ENTITY calendar.alarm.snooze.2hours.label         "2 Tiếng" >
-<!ENTITY calendar.alarm.snooze.1day.label           "1 Ngày" >
+<!ENTITY calendar.alarm.snooze.10minutes.label      "10 phút" >
+<!ENTITY calendar.alarm.snooze.15minutes.label      "15 phút" >
+<!ENTITY calendar.alarm.snooze.30minutes.label      "30 phút" >
+<!ENTITY calendar.alarm.snooze.45minutes.label      "45 phút" >
+<!ENTITY calendar.alarm.snooze.1hour.label          "1 tiếng" >
+<!ENTITY calendar.alarm.snooze.2hours.label         "2 tiếng" >
+<!ENTITY calendar.alarm.snooze.1day.label           "1 ngày" >
 
 <!-- LOCALIZATION NOTE (calendar.alarm.snooze.cancel)
      This string is not seen in the UI, it is read by screen readers when the
@@ -348,52 +346,50 @@
 <!ENTITY calendar.alarm.snooze.cancel               "Hủy báo lại">
 
 <!-- Calendar Server Dialog -->
-<!ENTITY calendar.server.dialog.title.edit          "Chỉnh sửa Lịch">
-<!ENTITY calendar.server.dialog.name.label          "Tên Lịch:">
+<!ENTITY calendar.server.dialog.title.edit          "Chỉnh sửa lịch">
+<!ENTITY calendar.server.dialog.name.label          "Tên lịch:">
 
 <!-- Calendar Properties -->
 <!ENTITY calendarproperties.color.label                    "Màu sắc:">
 <!ENTITY calendarproperties.webdav.label                   "iCalendar (ICS)">
 <!ENTITY calendarproperties.caldav.label                   "CalDAV">
-<!ENTITY calendarproperties.wcap.label                     "Máy chủ Lịch Hệ thống Sun Java (WCAP)">
 <!ENTITY calendarproperties.format.label                   "Định dạng:">
 <!ENTITY calendarproperties.location.label                 "Địa chỉ:">
 <!ENTITY calendarproperties.refreshInterval.label          "Làm mới lịch:">
 <!ENTITY calendarproperties.refreshInterval.manual.label   "Thủ công">
 <!ENTITY calendarproperties.name.label                     "Tên:">
-<!ENTITY calendarproperties.readonly.label                 "Chỉ Đọc">
-<!ENTITY calendarproperties.firealarms.label               "Hiện các Chuông báo">
+<!ENTITY calendarproperties.readonly.label                 "Chỉ đọc">
+<!ENTITY calendarproperties.firealarms.label               "Hiển thị lời nhắc">
 <!ENTITY calendarproperties.cache3.label                   "Hỗ trợ ngoại tuyến">
-<!ENTITY calendarproperties.enabled.label                  "Kích hoạt bộ lịch này">
 <!ENTITY calendarproperties.enabled2.label                 "Kích hoạt lịch này">
 <!ENTITY calendarproperties.forceDisabled.label            "Không thể tìm thấy nhà cung cấp bộ lịch này. Điều này thường xảy ra khi bạn vô hiệu hóa hoặc gỡ bỏ tiện ích nào đó.">
 <!ENTITY calendarproperties.unsubscribe.label              "Dừng theo dõi">
 <!ENTITY calendarproperties.unsubscribe.accesskey          "D">
 
 <!-- Calendar Publish Dialog -->
-<!ENTITY calendar.publish.dialog.title              "Xuất bản Lịch">
-<!ENTITY calendar.publish.url.label                 "Địa chỉ Xuất bản:">
+<!ENTITY calendar.publish.dialog.title              "Xuất bản lịch">
+<!ENTITY calendar.publish.url.label                 "URL xuất bản:">
 <!ENTITY calendar.publish.publish.button      "Xuất bản">
 <!ENTITY calendar.publish.close.button      "Đóng">
 
-<!ENTITY calendar.publish.example.url.description   "Ví dụ như http://www.tênmáychủ.com/webdav/test.ics">
+<!ENTITY calendar.publish.example.url.description   "Một cái gì đó như http://www.myserver.com/webdav/test.ics">
 
 <!-- Select Calendar Dialog -->
-<!ENTITY calendar.select.dialog.title    "Chọn Lịch">
+<!ENTITY calendar.select.dialog.title    "Chọn lịch">
 
 <!-- Calendar Printing -->
-<!ENTITY calendar.print.window.title "In Lịch">
+<!ENTITY calendar.print.window.title "In lịch">
 <!ENTITY calendar.print.title.label "Tiêu đề:">
 <!ENTITY calendar.print.layout.label "Bố cục:">
-<!ENTITY calendar.print.range.label "Thông tin để In ra">
-<!ENTITY calendar.print.currentView2.label "Phần đang hiển thị">
+<!ENTITY calendar.print.range.label "Những gì để in">
+<!ENTITY calendar.print.currentView2.label "Chế độ xem hiện tại">
 <!ENTITY calendar.print.selectedEventsAndTasks.label "Tác vụ/sự kiện đã chọn">
 <!ENTITY calendar.print.tasks.label "Tác vụ">
 <!ENTITY calendar.print.events.label "Sự kiện">
 <!ENTITY calendar.print.custom.label "Khoảng ngày tùy biến:">
 <!ENTITY calendar.print.from.label "Từ:">
 <!ENTITY calendar.print.to.label "Tá»›i:">
-<!ENTITY calendar.print.settingsGroup.label "Thiết lập In">
+<!ENTITY calendar.print.settingsGroup.label "Cài đặt in">
 <!ENTITY calendar.print.optionsGroup.label "Tùy chọn">
 <!ENTITY calendar.print.taskswithnoduedate.label "Tác vụ không có ngày đến hạn">
 <!ENTITY calendar.print.completedtasks.label "Tác vụ đã hoàn tất">
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.properties b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.properties
index bfa117e6f1253b286aae3c832890675dc5ddcde2..8927f177f7185de1b4e085b1ac8f91bfb8ac4d53 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.properties
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/calendar.properties
@@ -6,21 +6,21 @@
 
 # LOCALIZATION NOTE (PrintPreviewWindowTitle):
 #    %1$S will be replaced with the title of a html frame
-PrintPreviewWindowTitle=Xem trước Bản in của %1$S
+PrintPreviewWindowTitle=Bản xem trước của %1$S
 Untitled=Trống
 
 # Default name for new events
-newEvent=Sự kiện Mới
+newEvent=Sự kiện mới
 
 # Titles for the event/task dialog
-newEventDialog=Sự kiện Mới
-editEventDialog=Chỉnh sửa Sự kiện
-newTaskDialog=Tác vụ Mới
-editTaskDialog=Chỉnh sửa Tác vụ
+newEventDialog=Sự kiện mới
+editEventDialog=Chỉnh sửa sự kiện
+newTaskDialog=Tác vụ mới
+editTaskDialog=Chỉnh sửa tác vụ
 
 # Do you want to save changes?
-askSaveTitleEvent=Lưu Sự Kiện
-askSaveTitleTask=Lưu Tác Vụ
+askSaveTitleEvent=Lưu sự kiện
+askSaveTitleTask=Lưu tác vụ
 askSaveMessageEvent=Sự kiện chưa được lưu. Bạn có muốn lưu sự kiện không?
 askSaveMessageTask=Tác vụ chưa được lưu. Bạn có muốn lưu tác vụ không?
 
@@ -32,7 +32,7 @@ warningUntilDateBeforeStart=Ngày kết thúc đã đến trước ngày bắt 
 homeCalendarName=Chính
 
 # The name given to a calendar if an opened calendar has an empty filename
-untitledCalendarName=Lịch Tạm
+untitledCalendarName=Lịch không có tiêu đề
 
 # Event status: Tentative, Confirmed, Cancelled
 # ToDo task status: NeedsAction, InProcess, Completed, Cancelled
@@ -114,7 +114,7 @@ eventDescription=Mô tả:
 
 unableToRead=Không thể đọc từ tập tin: 
 unableToWrite=Không thể ghi vào tập tin: 
-defaultFileName=MozillaLich
+defaultFileName=MozillaCalEvents
 HTMLTitle=Mozilla Lịch
 
 # LOCALIZATION NOTE (timezoneError):
@@ -131,7 +131,7 @@ unableToCreateProvider=Một lỗi đã xảy ra khi đang chuẩn bị dùng b
 
 # Sample: Unknown timezone "USPacific" in "Dentist Appt".  Using the 'floating' local timezone instead: 2008/02/28 14:00:00
 unknownTimezoneInItem=Không biết múi giờ "%1$S" trong "%2$S".  Sẽ coi như là múi giờ địa phương 'trôi nổi': %3$S
-TimezoneErrorsAlertTitle=Lỗi Múi Giờ
+TimezoneErrorsAlertTitle=Lỗi múi giờ
 TimezoneErrorsSeeConsole=Hãy xem Bảng kiểm soát Lỗi: Các múi giờ không được biết tới sẽ được coi như là múi giờ địa phương 'trôi nổi'.
 
 # The following strings are for the prompt to delete/unsubscribe from the calendar
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/dialogs/calendar-event-dialog-reminder.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/dialogs/calendar-event-dialog-reminder.dtd
index 115f4bb7ac76de88315631caf75f88008e21a219..abb3b187db3858862314713148e330842ba3a3c0 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/dialogs/calendar-event-dialog-reminder.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -2,20 +2,17 @@
    - 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/. -->
 
-<!ENTITY reminderdialog.title                              "Thiết lập Nhắc việc">
+<!ENTITY reminderdialog.title                              "Thiết lập lời nhắc">
 <!ENTITY reminder.add.label                                "Thêm">
 <!ENTITY reminder.add.accesskey                            "T">
 <!ENTITY reminder.remove.label                             "Xóa">
 <!ENTITY reminder.remove.accesskey                         "X">
 
-<!ENTITY reminder.reminderDetails.label                    "Chi tiết Nhắc việc">
-<!ENTITY reminder.action.label                             "Chọn một Thao tác Nhắc việc">
+<!ENTITY reminder.reminderDetails.label                    "Chi tiết lời nhắc">
+<!ENTITY reminder.action.label                             "Chọn một hành động lời nhắc">
 
-<!ENTITY reminder.relation.before.label                    "trÆ°á»›c" >
-<!ENTITY reminder.relation.after.label                     "sau" >
-
-<!ENTITY reminder.action.alert.label                       "Hiện một Cảnh báo">
-<!ENTITY reminder.action.email.label                       "Gá»­i má»™t Email">
+<!ENTITY reminder.action.alert.label                       "Hiển thị một cảnh báo">
+<!ENTITY reminder.action.email.label                       "Gá»­i má»™t e-mail">
 
 <!ENTITY alarm.units.minutes                               "phút" >
 <!ENTITY alarm.units.hours                                 "giờ" >
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/global.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/global.dtd
index 29ffa16813b90ef78cdbde75a1c61117b5d25c75..3bf26aa0d4bad82efb51807a28c7860d08db28d1 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/global.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/global.dtd
@@ -2,53 +2,24 @@
    - 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/. -->
 
-<!ENTITY time.midnight "Nửa đêm" >
-<!ENTITY time.noon "TrÆ°a" >
-
-<!-- Day Names -->
-<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
-     only used in Preferences > Views > Workweek groupbox -->
-<!ENTITY day.1.Ddd "ChN" >
-<!ENTITY day.1.Ddd.accesskey "C">
-<!ENTITY day.2.Ddd "Th2" >
-<!ENTITY day.2.Ddd.accesskey "2">
-<!ENTITY day.3.Ddd "Th3" >
-<!ENTITY day.3.Ddd.accesskey "3">
-<!ENTITY day.4.Ddd "Th4" >
-<!ENTITY day.4.Ddd.accesskey "4">
-<!ENTITY day.5.Ddd "Th5" >
-<!ENTITY day.5.Ddd.accesskey "5">
-<!ENTITY day.6.Ddd "Th6" >
-<!ENTITY day.6.Ddd.accesskey "6">
-<!ENTITY day.7.Ddd "Th7" >
-<!ENTITY day.7.Ddd.accesskey "7">
-
-<!ENTITY day.1.name "Chủ nhật" >
-<!ENTITY day.2.name "Thứ Hai" >
-<!ENTITY day.3.name "Thứ Ba" >
-<!ENTITY day.4.name "Thứ Tư" >
-<!ENTITY day.5.name "Thứ Năm" >
-<!ENTITY day.6.name "Thứ Sáu" >
-<!ENTITY day.7.name "Thứ Bảy" >
-
-<!ENTITY month.1.name "Tháng Một" >
-<!ENTITY month.2.name "Tháng Hai" >
-<!ENTITY month.3.name "Tháng Ba" >
-<!ENTITY month.4.name "Tháng Tư" >
-<!ENTITY month.5.name "Tháng Năm" >
-<!ENTITY month.6.name "Tháng Sáu" >
-<!ENTITY month.7.name "Tháng Bảy" >
-<!ENTITY month.8.name "Tháng Tám" >
-<!ENTITY month.9.name "Tháng Chín" >
-<!ENTITY month.10.name "Tháng Mười" >
-<!ENTITY month.11.name "Tháng Mười Một" >
-<!ENTITY month.12.name "Tháng Mười Hai" >
+<!ENTITY month.1.name "Tháng một" >
+<!ENTITY month.2.name "Tháng hai" >
+<!ENTITY month.3.name "Tháng ba" >
+<!ENTITY month.4.name "Tháng tư" >
+<!ENTITY month.5.name "Tháng năm" >
+<!ENTITY month.6.name "Tháng sáu" >
+<!ENTITY month.7.name "Tháng bảy" >
+<!ENTITY month.8.name "Tháng tám" >
+<!ENTITY month.9.name "Tháng chín" >
+<!ENTITY month.10.name "Tháng mười" >
+<!ENTITY month.11.name "Tháng mười một" >
+<!ENTITY month.12.name "Tháng mười hai" >
 
 <!ENTITY onemonthbackward.tooltip "Lùi một tháng" >
-<!ENTITY onemonthforward.tooltip "Tiến Một Tháng" >
+<!ENTITY onemonthforward.tooltip "Tiến một tháng" >
 <!ENTITY oneyearbackward.tooltip "Một năm trước" >
 <!ENTITY oneyearforward.tooltip "Một năm tiếp" >
-<!ENTITY showToday.tooltip "Nhảy tới Hôm nay">
-<!ENTITY onedayforward.tooltip "Tiến Một Ngày">
+<!ENTITY showToday.tooltip "Đi đến hôm nay">
+<!ENTITY onedayforward.tooltip "Tiến một ngày">
 <!ENTITY onedaybackward.tooltip "Lùi một ngày">
 <!ENTITY showselectedday.tooltip "Hiện các sự kiện của ngày đã chọn">
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/menuOverlay.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/menuOverlay.dtd
index dd31743b9170c169f426883fece1c10271cd5f25..fde1132b0f8b4d216627594e573fb3d2214bc2a2 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/menuOverlay.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/calendar/menuOverlay.dtd
@@ -3,7 +3,7 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!-- Event Menu -->
-<!ENTITY event.new.event                        "Sự kiện Mới…">
+<!ENTITY event.new.event                        "Sự kiện mới…">
 <!ENTITY event.new.event.accesskey              "S">
 
 <!ENTITY event.new.task                         "Nhiệm vụ mới…">
@@ -18,7 +18,7 @@
 <!ENTITY calendar.publish.label                 "Xuất bản…">
 <!ENTITY calendar.publish.accesskey             "b">
 
-<!ENTITY calendar.deletecalendar.label          "Xóa Lịch Đã Chọn…">
+<!ENTITY calendar.deletecalendar.label          "Xóa lịch đã chọn…">
 <!ENTITY calendar.deletecalendar.accesskey      "X">
 <!ENTITY calendar.unsubscribecalendar.label     "Hủy đăng ký lịch đã chọn…">
 <!ENTITY calendar.unsubscribecalendar.accesskey "U">
@@ -33,18 +33,18 @@
 <!ENTITY calendar.menu.customize.label          "Tùy biến…">
 <!ENTITY calendar.menu.customize.accesskey      "T">
 
-<!ENTITY showUnifinderCmd.label                 "Tìm Sự Kiện">
+<!ENTITY showUnifinderCmd.label                 "Tìm sự kiện">
 <!ENTITY showUnifinderCmd.accesskey             "m">
 <!ENTITY showUnifinderCmd.tooltip               "Chuyển đến khung tìm sự kiện">
 
-<!ENTITY calendar.displaytodos.checkbox.label       "Hiện các Tác vụ trong Lịch">
+<!ENTITY calendar.displaytodos.checkbox.label       "Hiển thị tác vụ trong lịch">
 <!ENTITY calendar.displaytodos.checkbox.accesskey   "v">
 
 <!ENTITY goTodayCmd.label                       "Hôm nay">
 <!ENTITY goTodayCmd.accesskey                   "H">
 
-<!ENTITY showCurrentView.label                  "Hiển thị Hiện tại">
+<!ENTITY showCurrentView.label                  "Chế độ xem hiện tại">
 <!ENTITY showCurrentView.accesskey              "H">
 
-<!ENTITY calendar.properties.label              "Thuộc tính Lịch…">
+<!ENTITY calendar.properties.label              "Thuộc tính lịch…">
 <!ENTITY calendar.properties.accesskey          "c">
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/css.properties b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/css.properties
index 33979aeef12c51e5b204856207b01f955de1727a..f6115ba1c0216943701164631d466b11101ed9d0 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/css.properties
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/css.properties
@@ -10,13 +10,13 @@ PEDeclSkipped=Nhảy sang khai báo kế tiếp.
 PEUnknownProperty=Không rõ thuộc tính '%1$S'.
 PEValueParsingError=Lỗi trong khi phân tích giá trị cho '%1$S'.
 PEUnknownAtRule=Không nhận dạng at-rule hoặc lỗi phân tích at-rule '%1$S'.
-PEMQUnexpectedOperator=Toán tử không mong muốn trong media list.
-PEMQUnexpectedToken=Token không mong muốn ‘%1$S’ trong media list.
-PEAtNSUnexpected=Dấu thừa bên trong @namespace: '%1$S'.
+PEMQUnexpectedOperator=Toán tử lỗi trong danh sách phương tiện.
+PEMQUnexpectedToken=Token lỗi ‘%1$S’ trong danh sách phương tiện.
+PEAtNSUnexpected=Token lá»—i trong @namespace: '%1$S'.
 PEKeyframeBadName=Cần định danh cho tên của quy tắc @keyframes.
 PEBadSelectorRSIgnored=Bộ quy tắc bị bỏ qua do bộ chọn tồi.
-PEBadSelectorKeyframeRuleIgnored=Quy tắc keyframe bị bỏ qua do selector tồi.
-PESelectorGroupNoSelector=Cần bộ chọn.
+PEBadSelectorKeyframeRuleIgnored=Quy tắc Keyframe đã bị bỏ qua do selector không hợp lệ.
+PESelectorGroupNoSelector=Cần selector.
 PESelectorGroupExtraCombinator=Kết hợp Dangling
 PEClassSelNotIdent=Cần định danh cho lớp selector nhưng lại thấy '%1$S'.
 PETypeSelNotType=Cần tên thành phần hoặc '*' nhưng lại thấy '%1$S'.
@@ -31,16 +31,16 @@ PEPseudoSelEndOrUserActionPC=Yêu cầu kết thúc bộ chọn hoặc hành đ
 PEPseudoSelUnknown=Không rõ pseudo-class hoặc pseudo-element '%1$S'.
 PENegationBadArg=Thiếu tham số trong negation pseudo-class '%1$S'.
 PEPseudoClassArgNotIdent=Cần định danh cho tham số pseudo-class nhưng lại thấy '%1$S'.
-PEColorNotColor=Cần màu nhưng lại thấy '%1$S'.
-PEParseDeclarationDeclExpected=Cần khai báo nhưng lại thấy '%1$S'.
-PEUnknownFontDesc=Kí hiệu '%1$S' chưa biết trong luật @font-face.
+PEColorNotColor=Cần color nhưng lại thấy '%1$S'.
+PEParseDeclarationDeclExpected=Cần declaration nhưng lại thấy '%1$S'.
+PEUnknownFontDesc=Không rõ descriptor '%1$S' trong quy tắc @font-face.
 PEMQExpectedFeatureName=Yêu cầu tên chức năng đa phương tiện nhưng lại thấy '%1$S'.
 PEMQNoMinMaxWithoutValue=Tính năng đa phương tiện với min- hoặc max- phải có một giá trị.
-PEMQExpectedFeatureValue=Tìm thấy giá trị bất hợp lệ đối với tính năng đa phương tiện.
+PEMQExpectedFeatureValue=Đã tìm thấy giá trị không hợp lệ đối với tính năng đa phương tiện.
 PEExpectedNoneOrURL=Yêu cầu ‘none’ hoặc URL nhưng lại thấy ‘%1$S’.
 PEExpectedNoneOrURLOrFilterFunction=Yêu cầu ‘none’, URL, hoặc hàm bộ lọc nhưng lại thấy ‘%1$S’.
+PEDisallowedImportRule=Quy tắc @import hiện chưa hợp lệ trong stylesheets được xây dựng.
 
-PEDisallowedImportRule=Quy tắc @import chưa có hiệu lực trong stylesheets được xây dựng.
 
 TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
 TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/layout/htmlparser.properties b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/layout/htmlparser.properties
index bed5254b7f7dfdb8034dfa2c1a84b296cddcc29b..0878754c0448c0a04926e312ba2b9ad0fd71e216 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=Cuối tập tin bên trong định danh hệ thống.
 errExpectedSystemId=Thay vì một system identifier (định dang hệ thống) thì doctype lại kết thúc.
 errMissingSpaceBeforeDoctypeName=Thiếu khoảng trắng trước tên doctype.
 errHyphenHyphenBang=“- - ! ” xuất hiện trong ghi chú.
+errNestedComment=Đã thấy “<!--” trong một bình luận. Nguyên nhân có thể xảy ra: Nhận xét lồng nhau (không được phép).
 errNcrZero=Character reference (tham chiếu ký tự) biến đổi số 0.
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Không có khoảng trắng giữa từ khóa doctype "SYSTEM" và dấu nháy.
 errNoSpaceBetweenPublicAndSystemIds=Không có khoảng trắng giữa doctype public và system identifier (định dang hệ thống).
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=Tồn tại phần tử chưa được đóng
 errEndTagDidNotMatchCurrentOpenElement=Thẻ mở đầu “%1$S” không khớp với tên của phần tử đang mở (“%2$S”).
 errEndTagViolatesNestingRules=Thẻ kết thúc "%1$S" vi phạm luật lồng nhau.
 errEndWithUnclosedElements=Phát hiện thẻ kết thúc “%1$S” nhưng vẫn còn phần tử đang mở.
+errListUnclosedStartTags=Phần tử hoặc các phần tử không được đóng hết.
diff --git a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/textcontext.dtd b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/textcontext.dtd
index edd4fbc0b4e4c2859d39230d3e49f582727bb5d0..d5fded260e5dd62ed5b65c3115dc9b1b1bb411fa 100644
--- a/thunderbird-l10n/vi/chrome/vi/locale/vi/global/textcontext.dtd
+++ b/thunderbird-l10n/vi/chrome/vi/locale/vi/global/textcontext.dtd
@@ -4,7 +4,7 @@
 
 <!ENTITY spellAddToDictionary.label "Thêm vào từ điển">
 <!ENTITY spellAddToDictionary.accesskey "v">
-<!ENTITY spellUndoAddToDictionary.label "Hoàn tác việc thêm vào từ điển">
+<!ENTITY spellUndoAddToDictionary.label "Hoàn tác thêm vào từ điển">
 <!ENTITY spellUndoAddToDictionary.accesskey "n">
 <!ENTITY spellCheckToggle.label "Kiểm tra chính tả">
 <!ENTITY spellCheckToggle.accesskey "K">
diff --git a/thunderbird-l10n/vi/localization/vi/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/vi/localization/vi/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..bba109f556893d0105e65ae4382d7ccb828402cd
--- /dev/null
+++ b/thunderbird-l10n/vi/localization/vi/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,29 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+       *[other] Xóa sự kiện
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+       *[other] Bạn có thực sự muốn xóa { $count } sự kiện này không?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+       *[other] Xóa tác vụ
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+       *[other] Bạn có thực sự muốn xóa { $count } tác vụ này không?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+       *[other] Xóa mục
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+       *[other] Bạn có thực sự muốn xóa { $count } mục này không?
+    }
+calendar-delete-prompt-disable-message = Đừng hỏi lại tôi nữa.
diff --git a/thunderbird-l10n/vi/localization/vi/calendar/calendar-ics-file-dialog.ftl b/thunderbird-l10n/vi/localization/vi/calendar/calendar-ics-file-dialog.ftl
index aa38a247478a41db880c67856fe4789c57a5587a..bda0954aa897e0553277f928a5cfed3cf408bcd6 100644
--- a/thunderbird-l10n/vi/localization/vi/calendar/calendar-ics-file-dialog.ftl
+++ b/thunderbird-l10n/vi/localization/vi/calendar/calendar-ics-file-dialog.ftl
@@ -3,9 +3,9 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 calendar-ics-file-window-2 =
-    .title = Nhập sự kiện và nhiệm vụ lịch
+    .title = Nhập sự kiện và tác vụ lịch
 calendar-ics-file-dialog-import-event-button-label = Nhập sự kiện
-calendar-ics-file-dialog-import-task-button-label = Nhập nhiệm vụ
+calendar-ics-file-dialog-import-task-button-label = Nhập tác vụ
 calendar-ics-file-dialog-2 =
     .buttonlabelaccept = Nhập tất cả
 calendar-ics-file-accept-button-ok-label = OK
@@ -40,4 +40,4 @@ calendar-ics-file-import-errors =
     { $errorsCount ->
        *[other] Không nhập được { $errorsCount } mục. Kiểm tra bảng điều khiển lỗi để biết chi tiết.
     }
-calendar-ics-file-dialog-no-calendars = Không có lịch có thể nhập các sự kiện hoặc nhiệm vụ.
+calendar-ics-file-dialog-no-calendars = Không có lịch có thể nhập các sự kiện hoặc tác vụ.
diff --git a/thunderbird-l10n/vi/localization/vi/calendar/category-dialog.ftl b/thunderbird-l10n/vi/localization/vi/calendar/category-dialog.ftl
index 10cb1a0afa5149956ff6a1284a689212c4bef465..298a327ad83819b0f9928aec7e378e6f00d7cd8b 100644
--- a/thunderbird-l10n/vi/localization/vi/calendar/category-dialog.ftl
+++ b/thunderbird-l10n/vi/localization/vi/calendar/category-dialog.ftl
@@ -4,4 +4,4 @@
 
 category-name-label = Tên
 category-color-label =
-    .label = Dùng Màu
+    .label = Sử dụng màu
diff --git a/thunderbird-l10n/vi/localization/vi/calendar/preferences.ftl b/thunderbird-l10n/vi/localization/vi/calendar/preferences.ftl
index ad8c24a3176375ac5051ccc68a285e4541ff58f4..79b60731a266116b5d653a0c201fc6affa0a244a 100644
--- a/thunderbird-l10n/vi/localization/vi/calendar/preferences.ftl
+++ b/thunderbird-l10n/vi/localization/vi/calendar/preferences.ftl
@@ -23,17 +23,17 @@ weekstart-label =
 day-1-name =
     .label = Chủ nhật
 day-2-name =
-    .label = Thứ Hai
+    .label = Thứ hai
 day-3-name =
-    .label = Thứ Ba
+    .label = Thứ ba
 day-4-name =
-    .label = Thứ Tư
+    .label = Thứ tư
 day-5-name =
-    .label = Thứ Năm
+    .label = Thứ năm
 day-6-name =
-    .label = Thứ Sáu
+    .label = Thứ sáu
 day-7-name =
-    .label = Thứ Bảy
+    .label = Thứ bảy
 show-weeknumber-label =
     .label = Hiển thị số tuần trong lượt xem và tháng nhỏ
     .accesskey = n
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = Chỉnh sửa các sự kiện và tác vụ trong một thẻ thay vì trong cửa sổ hộp thoại.
     .accesskey = t
+prompt-delete-label =
+    .label = Nhắc trước khi xóa các sự kiện và tác vụ.
+    .accesskey = V
 accessibility-legend = Trợ năng
 accessibility-colors-label =
     .label = Tối ưu hóa màu sắc cho khả năng tiếp cận
@@ -182,7 +185,7 @@ task-alarm-time-label =
     .accesskey = o
 calendar-notifications-customize-label = Thông báo có thể được tùy chỉnh cho từng lịch trong cửa sổ thuộc tính của lịch.
 category-new-label = Phân mục mới
-category-edit-label = Chỉnh sửa Phân mục
+category-edit-label = Chỉnh sửa phân mục
 category-overwrite-title = Cảnh báo: Trùng tên
 category-overwrite = Đã tồn tại một phân mục có tên đó. Bạn có muốn ghi đè nó không?
 category-blank-warning = Bạn phải nhập một tên phân mục.
diff --git a/thunderbird-l10n/vi/localization/vi/devtools/client/tooltips.ftl b/thunderbird-l10n/vi/localization/vi/devtools/client/tooltips.ftl
index 5d464a7a20af699c0a915a1cdd55d50398904db4..71f4363f3378a940d312abe1c8cb7d9668b41e3e 100644
--- a/thunderbird-l10n/vi/localization/vi/devtools/client/tooltips.ftl
+++ b/thunderbird-l10n/vi/localization/vi/devtools/client/tooltips.ftl
@@ -15,39 +15,21 @@ learn-more = <span data-l10n-name="link">Tìm hiểu thêm</span>
 ##   $display (string) - A CSS display value e.g. "inline-block".
 
 inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex hay ngăn chứa lưới.
-
 inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex, ngăn chứa lưới hoặc ngăn chứa nhiều cột.
-
 inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là một mục lưới hoặc flex.
-
 inactive-css-not-grid-item = <strong>{ $property }</strong> không có tác dụng đối với thành phần này vì nó không phải là một mục lưới.
-
 inactive-css-not-grid-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa lưới.
-
 inactive-css-not-flex-item = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là một mục flex.
-
 inactive-css-not-flex-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex.
-
 inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là phần tử nội tuyến hoặc ô bảng.
-
 inactive-css-property-because-of-display = <strong>{ $property }</strong> không ảnh hưởng đến yếu tố này vì nó có hiển thị của <strong>{ $display }</strong>.
-
 inactive-css-not-display-block-on-floated = Giá trị <strong>display</strong> đã được thay đổi bởi máy thành <strong>block</strong> vì phần tử là <strong>floated</strong>.
-
 inactive-css-property-is-impossible-to-override-in-visited = Nó không thể ghi đè <strong>{ $property }</strong> do hạn chế <strong>:visited</strong>.
-
 inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là phần tử được định vị.
-
 inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì <strong>overflow:hidden</strong> không được đặt.
-
-inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì <strong>outline-style</strong> của nó là <strong>auto</strong> hoặc <strong>none</strong>.
-
 inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> không ảnh hưởng đến các phần tử nội bộ của bảng.
-
 inactive-css-not-for-internal-table-elements-except-table-cells = <strong>{ $property }</strong> không có ảnh hưởng đến các phần tử bên trong bảng ngoại trừ các ô trong bảng.
-
 inactive-css-not-table = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì nó không phải là một bảng.
-
 inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì nó không cuộn.
 
 ## In the Rule View when a CSS property cannot be successfully applied we display
@@ -55,39 +37,22 @@ inactive-scroll-padding-when-not-scroll-container = <strong>{ $property }</stron
 ## the problem can be solved.
 
 inactive-css-not-grid-or-flex-container-fix = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:flex</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Hãy thử thêm <strong>display:grid</strong>, <strong>display:flex</strong> hoặc <strong>columns:2</strong>. { learn-more }
-
 inactive-css-not-grid-or-flex-item-fix-2 = Hãy thử thêm <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, hoặc <strong>display:inline-flex</strong>. { learn-more }
-
+inactive-css-not-grid-or-flex-item-fix-3 = Hãy thử thêm <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, hoặc <strong>display:inline-flex</strong> vào parent của phần tử. { learn-more }
 inactive-css-not-grid-item-fix-2 = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:inline-grid</strong> vào phần tử mẹ. { learn-more }
-
 inactive-css-not-grid-container-fix = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:inline-grid</strong>. { learn-more }
-
 inactive-css-not-flex-item-fix-2 = Hãy thử thêm <strong>display:flex</strong> hoặc <strong>display:inline-flex</strong> vào phần tử mẹ. { learn-more }
-
 inactive-css-not-flex-container-fix = Hãy thử thêm <strong>display:flex</strong> hoặc <strong>display:inline-flex</strong>. { learn-more }
-
 inactive-css-not-inline-or-tablecell-fix = Hãy thử thêm <strong>display:inline</strong> hoặc <strong>display:table-cell</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Hãy thử thêm <strong>display:inline-block</strong> hoặc <strong>display:block</strong>. { learn-more }
-
 inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Hãy thử thêm <strong>display:inline-block</strong>. { learn-more }
-
 inactive-css-not-display-block-on-floated-fix = Hãy thử xóa <strong>float</strong> hoặc thêm <strong>display:block</strong>. { learn-more }
-
 inactive-css-position-property-on-unpositioned-box-fix = Hãy thử đặt thuộc tính <strong>position</strong> của nó thành một thứ khác ngoài <strong>static</strong>. { learn-more }
-
 inactive-text-overflow-when-no-overflow-fix = Hãy thử thêm <strong>overflow:hidden</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-fix = Hãy thử đặt thuộc tính <strong>display</strong> của nó thành thứ khác ngoài <strong>table-cell</strong>, <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, hoặc <strong>table-footer-group</strong>. { learn-more }
-
 inactive-css-not-for-internal-table-elements-except-table-cells-fix = Hãy thử đặt thuộc tính <strong>display</strong> của nó thành thứ khác ngoài <strong>table-column</strong>, <strong>table-row</strong>, <strong>table-column-group</strong>, <strong>table-row-group</strong>, hoặc <strong>table-footer-group</strong>. { learn-more }
-
-inactive-outline-radius-when-outline-style-auto-or-none-fix = Thử thay đổi thuộc tính <strong>outline-style</strong> của nó thành một thứ khác ngoài <strong>auto</strong> hoặc <strong>none</strong>. { learn-more }
-
 inactive-css-not-table-fix = Hãy thử thêm <strong>display:table</strong> hoặc <strong>display:inline-table</strong>. { learn-more }
-
 inactive-scroll-padding-when-not-scroll-container-fix = Hãy thử thêm <strong>overflow:auto</strong>, <strong>overflow:scroll</strong>, hoặc <strong>overflow:hidden</strong>. { learn-more }
 
 ## In the Rule View when a CSS property may have compatibility issues with other browsers
@@ -98,17 +63,10 @@ inactive-scroll-padding-when-not-scroll-container-fix = Hãy thử thêm <strong
 ##   $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
 
 css-compatibility-default-message = <strong>{ $property }</strong> không được hỗ trợ trong các trình duyệt sau:
-
 css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm hiện không được hỗ trợ bởi các tiêu chuẩn W3C. Nó không được hỗ trợ trong các trình duyệt sau:
-
 css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm hiện không được hỗ trợ bởi các tiêu chuẩn W3C.
-
 css-compatibility-deprecated-message = <strong>{ $property }</strong> hiện không được hỗ trợ bởi các tiêu chuẩn W3C. Nó không được hỗ trợ trong các trình duyệt sau:
-
 css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> hiện không được hỗ trợ bởi các tiêu chuẩn W3C.
-
 css-compatibility-experimental-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm. Nó không được hỗ trợ trong các trình duyệt sau:
-
 css-compatibility-experimental-supported-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm.
-
 css-compatibility-learn-more-message = <span data-l10n-name="link">Tìm hiểu thêm</span> về <strong>{ $rootProperty }</strong>
diff --git a/thunderbird-l10n/vi/localization/vi/toolkit/about/aboutConfig.ftl b/thunderbird-l10n/vi/localization/vi/toolkit/about/aboutConfig.ftl
index 9c838d50b1eb99ed3a0d1ed9ba481828fff1f485..c7a7f9d4f8c613b9f622833a8dbf9253b3ba5382 100644
--- a/thunderbird-l10n/vi/localization/vi/toolkit/about/aboutConfig.ftl
+++ b/thunderbird-l10n/vi/localization/vi/toolkit/about/aboutConfig.ftl
@@ -15,14 +15,11 @@ config-about-warning-button =
     .label = Tôi chấp nhận rủi ro!
 config-about-warning-checkbox =
     .label = Hiện cảnh báo này vào lần sau
-
 config-search-prefs =
     .value = Tìm kiếm:
     .accesskey = r
-
 config-focus-search =
     .key = r
-
 config-focus-search-2 =
     .key = f
 
@@ -50,60 +47,45 @@ config-copy-pref =
     .key = C
     .label = Chép
     .accesskey = C
-
 config-copy-name =
     .label = Sao chép tên
     .accesskey = N
-
 config-copy-value =
     .label = Sao chép giá trị
     .accesskey = V
-
 config-modify =
     .label = Sửa đổi
     .accesskey = M
-
 config-toggle =
     .label = Bật-Tắt
     .accesskey = T
-
 config-reset =
     .label = Đặt về mặc định
     .accesskey = R
-
 config-new =
     .label = Má»›i
     .accesskey = w
-
 config-string =
     .label = Chuỗi kí tự
     .accesskey = S
-
 config-integer =
     .label = Số nguyên
     .accesskey = I
-
 config-boolean =
-    .label = Luận lí
+    .label = Logic
     .accesskey = B
-
 config-default = mặc định
 config-modified = đã sửa
 config-locked = bị khóa
-
 config-property-string = chuỗi kí tự
 config-property-int = số nguyên
-config-property-bool = luận lí
-
+config-property-bool = logic
 config-new-prompt = Nhập tên tùy chọn
-
 config-nan-title = Giá trị không hợp lệ
 config-nan-text = Văn bản bạn điền vào không phải là số.
-
 # Variables:
 #   $type (String): type of value (boolean, integer or string)
 config-new-title = Giá trị mới { $type }
-
 # Variables:
 #   $type (String): type of value (boolean, integer or string)
 config-modify-title = Nhập giá trị { $type }
diff --git a/thunderbird-l10n/vi/localization/vi/toolkit/about/config.ftl b/thunderbird-l10n/vi/localization/vi/toolkit/about/config.ftl
index e655acf6da252bc8651fbaa3cf58a733aa8b022f..81f7db4ab5f51b95cb850b711df3bab9b3af2b6c 100644
--- a/thunderbird-l10n/vi/localization/vi/toolkit/about/config.ftl
+++ b/thunderbird-l10n/vi/localization/vi/toolkit/about/config.ftl
@@ -14,15 +14,11 @@ about-config-intro-warning-button = Chấp nhận rủi ro và tiếp tục
 
 # This is shown on the page before searching but after the warning is accepted.
 about-config-caution-text = Thay đổi các tùy chọn này có thể ảnh hưởng đến hiệu suất hoặc bảo mật { -brand-short-name }.
-
 about-config-page-title = Tùy chọn nâng cao
-
 about-config-search-input1 =
-    .placeholder = Tìm kiếm tên tùy chọn
+    .placeholder = Tìm kiếm tên tùy chỉnh
 about-config-show-all = Hiển thị tất cả
-
 about-config-show-only-modified = Chỉ hiển thị các tùy chọn đã sửa đổi
-
 about-config-pref-add-button =
     .title = Thêm
 about-config-pref-toggle-button =
@@ -38,7 +34,7 @@ about-config-pref-delete-button =
 
 ## Labels for the type selection radio buttons shown when adding preferences.
 
-about-config-pref-add-type-boolean = Luận lí
+about-config-pref-add-type-boolean = Logic
 about-config-pref-add-type-number = Số
 about-config-pref-add-type-string = Chuá»—i
 
diff --git a/thunderbird-l10n/vi/localization/vi/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/vi/localization/vi/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..1d9d12fcf677eeccfb42ffe55c1122d48bab0636
--- /dev/null
+++ b/thunderbird-l10n/vi/localization/vi/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Hoàn tất cài đặt { -brand-short-name }?
+prompt-to-install-message = Hoàn tất cài đặt một bước này để giúp luôn cập nhật { -brand-short-name } và tránh mất dữ liệu. { -brand-short-name } sẽ được thêm vào thư mục Ứng dụng và thanh Dock của bạn.
+prompt-to-install-yes-button = Cài đặt
+prompt-to-install-no-button = Không cài đặt
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = Cài đặt { -brand-short-name } không thành công.
+install-failed-message = Không thể cài đặt { -brand-short-name } nhưng sẽ tiếp tục chạy.
diff --git a/thunderbird-l10n/vi/localization/vi/toolkit/global/textActions.ftl b/thunderbird-l10n/vi/localization/vi/toolkit/global/textActions.ftl
index 50dd7e33d00d50e1b16784c46002119bee233243..deadc9a6c36e1a5c61e892237f39dffb6b7759f3 100644
--- a/thunderbird-l10n/vi/localization/vi/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/vi/localization/vi/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = Hoàn tác
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = Làm lại
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = Cắt
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = Sao chép
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = Dán
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = Xóa
     .accesskey = D
-
 text-action-select-all =
     .label = Chọn tất cả
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = Không có gợi ý sửa chính tả
+text-action-spell-add-to-dictionary =
+    .label = Thêm vào từ điển
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = Hoàn tác thêm vào từ điển
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = Kiểm tra chính tả
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = Thêm từ điển…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = Ngôn ngữ
+    .accesskey = L
diff --git a/thunderbird-l10n/vi/manifest.json b/thunderbird-l10n/vi/manifest.json
index 89addfdb2349e437045eaf5a55a8299d514bc5c7..215923d8c3e599857c67e8f979c0b47ef19a53af 100644
--- a/thunderbird-l10n/vi/manifest.json
+++ b/thunderbird-l10n/vi/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Tiếng Việt Language Pack",
   "description": "Language pack for Thunderbird for vi",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "vi": {
-      "version": "20210816085614",
+      "version": "20210831143512",
       "chrome_resources": {
         "alerts": "chrome/vi/locale/vi/alerts/",
         "autoconfig": "chrome/vi/locale/vi/autoconfig/",
diff --git a/thunderbird-l10n/zh-CN/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties b/thunderbird-l10n/zh-CN/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
index 330407e9813bce07d33adeae1ca2b7b0990d0fdd..7378dbb74fad7872099546a69a0f2cb3901b399e 100644
--- a/thunderbird-l10n/zh-CN/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/zh-CN/chrome/zh-CN/locale/zh-CN/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=在系统标识符中发现文件结束符。
 errExpectedSystemId=预期应有一个系统标识符,但 Doctype 已经结束了。
 errMissingSpaceBeforeDoctypeName=在 Doctype 名称前面少了一个空白。
 errHyphenHyphenBang=在注释当中发现了“--!”。
+errNestedComment=在注释中发现“<!--”。可能的原因:嵌套注释(不允许)。
 errNcrZero=引用了空字符。
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=在 Doctype 当中的“SYSTEM”关键词与引号中间没有空格。
 errNoSpaceBetweenPublicAndSystemIds=在 Doctype 当中的公用和系统标识符间没有空格。
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=堆叠中有未关闭的元素。
 errEndTagDidNotMatchCurrentOpenElement=结束标签“%1$S”并未符合目前已开启元素的名称(“%2$S”)。
 errEndTagViolatesNestingRules=结束标签“%1$S”违反嵌套规则。
 errEndWithUnclosedElements=看到了“%1$S”的结束标签,但还有元素未关闭。
+errListUnclosedStartTags=未闭合的元素。
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..3a0ceb04c42503ed04b0c405e6636d1e70c27e4a
--- /dev/null
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,32 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+       *[other] 删除事件
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+       *[one] 您确定要删除此事件吗?
+        [other] 您确定要删除这 { $count } 项事件吗?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+       *[other] 删除任务
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+       *[one] 您确定要删除此任务吗?
+        [other] 您确定要删除这 { $count } 项任务吗?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+       *[other] 删除项目
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+       *[one] 您确定要删除此项目吗?
+        [other] 您确定要删除这 { $count } 个项目吗?
+    }
+calendar-delete-prompt-disable-message = 不再询问。
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/preferences.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/preferences.ftl
index af7ed51103b0f48237e77e305b361123373b31bd..7769bbb2d852cb9f52aec05cb913f5095e524de8 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/preferences.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = 在标签页而非对话框窗口中编辑事件和任务。
     .accesskey = t
+prompt-delete-label =
+    .label = 删除事件和任务前提示。
+    .accesskey = V
 accessibility-legend = 可用性
 accessibility-colors-label =
     .label = 为无障碍使用优化颜色
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/accountcreation/accountSetup.ftl
index 8ff87753d79800561d285e4d5d3bde3815087a8f..a81b71f7d76f64f184019e106a8be9d642eba8c3 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = 账户设置
 ## Header
 
 account-setup-title = 设置现有的电子邮件地址
-
 account-setup-description =
     若要使用您现有的电子邮件地址,请填写您的凭据。<br/>
     { -brand-product-name } 将会自动查询可用并推荐使用的服务器配置。
-
 account-setup-secondary-description = { -brand-product-name } 将自动搜索可用的和推荐的服务器配置。
-
 account-setup-success-title = 成功创建账户!
-
 account-setup-success-description = 您可以在 { -brand-short-name } 使用此账户了。
-
 account-setup-success-secondary-description = 您可以连接相关服务并配置账户高级选项来提升使用体验。
 
 ## Form fields
 
 account-setup-name-label = 您的全名
     .accesskey = n
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = 李四
-
 account-setup-name-info-icon =
     .title = 你的名字,显示给其他人
-
-
 account-setup-name-warning-icon =
     .title = { account-setup-name-warning }
-
 account-setup-email-label = 电子邮件地址
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = john.doe@example.com
-
 account-setup-email-info-icon =
     .title = 您现有的电子邮件地址
-
 account-setup-email-warning-icon =
     .title = { account-setup-email-warning }
-
 account-setup-password-label = 密码
     .accesskey = P
     .title = 可选,仅用于验证用户名
-
 account-provisioner-button = 注册新的电子邮件地址…
     .accesskey = G
-
 account-setup-password-toggle =
     .title = 显示/隐藏密码
-
+account-setup-password-toggle-show =
+    .title = 以明文形式显示密码
+account-setup-password-toggle-hide =
+    .title = 隐藏密码
 account-setup-remember-password = 记住密码
     .accesskey = m
-
 account-setup-exchange-label = 您的登录信息
     .accesskey = l
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = 您的域﹨您的用户名
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = 域登录
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = 取消
     .accesskey = a
-
 account-setup-button-manual-config = 手动配置
     .accesskey = m
-
 account-setup-button-stop = 停止
     .accesskey = S
-
 account-setup-button-retest = 重新测试
     .accesskey = t
-
 account-setup-button-continue = 继续
     .accesskey = C
-
 account-setup-button-done = 完成
     .accesskey = D
 
 ## Notifications
 
 account-setup-looking-up-settings = 正在查询配置…
-
 account-setup-looking-up-settings-guess = 正在查询配置:正在尝试常用的服务器名称…
-
 account-setup-looking-up-settings-half-manual = 正在查询配置:正在探测服务器…
-
 account-setup-looking-up-disk = 正在查询配置:{ -brand-short-name } 安装…
-
 account-setup-looking-up-isp = 正在查询配置:电子邮件服务商...
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = 正在查询配置:Mozilla ISP 数据库…
-
 account-setup-looking-up-mx = 正在查询配置:收件域名…
-
 account-setup-looking-up-exchange = 正在查询配置:Exchange 服务器…
-
 account-setup-checking-password = 正在验证密码…
-
 account-setup-installing-addon = 正在下载安装附加组件…
-
 account-setup-success-half-manual = 探测指定服务器找到下列配置:
-
 account-setup-success-guess = 尝试常用服务器名称找到配置。
-
 account-setup-success-guess-offline = 您已离线。我们已推测一些设置,但您需要输入正确的设置。
-
 account-setup-success-password = 密码正确
-
 account-setup-success-addon = 已成功安装附加组件
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = 从 Mozilla ISP 数据库中找到配置。
-
 account-setup-success-settings-disk = 在 { -brand-short-name } 安装找到配置。
-
 account-setup-success-settings-isp = 从电子邮件服务商找到配置。
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = 找到 Microsoft Exchange 服务器的配置。
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = 找到 Microsoft Exchange 服务器的
 
 account-setup-step1-image =
     .title = 初始设置
-
 account-setup-step2-image =
     .title = 正在加载…
-
 account-setup-step3-image =
     .title = 找到配置
-
 account-setup-step4-image =
     .title = 连接错误
-
 account-setup-step5-image =
     .title = 已创建账户
-
 account-setup-privacy-footnote2 = 您的登录凭据只会存储在您的计算机本地。
-
 account-setup-selection-help = 不确定要怎么选?
-
 account-setup-selection-error = 需要帮助?
-
 account-setup-success-help = 不确定接下来做什么吗?
-
 account-setup-documentation-help = 设置文档
-
 account-setup-forum-help = 支持论坛
-
 account-setup-privacy-help = 隐私政策
-
 account-setup-getting-started = 开始使用
 
 ## Results area
@@ -176,41 +125,25 @@ account-setup-results-area-title =
     { $count ->
        *[other] 可用配置
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = 与您的服务器同步各文件夹与邮件
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = 将您服务器上的各文件夹与邮件下载到本地
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = 使用 Microsoft Exchange 服务器或 Office365 云服务
-
 account-setup-incoming-title = 收件
-
 account-setup-outgoing-title = 发件
-
 account-setup-username-title = 用户名
-
 account-setup-exchange-title = 服务器
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = 未加密
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = 使用已有的发件 SMTP 服务器
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -220,81 +153,54 @@ account-setup-result-username-different = 收件:{ $incoming },发件:{ $o
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = 验证失败。可能是您输入的凭据不正确,或需要使用单独的用户名登录。此用户名通常是 Windows 的域登录用户名,可以包含也可以不包含域(如:janedoe 或 AD\\janedoe)。
-
 account-setup-credentials-wrong = 验证失败。请检查用户名和密码
-
 account-setup-find-settings-failed = { -brand-short-name } 未能找到你的邮件账户设置
-
 account-setup-exchange-config-unverifiable = 无法验证配置。如果您的用户名和密码确认无误,则可能是服务器管理员已禁用了您为账户所选的配置。请尝试选择其他协议。
 
 ## Manual configuration area
 
 account-setup-manual-config-title = 服务器设置
-
 account-setup-incoming-server-legend = 收件服务器
-
 account-setup-protocol-label = 协议:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = 主机名:
-
 account-setup-port-label = 端口:
     .title = 端口设为 0,则为自动检测
-
 account-setup-auto-description = { -brand-short-name } 将尝试自动检测留白的字段。
-
 account-setup-ssl-label = 连接安全性:
-
 account-setup-outgoing-server-legend = 发件服务器
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = 自动检测
-
 ssl-no-authentication-option = 无须验证
-
 ssl-cleartext-password-option = 普通密码
-
 ssl-encrypted-password-option = 加密过的密码
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = æ— 
-
 account-setup-auth-label = 验证方式:
-
 account-setup-username-label = 用户名:
-
 account-setup-advanced-setup-button = 高级配置
     .accesskey = A
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = 警告!
-
 account-setup-insecure-incoming-title = 收件设置:
-
 account-setup-insecure-outgoing-title = 发件设置:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> 未加密连接。
-
 account-setup-warning-cleartext-details = 不安全的邮件服务器不使用加密连接以保护您的密码及个人信息。连接到这样的邮件服务器有可能会泄露您的密码和个人信息。
-
 account-setup-insecure-server-checkbox = 我已了解相关风险。
     .accesskey = u
-
 account-setup-insecure-description = { -brand-short-name } 可以让您通过使用提供的配置信息来收取邮件。但是,对于这些不正确的连接,您应该联系您的管理员或者电子邮件提供商,更详细的信息请参见 <a data-l10n-name="thunderbird-faq-link">Thunderbird 常见问题解答</a>。
-
 insecure-dialog-cancel-button = 更改设置
     .accesskey = S
-
 insecure-dialog-confirm-button = 确认
     .accesskey = C
 
@@ -303,51 +209,45 @@ insecure-dialog-confirm-button = 确认
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } 在 { $domain } 上找到了您的账户设置信息,您要继续并提交凭据吗?
-
 exchange-dialog-confirm-button = 登录
-
 exchange-dialog-cancel-button = 取消
 
+## Dismiss account creation dialog
+
+exit-dialog-title = 未配置电子邮件账户
+exit-dialog-description = 您确定要取消设置过程吗?无电子邮件账户仍可使用 { -brand-short-name },但会缺少许多功能。
+account-setup-no-account-checkbox = 无电子邮件账户使用 { -brand-short-name }
+    .accesskey = U
+exit-dialog-cancel-button = 继续设置
+    .accesskey = C
+exit-dialog-confirm-button = 退出设置
+    .accesskey = E
+
 ## Alert dialogs
 
 account-setup-creation-error-title = 创建账户时发生错误
-
 account-setup-error-server-exists = 收件服务器已存在。
-
 account-setup-confirm-advanced-title = 确认高级配置
-
 account-setup-confirm-advanced-description = 此对话框将关闭,即使配置不正确,也会使用当前设置来创建账户。您确定要继续吗?
 
 ## Addon installation section
 
 account-setup-addon-install-title = 安装
-
 account-setup-addon-install-intro = 安装第三方附加组件后,可让您访问此服务器上的邮件账户:
-
 account-setup-addon-no-protocol = 此邮件服务器不支持开放式协议。{ account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = 账户设置
-
 account-setup-encryption-button = 端到端加密
-
 account-setup-signature-button = 添加签名
-
 account-setup-dictionaries-button = 下载字典
-
 account-setup-address-book-carddav-button = 连接 CardDAV 通讯录
-
 account-setup-address-book-ldap-button = 连接 LDAP 通讯录
-
 account-setup-calendar-button = 连接远程日历
-
 account-setup-linked-services-title = 绑定您的在线服务
-
 account-setup-linked-services-description = { -brand-short-name } 检测到您的邮件账户可连接其他服务。
-
 account-setup-no-linked-description = 设置其他服务,体验 { -brand-short-name } 的更多功能。
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -355,7 +255,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name } 检测到有一份通讯录与您的邮件账户连接。
        *[other] { -brand-short-name } 检测到有 { $count } 份通讯录与您的邮件账户连接。
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -363,62 +262,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } 检测到有一份日历与您的邮件账户连接。
        *[other] { -brand-short-name } 检测到有 { $count } 份日历与您的邮件账户连接。
     }
-
 account-setup-button-finish = 完成
     .accesskey = F
-
 account-setup-looking-up-address-books = 正在查找通讯录…
-
 account-setup-looking-up-calendars = 正在查找日历…
-
 account-setup-address-books-button = 通讯录
-
 account-setup-calendars-button = 日历
-
 account-setup-connect-link = 连接
-
 account-setup-existing-address-book = 已连接
     .title = 已连接该通讯录
-
 account-setup-existing-calendar = 已连接
     .title = 已连接该日历
-
 account-setup-connect-all-calendars = 连接所有日历
-
 account-setup-connect-all-address-books = 连接所有通讯录
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = 连接日历
-
 calendar-dialog-cancel-button = 取消
     .accesskey = C
-
 calendar-dialog-confirm-button = 连接
     .accesskey = n
-
 account-setup-calendar-name-label = 名称
-
 account-setup-calendar-name-input =
     .placeholder = 我的日历
-
 account-setup-calendar-color-label = 颜色
-
 account-setup-calendar-refresh-label = 刷新
-
 account-setup-calendar-refresh-manual = 手动
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] 每分钟
        *[other] 每 { $count } 分钟
     }
-
 account-setup-calendar-read-only = 只读
     .accesskey = R
-
 account-setup-calendar-show-reminders = 显示提醒
     .accesskey = S
-
 account-setup-calendar-offline-support = 离线支持
     .accesskey = O
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/addressbook/aboutAddressBook.ftl
index c4fbbeb86ec0c9923cbeeb30e5291ee4d329f3cf..0d83c5d3032b2322a769f4256e0f941605721b2f 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = 所有通讯录
-
 about-addressbook-books-context-properties =
     .label = 属性
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = 删除
 about-addressbook-books-context-remove =
     .label = 移除
-
 about-addressbook-confirm-delete-book-title = 删除通讯录
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = 搜索 { $name }
 about-addressbook-search-all =
     .placeholder = 搜索所有通讯录
-
 about-addressbook-sort-button =
     .title = 更改列表顺序
-
 about-addressbook-name-format-display =
     .label = 显示名称
 about-addressbook-name-format-firstlast =
     .label = 名前姓后
 about-addressbook-name-format-lastfirst =
     .label = 姓前名后
-
 about-addressbook-sort-name-ascending =
     .label = 按名称排序(A > Z)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = 按电子邮件地址排序(A > Z)
 about-addressbook-sort-email-descending =
     .label = 按电子邮件地址排序(Z > A)
-
+about-addressbook-cards-context-write =
+    .label = 写邮件
 about-addressbook-confirm-delete-mixed-title = 删除联系人和列表
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -122,7 +118,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = 编辑
 about-addressbook-cancel-edit-contact-button = 取消
 about-addressbook-save-edit-contact-button = 保存
-
 about-addressbook-details-email-addresses-header = 电子邮件地址
 about-addressbook-details-phone-numbers-header = 手机号码
 about-addressbook-details-home-address-header = 家庭地址
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/importDialog.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/importDialog.ftl
index 81419d33fc289ba5800061e5f816bf9682166f7a..6e8003b94270563479b07425c482c87b89796d20 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/importDialog.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = 从 Thunderbird 配置文件夹目录导入邮件。
-import-select-profile-dir-or-zip = 选择配置文件的目录,或其压缩文件所在目录
+import-from-thunderbird-zip =
+    .label = Thunderbird(导出的配置文件备份;小于 2GB 的 Zip 文件)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird(配置文件夹)
+    .accesskey = T
 import-select-profile-zip = 选择压缩过的配置文件目录
+import-select-profile-dir = 选择配置文件目录
+zip-file-too-big-title = Zip 文件太大
+zip-file-too-big-message = 所选的 Zip 文件大于 2GB。请先解压缩,然后从解压缩的文件夹中导入。
+wizardpage-failed =
+    .label = 导入失败
+wizardpage-failed-message = 导入意外失败,错误控制台中可能提供有更多信息。
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/messengercompose/messengercompose.ftl
index cb03db078293ccd90ce26952a66cbcc09419e7b9..218d89035a4e570980e72ec6ac728dba2dec93bb 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/messenger/messengercompose/messengercompose.ftl
@@ -63,6 +63,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = 添加附件…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = 添加附件…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = 文件…
     .accesskey = F
@@ -150,12 +154,73 @@ bcc-compose-show-address-row-label =
     .tooltiptext = 显示“{ bcc-compose-address-row-label.value }”栏({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = “收件人(To)”与“抄送(Cc)”共有 { $count } 位,他们可以看到彼此的邮箱地址。您可以改用“密送”来避免泄露收件人信息。
+to-address-row-label =
+    .value = 收件人
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = 收件人栏
+    .accesskey = T
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = 收件人
+    .accesskey = T
+#   $key (String) - the shortcut key for this field
+show-to-row-button = 收件人
+    .title = 显示收件人栏({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = 抄送
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = 抄送栏
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = 抄送
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = 抄送
+    .title = 显示抄送栏({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = 密送
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = 密送栏
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = 密送
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = 密送
+    .title = 显示密送栏({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = 显示其他收件人相关栏
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+       *[other] “收件人(To)”与“抄送(Cc)”共有 { $count } 位,他们可以看到彼此的邮箱地址。您可以改用“密送”来避免泄露收件人信息。
+    }
 many-public-recipients-bcc =
     .label = 改用密送
     .accesskey = U
 many-public-recipients-ignore =
     .label = 保持收件人公开
     .accesskey = K
+many-public-recipients-prompt-title = 太多公开收件人
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] 您的消息包含公开的收件人,可能会造成隐私顾虑。可以将它们改为“密件”以避免泄露收件人信息。
+       *[other] 您的消息中有 { $count } 位公开的收件人,他们都能看到彼此的邮箱,可能会造成隐私顾虑。可以将它们改为“密送”以避免泄露收件人信息。
+    }
+many-public-recipients-prompt-cancel = 取消发送
+many-public-recipients-prompt-send = 仍要发送
 
 ## Notifications
 
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..bfac7f7dbfb20d49d9f7decdf2405f72bf73ddc3
--- /dev/null
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = 要完成安装 { -brand-short-name } 吗?
+prompt-to-install-message = 只需一个步骤即可完成安装,让 { -brand-short-name } 时刻保持最新,并可避免数据丢失。将会把 { -brand-short-name } 添加到您的“应用程序”文件夹和程序坞中。
+prompt-to-install-yes-button = 安装
+prompt-to-install-no-button = 不安装
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } 安装失败。
+install-failed-message = { -brand-short-name } 安装失败,但会继续运行。
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/textActions.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/textActions.ftl
index 9d5f272c4bb028768020f706c2178a9eb96e9aa7..027fc14085e7869c2d1480a151f80af297d06e22 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = 撤销
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = 重做
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = 剪切
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = 复制
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = 粘贴
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = 删除
     .accesskey = D
-
 text-action-select-all =
     .label = 全选
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = 无拼写建议
+text-action-spell-add-to-dictionary =
+    .label = 添加到字典
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = 撤销添加到字典
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = 拼写检查
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = 添加字典…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = 语言
+    .accesskey = L
diff --git a/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/intl/languageNames.ftl b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/intl/languageNames.ftl
index 60816e1f57b4efe0b8c6fc3cf5b77e00cd27d1ad..b4cff66c7af1a92eb2badffc272c4b1686abb2f2 100644
--- a/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/intl/languageNames.ftl
+++ b/thunderbird-l10n/zh-CN/localization/zh-CN/toolkit/intl/languageNames.ftl
@@ -78,7 +78,7 @@ language-name-hy = 亚美尼亚语
 language-name-hz = 赫雷罗语
 language-name-ia = 国际语
 language-name-id = 印度尼西亚语
-language-name-ie = 国际语E
+language-name-ie = 国际语 E
 language-name-ig = 伊博语
 language-name-ii = 四川彝语
 language-name-ik = 伊努皮克语
diff --git a/thunderbird-l10n/zh-CN/manifest.json b/thunderbird-l10n/zh-CN/manifest.json
index ee3613cec122d855d05594b6dea44b090f49f71d..c0e6f58efed609f9fc9611efc5b45f23f867939e 100644
--- a/thunderbird-l10n/zh-CN/manifest.json
+++ b/thunderbird-l10n/zh-CN/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Chinese Simplified (zh-CN) Language Pack",
   "description": "Language pack for Thunderbird for zh-CN",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "zh-CN": {
-      "version": "20210814025412",
+      "version": "20210831141943",
       "chrome_resources": {
         "alerts": "chrome/zh-CN/locale/zh-CN/alerts/",
         "autoconfig": "chrome/zh-CN/locale/zh-CN/autoconfig/",
diff --git a/thunderbird-l10n/zh-TW/chrome/zh-TW/locale/zh-TW/global/layout/htmlparser.properties b/thunderbird-l10n/zh-TW/chrome/zh-TW/locale/zh-TW/global/layout/htmlparser.properties
index 71d92e5aba9db159d65ceb1beb3591fe7c7d3c93..a5e092704f4c0d4526f066a59b6f96ad2547415e 100644
--- a/thunderbird-l10n/zh-TW/chrome/zh-TW/locale/zh-TW/global/layout/htmlparser.properties
+++ b/thunderbird-l10n/zh-TW/chrome/zh-TW/locale/zh-TW/global/layout/htmlparser.properties
@@ -77,6 +77,7 @@ errEofInSystemId=在系統識別符當中發現檔案結束符號。
 errExpectedSystemId=預期應有一個系統識別符,但 Doctype 已經結束了。
 errMissingSpaceBeforeDoctypeName=在 Doctype 名稱前面少了一個空白。
 errHyphenHyphenBang=在註解當中發現了「--!」。
+errNestedComment=在註解中發現「<!--」。可能的原因: 巢狀註解(不允許)。
 errNcrZero=引用了空字符。
 errNoSpaceBetweenDoctypeSystemKeywordAndQuote=在 Doctype 當中的「SYSTEM」關鍵字與引號中間沒有空格。
 errNoSpaceBetweenPublicAndSystemIds=在 Doctype 當中的公用與系統識別符中間沒有空格。
@@ -132,3 +133,4 @@ errNoCheckUnclosedElementsOnStack=堆疊中有未關閉的元素。
 errEndTagDidNotMatchCurrentOpenElement=結束標籤「%1$S」並未符合目前已開啟元素的名稱(「%2$S」)。
 errEndTagViolatesNestingRules=結束標籤「%1$S」違反巢狀規則。
 errEndWithUnclosedElements=發現「%1$S」的結束標籤,但還有未關閉的元素。
+errListUnclosedStartTags=元素未結束。
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/calendar-delete-prompt.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..fe7890ec0ffd425a9212c40bb0e3a1338690cff7
--- /dev/null
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,32 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+    { $count ->
+       *[other] 刪除事件
+    }
+calendar-delete-event-prompt-message =
+    { $count ->
+       *[one] 您確定要刪除這場事件嗎?
+        [other] 您確定要刪除這 { $count } 場事件嗎?
+    }
+calendar-delete-task-prompt-title =
+    { $count ->
+       *[other] 刪除工作
+    }
+calendar-delete-task-prompt-message =
+    { $count ->
+       *[one] 您確定要刪除這個工作嗎?
+        [other] 您確定要刪除這 { $count } 個工作嗎?
+    }
+calendar-delete-item-prompt-title =
+    { $count ->
+       *[other] 刪除項目
+    }
+calendar-delete-item-prompt-message =
+    { $count ->
+       *[one] 您確定要刪除這個項目嗎?
+        [other] 您確定要刪除這 { $count } 個項目嗎?
+    }
+calendar-delete-prompt-disable-message = 不要再問我。
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/preferences.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/preferences.ftl
index 7913cde68a70e1ea92a233e6c8c4d12b112dce1b..de81b87b6476f4a80006cd70d769e08cf371d955 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/preferences.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/calendar/preferences.ftl
@@ -134,6 +134,9 @@ task-due-label =
 edit-intab-label =
     .label = 在分頁,而非對話窗中編輯事件與工作。
     .accesskey = t
+prompt-delete-label =
+    .label = 刪除事件與工作前提示。
+    .accesskey = V
 accessibility-legend = 輔助功能
 accessibility-colors-label =
     .label = 使用較具親和力的色彩
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/accountcreation/accountSetup.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/accountcreation/accountSetup.ftl
index 5e82e7004dbb40a3e6bdda1be11adeb815935a65..f90a3d9776eaee2611074c3063ed11839d43754f 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/accountcreation/accountSetup.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/accountcreation/accountSetup.ftl
@@ -7,67 +7,51 @@ account-setup-tab-title = 帳號設定
 ## Header
 
 account-setup-title = 設定現有的電子郵件地址
-
 account-setup-description =
     若要使用您目前的電子郵件地址,請填寫該帳號的登入資訊。<br/>
     { -brand-product-name } 將會自動尋找可用並建議使用的伺服器設定。
-
 account-setup-secondary-description = { -brand-product-name } 將自動搜尋建議使用的伺服器設定。
-
 account-setup-success-title = 成功建立帳號!
-
 account-setup-success-description = 您可以在 { -brand-short-name } 使用此帳號了。
-
 account-setup-success-secondary-description = 您可以連結相關服務並設定帳號進階選項來加強使用體驗。
 
 ## Form fields
 
 account-setup-name-label = 您的全名
     .accesskey = h
-
 # Note: "John Doe" is a multiple-use name that is used when the true name of a person is unknown. We use this fake name as an input placeholder. Translators should update this to reflect the placeholder name of their language/country.
 account-setup-name-input =
     .placeholder = 王小明
-
 account-setup-name-info-icon =
     .title = 您的名字,用於顯示在您的郵件上
-
-
 account-setup-name-warning-icon =
     .title = 請輸入您的大名
-
 account-setup-email-label = 電子郵件地址
     .accesskey = E
-
 account-setup-email-input =
     .placeholder = aming_wang@example.com.tw
-
 account-setup-email-info-icon =
     .title = 您目前的電子郵件地址
-
 account-setup-email-warning-icon =
     .title = 電子郵件地址無效
-
 account-setup-password-label = 密碼
     .accesskey = P
     .title = 非必填,只用來驗證使用者名稱是否正確
-
 account-provisioner-button = 註冊新的電子郵件地址
     .accesskey = G
-
 account-setup-password-toggle =
     .title = 顯示/隱藏密碼
-
+account-setup-password-toggle-show =
+    .title = 顯示密碼明碼
+account-setup-password-toggle-hide =
+    .title = 隱藏密碼
 account-setup-remember-password = 記住密碼
     .accesskey = m
-
 account-setup-exchange-label = 您的登入資訊
     .accesskey = l
-
 #   YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows.
 account-setup-exchange-input =
     .placeholder = YOURDOMAIN\yourusername
-
 #   Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network.
 account-setup-exchange-info-icon =
     .title = 登入網域
@@ -76,62 +60,39 @@ account-setup-exchange-info-icon =
 
 account-setup-button-cancel = 取消
     .accesskey = a
-
 account-setup-button-manual-config = 手動設定
     .accesskey = m
-
 account-setup-button-stop = 停止
     .accesskey = S
-
 account-setup-button-retest = 重新測試
     .accesskey = t
-
 account-setup-button-continue = 繼續
     .accesskey = C
-
 account-setup-button-done = 完成
     .accesskey = D
 
 ## Notifications
 
 account-setup-looking-up-settings = 正在尋找設定…
-
 account-setup-looking-up-settings-guess = 正在尋找設定: 嘗試使用常用的伺服器名稱…
-
 account-setup-looking-up-settings-half-manual = 正在尋找設定: 偵測伺服器…
-
 account-setup-looking-up-disk = 正在尋找設定: { -brand-short-name } 安裝…
-
 account-setup-looking-up-isp = 正在尋找設定: 電子郵件服務供應商…
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-looking-up-db = 正在尋找設定: Mozilla ISP 資料庫…
-
 account-setup-looking-up-mx = 正在尋找設定: 收件郵件網域…
-
 account-setup-looking-up-exchange = 正在尋找設定: Exchange 伺服器…
-
 account-setup-checking-password = 正在檢查密碼…
-
 account-setup-installing-addon = 正在下載安裝附加元件…
-
 account-setup-success-half-manual = 偵測指定的伺服器後,找到下列設定:
-
 account-setup-success-guess = 嘗試使用常用的伺服器名稱後,找到設定。
-
 account-setup-success-guess-offline = 您目前離線。我們猜了一下,但您還是需要輸入正確的設定。
-
 account-setup-success-password = 密碼正確
-
 account-setup-success-addon = 已成功安裝附加元件
-
 # Note: Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
 account-setup-success-settings-db = 從 Mozilla ISP 資料庫找到設定
-
 account-setup-success-settings-disk = 在 { -brand-short-name } 安裝找到設定。
-
 account-setup-success-settings-isp = 從電子郵件服務供應商找到設定。
-
 # Note: Microsoft Exchange is a product name.
 account-setup-success-settings-exchange = 找到 Microsoft Exchange 伺服器的設定。
 
@@ -139,33 +100,21 @@ account-setup-success-settings-exchange = 找到 Microsoft Exchange 伺服器的
 
 account-setup-step1-image =
     .title = 初始設定
-
 account-setup-step2-image =
     .title = 載入中…
-
 account-setup-step3-image =
     .title = 找到設定
-
 account-setup-step4-image =
     .title = 連線錯誤
-
 account-setup-step5-image =
     .title = 已建立帳號
-
 account-setup-privacy-footnote2 = 您的登入資訊只會儲存在您的本機電腦上。
-
 account-setup-selection-help = 不確定要怎麼選?
-
 account-setup-selection-error = 需要幫忙嗎?
-
 account-setup-success-help = 不確定接下來要做什麼嗎?
-
 account-setup-documentation-help = 設定文件
-
 account-setup-forum-help = 技術支援討論區
-
 account-setup-privacy-help = 隱私權保護政策
-
 account-setup-getting-started = 開始使用
 
 ## Results area
@@ -176,41 +125,25 @@ account-setup-results-area-title =
     { $count ->
        *[other] 可用設定
     }
-
 # Note: IMAP is the name of a protocol.
 account-setup-result-imap = IMAP
-
 account-setup-result-imap-description = 與您的伺服器同步信件匣與郵件
-
 # Note: POP3 is the name of a protocol.
 account-setup-result-pop = POP3
-
 account-setup-result-pop-description = 將您伺服器上的信件匣與郵件下載到電腦上
-
 # Note: Exchange is the name of a product.
 account-setup-result-exchange = Exchange
-
 # Note: Exchange, Office365 are the name of products.
 account-setup-result-exchange2-description = 使用 Microsoft Exchange 伺服器或 Office365 雲端服務
-
 account-setup-incoming-title = 收件
-
 account-setup-outgoing-title = 寄件
-
 account-setup-username-title = 使用者名稱
-
 account-setup-exchange-title = 伺服器
-
 account-setup-result-smtp = SMTP
-
 account-setup-result-no-encryption = 無加密
-
 account-setup-result-ssl = SSL/TLS
-
 account-setup-result-starttls = STARTTLS
-
 account-setup-result-outgoing-existing = 使用已存在的 SMTP 寄件伺服器
-
 # Variables:
 #  $incoming (String): The email/username used to log into the incoming server
 #  $outgoing (String): The email/username used to log into the outgoing server
@@ -220,81 +153,54 @@ account-setup-result-username-different = 收件: { $incoming },寄件: { $out
 
 # Note: The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
 account-setup-credentials-incomplete = 驗證失敗。可能是輸入的登入資訊不正確,或需要使用另一個使用者名稱來登入。這個使用者名稱通常會是您的 Windows 網域登入帳號,可能包含或不包含網域名稱(例如 aming_wang 或 AD\\aming_wang)
-
 account-setup-credentials-wrong = 驗證失敗,請檢查輸入的使用者名稱與密碼是否正確
-
 account-setup-find-settings-failed = { -brand-short-name } 找不到您適用的郵件帳號設定
-
 account-setup-exchange-config-unverifiable = 無法確認設定方式。若您確定已經輸入正確使用者名稱與密碼的話,可能是伺服器管理員針對您的帳號停用了選擇的設定方式,請試著改用另一種通訊協定。
 
 ## Manual configuration area
 
 account-setup-manual-config-title = 伺服器設定
-
 account-setup-incoming-server-legend = 收件伺服器
-
 account-setup-protocol-label = 通訊協定:
-
 protocol-imap-option = { account-setup-result-imap }
-
 protocol-pop-option = { account-setup-result-pop }
-
 protocol-exchange-option = { account-setup-result-exchange }
-
 account-setup-hostname-label = 主機名稱:
-
 account-setup-port-label = Port:
     .title = 輸入 0 即可進行自動偵測
-
 account-setup-auto-description = { -brand-short-name } 將嘗試自動偵測留白的欄位。
-
 account-setup-ssl-label = 連線安全性:
-
 account-setup-outgoing-server-legend = 寄件伺服器
 
 ## Incoming/Outgoing SSL Authentication options
 
 ssl-autodetect-option = 自動偵測
-
 ssl-no-authentication-option = 不認證
-
 ssl-cleartext-password-option = 普通密碼
-
 ssl-encrypted-password-option = 加密過的密碼
 
 ## Incoming/Outgoing SSL options
 
 ssl-noencryption-option = ç„¡
-
 account-setup-auth-label = 驗證方式:
-
 account-setup-username-label = 使用者名稱:
-
 account-setup-advanced-setup-button = 進階設定
     .accesskey = A
 
 ## Warning insecure server dialog
 
 account-setup-insecure-title = 警告!
-
 account-setup-insecure-incoming-title = 收件設定:
-
 account-setup-insecure-outgoing-title = 寄件設定:
-
 # Variables:
 #  $server (String): The name of the hostname of the server the user was trying to connect to.
 account-setup-warning-cleartext = <b>{ $server }</b> 未加密連線。
-
 account-setup-warning-cleartext-details = 不安全的郵件伺服器並不會透過加密連線來保護您的密碼和隱私資料。連線到這個伺服器很可能讓您的密碼以及隱私資料曝光。
-
 account-setup-insecure-server-checkbox = 我了解風險
     .accesskey = u
-
 account-setup-insecure-description = { -brand-short-name } 可讓您使用剛輸入的設定值來收信。但您仍應連絡系統管理員或電子郵件業者,確認是否有正確的連線參數可用。若需更多資訊,請參考 <a data-l10n-name="thunderbird-faq-link">Thunderbird 常見問題</a>。
-
 insecure-dialog-cancel-button = 變更設定
     .accesskey = S
-
 insecure-dialog-confirm-button = 確認
     .accesskey = C
 
@@ -303,51 +209,45 @@ insecure-dialog-confirm-button = 確認
 # Variables:
 #  $domain (String): The name of the server where the configuration was found, e.g. rackspace.com.
 exchange-dialog-question = { -brand-short-name } 找到您在 { $domain } 的帳號設定資訊。您想要繼續並送出登入資訊嗎?
-
 exchange-dialog-confirm-button = 登入
-
 exchange-dialog-cancel-button = 取消
 
+## Dismiss account creation dialog
+
+exit-dialog-title = 未設定電子郵件帳號
+exit-dialog-description = 您確定要取消設定過程嗎?不設定郵件帳號還是可以使用 { -brand-short-name },但無法提供許多功能。
+account-setup-no-account-checkbox = 不設定電子郵件帳號,繼續使用 { -brand-short-name }
+    .accesskey = U
+exit-dialog-cancel-button = 繼續設定
+    .accesskey = C
+exit-dialog-confirm-button = 結束設定
+    .accesskey = E
+
 ## Alert dialogs
 
 account-setup-creation-error-title = 建立帳號時發生錯誤
-
 account-setup-error-server-exists = 收件伺服器已存在。
-
 account-setup-confirm-advanced-title = 確認進階設定
-
 account-setup-confirm-advanced-description = 此對話框將關閉,就算設定內容不正確也會使用目前設定來建立帳號。您確定要繼續嗎?
 
 ## Addon installation section
 
 account-setup-addon-install-title = 安裝
-
 account-setup-addon-install-intro = 安裝第三方附加元件後,可讓您存取此伺服器上的郵件帳號:
-
 account-setup-addon-no-protocol = 此郵件伺服器不支援開放式通訊協定。{ account-setup-addon-install-intro }
 
 ## Success view
 
 account-setup-settings-button = 帳號設定
-
 account-setup-encryption-button = 端到端加密
-
 account-setup-signature-button = 加入簽章
-
 account-setup-dictionaries-button = 下載字典套件
-
 account-setup-address-book-carddav-button = 連結 CardDAV 通訊錄
-
 account-setup-address-book-ldap-button = 連結 LDAP 通訊錄
-
 account-setup-calendar-button = 連結遠端行事曆
-
 account-setup-linked-services-title = 連結您的線上服務
-
 account-setup-linked-services-description = { -brand-short-name } 偵測到您的郵件帳號可連結其他服務。
-
 account-setup-no-linked-description = 設定其他服務,讓您可充分使用 { -brand-short-name } 的相關功能。
-
 # Variables:
 # $count (Number) - The number of address books found during autoconfig.
 account-setup-found-address-books-description =
@@ -355,7 +255,6 @@ account-setup-found-address-books-description =
         [one] { -brand-short-name } 偵測到有一本通訊錄與您的電子郵件帳號連結。
        *[other] { -brand-short-name } 偵測到有 { $count } 本通訊錄與您的電子郵件帳號連結。
     }
-
 # Variables:
 # $count (Number) - The number of calendars found during autoconfig.
 account-setup-found-calendars-description =
@@ -363,62 +262,41 @@ account-setup-found-calendars-description =
         [one] { -brand-short-name } 偵測到有一份行事曆與您的電子郵件帳號連結。
        *[other] { -brand-short-name } 偵測到有 { $count } 份行事曆與您的電子郵件帳號連結。
     }
-
 account-setup-button-finish = 完成
     .accesskey = F
-
 account-setup-looking-up-address-books = 正在尋找通訊錄…
-
 account-setup-looking-up-calendars = 正在尋找行事曆…
-
 account-setup-address-books-button = 通訊錄
-
 account-setup-calendars-button = 行事曆
-
 account-setup-connect-link = 連結
-
 account-setup-existing-address-book = 已連結
     .title = 已經連結該通訊錄
-
 account-setup-existing-calendar = 已連結
     .title = 已經連結該行事曆
-
 account-setup-connect-all-calendars = 連結所有行事曆
-
 account-setup-connect-all-address-books = 連結所有通訊錄
 
 ## Calendar synchronization dialog
 
 calendar-dialog-title = 連結行事曆
-
 calendar-dialog-cancel-button = 取消
     .accesskey = C
-
 calendar-dialog-confirm-button = 連結
     .accesskey = n
-
 account-setup-calendar-name-label = 名稱
-
 account-setup-calendar-name-input =
     .placeholder = 我的行事曆
-
 account-setup-calendar-color-label = 色彩
-
 account-setup-calendar-refresh-label = 重新整理
-
 account-setup-calendar-refresh-manual = 手動
-
 account-setup-calendar-refresh-interval =
     { $count ->
         [one] 每分鐘
        *[other] 每 { $count } 分鐘
     }
-
 account-setup-calendar-read-only = 唯讀
     .accesskey = R
-
 account-setup-calendar-show-reminders = 顯示提醒
     .accesskey = S
-
 account-setup-calendar-offline-support = 離線支援
     .accesskey = O
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/addressbook/aboutAddressBook.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/addressbook/aboutAddressBook.ftl
index f18e61a1b1abf9c9aede1ff599cecb88b16d4cb7..523f91911912d20a271d4a1c60a87d70e306d9e7 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/addressbook/aboutAddressBook.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/addressbook/aboutAddressBook.ftl
@@ -20,7 +20,6 @@ about-addressbook-toolbar-new-list =
 ## Books
 
 all-address-books = 所有通訊錄
-
 about-addressbook-books-context-properties =
     .label = 屬性
 about-addressbook-books-context-synchronize =
@@ -31,7 +30,6 @@ about-addressbook-books-context-delete =
     .label = 刪除
 about-addressbook-books-context-remove =
     .label = 移除
-
 about-addressbook-confirm-delete-book-title = 刪除通訊錄
 # Variables:
 # $name (String) - Name of the address book to be deleted.
@@ -49,17 +47,14 @@ about-addressbook-search =
     .placeholder = 搜尋 { $name }
 about-addressbook-search-all =
     .placeholder = 搜尋所有通訊錄
-
 about-addressbook-sort-button =
     .title = 更改清單順序
-
 about-addressbook-name-format-display =
     .label = 顯示名稱
 about-addressbook-name-format-firstlast =
     .label = [名] [姓](英式)
 about-addressbook-name-format-lastfirst =
     .label = [姓][名](中式)
-
 about-addressbook-sort-name-ascending =
     .label = 依照名稱排序(升冪)
 about-addressbook-sort-name-descending =
@@ -68,7 +63,8 @@ about-addressbook-sort-email-ascending =
     .label = 依照電子郵件地址排序(升冪)
 about-addressbook-sort-email-descending =
     .label = 依照電子郵件地址排序(降冪)
-
+about-addressbook-cards-context-write =
+    .label = 寫信
 about-addressbook-confirm-delete-mixed-title = 刪除通訊錄與群組
 # Variables:
 # $count (Number) - The number of contacts and lists to be deleted. Always greater than 1.
@@ -122,7 +118,6 @@ about-addressbook-confirm-delete-contacts =
 about-addressbook-begin-edit-contact-button = 編輯
 about-addressbook-cancel-edit-contact-button = 取消
 about-addressbook-save-edit-contact-button = 儲存
-
 about-addressbook-details-email-addresses-header = 電子郵件地址
 about-addressbook-details-phone-numbers-header = 電話號碼
 about-addressbook-details-home-address-header = 住家地址
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/importDialog.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/importDialog.ftl
index 7e03c1b4047309c33bb72cf776abf80711509d0c..96797040ef4fa28fbee6cf7b78599b2f5b0a5886 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/importDialog.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/importDialog.ftl
@@ -6,5 +6,16 @@
 thunderbird-import-name = Thunderbird
 # Description of the import module
 thunderbird-import-description = 從 Thunderbird 設定檔目錄匯入郵件。
-import-select-profile-dir-or-zip = 選擇設定檔資料夾或 zip 壓縮過的設定檔資料夾
+import-from-thunderbird-zip =
+    .label = Thunderbird(匯出的設定檔備份,小於 2GB 的 ZIP 檔)
+    .accesskey = Z
+import-from-thunderbird-dir =
+    .label = Thunderbird(設定檔資料夾)
+    .accesskey = T
 import-select-profile-zip = 選擇壓縮過的設定檔目錄
+import-select-profile-dir = 選擇設定檔目錄
+zip-file-too-big-title = ZIP 檔太大
+zip-file-too-big-message = 選擇的 ZIP 檔案大小超過 2GB。請先解壓縮,然後改匯入解壓縮的資料匣。
+wizardpage-failed =
+    .label = 匯入失敗
+wizardpage-failed-message = 發生未預期的匯入失敗,錯誤主控台中可能有更多資訊。
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/messengercompose/messengercompose.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/messengercompose/messengercompose.ftl
index 8166f4e7bb542c9e5ed52f7fbe9e0e9ee5c09a80..8c522573829e84546bd13c1cc3023619386ff630 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/messengercompose/messengercompose.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/messenger/messengercompose/messengercompose.ftl
@@ -63,6 +63,10 @@ toolbar-button-add-attachment =
 add-attachment-notification-reminder =
     .label = 新增附件…
     .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
+add-attachment-notification-reminder2 =
+    .label = 新增附件…
+    .accesskey = A
+    .tooltiptext = { toolbar-button-add-attachment.tooltiptext }
 menuitem-attach-files =
     .label = 檔案…
     .accesskey = F
@@ -150,12 +154,74 @@ bcc-compose-show-address-row-label =
     .tooltiptext = 顯示「{ bcc-compose-address-row-label.value }」欄位({ bcc-compose-show-address-row-menuitem.acceltext })
 #   $count (Number) - the count of addresses in the "To" and "Cc" fields.
 many-public-recipients-info = 「給」與「副本」收件者共有 { $count } 位,都可看到彼此的收件信箱。您可以改用「密件副本」來避免揭露收件者資訊。
+to-address-row-label =
+    .value = 給
+#   $key (String) - the shortcut key for this field
+show-to-row-main-menuitem =
+    .label = 「給」欄位
+    .accesskey = T
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-to-row-button text.
+show-to-row-extra-menuitem =
+    .label = 給
+    .accesskey = T
+#   $key (String) - the shortcut key for this field
+show-to-row-button = 給
+    .title = 顯示「給」欄位({ ctrl-cmd-shift-pretty-prefix }{ $key })
+cc-address-row-label =
+    .value = 副本
+#   $key (String) - the shortcut key for this field
+show-cc-row-main-menuitem =
+    .label = 「副本」欄位
+    .accesskey = C
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-cc-row-button text.
+show-cc-row-extra-menuitem =
+    .label = 副本
+    .accesskey = C
+#   $key (String) - the shortcut key for this field
+show-cc-row-button = 副本
+    .title = 顯示「副本」欄位({ ctrl-cmd-shift-pretty-prefix }{ $key })
+bcc-address-row-label =
+    .value = 密件副本
+#   $key (String) - the shortcut key for this field
+show-bcc-row-main-menuitem =
+    .label = 「密件副本」欄位
+    .accesskey = B
+    .acceltext = { ctrl-cmd-shift-pretty-prefix }{ $key }
+# No acceltext should be shown.
+# The label should match the show-bcc-row-button text.
+show-bcc-row-extra-menuitem =
+    .label = 密件副本
+    .accesskey = B
+#   $key (String) - the shortcut key for this field
+show-bcc-row-button = 密件副本
+    .title = 顯示「密件副本」欄位({ ctrl-cmd-shift-pretty-prefix }{ $key })
+extra-address-rows-menu-button =
+    .title = 其他要顯示的地址欄位
+#   $count (Number) - the count of addresses in the "To" and "Cc" fields.
+many-public-recipients-notice =
+    { $count ->
+        [one] 您的訊息當中有公開的收件者,可以改用「密件副本」來避免揭露收件者資訊。
+       *[other] 「給」與「副本」收件者共有 { $count } 位,都可看到彼此的收件信箱。您可以改用「密件副本」來避免揭露收件者資訊。
+    }
 many-public-recipients-bcc =
     .label = 改為密件副本收件者
     .accesskey = U
 many-public-recipients-ignore =
     .label = 保持收件者名單公開
     .accesskey = K
+many-public-recipients-prompt-title = 太多公開收件者
+#   $count (Number) - the count of addresses in the public recipients fields.
+many-public-recipients-prompt-msg =
+    { $count ->
+        [one] 您的訊息包含公開的收件者,可能會造成隱私權疑慮。可以將他們移到「密件副本」來避免揭露收件者資訊。
+       *[other] 您的訊息當中有 { $count } 位公開的收件者,他們都能看到彼此的信箱,可能會造成隱私權疑慮。可以將他們移到「密件副本」來避免揭露收件者資訊。
+    }
+many-public-recipients-prompt-cancel = 取消傳送
+many-public-recipients-prompt-send = 還是要寄出
 
 ## Notifications
 
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/run-from-dmg.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..dcb80e1853f2ac4a1076310506837908d041778d
--- /dev/null
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,19 @@
+# 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/.
+
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = 要完成安裝 { -brand-short-name } 嗎?
+prompt-to-install-message = 只要一個步驟即可完成安裝,讓 { -brand-short-name } 保持為最新版,並可防止資料遺失。將會把 { -brand-short-name } 新增到您的「應用程式」檔案夾與 Dock 中。
+prompt-to-install-yes-button = 安裝
+prompt-to-install-no-button = 不要安裝
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } 安裝失敗。
+install-failed-message = { -brand-short-name } 安裝失敗,但可繼續執行。
diff --git a/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/textActions.ftl b/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/textActions.ftl
index 65419f546aa9ae89ad227314a45d35401d728764..57f5e8353698cdb200291fff9d6672dd334b4703 100644
--- a/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/textActions.ftl
+++ b/thunderbird-l10n/zh-TW/localization/zh-TW/toolkit/global/textActions.ftl
@@ -5,48 +5,50 @@
 text-action-undo =
     .label = 復原
     .accesskey = U
-
 text-action-undo-shortcut =
     .key = Z
-
 text-action-redo =
     .label = 取消「復原」
     .accesskey = R
-
 text-action-redo-shortcut =
     .key = Y
-
 text-action-cut =
     .label = 剪下
     .accesskey = t
-
 text-action-cut-shortcut =
     .key = X
-
 text-action-copy =
     .label = 複製
     .accesskey = C
-
 text-action-copy-shortcut =
     .key = C
-
 text-action-paste =
     .label = 貼上
     .accesskey = P
-
 text-action-paste-shortcut =
     .key = V
-
 text-action-delete =
     .label = 刪除
     .accesskey = D
-
 text-action-select-all =
     .label = 全選
     .accesskey = A
-
 text-action-select-all-shortcut =
     .key = A
-
 text-action-spell-no-suggestions =
     .label = 無拼字建議
+text-action-spell-add-to-dictionary =
+    .label = 新增到字典
+    .accesskey = o
+text-action-spell-undo-add-to-dictionary =
+    .label = 還原「新增到字典」
+    .accesskey = n
+text-action-spell-check-toggle =
+    .label = 檢查拼字
+    .accesskey = g
+text-action-spell-add-dictionaries =
+    .label = 新增字典…
+    .accesskey = A
+text-action-spell-dictionaries =
+    .label = 語言
+    .accesskey = L
diff --git a/thunderbird-l10n/zh-TW/manifest.json b/thunderbird-l10n/zh-TW/manifest.json
index 955949aea1dd1ff9b1b49e8cd8ffce2158da1c85..5796195d9f8f7f995e82e4ffda9dde379cd959ea 100644
--- a/thunderbird-l10n/zh-TW/manifest.json
+++ b/thunderbird-l10n/zh-TW/manifest.json
@@ -10,10 +10,10 @@
   },
   "name": "Traditional Chinese (zh-TW) Language Pack",
   "description": "Language pack for Thunderbird for zh-TW",
-  "version": "91.0buildid20210818230426",
+  "version": "91.0buildid20210902035758",
   "languages": {
     "zh-TW": {
-      "version": "20210814035650",
+      "version": "20210831140748",
       "chrome_resources": {
         "alerts": "chrome/zh-TW/locale/zh-TW/alerts/",
         "autoconfig": "chrome/zh-TW/locale/zh-TW/autoconfig/",
diff --git a/toolkit/actors/AutoScrollChild.jsm b/toolkit/actors/AutoScrollChild.jsm
index bf832542396b11eaa0505ff57c753e94aa8c1d1f..fcaf3866eee95857dc1b82db3412430041fd71f9 100644
--- a/toolkit/actors/AutoScrollChild.jsm
+++ b/toolkit/actors/AutoScrollChild.jsm
@@ -337,6 +337,36 @@ class AutoScrollChild extends JSWindowActorChild {
     this._scrollable.ownerGlobal.requestAnimationFrame(this.autoscrollLoop);
   }
 
+  canStartAutoScrollWith(event) {
+    if (
+      !event.isTrusted ||
+      event.defaultPrevented ||
+      event.button !== 1 ||
+      event.clickEventPrevented()
+    ) {
+      return false;
+    }
+
+    for (const modifier of ["shift", "alt", "ctrl", "meta"]) {
+      if (
+        event[modifier + "Key"] &&
+        Services.prefs.getBoolPref(
+          `general.autoscroll.prevent_to_start.${modifier}Key`,
+          false
+        )
+      ) {
+        return false;
+      }
+    }
+    if (
+      event.getModifierState("OS") &&
+      Services.prefs.getBoolPref("general.autoscroll.prevent_to_start.osKey")
+    ) {
+      return false;
+    }
+    return true;
+  }
+
   handleEvent(event) {
     switch (event.type) {
       case "mousemove":
@@ -345,10 +375,7 @@ class AutoScrollChild extends JSWindowActorChild {
         break;
       case "mousedown":
         if (
-          event.isTrusted &&
-          !event.defaultPrevented &&
-          event.button === 1 &&
-          !event.clickEventPrevented() &&
+          this.canStartAutoScrollWith(event) &&
           !this._scrollable &&
           !this.isAutoscrollBlocker(event.originalTarget)
         ) {
diff --git a/toolkit/actors/SelectChild.jsm b/toolkit/actors/SelectChild.jsm
index 5b96a02a0e8be1c74852ecf175d8973e078967c5..b1d2d18c2560be780d82e8d12e511071017caa5f 100644
--- a/toolkit/actors/SelectChild.jsm
+++ b/toolkit/actors/SelectChild.jsm
@@ -342,7 +342,10 @@ SelectContentHelper.prototype = {
         }
         break;
       case "transitionend":
-        if (SUPPORTED_SELECT_PROPERTIES.includes(event.propertyName)) {
+        if (
+          this.element === event.target &&
+          SUPPORTED_SELECT_PROPERTIES.includes(event.propertyName)
+        ) {
           this._updateTimer.arm();
         }
         break;
diff --git a/toolkit/components/antitracking/PurgeTrackerService.jsm b/toolkit/components/antitracking/PurgeTrackerService.jsm
index 5aeebb10c49cc19cb439b8703b4754126054e78a..c8870a7959dc8e879fe2116f47b4e363d928d311 100644
--- a/toolkit/components/antitracking/PurgeTrackerService.jsm
+++ b/toolkit/components/antitracking/PurgeTrackerService.jsm
@@ -208,9 +208,7 @@ PurgeTrackerService.prototype = {
           Ci.nsIClearDataService.CLEAR_SECURITY_SETTINGS |
           Ci.nsIClearDataService.CLEAR_EME |
           Ci.nsIClearDataService.CLEAR_MEDIA_DEVICES |
-          Ci.nsIClearDataService.CLEAR_STORAGE_ACCESS |
-          Ci.nsIClearDataService.CLEAR_AUTH_TOKENS |
-          Ci.nsIClearDataService.CLEAR_AUTH_CACHE,
+          Ci.nsIClearDataService.CLEAR_STORAGE_ACCESS,
         resolve
       );
     });
diff --git a/toolkit/components/cleardata/ClearDataService.jsm b/toolkit/components/cleardata/ClearDataService.jsm
index f21d25bed651819cd6838074e290d5bfe9f9ecd0..cd0f8426740ad1313fd426d833f9a903f149f6f1 100644
--- a/toolkit/components/cleardata/ClearDataService.jsm
+++ b/toolkit/components/cleardata/ClearDataService.jsm
@@ -1303,6 +1303,31 @@ const AboutHomeStartupCacheCleaner = {
   },
 };
 
+const PreflightCacheCleaner = {
+  // TODO: Bug 1727141: We should call the cache to clear by principal, rather
+  // than over-clearing for user requests or bailing out for programmatic calls.
+  async deleteByPrincipal(aPrincipal, aIsUserRequest) {
+    if (!aIsUserRequest) {
+      return;
+    }
+    await this.deleteAll();
+  },
+
+  // TODO: Bug 1727141 (see deleteByPrincipal).
+  async deleteByBaseDomain(aBaseDomain, aIsUserRequest) {
+    if (!aIsUserRequest) {
+      return;
+    }
+    await this.deleteAll();
+  },
+
+  async deleteAll() {
+    Cc[`@mozilla.org/network/protocol;1?name=http`]
+      .getService(Ci.nsIHttpProtocolHandler)
+      .clearCORSPreflightCache();
+  },
+};
+
 // Here the map of Flags-Cleaners.
 const FLAGS_MAP = [
   {
@@ -1402,6 +1427,11 @@ const FLAGS_MAP = [
     flag: Ci.nsIClearDataService.CLEAR_CONTENT_BLOCKING_RECORDS,
     cleaners: [ContentBlockingCleaner],
   },
+
+  {
+    flag: Ci.nsIClearDataService.CLEAR_PREFLIGHT_CACHE,
+    cleaners: [PreflightCacheCleaner],
+  },
 ];
 
 this.ClearDataService = function() {
diff --git a/toolkit/components/cleardata/nsIClearDataService.idl b/toolkit/components/cleardata/nsIClearDataService.idl
index 12bf00c7e5d690a556cb0e130c45f42c29a0db6d..e049a118ec6a28c2d10170dbf30a4656de003f1d 100644
--- a/toolkit/components/cleardata/nsIClearDataService.idl
+++ b/toolkit/components/cleardata/nsIClearDataService.idl
@@ -270,10 +270,15 @@ interface nsIClearDataService : nsISupports
    */
   const uint32_t CLEAR_CSS_CACHE = 1 << 23;
 
+  /**
+   * Clear the CORS preflight cache.
+   */
+  const uint32_t CLEAR_PREFLIGHT_CACHE = 1 << 24;
+
   /**
    * Use this value to delete all the data.
    */
-  const uint32_t CLEAR_ALL = 0xFFFFFF;
+  const uint32_t CLEAR_ALL = 0xFFFFFFFF;
 
   /**************************************************************************
    * The following flags are helpers: they combine some of the previous flags
@@ -283,7 +288,8 @@ interface nsIClearDataService : nsISupports
   /**
    * Delete all the possible caches.
    */
-  const uint32_t CLEAR_ALL_CACHES = CLEAR_NETWORK_CACHE | CLEAR_IMAGE_CACHE | CLEAR_CSS_CACHE;
+  const uint32_t CLEAR_ALL_CACHES = CLEAR_NETWORK_CACHE | CLEAR_IMAGE_CACHE |
+    CLEAR_CSS_CACHE | CLEAR_PREFLIGHT_CACHE;
 
   /**
    * Delete all DOM storages
diff --git a/toolkit/components/cleardata/tests/browser/browser.ini b/toolkit/components/cleardata/tests/browser/browser.ini
index c42cd7ac1f3703e41bdd5a85f797ac4991a7c8da..61d0805d40d48db8dd000cfce28a3d1024a58cf0 100644
--- a/toolkit/components/cleardata/tests/browser/browser.ini
+++ b/toolkit/components/cleardata/tests/browser/browser.ini
@@ -6,6 +6,9 @@ support-files =
 support-files =
   file_image_cache.html
   file_image_cache.jpg
+[browser_preflight_cache.js]
+support-files =
+  file_cors_preflight.sjs
 [browser_serviceworkers.js]
 [browser_sessionStorage.js]
 [browser_quota.js]
diff --git a/toolkit/components/cleardata/tests/browser/browser_preflight_cache.js b/toolkit/components/cleardata/tests/browser/browser_preflight_cache.js
new file mode 100644
index 0000000000000000000000000000000000000000..b684d1505822205a94cfaf0e752b2594182d235f
--- /dev/null
+++ b/toolkit/components/cleardata/tests/browser/browser_preflight_cache.js
@@ -0,0 +1,133 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const { SiteDataTestUtils } = ChromeUtils.import(
+  "resource://testing-common/SiteDataTestUtils.jsm"
+);
+
+const uuidGenerator = Cc["@mozilla.org/uuid-generator;1"].getService(
+  Ci.nsIUUIDGenerator
+);
+
+const ORIGIN_A = "http://example.net";
+const ORIGIN_B = "http://example.org";
+
+const PREFLIGHT_URL_PATH =
+  "/browser/toolkit/components/cleardata/tests/browser/file_cors_preflight.sjs";
+
+const PREFLIGHT_URL_A = ORIGIN_A + PREFLIGHT_URL_PATH;
+const PREFLIGHT_URL_B = ORIGIN_B + PREFLIGHT_URL_PATH;
+
+function testPreflightCached(browser, url, token, isCached) {
+  return SpecialPowers.spawn(
+    browser,
+    [url, token, isCached],
+    async (url, token, isCached) => {
+      let response = await content.fetch(
+        new content.Request(`${url}?token=${token}`, {
+          mode: "cors",
+          method: "GET",
+          headers: [["x-test-header", "check"]],
+        })
+      );
+
+      let expected = isCached ? "0" : "1";
+      is(
+        await response.text(),
+        expected,
+        `Preflight cache for ${url} ${isCached ? "HIT" : "MISS"}.`
+      );
+    }
+  );
+}
+
+async function testDeleteAll(
+  clearDataFlag,
+  { deleteBy = "all", hasUserInput = false } = {}
+) {
+  await BrowserTestUtils.withNewTab("http://example.com", async browser => {
+    let token = uuidGenerator.generateUUID().toString();
+
+    // Populate the preflight cache.
+    await testPreflightCached(browser, PREFLIGHT_URL_A, token, false);
+    await testPreflightCached(browser, PREFLIGHT_URL_B, token, false);
+    // Cache should be populated.
+    await testPreflightCached(browser, PREFLIGHT_URL_A, token, true);
+    await testPreflightCached(browser, PREFLIGHT_URL_B, token, true);
+
+    await new Promise(resolve => {
+      if (deleteBy == "principal") {
+        Services.clearData.deleteDataFromPrincipal(
+          browser.contentPrincipal,
+          hasUserInput,
+          clearDataFlag,
+          value => {
+            Assert.equal(value, 0);
+            resolve();
+          }
+        );
+      } else if (deleteBy == "baseDomain") {
+        Services.clearData.deleteDataFromBaseDomain(
+          browser.contentPrincipal.baseDomain,
+          hasUserInput,
+          clearDataFlag,
+          value => {
+            Assert.equal(value, 0);
+            resolve();
+          }
+        );
+      } else {
+        Services.clearData.deleteData(clearDataFlag, value => {
+          Assert.equal(value, 0);
+          resolve();
+        });
+      }
+    });
+
+    // The preflight cache cleaner cannot delete by principal or baseDomain
+    // (Bug 1727141). If this method is called, it will check whether the used
+    // requested the clearing. If the user requested clearing, it will
+    // over-clear (clear all data). If the request didn't come from the user,
+    // for example from the PurgeTrackerService, it will not clear anything to
+    // avoid clearing storage unrelated to the baseDomain or principal.
+    let clearedAll = deleteBy == "all" || hasUserInput;
+
+    // Cache should be cleared.
+    await testPreflightCached(browser, PREFLIGHT_URL_A, token, !clearedAll);
+    await testPreflightCached(browser, PREFLIGHT_URL_B, token, !clearedAll);
+  });
+
+  SiteDataTestUtils.clear();
+}
+
+add_task(async function test_deleteAll() {
+  // The cleaner should be called when we target all cleaners, all cache
+  // cleaners, or just the preflight cache.
+  let {
+    CLEAR_ALL,
+    CLEAR_ALL_CACHES,
+    CLEAR_PREFLIGHT_CACHE,
+  } = Ci.nsIClearDataService;
+
+  for (let flag of [CLEAR_ALL, CLEAR_ALL_CACHES, CLEAR_PREFLIGHT_CACHE]) {
+    await testDeleteAll(flag);
+  }
+});
+
+add_task(async function test_deleteByPrincipal() {
+  // The cleaner should be called when we target all cleaners, all cache
+  // cleaners, or just the preflight cache.
+  let {
+    CLEAR_ALL,
+    CLEAR_ALL_CACHES,
+    CLEAR_PREFLIGHT_CACHE,
+  } = Ci.nsIClearDataService;
+
+  for (let flag of [CLEAR_ALL, CLEAR_ALL_CACHES, CLEAR_PREFLIGHT_CACHE]) {
+    for (let hasUserInput of [true, false]) {
+      await testDeleteAll(flag, { deleteBy: "principal", hasUserInput });
+    }
+  }
+});
diff --git a/toolkit/components/cleardata/tests/browser/file_cors_preflight.sjs b/toolkit/components/cleardata/tests/browser/file_cors_preflight.sjs
new file mode 100644
index 0000000000000000000000000000000000000000..f0665ea43c0dfde560b46263ac25b0786a84880e
--- /dev/null
+++ b/toolkit/components/cleardata/tests/browser/file_cors_preflight.sjs
@@ -0,0 +1,39 @@
+/* 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/. */
+
+'use strict';
+
+Components.utils.importGlobalProperties(["URLSearchParams"]);
+
+function handleRequest(request, response) {
+  let query = new URLSearchParams(request.queryString);
+  let token = query.get("token");
+
+  response.setHeader("Content-Type", "text/plain", false);
+  response.setHeader("Access-Control-Allow-Origin", "*", false);
+  response.setHeader("Access-Control-Allow-Headers", "x-test-header", false);
+
+  if (request.method == "OPTIONS") {
+    response.setHeader(
+      "Access-Control-Allow-Methods",
+      request.getHeader("Access-Control-Request-Method"),
+      false);
+    response.setHeader("Access-Control-Max-Age", "20", false);
+
+    setState(token, token);
+  } else {
+    let test_op = request.getHeader("x-test-header");
+
+    if (test_op == "check") {
+      let value = getState(token);
+
+      if (value) {
+        response.write("1");
+        setState(token, "");
+      } else {
+        response.write("0");
+      }
+    }
+  }
+}
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_secfetch.js b/toolkit/components/extensions/test/xpcshell/test_ext_secfetch.js
new file mode 100644
index 0000000000000000000000000000000000000000..779feb6c1f2aedeea009acd67776a76e6afb4755
--- /dev/null
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_secfetch.js
@@ -0,0 +1,84 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+const server = createHttpServer({
+  // We need the 127.0.0.1 proxy because the sec-fetch headers are not sent to
+  // "127.0.0.1:<any port other than 80 or 443>".
+  hosts: ["127.0.0.1"],
+});
+
+server.registerPathHandler("/return_headers", (request, response) => {
+  response.setStatusLine(request.httpVersion, 200, "OK");
+  response.setHeader("Content-Type", "text/plain");
+  response.setHeader("Access-Control-Allow-Origin", "*");
+  let headers = {};
+  for (let header of [
+    "sec-fetch-site",
+    "sec-fetch-dest",
+    "sec-fetch-mode",
+    "sec-fetch-user",
+  ]) {
+    if (request.hasHeader(header)) {
+      headers[header] = request.getHeader(header);
+    }
+  }
+  response.write(JSON.stringify(headers));
+});
+
+async function runSecFetchTest(test) {
+  let data = {
+    async background() {
+      let site = await new Promise(resolve => {
+        browser.test.onMessage.addListener(msg => {
+          resolve(msg);
+        });
+      });
+
+      let headers = await (await fetch(`${site}/return_headers`)).json();
+      browser.test.sendMessage("background_results", headers);
+    },
+    manifest: {
+      manifest_version: 2,
+    },
+  };
+
+  // The sec-fetch-* headers are only send to potentially trust worthy origins.
+  // We use 127.0.0.1 to avoid setting up an https server.
+  const site = "http://127.0.0.1";
+
+  if (test.permission) {
+    data.manifest.permissions = [`${site}/*`];
+  }
+
+  let extension = ExtensionTestUtils.loadExtension(data);
+  await extension.startup();
+
+  extension.sendMessage(site);
+  let backgroundResults = await extension.awaitMessage("background_results");
+  Assert.deepEqual(backgroundResults, test.expectedHeaders);
+
+  await extension.unload();
+}
+
+add_task(async function test_background_fetch_without_permission() {
+  await runSecFetchTest({
+    permission: false,
+    expectedHeaders: {
+      "sec-fetch-site": "cross-site",
+      "sec-fetch-mode": "cors",
+      "sec-fetch-dest": "empty",
+    },
+  });
+});
+
+add_task(async function test_background_fetch_with_permission() {
+  await runSecFetchTest({
+    permission: true,
+    expectedHeaders: {
+      "sec-fetch-site": "same-origin",
+      "sec-fetch-mode": "cors",
+      "sec-fetch-dest": "empty",
+    },
+  });
+});
diff --git a/toolkit/components/extensions/test/xpcshell/xpcshell.ini b/toolkit/components/extensions/test/xpcshell/xpcshell.ini
index f793498019b08b8674b7d7b8fb4a31bf39c4dfea..ac5c444650f39e0a8615b2785b10e185e6f398e8 100644
--- a/toolkit/components/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/components/extensions/test/xpcshell/xpcshell.ini
@@ -72,6 +72,7 @@ skip-if = os == 'android' && processor == 'x86_64'
 [test_ext_schemas_revoke.js]
 [test_ext_schemas_versioned.js]
 head = head.js head_schemas.js
+[test_ext_secfetch.js]
 [test_ext_shared_array_buffer.js]
 [test_ext_test_mock.js]
 skip-if = os == 'android' && processor == 'x86_64'
diff --git a/toolkit/components/formautofill/FormAutofillHandler.jsm b/toolkit/components/formautofill/FormAutofillHandler.jsm
index f2d522e3304298911ef7ccd5d1234bd3a44c8df7..853a451fb636bb5384706f00b4a5194217e8c00e 100644
--- a/toolkit/components/formautofill/FormAutofillHandler.jsm
+++ b/toolkit/components/formautofill/FormAutofillHandler.jsm
@@ -517,6 +517,7 @@ class FormAutofillSection {
       return;
     }
 
+    let nextStateValue = null;
     for (let [state, mmStateValue] of Object.entries(this._FIELD_STATE_ENUM)) {
       // The NORMAL state is simply the absence of other manually
       // managed states so we never need to add or remove it.
@@ -525,12 +526,16 @@ class FormAutofillSection {
       }
 
       if (state == nextState) {
-        this.winUtils.addManuallyManagedState(element, mmStateValue);
+        nextStateValue = mmStateValue;
       } else {
         this.winUtils.removeManuallyManagedState(element, mmStateValue);
       }
     }
 
+    if (nextStateValue) {
+      this.winUtils.addManuallyManagedState(element, nextStateValue);
+    }
+
     if (nextState == FIELD_STATES.AUTO_FILLED) {
       element.addEventListener("input", this, { mozSystemGroup: true });
     }
diff --git a/toolkit/components/formautofill/FormAutofillParent.jsm b/toolkit/components/formautofill/FormAutofillParent.jsm
index c0a5825cb8de95ac5cacac014e8fd92e338e03d5..771509e66c3c7b924ddbe3fc83f0b3f724898a32 100644
--- a/toolkit/components/formautofill/FormAutofillParent.jsm
+++ b/toolkit/components/formautofill/FormAutofillParent.jsm
@@ -91,8 +91,18 @@ let FormAutofillStatus = {
       Services.prefs.addObserver(ENABLED_AUTOFILL_CREDITCARDS_PREF, this);
     }
 
-    for (let win of Services.wm.getEnumerator("navigator:browser")) {
-      this.injectElements(win.document);
+    // We have to use empty window type to get all opened windows here because the
+    // window type parameter may not be available during startup.
+    for (let win of Services.wm.getEnumerator("")) {
+      let { documentElement } = win.document;
+      if (documentElement?.getAttribute("windowtype") == "navigator:browser") {
+        this.injectElements(win.document);
+      } else {
+        // Manually call onOpenWindow for windows that are already opened but not
+        // yet have the window type set. This ensures we inject the elements we need
+        // when its docuemnt is ready.
+        this.onOpenWindow(win);
+      }
     }
     Services.wm.addListener(this);
 
diff --git a/toolkit/components/resistfingerprinting/nsRFPService.cpp b/toolkit/components/resistfingerprinting/nsRFPService.cpp
index 711c28de927a13b8050b0414866953d95bb68dc1..94e0b02f3ce195c0667c79285a1b60b1019dfcff 100644
--- a/toolkit/components/resistfingerprinting/nsRFPService.cpp
+++ b/toolkit/components/resistfingerprinting/nsRFPService.cpp
@@ -33,6 +33,7 @@
 #include "mozilla/RefPtr.h"
 #include "mozilla/Services.h"
 #include "mozilla/StaticMutex.h"
+#include "mozilla/StaticPrefs_javascript.h"
 #include "mozilla/StaticPrefs_privacy.h"
 #include "mozilla/StaticPtr.h"
 #include "mozilla/TextEvents.h"
@@ -713,6 +714,12 @@ void nsRFPService::UpdateRFPPref() {
 
   bool privacyResistFingerprinting =
       StaticPrefs::privacy_resistFingerprinting();
+
+  // set fdlibm pref
+  JS::SetUseFdlibmForSinCosTan(
+      StaticPrefs::javascript_options_use_fdlibm_for_sin_cos_tan() ||
+      privacyResistFingerprinting);
+
   if (privacyResistFingerprinting) {
     PR_SetEnv("TZ=UTC");
   } else if (sInitialized) {
diff --git a/toolkit/components/telemetry/tests/unit/test_SocketScalars.js b/toolkit/components/telemetry/tests/unit/test_SocketScalars.js
index 1d7c0cebfd3d18a767c5b110a65b9e777b9538a8..2a9cb882c916ed932e07373b5321b2ba0627bb2c 100644
--- a/toolkit/components/telemetry/tests/unit/test_SocketScalars.js
+++ b/toolkit/components/telemetry/tests/unit/test_SocketScalars.js
@@ -20,19 +20,14 @@ async function waitForSocketScalars() {
   await ContentTaskUtils.waitForCondition(() => {
     const scalars = Telemetry.getSnapshotForScalars("main", false);
     return Object.keys(scalars).includes("socket");
-  });
+  }, "Waiting for socket scalars to have been set");
 }
 
-add_task(async function() {
-  if (!Services.prefs.getBoolPref("network.process.enabled")) {
-    Assert.ok(
-      true,
-      "Test finished: no point to test telemetry from socket process with lanuching the process"
-    );
-    return;
-  }
-
-  do_test_pending();
+add_task(async function test_scalars_in_socket_process() {
+  Assert.ok(
+    Services.prefs.getBoolPref("network.process.enabled"),
+    "Socket process should be enabled"
+  );
 
   do_get_profile(true);
   await TelemetryController.testSetup();
@@ -42,6 +37,7 @@ add_task(async function() {
   // Once scalars are set by the socket process, they don't immediately get
   // sent to the parent process. Wait for the Telemetry IPC Timer to trigger
   // and batch send the data back to the parent process.
+  // Note: this requires the socket process to be enabled (see bug 1716307).
   await waitForSocketScalars();
 
   Assert.equal(
@@ -51,5 +47,4 @@ add_task(async function() {
     42,
     `${SOCKET_ONLY_UINT_SCALAR} must have the correct value (socket process).`
   );
-  do_test_finished();
 });
diff --git a/toolkit/components/telemetry/tests/unit/xpcshell.ini b/toolkit/components/telemetry/tests/unit/xpcshell.ini
index 30ae469301e467cbfda97d6b8eebb1bd5b98495e..99c6ea002751c3a96bb0f1642b86dda14ff1e9be 100644
--- a/toolkit/components/telemetry/tests/unit/xpcshell.ini
+++ b/toolkit/components/telemetry/tests/unit/xpcshell.ini
@@ -73,6 +73,7 @@ tags = addons
 [test_ChildScalars.js]
 skip-if = os == "android" # Disabled due to crashes (see bug 1331366)
 [test_SocketScalars.js]
+run-if = socketprocess_networking # Needs socket process (bug 1716307)
 [test_TelemetryReportingPolicy.js]
 tags = addons
 [test_TelemetryScalars.js]
diff --git a/toolkit/content/tests/browser/browser_click_event_during_autoscrolling.js b/toolkit/content/tests/browser/browser_click_event_during_autoscrolling.js
index 51496b4263eb1426abe378629692773a6d16954d..33bd71a51a349c673a401251782c16d986c03271 100644
--- a/toolkit/content/tests/browser/browser_click_event_during_autoscrolling.js
+++ b/toolkit/content/tests/browser/browser_click_event_during_autoscrolling.js
@@ -143,6 +143,7 @@ add_task(async function() {
         }
       }
 
+      await SpecialPowers.pushPrefEnv({ set: [["middlemouse.paste", true]] });
       await (async function testMouseEventsAtStartingAutoScrolling() {
         info(
           "Waiting autoscroller popup for testing mouse events at starting autoscrolling"
@@ -204,6 +205,111 @@ add_task(async function() {
         await waitForAutoScrollEnd;
       })();
 
+      if (
+        // Bug 1693240: We don't support setting modifiers while posting a mouse event on Windows.
+        !navigator.platform.includes("Win") &&
+        // Bug 1693237: We don't support setting modifiers on Android.
+        !navigator.appVersion.includes("Android") &&
+        // In Headless mode, modifiers are not supported by this kind of APIs.
+        !Cc["@mozilla.org/gfx/info;1"].getService(Ci.nsIGfxInfo).isHeadless
+      ) {
+        await SpecialPowers.pushPrefEnv({
+          set: [
+            ["general.autoscroll.prevent_to_start.shiftKey", true],
+            ["general.autoscroll.prevent_to_start.altKey", true],
+            ["general.autoscroll.prevent_to_start.ctrlKey", true],
+            ["general.autoscroll.prevent_to_start.metaKey", true],
+          ],
+        });
+        for (const modifier of ["Shift", "Control", "Alt", "Meta"]) {
+          if (modifier == "Meta" && !navigator.platform.includes("Mac")) {
+            continue; // Delete this after fixing bug 1232918.
+          }
+          await (async function modifiersPreventToStartAutoScrolling() {
+            info(
+              `Waiting to check not to open autoscroller popup with middle button click with ${modifier}`
+            );
+            await promiseFlushLayoutInContent();
+            let eventsInContent = new ContentEventCounter(browser, [
+              "click",
+              "auxclick",
+              "mousedown",
+              "mouseup",
+              "paste",
+            ]);
+            // Ensure that the event listeners added in the content with accessing
+            // the remote content.
+            await promiseFlushLayoutInContent();
+            await EventUtils.promiseNativeMouseEvent({
+              type: "mousemove",
+              target: browser,
+              atCenter: true,
+            });
+            info(
+              `Waiting to MozAutoScrollNoStart event for the middle button click with ${modifier}`
+            );
+            await EventUtils.promiseNativeMouseEvent({
+              type: "mousedown",
+              target: browser,
+              atCenter: true,
+              button: 1, // middle button
+              modifiers: {
+                altKey: modifier == "Alt",
+                ctrlKey: modifier == "Control",
+                metaKey: modifier == "Meta",
+                shiftKey: modifier == "Shift",
+              },
+            });
+            try {
+              await TestUtils.waitForCondition(
+                () => autoScroller?.state == "open",
+                `Waiting to check not to open autoscroller popup with ${modifier}`,
+                100,
+                10
+              );
+              ok(
+                false,
+                `The autoscroller popup shouldn't be opened by middle click with ${modifier}`
+              );
+            } catch (ex) {
+              ok(
+                true,
+                `The autoscroller popup was not open as expected after middle click with ${modifier}`
+              );
+            }
+            // In the wild, native "mouseup" event occurs after the popup is open.
+            await EventUtils.promiseNativeMouseEvent({
+              type: "mouseup",
+              target: browser,
+              atCenter: true,
+              button: 1, // middle button
+            });
+            await promiseFlushLayoutInContent();
+            await promiseContentTick();
+            await eventsInContent.promiseMouseEvents(
+              ["paste"],
+              `At middle clicking with ${modifier}`
+            );
+            for (let eventType of [
+              "mousedown",
+              "mouseup",
+              "click",
+              "auxclick",
+              "paste",
+            ]) {
+              is(
+                eventsInContent.getCountAndRemoveEventListener(eventType),
+                1,
+                `"${eventType}" event should be fired in the content when a middle click with ${modifier}`
+              );
+            }
+            info(
+              "Waiting autoscroller close for preparing the following tests"
+            );
+          })();
+        }
+      }
+
       async function doTestMouseEventsAtStoppingAutoScrolling({
         aButton = 0,
         aClickOutsideAutoScroller = false,
diff --git a/toolkit/content/widgets/findbar.js b/toolkit/content/widgets/findbar.js
index 409ae44f57c810bd9d393ddec921b55316ecc8b9..370cf26a22609273ace9457f01b71d2483bab184 100644
--- a/toolkit/content/widgets/findbar.js
+++ b/toolkit/content/widgets/findbar.js
@@ -65,8 +65,10 @@
         <image anonid="find-status-icon" class="find-status-icon" />
         <description anonid="find-status" control="findbar-textbox" class="findbar-label findbar-find-status" />
       </hbox>
-      <toolbarbutton anonid="find-closebutton" class="findbar-closebutton tabbable close-icon"
-          data-l10n-id="findbar-find-button-close" oncommand="close();" />
+      <div id="findbar-close-container">
+        <toolbarbutton anonid="find-closebutton" class="findbar-closebutton tabbable close-icon"
+            data-l10n-id="findbar-find-button-close" oncommand="close();" />
+      </div>
       `;
     }
 
diff --git a/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_client.cc b/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_client.cc
index 4af7c7f82db88e46ad157d55dac8a471709718d5..bdbf43aacaa201437347df884d126bdc4c5fd4f4 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_client.cc
+++ b/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_client.cc
@@ -58,17 +58,16 @@ bool CrashGenerationClient::RequestDumpForException(
 
   message.SetData(&info, sizeof(info));
 
-  const mach_msg_timeout_t kSendTimeoutMs = 2 * 1000;
-  kern_return_t result = sender_.SendMessage(message, kSendTimeoutMs);
+  kern_return_t result = sender_.SendMessage(message, MACH_MSG_TIMEOUT_NONE);
   if (result != KERN_SUCCESS)
     return false;
 
   // Give the server slightly longer to reply since it has to
   // inspect this task and write the minidump.
-  const mach_msg_timeout_t kReceiveTimeoutMs = 5 * 1000;
   MachReceiveMessage acknowledge_message;
   result = acknowledge_port.WaitForMessage(&acknowledge_message,
-					   kReceiveTimeoutMs);
+                                           MACH_MSG_TIMEOUT_NONE);
+
   return result == KERN_SUCCESS;
 }
 
diff --git a/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_server.cc b/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_server.cc
index f8a72ccffe1c414d5128002ac29107a383897bcd..b7b9b5881e8f3e09a243500ba890b15075e97729 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_server.cc
+++ b/toolkit/crashreporter/breakpad-client/mac/crash_generation/crash_generation_server.cc
@@ -144,12 +144,10 @@ bool CrashGenerationServer::WaitForOneMessage() {
         if (ack_port != MACH_PORT_DEAD && ack_port != MACH_PORT_NULL) {
           MachPortSender sender(ack_port);
           MachSendMessage ack_message(kAcknowledgementMessage);
-          const mach_msg_timeout_t kSendTimeoutMs = 2 * 1000;
-
-          sender.SendMessage(ack_message, kSendTimeoutMs);
+          sender.SendMessage(ack_message, MACH_MSG_TIMEOUT_NONE);
         }
 
-        if (exit_callback_) {
+        if (result && exit_callback_) {
           exit_callback_(exit_context_, client);
         }
         break;
diff --git a/toolkit/themes/shared/findbar.css b/toolkit/themes/shared/findbar.css
index b328dd619b9a9a35e8262755f71c4ec9e07b95b7..bde8241d275c14251029bee8c322cd8be5ae4464 100644
--- a/toolkit/themes/shared/findbar.css
+++ b/toolkit/themes/shared/findbar.css
@@ -31,6 +31,7 @@ findbar[noanim] {
 .findbar-container {
   margin-inline-start: 8px;
   height: 28px;
+  min-width: calc(100vw - 48px);
 }
 
 /* Remove start margin when close button is on the left side (on macOS) */
@@ -168,6 +169,9 @@ html|input.findbar-textbox::placeholder,
 }
 
 /* Close button */
+#findbar-close-container {
+  position: relative;
+}
 
 /* Increase specificity to override close-icon.css */
 .close-icon.findbar-closebutton {
diff --git a/toolkit/xre/test/gtest/TestUntrustedModules.cpp b/toolkit/xre/test/gtest/TestUntrustedModules.cpp
index 02c6aea57da812f9362aa36f2bd44bb4e5cd03de..57ea252fdf8e7d094fa9829e2d985ceb6999a6b4 100644
--- a/toolkit/xre/test/gtest/TestUntrustedModules.cpp
+++ b/toolkit/xre/test/gtest/TestUntrustedModules.cpp
@@ -236,7 +236,7 @@ class UntrustedModulesFixture : public TelemetryTestFixture {
     // On match, with aOnlyMatch = true, ExecuteRegExpNoStatics returns boolean
     // true.  If no match, ExecuteRegExpNoStatics returns Null.
     EXPECT_TRUE(matchResult.isBoolean() && matchResult.toBoolean());
-    if (!matchResult.toBoolean()) {
+    if (!matchResult.isBoolean() || !matchResult.toBoolean()) {
       // If match failed, print out the actual JSON kindly.
       wprintf(L"JSON: %s\n", json.get());
       wprintf(L"RE: %s\n", aPattern);
@@ -366,8 +366,8 @@ BOOL CALLBACK UntrustedModulesFixture::InitialModuleLoadOnce(PINIT_ONCE, void*,
     u"\"combinedStacks\":{" \
       u"\"memoryMap\":\\[\\[\"\\w+\\.\\w+\",\"[0-9A-Z]+\"\\]" \
         u"(,\\[\"\\w+\\.\\w+\",\"[0-9A-Z]+\\\"\\])*\\]," \
-      u"\"stacks\":\\[\\[\\[\\d+,\\d+\\]" \
-        u"(,\\[\\d+,\\d+\\])*\\]\\]}}"
+      u"\"stacks\":\\[\\[\\[(-1|\\d+),\\d+\\]" \
+        u"(,\\[(-1|\\d+),\\d+\\])*\\]\\]}}"
 
 TEST_F(UntrustedModulesFixture, Serialize) {
   // clang-format off
diff --git a/tools/profiler/core/shared-libraries-win32.cc b/tools/profiler/core/shared-libraries-win32.cc
index aa6c6a4e0aeef7a7c7182d7efdfb29361a3490f1..0c32d87a45a292505bc06d3fc9c6ac3ae9af3c2b 100644
--- a/tools/profiler/core/shared-libraries-win32.cc
+++ b/tools/profiler/core/shared-libraries-win32.cc
@@ -13,15 +13,13 @@
 #include "mozilla/WindowsVersion.h"
 #include "nsPrintfCString.h"
 
-// Hackaround for Bug 1607574.  Nvidia's shim driver nvd3d9wrap[x].dll detours
-// LoadLibraryExW and it causes AV when the following conditions are met.
-//   1. LoadLibraryExW was called for "detoured.dll"
-//   2. nvinit[x].dll was unloaded
-//   3. OS version is older than 6.2
 static bool IsModuleUnsafeToLoad(const nsAString& aModuleName) {
-#if defined(_M_ARM64)
-  return false;
-#else
+#if defined(_M_AMD64) || defined(_M_IX86)
+  // Hackaround for Bug 1607574.  Nvidia's shim driver nvd3d9wrap[x].dll detours
+  // LoadLibraryExW and it causes AV when the following conditions are met.
+  //   1. LoadLibraryExW was called for "detoured.dll"
+  //   2. nvinit[x].dll was unloaded
+  //   3. OS version is older than 6.2
 #  if defined(_M_AMD64)
   LPCWSTR kNvidiaShimDriver = L"nvd3d9wrapx.dll";
   LPCWSTR kNvidiaInitDriver = L"nvinitx.dll";
@@ -29,10 +27,22 @@ static bool IsModuleUnsafeToLoad(const nsAString& aModuleName) {
   LPCWSTR kNvidiaShimDriver = L"nvd3d9wrap.dll";
   LPCWSTR kNvidiaInitDriver = L"nvinit.dll";
 #  endif
-  return aModuleName.LowerCaseEqualsLiteral("detoured.dll") &&
-         !mozilla::IsWin8OrLater() && ::GetModuleHandleW(kNvidiaShimDriver) &&
-         !::GetModuleHandleW(kNvidiaInitDriver);
-#endif  // defined(_M_ARM64)
+  if (aModuleName.LowerCaseEqualsLiteral("detoured.dll") &&
+      !mozilla::IsWin8OrLater() && ::GetModuleHandleW(kNvidiaShimDriver) &&
+      !::GetModuleHandleW(kNvidiaInitDriver)) {
+    return true;
+  }
+#endif  // defined(_M_AMD64) || defined(_M_IX86)
+
+  // Hackaround for Bug 1723868.  There is no safe way to prevent the module
+  // Microsoft's VP9 Video Decoder from being unloaded because mfplat.dll may
+  // have posted more than one task to unload the module in the work queue
+  // without calling LoadLibrary.
+  if (aModuleName.LowerCaseEqualsLiteral("msvp9dec_store.dll")) {
+    return true;
+  }
+
+  return false;
 }
 
 SharedLibraryInfo SharedLibraryInfo::GetInfoForSelf() {
@@ -108,9 +118,11 @@ SharedLibraryInfo SharedLibraryInfo::GetInfoForSelf() {
     nsAutoCString versionStr;
     uint64_t version;
     if (headers.GetVersionInfo(version)) {
-      versionStr.AppendPrintf("%d.%d.%d.%d", (version >> 48) & 0xFFFF,
-                              (version >> 32) & 0xFFFF,
-                              (version >> 16) & 0xFFFF, version & 0xFFFF);
+      versionStr.AppendPrintf(
+          "%u.%u.%u.%u", static_cast<unsigned int>((version >> 48) & 0xFFFFu),
+          static_cast<unsigned int>((version >> 32) & 0xFFFFu),
+          static_cast<unsigned int>((version >> 16) & 0xFFFFu),
+          static_cast<unsigned int>(version & 0xFFFFu));
     }
 
     const nsString& pdbNameStr =
diff --git a/tools/tryselect/test/test_fuzzy.py b/tools/tryselect/test/test_fuzzy.py
index a86daf2f88403c0039125f72773f6897bc0cff9d..584aa712c4b40eaf651e610a1932e8b3693ac6e0 100644
--- a/tools/tryselect/test/test_fuzzy.py
+++ b/tools/tryselect/test/test_fuzzy.py
@@ -17,7 +17,7 @@ def test_query_paths(run_mach, capfd):
         "fuzzy",
         "--no-push",
         "-q",
-        "^test-linux '64/debug-xpcshell-e10s-",
+        "^test-linux '64-qr/debug-xpcshell-e10s-",
         "caps/tests/unit/test_origin.js",
     ]
     assert run_mach(cmd) == 0
@@ -29,7 +29,7 @@ def test_query_paths(run_mach, capfd):
     # with the path filtering.
     expected = """
     "tasks": [
-        "test-linux1804-64/debug-xpcshell-e10s-1"
+        "test-linux1804-64-qr/debug-xpcshell-e10s-1"
     ]""".lstrip()
 
     assert expected in output
diff --git a/widget/InputData.h b/widget/InputData.h
index 9140b75327fc28b7a5671fec300037792d4f610f..b44320fec7519fd550fddd5046e11b68c3cfd4c0 100644
--- a/widget/InputData.h
+++ b/widget/InputData.h
@@ -255,8 +255,8 @@ class MultiTouchInput : public InputData {
   ExternalPoint mScreenOffset;
   bool mHandledByAPZ;
   // These button fields match to the corresponding fields in
-  // WidgetMouseEventBase.
-  int16_t mButton = 0;
+  // WidgetMouseEventBase, except mButton defaults to -1 to follow PointerEvent.
+  int16_t mButton = eNotPressed;
   int16_t mButtons = 0;
 };
 
diff --git a/widget/cocoa/nsLookAndFeel.mm b/widget/cocoa/nsLookAndFeel.mm
index 3a8274f3e2e565b1edcf6a0bb1c788808ebee4fb..ee6aaa2e449be268e7052d5db99952542fd95ee9 100644
--- a/widget/cocoa/nsLookAndFeel.mm
+++ b/widget/cocoa/nsLookAndFeel.mm
@@ -102,6 +102,14 @@ nscolor nsLookAndFeel::ProcessSelectionBackground(nscolor aColor, ColorScheme aS
 nsresult nsLookAndFeel::NativeGetColor(ColorID aID, ColorScheme aScheme, nscolor& aColor) {
   NS_OBJC_BEGIN_TRY_ABORT_BLOCK
 
+  if (@available(macOS 10.14, *)) {
+    // No-op. macOS 10.14+ supports dark mode, so currentAppearance can be set
+    // to either Light or Dark.
+  } else {
+    // System colors before 10.14 are always Light.
+    aScheme = ColorScheme::Light;
+  }
+
   NSAppearance.currentAppearance = NSAppearanceForColorScheme(aScheme);
 
   nscolor color = 0;
@@ -265,9 +273,16 @@ nsresult nsLookAndFeel::NativeGetColor(ColorID aID, ColorScheme aScheme, nscolor
     case ColorID::Windowframe:
       color = GetColorFromNSColor(NSColor.windowFrameColor);
       break;
-    case ColorID::Window:
-      color = GetColorFromNSColor(NSColor.windowBackgroundColor);
+    case ColorID::Window: {
+      if (@available(macOS 10.14, *)) {
+        color = GetColorFromNSColor(NSColor.windowBackgroundColor);
+      } else {
+        // On 10.13 and below, NSColor.windowBackgroundColor is transparent black.
+        // Use a light grey instead (taken from macOS 11.5).
+        color = NS_RGB(0xF6, 0xF6, 0xF6);
+      }
       break;
+    }
     case ColorID::Field:
     case ColorID::MozCombobox:
       color = GetColorFromNSColor(NSColor.controlBackgroundColor);
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
index 9d6772377226f756cbc8bc0eebf4f299001a6ad2..f8f17cd306766991d174b9b400fb42c39d9c52be 100644
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -252,7 +252,7 @@ bool nsWindow::sDropShadowEnabled = true;
 uint32_t nsWindow::sInstanceCount = 0;
 bool nsWindow::sSwitchKeyboardLayout = false;
 BOOL nsWindow::sIsOleInitialized = FALSE;
-HCURSOR nsWindow::sHCursor = nullptr;
+HCURSOR nsWindow::sCustomHCursor = nullptr;
 nsIWidget::Cursor nsWindow::sCurrentCursor = {};
 nsWindow* nsWindow::sCurrentWindow = nullptr;
 bool nsWindow::sJustGotDeactivate = false;
@@ -3244,38 +3244,31 @@ static HCURSOR CursorForImage(const nsIWidget::Cursor& aCursor,
 
 // Setting the actual cursor
 void nsWindow::SetCursor(const Cursor& aCursor) {
-  if (sCurrentCursor == aCursor && sHCursor) {
-    ::SetCursor(sHCursor);
+  mCursor = aCursor;
+
+  if (sCurrentCursor == aCursor && sCustomHCursor) {
+    ::SetCursor(sCustomHCursor);
     return;
   }
 
-  mCursor = aCursor;
+  if (sCustomHCursor) {
+    ::DestroyIcon(sCustomHCursor);
+    sCustomHCursor = nullptr;
+  }
 
+  sCurrentCursor = aCursor;
   HCURSOR cursor = CursorForImage(aCursor, GetDefaultScale());
   if (cursor) {
-    ::SetCursor(cursor);
-    sCurrentCursor = aCursor;
-    if (sHCursor) {
-      ::DestroyIcon(sHCursor);
-    }
-    sHCursor = cursor;
-    return;
+    sCustomHCursor = cursor;
+  } else {
+    cursor = CursorFor(aCursor.mDefaultCursor);
   }
 
-  cursor = CursorFor(aCursor.mDefaultCursor);
   if (!cursor) {
     return;
   }
 
-  HCURSOR oldCursor = ::SetCursor(cursor);
-  sCurrentCursor = aCursor;
-
-  if (sHCursor == oldCursor) {
-    if (sHCursor) {
-      ::DestroyIcon(sHCursor);
-    }
-    sHCursor = nullptr;
-  }
+  ::SetCursor(cursor);
 }
 
 /**************************************************************
diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h
index 9b05e1900ec9293cf0ed041bffadfba0727b5d06..7e7bc1e5971b089282b54f6569e4c7fb53c10fa5 100644
--- a/widget/windows/nsWindow.h
+++ b/widget/windows/nsWindow.h
@@ -614,7 +614,7 @@ class nsWindow final : public nsWindowBase {
   static TriStateBool sCanQuit;
   static nsWindow* sCurrentWindow;
   static BOOL sIsOleInitialized;
-  static HCURSOR sHCursor;
+  static HCURSOR sCustomHCursor;
   static Cursor sCurrentCursor;
   static bool sSwitchKeyboardLayout;
   static bool sJustGotDeactivate;
diff --git a/xpcom/base/CycleCollectedJSContext.cpp b/xpcom/base/CycleCollectedJSContext.cpp
index 347f15c82322ba444629b6121c379f21e84956c2..0a35a5cf5524813e99c86ebf30d2150de821747c 100644
--- a/xpcom/base/CycleCollectedJSContext.cpp
+++ b/xpcom/base/CycleCollectedJSContext.cpp
@@ -61,6 +61,7 @@ CycleCollectedJSContext::CycleCollectedJSContext()
       mDoingStableStates(false),
       mTargetedMicroTaskRecursionDepth(0),
       mMicroTaskLevel(0),
+      mSuppressionGeneration(0),
       mDebuggerRecursionDepth(0),
       mMicroTaskRecursionDepth(0),
       mFinalizationRegistryCleanup(this) {
@@ -291,7 +292,7 @@ class CycleCollectedJSContext::SavedMicroTaskQueue
 
  private:
   CycleCollectedJSContext* ccjs;
-  std::queue<RefPtr<MicroTaskRunnable>> mQueue;
+  std::deque<RefPtr<MicroTaskRunnable>> mQueue;
 };
 
 js::UniquePtr<JS::JobQueue::SavedJobQueue>
@@ -379,13 +380,13 @@ void CycleCollectedJSContext::SetPendingException(Exception* aException) {
   mPendingException = aException;
 }
 
-std::queue<RefPtr<MicroTaskRunnable>>&
+std::deque<RefPtr<MicroTaskRunnable>>&
 CycleCollectedJSContext::GetMicroTaskQueue() {
   MOZ_ASSERT(mJSContext);
   return mPendingMicroTaskRunnables;
 }
 
-std::queue<RefPtr<MicroTaskRunnable>>&
+std::deque<RefPtr<MicroTaskRunnable>>&
 CycleCollectedJSContext::GetDebuggerMicroTaskQueue() {
   MOZ_ASSERT(mJSContext);
   return mDebuggerMicroTaskQueue;
@@ -562,7 +563,7 @@ void CycleCollectedJSContext::DispatchToMicroTask(
   JS::JobQueueMayNotBeEmpty(Context());
 
   LogMicroTaskRunnable::LogDispatch(runnable.get());
-  mPendingMicroTaskRunnables.push(std::move(runnable));
+  mPendingMicroTaskRunnables.push_back(std::move(runnable));
 }
 
 class AsyncMutationHandler final : public mozilla::Runnable {
@@ -581,6 +582,25 @@ class AsyncMutationHandler final : public mozilla::Runnable {
   }
 };
 
+SuppressedMicroTasks::SuppressedMicroTasks(CycleCollectedJSContext* aContext)
+    : mContext(aContext),
+      mSuppressionGeneration(aContext->mSuppressionGeneration) {}
+
+bool SuppressedMicroTasks::Suppressed() {
+  if (mSuppressionGeneration == mContext->mSuppressionGeneration) {
+    return true;
+  }
+
+  for (std::deque<RefPtr<MicroTaskRunnable>>::reverse_iterator it =
+           mSuppressedMicroTaskRunnables.rbegin();
+       it != mSuppressedMicroTaskRunnables.rend(); ++it) {
+    mContext->GetMicroTaskQueue().push_front(*it);
+  }
+  mContext->mSuppressedMicroTasks = nullptr;
+
+  return false;
+}
+
 bool CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool aForce) {
   if (mPendingMicroTaskRunnables.empty() && mDebuggerMicroTaskQueue.empty()) {
     AfterProcessMicrotasks();
@@ -616,15 +636,14 @@ bool CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool aForce) {
   bool didProcess = false;
   AutoSlowOperation aso;
 
-  std::queue<RefPtr<MicroTaskRunnable>> suppressed;
   for (;;) {
     RefPtr<MicroTaskRunnable> runnable;
     if (!mDebuggerMicroTaskQueue.empty()) {
       runnable = std::move(mDebuggerMicroTaskQueue.front());
-      mDebuggerMicroTaskQueue.pop();
+      mDebuggerMicroTaskQueue.pop_front();
     } else if (!mPendingMicroTaskRunnables.empty()) {
       runnable = std::move(mPendingMicroTaskRunnables.front());
-      mPendingMicroTaskRunnables.pop();
+      mPendingMicroTaskRunnables.pop_front();
     } else {
       break;
     }
@@ -635,10 +654,16 @@ bool CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool aForce) {
       // all suppressed tasks in mDebuggerMicroTaskQueue unexpectedly.
       MOZ_ASSERT(NS_IsMainThread());
       JS::JobQueueMayNotBeEmpty(Context());
-      suppressed.push(runnable);
+      if (runnable != mSuppressedMicroTasks) {
+        if (!mSuppressedMicroTasks) {
+          mSuppressedMicroTasks = new SuppressedMicroTasks(this);
+        }
+        mSuppressedMicroTasks->mSuppressedMicroTaskRunnables.push_back(
+            runnable);
+      }
     } else {
       if (mPendingMicroTaskRunnables.empty() &&
-          mDebuggerMicroTaskQueue.empty() && suppressed.empty()) {
+          mDebuggerMicroTaskQueue.empty() && !mSuppressedMicroTasks) {
         JS::JobQueueIsEmpty(Context());
       }
       didProcess = true;
@@ -653,7 +678,9 @@ bool CycleCollectedJSContext::PerformMicroTaskCheckPoint(bool aForce) {
   // Note, it is possible that we end up keeping these suppressed tasks around
   // for some time, but no longer than spinning the event loop nestedly
   // (sync XHR, alert, etc.)
-  mPendingMicroTaskRunnables.swap(suppressed);
+  if (mSuppressedMicroTasks) {
+    mPendingMicroTaskRunnables.push_back(mSuppressedMicroTasks);
+  }
 
   AfterProcessMicrotasks();
 
@@ -668,7 +695,7 @@ void CycleCollectedJSContext::PerformDebuggerMicroTaskCheckpoint() {
   for (;;) {
     // For a debugger microtask checkpoint, we always use the debugger microtask
     // queue.
-    std::queue<RefPtr<MicroTaskRunnable>>* microtaskQueue =
+    std::deque<RefPtr<MicroTaskRunnable>>* microtaskQueue =
         &GetDebuggerMicroTaskQueue();
 
     if (microtaskQueue->empty()) {
@@ -681,7 +708,7 @@ void CycleCollectedJSContext::PerformDebuggerMicroTaskCheckpoint() {
     LogMicroTaskRunnable::Run log(runnable.get());
 
     // This function can re-enter, so we remove the element before calling.
-    microtaskQueue->pop();
+    microtaskQueue->pop_front();
 
     if (mPendingMicroTaskRunnables.empty() && mDebuggerMicroTaskQueue.empty()) {
       JS::JobQueueIsEmpty(Context());
diff --git a/xpcom/base/CycleCollectedJSContext.h b/xpcom/base/CycleCollectedJSContext.h
index 769b000418abbc6e9b2e1792915e554089832a3b..116bff1c90c82083fba5b222cb1f29a1e9f78b1d 100644
--- a/xpcom/base/CycleCollectedJSContext.h
+++ b/xpcom/base/CycleCollectedJSContext.h
@@ -7,7 +7,7 @@
 #ifndef mozilla_CycleCollectedJSContext_h
 #define mozilla_CycleCollectedJSContext_h
 
-#include <queue>
+#include <deque>
 
 #include "mozilla/Attributes.h"
 #include "mozilla/MemoryReporting.h"
@@ -81,6 +81,20 @@ class MicroTaskRunnable {
   virtual ~MicroTaskRunnable() = default;
 };
 
+// Store the suppressed mictotasks in another microtask so that operations
+// for the microtask queue as a whole keep working.
+class SuppressedMicroTasks : public MicroTaskRunnable {
+ public:
+  explicit SuppressedMicroTasks(CycleCollectedJSContext* aContext);
+
+  MOZ_CAN_RUN_SCRIPT_BOUNDARY void Run(AutoSlowOperation& aAso) final {}
+  virtual bool Suppressed();
+
+  CycleCollectedJSContext* mContext;
+  uint64_t mSuppressionGeneration;
+  std::deque<RefPtr<MicroTaskRunnable>> mSuppressedMicroTaskRunnables;
+};
+
 // Support for JS FinalizationRegistry objects, which allow a JS callback to be
 // registered that is called when objects die.
 //
@@ -117,6 +131,7 @@ class FinalizationRegistryCleanup {
 
 class CycleCollectedJSContext : dom::PerThreadAtomCache, private JS::JobQueue {
   friend class CycleCollectedJSRuntime;
+  friend class SuppressedMicroTasks;
 
  protected:
   CycleCollectedJSContext();
@@ -166,8 +181,8 @@ class CycleCollectedJSContext : dom::PerThreadAtomCache, private JS::JobQueue {
   already_AddRefed<dom::Exception> GetPendingException() const;
   void SetPendingException(dom::Exception* aException);
 
-  std::queue<RefPtr<MicroTaskRunnable>>& GetMicroTaskQueue();
-  std::queue<RefPtr<MicroTaskRunnable>>& GetDebuggerMicroTaskQueue();
+  std::deque<RefPtr<MicroTaskRunnable>>& GetMicroTaskQueue();
+  std::deque<RefPtr<MicroTaskRunnable>>& GetDebuggerMicroTaskQueue();
 
   JSContext* Context() const {
     MOZ_ASSERT(mJSContext);
@@ -183,6 +198,8 @@ class CycleCollectedJSContext : dom::PerThreadAtomCache, private JS::JobQueue {
     mTargetedMicroTaskRecursionDepth = aDepth;
   }
 
+  void UpdateMicroTaskSuppressionGeneration() { ++mSuppressionGeneration; }
+
  protected:
   JSContext* MaybeContext() const { return mJSContext; }
 
@@ -316,8 +333,10 @@ class CycleCollectedJSContext : dom::PerThreadAtomCache, private JS::JobQueue {
 
   uint32_t mMicroTaskLevel;
 
-  std::queue<RefPtr<MicroTaskRunnable>> mPendingMicroTaskRunnables;
-  std::queue<RefPtr<MicroTaskRunnable>> mDebuggerMicroTaskQueue;
+  std::deque<RefPtr<MicroTaskRunnable>> mPendingMicroTaskRunnables;
+  std::deque<RefPtr<MicroTaskRunnable>> mDebuggerMicroTaskQueue;
+  RefPtr<SuppressedMicroTasks> mSuppressedMicroTasks;
+  uint64_t mSuppressionGeneration;
 
   // How many times the debugger has interrupted execution, possibly creating
   // microtask checkpoints in places that they would not normally occur.
diff --git a/xpcom/io/FileDescriptorFile.cpp b/xpcom/io/FileDescriptorFile.cpp
index cf9c6b8efe3e4364f74026af2cdada66aea996e1..390ef96a2a0f5c1bd6266886655cc16f002aad88 100644
--- a/xpcom/io/FileDescriptorFile.cpp
+++ b/xpcom/io/FileDescriptorFile.cpp
@@ -146,7 +146,8 @@ NS_IMETHODIMP
 FileDescriptorFile::Normalize() { return NS_ERROR_NOT_IMPLEMENTED; }
 
 NS_IMETHODIMP
-FileDescriptorFile::Create(uint32_t aType, uint32_t aPermissions) {
+FileDescriptorFile::Create(uint32_t aType, uint32_t aPermissions,
+                           bool aSkipAncestors) {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
diff --git a/xpcom/io/nsIFile.idl b/xpcom/io/nsIFile.idl
index e40cc7ac15cfd0d3be6eace3e9810c310cc22dc2..03f256a1d032f7a9cc8e031f8a463f4a9e4ede53 100644
--- a/xpcom/io/nsIFile.idl
+++ b/xpcom/io/nsIFile.idl
@@ -99,8 +99,13 @@ interface nsIFile : nsISupports
      *       The unix style octal permissions.  This may
      *       be ignored on systems that do not need to do
      *       permissions.
+     *
+     *   @param skipAncestors
+     *       Optional; if set to true, we'll skip creating
+     *       ancestor directories (and return an error instead).
      */
-    [must_use] void create(in unsigned long type, in unsigned long permissions);
+    [must_use] void create(in unsigned long type, in unsigned long permissions,
+                           [optional,default(false)] in bool skipAncestors);
 
     /**
      *  Accessor to the leaf name of the file itself.
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
index 385e0ff6c023d4321deed71161689584217d1afd..d8f81c9d7922e947cafe89b1b92c3b3ff5d370a2 100644
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -484,6 +484,7 @@ static int do_mkdir(const char* aPath, int aFlags, mode_t aMode,
 
 nsresult nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
                                         uint32_t aPermissions,
+                                        bool aSkipAncestors,
                                         PRFileDesc** aResult) {
   if (!FilePreferences::IsAllowedPath(mPath)) {
     return NS_ERROR_FILE_ACCESS_DENIED;
@@ -497,7 +498,7 @@ nsresult nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
       (aType == NORMAL_FILE_TYPE) ? do_create : do_mkdir;
 
   int result = createFunc(mPath.get(), aFlags, aPermissions, aResult);
-  if (result == -1 && errno == ENOENT) {
+  if (result == -1 && errno == ENOENT && !aSkipAncestors) {
     /*
      * If we failed because of missing ancestor components, try to create
      * them and then retry the original creation.
@@ -536,7 +537,8 @@ nsresult nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
 }
 
 NS_IMETHODIMP
-nsLocalFile::Create(uint32_t aType, uint32_t aPermissions) {
+nsLocalFile::Create(uint32_t aType, uint32_t aPermissions,
+                    bool aSkipAncestors) {
   if (!FilePreferences::IsAllowedPath(mPath)) {
     return NS_ERROR_FILE_ACCESS_DENIED;
   }
@@ -544,7 +546,7 @@ nsLocalFile::Create(uint32_t aType, uint32_t aPermissions) {
   PRFileDesc* junk = nullptr;
   nsresult rv = CreateAndKeepOpen(
       aType, PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE | PR_EXCL, aPermissions,
-      &junk);
+      aSkipAncestors, &junk);
   if (junk) {
     PR_Close(junk);
   }
@@ -877,7 +879,7 @@ nsLocalFile::CopyToNative(nsIFile* aNewParent, const nsACString& aNewName) {
     }
 
     // get the old permissions
-    uint32_t myPerms;
+    uint32_t myPerms = 0;
     rv = GetPermissions(&myPerms);
     if (NS_FAILED(rv)) {
       return rv;
@@ -890,9 +892,9 @@ nsLocalFile::CopyToNative(nsIFile* aNewParent, const nsACString& aNewName) {
     // open it successfully for writing.
 
     PRFileDesc* newFD;
-    rv = newFile->CreateAndKeepOpen(NORMAL_FILE_TYPE,
-                                    PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE,
-                                    myPerms, &newFD);
+    rv = newFile->CreateAndKeepOpen(
+        NORMAL_FILE_TYPE, PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE, myPerms,
+        /* aSkipAncestors = */ false, &newFD);
     if (NS_FAILED(rv)) {
       return rv;
     }
diff --git a/xpcom/io/nsLocalFileUnix.h b/xpcom/io/nsLocalFileUnix.h
index 077bc2ed992793eae4e555c8cbd2c7b0dde30046..8c74f32bf1050b10ba4d83b4bf0c9fe4b4f17904 100644
--- a/xpcom/io/nsLocalFileUnix.h
+++ b/xpcom/io/nsLocalFileUnix.h
@@ -84,7 +84,7 @@ class nsLocalFile final
   bool FillStatCache();
 
   nsresult CreateAndKeepOpen(uint32_t aType, int aFlags, uint32_t aPermissions,
-                             PRFileDesc** aResult);
+                             bool aSkipAncestors, PRFileDesc** aResult);
 
   nsresult SetLastModifiedTimeImpl(PRTime aLastModTime, bool aFollowLinks);
   nsresult GetLastModifiedTimeImpl(PRTime* aLastModTime, bool aFollowLinks);
diff --git a/xpcom/io/nsLocalFileWin.cpp b/xpcom/io/nsLocalFileWin.cpp
index 2fc2282a7f1fae9d01d39bea65163219e4e3c086..f62afd5162fba72e2f0bd540a8c1b3cf8865e03c 100644
--- a/xpcom/io/nsLocalFileWin.cpp
+++ b/xpcom/io/nsLocalFileWin.cpp
@@ -1238,7 +1238,7 @@ static nsresult do_mkdir(nsIFile*, const nsString& aPath, uint32_t) {
 }
 
 NS_IMETHODIMP
-nsLocalFile::Create(uint32_t aType, uint32_t aAttributes) {
+nsLocalFile::Create(uint32_t aType, uint32_t aAttributes, bool aSkipAncestors) {
   if (aType != NORMAL_FILE_TYPE && aType != DIRECTORY_TYPE) {
     return NS_ERROR_FILE_UNKNOWN_TYPE;
   }
@@ -1247,7 +1247,8 @@ nsLocalFile::Create(uint32_t aType, uint32_t aAttributes) {
 
   nsresult rv = createFunc(this, mWorkingPath, aAttributes);
 
-  if (NS_SUCCEEDED(rv) || NS_ERROR_FILE_ALREADY_EXISTS == rv) {
+  if (NS_SUCCEEDED(rv) || NS_ERROR_FILE_ALREADY_EXISTS == rv ||
+      aSkipAncestors) {
     return rv;
   }
 
diff --git a/xpcom/threads/TimerThread.cpp b/xpcom/threads/TimerThread.cpp
index 5a58711960ad0c994feefac299a1a8fc645dfd25..88c6374706179878e1a6b9a948b9b695b5d0c29f 100644
--- a/xpcom/threads/TimerThread.cpp
+++ b/xpcom/threads/TimerThread.cpp
@@ -149,6 +149,7 @@ class nsTimerEvent final : public CancelableRunnable {
   }
   void operator delete(void* aPtr) {
     sAllocator->Free(aPtr);
+    sAllocatorUsers--;
     DeleteAllocatorIfNeeded();
   }
 
@@ -163,7 +164,6 @@ class nsTimerEvent final : public CancelableRunnable {
     MOZ_ASSERT(!sCanDeleteAllocator || sAllocatorUsers > 0,
                "This will result in us attempting to deallocate the "
                "nsTimerEvent allocator twice");
-    sAllocatorUsers--;
   }
 
   TimeStamp mInitTime;