Merge m-c to autoland on a CLOSED TREE. a=merge
authorRyan VanderMeulen <ryanvm@gmail.com>
Wed, 30 Nov 2016 13:27:46 -0500
changeset 324810 8f1e420699832d42753c6503aa31861be6f5b186
parent 324809 f6cc35920bf232c5aa2a91606247271214eb6ec8 (current diff)
parent 324779 741a720c98cdb92c229376be0badbf036f653bff (diff)
child 324836 27449c736a04eec8c9033d70697747fce3a3c13d
child 324837 185137e0830fc380a839825770dad2175bfac051
push id24
push usermaklebus@msu.edu
push dateTue, 20 Dec 2016 03:11:33 +0000
reviewersmerge
milestone53.0a1
Merge m-c to autoland on a CLOSED TREE. a=merge
browser/components/extensions/test/browser/browser-common.ini
browser/components/extensions/test/browser/browser.ini
browser/components/extensions/test/browser/browser_ext_omnibox.js
layout/reftests/css-invalid/select/select-required-multiple-invalid.html
layout/reftests/css-valid/select/select-required-multiple-invalid.html
testing/web-platform/meta/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html.ini
--- a/addon-sdk/source/lib/sdk/tabs/utils.js
+++ b/addon-sdk/source/lib/sdk/tabs/utils.js
@@ -202,17 +202,17 @@ function getBrowserForTab(tab) {
   return tab.linkedBrowser;
 }
 exports.getBrowserForTab = getBrowserForTab;
 
 function getTabId(tab) {
   if (tab.browser) // fennec
     return tab.id
 
-  return String.split(tab.linkedPanel, 'panel').pop();
+  return String(tab.linkedPanel).split('panel').pop();
 }
 exports.getTabId = getTabId;
 
 function getTabForId(id) {
   return getTabs().find(tab => getTabId(tab) === id) || null;
 }
 exports.getTabForId = getTabForId;
 
--- a/addon-sdk/source/lib/sdk/url.js
+++ b/addon-sdk/source/lib/sdk/url.js
@@ -331,17 +331,17 @@ var isValidURI = exports.isValidURI = fu
   }
   catch(e) {
     return false;
   }
   return true;
 }
 
 function isLocalURL(url) {
-  if (String.indexOf(url, './') === 0)
+  if (String(url).indexOf('./') === 0)
     return true;
 
   try {
     return ['resource', 'data', 'chrome'].indexOf(URL(url).scheme) > -1;
   }
   catch(e) {}
 
   return false;
--- a/browser/base/content/browser-media.js
+++ b/browser/base/content/browser-media.js
@@ -298,19 +298,19 @@ let gDecoderDoctorHandler = {
         Cu.reportError("Malformed Decoder Doctor unsolved message with no formats");
         return;
       }
       if (!formatsInPref) {
         Services.prefs.setCharPref(formatsPref, formats);
         histogram.add(decoderDoctorReportId, TELEMETRY_DDSTAT_SHOWN_FIRST);
       } else {
         // Split existing formats into an array of strings.
-        let existing = formatsInPref.split(",").map(String.trim);
+        let existing = formatsInPref.split(",").map(x => x.trim());
         // Keep given formats that were not already recorded.
-        let newbies = formats.split(",").map(String.trim)
+        let newbies = formats.split(",").map(x => x.trim())
                       .filter(x => !existing.includes(x));
         // And rewrite pref with the added new formats (if any).
         if (newbies.length) {
           Services.prefs.setCharPref(formatsPref,
                                      existing.concat(newbies).join(", "));
         }
       }
       histogram.add(decoderDoctorReportId, TELEMETRY_DDSTAT_SHOWN);
--- a/browser/components/extensions/ext-utils.js
+++ b/browser/components/extensions/ext-utils.js
@@ -315,17 +315,19 @@ class BasePopup {
       // maximum height, so that the PanelUI resizing code can make an accurate
       // calculation. If we don't do this, the flex sizing logic will prevent us
       // from ever reporting a preferred size smaller than the height currently
       // available to us in the panel.
       height = Math.max(height, this.viewHeight);
       this.viewNode.style.maxHeight = `${height}px`;
     } else {
       this.browser.style.width = `${width}px`;
+      this.browser.style.minWidth = `${width}px`;
       this.browser.style.height = `${height}px`;
+      this.browser.style.minHeight = `${height}px`;
     }
 
     let event = new this.window.CustomEvent("WebExtPopupResized", {detail});
     this.browser.dispatchEvent(event);
   }
 
   setBackground(background) {
     let panelBackground = "";
@@ -483,21 +485,22 @@ class ViewPopup extends BasePopup {
         bottom: Math.max(0, screenBottom - popupBottom),
         top:  Math.max(0, popupTop - win.screen.availTop),
       };
 
       // Create a new browser in the real popup.
       let browser = this.browser;
       yield this.createBrowser(this.viewNode);
 
+      this.ignoreResizes = false;
+
       this.browser.swapDocShells(browser);
       this.destroyBrowser(browser);
 
-      this.ignoreResizes = false;
-      if (this.dimensions) {
+      if (this.dimensions && !this.fixedWidth) {
         this.resizeBrowser(this.dimensions);
       }
 
       this.tempPanel.remove();
       this.tempPanel = null;
 
       this.shown = true;
 
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -41,16 +41,17 @@ support-files =
 [browser_ext_contextMenus_radioGroups.js]
 [browser_ext_contextMenus_uninstall.js]
 [browser_ext_contextMenus_urlPatterns.js]
 [browser_ext_currentWindow.js]
 [browser_ext_getViews.js]
 [browser_ext_incognito_views.js]
 [browser_ext_incognito_popup.js]
 [browser_ext_lastError.js]
+[browser_ext_omnibox.js]
 [browser_ext_optionsPage_privileges.js]
 [browser_ext_pageAction_context.js]
 [browser_ext_pageAction_popup.js]
 [browser_ext_pageAction_popup_resize.js]
 [browser_ext_pageAction_simple.js]
 [browser_ext_pageAction_title.js]
 [browser_ext_popup_api_injection.js]
 [browser_ext_popup_background.js]
@@ -92,18 +93,20 @@ support-files =
 [browser_ext_tabs_cookieStoreId.js]
 [browser_ext_tabs_update.js]
 [browser_ext_tabs_zoom.js]
 [browser_ext_tabs_update_url.js]
 [browser_ext_topwindowid.js]
 [browser_ext_webRequest.js]
 [browser_ext_webNavigation_frameId0.js]
 [browser_ext_webNavigation_getFrames.js]
+[browser_ext_webNavigation_urlbar_transitions.js]
 [browser_ext_windows.js]
 [browser_ext_windows_create.js]
 tags = fullscreen
 [browser_ext_windows_create_params.js]
 [browser_ext_windows_create_tabId.js]
 [browser_ext_windows_create_url.js]
+[browser_ext_windows_events.js]
 [browser_ext_windows_size.js]
 skip-if = os == 'mac' # Fails when windows are randomly opened in fullscreen mode
 [browser_ext_windows_update.js]
 tags = fullscreen
--- a/browser/components/extensions/test/browser/browser.ini
+++ b/browser/components/extensions/test/browser/browser.ini
@@ -1,11 +1,8 @@
 [DEFAULT]
 tags = webextensions in-process-webextensions
 
 [browser_ext_legacy_extension_context_contentscript.js]
-[browser_ext_omnibox.js]
-[browser_ext_webNavigation_urlbar_transitions.js]
 [browser_ext_windows_allowScriptsToClose.js]
-[browser_ext_windows_events.js]
 
 [include:browser-common.ini]
 [parent:browser-common.ini]
--- a/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js
+++ b/browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js
@@ -175,17 +175,17 @@ function* testPopupSize(standardsMode, b
       ok(panelTop >= browserWin.screen.availTop, `Top of popup should be on-screen. (${panelTop} >= ${browserWin.screen.availTop})`);
     }
   };
 
   yield awaitBrowserLoaded(browser);
 
   // Wait long enough to make sure the initial resize debouncing timer has
   // expired.
-  yield new Promise(resolve => setTimeout(resolve, 100));
+  yield delay(100);
 
   let dims = yield promiseContentDimensions(browser);
 
   is(dims.isStandards, standardsMode, "Document has the expected compat mode");
 
   // If the browser's preferred height is smaller than the initial height of the
   // panel, then it will still take up the full available vertical space. Even
   // so, we need to check that we've gotten the preferred height calculation
@@ -290,15 +290,17 @@ add_task(function* testBrowserActionMenu
   // it is off-screen, so we need to try more than once.
   for (let i = 0; i < 20; i++) {
     win.moveTo(left, top);
 
     if (win.screenX == left && win.screenY == top) {
       break;
     }
 
-    yield new Promise(resolve => setTimeout(resolve, 100));
+    yield delay(100);
   }
 
+  yield SimpleTest.promiseFocus(win);
+
   yield testPopupSize(true, win, "bottom");
 
   yield BrowserTestUtils.closeWindow(win);
 });
--- a/browser/components/extensions/test/browser/browser_ext_commands_execute_browser_action.js
+++ b/browser/components/extensions/test/browser/browser_ext_commands_execute_browser_action.js
@@ -68,16 +68,18 @@ function* testExecuteBrowserActionWithOp
   let extension = ExtensionTestUtils.loadExtension(extensionOptions);
 
   extension.onMessage("send-keys", () => {
     EventUtils.synthesizeKey("j", {altKey: true, shiftKey: true});
   });
 
   yield extension.startup();
 
+  yield SimpleTest.promiseFocus(window);
+
   if (options.inArea) {
     let widget = getBrowserActionWidget(extension);
     CustomizableUI.addWidgetToArea(widget.id, options.inArea);
   }
 
   extension.sendMessage("withPopup", options.withPopup);
 
   if (options.withPopup) {
--- a/browser/components/extensions/test/browser/browser_ext_omnibox.js
+++ b/browser/components/extensions/test/browser/browser_ext_omnibox.js
@@ -223,16 +223,18 @@ add_task(function* () {
       text,
       disposition: "currentTab",
     });
   }
 
   yield setup();
   yield extension.startup();
 
+  yield SimpleTest.promiseFocus(window);
+
   yield testInputEvents();
 
   // Test the heuristic result with default suggestions.
   yield testHeuristicResult("Generated extension", false /* setDefaultSuggestion */);
   yield testHeuristicResult("hello world", true /* setDefaultSuggestion */);
   yield testHeuristicResult("foo bar", true /* setDefaultSuggestion */);
 
   let suggestions = [
--- a/browser/components/extensions/test/browser/browser_ext_pageAction_popup_resize.js
+++ b/browser/components/extensions/test/browser/browser_ext_pageAction_popup_resize.js
@@ -1,16 +1,12 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
-let delay = ms => new Promise(resolve => {
-  setTimeout(resolve, ms);
-});
-
 add_task(function* testPageActionPopupResize() {
   let browser;
 
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "page_action": {
         "default_popup": "popup.html",
         "browser_style": true,
@@ -34,27 +30,18 @@ add_task(function* testPageActionPopupRe
 
   yield extension.startup();
   yield extension.awaitMessage("action-shown");
 
   clickPageAction(extension, window);
 
   browser = yield awaitExtensionPanel(extension);
 
-  function* waitForSize(size) {
+  function* checkSize(expected) {
     let dims = yield promiseContentDimensions(browser);
-    for (let i = 0; i < 100 && dims.window.innerWidth != size; i++) {
-      yield delay(50);
-      dims = yield promiseContentDimensions(browser);
-    }
-    return dims;
-  }
-
-  function* checkSize(expected) {
-    let dims = yield waitForSize(expected);
     let {body, root} = dims;
 
     is(dims.window.innerHeight, expected, `Panel window should be ${expected}px tall`);
     is(body.clientHeight, body.scrollHeight,
       "Panel body should be tall enough to fit its contents");
     is(root.clientHeight, root.scrollHeight,
       "Panel root should be tall enough to fit its contents");
 
@@ -78,19 +65,17 @@ add_task(function* testPageActionPopupRe
     300,
   ];
 
   for (let size of sizes) {
     yield alterContent(browser, setSize, size);
     yield checkSize(size);
   }
 
-  yield alterContent(browser, setSize, 1400);
-
-  let dims = yield waitForSize(800);
+  let dims = yield alterContent(browser, setSize, 1400);
   let {body, root} = dims;
 
   is(dims.window.innerWidth, 800, "Panel window width");
   ok(body.clientWidth <= 800, `Panel body width ${body.clientWidth} is less than 800`);
   is(body.scrollWidth, 1400, "Panel body scroll width");
 
   is(dims.window.innerHeight, 600, "Panel window height");
   ok(root.clientHeight <= 600, `Panel root height (${root.clientHeight}px) is less than 600px`);
@@ -142,23 +127,16 @@ add_task(function* testPageActionPopupRe
   /* eslint-disable mozilla/no-cpows-in-tests */
   function setSize(size) {
     content.document.body.style.fontSize = `${size}px`;
   }
   /* eslint-enable mozilla/no-cpows-in-tests */
 
   let dims = yield alterContent(browser, setSize, 18);
 
-  if (AppConstants.platform == "win") {
-    while (dims.window.innerWidth < 800) {
-      yield delay(50);
-      dims = yield promiseContentDimensions(browser);
-    }
-  }
-
   is(dims.window.innerWidth, 800, "Panel window should be 800px wide");
   is(dims.body.clientWidth, 800, "Panel body should be 800px wide");
   is(dims.body.clientWidth, dims.body.scrollWidth,
      "Panel body should be wide enough to fit its contents");
 
   ok(dims.window.innerHeight > 36,
      `Panel window height (${dims.window.innerHeight}px) should be taller than two lines of text.`);
 
--- a/browser/components/extensions/test/browser/browser_ext_webNavigation_urlbar_transitions.js
+++ b/browser/components/extensions/test/browser/browser_ext_webNavigation_urlbar_transitions.js
@@ -100,16 +100,17 @@ add_task(function* test_webnavigation_ur
   let extension = ExtensionTestUtils.loadExtension({
     background: backgroundScript,
     manifest: {
       permissions: ["webNavigation"],
     },
   });
 
   yield extension.startup();
+  yield SimpleTest.promiseFocus(window);
 
   yield extension.awaitMessage("ready");
 
   gURLBar.focus();
   gURLBar.textValue = "http://example.com/?q=typed";
 
   EventUtils.synthesizeKey("VK_RETURN", {altKey: true});
 
@@ -145,16 +146,17 @@ add_task(function* test_webnavigation_ur
   });
 
   yield addBookmark({
     title: "Bookmark To Click",
     url: "http://example.com/?q=bookmark",
   });
 
   yield extension.startup();
+  yield SimpleTest.promiseFocus(window);
 
   yield extension.awaitMessage("ready");
 
   yield promiseAutocompleteResultPopup("Bookmark To Click");
 
   let item = gURLBar.popup.richlistbox.getItemAtIndex(1);
   item.click();
   yield extension.awaitFinish("webNavigation.from_address_bar.auto_bookmark");
@@ -190,16 +192,17 @@ add_task(function* test_webnavigation_ur
 
   yield addBookmark({
     title: "Test Keyword",
     url: "http://example.com/?q=%s",
     keyword: "testkw",
   });
 
   yield extension.startup();
+  yield SimpleTest.promiseFocus(window);
 
   yield extension.awaitMessage("ready");
 
   yield promiseAutocompleteResultPopup("testkw search");
 
   let item = gURLBar.popup.richlistbox.getItemAtIndex(0);
   item.click();
 
@@ -230,16 +233,17 @@ add_task(function* test_webnavigation_ur
   let extension = ExtensionTestUtils.loadExtension({
     background: backgroundScript,
     manifest: {
       permissions: ["webNavigation"],
     },
   });
 
   yield extension.startup();
+  yield SimpleTest.promiseFocus(window);
 
   yield extension.awaitMessage("ready");
 
   yield prepareSearchEngine();
   yield promiseAutocompleteResultPopup("foo");
 
   let item = gURLBar.popup.richlistbox.getItemAtIndex(0);
   item.click();
--- a/browser/components/extensions/test/browser/browser_ext_windows_events.js
+++ b/browser/components/extensions/test/browser/browser_ext_windows_events.js
@@ -99,16 +99,18 @@ add_task(function* testWindowsEvents() {
   yield BrowserTestUtils.closeWindow(win2);
 
   winId = yield extension.awaitMessage(`window-removed`);
   is(winId, win2Id, "Got removed event for the correct window ID.");
 
   info(`Close browser window 1`);
   yield BrowserTestUtils.closeWindow(win1);
 
+  currentWindow.focus();
+
   winId = yield extension.awaitMessage(`window-removed`);
   is(winId, win1Id, "Got removed event for the correct window ID.");
 
   winId = yield extension.awaitMessage(`window-focus-changed`);
   is(winId, currentWindowId, "Got focus change event for the correct window ID.");
 
   yield extension.awaitFinish("windows.events");
   yield extension.unload();
--- a/browser/components/extensions/test/browser/head.js
+++ b/browser/components/extensions/test/browser/head.js
@@ -92,17 +92,17 @@ function promisePopupHidden(popup) {
     let onPopupHidden = event => {
       popup.removeEventListener("popuphidden", onPopupHidden);
       resolve();
     };
     popup.addEventListener("popuphidden", onPopupHidden);
   });
 }
 
-function promiseContentDimensions(browser) {
+function promisePossiblyInaccurateContentDimensions(browser) {
   return ContentTask.spawn(browser, null, function* () {
     function copyProps(obj, props) {
       let res = {};
       for (let prop of props) {
         res[prop] = obj[prop];
       }
       return res;
     }
@@ -116,28 +116,49 @@ function promiseContentDimensions(browse
       root: copyProps(content.document.documentElement,
                       ["clientWidth", "clientHeight", "scrollWidth", "scrollHeight"]),
 
       isStandards: content.document.compatMode !== "BackCompat",
     };
   });
 }
 
-function* awaitPopupResize(browser) {
-  return BrowserTestUtils.waitForEvent(browser, "WebExtPopupResized",
-                                       event => event.detail === "delayed");
+function delay(ms = 0) {
+  return new Promise(resolve => setTimeout(resolve, ms));
+}
+
+async function promiseContentDimensions(browser) {
+  // For remote browsers, each resize operation requires an asynchronous
+  // round-trip to resize the content window. Since there's a certain amount of
+  // unpredictability in the timing, mainly due to the unpredictability of
+  // reflows, we need to wait until the content window dimensions match the
+  // <browser> dimensions before returning data.
+
+  let dims = await promisePossiblyInaccurateContentDimensions(browser);
+  while (browser.clientWidth !== dims.window.innerWidth ||
+         browser.clientHeight !== dims.window.innerHeight) {
+    await delay(50);
+    dims = await promisePossiblyInaccurateContentDimensions(browser);
+  }
+
+  return dims;
+}
+
+async function awaitPopupResize(browser) {
+  await BrowserTestUtils.waitForEvent(browser, "WebExtPopupResized",
+                                      event => event.detail === "delayed");
+
+  return promiseContentDimensions(browser);
 }
 
 function alterContent(browser, task, arg = null) {
   return Promise.all([
     ContentTask.spawn(browser, arg, task),
     awaitPopupResize(browser),
-  ]).then(() => {
-    return promiseContentDimensions(browser);
-  });
+  ]).then(([, dims]) => dims);
 }
 
 function getPanelForNode(node) {
   while (node.localName != "panel") {
     node = node.parentNode;
   }
   return node;
 }
--- a/browser/components/sessionstore/test/browser_privatetabs.js
+++ b/browser/components/sessionstore/test/browser_privatetabs.js
@@ -10,85 +10,90 @@ add_task(function cleanup() {
 
 add_task(function() {
   let URL_PUBLIC = "http://example.com/public/" + Math.random();
   let URL_PRIVATE = "http://example.com/private/" + Math.random();
   let tab1, tab2;
   try {
     // Setup a public tab and a private tab
     info("Setting up public tab");
-    tab1 = yield BrowserTestUtils.openNewForegroundTab(gBrowser, URL_PUBLIC);
+    tab1 = gBrowser.addTab(URL_PUBLIC);
+    yield promiseBrowserLoaded(tab1.linkedBrowser);
 
     info("Setting up private tab");
-    tab2 = yield BrowserTestUtils.openNewForegroundTab(gBrowser);
+    tab2 = gBrowser.addTab();
+    yield promiseBrowserLoaded(tab2.linkedBrowser);
     yield setUsePrivateBrowsing(tab2.linkedBrowser, true);
     tab2.linkedBrowser.loadURI(URL_PRIVATE);
-    yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser, false, URL_PRIVATE);
+    yield promiseBrowserLoaded(tab2.linkedBrowser);
 
     info("Flush to make sure chrome received all data.");
     yield TabStateFlusher.flush(tab1.linkedBrowser);
     yield TabStateFlusher.flush(tab2.linkedBrowser);
 
     info("Checking out state");
     let state = yield promiseRecoveryFileContents();
 
+    info("State: " + state);
     // Ensure that sessionstore.js only knows about the public tab
     ok(state.indexOf(URL_PUBLIC) != -1, "State contains public tab");
     ok(state.indexOf(URL_PRIVATE) == -1, "State does not contain private tab");
 
     // Ensure that we can close and undo close the public tab but not the private tab
-    yield BrowserTestUtils.removeTab(tab2);
+    gBrowser.removeTab(tab2);
     tab2 = null;
 
-    yield BrowserTestUtils.removeTab(tab1);
+    gBrowser.removeTab(tab1);
     tab1 = null;
 
     tab1 = ss.undoCloseTab(window, 0);
     ok(true, "Public tab supports undo close");
 
     is(ss.getClosedTabCount(window), 0, "Private tab does not support undo close");
 
   } finally {
     if (tab1) {
-      yield BrowserTestUtils.removeTab(tab1);
+      gBrowser.removeTab(tab1);
     }
     if (tab2) {
-      yield BrowserTestUtils.removeTab(tab2);
+      gBrowser.removeTab(tab2);
     }
   }
 });
 
 add_task(function () {
   const FRAME_SCRIPT = "data:," +
     "docShell.QueryInterface%28Components.interfaces.nsILoadContext%29.usePrivateBrowsing%3Dtrue";
 
   // Clear the list of closed windows.
   forgetClosedWindows();
 
   // Create a new window to attach our frame script to.
-  let win = yield BrowserTestUtils.openNewBrowserWindow();
+  let win = yield promiseNewWindowLoaded();
   let mm = win.getGroupMessageManager("browsers");
   mm.loadFrameScript(FRAME_SCRIPT, true);
 
   // Create a new tab in the new window that will load the frame script.
-  let tab = yield BrowserTestUtils.openNewForegroundTab(win.gBrowser, "about:mozilla");
+  let tab = win.gBrowser.addTab("about:mozilla");
   let browser = tab.linkedBrowser;
+  yield promiseBrowserLoaded(browser);
   yield TabStateFlusher.flush(browser);
 
   // Check that we consider the tab as private.
   let state = JSON.parse(ss.getTabState(tab));
   ok(state.isPrivate, "tab considered private");
 
   // Ensure we don't allow restoring closed private tabs in non-private windows.
-  yield BrowserTestUtils.removeTab(tab);
+  win.gBrowser.removeTab(tab);
   is(ss.getClosedTabCount(win), 0, "no tabs to restore");
 
   // Create a new tab in the new window that will load the frame script.
-  tab = yield BrowserTestUtils.openNewForegroundTab(win.gBrowser, "about:mozilla");
+  tab = win.gBrowser.addTab("about:mozilla");
   browser = tab.linkedBrowser;
+  yield promiseBrowserLoaded(browser);
   yield TabStateFlusher.flush(browser);
 
   // Check that we consider the tab as private.
   state = JSON.parse(ss.getTabState(tab));
   ok(state.isPrivate, "tab considered private");
 
   // Check that all private tabs are removed when the non-private
   // window is closed and we don't save windows without any tabs.
@@ -96,29 +101,30 @@ add_task(function () {
   is(ss.getClosedWindowCount(), 0, "no windows to restore");
 });
 
 add_task(function () {
   // Clear the list of closed windows.
   forgetClosedWindows();
 
   // Create a new window to attach our frame script to.
-  let win = yield BrowserTestUtils.openNewBrowserWindow({private: true});
+  let win = yield promiseNewWindowLoaded({private: true});
 
   // Create a new tab in the new window that will load the frame script.
-  let tab = yield BrowserTestUtils.openNewForegroundTab(win.gBrowser, "about:mozilla");
+  let tab = win.gBrowser.addTab("about:mozilla");
   let browser = tab.linkedBrowser;
+  yield promiseBrowserLoaded(browser);
   yield TabStateFlusher.flush(browser);
 
   // Check that we consider the tab as private.
   let state = JSON.parse(ss.getTabState(tab));
   ok(state.isPrivate, "tab considered private");
 
   // Ensure that closed tabs in a private windows can be restored.
-  yield BrowserTestUtils.removeTab(tab);
+  win.gBrowser.removeTab(tab);
   is(ss.getClosedTabCount(win), 1, "there is a single tab to restore");
 
   // Ensure that closed private windows can never be restored.
   yield BrowserTestUtils.closeWindow(win);
   is(ss.getClosedWindowCount(), 0, "no windows to restore");
 });
 
 function setUsePrivateBrowsing(browser, val) {
--- a/browser/components/sessionstore/test/head.js
+++ b/browser/components/sessionstore/test/head.js
@@ -18,20 +18,16 @@ var mm = Cc["@mozilla.org/globalmessagem
 for (let script of FRAME_SCRIPTS) {
   mm.loadFrameScript(script, true);
 }
 
 registerCleanupFunction(() => {
   for (let script of FRAME_SCRIPTS) {
     mm.removeDelayedFrameScript(script, true);
   }
-
-  // Force a garbage collect after the end of each test run, to make sure that it
-  // won't interfere with the timing of the next test to be run from the suite.
-  window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils).garbageCollect();
 });
 
 const {Promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
 const {SessionStore} = Cu.import("resource:///modules/sessionstore/SessionStore.jsm", {});
 const {SessionSaver} = Cu.import("resource:///modules/sessionstore/SessionSaver.jsm", {});
 const {SessionFile} = Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {});
 const {TabState} = Cu.import("resource:///modules/sessionstore/TabState.jsm", {});
 const {TabStateFlusher} = Cu.import("resource:///modules/sessionstore/TabStateFlusher.jsm", {});
--- a/devtools/client/webconsole/test/browser_webconsole_bug_1006027_message_timestamps_incorrect.js
+++ b/devtools/client/webconsole/test/browser_webconsole_bug_1006027_message_timestamps_incorrect.js
@@ -29,17 +29,17 @@ function test() {
     info("hud.outputNode.textContent:\n" + hud.outputNode.textContent);
     let timestampNodes = hud.outputNode.querySelectorAll("span.timestamp");
     let aTimestampMilliseconds = Array.prototype.map.call(timestampNodes,
       function (value) {
         // We are parsing timestamps as local time, relative to the begin of
         // the epoch.
         // This is not the correct value of the timestamp, but good enough for
         // comparison.
-        return Date.parse("T" + String.trim(value.textContent));
+        return Date.parse("T" + String(value.textContent).trim());
       });
 
     let minTimestamp = Math.min.apply(null, aTimestampMilliseconds);
     let maxTimestamp = Math.max.apply(null, aTimestampMilliseconds);
     ok(Math.abs(maxTimestamp - minTimestamp) < 2000,
        "console.log message timestamp spread < 2000ms confirmed");
   }
 }
--- a/devtools/shared/gcli/commands/addon.js
+++ b/devtools/shared/gcli/commands/addon.js
@@ -171,17 +171,17 @@ var items = [
           if (addon.isActive) {
             enabledAddons.push(addon);
           } else {
             disabledAddons.push(addon);
           }
         });
 
         function compareAddonNames(nameA, nameB) {
-          return String.localeCompare(nameA.name, nameB.name);
+          return String(nameA.name).localeCompare(nameB.name);
         }
         enabledAddons.sort(compareAddonNames);
         disabledAddons.sort(compareAddonNames);
 
         return enabledAddons.concat(disabledAddons);
       }
 
       function isActiveForToggle(addon) {
--- a/dom/bindings/test/test_interfaceToString.html
+++ b/dom/bindings/test/test_interfaceToString.html
@@ -15,17 +15,17 @@ https://bugzilla.mozilla.org/show_bug.cg
 <div id="content" style="display: none">
   
 </div>
 <pre id="test">
 <script type="application/javascript">
 
 /** Test for Bug 742156 **/
 
-var nativeToString = ("" + String.replace).replace("replace", "EventTarget");
+var nativeToString = ("" + String).replace("String", "EventTarget");
 try {
     var eventTargetToString = "" + EventTarget;
     is(eventTargetToString, nativeToString,
        "Stringifying a DOM interface object should return the same string" +
        "as stringifying a native function.");
 }
 catch (e) {
     ok(false, "Stringifying a DOM interface object shouldn't throw.");
--- a/dom/encoding/test/test_TextEncoder.js
+++ b/dom/encoding/test/test_TextEncoder.js
@@ -177,17 +177,17 @@ function testStreamingOptions()
   testArrayOfStrings({array: [
     {input: data[0], stream: true, expected: expected[0]},
     {input: data[1], expected: expected[1]},
     {input: data[2], expected: expected[2]},
   ], msg: "streaming test two."});
 }
 
 function arrayFromString(s) {
-  return s.split('').map(function(c){return String.charCodeAt(c)});
+  return s.split('').map(function(c){return c.charCodeAt(0)});
 }
 
 function testArrayOfStrings(test)
 {
   var encoder;
   try {
     encoder = new TextEncoder();
   } catch (e) {
--- a/dom/events/EventStateManager.cpp
+++ b/dom/events/EventStateManager.cpp
@@ -2901,22 +2901,24 @@ nsresult
 EventStateManager::PostHandleEvent(nsPresContext* aPresContext,
                                    WidgetEvent* aEvent,
                                    nsIFrame* aTargetFrame,
                                    nsEventStatus* aStatus)
 {
   NS_ENSURE_ARG(aPresContext);
   NS_ENSURE_ARG_POINTER(aStatus);
 
-  bool dispatchedToContentProcess = HandleCrossProcessEvent(aEvent,
-                                                            aStatus);
-
   mCurrentTarget = aTargetFrame;
   mCurrentTargetContent = nullptr;
 
+  bool dispatchedToContentProcess = HandleCrossProcessEvent(aEvent, aStatus);
+  // NOTE: the above call may have destroyed aTargetFrame, please use
+  // mCurrentTarget henceforth.  This is to avoid using it accidentally:
+  aTargetFrame = nullptr;
+
   // Most of the events we handle below require a frame.
   // Add special cases here.
   if (!mCurrentTarget && aEvent->mMessage != eMouseUp &&
       aEvent->mMessage != eMouseDown) {
     return NS_OK;
   }
 
   //Keep the prescontext alive, we might need it after event dispatch
@@ -3163,17 +3165,17 @@ EventStateManager::PostHandleEvent(nsPre
     }
     break;
   case eWheelOperationEnd:
     {
       MOZ_ASSERT(aEvent->IsTrusted());
       ScrollbarsForWheel::MayInactivate();
       WidgetWheelEvent* wheelEvent = aEvent->AsWheelEvent();
       nsIScrollableFrame* scrollTarget =
-        do_QueryFrame(ComputeScrollTarget(aTargetFrame, wheelEvent,
+        do_QueryFrame(ComputeScrollTarget(mCurrentTarget, wheelEvent,
                                           COMPUTE_DEFAULT_ACTION_TARGET));
       if (scrollTarget) {
         scrollTarget->ScrollSnap();
       }
     }
     break;
   case eWheel:
   case eWheelOperationStart:
@@ -3186,17 +3188,17 @@ EventStateManager::PostHandleEvent(nsPre
       }
 
       WidgetWheelEvent* wheelEvent = aEvent->AsWheelEvent();
 
       // Check if the frame to scroll before checking the default action
       // because if the scroll target is a plugin, the default action should be
       // chosen by the plugin rather than by our prefs.
       nsIFrame* frameToScroll =
-        ComputeScrollTarget(aTargetFrame, wheelEvent,
+        ComputeScrollTarget(mCurrentTarget, wheelEvent,
                             COMPUTE_DEFAULT_ACTION_TARGET);
       nsPluginFrame* pluginFrame = do_QueryFrame(frameToScroll);
 
       // When APZ is enabled, the actual scroll animation might be handled by
       // the compositor.
       WheelPrefs::Action action;
       if (pluginFrame) {
         MOZ_ASSERT(pluginFrame->WantsToHandleWheelEventAsDefaultAction());
@@ -3206,28 +3208,28 @@ EventStateManager::PostHandleEvent(nsPre
       } else {
         action = WheelPrefs::GetInstance()->ComputeActionFor(wheelEvent);
       }
       switch (action) {
         case WheelPrefs::ACTION_SCROLL: {
           // For scrolling of default action, we should honor the mouse wheel
           // transaction.
 
-          ScrollbarsForWheel::PrepareToScrollText(this, aTargetFrame, wheelEvent);
+          ScrollbarsForWheel::PrepareToScrollText(this, mCurrentTarget, wheelEvent);
 
           if (aEvent->mMessage != eWheel ||
               (!wheelEvent->mDeltaX && !wheelEvent->mDeltaY)) {
             break;
           }
 
           nsIScrollableFrame* scrollTarget = do_QueryFrame(frameToScroll);
           ScrollbarsForWheel::SetActiveScrollTarget(scrollTarget);
 
-          nsIFrame* rootScrollFrame = !aTargetFrame ? nullptr :
-            aTargetFrame->PresContext()->PresShell()->GetRootScrollFrame();
+          nsIFrame* rootScrollFrame = !mCurrentTarget ? nullptr :
+            mCurrentTarget->PresContext()->PresShell()->GetRootScrollFrame();
           nsIScrollableFrame* rootScrollableFrame = nullptr;
           if (rootScrollFrame) {
             rootScrollableFrame = do_QueryFrame(rootScrollFrame);
           }
           if (!scrollTarget || scrollTarget == rootScrollableFrame) {
             wheelEvent->mViewPortIsOverscrolled = true;
           }
           wheelEvent->mOverflowDeltaX = wheelEvent->mDeltaX;
@@ -3254,17 +3256,17 @@ EventStateManager::PostHandleEvent(nsPre
         }
         case WheelPrefs::ACTION_ZOOM: {
           // If this event doesn't cause eLegacyMouseLineOrPageScroll event or
           // the direction is oblique, don't perform zoom in/out.
           int32_t intDelta = wheelEvent->GetPreferredIntDelta();
           if (!intDelta) {
             break;
           }
-          DoScrollZoom(aTargetFrame, intDelta);
+          DoScrollZoom(mCurrentTarget, intDelta);
           break;
         }
         case WheelPrefs::ACTION_SEND_TO_PLUGIN:
           MOZ_ASSERT(pluginFrame);
 
           if (wheelEvent->mMessage != eWheel ||
               (!wheelEvent->mDeltaX && !wheelEvent->mDeltaY)) {
             break;
@@ -3284,17 +3286,17 @@ EventStateManager::PostHandleEvent(nsPre
           bool allDeltaOverflown = false;
           if (wheelEvent->mFlags.mHandledByAPZ) {
             if (wheelEvent->mCanTriggerSwipe) {
               // For events that can trigger swipes, APZ needs to know whether
               // scrolling is possible in the requested direction. It does this
               // by looking at the scroll overflow values on mCanTriggerSwipe
               // events after they have been processed.
               allDeltaOverflown =
-                !ComputeScrollTarget(aTargetFrame, wheelEvent,
+                !ComputeScrollTarget(mCurrentTarget, wheelEvent,
                                      COMPUTE_DEFAULT_ACTION_TARGET);
             }
           } else {
             // The event was processed neither by APZ nor by us, so all of the
             // delta values must be overflown delta values.
             allDeltaOverflown = true;
           }
 
--- a/dom/html/HTMLSelectElement.cpp
+++ b/dom/html/HTMLSelectElement.cpp
@@ -52,47 +52,60 @@ NS_IMPL_ISUPPORTS(SelectState, SelectSta
 SafeOptionListMutation::SafeOptionListMutation(nsIContent* aSelect,
                                                nsIContent* aParent,
                                                nsIContent* aKid,
                                                uint32_t aIndex,
                                                bool aNotify)
   : mSelect(HTMLSelectElement::FromContentOrNull(aSelect))
   , mTopLevelMutation(false)
   , mNeedsRebuild(false)
+  , mNotify(aNotify)
+  , mInitialSelectedIndex(-1)
 {
   if (mSelect) {
+    mInitialSelectedIndex = mSelect->SelectedIndex();
     mTopLevelMutation = !mSelect->mMutating;
     if (mTopLevelMutation) {
       mSelect->mMutating = true;
     } else {
       // This is very unfortunate, but to handle mutation events properly,
       // option list must be up-to-date before inserting or removing options.
       // Fortunately this is called only if mutation event listener
       // adds or removes options.
-      mSelect->RebuildOptionsArray(aNotify);
+      mSelect->RebuildOptionsArray(mNotify);
     }
     nsresult rv;
     if (aKid) {
-      rv = mSelect->WillAddOptions(aKid, aParent, aIndex, aNotify);
+      rv = mSelect->WillAddOptions(aKid, aParent, aIndex, mNotify);
     } else {
-      rv = mSelect->WillRemoveOptions(aParent, aIndex, aNotify);
+      rv = mSelect->WillRemoveOptions(aParent, aIndex, mNotify);
     }
     mNeedsRebuild = NS_FAILED(rv);
   }
 }
 
 SafeOptionListMutation::~SafeOptionListMutation()
 {
   if (mSelect) {
     if (mNeedsRebuild || (mTopLevelMutation && mGuard.Mutated(1))) {
       mSelect->RebuildOptionsArray(true);
     }
     if (mTopLevelMutation) {
       mSelect->mMutating = false;
     }
+    if (mSelect->SelectedIndex() != mInitialSelectedIndex) {
+      // We must have triggered the SelectSomething() codepath, which can cause
+      // our validity to change.  Unfortunately, our attempt to update validity
+      // in that case may not have worked correctly, because we actually call it
+      // before we have inserted the new <option>s into the DOM!  Go ahead and
+      // update validity here as needed, because by now we know our <option>s
+      // are where they should be.
+      mSelect->UpdateValueMissingValidityState();
+      mSelect->UpdateState(mNotify);
+    }
 #ifdef DEBUG
     mSelect->VerifyOptionsArray();
 #endif
   }
 }
 
 //----------------------------------------------------------------------
 //
@@ -1769,29 +1782,34 @@ HTMLSelectElement::IsValueMissing()
   if (!Required()) {
     return false;
   }
 
   uint32_t length = Length();
 
   for (uint32_t i = 0; i < length; ++i) {
     RefPtr<HTMLOptionElement> option = Item(i);
+    // Check for a placeholder label option, don't count it as a valid value.
+    if (i == 0 && !Multiple() && Size() <= 1 && option->GetParent() == this) {
+      nsAutoString value;
+      MOZ_ALWAYS_SUCCEEDS(option->GetValue(value));
+      if (value.IsEmpty()) {
+        continue;
+      }
+    }
+
     if (!option->Selected()) {
       continue;
     }
 
     if (IsOptionDisabled(option)) {
       continue;
     }
 
-    nsAutoString value;
-    MOZ_ALWAYS_SUCCEEDS(option->GetValue(value));
-    if (!value.IsEmpty()) {
-      return false;
-    }
+    return false;
   }
 
   return true;
 }
 
 void
 HTMLSelectElement::UpdateValueMissingValidityState()
 {
--- a/dom/html/HTMLSelectElement.h
+++ b/dom/html/HTMLSelectElement.h
@@ -101,16 +101,21 @@ private:
   static void* operator new(size_t) CPP_THROW_NEW { return 0; }
   static void operator delete(void*, size_t) {}
   /** The select element which option list is being mutated. */
   RefPtr<HTMLSelectElement> mSelect;
   /** true if the current mutation is the first one in the stack. */
   bool                       mTopLevelMutation;
   /** true if it is known that the option list must be recreated. */
   bool                       mNeedsRebuild;
+  /** Whether we should be notifying when we make various method calls on
+      mSelect */
+  const bool                 mNotify;
+  /** The selected index at mutation start. */
+  int32_t                    mInitialSelectedIndex;
   /** Option list must be recreated if more than one mutation is detected. */
   nsMutationGuard            mGuard;
 };
 
 
 /**
  * Implementation of &lt;select&gt;
  */
--- a/dom/html/test/test_bug596511.html
+++ b/dom/html/test/test_bug596511.html
@@ -138,26 +138,28 @@ function checkInvalidWhenValueMissing(el
   checkSufferingFromBeingMissing(select);
 
   select.add(new Option("foo", "foo"), null);
   checkNotSufferingFromBeingMissing(select);
 
   select.add(new Option(), null);
   checkNotSufferingFromBeingMissing(select);
 
+  // The placeholder label can only be the first option, so a selected empty second option is valid
   select.options[1].selected = true;
-  checkSufferingFromBeingMissing(select);
+  checkNotSufferingFromBeingMissing(select);
 
   select.selectedIndex = 0;
   checkNotSufferingFromBeingMissing(select);
 
-  select.selectedIndex = 1;
+  select.add(select.options[0]);
+  select.selectedIndex = 0;
   checkSufferingFromBeingMissing(select);
 
-  select.remove(1);
+  select.remove(0);
   checkNotSufferingFromBeingMissing(select);
 
   select.options[0].disabled = true;
   // TODO: having that working would require us to add a mutation observer on
   // the select element.
   checkSufferingFromBeingMissing(select, true);
 
   select.options[0].disabled = false
@@ -177,18 +179,23 @@ function checkInvalidWhenValueMissing(el
   /**
    * Non-multiple and size > 1.
    * Everything should be the same except moving the selection.
    */
   select.multiple = false;
   select.size = 4;
   checkSufferingFromBeingMissing(select);
 
+  // Setting defaultSelected to true should not make the option selected
   select.add(new Option("", "", true), null);
-  checkSufferingFromBeingMissing(select);
+  checkSufferingFromBeingMissing(select, true);
+  select.remove(0);
+
+  select.add(new Option("", "", true, true), null);
+  checkNotSufferingFromBeingMissing(select);
 
   select.add(new Option("foo", "foo"), null);
   select.remove(0);
   checkSufferingFromBeingMissing(select);
 
   select.options[0].selected = true;
   checkNotSufferingFromBeingMissing(select);
 
@@ -198,23 +205,23 @@ function checkInvalidWhenValueMissing(el
    * Multiple, any size.
    * We can select more than one element and at least needs a value.
    */
   select.multiple = true;
   select.size = 4;
   checkSufferingFromBeingMissing(select);
 
   select.add(new Option("", "", true), null);
-  checkSufferingFromBeingMissing(select);
+  checkSufferingFromBeingMissing(select, true);
 
   select.add(new Option("", "", true), null);
-  checkSufferingFromBeingMissing(select);
+  checkSufferingFromBeingMissing(select, true);
 
   select.add(new Option("foo"), null);
-  checkSufferingFromBeingMissing(select);
+  checkSufferingFromBeingMissing(select, true);
 
   select.options[2].selected = true;
   checkNotSufferingFromBeingMissing(select);
 }
 
 var select = document.createElement("select");
 var content = document.getElementById('content');
 content.appendChild(select);
--- a/dom/html/test/test_bug605124-2.html
+++ b/dom/html/test/test_bug605124-2.html
@@ -83,27 +83,27 @@ function checkSelectElement(aElement)
   checkPseudoClass(aElement, false);
 
   aElement.selectedIndex = 1;
   checkPseudoClass(aElement, false);
   aElement.selectedIndex = 0;
   checkPseudoClass(aElement, false);
 
   aElement.blur();
-  checkPseudoClass(aElement, true);
+  checkPseudoClass(aElement, !aElement.multiple);
 
   // Focusing while :-moz-ui-invalid applies,
   // the pseudo-class should apply while changing selection if appropriate.
   aElement.focus();
-  checkPseudoClass(aElement, true);
+  checkPseudoClass(aElement, !aElement.multiple);
 
   aElement.selectedIndex = 1;
   checkPseudoClass(aElement, false);
   aElement.selectedIndex = 0;
-  checkPseudoClass(aElement, true);
+  checkPseudoClass(aElement, !aElement.multiple);
 }
 
 checkElement(document.getElementsByTagName('input')[0]);
 checkElement(document.getElementsByTagName('textarea')[0]);
 checkSelectElement(document.getElementsByTagName('select')[0]);
 checkSelectElement(document.getElementsByTagName('select')[1]);
 
 </script>
--- a/dom/html/test/test_bug605125-2.html
+++ b/dom/html/test/test_bug605125-2.html
@@ -116,27 +116,31 @@ function checkSelectElement(aElement)
 
   aElement.selectedIndex = 1;
   checkPseudoClass(aElement, true);
   aElement.selectedIndex = 0;
   checkPseudoClass(aElement, true);
 
   aElement.blur();
   aElement.required = true;
+  // select set with multiple is only invalid if no option is selected
+  if (aElement.multiple) {
+    aElement.selectedIndex = -1;
+  }
   checkPseudoClass(aElement, false);
 
   // Focusing while :-moz-ui-invalid applies,
   // the pseudo-class should apply while changing selection if appropriate.
   aElement.focus();
   checkPseudoClass(aElement, false);
 
   aElement.selectedIndex = 1;
   checkPseudoClass(aElement, true);
   aElement.selectedIndex = 0;
-  checkPseudoClass(aElement, false);
+  checkPseudoClass(aElement, aElement.multiple);
 }
 
 checkElement(document.getElementsByTagName('input')[0]);
 checkElement(document.getElementsByTagName('textarea')[0]);
 checkSelectElement(document.getElementsByTagName('select')[0]);
 checkSelectElement(document.getElementsByTagName('select')[1]);
 
 </script>
--- a/dom/html/test/test_bug612730.html
+++ b/dom/html/test/test_bug612730.html
@@ -29,20 +29,20 @@ function runTest()
 {
   var select = document.getElementsByTagName('select')[0];
 
   select.addEventListener("focus", function() {
     select.removeEventListener("focus", arguments.callee, false);
 
     isnot(select.selectedIndex, -1, "Something should have been selected");
 
-    ok(!select.matches(":-moz-ui-valid"),
-       ":-moz-ui-valid should not apply");
-    todo(!select.matches(":-moz-ui-invalid"),
-         ":-moz-ui-invalid should not apply");
+    ok(!select.matches(":-moz-ui-invalid"),
+       ":-moz-ui-invalid should not apply");
+    todo(!select.matches(":-moz-ui-valid"),
+         ":-moz-ui-valid should not apply");
 
     SimpleTest.finish();
   }, false);
 
   synthesizeMouse(select, 5, 5, {});
 }
 
 SimpleTest.waitForFocus(runTest);
--- a/dom/html/test/test_bug622597.html
+++ b/dom/html/test/test_bug622597.html
@@ -11,17 +11,17 @@ https://bugzilla.mozilla.org/show_bug.cg
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=622597">Mozilla Bug 622597</a>
 <p id="display"></p>
 <div id="content">
   <form>
     <input required>
     <textarea required></textarea>
-    <select required><option>foo</option><option value="">bar</option></select>
+    <select required><option value="">foo</option><option selected>bar</option></select>
     <button>submit</button>
   </form>
 </div>
 <pre id="test">
 <script type="application/javascript">
 
 /** Test for Bug 622597 **/
 
@@ -60,17 +60,17 @@ select.addEventListener("focus", functio
 textarea.addEventListener("focus", function() {
   textarea.removeEventListener("focus", arguments.callee, false);
 
   SimpleTest.executeSoon(function() {
     form.noValidate = false;
     SimpleTest.executeSoon(function() {
       checkPseudoClasses(textarea, false, true);
       form.noValidate = true;
-      select.selectedIndex = 1;
+      select.selectedIndex = 0;
       select.focus();
     });
   });
 }, false);
 
 input.addEventListener("invalid", function() {
   input.removeEventListener("invalid", arguments.callee, false);
 
--- a/dom/media/MediaDecoderReader.cpp
+++ b/dom/media/MediaDecoderReader.cpp
@@ -75,24 +75,28 @@ MediaDecoderReader::MediaDecoderReader(A
   , mBuffered(mTaskQueue, TimeIntervals(), "MediaDecoderReader::mBuffered (Canonical)")
   , mDuration(mTaskQueue, NullableTimeUnit(), "MediaDecoderReader::mDuration (Mirror)")
   , mIgnoreAudioOutputFormat(false)
   , mHitAudioDecodeError(false)
   , mShutdown(false)
 {
   MOZ_COUNT_CTOR(MediaDecoderReader);
   MOZ_ASSERT(NS_IsMainThread());
+}
 
+nsresult
+MediaDecoderReader::Init()
+{
   if (mDecoder && mDecoder->DataArrivedEvent()) {
     mDataArrivedListener = mDecoder->DataArrivedEvent()->Connect(
       mTaskQueue, this, &MediaDecoderReader::NotifyDataArrived);
   }
-
   // Dispatch initialization that needs to happen on that task queue.
   mTaskQueue->Dispatch(NewRunnableMethod(this, &MediaDecoderReader::InitializationTask));
+  return InitInternal();
 }
 
 void
 MediaDecoderReader::InitializationTask()
 {
   if (!mDecoder) {
     return;
   }
--- a/dom/media/MediaDecoderReader.h
+++ b/dom/media/MediaDecoderReader.h
@@ -82,17 +82,17 @@ public:
   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaDecoderReader)
 
   // The caller must ensure that Shutdown() is called before aDecoder is
   // destroyed.
   explicit MediaDecoderReader(AbstractMediaDecoder* aDecoder);
 
   // Initializes the reader, returns NS_OK on success, or NS_ERROR_FAILURE
   // on failure.
-  virtual nsresult Init() { return NS_OK; }
+  nsresult Init();
 
   // Called by MDSM in dormant state to release resources allocated by this
   // reader. The reader can resume decoding by calling Seek() to a specific
   // position.
   virtual void ReleaseResources() {}
 
   // Destroys the decoding state. The reader cannot be made usable again.
   // This is different from ReleaseMediaResources() as it is irreversable,
@@ -320,16 +320,18 @@ protected:
 
   // Used to send TimedMetadata to the listener.
   TimedMetadataEventProducer mTimedMetadataEvent;
 
   // Notify if this media is not seekable.
   MediaEventProducer<void> mOnMediaNotSeekable;
 
 private:
+  virtual nsresult InitInternal() { return NS_OK; }
+
   // Does any spinup that needs to happen on this task queue. This runs on a
   // different thread than Init, and there should not be ordering dependencies
   // between the two (even though in practice, Init will always run first right
   // now thanks to the tail dispatcher).
   void InitializationTask();
 
   // Read header data for all bitstreams in the file. Fills aInfo with
   // the data required to present the media, and optionally fills *aTags
--- a/dom/media/MediaFormatReader.cpp
+++ b/dom/media/MediaFormatReader.cpp
@@ -553,17 +553,17 @@ MediaFormatReader::InitLayersBackendType
   RefPtr<LayerManager> layerManager =
     nsContentUtils::LayerManagerForDocument(element->OwnerDoc());
   NS_ENSURE_TRUE_VOID(layerManager);
 
   mKnowsCompositor = layerManager->AsShadowForwarder();
 }
 
 nsresult
-MediaFormatReader::Init()
+MediaFormatReader::InitInternal()
 {
   MOZ_ASSERT(NS_IsMainThread(), "Must be on main thread.");
 
   InitLayersBackendType();
 
   mAudio.mTaskQueue =
     new TaskQueue(GetMediaThreadPool(MediaThreadType::PLATFORM_DECODER));
   mVideo.mTaskQueue =
--- a/dom/media/MediaFormatReader.h
+++ b/dom/media/MediaFormatReader.h
@@ -28,18 +28,16 @@ class MediaFormatReader final : public M
 
 public:
   MediaFormatReader(AbstractMediaDecoder* aDecoder,
                     MediaDataDemuxer* aDemuxer,
                     VideoFrameContainer* aVideoFrameContainer = nullptr);
 
   virtual ~MediaFormatReader();
 
-  nsresult Init() override;
-
   size_t SizeOfVideoQueueInFrames() override;
   size_t SizeOfAudioQueueInFrames() override;
 
   RefPtr<MediaDataPromise>
   RequestVideoData(bool aSkipToNextKeyframe, int64_t aTimeThreshold) override;
 
   RefPtr<MediaDataPromise> RequestAudioData() override;
 
@@ -81,16 +79,17 @@ public:
 
   // Returns a string describing the state of the decoder data.
   // Used for debugging purposes.
   void GetMozDebugReaderData(nsAString& aString);
 
   void SetVideoBlankDecode(bool aIsBlankDecode) override;
 
 private:
+  nsresult InitInternal() override;
 
   bool HasVideo() const { return mVideo.mTrackDemuxer; }
   bool HasAudio() const { return mAudio.mTrackDemuxer; }
 
   bool IsWaitingOnCDMResource();
 
   bool InitDemuxer();
   // Notify the demuxer that new data has been received.
--- a/dom/security/test/cors/test_CrossSiteXHR.html
+++ b/dom/security/test/cors/test_CrossSiteXHR.html
@@ -668,17 +668,17 @@ function runTest() {
                  "multipart/form-data",
                  "application/x-www-form-urlencoded"]
                    .indexOf(test.headers[name].toLowerCase()) == -1);
       }
       req.url += "&headers=" + escape(test.headers.toSource());
       reqHeaders =
         escape(Object.keys(test.headers)
                .filter(isUnsafeHeader)
-               .map(String.toLowerCase)
+               .map(s => s.toLowerCase())
                .sort()
                .join(","));
       req.url += reqHeaders ? "&requestHeaders=" + reqHeaders : "";
     }
     if ("allowHeaders" in test)
       req.url += "&allowHeaders=" + escape(test.allowHeaders);
     if ("allowMethods" in test)
       req.url += "&allowMethods=" + escape(test.allowMethods);
--- a/dom/tests/mochitest/fetch/test_fetch_cors.js
+++ b/dom/tests/mochitest/fetch/test_fetch_cors.js
@@ -754,17 +754,17 @@ function testModeCors() {
                  "multipart/form-data",
                  "application/x-www-form-urlencoded"]
                    .indexOf(test.headers[name].toLowerCase()) == -1);
       }
       req.url += "&headers=" + escape(test.headers.toSource());
       reqHeaders =
         escape(Object.keys(test.headers)
                .filter(isUnsafeHeader)
-               .map(String.toLowerCase)
+               .map(s => s.toLowerCase())
                .sort()
                .join(","));
       req.url += reqHeaders ? "&requestHeaders=" + reqHeaders : "";
     }
     if ("allowHeaders" in test)
       req.url += "&allowHeaders=" + escape(test.allowHeaders);
     if ("allowMethods" in test)
       req.url += "&allowMethods=" + escape(test.allowMethods);
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -3230,24 +3230,45 @@ HTMLEditor::ContentInserted(nsIDocument*
                             nsIContent* aContainer,
                             nsIContent* aChild,
                             int32_t aIndexInContainer)
 {
   DoContentInserted(aDocument, aContainer, aChild, aIndexInContainer,
                     eInserted);
 }
 
+bool
+HTMLEditor::IsInObservedSubtree(nsIDocument* aDocument,
+                                nsIContent* aContainer,
+                                nsIContent* aChild)
+{
+  if (!aChild) {
+    return false;
+  }
+
+  Element* root = GetRoot();
+  // To be super safe here, check both ChromeOnlyAccess and GetBindingParent.
+  // That catches (also unbound) native anonymous content, XBL and ShadowDOM.
+  if (root &&
+      (root->ChromeOnlyAccess() != aChild->ChromeOnlyAccess() ||
+       root->GetBindingParent() != aChild->GetBindingParent())) {
+    return false;
+  }
+
+  return !aChild->ChromeOnlyAccess() && !aChild->GetBindingParent();
+}
+
 void
 HTMLEditor::DoContentInserted(nsIDocument* aDocument,
                               nsIContent* aContainer,
                               nsIContent* aChild,
                               int32_t aIndexInContainer,
                               InsertedOrAppended aInsertedOrAppended)
 {
-  if (!aChild) {
+  if (!IsInObservedSubtree(aDocument, aContainer, aChild)) {
     return;
   }
 
   nsCOMPtr<nsIHTMLEditor> kungFuDeathGrip(this);
 
   if (ShouldReplaceRootElement()) {
     nsContentUtils::AddScriptRunner(NewRunnableMethod(
       this, &HTMLEditor::ResetRootElementAndEventTarget));
@@ -3285,16 +3306,20 @@ HTMLEditor::DoContentInserted(nsIDocumen
 
 void
 HTMLEditor::ContentRemoved(nsIDocument* aDocument,
                            nsIContent* aContainer,
                            nsIContent* aChild,
                            int32_t aIndexInContainer,
                            nsIContent* aPreviousSibling)
 {
+  if (!IsInObservedSubtree(aDocument, aContainer, aChild)) {
+    return;
+  }
+
   nsCOMPtr<nsIHTMLEditor> kungFuDeathGrip(this);
 
   if (SameCOMIdentity(aChild, mRootElement)) {
     nsContentUtils::AddScriptRunner(NewRunnableMethod(
       this, &HTMLEditor::ResetRootElementAndEventTarget));
   }
   // We don't need to handle our own modifications
   else if (!mAction && (aContainer ? aContainer->IsEditable() : aDocument->IsEditable())) {
--- a/editor/libeditor/HTMLEditor.h
+++ b/editor/libeditor/HTMLEditor.h
@@ -935,16 +935,20 @@ protected:
   nsresult GetPositionAndDimensions(nsIDOMElement* aElement,
                                     int32_t& aX, int32_t& aY,
                                     int32_t& aW, int32_t& aH,
                                     int32_t& aBorderLeft,
                                     int32_t& aBorderTop,
                                     int32_t& aMarginLeft,
                                     int32_t& aMarginTop);
 
+  bool IsInObservedSubtree(nsIDocument* aDocument,
+                           nsIContent* aContainer,
+                           nsIContent* aChild);
+
   // resizing
   bool mIsObjectResizingEnabled;
   bool mIsResizing;
   bool mPreserveRatio;
   bool mResizedObjectIsAnImage;
 
   // absolute positioning
   bool mIsAbsolutelyPositioningEnabled;
--- a/editor/libeditor/TextEditRules.cpp
+++ b/editor/libeditor/TextEditRules.cpp
@@ -20,17 +20,16 @@
 #include "nsCRT.h"
 #include "nsCRTGlue.h"
 #include "nsComponentManagerUtils.h"
 #include "nsContentUtils.h"
 #include "nsDebug.h"
 #include "nsError.h"
 #include "nsGkAtoms.h"
 #include "nsIContent.h"
-#include "nsIDOMCharacterData.h"
 #include "nsIDOMDocument.h"
 #include "nsIDOMElement.h"
 #include "nsIDOMNode.h"
 #include "nsIDOMNodeFilter.h"
 #include "nsIDOMNodeIterator.h"
 #include "nsIDOMNodeList.h"
 #include "nsIDOMText.h"
 #include "nsNameSpaceManager.h"
@@ -477,36 +476,34 @@ TextEditRules::CollapseSelectionToTraili
                                                           parentOffset + 1);
   if (nextNode && TextEditUtils::IsMozBR(nextNode)) {
     rv = aSelection->Collapse(parentNode, parentOffset + 1);
     NS_ENSURE_SUCCESS(rv, rv);
   }
   return NS_OK;
 }
 
-static inline already_AddRefed<nsIDOMNode>
-GetTextNode(Selection* selection,
-            EditorBase* editor)
+static inline already_AddRefed<nsINode>
+GetTextNode(Selection* selection)
 {
   int32_t selOffset;
-  nsCOMPtr<nsIDOMNode> selNode;
+  nsCOMPtr<nsINode> selNode;
   nsresult rv =
-    editor->GetStartNodeAndOffset(selection,
-                                  getter_AddRefs(selNode), &selOffset);
+    EditorBase::GetStartNodeAndOffset(selection,
+                                      getter_AddRefs(selNode), &selOffset);
   NS_ENSURE_SUCCESS(rv, nullptr);
-  if (!editor->IsTextNode(selNode)) {
-    // Get an nsINode from the nsIDOMNode
-    nsCOMPtr<nsINode> node = do_QueryInterface(selNode);
-    // if node is null, return it to indicate there's no text
-    NS_ENSURE_TRUE(node, nullptr);
+  if (!EditorBase::IsTextNode(selNode)) {
     // This should be the root node, walk the tree looking for text nodes
     RefPtr<NodeIterator> iter =
-      new NodeIterator(node, nsIDOMNodeFilter::SHOW_TEXT, NodeFilterHolder());
-    while (!editor->IsTextNode(selNode)) {
-      if (NS_FAILED(iter->NextNode(getter_AddRefs(selNode))) || !selNode) {
+      new NodeIterator(selNode, nsIDOMNodeFilter::SHOW_TEXT,
+                       NodeFilterHolder());
+    while (!EditorBase::IsTextNode(selNode)) {
+      IgnoredErrorResult rv;
+      selNode = iter->NextNode(rv);
+      if (!selNode) {
         return nullptr;
       }
     }
   }
   return selNode.forget();
 }
 #ifdef DEBUG
 #define ASSERT_PASSWORD_LENGTHS_EQUAL()                                \
@@ -1380,23 +1377,20 @@ TextEditRules::HideLastPWInput()
 
   NS_ENSURE_STATE(mTextEditor);
   RefPtr<Selection> selection = mTextEditor->GetSelection();
   NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
   int32_t start, end;
   nsContentUtils::GetSelectionInTextControl(selection, mTextEditor->GetRoot(),
                                             start, end);
 
-  nsCOMPtr<nsIDOMNode> selNode = GetTextNode(selection, mTextEditor);
+  nsCOMPtr<nsINode> selNode = GetTextNode(selection);
   NS_ENSURE_TRUE(selNode, NS_OK);
 
-  nsCOMPtr<nsIDOMCharacterData> nodeAsText(do_QueryInterface(selNode));
-  NS_ENSURE_TRUE(nodeAsText, NS_OK);
-
-  nodeAsText->ReplaceData(mLastStart, mLastLength, hiddenText);
+  selNode->GetAsText()->ReplaceData(mLastStart, mLastLength, hiddenText);
   selection->Collapse(selNode, start);
   if (start != end) {
     selection->Extend(selNode, end);
   }
   return NS_OK;
 }
 
 // static
--- a/gfx/2d/Factory.cpp
+++ b/gfx/2d/Factory.cpp
@@ -395,17 +395,17 @@ Factory::CreateDrawTargetForData(Backend
     return nullptr;
   }
 
   if (mRecorder && retVal) {
     return MakeAndAddRef<DrawTargetRecording>(mRecorder, retVal, true);
   }
 
   if (!retVal) {
-    gfxCriticalNote << "Failed to create DrawTarget, Type: " << int(aBackend) << " Size: " << aSize << ", Data: " << hexa(aData) << ", Stride: " << aStride;
+    gfxCriticalNote << "Failed to create DrawTarget, Type: " << int(aBackend) << " Size: " << aSize << ", Data: " << hexa((void *)aData) << ", Stride: " << aStride;
   }
 
   return retVal.forget();
 }
 
 already_AddRefed<DrawTarget>
 Factory::CreateTiledDrawTarget(const TileSet& aTileSet)
 {
--- a/gfx/layers/d3d11/TextureD3D11.cpp
+++ b/gfx/layers/d3d11/TextureD3D11.cpp
@@ -8,16 +8,17 @@
 #include "gfxContext.h"
 #include "Effects.h"
 #include "gfxWindowsPlatform.h"
 #include "gfx2DGlue.h"
 #include "gfxPrefs.h"
 #include "ReadbackManagerD3D11.h"
 #include "mozilla/gfx/DeviceManagerDx.h"
 #include "mozilla/gfx/Logging.h"
+#include "mozilla/layers/CompositorBridgeChild.h"
 
 namespace mozilla {
 
 using namespace gfx;
 
 namespace layers {
 
 static const GUID sD3D11TextureUsage =
@@ -1189,93 +1190,97 @@ CompositingRenderTargetD3D11::BindRender
 }
 
 IntSize
 CompositingRenderTargetD3D11::GetSize() const
 {
   return TextureSourceD3D11::GetSize();
 }
 
-SyncObjectD3D11::SyncObjectD3D11(SyncHandle aHandle)
+SyncObjectD3D11::SyncObjectD3D11(SyncHandle aSyncHandle)
+ : mSyncHandle(aSyncHandle)
+{
+}
+
+bool
+SyncObjectD3D11::Init()
 {
-  MOZ_ASSERT(aHandle);
+  if (mKeyedMutex) {
+    return true;
+  }
+
+  RefPtr<ID3D11Device> device = DeviceManagerDx::Get()->GetContentDevice();
 
-  mHandle = aHandle;
+  HRESULT hr = device->OpenSharedResource(
+    mSyncHandle,
+    __uuidof(ID3D11Texture2D),
+    (void**)(ID3D11Texture2D**)getter_AddRefs(mD3D11Texture));
+  if (FAILED(hr) || !mD3D11Texture) {
+    gfxCriticalNote << "Failed to OpenSharedResource for SyncObjectD3D11: " << hexa(hr);
+    if (!CompositorBridgeChild::CompositorIsInGPUProcess() &&
+        !DeviceManagerDx::Get()->HasDeviceReset())
+    {
+      gfxDevCrash(LogReason::D3D11FinalizeFrame) << "Without device reset: " << hexa(hr);
+    }
+  }
+
+  hr = mD3D11Texture->QueryInterface(__uuidof(IDXGIKeyedMutex), getter_AddRefs(mKeyedMutex));
+  if (FAILED(hr) || !mKeyedMutex) {
+    // Leave both the critical error and MOZ_CRASH for now; the critical error lets
+    // us "save" the hr value.  We will probably eventuall replace this with gfxDevCrash.
+    gfxCriticalError() << "Failed to get KeyedMutex (2): " << hexa(hr);
+    MOZ_CRASH("GFX: Cannot get D3D11 KeyedMutex");
+  }
+
+  return true;
 }
 
 void
 SyncObjectD3D11::RegisterTexture(ID3D11Texture2D* aTexture)
 {
   mD3D11SyncedTextures.push_back(aTexture);
 }
 
 void
 SyncObjectD3D11::FinalizeFrame()
 {
-  HRESULT hr;
-
-  if (!mD3D11Texture && mD3D11SyncedTextures.size()) {
-    RefPtr<ID3D11Device> device = DeviceManagerDx::Get()->GetContentDevice();
-
-    hr = device->OpenSharedResource(mHandle, __uuidof(ID3D11Texture2D), (void**)(ID3D11Texture2D**)getter_AddRefs(mD3D11Texture));
-
-    if (FAILED(hr) || !mD3D11Texture) {
-      gfxCriticalError() << "Failed to D3D11 OpenSharedResource for frame finalization: " << hexa(hr);
-
-      if (DeviceManagerDx::Get()->HasDeviceReset()) {
-        return;
-      }
+  if (!mD3D11SyncedTextures.size()) {
+    return;
+  }
+  if (!Init()) {
+    return;
+  }
 
-      gfxDevCrash(LogReason::D3D11FinalizeFrame) << "Without device reset: " << hexa(hr);
-    }
-
-    // test QI
-    RefPtr<IDXGIKeyedMutex> mutex;
-    hr = mD3D11Texture->QueryInterface((IDXGIKeyedMutex**)getter_AddRefs(mutex));
+  HRESULT hr;
+  AutoTextureLock lock(mKeyedMutex, hr, 20000);
 
-    if (FAILED(hr) || !mutex) {
-      // Leave both the critical error and MOZ_CRASH for now; the critical error lets
-      // us "save" the hr value.  We will probably eventuall replace this with gfxDevCrash.
-      gfxCriticalError() << "Failed to get KeyedMutex (2): " << hexa(hr);
-      MOZ_CRASH("GFX: Cannot get D3D11 KeyedMutex");
+  if (hr == WAIT_TIMEOUT) {
+    if (DeviceManagerDx::Get()->HasDeviceReset()) {
+      gfxWarning() << "AcquireSync timed out because of device reset.";
+      return;
     }
+    gfxDevCrash(LogReason::D3D11SyncLock) << "Timeout on the D3D11 sync lock";
   }
 
-  if (mD3D11SyncedTextures.size()) {
-    RefPtr<IDXGIKeyedMutex> mutex;
-    hr = mD3D11Texture->QueryInterface((IDXGIKeyedMutex**)getter_AddRefs(mutex));
-    {
-      AutoTextureLock lock(mutex, hr, 20000);
-
-      if (hr == WAIT_TIMEOUT) {
-        if (DeviceManagerDx::Get()->HasDeviceReset()) {
-          gfxWarning() << "AcquireSync timed out because of device reset.";
-          return;
-        }
-        gfxDevCrash(LogReason::D3D11SyncLock) << "Timeout on the D3D11 sync lock";
-      }
-
-      D3D11_BOX box;
-      box.front = box.top = box.left = 0;
-      box.back = box.bottom = box.right = 1;
+  D3D11_BOX box;
+  box.front = box.top = box.left = 0;
+  box.back = box.bottom = box.right = 1;
 
-      RefPtr<ID3D11Device> dev = DeviceManagerDx::Get()->GetContentDevice();
-      if (!dev) {
-        if (DeviceManagerDx::Get()->HasDeviceReset()) {
-          return;
-        }
-        MOZ_CRASH("GFX: Invalid D3D11 content device");
-      }
+  RefPtr<ID3D11Device> dev = DeviceManagerDx::Get()->GetContentDevice();
+  if (!dev) {
+    if (DeviceManagerDx::Get()->HasDeviceReset()) {
+      return;
+    }
+    MOZ_CRASH("GFX: Invalid D3D11 content device");
+  }
 
-      RefPtr<ID3D11DeviceContext> ctx;
-      dev->GetImmediateContext(getter_AddRefs(ctx));
+  RefPtr<ID3D11DeviceContext> ctx;
+  dev->GetImmediateContext(getter_AddRefs(ctx));
 
-      for (auto iter = mD3D11SyncedTextures.begin(); iter != mD3D11SyncedTextures.end(); iter++) {
-        ctx->CopySubresourceRegion(mD3D11Texture, 0, 0, 0, 0, *iter, 0, &box);
-      }
-    }
+  for (auto iter = mD3D11SyncedTextures.begin(); iter != mD3D11SyncedTextures.end(); iter++) {
+    ctx->CopySubresourceRegion(mD3D11Texture, 0, 0, 0, 0, *iter, 0, &box);
+  }
 
-    mD3D11SyncedTextures.clear();
-  }
+  mD3D11SyncedTextures.clear();
 }
 
 }
 }
--- a/gfx/layers/d3d11/TextureD3D11.h
+++ b/gfx/layers/d3d11/TextureD3D11.h
@@ -416,19 +416,23 @@ public:
   SyncObjectD3D11(SyncHandle aSyncHandle);
   virtual void FinalizeFrame();
 
   virtual SyncType GetSyncType() { return SyncType::D3D11; }
 
   void RegisterTexture(ID3D11Texture2D* aTexture);
 
 private:
+  bool Init();
+
+private:
+  SyncHandle mSyncHandle;
   RefPtr<ID3D11Texture2D> mD3D11Texture;
+  RefPtr<IDXGIKeyedMutex> mKeyedMutex;
   std::vector<ID3D11Texture2D*> mD3D11SyncedTextures;
-  SyncHandle mHandle;
 };
 
 inline uint32_t GetMaxTextureSizeForFeatureLevel(D3D_FEATURE_LEVEL aFeatureLevel)
 {
   int32_t maxTextureSize;
   switch (aFeatureLevel) {
   case D3D_FEATURE_LEVEL_11_1:
   case D3D_FEATURE_LEVEL_11_0:
--- a/gfx/layers/ipc/CompositorBridgeChild.cpp
+++ b/gfx/layers/ipc/CompositorBridgeChild.cpp
@@ -291,16 +291,34 @@ CompositorBridgeChild::Get()
 
 // static
 bool
 CompositorBridgeChild::ChildProcessHasCompositorBridge()
 {
   return sCompositorBridge != nullptr;
 }
 
+/* static */ bool
+CompositorBridgeChild::CompositorIsInGPUProcess()
+{
+  MOZ_ASSERT(NS_IsMainThread());
+
+  if (XRE_IsParentProcess()) {
+    return !!GPUProcessManager::Get()->GetGPUChild();
+  }
+
+  MOZ_ASSERT(XRE_IsContentProcess());
+  CompositorBridgeChild* bridge = CompositorBridgeChild::Get();
+  if (!bridge) {
+    return false;
+  }
+
+  return bridge->OtherPid() != dom::ContentChild::GetSingleton()->OtherPid();
+}
+
 PLayerTransactionChild*
 CompositorBridgeChild::AllocPLayerTransactionChild(const nsTArray<LayersBackend>& aBackendHints,
                                                    const uint64_t& aId,
                                                    TextureFactoryIdentifier*,
                                                    bool*)
 {
   LayerTransactionChild* c = new LayerTransactionChild(aId);
   c->AddIPDLReference();
--- a/gfx/layers/ipc/CompositorBridgeChild.h
+++ b/gfx/layers/ipc/CompositorBridgeChild.h
@@ -83,16 +83,20 @@ public:
     bool aUseAPZ,
     bool aUseExternalSurface,
     const gfx::IntSize& aSurfaceSize);
 
   static CompositorBridgeChild* Get();
 
   static bool ChildProcessHasCompositorBridge();
 
+  // Returns whether the compositor is in the GPU process (false if in the UI
+  // process). This may only be called on the main thread.
+  static bool CompositorIsInGPUProcess();
+
   void AddOverfillObserver(ClientLayerManager* aLayerManager);
 
   virtual mozilla::ipc::IPCResult
   RecvClearCachedResources(const uint64_t& id) override;
 
   virtual mozilla::ipc::IPCResult
   RecvDidComposite(const uint64_t& aId, const uint64_t& aTransactionId,
                    const TimeStamp& aCompositeStart,
--- a/layout/forms/crashtests/crashtests.list
+++ b/layout/forms/crashtests/crashtests.list
@@ -18,17 +18,17 @@ load 366205-1.html
 load 366537-1.xhtml
 load 367587-1.html
 load 370703-1.html
 load 370940-1.html
 load 370967.html
 load 373586-1.xhtml
 load 375299.html
 load 378369.html
-asserts(4-10) load 378413-1.xhtml # bug 424225, bug 402850?
+load 378413-1.xhtml
 load 380116-1.xhtml
 load 382212-1.xhtml
 load 382610-1.html
 load 383887-1.html
 load 386554-1.html
 load 388374-1.xhtml
 load 388374-2.html
 load 393656-1.xhtml
--- a/layout/forms/nsFieldSetFrame.cpp
+++ b/layout/forms/nsFieldSetFrame.cpp
@@ -105,16 +105,17 @@ public:
                        HitTestState* aState,
                        nsTArray<nsIFrame*> *aOutFrames) override;
   virtual void Paint(nsDisplayListBuilder* aBuilder,
                      nsRenderingContext* aCtx) override;
   virtual nsDisplayItemGeometry* AllocateGeometry(nsDisplayListBuilder* aBuilder) override;
   virtual void ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
                                          const nsDisplayItemGeometry* aGeometry,
                                          nsRegion *aInvalidRegion) override;
+  virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder, bool* aSnap) override;
   NS_DISPLAY_DECL_NAME("FieldSetBorderBackground", TYPE_FIELDSET_BORDER_BACKGROUND)
 };
 
 void nsDisplayFieldSetBorderBackground::HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect,
                                                 HitTestState* aState, nsTArray<nsIFrame*> *aOutFrames)
 {
   // aPt is guaranteed to be in this item's bounds. We do the hit test based on the
   // frame bounds even though our background doesn't cover the whole frame.
@@ -150,16 +151,29 @@ nsDisplayFieldSetBorderBackground::Compu
       geometry->ShouldInvalidateToSyncDecodeImages()) {
     bool snap;
     aInvalidRegion->Or(*aInvalidRegion, GetBounds(aBuilder, &snap));
   }
 
   nsDisplayItem::ComputeInvalidationRegion(aBuilder, aGeometry, aInvalidRegion);
 }
 
+nsRect
+nsDisplayFieldSetBorderBackground::GetBounds(nsDisplayListBuilder* aBuilder,
+                                             bool* aSnap)
+{
+  // Just go ahead and claim our frame's overflow rect as the bounds, because we
+  // may have border-image-outset or other features that cause borders to extend
+  // outside the border rect.  We could try to duplicate all the complexity
+  // nsDisplayBorder has here, but keeping things in sync would be a pain, and
+  // this code is not typically performance-sensitive.
+  *aSnap = false;
+  return Frame()->GetVisualOverflowRectRelativeToSelf() + ToReferenceFrame();
+}
+
 void
 nsFieldSetFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                   const nsRect&           aDirtyRect,
                                   const nsDisplayListSet& aLists) {
   // Paint our background and border in a special way.
   // REVIEW: We don't really need to check frame emptiness here; if it's empty,
   // the background/border display item won't do anything, and if it isn't empty,
   // we need to paint the outline
@@ -212,85 +226,67 @@ nsFieldSetFrame::BuildDisplayList(nsDisp
 
 DrawResult
 nsFieldSetFrame::PaintBorder(
   nsDisplayListBuilder* aBuilder,
   nsRenderingContext& aRenderingContext,
   nsPoint aPt,
   const nsRect& aDirtyRect)
 {
-  // if the border is smaller than the legend. Move the border down
-  // to be centered on the legend.
+  // If the border is smaller than the legend, move the border down
+  // to be centered on the legend.  We call VisualBorderRectRelativeToSelf() to
+  // compute the border positioning.
   // FIXME: This means border-radius clamping is incorrect; we should
   // override nsIFrame::GetBorderRadii.
-  WritingMode wm = GetWritingMode();
-  nsRect rect = VisualBorderRectRelativeToSelf();
-  nscoord off = wm.IsVertical() ? rect.x : rect.y;
-  rect += aPt;
+  nsRect rect = VisualBorderRectRelativeToSelf() + aPt;
   nsPresContext* presContext = PresContext();
 
   PaintBorderFlags borderFlags = aBuilder->ShouldSyncDecodeImages()
                                ? PaintBorderFlags::SYNC_DECODE_IMAGES
                                : PaintBorderFlags();
 
   DrawResult result = DrawResult::SUCCESS;
 
   nsCSSRendering::PaintBoxShadowInner(presContext, aRenderingContext,
                                       this, rect);
 
   if (nsIFrame* legend = GetLegend()) {
-    Side legendSide = wm.PhysicalSide(eLogicalSideBStart);
-    nscoord legendBorderWidth =
-      StyleBorder()->GetComputedBorderWidth(legendSide);
-
-    // Use the rect of the legend frame, not mLegendRect, so we draw our
-    // border under the legend's inline-start and -end margins.
-    LogicalRect legendRect(wm, legend->GetRect() + aPt, rect.Size());
+    // We want to avoid drawing our border under the legend, so clip out the
+    // legend while drawing our border.  We don't want to use mLegendRect here,
+    // because we do want to draw our border under the legend's inline-start and
+    // -end margins.  And we use GetNormalRect(), not GetRect(), because we do
+    // not want relative positioning applied to the legend to change how our
+    // border looks.
+    nsRect legendRect = legend->GetNormalRect() + aPt;
 
-    // Compute clipRect using logical coordinates, so that the legend space
-    // will be clipped out of the appropriate physical side depending on mode.
-    LogicalRect clipRect = LogicalRect(wm, rect, rect.Size());
     DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();
+    // We set up a clip path which has our rect clockwise and the legend rect
+    // counterclockwise, with FILL_WINDING as the fill rule.  That will allow us
+    // to paint within our rect but outside the legend rect.  For "our rect" we
+    // use our visual overflow rect (relative to ourselves, so it's not affected
+    // by transforms), because we can have borders sticking outside our border
+    // box (e.g. due to border-image-outset).
+    RefPtr<PathBuilder> pathBuilder =
+      drawTarget->CreatePathBuilder(FillRule::FILL_WINDING);
+    int32_t appUnitsPerDevPixel = presContext->AppUnitsPerDevPixel();
+    AppendRectToPath(pathBuilder,
+                     NSRectToSnappedRect(GetVisualOverflowRectRelativeToSelf() + aPt,
+                                         appUnitsPerDevPixel,
+                                         *drawTarget),
+                     true);
+    AppendRectToPath(pathBuilder,
+                     NSRectToSnappedRect(legendRect, appUnitsPerDevPixel,
+                                         *drawTarget),
+                     false);
+    RefPtr<Path> clipPath = pathBuilder->Finish();
+
     gfxContext* gfx = aRenderingContext.ThebesContext();
-    int32_t appUnitsPerDevPixel = presContext->AppUnitsPerDevPixel();
-
-    // draw inline-start portion of the block-start side of the border
-    clipRect.ISize(wm) = legendRect.IStart(wm) - clipRect.IStart(wm);
-    clipRect.BSize(wm) = legendBorderWidth;
 
     gfx->Save();
-    gfx->Clip(NSRectToSnappedRect(clipRect.GetPhysicalRect(wm, rect.Size()),
-                                  appUnitsPerDevPixel, *drawTarget));
-    result &=
-      nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
-                                  aDirtyRect, rect, mStyleContext, borderFlags);
-    gfx->Restore();
-
-    // draw inline-end portion of the block-start side of the border
-    clipRect = LogicalRect(wm, rect, rect.Size());
-    clipRect.ISize(wm) = clipRect.IEnd(wm) - legendRect.IEnd(wm);
-    clipRect.IStart(wm) = legendRect.IEnd(wm);
-    clipRect.BSize(wm) = legendBorderWidth;
-
-    gfx->Save();
-    gfx->Clip(NSRectToSnappedRect(clipRect.GetPhysicalRect(wm, rect.Size()),
-                                  appUnitsPerDevPixel, *drawTarget));
-    result &=
-      nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
-                                  aDirtyRect, rect, mStyleContext, borderFlags);
-    gfx->Restore();
-
-    // draw remainder of the border (omitting the block-start side)
-    clipRect = LogicalRect(wm, rect, rect.Size());
-    clipRect.BStart(wm) += legendBorderWidth;
-    clipRect.BSize(wm) = BSize(wm) - (off + legendBorderWidth);
-
-    gfx->Save();
-    gfx->Clip(NSRectToSnappedRect(clipRect.GetPhysicalRect(wm, rect.Size()),
-                                  appUnitsPerDevPixel, *drawTarget));
+    gfx->Clip(clipPath);
     result &=
       nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
                                   aDirtyRect, rect, mStyleContext, borderFlags);
     gfx->Restore();
   } else {
     result &=
       nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
                                   aDirtyRect, nsRect(aPt, mRect.Size()),
@@ -340,52 +336,16 @@ nsFieldSetFrame::GetPrefISize(nsRenderin
   nscoord result = 0;
   DISPLAY_PREF_WIDTH(this, result);
 
   result = GetIntrinsicISize(aRenderingContext, nsLayoutUtils::PREF_ISIZE);
   return result;
 }
 
 /* virtual */
-LogicalSize
-nsFieldSetFrame::ComputeSize(nsRenderingContext *aRenderingContext,
-                             WritingMode aWM,
-                             const LogicalSize& aCBSize,
-                             nscoord aAvailableISize,
-                             const LogicalSize& aMargin,
-                             const LogicalSize& aBorder,
-                             const LogicalSize& aPadding,
-                             ComputeSizeFlags aFlags)
-{
-  LogicalSize result =
-    nsContainerFrame::ComputeSize(aRenderingContext, aWM,
-                                  aCBSize, aAvailableISize,
-                                  aMargin, aBorder, aPadding, aFlags);
-
-  // XXX The code below doesn't make sense if the caller's writing mode
-  // is orthogonal to this frame's. Not sure yet what should happen then;
-  // for now, just bail out.
-  if (aWM.IsVertical() != GetWritingMode().IsVertical()) {
-    return result;
-  }
-
-  // Fieldsets never shrink below their min width.
-
-  // If we're a container for font size inflation, then shrink
-  // wrapping inside of us should not apply font size inflation.
-  AutoMaybeDisableFontInflation an(this);
-
-  nscoord minISize = GetMinISize(aRenderingContext);
-  if (minISize > result.ISize(aWM)) {
-    result.ISize(aWM) = minISize;
-  }
-
-  return result;
-}
-
 void
 nsFieldSetFrame::Reflow(nsPresContext*           aPresContext,
                         ReflowOutput&     aDesiredSize,
                         const ReflowInput& aReflowInput,
                         nsReflowStatus&          aStatus)
 {
   MarkInReflow();
   DO_GLOBAL_REFLOW_COUNT("nsFieldSetFrame");
@@ -423,28 +383,16 @@ nsFieldSetFrame::Reflow(nsPresContext*  
   // to compute the available width for our children.
   WritingMode wm = GetWritingMode();
   WritingMode innerWM = inner ? inner->GetWritingMode() : wm;
   WritingMode legendWM = legend ? legend->GetWritingMode() : wm;
   LogicalSize innerAvailSize = aReflowInput.ComputedSizeWithPadding(innerWM);
   LogicalSize legendAvailSize = aReflowInput.ComputedSizeWithPadding(legendWM);
   innerAvailSize.BSize(innerWM) = legendAvailSize.BSize(legendWM) =
     NS_UNCONSTRAINEDSIZE;
-  NS_ASSERTION(!inner ||
-      nsLayoutUtils::IntrinsicForContainer(aReflowInput.mRenderingContext,
-                                           inner,
-                                           nsLayoutUtils::MIN_ISIZE) <=
-               innerAvailSize.ISize(innerWM),
-               "Bogus availSize.ISize; should be bigger");
-  NS_ASSERTION(!legend ||
-      nsLayoutUtils::IntrinsicForContainer(aReflowInput.mRenderingContext,
-                                           legend,
-                                           nsLayoutUtils::MIN_ISIZE) <=
-               legendAvailSize.ISize(legendWM),
-               "Bogus availSize.ISize; should be bigger");
 
   // get our border and padding
   LogicalMargin border = aReflowInput.ComputedLogicalBorderPadding() -
                          aReflowInput.ComputedLogicalPadding();
 
   // Figure out how big the legend is if there is one.
   // get the legend's margin
   LogicalMargin legendMargin(wm);
@@ -598,21 +546,18 @@ nsFieldSetFrame::Reflow(nsPresContext*  
         case NS_STYLE_VERTICAL_ALIGN_TOP:
         case NS_STYLE_VERTICAL_ALIGN_BOTTOM:
           mLegendRect.IStart(wm) = innerContentRect.IStart(wm);
           break;
         default:
           MOZ_ASSERT_UNREACHABLE("unexpected GetLogicalAlign value");
       }
     } else {
-      // otherwise make place for the legend
+      // otherwise just start-align it.
       mLegendRect.IStart(wm) = innerContentRect.IStart(wm);
-      innerContentRect.ISize(wm) = mLegendRect.ISize(wm);
-      contentRect.ISize(wm) = mLegendRect.ISize(wm) +
-        aReflowInput.ComputedLogicalPadding().IStartEnd(wm);
     }
 
     // place the legend
     LogicalRect actualLegendRect = mLegendRect;
     actualLegendRect.Deflate(wm, legendMargin);
     LogicalPoint actualLegendPos(actualLegendRect.Origin(wm));
 
     // Note that legend's writing mode may be different from the fieldset's,
--- a/layout/forms/nsFieldSetFrame.h
+++ b/layout/forms/nsFieldSetFrame.h
@@ -19,25 +19,16 @@ public:
 
   explicit nsFieldSetFrame(nsStyleContext* aContext);
 
   nscoord
     GetIntrinsicISize(nsRenderingContext* aRenderingContext,
                       nsLayoutUtils::IntrinsicISizeType);
   virtual nscoord GetMinISize(nsRenderingContext* aRenderingContext) override;
   virtual nscoord GetPrefISize(nsRenderingContext* aRenderingContext) override;
-  virtual mozilla::LogicalSize
-  ComputeSize(nsRenderingContext *aRenderingContext,
-              mozilla::WritingMode aWritingMode,
-              const mozilla::LogicalSize& aCBSize,
-              nscoord aAvailableISize,
-              const mozilla::LogicalSize& aMargin,
-              const mozilla::LogicalSize& aBorder,
-              const mozilla::LogicalSize& aPadding,
-              ComputeSizeFlags aFlags) override;
   virtual nscoord GetLogicalBaseline(mozilla::WritingMode aWritingMode) const override;
 
   /**
    * The area to paint box-shadows around.  It's the border rect except
    * when there's a <legend> we offset the y-position to the center of it.
    */
   virtual nsRect VisualBorderRectRelativeToSelf() const override;
 
--- a/layout/forms/nsGfxCheckboxControlFrame.cpp
+++ b/layout/forms/nsGfxCheckboxControlFrame.cpp
@@ -42,27 +42,8 @@ nsGfxCheckboxControlFrame::~nsGfxCheckbo
 
 #ifdef ACCESSIBILITY
 a11y::AccType
 nsGfxCheckboxControlFrame::AccessibleType()
 {
   return a11y::eHTMLCheckboxType;
 }
 #endif
-
-//------------------------------------------------------------
-bool
-nsGfxCheckboxControlFrame::IsChecked()
-{
-  nsCOMPtr<nsIDOMHTMLInputElement> elem(do_QueryInterface(mContent));
-  bool retval = false;
-  elem->GetChecked(&retval);
-  return retval;
-}
-
-bool
-nsGfxCheckboxControlFrame::IsIndeterminate()
-{
-  nsCOMPtr<nsIDOMHTMLInputElement> elem(do_QueryInterface(mContent));
-  bool retval = false;
-  elem->GetIndeterminate(&retval);
-  return retval;
-}
--- a/layout/forms/nsGfxCheckboxControlFrame.h
+++ b/layout/forms/nsGfxCheckboxControlFrame.h
@@ -20,17 +20,12 @@ public:
   virtual nsresult GetFrameName(nsAString& aResult) const override {
     return MakeFrameName(NS_LITERAL_STRING("CheckboxControl"), aResult);
   }
 #endif
 
 #ifdef ACCESSIBILITY
   virtual mozilla::a11y::AccType AccessibleType() override;
 #endif
-
-protected:
-
-  bool IsChecked();
-  bool IsIndeterminate();
 };
 
 #endif
 
--- a/layout/reftests/bugs/433700-ref.html
+++ b/layout/reftests/bugs/433700-ref.html
@@ -21,17 +21,20 @@ fieldset { border-right:7px solid blue; 
 #test3 .legend  { margin-left: 80px; background:pink; }
 
 #test4 { position:fixed; top:9em; width:200px; }
 #test4 fieldset { background:lime; width:260px; }
 #test4 .legend  { margin-left: 80px; background:pink; }
 
 #test5 { position:fixed; top:12em; width:200px; }
 #test5 fieldset { background:lime;}
-#test5 .legend  { margin-left: 193px; background:pink; }
+/* Percentage margins don't get counted in intrinsic width, so make sure that
+   our fixed-size margins sum to 0, so they also do not affect intrinsic width
+   either. */
+#test5 .legend  { margin-left: 193px; background:pink; margin-right: -193px; }
 
 #test6 { position:fixed; left:20px; top:15em; width:400px; }
 #test6 fieldset { width:300px; }
 #test6 fieldset div { position:relative; left:100px; padding-left:0px; width:200px; background:lime; }
 #test6 legend  { margin-left:0; background:pink; }
 
 fieldset div { padding-left:60px; }
 
--- a/layout/reftests/css-invalid/select/reftest.list
+++ b/layout/reftests/css-invalid/select/reftest.list
@@ -1,12 +1,12 @@
 needs-focus == select-valid.html select-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus == select-invalid.html select-ref.html
 fuzzy-if(skiaContent,2,6) needs-focus == select-disabled.html select-disabled-ref.html
 fuzzy-if(skiaContent,2,6) needs-focus == select-dyn-disabled.html select-disabled-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus == select-dyn-not-disabled.html select-ref.html
 needs-focus == select-required-invalid.html select-required-ref.html
 needs-focus == select-required-valid.html select-required-ref.html
-needs-focus == select-required-multiple-invalid.html select-required-multiple-ref.html
+needs-focus == select-required-multiple-still-valid.html select-required-multiple-ref.html
 fuzzy-if(skiaContent,1,250) needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
 fails-if(Android) fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
 fails-if(Android) fuzzy-if(skiaContent&&!Android,2,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
 fuzzy-if(skiaContent,2,5) needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
rename from layout/reftests/css-invalid/select/select-required-multiple-invalid.html
rename to layout/reftests/css-invalid/select/select-required-multiple-still-valid.html
--- a/layout/reftests/css-invalid/select/select-required-multiple-invalid.html
+++ b/layout/reftests/css-invalid/select/select-required-multiple-still-valid.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html>
 <html>
-  <!-- Test: if select is required and has all selected option value set to the
-             string string, :invalid should apply. -->
+  <!-- Test: if select is required and has all selected option values set to the
+             empty string, :invalid should still not apply. -->
   <link rel='stylesheet' type='text/css' href='style.css'>
   <body>
-    <select class='invalid' required multiple>
+    <select class='notinvalid' required multiple>
       <option selected></option>
       <option selected value="">foo</option>
     </select>
   </body>
 </html>
--- a/layout/reftests/css-valid/select/reftest.list
+++ b/layout/reftests/css-valid/select/reftest.list
@@ -1,12 +1,12 @@
 fuzzy-if(skiaContent,2,7) needs-focus == select-valid.html select-ref.html
 fuzzy-if(skiaContent,2,5) needs-focus == select-invalid.html select-ref.html
 needs-focus == select-disabled.html select-disabled-ref.html
 fuzzy-if(skiaContent,1,5) needs-focus == select-dyn-disabled.html select-disabled-ref.html
 fuzzy-if(skiaContent,2,5) needs-focus == select-dyn-not-disabled.html select-ref.html
 needs-focus == select-required-invalid.html select-required-ref.html
 needs-focus == select-required-valid.html select-required-ref.html
-needs-focus == select-required-multiple-invalid.html select-required-multiple-ref.html
+needs-focus == select-required-multiple-still-valid.html select-required-multiple-ref.html
 fuzzy-if(skiaContent,1,250) needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
 fails-if(Android) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
 fails-if(Android) fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
 needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
rename from layout/reftests/css-valid/select/select-required-multiple-invalid.html
rename to layout/reftests/css-valid/select/select-required-multiple-still-valid.html
--- a/layout/reftests/css-valid/select/select-required-multiple-invalid.html
+++ b/layout/reftests/css-valid/select/select-required-multiple-still-valid.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html>
 <html>
   <!-- Test: if select is required and has all selected option value set to the
-             string string, :valid should not apply. -->
+             empty string, :valid should still apply. -->
   <link rel='stylesheet' type='text/css' href='style.css'>
   <body>
-    <select class='notvalid' required multiple>
+    <select class='valid' required multiple>
       <option selected></option>
       <option selected value="">foo</option>
     </select>
   </body>
 </html>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5da01370015660ee34f6c45d4ce17366707177d2
GIT binary patch
literal 69
zc%17D@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Asp9}6B2&#GcYnUGTdBs
RcQa6&!PC{xWt~$(69BT94`ToT
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-1-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+  div {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+  }
+</style>
+<div></div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-1a.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+  }
+</style>
+<fieldset></fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-1b.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+  }
+</style>
+<fieldset><legend></legend></fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-2-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<style>
+  div {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+    transform: scale(0.5);
+  }
+</style>
+<div></div>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-2a.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+    transform: scale(0.5);
+  }
+</style>
+<fieldset></fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-border-image-2b.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    padding: 0;
+    margin: 10px;
+    height: 100px;
+    width: 100px;
+    border: 10px solid;
+    border-image-source: url(blue-1x1.png);
+    border-image-outset: 10px;
+    transform: scale(0.5);
+  }
+</style>
+<fieldset><legend></legend></fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-1-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<fieldset style="width: -moz-fit-content">
+  Longwordgoeshere
+</fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-1a.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<fieldset style="width: 0">
+  Longwordgoeshere
+</fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-1b.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<body style="width: 0">
+  <fieldset style="width: 0">
+    Longwordgoeshere
+  </fieldset>
+</body>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-2-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<fieldset style="width: -moz-fit-content">&zwnj;<!-- To give us the right height --></fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-2a.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<fieldset style="width: 0; min-width: 0">
+  <div style="visibility: hidden">Longwordgoeshere</div>
+</fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/fieldset-min-width-2b.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<body style="width: 0">
+  <fieldset style="min-width: 0">
+    <div style="visibility: hidden">Longwordgoeshere</div>
+  </fieldset>
+</body>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/legend-overlapping-right-border-1-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    min-width: 0;
+    width: 0;
+  }
+  legend {
+    width: 100px;
+    height: 20px;
+    background: white;
+  }
+</style>
+<fieldset>
+  <legend></legend>
+</fieldset>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/legend-overlapping-right-border-1.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<style>
+  fieldset {
+    min-width: 0;
+    width: 0;
+  }
+  legend {
+    width: 100px;
+    height: 20px;
+  }
+</style>
+<fieldset>
+  <legend></legend>
+</fieldset>
--- a/layout/reftests/forms/fieldset/reftest.list
+++ b/layout/reftests/forms/fieldset/reftest.list
@@ -3,14 +3,25 @@ fuzzy-if(skiaContent,2,13) == dynamic-le
 == fieldset-intrinsic-width-1.html fieldset-intrinsic-width-1-ref.html
 == fieldset-percentage-padding-1.html fieldset-percentage-padding-1-ref.html
 == fieldset-scroll-1.html fieldset-scroll-1-ref.html
 == fieldset-scrolled-1.html fieldset-scrolled-1-ref.html
 == fieldset-overflow-auto-1.html fieldset-overflow-auto-1-ref.html
 fuzzy-if(winWidget&&!layersGPUAccelerated,121,276) == positioned-container-1.html positioned-container-1-ref.html
 == relpos-legend-1.html relpos-legend-1-ref.html
 == relpos-legend-2.html relpos-legend-2-ref.html
+== relpos-legend-3.html relpos-legend-3-ref.html
+== relpos-legend-4.html relpos-legend-4-ref.html
 == sticky-legend-1.html sticky-legend-1-ref.html
 fuzzy-if(skiaContent,1,40768) == abs-pos-child-sizing.html abs-pos-child-sizing-ref.html
 == overflow-hidden.html overflow-hidden-ref.html
 == legend-rtl.html legend-rtl-ref.html
 == fieldset-grid-001.html fieldset-grid-001-ref.html
 == fieldset-flexbox-001.html fieldset-flexbox-001-ref.html
+== fieldset-min-width-1a.html fieldset-min-width-1-ref.html
+== fieldset-min-width-1b.html fieldset-min-width-1-ref.html
+== fieldset-min-width-2a.html fieldset-min-width-2-ref.html
+== fieldset-min-width-2b.html fieldset-min-width-2-ref.html
+== legend-overlapping-right-border-1.html legend-overlapping-right-border-1-ref.html
+== fieldset-border-image-1a.html fieldset-border-image-1-ref.html
+== fieldset-border-image-1b.html fieldset-border-image-1-ref.html
+== fieldset-border-image-2a.html fieldset-border-image-2-ref.html
+== fieldset-border-image-2b.html fieldset-border-image-2-ref.html
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/relpos-legend-3-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<fieldset>
+  <legend><div style="position:relative; left:20px">Legend</div></legend>
+</fieldset>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/relpos-legend-3.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<fieldset>
+  <legend style="position:relative; left:20px">Legend</legend>
+</fieldset>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/relpos-legend-4-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<fieldset>
+  <legend><span style="position:relative; left:20px">Legend</span></legend>
+</fieldset>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/forms/fieldset/relpos-legend-4.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<fieldset>
+  <legend style="display:inline; position:relative; left:20px">Legend</legend>
+</fieldset>
+</body>
+</html>
--- a/layout/style/ServoCSSRuleList.cpp
+++ b/layout/style/ServoCSSRuleList.cpp
@@ -92,17 +92,17 @@ ServoCSSRuleList::InsertRule(const nsASt
   NS_ConvertUTF16toUTF8 rule(aRule);
   // XXX This needs to actually reflect whether it is nested when we
   // support using CSSRuleList in CSSGroupingRules.
   bool nested = false;
   uint16_t type;
   nsresult rv = Servo_CssRules_InsertRule(mRawRules, mStyleSheet->RawSheet(),
                                           &rule, aIndex, nested, &type);
   if (!NS_FAILED(rv)) {
-    mRules.InsertElementAt(type);
+    mRules.InsertElementAt(aIndex, type);
   }
   return rv;
 }
 
 nsresult
 ServoCSSRuleList::DeleteRule(uint32_t aIndex)
 {
   nsresult rv = Servo_CssRules_DeleteRule(mRawRules, aIndex);
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -438,34 +438,39 @@ static nsSize CalcViewportUnitsScale(nsP
         viewportSize.width -= sizes.LeftRight();
       }
     }
   }
 
   return viewportSize;
 }
 
+// If |aStyleFont| is nullptr, aStyleContext->StyleFont() is used.
+//
+// In case that |aValue| is rem unit, if |aStyleContext| is null, callers must
+// specify a valid |aStyleFont| and |aUseProvidedRootEmSize| must be true so
+// that we can get the length from |aStyleFont|.
 static nscoord CalcLengthWith(const nsCSSValue& aValue,
                               nscoord aFontSize,
                               const nsStyleFont* aStyleFont,
                               nsStyleContext* aStyleContext,
                               nsPresContext* aPresContext,
                               bool aUseProvidedRootEmSize,
                               // aUseUserFontSet should always be true
                               // except when called from
                               // CalcLengthWithInitialFont.
                               bool aUseUserFontSet,
                               RuleNodeCacheConditions& aConditions)
 {
   NS_ASSERTION(aValue.IsLengthUnit() || aValue.IsCalcUnit(),
                "not a length or calc unit");
   NS_ASSERTION(aStyleFont || aStyleContext,
                "Must have style data");
-  NS_ASSERTION(!aStyleFont || !aStyleContext,
-               "Duplicate sources of data");
+  NS_ASSERTION(aStyleContext || aUseProvidedRootEmSize,
+               "Must have style context or specify aUseProvidedRootEmSize");
   NS_ASSERTION(aPresContext, "Must have prescontext");
 
   if (aValue.IsFixedLengthUnit()) {
     return aValue.GetFixedLength(aPresContext);
   }
   if (aValue.IsPixelLengthUnit()) {
     return aValue.GetPixelLength();
   }
@@ -550,31 +555,22 @@ static nscoord CalcLengthWith(const nsCS
         // This is the root element (XXX we don't really know this, but
         // nsRuleNode::SetFont makes the same assumption!), so we should
         // use StyleFont on this context to get the root element's
         // font size.
         rootFontSize = styleFont->mFont.size;
       } else {
         // This is not the root element or we are calculating something other
         // than font size, so rem is relative to the root element's font size.
-        RefPtr<nsStyleContext> rootStyle;
-        const nsStyleFont *rootStyleFont = styleFont;
-        Element* docElement = aPresContext->Document()->GetRootElement();
-
-        if (docElement) {
-          nsIFrame* rootFrame = docElement->GetPrimaryFrame();
-          if (rootFrame) {
-            rootStyle = rootFrame->StyleContext();
-          } else {
-            rootStyle = aPresContext->StyleSet()->AsGecko()->ResolveStyleFor(docElement,
-                                                                             nullptr);
-          }
-          rootStyleFont = rootStyle->StyleFont();
+        // Find the root style context by walking up the style context tree.
+        nsStyleContext* rootStyle = aStyleContext;
+        while (rootStyle->GetParent()) {
+          rootStyle = rootStyle->GetParent();
         }
-
+        const nsStyleFont *rootStyleFont = rootStyle->StyleFont();
         rootFontSize = rootStyleFont->mFont.size;
       }
 
       return ScaleCoordRound(aValue, float(rootFontSize));
     }
     default:
       // Fall through to the code for units that can't be stored in the
       // rule tree because they depend on font data.
@@ -3359,40 +3355,44 @@ struct SetFontSizeCalcOps : public css::
   // resolve coeff_type (BasicCoordCalcOps and FloatCoeffsAlreadyNormalizedOps
   // both have |typedef float coeff_type|).
   typedef float coeff_type;
 
   // The parameters beyond aValue that we need for CalcLengthWith.
   const nscoord mParentSize;
   const nsStyleFont* const mParentFont;
   nsPresContext* const mPresContext;
+  nsStyleContext* const mStyleContext;
   const bool mAtRoot;
   RuleNodeCacheConditions& mConditions;
 
   SetFontSizeCalcOps(nscoord aParentSize, const nsStyleFont* aParentFont,
-                     nsPresContext* aPresContext, bool aAtRoot,
+                     nsPresContext* aPresContext,
+                     nsStyleContext* aStyleContext,
+                     bool aAtRoot,
                      RuleNodeCacheConditions& aConditions)
     : mParentSize(aParentSize),
       mParentFont(aParentFont),
       mPresContext(aPresContext),
+      mStyleContext(aStyleContext),
       mAtRoot(aAtRoot),
       mConditions(aConditions)
   {
   }
 
   result_type ComputeLeafValue(const nsCSSValue& aValue)
   {
     nscoord size;
     if (aValue.IsLengthUnit()) {
       // Note that font-based length units use the parent's size
       // unadjusted for scriptlevel changes. A scriptlevel change
       // between us and the parent is simply ignored.
       size = CalcLengthWith(aValue, mParentSize,
                             mParentFont,
-                            nullptr, mPresContext, mAtRoot,
+                            mStyleContext, mPresContext, mAtRoot,
                             true, mConditions);
       if (!aValue.IsRelativeLengthUnit() && mParentFont->mAllowZoom) {
         size = nsStyleFont::ZoomText(mPresContext, size);
       }
     }
     else if (eCSSUnit_Percent == aValue.GetUnit()) {
       mConditions.SetUncacheable();
       // Note that % units use the parent's size unadjusted for scriptlevel
@@ -3406,16 +3406,17 @@ struct SetFontSizeCalcOps : public css::
     }
 
     return size;
   }
 };
 
 /* static */ void
 nsRuleNode::SetFontSize(nsPresContext* aPresContext,
+                        nsStyleContext* aContext,
                         const nsRuleData* aRuleData,
                         const nsStyleFont* aFont,
                         const nsStyleFont* aParentFont,
                         nscoord* aSize,
                         const nsFont& aSystemFont,
                         nscoord aParentSize,
                         nscoord aScriptLevelAdjustedParentSize,
                         bool aUsedStartStruct,
@@ -3472,17 +3473,18 @@ nsRuleNode::SetFontSize(nsPresContext* a
     } else {
       NS_NOTREACHED("unexpected value");
     }
   }
   else if (sizeValue->IsLengthUnit() ||
            sizeValue->GetUnit() == eCSSUnit_Percent ||
            sizeValue->IsCalcUnit()) {
     SetFontSizeCalcOps ops(aParentSize, aParentFont,
-                           aPresContext, aAtRoot,
+                           aPresContext, aContext,
+                           aAtRoot,
                            aConditions);
     *aSize = css::ComputeCalc(*sizeValue, ops);
     if (*aSize < 0) {
       MOZ_ASSERT(sizeValue->IsCalcUnit(),
                  "negative lengths and percents should be rejected by parser");
       *aSize = 0;
     }
     // The calc ops will always zoom its result according to the value
@@ -3818,17 +3820,17 @@ nsRuleNode::SetFont(nsPresContext* aPres
   const nsCSSValue* scriptMinSizeValue = aRuleData->ValueForScriptMinSize();
   if (scriptMinSizeValue->IsLengthUnit()) {
     // scriptminsize in font units (em, ex) has to be interpreted relative
     // to the parent font, or the size definitions are circular and we
     //
     aFont->mScriptMinSize =
       CalcLengthWith(*scriptMinSizeValue, aParentFont->mSize,
                      aParentFont,
-                     nullptr, aPresContext, atRoot, true,
+                     aContext, aPresContext, atRoot, true /* aUseUserFontSet */,
                      aConditions);
   }
 
   // -moz-script-size-multiplier: factor, inherit, initial
   SetFactor(*aRuleData->ValueForScriptSizeMultiplier(),
             aFont->mScriptSizeMultiplier,
             aConditions, aParentFont->mScriptSizeMultiplier,
             NS_MATHML_DEFAULT_SCRIPT_SIZE_MULTIPLIER,
@@ -4060,17 +4062,18 @@ nsRuleNode::SetFont(nsPresContext* aPres
   // Compute whether we're affected by scriptMinSize *before* calling
   // SetFontSize, since aParentFont might be the same as aFont.  If it
   // is, calling SetFontSize might throw off our calculation.
   bool affectedByScriptMinSize =
     aParentFont->mSize != aParentFont->mScriptUnconstrainedSize ||
     scriptLevelAdjustedParentSize !=
       scriptLevelAdjustedUnconstrainedParentSize;
 
-  SetFontSize(aPresContext, aRuleData, aFont, aParentFont,
+  SetFontSize(aPresContext, aContext,
+              aRuleData, aFont, aParentFont,
               &aFont->mSize,
               systemFont, aParentFont->mSize, scriptLevelAdjustedParentSize,
               aUsedStartStruct, atRoot, aConditions);
   if (!aPresContext->Document()->GetMathMLEnabled()) {
     MOZ_ASSERT(!affectedByScriptMinSize);
     // If MathML is not enabled, we don't need to mark this node as
     // uncacheable.  If it becomes enabled, code in
     // nsMathMLElementFactory will rebuild the rule tree and style data
@@ -4090,17 +4093,18 @@ nsRuleNode::SetFont(nsPresContext* aPres
     // see previous else-if
     aConditions.SetUncacheable();
 
     // Use a separate conditions object because it might get a
     // *different* font-size dependency.  We can ignore it because we've
     // already called SetUncacheable.
     RuleNodeCacheConditions unconstrainedConditions;
 
-    SetFontSize(aPresContext, aRuleData, aFont, aParentFont,
+    SetFontSize(aPresContext, aContext,
+                aRuleData, aFont, aParentFont,
                 &aFont->mScriptUnconstrainedSize,
                 systemFont, aParentFont->mScriptUnconstrainedSize,
                 scriptLevelAdjustedUnconstrainedParentSize,
                 aUsedStartStruct, atRoot, unconstrainedConditions);
   }
   NS_ASSERTION(aFont->mScriptUnconstrainedSize <= aFont->mSize,
                "scriptminsize should never be making things bigger");
 
--- a/layout/style/nsRuleNode.h
+++ b/layout/style/nsRuleNode.h
@@ -750,16 +750,17 @@ protected:
     ComputeEffectsData(void* aStartStruct,
                        const nsRuleData* aRuleData,
                        nsStyleContext* aContext, nsRuleNode* aHighestNode,
                        RuleDetail aRuleDetail,
                        const mozilla::RuleNodeCacheConditions aConditions);
 
   // helpers for |ComputeFontData| that need access to |mNoneBits|:
   static void SetFontSize(nsPresContext* aPresContext,
+                          nsStyleContext* aContext,
                           const nsRuleData* aRuleData,
                           const nsStyleFont* aFont,
                           const nsStyleFont* aParentFont,
                           nscoord* aSize,
                           const nsFont& aSystemFont,
                           nscoord aParentSize,
                           nscoord aScriptLevelAdjustedParentSize,
                           bool aUsedStartStruct,
--- a/layout/style/res/forms.css
+++ b/layout/style/res/forms.css
@@ -66,16 +66,17 @@ fieldset {
   display: block;
   margin-inline-start: 2px;
   margin-inline-end: 2px;
   padding-block-start: 0.35em;
   padding-block-end: 0.75em;
   padding-inline-start: 0.625em;
   padding-inline-end: 0.625em;
   border: 2px groove ThreeDLightShadow;
+  min-width: -moz-min-content;
 }
 
 label {
   cursor: default;
 }
 
 /* default inputs, text inputs, and selects */
 
--- a/mobile/android/base/java/org/mozilla/gecko/search/SearchEngineManager.java
+++ b/mobile/android/base/java/org/mozilla/gecko/search/SearchEngineManager.java
@@ -581,17 +581,17 @@ public class SearchEngineManager impleme
                 // can happen with :hidden plugins
                 if (pluginIn != null) {
                   final SearchEngine engine = createEngineFromInputStream(identifier, pluginIn);
                   if (engine != null && engine.getName().equals(name)) {
                       return engine;
                   }
                 }
             }
-        } catch (Exception e) {
+        } catch (Throwable e) {
             Log.e(LOG_TAG, "Error creating shipped search engine from name: " + name, e);
         } finally {
             try {
                 br.close();
             } catch (IOException e) {
                 // Ignore.
             }
         }
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -2035,17 +2035,17 @@ var BrowserApp = {
     }
 
     // Eliminate values if they're present in the default.
     let chosen;
     if (defaultAccept) {
       // intl.accept_languages is a comma-separated list, with no q-value params. Those
       // are added when the header is generated.
       chosen = defaultAccept.split(",")
-                            .map(String.trim)
+                            .map((x) => x.trim())
                             .filter((x) => (x != appLocale && x != osLocale));
     } else {
       chosen = [];
     }
 
     if (osLocale) {
       chosen.unshift(osLocale);
     }
--- a/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
+++ b/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
@@ -1230,16 +1230,26 @@ nsHttpChannelAuthProvider::PromptForIden
         else
             holder->SetToHttpAuthIdentity(authFlags, ident);
     }
 
     // remember that we successfully showed the user an auth dialog
     if (!proxyAuth)
         mSuppressDefensiveAuth = true;
 
+    if (mConnectionBased) {
+        // Connection can be reset by the server in the meantime user is entering
+        // the credentials.  Result would be just a "Connection was reset" error.
+        // Hence, we drop the current regardless if the user would make it on time
+        // to provide credentials.
+        // It's OK to send the NTLM type 1 message (response to the plain "NTLM"
+        // challenge) on a new connection.
+        mAuthChannel->CloseStickyConnection();
+    }
+
     return rv;
 }
 
 NS_IMETHODIMP nsHttpChannelAuthProvider::OnAuthAvailable(nsISupports *aContext,
                                                          nsIAuthInformation *aAuthInfo)
 {
     LOG(("nsHttpChannelAuthProvider::OnAuthAvailable [this=%p channel=%p]",
         this, mAuthChannel));
--- a/security/manager/ssl/StaticHPKPins.errors
+++ b/security/manager/ssl/StaticHPKPins.errors
@@ -6,18 +6,16 @@ Can't find hash in builtin certs for Chr
 Can't find hash in builtin certs for Chrome nickname VeriSignClass2_G2, inserting GOOGLE_PIN_VeriSignClass2_G2
 Can't find hash in builtin certs for Chrome nickname Entrust_SSL, inserting GOOGLE_PIN_Entrust_SSL
 Can't find hash in builtin certs for Chrome nickname UTNDATACorpSGC, inserting GOOGLE_PIN_UTNDATACorpSGC
 Can't find hash in builtin certs for Chrome nickname GTECyberTrustGlobalRoot, inserting GOOGLE_PIN_GTECyberTrustGlobalRoot
 Can't find hash in builtin certs for Chrome nickname GoDaddySecure, inserting GOOGLE_PIN_GoDaddySecure
 Can't find hash in builtin certs for Chrome nickname ThawtePremiumServer, inserting GOOGLE_PIN_ThawtePremiumServer
 Can't find hash in builtin certs for Chrome nickname SymantecClass3EVG3, inserting GOOGLE_PIN_SymantecClass3EVG3
 Can't find hash in builtin certs for Chrome nickname DigiCertECCSecureServerCA, inserting GOOGLE_PIN_DigiCertECCSecureServerCA
-Can't find hash in builtin certs for Chrome nickname LetsEncryptAuthorityPrimary_X1_X3, inserting GOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3
-Can't find hash in builtin certs for Chrome nickname LetsEncryptAuthorityBackup_X2_X4, inserting GOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4
 Can't find hash in builtin certs for Chrome nickname COMODORSADomainValidationSecureServerCA, inserting GOOGLE_PIN_COMODORSADomainValidationSecureServerCA
 Writing pinset test
 Writing pinset google
 Writing pinset tor
 Writing pinset twitterCom
 Writing pinset twitterCDN
 Writing pinset dropbox
 Writing pinset facebook
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -150,24 +150,16 @@ static const char kGOOGLE_PIN_GTECyberTr
 /* GOOGLE_PIN_GoDaddySecure */
 static const char kGOOGLE_PIN_GoDaddySecureFingerprint[] =
   "MrZLZnJ6IGPkBm87lYywqu5Xal7O/ZUzmbuIdHMdlYc=";
 
 /* GOOGLE_PIN_GoogleG2 */
 static const char kGOOGLE_PIN_GoogleG2Fingerprint[] =
   "7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=";
 
-/* GOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4 */
-static const char kGOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4Fingerprint[] =
-  "sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=";
-
-/* GOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3 */
-static const char kGOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3Fingerprint[] =
-  "YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";
-
 /* GOOGLE_PIN_RapidSSL */
 static const char kGOOGLE_PIN_RapidSSLFingerprint[] =
   "lT09gPUeQfbYrlxRtpsHrjDblj9Rpz+u7ajfCrg4qDM=";
 
 /* GOOGLE_PIN_SymantecClass3EVG3 */
 static const char kGOOGLE_PIN_SymantecClass3EVG3Fingerprint[] =
   "gMxWOrX4PMQesK9qFNbYBxjBfjUvlkn/vN1n+L9lE5E=";
 
@@ -250,16 +242,24 @@ static const char kGo_Daddy_Class_2_CAFi
 /* Go Daddy Root Certificate Authority - G2 */
 static const char kGo_Daddy_Root_Certificate_Authority___G2Fingerprint[] =
   "Ko8tivDrEjiY90yGasP6ZpBU4jwXvHqVvQI0GS3GNdA=";
 
 /* GoogleBackup2048 */
 static const char kGoogleBackup2048Fingerprint[] =
   "IPMbDAjLVSGntGO3WP53X/zilCVndez5YJ2+vJvhJsA=";
 
+/* Let's Encrypt Authority X3 */
+static const char kLet_s_Encrypt_Authority_X3Fingerprint[] =
+  "YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";
+
+/* Let's Encrypt Authority X4 */
+static const char kLet_s_Encrypt_Authority_X4Fingerprint[] =
+  "sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=";
+
 /* SpiderOak2 */
 static const char kSpiderOak2Fingerprint[] =
   "7Y3UnxbffL8aFPXsOJBpGasgpDmngpIhAxGKdQRklQQ=";
 
 /* SpiderOak3 */
 static const char kSpiderOak3Fingerprint[] =
   "LkER54vOdlygpTsbYvlpMq1CE/lDAG1AP9xmdtwvV2A=";
 
@@ -426,45 +426,21 @@ static const char* const kPinset_google_
   kUSERTrust_RSA_Certification_AuthorityFingerprint,
   kAddTrust_Qualified_Certificates_RootFingerprint,
 };
 static const StaticFingerprints kPinset_google_root_pems = {
   sizeof(kPinset_google_root_pems_Data) / sizeof(const char*),
   kPinset_google_root_pems_Data
 };
 
-static const char* const kPinset_mozilla_Data[] = {
-  kGeoTrust_Global_CA_2Fingerprint,
-  kthawte_Primary_Root_CA___G3Fingerprint,
-  kthawte_Primary_Root_CAFingerprint,
-  kDigiCert_Assured_ID_Root_CAFingerprint,
-  kVerisign_Class_1_Public_Primary_Certification_Authority___G3Fingerprint,
-  kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
-  kGeoTrust_Primary_Certification_AuthorityFingerprint,
-  kVerisign_Class_3_Public_Primary_Certification_Authority___G3Fingerprint,
-  kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
+static const char* const kPinset_mozilla_services_Data[] = {
   kDigiCert_High_Assurance_EV_Root_CAFingerprint,
-  kBaltimore_CyberTrust_RootFingerprint,
-  kthawte_Primary_Root_CA___G2Fingerprint,
-  kVerisign_Class_2_Public_Primary_Certification_Authority___G3Fingerprint,
-  kGeoTrust_Universal_CA_2Fingerprint,
-  kGeoTrust_Global_CAFingerprint,
-  kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
-  kGeoTrust_Universal_CAFingerprint,
-  kGeoTrust_Primary_Certification_Authority___G3Fingerprint,
+  kLet_s_Encrypt_Authority_X3Fingerprint,
   kDigiCert_Global_Root_CAFingerprint,
-  kGeoTrust_Primary_Certification_Authority___G2Fingerprint,
-};
-static const StaticFingerprints kPinset_mozilla = {
-  sizeof(kPinset_mozilla_Data) / sizeof(const char*),
-  kPinset_mozilla_Data
-};
-
-static const char* const kPinset_mozilla_services_Data[] = {
-  kDigiCert_Global_Root_CAFingerprint,
+  kLet_s_Encrypt_Authority_X4Fingerprint,
 };
 static const StaticFingerprints kPinset_mozilla_services = {
   sizeof(kPinset_mozilla_services_Data) / sizeof(const char*),
   kPinset_mozilla_services_Data
 };
 
 static const char* const kPinset_mozilla_test_Data[] = {
   kEnd_Entity_Test_CertFingerprint,
@@ -491,20 +467,20 @@ static const char* const kPinset_google_
 static const StaticFingerprints kPinset_google = {
   sizeof(kPinset_google_Data) / sizeof(const char*),
   kPinset_google_Data
 };
 
 static const char* const kPinset_tor_Data[] = {
   kTor3Fingerprint,
   kDigiCert_High_Assurance_EV_Root_CAFingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3Fingerprint,
+  kLet_s_Encrypt_Authority_X3Fingerprint,
   kTor1Fingerprint,
   kGOOGLE_PIN_RapidSSLFingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4Fingerprint,
+  kLet_s_Encrypt_Authority_X4Fingerprint,
   kTor2Fingerprint,
 };
 static const StaticFingerprints kPinset_tor = {
   sizeof(kPinset_tor_Data) / sizeof(const char*),
   kPinset_tor_Data
 };
 
 static const char* const kPinset_twitterCom_Data[] = {
@@ -651,37 +627,37 @@ static const char* const kPinset_yahoo_D
 static const StaticFingerprints kPinset_yahoo = {
   sizeof(kPinset_yahoo_Data) / sizeof(const char*),
   kPinset_yahoo_Data
 };
 
 static const char* const kPinset_swehackCom_Data[] = {
   kSwehackFingerprint,
   kDST_Root_CA_X3Fingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3Fingerprint,
+  kLet_s_Encrypt_Authority_X3Fingerprint,
   kGOOGLE_PIN_COMODORSADomainValidationSecureServerCAFingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4Fingerprint,
+  kLet_s_Encrypt_Authority_X4Fingerprint,
   kSwehackBackupFingerprint,
 };
 static const StaticFingerprints kPinset_swehackCom = {
   sizeof(kPinset_swehackCom_Data) / sizeof(const char*),
   kPinset_swehackCom_Data
 };
 
 static const char* const kPinset_nightx_Data[] = {
   kCOMODO_Certification_AuthorityFingerprint,
   kDigiCert_Assured_ID_Root_CAFingerprint,
   kVeriSign_Class_3_Public_Primary_Certification_Authority___G5Fingerprint,
   kVeriSign_Class_3_Public_Primary_Certification_Authority___G4Fingerprint,
   kDigiCert_High_Assurance_EV_Root_CAFingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityPrimary_X1_X3Fingerprint,
+  kLet_s_Encrypt_Authority_X3Fingerprint,
   kAddTrust_External_RootFingerprint,
   kVeriSign_Universal_Root_Certification_AuthorityFingerprint,
   kDigiCert_Global_Root_CAFingerprint,
-  kGOOGLE_PIN_LetsEncryptAuthorityBackup_X2_X4Fingerprint,
+  kLet_s_Encrypt_Authority_X4Fingerprint,
 };
 static const StaticFingerprints kPinset_nightx = {
   sizeof(kPinset_nightx_Data) / sizeof(const char*),
   kPinset_nightx_Data
 };
 
 /* Domainlist */
 struct TransportSecurityPreload {
@@ -693,45 +669,45 @@ struct TransportSecurityPreload {
   const StaticFingerprints* pinset;
 };
 
 /* Sort hostnames for binary search. */
 static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
   { "2mdn.net", true, false, false, -1, &kPinset_google_root_pems },
   { "accounts.firefox.com", true, false, true, 4, &kPinset_mozilla_services },
   { "accounts.google.com", true, false, false, -1, &kPinset_google_root_pems },
-  { "addons.mozilla.net", true, false, true, 2, &kPinset_mozilla },
-  { "addons.mozilla.org", true, false, true, 1, &kPinset_mozilla },
+  { "addons.mozilla.net", true, false, true, 2, &kPinset_mozilla_services },
+  { "addons.mozilla.org", true, false, true, 1, &kPinset_mozilla_services },
   { "admin.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "android.com", true, false, false, -1, &kPinset_google_root_pems },
   { "api.accounts.firefox.com", true, false, true, 5, &kPinset_mozilla_services },
   { "api.twitter.com", true, false, false, -1, &kPinset_twitterCDN },
   { "apis.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "appengine.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "apps.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "appspot.com", true, false, false, -1, &kPinset_google_root_pems },
   { "at.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "au.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
-  { "aus4.mozilla.org", true, true, true, 3, &kPinset_mozilla },
-  { "aus5.mozilla.org", true, true, true, 7, &kPinset_mozilla },
+  { "aus4.mozilla.org", true, true, true, 3, &kPinset_mozilla_services },
+  { "aus5.mozilla.org", true, true, true, 7, &kPinset_mozilla_services },
   { "az.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "be.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "bi.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "blog.torproject.org", true, false, false, -1, &kPinset_tor },
   { "blogger.com", true, false, false, -1, &kPinset_google_root_pems },
   { "blogspot.com", true, false, false, -1, &kPinset_google_root_pems },
   { "br.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "bugs.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
   { "build.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
   { "business.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "business.twitter.com", true, false, false, -1, &kPinset_twitterCom },
   { "ca.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "cd.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
-  { "cdn.mozilla.net", true, false, true, -1, &kPinset_mozilla },
-  { "cdn.mozilla.org", true, false, true, -1, &kPinset_mozilla },
+  { "cdn.mozilla.net", true, false, true, -1, &kPinset_mozilla_services },
+  { "cdn.mozilla.org", true, false, true, -1, &kPinset_mozilla_services },
   { "cg.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "ch.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "chart.apis.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "check.torproject.org", true, false, false, -1, &kPinset_tor },
   { "checkout.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "chfr.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "chit.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "chrome-devtools-frontend.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
@@ -744,28 +720,32 @@ static const TransportSecurityPreload kP
   { "cn.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "co.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "code.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "code.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "codereview.appspot.com", true, false, false, -1, &kPinset_google_root_pems },
   { "codereview.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
   { "contributor.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "cr.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
+  { "crash-reports-xpsp2.mozilla.com", false, false, true, 11, &kPinset_mozilla_services },
+  { "crash-reports.mozilla.com", false, false, true, 10, &kPinset_mozilla_services },
+  { "crash-stats.mozilla.com", false, false, true, 12, &kPinset_mozilla_services },
   { "ct.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "de.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "dev.twitter.com", true, false, false, -1, &kPinset_twitterCom },
   { "developers.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "dist.torproject.org", true, false, false, -1, &kPinset_tor },
   { "dk.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "dl.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "dns.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "do.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "docs.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "domains.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "doubleclick.net", true, false, false, -1, &kPinset_google_root_pems },
+  { "download.mozilla.org", false, false, true, 14, &kPinset_mozilla_services },
   { "drive.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "dropbox.com", true, false, false, -1, &kPinset_dropbox },
   { "dropboxstatic.com", false, true, false, -1, &kPinset_dropbox },
   { "dropboxusercontent.com", false, true, false, -1, &kPinset_dropbox },
   { "edit.yahoo.com", true, true, false, -1, &kPinset_yahoo },
   { "en-maktoob.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "encrypted.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "es.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
@@ -1099,21 +1079,24 @@ static const TransportSecurityPreload kP
   { "sg.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "sites.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "spideroak.com", true, false, false, -1, &kPinset_spideroak },
   { "spreadsheets.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "static.googleadsserving.cn", true, false, false, -1, &kPinset_google_root_pems },
   { "stats.g.doubleclick.net", true, false, false, -1, &kPinset_google_root_pems },
   { "sv.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "swehack.org", true, true, false, -1, &kPinset_swehackCom },
+  { "sync.services.mozilla.com", true, false, true, 13, &kPinset_mozilla_services },
   { "t.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "tablet.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "talk.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "talkgadget.google.com", true, false, false, -1, &kPinset_google_root_pems },
+  { "telemetry.mozilla.org", true, true, true, 8, &kPinset_mozilla_services },
   { "test-mode.pinning.example.com", true, true, false, -1, &kPinset_mozilla_test },
+  { "testpilot.firefox.com", false, false, true, 9, &kPinset_mozilla_services },
   { "th.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "torproject.org", false, false, false, -1, &kPinset_tor },
   { "touch.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "tr.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "translate.googleapis.com", true, false, false, -1, &kPinset_google_root_pems },
   { "tv.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "tw.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "twimg.com", true, false, false, -1, &kPinset_twitterCDN },
@@ -1156,13 +1139,13 @@ static const TransportSecurityPreload kP
   { "youtu.be", true, false, false, -1, &kPinset_google_root_pems },
   { "youtube-nocookie.com", true, false, false, -1, &kPinset_google_root_pems },
   { "youtube.com", true, false, false, -1, &kPinset_google_root_pems },
   { "ytimg.com", true, false, false, -1, &kPinset_google_root_pems },
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
-// Pinning Preload List Length = 464;
+// Pinning Preload List Length = 471;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1488896689084000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1488984302204000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -1,9 +1,9 @@
-0.me.uk: could not connect to host
+0.me.uk: did not receive HSTS header
 020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 0p.no: did not receive HSTS header
 0x.sk: could not connect to host
 0x1337.eu: could not connect to host
 0x44.net: did not receive HSTS header
 0xb612.org: could not connect to host
 1018hosting.nl: did not receive HSTS header
 1022996493.rsc.cdn77.org: could not connect to host
@@ -52,16 +52,17 @@ a9c.co: could not connect to host
 aaeblog.com: did not receive HSTS header
 aaeblog.net: did not receive HSTS header
 aaeblog.org: did not receive HSTS header
 aapp.space: could not connect to host
 abearofsoap.com: did not receive HSTS header
 abecodes.net: did not receive HSTS header
 abilitylist.org: did not receive HSTS header
 abioniere.de: could not connect to host
+abloop.com: could not connect to host
 about.ge: could not connect to host
 aboutmyip.info: did not receive HSTS header
 aboutyou-deals.de: did not receive HSTS header
 abtom.de: did not receive HSTS header
 abury.fr: did not receive HSTS header
 abury.me: did not receive HSTS header
 accelerole.com: did not receive HSTS header
 accountradar.com: could not connect to host
@@ -97,21 +98,20 @@ adquisitio.es: could not connect to host
 adquisitio.fr: could not connect to host
 adquisitio.it: could not connect to host
 adsfund.org: could not connect to host
 advancedstudio.ro: did not receive HSTS header
 adver.top: could not connect to host
 adviespuntklokkenluiders.nl: did not receive HSTS header
 aemoria.com: could not connect to host
 aerialmediapro.net: could not connect to host
-aes256.ru: did not receive HSTS header
+aes256.ru: could not connect to host
 aether.pw: could not connect to host
 aevpn.net: could not connect to host
 affinitysync.com: could not connect to host
-aficionados.com.br: did not receive HSTS header
 aficotroceni.ro: did not receive HSTS header
 afp548.tk: could not connect to host
 afrodigital.uk: could not connect to host
 agalaxyfarfaraway.co.uk: could not connect to host
 agbremen.de: did not receive HSTS header
 agevio.com: could not connect to host
 agilebits.net: could not connect to host
 agrimap.com: did not receive HSTS header
@@ -140,17 +140,16 @@ alanlee.net: could not connect to host
 alanrickmanflipstable.com: could not connect to host
 alariel.de: did not receive HSTS header
 alarmsystemreviews.com: did not receive HSTS header
 albertopimienta.com: did not receive HSTS header
 alcazaar.com: could not connect to host
 alecvannoten.be: did not receive HSTS header
 alenan.org: could not connect to host
 alessandro.pw: did not receive HSTS header
-alessandroz.pro: could not connect to host
 alethearose.com: did not receive HSTS header
 alexandre.sh: did not receive HSTS header
 alexhaydock.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 alexisabarca.com: did not receive HSTS header
 alexismeza.com: could not connect to host
 alexismeza.com.mx: could not connect to host
 alexismeza.dk: could not connect to host
 alfredxing.com: did not receive HSTS header
@@ -251,21 +250,21 @@ armory.supplies: could not connect to ho
 armytricka.cz: did not receive HSTS header
 arnetdigital.eu: did not receive HSTS header
 arrayify.com: could not connect to host
 ars-design.net: could not connect to host
 ars.toscana.it: max-age too low: 0
 artistnetwork.nl: did not receive HSTS header
 arturkohut.com: could not connect to host
 as.se: could not connect to host
+asandu.eu: could not connect to host
 asasuou.pw: could not connect to host
 asc16.com: could not connect to host
 asdpress.cn: could not connect to host
 aserver.co: could not connect to host
-ashleymedway.com: could not connect to host
 asianodor.com: could not connect to host
 askfit.cz: did not receive HSTS header
 asmui.ga: could not connect to host
 asmui.ml: could not connect to host
 asrob.eu: could not connect to host
 ass.org.au: did not receive HSTS header
 assdecoeur.org: could not connect to host
 asset-alive.com: did not receive HSTS header
@@ -275,22 +274,24 @@ astrolpost.com: could not connect to hos
 astromelody.com: could not connect to host
 atavio.at: could not connect to host
 atavio.ch: could not connect to host
 atavio.de: did not receive HSTS header
 atbeckett.com: did not receive HSTS header
 athaliasoft.com: did not receive HSTS header
 athenelive.com: could not connect to host
 athul.xyz: did not receive HSTS header
+atlantischild.hu: could not connect to host
 atlex.nl: did not receive HSTS header
 atomik.pro: could not connect to host
 atop.io: could not connect to host
 attimidesigns.com: did not receive HSTS header
 au.search.yahoo.com: max-age too low: 172800
 aubiosales.com: did not receive HSTS header
+aucubin.moe: could not connect to host
 aufmerksamkeitsstudie.com: could not connect to host
 aujapan.ru: could not connect to host
 aurainfosec.com.au: could not connect to host
 ausnah.me: could not connect to host
 ausoptic.com.au: max-age too low: 2592000
 auszeit.bio: did not receive HSTS header
 auth.mail.ru: did not receive HSTS header
 authentication.io: could not connect to host
@@ -334,16 +335,17 @@ bassh.net: did not receive HSTS header
 baumstark.ca: did not receive HSTS header
 bazarstupava.sk: did not receive HSTS header
 bcbsmagentprofile.com: could not connect to host
 bccx.com: could not connect to host
 bckp.de: could not connect to host
 bcm.com.au: max-age too low: 0
 bcnx.de: max-age too low: 0
 bcsytv.com: could not connect to host
+bdikaros-network.net: could not connect to host
 be.search.yahoo.com: did not receive HSTS header
 beach-inspector.com: did not receive HSTS header
 beachi.es: could not connect to host
 beaglewatch.com: did not receive HSTS header
 beardydave.com: did not receive HSTS header
 beastowner.com: did not receive HSTS header
 beavers.io: could not connect to host
 bebesurdoue.com: could not connect to host
@@ -369,17 +371,17 @@ betlander.com: did not receive HSTS head
 betnet.fr: could not connect to host
 betplanning.it: did not receive HSTS header
 bets.de: did not receive HSTS header
 bettercrypto.org: could not connect to host
 bettween.com: could not connect to host
 betz.ro: did not receive HSTS header
 beulahtabernacle.com: could not connect to host
 bevapehappy.com: did not receive HSTS header
-bezorg.ninja: could not connect to host
+bezorg.ninja: did not receive HSTS header
 bf.am: max-age too low: 0
 bgcparkstad.nl: did not receive HSTS header
 bgmn.net: could not connect to host
 bi.search.yahoo.com: did not receive HSTS header
 bidon.ca: did not receive HSTS header
 bieberium.de: did not receive HSTS header
 bienenblog.cc: could not connect to host
 big-black.de: did not receive HSTS header
@@ -390,17 +392,16 @@ bildiri.ci: did not receive HSTS header
 bildschirmflackern.de: did not receive HSTS header
 billin.net: could not connect to host
 billkiss.com: max-age too low: 300
 billninja.com: could not connect to host
 binderapp.net: could not connect to host
 biofam.ru: did not receive HSTS header
 biophysik-ssl.de: did not receive HSTS header
 bioshome.de: could not connect to host
-birkhoff.me: could not connect to host
 birkman.com: did not receive HSTS header
 bismarck.moe: did not receive HSTS header
 bitchan.it: could not connect to host
 bitcoinworld.me: could not connect to host
 bitf.ly: could not connect to host
 bitfactory.ws: could not connect to host
 bitfarm-archiv.com: did not receive HSTS header
 bitfarm-archiv.de: did not receive HSTS header
@@ -433,16 +434,17 @@ blindsexdate.nl: could not connect to ho
 blocksatz-medien.de: did not receive HSTS header
 blog.cyveillance.com: did not receive HSTS header
 blog.lookout.com: did not receive HSTS header
 blubbablasen.de: could not connect to host
 blucas.org: did not receive HSTS header
 blueliv.com: did not receive HSTS header
 bluetenmeer.com: did not receive HSTS header
 bm-trading.nl: did not receive HSTS header
+bmone.net: could not connect to host
 bngsecure.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 bobiji.com: did not receive HSTS header
 bodyblog.nl: did not receive HSTS header
 bodybuilding-legends.com: could not connect to host
 bodyweightsolution.com: did not receive HSTS header
 boensou.com: did not receive HSTS header
 bogosity.se: could not connect to host
 bohan.life: did not receive HSTS header
@@ -454,22 +456,20 @@ bonitabrazilian.co.nz: did not receive H
 bookcelerator.com: did not receive HSTS header
 booked.holiday: did not receive HSTS header
 boomerang.com: could not connect to host
 boosterlearnpro.com: did not receive HSTS header
 bootjp.me: did not receive HSTS header
 boringsecurity.net: could not connect to host
 boris.one: did not receive HSTS header
 botox.bz: did not receive HSTS header
-bougeret.fr: could not connect to host
 bouwbedrijfpurmerend.nl: did not receive HSTS header
 bowlroll.net: max-age too low: 0
 boxcryptor.com: did not receive HSTS header
 br3in.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
-brage.info: could not connect to host
 brain-e.co: could not connect to host
 braineet.com: did not receive HSTS header
 brainfork.ml: could not connect to host
 braintreegateway.com: did not receive HSTS header
 braintreepayments.com: did not receive HSTS header
 brainvation.de: did not receive HSTS header
 bran.cc: could not connect to host
 branchtrack.com: did not receive HSTS header
@@ -485,16 +485,17 @@ brideandgroomdirect.ie: did not receive 
 brks.xyz: could not connect to host
 broken-oak.com: could not connect to host
 brokenhands.io: did not receive HSTS header
 brookechase.com: did not receive HSTS header
 browserid.org: did not receive HSTS header
 brunix.net: did not receive HSTS header
 bsagan.fr: could not connect to host
 bsdtips.com: could not connect to host
+bsquared.org: could not connect to host
 btcdlc.com: could not connect to host
 buchheld.at: did not receive HSTS header
 budgetthostels.nl: did not receive HSTS header
 budskap.eu: could not connect to host
 bugtrack.io: did not receive HSTS header
 buhler.pro: did not receive HSTS header
 buildsaver.co.za: did not receive HSTS header
 built.by: did not receive HSTS header
@@ -521,17 +522,16 @@ bypro.xyz: could not connect to host
 bysymphony.com: max-age too low: 0
 bytepark.de: did not receive HSTS header
 c1yd3i.me: could not connect to host
 c3b.info: could not connect to host
 cabarave.com: could not connect to host
 cabusar.fr: could not connect to host
 caconnect.org: could not connect to host
 cadao.me: did not receive HSTS header
-cadmail.nl: could not connect to host
 cadusilva.com: did not receive HSTS header
 cafe-scientifique.org.ec: could not connect to host
 caim.cz: did not receive HSTS header
 cainhosting.com: did not receive HSTS header
 cajapopcorn.com: did not receive HSTS header
 cake.care: could not connect to host
 calgaryconstructionjobs.com: could not connect to host
 calix.com: max-age too low: 0
@@ -544,16 +544,17 @@ canadiangamblingchoice.com: did not rece
 cancelmyprofile.com: did not receive HSTS header
 candicontrols.com: did not receive HSTS header
 candratech.com: could not connect to host
 candylion.rocks: could not connect to host
 cannyfoxx.me: could not connect to host
 canyonshoa.com: did not receive HSTS header
 capecycles.co.za: did not receive HSTS header
 captchatheprize.com: could not connect to host
+capturethepen.co.uk: could not connect to host
 car-navi.ph: did not receive HSTS header
 carano-service.de: did not receive HSTS header
 caraudio69.cz: could not connect to host
 cardoni.net: did not receive HSTS header
 cardstream.com: did not receive HSTS header
 cardurl.com: did not receive HSTS header
 cargobay.net: could not connect to host
 carlolly.co.uk: could not connect to host
@@ -603,17 +604,16 @@ chargejuice.com: [Exception... "Componen
 charnleyhouse.co.uk: max-age too low: 604800
 chartpen.com: did not receive HSTS header
 chartstoffarm.de: max-age too low: 10
 chatbot.me: did not receive HSTS header
 chateauconstellation.ch: did not receive HSTS header
 chatup.cf: could not connect to host
 chaulootz.com: could not connect to host
 chcemvediet.sk: max-age too low: 1555200
-cheapgeekts.com: could not connect to host
 chebedara.com: could not connect to host
 checkout.google.com: did not receive HSTS header (error ignored - included regardless)
 cheerflow.com: could not connect to host
 cheesetart.my: could not connect to host
 chejianer.cn: did not receive HSTS header
 cherysunzhang.com: max-age too low: 7776000
 chic-leather.com: could not connect to host
 chihiro.xyz: could not connect to host
@@ -701,16 +701,17 @@ colognegaming.net: could not connect to 
 coloradocomputernetworking.net: could not connect to host
 colorbrush.ru: did not receive HSTS header
 comfortticket.de: did not receive HSTS header
 comicspines.com: could not connect to host
 compalytics.com: could not connect to host
 comparejewelleryprices.co.uk: could not connect to host
 completionist.audio: could not connect to host
 computeremergency.com.au: did not receive HSTS header
+computersystems.guru: could not connect to host
 concord-group.co.jp: did not receive HSTS header
 condesaelectronics.com: max-age too low: 0
 confirm365.com: could not connect to host
 conformal.com: could not connect to host
 conrad-kostecki.de: did not receive HSTS header
 consciousandglamorous.com: could not connect to host
 console.python.org: did not receive HSTS header
 constructionjobs.com: did not receive HSTS header
@@ -728,16 +729,17 @@ cormactagging.ie: could not connect to h
 cormilu.com.br: did not receive HSTS header
 cornodo.com: could not connect to host
 correctpaardbatterijnietje.nl: did not receive HSTS header
 corruption-mc.net: could not connect to host
 corruption-rsps.net: could not connect to host
 corruption-server.net: could not connect to host
 corzntin.fr: could not connect to host
 count.sh: could not connect to host
+couragefound.org: could not connect to host
 couragewhispers.ca: did not receive HSTS header
 coursdeprogrammation.com: could not connect to host
 coursella.com: did not receive HSTS header
 covenantbank.net: could not connect to host
 coverduck.ru: could not connect to host
 cr.search.yahoo.com: did not receive HSTS header
 cracking.org: did not receive HSTS header
 craftbeerbarn.co.uk: could not connect to host
@@ -746,17 +748,16 @@ craftmine.cz: did not receive HSTS heade
 crate.io: did not receive HSTS header
 cravelyrics.com: did not receive HSTS header
 crazifyngers.com: could not connect to host
 crazycen.com: did not receive HSTS header
 crazyhotseeds.com: did not receive HSTS header
 creativephysics.ml: could not connect to host
 creativeplayuk.com: did not receive HSTS header
 crendontech.com: could not connect to host
-crestasantos.com: could not connect to host
 crestoncottage.com: could not connect to host
 criena.net: could not connect to host
 critical.today: could not connect to host
 criticalaim.com: could not connect to host
 crizk.com: could not connect to host
 crosssec.com: did not receive HSTS header
 crowd.supply: could not connect to host
 crowdcurity.com: did not receive HSTS header
@@ -792,28 +793,27 @@ curroapp.com: could not connect to host
 curtis-smith.uk: could not connect to host
 custe.rs: could not connect to host
 cuvva.insure: did not receive HSTS header
 cyanogenmod.xxx: could not connect to host
 cybershambles.com: could not connect to host
 cycleluxembourg.lu: did not receive HSTS header
 cydia-search.io: could not connect to host
 cyphertite.com: could not connect to host
-cysec.biz: could not connect to host
+d3xt3r01.tk: could not connect to host
 dad256.tk: could not connect to host
 dah5.com: did not receive HSTS header
 dailystormerpodcasts.com: did not receive HSTS header
 dakrib.net: could not connect to host
 dalingk.co: could not connect to host
 dango.in: did not receive HSTS header
 daniel-steuer.de: did not receive HSTS header
 danieldk.eu: did not receive HSTS header
 danielworthy.com: did not receive HSTS header
 danijobs.com: could not connect to host
-dannyrohde.de: could not connect to host
 danpiel.net: could not connect to host
 danrl.de: did not receive HSTS header
 daolerp.xyz: could not connect to host
 dargasia.is: could not connect to host
 dario.im: could not connect to host
 dark-x.cf: could not connect to host
 darkag.ovh: could not connect to host
 darkengine.io: could not connect to host
@@ -832,18 +832,20 @@ dataretention.solutions: could not conne
 datatekniikka.fi: did not receive HSTS header
 datenkeks.de: did not receive HSTS header
 dateno1.com: max-age too low: 2592000
 datenreiter.cf: could not connect to host
 datenreiter.gq: could not connect to host
 datenreiter.ml: could not connect to host
 datenreiter.tk: could not connect to host
 datewon.net: did not receive HSTS header
+davescomputertips.com: did not receive HSTS header
 davidglidden.eu: could not connect to host
 davidhunter.scot: did not receive HSTS header
+davidmcevoy.org.uk: could not connect to host
 davidmessenger.co.uk: could not connect to host
 davidreinhardt.de: could not connect to host
 davidscherzer.at: could not connect to host
 daylightcompany.com: did not receive HSTS header
 db.gy: did not receive HSTS header
 dbx.ovh: did not receive HSTS header
 dccode.gov: could not connect to host
 dcurt.is: did not receive HSTS header
@@ -902,17 +904,16 @@ dinamoelektrik.com: max-age too low: 0
 dinkum.online: could not connect to host
 dirk-weise.de: could not connect to host
 discofitta.com: could not connect to host
 discoveringdocker.com: did not receive HSTS header
 discovery.lookout.com: did not receive HSTS header
 dislocated.de: did not receive HSTS header
 dissimulo.me: could not connect to host
 dittvertshus.no: could not connect to host
-diycc.org: could not connect to host
 dizihocasi.com: did not receive HSTS header
 dizorg.net: could not connect to host
 dj4et.de: did not receive HSTS header
 dl.google.com: did not receive HSTS header (error ignored - included regardless)
 dlouwrink.nl: could not connect to host
 dmxledlights.com: could not connect to host
 dn42.eu: could not connect to host
 dns.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -936,16 +937,17 @@ donzelot.co.uk: max-age too low: 3600
 doomleika.com: could not connect to host
 dopost.it: could not connect to host
 doridian.com: could not connect to host
 doridian.de: could not connect to host
 doridian.net: did not receive HSTS header
 doridian.org: could not connect to host
 dossplumbing.co.za: did not receive HSTS header
 dotadata.me: could not connect to host
+doublefun.net: could not connect to host
 dougferris.id.au: could not connect to host
 download.jitsi.org: did not receive HSTS header
 downsouthweddings.com.au: did not receive HSTS header
 doyoucheck.com: did not receive HSTS header
 dpratt.de: could not connect to host
 dprd-wonogirikab.go.id: did not receive HSTS header
 dragonisles.net: could not connect to host
 dragons-of-highlands.cz: could not connect to host
@@ -965,17 +967,16 @@ drtroyhendrickson.com: could not connect
 drumbandesperanto.nl: could not connect to host
 dshiv.io: could not connect to host
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
 duch.cloud: could not connect to host
 duesee.org: could not connect to host
 dullsir.com: did not receive HSTS header
 duria.de: max-age too low: 3600
-dustri.org: could not connect to host
 dwhd.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 dxa.io: could not connect to host
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
 dymersion.com: did not receive HSTS header
 dynamize.solutions: could not connect to host
 dzimejl.sk: did not receive HSTS header
 dzlibs.io: could not connect to host
@@ -1002,33 +1003,33 @@ ecorus.eu: did not receive HSTS header
 edcphenix.tk: could not connect to host
 edelsteincosmetic.com: max-age too low: 0
 edissecurity.sk: did not receive HSTS header
 edix.ru: could not connect to host
 edk.com.tr: did not receive HSTS header
 edmodo.com: did not receive HSTS header
 edp-collaborative.com: max-age too low: 2500
 eduvance.in: did not receive HSTS header
+edwardsnowden.com: could not connect to host
 eeqj.com: could not connect to host
 efficienthealth.com: did not receive HSTS header
 effortlesshr.com: did not receive HSTS header
 egg-ortho.ch: did not receive HSTS header
 egit.co: could not connect to host
 ego-world.org: could not connect to host
 ehrenamt-skpfcw.de: could not connect to host
 eicfood.com: could not connect to host
 eidolonhost.com: did not receive HSTS header
 ekbanden.nl: could not connect to host
 ekostecki.de: did not receive HSTS header
 el-soul.com: did not receive HSTS header
 elaintehtaat.fi: did not receive HSTS header
 elanguest.pl: could not connect to host
 elars.de: could not connect to host
 elbetech.net: could not connect to host
-eldinhadzic.com: could not connect to host
 electricianforum.co.uk: could not connect to host
 electromc.com: could not connect to host
 elemprendedor.com.ve: could not connect to host
 elenag.ga: could not connect to host
 elenoon.ir: did not receive HSTS header
 elgacien.de: could not connect to host
 elimdengelen.com: did not receive HSTS header
 elisabeth-kostecki.de: did not receive HSTS header
@@ -1044,20 +1045,16 @@ emeldi-commerce.com: max-age too low: 0
 emjainteractive.com: did not receive HSTS header
 emmable.com: could not connect to host
 emnitech.com: could not connect to host
 empleostampico.com: did not receive HSTS header
 enargia.jp: max-age too low: 0
 encode.space: did not receive HSTS header
 encoder.pw: could not connect to host
 encrypted.google.com: did not receive HSTS header (error ignored - included regardless)
-endohaus.ca: could not connect to host
-endohaus.com: could not connect to host
-endohaus.eu: could not connect to host
-endohaus.us: could not connect to host
 endzeit-architekten.com: did not receive HSTS header
 engelwerbung.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 englishforums.com: could not connect to host
 enigmacpt.com: did not receive HSTS header
 enigmail.net: did not receive HSTS header
 enteente.club: could not connect to host
 enteente.space: could not connect to host
 enteente.xyz: could not connect to host
@@ -1067,17 +1064,16 @@ entersynapse.com: could not connect to h
 entrepreneur.or.id: did not receive HSTS header
 enumify.com: could not connect to host
 envygeeks.com: did not receive HSTS header
 envygeeks.io: did not receive HSTS header
 eol34.com: did not receive HSTS header
 epanurse.com: could not connect to host
 ephry.com: could not connect to host
 epoxate.com: did not receive HSTS header
-epublibre.org: could not connect to host
 eq8.net.au: could not connect to host
 equate.net.au: max-age too low: 3600
 equatetechnologies.com.au: max-age too low: 3600
 equilibre-yoga-jennifer-will.com: could not connect to host
 erawanarifnugroho.com: did not receive HSTS header
 eressea.xyz: did not receive HSTS header
 ericbond.net: could not connect to host
 ericyl.com: did not receive HSTS header
@@ -1135,16 +1131,17 @@ ezimoeko.net: could not connect to host
 ezmod.org: could not connect to host
 eztv.ch: did not receive HSTS header
 f-s-u.co.uk: could not connect to host
 f00.ca: did not receive HSTS header
 fabhub.io: could not connect to host
 fabianfischer.de: did not receive HSTS header
 factorable.net: did not receive HSTS header
 factorygw.com: did not receive HSTS header
+fadednet.com: could not connect to host
 fadilus.com: did not receive HSTS header
 faesser.com: did not receive HSTS header
 fail4free.de: did not receive HSTS header
 fairlyoddtreasures.com: did not receive HSTS header
 faizan.net: did not receive HSTS header
 faizan.xyz: could not connect to host
 fakeletters.org: did not receive HSTS header
 falconfrag.com: could not connect to host
@@ -1190,26 +1187,27 @@ finpt.com: could not connect to host
 firebaseio-demo.com: could not connect to host
 firebaseio.com: could not connect to host (error ignored - included regardless)
 firefall.rocks: could not connect to host
 firemail.io: could not connect to host
 first-time-offender.com: could not connect to host
 firstforex.co.uk: did not receive HSTS header
 fish2.me: did not receive HSTS header
 fit4medien.de: did not receive HSTS header
+fitiapp.com: could not connect to host
 fitnesswerk.de: could not connect to host
 fivestarsitters.com: did not receive HSTS header
+fixate.ru: could not connect to host
 fixatom.com: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
 fizz.buzz: could not connect to host
 fj.search.yahoo.com: did not receive HSTS header
 flags.ninja: could not connect to host
 flamewall.net: could not connect to host
 flawcheck.com: did not receive HSTS header
-fleximus.org: could not connect to host
 fliexer.com: did not receive HSTS header
 floless.co.uk: did not receive HSTS header
 florian-lillpopp.de: max-age too low: 10
 florianlillpopp.de: max-age too low: 10
 floridaescapes.co.uk: did not receive HSTS header
 flouartistique.ch: could not connect to host
 flow.pe: could not connect to host
 flow.su: could not connect to host
@@ -1242,17 +1240,16 @@ foxelbox.com: [Exception... "Component r
 foxtrot.pw: could not connect to host
 fr33d0m.link: could not connect to host
 francevpn.xyz: could not connect to host
 frangor.info: did not receive HSTS header
 franta.biz: did not receive HSTS header
 franta.email: did not receive HSTS header
 franzt.de: could not connect to host
 frasys.io: max-age too low: 7776000
-fraurichter.net: could not connect to host
 freeflow.tv: could not connect to host
 freekdevries.nl: could not connect to host
 freematthale.net: did not receive HSTS header
 freemedforms.com: did not receive HSTS header
 freesounding.com: could not connect to host
 freesounding.ru: could not connect to host
 freethought.org.au: could not connect to host
 freeutopia.org: did not receive HSTS header
@@ -1303,29 +1300,29 @@ gamenected.com: could not connect to hos
 gamenected.de: could not connect to host
 gameparade.de: could not connect to host
 gamepiece.com: could not connect to host
 gamers-life.fr: could not connect to host
 gamerslair.org: did not receive HSTS header
 gamesdepartment.co.uk: max-age too low: 0
 gamingmedia.eu: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
+gancedo.com.es: could not connect to host
 gaptek.id: did not receive HSTS header
 garciamartin.me: could not connect to host
 gatilagata.com.br: did not receive HSTS header
 gchq.wtf: could not connect to host
 gdpventure.com: max-age too low: 0
 gedankenbude.info: did not receive HSTS header
 geekbundle.org: did not receive HSTS header
 geekcast.co.uk: did not receive HSTS header
 geli-graphics.com: did not receive HSTS header
 gem-indonesia.net: could not connect to host
 genuu.com: could not connect to host
 genuxation.com: could not connect to host
-genuxtsg.com: could not connect to host
 genyaa.com: could not connect to host
 gerencianet.com.br: did not receive HSTS header
 get.zenpayroll.com: did not receive HSTS header
 getable.com: did not receive HSTS header
 getblys.com.au: did not receive HSTS header
 getbooks.co.il: did not receive HSTS header
 getcarefirst.com: did not receive HSTS header
 getcolor.com: did not receive HSTS header
@@ -1340,17 +1337,17 @@ getwashdaddy.com: did not receive HSTS h
 gfhgiro.nl: max-age too low: 604800
 gfm.tech: could not connect to host
 gfournier.ca: could not connect to host
 gfwsb.ml: could not connect to host
 gh16.com.ar: could not connect to host
 gheorghesarcov.ga: could not connect to host
 gheorghesarcov.tk: could not connect to host
 gietvloergarant.nl: did not receive HSTS header
-gigacloud.org: did not receive HSTS header
+gigacloud.org: max-age too low: 0
 gilgaz.com: did not receive HSTS header
 gilly.berlin: did not receive HSTS header
 gingali.de: did not receive HSTS header
 gintenreiter-photography.com: did not receive HSTS header
 gipsamsfashion.com: could not connect to host
 gipsic.com: did not receive HSTS header
 gistfy.com: could not connect to host
 github.party: could not connect to host
@@ -1371,17 +1368,17 @@ gm.search.yahoo.com: did not receive HST
 gmail.com: did not receive HSTS header (error ignored - included regardless)
 gmantra.org: could not connect to host
 gmoes.at: max-age too low: 600000
 go.ax: did not receive HSTS header
 goabonga.com: could not connect to host
 goaltree.ch: did not receive HSTS header
 goarmy.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 goat.chat: did not receive HSTS header
-goat.xyz: did not receive HSTS header
+goat.xyz: could not connect to host
 goben.ch: could not connect to host
 goerner.me: did not receive HSTS header
 goge.site: could not connect to host
 gogenenglish.com: could not connect to host
 gogetssl.com: did not receive HSTS header
 gogold-g.com: could not connect to host
 gold24.in: did not receive HSTS header
 goldendata.io: could not connect to host
@@ -1401,31 +1398,29 @@ govillemo.ca: did not receive HSTS heade
 gowe.wang: could not connect to host
 gparent.org: did not receive HSTS header
 gpsfix.cz: could not connect to host
 gpstuner.com: did not receive HSTS header
 gracesofgrief.com: max-age too low: 86400
 grandmascookieblog.com: did not receive HSTS header
 graph.no: did not receive HSTS header
 gravity-net.de: could not connect to host
-graycell.net: could not connect to host
 grazetech.com: could not connect to host
 greboid.co.uk: could not connect to host
 greboid.com: could not connect to host
 greenhillantiques.co.uk: did not receive HSTS header
 greenvines.com.tw: did not receive HSTS header
 gregorytlee.me: did not receive HSTS header
 gremots.com: did not receive HSTS header
 greplin.com: could not connect to host
 gribani.com: could not connect to host
 grigalanzsoftware.com: could not connect to host
 grossmann.gr: could not connect to host
 groups.google.com: did not receive HSTS header (error ignored - included regardless)
 grunex.com: did not receive HSTS header
-grunwasser.fr: could not connect to host
 gryffin.ga: could not connect to host
 gryffin.ml: could not connect to host
 gryffin.tk: could not connect to host
 gsm-map.com: could not connect to host
 gtanda.tk: could not connect to host
 gtlfsonlinepay.com: did not receive HSTS header
 gtraxapp.com: could not connect to host
 guava.studio: did not receive HSTS header
@@ -1446,17 +1441,16 @@ h2check.org: could not connect to host
 haarkliniek.com: did not receive HSTS header
 habanaavenue.com: did not receive HSTS header
 hablemosdetecnologia.com.ve: could not connect to host
 hack.cz: could not connect to host
 hack.li: did not receive HSTS header
 hacker.one: could not connect to host
 hackerforever.com: did not receive HSTS header
 hackerone-ext-adroll.com: could not connect to host
-hackerspace-ntnu.no: could not connect to host
 hackit.im: could not connect to host
 hadzic.co: could not connect to host
 hahayidu.org: could not connect to host
 haitschi.com: could not connect to host
 haitschi.de: could not connect to host
 haitschi.net: could not connect to host
 haitschi.org: could not connect to host
 haktec.de: could not connect to host
@@ -1502,64 +1496,65 @@ heftkaufen.de: did not receive HSTS head
 hellenicaward.com: did not receive HSTS header
 helloworldhost.com: did not receive HSTS header
 helpadmin.net: could not connect to host
 helpium.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 helpmebuild.com: did not receive HSTS header
 hemdal.se: could not connect to host
 hencagon.com: could not connect to host
 henriknoerr.com: could not connect to host
-hepteract.us: did not receive HSTS header
+heritagedentistry.ca: could not connect to host
 hermes-net.de: did not receive HSTS header
 herpaderp.net: did not receive HSTS header
 herzbotschaft.de: did not receive HSTS header
 hibilog.com: could not connect to host
 hicn.gq: could not connect to host
 hiddendepth.ie: max-age too low: 0
 hiddenmail.xyz: could not connect to host
 highseer.com: did not receive HSTS header
 highsurf-miyazaki.com: did not receive HSTS header
 hiitcentre.com: did not receive HSTS header
 hikariempire.com: could not connect to host
 hillcity.org.nz: did not receive HSTS header
 hiphopconvention.nl: could not connect to host
 hitoy.org: did not receive HSTS header
 hittipps.com: did not receive HSTS header
 hlyue.com: could not connect to host
-hm1ch.com: could not connect to host
 hmm.nyc: could not connect to host
 hn.search.yahoo.com: did not receive HSTS header
 hodne.io: could not connect to host
 hoerbuecher-und-hoerspiele.de: could not connect to host
 hogar123.es: could not connect to host
 hohm.in: could not connect to host
 holifestival-freyung.de: could not connect to host
 holymoly.lu: did not receive HSTS header
 homa.website: could not connect to host
+homads.com: could not connect to host
 honeytracks.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 hongzhaxiaofendui.com: could not connect to host
 honoo.com: could not connect to host
 hookandloom.com: did not receive HSTS header
 horosho.in: could not connect to host
 horseboners.xxx: did not receive HSTS header
 hortifarm.ro: did not receive HSTS header
-hosted-service.com: could not connect to host
-hostedbgp.net: could not connect to host
+hosmussynergie.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
+hosted-service.com: did not receive HSTS header
 hostedtalkgadget.google.com: did not receive HSTS header (error ignored - included regardless)
 hostgarou.com: did not receive HSTS header
 hostinaus.com.au: could not connect to host
 hostisan.com: did not receive HSTS header
 hotchillibox.com: max-age too low: 0
 hotchoc.io: did not receive HSTS header
 hotting.nl: could not connect to host
 houkago-step.com: did not receive HSTS header
 housemaadiah.org: did not receive HSTS header
 housingstudents.org.uk: could not connect to host
 howbigismybuilding.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 howrandom.org: could not connect to host
+howtocuremysciatica.com: did not receive HSTS header
 hr-intranet.com: did not receive HSTS header
 hsir.me: could not connect to host
 hsts.date: could not connect to host
 http418.xyz: could not connect to host
 httpstatuscode418.xyz: could not connect to host
 hu.search.yahoo.com: did not receive HSTS header
 huarongdao.com: did not receive HSTS header
 hugosleep.com.au: did not receive HSTS header
@@ -1611,17 +1606,16 @@ iirii.com: could not connect to host
 ikujii.com: max-age too low: 0
 ikwilguidobellen.nl: did not receive HSTS header
 ilbuongiorno.it: did not receive HSTS header
 ilikerainbows.co: could not connect to host
 ilikerainbows.co.uk: could not connect to host
 ilmconpm.de: did not receive HSTS header
 ilona.graphics: max-age too low: 3600
 iluvscotland.co.uk: did not receive HSTS header
-imanolbarba.net: could not connect to host
 ime.moe: could not connect to host
 imguoguo.com: did not receive HSTS header
 imim.pw: did not receive HSTS header
 imjiangtao.com: did not receive HSTS header
 immoprotect.ca: did not receive HSTS header
 immortals-co.com: did not receive HSTS header
 immoverkauf24.at: did not receive HSTS header
 immoverkauf24.de: did not receive HSTS header
@@ -1656,17 +1650,16 @@ innophate-security.nl: could not connect
 ins1gn1a.com: did not receive HSTS header
 insane.zone: could not connect to host
 insite-feedback.com: did not receive HSTS header
 inspire-av.com: did not receive HSTS header
 inspiroinc.com: could not connect to host
 instacart.com: did not receive HSTS header
 instantdev.io: could not connect to host
 institutoflordelavida.com: could not connect to host
-integraelchen.de: could not connect to host
 intel.li: could not connect to host
 intelldynamics.com: could not connect to host
 interference.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 interlun.com: could not connect to host
 internetcasinos.de: did not receive HSTS header
 internetcensus.org: could not connect to host
 interserved.com: did not receive HSTS header
 intex.es: max-age too low: 0
@@ -1705,17 +1698,16 @@ it-go.net: did not receive HSTS header
 itechgeek.com: max-age too low: 0
 itfh.eu: could not connect to host
 itos.asia: did not receive HSTS header
 itos.pl: did not receive HSTS header
 itsadog.co.uk: did not receive HSTS header
 itsamurai.ru: max-age too low: 2592000
 itsecurityassurance.pw: did not receive HSTS header
 itshost.ru: could not connect to host
-ivancacic.com: could not connect to host
 ivi-fertility.com: max-age too low: 0
 ivi.es: max-age too low: 0
 ivk.website: could not connect to host
 iwannarefill.com: could not connect to host
 iww.mx: could not connect to host
 izdiwho.com: could not connect to host
 izoox.com: did not receive HSTS header
 izzzorgconcerten.nl: could not connect to host
@@ -1756,16 +1748,17 @@ jayschulman.com: could not connect to ho
 jayscoaching.com: could not connect to host
 jayshao.com: did not receive HSTS header
 jazzinutrecht.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 jbbd.fr: could not connect to host
 jbfp.dk: could not connect to host
 jbn.mx: could not connect to host
 jbradaric.me: could not connect to host
 jcch.de: could not connect to host
+jccrew.org: could not connect to host
 jcor.me: did not receive HSTS header
 jctf.io: could not connect to host
 jeff393.com: could not connect to host
 jefftickle.com: could not connect to host
 jenjoit.de: could not connect to host
 jensenbanden.no: could not connect to host
 jeremye77.com: could not connect to host
 jesorsenville.com: did not receive HSTS header
@@ -1786,16 +1779,17 @@ jia1hao.com: could not connect to host
 jikken.de: could not connect to host
 jimas.eu: did not receive HSTS header
 jimmycai.org: max-age too low: 10368000
 jinbo123.com: did not receive HSTS header
 jkb.pics: could not connect to host
 jkbuster.com: could not connect to host
 jmdekker.it: could not connect to host
 joakimalgroy.com: could not connect to host
+jobbkk.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 jobmedic.com: did not receive HSTS header
 joedavison.me: could not connect to host
 jogi-server.de: did not receive HSTS header
 johners.me: could not connect to host
 johners.tech: did not receive HSTS header
 johnhgaunt.com: did not receive HSTS header
 johnrom.com: did not receive HSTS header
 jonas-keidel.de: did not receive HSTS header
@@ -1828,23 +1822,23 @@ justlikethat.hosting: did not receive HS
 justnaw.co.uk: could not connect to host
 justudin.com: did not receive HSTS header
 juwairen.cn: could not connect to host
 jvoice.net: could not connect to host
 jwilsson.me: could not connect to host
 jxm.in: could not connect to host
 k-dev.de: could not connect to host
 ka-clan.com: could not connect to host
+kab-s.de: did not receive HSTS header
 kabuabc.com: did not receive HSTS header
 kadioglumakina.com.tr: did not receive HSTS header
 kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kalami.nl: did not receive HSTS header
 kamikano.com: could not connect to host
-kamikatse.net: could not connect to host
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
 karaoketonight.com: could not connect to host
 katiaetdavid.fr: could not connect to host
 katproxy.online: could not connect to host
 katproxy.site: could not connect to host
 katproxy.tech: could not connect to host
 kaufkraftkiel.de: could not connect to host
@@ -1854,23 +1848,23 @@ kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
 kayon.cf: could not connect to host
 kdata.it: did not receive HSTS header
 kdm-online.de: did not receive HSTS header
 keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: could not connect to host
 keepclean.me: could not connect to host
+kenoschwalb.com: did not receive HSTS header
 kerangalam.com: did not receive HSTS header
 kerksanders.nl: did not receive HSTS header
 kermadec.net: could not connect to host
 kernl.us: did not receive HSTS header
 kevinapease.com: could not connect to host
 keymaster.lookout.com: did not receive HSTS header
-kfz-hantschel.de: did not receive HSTS header
 kg-rating.com: did not receive HSTS header
 kgxtech.com: max-age too low: 2592000
 kickass.al: could not connect to host
 kid-dachau.de: did not receive HSTS header
 kiel-media.de: did not receive HSTS header
 kimpost.org: could not connect to host
 kinderwagen-test24.de: could not connect to host
 kingmanhall.org: could not connect to host
@@ -1920,16 +1914,17 @@ kraynik.com: could not connect to host
 kredite.sale: could not connect to host
 kriegt.es: could not connect to host
 krmela.com: could not connect to host
 kroetenfuchs.de: could not connect to host
 kropkait.pl: could not connect to host
 krouzkyliduska.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 krunut.com: did not receive HSTS header
 krypteia.org: could not connect to host
+kryptomech.com: could not connect to host
 ksfh-mail.de: could not connect to host
 kstan.me: could not connect to host
 kucom.it: did not receive HSTS header
 kueulangtahunanak.net: could not connect to host
 kummerlaender.eu: did not receive HSTS header
 kuppingercole.com: did not receive HSTS header
 kura.io: could not connect to host
 kurehun.org: could not connect to host
@@ -2045,17 +2040,16 @@ livedemo.io: could not connect to host
 livej.am: could not connect to host
 livi.co: did not receive HSTS header
 lmerza.com: could not connect to host
 loadingdeck.com: did not receive HSTS header
 loafbox.com: could not connect to host
 locktheirphone.com: could not connect to host
 locomotive.ca: did not receive HSTS header
 login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless)
-login.gov: could not connect to host
 loginseite.com: could not connect to host
 loli.bz: could not connect to host
 lolicore.ch: could not connect to host
 lonal.com: could not connect to host
 londonlanguageexchange.com: could not connect to host
 lookastic.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 lookastic.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 lookastic.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
@@ -2068,17 +2062,16 @@ lookzook.com: did not receive HSTS heade
 loophost.com.br: did not receive HSTS header
 lordjevington.co.uk: could not connect to host
 lostinsecurity.com: could not connect to host
 lothai.re: could not connect to host
 lotsencafe.de: did not receive HSTS header
 lovelifelovelive.com: could not connect to host
 lovelycorral.com: did not receive HSTS header
 loveto.at: could not connect to host
-loveyounastya.com: could not connect to host
 lowhangingfruitgrabber.com: could not connect to host
 lpak.nl: could not connect to host
 lrhsclubs.com: could not connect to host
 lrhstsa.com: could not connect to host
 ls-a.org: did not receive HSTS header
 lsky.cn: did not receive HSTS header
 lsp-sports.de: did not receive HSTS header
 lt.search.yahoo.com: did not receive HSTS header
@@ -2111,21 +2104,26 @@ m.nu: did not receive HSTS header
 m3-gmbh.de: did not receive HSTS header
 m82labs.com: did not receive HSTS header
 maarten.nyc: did not receive HSTS header
 maartenvandekamp.nl: did not receive HSTS header
 macbolo.com: could not connect to host
 macchaberrycream.com: could not connect to host
 macchedil.com: did not receive HSTS header
 macgeneral.de: did not receive HSTS header
+machbach.com: could not connect to host
+machbach.net: could not connect to host
 machon.biz: could not connect to host
+maco.org.uk: could not connect to host
+macosxfilerecovery.com: did not receive HSTS header
 madars.org: did not receive HSTS header
 maddin.ga: could not connect to host
 madebymagnitude.com: did not receive HSTS header
 maderwin.com: did not receive HSTS header
+madreacqua.org: could not connect to host
 madusecurity.com: could not connect to host
 mafamane.com: could not connect to host
 mafiareturns.com: max-age too low: 2592000
 magenx.com: did not receive HSTS header
 mahamed91.pw: could not connect to host
 mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
 mail.google.com: did not receive HSTS header (error ignored - included regardless)
 maildragon.com: did not receive HSTS header
@@ -2138,17 +2136,16 @@ mamaxi.org: did not receive HSTS header
 mammothmail.com: could not connect to host
 mammothmail.net: could not connect to host
 mammothmail.org: could not connect to host
 managemynetsuite.com: could not connect to host
 mannsolutions.co.uk: did not receive HSTS header
 mansion-note.com: could not connect to host
 marchagen.nl: did not receive HSTS header
 marcontrol.com: did not receive HSTS header
-marcush.de: could not connect to host
 marcuskoh.com: could not connect to host
 mariannematthew.com: could not connect to host
 marie-curie.fr: could not connect to host
 markaconnor.com: could not connect to host
 markayapilandirma.com: did not receive HSTS header
 market.android.com: did not receive HSTS header (error ignored - included regardless)
 markrego.com: could not connect to host
 markus-dev.com: did not receive HSTS header
@@ -2174,16 +2171,17 @@ mattsvensson.com: did not receive HSTS h
 mattwb65.com: could not connect to host
 matty.digital: max-age too low: 3600
 maultrom.ml: could not connect to host
 maur.cz: did not receive HSTS header
 mavisang.cf: did not receive HSTS header
 maya.mg: did not receive HSTS header
 mbinformatik.de: could not connect to host
 mca2017.org: did not receive HSTS header
+mcard.vn: could not connect to host
 mcc.re: could not connect to host
 mcdonalds.ru: did not receive HSTS header
 mclab.su: could not connect to host
 mdewendt.de: could not connect to host
 mdfnet.se: did not receive HSTS header
 mdscomp.net: did not receive HSTS header
 mea.in.ua: could not connect to host
 meap.xyz: max-age too low: 0
@@ -2219,21 +2217,22 @@ mesmoque.com: did not receive HSTS heade
 metagrader.com: could not connect to host
 metebalci.com: could not connect to host
 meteosherbrooke.com: could not connect to host
 meteosky.net: could not connect to host
 metin2blog.de: did not receive HSTS header
 metis.pw: could not connect to host
 meuemail.pro: could not connect to host
 mexbt.com: could not connect to host
+meyercloud.de: could not connect to host
 mfcatalin.com: could not connect to host
+mfiles.pl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 mhealthdemocamp.com: could not connect to host
 mhict.nl: max-age too low: 0
 mia.to: could not connect to host
-michaelcullen.name: could not connect to host
 michaelfitzpatrickruth.com: could not connect to host
 michal-kral.cz: could not connect to host
 michalborka.cz: could not connect to host
 micro-dv.ru: could not connect to host
 micro-rain-systems.com: did not receive HSTS header
 microme.ga: could not connect to host
 micropple.net: could not connect to host
 midwestwomenworkers.org: did not receive HSTS header
@@ -2245,17 +2244,16 @@ mijn-email.org: could not connect to hos
 mikaelemilsson.net: did not receive HSTS header
 mikeburns.com: could not connect to host
 mikeg.de: did not receive HSTS header
 mikeology.org: could not connect to host
 mikonmaa.fi: could not connect to host
 miku.be: could not connect to host
 miku.hatsune.my: max-age too low: 5184000
 milesgeek.com: did not receive HSTS header
-mind-moves.es: could not connect to host
 mindoktor.se: did not receive HSTS header
 minecraftserverz.com: could not connect to host
 minecraftvoter.com: could not connect to host
 minikneet.nl: did not receive HSTS header
 minnesotadata.com: could not connect to host
 mirindadomo.ru: did not receive HSTS header
 mirodasilva.be: could not connect to host
 mironized.com: did not receive HSTS header
@@ -2276,57 +2274,56 @@ mnetworkingsolutions.co.uk: did not rece
 mobifinans.ru: did not receive HSTS header
 mobilekey.co: could not connect to host
 mobilemedics.com: did not receive HSTS header
 mobilethreat.net: could not connect to host
 mobilethreatnetwork.net: could not connect to host
 mobilpass.no: could not connect to host
 mocloud.eu: could not connect to host
 modemagazines.co.uk: could not connect to host
+modydev.club: could not connect to host
 moebel-nagel.de: did not receive HSTS header
 moelord.org: could not connect to host
 moen.io: did not receive HSTS header
 mogry.net: did not receive HSTS header
-momozeit.de: could not connect to host
 mona.lu: did not receive HSTS header
 monarca.systems: could not connect to host
 monasterialis.eu: could not connect to host
 mondar.io: could not connect to host
 mondopoint.com: could not connect to host
+moneycrownmedia.com: did not receive HSTS header
 monitman.com: could not connect to host
 moon.lc: could not connect to host
 moparisthebest.biz: could not connect to host
 moparisthebest.info: could not connect to host
 moparscape.org: did not receive HSTS header
 mor.gl: could not connect to host
 morbitzer.de: did not receive HSTS header
 morethanadream.lv: could not connect to host
-morganino.eu: could not connect to host
-morganino.it: could not connect to host
 moriz.net: could not connect to host
 morningcalculation.com: could not connect to host
 morotech.com.br: max-age too low: 2592000
 morpork.xyz: could not connect to host
 mortgagecentersmo.com: did not receive HSTS header
+morz.org: did not receive HSTS header
 mostwuat.com: could not connect to host
 motherbase.io: could not connect to host
 motionpicturesolutions.com: could not connect to host
 motocyklovedily.cz: did not receive HSTS header
 motoryz.com: max-age too low: 300
 mottvd.com: could not connect to host
 moula.com.au: did not receive HSTS header
 mountainmusicpromotions.com: did not receive HSTS header
 moviesabout.net: could not connect to host
 mozoa.net: did not receive HSTS header
 mp3juices.is: could not connect to host
 mqas.net: could not connect to host
 mrnonz.com: max-age too low: 0
 mrpopat.in: did not receive HSTS header
 mrs-shop.com: did not receive HSTS header
-ms-alternativ.de: could not connect to host
 msc-seereisen.net: could not connect to host
 mszaki.com: did not receive HSTS header
 mt.me.uk: could not connect to host
 mt.search.yahoo.com: did not receive HSTS header
 mtcgf.com: did not receive HSTS header
 mtg-esport.de: could not connect to host
 mtg-tutor.de: could not connect to host
 mu.search.yahoo.com: did not receive HSTS header
@@ -2373,16 +2370,17 @@ n4l.pw: could not connect to host
 nagoya-kyuyo.com: could not connect to host
 naiharngym.com: did not receive HSTS header
 najedlo.sk: did not receive HSTS header
 nakliyatsirketi.biz: could not connect to host
 nalifornia.com: did not receive HSTS header
 namacindia.com: did not receive HSTS header
 nametaken-cloud.duckdns.org: could not connect to host
 nanogeneinc.com: could not connect to host
+nanto.eu: could not connect to host
 nargileh.nl: could not connect to host
 natalia.io: could not connect to host
 natalt.org: did not receive HSTS header
 nathanmfarrugia.com: did not receive HSTS header
 naturesystems.cz: max-age too low: 0
 natuurbehangnederland.nl: could not connect to host
 nauck.org: did not receive HSTS header
 nav.jobs: could not connect to host
@@ -2436,30 +2434,30 @@ nexth.us: could not connect to host
 nextproject.us: could not connect to host
 ng-security.com: could not connect to host
 ngine.ch: did not receive HSTS header
 nginxnudes.com: could not connect to host
 ni.search.yahoo.com: did not receive HSTS header
 nibiisclaim.com: could not connect to host
 nicestresser.fr: could not connect to host
 nicky.io: did not receive HSTS header
-nicolas-hoizey.com: could not connect to host
 nicolasbettag.me: could not connect to host
 niconiconi.xyz: could not connect to host
 niconode.com: could not connect to host
 nien.chat: could not connect to host
 nightx.uk: could not connect to host
 niho.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 nikomo.fi: could not connect to host
 nilrem.org: could not connect to host
 ninchisho-online.com: did not receive HSTS header
 ninhs.org: could not connect to host
 nippler.org: did not receive HSTS header
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
+nixmag.net: could not connect to host
 nkinka.de: did not receive HSTS header
 nmctest.net: could not connect to host
 nnya.cat: did not receive HSTS header
 no17sifangjie.cc: could not connect to host
 nobly.de: could not connect to host
 nocallaghan.com: could not connect to host
 nocs.cn: did not receive HSTS header
 noctinus.tk: could not connect to host
@@ -2474,26 +2472,26 @@ nomorebytes.de: did not receive HSTS hea
 noobunbox.net: did not receive HSTS header
 nope.website: could not connect to host
 nopex.no: could not connect to host
 nopol.de: did not receive HSTS header
 norandom.com: could not connect to host
 norb.at: could not connect to host
 nosecretshop.com: did not receive HSTS header
 nossasenhoradaconceicao.com.br: could not connect to host
+notadd.com: did not receive HSTS header
 notnl.com: could not connect to host
 nottheonion.net: did not receive HSTS header
 nouvelle-vague-saint-cast.fr: did not receive HSTS header
 novacoast.com: did not receive HSTS header
 novatrucking.de: could not connect to host
 nowak.ninja: did not receive HSTS header
 noworrywp.com: could not connect to host
 np.search.yahoo.com: did not receive HSTS header
 npol.de: did not receive HSTS header
-nspeaks.com: could not connect to host
 ntbs.pro: could not connect to host
 nu3.at: did not receive HSTS header
 nu3.ch: did not receive HSTS header
 nu3.co.uk: did not receive HSTS header
 nu3.com: did not receive HSTS header
 nu3.de: did not receive HSTS header
 nu3.dk: did not receive HSTS header
 nu3.fi: did not receive HSTS header
@@ -2509,26 +2507,25 @@ numericacu.com: did not receive HSTS hea
 numero-di-telefono.it: could not connect to host
 nuos.org: could not connect to host
 nutleyeducationalfoundation.org: did not receive HSTS header
 nutleyef.org: did not receive HSTS header
 nutrienti.eu: did not receive HSTS header
 nutritionculture.com: could not connect to host
 nutsandboltsmedia.com: did not receive HSTS header
 nwgh.org: max-age too low: 86400
-nwork.media: did not receive HSTS header
+nwork.media: could not connect to host
 nyantec.com: did not receive HSTS header
 nysepho.pw: could not connect to host
 nystart.no: could not connect to host
 nz.search.yahoo.com: max-age too low: 172800
 nzb.cat: max-age too low: 7776000
 o0o.one: did not receive HSTS header
 oasis.mobi: did not receive HSTS header
 oasisim.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
-obscuredfiles.com: could not connect to host
 obsydian.org: could not connect to host
 occentus.net: did not receive HSTS header
 ochaken.cf: could not connect to host
 octothorpe.club: could not connect to host
 odifi.com: could not connect to host
 odin.xxx: did not receive HSTS header
 oe8.bet: could not connect to host
 ofcourselanguages.com: could not connect to host
@@ -2541,17 +2538,16 @@ olafnorge.de: could not connect to host
 oliver-pietsch.de: did not receive HSTS header
 oliverdunk.com: did not receive HSTS header
 ollehbizev.co.kr: could not connect to host
 ollie.io: did not receive HSTS header
 omgaanmetidealen.com: could not connect to host
 ominto.com: max-age too low: 0
 omniti.com: max-age too low: 1
 omquote.gq: could not connect to host
-omskit.ru: could not connect to host
 oneb4nk.com: could not connect to host
 onefour.co: could not connect to host
 oneminute.io: did not receive HSTS header
 onepluscamps.com: did not receive HSTS header
 onespiritinc.com: did not receive HSTS header
 onet.space: could not connect to host
 onewpst.com: did not receive HSTS header
 oniichan.us: did not receive HSTS header
@@ -2632,17 +2628,16 @@ pagetoimage.com: could not connect to ho
 paisaone.com: did not receive HSTS header
 paku.me: could not connect to host
 pamsoft.pl: max-age too low: 0
 panaceallc.net: could not connect to host
 pants-off.xyz: could not connect to host
 pantsu.cat: did not receive HSTS header
 papeda.net: could not connect to host
 papercard.co.uk: did not receive HSTS header
-paperwork.co.za: could not connect to host
 papierniak.net: could not connect to host
 parent5446.us: could not connect to host
 parentmail.co.uk: did not receive HSTS header
 parodybit.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 parpaing-paillette.net: could not connect to host
 particonpsplus.it: could not connect to host
 partijtjevoordevrijheid.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 partyvan.it: could not connect to host
@@ -2653,17 +2648,16 @@ passwordbox.com: did not receive HSTS he
 passwordrevelator.net: did not receive HSTS header
 passwords.google.com: did not receive HSTS header (error ignored - included regardless)
 pastaf.com: could not connect to host
 paste.fedoraproject.org: did not receive HSTS header
 paste.linode.com: could not connect to host
 pastebin.linode.com: could not connect to host
 pastenib.com: could not connect to host
 paster.li: did not receive HSTS header
-pastie.se: did not receive HSTS header
 patientinsight.net: could not connect to host
 patt.us: did not receive HSTS header
 patterson.mp: could not connect to host
 paulchen.at: did not receive HSTS header
 paulyang.cn: did not receive HSTS header
 paxwinkel.nl: did not receive HSTS header
 pay.gigahost.dk: did not receive HSTS header
 payments.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -2693,33 +2687,33 @@ pet-nsk.ru: could not connect to host
 petchart.net: could not connect to host
 petplum.com: did not receive HSTS header
 petrachuk.ru: did not receive HSTS header
 petravdbos.nl: did not receive HSTS header
 petrolplus.ru: did not receive HSTS header
 pettsy.com: could not connect to host
 pewboards.com: could not connect to host
 pgpm.io: could not connect to host
-phantasie.cc: could not connect to host
 phillprice.com: could not connect to host
 phonenumberinfo.co.uk: could not connect to host
 phongmay24h.com: could not connect to host
 phurl.de: could not connect to host
 pickr.co: could not connect to host
 picotronic.biz: could not connect to host
 picscare.co.uk: did not receive HSTS header
 pierre-denoblens.net: could not connect to host
 pijuice.com: could not connect to host
 piligrimname.com: could not connect to host
 pinesandneedles.com: did not receive HSTS header
+pinkhq.com: could not connect to host
 pippen.io: could not connect to host
 pir9.com: max-age too low: 2592000
 piratedb.com: could not connect to host
 piratedot.com: could not connect to host
-piratelist.online: did not receive HSTS header
+piratelist.online: could not connect to host
 piratenlogin.de: could not connect to host
 pirati.cz: max-age too low: 604800
 pirlitu.com: did not receive HSTS header
 pisexy.me: did not receive HSTS header
 pisidia.de: could not connect to host
 pittonpreschool.com: did not receive HSTS header
 piwko.co: could not connect to host
 pixel.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -2732,26 +2726,25 @@ placefade.com: could not connect to host
 placollection.org: could not connect to host
 plaettliaktion.ch: did not receive HSTS header
 platform.lookout.com: could not connect to host
 play.google.com: did not receive HSTS header (error ignored - included regardless)
 playkh.com: did not receive HSTS header
 playmaker.io: could not connect to host
 playnation.io: did not receive HSTS header
 playsoundevents.be: could not connect to host
-pleasure.forsale: could not connect to host
+plhdb.org: could not connect to host
 plixer.com: did not receive HSTS header
 plogable.co: could not connect to host
 plothost.com: did not receive HSTS header
 ploup.net: could not connect to host
 pmnts.io: could not connect to host
 po.gl: did not receive HSTS header
 poiema.com.sg: did not receive HSTS header
 pol.in.th: could not connect to host
-polaire.org: did not receive HSTS header
 pole.net.nz: did not receive HSTS header
 poleartschool.com: could not connect to host
 polimat.org: could not connect to host
 politically-incorrect.xyz: could not connect to host
 politologos.org: could not connect to host
 polypho.nyc: could not connect to host
 pompompoes.com: could not connect to host
 pontokay.com.br: did not receive HSTS header
@@ -2764,17 +2757,17 @@ postcodewise.co.uk: did not receive HSTS
 posterspy.com: did not receive HSTS header
 postscheduler.org: could not connect to host
 posylka.de: did not receive HSTS header
 potatofrom.space: could not connect to host
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power-of-interest.com: did not receive HSTS header
 power99press.com: did not receive HSTS header
-powerplannerapp.com: did not receive HSTS header
+powerplannerapp.com: could not connect to host
 powerxequality.com: could not connect to host
 ppr-truby.ru: could not connect to host
 ppy3.com: did not receive HSTS header
 pr.search.yahoo.com: did not receive HSTS header
 prefontaine.name: could not connect to host
 prego-shop.de: did not receive HSTS header
 preissler.co.uk: could not connect to host
 prelist.org: did not receive HSTS header
@@ -2792,25 +2785,27 @@ prodpad.com: did not receive HSTS header
 production.vn: did not receive HSTS header
 professionalboundaries.com: did not receive HSTS header
 profi-durchgangsmelder.de: did not receive HSTS header
 profundr.com: could not connect to host
 progg.no: could not connect to host
 prohostonline.fi: could not connect to host
 promecon-gmbh.de: did not receive HSTS header
 prontolight.com: did not receive HSTS header
+proposalonline.com: could not connect to host
 prosocialmachines.com: could not connect to host
 prosoft.sk: max-age too low: 0
 prosperident.com: did not receive HSTS header
 prowhisky.de: did not receive HSTS header
 proximato.com: could not connect to host
 proxybay.al: could not connect to host
 proxybay.club: could not connect to host
 proxybay.info: did not receive HSTS header
-prxio.site: could not connect to host
+prxio.date: could not connect to host
+prxio.site: did not receive HSTS header
 prytkov.com: did not receive HSTS header
 psw.academy: did not receive HSTS header
 psw.consulting: did not receive HSTS header
 ptn.moscow: could not connect to host
 ptonet.com: did not receive HSTS header
 pubkey.is: could not connect to host
 puiterwijk.org: could not connect to host
 pumpgames.net: could not connect to host
@@ -2829,17 +2824,16 @@ pypt.lt: did not receive HSTS header
 q2.si: did not receive HSTS header
 qingxuan.info: max-age too low: 864000
 qinxi1992.com: did not receive HSTS header
 qiwi.be: did not receive HSTS header
 qorm.co.uk: did not receive HSTS header
 qrara.net: did not receive HSTS header
 qrlending.com: did not receive HSTS header
 quail.solutions: could not connect to host
-qualityology.com: could not connect to host
 quantacloud.ch: could not connect to host
 quantenteranik.eu: could not connect to host
 quantumcourse.org: did not receive HSTS header
 queercoders.com: did not receive HSTS header
 quemmeliga.com: could not connect to host
 questsandrewards.com: could not connect to host
 quranserver.net: could not connect to host
 qvi.st: did not receive HSTS header
@@ -2859,17 +2853,21 @@ randomcloud.net: could not connect to ho
 rankthespot.com: did not receive HSTS header
 rapidresearch.me: could not connect to host
 rapidthunder.io: could not connect to host
 rasing.me: did not receive HSTS header
 ratajczak.fr: could not connect to host
 raulfraile.net: could not connect to host
 rawet.se: did not receive HSTS header
 rawstorieslondon.com: could not connect to host
+ray-home.de: could not connect to host
+ray-works.de: could not connect to host
 raydobe.me: could not connect to host
+raymd.de: could not connect to host
+rayworks.de: could not connect to host
 rc4.io: did not receive HSTS header
 rcafox.com: could not connect to host
 rcpcbd.com: did not receive HSTS header
 rdns.im: did not receive HSTS header
 re-customer.net: could not connect to host
 readr.pw: could not connect to host
 realmic.net: could not connect to host
 realmofespionage.com: could not connect to host
@@ -2894,16 +2892,17 @@ relisten.nl: did not receive HSTS header
 remitatm.com: could not connect to host
 remodela.com.ve: could not connect to host
 renem.net: did not receive HSTS header
 renlong.org: could not connect to host
 renrenss.com: did not receive HSTS header
 rent-a-coder.de: did not receive HSTS header
 rentcarassist.com: could not connect to host
 renteater.com: could not connect to host
+repaxan.com: could not connect to host
 replacemychina.com: did not receive HSTS header
 reprolife.co.uk: max-age too low: 0
 res-rheingau.de: did not receive HSTS header
 res42.com: could not connect to host
 reserve-online.net: did not receive HSTS header
 respice.xyz: could not connect to host
 respostas.com.br: did not receive HSTS header
 restchart.com: did not receive HSTS header
@@ -2945,40 +2944,41 @@ roddis.net: did not receive HSTS header
 rodney.id.au: did not receive HSTS header
 rodosto.com: did not receive HSTS header
 roeper.party: could not connect to host
 romans-place.me.uk: did not receive HSTS header
 ronvandordt.info: did not receive HSTS header
 ronwo.de: max-age too low: 1
 room-checkin24.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 rootforum.org: did not receive HSTS header
-roots-example-project.com: could not connect to host
 rootservice.org: did not receive HSTS header
 rootwpn.com: could not connect to host
 rotterdamjazz.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 roundtheme.com: did not receive HSTS header
 rous.se: could not connect to host
 rout0r.org: did not receive HSTS header
 rouvray.org: could not connect to host
+royalhop.co: could not connect to host
 rr.in.th: could not connect to host
 rrke.cc: did not receive HSTS header
 rsajeey.info: could not connect to host
 rsauget.fr: could not connect to host
 rsf.io: could not connect to host
 rsmaps.org: could not connect to host
 rsync.eu: could not connect to host
 rubbereggs.ca: could not connect to host
 rubberfurs.org: max-age too low: 86400
 rubecodeberg.com: could not connect to host
 rubenschulz.nl: did not receive HSTS header
 ruborr.se: did not receive HSTS header
 rubyshop.nl: max-age too low: 604800
 rudeotter.com: did not receive HSTS header
 rudloff.pro: did not receive HSTS header
 rugirlfriend.com: could not connect to host
+ruh-veit.de: could not connect to host
 ruiming.me: could not connect to host
 runawebinar.nl: could not connect to host
 runementors.com: could not connect to host
 runtondev.com: did not receive HSTS header
 ruobiyi.com: could not connect to host
 ruqu.nl: could not connect to host
 rusadmin.biz: did not receive HSTS header
 rusl.me: could not connect to host
@@ -3017,17 +3017,16 @@ saturngames.co.uk: did not receive HSTS 
 saucyfox.net: did not receive HSTS header
 saunasandstuff.ca: did not receive HSTS header
 saunasandstuff.com: did not receive HSTS header
 save.gov: could not connect to host
 saveaward.gov: could not connect to host
 saveyour.biz: did not receive HSTS header
 sawamura-rental.com: did not receive HSTS header
 sb-group.dk: did not receive HSTS header
-sbiewald.de: could not connect to host
 sbox-archives.com: could not connect to host
 sby.de: did not receive HSTS header
 sc4le.com: could not connect to host
 schmitz.link: could not connect to host
 schnell-gold.com: could not connect to host
 schoop.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 schreiber-netzwerk.eu: did not receive HSTS header
 schrodinger.io: could not connect to host
@@ -3073,46 +3072,46 @@ selfcarecentral.com: did not receive HST
 selfie-france.fr: could not connect to host
 selldorado.com: did not receive HSTS header
 sello.com: did not receive HSTS header
 sellocdn.com: could not connect to host
 semen3325.xyz: could not connect to host
 semenkovich.com: did not receive HSTS header
 semps-servers.de: could not connect to host
 semps.de: did not receive HSTS header
-senedirect.com: did not receive HSTS header
+senedirect.com: could not connect to host
 sensibus.com: did not receive HSTS header
 seo.consulting: did not receive HSTS header
 seomobo.com: could not connect to host
 seon.me: did not receive HSTS header
 seowarp.net: did not receive HSTS header
 sep23.ru: could not connect to host
 seq.tf: did not receive HSTS header
-serathius.ovh: could not connect to host
 serfdom.io: did not receive HSTS header
 serized.pw: could not connect to host
 servercode.ca: did not receive HSTS header
 serverdensity.io: did not receive HSTS header
 servergno.me: did not receive HSTS header
+serverstuff.info: could not connect to host
 seryo.moe: could not connect to host
 setphaserstostun.org: could not connect to host
 setuid.de: could not connect to host
 setuid.io: did not receive HSTS header
 seyahatsagliksigortalari.com: could not connect to host
 shadoom.com: did not receive HSTS header
 shadowmorph.info: did not receive HSTS header
 shadowsocks.net: could not connect to host
 shakepeers.org: did not receive HSTS header
 shakespearesolutions.com.au: did not receive HSTS header
 shanesage.com: could not connect to host
 shanewadleigh.com: could not connect to host
 shaobin.wang: could not connect to host
 sharepass.pw: could not connect to host
 sharescope.co.uk: max-age too low: 14400
-sharevari.com: did not receive HSTS header
+sharevari.com: could not connect to host
 shareworx.net: could not connect to host
 shauncrowley.co.uk: could not connect to host
 shaunwheelhou.se: could not connect to host
 shawnh.net: could not connect to host
 shellsec.pw: did not receive HSTS header
 shibe.club: could not connect to host
 shiftins.com: did not receive HSTS header
 shiinko.com: could not connect to host
@@ -3127,16 +3126,17 @@ shops.neonisi.com: could not connect to 
 shortr.li: could not connect to host
 showkeeper.tv: did not receive HSTS header
 shukatsu-note.com: could not connect to host
 shv25.se: could not connect to host
 shwongacc.com: could not connect to host
 siammedia.co: did not receive HSTS header
 siddhant.me: could not connect to host
 siebens.net: could not connect to host
+siebeve.be: could not connect to host
 sifls.com: could not connect to host
 silentcircle.org: could not connect to host
 silicagelpackets.ca: did not receive HSTS header
 silver-drachenkrieger.de: did not receive HSTS header
 silverpvp.com: could not connect to host
 silverwind.io: did not receive HSTS header
 simbast.com: could not connect to host
 simod.org: could not connect to host
@@ -3168,50 +3168,51 @@ slicketl.com: did not receive HSTS heade
 slightfuture.click: could not connect to host
 slix.io: could not connect to host
 slope.haus: could not connect to host
 slovakiana.sk: did not receive HSTS header
 sluitkampzeist.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 slycurity.de: did not receive HSTS header
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
+smartairkey.com: could not connect to host
 smartcoin.com.br: could not connect to host
 smartofficesandsmarthomes.com: did not receive HSTS header
 smartrak.co.nz: did not receive HSTS header
-smatch.com: did not receive HSTS header
 smet.us: could not connect to host
 smimea.com: could not connect to host
 smirkingwhorefromhighgarden.pro: could not connect to host
 smkn1lengkong.sch.id: did not receive HSTS header
 smksi2.com: max-age too low: 0
+sms1.ro: could not connect to host
 smusg.com: did not receive HSTS header
 snailing.org: could not connect to host
 snapappointments.com: did not receive HSTS header
 snapappts.com: could not connect to host
 snapworks.net: did not receive HSTS header
 sneberger.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 snel4u.nl: could not connect to host
 snelwerk.be: did not receive HSTS header
 sng.my: could not connect to host
-sniderman.eu.org: could not connect to host
 snille.com: could not connect to host
 snoqualmiefiber.org: did not receive HSTS header
 sobabox.ru: could not connect to host
 sobie.ch: could not connect to host
 sobotkama.eu: did not receive HSTS header
 soccergif.com: could not connect to host
 soci.ml: did not receive HSTS header
 socialbillboard.com: could not connect to host
 socialdevelop.biz: did not receive HSTS header
 socialhams.net: did not receive HSTS header
 socialhead.io: could not connect to host
 socialspirit.com.br: did not receive HSTS header
 sockeye.cc: could not connect to host
 socomponents.co.uk: did not receive HSTS header
 sogeek.me: did not receive HSTS header
+sokche.com: could not connect to host
 solidfuelappliancespares.co.uk: did not receive HSTS header
 solinter.com.br: did not receive HSTS header
 soll-i.ch: did not receive HSTS header
 solsystems.ru: could not connect to host
 someshit.xyz: could not connect to host
 somethingnew.xyz: did not receive HSTS header
 songzhuolun.com: did not receive HSTS header
 sonic.sk: max-age too low: 0
@@ -3259,16 +3260,17 @@ spotlightsrule.ddns.net: could not conne
 spreadsheets.google.com: did not receive HSTS header (error ignored - included regardless)
 spreed.me: did not receive HSTS header
 sproutconnections.com: did not receive HSTS header
 sprybear.com: did not receive HSTS header
 square.gs: could not connect to host
 squatldf.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 sqzryang.com: did not receive HSTS header
 srevilak.net: did not receive HSTS header
+sritest.io: did not receive HSTS header
 srna.sk: could not connect to host
 srrr.ca: could not connect to host
 ss.wtf: did not receive HSTS header
 ssersay.com: max-age too low: 0
 ssl.panoramio.com: did not receive HSTS header
 ssl.rip: could not connect to host
 ssmato.me: could not connect to host
 ssnc.org: max-age too low: 300
@@ -3329,16 +3331,18 @@ subrosa.io: could not connect to host
 subtitle.rip: could not connect to host
 sudo.li: did not receive HSTS header
 suian.or.jp: max-age too low: 86400
 suite73.org: could not connect to host
 suksit.com: could not connect to host
 sumoatm.com: did not receive HSTS header
 sumoscout.de: did not receive HSTS header
 suncountrymarine.com: did not receive HSTS header
+sunflyer.cn: did not receive HSTS header
+sunnyfruit.ru: did not receive HSTS header
 sunshinepress.org: could not connect to host
 superbabysitting.ch: could not connect to host
 supereight.net: did not receive HSTS header
 superiorfloridavacation.com: did not receive HSTS header
 supersalescontest.nl: did not receive HSTS header
 superwally.org: could not connect to host
 suprlink.net: could not connect to host
 supweb.ovh: did not receive HSTS header
@@ -3355,31 +3359,34 @@ sxbk.pw: could not connect to host
 syam.cc: could not connect to host
 sydgrabber.tk: could not connect to host
 sylvanorder.com: could not connect to host
 synackr.com: could not connect to host
 syncer.jp: did not receive HSTS header
 syncserve.net: did not receive HSTS header
 syneic.com: did not receive HSTS header
 syno.gq: could not connect to host
+syntheticmotoroil.org: did not receive HSTS header
 sysadmin.xyz: could not connect to host
 syso.name: could not connect to host
 szaszm.tk: max-age too low: 0
 t.facebook.com: did not receive HSTS header
 taabe.xyz: could not connect to host
 tablet.facebook.com: did not receive HSTS header
 tacomafia.net: did not receive HSTS header
 tadigitalstore.com: could not connect to host
 tafoma.com: did not receive HSTS header
 tageau.com: could not connect to host
 taglondon.org: did not receive HSTS header
+tails.com.ar: did not receive HSTS header
 talk.google.com: did not receive HSTS header (error ignored - included regardless)
 talktwincities.com: could not connect to host
 tallr.se: could not connect to host
 tallshoe.com: could not connect to host
+talsi.eu: could not connect to host
 tandarts-haarlem.nl: did not receive HSTS header
 tanzhijun.com: did not receive HSTS header
 tapfinder.ca: could not connect to host
 tapka.cz: did not receive HSTS header
 taravancil.com: did not receive HSTS header
 tarhauskielto.fi: did not receive HSTS header
 tartaros.fi: could not connect to host
 taskstats.com: could not connect to host
@@ -3402,30 +3409,31 @@ teamsocial.co: did not receive HSTS head
 teamzeus.cz: could not connect to host
 techhub.ml: could not connect to host
 techllage.com: could not connect to host
 techloaner.com: could not connect to host
 techmatehq.com: could not connect to host
 technosavvyport.com: did not receive HSTS header
 techpointed.com: could not connect to host
 techvalue.gr: did not receive HSTS header
+tedovo.com: did not receive HSTS header
 tegelsensanitaironline.nl: did not receive HSTS header
 tekshrek.com: max-age too low: 0
 telefonnummer.online: could not connect to host
 telefoonnummerinfo.nl: could not connect to host
 temehu.com: did not receive HSTS header
 tempcraft.net: could not connect to host
 tendertool.nl: could not connect to host
 tenni.xyz: could not connect to host
 tensionup.com: could not connect to host
 terra.by: could not connect to host
 terrax.berlin: could not connect to host
 terrax.info: could not connect to host
 testandroid.xyz: could not connect to host
-testbawks.com: could not connect to host
+testbawks.com: did not receive HSTS header
 testnode.xyz: could not connect to host
 texter-linz.at: did not receive HSTS header
 textoplano.xyz: could not connect to host
 textracer.dk: could not connect to host
 tezcam.tk: could not connect to host
 tf2stadium.com: did not receive HSTS header
 tfcoms-sp-tracker-client.azurewebsites.net: could not connect to host
 tffans.com: could not connect to host
@@ -3435,17 +3443,16 @@ thai.land: could not connect to host
 the-sky-of-valkyries.com: could not connect to host
 theamateurs.net: did not receive HSTS header
 theater.cf: could not connect to host
 thebrotherswarde.com: could not connect to host
 thecharlestonwaldorf.com: could not connect to host
 theclementinebutchers.com: could not connect to host
 thecoffeehouse.xyz: could not connect to host
 thediaryofadam.com: did not receive HSTS header
-thedisc.nl: could not connect to host
 theendofzion.com: did not receive HSTS header
 thefootballanalyst.com: could not connect to host
 thehiddenbay.me: could not connect to host
 thehiddenbay.net: could not connect to host
 thehistory.me: could not connect to host
 thehonorguard.org: did not receive HSTS header
 theinvisibletrailer.com: could not connect to host
 themarble.co: could not connect to host
@@ -3505,16 +3512,17 @@ tncnanet.com.br: could not connect to ho
 tnrsca.jp: did not receive HSTS header
 tobiasmathes.com: could not connect to host
 tobiasmathes.name: could not connect to host
 tobiasofficial.at: could not connect to host
 todo.is: did not receive HSTS header
 todobazar.es: could not connect to host
 tokyopopline.com: did not receive HSTS header
 tollmanz.com: did not receive HSTS header
+tomatenaufdenaugen.de: could not connect to host
 tomberek.info: could not connect to host
 tomeara.net: could not connect to host
 tomharling.co.uk: max-age too low: 86400
 tomharling.uk: max-age too low: 86400
 tomharris.tech: could not connect to host
 tomlankhorst.nl: did not receive HSTS header
 tommsy.com: did not receive HSTS header
 tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
@@ -3555,16 +3563,17 @@ trybind.com: could not connect to host
 ts2.se: did not receive HSTS header
 tsecy.com: did not receive HSTS header
 tsgoc.com: did not receive HSTS header
 tssouthernpower.com: max-age too low: 0
 tuingereedschappen.net: could not connect to host
 tunai.id: could not connect to host
 tuningblog.eu: did not receive HSTS header
 turnik-67.ru: could not connect to host
+turtleduckstudios.com: could not connect to host
 tuturulianda.com: could not connect to host
 tuvalie.com: could not connect to host
 tuxcall.de: could not connect to host
 tv.search.yahoo.com: could not connect to host
 tvtubeflix.com: did not receive HSTS header
 tvz-materijali.com: could not connect to host
 twarog.cc: could not connect to host
 twinkseason.ca: could not connect to host
@@ -3614,17 +3623,17 @@ uni-games.com: could not connect to host
 unicooo.com: did not receive HSTS header
 unison.com: could not connect to host
 unitedcyberdevelopment.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 unitel2000.de: could not connect to host
 university4industry.com: did not receive HSTS header
 univz.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 unknownphenomena.net: could not connect to host
 unplugg3r.dk: could not connect to host
-unravel.ie: did not receive HSTS header
+unravel.ie: could not connect to host
 unterschicht.tv: could not connect to host
 unwiredbrain.com: could not connect to host
 uonstaffhub.com: could not connect to host
 uow.ninja: could not connect to host
 up1.ca: could not connect to host
 upaknship.com: did not receive HSTS header
 upani.net: did not receive HSTS header
 upldr.pw: could not connect to host
@@ -3799,17 +3808,16 @@ whoclicks.net: could not connect to host
 whoisapi.online: could not connect to host
 wholebites.com: did not receive HSTS header
 whoshotya.de: did not receive HSTS header
 whysuck.com: could not connect to host
 whyworldhot.com: could not connect to host
 wienholding.at: max-age too low: 0
 wieninternational.at: could not connect to host
 wiire.me: could not connect to host
-wiktoriaslife.com: could not connect to host
 wilf1rst.com: could not connect to host
 william.si: did not receive HSTS header
 willosagiede.com: did not receive HSTS header
 winclient.cn: could not connect to host
 winecodeavocado.com: could not connect to host
 wingumd.net: could not connect to host
 winhistory-forum.net: did not receive HSTS header
 winpack.cf: could not connect to host
@@ -3844,19 +3852,17 @@ workwithgo.com: could not connect to hos
 wowapi.org: could not connect to host
 wphostingspot.com: did not receive HSTS header
 wpmetadatastandardsproject.org: could not connect to host
 writeapp.me: did not receive HSTS header
 wsscompany.com.ve: could not connect to host
 wufu.org: did not receive HSTS header
 wuhengmin.com: did not receive HSTS header
 wurzelzwerg.net: could not connect to host
-wvg.myds.me: could not connect to host
 ww2onlineshop.com: did not receive HSTS header
-www.amazon.com.au: did not receive HSTS header
 www.apollo-auto.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 www.braintreepayments.com: did not receive HSTS header
 www.calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 www.cueup.com: could not connect to host
 www.cyveillance.com: did not receive HSTS header
 www.developer.mydigipass.com: could not connect to host
 www.elanex.biz: did not receive HSTS header
 www.gamesdepartment.co.uk: max-age too low: 0
@@ -3883,17 +3889,17 @@ xatr0z.org: could not connect to host
 xavierbarroso.com: could not connect to host
 xcoop.me: could not connect to host
 xellos.ga: could not connect to host
 xellos.ml: could not connect to host
 xendo.net: did not receive HSTS header
 xenesisziarovky.sk: could not connect to host
 xett.com: did not receive HSTS header
 xf-liam.com: could not connect to host
-xfive.de: did not receive HSTS header
+xfive.de: could not connect to host
 xiaody.me: could not connect to host
 xiaolvmu.me: could not connect to host
 xiaoxiao.im: could not connect to host
 ximens.me: did not receive HSTS header
 xisa.it: could not connect to host
 xiyu.moe: could not connect to host
 xn--3lqp21gwna.xn--fiqs8s: could not connect to host
 xn--3lqp21gwna.xn--fiqz9s: could not connect to host
@@ -3927,29 +3933,29 @@ xtreamhosting.eu: could not connect to h
 xtremegaming.it: could not connect to host
 xuri.me: max-age too low: 2592000
 xuyh0120.win: did not receive HSTS header
 xxbase.com: could not connect to host
 y-o-w.com: did not receive HSTS header
 y-s.pw: did not receive HSTS header
 yabrt.cn: could not connect to host
 yahvehyireh.com: did not receive HSTS header
-yalook.com: did not receive HSTS header
 yamaken.jp: did not receive HSTS header
 yamamo10.com: could not connect to host
 yaporn.tv: did not receive HSTS header
 yard-fu.com: did not receive HSTS header
 yasinaydin.net: max-age too low: 2592000
 yaucy.win: did not receive HSTS header
 yello.website: could not connect to host
 yellowcar.website: could not connect to host
 yenniferallulli.de: could not connect to host
 yenniferallulli.es: did not receive HSTS header
 yenniferallulli.moda: could not connect to host
 yenniferallulli.nl: could not connect to host
+yestees.com: did not receive HSTS header
 yetcore.io: could not connect to host
 yingyj.com: could not connect to host
 yjsoft.me: did not receive HSTS header
 ynode.co: did not receive HSTS header
 ynsn.nl: did not receive HSTS header
 yokeepo.com: max-age too low: 0
 yoloboatrentals.com: did not receive HSTS header
 yoloprod.fr: could not connect to host
@@ -3961,17 +3967,16 @@ yout.com: max-age too low: 60000
 ys-shop.biz: could not connect to host
 yu.gg: did not receive HSTS header
 yuan.ga: did not receive HSTS header
 yuhen.ru: did not receive HSTS header
 yuko.moe: could not connect to host
 yukontec.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
 yunzhu.li: did not receive HSTS header
 yunzhu.org: could not connect to host
-yutabon.com: could not connect to host
 yux.io: did not receive HSTS header
 yzal.io: could not connect to host
 z33.ch: did not receive HSTS header
 z3liff.com: could not connect to host
 z3liff.net: could not connect to host
 za.search.yahoo.com: did not receive HSTS header
 zachgibbens.org: could not connect to host
 zadieheimlich.com: did not receive HSTS header
@@ -3998,21 +4003,23 @@ zh.search.yahoo.com: did not receive HST
 zhaojin97.cn: did not receive HSTS header
 zhendingresources.com: max-age too low: 0
 zigcore.com.br: could not connect to host
 zirtue.io: could not connect to host
 ziyuanabc.xyz: could not connect to host
 zking.ga: could not connect to host
 zocken.com: could not connect to host
 zomerschoen.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121"  data: no]
+zomiac.pp.ua: could not connect to host
 zoneminder.com: did not receive HSTS header
 zoo24.de: did not receive HSTS header
 zoomingin.net: max-age too low: 2592000
 zorgclustertool.nl: could not connect to host
 zortium.report: could not connect to host
 zoznamrealit.sk: did not receive HSTS header
 zqhong.com: could not connect to host
 zrn.in: did not receive HSTS header
 ztan.tk: could not connect to host
 zten.org: could not connect to host
+zulu7.com: could not connect to host
 zvncloud.com: did not receive HSTS header
 zwy.me: did not receive HSTS header
 zyf.pw: could not connect to host
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.     */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1491315879441000);
+const PRTime gPreloadListExpirationTime = INT64_C(1491403490467000);
 
 static const char kSTSHostTable[] = {
   /* "007-preisvergleich.de", true */ '0', '0', '7', '-', 'p', 'r', 'e', 'i', 's', 'v', 'e', 'r', 'g', 'l', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0',
   /* "007sascha.de", true */ '0', '0', '7', 's', 'a', 's', 'c', 'h', 'a', '.', 'd', 'e', '\0',
   /* "00f.net", true */ '0', '0', 'f', '.', 'n', 'e', 't', '\0',
   /* "01electronica.com.ar", true */ '0', '1', 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 'a', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "01seguridad.com.ar", true */ '0', '1', 's', 'e', 'g', 'u', 'r', 'i', 'd', 'a', 'd', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "050media.nl", true */ '0', '5', '0', 'm', 'e', 'd', 'i', 'a', '.', 'n', 'l', '\0',
@@ -80,18 +80,18 @@ static const char kSTSHostTable[] = {
   /* "1co-jp.net", true */ '1', 'c', 'o', '-', 'j', 'p', '.', 'n', 'e', 't', '\0',
   /* "1cover.com", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "1cover.com.au", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "1hourproofreading.com", true */ '1', 'h', 'o', 'u', 'r', 'p', 'r', 'o', 'o', 'f', 'r', 'e', 'a', 'd', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "1item.co.il", true */ '1', 'i', 't', 'e', 'm', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "1js.de", true */ '1', 'j', 's', '.', 'd', 'e', '\0',
   /* "1k8b.com", true */ '1', 'k', '8', 'b', '.', 'c', 'o', 'm', '\0',
   /* "1km.ro", true */ '1', 'k', 'm', '.', 'r', 'o', '\0',
-  /* "1on1on1.de", false */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 'd', 'e', '\0',
-  /* "1on1on1.tv", false */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 't', 'v', '\0',
+  /* "1on1on1.de", true */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 'd', 'e', '\0',
+  /* "1on1on1.tv", true */ '1', 'o', 'n', '1', 'o', 'n', '1', '.', 't', 'v', '\0',
   /* "1pw.ca", true */ '1', 'p', 'w', '.', 'c', 'a', '\0',
   /* "1px.tv", true */ '1', 'p', 'x', '.', 't', 'v', '\0',
   /* "1q365a.com", true */ '1', 'q', '3', '6', '5', 'a', '.', 'c', 'o', 'm', '\0',
   /* "1rs.nl", true */ '1', 'r', 's', '.', 'n', 'l', '\0',
   /* "1se2or3.com", true */ '1', 's', 'e', '2', 'o', 'r', '3', '.', 'c', 'o', 'm', '\0',
   /* "1st-community.de", true */ '1', 's', 't', '-', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '.', 'd', 'e', '\0',
   /* "1stcapital.com.sg", true */ '1', 's', 't', 'c', 'a', 'p', 'i', 't', 'a', 'l', '.', 'c', 'o', 'm', '.', 's', 'g', '\0',
   /* "1ststop.co.uk", true */ '1', 's', 't', 's', 't', 'o', 'p', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -240,17 +240,16 @@ static const char kSTSHostTable[] = {
   /* "abeus.com", true */ 'a', 'b', 'e', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "abiapp.net", true */ 'a', 'b', 'i', 'a', 'p', 'p', '.', 'n', 'e', 't', '\0',
   /* "abilitynet.org.uk", true */ 'a', 'b', 'i', 'l', 'i', 't', 'y', 'n', 'e', 't', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "abilma.com", true */ 'a', 'b', 'i', 'l', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "abilymp06.net", true */ 'a', 'b', 'i', 'l', 'y', 'm', 'p', '0', '6', '.', 'n', 'e', 't', '\0',
   /* "abiturma.de", true */ 'a', 'b', 'i', 't', 'u', 'r', 'm', 'a', '.', 'd', 'e', '\0',
   /* "ablak-nyilaszaro.info", true */ 'a', 'b', 'l', 'a', 'k', '-', 'n', 'y', 'i', 'l', 'a', 's', 'z', 'a', 'r', 'o', '.', 'i', 'n', 'f', 'o', '\0',
   /* "ablogagency.net", true */ 'a', 'b', 'l', 'o', 'g', 'a', 'g', 'e', 'n', 'c', 'y', '.', 'n', 'e', 't', '\0',
-  /* "abloop.com", true */ 'a', 'b', 'l', 'o', 'o', 'p', '.', 'c', 'o', 'm', '\0',
   /* "abmahnhelfer.de", false */ 'a', 'b', 'm', 'a', 'h', 'n', 'h', 'e', 'l', 'f', 'e', 'r', '.', 'd', 'e', '\0',
   /* "abmgood.com", false */ 'a', 'b', 'm', 'g', 'o', 'o', 'd', '.', 'c', 'o', 'm', '\0',
   /* "abnarnro.com", true */ 'a', 'b', 'n', 'a', 'r', 'n', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "abnerchou.me", true */ 'a', 'b', 'n', 'e', 'r', 'c', 'h', 'o', 'u', '.', 'm', 'e', '\0',
   /* "abolitionism.com", true */ 'a', 'b', 'o', 'l', 'i', 't', 'i', 'o', 'n', 'i', 's', 'm', '.', 'c', 'o', 'm', '\0',
   /* "abolitionist-society.com", true */ 'a', 'b', 'o', 'l', 'i', 't', 'i', 'o', 'n', 'i', 's', 't', '-', 's', 'o', 'c', 'i', 'e', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "abou.to", false */ 'a', 'b', 'o', 'u', '.', 't', 'o', '\0',
   /* "aboutassistedliving.org", true */ 'a', 'b', 'o', 'u', 't', 'a', 's', 's', 'i', 's', 't', 'e', 'd', 'l', 'i', 'v', 'i', 'n', 'g', '.', 'o', 'r', 'g', '\0',
@@ -315,17 +314,17 @@ static const char kSTSHostTable[] = {
   /* "adamdixon.co.uk", true */ 'a', 'd', 'a', 'm', 'd', 'i', 'x', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "adamgold.net", true */ 'a', 'd', 'a', 'm', 'g', 'o', 'l', 'd', '.', 'n', 'e', 't', '\0',
   /* "adamkaminski.com", true */ 'a', 'd', 'a', 'm', 'k', 'a', 'm', 'i', 'n', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "adamoutler.com", true */ 'a', 'd', 'a', 'm', 'o', 'u', 't', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "adamradocz.com", true */ 'a', 'd', 'a', 'm', 'r', 'a', 'd', 'o', 'c', 'z', '.', 'c', 'o', 'm', '\0',
   /* "adamricheimer.com", true */ 'a', 'd', 'a', 'm', 'r', 'i', 'c', 'h', 'e', 'i', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "adams.dk", true */ 'a', 'd', 'a', 'm', 's', '.', 'd', 'k', '\0',
   /* "adamstas.com", true */ 'a', 'd', 'a', 'm', 's', 't', 'a', 's', '.', 'c', 'o', 'm', '\0',
-  /* "adapt.de", false */ 'a', 'd', 'a', 'p', 't', '.', 'd', 'e', '\0',
+  /* "adapt.de", true */ 'a', 'd', 'a', 'p', 't', '.', 'd', 'e', '\0',
   /* "adaptivemechanics.edu.au", true */ 'a', 'd', 'a', 'p', 't', 'i', 'v', 'e', 'm', 'e', 'c', 'h', 'a', 'n', 'i', 'c', 's', '.', 'e', 'd', 'u', '.', 'a', 'u', '\0',
   /* "adastra.re", true */ 'a', 'd', 'a', 's', 't', 'r', 'a', '.', 'r', 'e', '\0',
   /* "adayinthelifeof.nl", true */ 'a', 'd', 'a', 'y', 'i', 'n', 't', 'h', 'e', 'l', 'i', 'f', 'e', 'o', 'f', '.', 'n', 'l', '\0',
   /* "adblock.ovh", true */ 'a', 'd', 'b', 'l', 'o', 'c', 'k', '.', 'o', 'v', 'h', '\0',
   /* "adblockextreme.com", true */ 'a', 'd', 'b', 'l', 'o', 'c', 'k', 'e', 'x', 't', 'r', 'e', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "adblockextreme.net", true */ 'a', 'd', 'b', 'l', 'o', 'c', 'k', 'e', 'x', 't', 'r', 'e', 'm', 'e', '.', 'n', 'e', 't', '\0',
   /* "adblockextreme.org", true */ 'a', 'd', 'b', 'l', 'o', 'c', 'k', 'e', 'x', 't', 'r', 'e', 'm', 'e', '.', 'o', 'r', 'g', '\0',
   /* "addaxpetroleum.com", true */ 'a', 'd', 'd', 'a', 'x', 'p', 'e', 't', 'r', 'o', 'l', 'e', 'u', 'm', '.', 'c', 'o', 'm', '\0',
@@ -363,17 +362,17 @@ static const char kSTSHostTable[] = {
   /* "advanced.info", true */ 'a', 'd', 'v', 'a', 'n', 'c', 'e', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "advancedseotool.it", true */ 'a', 'd', 'v', 'a', 'n', 'c', 'e', 'd', 's', 'e', 'o', 't', 'o', 'o', 'l', '.', 'i', 't', '\0',
   /* "advancis.net", true */ 'a', 'd', 'v', 'a', 'n', 'c', 'i', 's', '.', 'n', 'e', 't', '\0',
   /* "advelty.cz", true */ 'a', 'd', 'v', 'e', 'l', 't', 'y', '.', 'c', 'z', '\0',
   /* "adventistdeploy.org", true */ 'a', 'd', 'v', 'e', 'n', 't', 'i', 's', 't', 'd', 'e', 'p', 'l', 'o', 'y', '.', 'o', 'r', 'g', '\0',
   /* "adventure-inn.com", true */ 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', '-', 'i', 'n', 'n', '.', 'c', 'o', 'm', '\0',
   /* "adventureally.com", true */ 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', 'a', 'l', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "adventureforest.de", false */ 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', 'f', 'o', 'r', 'e', 's', 't', '.', 'd', 'e', '\0',
-  /* "adventures.de", false */ 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', 's', '.', 'd', 'e', '\0',
+  /* "adventures.de", true */ 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', 's', '.', 'd', 'e', '\0',
   /* "advocatenalkmaar.org", true */ 'a', 'd', 'v', 'o', 'c', 'a', 't', 'e', 'n', 'a', 'l', 'k', 'm', 'a', 'a', 'r', '.', 'o', 'r', 'g', '\0',
   /* "adxperience.com", true */ 'a', 'd', 'x', 'p', 'e', 'r', 'i', 'e', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "adzuna.ca", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'c', 'a', '\0',
   /* "adzuna.co.uk", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "adzuna.co.za", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "adzuna.com.au", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "adzuna.com.br", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "adzuna.de", true */ 'a', 'd', 'z', 'u', 'n', 'a', '.', 'd', 'e', '\0',
@@ -388,16 +387,17 @@ static const char kSTSHostTable[] = {
   /* "aerelon.de", true */ 'a', 'e', 'r', 'e', 'l', 'o', 'n', '.', 'd', 'e', '\0',
   /* "aerolog.co", true */ 'a', 'e', 'r', 'o', 'l', 'o', 'g', '.', 'c', 'o', '\0',
   /* "aeyoun.com", true */ 'a', 'e', 'y', 'o', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "afb24.de", true */ 'a', 'f', 'b', '2', '4', '.', 'd', 'e', '\0',
   /* "affiliateroyale.com", true */ 'a', 'f', 'f', 'i', 'l', 'i', 'a', 't', 'e', 'r', 'o', 'y', 'a', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "affilie.de", true */ 'a', 'f', 'f', 'i', 'l', 'i', 'e', '.', 'd', 'e', '\0',
   /* "affordableazdivorce.com", true */ 'a', 'f', 'f', 'o', 'r', 'd', 'a', 'b', 'l', 'e', 'a', 'z', 'd', 'i', 'v', 'o', 'r', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "afghan.dating", true */ 'a', 'f', 'g', 'h', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
+  /* "aficionados.com.br", true */ 'a', 'f', 'i', 'c', 'i', 'o', 'n', 'a', 'd', 'o', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "aflattr.com", true */ 'a', 'f', 'l', 'a', 't', 't', 'r', '.', 'c', 'o', 'm', '\0',
   /* "afmchandler.com", true */ 'a', 'f', 'm', 'c', 'h', 'a', 'n', 'd', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "afp548.com", true */ 'a', 'f', 'p', '5', '4', '8', '.', 'c', 'o', 'm', '\0',
   /* "africa.dating", true */ 'a', 'f', 'r', 'i', 'c', 'a', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "africatravel.de", true */ 'a', 'f', 'r', 'i', 'c', 'a', 't', 'r', 'a', 'v', 'e', 'l', '.', 'd', 'e', '\0',
   /* "afuh.de", true */ 'a', 'f', 'u', 'h', '.', 'd', 'e', '\0',
   /* "afvallendoeje.nu", true */ 'a', 'f', 'v', 'a', 'l', 'l', 'e', 'n', 'd', 'o', 'e', 'j', 'e', '.', 'n', 'u', '\0',
   /* "afyou.co.kr", true */ 'a', 'f', 'y', 'o', 'u', '.', 'c', 'o', '.', 'k', 'r', '\0',
@@ -488,16 +488,17 @@ static const char kSTSHostTable[] = {
   /* "aleax.me", true */ 'a', 'l', 'e', 'a', 'x', '.', 'm', 'e', '\0',
   /* "alecpap.com", true */ 'a', 'l', 'e', 'c', 'p', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "alecpapierniak.com", true */ 'a', 'l', 'e', 'c', 'p', 'a', 'p', 'i', 'e', 'r', 'n', 'i', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "alecrust.com", true */ 'a', 'l', 'e', 'c', 'r', 'u', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "aleksib.fi", true */ 'a', 'l', 'e', 'k', 's', 'i', 'b', '.', 'f', 'i', '\0',
   /* "alela.fr", true */ 'a', 'l', 'e', 'l', 'a', '.', 'f', 'r', '\0',
   /* "alertboxx.com", true */ 'a', 'l', 'e', 'r', 't', 'b', 'o', 'x', 'x', '.', 'c', 'o', 'm', '\0',
   /* "alertwire.com", true */ 'a', 'l', 'e', 'r', 't', 'w', 'i', 'r', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "alessandroz.pro", true */ 'a', 'l', 'e', 's', 's', 'a', 'n', 'd', 'r', 'o', 'z', '.', 'p', 'r', 'o', '\0',
   /* "alex-ross.co.uk", true */ 'a', 'l', 'e', 'x', '-', 'r', 'o', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "alexanderschimpf.de", true */ 'a', 'l', 'e', 'x', 'a', 'n', 'd', 'e', 'r', 's', 'c', 'h', 'i', 'm', 'p', 'f', '.', 'd', 'e', '\0',
   /* "alexandra-schulze.de", true */ 'a', 'l', 'e', 'x', 'a', 'n', 'd', 'r', 'a', '-', 's', 'c', 'h', 'u', 'l', 'z', 'e', '.', 'd', 'e', '\0',
   /* "alexbaker.org", true */ 'a', 'l', 'e', 'x', 'b', 'a', 'k', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "alexberts.ch", true */ 'a', 'l', 'e', 'x', 'b', 'e', 'r', 't', 's', '.', 'c', 'h', '\0',
   /* "alexei.su", true */ 'a', 'l', 'e', 'x', 'e', 'i', '.', 's', 'u', '\0',
   /* "alexgaynor.net", true */ 'a', 'l', 'e', 'x', 'g', 'a', 'y', 'n', 'o', 'r', '.', 'n', 'e', 't', '\0',
   /* "alexhd.de", true */ 'a', 'l', 'e', 'x', 'h', 'd', '.', 'd', 'e', '\0',
@@ -875,23 +876,23 @@ static const char kSTSHostTable[] = {
   /* "aryasenna.net", true */ 'a', 'r', 'y', 'a', 's', 'e', 'n', 'n', 'a', '.', 'n', 'e', 't', '\0',
   /* "arzaroth.com", false */ 'a', 'r', 'z', 'a', 'r', 'o', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "arzid.com", true */ 'a', 'r', 'z', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "as200753.com", true */ 'a', 's', '2', '0', '0', '7', '5', '3', '.', 'c', 'o', 'm', '\0',
   /* "as200753.net", true */ 'a', 's', '2', '0', '0', '7', '5', '3', '.', 'n', 'e', 't', '\0',
   /* "as9178.net", true */ 'a', 's', '9', '1', '7', '8', '.', 'n', 'e', 't', '\0',
   /* "asadatec.de", true */ 'a', 's', 'a', 'd', 'a', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "asahikoji.net", true */ 'a', 's', 'a', 'h', 'i', 'k', 'o', 'j', 'i', '.', 'n', 'e', 't', '\0',
-  /* "asandu.eu", true */ 'a', 's', 'a', 'n', 'd', 'u', '.', 'e', 'u', '\0',
   /* "asato-jewelry.com", true */ 'a', 's', 'a', 't', 'o', '-', 'j', 'e', 'w', 'e', 'l', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "asbito.de", true */ 'a', 's', 'b', 'i', 't', 'o', '.', 'd', 'e', '\0',
   /* "ascamso.com", true */ 'a', 's', 'c', 'a', 'm', 's', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ascension.run", true */ 'a', 's', 'c', 'e', 'n', 's', 'i', 'o', 'n', '.', 'r', 'u', 'n', '\0',
   /* "ascii.moe", true */ 'a', 's', 'c', 'i', 'i', '.', 'm', 'o', 'e', '\0',
   /* "asciitable.tips", true */ 'a', 's', 'c', 'i', 'i', 't', 'a', 'b', 'l', 'e', '.', 't', 'i', 'p', 's', '\0',
+  /* "ashleymedway.com", true */ 'a', 's', 'h', 'l', 'e', 'y', 'm', 'e', 'd', 'w', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "ashutoshmishra.org", true */ 'a', 's', 'h', 'u', 't', 'o', 's', 'h', 'm', 'i', 's', 'h', 'r', 'a', '.', 'o', 'r', 'g', '\0',
   /* "ask.fedoraproject.org", true */ 'a', 's', 'k', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "ask.stg.fedoraproject.org", true */ 'a', 's', 'k', '.', 's', 't', 'g', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "askizzy.org.au", true */ 'a', 's', 'k', 'i', 'z', 'z', 'y', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0',
   /* "askmagicconch.com", true */ 'a', 's', 'k', 'm', 'a', 'g', 'i', 'c', 'c', 'o', 'n', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "askme24.de", true */ 'a', 's', 'k', 'm', 'e', '2', '4', '.', 'd', 'e', '\0',
   /* "askwhy.cz", true */ 'a', 's', 'k', 'w', 'h', 'y', '.', 'c', 'z', '\0',
   /* "askwhy.eu", true */ 'a', 's', 'k', 'w', 'h', 'y', '.', 'e', 'u', '\0',
@@ -929,33 +930,31 @@ static const char kSTSHostTable[] = {
   /* "atishchenko.com", true */ 'a', 't', 'i', 's', 'h', 'c', 'h', 'e', 'n', 'k', 'o', '.', 'c', 'o', 'm', '\0',
   /* "atisoft.biz", true */ 'a', 't', 'i', 's', 'o', 'f', 't', '.', 'b', 'i', 'z', '\0',
   /* "atisoft.com.tr", true */ 'a', 't', 'i', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '.', 't', 'r', '\0',
   /* "atisoft.net", true */ 'a', 't', 'i', 's', 'o', 'f', 't', '.', 'n', 'e', 't', '\0',
   /* "atisoft.net.tr", true */ 'a', 't', 'i', 's', 'o', 'f', 't', '.', 'n', 'e', 't', '.', 't', 'r', '\0',
   /* "atisoft.web.tr", true */ 'a', 't', 'i', 's', 'o', 'f', 't', '.', 'w', 'e', 'b', '.', 't', 'r', '\0',
   /* "atitude.com", true */ 'a', 't', 'i', 't', 'u', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "atlantichomes.com.au", true */ 'a', 't', 'l', 'a', 'n', 't', 'i', 'c', 'h', 'o', 'm', 'e', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
-  /* "atlantischild.hu", true */ 'a', 't', 'l', 'a', 'n', 't', 'i', 's', 'c', 'h', 'i', 'l', 'd', '.', 'h', 'u', '\0',
   /* "atlassian.net", true */ 'a', 't', 'l', 'a', 's', 's', 'i', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "atletika.hu", true */ 'a', 't', 'l', 'e', 't', 'i', 'k', 'a', '.', 'h', 'u', '\0',
   /* "atnis.com", true */ 'a', 't', 'n', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "atolm.net", true */ 'a', 't', 'o', 'l', 'm', '.', 'n', 'e', 't', '\0',
   /* "atom-china.org", true */ 'a', 't', 'o', 'm', '-', 'c', 'h', 'i', 'n', 'a', '.', 'o', 'r', 'g', '\0',
   /* "atom.solutions", true */ 'a', 't', 'o', 'm', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "atombase.org", true */ 'a', 't', 'o', 'm', 'b', 'a', 's', 'e', '.', 'o', 'r', 'g', '\0',
   /* "atrinik.org", true */ 'a', 't', 'r', 'i', 'n', 'i', 'k', '.', 'o', 'r', 'g', '\0',
   /* "atte.fi", true */ 'a', 't', 't', 'e', '.', 'f', 'i', '\0',
   /* "attic118.com", true */ 'a', 't', 't', 'i', 'c', '1', '1', '8', '.', 'c', 'o', 'm', '\0',
   /* "attilagyorffy.com", true */ 'a', 't', 't', 'i', 'l', 'a', 'g', 'y', 'o', 'r', 'f', 'f', 'y', '.', 'c', 'o', 'm', '\0',
   /* "attogproductions.com", true */ 'a', 't', 't', 'o', 'g', 'p', 'r', 'o', 'd', 'u', 'c', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "attogtech.com", true */ 'a', 't', 't', 'o', 'g', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "attorney.org.il", true */ 'a', 't', 't', 'o', 'r', 'n', 'e', 'y', '.', 'o', 'r', 'g', '.', 'i', 'l', '\0',
   /* "au2pb.net", true */ 'a', 'u', '2', 'p', 'b', '.', 'n', 'e', 't', '\0',
-  /* "aucubin.moe", true */ 'a', 'u', 'c', 'u', 'b', 'i', 'n', '.', 'm', 'o', 'e', '\0',
   /* "audiense.com", true */ 'a', 'u', 'd', 'i', 'e', 'n', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "audio-detector.com", true */ 'a', 'u', 'd', 'i', 'o', '-', 'd', 'e', 't', 'e', 'c', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "audiovisualdevices.com.au", true */ 'a', 'u', 'd', 'i', 'o', 'v', 'i', 's', 'u', 'a', 'l', 'd', 'e', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "audisto.com", true */ 'a', 'u', 'd', 'i', 's', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "auditmatrix.com", true */ 'a', 'u', 'd', 'i', 't', 'm', 'a', 't', 'r', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "auditos.com", true */ 'a', 'u', 'd', 'i', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "auf-feindgebiet.de", true */ 'a', 'u', 'f', '-', 'f', 'e', 'i', 'n', 'd', 'g', 'e', 'b', 'i', 'e', 't', '.', 'd', 'e', '\0',
   /* "augaware.org", true */ 'a', 'u', 'g', 'a', 'w', 'a', 'r', 'e', '.', 'o', 'r', 'g', '\0',
@@ -1185,17 +1184,16 @@ static const char kSTSHostTable[] = {
   /* "bchep.com", true */ 'b', 'c', 'h', 'e', 'p', '.', 'c', 'o', 'm', '\0',
   /* "bcmlu.org", true */ 'b', 'c', 'm', 'l', 'u', '.', 'o', 'r', 'g', '\0',
   /* "bcrook.com", false */ 'b', 'c', 'r', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "bcswampcabins.com", true */ 'b', 'c', 's', 'w', 'a', 'm', 'p', 'c', 'a', 'b', 'i', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "bcvps.com", true */ 'b', 'c', 'v', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "bcweightlifting.ca", true */ 'b', 'c', 'w', 'e', 'i', 'g', 'h', 't', 'l', 'i', 'f', 't', 'i', 'n', 'g', '.', 'c', 'a', '\0',
   /* "bddemir.com", true */ 'b', 'd', 'd', 'e', 'm', 'i', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bde-epitech.fr", true */ 'b', 'd', 'e', '-', 'e', 'p', 'i', 't', 'e', 'c', 'h', '.', 'f', 'r', '\0',
-  /* "bdikaros-network.net", true */ 'b', 'd', 'i', 'k', 'a', 'r', 'o', 's', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "be-ka-tec.de", true */ 'b', 'e', '-', 'k', 'a', '-', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "be-real.life", true */ 'b', 'e', '-', 'r', 'e', 'a', 'l', '.', 'l', 'i', 'f', 'e', '\0',
   /* "beamitapp.com", true */ 'b', 'e', 'a', 'm', 'i', 't', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "beanjuice.me", true */ 'b', 'e', 'a', 'n', 'j', 'u', 'i', 'c', 'e', '.', 'm', 'e', '\0',
   /* "beans-one.com", false */ 'b', 'e', 'a', 'n', 's', '-', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "beastlog.tk", true */ 'b', 'e', 'a', 's', 't', 'l', 'o', 'g', '.', 't', 'k', '\0',
   /* "beastowner.li", true */ 'b', 'e', 'a', 's', 't', 'o', 'w', 'n', 'e', 'r', '.', 'l', 'i', '\0',
   /* "beatnikbreaks.com", true */ 'b', 'e', 'a', 't', 'n', 'i', 'k', 'b', 'r', 'e', 'a', 'k', 's', '.', 'c', 'o', 'm', '\0',
@@ -1251,17 +1249,17 @@ static const char kSTSHostTable[] = {
   /* "benhaney.com", true */ 'b', 'e', 'n', 'h', 'a', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "benhartmann.de", true */ 'b', 'e', 'n', 'h', 'a', 'r', 't', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "benhavenarchives.org", true */ 'b', 'e', 'n', 'h', 'a', 'v', 'e', 'n', 'a', 'r', 'c', 'h', 'i', 'v', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "benjamin.pe", true */ 'b', 'e', 'n', 'j', 'a', 'm', 'i', 'n', '.', 'p', 'e', '\0',
   /* "benjaminblack.net", true */ 'b', 'e', 'n', 'j', 'a', 'm', 'i', 'n', 'b', 'l', 'a', 'c', 'k', '.', 'n', 'e', 't', '\0',
   /* "benjaminjurke.net", true */ 'b', 'e', 'n', 'j', 'a', 'm', 'i', 'n', 'j', 'u', 'r', 'k', 'e', '.', 'n', 'e', 't', '\0',
   /* "benjamins.com", true */ 'b', 'e', 'n', 'j', 'a', 'm', 'i', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "benmatthews.com.au", true */ 'b', 'e', 'n', 'm', 'a', 't', 't', 'h', 'e', 'w', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
-  /* "benmillett.us", true */ 'b', 'e', 'n', 'm', 'i', 'l', 'l', 'e', 't', 't', '.', 'u', 's', '\0',
+  /* "benmillett.us", false */ 'b', 'e', 'n', 'm', 'i', 'l', 'l', 'e', 't', 't', '.', 'u', 's', '\0',
   /* "benni1.eu", true */ 'b', 'e', 'n', 'n', 'i', '1', '.', 'e', 'u', '\0',
   /* "bennink.me", true */ 'b', 'e', 'n', 'n', 'i', 'n', 'k', '.', 'm', 'e', '\0',
   /* "benno.frl", true */ 'b', 'e', 'n', 'n', 'o', '.', 'f', 'r', 'l', '\0',
   /* "benohead.com", true */ 'b', 'e', 'n', 'o', 'h', 'e', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "benschnarr.com", true */ 'b', 'e', 'n', 's', 'c', 'h', 'n', 'a', 'r', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bentertain.de", true */ 'b', 'e', 'n', 't', 'e', 'r', 't', 'a', 'i', 'n', '.', 'd', 'e', '\0',
   /* "bentley.link", true */ 'b', 'e', 'n', 't', 'l', 'e', 'y', '.', 'l', 'i', 'n', 'k', '\0',
   /* "bentrask.com", true */ 'b', 'e', 'n', 't', 'r', 'a', 's', 'k', '.', 'c', 'o', 'm', '\0',
@@ -1400,16 +1398,17 @@ static const char kSTSHostTable[] = {
   /* "biolindo.com", false */ 'b', 'i', 'o', 'l', 'i', 'n', 'd', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bionicspirit.com", true */ 'b', 'i', 'o', 'n', 'i', 'c', 's', 'p', 'i', 'r', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "biosbits.org", true */ 'b', 'i', 'o', 's', 'b', 'i', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "biosignalanalytics.com", true */ 'b', 'i', 'o', 's', 'i', 'g', 'n', 'a', 'l', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "biosphere.cc", true */ 'b', 'i', 'o', 's', 'p', 'h', 'e', 'r', 'e', '.', 'c', 'c', '\0',
   /* "biou.me", true */ 'b', 'i', 'o', 'u', '.', 'm', 'e', '\0',
   /* "bip.gov.sa", false */ 'b', 'i', 'p', '.', 'g', 'o', 'v', '.', 's', 'a', '\0',
   /* "birdfeeder.online", true */ 'b', 'i', 'r', 'd', 'f', 'e', 'e', 'd', 'e', 'r', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
+  /* "birkhoff.me", true */ 'b', 'i', 'r', 'k', 'h', 'o', 'f', 'f', '.', 'm', 'e', '\0',
   /* "birminghamsunset.com", true */ 'b', 'i', 'r', 'm', 'i', 'n', 'g', 'h', 'a', 'm', 's', 'u', 'n', 's', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "birzan.org", true */ 'b', 'i', 'r', 'z', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "bit-rapid.com", true */ 'b', 'i', 't', '-', 'r', 'a', 'p', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "bit-sentinel.com", true */ 'b', 'i', 't', '-', 's', 'e', 'n', 't', 'i', 'n', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "bit.voyage", true */ 'b', 'i', 't', '.', 'v', 'o', 'y', 'a', 'g', 'e', '\0',
   /* "bit8.com", true */ 'b', 'i', 't', '8', '.', 'c', 'o', 'm', '\0',
   /* "bitbeans.de", true */ 'b', 'i', 't', 'b', 'e', 'a', 'n', 's', '.', 'd', 'e', '\0',
   /* "bitbit.org", true */ 'b', 'i', 't', 'b', 'i', 't', '.', 'o', 'r', 'g', '\0',
@@ -1572,17 +1571,16 @@ static const char kSTSHostTable[] = {
   /* "blumiges-fischbachtal.de", true */ 'b', 'l', 'u', 'm', 'i', 'g', 'e', 's', '-', 'f', 'i', 's', 'c', 'h', 'b', 'a', 'c', 'h', 't', 'a', 'l', '.', 'd', 'e', '\0',
   /* "blupig.net", true */ 'b', 'l', 'u', 'p', 'i', 'g', '.', 'n', 'e', 't', '\0',
   /* "blurringexistence.net", true */ 'b', 'l', 'u', 'r', 'r', 'i', 'n', 'g', 'e', 'x', 'i', 's', 't', 'e', 'n', 'c', 'e', '.', 'n', 'e', 't', '\0',
   /* "bluserv.net", true */ 'b', 'l', 'u', 's', 'e', 'r', 'v', '.', 'n', 'e', 't', '\0',
   /* "blusmurf.net", true */ 'b', 'l', 'u', 's', 'm', 'u', 'r', 'f', '.', 'n', 'e', 't', '\0',
   /* "blutroyal.de", true */ 'b', 'l', 'u', 't', 'r', 'o', 'y', 'a', 'l', '.', 'd', 'e', '\0',
   /* "bmet.de", true */ 'b', 'm', 'e', 't', '.', 'd', 'e', '\0',
   /* "bmoattachments.org", true */ 'b', 'm', 'o', 'a', 't', 't', 'a', 'c', 'h', 'm', 'e', 'n', 't', 's', '.', 'o', 'r', 'g', '\0',
-  /* "bmone.net", true */ 'b', 'm', 'o', 'n', 'e', '.', 'n', 'e', 't', '\0',
   /* "bmros.com.ar", true */ 'b', 'm', 'r', 'o', 's', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "bnhlibrary.com", true */ 'b', 'n', 'h', 'l', 'i', 'b', 'r', 'a', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "bobancoamigo.com", true */ 'b', 'o', 'b', 'a', 'n', 'c', 'o', 'a', 'm', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bobcopeland.com", true */ 'b', 'o', 'b', 'c', 'o', 'p', 'e', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "bobobox.net", true */ 'b', 'o', 'b', 'o', 'b', 'o', 'x', '.', 'n', 'e', 't', '\0',
   /* "boboolo.com", true */ 'b', 'o', 'b', 'o', 'o', 'l', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bochs.info", true */ 'b', 'o', 'c', 'h', 's', '.', 'i', 'n', 'f', 'o', '\0',
   /* "bockenauer.at", true */ 'b', 'o', 'c', 'k', 'e', 'n', 'a', 'u', 'e', 'r', '.', 'a', 't', '\0',
@@ -1616,16 +1614,17 @@ static const char kSTSHostTable[] = {
   /* "boris64.net", true */ 'b', 'o', 'r', 'i', 's', '6', '4', '.', 'n', 'e', 't', '\0',
   /* "borisbesemer.com", true */ 'b', 'o', 'r', 'i', 's', 'b', 'e', 's', 'e', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "borowski.pw", true */ 'b', 'o', 'r', 'o', 'w', 's', 'k', 'i', '.', 'p', 'w', '\0',
   /* "borrelioz.com", true */ 'b', 'o', 'r', 'r', 'e', 'l', 'i', 'o', 'z', '.', 'c', 'o', 'm', '\0',
   /* "borscheid-wenig.com", true */ 'b', 'o', 'r', 's', 'c', 'h', 'e', 'i', 'd', '-', 'w', 'e', 'n', 'i', 'g', '.', 'c', 'o', 'm', '\0',
   /* "borysek.net", true */ 'b', 'o', 'r', 'y', 's', 'e', 'k', '.', 'n', 'e', 't', '\0',
   /* "bostadsportal.se", true */ 'b', 'o', 's', 't', 'a', 'd', 's', 'p', 'o', 'r', 't', 'a', 'l', '.', 's', 'e', '\0',
   /* "bosun.io", true */ 'b', 'o', 's', 'u', 'n', '.', 'i', 'o', '\0',
+  /* "bougeret.fr", true */ 'b', 'o', 'u', 'g', 'e', 'r', 'e', 't', '.', 'f', 'r', '\0',
   /* "bouncourseplanner.net", true */ 'b', 'o', 'u', 'n', 'c', 'o', 'u', 'r', 's', 'e', 'p', 'l', 'a', 'n', 'n', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "bouncyball.eu", false */ 'b', 'o', 'u', 'n', 'c', 'y', 'b', 'a', 'l', 'l', '.', 'e', 'u', '\0',
   /* "bouncyballs.org", true */ 'b', 'o', 'u', 'n', 'c', 'y', 'b', 'a', 'l', 'l', 's', '.', 'o', 'r', 'g', '\0',
   /* "bountyfactory.io", true */ 'b', 'o', 'u', 'n', 't', 'y', 'f', 'a', 'c', 't', 'o', 'r', 'y', '.', 'i', 'o', '\0',
   /* "bourasse.fr", true */ 'b', 'o', 'u', 'r', 'a', 's', 's', 'e', '.', 'f', 'r', '\0',
   /* "bourdon.fr.eu.org", true */ 'b', 'o', 'u', 'r', 'd', 'o', 'n', '.', 'f', 'r', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "bourse-aux-jouets.org", false */ 'b', 'o', 'u', 'r', 's', 'e', '-', 'a', 'u', 'x', '-', 'j', 'o', 'u', 'e', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "bourse-aux-vetements.org", false */ 'b', 'o', 'u', 'r', 's', 'e', '-', 'a', 'u', 'x', '-', 'v', 'e', 't', 'e', 'm', 'e', 'n', 't', 's', '.', 'o', 'r', 'g', '\0',
@@ -1651,16 +1650,17 @@ static const char kSTSHostTable[] = {
   /* "bpastudies.org", true */ 'b', 'p', 'a', 's', 't', 'u', 'd', 'i', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "bpol-forum.de", true */ 'b', 'p', 'o', 'l', '-', 'f', 'o', 'r', 'u', 'm', '.', 'd', 'e', '\0',
   /* "bqp.io", true */ 'b', 'q', 'p', '.', 'i', 'o', '\0',
   /* "bqtoolbox.com", true */ 'b', 'q', 't', 'o', 'o', 'l', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "br.search.yahoo.com", false */ 'b', 'r', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bradbrockmeyer.com", true */ 'b', 'r', 'a', 'd', 'b', 'r', 'o', 'c', 'k', 'm', 'e', 'y', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bradkovach.com", true */ 'b', 'r', 'a', 'd', 'k', 'o', 'v', 'a', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "bradler.net", true */ 'b', 'r', 'a', 'd', 'l', 'e', 'r', '.', 'n', 'e', 't', '\0',
+  /* "brage.info", true */ 'b', 'r', 'a', 'g', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "brainhub.nl", true */ 'b', 'r', 'a', 'i', 'n', 'h', 'u', 'b', '.', 'n', 'l', '\0',
   /* "brainlag.org", true */ 'b', 'r', 'a', 'i', 'n', 'l', 'a', 'g', '.', 'o', 'r', 'g', '\0',
   /* "brainster.co", false */ 'b', 'r', 'a', 'i', 'n', 's', 't', 'e', 'r', '.', 'c', 'o', '\0',
   /* "brakemanpro.com", true */ 'b', 'r', 'a', 'k', 'e', 'm', 'a', 'n', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "brakstad.org", true */ 'b', 'r', 'a', 'k', 's', 't', 'a', 'd', '.', 'o', 'r', 'g', '\0',
   /* "bralnik.com", true */ 'b', 'r', 'a', 'l', 'n', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "bramvanaken.be", true */ 'b', 'r', 'a', 'm', 'v', 'a', 'n', 'a', 'k', 'e', 'n', '.', 'b', 'e', '\0',
   /* "bran.land", true */ 'b', 'r', 'a', 'n', '.', 'l', 'a', 'n', 'd', '\0',
@@ -1729,17 +1729,16 @@ static const char kSTSHostTable[] = {
   /* "brunosouza.org", true */ 'b', 'r', 'u', 'n', 'o', 's', 'o', 'u', 'z', 'a', '.', 'o', 'r', 'g', '\0',
   /* "bryankaplan.com", true */ 'b', 'r', 'y', 'a', 'n', 'k', 'a', 'p', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "bryanquigley.com", true */ 'b', 'r', 'y', 'a', 'n', 'q', 'u', 'i', 'g', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "bryn.xyz", true */ 'b', 'r', 'y', 'n', '.', 'x', 'y', 'z', '\0',
   /* "bsalyzer.com", true */ 'b', 's', 'a', 'l', 'y', 'z', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bsdug.org", true */ 'b', 's', 'd', 'u', 'g', '.', 'o', 'r', 'g', '\0',
   /* "bsidessf.com", true */ 'b', 's', 'i', 'd', 'e', 's', 's', 'f', '.', 'c', 'o', 'm', '\0',
   /* "bsklabels.com", false */ 'b', 's', 'k', 'l', 'a', 'b', 'e', 'l', 's', '.', 'c', 'o', 'm', '\0',
-  /* "bsquared.org", true */ 'b', 's', 'q', 'u', 'a', 'r', 'e', 'd', '.', 'o', 'r', 'g', '\0',
   /* "bsw-solution.de", true */ 'b', 's', 'w', '-', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', '.', 'd', 'e', '\0',
   /* "bta.lv", false */ 'b', 't', 'a', '.', 'l', 'v', '\0',
   /* "btc-e.com", true */ 'b', 't', 'c', '-', 'e', '.', 'c', 'o', 'm', '\0',
   /* "btcarmory.com", true */ 'b', 't', 'c', 'a', 'r', 'm', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "btcontract.com", true */ 'b', 't', 'c', 'o', 'n', 't', 'r', 'a', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "btio.pw", true */ 'b', 't', 'i', 'o', '.', 'p', 'w', '\0',
   /* "btrb.ml", true */ 'b', 't', 'r', 'b', '.', 'm', 'l', '\0',
   /* "btsoft.eu", true */ 'b', 't', 's', 'o', 'f', 't', '.', 'e', 'u', '\0',
@@ -1880,16 +1879,17 @@ static const char kSTSHostTable[] = {
   /* "caasd.org", true */ 'c', 'a', 'a', 's', 'd', '.', 'o', 'r', 'g', '\0',
   /* "cablemod.com", true */ 'c', 'a', 'b', 'l', 'e', 'm', 'o', 'd', '.', 'c', 'o', 'm', '\0',
   /* "cablesandkits.com", true */ 'c', 'a', 'b', 'l', 'e', 's', 'a', 'n', 'd', 'k', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "cabsites.com", true */ 'c', 'a', 'b', 's', 'i', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "cacaolalina.com", true */ 'c', 'a', 'c', 'a', 'o', 'l', 'a', 'l', 'i', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "caceis.bank", true */ 'c', 'a', 'c', 'e', 'i', 's', '.', 'b', 'a', 'n', 'k', '\0',
   /* "cachethq.io", true */ 'c', 'a', 'c', 'h', 'e', 't', 'h', 'q', '.', 'i', 'o', '\0',
   /* "cackette.com", true */ 'c', 'a', 'c', 'k', 'e', 't', 't', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "cadmail.nl", true */ 'c', 'a', 'd', 'm', 'a', 'i', 'l', '.', 'n', 'l', '\0',
   /* "cadoth.net", true */ 'c', 'a', 'd', 'o', 't', 'h', '.', 'n', 'e', 't', '\0',
   /* "caesarkabalan.com", true */ 'c', 'a', 'e', 's', 'a', 'r', 'k', 'a', 'b', 'a', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "caesreon.com", true */ 'c', 'a', 'e', 's', 'r', 'e', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "cafe-murr.de", true */ 'c', 'a', 'f', 'e', '-', 'm', 'u', 'r', 'r', '.', 'd', 'e', '\0',
   /* "cafe-service.ru", true */ 'c', 'a', 'f', 'e', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'r', 'u', '\0',
   /* "caffeinatedcode.com", true */ 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cais.de", true */ 'c', 'a', 'i', 's', '.', 'd', 'e', '\0',
   /* "caitcs.com", true */ 'c', 'a', 'i', 't', 'c', 's', '.', 'c', 'o', 'm', '\0',
@@ -1965,17 +1965,16 @@ static const char kSTSHostTable[] = {
   /* "capogna.com", true */ 'c', 'a', 'p', 'o', 'g', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "capper.de", true */ 'c', 'a', 'p', 'p', 'e', 'r', '.', 'd', 'e', '\0',
   /* "capriccio.to", true */ 'c', 'a', 'p', 'r', 'i', 'c', 'c', 'i', 'o', '.', 't', 'o', '\0',
   /* "caps.is", true */ 'c', 'a', 'p', 's', '.', 'i', 's', '\0',
   /* "captianseb.de", true */ 'c', 'a', 'p', 't', 'i', 'a', 'n', 's', 'e', 'b', '.', 'd', 'e', '\0',
   /* "captivatedbytabrett.com", true */ 'c', 'a', 'p', 't', 'i', 'v', 'a', 't', 'e', 'd', 'b', 'y', 't', 'a', 'b', 'r', 'e', 't', 't', '.', 'c', 'o', 'm', '\0',
   /* "capturapp.com", true */ 'c', 'a', 'p', 't', 'u', 'r', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "captured-symphonies.com", true */ 'c', 'a', 'p', 't', 'u', 'r', 'e', 'd', '-', 's', 'y', 'm', 'p', 'h', 'o', 'n', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
-  /* "capturethepen.co.uk", true */ 'c', 'a', 'p', 't', 'u', 'r', 'e', 't', 'h', 'e', 'p', 'e', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "caputo.com", true */ 'c', 'a', 'p', 'u', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "car.info", true */ 'c', 'a', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "carauctionnetwork.com", true */ 'c', 'a', 'r', 'a', 'u', 'c', 't', 'i', 'o', 'n', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "carauctionsalabama.com", true */ 'c', 'a', 'r', 'a', 'u', 'c', 't', 'i', 'o', 'n', 's', 'a', 'l', 'a', 'b', 'a', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "carauctionscarolina.com", true */ 'c', 'a', 'r', 'a', 'u', 'c', 't', 'i', 'o', 'n', 's', 'c', 'a', 'r', 'o', 'l', 'i', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "carauctionsgeorgia.com", true */ 'c', 'a', 'r', 'a', 'u', 'c', 't', 'i', 'o', 'n', 's', 'g', 'e', 'o', 'r', 'g', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "carboneselectricosnettosl.info", false */ 'c', 'a', 'r', 'b', 'o', 'n', 'e', 's', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', 'o', 's', 'n', 'e', 't', 't', 'o', 's', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "carbonmade.com", false */ 'c', 'a', 'r', 'b', 'o', 'n', 'm', 'a', 'd', 'e', '.', 'c', 'o', 'm', '\0',
@@ -2140,16 +2139,17 @@ static const char kSTSHostTable[] = {
   /* "chatnederland.eu", true */ 'c', 'h', 'a', 't', 'n', 'e', 'd', 'e', 'r', 'l', 'a', 'n', 'd', '.', 'e', 'u', '\0',
   /* "chaz6.com", true */ 'c', 'h', 'a', 'z', '6', '.', 'c', 'o', 'm', '\0',
   /* "chazay.net", true */ 'c', 'h', 'a', 'z', 'a', 'y', '.', 'n', 'e', 't', '\0',
   /* "chch.it", true */ 'c', 'h', 'c', 'h', '.', 'i', 't', '\0',
   /* "cheapdns.org", true */ 'c', 'h', 'e', 'a', 'p', 'd', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "cheapestgamecards.de", true */ 'c', 'h', 'e', 'a', 'p', 'e', 's', 't', 'g', 'a', 'm', 'e', 'c', 'a', 'r', 'd', 's', '.', 'd', 'e', '\0',
   /* "cheapestgamecards.nl", true */ 'c', 'h', 'e', 'a', 'p', 'e', 's', 't', 'g', 'a', 'm', 'e', 'c', 'a', 'r', 'd', 's', '.', 'n', 'l', '\0',
   /* "cheapestgamecards.se", true */ 'c', 'h', 'e', 'a', 'p', 'e', 's', 't', 'g', 'a', 'm', 'e', 'c', 'a', 'r', 'd', 's', '.', 's', 'e', '\0',
+  /* "cheapgeekts.com", false */ 'c', 'h', 'e', 'a', 'p', 'g', 'e', 'e', 'k', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "cheapgoa.com", true */ 'c', 'h', 'e', 'a', 'p', 'g', 'o', 'a', '.', 'c', 'o', 'm', '\0',
   /* "cheapticket.in", true */ 'c', 'h', 'e', 'a', 'p', 't', 'i', 'c', 'k', 'e', 't', '.', 'i', 'n', '\0',
   /* "cheazey.net", true */ 'c', 'h', 'e', 'a', 'z', 'e', 'y', '.', 'n', 'e', 't', '\0',
   /* "check.torproject.org", false */ 'c', 'h', 'e', 'c', 'k', '.', 't', 'o', 'r', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "checkout.google.com", true */ 'c', 'h', 'e', 'c', 'k', 'o', 'u', 't', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "checkpoint-tshirt.com", true */ 'c', 'h', 'e', 'c', 'k', 'p', 'o', 'i', 'n', 't', '-', 't', 's', 'h', 'i', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "checktype.com", true */ 'c', 'h', 'e', 'c', 'k', 't', 'y', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "checkyourmath.com", true */ 'c', 'h', 'e', 'c', 'k', 'y', 'o', 'u', 'r', 'm', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
@@ -2508,26 +2508,25 @@ static const char kSTSHostTable[] = {
   /* "complexart.ro", true */ 'c', 'o', 'm', 'p', 'l', 'e', 'x', 'a', 'r', 't', '.', 'r', 'o', '\0',
   /* "compliance-systeme.de", true */ 'c', 'o', 'm', 'p', 'l', 'i', 'a', 'n', 'c', 'e', '-', 's', 'y', 's', 't', 'e', 'm', 'e', '.', 'd', 'e', '\0',
   /* "compliancedictionary.com", true */ 'c', 'o', 'm', 'p', 'l', 'i', 'a', 'n', 'c', 'e', 'd', 'i', 'c', 't', 'i', 'o', 'n', 'a', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "complymd.com", true */ 'c', 'o', 'm', 'p', 'l', 'y', 'm', 'd', '.', 'c', 'o', 'm', '\0',
   /* "compraneta.com", true */ 'c', 'o', 'm', 'p', 'r', 'a', 'n', 'e', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "compucorner.com.mx", true */ 'c', 'o', 'm', 'p', 'u', 'c', 'o', 'r', 'n', 'e', 'r', '.', 'c', 'o', 'm', '.', 'm', 'x', '\0',
   /* "compucorner.mx", true */ 'c', 'o', 'm', 'p', 'u', 'c', 'o', 'r', 'n', 'e', 'r', '.', 'm', 'x', '\0',
   /* "computerhilfe-feucht.de", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'h', 'i', 'l', 'f', 'e', '-', 'f', 'e', 'u', 'c', 'h', 't', '.', 'd', 'e', '\0',
-  /* "computersystems.guru", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'g', 'u', 'r', 'u', '\0',
   /* "comssa.org.au", true */ 'c', 'o', 'm', 's', 's', 'a', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0',
   /* "concentrade.de", true */ 'c', 'o', 'n', 'c', 'e', 'n', 't', 'r', 'a', 'd', 'e', '.', 'd', 'e', '\0',
   /* "conclave.global", true */ 'c', 'o', 'n', 'c', 'l', 'a', 'v', 'e', '.', 'g', 'l', 'o', 'b', 'a', 'l', '\0',
   /* "concretehermit.com", true */ 'c', 'o', 'n', 'c', 'r', 'e', 't', 'e', 'h', 'e', 'r', 'm', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "condepenalba.com", true */ 'c', 'o', 'n', 'd', 'e', 'p', 'e', 'n', 'a', 'l', 'b', 'a', '.', 'c', 'o', 'm', '\0',
   /* "condosforcash.com", true */ 'c', 'o', 'n', 'd', 'o', 's', 'f', 'o', 'r', 'c', 'a', 's', 'h', '.', 'c', 'o', 'm', '\0',
   /* "confiancefoundation.org", true */ 'c', 'o', 'n', 'f', 'i', 'a', 'n', 'c', 'e', 'f', 'o', 'u', 'n', 'd', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "config.schokokeks.org", false */ 'c', 'o', 'n', 'f', 'i', 'g', '.', 's', 'c', 'h', 'o', 'k', 'o', 'k', 'e', 'k', 's', '.', 'o', 'r', 'g', '\0',
-  /* "confiwall.de", false */ 'c', 'o', 'n', 'f', 'i', 'w', 'a', 'l', 'l', '.', 'd', 'e', '\0',
+  /* "confiwall.de", true */ 'c', 'o', 'n', 'f', 'i', 'w', 'a', 'l', 'l', '.', 'd', 'e', '\0',
   /* "conflux.tw", true */ 'c', 'o', 'n', 'f', 'l', 'u', 'x', '.', 't', 'w', '\0',
   /* "confucio.cl", true */ 'c', 'o', 'n', 'f', 'u', 'c', 'i', 'o', '.', 'c', 'l', '\0',
   /* "conjugacao.com.br", true */ 'c', 'o', 'n', 'j', 'u', 'g', 'a', 'c', 'a', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "connect-ed.network", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', '-', 'e', 'd', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0',
   /* "connect.dating", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "connect.ua", false */ 'c', 'o', 'n', 'n', 'e', 'c', 't', '.', 'u', 'a', '\0',
   /* "connected-verhuurservice.nl", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', 'e', 'd', '-', 'v', 'e', 'r', 'h', 'u', 'u', 'r', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'n', 'l', '\0',
   /* "connectfss.com", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', 'f', 's', 's', '.', 'c', 'o', 'm', '\0',
@@ -2605,17 +2604,16 @@ static const char kSTSHostTable[] = {
   /* "costreportdata.com", true */ 'c', 'o', 's', 't', 'r', 'e', 'p', 'o', 'r', 't', 'd', 'a', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "cotonea.de", true */ 'c', 'o', 't', 'o', 'n', 'e', 'a', '.', 'd', 'e', '\0',
   /* "cougar.dating", true */ 'c', 'o', 'u', 'g', 'a', 'r', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "coughlan.de", true */ 'c', 'o', 'u', 'g', 'h', 'l', 'a', 'n', '.', 'd', 'e', '\0',
   /* "counterglobal.com", true */ 'c', 'o', 'u', 'n', 't', 'e', 'r', 'g', 'l', 'o', 'b', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "countermail.com", true */ 'c', 'o', 'u', 'n', 't', 'e', 'r', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "countybankdel.com", true */ 'c', 'o', 'u', 'n', 't', 'y', 'b', 'a', 'n', 'k', 'd', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "couponcodeq.com", true */ 'c', 'o', 'u', 'p', 'o', 'n', 'c', 'o', 'd', 'e', 'q', '.', 'c', 'o', 'm', '\0',
-  /* "couragefound.org", true */ 'c', 'o', 'u', 'r', 'a', 'g', 'e', 'f', 'o', 'u', 'n', 'd', '.', 'o', 'r', 'g', '\0',
   /* "coursera.org", true */ 'c', 'o', 'u', 'r', 's', 'e', 'r', 'a', '.', 'o', 'r', 'g', '\0',
   /* "courses.nl", true */ 'c', 'o', 'u', 'r', 's', 'e', 's', '.', 'n', 'l', '\0',
   /* "courtlistener.com", true */ 'c', 'o', 'u', 'r', 't', 'l', 'i', 's', 't', 'e', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "cousincouples.com", true */ 'c', 'o', 'u', 's', 'i', 'n', 'c', 'o', 'u', 'p', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "covenantoftheriver.org", true */ 'c', 'o', 'v', 'e', 'n', 'a', 'n', 't', 'o', 'f', 't', 'h', 'e', 'r', 'i', 'v', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "covershousing.nl", true */ 'c', 'o', 'v', 'e', 'r', 's', 'h', 'o', 'u', 's', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "covoiturage.fr", false */ 'c', 'o', 'v', 'o', 'i', 't', 'u', 'r', 'a', 'g', 'e', '.', 'f', 'r', '\0',
   /* "covybrat.cz", true */ 'c', 'o', 'v', 'y', 'b', 'r', 'a', 't', '.', 'c', 'z', '\0',
@@ -2658,16 +2656,17 @@ static const char kSTSHostTable[] = {
   /* "credential.eu", true */ 'c', 'r', 'e', 'd', 'e', 'n', 't', 'i', 'a', 'l', '.', 'e', 'u', '\0',
   /* "creditclear.com.au", true */ 'c', 'r', 'e', 'd', 'i', 't', 'c', 'l', 'e', 'a', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "crediteo.pl", true */ 'c', 'r', 'e', 'd', 'i', 't', 'e', 'o', '.', 'p', 'l', '\0',
   /* "creditkarma.com", true */ 'c', 'r', 'e', 'd', 'i', 't', 'k', 'a', 'r', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "creditproautos.com", false */ 'c', 'r', 'e', 'd', 'i', 't', 'p', 'r', 'o', 'a', 'u', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "creep.im", true */ 'c', 'r', 'e', 'e', 'p', '.', 'i', 'm', '\0',
   /* "crefelder.com", true */ 'c', 'r', 'e', 'f', 'e', 'l', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "crepererum.net", true */ 'c', 'r', 'e', 'p', 'e', 'r', 'e', 'r', 'u', 'm', '.', 'n', 'e', 't', '\0',
+  /* "crestasantos.com", true */ 'c', 'r', 'e', 's', 't', 'a', 's', 'a', 'n', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "crimson.no", true */ 'c', 'r', 'i', 'm', 's', 'o', 'n', '.', 'n', 'o', '\0',
   /* "cristiandeluxe.com", true */ 'c', 'r', 'i', 's', 't', 'i', 'a', 'n', 'd', 'e', 'l', 'u', 'x', 'e', '.', 'c', 'o', 'm', '\0',
   /* "critcola.com", true */ 'c', 'r', 'i', 't', 'c', 'o', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "criticalsurveys.co.uk", true */ 'c', 'r', 'i', 't', 'i', 'c', 'a', 'l', 's', 'u', 'r', 'v', 'e', 'y', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "crl-autos.com", true */ 'c', 'r', 'l', '-', 'a', 'u', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "crm.onlime.ch", false */ 'c', 'r', 'm', '.', 'o', 'n', 'l', 'i', 'm', 'e', '.', 'c', 'h', '\0',
   /* "crmdemo.website", true */ 'c', 'r', 'm', 'd', 'e', 'm', 'o', '.', 'w', 'e', 'b', 's', 'i', 't', 'e', '\0',
   /* "cross-view.com", true */ 'c', 'r', 'o', 's', 's', '-', 'v', 'i', 'e', 'w', '.', 'c', 'o', 'm', '\0',
@@ -2825,30 +2824,30 @@ static const char kSTSHostTable[] = {
   /* "cygnius.net", true */ 'c', 'y', 'g', 'n', 'i', 'u', 's', '.', 'n', 'e', 't', '\0',
   /* "cymtech.net", true */ 'c', 'y', 'm', 't', 'e', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "cyon.ch", true */ 'c', 'y', 'o', 'n', '.', 'c', 'h', '\0',
   /* "cyph.audio", true */ 'c', 'y', 'p', 'h', '.', 'a', 'u', 'd', 'i', 'o', '\0',
   /* "cyph.com", true */ 'c', 'y', 'p', 'h', '.', 'c', 'o', 'm', '\0',
   /* "cyph.im", true */ 'c', 'y', 'p', 'h', '.', 'i', 'm', '\0',
   /* "cyph.video", true */ 'c', 'y', 'p', 'h', '.', 'v', 'i', 'd', 'e', 'o', '\0',
   /* "cyprus-company-service.com", true */ 'c', 'y', 'p', 'r', 'u', 's', '-', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "cysec.biz", true */ 'c', 'y', 's', 'e', 'c', '.', 'b', 'i', 'z', '\0',
   /* "cytadel.fr", true */ 'c', 'y', 't', 'a', 'd', 'e', 'l', '.', 'f', 'r', '\0',
   /* "czakey.net", true */ 'c', 'z', 'a', 'k', 'e', 'y', '.', 'n', 'e', 't', '\0',
   /* "czbix.com", true */ 'c', 'z', 'b', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "czechamlp.com", true */ 'c', 'z', 'e', 'c', 'h', 'a', 'm', 'l', 'p', '.', 'c', 'o', 'm', '\0',
   /* "czechvirus.cz", true */ 'c', 'z', 'e', 'c', 'h', 'v', 'i', 'r', 'u', 's', '.', 'c', 'z', '\0',
   /* "czerno.com", true */ 'c', 'z', 'e', 'r', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "czk.mk", true */ 'c', 'z', 'k', '.', 'm', 'k', '\0',
   /* "czlx.co", true */ 'c', 'z', 'l', 'x', '.', 'c', 'o', '\0',
   /* "d-20.fr", true */ 'd', '-', '2', '0', '.', 'f', 'r', '\0',
   /* "d-designerin.de", true */ 'd', '-', 'd', 'e', 's', 'i', 'g', 'n', 'e', 'r', 'i', 'n', '.', 'd', 'e', '\0',
   /* "d-quantum.com", true */ 'd', '-', 'q', 'u', 'a', 'n', 't', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "d-training.de", true */ 'd', '-', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "d0xq.net", true */ 'd', '0', 'x', 'q', '.', 'n', 'e', 't', '\0',
-  /* "d3xt3r01.tk", true */ 'd', '3', 'x', 't', '3', 'r', '0', '1', '.', 't', 'k', '\0',
   /* "d42.no", true */ 'd', '4', '2', '.', 'n', 'o', '\0',
   /* "d66.nl", true */ 'd', '6', '6', '.', 'n', 'l', '\0',
   /* "da-ist-kunst.de", true */ 'd', 'a', '-', 'i', 's', 't', '-', 'k', 'u', 'n', 's', 't', '.', 'd', 'e', '\0',
   /* "daallexx.eu", true */ 'd', 'a', 'a', 'l', 'l', 'e', 'x', 'x', '.', 'e', 'u', '\0',
   /* "dachb0den.net", true */ 'd', 'a', 'c', 'h', 'b', '0', 'd', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "dadons-laserdiscs.com", true */ 'd', 'a', 'd', 'o', 'n', 's', '-', 'l', 'a', 's', 'e', 'r', 'd', 'i', 's', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "dadrian.io", true */ 'd', 'a', 'd', 'r', 'i', 'a', 'n', '.', 'i', 'o', '\0',
   /* "dadtheimpaler.com", true */ 'd', 'a', 'd', 't', 'h', 'e', 'i', 'm', 'p', 'a', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -2901,16 +2900,17 @@ static const char kSTSHostTable[] = {
   /* "danielvoogsgerd.nl", true */ 'd', 'a', 'n', 'i', 'e', 'l', 'v', 'o', 'o', 'g', 's', 'g', 'e', 'r', 'd', '.', 'n', 'l', '\0',
   /* "danilapisarev.com", true */ 'd', 'a', 'n', 'i', 'l', 'a', 'p', 'i', 's', 'a', 'r', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "danishenanigans.com", true */ 'd', 'a', 'n', 'i', 's', 'h', 'e', 'n', 'a', 'n', 'i', 'g', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "danjesensky.com", true */ 'd', 'a', 'n', 'j', 'e', 's', 'e', 'n', 's', 'k', 'y', '.', 'c', 'o', 'm', '\0',
   /* "dank.ninja", true */ 'd', 'a', 'n', 'k', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "dankim.de", false */ 'd', 'a', 'n', 'k', 'i', 'm', '.', 'd', 'e', '\0',
   /* "danny.fm", true */ 'd', 'a', 'n', 'n', 'y', '.', 'f', 'm', '\0',
   /* "dannycrichton.com", true */ 'd', 'a', 'n', 'n', 'y', 'c', 'r', 'i', 'c', 'h', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "dannyrohde.de", true */ 'd', 'a', 'n', 'n', 'y', 'r', 'o', 'h', 'd', 'e', '.', 'd', 'e', '\0',
   /* "danonsecurity.com", true */ 'd', 'a', 'n', 'o', 'n', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "danscomp.com", true */ 'd', 'a', 'n', 's', 'c', 'o', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "danseressen.nl", true */ 'd', 'a', 'n', 's', 'e', 'r', 'e', 's', 's', 'e', 'n', '.', 'n', 'l', '\0',
   /* "danskoferie.dk", true */ 'd', 'a', 'n', 's', 'k', 'o', 'f', 'e', 'r', 'i', 'e', '.', 'd', 'k', '\0',
   /* "danw.io", true */ 'd', 'a', 'n', 'w', '.', 'i', 'o', '\0',
   /* "daphne.informatik.uni-freiburg.de", true */ 'd', 'a', 'p', 'h', 'n', 'e', '.', 'i', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'k', '.', 'u', 'n', 'i', '-', 'f', 'r', 'e', 'i', 'b', 'u', 'r', 'g', '.', 'd', 'e', '\0',
   /* "daplie.com", true */ 'd', 'a', 'p', 'l', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "darchoods.net", false */ 'd', 'a', 'r', 'c', 'h', 'o', 'o', 'd', 's', '.', 'n', 'e', 't', '\0',
@@ -2933,17 +2933,17 @@ static const char kSTSHostTable[] = {
   /* "darkwater.info", true */ 'd', 'a', 'r', 'k', 'w', 'a', 't', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "darlo.co.uk", false */ 'd', 'a', 'r', 'l', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "darom.jp", true */ 'd', 'a', 'r', 'o', 'm', '.', 'j', 'p', '\0',
   /* "darrenellis.xyz", true */ 'd', 'a', 'r', 'r', 'e', 'n', 'e', 'l', 'l', 'i', 's', '.', 'x', 'y', 'z', '\0',
   /* "darrenm.net", true */ 'd', 'a', 'r', 'r', 'e', 'n', 'm', '.', 'n', 'e', 't', '\0',
   /* "darrienworth.com", true */ 'd', 'a', 'r', 'r', 'i', 'e', 'n', 'w', 'o', 'r', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "darth-sonic.de", true */ 'd', 'a', 'r', 't', 'h', '-', 's', 'o', 'n', 'i', 'c', '.', 'd', 'e', '\0',
   /* "darwinkel.net", false */ 'd', 'a', 'r', 'w', 'i', 'n', 'k', 'e', 'l', '.', 'n', 'e', 't', '\0',
-  /* "das-mediale-haus.de", false */ 'd', 'a', 's', '-', 'm', 'e', 'd', 'i', 'a', 'l', 'e', '-', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0',
+  /* "das-mediale-haus.de", true */ 'd', 'a', 's', '-', 'm', 'e', 'd', 'i', 'a', 'l', 'e', '-', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0',
   /* "dash-board.jp", false */ 'd', 'a', 's', 'h', '-', 'b', 'o', 'a', 'r', 'd', '.', 'j', 'p', '\0',
   /* "dash.rocks", true */ 'd', 'a', 's', 'h', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "dashboard.yt", true */ 'd', 'a', 's', 'h', 'b', 'o', 'a', 'r', 'd', '.', 'y', 't', '\0',
   /* "data.haus", true */ 'd', 'a', 't', 'a', '.', 'h', 'a', 'u', 's', '\0',
   /* "data.qld.gov.au", false */ 'd', 'a', 't', 'a', '.', 'q', 'l', 'd', '.', 'g', 'o', 'v', '.', 'a', 'u', '\0',
   /* "datacalle.com", true */ 'd', 'a', 't', 'a', 'c', 'a', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "datacandy.com", true */ 'd', 'a', 't', 'a', 'c', 'a', 'n', 'd', 'y', '.', 'c', 'o', 'm', '\0',
   /* "datadit.hu", true */ 'd', 'a', 't', 'a', 'd', 'i', 't', '.', 'h', 'u', '\0',
@@ -2959,30 +2959,28 @@ static const char kSTSHostTable[] = {
   /* "dataswamp.org", true */ 'd', 'a', 't', 'a', 's', 'w', 'a', 'm', 'p', '.', 'o', 'r', 'g', '\0',
   /* "datatekniikka.com", false */ 'd', 'a', 't', 'a', 't', 'e', 'k', 'n', 'i', 'i', 'k', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "datedeposit.com", true */ 'd', 'a', 't', 'e', 'd', 'e', 'p', 'o', 's', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "datenschutz-individuell.de", true */ 'd', 'a', 't', 'e', 'n', 's', 'c', 'h', 'u', 't', 'z', '-', 'i', 'n', 'd', 'i', 'v', 'i', 'd', 'u', 'e', 'l', 'l', '.', 'd', 'e', '\0',
   /* "datorb.com", true */ 'd', 'a', 't', 'o', 'r', 'b', '.', 'c', 'o', 'm', '\0',
   /* "datortipsen.se", true */ 'd', 'a', 't', 'o', 'r', 't', 'i', 'p', 's', 'e', 'n', '.', 's', 'e', '\0',
   /* "datsound.ru", true */ 'd', 'a', 't', 's', 'o', 'u', 'n', 'd', '.', 'r', 'u', '\0',
   /* "daveoc64.co.uk", true */ 'd', 'a', 'v', 'e', 'o', 'c', '6', '4', '.', 'c', 'o', '.', 'u', 'k', '\0',
-  /* "davescomputertips.com", true */ 'd', 'a', 'v', 'e', 's', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 't', 'i', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "davevelopment.net", true */ 'd', 'a', 'v', 'e', 'v', 'e', 'l', 'o', 'p', 'm', 'e', 'n', 't', '.', 'n', 'e', 't', '\0',
   /* "david-corry.com", true */ 'd', 'a', 'v', 'i', 'd', '-', 'c', 'o', 'r', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "david-schiffmann.de", true */ 'd', 'a', 'v', 'i', 'd', '-', 's', 'c', 'h', 'i', 'f', 'f', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "david.kitchen", true */ 'd', 'a', 'v', 'i', 'd', '.', 'k', 'i', 't', 'c', 'h', 'e', 'n', '\0',
   /* "davidadrian.org", true */ 'd', 'a', 'v', 'i', 'd', 'a', 'd', 'r', 'i', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "davidandersson.se", true */ 'd', 'a', 'v', 'i', 'd', 'a', 'n', 'd', 'e', 'r', 's', 's', 'o', 'n', '.', 's', 'e', '\0',
   /* "davidcrx.net", true */ 'd', 'a', 'v', 'i', 'd', 'c', 'r', 'x', '.', 'n', 'e', 't', '\0',
   /* "davidgouveia.net", true */ 'd', 'a', 'v', 'i', 'd', 'g', 'o', 'u', 'v', 'e', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "davidgow.net", true */ 'd', 'a', 'v', 'i', 'd', 'g', 'o', 'w', '.', 'n', 'e', 't', '\0',
   /* "davidgrudl.com", true */ 'd', 'a', 'v', 'i', 'd', 'g', 'r', 'u', 'd', 'l', '.', 'c', 'o', 'm', '\0',
   /* "davidlillo.com", true */ 'd', 'a', 'v', 'i', 'd', 'l', 'i', 'l', 'l', 'o', '.', 'c', 'o', 'm', '\0',
   /* "davidlyness.com", true */ 'd', 'a', 'v', 'i', 'd', 'l', 'y', 'n', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
-  /* "davidmcevoy.org.uk", true */ 'd', 'a', 'v', 'i', 'd', 'm', 'c', 'e', 'v', 'o', 'y', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "davidnadaski.com", true */ 'd', 'a', 'v', 'i', 'd', 'n', 'a', 'd', 'a', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "davidnoren.com", true */ 'd', 'a', 'v', 'i', 'd', 'n', 'o', 'r', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "davidpearce.com", true */ 'd', 'a', 'v', 'i', 'd', 'p', 'e', 'a', 'r', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "davimun.org", true */ 'd', 'a', 'v', 'i', 'm', 'u', 'n', '.', 'o', 'r', 'g', '\0',
   /* "davisroi.com", true */ 'd', 'a', 'v', 'i', 's', 'r', 'o', 'i', '.', 'c', 'o', 'm', '\0',
   /* "dawson-floridavilla.co.uk", true */ 'd', 'a', 'w', 's', 'o', 'n', '-', 'f', 'l', 'o', 'r', 'i', 'd', 'a', 'v', 'i', 'l', 'l', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "daylightpirates.org", true */ 'd', 'a', 'y', 'l', 'i', 'g', 'h', 't', 'p', 'i', 'r', 'a', 't', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "dayman.net", true */ 'd', 'a', 'y', 'm', 'a', 'n', '.', 'n', 'e', 't', '\0',
@@ -3109,34 +3107,34 @@ static const char kSTSHostTable[] = {
   /* "dent.uy", true */ 'd', 'e', 'n', 't', '.', 'u', 'y', '\0',
   /* "dentallaborgeraeteservice.de", true */ 'd', 'e', 'n', 't', 'a', 'l', 'l', 'a', 'b', 'o', 'r', 'g', 'e', 'r', 'a', 'e', 't', 'e', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'd', 'e', '\0',
   /* "dentistglasgow.com", true */ 'd', 'e', 'n', 't', 'i', 's', 't', 'g', 'l', 'a', 's', 'g', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "dentrassi.de", true */ 'd', 'e', 'n', 't', 'r', 'a', 's', 's', 'i', '.', 'd', 'e', '\0',
   /* "dentystabirmingham.co.uk", true */ 'd', 'e', 'n', 't', 'y', 's', 't', 'a', 'b', 'i', 'r', 'm', 'i', 'n', 'g', 'h', 'a', 'm', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "denverprophit.us", true */ 'd', 'e', 'n', 'v', 'e', 'r', 'p', 'r', 'o', 'p', 'h', 'i', 't', '.', 'u', 's', '\0',
   /* "depechemode-live.com", true */ 'd', 'e', 'p', 'e', 'c', 'h', 'e', 'm', 'o', 'd', 'e', '-', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "depicus.com", true */ 'd', 'e', 'p', 'i', 'c', 'u', 's', '.', 'c', 'o', 'm', '\0',
-  /* "der-stein-fluesterer.de", false */ 'd', 'e', 'r', '-', 's', 't', 'e', 'i', 'n', '-', 'f', 'l', 'u', 'e', 's', 't', 'e', 'r', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "der-stein-fluesterer.de", true */ 'd', 'e', 'r', '-', 's', 't', 'e', 'i', 'n', '-', 'f', 'l', 'u', 'e', 's', 't', 'e', 'r', 'e', 'r', '.', 'd', 'e', '\0',
   /* "derbyshire-language-scheme.co.uk", true */ 'd', 'e', 'r', 'b', 'y', 's', 'h', 'i', 'r', 'e', '-', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', '-', 's', 'c', 'h', 'e', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "derchris.me", true */ 'd', 'e', 'r', 'c', 'h', 'r', 'i', 's', '.', 'm', 'e', '\0',
   /* "derechosdigitales.org", true */ 'd', 'e', 'r', 'e', 'c', 'h', 'o', 's', 'd', 'i', 'g', 'i', 't', 'a', 'l', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "dereferenced.net", true */ 'd', 'e', 'r', 'e', 'f', 'e', 'r', 'e', 'n', 'c', 'e', 'd', '.', 'n', 'e', 't', '\0',
   /* "deregowski.net", true */ 'd', 'e', 'r', 'e', 'g', 'o', 'w', 's', 'k', 'i', '.', 'n', 'e', 't', '\0',
   /* "derekkent.com", true */ 'd', 'e', 'r', 'e', 'k', 'k', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "dergeilstestammderwelt.de", true */ 'd', 'e', 'r', 'g', 'e', 'i', 'l', 's', 't', 'e', 's', 't', 'a', 'm', 'm', 'd', 'e', 'r', 'w', 'e', 'l', 't', '.', 'd', 'e', '\0',
   /* "derhil.de", true */ 'd', 'e', 'r', 'h', 'i', 'l', '.', 'd', 'e', '\0',
   /* "derivativeshub.pro", true */ 'd', 'e', 'r', 'i', 'v', 'a', 't', 'i', 'v', 'e', 's', 'h', 'u', 'b', '.', 'p', 'r', 'o', '\0',
   /* "dermapuur.nl", true */ 'd', 'e', 'r', 'm', 'a', 'p', 'u', 'u', 'r', '.', 'n', 'l', '\0',
   /* "deroo.org", true */ 'd', 'e', 'r', 'o', 'o', '.', 'o', 'r', 'g', '\0',
   /* "derp.army", true */ 'd', 'e', 'r', 'p', '.', 'a', 'r', 'm', 'y', '\0',
   /* "derreichesack.com", true */ 'd', 'e', 'r', 'r', 'e', 'i', 'c', 'h', 'e', 's', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "dersoundhunter.de", true */ 'd', 'e', 'r', 's', 'o', 'u', 'n', 'd', 'h', 'u', 'n', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "designed-cybersecurity.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 'e', 'd', '-', 'c', 'y', 'b', 'e', 'r', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "designgears.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 'g', 'e', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0',
-  /* "designhotel-kronjuwel.de", false */ 'd', 'e', 's', 'i', 'g', 'n', 'h', 'o', 't', 'e', 'l', '-', 'k', 'r', 'o', 'n', 'j', 'u', 'w', 'e', 'l', '.', 'd', 'e', '\0',
+  /* "designhotel-kronjuwel.de", true */ 'd', 'e', 's', 'i', 'g', 'n', 'h', 'o', 't', 'e', 'l', '-', 'k', 'r', 'o', 'n', 'j', 'u', 'w', 'e', 'l', '.', 'd', 'e', '\0',
   /* "designsbyjanith.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 's', 'b', 'y', 'j', 'a', 'n', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "designthinking.or.jp", false */ 'd', 'e', 's', 'i', 'g', 'n', 't', 'h', 'i', 'n', 'k', 'i', 'n', 'g', '.', 'o', 'r', '.', 'j', 'p', '\0',
   /* "designville.cz", true */ 'd', 'e', 's', 'i', 'g', 'n', 'v', 'i', 'l', 'l', 'e', '.', 'c', 'z', '\0',
   /* "designville.sk", true */ 'd', 'e', 's', 'i', 'g', 'n', 'v', 'i', 'l', 'l', 'e', '.', 's', 'k', '\0',
   /* "desmaakvanplanten.be", true */ 'd', 'e', 's', 'm', 'a', 'a', 'k', 'v', 'a', 'n', 'p', 'l', 'a', 'n', 't', 'e', 'n', '.', 'b', 'e', '\0',
   /* "despora.de", true */ 'd', 'e', 's', 'p', 'o', 'r', 'a', '.', 'd', 'e', '\0',
   /* "desserteagleselvenar.tk", true */ 'd', 'e', 's', 's', 'e', 'r', 't', 'e', 'a', 'g', 'l', 'e', 's', 'e', 'l', 'v', 'e', 'n', 'a', 'r', '.', 't', 'k', '\0',
   /* "desterman.ru", true */ 'd', 'e', 's', 't', 'e', 'r', 'm', 'a', 'n', '.', 'r', 'u', '\0',
@@ -3235,17 +3233,17 @@ static const char kSTSHostTable[] = {
   /* "diezel.com", true */ 'd', 'i', 'e', 'z', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "diff2html.xyz", true */ 'd', 'i', 'f', 'f', '2', 'h', 't', 'm', 'l', '.', 'x', 'y', 'z', '\0',
   /* "different.cz", true */ 'd', 'i', 'f', 'f', 'e', 'r', 'e', 'n', 't', '.', 'c', 'z', '\0',
   /* "diffnow.com", true */ 'd', 'i', 'f', 'f', 'n', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "dighans.com", true */ 'd', 'i', 'g', 'h', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "digidroom.be", true */ 'd', 'i', 'g', 'i', 'd', 'r', 'o', 'o', 'm', '.', 'b', 'e', '\0',
   /* "digihyp.ch", true */ 'd', 'i', 'g', 'i', 'h', 'y', 'p', '.', 'c', 'h', '\0',
   /* "digimagical.com", true */ 'd', 'i', 'g', 'i', 'm', 'a', 'g', 'i', 'c', 'a', 'l', '.', 'c', 'o', 'm', '\0',
-  /* "digimedia.cd", false */ 'd', 'i', 'g', 'i', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'd', '\0',
+  /* "digimedia.cd", true */ 'd', 'i', 'g', 'i', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'd', '\0',
   /* "digired.xyz", true */ 'd', 'i', 'g', 'i', 'r', 'e', 'd', '.', 'x', 'y', 'z', '\0',
   /* "digital-coach.it", false */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '-', 'c', 'o', 'a', 'c', 'h', '.', 'i', 't', '\0',
   /* "digital-eastside.de", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '-', 'e', 'a', 's', 't', 's', 'i', 'd', 'e', '.', 'd', 'e', '\0',
   /* "digital1st.co.uk", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '1', 's', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "digitalbank.kz", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'b', 'a', 'n', 'k', '.', 'k', 'z', '\0',
   /* "digitaldeli.org", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 'o', 'r', 'g', '\0',
   /* "digitaldeli.tv", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 't', 'v', '\0',
   /* "digitaldeli.us", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 'u', 's', '\0',
@@ -3304,16 +3302,17 @@ static const char kSTSHostTable[] = {
   /* "diva-ey.com", true */ 'd', 'i', 'v', 'a', '-', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "divegearexpress.com", true */ 'd', 'i', 'v', 'e', 'g', 'e', 'a', 'r', 'e', 'x', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "divergenz.org", true */ 'd', 'i', 'v', 'e', 'r', 'g', 'e', 'n', 'z', '.', 'o', 'r', 'g', '\0',
   /* "diversityflags.com", true */ 'd', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y', 'f', 'l', 'a', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "divingwithnic.com", true */ 'd', 'i', 'v', 'i', 'n', 'g', 'w', 'i', 't', 'h', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "dixiediner.com", true */ 'd', 'i', 'x', 'i', 'e', 'd', 'i', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "dixmag.com", true */ 'd', 'i', 'x', 'm', 'a', 'g', '.', 'c', 'o', 'm', '\0',
   /* "diybook.at", true */ 'd', 'i', 'y', 'b', 'o', 'o', 'k', '.', 'a', 't', '\0',
+  /* "diycc.org", true */ 'd', 'i', 'y', 'c', 'c', '.', 'o', 'r', 'g', '\0',
   /* "djangoproject.com", true */ 'd', 'j', 'a', 'n', 'g', 'o', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "djangosnippets.org", true */ 'd', 'j', 'a', 'n', 'g', 'o', 's', 'n', 'i', 'p', 'p', 'e', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "djlive.pl", true */ 'd', 'j', 'l', 'i', 'v', 'e', '.', 'p', 'l', '\0',
   /* "djlnetworks.co.uk", true */ 'd', 'j', 'l', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "djul.net", true */ 'd', 'j', 'u', 'l', '.', 'n', 'e', 't', '\0',
   /* "djxmmx.net", false */ 'd', 'j', 'x', 'm', 'm', 'x', '.', 'n', 'e', 't', '\0',
   /* "djz4music.com", false */ 'd', 'j', 'z', '4', 'm', 'u', 's', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "dk.search.yahoo.com", false */ 'd', 'k', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
@@ -3434,17 +3433,16 @@ static const char kSTSHostTable[] = {
   /* "dotbox.org", true */ 'd', 'o', 't', 'b', 'o', 'x', '.', 'o', 'r', 'g', '\0',
   /* "dothebangthingsalon.com", true */ 'd', 'o', 't', 'h', 'e', 'b', 'a', 'n', 'g', 't', 'h', 'i', 'n', 'g', 's', 'a', 'l', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "dotkod.com", true */ 'd', 'o', 't', 'k', 'o', 'd', '.', 'c', 'o', 'm', '\0',
   /* "dotkod.pl", true */ 'd', 'o', 't', 'k', 'o', 'd', '.', 'p', 'l', '\0',
   /* "dotphoto.com", true */ 'd', 'o', 't', 'p', 'h', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "dotrox.net", true */ 'd', 'o', 't', 'r', 'o', 'x', '.', 'n', 'e', 't', '\0',
   /* "dotsiam.com", true */ 'd', 'o', 't', 's', 'i', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "doubleavineyards.com", true */ 'd', 'o', 'u', 'b', 'l', 'e', 'a', 'v', 'i', 'n', 'e', 'y', 'a', 'r', 'd', 's', '.', 'c', 'o', 'm', '\0',
-  /* "doublefun.net", true */ 'd', 'o', 'u', 'b', 'l', 'e', 'f', 'u', 'n', '.', 'n', 'e', 't', '\0',
   /* "doubleyummy.uk", true */ 'd', 'o', 'u', 'b', 'l', 'e', 'y', 'u', 'm', 'm', 'y', '.', 'u', 'k', '\0',
   /* "doujinshi.info", true */ 'd', 'o', 'u', 'j', 'i', 'n', 's', 'h', 'i', '.', 'i', 'n', 'f', 'o', '\0',
   /* "dounats.com", true */ 'd', 'o', 'u', 'n', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "dovecotadmin.org", true */ 'd', 'o', 'v', 'e', 'c', 'o', 't', 'a', 'd', 'm', 'i', 'n', '.', 'o', 'r', 'g', '\0',
   /* "dovetailnow.com", true */ 'd', 'o', 'v', 'e', 't', 'a', 'i', 'l', 'n', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "downloadaja.com", true */ 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', 'a', 'j', 'a', '.', 'c', 'o', 'm', '\0',
   /* "downloadgamemods.com", true */ 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', 'g', 'a', 'm', 'e', 'm', 'o', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "downloadgram.com", true */ 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', 'g', 'r', 'a', 'm', '.', 'c', 'o', 'm', '\0',
@@ -3502,17 +3500,17 @@ static const char kSTSHostTable[] = {
   /* "droomhuis-in-friesland-kopen.nl", true */ 'd', 'r', 'o', 'o', 'm', 'h', 'u', 'i', 's', '-', 'i', 'n', '-', 'f', 'r', 'i', 'e', 's', 'l', 'a', 'n', 'd', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "droomhuis-in-laren-kopen.nl", true */ 'd', 'r', 'o', 'o', 'm', 'h', 'u', 'i', 's', '-', 'i', 'n', '-', 'l', 'a', 'r', 'e', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "droomhuis-in-veendam-kopen.nl", true */ 'd', 'r', 'o', 'o', 'm', 'h', 'u', 'i', 's', '-', 'i', 'n', '-', 'v', 'e', 'e', 'n', 'd', 'a', 'm', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "dropbox.com", true */ 'd', 'r', 'o', 'p', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "dropboxer.net", true */ 'd', 'r', 'o', 'p', 'b', 'o', 'x', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "drpetervoigt.de", true */ 'd', 'r', 'p', 'e', 't', 'e', 'r', 'v', 'o', 'i', 'g', 't', '.', 'd', 'e', '\0',
   /* "drrr.chat", true */ 'd', 'r', 'r', 'r', '.', 'c', 'h', 'a', 't', '\0',
   /* "drrr.wiki", true */ 'd', 'r', 'r', 'r', '.', 'w', 'i', 'k', 'i', '\0',
-  /* "drschruefer.de", false */ 'd', 'r', 's', 'c', 'h', 'r', 'u', 'e', 'f', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "drschruefer.de", true */ 'd', 'r', 's', 'c', 'h', 'r', 'u', 'e', 'f', 'e', 'r', '.', 'd', 'e', '\0',
   /* "drsturgeonfreitas.com", true */ 'd', 'r', 's', 't', 'u', 'r', 'g', 'e', 'o', 'n', 'f', 'r', 'e', 'i', 't', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "drugagodba.si", true */ 'd', 'r', 'u', 'g', 'a', 'g', 'o', 'd', 'b', 'a', '.', 's', 'i', '\0',
   /* "drumbe.at", true */ 'd', 'r', 'u', 'm', 'b', 'e', '.', 'a', 't', '\0',
   /* "drupal.org", true */ 'd', 'r', 'u', 'p', 'a', 'l', '.', 'o', 'r', 'g', '\0',
   /* "drweissbrot.net", true */ 'd', 'r', 'w', 'e', 'i', 's', 's', 'b', 'r', 'o', 't', '.', 'n', 'e', 't', '\0',
   /* "drycreekphoto.com", true */ 'd', 'r', 'y', 'c', 'r', 'e', 'e', 'k', 'p', 'h', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ds-christiansen.de", true */ 'd', 's', '-', 'c', 'h', 'r', 'i', 's', 't', 'i', 'a', 'n', 's', 'e', 'n', '.', 'd', 'e', '\0',
   /* "ds67.de", true */ 'd', 's', '6', '7', '.', 'd', 'e', '\0',
@@ -3536,16 +3534,17 @@ static const char kSTSHostTable[] = {
   /* "dumino.bg", true */ 'd', 'u', 'm', 'i', 'n', 'o', '.', 'b', 'g', '\0',
   /* "dunableguitars.com", true */ 'd', 'u', 'n', 'a', 'b', 'l', 'e', 'g', 'u', 'i', 't', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "duncancmt.com", true */ 'd', 'u', 'n', 'c', 'a', 'n', 'c', 'm', 't', '.', 'c', 'o', 'm', '\0',
   /* "dune.io", true */ 'd', 'u', 'n', 'e', '.', 'i', 'o', '\0',
   /* "dunea.nl", true */ 'd', 'u', 'n', 'e', 'a', '.', 'n', 'l', '\0',
   /* "duo.money", true */ 'd', 'u', 'o', '.', 'm', 'o', 'n', 'e', 'y', '\0',
   /* "durangoenergyllc.com", true */ 'd', 'u', 'r', 'a', 'n', 'g', 'o', 'e', 'n', 'e', 'r', 'g', 'y', 'l', 'l', 'c', '.', 'c', 'o', 'm', '\0',
   /* "durys.be", true */ 'd', 'u', 'r', 'y', 's', '.', 'b', 'e', '\0',
+  /* "dustri.org", true */ 'd', 'u', 's', 't', 'r', 'i', '.', 'o', 'r', 'g', '\0',
   /* "dustygroove.com", true */ 'd', 'u', 's', 't', 'y', 'g', 'r', 'o', 'o', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dutch1.nl", true */ 'd', 'u', 't', 'c', 'h', '1', '.', 'n', 'l', '\0',
   /* "dutchessuganda.com", true */ 'd', 'u', 't', 'c', 'h', 'e', 's', 's', 'u', 'g', 'a', 'n', 'd', 'a', '.', 'c', 'o', 'm', '\0',
   /* "dutchrank.com", true */ 'd', 'u', 't', 'c', 'h', 'r', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "dutchrank.nl", true */ 'd', 'u', 't', 'c', 'h', 'r', 'a', 'n', 'k', '.', 'n', 'l', '\0',
   /* "dutchwanderers.nl", true */ 'd', 'u', 't', 'c', 'h', 'w', 'a', 'n', 'd', 'e', 'r', 'e', 'r', 's', '.', 'n', 'l', '\0',
   /* "dutchweballiance.nl", true */ 'd', 'u', 't', 'c', 'h', 'w', 'e', 'b', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'n', 'l', '\0',
   /* "dutyfreeonboard.com", true */ 'd', 'u', 't', 'y', 'f', 'r', 'e', 'e', 'o', 'n', 'b', 'o', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
@@ -3676,17 +3675,16 @@ static const char kSTSHostTable[] = {
   /* "educator-one.com", true */ 'e', 'd', 'u', 'c', 'a', 't', 'o', 'r', '-', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "eduid.se", true */ 'e', 'd', 'u', 'i', 'd', '.', 's', 'e', '\0',
   /* "eduif.nl", false */ 'e', 'd', 'u', 'i', 'f', '.', 'n', 'l', '\0',
   /* "eduroam.no", true */ 'e', 'd', 'u', 'r', 'o', 'a', 'm', '.', 'n', 'o', '\0',
   /* "edusantorini.com", true */ 'e', 'd', 'u', 's', 'a', 'n', 't', 'o', 'r', 'i', 'n', 'i', '.', 'c', 'o', 'm', '\0',
   /* "edv-lehrgang.de", true */ 'e', 'd', 'v', '-', 'l', 'e', 'h', 'r', 'g', 'a', 'n', 'g', '.', 'd', 'e', '\0',
   /* "edvmesstec.de", true */ 'e', 'd', 'v', 'm', 'e', 's', 's', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "edwards.me.uk", true */ 'e', 'd', 'w', 'a', 'r', 'd', 's', '.', 'm', 'e', '.', 'u', 'k', '\0',
-  /* "edwardsnowden.com", true */ 'e', 'd', 'w', 'a', 'r', 'd', 's', 'n', 'o', 'w', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "edxg.de", false */ 'e', 'd', 'x', 'g', '.', 'd', 'e', '\0',
   /* "edyou.eu", true */ 'e', 'd', 'y', 'o', 'u', '.', 'e', 'u', '\0',
   /* "edzilla.info", true */ 'e', 'd', 'z', 'i', 'l', 'l', 'a', '.', 'i', 'n', 'f', 'o', '\0',
   /* "ee-terminals.com", true */ 'e', 'e', '-', 't', 'e', 'r', 'm', 'i', 'n', 'a', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "eelsden.net", true */ 'e', 'e', 'l', 's', 'd', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "eelzak.nl", true */ 'e', 'e', 'l', 'z', 'a', 'k', '.', 'n', 'l', '\0',
   /* "eenhoorn.ga", true */ 'e', 'e', 'n', 'h', 'o', 'o', 'r', 'n', '.', 'g', 'a', '\0',
   /* "eery.de", true */ 'e', 'e', 'r', 'y', '.', 'd', 'e', '\0',
@@ -3705,17 +3703,17 @@ static const char kSTSHostTable[] = {
   /* "ehealthcounselor.com", true */ 'e', 'h', 'e', 'a', 'l', 't', 'h', 'c', 'o', 'u', 'n', 's', 'e', 'l', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "ehipaa.com", true */ 'e', 'h', 'i', 'p', 'a', 'a', '.', 'c', 'o', 'm', '\0',
   /* "ehipaadev.com", true */ 'e', 'h', 'i', 'p', 'a', 'a', 'd', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "ehito.ovh", true */ 'e', 'h', 'i', 't', 'o', '.', 'o', 'v', 'h', '\0',
   /* "ehrlichesbier.de", true */ 'e', 'h', 'r', 'l', 'i', 'c', 'h', 'e', 's', 'b', 'i', 'e', 'r', '.', 'd', 'e', '\0',
   /* "ehuber.info", true */ 'e', 'h', 'u', 'b', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "eichornenterprises.com", true */ 'e', 'i', 'c', 'h', 'o', 'r', 'n', 'e', 'n', 't', 'e', 'r', 'p', 'r', 'i', 's', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "eickemeyer.nl", true */ 'e', 'i', 'c', 'k', 'e', 'm', 'e', 'y', 'e', 'r', '.', 'n', 'l', '\0',
-  /* "eighty-aid.com", false */ 'e', 'i', 'g', 'h', 't', 'y', '-', 'a', 'i', 'd', '.', 'c', 'o', 'm', '\0',
+  /* "eighty-aid.com", true */ 'e', 'i', 'g', 'h', 't', 'y', '-', 'a', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "eimacs.com", true */ 'e', 'i', 'm', 'a', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "eimanavicius.lt", true */ 'e', 'i', 'm', 'a', 'n', 'a', 'v', 'i', 'c', 'i', 'u', 's', '.', 'l', 't', '\0',
   /* "einaros.is", true */ 'e', 'i', 'n', 'a', 'r', 'o', 's', '.', 'i', 's', '\0',
   /* "einheizpreis.de", true */ 'e', 'i', 'n', 'h', 'e', 'i', 'z', 'p', 'r', 'e', 'i', 's', '.', 'd', 'e', '\0',
   /* "einsatzstellenverwaltung.de", true */ 'e', 'i', 'n', 's', 'a', 't', 'z', 's', 't', 'e', 'l', 'l', 'e', 'n', 'v', 'e', 'r', 'w', 'a', 'l', 't', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "eintageinzug.de", true */ 'e', 'i', 'n', 't', 'a', 'g', 'e', 'i', 'n', 'z', 'u', 'g', '.', 'd', 'e', '\0',
   /* "eipione.com", true */ 'e', 'i', 'p', 'i', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "eirastudios.co.uk", false */ 'e', 'i', 'r', 'a', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -3731,16 +3729,17 @@ static const char kSTSHostTable[] = {
   /* "el-cell.com", true */ 'e', 'l', '-', 'c', 'e', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "elan-organics.com", true */ 'e', 'l', 'a', 'n', '-', 'o', 'r', 'g', 'a', 'n', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "elanguest.ro", true */ 'e', 'l', 'a', 'n', 'g', 'u', 'e', 's', 't', '.', 'r', 'o', '\0',
   /* "elanguest.ru", true */ 'e', 'l', 'a', 'n', 'g', 'u', 'e', 's', 't', '.', 'r', 'u', '\0',
   /* "elaon.de", true */ 'e', 'l', 'a', 'o', 'n', '.', 'd', 'e', '\0',
   /* "elastic7.uk", true */ 'e', 'l', 'a', 's', 't', 'i', 'c', '7', '.', 'u', 'k', '\0',
   /* "elaxy-online.de", true */ 'e', 'l', 'a', 'x', 'y', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "elblein.de", true */ 'e', 'l', 'b', 'l', 'e', 'i', 'n', '.', 'd', 'e', '\0',
+  /* "eldinhadzic.com", true */ 'e', 'l', 'd', 'i', 'n', 'h', 'a', 'd', 'z', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "elearningpilot.com", true */ 'e', 'l', 'e', 'a', 'r', 'n', 'i', 'n', 'g', 'p', 'i', 'l', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "electricant.com", true */ 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', 'a', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "electricant.nl", true */ 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', 'a', 'n', 't', '.', 'n', 'l', '\0',
   /* "electronic-ignition-system.com", true */ 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', '-', 'i', 'g', 'n', 'i', 't', 'i', 'o', 'n', '-', 's', 'y', 's', 't', 'e', 'm', '.', 'c', 'o', 'm', '\0',
   /* "electronicfasteners.com", true */ 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 'f', 'a', 's', 't', 'e', 'n', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "elefantevoador.com", true */ 'e', 'l', 'e', 'f', 'a', 'n', 't', 'e', 'v', 'o', 'a', 'd', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "eleicoes2016.com.br", true */ 'e', 'l', 'e', 'i', 'c', 'o', 'e', 's', '2', '0', '1', '6', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "elektronring.com", true */ 'e', 'l', 'e', 'k', 't', 'r', 'o', 'n', 'r', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
@@ -3834,16 +3833,20 @@ static const char kSTSHostTable[] = {
   /* "end.pp.ua", true */ 'e', 'n', 'd', '.', 'p', 'p', '.', 'u', 'a', '\0',
   /* "endeal.nl", true */ 'e', 'n', 'd', 'e', 'a', 'l', '.', 'n', 'l', '\0',
   /* "ender.co.at", true */ 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', '.', 'a', 't', '\0',
   /* "endlessdark.net", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'd', 'a', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "endlessdiy.ca", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'd', 'i', 'y', '.', 'c', 'a', '\0',
   /* "endlesshorizon.net", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'h', 'o', 'r', 'i', 'z', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "endlesstone.com", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 't', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "endofnet.org", true */ 'e', 'n', 'd', 'o', 'f', 'n', 'e', 't', '.', 'o', 'r', 'g', '\0',
+  /* "endohaus.ca", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'a', '\0',
+  /* "endohaus.com", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'o', 'm', '\0',
+  /* "endohaus.eu", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'e', 'u', '\0',
+  /* "endohaus.us", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'u', 's', '\0',
   /* "enecoshop.nl", true */ 'e', 'n', 'e', 'c', 'o', 's', 'h', 'o', 'p', '.', 'n', 'l', '\0',
   /* "enefan.jp", true */ 'e', 'n', 'e', 'f', 'a', 'n', '.', 'j', 'p', '\0',
   /* "energiekeurplus.nl", true */ 'e', 'n', 'e', 'r', 'g', 'i', 'e', 'k', 'e', 'u', 'r', 'p', 'l', 'u', 's', '.', 'n', 'l', '\0',
   /* "energy-drink-magazin.de", true */ 'e', 'n', 'e', 'r', 'g', 'y', '-', 'd', 'r', 'i', 'n', 'k', '-', 'm', 'a', 'g', 'a', 'z', 'i', 'n', '.', 'd', 'e', '\0',
   /* "energy-infra.nl", true */ 'e', 'n', 'e', 'r', 'g', 'y', '-', 'i', 'n', 'f', 'r', 'a', '.', 'n', 'l', '\0',
   /* "energy.eu", true */ 'e', 'n', 'e', 'r', 'g', 'y', '.', 'e', 'u', '\0',
   /* "energyatlas.com", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'a', 't', 'l', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "energydrinkblog.de", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'd', 'r', 'i', 'n', 'k', 'b', 'l', 'o', 'g', '.', 'd', 'e', '\0',
@@ -3893,16 +3896,17 @@ static const char kSTSHostTable[] = {
   /* "epichouse.net", true */ 'e', 'p', 'i', 'c', 'h', 'o', 'u', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "epicsecure.de", true */ 'e', 'p', 'i', 'c', 's', 'e', 'c', 'u', 'r', 'e', '.', 'd', 'e', '\0',
   /* "epicsoft.de", true */ 'e', 'p', 'i', 'c', 's', 'o', 'f', 't', '.', 'd', 'e', '\0',
   /* "epicwalnutcreek.com", true */ 'e', 'p', 'i', 'c', 'w', 'a', 'l', 'n', 'u', 't', 'c', 'r', 'e', 'e', 'k', '.', 'c', 'o', 'm', '\0',
   /* "epizentrum.work", true */ 'e', 'p', 'i', 'z', 'e', 'n', 't', 'r', 'u', 'm', '.', 'w', 'o', 'r', 'k', '\0',
   /* "epizentrum.works", true */ 'e', 'p', 'i', 'z', 'e', 'n', 't', 'r', 'u', 'm', '.', 'w', 'o', 'r', 'k', 's', '\0',
   /* "epoch.com", true */ 'e', 'p', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "epostplus.li", true */ 'e', 'p', 'o', 's', 't', 'p', 'l', 'u', 's', '.', 'l', 'i', '\0',
+  /* "epublibre.org", true */ 'e', 'p', 'u', 'b', 'l', 'i', 'b', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "eq-serve.com", true */ 'e', 'q', '-', 's', 'e', 'r', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "eqorg.com", true */ 'e', 'q', 'o', 'r', 'g', '.', 'c', 'o', 'm', '\0',
   /* "equalparts.eu", true */ 'e', 'q', 'u', 'a', 'l', 'p', 'a', 'r', 't', 's', '.', 'e', 'u', '\0',
   /* "equidam.com", true */ 'e', 'q', 'u', 'i', 'd', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "equipsupply.com", true */ 'e', 'q', 'u', 'i', 'p', 's', 'u', 'p', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "erdethamburgeronsdag.no", true */ 'e', 'r', 'd', 'e', 't', 'h', 'a', 'm', 'b', 'u', 'r', 'g', 'e', 'r', 'o', 'n', 's', 'd', 'a', 'g', '.', 'n', 'o', '\0',
   /* "erepublik-deutschland.de", true */ 'e', 'r', 'e', 'p', 'u', 'b', 'l', 'i', 'k', '-', 'd', 'e', 'u', 't', 's', 'c', 'h', 'l', 'a', 'n', 'd', '.', 'd', 'e', '\0',
   /* "ergo-open.de", true */ 'e', 'r', 'g', 'o', '-', 'o', 'p', 'e', 'n', '.', 'd', 'e', '\0',
@@ -4136,17 +4140,16 @@ static const char kSTSHostTable[] = {
   /* "fachschaft-informatik.de", true */ 'f', 'a', 'c', 'h', 's', 'c', 'h', 'a', 'f', 't', '-', 'i', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'k', '.', 'd', 'e', '\0',
   /* "facilitrak.com", true */ 'f', 'a', 'c', 'i', 'l', 'i', 't', 'r', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "factbytefactbox.com", true */ 'f', 'a', 'c', 't', 'b', 'y', 't', 'e', 'f', 'a', 'c', 't', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "factor.cc", false */ 'f', 'a', 'c', 't', 'o', 'r', '.', 'c', 'c', '\0',
   /* "factuursturen.be", true */ 'f', 'a', 'c', 't', 'u', 'u', 'r', 's', 't', 'u', 'r', 'e', 'n', '.', 'b', 'e', '\0',
   /* "factuursturen.nl", true */ 'f', 'a', 'c', 't', 'u', 'u', 'r', 's', 't', 'u', 'r', 'e', 'n', '.', 'n', 'l', '\0',
   /* "factys.do", true */ 'f', 'a', 'c', 't', 'y', 's', '.', 'd', 'o', '\0',
   /* "factys.es", true */ 'f', 'a', 'c', 't', 'y', 's', '.', 'e', 's', '\0',
-  /* "fadednet.com", true */ 'f', 'a', 'd', 'e', 'd', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "faeriecakes.be", true */ 'f', 'a', 'e', 'r', 'i', 'e', 'c', 'a', 'k', 'e', 's', '.', 'b', 'e', '\0',
   /* "fahrenwal.de", true */ 'f', 'a', 'h', 'r', 'e', 'n', 'w', 'a', 'l', '.', 'd', 'e', '\0',
   /* "fahrenwalde.de", true */ 'f', 'a', 'h', 'r', 'e', 'n', 'w', 'a', 'l', 'd', 'e', '.', 'd', 'e', '\0',
   /* "failforward.org", true */ 'f', 'a', 'i', 'l', 'f', 'o', 'r', 'w', 'a', 'r', 'd', '.', 'o', 'r', 'g', '\0',
   /* "failproof.be", true */ 'f', 'a', 'i', 'l', 'p', 'r', 'o', 'o', 'f', '.', 'b', 'e', '\0',
   /* "fairbill.com", true */ 'f', 'a', 'i', 'r', 'b', 'i', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "faircom.co.za", true */ 'f', 'a', 'i', 'r', 'c', 'o', 'm', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "faithwatch.org", true */ 'f', 'a', 'i', 't', 'h', 'w', 'a', 't', 'c', 'h', '.', 'o', 'r', 'g', '\0',
@@ -4340,23 +4343,21 @@ static const char kSTSHostTable[] = {
   /* "firstdogonthemoon.com.au", true */ 'f', 'i', 'r', 's', 't', 'd', 'o', 'g', 'o', 'n', 't', 'h', 'e', 'm', 'o', 'o', 'n', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "firstlook.org", true */ 'f', 'i', 'r', 's', 't', 'l', 'o', 'o', 'k', '.', 'o', 'r', 'g', '\0',
   /* "firstmall.de", true */ 'f', 'i', 'r', 's', 't', 'm', 'a', 'l', 'l', '.', 'd', 'e', '\0',
   /* "fischer-its.com", false */ 'f', 'i', 's', 'c', 'h', 'e', 'r', '-', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "fischers.cc", true */ 'f', 'i', 's', 'c', 'h', 'e', 'r', 's', '.', 'c', 'c', '\0',
   /* "fish-hook.ru", true */ 'f', 'i', 's', 'h', '-', 'h', 'o', 'o', 'k', '.', 'r', 'u', '\0',
   /* "fit365.jp", true */ 'f', 'i', 't', '3', '6', '5', '.', 'j', 'p', '\0',
   /* "fitbylo.com", true */ 'f', 'i', 't', 'b', 'y', 'l', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "fitiapp.com", true */ 'f', 'i', 't', 'i', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "fitkram.cz", true */ 'f', 'i', 't', 'k', 'r', 'a', 'm', '.', 'c', 'z', '\0',
   /* "fittelo.cz", true */ 'f', 'i', 't', 't', 'e', 'l', 'o', '.', 'c', 'z', '\0',
   /* "fitzsim.org", true */ 'f', 'i', 't', 'z', 's', 'i', 'm', '.', 'o', 'r', 'g', '\0',
   /* "five.vn", true */ 'f', 'i', 'v', 'e', '.', 'v', 'n', '\0',
   /* "fiws.net", true */ 'f', 'i', 'w', 's', '.', 'n', 'e', 't', '\0',
-  /* "fixate.ru", true */ 'f', 'i', 'x', 'a', 't', 'e', '.', 'r', 'u', '\0',
   /* "fixel.express", true */ 'f', 'i', 'x', 'e', 'l', '.', 'e', 'x', 'p', 'r', 'e', 's', 's', '\0',
   /* "fixforce.nl", true */ 'f', 'i', 'x', 'f', 'o', 'r', 'c', 'e', '.', 'n', 'l', '\0',
   /* "fixhotsauce.com", true */ 'f', 'i', 'x', 'h', 'o', 't', 's', 'a', 'u', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fixmycomputerdude.com", true */ 'f', 'i', 'x', 'm', 'y', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'd', 'u', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fj.simple.com", false */ 'f', 'j', '.', 's', 'i', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fjruiz.es", true */ 'f', 'j', 'r', 'u', 'i', 'z', '.', 'e', 's', '\0',
   /* "flaemig42.de", true */ 'f', 'l', 'a', 'e', 'm', 'i', 'g', '4', '2', '.', 'd', 'e', '\0',
   /* "flagburningworld.com", true */ 'f', 'l', 'a', 'g', 'b', 'u', 'r', 'n', 'i', 'n', 'g', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', 'm', '\0',
@@ -4373,16 +4374,17 @@ static const char kSTSHostTable[] = {
   /* "flashback.org", true */ 'f', 'l', 'a', 's', 'h', 'b', 'a', 'c', 'k', '.', 'o', 'r', 'g', '\0',
   /* "flat.io", true */ 'f', 'l', 'a', 't', '.', 'i', 'o', '\0',
   /* "flawlesscowboy.xyz", true */ 'f', 'l', 'a', 'w', 'l', 'e', 's', 's', 'c', 'o', 'w', 'b', 'o', 'y', '.', 'x', 'y', 'z', '\0',
   /* "flazznetworks.com", false */ 'f', 'l', 'a', 'z', 'z', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "fleep.io", true */ 'f', 'l', 'e', 'e', 'p', '.', 'i', 'o', '\0',
   /* "fleisch.club", true */ 'f', 'l', 'e', 'i', 's', 'c', 'h', '.', 'c', 'l', 'u', 'b', '\0',
   /* "fletchto99.com", true */ 'f', 'l', 'e', 't', 'c', 'h', 't', 'o', '9', '9', '.', 'c', 'o', 'm', '\0',
   /* "flexapplications.se", true */ 'f', 'l', 'e', 'x', 'a', 'p', 'p', 'l', 'i', 'c', 'a', 't', 'i', 'o', 'n', 's', '.', 's', 'e', '\0',
+  /* "fleximus.org", false */ 'f', 'l', 'e', 'x', 'i', 'm', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "flexinvesting.fi", true */ 'f', 'l', 'e', 'x', 'i', 'n', 'v', 'e', 's', 't', 'i', 'n', 'g', '.', 'f', 'i', '\0',
   /* "flexport.com", true */ 'f', 'l', 'e', 'x', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "flexstart.me", true */ 'f', 'l', 'e', 'x', 's', 't', 'a', 'r', 't', '.', 'm', 'e', '\0',
   /* "flightschoolbooking.com", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'b', 'o', 'o', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "flightschoolcandidates.gov", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'c', 'a', 'n', 'd', 'i', 'd', 'a', 't', 'e', 's', '.', 'g', 'o', 'v', '\0',
   /* "fling.dating", true */ 'f', 'l', 'i', 'n', 'g', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "flipagram.com", false */ 'f', 'l', 'i', 'p', 'a', 'g', 'r', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "flipkey.com", true */ 'f', 'l', 'i', 'p', 'k', 'e', 'y', '.', 'c', 'o', 'm', '\0',
@@ -4504,29 +4506,30 @@ static const char kSTSHostTable[] = {
   /* "fraho.eu", true */ 'f', 'r', 'a', 'h', 'o', '.', 'e', 'u', '\0',
   /* "fralef.me", false */ 'f', 'r', 'a', 'l', 'e', 'f', '.', 'm', 'e', '\0',
   /* "fran.cr", true */ 'f', 'r', 'a', 'n', '.', 'c', 'r', '\0',
   /* "francescopalazzo.com", true */ 'f', 'r', 'a', 'n', 'c', 'e', 's', 'c', 'o', 'p', 'a', 'l', 'a', 'z', 'z', 'o', '.', 'c', 'o', 'm', '\0',
   /* "franckgirard.net", true */ 'f', 'r', 'a', 'n', 'c', 'k', 'g', 'i', 'r', 'a', 'r', 'd', '.', 'n', 'e', 't', '\0',
   /* "francoz.me", true */ 'f', 'r', 'a', 'n', 'c', 'o', 'z', '.', 'm', 'e', '\0',
   /* "frank.fyi", true */ 'f', 'r', 'a', 'n', 'k', '.', 'f', 'y', 'i', '\0',
   /* "franke-chemie.de", true */ 'f', 'r', 'a', 'n', 'k', 'e', '-', 'c', 'h', 'e', 'm', 'i', 'e', '.', 'd', 'e', '\0',
-  /* "franken-lehrmittel.de", false */ 'f', 'r', 'a', 'n', 'k', 'e', 'n', '-', 'l', 'e', 'h', 'r', 'm', 'i', 't', 't', 'e', 'l', '.', 'd', 'e', '\0',
+  /* "franken-lehrmittel.de", true */ 'f', 'r', 'a', 'n', 'k', 'e', 'n', '-', 'l', 'e', 'h', 'r', 'm', 'i', 't', 't', 'e', 'l', '.', 'd', 'e', '\0',
   /* "frankhaala.com", true */ 'f', 'r', 'a', 'n', 'k', 'h', 'a', 'a', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "frankierprofi.de", true */ 'f', 'r', 'a', 'n', 'k', 'i', 'e', 'r', 'p', 'r', 'o', 'f', 'i', '.', 'd', 'e', '\0',
   /* "frankl.in", true */ 'f', 'r', 'a', 'n', 'k', 'l', '.', 'i', 'n', '\0',
   /* "frankwei.xyz", true */ 'f', 'r', 'a', 'n', 'k', 'w', 'e', 'i', '.', 'x', 'y', 'z', '\0',
   /* "fransallen.com", true */ 'f', 'r', 'a', 'n', 's', 'a', 'l', 'l', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "frantic1048.com", true */ 'f', 'r', 'a', 'n', 't', 'i', 'c', '1', '0', '4', '8', '.', 'c', 'o', 'm', '\0',
   /* "franzt.ovh", true */ 'f', 'r', 'a', 'n', 'z', 't', '.', 'o', 'v', 'h', '\0',
   /* "frappant.cc", true */ 'f', 'r', 'a', 'p', 'p', 'a', 'n', 't', '.', 'c', 'c', '\0',
   /* "frasesparaface.com.br", true */ 'f', 'r', 'a', 's', 'e', 's', 'p', 'a', 'r', 'a', 'f', 'a', 'c', 'e', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "frasys.cloud", true */ 'f', 'r', 'a', 's', 'y', 's', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "frasys.net", true */ 'f', 'r', 'a', 's', 'y', 's', '.', 'n', 'e', 't', '\0',
   /* "fraudempire.com", true */ 'f', 'r', 'a', 'u', 'd', 'e', 'm', 'p', 'i', 'r', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "fraurichter.net", true */ 'f', 'r', 'a', 'u', 'r', 'i', 'c', 'h', 't', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "fraye.net", true */ 'f', 'r', 'a', 'y', 'e', '.', 'n', 'e', 't', '\0',
   /* "frbracch.it", true */ 'f', 'r', 'b', 'r', 'a', 'c', 'c', 'h', '.', 'i', 't', '\0',
   /* "frdl.ch", true */ 'f', 'r', 'd', 'l', '.', 'c', 'h', '\0',
   /* "frederik-braun.com", true */ 'f', 'r', 'e', 'd', 'e', 'r', 'i', 'k', '-', 'b', 'r', 'a', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "frederikschoell.de", true */ 'f', 'r', 'e', 'd', 'e', 'r', 'i', 'k', 's', 'c', 'h', 'o', 'e', 'l', 'l', '.', 'd', 'e', '\0',
   /* "fredloya.com", true */ 'f', 'r', 'e', 'd', 'l', 'o', 'y', 'a', '.', 'c', 'o', 'm', '\0',
   /* "fredvoyage.fr", true */ 'f', 'r', 'e', 'd', 'v', 'o', 'y', 'a', 'g', 'e', '.', 'f', 'r', '\0',
   /* "free-your-pc.com", true */ 'f', 'r', 'e', 'e', '-', 'y', 'o', 'u', 'r', '-', 'p', 'c', '.', 'c', 'o', 'm', '\0',
@@ -4705,17 +4708,16 @@ static const char kSTSHostTable[] = {
   /* "gamercredo.net", true */ 'g', 'a', 'm', 'e', 'r', 'c', 'r', 'e', 'd', 'o', '.', 'n', 'e', 't', '\0',
   /* "gameserver-sponsor.de", true */ 'g', 'a', 'm', 'e', 's', 'e', 'r', 'v', 'e', 'r', '-', 's', 'p', 'o', 'n', 's', 'o', 'r', '.', 'd', 'e', '\0',
   /* "gamesurferapp.com", true */ 'g', 'a', 'm', 'e', 's', 'u', 'r', 'f', 'e', 'r', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "gamingreinvented.com", true */ 'g', 'a', 'm', 'i', 'n', 'g', 'r', 'e', 'i', 'n', 'v', 'e', 'n', 't', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "gamingwithcromulent.com", true */ 'g', 'a', 'm', 'i', 'n', 'g', 'w', 'i', 't', 'h', 'c', 'r', 'o', 'm', 'u', 'l', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "gamingzoneservers.com", true */ 'g', 'a', 'm', 'i', 'n', 'g', 'z', 'o', 'n', 'e', 's', 'e', 'r', 'v', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "gamishou.fr", true */ 'g', 'a', 'm', 'i', 's', 'h', 'o', 'u', '.', 'f', 'r', '\0',
   /* "gamoloco.com", true */ 'g', 'a', 'm', 'o', 'l', 'o', 'c', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "gancedo.com.es", true */ 'g', 'a', 'n', 'c', 'e', 'd', 'o', '.', 'c', 'o', 'm', '.', 'e', 's', '\0',
   /* "ganhonet.com.br", true */ 'g', 'a', 'n', 'h', 'o', 'n', 'e', 't', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "gapdirect.com", true */ 'g', 'a', 'p', 'd', 'i', 'r', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "gar-nich.net", true */ 'g', 'a', 'r', '-', 'n', 'i', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "garagegoossens.be", true */ 'g', 'a', 'r', 'a', 'g', 'e', 'g', 'o', 'o', 's', 's', 'e', 'n', 's', '.', 'b', 'e', '\0',
   /* "garageon.net", true */ 'g', 'a', 'r', 'a', 'g', 'e', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "garantieabschluss.de", false */ 'g', 'a', 'r', 'a', 'n', 't', 'i', 'e', 'a', 'b', 's', 'c', 'h', 'l', 'u', 's', 's', '.', 'd', 'e', '\0',
   /* "garbage-juice.com", true */ 'g', 'a', 'r', 'b', 'a', 'g', 'e', '-', 'j', 'u', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "garden-life.org", true */ 'g', 'a', 'r', 'd', 'e', 'n', '-', 'l', 'i', 'f', 'e', '.', 'o', 'r', 'g', '\0',
@@ -4784,16 +4786,17 @@ static const char kSTSHostTable[] = {
   /* "genesiseureka.com", true */ 'g', 'e', 'n', 'e', 's', 'i', 's', 'e', 'u', 'r', 'e', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "genie-seiner-generation.de", true */ 'g', 'e', 'n', 'i', 'e', '-', 's', 'e', 'i', 'n', 'e', 'r', '-', 'g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'o', 'n', '.', 'd', 'e', '\0',
   /* "genomequestlive.com", true */ 'g', 'e', 'n', 'o', 'm', 'e', 'q', 'u', 'e', 's', 't', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "genossen.ru", true */ 'g', 'e', 'n', 'o', 's', 's', 'e', 'n', '.', 'r', 'u', '\0',
   /* "genshiken-itb.org", true */ 'g', 'e', 'n', 's', 'h', 'i', 'k', 'e', 'n', '-', 'i', 't', 'b', '.', 'o', 'r', 'g', '\0',
   /* "genshiken.org", true */ 'g', 'e', 'n', 's', 'h', 'i', 'k', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "genslerapps.com", true */ 'g', 'e', 'n', 's', 'l', 'e', 'r', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "genslerwisp.com", true */ 'g', 'e', 'n', 's', 'l', 'e', 'r', 'w', 'i', 's', 'p', '.', 'c', 'o', 'm', '\0',
+  /* "genuxtsg.com", true */ 'g', 'e', 'n', 'u', 'x', 't', 's', 'g', '.', 'c', 'o', 'm', '\0',
   /* "genxbeats.com", true */ 'g', 'e', 'n', 'x', 'b', 'e', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "genxnotes.com", true */ 'g', 'e', 'n', 'x', 'n', 'o', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "genyhitch.com", true */ 'g', 'e', 'n', 'y', 'h', 'i', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "geofox.org", true */ 'g', 'e', 'o', 'f', 'o', 'x', '.', 'o', 'r', 'g', '\0',
   /* "geoip.fedoraproject.org", true */ 'g', 'e', 'o', 'i', 'p', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "geoip.stg.fedoraproject.org", true */ 'g', 'e', 'o', 'i', 'p', '.', 's', 't', 'g', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "geolad.com", false */ 'g', 'e', 'o', 'l', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "georgemaschke.com", true */ 'g', 'e', 'o', 'r', 'g', 'e', 'm', 'a', 's', 'c', 'h', 'k', 'e', '.', 'c', 'o', 'm', '\0',
@@ -5057,16 +5060,17 @@ static const char kSTSHostTable[] = {
   /* "grassenberg.de", true */ 'g', 'r', 'a', 's', 's', 'e', 'n', 'b', 'e', 'r', 'g', '.', 'd', 'e', '\0',
   /* "grasshoppervape.com", true */ 'g', 'r', 'a', 's', 's', 'h', 'o', 'p', 'p', 'e', 'r', 'v', 'a', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "gratisonlinesex.com", true */ 'g', 'r', 'a', 't', 'i', 's', 'o', 'n', 'l', 'i', 'n', 'e', 's', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "gravitascreative.net", true */ 'g', 'r', 'a', 'v', 'i', 't', 'a', 's', 'c', 'r', 'e', 'a', 't', 'i', 'v', 'e', '.', 'n', 'e', 't', '\0',
   /* "gravitation.pro", false */ 'g', 'r', 'a', 'v', 'i', 't', 'a', 't', 'i', 'o', 'n', '.', 'p', 'r', 'o', '\0',
   /* "gravitechthai.com", true */ 'g', 'r', 'a', 'v', 'i', 't', 'e', 'c', 'h', 't', 'h', 'a', 'i', '.', 'c', 'o', 'm', '\0',
   /* "gravito.nl", true */ 'g', 'r', 'a', 'v', 'i', 't', 'o', '.', 'n', 'l', '\0',
   /* "gravity-dev.de", true */ 'g', 'r', 'a', 'v', 'i', 't', 'y', '-', 'd', 'e', 'v', '.', 'd', 'e', '\0',
+  /* "graycell.net", true */ 'g', 'r', 'a', 'y', 'c', 'e', 'l', 'l', '.', 'n', 'e', 't', '\0',
   /* "graymalk.in", true */ 'g', 'r', 'a', 'y', 'm', 'a', 'l', 'k', '.', 'i', 'n', '\0',
   /* "grc.com", false */ 'g', 'r', 'c', '.', 'c', 'o', 'm', '\0',
   /* "grcnode.co.uk", true */ 'g', 'r', 'c', 'n', 'o', 'd', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "greatfire.org", true */ 'g', 'r', 'e', 'a', 't', 'f', 'i', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "greatnet.de", true */ 'g', 'r', 'e', 'a', 't', 'n', 'e', 't', '.', 'd', 'e', '\0',
   /* "greedbutt.com", true */ 'g', 'r', 'e', 'e', 'd', 'b', 'u', 't', 't', '.', 'c', 'o', 'm', '\0',
   /* "greek.dating", true */ 'g', 'r', 'e', 'e', 'k', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "green-attitude.be", true */ 'g', 'r', 'e', 'e', 'n', '-', 'a', 't', 't', 'i', 't', 'u', 'd', 'e', '.', 'b', 'e', '\0',
@@ -5128,16 +5132,17 @@ static const char kSTSHostTable[] = {
   /* "groth.im", true */ 'g', 'r', 'o', 't', 'h', '.', 'i', 'm', '\0',
   /* "groth.xyz", true */ 'g', 'r', 'o', 't', 'h', '.', 'x', 'y', 'z', '\0',
   /* "groupebaillargeon.com", true */ 'g', 'r', 'o', 'u', 'p', 'e', 'b', 'a', 'i', 'l', 'l', 'a', 'r', 'g', 'e', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "groupme.com", true */ 'g', 'r', 'o', 'u', 'p', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "groups.google.com", true */ 'g', 'r', 'o', 'u', 'p', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "grozip.com", true */ 'g', 'r', 'o', 'z', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "grsecurity.net", true */ 'g', 'r', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'n', 'e', 't', '\0',
   /* "gruelang.org", true */ 'g', 'r', 'u', 'e', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '\0',
+  /* "grunwasser.fr", true */ 'g', 'r', 'u', 'n', 'w', 'a', 's', 's', 'e', 'r', '.', 'f', 'r', '\0',
   /* "grupopgn.com.br", true */ 'g', 'r', 'u', 'p', 'o', 'p', 'g', 'n', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "grusig-geil.ch", true */ 'g', 'r', 'u', 's', 'i', 'g', '-', 'g', 'e', 'i', 'l', '.', 'c', 'h', '\0',
   /* "grytics.com", true */ 'g', 'r', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "gs-net.at", true */ 'g', 's', '-', 'n', 'e', 't', '.', 'a', 't', '\0',
   /* "gsimagebank.co.uk", true */ 'g', 's', 'i', 'm', 'a', 'g', 'e', 'b', 'a', 'n', 'k', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "gsnort.com", true */ 'g', 's', 'n', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "gsrc.io", true */ 'g', 's', 'r', 'c', '.', 'i', 'o', '\0',
   /* "gswtech.eu", true */ 'g', 's', 'w', 't', 'e', 'c', 'h', '.', 'e', 'u', '\0',
@@ -5221,16 +5226,17 @@ static const char kSTSHostTable[] = {
   /* "hackenturet.dk", true */ 'h', 'a', 'c', 'k', 'e', 'n', 't', 'u', 'r', 'e', 't', '.', 'd', 'k', '\0',
   /* "hacker.parts", true */ 'h', 'a', 'c', 'k', 'e', 'r', '.', 'p', 'a', 'r', 't', 's', '\0',
   /* "hacker1.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', '1', '.', 'c', 'o', 'm', '\0',
   /* "hackerchai.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'c', 'h', 'a', 'i', '.', 'c', 'o', 'm', '\0',
   /* "hackernet.se", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'n', 'e', 't', '.', 's', 'e', '\0',
   /* "hackerone-user-content.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '-', 'u', 's', 'e', 'r', '-', 'c', 'o', 'n', 't', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "hackerone.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hackerpoints.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'p', 'o', 'i', 'n', 't', 's', '.', 'c', 'o', 'm', '\0',
+  /* "hackerspace-ntnu.no", true */ 'h', 'a', 'c', 'k', 'e', 'r', 's', 'p', 'a', 'c', 'e', '-', 'n', 't', 'n', 'u', '.', 'n', 'o', '\0',
   /* "hackerstxt.org", true */ 'h', 'a', 'c', 'k', 'e', 'r', 's', 't', 'x', 't', '.', 'o', 'r', 'g', '\0',
   /* "hackest.org", true */ 'h', 'a', 'c', 'k', 'e', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "hackmd.io", true */ 'h', 'a', 'c', 'k', 'm', 'd', '.', 'i', 'o', '\0',
   /* "hacksnack.io", true */ 'h', 'a', 'c', 'k', 's', 'n', 'a', 'c', 'k', '.', 'i', 'o', '\0',
   /* "hackthissite.org", true */ 'h', 'a', 'c', 'k', 't', 'h', 'i', 's', 's', 'i', 't', 'e', '.', 'o', 'r', 'g', '\0',
   /* "hacktivis.me", true */ 'h', 'a', 'c', 'k', 't', 'i', 'v', 'i', 's', '.', 'm', 'e', '\0',
   /* "hadaf.pro", true */ 'h', 'a', 'd', 'a', 'f', '.', 'p', 'r', 'o', '\0',
   /* "hadleighswimmingclub.co.uk", true */ 'h', 'a', 'd', 'l', 'e', 'i', 'g', 'h', 's', 'w', 'i', 'm', 'm', 'i', 'n', 'g', 'c', 'l', 'u', 'b', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -5426,24 +5432,24 @@ static const char kSTSHostTable[] = {
   /* "henok.eu", true */ 'h', 'e', 'n', 'o', 'k', '.', 'e', 'u', '\0',
   /* "henriksen.is", true */ 'h', 'e', 'n', 'r', 'i', 'k', 's', 'e', 'n', '.', 'i', 's', '\0',
   /* "henrock.net", true */ 'h', 'e', 'n', 'r', 'o', 'c', 'k', '.', 'n', 'e', 't', '\0',
   /* "henryphan.com", false */ 'h', 'e', 'n', 'r', 'y', 'p', 'h', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "hentschke-bau.de", true */ 'h', 'e', 'n', 't', 's', 'c', 'h', 'k', 'e', '-', 'b', 'a', 'u', '.', 'd', 'e', '\0',
   /* "hentschke-betonfertigteilwerk.de", true */ 'h', 'e', 'n', 't', 's', 'c', 'h', 'k', 'e', '-', 'b', 'e', 't', 'o', 'n', 'f', 'e', 'r', 't', 'i', 'g', 't', 'e', 'i', 'l', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "hentschke-invest.de", true */ 'h', 'e', 'n', 't', 's', 'c', 'h', 'k', 'e', '-', 'i', 'n', 'v', 'e', 's', 't', '.', 'd', 'e', '\0',
   /* "heppler.net", true */ 'h', 'e', 'p', 'p', 'l', 'e', 'r', '.', 'n', 'e', 't', '\0',
+  /* "hepteract.us", true */ 'h', 'e', 'p', 't', 'e', 'r', 'a', 'c', 't', '.', 'u', 's', '\0',
   /* "herbandpat.org", true */ 'h', 'e', 'r', 'b', 'a', 'n', 'd', 'p', 'a', 't', '.', 'o', 'r', 'g', '\0',
   /* "herbert.io", true */ 'h', 'e', 'r', 'b', 'e', 'r', 't', '.', 'i', 'o', '\0',
   /* "herbertmouwen.nl", true */ 'h', 'e', 'r', 'b', 'e', 'r', 't', 'm', 'o', 'u', 'w', 'e', 'n', '.', 'n', 'l', '\0',
   /* "herbweb.net", true */ 'h', 'e', 'r', 'b', 'w', 'e', 'b', '.', 'n', 'e', 't', '\0',
   /* "herbweb.org", true */ 'h', 'e', 'r', 'b', 'w', 'e', 'b', '.', 'o', 'r', 'g', '\0',
   /* "herds.eu", true */ 'h', 'e', 'r', 'd', 's', '.', 'e', 'u', '\0',
   /* "herebedragons.io", true */ 'h', 'e', 'r', 'e', 'b', 'e', 'd', 'r', 'a', 'g', 'o', 'n', 's', '.', 'i', 'o', '\0',
-  /* "heritagedentistry.ca", true */ 'h', 'e', 'r', 'i', 't', 'a', 'g', 'e', 'd', 'e', 'n', 't', 'i', 's', 't', 'r', 'y', '.', 'c', 'a', '\0',
   /* "herocentral.de", true */ 'h', 'e', 'r', 'o', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'd', 'e', '\0',
   /* "herr-webdesign.de", true */ 'h', 'e', 'r', 'r', '-', 'w', 'e', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'd', 'e', '\0',
   /* "herrenfahrt.com", true */ 'h', 'e', 'r', 'r', 'e', 'n', 'f', 'a', 'h', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "herringsresidence.be", true */ 'h', 'e', 'r', 'r', 'i', 'n', 'g', 's', 'r', 'e', 's', 'i', 'd', 'e', 'n', 'c', 'e', '.', 'b', 'e', '\0',
   /* "herrsmith.com", true */ 'h', 'e', 'r', 'r', 's', 'm', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "hesaplama.net", true */ 'h', 'e', 's', 'a', 'p', 'l', 'a', 'm', 'a', '.', 'n', 'e', 't', '\0',
   /* "hethely.ch", true */ 'h', 'e', 't', 'h', 'e', 'l', 'y', '.', 'c', 'h', '\0',
   /* "hetmer.com", true */ 'h', 'e', 't', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -5501,16 +5507,17 @@ static const char kSTSHostTable[] = {
   /* "hjortland.org", true */ 'h', 'j', 'o', 'r', 't', 'l', 'a', 'n', 'd', '.', 'o', 'r', 'g', '\0',
   /* "hjw-kunstwerk.de", true */ 'h', 'j', 'w', '-', 'k', 'u', 'n', 's', 't', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "hk.search.yahoo.com", false */ 'h', 'k', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "hkdobrev.com", true */ 'h', 'k', 'd', 'o', 'b', 'r', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "hlavacek.us", true */ 'h', 'l', 'a', 'v', 'a', 'c', 'e', 'k', '.', 'u', 's', '\0',
   /* "hledejlevne.cz", true */ 'h', 'l', 'e', 'd', 'e', 'j', 'l', 'e', 'v', 'n', 'e', '.', 'c', 'z', '\0',
   /* "hledejpravnika.cz", true */ 'h', 'l', 'e', 'd', 'e', 'j', 'p', 'r', 'a', 'v', 'n', 'i', 'k', 'a', '.', 'c', 'z', '\0',
   /* "hlfh.space", true */ 'h', 'l', 'f', 'h', '.', 's', 'p', 'a', 'c', 'e', '\0',
+  /* "hm1ch.com", true */ 'h', 'm', '1', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "hmhotelec.com", true */ 'h', 'm', 'h', 'o', 't', 'e', 'l', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "hmoegirl.com", true */ 'h', 'm', 'o', 'e', 'g', 'i', 'r', 'l', '.', 'c', 'o', 'm', '\0',
   /* "hmsseahawk.com", true */ 'h', 'm', 's', 's', 'e', 'a', 'h', 'a', 'w', 'k', '.', 'c', 'o', 'm', '\0',
   /* "hobbiesandotherstuff.com", true */ 'h', 'o', 'b', 'b', 'i', 'e', 's', 'a', 'n', 'd', 'o', 't', 'h', 'e', 'r', 's', 't', 'u', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "hobby-gamerz-community.de", true */ 'h', 'o', 'b', 'b', 'y', '-', 'g', 'a', 'm', 'e', 'r', 'z', '-', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '.', 'd', 'e', '\0',
   /* "hobbyspeed.com", true */ 'h', 'o', 'b', 'b', 'y', 's', 'p', 'e', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "hochhaus.us", true */ 'h', 'o', 'c', 'h', 'h', 'a', 'u', 's', '.', 'u', 's', '\0',
   /* "hochzeit-dana-laurens.de", true */ 'h', 'o', 'c', 'h', 'z', 'e', 'i', 't', '-', 'd', 'a', 'n', 'a', '-', 'l', 'a', 'u', 'r', 'e', 'n', 's', '.', 'd', 'e', '\0',
@@ -5526,17 +5533,16 @@ static const char kSTSHostTable[] = {
   /* "holmesian.org", true */ 'h', 'o', 'l', 'm', 'e', 's', 'i', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "holo.ovh", true */ 'h', 'o', 'l', 'o', '.', 'o', 'v', 'h', '\0',
   /* "holofono.com", true */ 'h', 'o', 'l', 'o', 'f', 'o', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "holowaty.me", true */ 'h', 'o', 'l', 'o', 'w', 'a', 't', 'y', '.', 'm', 'e', '\0',
   /* "holyhiphopdatabase.com", true */ 'h', 'o', 'l', 'y', 'h', 'i', 'p', 'h', 'o', 'p', 'd', 'a', 't', 'a', 'b', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "holzheizer-forum.de", true */ 'h', 'o', 'l', 'z', 'h', 'e', 'i', 'z', 'e', 'r', '-', 'f', 'o', 'r', 'u', 'm', '.', 'd', 'e', '\0',
   /* "holzheizerforum.de", true */ 'h', 'o', 'l', 'z', 'h', 'e', 'i', 'z', 'e', 'r', 'f', 'o', 'r', 'u', 'm', '.', 'd', 'e', '\0',
   /* "holzvergaser-forum.de", true */ 'h', 'o', 'l', 'z', 'v', 'e', 'r', 'g', 'a', 's', 'e', 'r', '-', 'f', 'o', 'r', 'u', 'm', '.', 'd', 'e', '\0',
-  /* "homads.com", false */ 'h', 'o', 'm', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "home-v.ind.in", true */ 'h', 'o', 'm', 'e', '-', 'v', '.', 'i', 'n', 'd', '.', 'i', 'n', '\0',
   /* "homebodyalberta.com", true */ 'h', 'o', 'm', 'e', 'b', 'o', 'd', 'y', 'a', 'l', 'b', 'e', 'r', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "homecareassociatespa.com", true */ 'h', 'o', 'm', 'e', 'c', 'a', 'r', 'e', 'a', 's', 's', 'o', 'c', 'i', 'a', 't', 'e', 's', 'p', 'a', '.', 'c', 'o', 'm', '\0',
   /* "homecoming.city", true */ 'h', 'o', 'm', 'e', 'c', 'o', 'm', 'i', 'n', 'g', '.', 'c', 'i', 't', 'y', '\0',
   /* "homedna.com", true */ 'h', 'o', 'm', 'e', 'd', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "homeexx.com", true */ 'h', 'o', 'm', 'e', 'e', 'x', 'x', '.', 'c', 'o', 'm', '\0',
   /* "homehuntertoronto.com", true */ 'h', 'o', 'm', 'e', 'h', 'u', 'n', 't', 'e', 'r', 't', 'o', 'r', 'o', 'n', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "homehunting.pt", true */ 'h', 'o', 'm', 'e', 'h', 'u', 'n', 't', 'i', 'n', 'g', '.', 'p', 't', '\0',
@@ -5573,52 +5579,51 @@ static const char kSTSHostTable[] = {
   /* "horstmanshof.eu", true */ 'h', 'o', 'r', 's', 't', 'm', 'a', 'n', 's', 'h', 'o', 'f', '.', 'e', 'u', '\0',
   /* "horvathd.eu", false */ 'h', 'o', 'r', 'v', 'a', 't', 'h', 'd', '.', 'e', 'u', '\0',
   /* "horvathtom.com", true */ 'h', 'o', 'r', 'v', 'a', 't', 'h', 't', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "hory.me", true */ 'h', 'o', 'r', 'y', '.', 'm', 'e', '\0',
   /* "horza.org", true */ 'h', 'o', 'r', 'z', 'a', '.', 'o', 'r', 'g', '\0',
   /* "hoshinplan.com", true */ 'h', 'o', 's', 'h', 'i', 'n', 'p', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "hoshisato.com", true */ 'h', 'o', 's', 'h', 'i', 's', 'a', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "hosiet.me", true */ 'h', 'o', 's', 'i', 'e', 't', '.', 'm', 'e', '\0',
-  /* "hosmussynergie.nl", true */ 'h', 'o', 's', 'm', 'u', 's', 's', 'y', 'n', 'e', 'r', 'g', 'i', 'e', '.', 'n', 'l', '\0',
   /* "hospitalhomelottery.org", true */ 'h', 'o', 's', 'p', 'i', 't', 'a', 'l', 'h', 'o', 'm', 'e', 'l', 'o', 't', 't', 'e', 'r', 'y', '.', 'o', 'r', 'g', '\0',
   /* "hostam.link", true */ 'h', 'o', 's', 't', 'a', 'm', '.', 'l', 'i', 'n', 'k', '\0',
   /* "hostanalyticsconsulting.com", true */ 'h', 'o', 's', 't', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "hosteasy.nl", true */ 'h', 'o', 's', 't', 'e', 'a', 's', 'y', '.', 'n', 'l', '\0',
   /* "hosted-oswa.org", true */ 'h', 'o', 's', 't', 'e', 'd', '-', 'o', 's', 'w', 'a', '.', 'o', 'r', 'g', '\0',
   /* "hosted4u.de", true */ 'h', 'o', 's', 't', 'e', 'd', '4', 'u', '.', 'd', 'e', '\0',
+  /* "hostedbgp.net", true */ 'h', 'o', 's', 't', 'e', 'd', 'b', 'g', 'p', '.', 'n', 'e', 't', '\0',
   /* "hostedtalkgadget.google.com", true */ 'h', 'o', 's', 't', 'e', 'd', 't', 'a', 'l', 'k', 'g', 'a', 'd', 'g', 'e', 't', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hostelite.com", true */ 'h', 'o', 's', 't', 'e', 'l', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hostfission.com", true */ 'h', 'o', 's', 't', 'f', 'i', 's', 's', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "hostingactive.it", true */ 'h', 'o', 's', 't', 'i', 'n', 'g', 'a', 'c', 't', 'i', 'v', 'e', '.', 'i', 't', '\0',
   /* "hostingfj.com", true */ 'h', 'o', 's', 't', 'i', 'n', 'g', 'f', 'j', '.', 'c', 'o', 'm', '\0',
   /* "hostinghelp.guru", true */ 'h', 'o', 's', 't', 'i', 'n', 'g', 'h', 'e', 'l', 'p', '.', 'g', 'u', 'r', 'u', '\0',
   /* "hostinginnederland.nl", true */ 'h', 'o', 's', 't', 'i', 'n', 'g', 'i', 'n', 'n', 'e', 'd', 'e', 'r', 'l', 'a', 'n', 'd', '.', 'n', 'l', '\0',
   /* "hostix.de", true */ 'h', 'o', 's', 't', 'i', 'x', '.', 'd', 'e', '\0',
   /* "hostmijnpagina.nl", true */ 'h', 'o', 's', 't', 'm', 'i', 'j', 'n', 'p', 'a', 'g', 'i', 'n', 'a', '.', 'n', 'l', '\0',
   /* "hotchillibox.co.za", true */ 'h', 'o', 't', 'c', 'h', 'i', 'l', 'l', 'i', 'b', 'o', 'x', '.', 'c', 'o', '.', 'z', 'a', '\0',
-  /* "hotel-kronjuwel.de", false */ 'h', 'o', 't', 'e', 'l', '-', 'k', 'r', 'o', 'n', 'j', 'u', 'w', 'e', 'l', '.', 'd', 'e', '\0',
+  /* "hotel-kronjuwel.de", true */ 'h', 'o', 't', 'e', 'l', '-', 'k', 'r', 'o', 'n', 'j', 'u', 'w', 'e', 'l', '.', 'd', 'e', '\0',
   /* "hotel-pension-sonnalp.eu", true */ 'h', 'o', 't', 'e', 'l', '-', 'p', 'e', 'n', 's', 'i', 'o', 'n', '-', 's', 'o', 'n', 'n', 'a', 'l', 'p', '.', 'e', 'u', '\0',
   /* "hotel-tongruben.de", true */ 'h', 'o', 't', 'e', 'l', '-', 't', 'o', 'n', 'g', 'r', 'u', 'b', 'e', 'n', '.', 'd', 'e', '\0',
-  /* "hotelident.de", false */ 'h', 'o', 't', 'e', 'l', 'i', 'd', 'e', 'n', 't', '.', 'd', 'e', '\0',
+  /* "hotelident.de", true */ 'h', 'o', 't', 'e', 'l', 'i', 'd', 'e', 'n', 't', '.', 'd', 'e', '\0',
   /* "hotelmap.com", true */ 'h', 'o', 't', 'e', 'l', 'm', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "hotelvictoriaoax-mailing.com", true */ 'h', 'o', 't', 'e', 'l', 'v', 'i', 'c', 't', 'o', 'r', 'i', 'a', 'o', 'a', 'x', '-', 'm', 'a', 'i', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "hotelvillahermosa-mailing.com", true */ 'h', 'o', 't', 'e', 'l', 'v', 'i', 'l', 'l', 'a', 'h', 'e', 'r', 'm', 'o', 's', 'a', '-', 'm', 'a', 'i', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "hotelvue.nl", true */ 'h', 'o', 't', 'e', 'l', 'v', 'u', 'e', '.', 'n', 'l', '\0',
   /* "hoton.in", true */ 'h', 'o', 't', 'o', 'n', '.', 'i', 'n', '\0',
   /* "hotornot.com", true */ 'h', 'o', 't', 'o', 'r', 'n', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "hotplug.gr", true */ 'h', 'o', 't', 'p', 'l', 'u', 'g', '.', 'g', 'r', '\0',
   /* "houser.lu", true */ 'h', 'o', 'u', 's', 'e', 'r', '.', 'l', 'u', '\0',
   /* "howardtyson.com", true */ 'h', 'o', 'w', 'a', 'r', 'd', 't', 'y', 's', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "howbehealthy.com", true */ 'h', 'o', 'w', 'b', 'e', 'h', 'e', 'a', 'l', 't', 'h', 'y', '.', 'c', 'o', 'm', '\0',
   /* "howlongtobeatsteam.com", true */ 'h', 'o', 'w', 'l', 'o', 'n', 'g', 't', 'o', 'b', 'e', 'a', 't', 's', 't', 'e', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "howsecureismypassword.net", true */ 'h', 'o', 'w', 's', 'e', 'c', 'u', 'r', 'e', 'i', 's', 'm', 'y', 'p', 'a', 's', 's', 'w', 'o', 'r', 'd', '.', 'n', 'e', 't', '\0',
   /* "howsmyssl.com", true */ 'h', 'o', 'w', 's', 'm', 'y', 's', 's', 'l', '.', 'c', 'o', 'm', '\0',
   /* "howsmytls.com", true */ 'h', 'o', 'w', 's', 'm', 'y', 't', 'l', 's', '.', 'c', 'o', 'm', '\0',
-  /* "howtocuremysciatica.com", true */ 'h', 'o', 'w', 't', 'o', 'c', 'u', 'r', 'e', 'm', 'y', 's', 'c', 'i', 'a', 't', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "hozana.si", false */ 'h', 'o', 'z', 'a', 'n', 'a', '.', 's', 'i', '\0',
   /* "hpac-portal.com", true */ 'h', 'p', 'a', 'c', '-', 'p', 'o', 'r', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "hpbn.co", true */ 'h', 'p', 'b', 'n', '.', 'c', 'o', '\0',
   /* "hpisavageforum.com", true */ 'h', 'p', 'i', 's', 'a', 'v', 'a', 'g', 'e', 'f', 'o', 'r', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "hpkp-faq.de", true */ 'h', 'p', 'k', 'p', '-', 'f', 'a', 'q', '.', 'd', 'e', '\0',
   /* "hqhost.net", true */ 'h', 'q', 'h', 'o', 's', 't', '.', 'n', 'e', 't', '\0',
   /* "hrackydomino.cz", true */ 'h', 'r', 'a', 'c', 'k', 'y', 'd', 'o', 'm', 'i', 'n', 'o', '.', 'c', 'z', '\0',
   /* "hraesvelg.net", true */ 'h', 'r', 'a', 'e', 's', 'v', 'e', 'l', 'g', '.', 'n', 'e', 't', '\0',
@@ -5814,16 +5819,17 @@ static const char kSTSHostTable[] = {
   /* "iltisim.ch", true */ 'i', 'l', 't', 'i', 's', 'i', 'm', '.', 'c', 'h', '\0',
   /* "im-c-shop.com", true */ 'i', 'm', '-', 'c', '-', 's', 'h', 'o', 'p', '.', 'c', 'o', 'm', '\0',
   /* "im2net.com", true */ 'i', 'm', '2', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "imagefu.com", true */ 'i', 'm', 'a', 'g', 'e', 'f', 'u', '.', 'c', 'o', 'm', '\0',
   /* "imagescostumes.com", true */ 'i', 'm', 'a', 'g', 'e', 's', 'c', 'o', 's', 't', 'u', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "imaginary.ca", true */ 'i', 'm', 'a', 'g', 'i', 'n', 'a', 'r', 'y', '.', 'c', 'a', '\0',
   /* "imagr.io", true */ 'i', 'm', 'a', 'g', 'r', '.', 'i', 'o', '\0',
   /* "imakepoems.net", true */ 'i', 'm', 'a', 'k', 'e', 'p', 'o', 'e', 'm', 's', '.', 'n', 'e', 't', '\0',
+  /* "imanolbarba.net", true */ 'i', 'm', 'a', 'n', 'o', 'l', 'b', 'a', 'r', 'b', 'a', '.', 'n', 'e', 't', '\0',
   /* "imanudin.net", true */ 'i', 'm', 'a', 'n', 'u', 'd', 'i', 'n', '.', 'n', 'e', 't', '\0',
   /* "imbrian.org", true */ 'i', 'm', 'b', 'r', 'i', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "imbushuo.net", true */ 'i', 'm', 'b', 'u', 's', 'h', 'u', 'o', '.', 'n', 'e', 't', '\0',
   /* "imed.pt", true */ 'i', 'm', 'e', 'd', '.', 'p', 't', '\0',
   /* "imedi.co.uk", true */ 'i', 'm', 'e', 'd', 'i', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "imedi.it", true */ 'i', 'm', 'e', 'd', 'i', '.', 'i', 't', '\0',
   /* "imedikament.de", true */ 'i', 'm', 'e', 'd', 'i', 'k', 'a', 'm', 'e', 'n', 't', '.', 'd', 'e', '\0',
   /* "imeds.pl", true */ 'i', 'm', 'e', 'd', 's', '.', 'p', 'l', '\0',
@@ -5865,17 +5871,17 @@ static const char kSTSHostTable[] = {
   /* "inabox.ro", true */ 'i', 'n', 'a', 'b', 'o', 'x', '.', 'r', 'o', '\0',
   /* "inbitcoin.it", true */ 'i', 'n', 'b', 'i', 't', 'c', 'o', 'i', 'n', '.', 'i', 't', '\0',
   /* "inbounder.io", true */ 'i', 'n', 'b', 'o', 'u', 'n', 'd', 'e', 'r', '.', 'i', 'o', '\0',
   /* "inbox-group.com", true */ 'i', 'n', 'b', 'o', 'x', '-', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "inbox.google.com", true */ 'i', 'n', 'b', 'o', 'x', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "inboxen.org", true */ 'i', 'n', 'b', 'o', 'x', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "incendiary-arts.com", true */ 'i', 'n', 'c', 'e', 'n', 'd', 'i', 'a', 'r', 'y', '-', 'a', 'r', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "inche-ali.com", true */ 'i', 'n', 'c', 'h', 'e', '-', 'a', 'l', 'i', '.', 'c', 'o', 'm', '\0',
-  /* "inconcerts.de", false */ 'i', 'n', 'c', 'o', 'n', 'c', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
+  /* "inconcerts.de", true */ 'i', 'n', 'c', 'o', 'n', 'c', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
   /* "incparadise.net", true */ 'i', 'n', 'c', 'p', 'a', 'r', 'a', 'd', 'i', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "incubos.org", true */ 'i', 'n', 'c', 'u', 'b', 'o', 's', '.', 'o', 'r', 'g', '\0',
   /* "indicateurs-flash.fr", true */ 'i', 'n', 'd', 'i', 'c', 'a', 't', 'e', 'u', 'r', 's', '-', 'f', 'l', 'a', 's', 'h', '.', 'f', 'r', '\0',
   /* "indiecert.net", false */ 'i', 'n', 'd', 'i', 'e', 'c', 'e', 'r', 't', '.', 'n', 'e', 't', '\0',
   /* "indievelopment.nl", true */ 'i', 'n', 'd', 'i', 'e', 'v', 'e', 'l', 'o', 'p', 'm', 'e', 'n', 't', '.', 'n', 'l', '\0',
   /* "indigosakura.com", true */ 'i', 'n', 'd', 'i', 'g', 'o', 's', 'a', 'k', 'u', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "inditip.com", true */ 'i', 'n', 'd', 'i', 't', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "indovinabank.com.vn", true */ 'i', 'n', 'd', 'o', 'v', 'i', 'n', 'a', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '.', 'v', 'n', '\0',
@@ -5945,16 +5951,17 @@ static const char kSTSHostTable[] = {
   /* "instela.com", true */ 'i', 'n', 's', 't', 'e', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "instics.com", true */ 'i', 'n', 's', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "instinctiveads.com", true */ 'i', 'n', 's', 't', 'i', 'n', 'c', 't', 'i', 'v', 'e', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "institut-confucius-montpellier.org", true */ 'i', 'n', 's', 't', 'i', 't', 'u', 't', '-', 'c', 'o', 'n', 'f', 'u', 'c', 'i', 'u', 's', '-', 'm', 'o', 'n', 't', 'p', 'e', 'l', 'l', 'i', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "institutolancaster.com", true */ 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'o', 'l', 'a', 'n', 'c', 'a', 's', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "insurance321.com", true */ 'i', 'n', 's', 'u', 'r', 'a', 'n', 'c', 'e', '3', '2', '1', '.', 'c', 'o', 'm', '\0',
   /* "intafe.co.jp", true */ 'i', 'n', 't', 'a', 'f', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "intarweb.ca", true */ 'i', 'n', 't', 'a', 'r', 'w', 'e', 'b', '.', 'c', 'a', '\0',
+  /* "integraelchen.de", true */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 'e', 'l', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "integrationinc.com", false */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 't', 'i', 'o', 'n', 'i', 'n', 'c', '.', 'c', 'o', 'm', '\0',
   /* "integraxor.com.tw", true */ 'i', 'n', 't', 'e', 'g', 'r', 'a', 'x', 'o', 'r', '.', 'c', 'o', 'm', '.', 't', 'w', '\0',
   /* "integrityingovernmentidaho.com", true */ 'i', 'n', 't', 'e', 'g', 'r', 'i', 't', 'y', 'i', 'n', 'g', 'o', 'v', 'e', 'r', 'n', 'm', 'e', 'n', 't', 'i', 'd', 'a', 'h', 'o', '.', 'c', 'o', 'm', '\0',
   /* "integromat.com", true */ 'i', 'n', 't', 'e', 'g', 'r', 'o', 'm', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "intellectdynamics.com", true */ 'i', 'n', 't', 'e', 'l', 'l', 'e', 'c', 't', 'd', 'y', 'n', 'a', 'm', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "intencje.pl", true */ 'i', 'n', 't', 'e', 'n', 'c', 'j', 'e', '.', 'p', 'l', '\0',
   /* "interaffairs.com", true */ 'i', 'n', 't', 'e', 'r', 'a', 'f', 'f', 'a', 'i', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "interasistmen.se", true */ 'i', 'n', 't', 'e', 'r', 'a', 's', 'i', 's', 't', 'm', 'e', 'n', '.', 's', 'e', '\0',
@@ -5974,17 +5981,17 @@ static const char kSTSHostTable[] = {
   /* "internetofdon.gs", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'o', 'f', 'd', 'o', 'n', '.', 'g', 's', '\0',
   /* "internetpro.me", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'p', 'r', 'o', '.', 'm', 'e', '\0',
   /* "internetstaff.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 's', 't', 'a', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "internetzentrale.net", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'z', 'e', 'n', 't', 'r', 'a', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "interociter-enterprises.com", true */ 'i', 'n', 't', 'e', 'r', 'o', 'c', 'i', 't', 'e', 'r', '-', 'e', 'n', 't', 'e', 'r', 'p', 'r', 'i', 's', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "interviewpipeline.co.uk", true */ 'i', 'n', 't', 'e', 'r', 'v', 'i', 'e', 'w', 'p', 'i', 'p', 'e', 'l', 'i', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "intervisteperstrada.com", true */ 'i', 'n', 't', 'e', 'r', 'v', 'i', 's', 't', 'e', 'p', 'e', 'r', 's', 't', 'r', 'a', 'd', 'a', '.', 'c', 'o', 'm', '\0',
   /* "interways.de", true */ 'i', 'n', 't', 'e', 'r', 'w', 'a', 'y', 's', '.', 'd', 'e', '\0',
-  /* "intheater.de", false */ 'i', 'n', 't', 'h', 'e', 'a', 't', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "intheater.de", true */ 'i', 'n', 't', 'h', 'e', 'a', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "inthepicture.com", true */ 'i', 'n', 't', 'h', 'e', 'p', 'i', 'c', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "inthouse.cloud", true */ 'i', 'n', 't', 'h', 'o', 'u', 's', 'e', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "intimateperrierjouet.com", true */ 'i', 'n', 't', 'i', 'm', 'a', 't', 'e', 'p', 'e', 'r', 'r', 'i', 'e', 'r', 'j', 'o', 'u', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "intocities.de", false */ 'i', 'n', 't', 'o', 'c', 'i', 't', 'i', 'e', 's', '.', 'd', 'e', '\0',
   /* "inton.biz", true */ 'i', 'n', 't', 'o', 'n', '.', 'b', 'i', 'z', '\0',
   /* "intramanager.co.uk", true */ 'i', 'n', 't', 'r', 'a', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "intramanager.dk", true */ 'i', 'n', 't', 'r', 'a', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'd', 'k', '\0',
   /* "intranetsec-regionra.fr", true */ 'i', 'n', 't', 'r', 'a', 'n', 'e', 't', 's', 'e', 'c', '-', 'r', 'e', 'g', 'i', 'o', 'n', 'r', 'a', '.', 'f', 'r', '\0',
@@ -6147,16 +6154,17 @@ static const char kSTSHostTable[] = {
   /* "itsg-faq.de", true */ 'i', 't', 's', 'g', '-', 'f', 'a', 'q', '.', 'd', 'e', '\0',
   /* "itskayla.com", true */ 'i', 't', 's', 'k', 'a', 'y', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "itsok.de", true */ 'i', 't', 's', 'o', 'k', '.', 'd', 'e', '\0',
   /* "itspawned.com", true */ 'i', 't', 's', 'p', 'a', 'w', 'n', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "itspersonaltraining.nl", true */ 'i', 't', 's', 'p', 'e', 'r', 's', 'o', 'n', 'a', 'l', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "itsryan.com", true */ 'i', 't', 's', 'r', 'y', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "itu2015.de", true */ 'i', 't', 'u', '2', '0', '1', '5', '.', 'd', 'e', '\0',
   /* "iuscommunity.org", true */ 'i', 'u', 's', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
+  /* "ivancacic.com", true */ 'i', 'v', 'a', 'n', 'c', 'a', 'c', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "ivi-fertilite.fr", true */ 'i', 'v', 'i', '-', 'f', 'e', 'r', 't', 'i', 'l', 'i', 't', 'e', '.', 'f', 'r', '\0',
   /* "ivi-fruchtbarkeit.de", true */ 'i', 'v', 'i', '-', 'f', 'r', 'u', 'c', 'h', 't', 'b', 'a', 'r', 'k', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "ivi.com.ar", true */ 'i', 'v', 'i', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "ivi.com.pa", true */ 'i', 'v', 'i', '.', 'c', 'o', 'm', '.', 'p', 'a', '\0',
   /* "ivi.mx", true */ 'i', 'v', 'i', '.', 'm', 'x', '\0',
   /* "ivi.net.br", true */ 'i', 'v', 'i', '.', 'n', 'e', 't', '.', 'b', 'r', '\0',
   /* "ivi.pt", true */ 'i', 'v', 'i', '.', 'p', 't', '\0',
   /* "ivinet.cl", true */ 'i', 'v', 'i', 'n', 'e', 't', '.', 'c', 'l', '\0',
@@ -6278,17 +6286,16 @@ static const char kSTSHostTable[] = {
   /* "jaymecd.rocks", true */ 'j', 'a', 'y', 'm', 'e', 'c', 'd', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "jayxon.com", true */ 'j', 'a', 'y', 'x', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "jayxu.com", true */ 'j', 'a', 'y', 'x', 'u', '.', 'c', 'o', 'm', '\0',
   /* "jazz-alliance.com", true */ 'j', 'a', 'z', 'z', '-', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "jazz-alliance.org", true */ 'j', 'a', 'z', 'z', '-', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "jazzanet.com", true */ 'j', 'a', 'z', 'z', 'a', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "jazzncheese.com", true */ 'j', 'a', 'z', 'z', 'n', 'c', 'h', 'e', 'e', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "jcaicedo.tk", true */ 'j', 'c', 'a', 'i', 'c', 'e', 'd', 'o', '.', 't', 'k', '\0',
-  /* "jccrew.org", true */ 'j', 'c', 'c', 'r', 'e', 'w', '.', 'o', 'r', 'g', '\0',
   /* "jcoscia.com", true */ 'j', 'c', 'o', 's', 'c', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "jcraft.us", true */ 'j', 'c', 'r', 'a', 'f', 't', '.', 'u', 's', '\0',
   /* "jcyz.cf", true */ 'j', 'c', 'y', 'z', '.', 'c', 'f', '\0',
   /* "jdav-leipzig.de", true */ 'j', 'd', 'a', 'v', '-', 'l', 'e', 'i', 'p', 'z', 'i', 'g', '.', 'd', 'e', '\0',
   /* "jdcgroup.com.ph", true */ 'j', 'd', 'c', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '.', 'p', 'h', '\0',
   /* "jdh8.org", true */ 'j', 'd', 'h', '8', '.', 'o', 'r', 'g', '\0',
   /* "jdubya.info", true */ 'j', 'd', 'u', 'b', 'y', 'a', '.', 'i', 'n', 'f', 'o', '\0',
   /* "jean-remy.ch", true */ 'j', 'e', 'a', 'n', '-', 'r', 'e', 'm', 'y', '.', 'c', 'h', '\0',
@@ -6360,17 +6367,16 @@ static const char kSTSHostTable[] = {
   /* "jlhmedia.com", true */ 'j', 'l', 'h', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "jlkhosting.com", true */ 'j', 'l', 'k', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "jmedved.com", true */ 'j', 'm', 'e', 'd', 'v', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "jmk.hu", true */ 'j', 'm', 'k', '.', 'h', 'u', '\0',
   /* "jn1.me", true */ 'j', 'n', '1', '.', 'm', 'e', '\0',
   /* "jncde.de", true */ 'j', 'n', 'c', 'd', 'e', '.', 'd', 'e', '\0',
   /* "jncie.eu", true */ 'j', 'n', 'c', 'i', 'e', '.', 'e', 'u', '\0',
   /* "jncip.de", true */ 'j', 'n', 'c', 'i', 'p', '.', 'd', 'e', '\0',
-  /* "jobbkk.com", true */ 'j', 'o', 'b', 'b', 'k', 'k', '.', 'c', 'o', 'm', '\0',
   /* "jobflyapp.com", true */ 'j', 'o', 'b', 'f', 'l', 'y', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "jobmob.co.il", true */ 'j', 'o', 'b', 'm', 'o', 'b', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "jobs.at", true */ 'j', 'o', 'b', 's', '.', 'a', 't', '\0',
   /* "jobss.co.uk", true */ 'j', 'o', 'b', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "jodlajodla.si", true */ 'j', 'o', 'd', 'l', 'a', 'j', 'o', 'd', 'l', 'a', '.', 's', 'i', '\0',
   /* "joduska.me", true */ 'j', 'o', 'd', 'u', 's', 'k', 'a', '.', 'm', 'e', '\0',
   /* "jodyboucher.com", true */ 'j', 'o', 'd', 'y', 'b', 'o', 'u', 'c', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "joe-pagan.com", true */ 'j', 'o', 'e', '-', 'p', 'a', 'g', 'a', 'n', '.', 'c', 'o', 'm', '\0',
@@ -6505,17 +6511,16 @@ static const char kSTSHostTable[] = {
   /* "jyoti-fairworks.org", true */ 'j', 'y', 'o', 't', 'i', '-', 'f', 'a', 'i', 'r', 'w', 'o', 'r', 'k', 's', '.', 'o', 'r', 'g', '\0',
   /* "jysperm.me", true */ 'j', 'y', 's', 'p', 'e', 'r', 'm', '.', 'm', 'e', '\0',
   /* "jznet.org", true */ 'j', 'z', 'n', 'e', 't', '.', 'o', 'r', 'g', '\0',
   /* "k-netz.de", true */ 'k', '-', 'n', 'e', 't', 'z', '.', 'd', 'e', '\0',
   /* "k-tube.com", true */ 'k', '-', 't', 'u', 'b', 'e', '.', 'c', 'o', 'm', '\0',
   /* "k2mts.org", true */ 'k', '2', 'm', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "kaangenc.me", true */ 'k', 'a', 'a', 'n', 'g', 'e', 'n', 'c', '.', 'm', 'e', '\0',
   /* "kaasbijwijn.nl", true */ 'k', 'a', 'a', 's', 'b', 'i', 'j', 'w', 'i', 'j', 'n', '.', 'n', 'l', '\0',
-  /* "kab-s.de", true */ 'k', 'a', 'b', '-', 's', '.', 'd', 'e', '\0',
   /* "kabat-fans.cz", true */ 'k', 'a', 'b', 'a', 't', '-', 'f', 'a', 'n', 's', '.', 'c', 'z', '\0',
   /* "kabeuchi.com", true */ 'k', 'a', 'b', 'e', 'u', 'c', 'h', 'i', '.', 'c', 'o', 'm', '\0',
   /* "kabus.org", true */ 'k', 'a', 'b', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "kachlikova2.cz", true */ 'k', 'a', 'c', 'h', 'l', 'i', 'k', 'o', 'v', 'a', '2', '.', 'c', 'z', '\0',
   /* "kackscharf.de", true */ 'k', 'a', 'c', 'k', 's', 'c', 'h', 'a', 'r', 'f', '.', 'd', 'e', '\0',
   /* "kadmec.com", true */ 'k', 'a', 'd', 'm', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "kaela.design", true */ 'k', 'a', 'e', 'l', 'a', '.', 'd', 'e', 's', 'i', 'g', 'n', '\0',
   /* "kaffeekrone.de", true */ 'k', 'a', 'f', 'f', 'e', 'e', 'k', 'r', 'o', 'n', 'e', '.', 'd', 'e', '\0',
@@ -6534,16 +6539,17 @@ static const char kSTSHostTable[] = {
   /* "kalender.com", true */ 'k', 'a', 'l', 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kalevlamps.co.uk", true */ 'k', 'a', 'l', 'e', 'v', 'l', 'a', 'm', 'p', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "kaliaa.fi", true */ 'k', 'a', 'l', 'i', 'a', 'a', '.', 'f', 'i', '\0',
   /* "kalian.cz", true */ 'k', 'a', 'l', 'i', 'a', 'n', '.', 'c', 'z', '\0',
   /* "kall.is", true */ 'k', 'a', 'l', 'l', '.', 'i', 's', '\0',
   /* "kalmar.com", true */ 'k', 'a', 'l', 'm', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kaloix.de", true */ 'k', 'a', 'l', 'o', 'i', 'x', '.', 'd', 'e', '\0',
   /* "kamcvicit.sk", true */ 'k', 'a', 'm', 'c', 'v', 'i', 'c', 'i', 't', '.', 's', 'k', '\0',
+  /* "kamikatse.net", true */ 'k', 'a', 'm', 'i', 'k', 'a', 't', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "kamitech.ch", true */ 'k', 'a', 'm', 'i', 't', 'e', 'c', 'h', '.', 'c', 'h', '\0',
   /* "kamixa.se", true */ 'k', 'a', 'm', 'i', 'x', 'a', '.', 's', 'e', '\0',
   /* "kana.me", true */ 'k', 'a', 'n', 'a', '.', 'm', 'e', '\0',
   /* "kanaete-uranai.com", true */ 'k', 'a', 'n', 'a', 'e', 't', 'e', '-', 'u', 'r', 'a', 'n', 'a', 'i', '.', 'c', 'o', 'm', '\0',
   /* "kanal-tv-haensch.de", true */ 'k', 'a', 'n', 'a', 'l', '-', 't', 'v', '-', 'h', 'a', 'e', 'n', 's', 'c', 'h', '.', 'd', 'e', '\0',
   /* "kanar.nl", true */ 'k', 'a', 'n', 'a', 'r', '.', 'n', 'l', '\0',
   /* "kandalife.com", true */ 'k', 'a', 'n', 'd', 'a', 'l', 'i', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "kanehusky.com", true */ 'k', 'a', 'n', 'e', 'h', 'u', 's', 'k', 'y', '.', 'c', 'o', 'm', '\0',
@@ -6652,17 +6658,16 @@ static const char kSTSHostTable[] = {
   /* "kengilmour.com", true */ 'k', 'e', 'n', 'g', 'i', 'l', 'm', 'o', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kenguntokku.jp", true */ 'k', 'e', 'n', 'g', 'u', 'n', 't', 'o', 'k', 'k', 'u', '.', 'j', 'p', '\0',
   /* "kenkoelectric.com", true */ 'k', 'e', 'n', 'k', 'o', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "kennedy.ie", true */ 'k', 'e', 'n', 'n', 'e', 'd', 'y', '.', 'i', 'e', '\0',
   /* "kenners.org", true */ 'k', 'e', 'n', 'n', 'e', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "kennethaasan.no", true */ 'k', 'e', 'n', 'n', 'e', 't', 'h', 'a', 'a', 's', 'a', 'n', '.', 'n', 'o', '\0',
   /* "kennethlim.me", true */ 'k', 'e', 'n', 'n', 'e', 't', 'h', 'l', 'i', 'm', '.', 'm', 'e', '\0',
   /* "kenny-peck.com", true */ 'k', 'e', 'n', 'n', 'y', '-', 'p', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0',
-  /* "kenoschwalb.com", true */ 'k', 'e', 'n', 'o', 's', 'c', 'h', 'w', 'a', 'l', 'b', '.', 'c', 'o', 'm', '\0',
   /* "kentacademiestrust.org.uk", true */ 'k', 'e', 'n', 't', 'a', 'c', 'a', 'd', 'e', 'm', 'i', 'e', 's', 't', 'r', 'u', 's', 't', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "kentec.net", true */ 'k', 'e', 'n', 't', 'e', 'c', '.', 'n', 'e', 't', '\0',
   /* "keops-spine.fr", true */ 'k', 'e', 'o', 'p', 's', '-', 's', 'p', 'i', 'n', 'e', '.', 'f', 'r', '\0',
   /* "keops-spine.us", true */ 'k', 'e', 'o', 'p', 's', '-', 's', 'p', 'i', 'n', 'e', '.', 'u', 's', '\0',
   /* "kepkonyvtar.hu", true */ 'k', 'e', 'p', 'k', 'o', 'n', 'y', 'v', 't', 'a', 'r', '.', 'h', 'u', '\0',
   /* "kepler-seminar.de", true */ 'k', 'e', 'p', 'l', 'e', 'r', '-', 's', 'e', 'm', 'i', 'n', 'a', 'r', '.', 'd', 'e', '\0',
   /* "kerforhome.com", true */ 'k', 'e', 'r', 'f', 'o', 'r', 'h', 'o', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "kermadec.com", true */ 'k', 'e', 'r', 'm', 'a', 'd', 'e', 'c', '.', 'c', 'o', 'm', '\0',
@@ -6680,16 +6685,17 @@ static const char kSTSHostTable[] = {
   /* "kevinratcliff.com", true */ 'k', 'e', 'v', 'i', 'n', 'r', 'a', 't', 'c', 'l', 'i', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "keybase.io", true */ 'k', 'e', 'y', 'b', 'a', 's', 'e', '.', 'i', 'o', '\0',
   /* "keybored.me", true */ 'k', 'e', 'y', 'b', 'o', 'r', 'e', 'd', '.', 'm', 'e', '\0',
   /* "keycdn.com", true */ 'k', 'e', 'y', 'c', 'd', 'n', '.', 'c', 'o', 'm', '\0',
   /* "keyerror.com", true */ 'k', 'e', 'y', 'e', 'r', 'r', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "keys.fedoraproject.org", true */ 'k', 'e', 'y', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "keysupport.org", true */ 'k', 'e', 'y', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'o', 'r', 'g', '\0',
   /* "kfbrussels.be", true */ 'k', 'f', 'b', 'r', 'u', 's', 's', 'e', 'l', 's', '.', 'b', 'e', '\0',
+  /* "kfz-hantschel.de", true */ 'k', 'f', 'z', '-', 'h', 'a', 'n', 't', 's', 'c', 'h', 'e', 'l', '.', 'd', 'e', '\0',
   /* "kgm-irm.be", true */ 'k', 'g', 'm', '-', 'i', 'r', 'm', '.', 'b', 'e', '\0',
   /* "khanovaskola.cz", true */ 'k', 'h', 'a', 'n', 'o', 'v', 'a', 's', 'k', 'o', 'l', 'a', '.', 'c', 'z', '\0',
   /* "khetzal.info", true */ 'k', 'h', 'e', 't', 'z', 'a', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "khipu.com", true */ 'k', 'h', 'i', 'p', 'u', '.', 'c', 'o', 'm', '\0',
   /* "khmath.com", true */ 'k', 'h', 'm', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "khmb.ru", true */ 'k', 'h', 'm', 'b', '.', 'r', 'u', '\0',
   /* "ki-on.net", true */ 'k', 'i', '-', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "kiadoapartman.hu", true */ 'k', 'i', 'a', 'd', 'o', 'a', 'p', 'a', 'r', 't', 'm', 'a', 'n', '.', 'h', 'u', '\0',
@@ -6927,17 +6933,16 @@ static const char kSTSHostTable[] = {
   /* "krony.de", true */ 'k', 'r', 'o', 'n', 'y', '.', 'd', 'e', '\0',
   /* "kroodle.nl", true */ 'k', 'r', 'o', 'o', 'd', 'l', 'e', '.', 'n', 'l', '\0',
   /* "kroon.email", true */ 'k', 'r', 'o', 'o', 'n', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "krupa.net.pl", true */ 'k', 'r', 'u', 'p', 'a', '.', 'n', 'e', 't', '.', 'p', 'l', '\0',
   /* "krutka.cz", true */ 'k', 'r', 'u', 't', 'k', 'a', '.', 'c', 'z', '\0',
   /* "kruu.de", true */ 'k', 'r', 'u', 'u', '.', 'd', 'e', '\0',
   /* "krypsys.com", true */ 'k', 'r', 'y', 'p', 's', 'y', 's', '.', 'c', 'o', 'm', '\0',
   /* "kryptera.se", true */ 'k', 'r', 'y', 'p', 't', 'e', 'r', 'a', '.', 's', 'e', '\0',
-  /* "kryptomech.com", true */ 'k', 'r', 'y', 'p', 't', 'o', 'm', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "kryx.de", true */ 'k', 'r', 'y', 'x', '.', 'd', 'e', '\0',
   /* "ks-watch.de", true */ 'k', 's', '-', 'w', 'a', 't', 'c', 'h', '.', 'd', 'e', '\0',
   /* "kschv-rdeck.de", true */ 'k', 's', 'c', 'h', 'v', '-', 'r', 'd', 'e', 'c', 'k', '.', 'd', 'e', '\0',
   /* "kshlm.in", true */ 'k', 's', 'h', 'l', 'm', '.', 'i', 'n', '\0',
   /* "kswriter.com", true */ 'k', 's', 'w', 'r', 'i', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "ku.io", true */ 'k', 'u', '.', 'i', 'o', '\0',
   /* "kualo.co.uk", true */ 'k', 'u', 'a', 'l', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "kualo.com", true */ 'k', 'u', 'a', 'l', 'o', '.', 'c', 'o', 'm', '\0',
@@ -7400,16 +7405,17 @@ static const char kSTSHostTable[] = {
   /* "logicio.ch", true */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'c', 'h', '\0',
   /* "logicio.de", true */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'd', 'e', '\0',
   /* "logicio.net", true */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'n', 'e', 't', '\0',
   /* "logicsale.com", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "logicsale.de", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'd', 'e', '\0',
   /* "logicsale.fr", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'f', 'r', '\0',
   /* "logicsale.it", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'i', 't', '\0',
   /* "login.corp.google.com", true */ 'l', 'o', 'g', 'i', 'n', '.', 'c', 'o', 'r', 'p', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "login.gov", true */ 'l', 'o', 'g', 'i', 'n', '.', 'g', 'o', 'v', '\0',
   /* "login.launchpad.net", true */ 'l', 'o', 'g', 'i', 'n', '.', 'l', 'a', 'u', 'n', 'c', 'h', 'p', 'a', 'd', '.', 'n', 'e', 't', '\0',
   /* "login.persona.org", true */ 'l', 'o', 'g', 'i', 'n', '.', 'p', 'e', 'r', 's', 'o', 'n', 'a', '.', 'o', 'r', 'g', '\0',
   /* "login.sapo.pt", true */ 'l', 'o', 'g', 'i', 'n', '.', 's', 'a', 'p', 'o', '.', 'p', 't', '\0',
   /* "login.ubuntu.com", true */ 'l', 'o', 'g', 'i', 'n', '.', 'u', 'b', 'u', 'n', 't', 'u', '.', 'c', 'o', 'm', '\0',
   /* "login.xero.com", false */ 'l', 'o', 'g', 'i', 'n', '.', 'x', 'e', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "login.yahoo.com", false */ 'l', 'o', 'g', 'i', 'n', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "logistify.com.mx", true */ 'l', 'o', 'g', 'i', 's', 't', 'i', 'f', 'y', '.', 'c', 'o', 'm', '.', 'm', 'x', '\0',
   /* "lognot.net", true */ 'l', 'o', 'g', 'n', 'o', 't', '.', 'n', 'e', 't', '\0',
@@ -7461,16 +7467,17 @@ static const char kSTSHostTable[] = {
   /* "loveismore.pl", true */ 'l', 'o', 'v', 'e', 'i', 's', 'm', 'o', 'r', 'e', '.', 'p', 'l', '\0',
   /* "loveismore.ru", true */ 'l', 'o', 'v', 'e', 'i', 's', 'm', 'o', 'r', 'e', '.', 'r', 'u', '\0',
   /* "loveismore.sk", true */ 'l', 'o', 'v', 'e', 'i', 's', 'm', 'o', 'r', 'e', '.', 's', 'k', '\0',
   /* "loveisourweapon.com", true */ 'l', 'o', 'v', 'e', 'i', 's', 'o', 'u', 'r', 'w', 'e', 'a', 'p', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "lovelive.us", true */ 'l', 'o', 'v', 'e', 'l', 'i', 'v', 'e', '.', 'u', 's', '\0',
   /* "lovelivewiki.com", true */ 'l', 'o', 'v', 'e', 'l', 'i', 'v', 'e', 'w', 'i', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "lovemomiji.com", true */ 'l', 'o', 'v', 'e', 'm', 'o', 'm', 'i', 'j', 'i', '.', 'c', 'o', 'm', '\0',
   /* "lover-bg.com", true */ 'l', 'o', 'v', 'e', 'r', '-', 'b', 'g', '.', 'c', 'o', 'm', '\0',
+  /* "loveyounastya.com", true */ 'l', 'o', 'v', 'e', 'y', 'o', 'u', 'n', 'a', 's', 't', 'y', 'a', '.', 'c', 'o', 'm', '\0',
   /* "lovingearth.co", true */ 'l', 'o', 'v', 'i', 'n', 'g', 'e', 'a', 'r', 't', 'h', '.', 'c', 'o', '\0',
   /* "lovingearth.net", true */ 'l', 'o', 'v', 'i', 'n', 'g', 'e', 'a', 'r', 't', 'h', '.', 'n', 'e', 't', '\0',
   /* "lovizaim.ru", true */ 'l', 'o', 'v', 'i', 'z', 'a', 'i', 'm', '.', 'r', 'u', '\0',
   /* "lowmagnitude.com", true */ 'l', 'o', 'w', 'm', 'a', 'g', 'n', 'i', 't', 'u', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "lowsec.space", true */ 'l', 'o', 'w', 's', 'e', 'c', '.', 's', 'p', 'a', 'c', 'e', '\0',
   /* "lowsidetna.com", true */ 'l', 'o', 'w', 's', 'i', 'd', 'e', 't', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "loxis.be", true */ 'l', 'o', 'x', 'i', 's', '.', 'b', 'e', '\0',
   /* "lpbk-bethel.de", false */ 'l', 'p', 'b', 'k', '-', 'b', 'e', 't', 'h', 'e', 'l', '.', 'd', 'e', '\0',
@@ -7560,35 +7567,30 @@ static const char kSTSHostTable[] = {
   /* "m2tc.fr", true */ 'm', '2', 't', 'c', '.', 'f', 'r', '\0',
   /* "ma2t.com", true */ 'm', 'a', '2', 't', '.', 'c', 'o', 'm', '\0',
   /* "maartenterpstra.xyz", true */ 'm', 'a', 'a', 'r', 't', 'e', 'n', 't', 'e', 'r', 'p', 's', 't', 'r', 'a', '.', 'x', 'y', 'z', '\0',
   /* "mac-torrents.me", true */ 'm', 'a', 'c', '-', 't', 'o', 'r', 'r', 'e', 'n', 't', 's', '.', 'm', 'e', '\0',
   /* "mac1.net", true */ 'm', 'a', 'c', '1', '.', 'n', 'e', 't', '\0',
   /* "macaque.io", false */ 'm', 'a', 'c', 'a', 'q', 'u', 'e', '.', 'i', 'o', '\0',
   /* "macdj.tk", true */ 'm', 'a', 'c', 'd', 'j', '.', 't', 'k', '\0',
   /* "mach-politik.ch", true */ 'm', 'a', 'c', 'h', '-', 'p', 'o', 'l', 'i', 't', 'i', 'k', '.', 'c', 'h', '\0',
-  /* "machbach.com", true */ 'm', 'a', 'c', 'h', 'b', 'a', 'c', 'h', '.', 'c', 'o', 'm', '\0',
-  /* "machbach.net", true */ 'm', 'a', 'c', 'h', 'b', 'a', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "machtweb.de", true */ 'm', 'a', 'c', 'h', 't', 'w', 'e', 'b', '.', 'd', 'e', '\0',
   /* "macinyasha.net", true */ 'm', 'a', 'c', 'i', 'n', 'y', 'a', 's', 'h', 'a', '.', 'n', 'e', 't', '\0',
   /* "macker.io", true */ 'm', 'a', 'c', 'k', 'e', 'r', '.', 'i', 'o', '\0',
   /* "maclemon.at", true */ 'm', 'a', 'c', 'l', 'e', 'm', 'o', 'n', '.', 'a', 't', '\0',
   /* "macleod.io", true */ 'm', 'a', 'c', 'l', 'e', 'o', 'd', '.', 'i', 'o', '\0',
   /* "macnemo.de", true */ 'm', 'a', 'c', 'n', 'e', 'm', 'o', '.', 'd', 'e', '\0',
-  /* "maco.org.uk", true */ 'm', 'a', 'c', 'o', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
-  /* "macosxfilerecovery.com", true */ 'm', 'a', 'c', 'o', 's', 'x', 'f', 'i', 'l', 'e', 'r', 'e', 'c', 'o', 'v', 'e', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "maddi.biz", true */ 'm', 'a', 'd', 'd', 'i', '.', 'b', 'i', 'z', '\0',
   /* "madebyshore.com", true */ 'm', 'a', 'd', 'e', 'b', 'y', 's', 'h', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "madeglobal.com", true */ 'm', 'a', 'd', 'e', 'g', 'l', 'o', 'b', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "madeitwor.se", true */ 'm', 'a', 'd', 'e', 'i', 't', 'w', 'o', 'r', '.', 's', 'e', '\0',
   /* "madin.ru", true */ 'm', 'a', 'd', 'i', 'n', '.', 'r', 'u', '\0',
   /* "madnetwork.org", true */ 'm', 'a', 'd', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'o', 'r', 'g', '\0',
   /* "madokami.net", true */ 'm', 'a', 'd', 'o', 'k', 'a', 'm', 'i', '.', 'n', 'e', 't', '\0',
   /* "madrants.net", true */ 'm', 'a', 'd', 'r', 'a', 'n', 't', 's', '.', 'n', 'e', 't', '\0',
-  /* "madreacqua.org", true */ 'm', 'a', 'd', 'r', 'e', 'a', 'c', 'q', 'u', 'a', '.', 'o', 'r', 'g', '\0',
   /* "madtec.de", true */ 'm', 'a', 'd', 't', 'e', 'c', '.', 'd', 'e', '\0',
   /* "mae-berlinistanbul.com", true */ 'm', 'a', 'e', '-', 'b', 'e', 'r', 'l', 'i', 'n', 'i', 's', 't', 'a', 'n', 'b', 'u', 'l', '.', 'c', 'o', 'm', '\0',
   /* "maelstrom.ninja", true */ 'm', 'a', 'e', 'l', 's', 't', 'r', 'o', 'm', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "maff.scot", false */ 'm', 'a', 'f', 'f', '.', 's', 'c', 'o', 't', '\0',
   /* "mafiaforum.de", true */ 'm', 'a', 'f', 'i', 'a', 'f', 'o', 'r', 'u', 'm', '.', 'd', 'e', '\0',
   /* "mafiasi.de", true */ 'm', 'a', 'f', 'i', 'a', 's', 'i', '.', 'd', 'e', '\0',
   /* "magdic.eu", true */ 'm', 'a', 'g', 'd', 'i', 'c', '.', 'e', 'u', '\0',
   /* "magenbrot.net", true */ 'm', 'a', 'g', 'e', 'n', 'b', 'r', 'o', 't', '.', 'n', 'e', 't', '\0',
@@ -7702,16 +7704,17 @@ static const char kSTSHostTable[] = {
   /* "marcel-preuss.de", true */ 'm', 'a', 'r', 'c', 'e', 'l', '-', 'p', 'r', 'e', 'u', 's', 's', '.', 'd', 'e', '\0',
   /* "marcelpreuss.de", true */ 'm', 'a', 'r', 'c', 'e', 'l', 'p', 'r', 'e', 'u', 's', 's', '.', 'd', 'e', '\0',
   /* "marcelsiegert.com", true */ 'm', 'a', 'r', 'c', 'e', 'l', 's', 'i', 'e', 'g', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "marcoececilia.it", true */ 'm', 'a', 'r', 'c', 'o', 'e', 'c', 'e', 'c', 'i', 'l', 'i', 'a', '.', 'i', 't', '\0',
   /* "marcofinke.de", true */ 'm', 'a', 'r', 'c', 'o', 'f', 'i', 'n', 'k', 'e', '.', 'd', 'e', '\0',
   /* "marcohager.de", true */ 'm', 'a', 'r', 'c', 'o', 'h', 'a', 'g', 'e', 'r', '.', 'd', 'e', '\0',
   /* "marcoslater.com", true */ 'm', 'a', 'r', 'c', 'o', 's', 'l', 'a', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "marcschlagenhauf.de", true */ 'm', 'a', 'r', 'c', 's', 'c', 'h', 'l', 'a', 'g', 'e', 'n', 'h', 'a', 'u', 'f', '.', 'd', 'e', '\0',
+  /* "marcush.de", true */ 'm', 'a', 'r', 'c', 'u', 's', 'h', '.', 'd', 'e', '\0',
   /* "mareklecian.cz", true */ 'm', 'a', 'r', 'e', 'k', 'l', 'e', 'c', 'i', 'a', 'n', '.', 'c', 'z', '\0',
   /* "margaretrosefashions.co.uk", true */ 'm', 'a', 'r', 'g', 'a', 'r', 'e', 't', 'r', 'o', 's', 'e', 'f', 'a', 's', 'h', 'i', 'o', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "marianatherapy.com", true */ 'm', 'a', 'r', 'i', 'a', 'n', 'a', 't', 'h', 'e', 'r', 'a', 'p', 'y', '.', 'c', 'o', 'm', '\0',
   /* "mariaolesen.dk", true */ 'm', 'a', 'r', 'i', 'a', 'o', 'l', 'e', 's', 'e', 'n', '.', 'd', 'k', '\0',
   /* "marie-elisabeth.dk", true */ 'm', 'a', 'r', 'i', 'e', '-', 'e', 'l', 'i', 's', 'a', 'b', 'e', 't', 'h', '.', 'd', 'k', '\0',
   /* "marie.club", true */ 'm', 'a', 'r', 'i', 'e', '.', 'c', 'l', 'u', 'b', '\0',
   /* "mariehane.com", true */ 'm', 'a', 'r', 'i', 'e', 'h', 'a', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mariemiramont.fr", true */ 'm', 'a', 'r', 'i', 'e', 'm', 'i', 'r', 'a', 'm', 'o', 'n', 't', '.', 'f', 'r', '\0',
@@ -7838,17 +7841,16 @@ static const char kSTSHostTable[] = {
   /* "mbinf.de", false */ 'm', 'b', 'i', 'n', 'f', '.', 'd', 'e', '\0',
   /* "mblankhorst.nl", true */ 'm', 'b', 'l', 'a', 'n', 'k', 'h', 'o', 'r', 's', 't', '.', 'n', 'l', '\0',
   /* "mbp.banking.co.at", false */ 'm', 'b', 'p', '.', 'b', 'a', 'n', 'k', 'i', 'n', 'g', '.', 'c', 'o', '.', 'a', 't', '\0',
   /* "mbsec.net", true */ 'm', 'b', 's', 'e', 'c', '.', 'n', 'e', 't', '\0',
   /* "mbweir.com", true */ 'm', 'b', 'w', 'e', 'i', 'r', '.', 'c', 'o', 'm', '\0',
   /* "mc-venture.net", false */ 'm', 'c', '-', 'v', 'e', 'n', 't', 'u', 'r', 'e', '.', 'n', 'e', 't', '\0',
   /* "mc81.com", true */ 'm', 'c', '8', '1', '.', 'c', 'o', 'm', '\0',
   /* "mcadmin.net", true */ 'm', 'c', 'a', 'd', 'm', 'i', 'n', '.', 'n', 'e', 't', '\0',
-  /* "mcard.vn", true */ 'm', 'c', 'a', 'r', 'd', '.', 'v', 'n', '\0',
   /* "mcatnnlo.org", true */ 'm', 'c', 'a', 't', 'n', 'n', 'l', 'o', '.', 'o', 'r', 'g', '\0',
   /* "mcb-bank.com", true */ 'm', 'c', 'b', '-', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "mccarty.io", true */ 'm', 'c', 'c', 'a', 'r', 't', 'y', '.', 'i', 'o', '\0',
   /* "mccrackon.com", true */ 'm', 'c', 'c', 'r', 'a', 'c', 'k', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "mcdonalds.be", true */ 'm', 'c', 'd', 'o', 'n', 'a', 'l', 'd', 's', '.', 'b', 'e', '\0',
   /* "mcdonalds.design", true */ 'm', 'c', 'd', 'o', 'n', 'a', 'l', 'd', 's', '.', 'd', 'e', 's', 'i', 'g', 'n', '\0',
   /* "mcdonaldwhsl.com", false */ 'm', 'c', 'd', 'o', 'n', 'a', 'l', 'd', 'w', 'h', 's', 'l', '.', 'c', 'o', 'm', '\0',
   /* "mce.eu", true */ 'm', 'c', 'e', '.', 'e', 'u', '\0',
@@ -8006,30 +8008,29 @@ static const char kSTSHostTable[] = {
   /* "metricaid.com", true */ 'm', 'e', 't', 'r', 'i', 'c', 'a', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "metrobriefs.com", true */ 'm', 'e', 't', 'r', 'o', 'b', 'r', 'i', 'e', 'f', 's', '.', 'c', 'o', 'm', '\0',
   /* "metronaut.de", true */ 'm', 'e', 't', 'r', 'o', 'n', 'a', 'u', 't', '.', 'd', 'e', '\0',
   /* "metzgerei-birkenhof.de", true */ 'm', 'e', 't', 'z', 'g', 'e', 'r', 'e', 'i', '-', 'b', 'i', 'r', 'k', 'e', 'n', 'h', 'o', 'f', '.', 'd', 'e', '\0',
   /* "meusigno.com", true */ 'm', 'e', 'u', 's', 'i', 'g', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "mevs.cz", true */ 'm', 'e', 'v', 's', '.', 'c', 'z', '\0',
   /* "mexicansbook.ru", false */ 'm', 'e', 'x', 'i', 'c', 'a', 'n', 's', 'b', 'o', 'o', 'k', '.', 'r', 'u', '\0',
   /* "meyeraviation.com", true */ 'm', 'e', 'y', 'e', 'r', 'a', 'v', 'i', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
-  /* "meyercloud.de", true */ 'm', 'e', 'y', 'e', 'r', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0',
-  /* "mfiles.pl", true */ 'm', 'f', 'i', 'l', 'e', 's', '.', 'p', 'l', '\0',
   /* "mfxbe.de", true */ 'm', 'f', 'x', 'b', 'e', '.', 'd', 'e', '\0',
   /* "mgdigital.fr", true */ 'm', 'g', 'd', 'i', 'g', 'i', 't', 'a', 'l', '.', 'f', 'r', '\0',
   /* "mghiorzi.com.ar", true */ 'm', 'g', 'h', 'i', 'o', 'r', 'z', 'i', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "mh-bloemen.co.jp", true */ 'm', 'h', '-', 'b', 'l', 'o', 'e', 'm', 'e', 'n', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "mhdsyarif.com", false */ 'm', 'h', 'd', 's', 'y', 'a', 'r', 'i', 'f', '.', 'c', 'o', 'm', '\0',
   /* "mheistermann.de", true */ 'm', 'h', 'e', 'i', 's', 't', 'e', 'r', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "mhertel.com", false */ 'm', 'h', 'e', 'r', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "mhx.pw", true */ 'm', 'h', 'x', '.', 'p', 'w', '\0',
   /* "miagexport.com", true */ 'm', 'i', 'a', 'g', 'e', 'x', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "miasarafina.de", true */ 'm', 'i', 'a', 's', 'a', 'r', 'a', 'f', 'i', 'n', 'a', '.', 'd', 'e', '\0',
   /* "micbase.com", true */ 'm', 'i', 'c', 'b', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "michael-rigart.be", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', '-', 'r', 'i', 'g', 'a', 'r', 't', '.', 'b', 'e', '\0',
+  /* "michaelcullen.name", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'c', 'u', 'l', 'l', 'e', 'n', '.', 'n', 'a', 'm', 'e', '\0',
   /* "michaelleibundgut.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'l', 'e', 'i', 'b', 'u', 'n', 'd', 'g', 'u', 't', '.', 'c', 'o', 'm', '\0',
   /* "michaelmorpurgo.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'm', 'o', 'r', 'p', 'u', 'r', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "michaelrigart.be", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'r', 'i', 'g', 'a', 'r', 't', '.', 'b', 'e', '\0',
   /* "michaelscrivo.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 's', 'c', 'r', 'i', 'v', 'o', '.', 'c', 'o', 'm', '\0',
   /* "michaeltroger.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 't', 'r', 'o', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "michaeltruskowski.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 't', 'r', 'u', 's', 'k', 'o', 'w', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "michaelwaite.org", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'w', 'a', 'i', 't', 'e', '.', 'o', 'r', 'g', '\0',
   /* "michalkral.tk", true */ 'm', 'i', 'c', 'h', 'a', 'l', 'k', 'r', 'a', 'l', '.', 't', 'k', '\0',
@@ -8091,16 +8092,17 @@ static const char kSTSHostTable[] = {
   /* "milonga.tips", true */ 'm', 'i', 'l', 'o', 'n', 'g', 'a', '.', 't', 'i', 'p', 's', '\0',
   /* "miluriel.de", true */ 'm', 'i', 'l', 'u', 'r', 'i', 'e', 'l', '.', 'd', 'e', '\0',
   /* "mim.properties", true */ 'm', 'i', 'm', '.', 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's', '\0',
   /* "mimeit.de", true */ 'm', 'i', 'm', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "mimemo.io", true */ 'm', 'i', 'm', 'e', 'm', 'o', '.', 'i', 'o', '\0',
   /* "mimovrste.com", true */ 'm', 'i', 'm', 'o', 'v', 'r', 's', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "minami.xyz", true */ 'm', 'i', 'n', 'a', 'm', 'i', '.', 'x', 'y', 'z', '\0',
   /* "mind-hochschul-netzwerk.de", true */ 'm', 'i', 'n', 'd', '-', 'h', 'o', 'c', 'h', 's', 'c', 'h', 'u', 'l', '-', 'n', 'e', 't', 'z', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
+  /* "mind-moves.es", true */ 'm', 'i', 'n', 'd', '-', 'm', 'o', 'v', 'e', 's', '.', 'e', 's', '\0',
   /* "mind.sh", true */ 'm', 'i', 'n', 'd', '.', 's', 'h', '\0',
   /* "mindbodycontinuum.com", true */ 'm', 'i', 'n', 'd', 'b', 'o', 'd', 'y', 'c', 'o', 'n', 't', 'i', 'n', 'u', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "mindcoding.ro", true */ 'm', 'i', 'n', 'd', 'c', 'o', 'd', 'i', 'n', 'g', '.', 'r', 'o', '\0',
   /* "mindcraft.ga", true */ 'm', 'i', 'n', 'd', 'c', 'r', 'a', 'f', 't', '.', 'g', 'a', '\0',
   /* "mindwerks.net", true */ 'm', 'i', 'n', 'd', 'w', 'e', 'r', 'k', 's', '.', 'n', 'e', 't', '\0',
   /* "minecraft-forum.cf", true */ 'm', 'i', 'n', 'e', 'c', 'r', 'a', 'f', 't', '-', 'f', 'o', 'r', 'u', 'm', '.', 'c', 'f', '\0',
   /* "minecraft-forum.ga", true */ 'm', 'i', 'n', 'e', 'c', 'r', 'a', 'f', 't', '-', 'f', 'o', 'r', 'u', 'm', '.', 'g', 'a', '\0',
   /* "minecraft-forum.gq", true */ 'm', 'i', 'n', 'e', 'c', 'r', 'a', 'f', 't', '-', 'f', 'o', 'r', 'u', 'm', '.', 'g', 'q', '\0',
@@ -8237,17 +8239,16 @@ static const char kSTSHostTable[] = {
   /* "modelcase.co.jp", false */ 'm', 'o', 'd', 'e', 'l', 'c', 'a', 's', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "modeldimension.com", true */ 'm', 'o', 'd', 'e', 'l', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "modernapprenticeships.org", true */ 'm', 'o', 'd', 'e', 'r', 'n', 'a', 'p', 'p', 'r', 'e', 'n', 't', 'i', 'c', 'e', 's', 'h', 'i', 'p', 's', '.', 'o', 'r', 'g', '\0',
   /* "modernibytovytextil.cz", true */ 'm', 'o', 'd', 'e', 'r', 'n', 'i', 'b', 'y', 't', 'o', 'v', 'y', 't', 'e', 'x', 't', 'i', 'l', '.', 'c', 'z', '\0',
   /* "modifiedmind.com", true */ 'm', 'o', 'd', 'i', 'f', 'i', 'e', 'd', 'm', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "modistry.com", true */ 'm', 'o', 'd', 'i', 's', 't', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "modmountain.com", true */ 'm', 'o', 'd', 'm', 'o', 'u', 'n', 't', 'a', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "modx.io", true */ 'm', 'o', 'd', 'x', '.', 'i', 'o', '\0',
-  /* "modydev.club", true */ 'm', 'o', 'd', 'y', 'd', 'e', 'v', '.', 'c', 'l', 'u', 'b', '\0',
   /* "moe.pe", true */ 'm', 'o', 'e', '.', 'p', 'e', '\0',
   /* "moe4sale.in", true */ 'm', 'o', 'e', '4', 's', 'a', 'l', 'e', '.', 'i', 'n', '\0',
   /* "moefi.xyz", true */ 'm', 'o', 'e', 'f', 'i', '.', 'x', 'y', 'z', '\0',
   /* "moegirl.org", true */ 'm', 'o', 'e', 'g', 'i', 'r', 'l', '.', 'o', 'r', 'g', '\0',
   /* "moevenpick-cafe.com", true */ 'm', 'o', 'e', 'v', 'e', 'n', 'p', 'i', 'c', 'k', '-', 'c', 'a', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mojaknjiznica.com", false */ 'm', 'o', 'j', 'a', 'k', 'n', 'j', 'i', 'z', 'n', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "mojapraca.sk", true */ 'm', 'o', 'j', 'a', 'p', 'r', 'a', 'c', 'a', '.', 's', 'k', '\0',
   /* "mojzis.com", true */ 'm', 'o', 'j', 'z', 'i', 's', '.', 'c', 'o', 'm', '\0',
@@ -8257,22 +8258,22 @@ static const char kSTSHostTable[] = {
   /* "mokote.com", true */ 'm', 'o', 'k', 'o', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "molb.org", true */ 'm', 'o', 'l', 'b', '.', 'o', 'r', 'g', '\0',
   /* "mols.me", true */ 'm', 'o', 'l', 's', '.', 'm', 'e', '\0',
   /* "molun.net", true */ 'm', 'o', 'l', 'u', 'n', '.', 'n', 'e', 't', '\0',
   /* "momentumdash.com", true */ 'm', 'o', 'm', 'e', 'n', 't', 'u', 'm', 'd', 'a', 's', 'h', '.', 'c', 'o', 'm', '\0',
   /* "mommel.com", true */ 'm', 'o', 'm', 'm', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "mommelonline.de", true */ 'm', 'o', 'm', 'm', 'e', 'l', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "momoka.moe", true */ 'm', 'o', 'm', 'o', 'k', 'a', '.', 'm', 'o', 'e', '\0',
+  /* "momozeit.de", true */ 'm', 'o', 'm', 'o', 'z', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "momut.org", true */ 'm', 'o', 'm', 'u', 't', '.', 'o', 'r', 'g', '\0',
   /* "mon-agenda.org", false */ 'm', 'o', 'n', '-', 'a', 'g', 'e', 'n', 'd', 'a', '.', 'o', 'r', 'g', '\0',
   /* "mon-partage.fr", true */ 'm', 'o', 'n', '-', 'p', 'a', 'r', 't', 'a', 'g', 'e', '.', 'f', 'r', '\0',
   /* "mondwandler.de", true */ 'm', 'o', 'n', 'd', 'w', 'a', 'n', 'd', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "moneromerchant.com", true */ 'm', 'o', 'n', 'e', 'r', 'o', 'm', 'e', 'r', 'c', 'h', 'a', 'n', 't', '.', 'c', 'o', 'm', '\0',
-  /* "moneycrownmedia.com", true */ 'm', 'o', 'n', 'e', 'y', 'c', 'r', 'o', 'w', 'n', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "moneygo.se", true */ 'm', 'o', 'n', 'e', 'y', 'g', 'o', '.', 's', 'e', '\0',
   /* "moneyhouse.de", true */ 'm', 'o', 'n', 'e', 'y', 'h', 'o', 'u', 's', 'e', '.', 'd', 'e', '\0',
   /* "moneytoday.com", true */ 'm', 'o', 'n', 'e', 'y', 't', 'o', 'd', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "monika-sokol.de", true */ 'm', 'o', 'n', 'i', 'k', 'a', '-', 's', 'o', 'k', 'o', 'l', '.', 'd', 'e', '\0',
   /* "moniquedekermadec.com", true */ 'm', 'o', 'n', 'i', 'q', 'u', 'e', 'd', 'e', 'k', 'e', 'r', 'm', 'a', 'd', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "monitaure.io", true */ 'm', 'o', 'n', 'i', 't', 'a', 'u', 'r', 'e', '.', 'i', 'o', '\0',
   /* "monitman.solutions", true */ 'm', 'o', 'n', 'i', 't', 'm', 'a', 'n', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "monitzer.com", true */ 'm', 'o', 'n', 'i', 't', 'z', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -8305,22 +8306,23 @@ static const char kSTSHostTable[] = {
   /* "moparisthebest.org", true */ 'm', 'o', 'p', 'a', 'r', 'i', 's', 't', 'h', 'e', 'b', 'e', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "moparscape.net", true */ 'm', 'o', 'p', 'a', 'r', 's', 'c', 'a', 'p', 'e', '.', 'n', 'e', 't', '\0',
   /* "mor.cloud", true */ 'm', 'o', 'r', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "morbatex.com", true */ 'm', 'o', 'r', 'b', 'a', 't', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "moreapp.co.uk", true */ 'm', 'o', 'r', 'e', 'a', 'p', 'p', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "morenci.ch", true */ 'm', 'o', 'r', 'e', 'n', 'c', 'i', '.', 'c', 'h', '\0',
   /* "morfitronik.pl", true */ 'm', 'o', 'r', 'f', 'i', 't', 'r', 'o', 'n', 'i', 'k', '.', 'p', 'l', '\0',
   /* "morganestes.com", true */ 'm', 'o', 'r', 'g', 'a', 'n', 'e', 's', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
+  /* "morganino.eu", true */ 'm', 'o', 'r', 'g', 'a', 'n', 'i', 'n', 'o', '.', 'e', 'u', '\0',
+  /* "morganino.it", true */ 'm', 'o', 'r', 'g', 'a', 'n', 'i', 'n', 'o', '.', 'i', 't', '\0',
   /* "moritz-baestlein.de", true */ 'm', 'o', 'r', 'i', 't', 'z', '-', 'b', 'a', 'e', 's', 't', 'l', 'e', 'i', 'n', '.', 'd', 'e', '\0',
   /* "moriz.de", true */ 'm', 'o', 'r', 'i', 'z', '.', 'd', 'e', '\0',
   /* "morninglory.com", true */ 'm', 'o', 'r', 'n', 'i', 'n', 'g', 'l', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "mornings.com", true */ 'm', 'o', 'r', 'n', 'i', 'n', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "morteruelo.net", true */ 'm', 'o', 'r', 't', 'e', 'r', 'u', 'e', 'l', 'o', '.', 'n', 'e', 't', '\0',
-  /* "morz.org", true */ 'm', 'o', 'r', 'z', '.', 'o', 'r', 'g', '\0',
   /* "mosstier.com", true */ 'm', 'o', 's', 's', 't', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "mostlyharmless.at", true */ 'm', 'o', 's', 't', 'l', 'y', 'h', 'a', 'r', 'm', 'l', 'e', 's', 's', '.', 'a', 't', '\0',
   /* "motd.ch", true */ 'm', 'o', 't', 'd', '.', 'c', 'h', '\0',
   /* "mothereff.in", true */ 'm', 'o', 't', 'h', 'e', 'r', 'e', 'f', 'f', '.', 'i', 'n', '\0',
   /* "motionfreight.com", true */ 'm', 'o', 't', 'i', 'o', 'n', 'f', 'r', 'e', 'i', 'g', 'h', 't', '.', 'c', 'o', 'm', '\0',
   /* "moulinaparoles.ca", true */ 'm', 'o', 'u', 'l', 'i', 'n', 'a', 'p', 'a', 'r', 'o', 'l', 'e', 's', '.', 'c', 'a', '\0',
   /* "mountainactivitysection.org.uk", true */ 'm', 'o', 'u', 'n', 't', 'a', 'i', 'n', 'a', 'c', 't', 'i', 'v', 'i', 't', 'y', 's', 'e', 'c', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "mountainadventureseminars.com", true */ 'm', 'o', 'u', 'n', 't', 'a', 'i', 'n', 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', 's', 'e', 'm', 'i', 'n', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0',
@@ -8350,16 +8352,17 @@ static const char kSTSHostTable[] = {
   /* "mpsgarage.com.au", true */ 'm', 'p', 's', 'g', 'a', 'r', 'a', 'g', 'e', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "mr-hosting.com", true */ 'm', 'r', '-', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "mrdani.net", true */ 'm', 'r', 'd', 'a', 'n', 'i', '.', 'n', 'e', 't', '\0',
   /* "mrdayman.com", true */ 'm', 'r', 'd', 'a', 'y', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "mremallin.ca", true */ 'm', 'r', 'e', 'm', 'a', 'l', 'l', 'i', 'n', '.', 'c', 'a', '\0',
   /* "mrettich.org", true */ 'm', 'r', 'e', 't', 't', 'i', 'c', 'h', '.', 'o', 'r', 'g', '\0',
   /* "mrinalpurohit.in", true */ 'm', 'r', 'i', 'n', 'a', 'l', 'p', 'u', 'r', 'o', 'h', 'i', 't', '.', 'i', 'n', '\0',
   /* "mrizzio.com", true */ 'm', 'r', 'i', 'z', 'z', 'i', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "ms-alternativ.de", true */ 'm', 's', '-', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', '.', 'd', 'e', '\0',
   /* "msa-aesch.ch", true */ 'm', 's', 'a', '-', 'a', 'e', 's', 'c', 'h', '.', 'c', 'h', '\0',
   /* "mscc.org", true */ 'm', 's', 'c', 'c', '.', 'o', 'r', 'g', '\0',
   /* "msebera.cz", true */ 'm', 's', 'e', 'b', 'e', 'r', 'a', '.', 'c', 'z', '\0',
   /* "msh100.uk", true */ 'm', 's', 'h', '1', '0', '0', '.', 'u', 'k', '\0',
   /* "msiegmund.com", true */ 'm', 's', 'i', 'e', 'g', 'm', 'u', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "msmails.de", true */ 'm', 's', 'm', 'a', 'i', 'l', 's', '.', 'd', 'e', '\0',
   /* "msno.no", true */ 'm', 's', 'n', 'o', '.', 'n', 'o', '\0',
   /* "mssys.de", true */ 'm', 's', 's', 'y', 's', '.', 'd', 'e', '\0',
@@ -8398,17 +8401,17 @@ static const char kSTSHostTable[] = {
   /* "murodese.org", true */ 'm', 'u', 'r', 'o', 'd', 'e', 's', 'e', '.', 'o', 'r', 'g', '\0',
   /* "muscleangels.com", true */ 'm', 'u', 's', 'c', 'l', 'e', 'a', 'n', 'g', 'e', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "museminder2.com", true */ 'm', 'u', 's', 'e', 'm', 'i', 'n', 'd', 'e', 'r', '2', '.', 'c', 'o', 'm', '\0',
   /* "mushikabu.net", true */ 'm', 'u', 's', 'h', 'i', 'k', 'a', 'b', 'u', '.', 'n', 'e', 't', '\0',
   /* "musi.cx", true */ 'm', 'u', 's', 'i', '.', 'c', 'x', '\0',
   /* "musicchris.de", true */ 'm', 'u', 's', 'i', 'c', 'c', 'h', 'r', 'i', 's', '.', 'd', 'e', '\0',
   /* "musicgamegalaxy.de", true */ 'm', 'u', 's', 'i', 'c', 'g', 'a', 'm', 'e', 'g', 'a', 'l', 'a', 'x', 'y', '.', 'd', 'e', '\0',
   /* "musician.dating", true */ 'm', 'u', 's', 'i', 'c', 'i', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
-  /* "musicstore.de", true */ 'm', 'u', 's', 'i', 'c', 's', 't', 'o', 'r', 'e', '.', 'd', 'e', '\0',
+  /* "musicstore.de", false */ 'm', 'u', 's', 'i', 'c', 's', 't', 'o', 'r', 'e', '.', 'd', 'e', '\0',
   /* "musicwear.cz", true */ 'm', 'u', 's', 'i', 'c', 'w', 'e', 'a', 'r', '.', 'c', 'z', '\0',
   /* "musketonhaken.nl", true */ 'm', 'u', 's', 'k', 'e', 't', 'o', 'n', 'h', 'a', 'k', 'e', 'n', '.', 'n', 'l', '\0',
   /* "muslim.singles", true */ 'm', 'u', 's', 'l', 'i', 'm', '.', 's', 'i', 'n', 'g', 'l', 'e', 's', '\0',
   /* "musmann.io", true */ 'm', 'u', 's', 'm', 'a', 'n', 'n', '.', 'i', 'o', '\0',
   /* "muspla.com", true */ 'm', 'u', 's', 'p', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "muspla.com.br", true */ 'm', 'u', 's', 'p', 'l', 'a', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "mustard.co.uk", true */ 'm', 'u', 's', 't', 'a', 'r', 'd', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "mustardking.me", true */ 'm', 'u', 's', 't', 'a', 'r', 'd', 'k', 'i', 'n', 'g', '.', 'm', 'e', '\0',
@@ -8552,17 +8555,16 @@ static const char kSTSHostTable[] = {
   /* "namu.moe", true */ 'n', 'a', 'm', 'u', '.', 'm', 'o', 'e', '\0',
   /* "namu.wiki", true */ 'n', 'a', 'm', 'u', '.', 'w', 'i', 'k', 'i', '\0',
   /* "nan.zone", true */ 'n', 'a', 'n', '.', 'z', 'o', 'n', 'e', '\0',
   /* "nanch.com", true */ 'n', 'a', 'n', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "nanderson.me", true */ 'n', 'a', 'n', 'd', 'e', 'r', 's', 'o', 'n', '.', 'm', 'e', '\0',
   /* "nanogi.ga", true */ 'n', 'a', 'n', 'o', 'g', 'i', '.', 'g', 'a', '\0',
   /* "nanokamo.com", true */ 'n', 'a', 'n', 'o', 'k', 'a', 'm', 'o', '.', 'c', 'o', 'm', '\0',
   /* "nansay.cn", true */ 'n', 'a', 'n', 's', 'a', 'y', '.', 'c', 'n', '\0',
-  /* "nanto.eu", true */ 'n', 'a', 'n', 't', 'o', '.', 'e', 'u', '\0',
   /* "naphex.rocks", true */ 'n', 'a', 'p', 'h', 'e', 'x', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "napisynapomniky.cz", true */ 'n', 'a', 'p', 'i', 's', 'y', 'n', 'a', 'p', 'o', 'm', 'n', 'i', 'k', 'y', '.', 'c', 'z', '\0',
   /* "narach.com", true */ 'n', 'a', 'r', 'a', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "narada.com.ua", true */ 'n', 'a', 'r', 'a', 'd', 'a', '.', 'c', 'o', 'm', '.', 'u', 'a', '\0',
   /* "naralogics.com", true */ 'n', 'a', 'r', 'a', 'l', 'o', 'g', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "narfation.org", true */ 'n', 'a', 'r', 'f', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "nargele.eu", true */ 'n', 'a', 'r', 'g', 'e', 'l', 'e', '.', 'e', 'u', '\0',
   /* "narindal.ch", true */ 'n', 'a', 'r', 'i', 'n', 'd', 'a', 'l', '.', 'c', 'h', '\0',
@@ -8776,16 +8778,17 @@ static const char kSTSHostTable[] = {
   /* "nickstories.de", true */ 'n', 'i', 'c', 'k', 's', 't', 'o', 'r', 'i', 'e', 's', '.', 'd', 'e', '\0',
   /* "nico.one", true */ 'n', 'i', 'c', 'o', '.', 'o', 'n', 'e', '\0',
   /* "nicoborghuis.nl", true */ 'n', 'i', 'c', 'o', 'b', 'o', 'r', 'g', 'h', 'u', 'i', 's', '.', 'n', 'l', '\0',
   /* "nicocourts.com", true */ 'n', 'i', 'c', 'o', 'c', 'o', 'u', 'r', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "nicoknibbe.nl", true */ 'n', 'i', 'c', 'o', 'k', 'n', 'i', 'b', 'b', 'e', '.', 'n', 'l', '\0',
   /* "nicolaeiotcu.ro", true */ 'n', 'i', 'c', 'o', 'l', 'a', 'e', 'i', 'o', 't', 'c', 'u', '.', 'r', 'o', '\0',
   /* "nicolaelmer.ch", true */ 'n', 'i', 'c', 'o', 'l', 'a', 'e', 'l', 'm', 'e', 'r', '.', 'c', 'h', '\0',
   /* "nicolas-dumermuth.com", true */ 'n', 'i', 'c', 'o', 'l', 'a', 's', '-', 'd', 'u', 'm', 'e', 'r', 'm', 'u', 't', 'h', '.', 'c', 'o', 'm', '\0',
+  /* "nicolas-hoizey.com", true */ 'n', 'i', 'c', 'o', 'l', 'a', 's', '-', 'h', 'o', 'i', 'z', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "nicolas-simond.com", true */ 'n', 'i', 'c', 'o', 'l', 'a', 's', '-', 's', 'i', 'm', 'o', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "nicolasklotz.de", true */ 'n', 'i', 'c', 'o', 'l', 'a', 's', 'k', 'l', 'o', 't', 'z', '.', 'd', 'e', '\0',
   /* "nicolaw.uk", true */ 'n', 'i', 'c', 'o', 'l', 'a', 'w', '.', 'u', 'k', '\0',
   /* "nidro.de", true */ 'n', 'i', 'd', 'r', 'o', '.', 'd', 'e', '\0',
   /* "nidux.com", true */ 'n', 'i', 'd', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "niduxcomercial.com", true */ 'n', 'i', 'd', 'u', 'x', 'c', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "niederohmig.de", true */ 'n', 'i', 'e', 'd', 'e', 'r', 'o', 'h', 'm', 'i', 'g', '.', 'd', 'e', '\0',
   /* "niedersetz.de", true */ 'n', 'i', 'e', 'd', 'e', 'r', 's', 'e', 't', 'z', '.', 'd', 'e', '\0',
@@ -8835,17 +8838,16 @@ static const char kSTSHostTable[] = {
   /* "nippon-oku.com", true */ 'n', 'i', 'p', 'p', 'o', 'n', '-', 'o', 'k', 'u', '.', 'c', 'o', 'm', '\0',
   /* "nippon.fr", true */ 'n', 'i', 'p', 'p', 'o', 'n', '.', 'f', 'r', '\0',
   /* "nirada.info", true */ 'n', 'i', 'r', 'a', 'd', 'a', '.', 'i', 'n', 'f', 'o', '\0',
   /* "nitrix.me", true */ 'n', 'i', 't', 'r', 'i', 'x', '.', 'm', 'e', '\0',
   /* "nitropur.com", true */ 'n', 'i', 't', 'r', 'o', 'p', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "nitropur.de", true */ 'n', 'i', 't', 'r', 'o', 'p', 'u', 'r', '.', 'd', 'e', '\0',
   /* "nivi.ca", true */ 'n', 'i', 'v', 'i', '.', 'c', 'a', '\0',
   /* "nixien.fr", true */ 'n', 'i', 'x', 'i', 'e', 'n', '.', 'f', 'r', '\0',
-  /* "nixmag.net", true */ 'n', 'i', 'x', 'm', 'a', 'g', '.', 'n', 'e', 't', '\0',
   /* "nkadvertising.online", true */ 'n', 'k', 'a', 'd', 'v', 'e', 'r', 't', 'i', 's', 'i', 'n', 'g', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "nl-ix.net", true */ 'n', 'l', '-', 'i', 'x', '.', 'n', 'e', 't', '\0',
   /* "nl.search.yahoo.com", false */ 'n', 'l', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "nlegall.fr", true */ 'n', 'l', 'e', 'g', 'a', 'l', 'l', '.', 'f', 'r', '\0',
   /* "nmd.so", true */ 'n', 'm', 'd', '.', 's', 'o', '\0',
   /* "nmsnj.com", true */ 'n', 'm', 's', 'n', 'j', '.', 'c', 'o', 'm', '\0',
   /* "nnote.net", true */ 'n', 'n', 'o', 't', 'e', '.', 'n', 'e', 't', '\0',
   /* "nnqc.nl", true */ 'n', 'n', 'q', 'c', '.', 'n', 'l', '\0',
@@ -8891,17 +8893,16 @@ static const char kSTSHostTable[] = {
   /* "northwoodsfish.com", true */ 'n', 'o', 'r', 't', 'h', 'w', 'o', 'o', 'd', 's', 'f', 'i', 's', 'h', '.', 'c', 'o', 'm', '\0',
   /* "nos-medias.fr", true */ 'n', 'o', 's', '-', 'm', 'e', 'd', 'i', 'a', 's', '.', 'f', 'r', '\0',
   /* "nos-oignons.net", true */ 'n', 'o', 's', '-', 'o', 'i', 'g', 'n', 'o', 'n', 's', '.', 'n', 'e', 't', '\0',
   /* "nosfermiers.com", true */ 'n', 'o', 's', 'f', 'e', 'r', 'm', 'i', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "nossasenhora.net", true */ 'n', 'o', 's', 's', 'a', 's', 'e', 'n', 'h', 'o', 'r', 'a', '.', 'n', 'e', 't', '\0',
   /* "nossasenhoradodesterro.com.br", true */ 'n', 'o', 's', 's', 'a', 's', 'e', 'n', 'h', 'o', 'r', 'a', 'd', 'o', 'd', 'e', 's', 't', 'e', 'r', 'r', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "nostraforma.com", false */ 'n', 'o', 's', 't', 'r', 'a', 'f', 'o', 'r', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "notabug.org", true */ 'n', 'o', 't', 'a', 'b', 'u', 'g', '.', 'o', 'r', 'g', '\0',
-  /* "notadd.com", true */ 'n', 'o', 't', 'a', 'd', 'd', '.', 'c', 'o', 'm', '\0',
   /* "notalone.gov", true */ 'n', 'o', 't', 'a', 'l', 'o', 'n', 'e', '.', 'g', 'o', 'v', '\0',
   /* "notarvysocina.cz", true */ 'n', 'o', 't', 'a', 'r', 'v', 'y', 's', 'o', 'c', 'i', 'n', 'a', '.', 'c', 'z', '\0',
   /* "notbolaget.se", true */ 'n', 'o', 't', 'b', 'o', 'l', 'a', 'g', 'e', 't', '.', 's', 'e', '\0',
   /* "notenoughtime.de", true */ 'n', 'o', 't', 'e', 'n', 'o', 'u', 'g', 'h', 't', 'i', 'm', 'e', '.', 'd', 'e', '\0',
   /* "nothing.net.nz", true */ 'n', 'o', 't', 'h', 'i', 'n', 'g', '.', 'n', 'e', 't', '.', 'n', 'z', '\0',
   /* "notificami.com", true */ 'n', 'o', 't', 'i', 'f', 'i', 'c', 'a', 'm', 'i', '.', 'c', 'o', 'm', '\0',
   /* "notify.moe", true */ 'n', 'o', 't', 'i', 'f', 'y', '.', 'm', 'o', 'e', '\0',
   /* "notjustbitchy.com", true */ 'n', 'o', 't', 'j', 'u', 's', 't', 'b', 'i', 't', 'c', 'h', 'y', '.', 'c', 'o', 'm', '\0',
@@ -8934,16 +8935,17 @@ static const char kSTSHostTable[] = {
   /* "nrkn.fr", true */ 'n', 'r', 'k', 'n', '.', 'f', 'r', '\0',
   /* "nsa.lol", true */ 'n', 's', 'a', '.', 'l', 'o', 'l', '\0',
   /* "nsa.wtf", true */ 'n', 's', 'a', '.', 'w', 't', 'f', '\0',
   /* "nsboston.org", true */ 'n', 's', 'b', 'o', 's', 't', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "nsboutique.com", true */ 'n', 's', 'b', 'o', 'u', 't', 'i', 'q', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "nscnet.jp", true */ 'n', 's', 'c', 'n', 'e', 't', '.', 'j', 'p', '\0',
   /* "nshost.ro", true */ 'n', 's', 'h', 'o', 's', 't', '.', 'r', 'o', '\0',
   /* "nsm.ee", true */ 'n', 's', 'm', '.', 'e', 'e', '\0',
+  /* "nspeaks.com", true */ 'n', 's', 'p', 'e', 'a', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "nsweb.solutions", true */ 'n', 's', 'w', 'e', 'b', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "nsworks.com", true */ 'n', 's', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "ntotten.com", true */ 'n', 't', 'o', 't', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "ntppool.org", true */ 'n', 't', 'p', 'p', 'o', 'o', 'l', '.', 'o', 'r', 'g', '\0',
   /* "ntse.xyz", true */ 'n', 't', 's', 'e', '.', 'x', 'y', 'z', '\0',
   /* "nube.ninja", true */ 'n', 'u', 'b', 'e', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "nubella.com.au", true */ 'n', 'u', 'b', 'e', 'l', 'l', 'a', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "nubu.at", true */ 'n', 'u', 'b', 'u', '.', 'a', 't', '\0',
@@ -8991,16 +8993,17 @@ static const char kSTSHostTable[] = {
   /* "o6asan.com", true */ 'o', '6', 'a', 's', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "oaic.gov.au", true */ 'o', 'a', 'i', 'c', '.', 'g', 'o', 'v', '.', 'a', 'u', '\0',
   /* "oakslighting.co.uk", true */ 'o', 'a', 'k', 's', 'l', 'i', 'g', 'h', 't', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "oauth-dropins.appspot.com", true */ 'o', 'a', 'u', 't', 'h', '-', 'd', 'r', 'o', 'p', 'i', 'n', 's', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "obdolbacca.ru", true */ 'o', 'b', 'd', 'o', 'l', 'b', 'a', 'c', 'c', 'a', '.', 'r', 'u', '\0',
   /* "obermeiers.eu", true */ 'o', 'b', 'e', 'r', 'm', 'e', 'i', 'e', 'r', 's', '.', 'e', 'u', '\0',
   /* "obfuscate.xyz", true */ 'o', 'b', 'f', 'u', 's', 'c', 'a', 't', 'e', '.', 'x', 'y', 'z', '\0',
   /* "obg-global.com", true */ 'o', 'b', 'g', '-', 'g', 'l', 'o', 'b', 'a', 'l', '.', 'c', 'o', 'm', '\0',
+  /* "obscuredfiles.com", false */ 'o', 'b', 's', 'c', 'u', 'r', 'e', 'd', 'f', 'i', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "obsidianirc.net", true */ 'o', 'b', 's', 'i', 'd', 'i', 'a', 'n', 'i', 'r', 'c', '.', 'n', 'e', 't', '\0',
   /* "obsproject.com", true */ 'o', 'b', 's', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "obtima.org", true */ 'o', 'b', 't', 'i', 'm', 'a', '.', 'o', 'r', 'g', '\0',
   /* "occasion-impro.com", true */ 'o', 'c', 'c', 'a', 's', 'i', 'o', 'n', '-', 'i', 'm', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "occupymedia.org", true */ 'o', 'c', 'c', 'u', 'p', 'y', 'm', 'e', 'd', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "ocd2016.com", true */ 'o', 'c', 'd', '2', '0', '1', '6', '.', 'c', 'o', 'm', '\0',
   /* "oceandns.eu", true */ 'o', 'c', 'e', 'a', 'n', 'd', 'n', 's', '.', 'e', 'u', '\0',
   /* "oceandns.net", true */ 'o', 'c', 'e', 'a', 'n', 'd', 'n', 's', '.', 'n', 'e', 't', '\0',
@@ -9065,16 +9068,17 @@ static const char kSTSHostTable[] = {
   /* "olymp-arts.world", true */ 'o', 'l', 'y', 'm', 'p', '-', 'a', 'r', 't', 's', '.', 'w', 'o', 'r', 'l', 'd', '\0',
   /* "omacostudio.com", true */ 'o', 'm', 'a', 'c', 'o', 's', 't', 'u', 'd', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "omifind.com", true */ 'o', 'm', 'i', 'f', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "omitech.co.uk", true */ 'o', 'm', 'i', 't', 'e', 'c', 'h', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "omniasl.com", true */ 'o', 'm', 'n', 'i', 'a', 's', 'l', '.', 'c', 'o', 'm', '\0',
   /* "omnienviro.com", true */ 'o', 'm', 'n', 'i', 'e', 'n', 'v', 'i', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "omnienviro.com.au", true */ 'o', 'm', 'n', 'i', 'e', 'n', 'v', 'i', 'r', 'o', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "omniverse.ru", true */ 'o', 'm', 'n', 'i', 'v', 'e', 'r', 's', 'e', '.', 'r', 'u', '\0',
+  /* "omskit.ru", true */ 'o', 'm', 's', 'k', 'i', 't', '.', 'r', 'u', '\0',
   /* "onaboat.se", true */ 'o', 'n', 'a', 'b', 'o', 'a', 't', '.', 's', 'e', '\0',
   /* "onarto.com", true */ 'o', 'n', 'a', 'r', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ondrej.org", true */ 'o', 'n', 'd', 'r', 'e', 'j', '.', 'o', 'r', 'g', '\0',
   /* "one---line.com", true */ 'o', 'n', 'e', '-', '-', '-', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "one-pe.com", true */ 'o', 'n', 'e', '-', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "onearth.one", true */ 'o', 'n', 'e', 'a', 'r', 't', 'h', '.', 'o', 'n', 'e', '\0',
   /* "oneazcu.com", false */ 'o', 'n', 'e', 'a', 'z', 'c', 'u', '.', 'c', 'o', 'm', '\0',
   /* "oneclickloan.com", true */ 'o', 'n', 'e', 'c', 'l', 'i', 'c', 'k', 'l', 'o', 'a', 'n', '.', 'c', 'o', 'm', '\0',
@@ -9082,18 +9086,18 @@ static const char kSTSHostTable[] = {
   /* "onecycling.world", true */ 'o', 'n', 'e', 'c', 'y', 'c', 'l', 'i', 'n', 'g', '.', 'w', 'o', 'r', 'l', 'd', '\0',
   /* "onedot.nl", true */ 'o', 'n', 'e', 'd', 'o', 't', '.', 'n', 'l', '\0',
   /* "onedrive.com", true */ 'o', 'n', 'e', 'd', 'r', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "onedrive.live.com", false */ 'o', 'n', 'e', 'd', 'r', 'i', 'v', 'e', '.', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "onefour.ga", true */ 'o', 'n', 'e', 'f', 'o', 'u', 'r', '.', 'g', 'a', '\0',
   /* "onehourloan.com", true */ 'o', 'n', 'e', 'h', 'o', 'u', 'r', 'l', 'o', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "onehourloan.sg", true */ 'o', 'n', 'e', 'h', 'o', 'u', 'r', 'l', 'o', 'a', 'n', '.', 's', 'g', '\0',
   /* "oneminutefilm.tv", true */ 'o', 'n', 'e', 'm', 'i', 'n', 'u', 't', 'e', 'f', 'i', 'l', 'm', '.', 't', 'v', '\0',
-  /* "oneononeonone.de", false */ 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', '.', 'd', 'e', '\0',
-  /* "oneononeonone.tv", false */ 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', '.', 't', 'v', '\0',
+  /* "oneononeonone.de", true */ 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', '.', 'd', 'e', '\0',
+  /* "oneononeonone.tv", true */ 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', 'o', 'n', 'o', 'n', 'e', '.', 't', 'v', '\0',
   /* "oneway.ga", true */ 'o', 'n', 'e', 'w', 'a', 'y', '.', 'g', 'a', '\0',
   /* "onewaymail.com", true */ 'o', 'n', 'e', 'w', 'a', 'y', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "oneweb.hu", true */ 'o', 'n', 'e', 'w', 'e', 'b', '.', 'h', 'u', '\0',
   /* "onewebdev.info", true */ 'o', 'n', 'e', 'w', 'e', 'b', 'd', 'e', 'v', '.', 'i', 'n', 'f', 'o', '\0',
   /* "oneworldbank.com", true */ 'o', 'n', 'e', 'w', 'o', 'r', 'l', 'd', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "onguardonline.gov", true */ 'o', 'n', 'g', 'u', 'a', 'r', 'd', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'g', 'o', 'v', '\0',
   /* "onixcco.com.br", true */ 'o', 'n', 'i', 'x', 'c', 'c', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "online-bouwmaterialen.nl", true */ 'o', 'n', 'l', 'i', 'n', 'e', '-', 'b', 'o', 'u', 'w', 'm', 'a', 't', 'e', 'r', 'i', 'a', 'l', 'e', 'n', '.', 'n', 'l', '\0',
@@ -9304,16 +9308,17 @@ static const char kSTSHostTable[] = {
   /* "pap.la", false */ 'p', 'a', 'p', '.', 'l', 'a', '\0',
   /* "papa-webzeit.de", true */ 'p', 'a', 'p', 'a', '-', 'w', 'e', 'b', 'z', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "papalytics.com", true */ 'p', 'a', 'p', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "papayapythons.com", true */ 'p', 'a', 'p', 'a', 'y', 'a', 'p', 'y', 't', 'h', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "paper-republic.org", true */ 'p', 'a', 'p', 'e', 'r', '-', 'r', 'e', 'p', 'u', 'b', 'l', 'i', 'c', '.', 'o', 'r', 'g', '\0',
   /* "papercrunch.io", true */ 'p', 'a', 'p', 'e', 'r', 'c', 'r', 'u', 'n', 'c', 'h', '.', 'i', 'o', '\0',
   /* "papermasters.com", true */ 'p', 'a', 'p', 'e', 'r', 'm', 'a', 's', 't', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "paperturn.com", true */ 'p', 'a', 'p', 'e', 'r', 't', 'u', 'r', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "paperwork.co.za", true */ 'p', 'a', 'p', 'e', 'r', 'w', 'o', 'r', 'k', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "papygeek.com", true */ 'p', 'a', 'p', 'y', 'g', 'e', 'e', 'k', '.', 'c', 'o', 'm', '\0',
   /* "paraborsa.net", true */ 'p', 'a', 'r', 'a', 'b', 'o', 'r', 's', 'a', '.', 'n', 'e', 't', '\0',
   /* "paradiselost.com", true */ 'p', 'a', 'r', 'a', 'd', 'i', 's', 'e', 'l', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "paradoxdesigns.org", true */ 'p', 'a', 'r', 'a', 'd', 'o', 'x', 'd', 'e', 's', 'i', 'g', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "paragon.com.sg", true */ 'p', 'a', 'r', 'a', 'g', 'o', 'n', '.', 'c', 'o', 'm', '.', 's', 'g', '\0',
   /* "paragonie.com", false */ 'p', 'a', 'r', 'a', 'g', 'o', 'n', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "paragreen.net", true */ 'p', 'a', 'r', 'a', 'g', 'r', 'e', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "paranoxer.hu", true */ 'p', 'a', 'r', 'a', 'n', 'o', 'x', 'e', 'r', '.', 'h', 'u', '\0',
@@ -9359,16 +9364,17 @@ static const char kSTSHostTable[] = {
   /* "passvau.lt", true */ 'p', 'a', 's', 's', 'v', 'a', 'u', '.', 'l', 't', '\0',
   /* "passwd.io", true */ 'p', 'a', 's', 's', 'w', 'd', '.', 'i', 'o', '\0',
   /* "password.codes", true */ 'p', 'a', 's', 's', 'w', 'o', 'r', 'd', '.', 'c', 'o', 'd', 'e', 's', '\0',
   /* "passwords.google.com", true */ 'p', 'a', 's', 's', 'w', 'o', 'r', 'd', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pasta-factory.co.il", true */ 'p', 'a', 's', 't', 'a', '-', 'f', 'a', 'c', 't', 'o', 'r', 'y', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "pastaenprosecco.nl", true */ 'p', 'a', 's', 't', 'a', 'e', 'n', 'p', 'r', 'o', 's', 'e', 'c', 'c', 'o', '.', 'n', 'l', '\0',
   /* "pasternok.org", true */ 'p', 'a', 's', 't', 'e', 'r', 'n', 'o', 'k', '.', 'o', 'r', 'g', '\0',
   /* "pasteros.io", true */ 'p', 'a', 's', 't', 'e', 'r', 'o', 's', '.', 'i', 'o', '\0',
+  /* "pastie.se", true */ 'p', 'a', 's', 't', 'i', 'e', '.', 's', 'e', '\0',
   /* "pataua.kiwi", true */ 'p', 'a', 't', 'a', 'u', 'a', '.', 'k', 'i', 'w', 'i', '\0',
   /* "patechmasters.com", true */ 'p', 'a', 't', 'e', 'c', 'h', 'm', 'a', 's', 't', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "patentfamily.de", true */ 'p', 'a', 't', 'e', 'n', 't', 'f', 'a', 'm', 'i', 'l', 'y', '.', 'd', 'e', '\0',
   /* "paternitydnatest.com", true */ 'p', 'a', 't', 'e', 'r', 'n', 'i', 't', 'y', 'd', 'n', 'a', 't', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "patflix.com", true */ 'p', 'a', 't', 'f', 'l', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "patfs.com", true */ 'p', 'a', 't', 'f', 's', '.', 'c', 'o', 'm', '\0',
   /* "patralos.at", false */ 'p', 'a', 't', 'r', 'a', 'l', 'o', 's', '.', 'a', 't', '\0',
   /* "patrickaudley.ca", true */ 'p', 'a', 't', 'r', 'i', 'c', 'k', 'a', 'u', 'd', 'l', 'e', 'y', '.', 'c', 'a', '\0',
@@ -9534,16 +9540,17 @@ static const char kSTSHostTable[] = {
   /* "pgmann.cf", true */ 'p', 'g', 'm', 'a', 'n', 'n', '.', 'c', 'f', '\0',
   /* "pgmsource.com", true */ 'p', 'g', 'm', 's', 'o', 'u', 'r', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pgnetwork.net", true */ 'p', 'g', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "pgpmail.cc", true */ 'p', 'g', 'p', 'm', 'a', 'i', 'l', '.', 'c', 'c', '\0',
   /* "pgregg.com", false */ 'p', 'g', 'r', 'e', 'g', 'g', '.', 'c', 'o', 'm', '\0',
   /* "pgtb.be", true */ 'p', 'g', 't', 'b', '.', 'b', 'e', '\0',
   /* "ph.search.yahoo.com", false */ 'p', 'h', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "phalconist.com", true */ 'p', 'h', 'a', 'l', 'c', 'o', 'n', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
+  /* "phantasie.cc", true */ 'p', 'h', 'a', 'n', 't', 'a', 's', 'i', 'e', '.', 'c', 'c', '\0',
   /* "phantastikon.de", true */ 'p', 'h', 'a', 'n', 't', 'a', 's', 't', 'i', 'k', 'o', 'n', '.', 'd', 'e', '\0',
   /* "pharmaboard.de", true */ 'p', 'h', 'a', 'r', 'm', 'a', 'b', 'o', 'a', 'r', 'd', '.', 'd', 'e', '\0',
   /* "pharmgkb.org", true */ 'p', 'h', 'a', 'r', 'm', 'g', 'k', 'b', '.', 'o', 'r', 'g', '\0',
   /* "pharynks.com", true */ 'p', 'h', 'a', 'r', 'y', 'n', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "phcnetworks.net", true */ 'p', 'h', 'c', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'n', 'e', 't', '\0',
   /* "phenomeno-porto.com", true */ 'p', 'h', 'e', 'n', 'o', 'm', 'e', 'n', 'o', '-', 'p', 'o', 'r', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "phenomeno.nl", true */ 'p', 'h', 'e', 'n', 'o', 'm', 'e', 'n', 'o', '.', 'n', 'l', '\0',
   /* "phenomenoporto.com", true */ 'p', 'h', 'e', 'n', 'o', 'm', 'e', 'n', 'o', 'p', 'o', 'r', 't', 'o', '.', 'c', 'o', 'm', '\0',
@@ -9630,17 +9637,16 @@ static const char kSTSHostTable[] = {
   /* "pims.global", true */ 'p', 'i', 'm', 's', '.', 'g', 'l', 'o', 'b', 'a', 'l', '\0',
   /* "pimspage.nl", true */ 'p', 'i', 'm', 's', 'p', 'a', 'g', 'e', '.', 'n', 'l', '\0',
   /* "pin.net.au", true */ 'p', 'i', 'n', '.', 'n', 'e', 't', '.', 'a', 'u', '\0',
   /* "pincha.com.tw", true */ 'p', 'i', 'n', 'c', 'h', 'a', '.', 'c', 'o', 'm', '.', 't', 'w', '\0',
   /* "pincodeit.com", true */ 'p', 'i', 'n', 'c', 'o', 'd', 'e', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "pindanutjes.be", false */ 'p', 'i', 'n', 'd', 'a', 'n', 'u', 't', 'j', 'e', 's', '.', 'b', 'e', '\0',
   /* "pinkcasino.co.uk", true */ 'p', 'i', 'n', 'k', 'c', 'a', 's', 'i', 'n', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "pinkfis.ch", true */ 'p', 'i', 'n', 'k', 'f', 'i', 's', '.', 'c', 'h', '\0',
-  /* "pinkhq.com", true */ 'p', 'i', 'n', 'k', 'h', 'q', '.', 'c', 'o', 'm', '\0',
   /* "pinkinked.com", true */ 'p', 'i', 'n', 'k', 'i', 'n', 'k', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "pinkladyapples.co.uk", true */ 'p', 'i', 'n', 'k', 'l', 'a', 'd', 'y', 'a', 'p', 'p', 'l', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "pinklecfest.org", true */ 'p', 'i', 'n', 'k', 'l', 'e', 'c', 'f', 'e', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "pinnaclelife.co.nz", true */ 'p', 'i', 'n', 'n', 'a', 'c', 'l', 'e', 'l', 'i', 'f', 'e', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "pinnaclelife.nz", true */ 'p', 'i', 'n', 'n', 'a', 'c', 'l', 'e', 'l', 'i', 'f', 'e', '.', 'n', 'z', '\0',
   /* "pinoyonlinetv.com", true */ 'p', 'i', 'n', 'o', 'y', 'o', 'n', 'l', 'i', 'n', 'e', 't', 'v', '.', 'c', 'o', 'm', '\0',
   /* "pinpointengineer.co.uk", true */ 'p', 'i', 'n', 'p', 'o', 'i', 'n', 't', 'e', 'n', 'g', 'i', 'n', 'e', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "pipenny.net", true */ 'p', 'i', 'p', 'e', 'n', 'n', 'y', '.', 'n', 'e', 't', '\0',
@@ -9694,23 +9700,23 @@ static const char kSTSHostTable[] = {
   /* "plattner.club", true */ 'p', 'l', 'a', 't', 't', 'n', 'e', 'r', '.', 'c', 'l', 'u', 'b', '\0',
   /* "play.google.com", true */ 'p', 'l', 'a', 'y', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "playanka.com", true */ 'p', 'l', 'a', 'y', 'a', 'n', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "playflick.com", false */ 'p', 'l', 'a', 'y', 'f', 'l', 'i', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "playmyplay.com", true */ 'p', 'l', 'a', 'y', 'm', 'y', 'p', 'l', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "playsharp.com", true */ 'p', 'l', 'a', 'y', 's', 'h', 'a', 'r', 'p', '.', 'c', 'o', 'm', '\0',
   /* "playsprout.industries", true */ 'p', 'l', 'a', 'y', 's', 'p', 'r', 'o', 'u', 't', '.', 'i', 'n', 'd', 'u', 's', 't', 'r', 'i', 'e', 's', '\0',
   /* "please-deny.me", true */ 'p', 'l', 'e', 'a', 's', 'e', '-', 'd', 'e', 'n', 'y', '.', 'm', 'e', '\0',
+  /* "pleasure.forsale", true */ 'p', 'l', 'e', 'a', 's', 'u', 'r', 'e', '.', 'f', 'o', 'r', 's', 'a', 'l', 'e', '\0',
   /* "pleier-it.de", true */ 'p', 'l', 'e', 'i', 'e', 'r', '-', 'i', 't', '.', 'd', 'e', '\0',
   /* "pleier.it", true */ 'p', 'l', 'e', 'i', 'e', 'r', '.', 'i', 't', '\0',
   /* "plen.io", true */ 'p', 'l', 'e', 'n', '.', 'i', 'o', '\0',
   /* "plenigo.com", true */ 'p', 'l', 'e', 'n', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "plexusmd.com", true */ 'p', 'l', 'e', 'x', 'u', 's', 'm', 'd', '.', 'c', 'o', 'm', '\0',
   /* "plfgr.eu.org", true */ 'p', 'l', 'f', 'g', 'r', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
-  /* "plhdb.org", true */ 'p', 'l', 'h', 'd', 'b', '.', 'o', 'r', 'g', '\0',
   /* "pliosoft.com", true */ 'p', 'l', 'i', 'o', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '\0',
   /* "plirt.ru", false */ 'p', 'l', 'i', 'r', 't', '.', 'r', 'u', '\0',
   /* "ploader.ru", false */ 'p', 'l', 'o', 'a', 'd', 'e', 'r', '.', 'r', 'u', '\0',
   /* "plombirator.kz", true */ 'p', 'l', 'o', 'm', 'b', 'i', 'r', 'a', 't', 'o', 'r', '.', 'k', 'z', '\0',
   /* "ploxel.com", true */ 'p', 'l', 'o', 'x', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "pluff.nl", true */ 'p', 'l', 'u', 'f', 'f', '.', 'n', 'l', '\0',
   /* "pluga.co", true */ 'p', 'l', 'u', 'g', 'a', '.', 'c', 'o', '\0',
   /* "plugcubed.net", false */ 'p', 'l', 'u', 'g', 'c', 'u', 'b', 'e', 'd', '.', 'n', 'e', 't', '\0',
@@ -9749,16 +9755,17 @@ static const char kSTSHostTable[] = {
   /* "pointpro.de", true */ 'p', 'o', 'i', 'n', 't', 'p', 'r', 'o', '.', 'd', 'e', '\0',
   /* "points4unitedway.com", true */ 'p', 'o', 'i', 'n', 't', 's', '4', 'u', 'n', 'i', 't', 'e', 'd', 'w', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "pointsixtyfive.com", true */ 'p', 'o', 'i', 'n', 't', 's', 'i', 'x', 't', 'y', 'f', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "poitiers-ttacc-86.eu.org", true */ 'p', 'o', 'i', 't', 'i', 'e', 'r', 's', '-', 't', 't', 'a', 'c', 'c', '-', '8', '6', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "pokeduel.me", true */ 'p', 'o', 'k', 'e', 'd', 'u', 'e', 'l', '.', 'm', 'e', '\0',
   /* "pokefarm.com", true */ 'p', 'o', 'k', 'e', 'f', 'a', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "pokeinthe.io", true */ 'p', 'o', 'k', 'e', 'i', 'n', 't', 'h', 'e', '.', 'i', 'o', '\0',
   /* "pokemori.jp", true */ 'p', 'o', 'k', 'e', 'm', 'o', 'r', 'i', '.', 'j', 'p', '\0',
+  /* "polaire.org", true */ 'p', 'o', 'l', 'a', 'i', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "poles4pilots.com", true */ 'p', 'o', 'l', 'e', 's', '4', 'p', 'i', 'l', 'o', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "policeiwitness.sg", true */ 'p', 'o', 'l', 'i', 'c', 'e', 'i', 'w', 'i', 't', 'n', 'e', 's', 's', '.', 's', 'g', '\0',
   /* "polis.or.at", true */ 'p', 'o', 'l', 'i', 's', '.', 'o', 'r', '.', 'a', 't', '\0',
   /* "polis.to", false */ 'p', 'o', 'l', 'i', 's', '.', 't', 'o', '\0',
   /* "politic.org.ua", true */ 'p', 'o', 'l', 'i', 't', 'i', 'c', '.', 'o', 'r', 'g', '.', 'u', 'a', '\0',
   /* "politiewervingshop.nl", true */ 'p', 'o', 'l', 'i', 't', 'i', 'e', 'w', 'e', 'r', 'v', 'i', 'n', 'g', 's', 'h', 'o', 'p', '.', 'n', 'l', '\0',
   /* "pollpodium.nl", true */ 'p', 'o', 'l', 'l', 'p', 'o', 'd', 'i', 'u', 'm', '.', 'n', 'l', '\0',
   /* "polycoise.com", true */ 'p', 'o', 'l', 'y', 'c', 'o', 'i', 's', 'e', '.', 'c', 'o', 'm', '\0',
@@ -9936,17 +9943,16 @@ static const char kSTSHostTable[] = {
   /* "proofwiki.org", true */ 'p', 'r', 'o', 'o', 'f', 'w', 'i', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "proos.nl", true */ 'p', 'r', 'o', 'o', 's', '.', 'n', 'l', '\0',
   /* "propactrading.com", true */ 'p', 'r', 'o', 'p', 'a', 'c', 't', 'r', 'a', 'd', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "propagandism.org", true */ 'p', 'r', 'o', 'p', 'a', 'g', 'a', 'n', 'd', 'i', 's', 'm', '.', 'o', 'r', 'g', '\0',
   /* "propershave.com", true */ 'p', 'r', 'o', 'p', 'e', 'r', 's', 'h', 'a', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "property-catalogue.eu", true */ 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', '-', 'c', 'a', 't', 'a', 'l', 'o', 'g', 'u', 'e', '.', 'e', 'u', '\0',
   /* "propertygroup.pl", true */ 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'g', 'r', 'o', 'u', 'p', '.', 'p', 'l', '\0',
   /* "propipesystem.com", true */ 'p', 'r', 'o', 'p', 'i', 'p', 'e', 's', 'y', 's', 't', 'e', 'm', '.', 'c', 'o', 'm', '\0',
-  /* "proposalonline.com", true */ 'p', 'r', 'o', 'p', 'o', 's', 'a', 'l', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "proslimdiets.com", true */ 'p', 'r', 'o', 's', 'l', 'i', 'm', 'd', 'i', 'e', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "prospanek.cz", true */ 'p', 'r', 'o', 's', 'p', 'a', 'n', 'e', 'k', '.', 'c', 'z', '\0',
   /* "prospo.co", true */ 'p', 'r', 'o', 's', 'p', 'o', '.', 'c', 'o', '\0',
   /* "prot.ch", true */ 'p', 'r', 'o', 't', '.', 'c', 'h', '\0',
   /* "protecciondelconsumidor.gov", true */ 'p', 'r', 'o', 't', 'e', 'c', 'c', 'i', 'o', 'n', 'd', 'e', 'l', 'c', 'o', 'n', 's', 'u', 'm', 'i', 'd', 'o', 'r', '.', 'g', 'o', 'v', '\0',
   /* "proteus-tech.com", true */ 'p', 'r', 'o', 't', 'e', 'u', 's', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "protonmail.ch", true */ 'p', 'r', 'o', 't', 'o', 'n', 'm', 'a', 'i', 'l', '.', 'c', 'h', '\0',
   /* "protonmail.com", true */ 'p', 'r', 'o', 't', 'o', 'n', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
@@ -9963,17 +9969,16 @@ static const char kSTSHostTable[] = {
   /* "proxybay.top", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 't', 'o', 'p', '\0',
   /* "proxybay.tv", true */ 'p', 'r', 'o', 'x', 'y', 'b', 'a', 'y', '.', 't', 'v', '\0',
   /* "proxyportal.org", true */ 'p', 'r', 'o', 'x', 'y', 'p', 'o', 'r', 't', 'a', 'l', '.', 'o', 'r', 'g', '\0',
   /* "proxyweb.us", true */ 'p', 'r', 'o', 'x', 'y', 'w', 'e', 'b', '.', 'u', 's', '\0',
   /* "prstatic.com", true */ 'p', 'r', 's', 't', 'a', 't', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "prt.in.th", true */ 'p', 'r', 't', '.', 'i', 'n', '.', 't', 'h', '\0',
   /* "prtpe.com", true */ 'p', 'r', 't', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "prvikvadrat.hr", true */ 'p', 'r', 'v', 'i', 'k', 'v', 'a', 'd', 'r', 'a', 't', '.', 'h', 'r', '\0',
-  /* "prxio.date", true */ 'p', 'r', 'x', 'i', 'o', '.', 'd', 'a', 't', 'e', '\0',
   /* "przemas.pl", true */ 'p', 'r', 'z', 'e', 'm', 'a', 's', '.', 'p', 'l', '\0',
   /* "ps-provider.co.jp", true */ 'p', 's', '-', 'p', 'r', 'o', 'v', 'i', 'd', 'e', 'r', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "ps-w.ru", true */ 'p', 's', '-', 'w', '.', 'r', 'u', '\0',
   /* "ps-x.ru", true */ 'p', 's', '-', 'x', '.', 'r', 'u', '\0',
   /* "psb1911.com", true */ 'p', 's', 'b', '1', '9', '1', '1', '.', 'c', 'o', 'm', '\0',
   /* "psbarrett.com", true */ 'p', 's', 'b', 'a', 'r', 'r', 'e', 't', 't', '.', 'c', 'o', 'm', '\0',
   /* "psicologia.co.ve", true */ 'p', 's', 'i', 'c', 'o', 'l', 'o', 'g', 'i', 'a', '.', 'c', 'o', '.', 'v', 'e', '\0',
   /* "psncardplus.be", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 'b', 'e', '\0',
@@ -10095,24 +10100,25 @@ static const char kSTSHostTable[] = {
   /* "qr-city.org", true */ 'q', 'r', '-', 'c', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "qrlfinancial.com", true */ 'q', 'r', 'l', 'f', 'i', 'n', 'a', 'n', 'c', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "qtl.me", true */ 'q', 't', 'l', '.', 'm', 'e', '\0',
   /* "qto.com", true */ 'q', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "qtpass.org", true */ 'q', 't', 'p', 'a', 's', 's', '.', 'o', 'r', 'g', '\0',
   /* "qtpower.co.uk", true */ 'q', 't', 'p', 'o', 'w', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "qtpower.net", true */ 'q', 't', 'p', 'o', 'w', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "qtpower.org", true */ 'q', 't', 'p', 'o', 'w', 'e', 'r', '.', 'o', 'r', 'g', '\0',
-  /* "qtvr.com", false */ 'q', 't', 'v', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "qtvr.com", true */ 'q', 't', 'v', 'r', '.', 'c', 'o', 'm', '\0',
   /* "qtxh.net", true */ 'q', 't', 'x', 'h', '.', 'n', 'e', 't', '\0',
   /* "quaedam.org", true */ 'q', 'u', 'a', 'e', 'd', 'a', 'm', '.', 'o', 'r', 'g', '\0',
   /* "quai10.org", false */ 'q', 'u', 'a', 'i', '1', '0', '.', 'o', 'r', 'g', '\0',
   /* "quakelive.dk", true */ 'q', 'u', 'a', 'k', 'e', 'l', 'i', 'v', 'e', '.', 'd', 'k', '\0',
   /* "qualityedgarsolutions.com", true */ 'q', 'u', 'a', 'l', 'i', 't', 'y', 'e', 'd', 'g', 'a', 'r', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "qualityhomesystems.com", true */ 'q', 'u', 'a', 'l', 'i', 't', 'y', 'h', 'o', 'm', 'e', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "qualityofcourse.com", false */ 'q', 'u', 'a', 'l', 'i', 't', 'y', 'o', 'f', 'c', 'o', 'u', 'r', 's', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "qualityology.com", true */ 'q', 'u', 'a', 'l', 'i', 't', 'y', 'o', 'l', 'o', 'g', 'y', '.', 'c', 'o', 'm', '\0',
   /* "quanglepro.com", true */ 'q', 'u', 'a', 'n', 'g', 'l', 'e', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "quantoras.com", true */ 'q', 'u', 'a', 'n', 't', 'o', 'r', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "quantum-cloud.xyz", true */ 'q', 'u', 'a', 'n', 't', 'u', 'm', '-', 'c', 'l', 'o', 'u', 'd', '.', 'x', 'y', 'z', '\0',
   /* "quantumfurball.net", true */ 'q', 'u', 'a', 'n', 't', 'u', 'm', 'f', 'u', 'r', 'b', 'a', 'l', 'l', '.', 'n', 'e', 't', '\0',
   /* "qubyte.codes", true */ 'q', 'u', 'b', 'y', 't', 'e', '.', 'c', 'o', 'd', 'e', 's', '\0',
   /* "quchao.com", true */ 'q', 'u', 'c', 'h', 'a', 'o', '.', 'c', 'o', 'm', '\0',
   /* "quebecmailbox.com", true */ 'q', 'u', 'e', 'b', 'e', 'c', 'm', 'a', 'i', 'l', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "queercinema.ch", true */ 'q', 'u', 'e', 'e', 'r', 'c', 'i', 'n', 'e', 'm', 'a', '.', 'c', 'h', '\0',
@@ -10219,24 +10225,20 @@ static const char kSTSHostTable[] = {
   /* "rautermods.net", true */ 'r', 'a', 'u', 't', 'e', 'r', 'm', 'o', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "ravchat.com", true */ 'r', 'a', 'v', 'c', 'h', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "raven.lipetsk.ru", true */ 'r', 'a', 'v', 'e', 'n', '.', 'l', 'i', 'p', 'e', 't', 's', 'k', '.', 'r', 'u', '\0',
   /* "ravensbuch.de", true */ 'r', 'a', 'v', 'e', 'n', 's', 'b', 'u', 'c', 'h', '.', 'd', 'e', '\0',
   /* "ravindran.me", true */ 'r', 'a', 'v', 'i', 'n', 'd', 'r', 'a', 'n', '.', 'm', 'e', '\0',
   /* "ravse.dk", true */ 'r', 'a', 'v', 's', 'e', '.', 'd', 'k', '\0',
   /* "rawoil.com", true */ 'r', 'a', 'w', 'o', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "rawsec.net", true */ 'r', 'a', 'w', 's', 'e', 'c', '.', 'n', 'e', 't', '\0',
-  /* "ray-home.de", true */ 'r', 'a', 'y', '-', 'h', 'o', 'm', 'e', '.', 'd', 'e', '\0',
-  /* "ray-works.de", true */ 'r', 'a', 'y', '-', 'w', 'o', 'r', 'k', 's', '.', 'd', 'e', '\0',
   /* "raydan.space", true */ 'r', 'a', 'y', 'd', 'a', 'n', '.', 's', 'p', 'a', 'c', 'e', '\0',
-  /* "raymd.de", true */ 'r', 'a', 'y', 'm', 'd', '.', 'd', 'e', '\0',
   /* "raymii.org", true */ 'r', 'a', 'y', 'm', 'i', 'i', '.', 'o', 'r', 'g', '\0',
   /* "raymondjcox.com", true */ 'r', 'a', 'y', 'm', 'o', 'n', 'd', 'j', 'c', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "raytron.org", true */ 'r', 'a', 'y', 't', 'r', 'o', 'n', '.', 'o', 'r', 'g', '\0',
-  /* "rayworks.de", true */ 'r', 'a', 'y', 'w', 'o', 'r', 'k', 's', '.', 'd', 'e', '\0',
   /* "razlaw.name", true */ 'r', 'a', 'z', 'l', 'a', 'w', '.', 'n', 'a', 'm', 'e', '\0',
   /* "razzolini.com.br", true */ 'r', 'a', 'z', 'z', 'o', 'l', 'i', 'n', 'i', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "rbensch.com", true */ 'r', 'b', 'e', 'n', 's', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "rbhighinc.org", true */ 'r', 'b', 'h', 'i', 'g', 'h', 'i', 'n', 'c', '.', 'o', 'r', 'g', '\0',
   /* "rbose.org", true */ 'r', 'b', 'o', 's', 'e', '.', 'o', 'r', 'g', '\0',
   /* "rbqcloud.com", true */ 'r', 'b', 'q', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0',
   /* "rbtvshitstorm.is", true */ 'r', 'b', 't', 'v', 's', 'h', 'i', 't', 's', 't', 'o', 'r', 'm', '.', 'i', 's', '\0',
   /* "rburchell.com", true */ 'r', 'b', 'u', 'r', 'c', 'h', 'e', 'l', 'l', '.', 'c', 'o', 'm', '\0',
@@ -10370,17 +10372,16 @@ static const char kSTSHostTable[] = {
   /* "renrenche.com", false */ 'r', 'e', 'n', 'r', 'e', 'n', 'c', 'h', 'e', '.', 'c', 'o', 'm', '\0',
   /* "rentacarcluj.xyz", true */ 'r', 'e', 'n', 't', 'a', 'c', 'a', 'r', 'c', 'l', 'u', 'j', '.', 'x', 'y', 'z', '\0',
   /* "rentasweb.gob.ar", true */ 'r', 'e', 'n', 't', 'a', 's', 'w', 'e', 'b', '.', 'g', 'o', 'b', '.', 'a', 'r', '\0',
   /* "rentbrowser.com", true */ 'r', 'e', 'n', 't', 'b', 'r', 'o', 'w', 's', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "rentbrowsertrain.me", true */ 'r', 'e', 'n', 't', 'b', 'r', 'o', 'w', 's', 'e', 'r', 't', 'r', 'a', 'i', 'n', '.', 'm', 'e', '\0',
   /* "rentinsingapore.com.sg", true */ 'r', 'e', 'n', 't', 'i', 'n', 's', 'i', 'n', 'g', 'a', 'p', 'o', 'r', 'e', '.', 'c', 'o', 'm', '.', 's', 'g', '\0',
   /* "renuo.ch", true */ 'r', 'e', 'n', 'u', 'o', '.', 'c', 'h', '\0',
   /* "reox.at", false */ 'r', 'e', 'o', 'x', '.', 'a', 't', '\0',
-  /* "repaxan.com", true */ 'r', 'e', 'p', 'a', 'x', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "replicagunsswords.com", false */ 'r', 'e', 'p', 'l', 'i', 'c', 'a', 'g', 'u', 'n', 's', 's', 'w', 'o', 'r', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "report-uri.com", true */ 'r', 'e', 'p', 'o', 'r', 't', '-', 'u', 'r', 'i', '.', 'c', 'o', 'm', '\0',
   /* "report-uri.io", true */ 'r', 'e', 'p', 'o', 'r', 't', '-', 'u', 'r', 'i', '.', 'i', 'o', '\0',
   /* "reporturi.com", true */ 'r', 'e', 'p', 'o', 'r', 't', 'u', 'r', 'i', '.', 'c', 'o', 'm', '\0',
   /* "reporturi.io", true */ 'r', 'e', 'p', 'o', 'r', 't', 'u', 'r', 'i', '.', 'i', 'o', '\0',
   /* "republique.org", true */ 'r', 'e', 'p', 'u', 'b', 'l', 'i', 'q', 'u', 'e', '.', 'o', 'r', 'g', '\0',
   /* "repustate.com", true */ 'r', 'e', 'p', 'u', 's', 't', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "reputationweaver.com", true */ 'r', 'e', 'p', 'u', 't', 'a', 't', 'i', 'o', 'n', 'w', 'e', 'a', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -10564,16 +10565,17 @@ static const char kSTSHostTable[] = {
   /* "ron2k.za.net", true */ 'r', 'o', 'n', '2', 'k', '.', 'z', 'a', '.', 'n', 'e', 't', '\0',
   /* "rondommen.nl", true */ 'r', 'o', 'n', 'd', 'o', 'm', 'm', 'e', 'n', '.', 'n', 'l', '\0',
   /* "room208.org", true */ 'r', 'o', 'o', 'm', '2', '0', '8', '.', 'o', 'r', 'g', '\0',
   /* "roombase.nl", true */ 'r', 'o', 'o', 'm', 'b', 'a', 's', 'e', '.', 'n', 'l', '\0',
   /* "roomhub.jp", true */ 'r', 'o', 'o', 'm', 'h', 'u', 'b', '.', 'j', 'p', '\0',
   /* "roosterpgplus.nl", true */ 'r', 'o', 'o', 's', 't', 'e', 'r', 'p', 'g', 'p', 'l', 'u', 's', '.', 'n', 'l', '\0',
   /* "root.eu.org", true */ 'r', 'o', 'o', 't', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "rootrelativity.com", true */ 'r', 'o', 'o', 't', 'r', 'e', 'l', 'a', 't', 'i', 'v', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
+  /* "roots-example-project.com", true */ 'r', 'o', 'o', 't', 's', '-', 'e', 'x', 'a', 'm', 'p', 'l', 'e', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "roots.io", true */ 'r', 'o', 'o', 't', 's', '.', 'i', 'o', '\0',
   /* "rootswitch.com", true */ 'r', 'o', 'o', 't', 's', 'w', 'i', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "rop.io", false */ 'r', 'o', 'p', '.', 'i', 'o', '\0',
   /* "roquecenter.org", true */ 'r', 'o', 'q', 'u', 'e', 'c', 'e', 'n', 't', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "rose-prism.org", true */ 'r', 'o', 's', 'e', '-', 'p', 'r', 'i', 's', 'm', '.', 'o', 'r', 'g', '\0',
   /* "roseitsolutions.co.uk", true */ 'r', 'o', 's', 'e', 'i', 't', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "rosemariefloydballet.com", true */ 'r', 'o', 's', 'e', 'm', 'a', 'r', 'i', 'e', 'f', 'l', 'o', 'y', 'd', 'b', 'a', 'l', 'l', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "rosenkeller.org", true */ 'r', 'o', 's', 'e', 'n', 'k', 'e', 'l', 'l', 'e', 'r', '.', 'o', 'r', 'g', '\0',
@@ -10590,17 +10592,16 @@ static const char kSTSHostTable[] = {
   /* "rotzonline.com", true */ 'r', 'o', 't', 'z', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "roughgrain.com", true */ 'r', 'o', 'u', 'g', 'h', 'g', 'r', 'a', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "roundcube.mayfirst.org", false */ 'r', 'o', 'u', 'n', 'd', 'c', 'u', 'b', 'e', '.', 'm', 'a', 'y', 'f', 'i', 'r', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "rowancasting.ie", true */ 'r', 'o', 'w', 'a', 'n', 'c', 'a', 's', 't', 'i', 'n', 'g', '.', 'i', 'e', '\0',
   /* "rowankaag.nl", true */ 'r', 'o', 'w', 'a', 'n', 'k', 'a', 'a', 'g', '.', 'n', 'l', '\0',
   /* "rowlog.com", true */ 'r', 'o', 'w', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "royal-rangers.de", true */ 'r', 'o', 'y', 'a', 'l', '-', 'r', 'a', 'n', 'g', 'e', 'r', 's', '.', 'd', 'e', '\0',
   /* "royalacademy.org.uk", true */ 'r', 'o', 'y', 'a', 'l', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
-  /* "royalhop.co", true */ 'r', 'o', 'y', 'a', 'l', 'h', 'o', 'p', '.', 'c', 'o', '\0',
   /* "royalmarinesassociation.org.uk", true */ 'r', 'o', 'y', 'a', 'l', 'm', 'a', 'r', 'i', 'n', 'e', 's', 'a', 's', 's', 'o', 'c', 'i', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "royalpalacenogent.fr", true */ 'r', 'o', 'y', 'a', 'l', 'p', 'a', 'l', 'a', 'c', 'e', 'n', 'o', 'g', 'e', 'n', 't', '.', 'f', 'r', '\0',
   /* "royalpub.net", true */ 'r', 'o', 'y', 'a', 'l', 'p', 'u', 'b', '.', 'n', 'e', 't', '\0',
   /* "royalvisiongroup.com", true */ 'r', 'o', 'y', 'a', 'l', 'v', 'i', 's', 'i', 'o', 'n', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "royzez.com", true */ 'r', 'o', 'y', 'z', 'e', 'z', '.', 'c', 'o', 'm', '\0',
   /* "rozalisbengal.ro", true */ 'r', 'o', 'z', 'a', 'l', 'i', 's', 'b', 'e', 'n', 'g', 'a', 'l', '.', 'r', 'o', '\0',
   /* "rpgmaker.es", true */ 'r', 'p', 'g', 'm', 'a', 'k', 'e', 'r', '.', 'e', 's', '\0',
   /* "rpherbig.com", true */ 'r', 'p', 'h', 'e', 'r', 'b', 'i', 'g', '.', 'c', 'o', 'm', '\0',
@@ -10626,17 +10627,16 @@ static const char kSTSHostTable[] = {
   /* "rubendv.be", true */ 'r', 'u', 'b', 'e', 'n', 'd', 'v', '.', 'b', 'e', '\0',
   /* "rubi-ka.net", false */ 'r', 'u', 'b', 'i', '-', 'k', 'a', '.', 'n', 'e', 't', '\0',
   /* "rubysecurity.org", true */ 'r', 'u', 'b', 'y', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "rudd-o.com", true */ 'r', 'u', 'd', 'd', '-', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ruderverein-gelsenkirchen.de", true */ 'r', 'u', 'd', 'e', 'r', 'v', 'e', 'r', 'e', 'i', 'n', '-', 'g', 'e', 'l', 's', 'e', 'n', 'k', 'i', 'r', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "ruffbeatz.com", true */ 'r', 'u', 'f', 'f', 'b', 'e', 'a', 't', 'z', '.', 'c', 'o', 'm', '\0',
   /* "rugk.dedyn.io", true */ 'r', 'u', 'g', 'k', '.', 'd', 'e', 'd', 'y', 'n', '.', 'i', 'o', '\0',
   /* "rugstorene.co.uk", true */ 'r', 'u', 'g', 's', 't', 'o', 'r', 'e', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
-  /* "ruh-veit.de", true */ 'r', 'u', 'h', '-', 'v', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "ruhrmobil-e.de", true */ 'r', 'u', 'h', 'r', 'm', 'o', 'b', 'i', 'l', '-', 'e', '.', 'd', 'e', '\0',
   /* "ruig.jp", true */ 'r', 'u', 'i', 'g', '.', 'j', 'p', '\0',
   /* "ruja.dk", true */ 'r', 'u', 'j', 'a', '.', 'd', 'k', '\0',
   /* "runcarina.com", true */ 'r', 'u', 'n', 'c', 'a', 'r', 'i', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "rundumcolumn.xyz", true */ 'r', 'u', 'n', 'd', 'u', 'm', 'c', 'o', 'l', 'u', 'm', 'n', '.', 'x', 'y', 'z', '\0',
   /* "runnergrapher.com", true */ 'r', 'u', 'n', 'n', 'e', 'r', 'g', 'r', 'a', 'p', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "runreport.fr", true */ 'r', 'u', 'n', 'r', 'e', 'p', 'o', 'r', 't', '.', 'f', 'r', '\0',
   /* "runvs.io", true */ 'r', 'u', 'n', 'v', 's', '.', 'i', 'o', '\0',
@@ -10818,16 +10818,17 @@ static const char kSTSHostTable[] = {
   /* "savvytime.com", true */ 's', 'a', 'v', 'v', 'y', 't', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "say-hanabi.com", true */ 's', 'a', 'y', '-', 'h', 'a', 'n', 'a', 'b', 'i', '.', 'c', 'o', 'm', '\0',
   /* "sayprepay.com", true */ 's', 'a', 'y', 'p', 'r', 'e', 'p', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "sazima.ru", true */ 's', 'a', 'z', 'i', 'm', 'a', '.', 'r', 'u', '\0',
   /* "sazuz.cz", true */ 's', 'a', 'z', 'u', 'z', '.', 'c', 'z', '\0',
   /* "sb.im", true */ 's', 'b', '.', 'i', 'm', '\0',
   /* "sb.sb", true */ 's', 'b', '.', 's', 'b', '\0',
   /* "sber.us", true */ 's', 'b', 'e', 'r', '.', 'u', 's', '\0',
+  /* "sbiewald.de", true */ 's', 'b', 'i', 'e', 'w', 'a', 'l', 'd', '.', 'd', 'e', '\0',
   /* "sbirecruitment.co.in", true */ 's', 'b', 'i', 'r', 'e', 'c', 'r', 'u', 'i', 't', 'm', 'e', 'n', 't', '.', 'c', 'o', '.', 'i', 'n', '\0',
   /* "sbm.cloud", true */ 's', 'b', 'm', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "sbssoft.ru", true */ 's', 'b', 's', 's', 'o', 'f', 't', '.', 'r', 'u', '\0',
   /* "scaling.solutions", true */ 's', 'c', 'a', 'l', 'i', 'n', 'g', '.', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '\0',
   /* "scandicom.fi", true */ 's', 'c', 'a', 'n', 'd', 'i', 'c', 'o', 'm', '.', 'f', 'i', '\0',
   /* "scandinavia.dating", true */ 's', 'c', 'a', 'n', 'd', 'i', 'n', 'a', 'v', 'i', 'a', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "scanleasing.net", true */ 's', 'c', 'a', 'n', 'l', 'e', 'a', 's', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0',
   /* "scannabi.com", true */ 's', 'c', 'a', 'n', 'n', 'a', 'b', 'i', '.', 'c', 'o', 'm', '\0',
@@ -11053,33 +11054,33 @@ static const char kSTSHostTable[] = {
   /* "sephr.com", true */ 's', 'e', 'p', 'h', 'r', '.', 'c', 'o', 'm', '\0',
   /* "seppelec.com", true */ 's', 'e', 'p', 'p', 'e', 'l', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "septakkordeon.de", true */ 's', 'e', 'p', 't', 'a', 'k', 'k', 'o', 'r', 'd', 'e', 'o', 'n', '.', 'd', 'e', '\0',
   /* "septillion.cn", true */ 's', 'e', 'p', 't', 'i', 'l', 'l', 'i', 'o', 'n', '.', 'c', 'n', '\0',
   /* "septs.pw", true */ 's', 'e', 'p', 't', 's', '.', 'p', 'w', '\0',
   /* "sequencing.com", true */ 's', 'e', 'q', 'u', 'e', 'n', 'c', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "sequiturs.com", true */ 's', 'e', 'q', 'u', 'i', 't', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "serafin.tech", true */ 's', 'e', 'r', 'a', 'f', 'i', 'n', '.', 't', 'e', 'c', 'h', '\0',
+  /* "serathius.ovh", true */ 's', 'e', 'r', 'a', 't', 'h', 'i', 'u', 's', '.', 'o', 'v', 'h', '\0',
   /* "serbanpaun.ro", true */ 's', 'e', 'r', 'b', 'a', 'n', 'p', 'a', 'u', 'n', '.', 'r', 'o', '\0',
   /* "serenitycreams.com", true */ 's', 'e', 'r', 'e', 'n', 'i', 't', 'y', 'c', 'r', 'e', 'a', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "serf.io", true */ 's', 'e', 'r', 'f', '.', 'i', 'o', '\0',
   /* "servdiscount.com", true */ 's', 'e', 'r', 'v', 'd', 'i', 's', 'c', 'o', 'u', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "servecrypt.com", true */ 's', 'e', 'r', 'v', 'e', 'c', 'r', 'y', 'p', 't', '.', 'c', 'o', 'm', '\0',
   /* "servecrypt.net", true */ 's', 'e', 'r', 'v', 'e', 'c', 'r', 'y', 'p', 't', '.', 'n', 'e', 't', '\0',
   /* "servecrypt.ru", true */ 's', 'e', 'r', 'v', 'e', 'c', 'r', 'y', 'p', 't', '.', 'r', 'u', '\0',
   /* "servepublic.com", true */ 's', 'e', 'r', 'v', 'e', 'p', 'u', 'b', 'l', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "servepublic.org", true */ 's', 'e', 'r', 'v', 'e', 'p', 'u', 'b', 'l', 'i', 'c', '.', 'o', 'r', 'g', '\0',
   /* "server-bg.net", true */ 's', 'e', 'r', 'v', 'e', 'r', '-', 'b', 'g', '.', 'n', 'e', 't', '\0',
   /* "server-daten.de", true */ 's', 'e', 'r', 'v', 'e', 'r', '-', 'd', 'a', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "serveradminz.com", true */ 's', 'e', 'r', 'v', 'e', 'r', 'a', 'd', 'm', 'i', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "serverco.com", true */ 's', 'e', 'r', 'v', 'e', 'r', 'c', 'o', '.', 'c', 'o', 'm', '\0',
   /* "serverfrog.de", true */ 's', 'e', 'r', 'v', 'e', 'r', 'f', 'r', 'o', 'g', '.', 'd', 'e', '\0',
   /* "serveroffline.net", false */ 's', 'e', 'r', 'v', 'e', 'r', 'o', 'f', 'f', 'l', 'i', 'n', 'e', '.', 'n', 'e', 't', '\0',
   /* "serverpedia.de", true */ 's', 'e', 'r', 'v', 'e', 'r', 'p', 'e', 'd', 'i', 'a', '.', 'd', 'e', '\0',
-  /* "serverstuff.info", true */ 's', 'e', 'r', 'v', 'e', 'r', 's', 't', 'u', 'f', 'f', '.', 'i', 'n', 'f', 'o', '\0',
   /* "servertastic.com", true */ 's', 'e', 'r', 'v', 'e', 'r', 't', 'a', 's', 't', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "servethecity-karlsruhe.de", false */ 's', 'e', 'r', 'v', 'e', 't', 'h', 'e', 'c', 'i', 't', 'y', '-', 'k', 'a', 'r', 'l', 's', 'r', 'u', 'h', 'e', '.', 'd', 'e', '\0',
   /* "service.gov.uk", true */ 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0',
   /* "serviettenhaus.de", true */ 's', 'e', 'r', 'v', 'i', 'e', 't', 't', 'e', 'n', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0',
   /* "servious.org", true */ 's', 'e', 'r', 'v', 'i', 'o', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "seryo.net", true */ 's', 'e', 'r', 'y', 'o', '.', 'n', 'e', 't', '\0',
   /* "seryovpn.com", true */ 's', 'e', 'r', 'y', 'o', 'v', 'p', 'n', '.', 'c', 'o', 'm', '\0',
   /* "sesha.co.za", true */ 's', 'e', 's', 'h', 'a', '.', 'c', 'o', '.', 'z', 'a', '\0',
@@ -11196,17 +11197,16 @@ static const char kSTSHostTable[] = {
   /* "sicken.eu", true */ 's', 'i', 'c', 'k', 'e', 'n', '.', 'e', 'u', '\0',
   /* "sickfile.com", true */ 's', 'i', 'c', 'k', 'f', 'i', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "siconnect.us", true */ 's', 'i', 'c', 'o', 'n', 'n', 'e', 'c', 't', '.', 'u', 's', '\0',
   /* "sidepodcast.com", true */ 's', 'i', 'd', 'e', 'p', 'o', 'd', 'c', 'a', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "sidepodcastdaily.com", true */ 's', 'i', 'd', 'e', 'p', 'o', 'd', 'c', 'a', 's', 't', 'd', 'a', 'i', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "sideshowbarker.net", true */ 's', 'i', 'd', 'e', 's', 'h', 'o', 'w', 'b', 'a', 'r', 'k', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "sidium.de", true */ 's', 'i', 'd', 'i', 'u', 'm', '.', 'd', 'e', '\0',
   /* "sidnicio.us", true */ 's', 'i', 'd', 'n', 'i', 'c', 'i', 'o', '.', 'u', 's', '\0',
-  /* "siebeve.be", true */ 's', 'i', 'e', 'b', 'e', 'v', 'e', '.', 'b', 'e', '\0',
   /* "sieh.es", false */ 's', 'i', 'e', 'h', '.', 'e', 's', '\0',
   /* "siewert-kau.de", true */ 's', 'i', 'e', 'w', 'e', 'r', 't', '-', 'k', 'a', 'u', '.', 'd', 'e', '\0',
   /* "sift-tool.org", true */ 's', 'i', 'f', 't', '-', 't', 'o', 'o', 'l', '.', 'o', 'r', 'g', '\0',
   /* "sig6.org", true */ 's', 'i', 'g', '6', '.', 'o', 'r', 'g', '\0',
   /* "sigabrt.org", true */ 's', 'i', 'g', 'a', 'b', 'r', 't', '.', 'o', 'r', 'g', '\0',
   /* "sightcure.jp", true */ 's', 'i', 'g', 'h', 't', 'c', 'u', 'r', 'e', '.', 'j', 'p', '\0',
   /* "sighup.nz", true */ 's', 'i', 'g', 'h', 'u', 'p', '.', 'n', 'z', '\0',
   /* "signaltransmitter.de", true */ 's', 'i', 'g', 'n', 'a', 'l', 't', 'r', 'a', 'n', 's', 'm', 'i', 't', 't', 'e', 'r', '.', 'd', 'e', '\0',
@@ -11398,17 +11398,16 @@ static const char kSTSHostTable[] = {
   /* "smallchat.nl", true */ 's', 'm', 'a', 'l', 'l', 'c', 'h', 'a', 't', '.', 'n', 'l', '\0',
   /* "smalldata.tech", true */ 's', 'm', 'a', 'l', 'l', 'd', 'a', 't', 'a', '.', 't', 'e', 'c', 'h', '\0',
   /* "smalldogbreeds.net", true */ 's', 'm', 'a', 'l', 'l', 'd', 'o', 'g', 'b', 'r', 'e', 'e', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "smallhadroncollider.com", true */ 's', 'm', 'a', 'l', 'l', 'h', 'a', 'd', 'r', 'o', 'n', 'c', 'o', 'l', 'l', 'i', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "smallpath.me", true */ 's', 'm', 'a', 'l', 'l', 'p', 'a', 't', 'h', '.', 'm', 'e', '\0',
   /* "smallplanet.ch", true */ 's', 'm', 'a', 'l', 'l', 'p', 'l', 'a', 'n', 'e', 't', '.', 'c', 'h', '\0',
   /* "smalltalkconsulting.com", true */ 's', 'm', 'a', 'l', 'l', 't', 'a', 'l', 'k', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "smares.de", true */ 's', 'm', 'a', 'r', 'e', 's', '.', 'd', 'e', '\0',
-  /* "smartairkey.com", true */ 's', 'm', 'a', 'r', 't', 'a', 'i', 'r', 'k', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "smartbuyelectric.com", true */ 's', 'm', 'a', 'r', 't', 'b', 'u', 'y', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "smartcleaningcenter.nl", true */ 's', 'm', 'a', 'r', 't', 'c', 'l', 'e', 'a', 'n', 'i', 'n', 'g', 'c', 'e', 'n', 't', 'e', 'r', '.', 'n', 'l', '\0',
   /* "smartest-trading.com", true */ 's', 'm', 'a', 'r', 't', 'e', 's', 't', '-', 't', 'r', 'a', 'd', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "smartftp.com", true */ 's', 'm', 'a', 'r', 't', 'f', 't', 'p', '.', 'c', 'o', 'm', '\0',
   /* "smarthdd.com", true */ 's', 'm', 'a', 'r', 't', 'h', 'd', 'd', '.', 'c', 'o', 'm', '\0',
   /* "smarthomedna.com", true */ 's', 'm', 'a', 'r', 't', 'h', 'o', 'm', 'e', 'd', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "smarthouse.de", true */ 's', 'm', 'a', 'r', 't', 'h', 'o', 'u', 's', 'e', '.', 'd', 'e', '\0',
   /* "smartit.pro", true */ 's', 'm', 'a', 'r', 't', 'i', 't', '.', 'p', 'r', 'o', '\0',
@@ -11418,16 +11417,17 @@ static const char kSTSHostTable[] = {
   /* "smartpass.government.ae", true */ 's', 'm', 'a', 'r', 't', 'p', 'a', 's', 's', '.', 'g', 'o', 'v', 'e', 'r', 'n', 'm', 'e', 'n', 't', '.', 'a', 'e', '\0',
   /* "smartphone.continental.com", false */ 's', 'm', 'a', 'r', 't', 'p', 'h', 'o', 'n', 'e', '.', 'c', 'o', 'n', 't', 'i', 'n', 'e', 'n', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "smartpolicingplatform.com", true */ 's', 'm', 'a', 'r', 't', 'p', 'o', 'l', 'i', 'c', 'i', 'n', 'g', 'p', 'l', 'a', 't', 'f', 'o', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "smartrade.tech", true */ 's', 'm', 'a', 'r', 't', 'r', 'a', 'd', 'e', '.', 't', 'e', 'c', 'h', '\0',
   /* "smartshiftme.com", true */ 's', 'm', 'a', 'r', 't', 's', 'h', 'i', 'f', 't', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "smartship.co.jp", true */ 's', 'm', 'a', 'r', 't', 's', 'h', 'i', 'p', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "smartsparrow.com", true */ 's', 'm', 'a', 'r', 't', 's', 'p', 'a', 'r', 'r', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "smartwurk.nl", true */ 's', 'm', 'a', 'r', 't', 'w', 'u', 'r', 'k', '.', 'n', 'l', '\0',
+  /* "smatch.com", true */ 's', 'm', 'a', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "smb445.com", true */ 's', 'm', 'b', '4', '4', '5', '.', 'c', 'o', 'm', '\0',
   /* "smdavis.us", true */ 's', 'm', 'd', 'a', 'v', 'i', 's', '.', 'u', 's', '\0',
   /* "smdcn.net", true */ 's', 'm', 'd', 'c', 'n', '.', 'n', 'e', 't', '\0',
   /* "smdev.fr", true */ 's', 'm', 'd', 'e', 'v', '.', 'f', 'r', '\0',
   /* "sme-gmbh.net", true */ 's', 'm', 'e', '-', 'g', 'm', 'b', 'h', '.', 'n', 'e', 't', '\0',
   /* "smeetsengraas.com", true */ 's', 'm', 'e', 'e', 't', 's', 'e', 'n', 'g', 'r', 'a', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "smiatek.name", true */ 's', 'm', 'i', 'a', 't', 'e', 'k', '.', 'n', 'a', 'm', 'e', '\0',
   /* "smileawei.com", true */ 's', 'm', 'i', 'l', 'e', 'a', 'w', 'e', 'i', '.', 'c', 'o', 'm', '\0',
@@ -11444,33 +11444,33 @@ static const char kSTSHostTable[] = {
   /* "smoothics.at", true */ 's', 'm', 'o', 'o', 't', 'h', 'i', 'c', 's', '.', 'a', 't', '\0',
   /* "smoothics.com", true */ 's', 'm', 'o', 'o', 't', 'h', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "smoothics.eu", true */ 's', 'm', 'o', 'o', 't', 'h', 'i', 'c', 's', '.', 'e', 'u', '\0',
   /* "smorgasblog.ie", true */ 's', 'm', 'o', 'r', 'g', 'a', 's', 'b', 'l', 'o', 'g', '.', 'i', 'e', '\0',
   /* "smove.sg", true */ 's', 'm', 'o', 'v', 'e', '.', 's', 'g', '\0',
   /* "smow.com", true */ 's', 'm', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "smow.de", true */ 's', 'm', 'o', 'w', '.', 'd', 'e', '\0',
   /* "smpetrey.com", true */ 's', 'm', 'p', 'e', 't', 'r', 'e', 'y', '.', 'c', 'o', 'm', '\0',
-  /* "sms1.ro", true */ 's', 'm', 's', '1', '.', 'r', 'o', '\0',
   /* "smskeywords.co.uk", true */ 's', 'm', 's', 'k', 'e', 'y', 'w', 'o', 'r', 'd', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "smvfd.info", true */ 's', 'm', 'v', 'f', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "snakehosting.dk", false */ 's', 'n', 'a', 'k', 'e', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'd', 'k', '\0',
   /* "snapfinance.com", true */ 's', 'n', 'a', 'p', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "snazel.co.uk", true */ 's', 'n', 'a', 'z', 'e', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "snazzie.nl", true */ 's', 'n', 'a', 'z', 'z', 'i', 'e', '.', 'n', 'l', '\0',
   /* "sneakpod.de", true */ 's', 'n', 'e', 'a', 'k', 'p', 'o', 'd', '.', 'd', 'e', '\0',
   /* "sneakynote.com", true */ 's', 'n', 'e', 'a', 'k', 'y', 'n', 'o', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sneed.it", true */ 's', 'n', 'e', 'e', 'd', '.', 'i', 't', '\0',
   /* "sneedit.com", true */ 's', 'n', 'e', 'e', 'd', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "sneedit.de", true */ 's', 'n', 'e', 'e', 'd', 'i', 't', '.', 'd', 'e', '\0',
   /* "sneezry.com", true */ 's', 'n', 'e', 'e', 'z', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "snelshops.nl", true */ 's', 'n', 'e', 'l', 's', 'h', 'o', 'p', 's', '.', 'n', 'l', '\0',
   /* "snelwebshop.nl", true */ 's', 'n', 'e', 'l', 'w', 'e', 'b', 's', 'h', 'o', 'p', '.', 'n', 'l', '\0',
   /* "snelxboxlivegold.nl", true */ 's', 'n', 'e', 'l', 'x', 'b', 'o', 'x', 'l', 'i', 'v', 'e', 'g', 'o', 'l', 'd', '.', 'n', 'l', '\0',
   /* "snfdata.com", true */ 's', 'n', 'f', 'd', 'a', 't', 'a', '.', 'c', 'o', 'm', '\0',
+  /* "sniderman.eu.org", true */ 's', 'n', 'i', 'd', 'e', 'r', 'm', 'a', 'n', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "sniep.net", true */ 's', 'n', 'i', 'e', 'p', '.', 'n', 'e', 't', '\0',
   /* "snip.host", true */ 's', 'n', 'i', 'p', '.', 'h', 'o', 's', 't', '\0',
   /* "snl.no", true */ 's', 'n', 'l', '.', 'n', 'o', '\0',
   /* "snod.land", true */ 's', 'n', 'o', 'd', '.', 'l', 'a', 'n', 'd', '\0',
   /* "snoozedds.com", true */ 's', 'n', 'o', 'o', 'z', 'e', 'd', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "snoupon.com", true */ 's', 'n', 'o', 'u', 'p', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "snow-online.com", true */ 's', 'n', 'o', 'w', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "snow-online.de", true */ 's', 'n', 'o', 'w', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
@@ -11512,17 +11512,16 @@ static const char kSTSHostTable[] = {
   /* "softwaredesign.foundation", true */ 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', 'd', 'e', 's', 'i', 'g', 'n', '.', 'f', 'o', 'u', 'n', 'd', 'a', 't', 'i', 'o', 'n', '\0',
   /* "softwerk-edv.de", true */ 's', 'o', 'f', 't', 'w', 'e', 'r', 'k', '-', 'e', 'd', 'v', '.', 'd', 'e', '\0',
   /* "sogravatas.com.br", true */ 's', 'o', 'g', 'r', 'a', 'v', 'a', 't', 'a', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "sogravatas.net.br", true */ 's', 'o', 'g', 'r', 'a', 'v', 'a', 't', 'a', 's', '.', 'n', 'e', 't', '.', 'b', 'r', '\0',
   /* "sogutma.com.tr", true */ 's', 'o', 'g', 'u', 't', 'm', 'a', '.', 'c', 'o', 'm', '.', 't', 'r', '\0',
   /* "soia.ca", true */ 's', 'o', 'i', 'a', '.', 'c', 'a', '\0',
   /* "sojingle.net", true */ 's', 'o', 'j', 'i', 'n', 'g', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "soju.fi", true */ 's', 'o', 'j', 'u', '.', 'f', 'i', '\0',
-  /* "sokche.com", true */ 's', 'o', 'k', 'c', 'h', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sokkenhoek.nl", true */ 's', 'o', 'k', 'k', 'e', 'n', 'h', 'o', 'e', 'k', '.', 'n', 'l', '\0',
   /* "sokolkarvina.cz", true */ 's', 'o', 'k', 'o', 'l', 'k', 'a', 'r', 'v', 'i', 'n', 'a', '.', 'c', 'z', '\0',
   /* "sol-3.de", true */ 's', 'o', 'l', '-', '3', '.', 'd', 'e', '\0',
   /* "sol-computers.es", true */ 's', 'o', 'l', '-', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 's', '.', 'e', 's', '\0',
   /* "sol24.net", true */ 's', 'o', 'l', '2', '4', '.', 'n', 'e', 't', '\0',
   /* "solar-ec.com", true */ 's', 'o', 'l', 'a', 'r', '-', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "solariiknight.org", true */ 's', 'o', 'l', 'a', 'r', 'i', 'i', 'k', 'n', 'i', 'g', 'h', 't', '.', 'o', 'r', 'g', '\0',
   /* "soldecom.com", true */ 's', 'o', 'l', 'd', 'e', 'c', 'o', 'm', '.', 'c', 'o', 'm', '\0',
@@ -11686,17 +11685,16 @@ static const char kSTSHostTable[] = {
   /* "square-src.de", true */ 's', 'q', 'u', 'a', 'r', 'e', '-', 's', 'r', 'c', '.', 'd', 'e', '\0',
   /* "square.com", false */ 's', 'q', 'u', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "squareonebgc.com.ph", true */ 's', 'q', 'u', 'a', 'r', 'e', 'o', 'n', 'e', 'b', 'g', 'c', '.', 'c', 'o', 'm', '.', 'p', 'h', '\0',
   /* "squareup.com", false */ 's', 'q', 'u', 'a', 'r', 'e', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "squawk.cc", true */ 's', 'q', 'u', 'a', 'w', 'k', '.', 'c', 'c', '\0',
   /* "squeezemetrics.com", true */ 's', 'q', 'u', 'e', 'e', 'z', 'e', 'm', 'e', 't', 'r', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "src.fedoraproject.org", true */ 's', 'r', 'c', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "srchub.org", true */ 's', 'r', 'c', 'h', 'u', 'b', '.', 'o', 'r', 'g', '\0',
-  /* "sritest.io", true */ 's', 'r', 'i', 't', 'e', 's', 't', '.', 'i', 'o', '\0',
   /* "sro.center", true */ 's', 'r', 'o', '.', 'c', 'e', 'n', 't', 'e', 'r', '\0',
   /* "srpdb.com", true */ 's', 'r', 'p', 'd', 'b', '.', 'c', 'o', 'm', '\0',
   /* "srv47.de", true */ 's', 'r', 'v', '4', '7', '.', 'd', 'e', '\0',
   /* "ss-x.ru", true */ 's', 's', '-', 'x', '.', 'r', 'u', '\0',
   /* "ss.lv", true */ 's', 's', '.', 'l', 'v', '\0',
   /* "ssa.gov", false */ 's', 's', 'a', '.', 'g', 'o', 'v', '\0',
   /* "ssbrm.ch", true */ 's', 's', 'b', 'r', 'm', '.', 'c', 'h', '\0',
   /* "sscd.no", true */ 's', 's', 'c', 'd', '.', 'n', 'o', '\0',
@@ -11894,17 +11892,17 @@ static const char kSTSHostTable[] = {
   /* "studentloans.gov", true */ 's', 't', 'u', 'd', 'e', 'n', 't', 'l', 'o', 'a', 'n', 's', '.', 'g', 'o', 'v', '\0',
   /* "studer.su", true */ 's', 't', 'u', 'd', 'e', 'r', '.', 's', 'u', '\0',
   /* "studienportal.eu", true */ 's', 't', 'u', 'd', 'i', 'e', 'n', 'p', 'o', 'r', 't', 'a', 'l', '.', 'e', 'u', '\0',
   /* "studinf.xyz", true */ 's', 't', 'u', 'd', 'i', 'n', 'f', '.', 'x', 'y', 'z', '\0',
   /* "studio-panic.com", true */ 's', 't', 'u', 'd', 'i', 'o', '-', 'p', 'a', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "studiodewit.nl", true */ 's', 't', 'u', 'd', 'i', 'o', 'd', 'e', 'w', 'i', 't', '.', 'n', 'l', '\0',
   /* "studiomarcella.com", true */ 's', 't', 'u', 'd', 'i', 'o', 'm', 'a', 'r', 'c', 'e', 'l', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "studiostawki.com", true */ 's', 't', 'u', 'd', 'i', 'o', 's', 't', 'a', 'w', 'k', 'i', '.', 'c', 'o', 'm', '\0',
-  /* "studiostudio.net", false */ 's', 't', 'u', 'd', 'i', 'o', 's', 't', 'u', 'd', 'i', 'o', '.', 'n', 'e', 't', '\0',
+  /* "studiostudio.net", true */ 's', 't', 'u', 'd', 'i', 'o', 's', 't', 'u', 'd', 'i', 'o', '.', 'n', 'e', 't', '\0',
   /* "studiozelden.com", true */ 's', 't', 'u', 'd', 'i', 'o', 'z', 'e', 'l', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "studlan.no", true */ 's', 't', 'u', 'd', 'l', 'a', 'n', '.', 'n', 'o', '\0',
   /* "studyhub.cf", true */ 's', 't', 'u', 'd', 'y', 'h', 'u', 'b', '.', 'c', 'f', '\0',
   /* "stuermer.me", true */ 's', 't', 'u', 'e', 'r', 'm', 'e', 'r', '.', 'm', 'e', '\0',
   /* "stulda.cz", true */ 's', 't', 'u', 'l', 'd', 'a', '.', 'c', 'z', '\0',
   /* "stumf.si", true */ 's', 't', 'u', 'm', 'f', '.', 's', 'i', '\0',
   /* "stuntmen.xyz", true */ 's', 't', 'u', 'n', 't', 'm', 'e', 'n', '.', 'x', 'y', 'z', '\0',
   /* "stupendous.net", true */ 's', 't', 'u', 'p', 'e', 'n', 'd', 'o', 'u', 's', '.', 'n', 'e', 't', '\0',
@@ -11940,19 +11938,17 @@ static const char kSTSHostTable[] = {
   /* "sufix.cz", true */ 's', 'u', 'f', 'i', 'x', '.', 'c', 'z', '\0',
   /* "suitocracy.com", true */ 's', 'u', 'i', 't', 'o', 'c', 'r', 'a', 'c', 'y', '.', 'c', 'o', 'm', '\0',
   /* "suki.moe", true */ 's', 'u', 'k', 'i', '.', 'm', 'o', 'e', '\0',
   /* "sulek.eu", true */ 's', 'u', 'l', 'e', 'k', '.', 'e', 'u', '\0',
   /* "summitbankofkc.com", true */ 's', 'u', 'm', 'm', 'i', 't', 'b', 'a', 'n', 'k', 'o', 'f', 'k', 'c', '.', 'c', 'o', 'm', '\0',
   /* "sunbritetv.com", true */ 's', 'u', 'n', 'b', 'r', 'i', 't', 'e', 't', 'v', '.', 'c', 'o', 'm', '\0',
   /* "sundayfundayjapan.com", true */ 's', 'u', 'n', 'd', 'a', 'y', 'f', 'u', 'n', 'd', 'a', 'y', 'j', 'a', 'p', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "suneilpatel.com", true */ 's', 'u', 'n', 'e', 'i', 'l', 'p', 'a', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0',
-  /* "sunflyer.cn", false */ 's', 'u', 'n', 'f', 'l', 'y', 'e', 'r', '.', 'c', 'n', '\0',
   /* "sunjaydhama.com", true */ 's', 'u', 'n', 'j', 'a', 'y', 'd', 'h', 'a', 'm', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "sunnyfruit.ru", true */ 's', 'u', 'n', 'n', 'y', 'f', 'r', 'u', 'i', 't', '.', 'r', 'u', '\0',
   /* "sunsetwx.com", true */ 's', 'u', 'n', 's', 'e', 't', 'w', 'x', '.', 'c', 'o', 'm', '\0',
   /* "sunstar.bg", true */ 's', 'u', 'n', 's', 't', 'a', 'r', '.', 'b', 'g', '\0',
   /* "sunyanzi.tk", true */ 's', 'u', 'n', 'y', 'a', 'n', 'z', 'i', '.', 't', 'k', '\0',
   /* "suos.io", true */ 's', 'u', 'o', 's', '.', 'i', 'o', '\0',
   /* "supastuds.com", true */ 's', 'u', 'p', 'a', 's', 't', 'u', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "supcro.com", true */ 's', 'u', 'p', 'c', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "super-o-blog.com", true */ 's', 'u', 'p', 'e', 'r', '-', 'o', '-', 'b', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "superbart.nl", true */ 's', 'u', 'p', 'e', 'r', 'b', 'a', 'r', 't', '.', 'n', 'l', '\0',
@@ -11960,18 +11956,18 @@ static const char kSTSHostTable[] = {
   /* "superbshare.com", true */ 's', 'u', 'p', 'e', 'r', 'b', 's', 'h', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "supercentenarian.com", true */ 's', 'u', 'p', 'e', 'r', 'c', 'e', 'n', 't', 'e', 'n', 'a', 'r', 'i', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "superhome.com.au", true */ 's', 'u', 'p', 'e', 'r', 'h', 'o', 'm', 'e', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "superkonsult.se", true */ 's', 'u', 'p', 'e', 'r', 'k', 'o', 'n', 's', 'u', 'l', 't', '.', 's', 'e', '\0',
   /* "supermarx.nl", true */ 's', 'u', 'p', 'e', 'r', 'm', 'a', 'r', 'x', '.', 'n', 'l', '\0',
   /* "supernt.lt", true */ 's', 'u', 'p', 'e', 'r', 'n', 't', '.', 'l', 't', '\0',
   /* "superpase.com", true */ 's', 'u', 'p', 'e', 'r', 'p', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "supersecurefancydomain.com", true */ 's', 'u', 'p', 'e', 'r', 's', 'e', 'c', 'u', 'r', 'e', 'f', 'a', 'n', 'c', 'y', 'd', 'o', 'm', 'a', 'i', 'n', '.', 'c', 'o', 'm', '\0',
-  /* "supersonnig-festival.de", false */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', '-', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
-  /* "supersonnigfestival.de", false */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
+  /* "supersonnig-festival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', '-', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
+  /* "supersonnigfestival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
   /* "superswingtrainer.com", true */ 's', 'u', 'p', 'e', 'r', 's', 'w', 'i', 'n', 'g', 't', 'r', 'a', 'i', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "superuser.fi", true */ 's', 'u', 'p', 'e', 'r', 'u', 's', 'e', 'r', '.', 'f', 'i', '\0',
   /* "supinbot.ovh", false */ 's', 'u', 'p', 'i', 'n', 'b', 'o', 't', '.', 'o', 'v', 'h', '\0',
   /* "supplies24.at", true */ 's', 'u', 'p', 'p', 'l', 'i', 'e', 's', '2', '4', '.', 'a', 't', '\0',
   /* "supplies24.es", true */ 's', 'u', 'p', 'p', 'l', 'i', 'e', 's', '2', '4', '.', 'e', 's', '\0',
   /* "support.mayfirst.org", false */ 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'm', 'a', 'y', 'f', 'i', 'r', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "sur-v.com", true */ 's', 'u', 'r', '-', 'v', '.', 'c', 'o', 'm', '\0',
   /* "surfone-leucate.com", true */ 's', 'u', 'r', 'f', 'o', 'n', 'e', '-', 'l', 'e', 'u', 'c', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -12040,17 +12036,16 @@ static const char kSTSHostTable[] = {
   /* "synchrocube.com", true */ 's', 'y', 'n', 'c', 'h', 'r', 'o', 'c', 'u', 'b', 'e', '.', 'c', 'o', 'm', '\0',
   /* "synchtu.be", false */ 's', 'y', 'n', 'c', 'h', 't', 'u', '.', 'b', 'e', '\0',
   /* "syncmylife.net", true */ 's', 'y', 'n', 'c', 'm', 'y', 'l', 'i', 'f', 'e', '.', 'n', 'e', 't', '\0',
   /* "syncrise.co.jp", true */ 's', 'y', 'n', 'c', 'r', 'i', 's', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "syndic-discount.fr", false */ 's', 'y', 'n', 'd', 'i', 'c', '-', 'd', 'i', 's', 'c', 'o', 'u', 'n', 't', '.', 'f', 'r', '\0',
   /* "synfin.org", true */ 's', 'y', 'n', 'f', 'i', 'n', '.', 'o', 'r', 'g', '\0',
   /* "synony.me", true */ 's', 'y', 'n', 'o', 'n', 'y', '.', 'm', 'e', '\0',
   /* "syntaxnightmare.com", true */ 's', 'y', 'n', 't', 'a', 'x', 'n', 'i', 'g', 'h', 't', 'm', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "syntheticmotoroil.org", true */ 's', 'y', 'n', 't', 'h', 'e', 't', 'i', 'c', 'm', 'o', 't', 'o', 'r', 'o', 'i', 'l', '.', 'o', 'r', 'g', '\0',
   /* "syriatalk.biz", true */ 's', 'y', 'r', 'i', 'a', 't', 'a', 'l', 'k', '.', 'b', 'i', 'z', '\0',
   /* "syriatalk.org", true */ 's', 'y', 'r', 'i', 'a', 't', 'a', 'l', 'k', '.', 'o', 'r', 'g', '\0',
   /* "syrocon.ch", true */ 's', 'y', 'r', 'o', 'c', 'o', 'n', '.', 'c', 'h', '\0',
   /* "sys.tf", true */ 's', 'y', 's', '.', 't', 'f', '\0',
   /* "sysadmins.ro", true */ 's', 'y', 's', 'a', 'd', 'm', 'i', 'n', 's', '.', 'r', 'o', '\0',
   /* "sysctl.se", false */ 's', 'y', 's', 'c', 't', 'l', '.', 's', 'e', '\0',
   /* "sysdb.io", true */ 's', 'y', 's', 'd', 'b', '.', 'i', 'o', '\0',
   /* "sysert.tv", true */ 's', 'y', 's', 'e', 'r', 't', '.', 't', 'v', '\0',
@@ -12089,17 +12084,16 @@ static const char kSTSHostTable[] = {
   /* "tadcastercircuit.org.uk", true */ 't', 'a', 'd', 'c', 'a', 's', 't', 'e', 'r', 'c', 'i', 'r', 'c', 'u', 'i', 't', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "tadu.de", true */ 't', 'a', 'd', 'u', '.', 'd', 'e', '\0',
   /* "taglioepiega.com", true */ 't', 'a', 'g', 'l', 'i', 'o', 'e', 'p', 'i', 'e', 'g', 'a', '.', 'c', 'o', 'm', '\0',
   /* "taglioepiega.eu", true */ 't', 'a', 'g', 'l', 'i', 'o', 'e', 'p', 'i', 'e', 'g', 'a', '.', 'e', 'u', '\0',
   /* "taglioepiega.it", true */ 't', 'a', 'g', 'l', 'i', 'o', 'e', 'p', 'i', 'e', 'g', 'a', '.', 'i', 't', '\0',
   /* "tahf.net", true */ 't', 'a', 'h', 'f', '.', 'n', 'e', 't', '\0',
   /* "tailify.com", true */ 't', 'a', 'i', 'l', 'i', 'f', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tailpuff.net", true */ 't', 'a', 'i', 'l', 'p', 'u', 'f', 'f', '.', 'n', 'e', 't', '\0',
-  /* "tails.com.ar", true */ 't', 'a', 'i', 'l', 's', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0',
   /* "taiwan.dating", true */ 't', 'a', 'i', 'w', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "taiwantour.info", true */ 't', 'a', 'i', 'w', 'a', 'n', 't', 'o', 'u', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "take1give1.com", false */ 't', 'a', 'k', 'e', '1', 'g', 'i', 'v', 'e', '1', '.', 'c', 'o', 'm', '\0',
   /* "taken.pl", true */ 't', 'a', 'k', 'e', 'n', '.', 'p', 'l', '\0',
   /* "takeshifujimoto.com", true */ 't', 'a', 'k', 'e', 's', 'h', 'i', 'f', 'u', 'j', 'i', 'm', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "takk.pl", true */ 't', 'a', 'k', 'k', '.', 'p', 'l', '\0',
   /* "takkaaaaa.com", true */ 't', 'a', 'k', 'k', 'a', 'a', 'a', 'a', 'a', '.', 'c', 'o', 'm', '\0',
   /* "takumi-s.net", true */ 't', 'a', 'k', 'u', 'm', 'i', '-', 's', '.', 'n', 'e', 't', '\0',
@@ -12108,17 +12102,16 @@ static const char kSTSHostTable[] = {
   /* "talado.gr", false */ 't', 'a', 'l', 'a', 'd', 'o', '.', 'g', 'r', '\0',
   /* "talentcast.nl", true */ 't', 'a', 'l', 'e', 'n', 't', 'c', 'a', 's', 't', '.', 'n', 'l', '\0',
   /* "talentos.pt", true */ 't', 'a', 'l', 'e', 'n', 't', 'o', 's', '.', 'p', 't', '\0',
   /* "taler.net", true */ 't', 'a', 'l', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "talideon.com", false */ 't', 'a', 'l', 'i', 'd', 'e', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "talk.google.com", true */ 't', 'a', 'l', 'k', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "talkgadget.google.com", true */ 't', 'a', 'l', 'k', 'g', 'a', 'd', 'g', 'e', 't', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "talklifestyle.nl", true */ 't', 'a', 'l', 'k', 'l', 'i', 'f', 'e', 's', 't', 'y', 'l', 'e', '.', 'n', 'l', '\0',
-  /* "talsi.eu", true */ 't', 'a', 'l', 's', 'i', '.', 'e', 'u', '\0',
   /* "talun.de", true */ 't', 'a', 'l', 'u', 'n', '.', 'd', 'e', '\0',
   /* "tamasszabo.net", true */ 't', 'a', 'm', 'a', 's', 's', 'z', 'a', 'b', 'o', '.', 'n', 'e', 't', '\0',
   /* "tamchunho.com", true */ 't', 'a', 'm', 'c', 'h', 'u', 'n', 'h', 'o', '.', 'c', 'o', 'm', '\0',
   /* "tamex.xyz", true */ 't', 'a', 'm', 'e', 'x', '.', 'x', 'y', 'z', '\0',
   /* "tammy.pro", true */ 't', 'a', 'm', 'm', 'y', '.', 'p', 'r', 'o', '\0',
   /* "tangibilizing.com", true */ 't', 'a', 'n', 'g', 'i', 'b', 'i', 'l', 'i', 'z', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "tangiblesecurity.com", true */ 't', 'a', 'n', 'g', 'i', 'b', 'l', 'e', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "taniesianie.pl", true */ 't', 'a', 'n', 'i', 'e', 's', 'i', 'a', 'n', 'i', 'e', '.', 'p', 'l', '\0',
@@ -12219,17 +12212,16 @@ static const char kSTSHostTable[] = {
   /* "techorbiter.com", true */ 't', 'e', 'c', 'h', 'o', 'r', 'b', 'i', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "techpivot.net", true */ 't', 'e', 'c', 'h', 'p', 'i', 'v', 'o', 't', '.', 'n', 'e', 't', '\0',
   /* "techtalks.no", true */ 't', 'e', 'c', 'h', 't', 'a', 'l', 'k', 's', '.', 'n', 'o', '\0',
   /* "techwords.io", true */ 't', 'e', 'c', 'h', 'w', 'o', 'r', 'd', 's', '.', 'i', 'o', '\0',
   /* "tecnogaming.com", true */ 't', 'e', 'c', 'n', 'o', 'g', 'a', 'm', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "tecture.de", true */ 't', 'e', 'c', 't', 'u', 'r', 'e', '.', 'd', 'e', '\0',
   /* "teddy.ch", true */ 't', 'e', 'd', 'd', 'y', '.', 'c', 'h', '\0',
   /* "tedeh.net", true */ 't', 'e', 'd', 'e', 'h', '.', 'n', 'e', 't', '\0',
-  /* "tedovo.com", true */ 't', 'e', 'd', 'o', 'v', 'o', '.', 'c', 'o', 'm', '\0',
   /* "tee-idf.net", true */ 't', 'e', 'e', '-', 'i', 'd', 'f', '.', 'n', 'e', 't', '\0',
   /* "teebeedee.org", true */ 't', 'e', 'e', 'b', 'e', 'e', 'd', 'e', 'e', '.', 'o', 'r', 'g', '\0',
   /* "teemo.gg", true */ 't', 'e', 'e', 'm', 'o', '.', 'g', 'g', '\0',
   /* "teemperor.de", true */ 't', 'e', 'e', 'm', 'p', 'e', 'r', 'o', 'r', '.', 'd', 'e', '\0',
   /* "tege-elektronik.hu", true */ 't', 'e', 'g', 'e', '-', 'e', 'l', 'e', 'k', 't', 'r', 'o', 'n', 'i', 'k', '.', 'h', 'u', '\0',
   /* "tehotuotanto.net", true */ 't', 'e', 'h', 'o', 't', 'u', 'o', 't', 'a', 'n', 't', 'o', '.', 'n', 'e', 't', '\0',
   /* "tehrabbitt.com", false */ 't', 'e', 'h', 'r', 'a', 'b', 'b', 'i', 't', 't', '.', 'c', 'o', 'm', '\0',
   /* "teknologi.or.id", true */ 't', 'e', 'k', 'n', 'o', 'l', 'o', 'g', 'i', '.', 'o', 'r', '.', 'i', 'd', '\0',
@@ -12339,16 +12331,17 @@ static const char kSTSHostTable[] = {
   /* "thecitywarehouse.clothing", true */ 't', 'h', 'e', 'c', 'i', 't', 'y', 'w', 'a', 'r', 'e', 'h', 'o', 'u', 's', 'e', '.', 'c', 'l', 'o', 't', 'h', 'i', 'n', 'g', '\0',
   /* "thecloudmigrator.com", true */ 't', 'h', 'e', 'c', 'l', 'o', 'u', 'd', 'm', 'i', 'g', 'r', 'a', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "theclubjersey.com", true */ 't', 'h', 'e', 'c', 'l', 'u', 'b', 'j', 'e', 'r', 's', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "thecondobuyers.com", true */ 't', 'h', 'e', 'c', 'o', 'n', 'd', 'o', 'b', 'u', 'y', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "thecustomizewindows.com", true */ 't', 'h', 'e', 'c', 'u', 's', 't', 'o', 'm', 'i', 'z', 'e', 'w', 'i', 'n', 'd', 'o', 'w', 's', '.', 'c', 'o', 'm', '\0',
   /* "thedark1337.com", true */ 't', 'h', 'e', 'd', 'a', 'r', 'k', '1', '3', '3', '7', '.', 'c', 'o', 'm', '\0',
   /* "thedarkartsandcrafts.com", true */ 't', 'h', 'e', 'd', 'a', 'r', 'k', 'a', 'r', 't', 's', 'a', 'n', 'd', 'c', 'r', 'a', 'f', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "thedevrycommonsbrasil.com", true */ 't', 'h', 'e', 'd', 'e', 'v', 'r', 'y', 'c', 'o', 'm', 'm', 'o', 'n', 's', 'b', 'r', 'a', 's', 'i', 'l', '.', 'c', 'o', 'm', '\0',
+  /* "thedisc.nl", true */ 't', 'h', 'e', 'd', 'i', 's', 'c', '.', 'n', 'l', '\0',
   /* "thedocumentrefinery.com", true */ 't', 'h', 'e', 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'r', 'e', 'f', 'i', 'n', 'e', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "thedreamtravelgroup.co.uk", true */ 't', 'h', 'e', 'd', 'r', 'e', 'a', 'm', 't', 'r', 'a', 'v', 'e', 'l', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "thedutchmarketers.com", true */ 't', 'h', 'e', 'd', 'u', 't', 'c', 'h', 'm', 'a', 'r', 'k', 'e', 't', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "theescapistswiki.com", true */ 't', 'h', 'e', 'e', 's', 'c', 'a', 'p', 'i', 's', 't', 's', 'w', 'i', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "theeyeopener.com", true */ 't', 'h', 'e', 'e', 'y', 'e', 'o', 'p', 'e', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "thefarbeyond.com", true */ 't', 'h', 'e', 'f', 'a', 'r', 'b', 'e', 'y', 'o', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "theflowerbasketonline.com", true */ 't', 'h', 'e', 'f', 'l', 'o', 'w', 'e', 'r', 'b', 'a', 's', 'k', 'e', 't', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "theflyingbear.net", true */ 't', 'h', 'e', 'f', 'l', 'y', 'i', 'n', 'g', 'b', 'e', 'a', 'r', '.', 'n', 'e', 't', '\0',
@@ -12612,17 +12605,16 @@ static const char kSTSHostTable[] = {
   /* "toles-sur-mesure.fr", true */ 't', 'o', 'l', 'e', 's', '-', 's', 'u', 'r', '-', 'm', 'e', 's', 'u', 'r', 'e', '.', 'f', 'r', '\0',
   /* "tollsjekk.no", true */ 't', 'o', 'l', 'l', 's', 'j', 'e', 'k', 'k', '.', 'n', 'o', '\0',
   /* "tom-geiger.de", true */ 't', 'o', 'm', '-', 'g', 'e', 'i', 'g', 'e', 'r', '.', 'd', 'e', '\0',
   /* "tom.horse", true */ 't', 'o', 'm', '.', 'h', 'o', 'r', 's', 'e', '\0',
   /* "tomandshirley.com", true */ 't', 'o', 'm', 'a', 'n', 'd', 's', 'h', 'i', 'r', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tomasjacik.cz", true */ 't', 'o', 'm', 'a', 's', 'j', 'a', 'c', 'i', 'k', '.', 'c', 'z', '\0',
   /* "tomask.info", true */ 't', 'o', 'm', 'a', 's', 'k', '.', 'i', 'n', 'f', 'o', '\0',
   /* "tomaspialek.cz", true */ 't', 'o', 'm', 'a', 's', 'p', 'i', 'a', 'l', 'e', 'k', '.', 'c', 'z', '\0',
-  /* "tomatenaufdenaugen.de", true */ 't', 'o', 'm', 'a', 't', 'e', 'n', 'a', 'u', 'f', 'd', 'e', 'n', 'a', 'u', 'g', 'e', 'n', '.', 'd', 'e', '\0',
   /* "tomaw.net", true */ 't', 'o', 'm', 'a', 'w', '.', 'n', 'e', 't', '\0',
   /* "tombaker.me", true */ 't', 'o', 'm', 'b', 'a', 'k', 'e', 'r', '.', 'm', 'e', '\0',
   /* "tombrossman.com", true */ 't', 'o', 'm', 'b', 'r', 'o', 's', 's', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "tomcort.com", true */ 't', 'o', 'm', 'c', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "tomend.es", true */ 't', 'o', 'm', 'e', 'n', 'd', '.', 'e', 's', '\0',
   /* "tomfisher.eu", true */ 't', 'o', 'm', 'f', 'i', 's', 'h', 'e', 'r', '.', 'e', 'u', '\0',
   /* "tomli.me", true */ 't', 'o', 'm', 'l', 'i', '.', 'm', 'e', '\0',
   /* "tomm.yt", true */ 't', 'o', 'm', 'm', '.', 'y', 't', '\0',
@@ -12873,26 +12865,25 @@ static const char kSTSHostTable[] = {
   /* "tucny.com", true */ 't', 'u', 'c', 'n', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tucuxi.org", true */ 't', 'u', 'c', 'u', 'x', 'i', '.', 'o', 'r', 'g', '\0',
   /* "tuitle.com", true */ 't', 'u', 'i', 't', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "tuja.hu", true */ 't', 'u', 'j', 'a', '.', 'h', 'u', '\0',
   /* "tumedico.es", true */ 't', 'u', 'm', 'e', 'd', 'i', 'c', 'o', '.', 'e', 's', '\0',
   /* "tumelum.de", true */ 't', 'u', 'm', 'e', 'l', 'u', 'm', '.', 'd', 'e', '\0',
   /* "tumutanzi.com", true */ 't', 'u', 'm', 'u', 't', 'a', 'n', 'z', 'i', '.', 'c', 'o', 'm', '\0',
   /* "tunebitfm.de", true */ 't', 'u', 'n', 'e', 'b', 'i', 't', 'f', 'm', '.', 'd', 'e', '\0',
-  /* "tunefish-entertainment.de", false */ 't', 'u', 'n', 'e', 'f', 'i', 's', 'h', '-', 'e', 'n', 't', 'e', 'r', 't', 'a', 'i', 'n', 'm', 'e', 'n', 't', '.', 'd', 'e', '\0',
+  /* "tunefish-entertainment.de", true */ 't', 'u', 'n', 'e', 'f', 'i', 's', 'h', '-', 'e', 'n', 't', 'e', 'r', 't', 'a', 'i', 'n', 'm', 'e', 'n', 't', '.', 'd', 'e', '\0',
   /* "tunnelblick.net", true */ 't', 'u', 'n', 'n', 'e', 'l', 'b', 'l', 'i', 'c', 'k', '.', 'n', 'e', 't', '\0',
   /* "tunnelwatch.com", true */ 't', 'u', 'n', 'n', 'e', 'l', 'w', 'a', 't', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "tuntitili.fi", true */ 't', 'u', 'n', 't', 'i', 't', 'i', 'l', 'i', '.', 'f', 'i', '\0',
   /* "turbobit.ch", true */ 't', 'u', 'r', 'b', 'o', 'b', 'i', 't', '.', 'c', 'h', '\0',
   /* "turniker.ru", true */ 't', 'u', 'r', 'n', 'i', 'k', 'e', 'r', '.', 'r', 'u', '\0',
   /* "turnoffthelights.com", true */ 't', 'u', 'r', 'n', 'o', 'f', 'f', 't', 'h', 'e', 'l', 'i', 'g', 'h', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "tursiae.org", true */ 't', 'u', 'r', 's', 'i', 'a', 'e', '.', 'o', 'r', 'g', '\0',
   /* "turtle.ai", true */ 't', 'u', 'r', 't', 'l', 'e', '.', 'a', 'i', '\0',
-  /* "turtleduckstudios.com", true */ 't', 'u', 'r', 't', 'l', 'e', 'd', 'u', 'c', 'k', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "turtlementors.com", true */ 't', 'u', 'r', 't', 'l', 'e', 'm', 'e', 'n', 't', 'o', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "tutorialinux.com", true */ 't', 'u', 't', 'o', 'r', 'i', 'a', 'l', 'i', 'n', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "tuxcloud.net", true */ 't', 'u', 'x', 'c', 'l', 'o', 'u', 'd', '.', 'n', 'e', 't', '\0',
   /* "tuxflow.de", true */ 't', 'u', 'x', 'f', 'l', 'o', 'w', '.', 'd', 'e', '\0',
   /* "tuxgeo.com", false */ 't', 'u', 'x', 'g', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "tuxie.com", true */ 't', 'u', 'x', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "tuxplace.nl", true */ 't', 'u', 'x', 'p', 'l', 'a', 'c', 'e', '.', 'n', 'l', '\0',
   /* "tuxz.net", true */ 't', 'u', 'x', 'z', '.', 'n', 'e', 't', '\0',
@@ -13691,16 +13682,17 @@ static const char kSTSHostTable[] = {
   /* "wikinews.org", true */ 'w', 'i', 'k', 'i', 'n', 'e', 'w', 's', '.', 'o', 'r', 'g', '\0',
   /* "wikipedia.org", true */ 'w', 'i', 'k', 'i', 'p', 'e', 'd', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "wikiquote.org", true */ 'w', 'i', 'k', 'i', 'q', 'u', 'o', 't', 'e', '.', 'o', 'r', 'g', '\0',
   /* "wikisource.org", true */ 'w', 'i', 'k', 'i', 's', 'o', 'u', 'r', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "wikisports.eu", true */ 'w', 'i', 'k', 'i', 's', 'p', 'o', 'r', 't', 's', '.', 'e', 'u', '\0',
   /* "wikiversity.org", true */ 'w', 'i', 'k', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "wikivoyage.org", true */ 'w', 'i', 'k', 'i', 'v', 'o', 'y', 'a', 'g', 'e', '.', 'o', 'r', 'g', '\0',
   /* "wiktionary.org", true */ 'w', 'i', 'k', 't', 'i', 'o', 'n', 'a', 'r', 'y', '.', 'o', 'r', 'g', '\0',
+  /* "wiktoriaslife.com", true */ 'w', 'i', 'k', 't', 'o', 'r', 'i', 'a', 's', 'l', 'i', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "wildbee.org", true */ 'w', 'i', 'l', 'd', 'b', 'e', 'e', '.', 'o', 'r', 'g', '\0',
   /* "wilddog.com", true */ 'w', 'i', 'l', 'd', 'd', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "willberg.bayern", true */ 'w', 'i', 'l', 'l', 'b', 'e', 'r', 'g', '.', 'b', 'a', 'y', 'e', 'r', 'n', '\0',
   /* "willcipriano.com", true */ 'w', 'i', 'l', 'l', 'c', 'i', 'p', 'r', 'i', 'a', 'n', 'o', '.', 'c', 'o', 'm', '\0',
   /* "willi-graf-gymnasium.de", true */ 'w', 'i', 'l', 'l', 'i', '-', 'g', 'r', 'a', 'f', '-', 'g', 'y', 'm', 'n', 'a', 's', 'i', 'u', 'm', '.', 'd', 'e', '\0',
   /* "willi-graf-os.de", true */ 'w', 'i', 'l', 'l', 'i', '-', 'g', 'r', 'a', 'f', '-', 'o', 's', '.', 'd', 'e', '\0',
   /* "williamfeely.info", true */ 'w', 'i', 'l', 'l', 'i', 'a', 'm', 'f', 'e', 'e', 'l', 'y', '.', 'i', 'n', 'f', 'o', '\0',
   /* "williamsapiens.com", true */ 'w', 'i', 'l', 'l', 'i', 'a', 'm', 's', 'a', 'p', 'i', 'e', 'n', 's', '.', 'c', 'o', 'm', '\0',
@@ -13854,24 +13846,26 @@ static const char kSTSHostTable[] = {
   /* "wuetix.de", true */ 'w', 'u', 'e', 't', 'i', 'x', '.', 'd', 'e', '\0',
   /* "wuji.cz", true */ 'w', 'u', 'j', 'i', '.', 'c', 'z', '\0',
   /* "wumbo.co.nz", true */ 'w', 'u', 'm', 'b', 'o', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "wunderkarten.de", true */ 'w', 'u', 'n', 'd', 'e', 'r', 'k', 'a', 'r', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "wunderlist.com", true */ 'w', 'u', 'n', 'd', 'e', 'r', 'l', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "wundi.net", true */ 'w', 'u', 'n', 'd', 'i', '.', 'n', 'e', 't', '\0',
   /* "wundtherapie-schulung.de", true */ 'w', 'u', 'n', 'd', 't', 'h', 'e', 'r', 'a', 'p', 'i', 'e', '-', 's', 'c', 'h', 'u', 'l', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "wv-n.de", true */ 'w', 'v', '-', 'n', '.', 'd', 'e', '\0',
+  /* "wvg.myds.me", true */ 'w', 'v', 'g', '.', 'm', 'y', 'd', 's', '.', 'm', 'e', '\0',
   /* "wvr-law.de", false */ 'w', 'v', 'r', '-', 'l', 'a', 'w', '.', 'd', 'e', '\0',
   /* "www.aclu.org", false */ 'w', 'w', 'w', '.', 'a', 'c', 'l', 'u', '.', 'o', 'r', 'g', '\0',
   /* "www.airbnb.com", true */ 'w', 'w', 'w', '.', 'a', 'i', 'r', 'b', 'n', 'b', '.', 'c', 'o', 'm', '\0',
   /* "www.amazon.ca", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'a', '\0',
   /* "www.amazon.cn", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'n', '\0',
   /* "www.amazon.co.jp", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "www.amazon.co.uk", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "www.amazon.com", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "www.amazon.com.au", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "www.amazon.com.br", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "www.amazon.com.mx", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', 'm', '.', 'm', 'x', '\0',
   /* "www.amazon.de", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'd', 'e', '\0',
   /* "www.amazon.es", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'e', 's', '\0',
   /* "www.amazon.fr", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'f', 'r', '\0',
   /* "www.amazon.it", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'i', 't', '\0',
   /* "www.amazon.nl", true */ 'w', 'w', 'w', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'n', 'l', '\0',
   /* "www.banking.co.at", false */ 'w', 'w', 'w', '.', 'b', 'a', 'n', 'k', 'i', 'n', 'g', '.', 'c', 'o', '.', 'a', 't', '\0',
@@ -14059,16 +14053,17 @@ static const char kSTSHostTable[] = {
   /* "yachts-magazine.com", true */ 'y', 'a', 'c', 'h', 't', 's', '-', 'm', 'a', 'g', 'a', 'z', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "yacobo.com", true */ 'y', 'a', 'c', 'o', 'b', 'o', '.', 'c', 'o', 'm', '\0',
   /* "yafuoku.ru", true */ 'y', 'a', 'f', 'u', 'o', 'k', 'u', '.', 'r', 'u', '\0',
   /* "yagihiro.tech", true */ 'y', 'a', 'g', 'i', 'h', 'i', 'r', 'o', '.', 't', 'e', 'c', 'h', '\0',
   /* "yak.is", true */ 'y', 'a', 'k', '.', 'i', 's', '\0',
   /* "yakmade.com", true */ 'y', 'a', 'k', 'm', 'a', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "yakmoo.se", true */ 'y', 'a', 'k', 'm', 'o', 'o', '.', 's', 'e', '\0',
   /* "yal.sh", true */ 'y', 'a', 'l', '.', 's', 'h', '\0',
+  /* "yalook.com", true */ 'y', 'a', 'l', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "yamadaya.tv", true */ 'y', 'a', 'm', 'a', 'd', 'a', 'y', 'a', '.', 't', 'v', '\0',
   /* "yameveo.com", false */ 'y', 'a', 'm', 'e', 'v', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "yanaduday.com", true */ 'y', 'a', 'n', 'a', 'd', 'u', 'd', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "yanovich.net", true */ 'y', 'a', 'n', 'o', 'v', 'i', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "yantrasthal.com", true */ 'y', 'a', 'n', 't', 'r', 'a', 's', 't', 'h', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "yanwh.xyz", true */ 'y', 'a', 'n', 'w', 'h', '.', 'x', 'y', 'z', '\0',
   /* "yaoidreams.com", true */ 'y', 'a', 'o', 'i', 'd', 'r', 'e', 'a', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "yapbreak.fr", true */ 'y', 'a', 'p', 'b', 'r', 'e', 'a', 'k', '.', 'f', 'r', '\0',
@@ -14083,17 +14078,16 @@ static const char kSTSHostTable[] = {
   /* "yclan.net", true */ 'y', 'c', 'l', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "ydy.jp", true */ 'y', 'd', 'y', '.', 'j', 'p', '\0',
   /* "yecl.net", true */ 'y', 'e', 'c', 'l', '.', 'n', 'e', 't', '\0',
   /* "yenniferallulli.com", true */ 'y', 'e', 'n', 'n', 'i', 'f', 'e', 'r', 'a', 'l', 'l', 'u', 'l', 'l', 'i', '.', 'c', 'o', 'm', '\0',
   /* "yesdevnull.net", true */ 'y', 'e', 's', 'd', 'e', 'v', 'n', 'u', 'l', 'l', '.', 'n', 'e', 't', '\0',
   /* "yesiammaisey.me", true */ 'y', 'e', 's', 'i', 'a', 'm', 'm', 'a', 'i', 's', 'e', 'y', '.', 'm', 'e', '\0',
   /* "yesonline.asia", true */ 'y', 'e', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'a', 's', 'i', 'a', '\0',
   /* "yesonline.me", true */ 'y', 'e', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'm', 'e', '\0',
-  /* "yestees.com", true */ 'y', 'e', 's', 't', 'e', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "yeswehack.com", true */ 'y', 'e', 's', 'w', 'e', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "yetii.net", true */ 'y', 'e', 't', 'i', 'i', '.', 'n', 'e', 't', '\0',
   /* "yetzt.me", false */ 'y', 'e', 't', 'z', 't', '.', 'm', 'e', '\0',
   /* "yhaupenthal.org", true */ 'y', 'h', 'a', 'u', 'p', 'e', 'n', 't', 'h', 'a', 'l', '.', 'o', 'r', 'g', '\0',
   /* "yhb.io", true */ 'y', 'h', 'b', '.', 'i', 'o', '\0',
   /* "yhori.xyz", true */ 'y', 'h', 'o', 'r', 'i', '.', 'x', 'y', 'z', '\0',
   /* "yhrd.org", true */ 'y', 'h', 'r', 'd', '.', 'o', 'r', 'g', '\0',
   /* "yikzu.cn", true */ 'y', 'i', 'k', 'z', 'u', '.', 'c', 'n', '\0',
@@ -14159,16 +14153,17 @@ static const char kSTSHostTable[] = {
   /* "yuki.xyz", true */ 'y', 'u', 'k', 'i', '.', 'x', 'y', 'z', '\0',
   /* "yukiminami.net", true */ 'y', 'u', 'k', 'i', 'm', 'i', 'n', 'a', 'm', 'i', '.', 'n', 'e', 't', '\0',
   /* "yum.beer", true */ 'y', 'u', 'm', '.', 'b', 'e', 'e', 'r', '\0',
   /* "yunity.org", true */ 'y', 'u', 'n', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "yunjishou.pro", true */ 'y', 'u', 'n', 'j', 'i', 's', 'h', 'o', 'u', '.', 'p', 'r', 'o', '\0',
   /* "yunpan.blue", true */ 'y', 'u', 'n', 'p', 'a', 'n', '.', 'b', 'l', 'u', 'e', '\0',
   /* "yurikirin.me", true */ 'y', 'u', 'r', 'i', 'k', 'i', 'r', 'i', 'n', '.', 'm', 'e', '\0',
   /* "yusa.me", true */ 'y', 'u', 's', 'a', '.', 'm', 'e', '\0',
+  /* "yutabon.com", false */ 'y', 'u', 't', 'a', 'b', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "yutangyun.com", true */ 'y', 'u', 't', 'a', 'n', 'g', 'y', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "yuushou.com", true */ 'y', 'u', 'u', 's', 'h', 'o', 'u', '.', 'c', 'o', 'm', '\0',
   /* "yux.fr", true */ 'y', 'u', 'x', '.', 'f', 'r', '\0',
   /* "yuyu.io", true */ 'y', 'u', 'y', 'u', '.', 'i', 'o', '\0',
   /* "yuzu.tk", true */ 'y', 'u', 'z', 'u', '.', 't', 'k', '\0',
   /* "yvesx.com", true */ 'y', 'v', 'e', 's', 'x', '.', 'c', 'o', 'm', '\0',
   /* "yyyy.xyz", true */ 'y', 'y', 'y', 'y', '.', 'x', 'y', 'z', '\0',
   /* "z-vector.com", true */ 'z', '-', 'v', 'e', 'c', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
@@ -14282,17 +14277,16 @@ static const char kSTSHostTable[] = {
   /* "zmy.im", true */ 'z', 'm', 'y', '.', 'i', 'm', '\0',
   /* "znation.nl", true */ 'z', 'n', 'a', 't', 'i', 'o', 'n', '.', 'n', 'l', '\0',
   /* "zning.net.cn", true */ 'z', 'n', 'i', 'n', 'g', '.', 'n', 'e', 't', '.', 'c', 'n', '\0',
   /* "zockenbiszumumfallen.de", true */ 'z', 'o', 'c', 'k', 'e', 'n', 'b', 'i', 's', 'z', 'u', 'm', 'u', 'm', 'f', 'a', 'l', 'l', 'e', 'n', '.', 'd', 'e', '\0',
   /* "zoe.vc", true */ 'z', 'o', 'e', '.', 'v', 'c', '\0',
   /* "zoeller.me", true */ 'z', 'o', 'e', 'l', 'l', 'e', 'r', '.', 'm', 'e', '\0',
   /* "zohar.wang", true */ 'z', 'o', 'h', 'a', 'r', '.', 'w', 'a', 'n', 'g', '\0',
   /* "zombiesecured.com", true */ 'z', 'o', 'm', 'b', 'i', 'e', 's', 'e', 'c', 'u', 'r', 'e', 'd', '.', 'c', 'o', 'm', '\0',
-  /* "zomiac.pp.ua", true */ 'z', 'o', 'm', 'i', 'a', 'c', '.', 'p', 'p', '.', 'u', 'a', '\0',
   /* "zonemaster.net", true */ 'z', 'o', 'n', 'e', 'm', 'a', 's', 't', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "zonglovani.info", true */ 'z', 'o', 'n', 'g', 'l', 'o', 'v', 'a', 'n', 'i', '.', 'i', 'n', 'f', 'o', '\0',
   /* "zoom.earth", true */ 'z', 'o', 'o', 'm', '.', 'e', 'a', 'r', 't', 'h', '\0',
   /* "zoommailing.com", true */ 'z', 'o', 'o', 'm', 'm', 'a', 'i', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "zooom.azurewebsites.net", true */ 'z', 'o', 'o', 'o', 'm', '.', 'a', 'z', 'u', 'r', 'e', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "zooparadies.eu", true */ 'z', 'o', 'o', 'p', 'a', 'r', 'a', 'd', 'i', 'e', 's', '.', 'e', 'u', '\0',
   /* "zopyx.com", true */ 'z', 'o', 'p', 'y', 'x', '.', 'c', 'o', 'm', '\0',
   /* "zor.com", true */ 'z', 'o', 'r', '.', 'c', 'o', 'm', '\0',
@@ -14302,17 +14296,16 @@ static const char kSTSHostTable[] = {
   /* "zotero.org", true */ 'z', 'o', 't', 'e', 'r', 'o', '.', 'o', 'r', 'g', '\0',
   /* "zqjs.tk", true */ 'z', 'q', 'j', 's', '.', 't', 'k', '\0',
   /* "zravypapir.cz", true */ 'z', 'r', 'a', 'v', 'y', 'p', 'a', 'p', 'i', 'r', '.', 'c', 'z', '\0',
   /* "zscales.com", true */ 'z', 's', 'c', 'a', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "ztcaoll222.cn", true */ 'z', 't', 'c', 'a', 'o', 'l', 'l', '2', '2', '2', '.', 'c', 'n', '\0',
   /* "zubel.it", true */ 'z', 'u', 'b', 'e', 'l', '.', 'i', 't', '\0',
   /* "zuckerfloh.de", true */ 'z', 'u', 'c', 'k', 'e', 'r', 'f', 'l', 'o', 'h', '.', 'd', 'e', '\0',
   /* "zulu.ro", true */ 'z', 'u', 'l', 'u', '.', 'r', 'o', '\0',
-  /* "zulu7.com", true */ 'z', 'u', 'l', 'u', '7', '.', 'c', 'o', 'm', '\0',
   /* "zund-app.com", true */ 'z', 'u', 'n', 'd', '-', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "zundapp529.nl", true */ 'z', 'u', 'n', 'd', 'a', 'p', 'p', '5', '2', '9', '.', 'n', 'l', '\0',
   /* "zundappachterhoek.nl", true */ 'z', 'u', 'n', 'd', 'a', 'p', 'p', 'a', 'c', 'h', 't', 'e', 'r', 'h', 'o', 'e', 'k', '.', 'n', 'l', '\0',
   /* "zuolan.me", true */ 'z', 'u', 'o', 'l', 'a', 'n', '.', 'm', 'e', '\0',
   /* "zup.me", true */ 'z', 'u', 'p', '.', 'm', 'e', '\0',
   /* "zupago.com", true */ 'z', 'u', 'p', 'a', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "zuram.net", true */ 'z', 'u', 'r', 'a', 'm', '.', 'n', 'e', 't', '\0',
   /* "zuviel.space", true */ 'z', 'u', 'v', 'i', 'e', 'l', '.', 's', 'p', 'a', 'c', 'e', '\0',
@@ -14403,18 +14396,18 @@ static const nsSTSPreload kSTSPreloadLis
   { 807, true },
   { 818, true },
   { 829, true },
   { 843, true },
   { 865, true },
   { 877, true },
   { 884, true },
   { 893, true },
-  { 900, false },
-  { 911, false },
+  { 900, true },
+  { 911, true },
   { 922, true },
   { 929, true },
   { 936, true },
   { 947, true },
   { 954, true },
   { 966, true },
   { 983, true },
   { 1001, true },
@@ -14563,1916 +14556,1916 @@ static const nsSTSPreload kSTSPreloadLis
   { 2734, true },
   { 2744, true },
   { 2755, true },
   { 2773, true },
   { 2784, true },
   { 2798, true },
   { 2810, true },
   { 2832, true },
-  { 2848, true },
-  { 2859, false },
-  { 2875, false },
-  { 2887, true },
-  { 2900, true },
-  { 2913, true },
-  { 2930, true },
-  { 2955, false },
-  { 2963, true },
-  { 2987, true },
-  { 3006, true },
-  { 3019, true },
+  { 2848, false },
+  { 2864, false },
+  { 2876, true },
+  { 2889, true },
+  { 2902, true },
+  { 2919, true },
+  { 2944, false },
+  { 2952, true },
+  { 2976, true },
+  { 2995, true },
+  { 3008, true },
+  { 3020, true },
   { 3031, true },
-  { 3042, true },
-  { 3066, true },
-  { 3079, true },
-  { 3088, true },
-  { 3105, true },
-  { 3117, true },
-  { 3136, true },
-  { 3159, true },
-  { 3173, true },
-  { 3189, true },
-  { 3202, true },
-  { 3219, true },
-  { 3239, true },
-  { 3254, true },
-  { 3275, true },
-  { 3295, true },
+  { 3055, true },
+  { 3068, true },
+  { 3077, true },
+  { 3094, true },
+  { 3106, true },
+  { 3125, true },
+  { 3148, true },
+  { 3162, true },
+  { 3178, true },
+  { 3191, true },
+  { 3208, true },
+  { 3228, true },
+  { 3243, true },
+  { 3264, true },
+  { 3284, true },
+  { 3296, true },
   { 3307, true },
-  { 3318, true },
-  { 3337, false },
-  { 3344, true },
-  { 3356, true },
-  { 3377, true },
-  { 3389, true },
-  { 3406, true },
-  { 3419, true },
-  { 3435, true },
-  { 3447, true },
-  { 3460, false },
-  { 3469, true },
-  { 3479, true },
-  { 3494, true },
-  { 3511, true },
-  { 3525, true },
+  { 3326, false },
+  { 3333, true },
+  { 3345, true },
+  { 3366, true },
+  { 3378, true },
+  { 3395, true },
+  { 3408, true },
+  { 3424, true },
+  { 3436, true },
+  { 3449, false },
+  { 3458, true },
+  { 3468, true },
+  { 3483, true },
+  { 3500, true },
+  { 3514, true },
+  { 3530, true },
   { 3541, true },
-  { 3552, true },
-  { 3564, true },
-  { 3585, false },
-  { 3595, true },
-  { 3610, true },
-  { 3624, true },
-  { 3645, false },
-  { 3658, true },
-  { 3667, true },
-  { 3681, true },
-  { 3693, true },
-  { 3708, true },
-  { 3721, true },
-  { 3733, true },
-  { 3745, true },
-  { 3757, true },
-  { 3769, true },
-  { 3781, true },
+  { 3553, true },
+  { 3574, false },
+  { 3584, true },
+  { 3599, true },
+  { 3613, true },
+  { 3634, false },
+  { 3647, true },
+  { 3656, true },
+  { 3670, true },
+  { 3682, true },
+  { 3697, true },
+  { 3710, true },
+  { 3722, true },
+  { 3734, true },
+  { 3746, true },
+  { 3758, true },
+  { 3770, true },
+  { 3778, true },
   { 3789, true },
-  { 3800, true },
-  { 3814, true },
-  { 3830, true },
-  { 3843, true },
-  { 3860, true },
-  { 3875, true },
-  { 3890, true },
-  { 3908, true },
-  { 3917, true },
-  { 3930, false },
-  { 3939, true },
+  { 3803, true },
+  { 3819, true },
+  { 3832, true },
+  { 3849, true },
+  { 3864, true },
+  { 3879, true },
+  { 3897, true },
+  { 3906, true },
+  { 3919, true },
+  { 3928, true },
+  { 3953, true },
   { 3964, true },
-  { 3975, true },
-  { 3994, true },
-  { 4006, true },
-  { 4025, true },
-  { 4044, true },
-  { 4063, true },
-  { 4082, true },
-  { 4094, true },
+  { 3983, true },
+  { 3995, true },
+  { 4014, true },
+  { 4033, true },
+  { 4052, true },
+  { 4071, true },
+  { 4083, true },
+  { 4098, true },
   { 4109, true },
-  { 4120, true },
-  { 4133, true },
-  { 4145, true },
-  { 4158, true },
+  { 4122, true },
+  { 4134, true },
+  { 4147, true },
+  { 4161, true },
   { 4172, true },
-  { 4183, true },
-  { 4192, true },
-  { 4206, true },
-  { 4218, true },
-  { 4245, true },
-  { 4271, true },
+  { 4181, true },
+  { 4195, true },
+  { 4207, true },
+  { 4234, true },
+  { 4260, true },
+  { 4273, true },
   { 4284, true },
-  { 4295, true },
-  { 4319, true },
-  { 4336, true },
-  { 4364, true },
-  { 4380, true },
-  { 4389, true },
-  { 4399, true },
-  { 4413, true },
-  { 4432, true },
-  { 4442, true },
-  { 4456, true },
-  { 4464, false },
-  { 4485, true },
-  { 4503, true },
-  { 4511, true },
-  { 4520, true },
-  { 4539, true },
-  { 4553, true },
-  { 4572, true },
+  { 4308, true },
+  { 4325, true },
+  { 4353, true },
+  { 4369, true },
+  { 4378, true },
+  { 4388, true },
+  { 4402, true },
+  { 4421, true },
+  { 4431, true },
+  { 4445, true },
+  { 4453, false },
+  { 4474, true },
+  { 4492, true },
+  { 4500, true },
+  { 4509, true },
+  { 4528, true },
+  { 4542, true },
+  { 4561, true },
+  { 4574, true },
   { 4585, true },
-  { 4596, true },
-  { 4616, true },
-  { 4634, true },
-  { 4652, false },
-  { 4671, false },
-  { 4685, true },
-  { 4706, true },
-  { 4722, true },
-  { 4732, true },
-  { 4745, true },
-  { 4758, true },
-  { 4772, true },
-  { 4786, true },
-  { 4796, true },
-  { 4806, true },
-  { 4816, true },
-  { 4826, true },
-  { 4836, true },
-  { 4846, true },
-  { 4863, true },
-  { 4873, false },
+  { 4605, true },
+  { 4623, true },
+  { 4641, false },
+  { 4660, true },
+  { 4674, true },
+  { 4695, true },
+  { 4711, true },
+  { 4721, true },
+  { 4734, true },
+  { 4747, true },
+  { 4761, true },
+  { 4775, true },
+  { 4785, true },
+  { 4795, true },
+  { 4805, true },
+  { 4815, true },
+  { 4825, true },
+  { 4835, true },
+  { 4852, true },
+  { 4862, false },
+  { 4870, true },
   { 4881, true },
   { 4892, true },
   { 4903, true },
-  { 4914, true },
-  { 4923, true },
+  { 4912, true },
+  { 4932, true },
   { 4943, true },
-  { 4954, true },
-  { 4978, true },
-  { 4992, true },
-  { 5004, true },
-  { 5020, true },
-  { 5031, true },
-  { 5045, true },
-  { 5061, true },
+  { 4967, true },
+  { 4981, true },
+  { 5000, true },
+  { 5012, true },
+  { 5028, true },
+  { 5039, true },
+  { 5053, true },
   { 5069, true },
-  { 5086, true },
-  { 5098, true },
-  { 5115, true },
-  { 5123, false },
-  { 5139, true },
+  { 5077, true },
+  { 5094, true },
+  { 5106, true },
+  { 5123, true },
+  { 5131, false },
   { 5147, true },
-  { 5161, true },
-  { 5173, false },
-  { 5186, true },
-  { 5198, true },
-  { 5210, true },
-  { 5224, true },
-  { 5236, true },
-  { 5246, true },
+  { 5155, true },
+  { 5169, true },
+  { 5181, false },
+  { 5194, true },
+  { 5206, true },
+  { 5218, true },
+  { 5232, true },
+  { 5244, true },
   { 5254, true },
-  { 5264, true },
-  { 5278, true },
-  { 5291, true },
-  { 5303, true },
-  { 5322, true },
-  { 5341, true },
-  { 5357, true },
-  { 5390, true },
-  { 5400, true },
-  { 5414, true },
-  { 5421, true },
-  { 5438, true },
-  { 5447, true },
-  { 5454, true },
-  { 5468, true },
+  { 5262, true },
+  { 5272, true },
+  { 5286, true },
+  { 5299, true },
+  { 5311, true },
+  { 5330, true },
+  { 5349, true },
+  { 5365, true },
+  { 5398, true },
+  { 5408, true },
+  { 5422, true },
+  { 5429, true },
+  { 5446, true },
+  { 5455, true },
+  { 5462, true },
   { 5476, true },
-  { 5487, true },
-  { 5502, true },
-  { 5517, true },
-  { 5534, true },
-  { 5544, true },
-  { 5555, true },
-  { 5570, true },
-  { 5581, true },
-  { 5593, true },
-  { 5604, true },
-  { 5624, true },
-  { 5635, true },
-  { 5646, true },
-  { 5657, true },
-  { 5670, true },
-  { 5688, true },
-  { 5700, true },
-  { 5709, true },
-  { 5723, true },
-  { 5734, true },
-  { 5751, true },
-  { 5762, true },
-  { 5771, false },
-  { 5797, true },
-  { 5808, true },
-  { 5818, false },
-  { 5835, true },
-  { 5845, true },
-  { 5859, true },
-  { 5871, true },
-  { 5880, true },
-  { 5897, true },
-  { 5904, true },
-  { 5928, true },
-  { 5944, true },
-  { 5964, true },
-  { 5989, true },
-  { 6014, true },
-  { 6039, true },
-  { 6051, true },
-  { 6060, true },
-  { 6087, true },
-  { 6100, false },
-  { 6109, true },
-  { 6125, true },
-  { 6141, true },
-  { 6153, true },
-  { 6167, true },
-  { 6187, true },
-  { 6202, true },
-  { 6223, true },
-  { 6235, true },
-  { 6245, true },
-  { 6257, true },
-  { 6269, true },
-  { 6278, true },
-  { 6290, true },
-  { 6309, true },
-  { 6322, true },
-  { 6333, true },
-  { 6342, true },
-  { 6356, true },
-  { 6370, true },
-  { 6386, true },
-  { 6406, true },
-  { 6427, true },
-  { 6441, true },
-  { 6454, true },
-  { 6464, true },
-  { 6479, true },
-  { 6489, true },
-  { 6501, true },
-  { 6516, true },
-  { 6530, true },
-  { 6545, true },
-  { 6555, true },
+  { 5484, true },
+  { 5495, true },
+  { 5510, true },
+  { 5525, true },
+  { 5542, true },
+  { 5552, true },
+  { 5563, true },
+  { 5578, true },
+  { 5589, true },
+  { 5601, true },
+  { 5612, true },
+  { 5632, true },
+  { 5643, true },
+  { 5654, true },
+  { 5665, true },
+  { 5678, true },
+  { 5696, true },
+  { 5708, true },
+  { 5717, true },
+  { 5731, true },
+  { 5742, true },
+  { 5759, true },
+  { 5770, true },
+  { 5779, false },
+  { 5805, true },
+  { 5816, true },
+  { 5826, false },
+  { 5843, true },
+  { 5853, true },
+  { 5867, true },
+  { 5879, true },
+  { 5888, true },
+  { 5905, true },
+  { 5912, true },
+  { 5936, true },
+  { 5952, true },
+  { 5972, true },
+  { 5997, true },
+  { 6022, true },
+  { 6047, true },
+  { 6059, true },
+  { 6068, true },
+  { 6095, true },
+  { 6108, false },
+  { 6117, true },
+  { 6133, true },
+  { 6149, true },
+  { 6161, true },
+  { 6175, true },
+  { 6195, true },
+  { 6210, true },
+  { 6231, true },
+  { 6243, true },
+  { 6253, true },
+  { 6265, true },
+  { 6277, true },
+  { 6286, true },
+  { 6298, true },
+  { 6317, true },
+  { 6330, true },
+  { 6341, true },
+  { 6350, true },
+  { 6364, true },
+  { 6378, true },
+  { 6394, true },
+  { 6410, true },
+  { 6430, true },
+  { 6451, true },
+  { 6465, true },
+  { 6478, true },
+  { 6488, true },
+  { 6503, true },
+  { 6513, true },
+  { 6525, true },
+  { 6540, true },
+  { 6554, true },
   { 6569, true },
-  { 6586, true },
-  { 6601, true },
-  { 6615, true },
-  { 6629, true },
-  { 6645, true },
-  { 6657, true },
+  { 6579, true },
+  { 6593, true },
+  { 6610, true },
+  { 6625, true },
+  { 6639, true },
+  { 6653, true },
   { 6669, true },
-  { 6684, true },
-  { 6698, true },
-  { 6720, true },
-  { 6732, true },
-  { 6753, true },
-  { 6765, true },
-  { 6778, true },
-  { 6790, true },
-  { 6803, true },
-  { 6818, true },
-  { 6829, true },
-  { 6845, true },
-  { 6856, true },
-  { 6868, true },
-  { 6881, true },
-  { 6901, true },
-  { 6922, true },
-  { 6935, true },
-  { 6953, true },
-  { 6970, true },
+  { 6681, true },
+  { 6693, true },
+  { 6708, true },
+  { 6722, true },
+  { 6744, true },
+  { 6756, true },
+  { 6777, true },
+  { 6789, true },
+  { 6802, true },
+  { 6814, true },
+  { 6827, true },
+  { 6842, true },
+  { 6853, true },
+  { 6869, true },
+  { 6880, true },
+  { 6892, true },
+  { 6905, true },
+  { 6925, true },
+  { 6946, true },
+  { 6959, true },
+  { 6977, true },
   { 6994, true },
-  { 7013, true },
-  { 7024, true },
-  { 7038, true },
-  { 7054, true },
-  { 7073, true },
-  { 7086, true },
-  { 7107, true },
-  { 7127, true },
-  { 7147, true },
-  { 7160, false },
-  { 7173, true },
-  { 7185, true },
-  { 7195, true },
-  { 7208, true },
-  { 7222, true },
-  { 7238, true },
-  { 7252, true },
-  { 7268, true },
-  { 7280, true },
-  { 7294, true },
-  { 7307, true },
-  { 7321, true },
-  { 7329, true },
-  { 7342, true },
-  { 7357, true },
-  { 7376, true },
-  { 7388, true },
-  { 7402, true },
-  { 7416, true },
-  { 7428, true },
-  { 7443, true },
-  { 7454, true },
-  { 7465, true },
-  { 7479, true },
-  { 7491, true },
-  { 7499, true },
-  { 7510, true },
-  { 7518, true },
-  { 7526, true },
+  { 7018, true },
+  { 7037, true },
+  { 7048, true },
+  { 7062, true },
+  { 7078, true },
+  { 7097, true },
+  { 7110, true },
+  { 7131, true },
+  { 7151, true },
+  { 7171, true },
+  { 7184, false },
+  { 7197, true },
+  { 7209, true },
+  { 7219, true },
+  { 7232, true },
+  { 7246, true },
+  { 7262, true },
+  { 7276, true },
+  { 7292, true },
+  { 7304, true },
+  { 7318, true },
+  { 7331, true },
+  { 7345, true },
+  { 7353, true },
+  { 7366, true },
+  { 7381, true },
+  { 7400, true },
+  { 7412, true },
+  { 7426, true },
+  { 7440, true },
+  { 7452, true },
+  { 7467, true },
+  { 7478, true },
+  { 7489, true },
+  { 7503, true },
+  { 7515, true },
+  { 7523, true },
   { 7534, true },
   { 7542, true },
-  { 7555, true },
-  { 7562, true },
-  { 7572, true },
-  { 7585, true },
-  { 7597, true },
-  { 7610, true },
-  { 7630, true },
-  { 7642, true },
-  { 7653, true },
-  { 7671, true },
-  { 7684, true },
-  { 7693, true },
-  { 7705, true },
-  { 7719, true },
-  { 7732, true },
+  { 7550, true },
+  { 7558, true },
+  { 7566, true },
+  { 7579, true },
+  { 7586, true },
+  { 7596, true },
+  { 7609, true },
+  { 7621, true },
+  { 7634, true },
+  { 7654, true },
+  { 7666, true },
+  { 7677, true },
+  { 7695, true },
+  { 7708, true },
+  { 7717, true },
+  { 7729, true },
   { 7743, true },
-  { 7753, true },
-  { 7764, true },
-  { 7774, true },
-  { 7785, true },
-  { 7794, true },
-  { 7803, true },
-  { 7819, true },
-  { 7835, true },
-  { 7863, true },
-  { 7882, true },
-  { 7897, true },
-  { 7917, true },
-  { 7929, true },
-  { 7940, true },
-  { 7955, true },
-  { 7975, true },
-  { 7993, true },
-  { 8003, false },
-  { 8014, true },
-  { 8024, true },
-  { 8041, true },
-  { 8052, true },
-  { 8061, true },
-  { 8072, true },
-  { 8091, true },
-  { 8102, true },
-  { 8120, true },
-  { 8146, true },
-  { 8168, true },
-  { 8182, true },
-  { 8197, true },
-  { 8211, true },
-  { 8225, true },
-  { 8240, true },
-  { 8261, true },
-  { 8271, true },
-  { 8282, true },
-  { 8303, true },
-  { 8321, true },
-  { 8334, true },
-  { 8342, true },
-  { 8355, true },
-  { 8369, true },
-  { 8385, true },
-  { 8403, true },
-  { 8425, true },
-  { 8440, true },
-  { 8457, true },
-  { 8479, true },
-  { 8494, true },
-  { 8511, true },
-  { 8527, true },
-  { 8543, true },
-  { 8560, true },
-  { 8579, true },
-  { 8594, true },
-  { 8613, true },
-  { 8630, true },
-  { 8647, true },
-  { 8659, true },
-  { 8677, true },
-  { 8694, true },
-  { 8709, true },
-  { 8723, true },
-  { 8740, true },
-  { 8758, true },
-  { 8773, true },
-  { 8785, true },
-  { 8798, true },
-  { 8818, true },
-  { 8829, true },
-  { 8840, true },
-  { 8851, true },
-  { 8862, true },
-  { 8873, true },
-  { 8884, true },
-  { 8896, true },
-  { 8909, true },
-  { 8928, true },
-  { 8939, true },
+  { 7756, true },
+  { 7767, true },
+  { 7777, true },
+  { 7788, true },
+  { 7798, true },
+  { 7809, true },
+  { 7818, true },
+  { 7827, true },
+  { 7843, true },
+  { 7859, true },
+  { 7887, true },
+  { 7906, true },
+  { 7921, true },
+  { 7941, true },
+  { 7953, true },
+  { 7964, true },
+  { 7979, true },
+  { 7999, true },
+  { 8017, true },
+  { 8027, false },
+  { 8038, true },
+  { 8048, true },
+  { 8065, true },
+  { 8076, true },
+  { 8085, true },
+  { 8096, true },
+  { 8115, true },
+  { 8126, true },
+  { 8144, true },
+  { 8170, true },
+  { 8192, true },
+  { 8206, true },
+  { 8221, true },
+  { 8235, true },
+  { 8249, true },
+  { 8264, true },
+  { 8285, true },
+  { 8295, true },
+  { 8306, true },
+  { 8327, true },
+  { 8345, true },
+  { 8358, true },
+  { 8366, true },
+  { 8379, true },
+  { 8393, true },
+  { 8409, true },
+  { 8427, true },
+  { 8449, true },
+  { 8464, true },
+  { 8481, true },
+  { 8503, true },
+  { 8518, true },
+  { 8535, true },
+  { 8551, true },
+  { 8567, true },
+  { 8584, true },
+  { 8603, true },
+  { 8618, true },
+  { 8637, true },
+  { 8654, true },
+  { 8671, true },
+  { 8683, true },
+  { 8701, true },
+  { 8718, true },
+  { 8733, true },
+  { 8747, true },
+  { 8764, true },
+  { 8782, true },
+  { 8797, true },
+  { 8809, true },
+  { 8822, true },
+  { 8842, true },
+  { 8853, true },
+  { 8864, true },
+  { 8875, true },
+  { 8886, true },
+  { 8897, true },
+  { 8908, true },
+  { 8920, true },
+  { 8933, true },
   { 8952, true },
-  { 8966, false },
-  { 8979, false },
-  { 8988, true },
-  { 9005, true },
-  { 9025, true },
-  { 9036, true },
-  { 9054, false },
-  { 9087, true },
-  { 9119, true },
-  { 9146, true },
-  { 9156, true },
-  { 9174, true },
-  { 9189, true },
-  { 9201, true },
+  { 8963, true },
+  { 8976, true },
+  { 8990, false },
+  { 9003, false },
+  { 9012, true },
+  { 9029, true },
+  { 9049, true },
+  { 9060, true },
+  { 9078, false },
+  { 9111, true },
+  { 9143, true },
+  { 9170, true },
+  { 9180, true },
+  { 9198, true },
   { 9213, true },
-  { 9233, true },
-  { 9252, true },
-  { 9272, true },
-  { 9295, true },
+  { 9225, true },
+  { 9237, true },
+  { 9257, true },
+  { 9276, true },
+  { 9296, true },
   { 9319, true },
-  { 9331, true },
-  { 9342, true },
-  { 9354, true },
+  { 9343, true },
+  { 9355, true },
   { 9366, true },
-  { 9382, true },
-  { 9399, true },
-  { 9418, true },
-  { 9432, true },
-  { 9443, true },
-  { 9476, true },
-  { 9487, true },
+  { 9378, true },
+  { 9390, true },
+  { 9406, true },
+  { 9423, true },
+  { 9442, true },
+  { 9456, true },
+  { 9467, true },
   { 9500, true },
-  { 9512, false },
-  { 9536, true },
-  { 9552, true },
-  { 9568, true },
-  { 9580, true },
-  { 9596, true },
-  { 9613, true },
-  { 9627, true },
-  { 9638, true },
-  { 9656, true },
-  { 9672, true },
-  { 9693, true },
-  { 9707, true },
-  { 9722, true },
-  { 9732, true },
-  { 9749, true },
-  { 9762, true },
-  { 9775, true },
-  { 9791, true },
-  { 9802, true },
-  { 9814, true },
-  { 9825, true },
-  { 9832, true },
-  { 9840, true },
-  { 9853, false },
-  { 9861, true },
-  { 9871, true },
-  { 9885, false },
-  { 9899, true },
-  { 9915, true },
-  { 9945, true },
-  { 9968, true },
-  { 9981, true },
-  { 10000, true },
-  { 10013, false },
-  { 10032, true },
-  { 10048, true },
-  { 10064, false },
-  { 10079, false },
-  { 10092, true },
-  { 10108, true },
-  { 10120, true },
-  { 10139, true },
-  { 10158, true },
-  { 10173, true },
-  { 10194, false },
-  { 10209, true },
-  { 10222, true },
-  { 10232, true },
-  { 10243, true },
-  { 10254, true },
-  { 10268, true },
-  { 10284, true },
-  { 10301, false },
-  { 10318, true },
-  { 10344, true },
-  { 10357, true },
-  { 10371, true },
-  { 10390, true },
-  { 10411, true },
-  { 10423, true },
-  { 10437, true },
+  { 9511, true },
+  { 9524, true },
+  { 9536, false },
+  { 9560, true },
+  { 9576, true },
+  { 9592, true },
+  { 9604, true },
+  { 9620, true },
+  { 9637, true },
+  { 9651, true },
+  { 9662, true },
+  { 9680, true },
+  { 9696, true },
+  { 9717, true },
+  { 9731, true },
+  { 9746, true },
+  { 9756, true },
+  { 9773, true },
+  { 9786, true },
+  { 9799, true },
+  { 9815, true },
+  { 9826, true },
+  { 9838, true },
+  { 9849, true },
+  { 9856, true },
+  { 9864, true },
+  { 9877, false },
+  { 9885, true },
+  { 9895, true },
+  { 9909, false },
+  { 9923, true },
+  { 9939, true },
+  { 9969, true },
+  { 9992, true },
+  { 10005, true },
+  { 10024, true },
+  { 10037, false },
+  { 10056, true },
+  { 10072, true },
+  { 10088, false },
+  { 10103, false },
+  { 10116, true },
+  { 10132, true },
+  { 10144, true },
+  { 10163, true },
+  { 10182, true },
+  { 10197, true },
+  { 10218, false },
+  { 10233, true },
+  { 10246, true },
+  { 10256, true },
+  { 10267, true },
+  { 10278, true },
+  { 10292, true },
+  { 10308, true },
+  { 10325, false },
+  { 10342, true },
+  { 10368, true },
+  { 10381, true },
+  { 10395, true },
+  { 10414, true },
+  { 10435, true },
+  { 10447, true },
   { 10461, true },
-  { 10474, true },
-  { 10487, true },
-  { 10501, true },
-  { 10512, true },
-  { 10521, true },
-  { 10534, true },
-  { 10547, true },
-  { 10559, false },
-  { 10577, true },
-  { 10600, true },
-  { 10627, true },
-  { 10646, true },
-  { 10658, true },
-  { 10671, true },
-  { 10691, true },
-  { 10702, true },
-  { 10714, true },
-  { 10728, true },
-  { 10736, true },
-  { 10753, true },
-  { 10766, true },
-  { 10778, true },
-  { 10796, true },
-  { 10819, false },
-  { 10835, true },
-  { 10841, true },
-  { 10853, true },
-  { 10864, true },
-  { 10881, true },
-  { 10900, true },
-  { 10912, true },
-  { 10941, true },
-  { 10957, true },
-  { 10970, true },
-  { 10984, true },
-  { 11000, true },
-  { 11013, true },
+  { 10485, true },
+  { 10498, true },
+  { 10511, true },
+  { 10525, true },
+  { 10536, true },
+  { 10545, true },
+  { 10558, true },
+  { 10571, true },
+  { 10583, false },
+  { 10601, true },
+  { 10624, true },
+  { 10651, true },
+  { 10670, true },
+  { 10682, true },
+  { 10695, true },
+  { 10715, true },
+  { 10726, true },
+  { 10738, true },
+  { 10752, true },
+  { 10760, true },
+  { 10777, true },
+  { 10790, true },
+  { 10802, true },
+  { 10820, true },
+  { 10843, false },
+  { 10859, true },
+  { 10865, true },
+  { 10877, true },
+  { 10888, true },
+  { 10905, true },
+  { 10924, true },
+  { 10936, true },
+  { 10965, true },
+  { 10981, true },
+  { 10994, true },
+  { 11008, true },
   { 11024, true },
-  { 11033, true },
-  { 11045, true },
-  { 11061, true },
-  { 11075, true },
-  { 11091, true },
-  { 11105, true },
-  { 11119, true },
-  { 11139, true },
-  { 11151, true },
-  { 11167, true },
-  { 11181, false },
-  { 11194, true },
-  { 11209, true },
-  { 11223, true },
-  { 11232, true },
-  { 11244, true },
-  { 11262, true },
-  { 11277, true },
-  { 11290, true },
-  { 11300, true },
+  { 11037, true },
+  { 11048, true },
+  { 11057, true },
+  { 11069, true },
+  { 11085, true },
+  { 11099, true },
+  { 11115, true },
+  { 11129, true },
+  { 11143, true },
+  { 11163, true },
+  { 11175, true },
+  { 11191, true },
+  { 11205, false },
+  { 11218, true },
+  { 11233, true },
+  { 11247, true },
+  { 11256, true },
+  { 11268, true },
+  { 11286, true },
+  { 11301, true },
   { 11314, true },
-  { 11340, true },
-  { 11350, true },
+  { 11324, true },
+  { 11338, true },
   { 11364, true },
-  { 11378, true },
-  { 11396, true },
-  { 11414, true },
-  { 11424, true },
-  { 11435, true },
-  { 11451, true },
+  { 11374, true },
+  { 11388, true },
+  { 11402, true },
+  { 11420, true },
+  { 11438, true },
+  { 11448, true },
   { 11459, true },
-  { 11467, true },
-  { 11478, true },
-  { 11488, true },
-  { 11503, true },
-  { 11522, true },
-  { 11535, true },
-  { 11550, true },
-  { 11568, false },
-  { 11583, true },
-  { 11603, true },
-  { 11614, true },
-  { 11626, true },
</