Merge m-c to inbound, a=merge
authorWes Kocher <wkocher@mozilla.com>
Wed, 15 Mar 2017 14:28:51 -0700
changeset 347843 dd0376458483b07b48676442a29022591148136b
parent 347797 801d9e9ec6cdf659b00f98efb7c47e8690b6f6e3 (current diff)
parent 347842 ff04d410e74b69acfab17ef7e73e7397602d5a68 (diff)
child 347844 9377eb0e4de37e83278f4098cfcdb695632e02d4
push id88102
push userkwierso@gmail.com
push dateWed, 15 Mar 2017 21:28:59 +0000
treeherdermozilla-inbound@dd0376458483 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge m-c to inbound, a=merge MozReview-Commit-ID: BEeGEkSCpNK
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1717,17 +1717,17 @@
     <emItem blockID="i720" id="FXqG@xeeR.net">
       <prefs>
         <pref>browser.startup.homepage</pref>
       </prefs>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
     <emItem blockID="d33f6d48-a555-49dd-96ff-8d75473403a8" id="mozilla_cc2@internetdownloadmanager.com">
       <prefs/>
-      <versionRange minVersion="0" maxVersion="6.26.11" severity="1">
+      <versionRange minVersion="0" maxVersion="6.26.11" severity="3">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
           <versionRange maxVersion="*" minVersion="53.0a1"/>
         </targetApplication>
       </versionRange>
     </emItem>
     <emItem blockID="i493" id="12x3q@3244516.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1251,20 +1251,20 @@ pref("plain_text.wrap_long_lines", true)
 
 // If this turns true, Moz*Gesture events are not called stopPropagation()
 // before content.
 pref("dom.debug.propagate_gesture_events_through_content", false);
 
 // All the Geolocation preferences are here.
 //
 
-// Geolocation preferences for the RELEASE channel.
+// Geolocation preferences for the RELEASE and "later" Beta channels.
 // Some of these prefs are specified even though they are redundant; they are
 // here for clarity and end-user experiments.
-#ifdef RELEASE
+#ifndef EARLY_BETA_OR_EARLIER
 pref("geo.wifi.uri", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_API_KEY%");
 
 #ifdef XP_MACOSX
 pref("geo.provider.use_corelocation", false);
 #endif
 
 #ifdef XP_WIN
 pref("geo.provider.ms-windows-location", false);
--- a/browser/base/content/test/general/browser_aboutCertError.js
+++ b/browser/base/content/test/general/browser_aboutCertError.js
@@ -14,17 +14,17 @@ const ss = Cc["@mozilla.org/browser/sess
 
 add_task(function* checkReturnToAboutHome() {
   info("Loading a bad cert page directly and making sure 'return to previous page' goes to about:home");
   let browser;
   let certErrorLoaded;
   let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
     gBrowser.selectedTab = gBrowser.addTab(BAD_CERT);
     browser = gBrowser.selectedBrowser;
-    certErrorLoaded = waitForCertErrorLoad(browser);
+    certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   }, false);
 
   info("Loading and waiting for the cert error");
   yield certErrorLoaded;
 
   is(browser.webNavigation.canGoBack, false, "!webNavigation.canGoBack");
   is(browser.webNavigation.canGoForward, false, "!webNavigation.canGoForward");
 
@@ -52,17 +52,17 @@ add_task(function* checkReturnToAboutHom
 });
 
 add_task(function* checkReturnToPreviousPage() {
   info("Loading a bad cert page and making sure 'return to previous page' goes back");
   let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, GOOD_PAGE);
   let browser = gBrowser.selectedBrowser;
 
   info("Loading and waiting for the cert error");
-  let certErrorLoaded = waitForCertErrorLoad(browser);
+  let certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   BrowserTestUtils.loadURI(browser, BAD_CERT);
   yield certErrorLoaded;
 
   is(browser.webNavigation.canGoBack, true, "webNavigation.canGoBack");
   is(browser.webNavigation.canGoForward, false, "!webNavigation.canGoForward");
 
   // Populate the shistory entries manually, since it happens asynchronously
   // and the following tests will be too soon otherwise.
@@ -87,17 +87,17 @@ add_task(function* checkReturnToPrevious
 });
 
 add_task(function* checkBadStsCert() {
   info("Loading a badStsCert and making sure exception button doesn't show up");
   yield BrowserTestUtils.openNewForegroundTab(gBrowser, GOOD_PAGE);
   let browser = gBrowser.selectedBrowser;
 
   info("Loading and waiting for the cert error");
-  let certErrorLoaded = waitForCertErrorLoad(browser);
+  let certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   BrowserTestUtils.loadURI(browser, BAD_STS_CERT);
   yield certErrorLoaded;
 
   let exceptionButtonHidden = yield ContentTask.spawn(browser, null, function* () {
     let doc = content.document;
     let exceptionButton = doc.getElementById("exceptionDialogButton");
     return exceptionButton.hidden;
   });
@@ -123,17 +123,17 @@ const PREF_BLOCKLIST_CLOCK_SKEW_SECONDS 
 
 add_task(function* checkWrongSystemTimeWarning() {
   function* setUpPage() {
     let browser;
     let certErrorLoaded;
     yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
       gBrowser.selectedTab = gBrowser.addTab(BAD_CERT);
       browser = gBrowser.selectedBrowser;
-      certErrorLoaded = waitForCertErrorLoad(browser);
+      certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
     }, false);
 
     info("Loading and waiting for the cert error");
     yield certErrorLoaded;
 
     return yield ContentTask.spawn(browser, null, function* () {
       let doc = content.document;
       let div = doc.getElementById("wrongSystemTimePanel");
@@ -219,17 +219,17 @@ add_task(function* checkWrongSystemTimeW
 
 add_task(function* checkAdvancedDetails() {
   info("Loading a bad cert page and verifying the main error and advanced details section");
   let browser;
   let certErrorLoaded;
   yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
     gBrowser.selectedTab = gBrowser.addTab(BAD_CERT);
     browser = gBrowser.selectedBrowser;
-    certErrorLoaded = waitForCertErrorLoad(browser);
+    certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   }, false);
 
   info("Loading and waiting for the cert error");
   yield certErrorLoaded;
 
   let message = yield ContentTask.spawn(browser, null, function* () {
     let doc = content.document;
     let shortDescText = doc.getElementById("errorShortDescText");
@@ -281,17 +281,17 @@ add_task(function* checkAdvancedDetails(
 
 add_task(function* checkAdvancedDetailsForHSTS() {
   info("Loading a bad STS cert page and verifying the advanced details section");
   let browser;
   let certErrorLoaded;
   yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
     gBrowser.selectedTab = gBrowser.addTab(BAD_STS_CERT);
     browser = gBrowser.selectedBrowser;
-    certErrorLoaded = waitForCertErrorLoad(browser);
+    certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   }, false);
 
   info("Loading and waiting for the cert error");
   yield certErrorLoaded;
 
   let message = yield ContentTask.spawn(browser, null, function* () {
     let doc = content.document;
     let advancedButton = doc.getElementById("advancedButton");
@@ -350,41 +350,31 @@ add_task(function* checkAdvancedDetailsF
 
 add_task(function* checkUnknownIssuerLearnMoreLink() {
   info("Loading a cert error for self-signed pages and checking the correct link is shown");
   let browser;
   let certErrorLoaded;
   yield BrowserTestUtils.openNewForegroundTab(gBrowser, () => {
     gBrowser.selectedTab = gBrowser.addTab(UNKNOWN_ISSUER);
     browser = gBrowser.selectedBrowser;
-    certErrorLoaded = waitForCertErrorLoad(browser);
+    certErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
   }, false);
 
   info("Loading and waiting for the cert error");
   yield certErrorLoaded;
 
   let href = yield ContentTask.spawn(browser, null, function* () {
     let learnMoreLink = content.document.getElementById("learnMoreLink");
     return learnMoreLink.href;
   });
   ok(href.endsWith("security-error"), "security-error in the Learn More URL");
 
   yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
 });
 
-function waitForCertErrorLoad(browser) {
-  return new Promise(resolve => {
-    info("Waiting for DOMContentLoaded event");
-    browser.addEventListener("DOMContentLoaded", function load() {
-      browser.removeEventListener("DOMContentLoaded", load, false, true);
-      resolve();
-    }, false, true);
-  });
-}
-
 function getCertChain(securityInfoAsString) {
   let certChain = "";
   const serhelper = Cc["@mozilla.org/network/serialization-helper;1"]
                        .getService(Ci.nsISerializationHelper);
   let securityInfo = serhelper.deserializeObject(securityInfoAsString);
   securityInfo.QueryInterface(Ci.nsITransportSecurityInfo);
   let certs = securityInfo.failedCertChain.getEnumerator();
   while (certs.hasMoreElements()) {
--- a/browser/components/migration/ChromeProfileMigrator.js
+++ b/browser/components/migration/ChromeProfileMigrator.js
@@ -76,49 +76,46 @@ function chromeTimeToDate(aTime) {
  * @return  Chrome time
  * @note    For details on Chrome time, see chromeTimeToDate.
  */
 function dateToChromeTime(aDate) {
   return (aDate * 10000 + S100NS_FROM1601TO1970) / S100NS_PER_MS;
 }
 
 /**
- * Insert bookmark items into specific folder.
+ * Converts an array of chrome bookmark objects into one our own places code
+ * understands.
  *
- * @param   parentGuid
- *          GUID of the folder where items will be inserted
  * @param   items
- *          bookmark items to be inserted
+ *          bookmark items to be inserted on this parent
  * @param   errorAccumulator
  *          function that gets called with any errors thrown so we don't drop them on the floor.
  */
-function* insertBookmarkItems(parentGuid, items, errorAccumulator) {
+function convertBookmarks(items, errorAccumulator) {
+  let itemsToInsert = [];
   for (let item of items) {
     try {
       if (item.type == "url") {
         if (item.url.trim().startsWith("chrome:")) {
           // Skip invalid chrome URIs. Creating an actual URI always reports
           // messages to the console, so we avoid doing that.
           continue;
         }
-        yield MigrationUtils.insertBookmarkWrapper({
-          parentGuid, url: item.url, title: item.name
-        });
+        itemsToInsert.push({url: item.url, title: item.name});
       } else if (item.type == "folder") {
-        let newFolderGuid = (yield MigrationUtils.insertBookmarkWrapper({
-          parentGuid, type: PlacesUtils.bookmarks.TYPE_FOLDER, title: item.name
-        })).guid;
-
-        yield insertBookmarkItems(newFolderGuid, item.children, errorAccumulator);
+        let folderItem = {type: PlacesUtils.bookmarks.TYPE_FOLDER, title: item.name};
+        folderItem.children = convertBookmarks(item.children, errorAccumulator);
+        itemsToInsert.push(folderItem);
       }
-    } catch (e) {
-      Cu.reportError(e);
-      errorAccumulator(e);
+    } catch (ex) {
+      Cu.reportError(ex);
+      errorAccumulator(ex);
     }
   }
+  return itemsToInsert;
 }
 
 function ChromeProfileMigrator() {
   let chromeUserDataFolder =
     getDataFolder(["Google", "Chrome"], ["Google", "Chrome"], ["google-chrome"]);
   this._chromeUserDataFolder = chromeUserDataFolder.exists() ?
     chromeUserDataFolder : null;
 }
@@ -255,57 +252,44 @@ function GetBookmarksResource(aProfileFo
 
   return {
     type: MigrationUtils.resourceTypes.BOOKMARKS,
 
     migrate(aCallback) {
       return Task.spawn(function* () {
         let gotErrors = false;
         let errorGatherer = function() { gotErrors = true };
-        let jsonStream = yield new Promise((resolve, reject) => {
-          let options = {
-            uri: NetUtil.newURI(bookmarksFile),
-            loadUsingSystemPrincipal: true
-          };
-          NetUtil.asyncFetch(options, (inputStream, resultCode) => {
-            if (Components.isSuccessCode(resultCode)) {
-              resolve(inputStream);
-            } else {
-              reject(new Error("Could not read Bookmarks file"));
-            }
-          });
-        });
-
         // Parse Chrome bookmark file that is JSON format
-        let bookmarkJSON = NetUtil.readInputStreamToString(
-          jsonStream, jsonStream.available(), { charset : "UTF-8" });
+        let bookmarkJSON = yield OS.File.read(bookmarksFile.path, {encoding: "UTF-8"});
         let roots = JSON.parse(bookmarkJSON).roots;
 
         // Importing bookmark bar items
         if (roots.bookmark_bar.children &&
             roots.bookmark_bar.children.length > 0) {
           // Toolbar
           let parentGuid = PlacesUtils.bookmarks.toolbarGuid;
+          let bookmarks = convertBookmarks(roots.bookmark_bar.children, errorGatherer);
           if (!MigrationUtils.isStartupMigration) {
             parentGuid =
               yield MigrationUtils.createImportedBookmarksFolder("Chrome", parentGuid);
           }
-          yield insertBookmarkItems(parentGuid, roots.bookmark_bar.children, errorGatherer);
+          yield MigrationUtils.insertManyBookmarksWrapper(bookmarks, parentGuid);
         }
 
         // Importing bookmark menu items
         if (roots.other.children &&
             roots.other.children.length > 0) {
           // Bookmark menu
           let parentGuid = PlacesUtils.bookmarks.menuGuid;
+          let bookmarks = convertBookmarks(roots.other.children, errorGatherer);
           if (!MigrationUtils.isStartupMigration) {
-            parentGuid =
-              yield MigrationUtils.createImportedBookmarksFolder("Chrome", parentGuid);
+            parentGuid
+              = yield MigrationUtils.createImportedBookmarksFolder("Chrome", parentGuid);
           }
-          yield insertBookmarkItems(parentGuid, roots.other.children, errorGatherer);
+          yield MigrationUtils.insertManyBookmarksWrapper(bookmarks, parentGuid);
         }
         if (gotErrors) {
           throw new Error("The migration included errors.");
         }
       }).then(() => aCallback(true),
               () => aCallback(false));
     }
   };
--- a/browser/components/migration/EdgeProfileMigrator.js
+++ b/browser/components/migration/EdgeProfileMigrator.js
@@ -13,16 +13,18 @@ Cu.import("resource://gre/modules/Task.j
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource:///modules/MigrationUtils.jsm"); /* globals MigratorPrototype */
 Cu.import("resource:///modules/MSMigrationUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "ESEDBReader",
                                   "resource:///modules/ESEDBReader.jsm");
 
+Cu.importGlobalProperties(["URL"]);
+
 const kEdgeRegistryRoot = "SOFTWARE\\Classes\\Local Settings\\Software\\" +
   "Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\" +
   "microsoft.microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge";
 const kEdgeDatabasePath = "AC\\MicrosoftEdge\\User\\Default\\DataStore\\Data\\";
 
 XPCOMUtils.defineLazyGetter(this, "gEdgeDatabase", function() {
   let edgeDir = MSMigrationUtils.getEdgeLocalDataFolder();
   if (!edgeDir) {
@@ -189,31 +191,28 @@ EdgeReadingListMigrator.prototype = {
     };
 
     let readingListItems = readTableFromEdgeDB("ReadingList", columnFn, filterFn);
     if (!readingListItems.length) {
       return;
     }
 
     let destFolderGuid = yield this._ensureReadingListFolder(parentGuid);
-    let exceptionThrown;
+    let bookmarks = [];
     for (let item of readingListItems) {
       let dateAdded = item.AddedDate || new Date();
-      yield MigrationUtils.insertBookmarkWrapper({
-        parentGuid: destFolderGuid, url: item.URL, title: item.Title, dateAdded
-      }).catch(ex => {
-        if (!exceptionThrown) {
-          exceptionThrown = ex;
-        }
-        Cu.reportError(ex);
-      });
+      // Avoid including broken URLs:
+      try {
+        new URL(item.URL);
+      } catch (ex) {
+        continue;
+      }
+      bookmarks.push({ url: item.URL, title: item.Title, dateAdded });
     }
-    if (exceptionThrown) {
-      throw exceptionThrown;
-    }
+    yield MigrationUtils.insertManyBookmarksWrapper(readingListItems, destFolderGuid);
   }),
 
   _ensureReadingListFolder: Task.async(function*(parentGuid) {
     if (!this.__readingListFolderGuid) {
       let folderTitle = MigrationUtils.getLocalizedString("importedEdgeReadingList");
       let folderSpec = {type: PlacesUtils.bookmarks.TYPE_FOLDER, parentGuid, title: folderTitle};
       this.__readingListFolderGuid = (yield MigrationUtils.insertBookmarkWrapper(folderSpec)).guid;
     }
@@ -235,83 +234,40 @@ EdgeBookmarksMigrator.prototype = {
   get exists() {
     if (!("_exists" in this)) {
       this._exists = !!this.db;
     }
     return this._exists;
   },
 
   migrate(callback) {
-    this._migrateBookmarks(PlacesUtils.bookmarks.menuGuid).then(
+    this._migrateBookmarks().then(
       () => callback(true),
       ex => {
         Cu.reportError(ex);
         callback(false);
       }
     );
   },
 
-  _migrateBookmarks: Task.async(function*(rootGuid) {
-    let {bookmarks, folderMap} = this._fetchBookmarksFromDB();
-    if (!bookmarks.length) {
-      return;
-    }
-    yield this._importBookmarks(bookmarks, folderMap, rootGuid);
-  }),
-
-  _importBookmarks: Task.async(function*(bookmarks, folderMap, rootGuid) {
-    if (!MigrationUtils.isStartupMigration) {
-      rootGuid =
-        yield MigrationUtils.createImportedBookmarksFolder("Edge", rootGuid);
-    }
-
-    let exceptionThrown;
-    for (let bookmark of bookmarks) {
-      // If this is a folder, we might have created it already to put other bookmarks in.
-      if (bookmark.IsFolder && bookmark._guid) {
-        continue;
+  _migrateBookmarks: Task.async(function*() {
+    let {toplevelBMs, toolbarBMs} = this._fetchBookmarksFromDB();
+    if (toplevelBMs.length) {
+      let parentGuid = PlacesUtils.bookmarks.menuGuid;
+      if (!MigrationUtils.isStartupMigration) {
+        parentGuid = yield MigrationUtils.createImportedBookmarksFolder("Edge", parentGuid);
       }
-
-      // If this is a folder, just create folders up to and including that folder.
-      // Otherwise, create folders until we have a parent for this bookmark.
-      // This avoids duplicating logic for the bookmarks bar.
-      let folderId = bookmark.IsFolder ? bookmark.ItemId : bookmark.ParentId;
-      let parentGuid = yield this._getGuidForFolder(folderId, folderMap, rootGuid).catch(ex => {
-        if (!exceptionThrown) {
-          exceptionThrown = ex;
-        }
-        Cu.reportError(ex);
-      });
-
-      // If this was a folder, we're done with this item
-      if (bookmark.IsFolder) {
-        continue;
+      yield MigrationUtils.insertManyBookmarksWrapper(toplevelBMs, parentGuid);
+    }
+    if (toolbarBMs.length) {
+      let parentGuid = PlacesUtils.bookmarks.toolbarGuid;
+      if (!MigrationUtils.isStartupMigration) {
+        parentGuid = yield MigrationUtils.createImportedBookmarksFolder("Edge", parentGuid);
       }
-
-      if (!parentGuid) {
-        // If we couldn't sort out a parent, fall back to importing on the root:
-        parentGuid = rootGuid;
-      }
-      let placesInfo = {
-        parentGuid,
-        url: bookmark.URL,
-        dateAdded: bookmark.DateUpdated || new Date(),
-        title: bookmark.Title,
-      };
-
-      yield MigrationUtils.insertBookmarkWrapper(placesInfo).catch(ex => {
-        if (!exceptionThrown) {
-          exceptionThrown = ex;
-        }
-        Cu.reportError(ex);
-      });
-    }
-
-    if (exceptionThrown) {
-      throw exceptionThrown;
+      yield MigrationUtils.insertManyBookmarksWrapper(toolbarBMs, parentGuid);
     }
   }),
 
   _fetchBookmarksFromDB() {
     let folderMap = new Map();
     let columns = [
       {name: "URL", type: "string"},
       {name: "Title", type: "string"},
@@ -326,54 +282,64 @@ EdgeBookmarksMigrator.prototype = {
         return false;
       }
       if (row.IsFolder) {
         folderMap.set(row.ItemId, row);
       }
       return true;
     };
     let bookmarks = readTableFromEdgeDB(this.TABLE_NAME, columns, filterFn, this.db);
-    return {bookmarks, folderMap};
-  },
-
-  _getGuidForFolder: Task.async(function*(folderId, folderMap, rootGuid) {
-    // If the folderId is not known as a folder in the folder map, we assume
-    // we just need the root
-    if (!folderMap.has(folderId)) {
-      return rootGuid;
-    }
-    let folder = folderMap.get(folderId);
-    // If the folder already has a places guid, just return that.
-    if (folder._guid) {
-      return folder._guid;
-    }
+    let toplevelBMs = [], toolbarBMs = [];
+    for (let bookmark of bookmarks) {
+      let bmToInsert;
+      // Ignore invalid URLs:
+      if (!bookmark.IsFolder) {
+        try {
+          new URL(bookmark.URL);
+        } catch (ex) {
+          Cu.reportError(`Ignoring ${bookmark.URL} when importing from Edge because of exception: ${ex}`);
+          continue;
+        }
+        bmToInsert = {
+          dateAdded: bookmark.DateUpdated || new Date(),
+          title: bookmark.Title,
+          url: bookmark.URL,
+        };
+      } else /* bookmark.IsFolder */ {
+        // Ignore the favorites bar bookmark itself.
+        if (bookmark.Title == "_Favorites_Bar_") {
+          continue;
+        }
+        if (!bookmark._childrenRef) {
+          bookmark._childrenRef = [];
+        }
+        bmToInsert = {
+          title: bookmark.Title,
+          type: PlacesUtils.bookmarks.TYPE_FOLDER,
+          dateAdded: bookmark.DateUpdated || new Date(),
+          children: bookmark._childrenRef,
+        };
+      }
 
-    // Hacks! The bookmarks bar is special:
-    if (folder.Title == "_Favorites_Bar_") {
-      let toolbarGuid = PlacesUtils.bookmarks.toolbarGuid;
-      if (!MigrationUtils.isStartupMigration) {
-        toolbarGuid =
-          yield MigrationUtils.createImportedBookmarksFolder("Edge", toolbarGuid);
+      if (!folderMap.has(bookmark.ParentId)) {
+        toplevelBMs.push(bmToInsert);
+      } else {
+        let parent = folderMap.get(bookmark.ParentId);
+        if (parent.Title == "_Favorites_Bar_") {
+          toolbarBMs.push(bmToInsert);
+          continue;
+        }
+        if (!parent._childrenRef) {
+          parent._childrenRef = [];
+        }
+        parent._childrenRef.push(bmToInsert);
       }
-      folder._guid = toolbarGuid;
-      return folder._guid;
     }
-    // Otherwise, get the right parent guid recursively:
-    let parentGuid = yield this._getGuidForFolder(folder.ParentId, folderMap, rootGuid);
-    let folderInfo = {
-      title: folder.Title,
-      type: PlacesUtils.bookmarks.TYPE_FOLDER,
-      dateAdded: folder.DateUpdated || new Date(),
-      parentGuid,
-    };
-    // and add ourselves as a kid, and return the guid we got.
-    let parentBM = yield MigrationUtils.insertBookmarkWrapper(folderInfo);
-    folder._guid = parentBM.guid;
-    return folder._guid;
-  }),
+    return {toplevelBMs, toolbarBMs};
+  },
 };
 
 function EdgeProfileMigrator() {
   this.wrappedJSObject = this;
 }
 
 EdgeProfileMigrator.prototype = Object.create(MigratorPrototype);
 
--- a/browser/components/migration/MSMigrationUtils.jsm
+++ b/browser/components/migration/MSMigrationUtils.jsm
@@ -372,75 +372,71 @@ Bookmarks.prototype = {
           yield MigrationUtils.createImportedBookmarksFolder(this.importedAppLabel, folderGuid);
       }
       yield this._migrateFolder(this._favoritesFolder, folderGuid);
     }.bind(this)).then(() => aCallback(true),
                        e => { Cu.reportError(e); aCallback(false) });
   },
 
   _migrateFolder: Task.async(function* (aSourceFolder, aDestFolderGuid) {
+    let bookmarks = yield this._getBookmarksInFolder(aSourceFolder);
+    if (bookmarks.length) {
+      yield MigrationUtils.insertManyBookmarksWrapper(bookmarks, aDestFolderGuid);
+    }
+  }),
+
+  _getBookmarksInFolder: Task.async(function* (aSourceFolder) {
     // TODO (bug 741993): the favorites order is stored in the Registry, at
     // HCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites
     // for IE, and in a similar location for Edge.
     // Until we support it, bookmarks are imported in alphabetical order.
     let entries = aSourceFolder.directoryEntries;
-    let succeeded = true;
+    let rv = [];
     while (entries.hasMoreElements()) {
       let entry = entries.getNext().QueryInterface(Ci.nsIFile);
       try {
         // Make sure that entry.path == entry.target to not follow .lnk folder
         // shortcuts which could lead to infinite cycles.
         // Don't use isSymlink(), since it would throw for invalid
         // lnk files pointing to URLs or to unresolvable paths.
         if (entry.path == entry.target && entry.isDirectory()) {
-          let folderGuid;
-          if (entry.leafName == this._toolbarFolderName &&
-              entry.parent.equals(this._favoritesFolder)) {
+          let isBookmarksFolder = entry.leafName == this._toolbarFolderName &&
+                                  entry.parent.equals(this._favoritesFolder);
+          if (isBookmarksFolder && entry.isReadable()) {
             // Import to the bookmarks toolbar.
-            folderGuid = PlacesUtils.bookmarks.toolbarGuid;
+            let folderGuid = PlacesUtils.bookmarks.toolbarGuid;
             if (!MigrationUtils.isStartupMigration) {
               folderGuid =
                 yield MigrationUtils.createImportedBookmarksFolder(this.importedAppLabel, folderGuid);
             }
-          } else {
-            // Import to a new folder.
-            folderGuid = (yield MigrationUtils.insertBookmarkWrapper({
+            yield this._migrateFolder(entry, folderGuid);
+          } else if (entry.isReadable()) {
+            let childBookmarks = yield this._getBookmarksInFolder(entry);
+            rv.push({
               type: PlacesUtils.bookmarks.TYPE_FOLDER,
-              parentGuid: aDestFolderGuid,
-              title: entry.leafName
-            })).guid;
-          }
-
-          if (entry.isReadable()) {
-            // Recursively import the folder.
-            yield this._migrateFolder(entry, folderGuid);
+              title: entry.leafName,
+              children: childBookmarks,
+            });
           }
         } else {
           // Strip the .url extension, to both check this is a valid link file,
           // and get the associated title.
           let matches = entry.leafName.match(/(.+)\.url$/i);
           if (matches) {
             let fileHandler = Cc["@mozilla.org/network/protocol;1?name=file"].
                               getService(Ci.nsIFileProtocolHandler);
             let uri = fileHandler.readURLFile(entry);
-            let title = matches[1];
-
-            yield MigrationUtils.insertBookmarkWrapper({
-              parentGuid: aDestFolderGuid, url: uri, title
-            });
+            rv.push({url: uri, title: matches[1]});
           }
         }
       } catch (ex) {
         Components.utils.reportError("Unable to import " + this.importedAppLabel + " favorite (" + entry.leafName + "): " + ex);
-        succeeded = false;
       }
     }
-    if (!succeeded) {
-      throw new Error("Failed to import all bookmarks correctly.");
-    }
+    return rv;
   }),
 
 };
 
 function Cookies(migrationType) {
   this._migrationType = migrationType;
 }
 
--- a/browser/components/migration/MigrationUtils.jsm
+++ b/browser/components/migration/MigrationUtils.jsm
@@ -986,16 +986,30 @@ this.MigrationUtils = Object.freeze({
       let {guid, lastModified, type} = bm;
       gUndoData.get("bookmarks").push({
         parentGuid, guid, lastModified, type
       });
       return bm;
     });
   },
 
+  insertManyBookmarksWrapper(bookmarks, parent) {
+    let insertionPromise = PlacesUtils.bookmarks.insertTree({guid: parent, children: bookmarks});
+    return insertionPromise.then(insertedItems => {
+      this._importQuantities.bookmarks += insertedItems.length;
+      if (gKeepUndoData) {
+        let bmData = gUndoData.get("bookmarks");
+        for (let bm of insertedItems) {
+          let {parentGuid, guid, lastModified, type} = bm;
+          bmData.push({parentGuid, guid, lastModified, type});
+        }
+      }
+    }, ex => Cu.reportError(ex));
+  },
+
   insertVisitsWrapper(places, options) {
     this._importQuantities.history += places.length;
     if (gKeepUndoData) {
       this._updateHistoryUndo(places);
     }
     return PlacesUtils.asyncHistory.updatePlaces(places, options, true);
   },
 
--- a/browser/components/migration/SafariProfileMigrator.js
+++ b/browser/components/migration/SafariProfileMigrator.js
@@ -22,16 +22,18 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/PropertyListUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "FormHistory",
                                   "resource://gre/modules/FormHistory.jsm");
 
+Cu.importGlobalProperties(["URL"]);
+
 function Bookmarks(aBookmarksFile) {
   this._file = aBookmarksFile;
 }
 Bookmarks.prototype = {
   type: MigrationUtils.resourceTypes.BOOKMARKS,
 
   migrate: function B_migrate(aCallback) {
     return Task.spawn(function* () {
@@ -142,43 +144,48 @@ Bookmarks.prototype = {
     if (folderGuid == -1)
       throw new Error("Invalid folder GUID");
 
     yield this._migrateEntries(entriesFiltered, folderGuid);
   }),
 
   // migrate the given array of safari bookmarks to the given places
   // folder.
-  _migrateEntries: Task.async(function* (entries, parentGuid) {
-    for (let entry of entries) {
+  _migrateEntries(entries, parentGuid) {
+    let convertedEntries = this._convertEntries(entries);
+    return MigrationUtils.insertManyBookmarksWrapper(convertedEntries, parentGuid);
+  },
+
+  _convertEntries(entries) {
+    return entries.map(function(entry) {
       let type = entry.get("WebBookmarkType");
       if (type == "WebBookmarkTypeList" && entry.has("Children")) {
-        let title = entry.get("Title");
-        let newFolderGuid = (yield MigrationUtils.insertBookmarkWrapper({
-          parentGuid, type: PlacesUtils.bookmarks.TYPE_FOLDER, title
-        })).guid;
-
-        // Empty folders may not have a children array.
-        if (entry.has("Children"))
-          yield this._migrateEntries(entry.get("Children"), newFolderGuid, false);
-      } else if (type == "WebBookmarkTypeLeaf" && entry.has("URLString")) {
+        return {
+          title: entry.get("Title"),
+          type: PlacesUtils.bookmarks.TYPE_FOLDER,
+          children: this._convertEntries(entry.get("Children")),
+        };
+      }
+      if (type == "WebBookmarkTypeLeaf" && entry.has("URLString")) {
+        // Check we understand this URL before adding it:
+        let url = entry.get("URLString");
+        try {
+          new URL(url);
+        } catch (ex) {
+          Cu.reportError(`Ignoring ${url} when importing from Safari because of exception: ${ex}`);
+          return null;
+        }
         let title;
         if (entry.has("URIDictionary"))
           title = entry.get("URIDictionary").get("title");
-
-        try {
-          yield MigrationUtils.insertBookmarkWrapper({
-            parentGuid, url: entry.get("URLString"), title
-          });
-        } catch (ex) {
-          Cu.reportError("Invalid Safari bookmark: " + ex);
-        }
+        return { url, title };
       }
-    }
-  })
+      return null;
+    }).filter(e => !!e);
+  },
 };
 
 function History(aHistoryFile) {
   this._file = aHistoryFile;
 }
 History.prototype = {
   type: MigrationUtils.resourceTypes.HISTORY,
 
new file mode 100644
--- /dev/null
+++ b/browser/components/migration/tests/unit/test_Chrome_bookmarks.js
@@ -0,0 +1,105 @@
+"use strict";
+
+Cu.import("resource://gre/modules/AppConstants.jsm");
+
+add_task(function* () {
+  let rootDir = do_get_file("chromefiles/");
+  let pathId;
+  let subDirs = ["Google", "Chrome"];
+  if (AppConstants.platform == "macosx") {
+    subDirs.unshift("Application Support");
+    pathId = "ULibDir";
+  } else if (AppConstants.platform == "win") {
+    subDirs.push("User Data");
+    pathId = "LocalAppData";
+  } else {
+    subDirs = [".config", "google-chrome"];
+    pathId = "Home";
+  }
+  registerFakePath(pathId, rootDir);
+
+  let target = rootDir.clone();
+  // Pretend this is the default profile
+  subDirs.push("Default");
+  while (subDirs.length) {
+    target.append(subDirs.shift());
+  }
+  // We don't import osfile.jsm until after registering the fake path, because
+  // importing osfile will sometimes greedily fetch certain path identifiers
+  // from the dir service, which means they get cached, which means we can't
+  // register a fake path for them anymore.
+  Cu.import("resource://gre/modules/osfile.jsm"); /* globals OS */
+  yield OS.File.makeDir(target.path, {from: rootDir.parent.path, ignoreExisting: true});
+
+  target.append("Bookmarks");
+  yield OS.File.remove(target.path, {ignoreAbsent: true});
+
+  let bookmarksData = {roots: {bookmark_bar: {children: []}, other: {children: []}}};
+  const MAX_BMS = 100;
+  let barKids = bookmarksData.roots.bookmark_bar.children;
+  let menuKids = bookmarksData.roots.other.children;
+  let currentMenuKids = menuKids;
+  let currentBarKids = barKids;
+  for (let i = 0; i < MAX_BMS; i++) {
+    currentBarKids.push({
+      url: "https://www.chrome-bookmark-bar-bookmark" + i + ".com",
+      name: "bookmark " + i,
+      type: "url",
+    });
+    currentMenuKids.push({
+      url: "https://www.chrome-menu-bookmark" + i + ".com",
+      name: "bookmark for menu " + i,
+      type: "url",
+    });
+    if (i % 20 == 19) {
+      let nextFolder = {
+        name: "toolbar folder " + Math.ceil(i / 20),
+        type: "folder",
+        children: [],
+      };
+      currentBarKids.push(nextFolder);
+      currentBarKids = nextFolder.children;
+
+      nextFolder = {
+        name: "menu folder " + Math.ceil(i / 20),
+        type: "folder",
+        children: [],
+      };
+      currentMenuKids.push(nextFolder);
+      currentMenuKids = nextFolder.children;
+    }
+  }
+
+  yield OS.File.writeAtomic(target.path, JSON.stringify(bookmarksData), {encoding: "utf-8"});
+
+  let migrator = MigrationUtils.getMigrator("chrome");
+  // Sanity check for the source.
+  Assert.ok(migrator.sourceExists);
+
+  let itemsSeen = {bookmarks: 0, folders: 0};
+  let bmObserver = {
+    onItemAdded(aItemId, aParentId, aIndex, aItemType, aURI, aTitle) {
+      if (!aTitle.includes("Chrome")) {
+        itemsSeen[aItemType == PlacesUtils.bookmarks.TYPE_FOLDER ? "folders" : "bookmarks"]++;
+      }
+    },
+    onBeginUpdateBatch() {},
+    onEndUpdateBatch() {},
+    onItemRemoved() {},
+    onItemChanged() {},
+    onItemVisited() {},
+    onItemMoved() {},
+  };
+
+  PlacesUtils.bookmarks.addObserver(bmObserver, false);
+  const PROFILE = {
+    id: "Default",
+    name: "Default",
+  };
+  yield promiseMigration(migrator, MigrationUtils.resourceTypes.BOOKMARKS, PROFILE);
+  PlacesUtils.bookmarks.removeObserver(bmObserver);
+
+  Assert.equal(itemsSeen.bookmarks, 200, "Should have seen 200 bookmarks.");
+  Assert.equal(itemsSeen.folders, 10, "Should have seen 10 folders.");
+  Assert.equal(MigrationUtils._importQuantities.bookmarks, itemsSeen.bookmarks + itemsSeen.folders, "Telemetry reporting correct.");
+});
--- a/browser/components/migration/tests/unit/xpcshell.ini
+++ b/browser/components/migration/tests/unit/xpcshell.ini
@@ -2,16 +2,17 @@
 head = head_migration.js
 firefox-appdir = browser
 skip-if = toolkit == 'android'
 support-files =
   Library/**
   AppData/**
 
 [test_automigration.js]
+[test_Chrome_bookmarks.js]
 [test_Chrome_cookies.js]
 skip-if = os != "mac" # Relies on ULibDir
 [test_Chrome_passwords.js]
 skip-if = os != "win"
 [test_Edge_availability.js]
 [test_Edge_db_migration.js]
 skip-if = os != "win" || os_version == "5.1" || os_version == "5.2" # Relies on post-XP bits of ESEDB
 [test_fx_telemetry.js]
--- a/browser/extensions/formautofill/FormAutofillContent.jsm
+++ b/browser/extensions/formautofill/FormAutofillContent.jsm
@@ -86,17 +86,29 @@ AutofillProfileAutoCompleteSearch.protot
    * @param {string} searchParam
    * @param {Object} previousResult a previous result to use for faster searchinig
    * @param {Object} listener the listener to notify when the search is complete
    */
   startSearch(searchString, searchParam, previousResult, listener) {
     this.log.debug("startSearch: for", searchString, "with input", formFillController.focusedInput);
     let focusedInput = formFillController.focusedInput;
     this.forceStop = false;
-    let info = this._serializeInfo(FormAutofillContent.getInputDetails(focusedInput));
+    let info = FormAutofillContent.getInputDetails(focusedInput);
+
+    if (!FormAutofillContent.savedFieldNames.has(info.fieldName)) {
+      let formHistory = Cc["@mozilla.org/autocomplete/search;1?name=form-history"]
+                          .createInstance(Ci.nsIAutoCompleteSearch);
+      formHistory.startSearch(searchString, searchParam, previousResult, {
+        onSearchResult: (search, result) => {
+          listener.onSearchResult(this, result);
+          ProfileAutocomplete.setProfileAutoCompleteResult(result);
+        },
+      });
+      return;
+    }
 
     this._getProfiles({info, searchString}).then((profiles) => {
       if (this.forceStop) {
         return;
       }
 
       let allFieldNames = FormAutofillContent.getAllFieldNames(focusedInput);
       let result = new ProfileAutoCompleteResult(searchString,
@@ -137,22 +149,16 @@ AutofillProfileAutoCompleteSearch.protot
       Services.cpmm.addMessageListener("FormAutofill:Profiles", function getResult(result) {
         Services.cpmm.removeMessageListener("FormAutofill:Profiles", getResult);
         resolve(result.data);
       });
 
       Services.cpmm.sendAsyncMessage("FormAutofill:GetProfiles", data);
     });
   },
-
-  _serializeInfo(detail) {
-    let info = Object.assign({}, detail);
-    delete info.element;
-    return info;
-  },
 };
 
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory([AutofillProfileAutoCompleteSearch]);
 
 let ProfileAutocomplete = {
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
 
   _lastAutoCompleteResult: null,
@@ -245,30 +251,49 @@ let ProfileAutocomplete = {
  * NOTE: Declares it by "var" to make it accessible in unit tests.
  */
 var FormAutofillContent = {
   /**
    * @type {WeakMap} mapping FormLike root HTML elements to FormAutofillHandler objects.
    */
   _formsDetails: new WeakMap(),
 
+  /**
+   * @type {Set} Set of the fields with usable values in any saved profile.
+   */
+  savedFieldNames: null,
+
   init() {
     FormAutofillUtils.defineLazyLogGetter(this, "FormAutofillContent");
 
-    Services.cpmm.addMessageListener("FormAutofill:enabledStatus", (result) => {
-      if (result.data) {
-        ProfileAutocomplete.ensureRegistered();
-      } else {
-        ProfileAutocomplete.ensureUnregistered();
-      }
-    });
+    Services.cpmm.addMessageListener("FormAutofill:enabledStatus", this);
+    Services.cpmm.addMessageListener("FormAutofill:savedFieldNames", this);
 
     if (Services.cpmm.initialProcessData.autofillEnabled) {
       ProfileAutocomplete.ensureRegistered();
     }
+
+    this.savedFieldNames =
+      Services.cpmm.initialProcessData.autofillSavedFieldNames || new Set();
+  },
+
+  receiveMessage({name, data}) {
+    switch (name) {
+      case "FormAutofill:enabledStatus": {
+        if (data) {
+          ProfileAutocomplete.ensureRegistered();
+        } else {
+          ProfileAutocomplete.ensureUnregistered();
+        }
+        break;
+      }
+      case "FormAutofill:savedFieldNames": {
+        this.savedFieldNames = data;
+      }
+    }
   },
 
   /**
    * Get the input's information from cache which is created after page identified.
    *
    * @param {HTMLInputElement} element Focused input which triggered profile searching
    * @returns {Object|null}
    *          Return target input's information that cloned from content cache
--- a/browser/extensions/formautofill/FormAutofillHandler.jsm
+++ b/browser/extensions/formautofill/FormAutofillHandler.jsm
@@ -48,62 +48,50 @@ FormAutofillHandler.prototype = {
    * the same exact combination of these values.
    *
    * A direct reference to the associated element cannot be sent to the user
    * interface because processing may be done in the parent process.
    */
   fieldDetails: null,
 
   /**
-   * Returns information from the form about fields that can be autofilled, and
-   * populates the fieldDetails array on this object accordingly.
-   *
-   * @returns {Array<Object>} Serializable data structure that can be sent to the user
-   *          interface, or null if the operation failed because the constraints
-   *          on the allowed fields were not honored.
+   * Set fieldDetails from the form about fields that can be autofilled.
    */
   collectFormFields() {
-    let autofillData = [];
+    this.fieldDetails = [];
 
     for (let element of this.form.elements) {
       // Exclude elements to which no autocomplete field has been assigned.
       let info = FormAutofillHeuristics.getInfo(element);
       if (!info) {
         continue;
       }
 
       // Store the association between the field metadata and the element.
       if (this.fieldDetails.some(f => f.section == info.section &&
                                       f.addressType == info.addressType &&
                                       f.contactType == info.contactType &&
                                       f.fieldName == info.fieldName)) {
         // A field with the same identifier already exists.
         log.debug("Not collecting a field matching another with the same info:", info);
-        return null;
+        continue;
       }
 
-      let inputFormat = {
+      let formatWithElement = {
         section: info.section,
         addressType: info.addressType,
         contactType: info.contactType,
         fieldName: info.fieldName,
+        element, // TODO: Apply Cu.getWeakReference and use get API for strong ref.
       };
-      // Clone the inputFormat for caching the fields and elements together
-      let formatWithElement = Object.assign({}, inputFormat);
 
-      inputFormat.index = autofillData.length;
-      autofillData.push(inputFormat);
-
-      formatWithElement.element = element;
       this.fieldDetails.push(formatWithElement);
     }
 
-    log.debug("Collected details on", autofillData.length, "fields");
-
-    return autofillData;
+    log.debug("Collected details on", this.fieldDetails.length, "fields");
   },
 
   /**
    * Processes form fields that can be autofilled, and populates them with the
    * profile provided by backend.
    *
    * @param {Object} profile
    *        A profile to be filled in.
--- a/browser/extensions/formautofill/FormAutofillParent.jsm
+++ b/browser/extensions/formautofill/FormAutofillParent.jsm
@@ -80,16 +80,17 @@ FormAutofillParent.prototype = {
 
     // Observing the pref and storage changes
     Services.prefs.addObserver(ENABLED_PREF, this, false);
     Services.obs.addObserver(this, "formautofill-storage-changed", false);
 
     // Force to trigger the onStatusChanged function for setting listeners properly
     // while initizlization
     this._setStatus(this._getStatus());
+    this._updateSavedFieldNames();
   },
 
   observe(subject, topic, data) {
     log.debug("observe:", topic, "with data:", data);
     switch (topic) {
       case "advanced-pane-loaded": {
         let formAutofillPreferences = new FormAutofillPreferences();
         let document = subject.document;
@@ -110,16 +111,17 @@ FormAutofillParent.prototype = {
       }
 
       case "formautofill-storage-changed": {
         // Early exit if the action is not "add" nor "remove"
         if (data != "add" && data != "remove") {
           break;
         }
 
+        this._updateSavedFieldNames();
         let currentStatus = this._getStatus();
         if (currentStatus !== this._enabled) {
           this._setStatus(currentStatus);
         }
         break;
       }
 
       default: {
@@ -239,9 +241,34 @@ FormAutofillParent.prototype = {
     if (info && info.fieldName) {
       profiles = this._profileStore.getByFilter({searchString, info});
     } else {
       profiles = this._profileStore.getAll();
     }
 
     target.sendAsyncMessage("FormAutofill:Profiles", profiles);
   },
+
+  _updateSavedFieldNames() {
+    if (!Services.ppmm.initialProcessData.autofillSavedFieldNames) {
+      Services.ppmm.initialProcessData.autofillSavedFieldNames = new Set();
+    } else {
+      Services.ppmm.initialProcessData.autofillSavedFieldNames.clear();
+    }
+
+    this._profileStore.getAll().forEach((profile) => {
+      Object.keys(profile).forEach((fieldName) => {
+        if (!profile[fieldName]) {
+          return;
+        }
+        Services.ppmm.initialProcessData.autofillSavedFieldNames.add(fieldName);
+      });
+    });
+
+    // Remove the internal guid and metadata fields.
+    this._profileStore.INTERNAL_FIELDS.forEach((fieldName) => {
+      Services.ppmm.initialProcessData.autofillSavedFieldNames.delete(fieldName);
+    });
+
+    Services.ppmm.broadcastAsyncMessage("FormAutofill:savedFieldNames",
+                                        Services.ppmm.initialProcessData.autofillSavedFieldNames);
+  },
 };
--- a/browser/extensions/formautofill/ProfileStorage.jsm
+++ b/browser/extensions/formautofill/ProfileStorage.jsm
@@ -87,16 +87,19 @@ const MOCK_STORAGE = [{
   tel: "1-650-903-0800",
 }];
 
 function ProfileStorage(path) {
   this._path = path;
 }
 
 ProfileStorage.prototype = {
+  // These fields are defined internally for each profile.
+  INTERNAL_FIELDS:
+    ["guid", "timeCreated", "timeLastUsed", "timeLastModified", "timesUsed"],
   /**
    * Loads the profile data from file to memory.
    *
    * @returns {Promise}
    * @resolves When the operation finished successfully.
    * @rejects  JavaScript exception.
    */
   initialize() {
--- a/browser/extensions/formautofill/test/unit/test_collectFormFields.js
+++ b/browser/extensions/formautofill/test/unit/test_collectFormFields.js
@@ -19,23 +19,16 @@ const TESTCASES = [
     description: "Form with autocomplete properties and 1 token",
     document: `<form><input id="given-name" autocomplete="given-name">
                <input id="family-name" autocomplete="family-name">
                <input id="street-addr" autocomplete="street-address">
                <input id="city" autocomplete="address-level2">
                <input id="country" autocomplete="country">
                <input id="email" autocomplete="email">
                <input id="tel" autocomplete="tel"></form>`,
-    returnedFormat: [
-      {"section": "", "addressType": "", "contactType": "", "fieldName": "street-address", "index": 0},
-      {"section": "", "addressType": "", "contactType": "", "fieldName": "address-level2", "index": 1},
-      {"section": "", "addressType": "", "contactType": "", "fieldName": "country", "index": 2},
-      {"section": "", "addressType": "", "contactType": "", "fieldName": "email", "index": 3},
-      {"section": "", "addressType": "", "contactType": "", "fieldName": "tel", "index": 4},
-    ],
     fieldDetails: [
       {"section": "", "addressType": "", "contactType": "", "fieldName": "street-address", "element": {}},
       {"section": "", "addressType": "", "contactType": "", "fieldName": "address-level2", "element": {}},
       {"section": "", "addressType": "", "contactType": "", "fieldName": "country", "element": {}},
       {"section": "", "addressType": "", "contactType": "", "fieldName": "email", "element": {}},
       {"section": "", "addressType": "", "contactType": "", "fieldName": "tel", "element": {}},
     ],
   },
@@ -43,23 +36,16 @@ const TESTCASES = [
     description: "Form with autocomplete properties and 2 tokens",
     document: `<form><input id="given-name" autocomplete="shipping given-name">
                <input id="family-name" autocomplete="shipping family-name">
                <input id="street-addr" autocomplete="shipping street-address">
                <input id="city" autocomplete="shipping address-level2">
                <input id="country" autocomplete="shipping country">
                <input id='email' autocomplete="shipping email">
                <input id="tel" autocomplete="shipping tel"></form>`,
-    returnedFormat: [
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "index": 0},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "index": 1},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "index": 2},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "index": 3},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "index": 4},
-    ],
     fieldDetails: [
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
     ],
   },
@@ -67,23 +53,16 @@ const TESTCASES = [
     description: "Form with autocomplete properties and profile is partly matched",
     document: `<form><input id="given-name" autocomplete="shipping given-name">
                <input id="family-name" autocomplete="shipping family-name">
                <input id="street-addr" autocomplete="shipping street-address">
                <input id="city" autocomplete="shipping address-level2">
                <input id="country" autocomplete="shipping country">
                <input id='email' autocomplete="shipping email">
                <input id="tel" autocomplete="shipping tel"></form>`,
-    returnedFormat: [
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "index": 0},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "index": 1},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "index": 2},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "index": 3},
-      {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "index": 4},
-    ],
     fieldDetails: [
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
       {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
     ],
   },
@@ -95,16 +74,15 @@ for (let tc of TESTCASES) {
     add_task(function* () {
       do_print("Starting testcase: " + testcase.description);
 
       let doc = MockDocument.createTestDocument("http://localhost:8080/test/",
                                                 testcase.document);
       let form = doc.querySelector("form");
       let handler = new FormAutofillHandler(form);
 
-      Assert.deepEqual(handler.collectFormFields(), testcase.returnedFormat,
-                         "Check the format of form autofill were returned correctly");
+      handler.collectFormFields();
 
       Assert.deepEqual(handler.fieldDetails, testcase.fieldDetails,
                          "Check the fieldDetails were set correctly");
     });
   })();
 }
--- a/browser/extensions/formautofill/test/unit/test_enabledStatus.js
+++ b/browser/extensions/formautofill/test/unit/test_enabledStatus.js
@@ -20,16 +20,17 @@ add_task(function* test_enabledStatus_in
 
   formAutofillParent._uninit();
 });
 
 add_task(function* test_enabledStatus_observe() {
   let formAutofillParent = new FormAutofillParent();
   sinon.stub(formAutofillParent, "_getStatus");
   sinon.spy(formAutofillParent, "_setStatus");
+  sinon.stub(formAutofillParent, "_updateSavedFieldNames");
 
   // _enabled = _getStatus() => No need to trigger onStatusChanged
   formAutofillParent._enabled = true;
   formAutofillParent._getStatus.returns(true);
   formAutofillParent.observe(null, "nsPref:changed", "browser.formautofill.enabled");
   do_check_eq(formAutofillParent._setStatus.called, false);
 
   // _enabled != _getStatus() => Need to trigger onStatusChanged
new file mode 100644
--- /dev/null
+++ b/browser/extensions/formautofill/test/unit/test_savedFieldNames.js
@@ -0,0 +1,89 @@
+/*
+ * Test for keeping the valid fields information in initialProcessData.
+ */
+
+"use strict";
+
+Cu.import("resource://formautofill/FormAutofillParent.jsm");
+Cu.import("resource://formautofill/ProfileStorage.jsm");
+
+add_task(function* test_profileSavedFieldNames_init() {
+  let formAutofillParent = new FormAutofillParent();
+  sinon.stub(formAutofillParent, "_updateSavedFieldNames");
+
+  formAutofillParent.init();
+  do_check_eq(formAutofillParent._updateSavedFieldNames.called, true);
+
+  formAutofillParent._uninit();
+});
+
+add_task(function* test_profileSavedFieldNames_observe() {
+  let formAutofillParent = new FormAutofillParent();
+  sinon.stub(formAutofillParent, "_updateSavedFieldNames");
+
+  // profile added => Need to trigger updateValidFields
+  formAutofillParent.observe(null, "formautofill-storage-changed", "add");
+  do_check_eq(formAutofillParent._updateSavedFieldNames.called, true);
+
+  // profile removed => Need to trigger updateValidFields
+  formAutofillParent._updateSavedFieldNames.reset();
+  formAutofillParent.observe(null, "formautofill-storage-changed", "remove");
+  do_check_eq(formAutofillParent._updateSavedFieldNames.called, true);
+
+  // profile updated => no need to trigger updateValidFields
+  formAutofillParent._updateSavedFieldNames.reset();
+  formAutofillParent.observe(null, "formautofill-storage-changed", "update");
+  do_check_eq(formAutofillParent._updateSavedFieldNames.called, false);
+});
+
+add_task(function* test_profileSavedFieldNames_update() {
+  let formAutofillParent = new FormAutofillParent();
+  formAutofillParent.init();
+  do_register_cleanup(function cleanup() {
+    Services.prefs.clearUserPref("browser.formautofill.enabled");
+  });
+
+  sinon.stub(formAutofillParent._profileStore, "getAll");
+  formAutofillParent._profileStore.getAll.returns([]);
+
+  // The set is empty if there's no profile in the store.
+  formAutofillParent._updateSavedFieldNames();
+  do_check_eq(Services.ppmm.initialProcessData.autofillSavedFieldNames.size, 0);
+
+  // 2 profiles with 4 valid fields.
+  let fakeStorage = [{
+    guid: "test-guid-1",
+    organization: "Sesame Street",
+    "street-address": "123 Sesame Street.",
+    tel: "1-345-345-3456",
+    email: "",
+    timeCreated: 0,
+    timeLastUsed: 0,
+    timeLastModified: 0,
+    timesUsed: 0,
+  }, {
+    guid: "test-guid-2",
+    organization: "Mozilla",
+    "street-address": "331 E. Evelyn Avenue",
+    tel: "1-650-903-0800",
+    country: "US",
+    timeCreated: 0,
+    timeLastUsed: 0,
+    timeLastModified: 0,
+    timesUsed: 0,
+  }];
+  formAutofillParent._profileStore.getAll.returns(fakeStorage);
+  formAutofillParent._updateSavedFieldNames();
+
+  let autofillSavedFieldNames = Services.ppmm.initialProcessData.autofillSavedFieldNames;
+  do_check_eq(autofillSavedFieldNames.size, 4);
+  do_check_eq(autofillSavedFieldNames.has("organization"), true);
+  do_check_eq(autofillSavedFieldNames.has("street-address"), true);
+  do_check_eq(autofillSavedFieldNames.has("tel"), true);
+  do_check_eq(autofillSavedFieldNames.has("email"), false);
+  do_check_eq(autofillSavedFieldNames.has("guid"), false);
+  do_check_eq(autofillSavedFieldNames.has("timeCreated"), false);
+  do_check_eq(autofillSavedFieldNames.has("timeLastUsed"), false);
+  do_check_eq(autofillSavedFieldNames.has("timeLastModified"), false);
+  do_check_eq(autofillSavedFieldNames.has("timesUsed"), false);
+});
--- a/browser/extensions/formautofill/test/unit/xpcshell.ini
+++ b/browser/extensions/formautofill/test/unit/xpcshell.ini
@@ -5,8 +5,10 @@ support-files =
 
 [test_autofillFormFields.js]
 [test_collectFormFields.js]
 [test_enabledStatus.js]
 [test_getFormInputDetails.js]
 [test_markAsAutofillField.js]
 [test_profileAutocompleteResult.js]
 [test_profileStorage.js]
+[test_savedFieldNames.js]
+
--- a/browser/extensions/mortar/host/common/ppapi-runtime.jsm
+++ b/browser/extensions/mortar/host/common/ppapi-runtime.jsm
@@ -1546,16 +1546,23 @@ class PPAPIInstance {
         type: "fullscreenChange",
         fullscreen: evt.data.fullscreen
       });
     });
 
     this.mm.addMessageListener("ppapipdf.js:hashchange", (evt) => {
       this.notifyHashChange(evt.data.url);
     });
+
+    this.mm.addMessageListener("ppapipdf.js:oncommand", (evt) => {
+      this.viewport.notify({
+        type: "command",
+        name: evt.data.name
+      });
+    });
   }
 
   notifyHashChange(url) {
     let location = new URL(url);
     if (location.hash) {
       this.viewport.notify({
         type: "hashChange",
         // substring(1) for getting rid of the first '#' character
--- a/browser/extensions/mortar/host/pdf/chrome/js/viewport.js
+++ b/browser/extensions/mortar/host/pdf/chrome/js/viewport.js
@@ -589,16 +589,31 @@ class Viewport {
   _handleHashChange(hash) {
     if (!this._documentDimensions) {
       this._initPosition = hash;
     } else {
       this._jumpToBookmark(hash);
     }
   }
 
+  _handleCommand(name) {
+    switch(name) {
+      case 'cmd_selectAll':
+        this._doAction({
+          type: 'selectAll'
+        });
+        break;
+      case 'cmd_copy':
+        this._doAction({
+          type: 'getSelectedText'
+        })
+        break;
+    }
+  }
+
   verifyPassword(password) {
     this._doAction({
       type: 'getPasswordComplete',
       password: password
     });
   }
 
   handleEvent(evt) {
@@ -609,22 +624,16 @@ class Viewport {
       case 'scroll':
         this._nextPosition = null;
         let position = this.getScrollOffset();
         if (this._runtimePosition.x != position.x ||
             this._runtimePosition.y != position.y) {
           this._refresh();
         }
         break;
-      case 'copy':
-        this._doAction({
-          type: 'getSelectedText'
-        })
-        evt.preventDefault();
-        break;
     }
   }
 
   invokeResize() {
     if (this._fullscreenStatus == 'changing') {
       return;
     }
     this._resize();
@@ -751,11 +760,14 @@ class Viewport {
       case 'getSelectedTextReply':
         // For now this message is used only by text copy so we handle just
         // that case.
         this._copyToClipboard(message.selectedText);
         break;
       case 'hashChange':
         this._handleHashChange(message.hash);
         break;
+      case 'command':
+        this._handleCommand(message.name);
+        break;
     }
   }
 }
--- a/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
+++ b/browser/extensions/mortar/host/pdf/ppapi-content-sandbox.js
@@ -178,9 +178,40 @@ mm.addMessageListener("ppapipdf.js:save"
           .onDataAvailable(aRequest, aContext, aInputStream, aOffset, aCount);
       }
     };
 
     channel.asyncOpen2(listener);
   });
 });
 
+// This class is created to transfer global XUL commands event we needed.
+// The main reason we need to transfer it from sandbox side is that commands
+// triggered from menu bar targets only the outmost iframe (which is sandbox
+// itself) so we need to propagate it manually into the plugin's iframe.
+class CommandController {
+  constructor() {
+    this.SUPPORTED_COMMANDS = ['cmd_copy', 'cmd_selectAll'];
+    containerWindow.controllers.insertControllerAt(0, this);
+    containerWindow.addEventListener('unload', this.terminate.bind(this));
+  }
+
+  terminate() {
+    containerWindow.controllers.removeController(this);
+  }
+
+  supportsCommand(cmd) {
+    return this.SUPPORTED_COMMANDS.includes(cmd);
+  }
+
+  isCommandEnabled(cmd) {
+    return this.SUPPORTED_COMMANDS.includes(cmd);
+  }
+
+  doCommand(cmd) {
+    mm.sendAsyncMessage("ppapipdf.js:oncommand", {name: cmd});
+  }
+
+  onEvent(evt) {}
+};
+var commandController = new CommandController();
+
 mm.loadFrameScript("resource://ppapi.js/ppapi-instance.js", true);
--- a/browser/themes/shared/aboutNetError.css
+++ b/browser/themes/shared/aboutNetError.css
@@ -158,8 +158,13 @@ span#hostname {
   padding: 1em 17.5%;
 }
 
 #certificateErrorText {
   font-family: monospace;
   white-space: pre-wrap;
   padding: 1em 0;
 }
+
+#cert_domain_link:not([href]) {
+  color: var(--in-content-page-color);
+  text-decoration: none;
+}
\ No newline at end of file
--- a/devtools/client/memory/test/browser/browser.ini
+++ b/devtools/client/memory/test/browser/browser.ini
@@ -5,27 +5,30 @@ support-files =
   head.js
   doc_big_tree.html
   doc_empty.html
   doc_steady_allocation.html
   !/devtools/client/framework/test/shared-head.js
   !/devtools/client/framework/test/shared-redux-head.js
 
 [browser_memory_allocationStackDisplay_01.js]
-    skip-if = debug # bug 1219554
+skip-if = debug # bug 1219554
 [browser_memory_displays_01.js]
 [browser_memory_clear_snapshots.js]
 [browser_memory_diff_01.js]
 [browser_memory_dominator_trees_01.js]
+skip-if = coverage # bug 1347244
 [browser_memory_dominator_trees_02.js]
+skip-if = coverage # bug 1347244
 [browser_memory_filter_01.js]
+skip-if = coverage # bug 1347244
 [browser_memory_individuals_01.js]
 [browser_memory_keyboard.js]
 [browser_memory_keyboard-snapshot-list.js]
 [browser_memory_no_allocation_stacks.js]
 [browser_memory_no_auto_expand.js]
-    skip-if = debug # bug 1219554
+skip-if = debug # bug 1219554
 [browser_memory_percents_01.js]
 [browser_memory_refresh_does_not_leak.js]
 [browser_memory_simple_01.js]
 [browser_memory_transferHeapSnapshot_e10s_01.js]
 [browser_memory_tree_map-01.js]
 [browser_memory_tree_map-02.js]
--- a/dom/bindings/Bindings.conf
+++ b/dom/bindings/Bindings.conf
@@ -236,20 +236,16 @@ DOMInterfaces = {
     'wrapperCache': False
 },
 
 'CSSMozDocumentRule': {
     'nativeType': 'mozilla::css::DocumentRule',
     'headerFile': 'nsCSSRules.h',
 },
 
-'CSSNamespaceRule': {
-    'nativeType': 'mozilla::css::NameSpaceRule',
-},
-
 'CSSPageRule': {
     'nativeType': 'nsCSSPageRule',
     'headerFile': 'nsCSSRules.h',
 },
 
 'CSSPrimitiveValue': {
     'nativeType': 'nsROCSSPrimitiveValue',
 },
--- a/dom/html/nsIDateTimeInputArea.idl
+++ b/dom/html/nsIDateTimeInputArea.idl
@@ -28,9 +28,21 @@ interface nsIDateTimeInputArea : nsISupp
    * Called from DOM/Layout to blur inner text box.
    */
   void blurInnerTextBox();
 
   /**
    * Set the current state of the picker, true if it's opened, false otherwise.
    */
   void setPickerState(in boolean isOpen);
+
+  /**
+   * Set the attribute of the inner text boxes. Only "tabindex", "readonly",
+   * and "disabled" are allowed.
+   */
+  void setEditAttribute(in DOMString name, in DOMString value);
+
+  /**
+   * Remove the attribute of the inner text boxes. Only "tabindex", "readonly",
+   * and "disabled" are allowed.
+   */
+  void removeEditAttribute(in DOMString name);
 };
--- a/js/src/jit-test/jit_test.py
+++ b/js/src/jit-test/jit_test.py
@@ -229,16 +229,23 @@ def main(argv):
                 sys.stderr.write("Exception thrown trying to read test file"
                                  " '{}'\n".format(options.read_tests))
                 traceback.print_exc()
                 sys.stderr.write('---\n')
 
     if read_all:
         test_list = jittests.find_tests()
 
+    # If code coverage is enabled, exclude tests. (bug 1347245)
+    if os.getenv('GCOV_PREFIX') is not None:
+        if options.exclude:
+            options.exclude += ['asm.js/testSIMD.js']
+        else:
+            options.exclude = ['asm.js/testSIMD.js']
+
     if options.exclude:
         exclude_list = []
         for exclude in options.exclude:
             exclude_list += jittests.find_tests(exclude)
         test_list = [test for test in test_list
                      if test not in set(exclude_list)]
 
     if not test_list:
--- a/layout/forms/nsDateTimeControlFrame.cpp
+++ b/layout/forms/nsDateTimeControlFrame.cpp
@@ -311,53 +311,64 @@ nsDateTimeControlFrame::CreateAnonymousC
   RefPtr<NodeInfo> nodeInfo =
     nodeInfoManager->GetNodeInfo(nsGkAtoms::datetimebox, nullptr,
                                  kNameSpaceID_XUL, nsIDOMNode::ELEMENT_NODE);
   NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
 
   NS_TrustedNewXULElement(getter_AddRefs(mInputAreaContent), nodeInfo.forget());
   aElements.AppendElement(mInputAreaContent);
 
-  // Propogate our tabindex.
-  nsAutoString tabIndexStr;
-  if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::tabindex, tabIndexStr)) {
-    mInputAreaContent->SetAttr(kNameSpaceID_None, nsGkAtoms::tabindex,
-                               tabIndexStr, false);
-  }
+  nsCOMPtr<nsIDateTimeInputArea> inputAreaContent =
+    do_QueryInterface(mInputAreaContent);
+  if (inputAreaContent) {
+    // Propogate our tabindex.
+    nsAutoString tabIndexStr;
+    if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::tabindex, tabIndexStr)) {
+      inputAreaContent->SetEditAttribute(NS_LITERAL_STRING("tabindex"),
+                                         tabIndexStr);
+    }
 
-  // Propagate our readonly state.
-  nsAutoString readonly;
-  if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::readonly, readonly)) {
-    mInputAreaContent->SetAttr(kNameSpaceID_None, nsGkAtoms::readonly, readonly,
-                               false);
+    // Propagate our readonly state.
+    nsAutoString readonly;
+    if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::readonly, readonly)) {
+      inputAreaContent->SetEditAttribute(NS_LITERAL_STRING("readonly"),
+                                         readonly);
+    }
+
+    SyncDisabledState();
   }
 
-  SyncDisabledState();
-
   return NS_OK;
 }
 
 void
 nsDateTimeControlFrame::AppendAnonymousContentTo(nsTArray<nsIContent*>& aElements,
                                                  uint32_t aFilter)
 {
   if (mInputAreaContent) {
     aElements.AppendElement(mInputAreaContent);
   }
 }
 
 void
 nsDateTimeControlFrame::SyncDisabledState()
 {
+  NS_ASSERTION(mInputAreaContent, "The input area content must exist!");
+  nsCOMPtr<nsIDateTimeInputArea> inputAreaContent =
+    do_QueryInterface(mInputAreaContent);
+  if (!inputAreaContent) {
+    return;
+  }
+
   EventStates eventStates = mContent->AsElement()->State();
   if (eventStates.HasState(NS_EVENT_STATE_DISABLED)) {
-    mInputAreaContent->SetAttr(kNameSpaceID_None, nsGkAtoms::disabled,
-                               EmptyString(), true);
+    inputAreaContent->SetEditAttribute(NS_LITERAL_STRING("disabled"),
+                                       EmptyString());
   } else {
-    mInputAreaContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::disabled, true);
+    inputAreaContent->RemoveEditAttribute(NS_LITERAL_STRING("disabled"));
   }
 }
 
 nsresult
 nsDateTimeControlFrame::AttributeChanged(int32_t aNameSpaceID,
                                          nsIAtom* aAttribute,
                                          int32_t aModType)
 {
@@ -369,32 +380,38 @@ nsDateTimeControlFrame::AttributeChanged
         aAttribute == nsGkAtoms::readonly ||
         aAttribute == nsGkAtoms::tabindex) {
       MOZ_ASSERT(mContent->IsHTMLElement(nsGkAtoms::input), "bad cast");
       auto contentAsInputElem = static_cast<dom::HTMLInputElement*>(mContent);
       // If script changed the <input>'s type before setting these attributes
       // then we don't need to do anything since we are going to be reframed.
       if (contentAsInputElem->GetType() == NS_FORM_INPUT_TIME ||
           contentAsInputElem->GetType() == NS_FORM_INPUT_DATE) {
+        nsCOMPtr<nsIDateTimeInputArea> inputAreaContent =
+          do_QueryInterface(mInputAreaContent);
         if (aAttribute == nsGkAtoms::value) {
-          nsCOMPtr<nsIDateTimeInputArea> inputAreaContent =
-            do_QueryInterface(mInputAreaContent);
           if (inputAreaContent) {
             nsContentUtils::AddScriptRunner(NewRunnableMethod(inputAreaContent,
               &nsIDateTimeInputArea::NotifyInputElementValueChanged));
           }
         } else {
           if (aModType == nsIDOMMutationEvent::REMOVAL) {
-            mInputAreaContent->UnsetAttr(aNameSpaceID, aAttribute, true);
+            if (inputAreaContent) {
+              nsAtomString name(aAttribute);
+              inputAreaContent->RemoveEditAttribute(name);
+            }
           } else {
             MOZ_ASSERT(aModType == nsIDOMMutationEvent::ADDITION ||
                        aModType == nsIDOMMutationEvent::MODIFICATION);
-            nsAutoString value;
-            mContent->GetAttr(aNameSpaceID, aAttribute, value);
-            mInputAreaContent->SetAttr(aNameSpaceID, aAttribute, value, true);
+            if (inputAreaContent) {
+              nsAtomString name(aAttribute);
+              nsAutoString value;
+              mContent->GetAttr(aNameSpaceID, aAttribute, value);
+              inputAreaContent->SetEditAttribute(name, value);
+            }
           }
         }
       }
     }
   }
 
   return nsContainerFrame::AttributeChanged(aNameSpaceID, aAttribute,
                                             aModType);
new file mode 100644
--- /dev/null
+++ b/layout/reftests/svg/filters/filter-region-01a.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<body style="background-color: lime;">
+<svg width="0" height="0">
+  <filter id="myFilter" filterUnits="objectBoundingBox" x="0" y="0" width="50%" height="50%">
+    <feMerge>
+      <feMergeNode/>
+    </feMerge>
+  </filter>
+</svg>
+
+<!-- This outer svg element should be totally covered by the next filtered outer svg element. -->
+<svg style="position: fixed;" x="0" y ="0" width="120" height="120">
+  <rect x="10" y="10" width="100" height="100" fill="red"/>
+</svg>
+
+<svg filter="url(#myFilter)" style="position: fixed;" x="0" y ="0" width="240" height="240">
+  <rect x="10" y="10" width="100" height="100" fill="lime"/>
+</svg>
+
+</body>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/layout/reftests/svg/filters/filter-region-01b.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<body style="background-color: lime;">
+<svg width="0" height="0">
+  <filter id="myFilter" filterUnits="objectBoundingBox" x="0" y="0" width="50%" height="50%">
+    <feMerge>
+      <feMergeNode/>
+    </feMerge>
+  </filter>
+</svg>
+
+<svg style="position: fixed;" x="0" y ="0" width="400" height="400">
+  <!-- This filtered inner element should be covered by the next outer svg element. -->
+  <svg filter="url(#myFilter)" style="position: fixed;" x="0" y ="0" width="200" height="200">
+    <rect x="10" y="10" width="120" height="120" fill="red"/>
+  </svg>
+</svg>
+
+<svg style="position: fixed;" x="0" y ="0" width="120" height="120">
+  <rect x="10" y="10" width="100" height="100" fill="lime"/>
+</svg>
+
+</body>
\ No newline at end of file
--- a/layout/reftests/svg/filters/reftest.list
+++ b/layout/reftests/svg/filters/reftest.list
@@ -78,16 +78,18 @@ fails == filter-marked-line-01.svg pass.
 == filter-marked-line-06.svg pass.svg
 == filter-marked-line-07.svg pass.svg
 == filter-marked-line-08.svg pass.svg
 == filter-marked-line-09.svg pass.svg
 == filter-nested-filtering-01.svg pass.svg
 == filter-nested-filtering-02.svg pass.svg
 == filter-patterned-rect-01.svg pass.svg
 == filter-patterned-rect-02.svg pass.svg
+== filter-region-01a.html pass.svg
+== filter-region-01b.html pass.svg
 
 == feColorMatrix-saturate-01.svg pass.svg
 
 == feComponentTransfer-03.svg pass.svg
 == feComponentTransfer-04.svg pass.svg
 == feComposite-arguments-01.svg pass.svg
 fuzzy(1,26732) == feComposite-paint-01.svg feComposite-paint-01-ref.svg
 fuzzy(1,10000) == feConvolveMatrix-bias-01.svg feConvolveMatrix-bias-01-ref.svg
--- a/layout/reftests/svg/reftest-stylo.list
+++ b/layout/reftests/svg/reftest-stylo.list
@@ -22,47 +22,86 @@ include load-only/reftest-stylo.list
 
 # Mozilla only tests (i.e. those containing XUL/XBL/etc.)
 include moz-only/reftest-stylo.list
 
 # svg-integration tests (using svg effects in e.g. HTML)
 include svg-integration/reftest-stylo.list
 
 == baseline-middle-01.svg baseline-middle-01.svg
+
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-burn.svg blend-color-burn.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-dodge.svg blend-color-dodge.svg
+skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-color.svg blend-color.svg # Too intermittent
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-darken.svg blend-darken.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-difference.svg blend-difference.svg
+skip-if(Android) fuzzy-if(skiaContent,1,1600) pref(layout.css.mix-blend-mode.enabled,true) == blend-exclusion.svg blend-exclusion.svg
+skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-hard-light.svg blend-hard-light.svg # Too intermittent
+skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-hue.svg blend-hue.svg # Too intermittent
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-blend.svg blend-layer-blend.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-filter.svg blend-layer-filter.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-mask.svg blend-layer-mask.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-opacity.svg blend-layer-opacity.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-lighten.svg blend-lighten.svg
+skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-luminosity.svg blend-luminosity.svg # Too intermittent
+skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply-alpha.svg blend-multiply-alpha.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply.svg blend-multiply.svg
+pref(layout.css.mix-blend-mode.enabled,true) == blend-normal.svg blend-normal.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-overlay.svg blend-overlay.svg
+skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-saturation.svg blend-saturation.svg
+skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-screen.svg blend-screen.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-soft-light.svg blend-soft-light.svg
+== blend-difference-stacking.html blend-difference-stacking.html
+
 == border-radius-01.html border-radius-01.html
+
 == clip-01.svg clip-01.svg
 == clip-02a.svg clip-02a.svg
 == clip-02b.svg clip-02b.svg
+== clip-surface-clone-01.svg clip-surface-clone-01.svg
+
 == clipPath-advanced-01.svg clipPath-advanced-01.svg
+== clipPath-and-mask-on-outflowElement-01a.html clipPath-and-mask-on-outflowElement-01a.html
+fails == clipPath-and-mask-on-outflowElement-01b.html clipPath-and-mask-on-outflowElement-01b.html
 fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/.test(http.oscpu),1,5) fuzzy-if(OSX,1,6) fuzzy-if(skiaContent,1,630) == clipPath-and-shape-rendering-01.svg clipPath-and-shape-rendering-01.svg
 == clipPath-and-transform-01.svg clipPath-and-transform-01.svg
 == clipPath-basic-01.svg clipPath-basic-01.svg
 == clipPath-basic-02.svg clipPath-basic-02.svg
 == clipPath-basic-03.svg clipPath-basic-03.svg
 == clipPath-basic-04.svg clipPath-basic-04.svg
 == clipPath-basic-05.svg clipPath-basic-05.svg
 == clipPath-basic-06.svg clipPath-basic-06.svg
 == clipPath-basic-07.svg clipPath-basic-07.svg
+== clipPath-on-outflowElement-01a.html clipPath-on-outflowElement-01a.html
+== clipPath-on-outflowElement-01b.html clipPath-on-outflowElement-01b.html
+default-preferences pref(layout.css.clip-path-shapes.enabled,true)
+fuzzy(1,32400) == clipPath-on-outflowElement-02a.html clipPath-on-outflowElement-02a.html
+fuzzy(1,32400) == clipPath-on-outflowElement-02b.html clipPath-on-outflowElement-02b.html
+default-preferences
 == clipPath-winding-01.svg clipPath-winding-01.svg
-== clip-surface-clone-01.svg clip-surface-clone-01.svg
+
 == comments-in-pres-attrs.svg pass.svg
+
 == conditions-01.svg conditions-01.svg
 == conditions-02.svg conditions-02.svg
 == conditions-03.svg conditions-03.svg
 == conditions-04.svg conditions-04.svg
 == conditions-05.svg conditions-05.svg
 == conditions-07.svg conditions-07.svg
 fuzzy-if(skiaContent,1,320) == conditions-08.svg conditions-08.svg
 == conditions-09.svg conditions-09.svg
+
 == currentColor-01.svg currentColor-01.svg
 == currentColor-02.svg currentColor-02.svg
 == currentColor-03.svg currentColor-03.svg
+
 == data-uri-with-filter-01.xhtml data-uri-with-filter-01.xhtml
 == data-uri-with-gradient-01.xhtml data-uri-with-gradient-01.xhtml
 == data-uri-with-pattern-01.xhtml data-uri-with-pattern-01.xhtml
+
 == dynamic-attr-removal-1.svg dynamic-attr-removal-1.svg
 == dynamic-attr-removal-2.svg dynamic-attr-removal-2.svg
 == dynamic-attr-change-1.svg dynamic-attr-change-1.svg
 == dynamic-attr-change-2.svg dynamic-attr-change-2.svg
 == dynamic-class-01.svg dynamic-class-01.svg
 fuzzy-if(Android,4,87) == dynamic-clipPath-01.svg dynamic-clipPath-01.svg
 == dynamic-clipPath-02.svg dynamic-clipPath-02.svg
 == dynamic-clipPath-clip-rule-01.svg dynamic-clipPath-clip-rule-01.svg
@@ -132,30 +171,24 @@ random-if(/^Windows\x20NT\x205\.1/.test(
 == dynamic-use-06.svg dynamic-use-06.svg
 == dynamic-use-07.svg dynamic-use-07.svg
 random == dynamic-use-nested-01a.svg dynamic-use-nested-01a.svg
 random == dynamic-use-nested-01b.svg dynamic-use-nested-01b.svg
 == dynamic-use-remove-width.svg dynamic-use-remove-width.svg
 == dynamic-viewBox-change-01.svg dynamic-viewBox-change-01.svg
 == dynamic-viewBox-change-02.svg dynamic-viewBox-change-02.svg
 == dynamic-viewBox-change-03.svg dynamic-viewBox-change-03.svg
-== fragmentIdentifier-01.xhtml fragmentIdentifier-01.xhtml
-== linked-filter-01.svg linked-filter-01.svg
-== linked-pattern-01.svg linked-pattern-01.svg
-== use-01.svg use-01.svg
-== use-01-extref.svg use-01-extref.svg
-== use-02-extref.svg use-02-extref.svg
-== use-extref-dataURI-01.svg use-extref-dataURI-01.svg
-== use-children.svg use-children.svg
+
 == fallback-color-01a.svg fallback-color-01a.svg
 == fallback-color-01b.svg fallback-color-01b.svg
 == fallback-color-02a.svg fallback-color-02a.svg
 == fallback-color-02b.svg fallback-color-02b.svg
 == fallback-color-03.svg fallback-color-03.svg
 fuzzy-if(skiaContent,1,2) == fallback-color-04.svg fallback-color-04.svg
+
 == filter-basic-01.svg filter-basic-01.svg
 == filter-basic-02.svg filter-basic-02.svg
 == filter-basic-03.svg filter-basic-03.svg
 == filter-bounds-01.svg filter-bounds-01.svg
 == filter-bounds-02.svg filter-bounds-02.svg
 # This pref is normally on by default, but we turn it off in reftest runs to
 # disable an unnecessary security-check. This reftest is actually testing that
 # the security check works, though, so it needs the pref to be turned on:
@@ -163,16 +196,17 @@ fails-if(Android) pref(security.fileuri.
 == filter-foreignObject-01.svg filter-foreignObject-01.svg
 == filter-in-mask-01.svg filter-in-mask-01.svg
 == filter-invalidation-01.svg filter-invalidation-01.svg
 == filter-result-01.svg filter-result-01.svg
 == filter-scaled-01.svg filter-scaled-01.svg
 fails == filter-scaled-02.html filter-scaled-02.html
 == filter-translated-01.svg filter-translated-01.svg
 fuzzy-if(skiaContent,1,800000) == filters-and-group-opacity-01.svg filters-and-group-opacity-01.svg
+
 == foreignObject-01.svg foreignObject-01.svg
 == foreignObject-02.svg foreignObject-02.svg
 == foreignObject-ancestor-style-change-01.svg foreignObject-ancestor-style-change-01.svg
 == foreignObject-change-transform-01.svg foreignObject-change-transform-01.svg
 == foreignObject-display-01.svg foreignObject-display-01.svg
 == foreignObject-form-theme.svg foreignObject-form-theme.svg
 == foreignObject-img-form-theme.html foreignObject-img-form-theme.html
 == foreignObject-move-repaint-01.svg foreignObject-move-repaint-01.svg
@@ -180,56 +214,70 @@ fuzzy-if(skiaContent,1,800000) == filter
 == foreignObject-start-hidden-01.svg foreignObject-start-hidden-01.svg
 == foreignObject-start-hidden-02.svg foreignObject-start-hidden-02.svg
 == foreignObject-style-change-01.svg foreignObject-style-change-01.svg
 == foreignObject-dynamic-abspos-01.html foreignObject-dynamic-abspos-01.html
 == foreignObject-fixedpos-01.html foreignObject-fixedpos-01.html
 == foreignObject-fixedpos-02.html foreignObject-fixedpos-02.html
 == foreignObject-dynamic-fixedpos-01.html foreignObject-dynamic-fixedpos-01.html
 == foreignObject-vertical-01.svg foreignObject-vertical-01.svg
+== fragmentIdentifier-01.xhtml fragmentIdentifier-01.xhtml
 == g-transform-01.svg g-transform-01.svg
 == getElementById-a-element-01.svg getElementById-a-element-01.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01a.svg gradient-live-01a.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01b.svg gradient-live-01b.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01c.svg gradient-live-01c.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01d.svg gradient-live-01d.svg
 == gradient-transform-01.svg gradient-transform-01.svg
+== href-attr-change-restyles.svg href-attr-change-restyles.svg
 == import-svg-01.html import-svg-01.html
 == invalid-text-01.svg invalid-text-01.svg
 == lang-attribute-01.svg lang-attribute-01.svg
 == lang-attribute-02.svg lang-attribute-02.svg
 == lang-attribute-03.svg lang-attribute-03.svg
 == linearGradient-basic-01.svg linearGradient-basic-01.svg
 == linearGradient-basic-02.svg linearGradient-basic-02.svg
 # off-by-one fuzziness expected. OS X is broken with bad aliasing though (bug 1023640).
 fuzzy-if(cocoaWidget,15,19679) fuzzy-if(winWidget,1,8800) fuzzy-if(!cocoaWidget&&!winWidget,1,4000) fuzzy-if(skiaContent,1,5000) == linearGradient-basic-03.svg linearGradient-basic-03.svg
+
+== linked-filter-01.svg linked-filter-01.svg
+== linked-pattern-01.svg linked-pattern-01.svg
+
 fuzzy-if(skiaContent,1,800000) == markers-and-group-opacity-01.svg markers-and-group-opacity-01.svg
 == marker-attribute-01.svg marker-attribute-01.svg
 == marker-effects-01.svg marker-effects-01.svg
 fuzzy-if(skiaContent,1,100) == marker-viewBox-01.svg marker-viewBox-01.svg
 fuzzy-if(skiaContent,1,100) == marker-orientation-01.svg marker-orientation-01.svg
 fuzzy-if(skiaContent,1,5) pref(svg.marker-improvements.enabled,true) == marker-orientation-02.svg marker-orientation-02.svg
 == marker-orientation-03.svg marker-orientation-03.svg
 == marker-orientation-04.svg marker-orientation-04.svg
+
+# fuzzy because of the differences between clipPath and mask clipping
+fails == mask-and-clipPath.html mask-and-clipPath.html
+== mask-and-clipPath-2.svg mask-and-clipPath-2.svg
 == mask-basic-01.svg mask-basic-01.svg
 fuzzy-if(skiaContent,1,10000) == mask-basic-02.svg mask-basic-02.svg
 == mask-basic-03.svg mask-basic-03.svg
 == mask-basic-04.svg mask-basic-04.svg
+== mask-containing-masked-content-01.svg mask-containing-masked-content-01.svg
+== mask-empty-size.svg mask-empty-size.svg
 == mask-extref-dataURI-01.svg mask-extref-dataURI-01.svg
-== mask-containing-masked-content-01.svg mask-containing-masked-content-01.svg
+== mask-img.html mask-img.html
+fails == mask-on-outflowElement-01a.html mask-on-outflowElement-01a.html
+fails == mask-on-outflowElement-01b.html mask-on-outflowElement-01b.html
+fuzzy(1,5000) == mask-opacity-01.svg mask-opacity-01.svg
 == mask-transformed-01.svg mask-transformed-01.svg
 == mask-transformed-02.svg mask-transformed-02.svg
 == mask-transformed-child-01.svg mask-transformed-child-01.svg
-# fuzzy because of the differences between clipPath and mask clipping
-fails == mask-and-clipPath.html mask-and-clipPath.html
-== mask-and-clipPath-2.svg mask-and-clipPath-2.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-01.svg mask-type-01.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-02.svg mask-type-02.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-03.svg mask-type-03.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-04.svg mask-type-04.svg
+== nested-mask-mode.svg nested-mask-mode.svg
+
 == nested-viewBox-01.svg nested-viewBox-01.svg
 fuzzy-if(skiaContent,3,448000) == nesting-invalid-01.svg nesting-invalid-01.svg
 fuzzy-if(d2d&&/^Windows\x20NT\x20(6\.1|10\.0)/.test(http.oscpu),63,168) fuzzy-if(cocoaWidget,1,122) fuzzy-if(skiaContent,2,1000) == non-scaling-stroke-01.svg non-scaling-stroke-01.svg
 fuzzy-if(gtkWidget,1,99) fuzzy-if(!contentSameGfxBackendAsCanvas,9,99) fuzzy-if(Android,9,586) == non-scaling-stroke-02.svg non-scaling-stroke-02.svg
 == non-scaling-stroke-03.svg non-scaling-stroke-03.svg
 == objectBoundingBox-and-clipPath.svg objectBoundingBox-and-clipPath.svg
 # Bug 588684
 random-if(gtkWidget) == objectBoundingBox-and-fePointLight-01.svg objectBoundingBox-and-fePointLight-01.svg
@@ -260,120 +308,145 @@ pref(svg.paint-order.enabled,true) == pa
 fuzzy(23,60) fails-if(d2d) == path-01.svg path-01.svg
 == path-02.svg path-02.svg
 == path-03.svg path-03.svg
 == path-04.svg path-04.svg
 == path-05.svg path-05.svg
 fuzzy-if(skiaContent,1,400) == path-06.svg path-06.svg
 == path-07.svg path-07.svg
 == path-08.svg path-08.svg
+
 == pathLength-01.svg pathLength-01.svg
 == pathLength-02.svg pathLength-02.svg
+
 == pattern-basic-01.svg pattern-basic-01.svg
 == pattern-invalid-01.svg pattern-invalid-01.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01a.svg pattern-live-01a.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01b.svg pattern-live-01b.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01c.svg pattern-live-01c.svg
 fuzzy-if(skiaContent,1,5) == pattern-scale-01a.svg pattern-scale-01a.svg
 == pattern-scale-01b.svg pattern-scale-01b.svg
 fuzzy-if(skiaContent,3,5) == pattern-scale-01c.svg pattern-scale-01c.svg
 == pattern-transform-presence-01.svg pattern-transform-presence-01.svg
 == pattern-transformed-01.svg pattern-transformed-01.svg
+
 == polygon-01.svg polygon-01.svg
 == polygon-marker-01.svg polygon-marker-01.svg
 == polygon-points-negative-01.svg polygon-points-negative-01.svg
 == polyline-points-invalid-01.svg polyline-points-invalid-01.svg
+
 == pseudo-classes-01.svg pseudo-classes-01.svg
 # This test depends on :visited styles (which are asynchronous), so we run
 # it in layout/style/test/test_visited_reftests.html instead of using the
 # reftest harness.
 == pseudo-classes-02.svg pseudo-classes-02.svg
+
 == radialGradient-basic-01.svg radialGradient-basic-01.svg
 == radialGradient-basic-02.svg radialGradient-basic-02.svg
 fuzzy-if(cocoaWidget,4,15982) fuzzy-if(winWidget,4,92) fuzzy-if(skiaContent,4,60) == radialGradient-basic-03.svg radialGradient-basic-03.svg
 == radialGradient-basic-04.svg radialGradient-basic-04.svg
+
 fuzzy-if(skiaContent,1,3600) == rect-01.svg rect-01.svg
 == rect-02.svg rect-02.svg
 == rect-03.svg rect-03.svg
 == rect-04.svg rect-04.svg
 == rect-with-rx-and-ry-01.svg rect-with-rx-and-ry-01.svg
 == rect-with-rx-or-ry-01.svg rect-with-rx-or-ry-01.svg
+
 == rootElement-null-01.svg rootElement-null-01.svg
+
 == script-empty-01.svg script-empty-01.svg
+
 == selector-01.svg selector-01.svg
+== stroke-dasharray-01.svg stroke-dasharray-01.svg
+fuzzy-if(skiaContent,1,340) == stroke-dasharray-02.svg stroke-dasharray-02.svg
+fuzzy-if(skiaContent,1,340) == stroke-dasharray-03.svg stroke-dasharray-03.svg
+== stroke-dasharray-and-pathLength-01.svg stroke-dasharray-and-pathLength-01.svg
+== stroke-dasharray-and-text-01.svg stroke-dasharray-and-text-01.svg
+== stroke-dashoffset-01.svg stroke-dashoffset-01.svg
+== stroke-dashoffset-and-pathLength-01.svg stroke-dashoffset-and-pathLength-01.svg
 == stroke-linecap-circle-ellipse-01.svg stroke-linecap-circle-ellipse-01.svg
 == stroke-linecap-circle-ellipse-dashed-01.svg stroke-linecap-circle-ellipse-dashed-01.svg
+== stroke-linecap-round-w-zero-length-segs-01.svg stroke-linecap-round-w-zero-length-segs-01.svg
+== stroke-linecap-round-w-zero-length-segs-02.svg stroke-linecap-round-w-zero-length-segs-02.svg
+== stroke-linecap-square-w-zero-length-segs-01.svg stroke-linecap-square-w-zero-length-segs-01.svg
+== stroke-linecap-square-w-zero-length-segs-02.svg stroke-linecap-square-w-zero-length-segs-02.svg
+
 == stroke-width-percentage-01.svg stroke-width-percentage-01.svg
 == stroke-width-percentage-02a.svg stroke-width-percentage-02a.svg
 == stroke-width-percentage-02b.svg stroke-width-percentage-02b.svg
 == stroke-width-percentage-03.xhtml stroke-width-percentage-03.xhtml
+
 == style-property-on-script-element-01.svg style-property-on-script-element-01.svg
 == style-without-type-attribute.svg style-without-type-attribute.svg
 == svg-in-foreignObject-01.xhtml svg-in-foreignObject-01.xhtml
 == svg-in-foreignObject-02.xhtml svg-in-foreignObject-02.xhtml
+
 == switch-01.svg switch-01.svg
+
 == suspend-01.svg suspend-01.svg
 == suspend-02.svg suspend-02.svg
 == suspend-03.svg suspend-03.svg
 == suspend-04.svg suspend-04.svg
 == suspend-05.svg suspend-05.svg
 == suspend-06.svg suspend-06.svg
 == suspend-07.svg suspend-07.svg
 == suspend-08.svg suspend-08.svg
+
+== svg-effects-area-unzoomed.xhtml svg-effects-area-unzoomed.xhtml
+== svg-effects-area-zoomed-in.xhtml svg-effects-area-zoomed-in.xhtml
+== svg-effects-area-zoomed-out.xhtml svg-effects-area-zoomed-out.xhtml
 == svg-transform-01.svg svg-transform-01.svg
 == svg-transform-02.svg svg-transform-02.svg
+
 == symbol-01.svg symbol-01.svg
+
 == text-font-size-01.svg text-font-size-01.svg
 random-if(gtkWidget) == text-font-weight-01.svg text-font-weight-01.svg
 == text-gradient-01.svg text-gradient-01.svg
 random-if(winWidget) == text-gradient-02.svg text-gradient-02.svg
 fuzzy-if(skiaContent,1,5500) == text-gradient-03.svg text-gradient-03.svg
 HTTP(..) == text-gradient-04.svg text-gradient-04.svg
 == text-in-link-01.svg text-in-link-01.svg
 == text-in-link-02.svg text-in-link-02.svg
 == text-in-link-03.svg text-in-link-03.svg
 # Tests for bug 546813: sanity-check using HTML text, then test SVG behavior.
 == text-language-00.xhtml text-language-00.xhtml
 random-if(gtkWidget) == text-language-01.xhtml text-language-01.xhtml
+
 fuzzy-if(OSX==1007,6,2) fuzzy-if(OSX==1008,46,26) == text-layout-01.svg text-layout-01.svg
 == text-layout-02.svg text-layout-02.svg
 == text-layout-03.svg text-layout-03.svg
 == text-layout-04.svg text-layout-04.svg
 == text-layout-05.svg text-layout-05.svg
 fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,3) == text-layout-06.svg text-layout-06.svg
 == text-layout-07.svg text-layout-07.svg
 == text-layout-08.svg text-layout-08.svg
+
 == text-scale-01.svg text-scale-01.svg
 fuzzy-if(skiaContent,2,1000) HTTP(..) == text-scale-02.svg text-scale-02.svg
 HTTP(..) == text-scale-03.svg text-scale-03.svg
 == text-stroke-scaling-01.svg text-stroke-scaling-01.svg
-== stroke-dasharray-01.svg stroke-dasharray-01.svg
-fuzzy-if(skiaContent,1,340) == stroke-dasharray-02.svg stroke-dasharray-02.svg
-fuzzy-if(skiaContent,1,340) == stroke-dasharray-03.svg stroke-dasharray-03.svg
-== stroke-dasharray-and-pathLength-01.svg stroke-dasharray-and-pathLength-01.svg
-== stroke-dasharray-and-text-01.svg stroke-dasharray-and-text-01.svg
-== stroke-dashoffset-01.svg stroke-dashoffset-01.svg
-== stroke-dashoffset-and-pathLength-01.svg stroke-dashoffset-and-pathLength-01.svg
-== stroke-linecap-round-w-zero-length-segs-01.svg stroke-linecap-round-w-zero-length-segs-01.svg
-== stroke-linecap-round-w-zero-length-segs-02.svg stroke-linecap-round-w-zero-length-segs-02.svg
-== stroke-linecap-square-w-zero-length-segs-01.svg stroke-linecap-square-w-zero-length-segs-01.svg
-== stroke-linecap-square-w-zero-length-segs-02.svg stroke-linecap-square-w-zero-length-segs-02.svg
+
+== text-style-01a.svg text-style-01a.svg
+== text-style-01b.svg text-style-01b.svg
+== text-style-01c.svg text-style-01c.svg
+== text-style-01d.svg text-style-01d.svg
+== text-style-01e.svg text-style-01e.svg
+
+== text-white-space-01.svg text-white-space-01.svg
+
 == textPath-01.svg textPath-01.svg
 == textPath-02.svg textPath-02.svg
 fuzzy-if(skiaContent,1,610) == textPath-03.svg textPath-03.svg
 == textPath-04.svg textPath-04.svg
 == textPath-05.html textPath-05.html
-== text-style-01a.svg text-style-01a.svg
-== text-style-01b.svg text-style-01b.svg
-== text-style-01c.svg text-style-01c.svg
-== text-style-01d.svg text-style-01d.svg
-== text-style-01e.svg text-style-01e.svg
-== text-white-space-01.svg text-white-space-01.svg
+
 == thin-stroke-01.svg thin-stroke-01.svg
-== zero-stroke-01.svg zero-stroke-01.svg
+
 == tspan-dxdy-01.svg tspan-dxdy-01.svg
 == tspan-dxdy-02.svg tspan-dxdy-02.svg
 == tspan-dxdy-03.svg tspan-dxdy-03.svg
 == tspan-dxdy-04.svg tspan-dxdy-04.svg
 == tspan-dxdy-05.svg tspan-dxdy-05.svg
 == tspan-dxdy-06.svg tspan-dxdy-06.svg
 == tspan-dxdy-textPath-01.svg tspan-dxdy-textPath-01.svg
 random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == tspan-rotate-01.svg tspan-rotate-01.svg
@@ -389,76 +462,38 @@ random-if(/^Windows\x20NT\x205\.1/.test(
 fuzzy-if(skiaContent,1,100) == tspan-xy-01.svg tspan-xy-01.svg
 == tspan-xy-02.svg tspan-xy-02.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-03.svg tspan-xy-03.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-04.svg tspan-xy-04.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-05.svg tspan-xy-05.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-06.svg tspan-xy-06.svg
 fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-middle-01.svg tspan-xy-anchor-middle-01.svg
 fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-end-01.svg tspan-xy-anchor-end-01.svg
+
+== use-01.svg use-01.svg
+== use-01-extref.svg use-01-extref.svg
+== use-02-extref.svg use-02-extref.svg
+== use-extref-dataURI-01.svg use-extref-dataURI-01.svg
+== use-children.svg use-children.svg
+
+# test case for Fragment URLs
+# https://drafts.csswg.org/css-values/#local-urls
+== use-localRef-marker-01.svg use-localRef-marker-01.svg
+== use-localRef-clipPath-01.svg use-localRef-clipPath-01.svg
+== use-localRef-filter-01.svg use-localRef-filter-01.svg
+== use-localRef-fill-01.svg use-localRef-fill-01.svg
+== use-localRef-stroke-01.svg use-localRef-stroke-01.svg
+== use-localRef-mask-01.svg use-localRef-mask-01.svg
+
 == userSpaceOnUse-and-pattern-01.svg userSpaceOnUse-and-pattern-01.svg
+
 == viewBox-and-pattern-01.svg viewBox-and-pattern-01.svg
 == viewBox-and-pattern-02.svg viewBox-and-pattern-02.svg
 == viewBox-and-pattern-03.svg viewBox-and-pattern-03.svg
 == viewBox-and-pattern-04.svg viewBox-and-pattern-04.svg
 == viewBox-invalid-01.svg viewBox-invalid-01.svg
 == viewBox-invalid-02.svg viewBox-invalid-02.svg
 == viewBox-valid-01.svg viewBox-valid-01.svg
 == viewBox-valid-02.xhtml viewBox-valid-02.xhtml
 == viewport-percent-graphic-user-01.svg viewport-percent-graphic-user-01.svg
 == winding-01.svg winding-01.svg
 
-== svg-effects-area-unzoomed.xhtml svg-effects-area-unzoomed.xhtml
-== svg-effects-area-zoomed-in.xhtml svg-effects-area-zoomed-in.xhtml
-== svg-effects-area-zoomed-out.xhtml svg-effects-area-zoomed-out.xhtml
-== href-attr-change-restyles.svg href-attr-change-restyles.svg
-== mask-img.html mask-img.html
-
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-burn.svg blend-color-burn.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-dodge.svg blend-color-dodge.svg
-skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-color.svg blend-color.svg # Too intermittent
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-darken.svg blend-darken.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-difference.svg blend-difference.svg
-skip-if(Android) fuzzy-if(skiaContent,1,1600) pref(layout.css.mix-blend-mode.enabled,true) == blend-exclusion.svg blend-exclusion.svg
-skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-hard-light.svg blend-hard-light.svg # Too intermittent
-skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-hue.svg blend-hue.svg # Too intermittent
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-blend.svg blend-layer-blend.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-filter.svg blend-layer-filter.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-mask.svg blend-layer-mask.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-opacity.svg blend-layer-opacity.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-lighten.svg blend-lighten.svg
-skip-if(stylo) pref(layout.css.mix-blend-mode.enabled,true) == blend-luminosity.svg blend-luminosity.svg # Too intermittent
-skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply-alpha.svg blend-multiply-alpha.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply.svg blend-multiply.svg
-pref(layout.css.mix-blend-mode.enabled,true) == blend-normal.svg blend-normal.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-overlay.svg blend-overlay.svg
-skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-saturation.svg blend-saturation.svg
-skip-if(stylo) skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-screen.svg blend-screen.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-soft-light.svg blend-soft-light.svg
-== blend-difference-stacking.html blend-difference-stacking.html
-
-# test case for Fragment URLs
-# https://drafts.csswg.org/css-values/#local-urls
-== use-localRef-marker-01.svg use-localRef-marker-01.svg
-== use-localRef-clipPath-01.svg use-localRef-clipPath-01.svg
-== use-localRef-filter-01.svg use-localRef-filter-01.svg
-== use-localRef-fill-01.svg use-localRef-fill-01.svg
-== use-localRef-stroke-01.svg use-localRef-stroke-01.svg
-== use-localRef-mask-01.svg use-localRef-mask-01.svg
-
-fuzzy(1,5000) == mask-opacity-01.svg mask-opacity-01.svg
-
-== clipPath-on-outflowElement-01a.html clipPath-on-outflowElement-01a.html
-== clipPath-on-outflowElement-01b.html clipPath-on-outflowElement-01b.html
-
-default-preferences pref(layout.css.clip-path-shapes.enabled,true)
-fuzzy(1,32400) == clipPath-on-outflowElement-02a.html clipPath-on-outflowElement-02a.html
-fuzzy(1,32400) == clipPath-on-outflowElement-02b.html clipPath-on-outflowElement-02b.html
-default-preferences
-
-fails == mask-on-outflowElement-01a.html mask-on-outflowElement-01a.html
-fails == mask-on-outflowElement-01b.html mask-on-outflowElement-01b.html
-
-== clipPath-and-mask-on-outflowElement-01a.html clipPath-and-mask-on-outflowElement-01a.html
-fails == clipPath-and-mask-on-outflowElement-01b.html clipPath-and-mask-on-outflowElement-01b.html
-
-== nested-mask-mode.svg nested-mask-mode.svg
-== mask-empty-size.svg mask-empty-size.svg
+== zero-stroke-01.svg zero-stroke-01.svg
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -20,48 +20,93 @@ include text/reftest.list
 include load-only/reftest.list
 
 # Mozilla only tests (i.e. those containing XUL/XBL/etc.)
 include moz-only/reftest.list
 
 # svg-integration tests (using svg effects in e.g. HTML)
 include svg-integration/reftest.list
 
+== background-svg-without-height.html background-ref.html
+== background-svg-without-height-width.html background-ref.html
+== background-svg-without-width.html background-ref.html
+
 == baseline-middle-01.svg pass.svg
+
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-burn.svg blend-color-burn-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-dodge.svg blend-color-dodge-ref.svg
+# pref(layout.css.mix-blend-mode.enabled,true) == blend-color.svg blend-color-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-darken.svg blend-darken-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-difference.svg blend-difference-ref.svg
+skip-if(Android) fuzzy-if(skiaContent,1,1600) pref(layout.css.mix-blend-mode.enabled,true) == blend-exclusion.svg blend-exclusion-ref.svg
+# pref(layout.css.mix-blend-mode.enabled,true) == blend-hard-light.svg blend-hard-light-ref.svg
+# pref(layout.css.mix-blend-mode.enabled,true) == blend-hue.svg blend-hue-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-blend.svg blend-layer-blend-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-filter.svg blend-layer-filter-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-mask.svg blend-layer-mask-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-opacity.svg blend-layer-opacity-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-lighten.svg blend-lighten-ref.svg
+# pref(layout.css.mix-blend-mode.enabled,true) == blend-luminosity.svg blend-luminosity-ref.svg
+#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply-alpha.svg blend-multiply-alpha-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply.svg blend-multiply-ref.svg
+pref(layout.css.mix-blend-mode.enabled,true) == blend-normal.svg blend-normal-ref.svg
+#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-overlay.svg blend-overlay-ref.svg
+#skip-if(Android)  pref(layout.css.mix-blend-mode.enabled,true) == blend-saturation.svg blend-saturation-ref.svg
+#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-screen.svg blend-screen-ref.svg
+#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-soft-light.svg blend-soft-light-ref.svg
+skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) fails-if(webrender) == blend-difference-stacking.html blend-difference-stacking-ref.html
+
 == border-radius-01.html pass.svg
+
 == clip-01.svg pass.svg
 == clip-02a.svg clip-02-ref.svg
 == clip-02b.svg clip-02-ref.svg
+== clip-surface-clone-01.svg clip-surface-clone-01-ref.svg
+== clip-use-element-01.svg pass.svg
+== clip-use-element-02.svg pass.svg
+
 == clipPath-advanced-01.svg pass.svg
+== clipPath-and-mask-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
+== clipPath-and-mask-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
 fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/.test(http.oscpu),1,5) fuzzy-if(OSX,1,6) fuzzy-if(skiaContent,1,630) == clipPath-and-shape-rendering-01.svg clipPath-and-shape-rendering-01-ref.svg # bug 614840
 == clipPath-and-transform-01.svg pass.svg
 == clipPath-basic-01.svg pass.svg
 == clipPath-basic-02.svg pass.svg
 == clipPath-basic-03.svg pass.svg
 == clipPath-basic-04.svg pass.svg
 == clipPath-basic-05.svg pass.svg
 == clipPath-basic-06.svg pass.svg
 == clipPath-basic-07.svg pass.svg
+== clipPath-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
+== clipPath-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
+default-preferences pref(layout.css.clip-path-shapes.enabled,true)
+fuzzy(1,32400) == clipPath-on-outflowElement-02a.html clipPath-on-outflowElement-02-ref.html
+fuzzy(1,32400) == clipPath-on-outflowElement-02b.html clipPath-on-outflowElement-02-ref.html
+default-preferences
 == clipPath-winding-01.svg pass.svg
-== clip-surface-clone-01.svg clip-surface-clone-01-ref.svg
+
 == comments-in-pres-attrs.svg pass.svg
+
 == conditions-01.svg pass.svg
 == conditions-02.svg pass.svg
 == conditions-03.svg pass.svg
 == conditions-04.svg pass.svg
 == conditions-05.svg about:blank
 == conditions-07.svg pass.svg
 fuzzy-if(skiaContent,1,320) == conditions-08.svg conditions-08-ref.svg
 == conditions-09.svg conditions-09-ref.svg
+
 == currentColor-01.svg pass.svg
 == currentColor-02.svg pass.svg
 == currentColor-03.svg pass.svg
+
 == data-uri-with-filter-01.xhtml data-uri-with-filter-01-ref.svg
 == data-uri-with-gradient-01.xhtml data-uri-with-gradient-01-ref.svg
 == data-uri-with-pattern-01.xhtml pass.svg
+
 == dynamic-attr-removal-1.svg pass.svg
 == dynamic-attr-removal-2.svg pass.svg
 == dynamic-attr-change-1.svg pass.svg
 == dynamic-attr-change-2.svg pass.svg
 == dynamic-class-01.svg pass.svg
 fuzzy-if(Android,4,87) == dynamic-clipPath-01.svg pass.svg
 == dynamic-clipPath-02.svg pass.svg
 == dynamic-clipPath-clip-rule-01.svg pass.svg
@@ -131,47 +176,44 @@ fuzzy-if(/^Windows\x20NT\x206\.1/.test(h
 == dynamic-use-06.svg pass.svg
 == dynamic-use-07.svg pass.svg
 random == dynamic-use-nested-01a.svg dynamic-use-nested-01-ref.svg
 random == dynamic-use-nested-01b.svg dynamic-use-nested-01-ref.svg
 == dynamic-use-remove-width.svg dynamic-use-remove-width-ref.svg
 == dynamic-viewBox-change-01.svg pass.svg
 == dynamic-viewBox-change-02.svg pass.svg
 == dynamic-viewBox-change-03.svg pass.svg
-== fragmentIdentifier-01.xhtml pass.svg
-== linked-filter-01.svg pass.svg
-== linked-pattern-01.svg pass.svg
-== use-01.svg pass.svg
-== use-01-extref.svg pass.svg
-== use-02-extref.svg use-02-extref-ref.svg
-== use-extref-dataURI-01.svg pass.svg
-== use-children.svg pass.svg
+
 == fallback-color-01a.svg pass.svg
 == fallback-color-01b.svg pass.svg
 == fallback-color-02a.svg fallback-color-02-ref.svg
 == fallback-color-02b.svg fallback-color-02-ref.svg
 == fallback-color-03.svg pass.svg
 fuzzy-if(skiaContent,1,2) == fallback-color-04.svg pass.svg
+
 == filter-basic-01.svg pass.svg
 == filter-basic-02.svg pass.svg
 == filter-basic-03.svg pass.svg
 == filter-bounds-01.svg pass.svg
 == filter-bounds-02.svg pass.svg
 # This pref is normally on by default, but we turn it off in reftest runs to
 # disable an unnecessary security-check. This reftest is actually testing that
 # the security check works, though, so it needs the pref to be turned on:
 fails-if(Android) pref(security.fileuri.strict_origin_policy,true) == filter-extref-differentOrigin-01.svg pass.svg # Bug 695385
 == filter-foreignObject-01.svg pass.svg
 == filter-in-mask-01.svg pass.svg
 == filter-invalidation-01.svg pass.svg
+fuzzy(71,817) == filter-on-continuation-box-01.html filter-on-continuation-box-ref.html
 == filter-result-01.svg filter-result-01-ref.svg
 == filter-scaled-01.svg pass.svg
 fuzzy-if(skiaContent,1,500) == filter-scaled-02.html filter-scaled-02-ref.html
 == filter-translated-01.svg filter-translated-01-ref.svg
+== filter-use-element-01.svg pass.svg
 fuzzy-if(skiaContent,1,800000) == filters-and-group-opacity-01.svg filters-and-group-opacity-01-ref.svg
+
 == foreignObject-01.svg pass.svg
 == foreignObject-02.svg foreignObject-02-ref.svg
 == foreignObject-ancestor-style-change-01.svg foreignObject-ancestor-style-change-01-ref.svg
 == foreignObject-change-transform-01.svg pass.svg
 == foreignObject-display-01.svg pass.svg
 == foreignObject-form-theme.svg foreignObject-form-theme-ref.html
 == foreignObject-img-form-theme.html foreignObject-img-form-theme-ref.html
 == foreignObject-move-repaint-01.svg pass.svg
@@ -179,152 +221,214 @@ fuzzy-if(skiaContent,1,800000) == filter
 == foreignObject-start-hidden-01.svg pass.svg # followup from Bug 596765
 == foreignObject-start-hidden-02.svg pass.svg
 == foreignObject-style-change-01.svg pass.svg
 == foreignObject-dynamic-abspos-01.html foreignObject-dynamic-abspos-01-ref.html
 fuzzy-if(Android,18,600) == foreignObject-fixedpos-01.html foreignObject-dynamic-abspos-01-ref.html
 == foreignObject-fixedpos-02.html foreignObject-fixedpos-ref.html
 == foreignObject-dynamic-fixedpos-01.html foreignObject-dynamic-abspos-01-ref.html
 == foreignObject-vertical-01.svg foreignObject-vertical-01-ref.svg
+
+== fragmentIdentifier-01.xhtml pass.svg
+
 == g-transform-01.svg pass.svg
+
 == getElementById-a-element-01.svg pass.svg
+
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01a.svg gradient-live-01-ref.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01b.svg gradient-live-01-ref.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01c.svg gradient-live-01-ref.svg
 fuzzy-if(Android,9,980) fuzzy-if(skiaContent,3,32000) == gradient-live-01d.svg gradient-live-01-ref.svg
 == gradient-transform-01.svg pass.svg
+== href-attr-change-restyles.svg href-attr-change-restyles-ref.svg
 fuzzy-if(skiaContent,1,550) == import-svg-01.html pass.svg
 == invalid-text-01.svg pass.svg
 == lang-attribute-01.svg pass.svg
 == lang-attribute-02.svg pass.svg
 == lang-attribute-03.svg pass.svg
 == linearGradient-basic-01.svg pass.svg
 == linearGradient-basic-02.svg pass.svg
 # off-by-one fuzziness expected. OS X is broken with bad aliasing though (bug 1023640).
 fuzzy-if(cocoaWidget,15,19679) fuzzy-if(winWidget,1,8800) fuzzy-if(!cocoaWidget&&!winWidget,1,4000) fuzzy-if(skiaContent,1,5000) == linearGradient-basic-03.svg linearGradient-basic-03-ref.svg
+
+== linked-filter-01.svg pass.svg
+== linked-pattern-01.svg pass.svg
+
 fuzzy-if(skiaContent,1,800000) == markers-and-group-opacity-01.svg markers-and-group-opacity-01-ref.svg
 == marker-attribute-01.svg pass.svg
 == marker-effects-01.svg marker-effects-01-ref.svg
 fuzzy-if(skiaContent,1,100) == marker-viewBox-01.svg marker-viewBox-01-ref.svg
 fuzzy-if(skiaContent,1,100) == marker-orientation-01.svg marker-orientation-01-ref.svg
 fuzzy-if(skiaContent,1,5) pref(svg.marker-improvements.enabled,true) == marker-orientation-02.svg marker-orientation-02-ref.svg
 == marker-orientation-03.svg pass.svg
 == marker-orientation-04.svg pass.svg
+
+fuzzy(28,28) == mask-and-clipPath.html mask-and-clipPath-ref.html
+== mask-and-clipPath-2.svg pass.svg
 == mask-basic-01.svg pass.svg
 fuzzy-if(skiaContent,1,10000) == mask-basic-02.svg mask-basic-02-ref.svg
 == mask-basic-03.svg pass.svg
 == mask-basic-04.svg pass.svg
+== mask-containing-masked-content-01.svg pass.svg
+== mask-contains-inner-svg-01.svg pass.svg
+== mask-contains-inner-svg-02.svg pass.svg
+== mask-empty-size.svg about:blank
 == mask-extref-dataURI-01.svg pass.svg
-== mask-containing-masked-content-01.svg pass.svg
+== mask-img.html mask-img-ref.html
+== mask-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
+== mask-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
+fuzzy(1,5000) == mask-opacity-01.svg mask-opacity-01-ref.svg
 == mask-transformed-01.svg mask-transformed-01-ref.svg
 == mask-transformed-02.svg pass.svg
 == mask-transformed-child-01.svg mask-transformed-child-01-ref.svg
 # fuzzy because of the differences between clipPath and mask clipping
-fuzzy(28,28) == mask-and-clipPath.html mask-and-clipPath-ref.html
-== mask-and-clipPath-2.svg pass.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-01.svg mask-type-01-ref.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-02.svg mask-type-01-ref.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-03.svg mask-type-01-ref.svg
 fuzzy-if(d2d||skiaContent,1,6400) == mask-type-04.svg mask-type-01-ref.svg
+== mask-use-element-01.svg pass.svg
+
+!= nested-mask-mode.svg about:blank
 == nested-viewBox-01.svg pass.svg
 fuzzy-if(skiaContent,3,448000) == nesting-invalid-01.svg nesting-invalid-01-ref.svg
+
 fuzzy-if(d2d&&/^Windows\x20NT\x20(6\.1|10\.0)/.test(http.oscpu),63,168) fuzzy-if(cocoaWidget,1,122) fuzzy-if(skiaContent,2,1000) == non-scaling-stroke-01.svg non-scaling-stroke-01-ref.svg # bug 1074161 for Win7 and OSX 10.8
 fuzzy-if(gtkWidget,1,99) fuzzy-if(!contentSameGfxBackendAsCanvas,9,99) fuzzy-if(Android,9,586) == non-scaling-stroke-02.svg non-scaling-stroke-02-ref.svg
 == non-scaling-stroke-03.svg non-scaling-stroke-03-ref.svg
+
 == objectBoundingBox-and-clipPath.svg pass.svg
 # Bug 588684
 random-if(gtkWidget) == objectBoundingBox-and-fePointLight-01.svg objectBoundingBox-and-fePointLight-01-ref.svg
 random-if(gtkWidget) == objectBoundingBox-and-fePointLight-02.svg objectBoundingBox-and-fePointLight-02-ref.svg
 == objectBoundingBox-and-mask.svg pass.svg
 == objectBoundingBox-and-mask-02.svg pass.svg
 == objectBoundingBox-and-pattern-01a.svg objectBoundingBox-and-pattern-01-ref.svg
 == objectBoundingBox-and-pattern-01b.svg objectBoundingBox-and-pattern-01-ref.svg
 == objectBoundingBox-and-pattern-01c.svg objectBoundingBox-and-pattern-01-ref.svg
 == objectBoundingBox-and-pattern-02.svg pass.svg
 == objectBoundingBox-and-pattern-03.svg objectBoundingBox-and-pattern-03-ref.svg
+
 == opacity-and-gradient-01.svg pass.svg
 skip-if(d2d) fuzzy-if(cocoaWidget,1,99974) fuzzy-if(skiaContent,1,200000) == opacity-and-gradient-02.svg opacity-and-gradient-02-ref.svg
 == opacity-and-pattern-01.svg pass.svg
 fuzzy-if(skiaContent,1,10000) == opacity-and-transform-01.svg opacity-and-transform-01-ref.svg
+
 fuzzy-if(Android,8,200) == outer-svg-border-and-padding-01.svg outer-svg-border-and-padding-01-ref.svg
+
 == outline.html outline-ref.html
+
 == overflow-on-outer-svg-01.svg overflow-on-outer-svg-01-ref.svg
 == overflow-on-outer-svg-02a.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-02b.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-02c.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-02d.xhtml overflow-on-outer-svg-02-ref.xhtml
 == overflow-on-outer-svg-03a.xhtml overflow-on-outer-svg-03-ref.xhtml
 == overflow-on-outer-svg-03b.xhtml overflow-on-outer-svg-03-ref.xhtml
+
+== paint-on-maskLayer-1a.html paint-on-maskLayer-1-ref.html
+== paint-on-maskLayer-1b.html paint-on-maskLayer-1-ref.html
+pref(layout.css.clip-path-shapes.enabled,true) == paint-on-maskLayer-1c.html paint-on-maskLayer-1-ref.html
 pref(svg.paint-order.enabled,true) == paint-order-01.svg paint-order-01-ref.svg
 pref(svg.paint-order.enabled,true) == paint-order-02.svg paint-order-02-ref.svg
 pref(svg.paint-order.enabled,true) == paint-order-03.svg paint-order-03-ref.svg
+
 #fuzzy(23,60) fails-if(d2d) == path-01.svg path-01-ref.svg
 == path-02.svg pass.svg
 == path-03.svg pass.svg
 == path-04.svg pass.svg
 == path-05.svg pass.svg
 fuzzy-if(skiaContent,1,400) == path-06.svg path-06-ref.svg
 == path-07.svg path-07-ref.svg
 == path-08.svg pass.svg
+
 == pathLength-01.svg pass.svg
 == pathLength-02.svg pass.svg
+
 == pattern-basic-01.svg pass.svg
 == pattern-invalid-01.svg pattern-invalid-01-ref.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01a.svg pattern-live-01-ref.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01b.svg pattern-live-01-ref.svg
 fuzzy-if(skiaContent,1,5) == pattern-live-01c.svg pattern-live-01-ref.svg
 fuzzy-if(skiaContent,1,5) == pattern-scale-01a.svg pattern-scale-01-ref.svg
 == pattern-scale-01b.svg pattern-scale-01-ref.svg
 fuzzy-if(skiaContent,3,5) == pattern-scale-01c.svg pattern-scale-01-ref.svg
 == pattern-transform-presence-01.svg pattern-transform-presence-01-ref.svg
 == pattern-transformed-01.svg pattern-transformed-01-ref.svg
+
 == polygon-01.svg polygon-01-ref.svg
 == polygon-marker-01.svg pass.svg
 == polygon-points-negative-01.svg pass.svg
 == polyline-points-invalid-01.svg pass.svg
+
 == pseudo-classes-01.svg pass.svg
 # This test depends on :visited styles (which are asynchronous), so we run
 # it in layout/style/test/test_visited_reftests.html instead of using the
 # reftest harness.
 # == pseudo-classes-02.svg pseudo-classes-02-ref.svg
+
 == radialGradient-basic-01.svg pass.svg
 == radialGradient-basic-02.svg pass.svg
 fuzzy-if(cocoaWidget,4,15982) fuzzy-if(winWidget,4,92) fuzzy-if(skiaContent,4,60) == radialGradient-basic-03.svg radialGradient-basic-03-ref.svg
 == radialGradient-basic-04.svg pass.svg
+
 fuzzy-if(skiaContent,1,3600) == rect-01.svg pass.svg
 == rect-02.svg pass.svg
 == rect-03.svg pass.svg
 == rect-04.svg pass.svg
 == rect-with-rx-and-ry-01.svg pass.svg
 == rect-with-rx-or-ry-01.svg rect-with-rx-or-ry-01-ref.svg
+
 == rootElement-null-01.svg pass.svg
+
 == script-empty-01.svg pass.svg
+
 == selector-01.svg pass.svg
+
+== stroke-dasharray-01.svg stroke-dasharray-01-ref.svg
+fuzzy-if(skiaContent,1,340) == stroke-dasharray-02.svg pass.svg
+fuzzy-if(skiaContent,1,340) == stroke-dasharray-03.svg pass.svg
+== stroke-dasharray-and-pathLength-01.svg pass.svg
+== stroke-dasharray-and-text-01.svg stroke-dasharray-and-text-01-ref.svg
+== stroke-dashoffset-01.svg pass.svg
+== stroke-dashoffset-and-pathLength-01.svg pass.svg
 == stroke-linecap-circle-ellipse-01.svg stroke-linecap-circle-ellipse-01-ref.svg
 == stroke-linecap-circle-ellipse-dashed-01.svg pass.svg
+== stroke-linecap-round-w-zero-length-segs-01.svg pass.svg
+== stroke-linecap-round-w-zero-length-segs-02.svg pass.svg
+== stroke-linecap-square-w-zero-length-segs-01.svg pass.svg
+== stroke-linecap-square-w-zero-length-segs-02.svg pass.svg
 == stroke-width-percentage-01.svg pass.svg
 == stroke-width-percentage-02a.svg stroke-width-percentage-02-ref.svg
 == stroke-width-percentage-02b.svg stroke-width-percentage-02-ref.svg
 == stroke-width-percentage-03.xhtml stroke-width-percentage-03-ref.xhtml
+
 == style-property-on-script-element-01.svg pass.svg
 == style-without-type-attribute.svg pass.svg
+
 == svg-in-foreignObject-01.xhtml svg-in-foreignObject-01-ref.xhtml
 fuzzy-if(skiaContent,1,2600) == svg-in-foreignObject-02.xhtml svg-in-foreignObject-01-ref.xhtml # reuse -01-ref.xhtml
 == switch-01.svg pass.svg
+
 == suspend-01.svg pass.svg
 == suspend-02.svg pass.svg
 == suspend-03.svg pass.svg
 == suspend-04.svg pass.svg
 == suspend-05.svg pass.svg
 == suspend-06.svg pass.svg
 == suspend-07.svg pass.svg
 == suspend-08.svg pass.svg
+
+== svg-effects-area-unzoomed.xhtml svg-effects-area-unzoomed-ref.xhtml
+== svg-effects-area-zoomed-in.xhtml svg-effects-area-zoomed-in-ref.xhtml
+== svg-effects-area-zoomed-out.xhtml svg-effects-area-zoomed-out-ref.xhtml
 == svg-transform-01.svg pass.svg
 == svg-transform-02.svg pass.svg
+
 == symbol-01.svg symbol-01-ref.svg
+
 == text-font-size-01.svg pass.svg
 random-if(gtkWidget) == text-font-weight-01.svg text-font-weight-01-ref.svg # bug 386713
 == text-gradient-01.svg text-gradient-01-ref.svg
 random-if(winWidget) == text-gradient-02.svg text-gradient-02-ref.svg # see bug 590101
 fuzzy-if(skiaContent,1,5500) == text-gradient-03.svg pass.svg
 HTTP(..) == text-gradient-04.svg text-gradient-04-ref.svg
 == text-in-link-01.svg text-in-link-01-ref.svg
 == text-in-link-02.svg text-in-link-02-ref.svg
@@ -338,41 +442,33 @@ random-if(gtkWidget) != text-language-01
 == text-layout-04.svg text-layout-04-ref.svg
 == text-layout-05.svg text-layout-05-ref.svg
 fuzzy-if(cocoaWidget&&layersGPUAccelerated,1,3) == text-layout-06.svg text-layout-06-ref.svg
 == text-layout-07.svg text-layout-07-ref.svg
 == text-layout-08.svg text-layout-08-ref.svg
 == text-scale-01.svg text-scale-01-ref.svg
 fuzzy-if(skiaContent,2,1000) HTTP(..) == text-scale-02.svg text-scale-02-ref.svg
 HTTP(..) == text-scale-03.svg text-scale-03-ref.svg
+
+== text-style-01a.svg text-style-01-ref.svg
+== text-style-01b.svg text-style-01-ref.svg
+== text-style-01c.svg text-style-01-ref.svg
+== text-style-01d.svg text-style-01-ref.svg
+== text-style-01e.svg text-style-01-ref.svg
+
 == text-stroke-scaling-01.svg text-stroke-scaling-01-ref.svg
-== stroke-dasharray-01.svg stroke-dasharray-01-ref.svg
-fuzzy-if(skiaContent,1,340) == stroke-dasharray-02.svg pass.svg
-fuzzy-if(skiaContent,1,340) == stroke-dasharray-03.svg pass.svg
-== stroke-dasharray-and-pathLength-01.svg pass.svg
-== stroke-dasharray-and-text-01.svg stroke-dasharray-and-text-01-ref.svg
-== stroke-dashoffset-01.svg pass.svg
-== stroke-dashoffset-and-pathLength-01.svg pass.svg
-== stroke-linecap-round-w-zero-length-segs-01.svg pass.svg
-== stroke-linecap-round-w-zero-length-segs-02.svg pass.svg
-== stroke-linecap-square-w-zero-length-segs-01.svg pass.svg
-== stroke-linecap-square-w-zero-length-segs-02.svg pass.svg
 == textPath-01.svg textPath-01-ref.svg
 == textPath-02.svg pass.svg
 fuzzy-if(skiaContent,1,610) == textPath-03.svg pass.svg
 == textPath-04.svg pass.svg
 == textPath-05.html pass.svg
-== text-style-01a.svg text-style-01-ref.svg
-== text-style-01b.svg text-style-01-ref.svg
-== text-style-01c.svg text-style-01-ref.svg
-== text-style-01d.svg text-style-01-ref.svg
-== text-style-01e.svg text-style-01-ref.svg
+
 == text-white-space-01.svg text-white-space-01-ref.svg
+
 == thin-stroke-01.svg pass.svg
-== zero-stroke-01.svg pass.svg
 == tspan-dxdy-01.svg tspan-dxdy-ref.svg
 == tspan-dxdy-02.svg tspan-dxdy-ref.svg
 == tspan-dxdy-03.svg tspan-dxdy-ref.svg
 == tspan-dxdy-04.svg tspan-dxdy-ref.svg
 == tspan-dxdy-05.svg tspan-dxdy-ref.svg
 == tspan-dxdy-06.svg tspan-dxdy-ref.svg
 == tspan-dxdy-textPath-01.svg tspan-dxdy-textPath-01-ref.svg
 == tspan-rotate-01.svg tspan-rotate-ref.svg
@@ -388,93 +484,38 @@ fuzzy-if(skiaContent,1,550) == tspan-rot
 fuzzy-if(skiaContent,1,100) == tspan-xy-01.svg tspan-xy-ref.svg
 == tspan-xy-02.svg tspan-xy-ref.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-03.svg tspan-xy-ref.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-04.svg tspan-xy-ref.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-05.svg tspan-xy-ref.svg
 fuzzy-if(skiaContent,1,300) == tspan-xy-06.svg tspan-xy-ref.svg
 fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-middle-01.svg tspan-xy-anchor-middle-ref.svg
 fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-end-01.svg tspan-xy-anchor-end-ref.svg
+
+== use-01.svg pass.svg
+== use-01-extref.svg pass.svg
+== use-02-extref.svg use-02-extref-ref.svg
+== use-extref-dataURI-01.svg pass.svg
+== use-children.svg pass.svg
+
+# test case for Fragment URLs
+# https://drafts.csswg.org/css-values/#local-urls
+== use-localRef-marker-01.svg use-localRef-marker-01-ref.svg
+== use-localRef-clipPath-01.svg use-localRef-clipPath-01-ref.svg
+== use-localRef-filter-01.svg use-localRef-filter-01-ref.svg
+== use-localRef-fill-01.svg use-localRef-fill-01-ref.svg
+== use-localRef-stroke-01.svg use-localRef-stroke-01-ref.svg
+== use-localRef-mask-01.svg use-localRef-mask-01-ref.svg
+
 == userSpaceOnUse-and-pattern-01.svg userSpaceOnUse-and-pattern-01-ref.svg
+
 == viewBox-and-pattern-01.svg pass.svg
 == viewBox-and-pattern-02.svg pass.svg
 == viewBox-and-pattern-03.svg pass.svg
 == viewBox-and-pattern-04.svg pass.svg
 == viewBox-invalid-01.svg pass.svg
 == viewBox-invalid-02.svg pass.svg
 == viewBox-valid-01.svg pass.svg
 == viewBox-valid-02.xhtml pass.svg
 == viewport-percent-graphic-user-01.svg pass.svg
 == winding-01.svg pass.svg
 
-== svg-effects-area-unzoomed.xhtml svg-effects-area-unzoomed-ref.xhtml
-== svg-effects-area-zoomed-in.xhtml svg-effects-area-zoomed-in-ref.xhtml
-== svg-effects-area-zoomed-out.xhtml svg-effects-area-zoomed-out-ref.xhtml
-== href-attr-change-restyles.svg href-attr-change-restyles-ref.svg
-== mask-img.html mask-img-ref.html
-
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-burn.svg blend-color-burn-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-color-dodge.svg blend-color-dodge-ref.svg
-# pref(layout.css.mix-blend-mode.enabled,true) == blend-color.svg blend-color-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-darken.svg blend-darken-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-difference.svg blend-difference-ref.svg
-skip-if(Android) fuzzy-if(skiaContent,1,1600) pref(layout.css.mix-blend-mode.enabled,true) == blend-exclusion.svg blend-exclusion-ref.svg
-# pref(layout.css.mix-blend-mode.enabled,true) == blend-hard-light.svg blend-hard-light-ref.svg
-# pref(layout.css.mix-blend-mode.enabled,true) == blend-hue.svg blend-hue-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-blend.svg blend-layer-blend-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-filter.svg blend-layer-filter-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-mask.svg blend-layer-mask-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-layer-opacity.svg blend-layer-opacity-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-lighten.svg blend-lighten-ref.svg
-# pref(layout.css.mix-blend-mode.enabled,true) == blend-luminosity.svg blend-luminosity-ref.svg
-#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply-alpha.svg blend-multiply-alpha-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-multiply.svg blend-multiply-ref.svg
-pref(layout.css.mix-blend-mode.enabled,true) == blend-normal.svg blend-normal-ref.svg
-#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-overlay.svg blend-overlay-ref.svg
-#skip-if(Android)  pref(layout.css.mix-blend-mode.enabled,true) == blend-saturation.svg blend-saturation-ref.svg
-#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-screen.svg blend-screen-ref.svg
-#skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-soft-light.svg blend-soft-light-ref.svg
-skip-if(Android) pref(layout.css.mix-blend-mode.enabled,true) == blend-difference-stacking.html blend-difference-stacking-ref.html
-
-# test case for Fragment URLs
-# https://drafts.csswg.org/css-values/#local-urls
-== use-localRef-marker-01.svg use-localRef-marker-01-ref.svg
-== use-localRef-clipPath-01.svg use-localRef-clipPath-01-ref.svg
-== use-localRef-filter-01.svg use-localRef-filter-01-ref.svg
-== use-localRef-fill-01.svg use-localRef-fill-01-ref.svg
-== use-localRef-stroke-01.svg use-localRef-stroke-01-ref.svg
-== use-localRef-mask-01.svg use-localRef-mask-01-ref.svg
-
-fuzzy(1,5000) == mask-opacity-01.svg mask-opacity-01-ref.svg
-
-== clipPath-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
-== clipPath-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
-
-default-preferences pref(layout.css.clip-path-shapes.enabled,true)
-fuzzy(1,32400) == clipPath-on-outflowElement-02a.html clipPath-on-outflowElement-02-ref.html
-fuzzy(1,32400) == clipPath-on-outflowElement-02b.html clipPath-on-outflowElement-02-ref.html
-default-preferences
-
-== mask-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
-== mask-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
-
-== clipPath-and-mask-on-outflowElement-01a.html clipPath-on-outflowElement-01-ref.html
-== clipPath-and-mask-on-outflowElement-01b.html clipPath-on-outflowElement-01-ref.html
-
-!= nested-mask-mode.svg about:blank
-== mask-empty-size.svg about:blank
-
-== paint-on-maskLayer-1a.html paint-on-maskLayer-1-ref.html
-== paint-on-maskLayer-1b.html paint-on-maskLayer-1-ref.html
-pref(layout.css.clip-path-shapes.enabled,true) == paint-on-maskLayer-1c.html paint-on-maskLayer-1-ref.html
-
-fuzzy(71,817) == filter-on-continuation-box-01.html filter-on-continuation-box-ref.html
-== mask-contains-inner-svg-01.svg pass.svg
-== mask-contains-inner-svg-02.svg pass.svg
-
-== mask-use-element-01.svg pass.svg
-== clip-use-element-01.svg pass.svg
-== clip-use-element-02.svg pass.svg
-== filter-use-element-01.svg pass.svg
-
-== background-svg-without-height.html background-ref.html
-== background-svg-without-height-width.html background-ref.html
-== background-svg-without-width.html background-ref.html
+== zero-stroke-01.svg pass.svg
new file mode 100644
--- /dev/null
+++ b/layout/style/CSSNamespaceRule.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozilla_dom_CSSNamespaceRule_h
+#define mozilla_dom_CSSNamespaceRule_h
+
+#include "mozilla/css/Rule.h"
+#include "mozilla/dom/CSSNamespaceRuleBinding.h"
+
+class nsIAtom;
+
+namespace mozilla {
+namespace dom {
+
+class CSSNamespaceRule : public css::Rule
+{
+protected:
+  using Rule::Rule;
+
+public:
+  bool IsCCLeaf() const final {
+    return Rule::IsCCLeaf();
+  }
+  int32_t GetType() const final {
+    return Rule::NAMESPACE_RULE;
+  }
+  using Rule::GetType;
+
+  virtual nsIAtom* GetPrefix() const = 0;
+  virtual void GetURLSpec(nsString& aURLSpec) const = 0;
+
+  // WebIDL interfaces
+  uint16_t Type() const final {
+    return nsIDOMCSSRule::NAMESPACE_RULE;
+  }
+
+  size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const = 0;
+
+  JSObject* WrapObject(JSContext* aCx,
+                       JS::Handle<JSObject*> aGivenProto) final {
+    return CSSNamespaceRuleBinding::Wrap(aCx, this, aGivenProto);
+  }
+};
+
+} // namespace dom
+} // namespace mozilla
+
+#endif // mozilla_dom_CSSNamespaceRule_h
--- a/layout/style/NameSpaceRule.h
+++ b/layout/style/NameSpaceRule.h
@@ -5,65 +5,56 @@
 
 /* class for CSS @namespace rules */
 
 #ifndef mozilla_css_NameSpaceRule_h__
 #define mozilla_css_NameSpaceRule_h__
 
 #include "mozilla/Attributes.h"
 #include "mozilla/MemoryReporting.h"
-#include "mozilla/css/Rule.h"
+#include "mozilla/dom/CSSNamespaceRule.h"
 
 #include "nsIDOMCSSRule.h"
 
 class nsIAtom;
 
 // IID for the NameSpaceRule class {f0b0dbe1-5031-4a21-b06a-dc141ef2af98}
 #define NS_CSS_NAMESPACE_RULE_IMPL_CID     \
 {0xf0b0dbe1, 0x5031, 0x4a21, {0xb0, 0x6a, 0xdc, 0x14, 0x1e, 0xf2, 0xaf, 0x98}}
 
 
 namespace mozilla {
 namespace css {
 
-class NameSpaceRule final : public Rule
+class NameSpaceRule final : public dom::CSSNamespaceRule
 {
 public:
   NameSpaceRule(nsIAtom* aPrefix, const nsString& aURLSpec,
                 uint32_t aLineNumber, uint32_t aColumnNumber);
 private:
   // for |Clone|
   NameSpaceRule(const NameSpaceRule& aCopy);
   ~NameSpaceRule();
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_CSS_NAMESPACE_RULE_IMPL_CID)
 
   NS_DECL_ISUPPORTS_INHERITED
-  virtual bool IsCCLeaf() const override;
 
 #ifdef DEBUG
   virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
 #endif
-  virtual int32_t GetType() const override;
-  using Rule::GetType;
   virtual already_AddRefed<Rule> Clone() const override;
 
-  nsIAtom* GetPrefix() const { return mPrefix; }
-
-  void GetURLSpec(nsString& aURLSpec) const { aURLSpec = mURLSpec; }
+  nsIAtom* GetPrefix() const final { return mPrefix; }
+  void GetURLSpec(nsString& aURLSpec) const final { aURLSpec = mURLSpec; }
 
   // WebIDL interface
-  uint16_t Type() const override;
   void GetCssTextImpl(nsAString& aCssText) const override;
 
-  virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
-    override MOZ_MUST_OVERRIDE;
-
-  virtual JSObject* WrapObject(JSContext* aCx,
-                               JS::Handle<JSObject*> aGivenProto) override;
+  size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const final;
 
 private:
   nsCOMPtr<nsIAtom> mPrefix;
   nsString          mURLSpec;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(NameSpaceRule, NS_CSS_NAMESPACE_RULE_IMPL_CID)
 
--- a/layout/style/ServoArcTypeList.h
+++ b/layout/style/ServoArcTypeList.h
@@ -10,8 +10,9 @@ SERVO_ARC_TYPE(CssRules, ServoCssRules)
 SERVO_ARC_TYPE(StyleSheet, RawServoStyleSheet)
 SERVO_ARC_TYPE(ComputedValues, ServoComputedValues)
 SERVO_ARC_TYPE(DeclarationBlock, RawServoDeclarationBlock)
 SERVO_ARC_TYPE(StyleRule, RawServoStyleRule)
 SERVO_ARC_TYPE(ImportRule, RawServoImportRule)
 SERVO_ARC_TYPE(AnimationValue, RawServoAnimationValue)
 SERVO_ARC_TYPE(MediaList, RawServoMediaList)
 SERVO_ARC_TYPE(MediaRule, RawServoMediaRule)
+SERVO_ARC_TYPE(NamespaceRule, RawServoNamespaceRule)
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -71,47 +71,51 @@ SERVO_BINDING_FUNC(Servo_StyleSet_FillKe
                    const nsTimingFunction* timing_function,
                    ServoComputedValuesBorrowed computed_values,
                    RawGeckoKeyframeListBorrowedMut keyframe_list)
 
 // CSSRuleList
 SERVO_BINDING_FUNC(Servo_CssRules_ListTypes, void,
                    ServoCssRulesBorrowed rules,
                    nsTArrayBorrowed_uintptr_t result)
-SERVO_BINDING_FUNC(Servo_CssRules_GetStyleRuleAt, RawServoStyleRuleStrong,
-                   ServoCssRulesBorrowed rules, uint32_t index)
-SERVO_BINDING_FUNC(Servo_CssRules_GetMediaRuleAt, RawServoMediaRuleStrong,
-                   ServoCssRulesBorrowed rules, uint32_t index)
 SERVO_BINDING_FUNC(Servo_CssRules_InsertRule, nsresult,
                    ServoCssRulesBorrowed rules,
                    RawServoStyleSheetBorrowed sheet, const nsACString* rule,
                    uint32_t index, bool nested, uint16_t* rule_type)
 SERVO_BINDING_FUNC(Servo_CssRules_DeleteRule, nsresult,
                    ServoCssRulesBorrowed rules, uint32_t index)
 
 // CSS Rules
-SERVO_BINDING_FUNC(Servo_StyleRule_Debug, void,
-                   RawServoStyleRuleBorrowed rule, nsACString* result)
+#define BASIC_RULE_FUNCS(type_) \
+  SERVO_BINDING_FUNC(Servo_CssRules_Get##type_##RuleAt, \
+                     RawServo##type_##RuleStrong, \
+                     ServoCssRulesBorrowed rules, uint32_t index) \
+  SERVO_BINDING_FUNC(Servo_##type_##Rule_Debug, void, \
+                     RawServo##type_##RuleBorrowed rule, nsACString* result) \
+  SERVO_BINDING_FUNC(Servo_##type_##Rule_GetCssText, void, \
+                     RawServo##type_##RuleBorrowed rule, nsAString* result)
+BASIC_RULE_FUNCS(Style)
+BASIC_RULE_FUNCS(Media)
+BASIC_RULE_FUNCS(Namespace)
+#undef BASIC_RULE_FUNCS
 SERVO_BINDING_FUNC(Servo_StyleRule_GetStyle, RawServoDeclarationBlockStrong,
                    RawServoStyleRuleBorrowed rule)
 SERVO_BINDING_FUNC(Servo_StyleRule_SetStyle, void,
                    RawServoStyleRuleBorrowed rule,
                    RawServoDeclarationBlockBorrowed declarations)
-SERVO_BINDING_FUNC(Servo_StyleRule_GetCssText, void,
-                   RawServoStyleRuleBorrowed rule, nsAString* result)
 SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorText, void,
                    RawServoStyleRuleBorrowed rule, nsAString* result)
-SERVO_BINDING_FUNC(Servo_MediaRule_Debug, void,
-                   RawServoMediaRuleBorrowed rule, nsACString* result)
 SERVO_BINDING_FUNC(Servo_MediaRule_GetMedia, RawServoMediaListStrong,
                    RawServoMediaRuleBorrowed rule)
 SERVO_BINDING_FUNC(Servo_MediaRule_GetRules, ServoCssRulesStrong,
                    RawServoMediaRuleBorrowed rule)
-SERVO_BINDING_FUNC(Servo_MediaRule_GetCssText, void,
-                   RawServoMediaRuleBorrowed rule, nsAString* result)
+SERVO_BINDING_FUNC(Servo_NamespaceRule_GetPrefix, nsIAtom*,
+                   RawServoNamespaceRuleBorrowed rule)
+SERVO_BINDING_FUNC(Servo_NamespaceRule_GetURI, nsIAtom*,
+                   RawServoNamespaceRuleBorrowed rule)
 
 // Animations API
 SERVO_BINDING_FUNC(Servo_ParseProperty,
                    RawServoDeclarationBlockStrong,
                    const nsACString* property, const nsACString* value,
                    const nsACString* base,
                    const GeckoParserExtraData* data)
 SERVO_BINDING_FUNC(Servo_GetComputedKeyframeValues, void,
--- a/layout/style/ServoCSSRuleList.cpp
+++ b/layout/style/ServoCSSRuleList.cpp
@@ -6,16 +6,17 @@
 
 /* representation of CSSRuleList for stylo */
 
 #include "mozilla/ServoCSSRuleList.h"
 
 #include "mozilla/ServoBindings.h"
 #include "mozilla/ServoStyleRule.h"
 #include "mozilla/ServoMediaRule.h"
+#include "mozilla/ServoNamespaceRule.h"
 
 namespace mozilla {
 
 ServoCSSRuleList::ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules)
   : mRawRules(aRawRules)
 {
   Servo_CssRules_ListTypes(mRawRules, &mRules);
   // XXX We may want to eagerly create object for import rule, so that
@@ -65,29 +66,28 @@ ServoCSSRuleList::SetStyleSheet(StyleShe
 
 css::Rule*
 ServoCSSRuleList::GetRule(uint32_t aIndex)
 {
   uintptr_t rule = mRules[aIndex];
   if (rule <= kMaxRuleType) {
     RefPtr<css::Rule> ruleObj = nullptr;
     switch (rule) {
-      case nsIDOMCSSRule::STYLE_RULE: {
-        ruleObj = new ServoStyleRule(
-          Servo_CssRules_GetStyleRuleAt(mRawRules, aIndex).Consume());
-        break;
+#define CASE_RULE(const_, name_)                                            \
+      case nsIDOMCSSRule::const_##_RULE: {                                  \
+        ruleObj = new Servo##name_##Rule(                                   \
+          Servo_CssRules_Get##name_##RuleAt(mRawRules, aIndex).Consume());  \
+        break;                                                              \
       }
-      case nsIDOMCSSRule::MEDIA_RULE: {
-        ruleObj = new ServoMediaRule(
-          Servo_CssRules_GetMediaRuleAt(mRawRules, aIndex).Consume());
-        break;
-      }
+      CASE_RULE(STYLE, Style)
+      CASE_RULE(MEDIA, Media)
+      CASE_RULE(NAMESPACE, Namespace)
+#undef CASE_RULE
       case nsIDOMCSSRule::FONT_FACE_RULE:
       case nsIDOMCSSRule::KEYFRAMES_RULE:
-      case nsIDOMCSSRule::NAMESPACE_RULE:
         // XXX create corresponding rules
       default:
         NS_WARNING("stylo: not implemented yet");
         return nullptr;
     }
     ruleObj->SetStyleSheet(mStyleSheet);
     ruleObj->SetParentRule(mParentRule);
     rule = CastToUint(ruleObj.forget().take());
new file mode 100644
--- /dev/null
+++ b/layout/style/ServoNamespaceRule.cpp
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "mozilla/ServoNamespaceRule.h"
+
+#include "mozilla/ServoBindings.h"
+
+using namespace mozilla::dom;
+
+namespace mozilla {
+
+ServoNamespaceRule::~ServoNamespaceRule()
+{
+}
+
+NS_IMPL_ADDREF_INHERITED(ServoNamespaceRule, CSSNamespaceRule)
+NS_IMPL_RELEASE_INHERITED(ServoNamespaceRule, CSSNamespaceRule)
+
+NS_INTERFACE_MAP_BEGIN(ServoNamespaceRule)
+NS_INTERFACE_MAP_END_INHERITING(CSSNamespaceRule)
+
+#ifdef DEBUG
+void
+ServoNamespaceRule::List(FILE* out, int32_t aIndent) const
+{
+  nsAutoCString str;
+  for (int32_t i = 0; i < aIndent; i++) {
+    str.AppendLiteral("  ");
+  }
+  Servo_NamespaceRule_Debug(mRawRule, &str);
+  fprintf_stderr(out, "%s\n", str.get());
+}
+#endif
+
+already_AddRefed<css::Rule>
+ServoNamespaceRule::Clone() const
+{
+  // Rule::Clone is only used when CSSStyleSheetInner is cloned in
+  // preparation of being mutated. However, ServoStyleSheet never clones
+  // anything, so this method should never be called.
+  MOZ_ASSERT_UNREACHABLE("Shouldn't be cloning ServoNamespaceRule");
+  return nullptr;
+}
+
+nsIAtom*
+ServoNamespaceRule::GetPrefix() const
+{
+  return Servo_NamespaceRule_GetPrefix(mRawRule);
+}
+
+void
+ServoNamespaceRule::GetURLSpec(nsString& aURLSpec) const
+{
+  nsIAtom* atom = Servo_NamespaceRule_GetURI(mRawRule);
+  atom->ToString(aURLSpec);
+}
+
+void
+ServoNamespaceRule::GetCssTextImpl(nsAString& aCssText) const
+{
+  Servo_NamespaceRule_GetCssText(mRawRule, &aCssText);
+}
+
+size_t
+ServoNamespaceRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
+{
+  return aMallocSizeOf(this);
+}
+
+} // namespace mozilla
new file mode 100644
--- /dev/null
+++ b/layout/style/ServoNamespaceRule.h
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozilla_ServoNamespaceRule_h
+#define mozilla_ServoNamespaceRule_h
+
+#include "mozilla/ServoBindingTypes.h"
+#include "mozilla/dom/CSSNamespaceRule.h"
+
+namespace mozilla {
+
+class ServoNamespaceRule : public dom::CSSNamespaceRule
+{
+public:
+  explicit ServoNamespaceRule(already_AddRefed<RawServoNamespaceRule> aRule)
+    : CSSNamespaceRule(0, 0)
+    , mRawRule(Move(aRule))
+  {
+  }
+
+  NS_DECL_ISUPPORTS_INHERITED
+
+#ifdef DEBUG
+  void List(FILE* out = stdout, int32_t aIndent = 0) const final;
+#endif
+  already_AddRefed<Rule> Clone() const final;
+
+  nsIAtom* GetPrefix() const final;
+  void GetURLSpec(nsString& aURLSpec) const final;
+
+  // WebIDL interface
+  void GetCssTextImpl(nsAString& aCssText) const final;
+
+  size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const final;
+
+private:
+  ~ServoNamespaceRule();
+
+  RefPtr<RawServoNamespaceRule> mRawRule;
+};
+
+} // namespace mozilla
+
+#endif // mozilla_ServoNamespaceRule_h
--- a/layout/style/moz.build
+++ b/layout/style/moz.build
@@ -99,16 +99,17 @@ EXPORTS.mozilla += [
     'ServoBindingList.h',
     'ServoBindings.h',
     'ServoBindingTypes.h',
     'ServoCSSRuleList.h',
     'ServoDeclarationBlock.h',
     'ServoElementSnapshot.h',
     'ServoMediaList.h',
     'ServoMediaRule.h',
+    'ServoNamespaceRule.h',
     'ServoPropPrefList.h',
     'ServoSpecifiedValues.h',
     'ServoStyleRule.h',
     'ServoStyleSet.h',
     'ServoStyleSheet.h',
     'ServoTypes.h',
     'ServoUtils.h',
     'SheetType.h',
@@ -123,16 +124,17 @@ EXPORTS.mozilla += [
     'StyleSheetInfo.h',
     'StyleSheetInlines.h',
 ]
 
 EXPORTS.mozilla.dom += [
     'CSS.h',
     'CSSLexer.h',
     'CSSMediaRule.h',
+    'CSSNamespaceRule.h',
     'CSSRuleList.h',
     'CSSValue.h',
     'FontFace.h',
     'FontFaceSet.h',
     'FontFaceSetIterator.h',
     'MediaList.h',
     'MediaQueryList.h',
 ]
@@ -213,16 +215,17 @@ UNIFIED_SOURCES += [
     'RuleNodeCacheConditions.cpp',
     'RuleProcessorCache.cpp',
     'ServoBindings.cpp',
     'ServoCSSRuleList.cpp',
     'ServoDeclarationBlock.cpp',
     'ServoElementSnapshot.cpp',
     'ServoMediaList.cpp',
     'ServoMediaRule.cpp',
+    'ServoNamespaceRule.cpp',
     'ServoSpecifiedValues.cpp',
     'ServoStyleRule.cpp',
     'ServoStyleSet.cpp',
     'ServoStyleSheet.cpp',
     'StyleAnimationValue.cpp',
     'StyleRule.cpp',
     'StyleSheet.cpp',
     'SVGAttrAnimationRuleProcessor.cpp',
--- a/layout/style/nsCSSRules.cpp
+++ b/layout/style/nsCSSRules.cpp
@@ -29,17 +29,16 @@
 
 #include "nsContentUtils.h"
 #include "nsError.h"
 #include "nsStyleUtil.h"
 #include "mozilla/DeclarationBlockInlines.h"
 #include "nsCSSParser.h"
 #include "nsDOMClassInfoID.h"
 #include "mozilla/dom/CSSStyleDeclarationBinding.h"
-#include "mozilla/dom/CSSNamespaceRuleBinding.h"
 #include "mozilla/dom/CSSImportRuleBinding.h"
 #include "mozilla/dom/CSSSupportsRuleBinding.h"
 #include "mozilla/dom/CSSMozDocumentRuleBinding.h"
 #include "mozilla/dom/CSSPageRuleBinding.h"
 #include "mozilla/dom/CSSFontFaceRuleBinding.h"
 #include "mozilla/dom/CSSFontFeatureValuesRuleBinding.h"
 #include "mozilla/dom/CSSKeyframeRuleBinding.h"
 #include "mozilla/dom/CSSKeyframesRuleBinding.h"
@@ -768,53 +767,47 @@ DocumentRule::AppendConditionText(nsAStr
 }
 
 // -------------------------------------------
 // NameSpaceRule
 //
 
 NameSpaceRule::NameSpaceRule(nsIAtom* aPrefix, const nsString& aURLSpec,
                              uint32_t aLineNumber, uint32_t aColumnNumber)
-  : Rule(aLineNumber, aColumnNumber),
+  : CSSNamespaceRule(aLineNumber, aColumnNumber),
     mPrefix(aPrefix),
     mURLSpec(aURLSpec)
 {
 }
 
 NameSpaceRule::NameSpaceRule(const NameSpaceRule& aCopy)
-  : Rule(aCopy),
+  : CSSNamespaceRule(aCopy),
     mPrefix(aCopy.mPrefix),
     mURLSpec(aCopy.mURLSpec)
 {
 }
 
 NameSpaceRule::~NameSpaceRule()
 {
 }
 
-NS_IMPL_ADDREF_INHERITED(NameSpaceRule, Rule)
-NS_IMPL_RELEASE_INHERITED(NameSpaceRule, Rule)
+NS_IMPL_ADDREF_INHERITED(NameSpaceRule, CSSNamespaceRule)
+NS_IMPL_RELEASE_INHERITED(NameSpaceRule, CSSNamespaceRule)
 
 // QueryInterface implementation for NameSpaceRule
 // If this ever gets its own cycle-collection bits, reevaluate our IsCCLeaf
 // implementation.
 NS_INTERFACE_MAP_BEGIN(NameSpaceRule)
   if (aIID.Equals(NS_GET_IID(css::NameSpaceRule))) {
     *aInstancePtr = this;
     NS_ADDREF_THIS();
     return NS_OK;
   }
   else
-NS_INTERFACE_MAP_END_INHERITING(Rule)
-
-bool
-NameSpaceRule::IsCCLeaf() const
-{
-  return Rule::IsCCLeaf();
-}
+NS_INTERFACE_MAP_END_INHERITING(CSSNamespaceRule)
 
 #ifdef DEBUG
 /* virtual */ void
 NameSpaceRule::List(FILE* out, int32_t aIndent) const
 {
   nsAutoCString str;
   for (int32_t indent = aIndent; --indent >= 0; ) {
     str.AppendLiteral("  ");
@@ -832,35 +825,23 @@ NameSpaceRule::List(FILE* out, int32_t a
 
   str.AppendLiteral("url(\"");
   AppendUTF16toUTF8(mURLSpec, str);
   str.AppendLiteral("\")\n");
   fprintf_stderr(out, "%s", str.get());
 }
 #endif
 
-/* virtual */ int32_t
-NameSpaceRule::GetType() const
-{
-  return Rule::NAMESPACE_RULE;
-}
-
 /* virtual */ already_AddRefed<Rule>
 NameSpaceRule::Clone() const
 {
   RefPtr<Rule> clone = new NameSpaceRule(*this);
   return clone.forget();
 }
 
-uint16_t
-NameSpaceRule::Type() const
-{
-  return nsIDOMCSSRule::NAMESPACE_RULE;
-}
-
 void
 NameSpaceRule::GetCssTextImpl(nsAString& aCssText) const
 {
   aCssText.AssignLiteral("@namespace ");
   if (mPrefix) {
     aCssText.Append(nsDependentAtomString(mPrefix) + NS_LITERAL_STRING(" "));
   }
   aCssText.AppendLiteral("url(");
@@ -874,23 +855,16 @@ NameSpaceRule::SizeOfIncludingThis(Mallo
   return aMallocSizeOf(this);
 
   // Measurement of the following members may be added later if DMD finds it is
   // worthwhile:
   // - mPrefix
   // - mURLSpec
 }
 
-/* virtual */ JSObject*
-NameSpaceRule::WrapObject(JSContext* aCx,
-                          JS::Handle<JSObject*> aGivenProto)
-{
-  return CSSNamespaceRuleBinding::Wrap(aCx, this, aGivenProto);
-}
-
 } // namespace css
 } // namespace mozilla
 
 // -------------------------------------------
 // nsCSSFontFaceStyleDecl and related routines
 //
 
 // Mapping from nsCSSFontDesc codes to CSSFontFaceDescriptors fields.
--- a/layout/style/nsMediaList.cpp
+++ b/layout/style/nsMediaList.cpp
@@ -531,17 +531,17 @@ nsMediaList::Matches(nsPresContext* aPre
   for (int32_t i = 0, i_end = mArray.Length(); i < i_end; ++i) {
     if (mArray[i]->Matches(aPresContext, aKey)) {
       return true;
     }
   }
   return mArray.IsEmpty();
 }
 
-already_AddRefed<MediaList>
+already_AddRefed<dom::MediaList>
 nsMediaList::Clone()
 {
   RefPtr<nsMediaList> result = new nsMediaList();
   result->mArray.AppendElements(mArray.Length());
   for (uint32_t i = 0, i_end = mArray.Length(); i < i_end; ++i) {
     result->mArray[i] = mArray[i]->Clone();
     MOZ_ASSERT(result->mArray[i]);
   }
--- a/layout/style/test/stylo-failures.md
+++ b/layout/style/test/stylo-failures.md
@@ -56,20 +56,16 @@ Any line which doesn't follow the format
     * test_restyles_in_smil_animation.html [2]
   * CSS Timing Functions: Frames timing functions
     * test_value_storage.html `frames` [30]
   * Property parsing and computation:
     * test_property_syntax_errors.html `animation` [404]
     * test_value_storage.html `animation` [280]
 * test_any_dynamic.html: -moz-any pseudo class [2]
 * CSSOM support:
-  * @namespace ##easy##
-    * test_at_rule_parse_serialize.html [1]
-    * test_bug765590.html [1]
-    * test_font_face_parser.html `@namespace` [1]
   * @import
     * test_bug221428.html [1]
   * @media
     * test_condition_text_assignment.html [1]
     * test_css_eof_handling.html [1]
     * test_group_insertRule.html [16]
     * test_rules_out_of_sheets.html [1]
   * @keyframes
@@ -312,18 +308,16 @@ Any line which doesn't follow the format
     * test_value_storage.html `-moz-max-content` [52]
     * ... `-moz-min-content` [12]
     * ... `-moz-fit-content` [12]
     * ... `-moz-available` [10]
   * -moz-element() function for &lt;image&gt;
     * test_value_storage.html `-moz-element` [49]
   * -moz-anchor-decoration value on text-decoration
     * test_value_storage.html `-moz-anchor-decoration` [10]
-  * various values on -{webkit,moz}-user-select **need investigation**
-    * test_value_storage.html `user-select` [3]
   * several prefixed values in cursor property
     * test_value_storage.html `cursor` [4]
   * moz-prefixed values of overflow shorthand bug 1330888
     * test_bug319381.html [8]
     * test_value_storage.html `'overflow` [8]
   * -moz-middle-with-baseline on vertical-align
     * test_value_storage.html `-moz-middle-with-baseline` [1]
   * -moz-pre-space on white-space
--- a/layout/svg/nsFilterInstance.cpp
+++ b/layout/svg/nsFilterInstance.cpp
@@ -177,17 +177,19 @@ nsFilterInstance::nsFilterInstance(nsIFr
   , mPaintCallback(aPaintCallback)
   , mPaintTransform(aPaintTransform)
   , mInitialized(false)
 {
   if (aOverrideBBox) {
     mTargetBBox = *aOverrideBBox;
   } else {
     MOZ_ASSERT(mTargetFrame, "Need to supply a frame when there's no aOverrideBBox");
-    mTargetBBox = nsSVGUtils::GetBBox(mTargetFrame);
+    mTargetBBox = nsSVGUtils::GetBBox(mTargetFrame,
+                                      nsSVGUtils::eUseFrameBoundsForOuterSVG |
+                                      nsSVGUtils::eBBoxIncludeFillGeometry);
   }
 
   // Compute user space to filter space transforms.
   if (!ComputeUserSpaceToFilterSpaceScale()) {
     return;
   }
 
   if (!ComputeTargetBBoxInFilterSpace()) {
--- a/layout/svg/nsSVGIntegrationUtils.cpp
+++ b/layout/svg/nsSVGIntegrationUtils.cpp
@@ -187,18 +187,18 @@ nsSVGIntegrationUtils::GetSVGCoordContex
   nsPresContext* presContext = firstFrame->PresContext();
   return gfx::Size(presContext->AppUnitsToFloatCSSPixels(r.width),
                    presContext->AppUnitsToFloatCSSPixels(r.height));
 }
 
 gfxRect
 nsSVGIntegrationUtils::GetSVGBBoxForNonSVGFrame(nsIFrame* aNonSVGFrame)
 {
-  NS_ASSERTION(!aNonSVGFrame->IsFrameOfType(nsIFrame::eSVG),
-               "SVG frames should not get here");
+  NS_ASSERTION(!(aNonSVGFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT),
+               "Frames with SVG layout should not get here");
   nsIFrame* firstFrame =
     nsLayoutUtils::FirstContinuationOrIBSplitSibling(aNonSVGFrame);
   // 'r' is in "user space":
   nsRect r = GetPreEffectsVisualOverflowUnion(firstFrame, nullptr, nsRect(),
                                               GetOffsetToBoundingBox(firstFrame));
   return nsLayoutUtils::RectToGfxRect(r,
            aNonSVGFrame->PresContext()->AppUnitsPerCSSPixel());
 }
--- a/layout/svg/nsSVGUtils.cpp
+++ b/layout/svg/nsSVGUtils.cpp
@@ -1092,17 +1092,20 @@ nsSVGUtils::SetClipRect(gfxContext *aCon
 gfxRect
 nsSVGUtils::GetBBox(nsIFrame *aFrame, uint32_t aFlags)
 {
   if (aFrame->GetContent()->IsNodeOfType(nsINode::eTEXT)) {
     aFrame = aFrame->GetParent();
   }
   gfxRect bbox;
   nsISVGChildFrame *svg = do_QueryFrame(aFrame);
-  if (svg || aFrame->IsSVGText()) {
+  const bool hasSVGLayout = aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT;
+  if (hasSVGLayout || aFrame->IsSVGText() ||
+      // if we evaluate the following, |svg| can only be an outer-<svg> or null
+      (svg && !(aFlags & eUseFrameBoundsForOuterSVG))) {
     // It is possible to apply a gradient, pattern, clipping path, mask or
     // filter to text. When one of these facilities is applied to text
     // the bounding box is the entire text element in all
     // cases.
     if (aFrame->IsSVGText()) {
       nsIFrame* ancestor = GetFirstNonAAncestorFrame(aFrame);
       if (ancestor && ancestor->IsSVGText()) {
         while (ancestor->GetType() != nsGkAtoms::svgTextFrame) {
--- a/layout/svg/nsSVGUtils.h
+++ b/layout/svg/nsSVGUtils.h
@@ -398,17 +398,21 @@ public:
                        nsIFrame *aFrame);
 
   enum BBoxFlags {
     eBBoxIncludeFill           = 1 << 0,
     eBBoxIncludeFillGeometry   = 1 << 1,
     eBBoxIncludeStroke         = 1 << 2,
     eBBoxIncludeStrokeGeometry = 1 << 3,
     eBBoxIncludeMarkers        = 1 << 4,
-    eBBoxIncludeClipped        = 1 << 5
+    eBBoxIncludeClipped        = 1 << 5,
+    // Normally a getBBox call on outer-<svg> should only return the
+    // bounds of the elements children.  This flag will cause the
+    // element's bounds to be returned instead.
+    eUseFrameBoundsForOuterSVG = 1 << 6
   };
   /**
    * Get the SVG bbox (the SVG spec's simplified idea of bounds) of aFrame in
    * aFrame's userspace.
    */
   static gfxRect GetBBox(nsIFrame *aFrame,
                          // If the default arg changes, update the handling for
                          // ObjectBoundingBoxProperty() in the implementation.
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1152,9 +1152,9 @@ static const TransportSecurityPreload kP
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
 // Pinning Preload List Length = 477;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1497971135298000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1498057610195000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -1,17 +1,16 @@
 007sascha.de: could not connect to host
 00f.net: 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 118"  data: no]
 0g.org.uk: could not connect to host
 0p.no: did not receive HSTS header
 0x0a.net: could not connect to host
 0x1337.eu: could not connect to host
 0x44.net: did not receive HSTS header
-0x90.in: could not connect to host
 0xa.in: could not connect to host
 0xacab.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 118"  data: no]
 0xb612.org: could not connect to host
 0xf00.ch: did not receive HSTS header
 100dayloans.com: max-age too low: 0
 1018hosting.nl: did not receive HSTS header
 1022996493.rsc.cdn77.org: could not connect to host
 10seos.com: did not receive HSTS header
@@ -24,16 +23,17 @@ 12vpnchina.com: could not connect to hos
 16packets.com: could not connect to host
 1a-jva.de: did not receive HSTS header
 1cover.com: could not connect to host
 1k8b.com: could not connect to host
 1password.com: did not receive HSTS header
 1xcess.com: did not receive HSTS header
 206rc.net: max-age too low: 2592000
 247loan.com: max-age too low: 0
+247quickbooks.com: did not receive HSTS header
 24hourpaint.com: could not connect to host
 25daysof.io: could not connect to host
 263.info: could not connect to host
 2859cc.com: could not connect to host
 2brokegirls.org: could not connect to host
 2intermediate.co.uk: did not receive HSTS header
 2or3.tk: could not connect to host
 2programmers.net: could not connect to host
@@ -48,17 +48,16 @@ 360ds.co.in: could not connect to host
 360gradus.com: did not receive HSTS header
 365.or.jp: could not connect to host
 3chit.cf: could not connect to host
 3click-loan.com: could not connect to host
 3sreporting.com: did not receive HSTS header
 3yearloans.com: max-age too low: 0
 404.sh: max-age too low: 0
 42ms.org: could not connect to host
-441jj.com: did not receive HSTS header
 4455software.com: did not receive HSTS header
 4679.space: could not connect to host
 47ronin.com: did not receive HSTS header
 4cclothing.com: could not connect to host
 4elements.com: did not receive HSTS header
 4eyes.ch: did not receive HSTS header
 4mm.org: did not receive HSTS header
 4ourty2.org: could not connect to host
@@ -125,17 +124,17 @@ addvocate.com: could not connect to host
 adelevie.com: could not connect to host
 adequatetechnology.com: could not connect to host
 aderal.io: could not connect to host
 adfa-1.com: did not receive HSTS header
 adhs-chaoten.net: did not receive HSTS header
 admin.google.com: did not receive HSTS header (error ignored - included regardless)
 admitcard.co.in: did not receive HSTS header
 admsel.ec: could not connect to host
-adopteunsiteflash.com: could not connect to host
+adopteunsiteflash.com: did not receive HSTS header
 adquisitio.co.uk: could not connect to host
 adquisitio.de: could not connect to host
 adquisitio.es: could not connect to host
 adquisitio.fr: could not connect to host
 adquisitio.it: could not connect to host
 adrianseo.ro: did not receive HSTS header
 adrl.ca: could not connect to host
 adsfund.org: could not connect to host
@@ -148,16 +147,17 @@ aerialmediapro.net: could not connect to
 aes256.ru: could not connect to host
 aether.pw: could not connect to host
 aevpn.net: could not connect to host
 aficotroceni.ro: did not receive HSTS header
 afp548.tk: could not connect to host
 agalaxyfarfaraway.co.uk: could not connect to host
 agbremen.de: did not receive HSTS header
 agentseeker.ca: did not receive HSTS header
+agowa338.de: could not connect to host
 agrimap.com: did not receive HSTS header
 agrios.de: did not receive HSTS header
 agro-id.gov.ua: could not connect to host
 ahabingo.com: did not receive HSTS header
 ahoynetwork.com: did not receive HSTS header
 ahri.ovh: could not connect to host
 aidanwoods.com: did not receive HSTS header
 airbnb.com: did not receive HSTS header
@@ -185,23 +185,22 @@ albion2.org: 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
 alethearose.com: did not receive HSTS header
 alexandre.sh: did not receive HSTS header
 alexisabarca.com: did not receive HSTS header
 alexsergeyev.com: could not connect to host
-alexvetter.de: did not receive HSTS header
 alfa24.pro: could not connect to host
 alittlebitcheeky.com: did not receive HSTS header
 aljaspod.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 118"  data: no]
 alkami.com: did not receive HSTS header
 all-subtitles.com: did not receive HSTS header
-all.tf: could not connect to host
+all.tf: did not receive HSTS header
 alldaymonitoring.com: could not connect to host
 allforyou.at: could not connect to host
 allinnote.com: could not connect to host
 allmbw.com: could not connect to host
 allstarswithus.com: could not connect to host
 alpha.irccloud.com: could not connect to host
 alphabit-secure.com: could not connect to host
 alphabuild.io: did not receive HSTS header
@@ -232,17 +231,16 @@ analytic-s.ml: could not connect to host
 anarchistischegroepnijmegen.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 118"  data: no]
 anassiriphotography.com: could not connect to host
 ancientkarma.com: could not connect to host
 andere-gedanken.net: max-age too low: 10
 andiplusben.com: could not connect to host
 andreasbreitenlohner.de: did not receive HSTS header
 andreastoneman.com: could not connect to host
 andreigec.net: did not receive HSTS header
-andrew.london: did not receive HSTS header
 andrewbroekman.com: could not connect to host
 andrewmichaud.beer: could not connect to host
 andrewregan.me: could not connect to host
 andreypopp.com: could not connect to host
 androoz.se: did not receive HSTS header
 andymartin.cc: did not receive HSTS header
 anfsanchezo.co: did not receive HSTS header
 anfsanchezo.me: could not connect to host
@@ -269,27 +267,27 @@ ant.land: could not connect to host
 anthenor.co.uk: could not connect to host
 antimine.kr: could not connect to host
 antocom.com: did not receive HSTS header
 antoinedeschenes.com: could not connect to host
 antoniomarques.eu: did not receive HSTS header
 antoniorequena.com.ve: could not connect to host
 antscript.com: did not receive HSTS header
 anycoin.me: could not connect to host
+aosc.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 118"  data: no]
 apachelounge.com: did not receive HSTS header
 aparaatti.org: could not connect to host
 apeasternpower.com: could not connect to host
 api.mega.co.nz: could not connect to host
 apibot.de: could not connect to host
 apis.google.com: did not receive HSTS header (error ignored - included regardless)
 apis.world: did not receive HSTS header
 apmg-certified.com: did not receive HSTS header
 apmg-cyber.com: did not receive HSTS header
 apnakliyat.com: did not receive HSTS header
-apolloyl.com: could not connect to host
 aponkralsunucu.com: could not connect to host
 app-arena.com: did not receive HSTS header
 app.lookout.com: did not receive HSTS header
 app.manilla.com: could not connect to host
 appart.ninja: could not connect to host
 appengine.google.com: did not receive HSTS header (error ignored - included regardless)
 applez.xyz: could not connect to host
 applic8.com: did not receive HSTS header
@@ -389,24 +387,26 @@ avec-ou-sans-ordonnance.fr: could not co
 avenelequinehospital.com.au: did not receive HSTS header
 avepol.cz: did not receive HSTS header
 avepol.eu: did not receive HSTS header
 aviacao.pt: did not receive HSTS header
 avinet.com: max-age too low: 0
 avqueen.cn: did not receive HSTS header
 avus-automobile.com: did not receive HSTS header
 awg-mode.de: did not receive HSTS header
+awxg.com: could not connect to host
 axado.com.br: did not receive HSTS header
 axeny.com: did not receive HSTS header
 axg.io: could not connect to host
 az.search.yahoo.com: did not receive HSTS header
 azazy.net: max-age too low: 2592000
 azprep.us: could not connect to host
 azuxul.fr: could not connect to host
 b3orion.com: max-age too low: 0
+b422edu.com: could not connect to host
 b64.club: could not connect to host
 babettelandmesser.de: max-age too low: 0
 baby-click.de: did not receive HSTS header
 babybic.hu: did not receive HSTS header
 babyhouse.xyz: could not connect to host
 babymasaze.cz: did not receive HSTS header
 babysaying.me: max-age too low: 6000
 bacchanallia.com: could not connect to host
@@ -847,36 +847,36 @@ clerkendweller.uk: could not connect to 
 clickandgo.com: did not receive HSTS header
 clickandshoot.nl: did not receive HSTS header
 clicn.bio: could not connect to host
 clientsecure.me: could not connect to host
 clint.id.au: max-age too low: 0
 clintonbloodworth.com: did not receive HSTS header
 clintonbloodworth.io: could not connect to host
 clintwilson.technology: max-age too low: 2592000
-clip.mx: did not receive HSTS header
 clipped4u.com: could not connect to host
 cloud.wtf: could not connect to host
 cloudapi.vc: could not connect to host
 cloudcert.org: did not receive HSTS header
 cloudcy.net: could not connect to host
 clouddesktop.co.nz: could not connect to host
 cloudey.net: did not receive HSTS header
 cloudflare.com: did not receive HSTS header
 cloudia.org: could not connect to host
-cloudily.com: could not connect to host
 cloudimag.es: could not connect to host
 cloudlink.club: could not connect to host
 cloudns.com.au: could not connect to host
 cloudspotterapp.com: did not receive HSTS header
 cloudstoragemaus.com: could not connect to host
 cloudstorm.me: could not connect to host
+cloudup.com: did not receive HSTS header
 cloudwalk.io: did not receive HSTS header
 cloverleaf.net: max-age too low: 0
 clubmate.rocks: could not connect to host
+cluster.id: could not connect to host
 clvrwebdesign.com: did not receive HSTS header
 clycat.ru: could not connect to host
 clywedogmaths.co.uk: could not connect to host
 cmacacias.ch: did not receive HSTS header
 cmc-versand.de: did not receive HSTS header
 cmci.dk: did not receive HSTS header
 cmlachapelle.ch: did not receive HSTS header
 cmlancy.ch: did not receive HSTS header
@@ -903,31 +903,31 @@ codemonkeyrawks.net: could not connect t
 codepoet.de: could not connect to host
 codepult.com: could not connect to host
 codepx.com: did not receive HSTS header
 codewild.de: could not connect to host
 codewiththepros.org: could not connect to host
 codiva.io: max-age too low: 2592000
 coffeeetc.co.uk: did not receive HSTS header
 coffeestrategies.com: max-age too low: 2592000
-cohesive.io: did not receive HSTS header
 coiffeurschnittstelle.ch: did not receive HSTS header
 coindam.com: could not connect to host
 coldlostsick.net: could not connect to host
 colinwolff.com: could not connect to host
 colisfrais.com: did not receive HSTS header
 collies.eu: did not receive HSTS header
 collins.kg: did not receive HSTS header
 collins.press: did not receive HSTS header
 colmexpro.com: did not receive HSTS header
 colognegaming.net: could not connect to host
 coloradocomputernetworking.net: could not connect to host
 combron.nl: did not receive HSTS header
 comfortdom.ua: did not receive HSTS header
 comfortticket.de: did not receive HSTS header
+comfy.moe: did not receive HSTS header
 comicspines.com: could not connect to host
 comotalk.com: could not connect to host
 compalytics.com: could not connect to host
 comparejewelleryprices.co.uk: could not connect to host
 completeid.com: max-age too low: 86400
 completionist.audio: could not connect to host
 compraneta.com: could not connect to host
 compucorner.com.mx: could not connect to host
@@ -959,17 +959,16 @@ core4system.de: could not connect to hos
 corenetworking.de: could not connect to host
 corgicloud.com: could not connect to host
 cormactagging.ie: could not connect to host
 cormilu.com.br: did not receive HSTS header
 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
-cosmeticasimple.com: could not connect to host
 count.sh: 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
 cpuvinf.eu.org: could not connect to host
 cr.search.yahoo.com: did not receive HSTS header
@@ -1024,16 +1023,17 @@ cthulhuden.com: could not connect to hos
 ctoforhire.com.au: could not connect to host
 cubeserver.eu: could not connect to host
 cubewano.com: could not connect to host
 cujanovic.com: did not receive HSTS header
 cumshots-video.ru: could not connect to host
 cunha.be: could not connect to host
 cuntflaps.me: did not receive HSTS header
 cuongquach.com: did not receive HSTS header
+cup.al: could not connect to host
 cupidmentor.com: did not receive HSTS header
 curlyroots.com: did not receive HSTS header
 curroapp.com: could not connect to host
 curveweb.co.uk: did not receive HSTS header
 custe.rs: could not connect to host
 cutorrent.com: could not connect to host
 cuvva.insure: did not receive HSTS header
 cyanogenmod.xxx: could not connect to host
@@ -1077,16 +1077,17 @@ darknebula.space: could not connect to h
 darkpony.ru: could not connect to host
 darksideof.it: could not connect to host
 darkstance.org: could not connect to host
 darrenellis.xyz: could not connect to host
 dashburst.com: did not receive HSTS header
 dashnimorad.com: did not receive HSTS header
 data-abundance.com: could not connect to host
 datahove.no: did not receive HSTS header
+dataisme.com: did not receive HSTS header
 datajapan.co.jp: could not connect to host
 datarank.com: max-age too low: 0
 dataretention.solutions: could not connect to host
 datatekniikka.com: could not connect to host
 datenkeks.de: did not receive HSTS header
 dateno1.com: max-age too low: 0
 datenreiter.cf: could not connect to host
 datenreiter.gq: could not connect to host
@@ -1130,16 +1131,17 @@ delayrefunds.co.uk: could not connect to
 deliverance.co.uk: could not connect to host
 deltaconcepts.de: did not receive HSTS header
 deltanet-production.de: max-age too low: 0
 delvj.org: could not connect to host
 demdis.org: could not connect to host
 demilitarized.ninja: could not connect to host
 democracychronicles.com: did not receive HSTS header
 demotops.com: did not receive HSTS header
+dengchangdong.com: did not receive HSTS header
 dengyong.org: could not connect to host
 denh.am: did not receive HSTS header
 denisjean.fr: could not connect to host
 dentaldomain.org: did not receive HSTS header
 dentaldomain.ph: could not connect to host
 depeche-mode.moscow: max-age too low: 7200
 depijl-mz.nl: did not receive HSTS header
 depixion.agency: could not connect to host
@@ -1177,22 +1179,22 @@ diezel.com: could not connect to host
 digidroom.be: did not receive HSTS header
 digioccumss.ddns.net: could not connect to host
 digitalbank.kz: could not connect to host
 digitaldaddy.net: could not connect to host
 digitalriver.tk: could not connect to host
 digitalskillswap.com: could not connect to host
 dim.lighting: could not connect to host
 dinamoelektrik.com: max-age too low: 0
+dingcc.com: did not receive HSTS header
 dinkum.online: 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
 disowned.net: max-age too low: 0
-dissectcyber.com: could not connect to host
 dissimulo.me: could not connect to host
 ditrutoancau.vn: could not connect to host
 dittvertshus.no: could not connect to host
 diva-ey.com: could not connect to host
 dizihocasi.com: could not connect to host
 dizorg.net: could not connect to host
 dj4et.de: could not connect to host
 djz4music.com: did not receive HSTS header
@@ -1208,17 +1210,16 @@ dn42.eu: could not connect to host
 dns.google.com: did not receive HSTS header (error ignored - included regardless)
 dnsknowledge.com: did not receive HSTS header
 do-do.tk: could not connect to host
 do.gd: could not connect to host
 do.search.yahoo.com: did not receive HSTS header
 dobet.in: could not connect to host
 docid.io: could not connect to host
 docket.news: could not connect to host
-docs.google.com: did not receive HSTS header (error ignored - included regardless)
 docset.io: could not connect to host
 docufiel.com: could not connect to host
 doeswindowssuckforeveryoneorjustme.com: could not connect to host
 dogbox.se: did not receive HSTS header
 dogespeed.ga: could not connect to host
 doggieholic.net: could not connect to host
 dogoodbehappyllc.com: did not receive HSTS header
 dohosting.ru: could not connect to host
@@ -1254,19 +1255,17 @@ dragons-of-highlands.cz: could not conne
 dragontrainingmobilezoo.com.au: max-age too low: 0
 drakefortreasurer.sexy: could not connect to host
 draw.uy: could not connect to host
 drdevil.ru: could not connect to host
 dreadbyte.com: could not connect to host
 dreid.org: did not receive HSTS header
 drhopeson.com: could not connect to host
 drishti.guru: could not connect to host
-drive.google.com: did not receive HSTS header (error ignored - included regardless)
 drkmtrx.xyz: could not connect to host
-drobniuch.pl: could not connect to host
 droidboss.com: did not receive HSTS header
 dropcam.com: did not receive HSTS header
 drtroyhendrickson.com: could not connect to host
 drumbandesperanto.nl: could not connect to host
 ds-christiansen.de: did not receive HSTS header
 dshiv.io: could not connect to host
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
@@ -1318,28 +1317,28 @@ edcphenix.tk: could not connect to host
 edelsteincosmetic.com: did not receive HSTS header
 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
 edwards.me.uk: could not connect to host
-eelzak.nl: could not connect to host
 effectiveosgi.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
 eglek.com: did not receive HSTS header
 ego-world.org: could not connect to host
 ehito.ovh: 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
+eisp.it: could not connect to host
 ekbanden.nl: could not connect to host
 elaintehtaat.fi: did not receive HSTS header
 elan-organics.com: did not receive HSTS header
 elanguest.pl: could not connect to host
 elanguest.ro: did not receive HSTS header
 elanguest.ru: could not connect to host
 elbetech.net: could not connect to host
 electricianforum.co.uk: did not receive HSTS header
@@ -1362,31 +1361,33 @@ emanatepixels.com: could not connect to 
 emeldi-commerce.com: max-age too low: 0
 eminovic.me: could not connect to host
 emjainteractive.com: did not receive HSTS header
 emjimadhu.com: could not connect to host
 emmable.com: could not connect to host
 emnitech.com: could not connect to host
 empleosentorreon.mx: could not connect to host
 empleostampico.com: did not receive HSTS header
+empty-r.com: could not connect to host
 enaah.de: could not connect to host
 enargia.jp: max-age too low: 0
 encode.host: did not receive HSTS header
 encoder.pw: could not connect to host
 encontrebarato.com.br: did not receive HSTS header
 encrypted.google.com: did not receive HSTS header (error ignored - included regardless)
 encryptio.com: could not connect to host
 end.pp.ua: could not connect to host
 endlessdark.net: max-age too low: 600
 endlesstone.com: did not receive HSTS header
 enefan.jp: could not connect to host
 enersec.co.uk: could not connect to host
 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 118"  data: no]
 engg.ca: could not connect to host
 enginepit.com: could not connect to host
+enginsight.com: did not receive HSTS header
 enigmacpt.com: did not receive HSTS header
 enigmail.net: did not receive HSTS header
 enjoy-nepal.de: max-age too low: 0
 enskat.de: could not connect to host
 enskatson-sippe.de: could not connect to host
 enteente.club: could not connect to host
 enteente.space: could not connect to host
 enteente.xyz: could not connect to host
@@ -1434,20 +1435,22 @@ etdonline.co.uk: could not connect to ho
 eternitylove.us: could not connect to host
 eth9.net: max-age too low: 0
 ethicalexploiting.com: could not connect to host
 etsysecure.com: could not connect to host
 etula.ga: could not connect to host
 etula.me: could not connect to host
 euanbaines.com: did not receive HSTS header
 eucl3d.com: did not receive HSTS header
+euclideanpostulates.xyz: could not connect to host
 eulerpi.io: could not connect to host
 eupho.me: could not connect to host
 euroshop24.net: could not connect to host
 evafojtova.cz: did not receive HSTS header
+evalesc.com: could not connect to host
 evantage.org: could not connect to host
 evdenevenakliyatankara.pw: did not receive HSTS header
 everybooks.com: max-age too low: 60
 everylab.org: could not connect to host
 everything.place: could not connect to host
 evin.ml: could not connect to host
 evites.me: could not connect to host
 evomon.com: could not connect to host
@@ -1456,17 +1459,16 @@ ewuchuan.com: could not connect to host
 excelgum.ca: did not receive HSTS header
 exceptionalservers.com: could not connect to host
 exfiles.cz: did not receive HSTS header
 exgravitus.com: could not connect to host
 exitus.jp: max-age too low: 0
 exno.co: could not connect to host
 exon.io: did not receive HSTS header
 exousiakaidunamis.xyz: did not receive HSTS header
-expatads.com: did not receive HSTS header
 expertmile.com: did not receive HSTS header
 expoundite.net: did not receive HSTS header
 expressfinance.co.za: did not receive HSTS header
 extreemhost.nl: did not receive HSTS header
 extremenetworking.net: did not receive HSTS header
 exy.pw: could not connect to host
 eyedarts.com: did not receive HSTS header
 eyeglassuniverse.com: did not receive HSTS header
@@ -1512,17 +1514,16 @@ fayolle.info: [Exception... "Component r
 fbox.li: could not connect to host
 fdj.im: could not connect to host
 feard.space: could not connect to host
 feastr.de: did not receive HSTS header
 fedux.com.ar: could not connect to host
 feezmodo.com: max-age too low: 0
 felisslovakia.sk: [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 118"  data: no]
 feliwyn.fr: did not receive HSTS header
-felixklein.at: could not connect to host
 feminists.co: could not connect to host
 fenteo.com: could not connect to host
 feragon.net: did not receive HSTS header
 fernseher-kauf.de: could not connect to host
 ferrolatino.com: could not connect to host
 festember.com: did not receive HSTS header
 festrip.com: could not connect to host
 fexmen.com: could not connect to host
@@ -1546,17 +1547,17 @@ firebaseio-demo.com: could not connect t
 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
 fireorbit.de: did not receive HSTS header
 firstdogonthemoon.com.au: did not receive HSTS header
 firstforex.co.uk: did not receive HSTS header
 fish2.me: did not receive HSTS header
 fit4medien.de: did not receive HSTS header
-fitbylo.com: could not connect to host
+fitbylo.com: did not receive HSTS header
 fitiapp.com: could not connect to host
 fitnesswerk.de: could not connect to host
 five.vn: did not receive HSTS header
 fivestarsitters.com: did not receive HSTS header
 fixatom.com: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
 fj.search.yahoo.com: did not receive HSTS header
 fjruiz.es: did not receive HSTS header
@@ -1590,17 +1591,17 @@ foodievenues.com: could not connect to h
 footballmapped.com: could not connect to host
 foraje-profesionale.ro: did not receive HSTS header
 forbook.net: could not connect to host
 fordbydesign.com: could not connect to host
 foreignexchangeresource.com: did not receive HSTS header
 foreveralone.io: could not connect to host
 forex-dan.com: did not receive HSTS header
 forextimes.ru: [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 118"  data: no]
-formazioneopen.it: did not receive HSTS header
+formazioneopen.it: could not connect to host
 formbetter.com: could not connect to host
 formula.cf: could not connect to host
 fotiu.com: could not connect to host
 fotm.net: did not receive HSTS header
 fotocerita.net: could not connect to host
 fotografosexpertos.com: did not receive HSTS header
 fotopasja.info: could not connect to host
 fourchin.net: could not connect to host
@@ -1608,35 +1609,36 @@ foxdev.io: did not receive HSTS header
 foxelbox.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 118"  data: no]
 foxley-farm.co.uk: did not receive HSTS header
 foxley-seeds.co.uk: did not receive HSTS header
 foxleyseeds.co.uk: could not connect to host
 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
+frank.fyi: could not connect to host
 frankwei.xyz: 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: did not receive HSTS header
 fredvoyage.fr: did not receive HSTS header
 freeflow.tv: could not connect to host
-freemanning.de: did not receive HSTS header
 freematthale.net: did not receive HSTS header
 freemedforms.com: did not receive HSTS header
 freesoftwaredriver.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
 frenzel.dk: could not connect to host
 freqlabs.com: could not connect to host
 freshfind.xyz: could not connect to host
 freshlymind.com: did not receive HSTS header
+fretscha.com: could not connect to host
 frforms.com: did not receive HSTS header
 friendica.ch: could not connect to host
 friendlyfiregameshow.com: could not connect to host
 frizo.com: did not receive HSTS header
 froggstack.de: could not connect to host
 frontisme.nl: could not connect to host
 frontmin.com: did not receive HSTS header
 frost-ci.xyz: could not connect to host
@@ -1651,16 +1653,17 @@ fukushima-web.com: did not receive HSTS 
 fundacionhijosdelsol.org: could not connect to host
 funi4u.com: could not connect to host
 funkyweddingideas.com.au: could not connect to host
 funrun.com: did not receive HSTS header
 furiffic.com: did not receive HSTS header
 furnation.com: could not connect to host
 furry.be: max-age too low: 86400
 fusedrops.com: could not connect to host
+fushee.com: could not connect to host
 fusionmate.com: could not connect to host
 futbol11.com: did not receive HSTS header
 futurenda.com: could not connect to host
 futuretechnologi.es: could not connect to host
 futureyouhealth.com: did not receive HSTS header
 fuxwerk.de: could not connect to host
 fx-rk.com: did not receive HSTS header
 fyrkat.no: could not connect to host
@@ -1670,16 +1673,17 @@ fzslm.me: did not receive HSTS header
 g01.in.ua: could not connect to host
 g2a.co: did not receive HSTS header
 g2g.com: did not receive HSTS header
 g4w.co: did not receive HSTS header (error ignored - included regardless)
 g5led.nl: could not connect to host
 gabber.scot: could not connect to host
 gaelleetarnaud.com: did not receive HSTS header
 gafachi.com: could not connect to host
+gaiserik.com: could not connect to host
 gakkainavi.jp: did not receive HSTS header
 gakkainavi4.com: could not connect to host
 gakkainavi4.net: did not receive HSTS header
 galardi.org: could not connect to host
 galenskap.eu: could not connect to host
 gallery44.org: did not receive HSTS header
 galoisvpn.xyz: could not connect to host
 game-files.net: did not receive HSTS header
@@ -1835,17 +1839,16 @@ grcnode.co.uk: could not connect to host
 greatnet.de: did not receive HSTS header
 greenhillantiques.co.uk: did not receive HSTS header
 greenvines.com.tw: did not receive HSTS header
 greg.red: could not connect to host
 gregorytlee.me: did not receive HSTS header
 gremots.com: could not connect to host
 greplin.com: could not connect to host
 gresb.com: did not receive HSTS header
-greyline.se: could not connect to host
 gribani.com: could not connect to host
 grigalanzsoftware.com: could not connect to host
 gripopgriep.net: 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
 gryffin.ga: could not connect to host
 gryffin.ml: could not connect to host
@@ -1854,23 +1857,26 @@ gsm-map.com: could not connect to host
 gsnort.com: did not receive HSTS header
 gtamodshop.org: could not connect to host
 gtanda.tk: could not connect to host
 gtldna.com: could not connect to host
 gtlfsonlinepay.com: did not receive HSTS header
 gtraxapp.com: could not connect to host
 gts-schulsoftware.de: did not receive HSTS header
 guava.studio: did not receive HSTS header
+guge.gq: could not connect to host
 gugga.dk: did not receive HSTS header
 guilde-vindicta.fr: did not receive HSTS header
 gulenet.com: could not connect to host
 gunnarhafdal.com: did not receive HSTS header
 gurom.lv: could not connect to host
 gurusupe.com: could not connect to host
 guso.gq: could not connect to host
+guso.ml: could not connect to host
+guso.tech: could not connect to host
 gussi.is: did not receive HSTS header
 gvt2.com: could not connect to host (error ignored - included regardless)
 gvt3.com: could not connect to host (error ignored - included regardless)
 gw2reload.eu: could not connect to host
 gwijaya.com: could not connect to host
 gwtest.us: could not connect to host
 gxlrx.net: could not connect to host
 gyboche.com: could not connect to host
@@ -1880,17 +1886,16 @@ gypthecat.com: max-age too low: 604800
 gyz.io: could not connect to host
 h2check.org: could not connect to host
 haarkliniek.com: did not receive HSTS header
 habanaavenue.com: did not receive HSTS header
 habbo.life: did not receive HSTS header
 hablemosdetecnologia.com.ve: could not connect to host
 hack.cz: could not connect to host
 hack.li: could not connect to host
-hackerchai.com: could not connect to host
 hackerforever.com: did not receive HSTS header
 hackerone-ext-adroll.com: could not connect to host
 hackest.org: did not receive HSTS header
 hackit.im: could not connect to host
 hadzic.co: could not connect to host
 haeckdesign.com: did not receive HSTS header
 hahayidu.org: could not connect to host
 haitschi.com: could not connect to host
@@ -2003,39 +2008,42 @@ hortifarm.ro: did not receive HSTS heade
 horvathtom.com: could not connect to host
 hosteasy.nl: did not receive HSTS header
 hosted-service.com: did not receive HSTS header
 hosted4u.de: 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
+hotartup.com: could not connect to host
 hotchillibox.com: max-age too low: 0
 hotchoc.io: did not receive HSTS header
 houkago-step.com: did not receive HSTS header
 housemaadiah.org: did not receive HSTS header
 housingstudents.org.uk: could not connect to host
 howrandom.org: could not connect to host
 howtocuremysciatica.com: could not connect to host
 hr-intranet.com: did not receive HSTS header
 hsandbox.tech: max-age too low: 2592000
 hsir.me: could not connect to host
+hsts.com.br: 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
 huangh.com: could not connect to host
 huarongdao.com: max-age too low: 1
 hugocollignon.fr: could not connect to host
 hugosleep.com.au: did not receive HSTS header
 humblefinances.com: could not connect to host
 humeurs.net: could not connect to host
 humpi.at: could not connect to host
 humpteedumptee.in: did not receive HSTS header
 huntshomeinspections.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 118"  data: no]
+hup.blue: could not connect to host
 hurricanelabs.com: did not receive HSTS header
 huskybutt.dog: could not connect to host
 hxying.com: could not connect to host
 hycken.com: did not receive HSTS header
 hydra.ws: could not connect to host
 hydronium.cf: could not connect to host
 hydronium.ga: could not connect to host
 hydronium.me: could not connect to host
@@ -2089,33 +2097,34 @@ ihuanmeng.com: did not receive HSTS head
 iispeed.com: did not receive HSTS header
 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: could not connect to host
+iluvscotland.co.uk: did not receive HSTS header
 imakepoems.net: could not connect to host
 imanolbarba.net: could not connect to host
 ime.moe: could not connect to host
 imim.pw: 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
 immunicity.info: could not connect to host
 immunicity.press: could not connect to host
 immunicity.today: did not receive HSTS header
 immunicity.top: could not connect to host
 immunicity.works: did not receive HSTS header
 immunicity.world: did not receive HSTS header
 imolug.org: did not receive HSTS header
 imouto.my: max-age too low: 5184000
+imouyang.com: did not receive HSTS header
 imperialwebsolutions.com: did not receive HSTS header
 imu.li: did not receive HSTS header
 imusic.dk: did not receive HSTS header
 inb4.us: could not connect to host
 inbox.li: did not receive HSTS header
 incendiary-arts.com: could not connect to host
 inchomatic.com: did not receive HSTS header
 indicateurs-flash.fr: [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 118"  data: no]
@@ -2133,56 +2142,58 @@ injigo.com: did not receive HSTS header
 inkable.com.au: did not receive HSTS header
 inked-guy.de: did not receive HSTS header
 inkedguy.de: could not connect to host
 inkstory.gr: did not receive HSTS header
 inksupply.com: did not receive HSTS header
 inleaked.com: could not connect to host
 inmyarea.com: max-age too low: 0
 innophate-security.nl: could not connect to host
-inquisitive.io: did not receive HSTS header
 ins1gn1a.com: did not receive HSTS header
 insane-bullets.com: could not connect to host
 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
+installgentoo.net: could not connect to host
 instantdev.io: could not connect to host
 institutoflordelavida.com: could not connect to host
 intel.li: 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 118"  data: no]
 interlun.com: could not connect to host
+internect.co.za: did not receive HSTS header
 internetcasinos.de: could not connect to host
 internetcensus.org: could not connect to host
 interserved.com: did not receive HSTS header
 intex.es: max-age too low: 0
 intim-uslugi-kazan.net: could not connect to host
 intimtoy.com.ua: could not connect to host
 intocities.de: could not connect to host
 intranetsec.fr: could not connect to host
 intrp.net: did not receive HSTS header
 inverselink-user-content.com: could not connect to host
 inverselink.com: could not connect to host
 invictusmc.uk: did not receive HSTS header
 invite24.pro: could not connect to host
 inwesttitle.com: max-age too low: 0
+ioiart.eu: could not connect to host
 ionx.co.uk: did not receive HSTS header
 iop.intuit.com: max-age too low: 86400
 iora.fr: could not connect to host
 iosmods.com: did not receive HSTS header
 iostips.ru: could not connect to host
 iotsms.io: could not connect to host
 ip6.im: did not receive HSTS header
 ipmimagazine.com: did not receive HSTS header
 iprody.com: could not connect to host
 iptel.by: max-age too low: 0
 iptel.ro: could not connect to host
 ipv6cloud.club: could not connect to host
-iqcn.co: did not receive HSTS header
+iqcn.co: could not connect to host
 iqualtech.com: did not receive HSTS header
 iranianlawschool.com: could not connect to host
 iraqidinar.org: did not receive HSTS header
 irazimina.ru: did not receive HSTS header
 irccloud.com: did not receive HSTS header
 irelandesign.com: did not receive HSTS header
 irmtrudjurke.de: did not receive HSTS header
 is-a-furry.org: did not receive HSTS header
@@ -2196,33 +2207,32 @@ isogram.nl: could not connect to host
 israkurort.com: did not receive HSTS header
 isslshop.com: could not connect to host
 istanbultravelguide.info: could not connect to host
 istaspirtslietas.lv: did not receive HSTS header
 it-go.net: did not receive HSTS header
 itechgeek.com: max-age too low: 0
 ithakama.com: did not receive HSTS header
 ithakama.cz: did not receive HSTS header
-ithenrik.com: could not connect to host
 itos.asia: did not receive HSTS header
 itos.pl: did not receive HSTS header
 itriskltd.com: could not connect to host
 itsadog.co.uk: did not receive HSTS header
 itsagadget.com: did not receive HSTS header
 itsamurai.ru: max-age too low: 2592000
 itsecurityassurance.pw: could not connect to host
 itsg-faq.de: could not connect to host
 itshost.ru: could not connect to host
 itspawned.com: could not connect to host
 ivancacic.com: did not receive HSTS header
 ivi-fertility.com: max-age too low: 0
 ivi.es: max-age too low: 0
 ivk.website: could not connect to host
 ivo.co.za: could not connect to host
-ixec2.tk: did not receive HSTS header
+ixec2.tk: could not connect to host
 izdiwho.com: could not connect to host
 izolight.ch: could not connect to host
 izoox.com: did not receive HSTS header
 izzzorgconcerten.nl: could not connect to host
 j-lsolutions.com: could not connect to host
 ja-publications.com: did not receive HSTS header
 jabbari.io: did not receive HSTS header
 jackalworks.com: could not connect to host
@@ -2236,16 +2246,17 @@ jamesandpame.la: could not connect to ho
 jamesbradach.com: did not receive HSTS header
 jamesburton.london: could not connect to host
 jamesbywater.me: could not connect to host
 jamesbywater.me.uk: could not connect to host
 jamesconroyfinn.com: did not receive HSTS header
 jamesdoell.com: could not connect to host
 jamesdoylephoto.com: did not receive HSTS header
 jamesf.xyz: could not connect to host
+jamesheald.com: did not receive HSTS header
 jamesmaurer.com: did not receive HSTS header
 jamesmorrison.me: did not receive HSTS header
 jamessan.com: did not receive HSTS header
 jamourtney.com: could not connect to host
 jan-roenspies.de: could not connect to host
 jan27.org: did not receive HSTS header
 janario.me: could not connect to host
 janbrodda.de: max-age too low: 2592000
@@ -2307,24 +2318,24 @@ jkbuster.com: could not connect to host
 jmdekker.it: could not connect to host
 joakimalgroy.com: could not connect to host
 jobmedic.com: did not receive HSTS header
 jobss.co.uk: did not receive HSTS header
 joedavison.me: could not connect to host
 johannes-sprink.de: could not connect to host
 johners.me: could not connect to host
 johnrom.com: did not receive HSTS header
+jollausers.de: could not connect to host
 jonas-keidel.de: did not receive HSTS header
 jonasgroth.se: did not receive HSTS header
 jonathan.ir: could not connect to host
 jonn.me: could not connect to host
 joostbovee.nl: did not receive HSTS header
 jordanhamilton.me: could not connect to host
 joretapo.fr: did not receive HSTS header
-jornane.no: could not connect to host
 josahrens.me: could not connect to host
 joshi.su: could not connect to host
 joshstroup.me: could not connect to host
 jottit.com: could not connect to host
 jpbike.cz: could not connect to host
 jrc9.ca: did not receive HSTS header
 jrgold.me: could not connect to host
 jrmd.io: could not connect to host
@@ -2349,17 +2360,16 @@ juwairen.cn: did not receive HSTS header
 jvoice.net: could not connect to host
 jwilsson.me: could not connect to host
 jxm.in: could not connect to host
 jznet.org: max-age too low: 86400
 k-dev.de: could not connect to host
 ka-clan.com: could not connect to host
 kabinapp.com: could not connect to host
 kabuabc.com: did not receive HSTS header
-kabus.org: could not connect to host
 kadioglumakina.com.tr: did not receive HSTS header
 kaela.design: could not connect to host
 kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kamikano.com: could not connect to host
 kaneo-gmbh.de: did not receive HSTS header
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
@@ -2454,17 +2464,16 @@ kostuumstore.nl: did not receive HSTS he
 kotonehoko.net: could not connect to host
 kotovstyle.ru: could not connect to host
 kourpe.online: could not connect to host
 kr.search.yahoo.com: did not receive HSTS header
 krayx.com: could not connect to host
 kreavis.com: did not receive HSTS header
 kredite.sale: could not connect to host
 kriegt.es: did not receive HSTS header
-kristikala.nl: could not connect to host
 krizevci.info: did not receive HSTS header
 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 118"  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
@@ -2487,17 +2496,16 @@ kwondratsch.com: could not connect to ho
 kyanite.co: could not connect to host
 kylapps.com: did not receive HSTS header
 kylinj.com: could not connect to host
 kyochon.fr: could not connect to host
 kz.search.yahoo.com: did not receive HSTS header
 kzjnet.com: could not connect to host
 l2guru.ru: could not connect to host
 labaia.info: could not connect to host
-labfox.de: could not connect to host
 labina.com.tr: did not receive HSTS header
 laboiteapc.fr: did not receive HSTS header
 labordata.io: did not receive HSTS header
 laborie.io: could not connect to host
 labrador-retrievers.com.au: did not receive HSTS header
 labs.directory: could not connect to host
 labs.moscow: did not receive HSTS header
 lachlankidson.net: did not receive HSTS header
@@ -2529,16 +2537,17 @@ lawformt.com: did not receive HSTS heade
 laxatus.com: could not connect to host
 laxiongames.es: could not connect to host
 lbrt.xyz: could not connect to host
 ldarby.me.uk: could not connect to host
 leadership9.com: could not connect to host
 leardev.de: did not receive HSTS header
 learnfrenchfluently.com: did not receive HSTS header
 learningorder.com: could not connect to host
+lebal.se: did not receive HSTS header
 lechiennoir.net: did not receive HSTS header
 ledgerscope.net: could not connect to host
 leermotorrijden.nl: max-age too low: 300
 lefebvristes.com: could not connect to host
 lefebvristes.fr: could not connect to host
 legarage.org: did not receive HSTS header
 leifdreizler.com: could not connect to host
 leinir.dk: max-age too low: 86400
@@ -2579,17 +2588,16 @@ lianye1.cc: could not connect to host
 lianye2.cc: could not connect to host
 lianye3.cc: could not connect to host
 lianye4.cc: could not connect to host
 lianye5.cc: could not connect to host
 lianye6.cc: could not connect to host
 lianyexiuchang.in: could not connect to host
 liaoshuma.com: could not connect to host
 libanco.com: could not connect to host
-libbitcoin.org: could not connect to host
 libertyrp.org: could not connect to host
 library.linode.com: did not receive HSTS header
 librechan.net: could not connect to host
 libreduca.com: could not connect to host
 libscode.com: could not connect to host
 lidl-selection.at: could not connect to host
 lidow.eu: could not connect to host
 lifeguard.aecom.com: did not receive HSTS header
@@ -2616,26 +2624,23 @@ linmi.cc: did not receive HSTS header
 linorman1997.me: could not connect to host
 lintmx.com: could not connect to host
 linuxeyecandy.com: could not connect to host
 linuxfixed.it: could not connect to host
 linuxforyou.com: could not connect to host
 linuxgeek.ro: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
 liquorsanthe.in: could not connect to host
-lisonfan.com: did not receive HSTS header
 listafirmelor.com: could not connect to host
 litespeed.io: could not connect to host
 litz.ca: could not connect to host
 litzenberger.ca: could not connect to host
 livedemo.io: could not connect to host
 livej.am: could not connect to host
 livi.co: did not receive HSTS header
-livnev.me: could not connect to host
-livnev.xyz: could not connect to host
 loadingdeck.com: did not receive HSTS header
 loadso.me: could not connect to host
 loafbox.com: could not connect to host
 localchum.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)
 loginseite.com: could not connect to host
@@ -2661,16 +2666,17 @@ 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
 ltbytes.com: could not connect to host
 lu.search.yahoo.com: did not receive HSTS header
 lucaterzini.com: could not connect to host
+ludwiggrill.de: could not connect to host
 lufthansaexperts.com: max-age too low: 2592000
 luine.xyz: did not receive HSTS header
 luis-checa.com: could not connect to host
 luisv.me: could not connect to host
 lukonet.com: did not receive HSTS header
 lumd.me: could not connect to host
 lumi.do: did not receive HSTS header
 lunarshark.com: could not connect to host
@@ -2697,17 +2703,17 @@ m2tc.fr: could not connect to host
 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
 mac-torrents.me: did not receive HSTS header
 macchaberrycream.com: could not connect to host
 macdj.tk: could not connect to host
 macgeneral.de: did not receive HSTS header
-macsandcheesedreams.com: did not receive HSTS header
+macsandcheesedreams.com: could not connect to host
 madars.org: did not receive HSTS header
 maddin.ga: could not connect to host
 madebymagnitude.com: did not receive HSTS header
 maderwin.com: could not connect to host
 mae-berlinistanbul.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
@@ -2726,34 +2732,36 @@ maljaars-media.nl: could not connect to 
 malkaso.com.ua: could not connect to host
 maltes.website: could not connect to host
 malwre.io: could not connect to host
 mamaison.io: could not connect to host
 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
-managewp.org: did not receive HSTS header
+managemynetsuite.com: did not receive HSTS header
 maniadeprazer.com.br: could not connect to host
 manifestbin.com: did not receive HSTS header
 manningbrothers.com: did not receive HSTS header
 mannsolutions.co.uk: did not receive HSTS header
 mansion-note.com: did not receive HSTS header
 maomaofuli.vip: could not connect to host
 maple5.com: did not receive HSTS header
 marchagen.nl: did not receive HSTS header
+marcoececilia.it: could not connect to host
 marcofinke.de: could not connect to host
 marcontrol.com: did not receive HSTS header
+marcosteixeira.tk: could not connect to host
 marcuskoh.com: did not receive HSTS header
 margaretrosefashions.co.uk: could not connect to host
 mariannematthew.com: could not connect to host
 marie-curie.fr: could not connect to host
 marie-elisabeth.dk: did not receive HSTS header
 marie-en-provence.com: did not receive HSTS header
+marie.club: could not connect to host
 markaconnor.com: could not connect to host
 markayapilandirma.com: could not connect to host
 market.android.com: did not receive HSTS header (error ignored - included regardless)
 markhaehnel.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 118"  data: no]
 markrego.com: could not connect to host
 marktboten.de: did not receive HSTS header
 markus-dev.com: did not receive HSTS header
 markusweimar.de: did not receive HSTS header
@@ -3027,16 +3035,17 @@ mykreuzfahrt.de: could not connect to ho
 myni.io: could not connect to host
 mypagella.com: could not connect to host
 mypagella.eu: could not connect to host
 mypagella.it: could not connect to host
 mypension.ca: could not connect to host
 myphonebox.de: could not connect to host
 mysecretrewards.com: did not receive HSTS header
 mystery-science-theater-3000.de: did not receive HSTS header
+mythslegendscollection.com: did not receive HSTS header
 mytweeps.com: could not connect to host
 myvirtualserver.com: max-age too low: 2592000
 myzone.com: did not receive HSTS header
 n-soft.info: could not connect to host
 n0psled.nl: could not connect to host
 n2x.in: could not connect to host
 n4l.pw: could not connect to host
 nabru.co.uk: did not receive HSTS header
@@ -3077,41 +3086,42 @@ ncc60205.info: could not connect to host
 ncpc.gov: could not connect to host
 nct.org.uk: did not receive HSTS header
 nctx.co.uk: did not receive HSTS header
 near.st: did not receive HSTS header
 nedzad.me: could not connect to host
 neels.ch: [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 118"  data: no]
 neftaly.com: did not receive HSTS header
 neilgreen.net: did not receive HSTS header
-neillans.com: did not receive HSTS header
 neko-life.com: did not receive HSTS header
 neko-system.com: did not receive HSTS header
 nemno.de: could not connect to host
 nemovement.org: could not connect to host
 neofelhz.space: did not receive HSTS header
 neonisi.com: could not connect to host
 nepustil.net: did not receive HSTS header
 nestedquotes.ca: could not connect to host
 netba.net: could not connect to host
 netbox.cc: could not connect to host
 netherwind.eu: could not connect to host
 netloanusa.com: max-age too low: 0
 netmagik.com: did not receive HSTS header
 nettefoundation.com: could not connect to host
+networth.at: could not connect to host
 networx-online.de: could not connect to host
 netzbit.de: could not connect to host
 netzpolitik.org: did not receive HSTS header
 netztest.at: did not receive HSTS header
 neueonlinecasino2016.com: could not connect to host
 neuralgic.net: could not connect to host
 neuronfactor.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 118"  data: no]
 neutralox.com: did not receive HSTS header
 never-afk.de: did not receive HSTS header
 neveta.com: could not connect to host
+new.travel.pl: did not receive HSTS header
 newcitygas.ca: max-age too low: 0
 newgenerationplus.org: could not connect to host
 newhdmovies.io: did not receive HSTS header
 newkaliningrad.ru: did not receive HSTS header
 newlooknow.com: did not receive HSTS header
 newportpropertygroup.com: could not connect to host
 newtonwarp.com: could not connect to host
 nextcloud.org: could not connect to host
@@ -3127,26 +3137,26 @@ ngt-service.ru: did not receive HSTS hea
 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
 nicoborghuis.nl: could not connect to host
 nicolasbettag.me: did not receive HSTS header
 niconiconi.xyz: could not connect to host
 niconode.com: could not connect to host
+niduxcomercial.com: could not connect to host
 nien.chat: could not connect to host
 nightwinds.tk: 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 118"  data: no]
 nikcub.com: could not connect to host
-niklas.pw: could not connect to host
 niklaslindblad.se: did not receive HSTS header
 nikomo.fi: could not connect to host
 ninchisho-online.com: did not receive HSTS header
-ninhs.org: could not connect to host
+ninhs.org: did not receive HSTS header
 nippler.org: did not receive HSTS header
 nippombashi.net: could not connect to host
 nipponcareers.com: did not receive HSTS header
 nixien.fr: could not connect to host
 nixmag.net: could not connect to host
 nkinka.de: did not receive HSTS header
 nll.fi: could not connect to host
 nmctest.net: could not connect to host
@@ -3173,17 +3183,16 @@ nopol.de: could not connect to host
 norandom.com: could not connect to host
 norb.at: could not connect to host
 nosecretshop.com: did not receive HSTS header
 notadd.com: did not receive HSTS header
 notenoughtime.de: 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
-novascan.net: could not connect to host
 novatrucking.de: could not connect to host
 novawave.ca: did not receive HSTS header
 nowak.ninja: did not receive HSTS header
 noworrywp.com: could not connect to host
 nozoe.jp: did not receive HSTS header
 np.search.yahoo.com: did not receive HSTS header
 npol.de: could not connect to host
 nqesh.com: could not connect to host
@@ -3262,16 +3271,17 @@ oneclickloan.com: could not connect to h
 onefour.co: could not connect to host
 onehourloan.com: could not connect to host
 onehourloan.sg: [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 118"  data: no]
 oneminute.io: did not receive HSTS header
 oneminutefilm.tv: could not connect to host
 onepluscamps.com: could not connect to host
 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
 online-casino.eu: did not receive HSTS header
 online-wetten.de: did not receive HSTS header
 onlinecompliance.org: did not receive HSTS header
 onlinedeposit.us: could not connect to host
 onlinekasino.de: did not receive HSTS header
 onlinepollsph.com: could not connect to host
 onlinespielothek.com: did not receive HSTS header
@@ -3294,17 +3304,17 @@ opendesk.cc: did not receive HSTS header
 openmind-shop.de: did not receive HSTS header
 openpriv.pw: did not receive HSTS header
 openprovider.nl: did not receive HSTS header
 openquery.com.au: did not receive HSTS header
 openshift.redhat.com: did not receive HSTS header
 opensrd.com: could not connect to host
 openxmpp.com: could not connect to host
 opim.ca: did not receive HSTS header
-opperwall.net: could not connect to host
+opperwall.net: did not receive HSTS header
 opsafewinter.net: could not connect to host
 opsbears.com: did not receive HSTS header
 optenhoefel.de: could not connect to host
 optimista.soy: could not connect to host
 optometriepunt.nl: did not receive HSTS header
 optumrxhealthstore.com: did not receive HSTS header
 opus-codium.fr: could not connect to host
 oracaodocredo.com.br: could not connect to host
@@ -3316,16 +3326,17 @@ orf-digitalsatkarte.at: could not connec
 organiplan.com: could not connect to host
 originpc.com: did not receive HSTS header
 orioncustompcs.com: could not connect to host
 orionfcu.com: did not receive HSTS header
 orleika.ml: could not connect to host
 orthodoxy.lt: did not receive HSTS header
 orwell1984.today: could not connect to host
 osaiyuwu.com: could not connect to host
+oskuro.net: could not connect to host
 oslfoundation.org: could not connect to host
 oslinux.net: did not receive HSTS header
 osp.cx: could not connect to host
 ossan-kobe-gourmet.com: did not receive HSTS header
 ossbinaries.com: could not connect to host
 osteammate.com: did not receive HSTS header
 osticketawesome.com: did not receive HSTS header
 otakuworld.de: could not connect to host
@@ -3345,16 +3356,17 @@ ovenapp.io: did not receive HSTS header
 overclockers.ge: could not connect to host
 override.io: did not receive HSTS header
 oversight.io: could not connect to host
 ovvy.net: did not receive HSTS header
 owncloud.help: could not connect to host
 ownmovies.fr: could not connect to host
 oxygenabsorbers.com: did not receive HSTS header
 oxynux.fr: could not connect to host
+oxynux.xyz: could not connect to host
 p.linode.com: could not connect to host
 p8r.de: could not connect to host
 pa.search.yahoo.com: did not receive HSTS header
 pacelink.de: could not connect to host
 packlane.com: did not receive HSTS header
 pader-deko.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 118"  data: no]
 paestbin.com: could not connect to host
 pagerate.io: did not receive HSTS header
@@ -3363,17 +3375,17 @@ pahae.de: did not receive HSTS header
 paigeglass.com: did not receive HSTS header
 paintingat.com: could not connect to host
 paisaone.com: did not receive HSTS header
 paku.me: could not connect to host
 pamplona.tv: could not connect to host
 pamsoft.pl: max-age too low: 0
 panaceallc.net: could not connect to host
 panamaequity.com: did not receive HSTS header
-panamateakforestry.com: could not connect to host
+panamateakforestry.com: did not receive HSTS header
 panoranordic.net: could not connect to host
 pansu.space: could not connect to host
 pants-off.xyz: could not connect to host
 pantsu.cat: did not receive HSTS header
 papalytics.com: could not connect to host
 papeda.net: could not connect to host
 papercard.co.uk: did not receive HSTS header
 paperturn.com: did not receive HSTS header
@@ -3449,16 +3461,17 @@ 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
 petrovsky.pro: could not connect to host
 petsittersservices.com: could not connect to host
 pettsy.com: could not connect to host
 pewboards.com: could not connect to host
 pexieapp.com: did not receive HSTS header
+peytonfarrar.com: did not receive HSTS header
 pflege.de: did not receive HSTS header
 pgpm.io: could not connect to host
 pharmgkb.org: could not connect to host
 phil.tw: could not connect to host
 phillprice.com: could not connect to host
 phoebe.co.nz: did not receive HSTS header
 phonenumberinfo.co.uk: could not connect to host
 phongmay24h.com: could not connect to host
@@ -3472,17 +3485,16 @@ physicalist.com: could not connect to ho
 pickr.co: could not connect to host
 picotronic.biz: could not connect to host
 picscare.co.uk: did not receive HSTS header
 pieperhome.de: could not connect to host
 piggott.me.uk: did not receive HSTS header
 pilgermaske.org: did not receive HSTS header
 piligrimname.com: could not connect to host
 pillowandpepper.com: did not receive HSTS header
-pimpmymac.ru: could not connect to host
 pincodeit.com: could not connect to host
 pippen.io: could not connect to host
 piratedb.com: could not connect to host
 piratedot.com: could not connect to host
 piratelist.online: did not receive HSTS header
 piratenlogin.de: could not connect to host
 pirateproxy.sx: could not connect to host
 pirateproxy.vip: could not connect to host
@@ -3501,29 +3513,31 @@ placefade.com: could not connect to host
 placollection.org: could not connect to host
 plaettliaktion.ch: did not receive HSTS header
 planpharmacy.com: could not connect to host
 platform.lookout.com: could not connect to host
 play.google.com: did not receive HSTS header (error ignored - included regardless)
 playflick.com: did not receive HSTS header
 playkh.com: did not receive HSTS header
 playmaker.io: could not connect to host
+playmyplay.com: did not receive HSTS header
 playnation.io: could not connect to host
 pleier-it.de: did not receive HSTS header
 pleier.it: could not connect to host
 plhdb.org: did not receive HSTS header
 plirt.ru: did not receive HSTS header
 plixer.com: did not receive HSTS header
 plogable.co: could not connect to host
 plombirator.kz: did not receive HSTS header
 plothost.com: did not receive HSTS header
 ploup.net: could not connect to host
 pluff.nl: could not connect to host
 plur.com.au: did not receive HSTS header
 pmnts.io: could not connect to host
+pnona.cz: could not connect to host
 po.gl: did not receive HSTS header
 pocketsix.com: could not connect to host
 pocloud.homelinux.net: could not connect to host
 poiema.com.sg: did not receive HSTS header
 pointpro.de: did not receive HSTS header
 pol.in.th: could not connect to host
 pole.net.nz: could not connect to host
 poleartschool.com: could not connect to host
@@ -3532,26 +3546,27 @@ policeiwitness.sg: could not connect to 
 polimat.org: could not connect to host
 politically-incorrect.xyz: could not connect to host
 politologos.org: did not receive HSTS header
 polycoise.com: could not connect to host
 polypho.nyc: could not connect to host
 pompompoes.com: could not connect to host
 pontualcomp.com: max-age too low: 2592000
 poolsandstuff.com: did not receive HSTS header
-poolvilla-margarita.net: did not receive HSTS header
+poolvilla-margarita.net: could not connect to host
 poon.tech: could not connect to host
 porno-gif.ru: did not receive HSTS header
 portalplatform.net: did not receive HSTS header
 poshpak.com: max-age too low: 86400
 postcodewise.co.uk: did not receive HSTS header
-posterspy.com: did not receive HSTS header
 postscheduler.org: could not connect to host
 posylka.de: did not receive HSTS header
 potatoheads.net: could not connect to host
+potbar.com: could not connect to host
+potlytics.com: could not connect to host
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power99press.com: did not receive HSTS header
 powerplannerapp.com: did not receive HSTS header
 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
@@ -3667,53 +3682,54 @@ rankthespot.com: could not connect to ho
 rannseier.org: 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
 rastreador.com.es: did not receive HSTS header
 ratajczak.fr: could not connect to host
 rate-esport.de: could not connect to host
 rationalism.com: could not connect to host
-rauchenwald.net: did not receive HSTS header
+rauchenwald.net: could not connect to host
 raulfraile.net: could not connect to host
 raven.lipetsk.ru: could not connect to host
 rawet.se: could not connect to host
+rawoil.com: could not connect to host
 rawstorieslondon.com: could not connect to host
 raydan.space: could not connect to host
 raydobe.me: could not connect to host
 rbhighinc.org: could not connect to host
 rc-rp.com: did not receive HSTS header
 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: did not receive HSTS header
 reachr.com: 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
 reaper.rip: could not connect to host
 reardenporn.com: could not connect to host
-recolic.net: did not receive HSTS header
 recommended.reviews: could not connect to host
 redable.hosting: could not connect to host
 redar.xyz: could not connect to host
 reddiseals.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 118"  data: no]
 reddit.com: did not receive HSTS header
 rede.ca: did not receive HSTS header
 redicabo.de: could not connect to host
 redirectman.com: did not receive HSTS header
 redlatam.org: did not receive HSTS header
 redmbk.com: did not receive HSTS header
 redports.org: could not connect to host
 regaloaks.com: did not receive HSTS header
 regalpalms.com: did not receive HSTS header
 regenbogenwald.de: did not receive HSTS header
 regenerescence.com: did not receive HSTS header
 reggae-cdmx.com: did not receive HSTS header
+rei.ki: could not connect to host
 reic.me: could not connect to host
 reisyukaku.org: did not receive HSTS header
 reithguard-it.de: did not receive HSTS header
 rejo.in: could not connect to host
 rejuvemedspa.com: did not receive HSTS header
 relatethesport.com: could not connect to host
 reliable-mail.de: did not receive HSTS header
 relisten.nl: did not receive HSTS header
@@ -3839,16 +3855,17 @@ rw.search.yahoo.com: did not receive HST
 rx-contact.com: did not receive HSTS header
 rxprep.com: did not receive HSTS header
 rxv.cc: could not connect to host
 ryanteck.uk: did not receive HSTS header
 s.how: did not receive HSTS header
 safematix.com: could not connect to host
 safemovescheme.co.uk: did not receive HSTS header
 saferedirect.link: could not connect to host
+safetyrisk.net: did not receive HSTS header
 safewings-nh.nl: did not receive HSTS header
 sageth.com: max-age too low: 0
 sah3.net: could not connect to host
 sairai.bid: did not receive HSTS header
 sakaki.anime.my: max-age too low: 5184000
 sakaserver.com: did not receive HSTS header
 sakurabuff.com: did not receive HSTS header
 salesmachine.io: did not receive HSTS header
@@ -3941,17 +3958,16 @@ security.google.com: did not receive HST
 securitybsides.pl: did not receive HSTS header
 securityglance.com: could not connect to host
 securityheaders.com: could not connect to host
 securityinet.biz: did not receive HSTS header
 securityinet.net: did not receive HSTS header
 securityinet.org.il: did not receive HSTS header
 securiviera.ch: did not receive HSTS header
 sedrubal.de: could not connect to host
-sedziapilkarski.pl: could not connect to host
 seedboxers.net: did not receive HSTS header
 seele.ca: could not connect to host
 segulink.com: could not connect to host
 sehenderson.com: did not receive HSTS header
 seiko-dojo.com: could not connect to host
 selecadm.name: could not connect to host
 selectruckscalltrackingreports.com: could not connect to host
 selent.me: could not connect to host
@@ -4013,17 +4029,16 @@ shinju.moe: could not connect to host
 shinonome-lab.eu.org: could not connect to host
 shiona.xyz: did not receive HSTS header
 shirosaki.org: could not connect to host
 shocksrv.com: did not receive HSTS header
 shooshosha.com: did not receive HSTS header
 shopontarget.com: did not receive HSTS header
 shoprose.ru: could not connect to host
 shops.neonisi.com: could not connect to host
-shortpath.com: could not connect to host
 shortr.li: could not connect to host
 showkeeper.tv: did not receive HSTS header
 shu-kin.net: could not connect to host
 shukatsu-note.com: could not connect to host
 shv25.se: could not connect to host
 shwongacc.com: could not connect to host
 shyrydan.es: could not connect to host
 si.to: could not connect to host
@@ -4049,25 +4064,23 @@ simod.org: could not connect to host
 simon.butcher.name: max-age too low: 2629743
 simongong.net: did not receive HSTS header
 simonhirscher.de: could not connect to host
 simpan.id: could not connect to host
 simpleai.net: max-age too low: 600
 simplefraud.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 118"  data: no]
 simplelearner.com: could not connect to host
 simplepractice.com: did not receive HSTS header
-simplixos.org: could not connect to host
-simply-premium.com: max-age too low: 0
+simply-premium.com: did not receive HSTS header
 sin30.net: could not connect to host
 sincron.org: could not connect to host
 sinful.pw: could not connect to host
 sinfulforums.net: could not connect to host
 singul4rity.com: could not connect to host
 sinosky.org: could not connect to host
-siraweb.org: did not receive HSTS header
 siriad.com: could not connect to host
 sirius-lee.net: could not connect to host
 sitennisclub.com: did not receive HSTS header
 sites.google.com: did not receive HSTS header (error ignored - included regardless)
 sitesten.com: did not receive HSTS header
 sixtwentyten.com: did not receive HSTS header
 skhosting.eu: did not receive HSTS header
 ski-insurance.com.au: could not connect to host
@@ -4082,25 +4095,26 @@ skoda-im-dialog.de: could not connect to
 skotty.io: did not receive HSTS header
 skullhouse.nyc: did not receive HSTS header
 skyflix.me: could not connect to host
 skyoy.com: did not receive HSTS header
 slash-dev.de: did not receive HSTS header
 slashand.co: did not receive HSTS header
 slashem.me: did not receive HSTS header
 slattery.co: could not connect to host
+slauber.de: did not receive HSTS header
 sleep10.com: could not connect to host
 slicketl.com: did not receive HSTS header
 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
+slowfood.es: could not connect to host
 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 118"  data: no]
 slycurity.de: could not connect to host
-smallchat.nl: could not connect to host
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
 smartcoin.com.br: could not connect to host
 smartlend.se: [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 118"  data: no]
 smartofficesandsmarthomes.com: did not receive HSTS header
 smartrak.co.nz: did not receive HSTS header
 smatch.com: did not receive HSTS header
 smdev.fr: could not connect to host
@@ -4114,16 +4128,17 @@ smusg.com: did not receive HSTS header
 snailing.org: could not connect to host
 snakehosting.dk: did not receive HSTS header
 snapappointments.com: did not receive HSTS header
 snapappts.com: could not connect to host
 snapworks.net: did not receive HSTS header
 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
 snip.host: could not connect to host
 snoozedds.com: max-age too low: 600
 snoqualmiefiber.org: did not receive HSTS header
 sobabox.ru: could not connect to host
 sobie.ch: could not connect to host
 sobinski.pl: did not receive HSTS header
 soboleva-pr.com.ua: could not connect to host
@@ -4146,17 +4161,16 @@ solit.systems: did not receive HSTS head
 soll-i.ch: did not receive HSTS header
 solsystems.ru: could not connect to host
 someshit.xyz: could not connect to host
 somethingnew.xyz: could not connect to host
 sonic.network: did not receive HSTS header
 sonicrainboom.rocks: could not connect to host
 soobi.org: did not receive HSTS header
 soondy.com: did not receive HSTS header
-sotiran.com: could not connect to host
 sotor.de: did not receive HSTS header
 soulema.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 118"  data: no]
 soulfulglamour.uk: could not connect to host
 sourcelair.com: did not receive HSTS header
 southgale.condos: could not connect to host
 southside-crew.club: could not connect to host
 southworcestershiregpservices.co.uk: could not connect to host
 souyar.de: could not connect to host
@@ -4207,29 +4221,31 @@ srevilak.net: did not receive HSTS heade
 srna.sk: could not connect to host
 srrr.ca: could not connect to host
 ss.wtf: could not connect to host
 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
 sss3s.com: could not connect to host
+sstewartgallus.com: could not connect to host
 ssworld.ga: could not connect to host
 stabletoken.com: could not connect to host
 stadjerspasonline.nl: could not connect to host
 stahl.xyz: could not connect to host
 stalschermer.nl: could not connect to host
 standardssuck.org: did not receive HSTS header
 standingmist.com: did not receive HSTS header
 stargatepartners.com: did not receive HSTS header
 starmusic.ga: did not receive HSTS header
 starsam80.net: could not connect to host
 starttraffic.com: did not receive HSTS header
 startuponcloud.com: max-age too low: 2678400
 startuppeople.co.uk: did not receive HSTS header
+stash.ai: did not receive HSTS header
 state-sponsored-actors.net: could not connect to host
 statementinsertsforless.com: did not receive HSTS header
 stateofexception.io: could not connect to host
 static.or.at: did not receive HSTS header
 staticanime.net: could not connect to host
 stationaryjourney.com: did not receive HSTS header
 stationnementdenuit.ca: did not receive HSTS header
 statuschecks.net: could not connect to host
@@ -4253,16 +4269,17 @@ stirlingpoon.net: did not receive HSTS h
 stirlingpoon.xyz: could not connect to host
 stkbn.com: did not receive HSTS header
 stmbgr.com: could not connect to host
 stn.me.uk: did not receive HSTS header
 stocktrade.de: could not connect to host
 stoffe-monster.de: did not receive HSTS header
 stole-my.bike: could not connect to host
 stole-my.tv: could not connect to host
+stomt.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 118"  data: no]
 stopwoodfin.org: could not connect to host
 storecove.com: did not receive HSTS header
 storefrontify.com: did not receive HSTS header
 stormhub.org: could not connect to host
 stpatricksguild.com: did not receive HSTS header
 stqry.com: did not receive HSTS header
 str0.at: did not receive HSTS header
 strasweb.fr: did not receive HSTS header
@@ -4283,22 +4300,22 @@ studentresearcher.org: did not receive H
 studentskydenik.cz: could not connect to host
 studenttravel.cz: did not receive HSTS header
 studinf.xyz: did not receive HSTS header
 studiozelden.com: did not receive HSTS header
 studybay.com: did not receive HSTS header
 studydrive.net: did not receive HSTS header
 studyhub.cf: did not receive HSTS header
 stugb.de: did not receive HSTS header
-stuntmen.xyz: could not connect to host
 stw-group.at: could not connect to host
 stylenda.com: could not connect to host
 styles.pm: could not connect to host
 subbing.work: could not connect to host
 subdimension.org: could not connect to host
+subeesu.com: could not connect to host
 subrosa.io: could not connect to host
 subsys.no: did not receive HSTS header
 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
@@ -4340,16 +4357,17 @@ syncappate.com: could not connect to hos
 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
 syriatalk.biz: could not connect to host
 syriatalk.org: could not connect to host
 syrocon.ch: could not connect to host
+sysadmin.pm: could not connect to host
 sysadmin.xyz: [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 118"  data: no]
 syso.name: could not connect to host
 szaszm.tk: max-age too low: 0
 t-ken.xyz: could not connect to host
 t-tz.com: could not connect to host
 ta-65.com: could not connect to host
 ta65.com: could not connect to host
 taabe.xyz: did not receive HSTS header
@@ -4443,26 +4461,28 @@ thai.land: could not connect to host
 thaihostcool.com: max-age too low: 0
 thailandpropertylistings.com: did not receive HSTS header
 the-construct.com: 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
 theberkshirescompany.com: did not receive HSTS header
 thebigfail.net: could not connect to host
+thebigwave.de: could not connect to host
 thebrotherswarde.com: could not connect to host
 thecapitalbank.com: did not receive HSTS header
 thecharlestonwaldorf.com: did not receive HSTS header
 theclementinebutchers.com: could not connect to host
 theclubjersey.com: did not receive HSTS header
 thecoffeehouse.xyz: could not connect to host
 thecrochetcottage.net: could not connect to host
 thediaryofadam.com: did not receive HSTS header
 theendofzion.com: did not receive HSTS header
 theescapistswiki.com: could not connect to host
+theeyeopener.com: did not receive HSTS header
 theflowerbasketonline.com: could not connect to host
 thefootballanalyst.com: could not connect to host
 thefrozenfire.com: did not receive HSTS header
 thefutureharrills.com: could not connect to host
 thegcccoin.com: did not receive HSTS header
 thego2swatking.com: could not connect to host
 thehiddenbay.eu: could not connect to host
 thehiddenbay.me: could not connect to host
@@ -4506,32 +4526,34 @@ thriveapproach.co.uk: did not receive HS
 thumbtack.com: did not receive HSTS header
 thusoy.com: did not receive HSTS header
 tickettoaster.de: max-age too low: 0
 tickopa.co.uk: could not connect to host
 tickreport.com: did not receive HSTS header
 ticktock.today: did not receive HSTS header
 tictactux.de: could not connect to host
 tidmore.us: could not connect to host
+tie-online.org: did not receive HSTS header
 tiensnet.com: did not receive HSTS header
 tightlineproductions.com: did not receive HSTS header
 tikutiku.pl: could not connect to host
 tildebot.com: could not connect to host
 tilkah.com.au: could not connect to host
 timbeilby.com: could not connect to host
-timbuktutimber.com: could not connect to host
+timbuktutimber.com: did not receive HSTS header
 timcamara.com: did not receive HSTS header
 time-river.xyz: could not connect to host
 timestamp.io: did not receive HSTS header
 timnash.co.uk: did not receive HSTS header
 timotrans.de: did not receive HSTS header
 timotrans.eu: did not receive HSTS header
 timowi.de: could not connect to host
 timowi.net: could not connect to host
 timwittenberg.com: could not connect to host
+timysewyn.be: could not connect to host
 tink.network: could not connect to host
 tipbox.is: could not connect to host
 tipsyk.ru: could not connect to host
 tirex.media: did not receive HSTS header
 titanleaf.com: could not connect to host
 titouan.co: did not receive HSTS header
 tittelbach.at: did not receive HSTS header
 titties.ml: could not connect to host
@@ -4543,16 +4565,17 @@ tlo.network: could not connect to host
 tloxygen.com: did not receive HSTS header
 tls.li: could not connect to host
 tm-solutions.eu: did not receive HSTS header
 tmaward.net: could not connect to host
 tmitchell.io: could not connect to host
 tmprod.com: did not receive HSTS header
 tncnanet.com.br: could not connect to host
 tnrsca.jp: did not receive HSTS header
+toast.al: could not connect to host
 tobias-bielefeld.de: 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
 todamateria.com.br: did not receive HSTS header
 todo.is: did not receive HSTS header
 todobazar.es: could not connect to host
 togelonlinecommunity.com: did not receive HSTS header
@@ -4654,16 +4677,17 @@ tyler.rs: could not connect to host
 tyleromeara.com: could not connect to host
 tylian.net: max-age too low: 0
 tyrelius.com: did not receive HSTS header
 tyroproducts.eu: did not receive HSTS header
 tzappa.net: could not connect to host
 u-blox.com: max-age too low: 0
 ua.search.yahoo.com: did not receive HSTS header
 uadp.pw: did not receive HSTS header
+ubanquity.com: could not connect to host
 uberfunction.com: did not receive HSTS header
 ubicloud.de: could not connect to host
 ubicv.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 118"  data: no]
 ublox.com: did not receive HSTS header
 ubuntuhot.com: did not receive HSTS header
 uega.net: did not receive HSTS header
 ufgaming.com: did not receive HSTS header
 ufotable.uk: did not receive HSTS header
@@ -4699,45 +4723,44 @@ unisyssecurity.com: did not receive HSTS
 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 118"  data: no]
 unitlabs.net: could not connect to host
 university4industry.com: did not receive HSTS header
 univz.com: could not connect to host
 unknownphenomena.net: could not connect to host
 unmanaged.space: did not receive HSTS header
 unplugg3r.dk: could not connect to host
 unravel.ie: could not connect to host
-unsystem.net: could not connect to host
+unsystem.net: did not receive HSTS header
 unterschicht.tv: could not connect to host
 unwiredbrain.com: could not connect to host
 unyq.me: 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
 upldr.pw: could not connect to host
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
 ur-lauber.de: did not receive HSTS header
 urandom.eu.org: did not receive HSTS header
-urbanstylestaging.com: did not receive HSTS header
 urphp.com: could not connect to host
 us-immigration.com: did not receive HSTS header
 usaa.com: did not receive HSTS header
 usbtypeccompliant.com: could not connect to host
 uscitizenship.info: did not receive HSTS header
 uscntalk.com: could not connect to host
 uscurrency.gov: did not receive HSTS header
 used-in.jp: did not receive HSTS header
 usercare.com: did not receive HSTS header
 userify.com: did not receive HSTS header
 ustr.gov: max-age too low: 86400
 utilitarianism.net: did not receive HSTS header
 utleieplassen.no: could not connect to host
 utopiagalaxy.space: could not connect to host
-utopianhomespa.com: could not connect to host
+utopianhomespa.com: did not receive HSTS header
 utumno.ch: could not connect to host
 utvbloggen.se: [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 118"  data: no]
 uvarov.pw: did not receive HSTS header
 uy.search.yahoo.com: did not receive HSTS header
 uz.search.yahoo.com: did not receive HSTS header
 uzmandroid.net: could not connect to host
 uzmandroid.top: could not connect to host
 v2.pw: did not receive HSTS header
@@ -4770,16 +4793,17 @@ vdhco.be: did not receive HSTS header
 veblen.com: could not connect to host
 vechkasov.ru: did not receive HSTS header
 vehent.org: did not receive HSTS header
 vemokin.net: did not receive HSTS header
 venixplays-stream.ml: could not connect to host
 verifikatorindonesia.com: could not connect to host
 vermontcareergateway.org: could not connect to host
 versia.ru: did not receive HSTS header
+verspai.de: could not connect to host
 veryhax.de: could not connect to host
 vetmgmt.com: could not connect to host
 vfree.org: could not connect to host
 vglimg.com: could not connect to host
 vhost.co.id: could not connect to host
 viadeux.com: could not connect to host
 videnskabsklubben.dk: did not receive HSTS header
 videomuz.com: did not receive HSTS header
@@ -4789,17 +4813,16 @@ vidz.ga: could not connect to host
 vieaw.com: could not connect to host
 vietnamphotographytours.com: did not receive HSTS header
 viewsea.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 118"  data: no]
 vigilo.cf: could not connect to host
 vigilo.ga: could not connect to host
 vijos.org: did not receive HSTS header
 viktor-machnik.de: could not connect to host
 viktorsvantesson.net: did not receive HSTS header
-vinasec.se: could not connect to host
 vincentkooijman.at: did not receive HSTS header
 vincentkooijman.nl: did not receive HSTS header
 vincentpancol.com: could not connect to host
 vinetalk.net: could not connect to host
 vintageheartcoffee.com: did not receive HSTS header
 vio.no: did not receive HSTS header
 viperdns.com: could not connect to host
 vipi.es: could not connect to host
@@ -4856,17 +4879,17 @@ walnutgaming.co.uk: could not connect to
 wan.pp.ua: could not connect to host
 wanban.io: could not connect to host
 wangql.net: could not connect to host
 wangzuan168.cc: did not receive HSTS header
 wapjt.cn: could not connect to host
 warandpeace.xyz: could not connect to host
 warehost.de: did not receive HSTS header
 warhistoryonline.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 118"  data: no]
-warlions.info: could not connect to host
+warlions.info: did not receive HSTS header
 warped.com: did not receive HSTS header
 warsentech.com: did not receive HSTS header
 washingtonviews.com: did not receive HSTS header
 watchium.com: did not receive HSTS header
 watersportmarkt.net: did not receive HSTS header
 watsonhall.uk: could not connect to host
 wave.is: could not connect to host
 wavefrontsystemstech.com: could not connect to host
@@ -4942,17 +4965,16 @@ wienholding.at: max-age too low: 0
 wieninternational.at: did not receive HSTS header
 wiire.me: could not connect to host
 wikiclash.info: could not connect to host
 wikisports.eu: could not connect to host
 wilf1rst.com: could not connect to host
 willcipriano.com: could not connect to host
 william.si: did not receive HSTS header
 willosagiede.com: did not receive HSTS header
-willow.technology: could not connect to host
 wimake.solutions: did not receive HSTS header
 winaes.com: did not receive HSTS header
 winclient.cn: could not connect to host
 winecodeavocado.com: could not connect to host
 winged.io: could not connect to host
 wingumd.net: could not connect to host
 winpack.cf: could not connect to host
 winpack.eu.org: could not connect to host
@@ -4980,32 +5002,30 @@ wohnungsbau-ludwigsburg.de: did not rece
 woima.fi: max-age too low: 604800
 wolfesden.com: could not connect to host
 womb.city: could not connect to host
 womosale.de: could not connect to host
 wonderfall.xyz: could not connect to host
 wonderhost.info: could not connect to host
 wondershift.biz: did not receive HSTS header
 woodmafia.com.au: max-age too low: 0
-woontegelwinkel.nl: did not receive HSTS header
 woording.com: could not connect to host
 wootton95.com: could not connect to host
 woresite.jp: did not receive HSTS header
 workfone.io: did not receive HSTS header
 workpermit.com.vn: did not receive HSTS header
 workwithgo.com: could not connect to host
 worldsbeststory.com: did not receive HSTS header
 wowapi.org: could not connect to host
 wpcarer.pro: could not connect to host
 wpfortify.com: did not receive HSTS header
 wphostingspot.com: did not receive HSTS header
 wpmetadatastandardsproject.org: could not connect to host
 writeapp.me: could not connect to host
 wsscompany.com.ve: could not connect to host
-wth.in: 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
 wusx.club: could not connect to host
 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 118"  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 118"  data: no]
 www.cueup.com: could not connect to host
@@ -5024,17 +5044,17 @@ www.moneybookers.com: did not receive HS
 www.neonisi.com: could not connect to host
 www.paycheckrecords.com: did not receive HSTS header
 www.rme.li: did not receive HSTS header
 www.sandbox.mydigipass.com: could not connect to host
 www.surfeasy.com: did not receive HSTS header
 www.zenpayroll.com: did not receive HSTS header
 www3.info: did not receive HSTS header
 wxukang.cn: could not connect to host
-wyzphoto.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 118"  data: no]
+wyzphoto.nl: could not connect to host
 x2w.io: could not connect to host
 x3led.com: could not connect to host
 x509.pub: could not connect to host
 x509.pw: could not connect to host
 xa.search.yahoo.com: did not receive HSTS header
 xandocs.com: could not connect to host
 xatr0z.org: could not connect to host
 xavierbarroso.com: could not connect to host
@@ -5046,32 +5066,33 @@ xendo.net: could not connect to host
 xenesisziarovky.sk: could not connect to host
 xett.com: did not receive HSTS header
 xf-liam.com: did not receive HSTS header
 xfive.de: did not receive HSTS header
 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
+xing.ml: could not connect to host
 xisa.it: could not connect to host
 xiyu.moe: could not connect to host
 xmppwocky.net: could not connect to host
 xn--3lqt7ir4md4tzwa.cn: did not receive HSTS header
 xn--3lqt7ir4md4tzwa.xn--fiqs8s: did not receive HSTS header
 xn--4dbjwf8c.cf: could not connect to host
 xn--4dbjwf8c.ga: could not connect to host
 xn--4dbjwf8c.gq: could not connect to host
 xn--4dbjwf8c.tk: could not connect to host
 xn--79q87uvkclvgd56ahq5a.net: did not receive HSTS header
 xn--7rvz7ku3ppnr.jp: did not receive HSTS header
 xn--80aaihqncaejjobbu6v.xn--p1ai: max-age too low: 10000
 xn--9pr52k0p5a.com: did not receive HSTS header
 xn--datenrettung-mnchen-jbc.com: did not receive HSTS header
 xn--dmonenjger-q5ag.net: could not connect to host
-xn--fischereiverein-mnsterhausen-i7c.de: could not connect to host
+xn--knstler-n2a.tips: could not connect to host
 xn--lgb3a8bcpn.cf: could not connect to host
 xn--lgb3a8bcpn.ga: could not connect to host
 xn--lgb3a8bcpn.gq: could not connect to host
 xn--lgb3a8bcpn.ml: could not connect to host
 xn--ls8hi7a.tk: could not connect to host
 xn--mgbbh2a9fub.xn--ngbc5azd: did not receive HSTS header
 xn--neb-tma3u8u.xyz: could not connect to host
 xn--seelenwchter-mcb.eu: could not connect to host
@@ -5130,32 +5151,32 @@ yourcomputer.expert: did not receive HST
 yoursecondphone.co: could not connect to host
 yourstrongbox.com: could not connect to host
 ypiresia.fr: could not connect to host
 ytcuber.xyz: 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
+yunpan.blue: could not connect to host
 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
 ywei.org: could not connect to host
 yzal.io: did not receive HSTS header
 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
 zadieheimlich.com: did not receive HSTS header
 zamorano.edu: could not connect to host
 zao.fi: could not connect to host
 zap.yt: could not connect to host
 zarooba.com: could not connect to host
-zberger.com: could not connect to host
 zbigniewgalucki.eu: did not receive HSTS header
 zebrababy.cn: did not receive HSTS header
 zefiris.org: did not receive HSTS header
 zefu.ca: could not connect to host
 zehntner.ch: could not connect to host
 zelezny.uk: did not receive HSTS header
 zelfstandigemakelaars.net: could not connect to host
 zenpayroll.com: did not receive HSTS header
@@ -5182,18 +5203,18 @@ zocken.com: did not receive HSTS header
 zoe.vc: did not receive HSTS header
 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 118"  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: 5184000
 zoommailing.com: did not receive HSTS header
 zorasvobodova.cz: did not receive HSTS header
+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
 ztan.tk: could not connect to host
 ztcaoll222.cn: did not receive HSTS header
-zten.org: could not connect to host
 zulu7.com: could not connect to host
 zvncloud.com: did not receive HSTS header
 zwollemagazine.nl: 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(1500390323033000);
+const PRTime gPreloadListExpirationTime = INT64_C(1500476798161000);
 
 static const char kSTSHostTable[] = {
   /* "0.me.uk", true */ '0', '.', 'm', 'e', '.', 'u', 'k', '\0',
   /* "007-preisvergleich.de", true */ '0', '0', '7', '-', 'p', 'r', 'e', 'i', 's', 'v', 'e', 'r', 'g', 'l', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0',
   /* "0100dev.com", true */ '0', '1', '0', '0', 'd', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "0100dev.nl", true */ '0', '1', '0', '0', 'd', 'e', 'v', '.', 'n', 'l', '\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',
@@ -32,16 +32,17 @@ static const char kSTSHostTable[] = {
   /* "0x.sk", true */ '0', 'x', '.', 's', 'k', '\0',
   /* "0x17.de", true */ '0', 'x', '1', '7', '.', 'd', 'e', '\0',
   /* "0x52.net", true */ '0', 'x', '5', '2', '.', 'n', 'e', 't', '\0',
   /* "0x52.org", true */ '0', 'x', '5', '2', '.', 'o', 'r', 'g', '\0',
   /* "0x539.pw", true */ '0', 'x', '5', '3', '9', '.', 'p', 'w', '\0',
   /* "0x65.net", true */ '0', 'x', '6', '5', '.', 'n', 'e', 't', '\0',
   /* "0x7fffffff.net", true */ '0', 'x', '7', 'f', 'f', 'f', 'f', 'f', 'f', 'f', '.', 'n', 'e', 't', '\0',
   /* "0x90.fi", true */ '0', 'x', '9', '0', '.', 'f', 'i', '\0',
+  /* "0x90.in", true */ '0', 'x', '9', '0', '.', 'i', 'n', '\0',
   /* "0x90.io", true */ '0', 'x', '9', '0', '.', 'i', 'o', '\0',
   /* "0xAA55.me", true */ '0', 'x', 'A', 'A', '5', '5', '.', 'm', 'e', '\0',
   /* "0xaa55.me", true */ '0', 'x', 'a', 'a', '5', '5', '.', 'm', 'e', '\0',
   /* "0xabe.io", true */ '0', 'x', 'a', 'b', 'e', '.', 'i', 'o', '\0',
   /* "0xda.de", true */ '0', 'x', 'd', 'a', '.', 'd', 'e', '\0',
   /* "0xdefaced.de", true */ '0', 'x', 'd', 'e', 'f', 'a', 'c', 'e', 'd', '.', 'd', 'e', '\0',
   /* "0xee.eu", true */ '0', 'x', 'e', 'e', '.', 'e', 'u', '\0',
   /* "0xfc.de", true */ '0', 'x', 'f', 'c', '.', 'd', 'e', '\0',
@@ -122,17 +123,16 @@ static const char kSTSHostTable[] = {
   /* "2048-spiel.de", true */ '2', '0', '4', '8', '-', 's', 'p', 'i', 'e', 'l', '.', 'd', 'e', '\0',
   /* "2048game.co.uk", true */ '2', '0', '4', '8', 'g', 'a', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "20hs.cn", true */ '2', '0', 'h', 's', '.', 'c', 'n', '\0',
   /* "21.co.uk", true */ '2', '1', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "21lg.co", true */ '2', '1', 'l', 'g', '.', 'c', 'o', '\0',
   /* "21stnc.com", true */ '2', '1', 's', 't', 'n', 'c', '.', 'c', 'o', 'm', '\0',
   /* "246060.ru", true */ '2', '4', '6', '0', '6', '0', '.', 'r', 'u', '\0',
   /* "247healthshop.com", true */ '2', '4', '7', 'h', 'e', 'a', 'l', 't', 'h', 's', 'h', 'o', 'p', '.', 'c', 'o', 'm', '\0',
-  /* "247quickbooks.com", true */ '2', '4', '7', 'q', 'u', 'i', 'c', 'k', 'b', 'o', 'o', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "24ip.com", true */ '2', '4', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "24ip.de", true */ '2', '4', 'i', 'p', '.', 'd', 'e', '\0',
   /* "24ip.fr", true */ '2', '4', 'i', 'p', '.', 'f', 'r', '\0',
   /* "24sihu.com", false */ '2', '4', 's', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
   /* "2600edinburgh.org", true */ '2', '6', '0', '0', 'e', 'd', 'i', 'n', 'b', 'u', 'r', 'g', 'h', '.', 'o', 'r', 'g', '\0',
   /* "2600hq.com", true */ '2', '6', '0', '0', 'h', 'q', '.', 'c', 'o', 'm', '\0',
   /* "28spots.net", true */ '2', '8', 's', 'p', 'o', 't', 's', '.', 'n', 'e', 't', '\0',
   /* "2acbi-asso.fr", true */ '2', 'a', 'c', 'b', 'i', '-', 'a', 's', 's', 'o', '.', 'f', 'r', '\0',
@@ -188,16 +188,17 @@ static const char kSTSHostTable[] = {
   /* "404404.info", true */ '4', '0', '4', '4', '0', '4', '.', 'i', 'n', 'f', 'o', '\0',
   /* "4096bit.de", true */ '4', '0', '9', '6', 'b', 'i', 't', '.', 'd', 'e', '\0',
   /* "41-where.com", true */ '4', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "41844.de", true */ '4', '1', '8', '4', '4', '.', 'd', 'e', '\0',
   /* "41where.com", true */ '4', '1', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "420dongstorm.com", true */ '4', '2', '0', 'd', 'o', 'n', 'g', 's', 't', 'o', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "42day.info", true */ '4', '2', 'd', 'a', 'y', '.', 'i', 'n', 'f', 'o', '\0',
   /* "439191.com", true */ '4', '3', '9', '1', '9', '1', '.', 'c', 'o', 'm', '\0',
+  /* "441jj.com", true */ '4', '4', '1', 'j', 'j', '.', 'c', 'o', 'm', '\0',
   /* "4500.co.il", true */ '4', '5', '0', '0', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "491mhz.net", true */ '4', '9', '1', 'm', 'h', 'z', '.', 'n', 'e', 't', '\0',
   /* "4azino777.ru", true */ '4', 'a', 'z', 'i', 'n', 'o', '7', '7', '7', '.', 'r', 'u', '\0',
   /* "4d2.xyz", true */ '4', 'd', '2', '.', 'x', 'y', 'z', '\0',
   /* "4decor.org", true */ '4', 'd', 'e', 'c', 'o', 'r', '.', 'o', 'r', 'g', '\0',
   /* "4g-server.eu", false */ '4', 'g', '-', 's', 'e', 'r', 'v', 'e', 'r', '.', 'e', 'u', '\0',
   /* "4loc.us", true */ '4', 'l', 'o', 'c', '.', 'u', 's', '\0',
   /* "4miners.net", true */ '4', 'm', 'i', 'n', 'e', 'r', 's', '.', 'n', 'e', 't', '\0',
@@ -516,17 +517,16 @@ static const char kSTSHostTable[] = {
   /* "agfmedia.com", true */ 'a', 'g', 'f', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "aggr.pw", true */ 'a', 'g', 'g', 'r', '.', 'p', 'w', '\0',
   /* "agilebits.com", true */ 'a', 'g', 'i', 'l', 'e', 'b', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "agilebits.net", false */ 'a', 'g', 'i', 'l', 'e', 'b', 'i', 't', 's', '.', 'n', 'e', 't', '\0',
   /* "agileui.com", true */ 'a', 'g', 'i', 'l', 'e', 'u', 'i', '.', 'c', 'o', 'm', '\0',
   /* "aging.gov", true */ 'a', 'g', 'i', 'n', 'g', '.', 'g', 'o', 'v', '\0',
   /* "agonswim.com", false */ 'a', 'g', 'o', 'n', 's', 'w', 'i', 'm', '.', 'c', 'o', 'm', '\0',
   /* "agotnes.com", true */ 'a', 'g', 'o', 't', 'n', 'e', 's', '.', 'c', 'o', 'm', '\0',
-  /* "agowa338.de", true */ 'a', 'g', 'o', 'w', 'a', '3', '3', '8', '.', 'd', 'e', '\0',
   /* "agrias.com.br", true */ 'a', 'g', 'r', 'i', 'a', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "agridir.site", true */ 'a', 'g', 'r', 'i', 'd', 'i', 'r', '.', 's', 'i', 't', 'e', '\0',
   /* "agroline.by", true */ 'a', 'g', 'r', 'o', 'l', 'i', 'n', 'e', '.', 'b', 'y', '\0',
   /* "agroyard.com.ua", true */ 'a', 'g', 'r', 'o', 'y', 'a', 'r', 'd', '.', 'c', 'o', 'm', '.', 'u', 'a', '\0',
   /* "agwa.name", true */ 'a', 'g', 'w', 'a', '.', 'n', 'a', 'm', 'e', '\0',
   /* "ahcpr.gov", false */ 'a', 'h', 'c', 'p', 'r', '.', 'g', 'o', 'v', '\0',
   /* "ahd.com", true */ 'a', 'h', 'd', '.', 'c', 'o', 'm', '\0',
   /* "ahelos.tk", true */ 'a', 'h', 'e', 'l', 'o', 's', '.', 't', 'k', '\0',
@@ -653,16 +653,17 @@ static const char kSTSHostTable[] = {
   /* "alexmerkel.com", true */ 'a', 'l', 'e', 'x', 'm', 'e', 'r', 'k', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "alexmerkel.me", true */ 'a', 'l', 'e', 'x', 'm', 'e', 'r', 'k', 'e', 'l', '.', 'm', 'e', '\0',
   /* "alexmerkel.xyz", true */ 'a', 'l', 'e', 'x', 'm', 'e', 'r', 'k', 'e', 'l', '.', 'x', 'y', 'z', '\0',
   /* "alexn.org", true */ 'a', 'l', 'e', 'x', 'n', '.', 'o', 'r', 'g', '\0',
   /* "alexpavel.com", true */ 'a', 'l', 'e', 'x', 'p', 'a', 'v', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "alexs.de", true */ 'a', 'l', 'e', 'x', 's', '.', 'd', 'e', '\0',
   /* "alexsexton.com", true */ 'a', 'l', 'e', 'x', 's', 'e', 'x', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "alextsang.net", true */ 'a', 'l', 'e', 'x', 't', 's', 'a', 'n', 'g', '.', 'n', 'e', 't', '\0',
+  /* "alexvetter.de", true */ 'a', 'l', 'e', 'x', 'v', 'e', 't', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "alexwardweb.com", true */ 'a', 'l', 'e', 'x', 'w', 'a', 'r', 'd', 'w', 'e', 'b', '.', 'c', 'o', 'm', '\0',
   /* "alexyang.me", true */ 'a', 'l', 'e', 'x', 'y', 'a', 'n', 'g', '.', 'm', 'e', '\0',
   /* "alfa-tech.su", true */ 'a', 'l', 'f', 'a', '-', 't', 'e', 'c', 'h', '.', 's', 'u', '\0',
   /* "alfredxing.com", false */ 'a', 'l', 'f', 'r', 'e', 'd', 'x', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "algarmatic-automatismos.pt", true */ 'a', 'l', 'g', 'a', 'r', 'm', 'a', 't', 'i', 'c', '-', 'a', 'u', 't', 'o', 'm', 'a', 't', 'i', 's', 'm', 'o', 's', '.', 'p', 't', '\0',
   /* "algolia.com", true */ 'a', 'l', 'g', 'o', 'l', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "aliacraft.net", true */ 'a', 'l', 'i', 'a', 'c', 'r', 'a', 'f', 't', '.', 'n', 'e', 't', '\0',
   /* "alibip.de", true */ 'a', 'l', 'i', 'b', 'i', 'p', '.', 'd', 'e', '\0',
@@ -843,16 +844,17 @@ static const char kSTSHostTable[] = {
   /* "andreaseracleous.com", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'e', 'r', 'a', 'c', 'l', 'e', 'o', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "andreasfeusi.ch", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'f', 'e', 'u', 's', 'i', '.', 'c', 'h', '\0',
   /* "andreasfritz-fotografie.de", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'f', 'r', 'i', 't', 'z', '-', 'f', 'o', 't', 'o', 'g', 'r', 'a', 'f', 'i', 'e', '.', 'd', 'e', '\0',
   /* "andreaskluge.eu", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'k', 'l', 'u', 'g', 'e', '.', 'e', 'u', '\0',
   /* "andreaskrasa.com", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'k', 'r', 'a', 's', 'a', '.', 'c', 'o', 'm', '\0',
   /* "andreasolsson.se", true */ 'a', 'n', 'd', 'r', 'e', 'a', 's', 'o', 'l', 's', 's', 'o', 'n', '.', 's', 'e', '\0',
   /* "andrehansen.de", true */ 'a', 'n', 'd', 'r', 'e', 'h', 'a', 'n', 's', 'e', 'n', '.', 'd', 'e', '\0',
   /* "andrepicard.de", true */ 'a', 'n', 'd', 'r', 'e', 'p', 'i', 'c', 'a', 'r', 'd', '.', 'd', 'e', '\0',
+  /* "andrew.london", true */ 'a', 'n', 'd', 'r', 'e', 'w', '.', 'l', 'o', 'n', 'd', 'o', 'n', '\0',
   /* "andrewdaws.tv", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'd', 'a', 'w', 's', '.', 't', 'v', '\0',
   /* "andrewhowden.com", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'h', 'o', 'w', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "andrewimeson.com", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'i', 'm', 'e', 's', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "andrewin.ru", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'i', 'n', '.', 'r', 'u', '\0',
   /* "andrewmichaud.com", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'm', 'i', 'c', 'h', 'a', 'u', 'd', '.', 'c', 'o', 'm', '\0',
   /* "andrewmichaud.me", true */ 'a', 'n', 'd', 'r', 'e', 'w', 'm', 'i', 'c', 'h', 'a', 'u', 'd', '.', 'm', 'e', '\0',
   /* "andrewsun.com", true */ 'a', 'n', 'd', 'r', 'e', 'w', 's', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "andrewtebert.com", true */ 'a', 'n', 'd', 'r', 'e', 'w', 't', 'e', 'b', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0',
@@ -949,17 +951,16 @@ static const char kSTSHostTable[] = {
   /* "ao-dev.com", true */ 'a', 'o', '-', 'd', 'e', 'v', '.', 'c', 'o', 'm', '\0',
   /* "ao2.it", true */ 'a', 'o', '2', '.', 'i', 't', '\0',
   /* "aocast.info", true */ 'a', 'o', 'c', 'a', 's', 't', '.', 'i', 'n', 'f', 'o', '\0',
   /* "aojf.fr", true */ 'a', 'o', 'j', 'f', '.', 'f', 'r', '\0',
   /* "aojiao.org", false */ 'a', 'o', 'j', 'i', 'a', 'o', '.', 'o', 'r', 'g', '\0',
   /* "aoku3d.com", true */ 'a', 'o', 'k', 'u', '3', 'd', '.', 'c', 'o', 'm', '\0',
   /* "aolabs.nz", true */ 'a', 'o', 'l', 'a', 'b', 's', '.', 'n', 'z', '\0',
   /* "aopedeure.nl", true */ 'a', 'o', 'p', 'e', 'd', 'e', 'u', 'r', 'e', '.', 'n', 'l', '\0',
-  /* "aosc.io", false */ 'a', 'o', 's', 'c', '.', 'i', 'o', '\0',
   /* "aosus.org", true */ 'a', 'o', 's', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "aov.io", true */ 'a', 'o', 'v', '.', 'i', 'o', '\0',
   /* "aovcentrum.nl", true */ 'a', 'o', 'v', 'c', 'e', 'n', 't', 'r', 'u', 'm', '.', 'n', 'l', '\0',
   /* "apachehaus.de", false */ 'a', 'p', 'a', 'c', 'h', 'e', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0',
   /* "apadvantage.com", true */ 'a', 'p', 'a', 'd', 'v', 'a', 'n', 't', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "apartment-natik.fr", true */ 'a', 'p', 'a', 'r', 't', 'm', 'e', 'n', 't', '-', 'n', 'a', 't', 'i', 'k', '.', 'f', 'r', '\0',
   /* "apartmentregister.com.au", true */ 'a', 'p', 'a', 'r', 't', 'm', 'e', 'n', 't', 'r', 'e', 'g', 'i', 's', 't', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "apbox.de", true */ 'a', 'p', 'b', 'o', 'x', '.', 'd', 'e', '\0',
@@ -976,16 +977,17 @@ static const char kSTSHostTable[] = {
   /* "api.lookout.com", false */ 'a', 'p', 'i', '.', 'l', 'o', 'o', 'k', 'o', 'u', 't', '.', 'c', 'o', 'm', '\0',
   /* "api.recurly.com", true */ 'a', 'p', 'i', '.', 'r', 'e', 'c', 'u', 'r', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "api.simple.com", false */ 'a', 'p', 'i', '.', 's', 'i', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "api.xero.com", false */ 'a', 'p', 'i', '.', 'x', 'e', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "apis.google.com", true */ 'a', 'p', 'i', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "apk4fun.com", true */ 'a', 'p', 'k', '4', 'f', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "aplpackaging.co.uk", true */ 'a', 'p', 'l', 'p', 'a', 'c', 'k', 'a', 'g', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "apn-einstellungen.de", true */ 'a', 'p', 'n', '-', 'e', 'i', 'n', 's', 't', 'e', 'l', 'l', 'u', 'n', 'g', 'e', 'n', '.', 'd', 'e', '\0',
+  /* "apolloyl.com", true */ 'a', 'p', 'o', 'l', 'l', 'o', 'y', 'l', '.', 'c', 'o', 'm', '\0',
   /* "apoly.de", true */ 'a', 'p', 'o', 'l', 'y', '.', 'd', 'e', '\0',
   /* "aponkral.net", true */ 'a', 'p', 'o', 'n', 'k', 'r', 'a', 'l', '.', 'n', 'e', 't', '\0',
   /* "aponkral.site", true */ 'a', 'p', 'o', 'n', 'k', 'r', 'a', 'l', '.', 's', 'i', 't', 'e', '\0',
   /* "aponow.de", true */ 'a', 'p', 'o', 'n', 'o', 'w', '.', 'd', 'e', '\0',
   /* "aposke.com", true */ 'a', 'p', 'o', 's', 'k', 'e', '.', 'c', 'o', 'm', '\0',
   /* "apothes.is", true */ 'a', 'p', 'o', 't', 'h', 'e', 's', '.', 'i', 's', '\0',
   /* "app-at.work", true */ 'a', 'p', 'p', '-', 'a', 't', '.', 'w', 'o', 'r', 'k', '\0',
   /* "app.recurly.com", true */ 'a', 'p', 'p', '.', 'r', 'e', 'c', 'u', 'r', 'l', 'y', '.', 'c', 'o', 'm', '\0',
@@ -1349,17 +1351,16 @@ static const char kSTSHostTable[] = {
   /* "awan.tech", true */ 'a', 'w', 'a', 'n', '.', 't', 'e', 'c', 'h', '\0',
   /* "awanderlustadventure.com", true */ 'a', 'w', 'a', 'n', 'd', 'e', 'r', 'l', 'u', 's', 't', 'a', 'd', 'v', 'e', 'n', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "awaremi-tai.com", true */ 'a', 'w', 'a', 'r', 'e', 'm', 'i', '-', 't', 'a', 'i', '.', 'c', 'o', 'm', '\0',
   /* "awaro.net", true */ 'a', 'w', 'a', 'r', 'o', '.', 'n', 'e', 't', '\0',
   /* "awccanadianpharmacy.com", true */ 'a', 'w', 'c', 'c', 'a', 'n', 'a', 'd', 'i', 'a', 'n', 'p', 'h', 'a', 'r', 'm', 'a', 'c', 'y', '.', 'c', 'o', 'm', '\0',
   /* "awk.tw", true */ 'a', 'w', 'k', '.', 't', 'w', '\0',
   /* "awksolutions.com", true */ 'a', 'w', 'k', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "aww.moe", true */ 'a', 'w', 'w', '.', 'm', 'o', 'e', '\0',
-  /* "awxg.com", true */ 'a', 'w', 'x', 'g', '.', 'c', 'o', 'm', '\0',
   /* "axem.co.jp", true */ 'a', 'x', 'e', 'm', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "axiomer.com", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "axiomer.es", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'e', 's', '\0',
   /* "axiomer.me", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'm', 'e', '\0',
   /* "axiomer.net", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "axiomer.org", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "axka.com", false */ 'a', 'x', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "axolotlfarm.org", true */ 'a', 'x', 'o', 'l', 'o', 't', 'l', 'f', 'a', 'r', 'm', '.', 'o', 'r', 'g', '\0',
@@ -1387,17 +1388,16 @@ static const char kSTSHostTable[] = {
   /* "azzorti.com", true */ 'a', 'z', 'z', 'o', 'r', 't', 'i', '.', 'c', 'o', 'm', '\0',
   /* "b-landia.net", true */ 'b', '-', 'l', 'a', 'n', 'd', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "b-rickroll-e.pw", true */ 'b', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'e', '.', 'p', 'w', '\0',
   /* "b-root-force.de", true */ 'b', '-', 'r', 'o', 'o', 't', '-', 'f', 'o', 'r', 'c', 'e', '.', 'd', 'e', '\0',
   /* "b1c1l1.com", true */ 'b', '1', 'c', '1', 'l', '1', '.', 'c', 'o', 'm', '\0',
   /* "b2and.com", false */ 'b', '2', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "b2bmuzikbank.com", true */ 'b', '2', 'b', 'm', 'u', 'z', 'i', 'k', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "b303.me", true */ 'b', '3', '0', '3', '.', 'm', 'e', '\0',
-  /* "b422edu.com", true */ 'b', '4', '2', '2', 'e', 'd', 'u', '.', 'c', 'o', 'm', '\0',
   /* "baalsworld.de", true */ 'b', 'a', 'a', 'l', 's', 'w', 'o', 'r', 'l', 'd', '.', 'd', 'e', '\0',
   /* "baas-becking.biology.utah.edu", true */ 'b', 'a', 'a', 's', '-', 'b', 'e', 'c', 'k', 'i', 'n', 'g', '.', 'b', 'i', 'o', 'l', 'o', 'g', 'y', '.', 'u', 't', 'a', 'h', '.', 'e', 'd', 'u', '\0',
   /* "babacasino.net", true */ 'b', 'a', 'b', 'a', 'c', 'a', 's', 'i', 'n', 'o', '.', 'n', 'e', 't', '\0',
   /* "babak.de", false */ 'b', 'a', 'b', 'a', 'k', '.', 'd', 'e', '\0',
   /* "babarkata.com", true */ 'b', 'a', 'b', 'a', 'r', 'k', 'a', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "babelfisch.eu", true */ 'b', 'a', 'b', 'e', 'l', 'f', 'i', 's', 'c', 'h', '.', 'e', 'u', '\0',
   /* "babybee.ie", true */ 'b', 'a', 'b', 'y', 'b', 'e', 'e', '.', 'i', 'e', '\0',
   /* "babyboom.pl", true */ 'b', 'a', 'b', 'y', 'b', 'o', 'o', 'm', '.', 'p', 'l', '\0',
@@ -3047,16 +3047,17 @@ static const char kSTSHostTable[] = {
   /* "climaprecio.es", true */ 'c', 'l', 'i', 'm', 'a', 'p', 'r', 'e', 'c', 'i', 'o', '.', 'e', 's', '\0',
   /* "climateinteractive.org", true */ 'c', 'l', 'i', 'm', 'a', 't', 'e', 'i', 'n', 't', 'e', 'r', 'a', 'c', 't', 'i', 'v', 'e', '.', 'o', 'r', 'g', '\0',
   /* "climatestew.com", true */ 'c', 'l', 'i', 'm', 'a', 't', 'e', 's', 't', 'e', 'w', '.', 'c', 'o', 'm', '\0',
   /* "clinicadelogopedia.net", true */ 'c', 'l', 'i', 'n', 'i', 'c', 'a', 'd', 'e', 'l', 'o', 'g', 'o', 'p', 'e', 'd', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "clinicaltrials.gov", true */ 'c', 'l', 'i', 'n', 'i', 'c', 'a', 'l', 't', 'r', 'i', 'a', 'l', 's', '.', 'g', 'o', 'v', '\0',
   /* "cliniko.com", true */ 'c', 'l', 'i', 'n', 'i', 'k', 'o', '.', 'c', 'o', 'm', '\0',
   /* "cliniquepariseau.com", false */ 'c', 'l', 'i', 'n', 'i', 'q', 'u', 'e', 'p', 'a', 'r', 'i', 's', 'e', 'a', 'u', '.', 'c', 'o', 'm', '\0',
   /* "clintonlibrary.gov", true */ 'c', 'l', 'i', 'n', 't', 'o', 'n', 'l', 'i', 'b', 'r', 'a', 'r', 'y', '.', 'g', 'o', 'v', '\0',
+  /* "clip.mx", false */ 'c', 'l', 'i', 'p', '.', 'm', 'x', '\0',
   /* "clip.ovh", true */ 'c', 'l', 'i', 'p', '.', 'o', 'v', 'h', '\0',
   /* "clipclip.com", true */ 'c', 'l', 'i', 'p', 'c', 'l', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "clmde.de", true */ 'c', 'l', 'm', 'd', 'e', '.', 'd', 'e', '\0',
   /* "clochix.net", true */ 'c', 'l', 'o', 'c', 'h', 'i', 'x', '.', 'n', 'e', 't', '\0',
   /* "clockcaster.com", true */ 'c', 'l', 'o', 'c', 'k', 'c', 'a', 's', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "clockworksms.com", true */ 'c', 'l', 'o', 'c', 'k', 'w', 'o', 'r', 'k', 's', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "close.com", false */ 'c', 'l', 'o', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "closeli.cn", true */ 'c', 'l', 'o', 's', 'e', 'l', 'i', '.', 'c', 'n', '\0',
@@ -3071,43 +3072,42 @@ static const char kSTSHostTable[] = {
   /* "cloud.gov", false */ 'c', 'l', 'o', 'u', 'd', '.', 'g', 'o', 'v', '\0',
   /* "cloudapps.digital", true */ 'c', 'l', 'o', 'u', 'd', 'a', 'p', 'p', 's', '.', 'd', 'i', 'g', 'i', 't', 'a', 'l', '\0',
   /* "cloudbased.info", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'a', 's', 'e', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "cloudbasedsite.com", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'a', 's', 'e', 'd', 's', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cloudbleed.info", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'l', 'e', 'e', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "cloudbolin.es", true */ 'c', 'l', 'o', 'u', 'd', 'b', 'o', 'l', 'i', 'n', '.', 'e', 's', '\0',
   /* "cloudcaprice.net", true */ 'c', 'l', 'o', 'u', 'd', 'c', 'a', 'p', 'r', 'i', 'c', 'e', '.', 'n', 'e', 't', '\0',
   /* "cloudflareonazure.com", true */ 'c', 'l', 'o', 'u', 'd', 'f', 'l', 'a', 'r', 'e', 'o', 'n', 'a', 'z', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "cloudily.com", true */ 'c', 'l', 'o', 'u', 'd', 'i', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "cloudmigrator365.com", true */ 'c', 'l', 'o', 'u', 'd', 'm', 'i', 'g', 'r', 'a', 't', 'o', 'r', '3', '6', '5', '.', 'c', 'o', 'm', '\0',
   /* "cloudoptimizedsmb.com", true */ 'c', 'l', 'o', 'u', 'd', 'o', 'p', 't', 'i', 'm', 'i', 'z', 'e', 'd', 's', 'm', 'b', '.', 'c', 'o', 'm', '\0',
   /* "cloudoptimus.com", true */ 'c', 'l', 'o', 'u', 'd', 'o', 'p', 't', 'i', 'm', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "cloudpagesforwork.com", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'a', 'g', 'e', 's', 'f', 'o', 'r', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "cloudpebble.net", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'e', 'b', 'b', 'l', 'e', '.', 'n', 'e', 't', '\0',
   /* "cloudpipes.com", true */ 'c', 'l', 'o', 'u', 'd', 'p', 'i', 'p', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "clouds.webcam", true */ 'c', 'l', 'o', 'u', 'd', 's', '.', 'w', 'e', 'b', 'c', 'a', 'm', '\0',
   /* "cloudsecurityalliance.org", true */ 'c', 'l', 'o', 'u', 'd', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "cloudservice.io", true */ 'c', 'l', 'o', 'u', 'd', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'i', 'o', '\0',
   /* "cloudspace-analytics.com", true */ 'c', 'l', 'o', 'u', 'd', 's', 'p', 'a', 'c', 'e', '-', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "cloudstrike.co", true */ 'c', 'l', 'o', 'u', 'd', 's', 't', 'r', 'i', 'k', 'e', '.', 'c', 'o', '\0',
   /* "cloudteam.de", true */ 'c', 'l', 'o', 'u', 'd', 't', 'e', 'a', 'm', '.', 'd', 'e', '\0',
-  /* "cloudup.com", true */ 'c', 'l', 'o', 'u', 'd', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "clovissantos.com", true */ 'c', 'l', 'o', 'v', 'i', 's', 's', 'a', 'n', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "clowde.in", true */ 'c', 'l', 'o', 'w', 'd', 'e', '.', 'i', 'n', '\0',
   /* "clownish.co.il", true */ 'c', 'l', 'o', 'w', 'n', 'i', 's', 'h', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "cloxy.com", true */ 'c', 'l', 'o', 'x', 'y', '.', 'c', 'o', 'm', '\0',
   /* "clr3.com", true */ 'c', 'l', 'r', '3', '.', 'c', 'o', 'm', '\0',
   /* "clsimplex.com", true */ 'c', 'l', 's', 'i', 'm', 'p', 'l', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "clu-in.org", true */ 'c', 'l', 'u', '-', 'i', 'n', '.', 'o', 'r', 'g', '\0',
   /* "club-is.ru", true */ 'c', 'l', 'u', 'b', '-', 'i', 's', '.', 'r', 'u', '\0',
   /* "clubempleos.com", true */ 'c', 'l', 'u', 'b', 'e', 'm', 'p', 'l', 'e', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "clubeohara.com", true */ 'c', 'l', 'u', 'b', 'e', 'o', 'h', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "clubmini.jp", true */ 'c', 'l', 'u', 'b', 'm', 'i', 'n', 'i', '.', 'j', 'p', '\0',
   /* "clubmix.co.kr", true */ 'c', 'l', 'u', 'b', 'm', 'i', 'x', '.', 'c', 'o', '.', 'k', 'r', '\0',
   /* "clubon.space", true */ 'c', 'l', 'u', 'b', 'o', 'n', '.', 's', 'p', 'a', 'c', 'e', '\0',
-  /* "cluster.id", true */ 'c', 'l', 'u', 's', 't', 'e', 'r', '.', 'i', 'd', '\0',
   /* "clustermaze.net", true */ 'c', 'l', 'u', 's', 't', 'e', 'r', 'm', 'a', 'z', 'e', '.', 'n', 'e', 't', '\0',
   /* "clvs7.com", true */ 'c', 'l', 'v', 's', '7', '.', 'c', 'o', 'm', '\0',
   /* "cmahy.be", true */ 'c', 'm', 'a', 'h', 'y', '.', 'b', 'e', '\0',
   /* "cmdline.org", true */ 'c', 'm', 'd', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "cms-weble.jp", true */ 'c', 'm', 's', '-', 'w', 'e', 'b', 'l', 'e', '.', 'j', 'p', '\0',
   /* "cmso-cal.com", true */ 'c', 'm', 's', 'o', '-', 'c', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "cmylife.nl", true */ 'c', 'm', 'y', 'l', 'i', 'f', 'e', '.', 'n', 'l', '\0',
   /* "cnam.net", true */ 'c', 'n', 'a', 'm', '.', 'n', 'e', 't', '\0',
@@ -3173,16 +3173,17 @@ static const char kSTSHostTable[] = {
   /* "codyevanscomputer.com", true */ 'c', 'o', 'd', 'y', 'e', 'v', 'a', 'n', 's', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "codymoniz.com", true */ 'c', 'o', 'd', 'y', 'm', 'o', 'n', 'i', 'z', '.', 'c', 'o', 'm', '\0',
   /* "coerthas.com", true */ 'c', 'o', 'e', 'r', 't', 'h', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "coffee-mamenoki.jp", true */ 'c', 'o', 'f', 'f', 'e', 'e', '-', 'm', 'a', 'm', 'e', 'n', 'o', 'k', 'i', '.', 'j', 'p', '\0',
   /* "cogent.cc", true */ 'c', 'o', 'g', 'e', 'n', 't', '.', 'c', 'c', '\0',
   /* "cogitoltd.com", true */ 'c', 'o', 'g', 'i', 't', 'o', 'l', 't', 'd', '.', 'c', 'o', 'm', '\0',
   /* "cognitivecomputingconsortium.com", true */ 'c', 'o', 'g', 'n', 'i', 't', 'i', 'v', 'e', 'c', 'o', 'm', 'p', 'u', 't', 'i', 'n', 'g', 'c', 'o', 'n', 's', 'o', 'r', 't', 'i', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "cogumelosmagicos.org", true */ 'c', 'o', 'g', 'u', 'm', 'e', 'l', 'o', 's', 'm', 'a', 'g', 'i', 'c', 'o', 's', '.', 'o', 'r', 'g', '\0',
+  /* "cohesive.io", true */ 'c', 'o', 'h', 'e', 's', 'i', 'v', 'e', '.', 'i', 'o', '\0',
   /* "coi-verify.com", true */ 'c', 'o', 'i', '-', 'v', 'e', 'r', 'i', 'f', 'y', '.', 'c', 'o', 'm', '\0',
   /* "coimmvest.com", true */ 'c', 'o', 'i', 'm', 'm', 'v', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "coin.dance", true */ 'c', 'o', 'i', 'n', '.', 'd', 'a', 'n', 'c', 'e', '\0',
   /* "coinapult.com", true */ 'c', 'o', 'i', 'n', 'a', 'p', 'u', 'l', 't', '.', 'c', 'o', 'm', '\0',
   /* "coinbase.com", true */ 'c', 'o', 'i', 'n', 'b', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "coincoin.eu.org", true */ 'c', 'o', 'i', 'n', 'c', 'o', 'i', 'n', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "coinessa.com", true */ 'c', 'o', 'i', 'n', 'e', 's', 's', 'a', '.', 'c', 'o', 'm', '\0',
   /* "coinjar-sandbox.com", true */ 'c', 'o', 'i', 'n', 'j', 'a', 'r', '-', 's', 'a', 'n', 'd', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
@@ -3230,17 +3231,16 @@ static const char kSTSHostTable[] = {
   /* "comdotgame.com", true */ 'c', 'o', 'm', 'd', 'o', 't', 'g', 'a', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "comdurav.com", true */ 'c', 'o', 'm', 'd', 'u', 'r', 'a', 'v', '.', 'c', 'o', 'm', '\0',
   /* "comercialtrading.eu", true */ 'c', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', 't', 'r', 'a', 'd', 'i', 'n', 'g', '.', 'e', 'u', '\0',
   /* "comerford.net", true */ 'c', 'o', 'm', 'e', 'r', 'f', 'o', 'r', 'd', '.', 'n', 'e', 't', '\0',
   /* "cometcache.com", true */ 'c', 'o', 'm', 'e', 't', 'c', 'a', 'c', 'h', 'e', '.', 'c', 'o', 'm', '\0',
   /* "comff.net", true */ 'c', 'o', 'm', 'f', 'f', '.', 'n', 'e', 't', '\0',
   /* "comfintouch.com", true */ 'c', 'o', 'm', 'f', 'i', 'n', 't', 'o', 'u', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "comfy.cafe", true */ 'c', 'o', 'm', 'f', 'y', '.', 'c', 'a', 'f', 'e', '\0',
-  /* "comfy.moe", true */ 'c', 'o', 'm', 'f', 'y', '.', 'm', 'o', 'e', '\0',
   /* "comhack.com", true */ 'c', 'o', 'm', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "comico.info", true */ 'c', 'o', 'm', 'i', 'c', 'o', '.', 'i', 'n', 'f', 'o', '\0',
   /* "comitesaustria.at", true */ 'c', 'o', 'm', 'i', 't', 'e', 's', 'a', 'u', 's', 't', 'r', 'i', 'a', '.', 'a', 't', '\0',
   /* "comiteshopping.com", true */ 'c', 'o', 'm', 'i', 't', 'e', 's', 'h', 'o', 'p', 'p', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "commania.co.kr", true */ 'c', 'o', 'm', 'm', 'a', 'n', 'i', 'a', '.', 'c', 'o', '.', 'k', 'r', '\0',
   /* "commencepayments.com", true */ 'c', 'o', 'm', 'm', 'e', 'n', 'c', 'e', 'p', 'a', 'y', 'm', 'e', 'n', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "commerciallocker.com", false */ 'c', 'o', 'm', 'm', 'e', 'r', 'c', 'i', 'a', 'l', 'l', 'o', 'c', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "common.io", true */ 'c', 'o', 'm', 'm', 'o', 'n', '.', 'i', 'o', '\0',
@@ -3375,16 +3375,17 @@ static const char kSTSHostTable[] = {
   /* "corporatesubscriptions.com.au", true */ 'c', 'o', 'r', 'p', 'o', 'r', 'a', 't', 'e', 's', 'u', 'b', 's', 'c', 'r', 'i', 'p', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "correct.horse", true */ 'c', 'o', 'r', 'r', 'e', 'c', 't', '.', 'h', 'o', 'r', 's', 'e', '\0',
   /* "cortexitrecruitment.com", true */ 'c', 'o', 'r', 't', 'e', 'x', 'i', 't', 'r', 'e', 'c', 'r', 'u', 'i', 't', 'm', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "cortisolsupplement.com", true */ 'c', 'o', 'r', 't', 'i', 's', 'o', 'l', 's', 'u', 'p', 'p', 'l', 'e', 'm', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "corvus.eu.org", true */ 'c', 'o', 'r', 'v', 'u', 's', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "coryadum.com", true */ 'c', 'o', 'r', 'y', 'a', 'd', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "corzntin.fr", true */ 'c', 'o', 'r', 'z', 'n', 't', 'i', 'n', '.', 'f', 'r', '\0',
   /* "cosmeticappraisal.com", true */ 'c', 'o', 's', 'm', 'e', 't', 'i', 'c', 'a', 'p', 'p', 'r', 'a', 'i', 's', 'a', 'l', '.', 'c', 'o', 'm', '\0',
+  /* "cosmeticasimple.com", true */ 'c', 'o', 's', 'm', 'e', 't', 'i', 'c', 'a', 's', 'i', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cosmeticos-naturales.com", true */ 'c', 'o', 's', 'm', 'e', 't', 'i', 'c', 'o', 's', '-', 'n', 'a', 't', 'u', 'r', 'a', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "cosmundi.de", true */ 'c', 'o', 's', 'm', 'u', 'n', 'd', 'i', '.', 'd', 'e', '\0',
   /* "costablancavoorjou.com", true */ 'c', 'o', 's', 't', 'a', 'b', 'l', 'a', 'n', 'c', 'a', 'v', 'o', 'o', 'r', 'j', 'o', 'u', '.', 'c', 'o', 'm', '\0',
   /* "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',
   /* "cotwe-ge.ch", true */ 'c', 'o', 't', 'w', 'e', '-', 'g', 'e', '.', 'c', 'h', '\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',
@@ -3580,17 +3581,16 @@ static const char kSTSHostTable[] = {
   /* "culinae.nl", true */ 'c', 'u', 'l', 'i', 'n', 'a', 'e', '.', 'n', 'l', '\0',
   /* "cultiv.nl", true */ 'c', 'u', 'l', 't', 'i', 'v', '.', 'n', 'l', '\0',
   /* "culturedcode.com", true */ 'c', 'u', 'l', 't', 'u', 'r', 'e', 'd', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cultureroll.com", true */ 'c', 'u', 'l', 't', 'u', 'r', 'e', 'r', 'o', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "cun.lu", true */ 'c', 'u', 'n', '.', 'l', 'u', '\0',
   /* "cuni-cuni-club.com", true */ 'c', 'u', 'n', 'i', '-', 'c', 'u', 'n', 'i', '-', 'c', 'l', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "cuni-rec.com", true */ 'c', 'u', 'n', 'i', '-', 'r', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "cuonic.com", true */ 'c', 'u', 'o', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
-  /* "cup.al", true */ 'c', 'u', 'p', '.', 'a', 'l', '\0',
   /* "cupcake.io", true */ 'c', 'u', 'p', 'c', 'a', 'k', 'e', '.', 'i', 'o', '\0',
   /* "cupcake.is", true */ 'c', 'u', 'p', 'c', 'a', 'k', 'e', '.', 'i', 's', '\0',
   /* "cupi.co", true */ 'c', 'u', 'p', 'i', '.', 'c', 'o', '\0',
   /* "cupom.net", true */ 'c', 'u', 'p', 'o', 'm', '.', 'n', 'e', 't', '\0',
   /* "cuppycakes.fi", true */ 'c', 'u', 'p', 'p', 'y', 'c', 'a', 'k', 'e', 's', '.', 'f', 'i', '\0',
   /* "curacao-license.com", true */ 'c', 'u', 'r', 'a', 'c', 'a', 'o', '-', 'l', 'i', 'c', 'e', 'n', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "curieux.digital", true */ 'c', 'u', 'r', 'i', 'e', 'u', 'x', '.', 'd', 'i', 'g', 'i', 't', 'a', 'l', '\0',
   /* "curio-shiki.com", true */ 'c', 'u', 'r', 'i', 'o', '-', 's', 'h', 'i', 'k', 'i', '.', 'c', 'o', 'm', '\0',
@@ -3810,17 +3810,16 @@ static const char kSTSHostTable[] = {
   /* "databutlr.net", true */ 'd', 'a', 't', 'a', 'b', 'u', 't', 'l', 'r', '.', 'n', 'e', 't', '\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',
   /* "datacenternews.asia", true */ 'd', 'a', 't', 'a', 'c', 'e', 'n', 't', 'e', 'r', 'n', 'e', 'w', 's', '.', 'a', 's', 'i', 'a', '\0',
   /* "datacenternews.co.nz", true */ 'd', 'a', 't', 'a', 'c', 'e', 'n', 't', 'e', 'r', 'n', 'e', 'w', 's', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "datacentrenews.eu", true */ 'd', 'a', 't', 'a', 'c', 'e', 'n', 't', 'r', 'e', 'n', 'e', 'w', 's', '.', 'e', 'u', '\0',
   /* "datadit.hu", true */ 'd', 'a', 't', 'a', 'd', 'i', 't', '.', 'h', 'u', '\0',
   /* "datadyne.technology", true */ 'd', 'a', 't', 'a', 'd', 'y', 'n', 'e', '.', 't', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', 'y', '\0',
-  /* "dataisme.com", true */ 'd', 'a', 't', 'a', 'i', 's', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "datamatic.ru", true */ 'd', 'a', 't', 'a', 'm', 'a', 't', 'i', 'c', '.', 'r', 'u', '\0',
   /* "dataprotectionadvisors.com", true */ 'd', 'a', 't', 'a', 'p', 'r', 'o', 't', 'e', 'c', 't', 'i', 'o', 'n', 'a', 'd', 'v', 'i', 's', 'o', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "datapun.ch", true */ 'd', 'a', 't', 'a', 'p', 'u', 'n', '.', 'c', 'h', '\0',
   /* "datascience.cafe", true */ 'd', 'a', 't', 'a', 's', 'c', 'i', 'e', 'n', 'c', 'e', '.', 'c', 'a', 'f', 'e', '\0',
   /* "datascomemorativas.com.br", true */ 'd', 'a', 't', 'a', 's', 'c', 'o', 'm', 'e', 'm', 'o', 'r', 'a', 't', 'i', 'v', 'a', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "datasharesystem.com", true */ 'd', 'a', 't', 'a', 's', 'h', 'a', 'r', 'e', 's', 'y', 's', 't', 'e', 'm', '.', 'c', 'o', 'm', '\0',
   /* "dataskydd.net", true */ 'd', 'a', 't', 'a', 's', 'k', 'y', 'd', 'd', '.', 'n', 'e', 't', '\0',
   /* "datasnitch.co.uk", true */ 'd', 'a', 't', 'a', 's', 'n', 'i', 't', 'c', 'h', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -4001,17 +4000,16 @@ static const char kSTSHostTable[] = {
   /* "dempsters.ca", true */ 'd', 'e', 'm', 'p', 's', 't', 'e', 'r', 's', '.', 'c', 'a', '\0',
   /* "demuzere.be", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'b', 'e', '\0',
   /* "demuzere.com", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "demuzere.eu", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'e', 'u', '\0',
   /* "demuzere.net", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'n', 'e', 't', '\0',
   /* "demuzere.org", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "denabot.pw", true */ 'd', 'e', 'n', 'a', 'b', 'o', 't', '.', 'p', 'w', '\0',
   /* "denardbrewing.com", true */ 'd', 'e', 'n', 'a', 'r', 'd', 'b', 'r', 'e', 'w', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
-  /* "dengchangdong.com", true */ 'd', 'e', 'n', 'g', 'c', 'h', 'a', 'n', 'g', 'd', 'o', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "denimio.com", true */ 'd', 'e', 'n', 'i', 'm', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "denimtoday.com", true */ 'd', 'e', 'n', 'i', 'm', 't', 'o', 'd', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "dennisdoes.net", true */ 'd', 'e', 'n', 'n', 'i', 's', 'd', 'o', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "denniskoot.nl", true */ 'd', 'e', 'n', 'n', 'i', 's', 'k', 'o', 'o', 't', '.', 'n', 'l', '\0',
   /* "dennispotter.eu", true */ 'd', 'e', 'n', 'n', 'i', 's', 'p', 'o', 't', 't', 'e', 'r', '.', 'e', 'u', '\0',
   /* "dennogumi.org", true */ 'd', 'e', 'n', 'n', 'o', 'g', 'u', 'm', 'i', '.', 'o', 'r', 'g', '\0',
   /* "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',
@@ -4218,17 +4216,16 @@ static const char kSTSHostTable[] = {
   /* "dijkmanvandoorn.nl", true */ 'd', 'i', 'j', 'k', 'm', 'a', 'n', 'v', 'a', 'n', 'd', 'o', 'o', 'r', 'n', '.', 'n', 'l', '\0',
   /* "diju.ch", true */ 'd', 'i', 'j', 'u', '.', 'c', 'h', '\0',
   /* "dillonkorman.com", true */ 'd', 'i', 'l', 'l', 'o', 'n', 'k', 'o', 'r', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "dimanss47.net", true */ 'd', 'i', 'm', 'a', 'n', 's', 's', '4', '7', '.', 'n', 'e', 't', '\0',
   /* "dime-staging.com", true */ 'd', 'i', 'm', 'e', '-', 's', 't', 'a', 'g', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "dime.io", true */ 'd', 'i', 'm', 'e', '.', 'i', 'o', '\0',
   /* "dimonb.com", true */ 'd', 'i', 'm', 'o', 'n', 'b', '.', 'c', 'o', 'm', '\0',
   /* "dinepont.fr", true */ 'd', 'i', 'n', 'e', 'p', 'o', 'n', 't', '.', 'f', 'r', '\0',
-  /* "dingcc.com", true */ 'd', 'i', 'n', 'g', 'c', 'c', '.', 'c', 'o', 'm', '\0',
   /* "dinge.xyz", true */ 'd', 'i', 'n', 'g', 'e', '.', 'x', 'y', 'z', '\0',
   /* "dingss.com", true */ 'd', 'i', 'n', 'g', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "dinmtb.dk", true */ 'd', 'i', 'n', 'm', 't', 'b', '.', 'd', 'k', '\0',
   /* "dinotv.at", true */ 'd', 'i', 'n', 'o', 't', 'v', '.', 'a', 't', '\0',
   /* "dintillat.fr", true */ 'd', 'i', 'n', 't', 'i', 'l', 'l', 'a', 't', '.', 'f', 'r', '\0',
   /* "dintrafic.net", true */ 'd', 'i', 'n', 't', 'r', 'a', 'f', 'i', 'c', '.', 'n', 'e', 't', '\0',
   /* "dinube.com", true */ 'd', 'i', 'n', 'u', 'b', 'e', '.', 'c', 'o', 'm', '\0',
   /* "diodeled.com", true */ 'd', 'i', 'o', 'd', 'e', 'l', 'e', 'd', '.', 'c', 'o', 'm', '\0',
@@ -4262,16 +4259,17 @@ static const char kSTSHostTable[] = {
   /* "discoveryrom.org", true */ 'd', 'i', 's', 'c', 'o', 'v', 'e', 'r', 'y', 'r', 'o', 'm', '.', 'o', 'r', 'g', '\0',
   /* "dise-online.de", true */ 'd', 'i', 's', 'e', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "disinclined.org", true */ 'd', 'i', 's', 'i', 'n', 'c', 'l', 'i', 'n', 'e', 'd', '.', 'o', 'r', 'g', '\0',
   /* "disking.co.uk", true */ 'd', 'i', 's', 'k', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "disorderboutique.com", true */ 'd', 'i', 's', 'o', 'r', 'd', 'e', 'r', 'b', 'o', 'u', 't', 'i', 'q', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "disposable.link", true */ 'd', 'i', 's', 'p', 'o', 's', 'a', 'b', 'l', 'e', '.', 'l', 'i', 'n', 'k', '\0',
   /* "disruptivelabs.net", true */ 'd', 'i', 's', 'r', 'u', 'p', 't', 'i', 'v', 'e', 'l', 'a', 'b', 's', '.', 'n', 'e', 't', '\0',
   /* "disruptivelabs.org", true */ 'd', 'i', 's', 'r', 'u', 'p', 't', 'i', 'v', 'e', 'l', 'a', 'b', 's', '.', 'o', 'r', 'g', '\0',
+  /* "dissectcyber.com", true */ 'd', 'i', 's', 's', 'e', 'c', 't', 'c', 'y', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "dist.torproject.org", false */ 'd', 'i', 's', 't', '.', 't', 'o', 'r', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "distinctivephotography.com.au", true */ 'd', 'i', 's', 't', 'i', 'n', 'c', 't', 'i', 'v', 'e', 'p', 'h', 'o', 't', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "distinguishedprisoner.com", true */ 'd', 'i', 's', 't', 'i', 'n', 'g', 'u', 'i', 's', 'h', 'e', 'd', 'p', 'r', 'i', 's', 'o', 'n', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "distractionco.de", true */ 'd', 'i', 's', 't', 'r', 'a', 'c', 't', 'i', 'o', 'n', 'c', 'o', '.', 'd', 'e', '\0',
   /* "distrilogservices.com", true */ 'd', 'i', 's', 't', 'r', 'i', 'l', 'o', 'g', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', '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',
   /* "diversity-spielzeug.de", true */ 'd', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y', '-', 's', 'p', 'i', 'e', 'l', 'z', 'e', 'u', 'g', '.', 'd', 'e', '\0',
@@ -4338,17 +4336,17 @@ static const char kSTSHostTable[] = {
   /* "doc.to", true */ 'd', 'o', 'c', '.', 't', 'o', '\0',
   /* "docbox.ch", true */ 'd', 'o', 'c', 'b', 'o', 'x', '.', 'c', 'h', '\0',
   /* "docemeldoces.com", true */ 'd', 'o', 'c', 'e', 'm', 'e', 'l', 'd', 'o', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "dochitaceahlau.ro", true */ 'd', 'o', 'c', 'h', 'i', 't', 'a', 'c', 'e', 'a', 'h', 'l', 'a', 'u', '.', 'r', 'o', '\0',
   /* "doclassworks.com", true */ 'd', 'o', 'c', 'l', 'a', 's', 's', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "docloh.de", true */ 'd', 'o', 'c', 'l', 'o', 'h', '.', 'd', 'e', '\0',
   /* "docloudu.info", true */ 'd', 'o', 'c', 'l', 'o', 'u', 'd', 'u', '.', 'i', 'n', 'f', 'o', '\0',
   /* "docplexus.in", true */ 'd', 'o', 'c', 'p', 'l', 'e', 'x', 'u', 's', '.', 'i', 'n', '\0',
-  /* "docs.google.com", true */ 'd', 'o', 'c', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "docs.google.com", false */ 'd', 'o', 'c', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "docs.python.org", true */ 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "doctor-locks.co.uk", true */ 'd', 'o', 'c', 't', 'o', 'r', '-', 'l', 'o', 'c', 'k', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "doctor.dating", true */ 'd', 'o', 'c', 't', 'o', 'r', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "doctorfox.co.uk", true */ 'd', 'o', 'c', 't', 'o', 'r', 'f', 'o', 'x', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "doctorwho.cz", true */ 'd', 'o', 'c', 't', 'o', 'r', 'w', 'h', 'o', '.', 'c', 'z', '\0',
   /* "docucopies.com", true */ 'd', 'o', 'c', 'u', 'c', 'o', 'p', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "doculus.io", true */ 'd', 'o', 'c', 'u', 'l', 'u', 's', '.', 'i', 'o', '\0',
   /* "docupet.com", true */ 'd', 'o', 'c', 'u', 'p', 'e', 't', '.', 'c', 'o', 'm', '\0',
@@ -4501,27 +4499,28 @@ static const char kSTSHostTable[] = {
   /* "drewsilcock.co.uk", true */ 'd', 'r', 'e', 'w', 's', 'i', 'l', 'c', 'o', 'c', 'k', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "drgn.no", true */ 'd', 'r', 'g', 'n', '.', 'n', 'o', '\0',
   /* "driesjtuver.nl", true */ 'd', 'r', 'i', 'e', 's', 'j', 't', 'u', 'v', 'e', 'r', '.', 'n', 'l', '\0',
   /* "driftdude.nl", true */ 'd', 'r', 'i', 'f', 't', 'd', 'u', 'd', 'e', '.', 'n', 'l', '\0',
   /* "drighes.com", true */ 'd', 'r', 'i', 'g', 'h', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "drinkplanet.eu", true */ 'd', 'r', 'i', 'n', 'k', 'p', 'l', 'a', 'n', 'e', 't', '.', 'e', 'u', '\0',
   /* "drinkvabeer.com", true */ 'd', 'r', 'i', 'n', 'k', 'v', 'a', 'b', 'e', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "drino.org", false */ 'd', 'r', 'i', 'n', 'o', '.', 'o', 'r', 'g', '\0',
-  /* "drive.google.com", true */ 'd', 'r', 'i', 'v', 'e', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "drive.google.com", false */ 'd', 'r', 'i', 'v', 'e', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "drivenes.net", true */ 'd', 'r', 'i', 'v', 'e', 'n', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "drivercopilot.com", true */ 'd', 'r', 'i', 'v', 'e', 'r', 'c', 'o', 'p', 'i', 'l', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "driverless.id", true */ 'd', 'r', 'i', 'v', 'e', 'r', 'l', 'e', 's', 's', '.', 'i', 'd', '\0',
   /* "driverscollection.com", true */ 'd', 'r', 'i', 'v', 'e', 'r', 's', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "driving-lessons.co.uk", true */ 'd', 'r', 'i', 'v', 'i', 'n', 'g', '-', 'l', 'e', 's', 's', 'o', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "drivinghorror.com", true */ 'd', 'r', 'i', 'v', 'i', 'n', 'g', 'h', 'o', 'r', 'r', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "drivya.com", true */ 'd', 'r', 'i', 'v', 'y', 'a', '.', 'c', 'o', 'm', '\0',
   /* "drjacquesmalan.com", true */ 'd', 'r', 'j', 'a', 'c', 'q', 'u', 'e', 's', 'm', 'a', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "drjoe.ca", true */ 'd', 'r', 'j', 'o', 'e', '.', 'c', 'a', '\0',
   /* "drjuanitacollier.com", true */ 'd', 'r', 'j', 'u', 'a', 'n', 'i', 't', 'a', 'c', 'o', 'l', 'l', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "drobniuch.pl", false */ 'd', 'r', 'o', 'b', 'n', 'i', 'u', 'c', 'h', '.', 'p', 'l', '\0',
   /* "drogueriaelbarco.com", true */ 'd', 'r', 'o', 'g', 'u', 'e', 'r', 'i', 'a', 'e', 'l', 'b', 'a', 'r', 'c', 'o', '.', 'c', 'o', 'm', '\0',
   /* "droidapp.nl", true */ 'd', 'r', 'o', 'i', 'd', 'a', 'p', 'p', '.', 'n', 'l', '\0',
   /* "droidwiki.de", true */ 'd', 'r', 'o', 'i', 'd', 'w', 'i', 'k', 'i', '.', 'd', 'e', '\0',
   /* "droncentrum.pl", true */ 'd', 'r', 'o', 'n', 'c', 'e', 'n', 't', 'r', 'u', 'm', '.', 'p', 'l', '\0',
   /* "dronemediauk.com", true */ 'd', 'r', 'o', 'n', 'e', 'm', 'e', 'd', 'i', 'a', 'u', 'k', '.', 'c', 'o', 'm', '\0',
   /* "dronepit.dk", true */ 'd', 'r', 'o', 'n', 'e', 'p', 'i', 't', '.', 'd', 'k', '\0',
   /* "dronexpertos.com", true */ 'd', 'r', 'o', 'n', 'e', 'x', 'p', 'e', 'r', 't', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "droni.cz", true */ 'd', 'r', 'o', 'n', 'i', '.', 'c', 'z', '\0',
@@ -4758,16 +4757,17 @@ static const char kSTSHostTable[] = {
   /* "edvmesstec.de", true */ 'e', 'd', 'v', 'm', 'e', 's', 's', 't', 'e', 'c', '.', 'd', 'e', '\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',
   /* "eeb98.com", true */ 'e', 'e', 'b', '9', '8', '.', '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',
   /* "eengezinswoning-in-alphen-aan-den-rijn-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'a', 'l', 'p', 'h', 'e', 'n', '-', 'a', 'a', 'n', '-', 'd', 'e', 'n', '-', 'r', 'i', 'j', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-de-friese-meren-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'd', 'e', '-', 'f', 'r', 'i', 'e', 's', 'e', '-', 'm', 'e', 'r', 'e', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-friesland-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'f', 'r', 'i', 'e', 's', 'l', 'a', 'n', 'd', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-leeuwarden-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'l', 'e', 'e', 'u', 'w', 'a', 'r', 'd', 'e', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-pekela-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'p', 'e', 'k', 'e', 'l', 'a', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-rijnwaarden-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'r', 'i', 'j', 'n', 'w', 'a', 'a', 'r', 'd', 'e', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-sudwest-fryslan-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 's', 'u', 'd', 'w', 'e', 's', 't', '-', 'f', 'r', 'y', 's', 'l', 'a', 'n', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "eengezinswoning-in-zeeland-kopen.nl", true */ 'e', 'e', 'n', 'g', 'e', 'z', 'i', 'n', 's', 'w', 'o', 'n', 'i', 'n', 'g', '-', 'i', 'n', '-', 'z', 'e', 'e', 'l', 'a', 'n', 'd', '-', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
@@ -4818,17 +4818,16 @@ static const char kSTSHostTable[] = {
   /* "einar.io", true */ 'e', 'i', 'n', 'a', 'r', '.', 'i', 'o', '\0',
   /* "einaros.is", true */ 'e', 'i', 'n', 'a', 'r', 'o', 's', '.', 'i', 's', '\0',
   /* "einfachmaldiefressehalten.de", true */ 'e', 'i', 'n', 'f', 'a', 'c', 'h', 'm', 'a', 'l', 'd', 'i', 'e', 'f', 'r', 'e', 's', 's', 'e', 'h', 'a', 'l', 't', 'e', 'n', '.', 'd', 'e', '\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',
-  /* "eisp.it", false */ 'e', 'i', 's', 'p', '.', 'i', 't', '\0',
   /* "eit-web.de", false */ 'e', 'i', 't', '-', 'w', 'e', 'b', '.', 'd', 'e', '\0',
   /* "eitler.cx", true */ 'e', 'i', 't', 'l', 'e', 'r', '.', 'c', 'x', '\0',
   /* "eiyoushi-shigoto.com", true */ 'e', 'i', 'y', 'o', 'u', 's', 'h', 'i', '-', 's', 'h', 'i', 'g', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ejdv-anmeldung.de", true */ 'e', 'j', 'd', 'v', '-', 'a', 'n', 'm', 'e', 'l', 'd', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "ejeff.org", true */ 'e', 'j', 'e', 'f', 'f', '.', 'o', 'r', 'g', '\0',
   /* "ekedc.com", true */ 'e', 'k', 'e', 'd', 'c', '.', 'c', 'o', 'm', '\0',
   /* "ekodevices.com", true */ 'e', 'k', 'o', 'd', 'e', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "ekokontakt.cz", true */ 'e', 'k', 'o', 'k', 'o', 'n', 't', 'a', 'k', 't', '.', 'c', 'z', '\0',
@@ -4946,17 +4945,16 @@ static const char kSTSHostTable[] = {
   /* "emirabiz.com", false */ 'e', 'm', 'i', 'r', 'a', 'b', 'i', 'z', '.', 'c', 'o', 'm', '\0',
   /* "emkanrecords.com", true */ 'e', 'm', 'k', 'a', 'n', 'r', 'e', 'c', 'o', 'r', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "emkei.cz", true */ 'e', 'm', 'k', 'e', 'i', '.', 'c', 'z', '\0',
   /* "empathy.ca", true */ 'e', 'm', 'p', 'a', 't', 'h', 'y', '.', 'c', 'a', '\0',
   /* "employeestore.org", true */ 'e', 'm', 'p', 'l', 'o', 'y', 'e', 'e', 's', 't', 'o', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "employer411.com", true */ 'e', 'm', 'p', 'l', 'o', 'y', 'e', 'r', '4', '1', '1', '.', 'c', 'o', 'm', '\0',
   /* "empowerdb.com", true */ 'e', 'm', 'p', 'o', 'w', 'e', 'r', 'd', 'b', '.', 'c', 'o', 'm', '\0',
   /* "emprego.pt", true */ 'e', 'm', 'p', 'r', 'e', 'g', 'o', '.', 'p', 't', '\0',
-  /* "empty-r.com", true */ 'e', 'm', 'p', 't', 'y', '-', 'r', '.', 'c', 'o', 'm', '\0',
   /* "emptypath.com", true */ 'e', 'm', 'p', 't', 'y', 'p', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "emrenovation.com", true */ 'e', 'm', 'r', 'e', 'n', 'o', 'v', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "emyr.net", true */ 'e', 'm', 'y', 'r', '.', 'n', 'e', 't', '\0',
   /* "en-booster.jp", true */ 'e', 'n', '-', 'b', 'o', 'o', 's', 't', 'e', 'r', '.', 'j', 'p', '\0',
   /* "en-maktoob.search.yahoo.com", false */ 'e', 'n', '-', 'm', 'a', 'k', 't', 'o', 'o', 'b', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "enaia.fr", true */ 'e', 'n', 'a', 'i', 'a', '.', 'f', 'r', '\0',
   /* "enaim.de", true */ 'e', 'n', 'a', 'i', 'm', '.', 'd', 'e', '\0',
   /* "encfs.win", true */ 'e', 'n', 'c', 'f', 's', '.', 'w', 'i', 'n', '\0',
@@ -4990,17 +4988,16 @@ static const char kSTSHostTable[] = {
   /* "energyaupair.se", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'a', 'u', 'p', 'a', 'i', 'r', '.', 's', 'e', '\0',
   /* "energydrinkblog.de", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'd', 'r', 'i', 'n', 'k', 'b', 'l', 'o', 'g', '.', 'd', 'e', '\0',
   /* "energyled.com.br", true */ 'e', 'n', 'e', 'r', 'g', 'y', 'l', 'e', 'd', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "enfoqueseguro.com", true */ 'e', 'n', 'f', 'o', 'q', 'u', 'e', 's', 'e', 'g', 'u', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "engaugetools.com", true */ 'e', 'n', 'g', 'a', 'u', 'g', 'e', 't', 'o', 'o', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "engelundlicht.ch", true */ 'e', 'n', 'g', 'e', 'l', 'u', 'n', 'd', 'l', 'i', 'c', 'h', 't', '.', 'c', 'h', '\0',
   /* "engineeryourmarketing.com", false */ 'e', 'n', 'g', 'i', 'n', 'e', 'e', 'r', 'y', 'o', 'u', 'r', 'm', 'a', 'r', 'k', 'e', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "engineowning.com", true */ 'e', 'n', 'g', 'i', 'n', 'e', 'o', 'w', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
-  /* "enginsight.com", true */ 'e', 'n', 'g', 'i', 'n', 's', 'i', 'g', 'h', 't', '.', 'c', 'o', 'm', '\0',
   /* "enginx.net", true */ 'e', 'n', 'g', 'i', 'n', 'x', '.', 'n', 'e', 't', '\0',
   /* "englerts.de", true */ 'e', 'n', 'g', 'l', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
   /* "englishbulgaria.net", true */ 'e', 'n', 'g', 'l', 'i', 's', 'h', 'b', 'u', 'l', 'g', 'a', 'r', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "englishclub.com", true */ 'e', 'n', 'g', 'l', 'i', 's', 'h', 'c', 'l', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "englishforums.com", true */ 'e', 'n', 'g', 'l', 'i', 's', 'h', 'f', 'o', 'r', 'u', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "englishstudio.com", true */ 'e', 'n', 'g', 'l', 'i', 's', 'h', 's', 't', 'u', 'd', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "enjen.net", true */ 'e', 'n', 'j', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "enlatte.com", true */ 'e', 'n', 'l', 'a', 't', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -5043,17 +5040,17 @@ static const char kSTSHostTable[] = {
   /* "epichouse.net", true */ 'e', 'p', 'i', 'c', 'h', 'o', 'u', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "epickitty.co.uk", true */ 'e', 'p', 'i', 'c', 'k', 'i', 't', 't', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "epicpages.com", true */ 'e', 'p', 'i', 'c', 'p', 'a', 'g', 'e', 's', '.', 'c', 'o', 'm', '\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", false */ 'e', 'p', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\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',
   /* "eprofitacademy.com", true */ 'e', 'p', 'r', 'o', 'f', 'i', 't', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '.', 'c', 'o', 'm', '\0',
   /* "epsilon.dk", true */ 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'd', 'k', '\0',
   /* "epsorting.cz", true */ 'e', 'p', 's', 'o', 'r', 't', 'i', 'n', 'g', '.', 'c', 'z', '\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',
   /* "eqim.me", true */ 'e', 'q', 'i', 'm', '.', 'm', 'e', '\0',
   /* "eqorg.com", true */ 'e', 'q', 'o', 'r', 'g', '.', 'c', 'o', 'm', '\0',
@@ -5196,17 +5193,16 @@ static const char kSTSHostTable[] = {
   /* "etmirror.top", true */ 'e', 't', 'm', 'i', 'r', 'r', 'o', 'r', '.', 't', 'o', 'p', '\0',
   /* "etmirror.xyz", true */ 'e', 't', 'm', 'i', 'r', 'r', 'o', 'r', '.', 'x', 'y', 'z', '\0',
   /* "etproxy.tech", true */ 'e', 't', 'p', 'r', 'o', 'x', 'y', '.', 't', 'e', 'c', 'h', '\0',
   /* "etrker.com", true */ 'e', 't', 'r', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "ets2mp.de", true */ 'e', 't', 's', '2', 'm', 'p', '.', 'd', 'e', '\0',
   /* "ettebiz.com", true */ 'e', 't', 't', 'e', 'b', 'i', 'z', '.', 'c', 'o', 'm', '\0',
   /* "etv.cx", true */ 'e', 't', 'v', '.', 'c', 'x', '\0',
   /* "etyd.org", true */ 'e', 't', 'y', 'd', '.', 'o', 'r', 'g', '\0',
-  /* "euclideanpostulates.xyz", true */ 'e', 'u', 'c', 'l', 'i', 'd', 'e', 'a', 'n', 'p', 'o', 's', 't', 'u', 'l', 'a', 't', 'e', 's', '.', 'x', 'y', 'z', '\0',
   /* "eucollegetours.com", true */ 'e', 'u', 'c', 'o', 'l', 'l', 'e', 'g', 'e', 't', 'o', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "eugenekay.com", true */ 'e', 'u', 'g', 'e', 'n', 'e', 'k', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "eulenleben.de", true */ 'e', 'u', 'l', 'e', 'n', 'l', 'e', 'b', 'e', 'n', '.', 'd', 'e', '\0',
   /* "eupay.de", true */ 'e', 'u', 'p', 'a', 'y', '.', 'd', 'e', '\0',
   /* "euph.eu", true */ 'e', 'u', 'p', 'h', '.', 'e', 'u', '\0',
   /* "eureka.archi", true */ 'e', 'u', 'r', 'e', 'k', 'a', '.', 'a', 'r', 'c', 'h', 'i', '\0',
   /* "eurekaarchi.com", true */ 'e', 'u', 'r', 'e', 'k', 'a', 'a', 'r', 'c', 'h', 'i', '.', 'c', 'o', 'm', '\0',
   /* "eurekaarchitecture.com", true */ 'e', 'u', 'r', 'e', 'k', 'a', 'a', 'r', 'c', 'h', 'i', 't', 'e', 'c', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
@@ -5235,17 +5231,16 @@ static const char kSTSHostTable[] = {
   /* "eurospecautowerks.com", true */ 'e', 'u', 'r', 'o', 's', 'p', 'e', 'c', 'a', 'u', 't', 'o', 'w', 'e', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "eurostrategy.vn.ua", true */ 'e', 'u', 'r', 'o', 's', 't', 'r', 'a', 't', 'e', 'g', 'y', '.', 'v', 'n', '.', 'u', 'a', '\0',
   /* "eurotramp.com", true */ 'e', 'u', 'r', 'o', 't', 'r', 'a', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "eurotravelstar.eu", true */ 'e', 'u', 'r', 'o', 't', 'r', 'a', 'v', 'e', 'l', 's', 't', 'a', 'r', '.', 'e', 'u', '\0',
   /* "eutram.com", true */ 'e', 'u', 't', 'r', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "ev-zertifikate.de", true */ 'e', 'v', '-', 'z', 'e', 'r', 't', 'i', 'f', 'i', 'k', 'a', 't', 'e', '.', 'd', 'e', '\0',
   /* "eva.cz", true */ 'e', 'v', 'a', '.', 'c', 'z', '\0',
   /* "evades.io", true */ 'e', 'v', 'a', 'd', 'e', 's', '.', 'i', 'o', '\0',
-  /* "evalesc.com", true */ 'e', 'v', 'a', 'l', 'e', 's', 'c', '.', 'c', 'o', 'm', '\0',
   /* "evangelosm.com", true */ 'e', 'v', 'a', 'n', 'g', 'e', 'l', 'o', 's', 'm', '.', 'c', 'o', 'm', '\0',
   /* "evanhandgraaf.nl", true */ 'e', 'v', 'a', 'n', 'h', 'a', 'n', 'd', 'g', 'r', 'a', 'a', 'f', '.', 'n', 'l', '\0',
   /* "evankurniawan.com", true */ 'e', 'v', 'a', 'n', 'k', 'u', 'r', 'n', 'i', 'a', 'w', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "evantageglobal.com", true */ 'e', 'v', 'a', 'n', 't', 'a', 'g', 'e', 'g', 'l', 'o', 'b', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "evapp.org", true */ 'e', 'v', 'a', 'p', 'p', '.', 'o', 'r', 'g', '\0',
   /* "evasion-energie.com", true */ 'e', 'v', 'a', 's', 'i', 'o', 'n', '-', 'e', 'n', 'e', 'r', 'g', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "evasovova.cz", true */ 'e', 'v', 'a', 's', 'o', 'v', 'o', 'v', 'a', '.', 'c', 'z', '\0',
   /* "eve0s.com", true */ 'e', 'v', 'e', '0', 's', '.', 'c', 'o', 'm', '\0',
@@ -5301,16 +5296,17 @@ static const char kSTSHostTable[] = {
   /* "exhalespa.com", true */ 'e', 'x', 'h', 'a', 'l', 'e', 's', 'p', 'a', '.', 'c', 'o', 'm', '\0',
   /* "exhibityour.com", true */ 'e', 'x', 'h', 'i', 'b', 'i', 't', 'y', 'o', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "exiahost.com", true */ 'e', 'x', 'i', 'a', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "exit9wineandliquor.com", true */ 'e', 'x', 'i', 't', '9', 'w', 'i', 'n', 'e', 'a', 'n', 'd', 'l', 'i', 'q', 'u', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "exoscale.ch", true */ 'e', 'x', 'o', 's', 'c', 'a', 'l', 'e', '.', 'c', 'h', '\0',
   /* "exoticads.com", true */ 'e', 'x', 'o', 't', 'i', 'c', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "exp.de", true */ 'e', 'x', 'p', '.', 'd', 'e', '\0',
   /* "expancio.com", true */ 'e', 'x', 'p', 'a', 'n', 'c', 'i', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "expatads.com", true */ 'e', 'x', 'p', 'a', 't', 'a', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "experienceoz.com.au", true */ 'e', 'x', 'p', 'e', 'r', 'i', 'e', 'n', 'c', 'e', 'o', 'z', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "experteasy.com.au", true */ 'e', 'x', 'p', 'e', 'r', 't', 'e', 'a', 's', 'y', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "experts-en-gestion.fr", true */ 'e', 'x', 'p', 'e', 'r', 't', 's', '-', 'e', 'n', '-', 'g', 'e', 's', 't', 'i', 'o', 'n', '.', 'f', 'r', '\0',
   /* "explodie.org", true */ 'e', 'x', 'p', 'l', 'o', 'd', 'i', 'e', '.', 'o', 'r', 'g', '\0',
   /* "explodingcamera.com", true */ 'e', 'x', 'p', 'l', 'o', 'd', 'i', 'n', 'g', 'c', 'a', 'm', 'e', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "exploit-db.com", true */ 'e', 'x', 'p', 'l', 'o', 'i', 't', '-', 'd', 'b', '.', 'c', 'o', 'm', '\0',
   /* "exploit.cz", true */ 'e', 'x', 'p', 'l', 'o', 'i', 't', '.', 'c', 'z', '\0',
   /* "exploit.party", true */ 'e', 'x', 'p', 'l', 'o', 'i', 't', '.', 'p', 'a', 'r', 't', 'y', '\0',
@@ -5518,16 +5514,17 @@ static const char kSTSHostTable[] = {
   /* "fehnladen.de", true */ 'f', 'e', 'h', 'n', 'l', 'a', 'd', 'e', 'n', '.', 'd', 'e', '\0',
   /* "feirlane.org", false */ 'f', 'e', 'i', 'r', 'l', 'a', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "feisbed.com", true */ 'f', 'e', 'i', 's', 'b', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "feistyduck.com", true */ 'f', 'e', 'i', 's', 't', 'y', 'd', 'u', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "feitobrasilcosmeticos.com.br", true */ 'f', 'e', 'i', 't', 'o', 'b', 'r', 'a', 's', 'i', 'l', 'c', 'o', 's', 'm', 'e', 't', 'i', 'c', 'o', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "feld.saarland", true */ 'f', 'e', 'l', 'd', '.', 's', 'a', 'a', 'r', 'l', 'a', 'n', 'd', '\0',
   /* "felicifia.org", true */ 'f', 'e', 'l', 'i', 'c', 'i', 'f', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "felixhefner.de", true */ 'f', 'e', 'l', 'i', 'x', 'h', 'e', 'f', 'n', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "felixklein.at", false */ 'f', 'e', 'l', 'i', 'x', 'k', 'l', 'e', 'i', 'n', '.', 'a', 't', '\0',
   /* "felixrr.pro", true */ 'f', 'e', 'l', 'i', 'x', 'r', 'r', '.', 'p', 'r', 'o', '\0',
   /* "felixsanz.com", true */ 'f', 'e', 'l', 'i', 'x', 's', 'a', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "felixseele.de", true */ 'f', 'e', 'l', 'i', 'x', 's', 'e', 'e', 'l', 'e', '.', 'd', 'e', '\0',
   /* "felsing.net", true */ 'f', 'e', 'l', 's', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0',
   /* "femaledom.xyz", true */ 'f', 'e', 'm', 'a', 'l', 'e', 'd', 'o', 'm', '.', 'x', 'y', 'z', '\0',
   /* "femdombbw.com", true */ 'f', 'e', 'm', 'd', 'o', 'm', 'b', 'b', 'w', '.', 'c', 'o', 'm', '\0',
   /* "feminina.pt", true */ 'f', 'e', 'm', 'i', 'n', 'i', 'n', 'a', '.', 'p', 't', '\0',
   /* "fenno.net", true */ 'f', 'e', 'n', 'n', 'o', '.', 'n', 'e', 't', '\0',
@@ -5861,17 +5858,16 @@ static const char kSTSHostTable[] = {
   /* "fragnic.com", true */ 'f', 'r', 'a', 'g', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "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',
   /* "francisli.net", true */ 'f', 'r', 'a', 'n', 'c', 'i', 's', 'l', 'i', '.', 'n', 'e', 't', '\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", true */ 'f', 'r', 'a', 'n', 'k', 'e', 'n', '-', 'l', 'e', 'h', 'r', 'm', 'i', 't', 't', 'e', 'l', '.', 'd', 'e', '\0',
   /* "frankenlehrmittel.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',
   /* "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',
@@ -5905,16 +5901,17 @@ static const char kSTSHostTable[] = {
   /* "freejasongoudlock.org", true */ 'f', 'r', 'e', 'e', 'j', 'a', 's', 'o', 'n', 'g', 'o', 'u', 'd', 'l', 'o', 'c', 'k', '.', 'o', 'r', 'g', '\0',
   /* "freekdevries.nl", true */ 'f', 'r', 'e', 'e', 'k', 'd', 'e', 'v', 'r', 'i', 'e', 's', '.', 'n', 'l', '\0',
   /* "freelance.boutique", true */ 'f', 'r', 'e', 'e', 'l', 'a', 'n', 'c', 'e', '.', 'b', 'o', 'u', 't', 'i', 'q', 'u', 'e', '\0',
   /* "freelance.nl", true */ 'f', 'r', 'e', 'e', 'l', 'a', 'n', 'c', 'e', '.', 'n', 'l', '\0',
   /* "freelanced.co.za", true */ 'f', 'r', 'e', 'e', 'l', 'a', 'n', 'c', 'e', 'd', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "freelancehunt.com", true */ 'f', 'r', 'e', 'e', 'l', 'a', 'n', 'c', 'e', 'h', 'u', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "freelifer.jp", true */ 'f', 'r', 'e', 'e', 'l', 'i', 'f', 'e', 'r', '.', 'j', 'p', '\0',
   /* "freelo.cz", true */ 'f', 'r', 'e', 'e', 'l', 'o', '.', 'c', 'z', '\0',
+  /* "freemanning.de", true */ 'f', 'r', 'e', 'e', 'm', 'a', 'n', 'n', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "freemyipod.org", true */ 'f', 'r', 'e', 'e', 'm', 'y', 'i', 'p', 'o', 'd', '.', 'o', 'r', 'g', '\0',
   /* "freend.me", true */ 'f', 'r', 'e', 'e', 'n', 'd', '.', 'm', 'e', '\0',
   /* "freenetproject.org", true */ 'f', 'r', 'e', 'e', 'n', 'e', 't', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "freeshell.de", true */ 'f', 'r', 'e', 'e', 's', 'h', 'e', 'l', 'l', '.', 'd', 'e', '\0',
   /* "freesitemapgenerator.com", true */ 'f', 'r', 'e', 'e', 's', 'i', 't', 'e', 'm', 'a', 'p', 'g', 'e', 'n', 'e', 'r', 'a', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "freeslots.guru", true */ 'f', 'r', 'e', 'e', 's', 'l', 'o', 't', 's', '.', 'g', 'u', 'r', 'u', '\0',
   /* "freesolitaire.win", true */ 'f', 'r', 'e', 'e', 's', 'o', 'l', 'i', 't', 'a', 'i', 'r', 'e', '.', 'w', 'i', 'n', '\0',
   /* "freethetv.ie", true */ 'f', 'r', 'e', 'e', 't', 'h', 'e', 't', 'v', '.', 'i', 'e', '\0',
@@ -5926,17 +5923,16 @@ static const char kSTSHostTable[] = {
   /* "freifunk-luenen.de", true */ 'f', 'r', 'e', 'i', 'f', 'u', 'n', 'k', '-', 'l', 'u', 'e', 'n', 'e', 'n', '.', 'd', 'e', '\0',
   /* "freiwurst.net", true */ 'f', 'r', 'e', 'i', 'w', 'u', 'r', 's', 't', '.', 'n', 'e', 't', '\0',
   /* "fresh-hotel.org", true */ 'f', 'r', 'e', 's', 'h', '-', 'h', 'o', 't', 'e', 'l', '.', 'o', 'r', 'g', '\0',
   /* "fresh-networks.net", true */ 'f', 'r', 'e', 's', 'h', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'n', 'e', 't', '\0',
   /* "fresh.co.il", true */ 'f', 'r', 'e', 's', 'h', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "freshcode.nl", true */ 'f', 'r', 'e', 's', 'h', 'c', 'o', 'd', 'e', '.', 'n', 'l', '\0',
   /* "freshdns.nl", true */ 'f', 'r', 'e', 's', 'h', 'd', 'n', 's', '.', 'n', 'l', '\0',
   /* "freshempire.gov", true */ 'f', 'r', 'e', 's', 'h', 'e', 'm', 'p', 'i', 'r', 'e', '.', 'g', 'o', 'v', '\0',
-  /* "fretscha.com", true */ 'f', 'r', 'e', 't', 's', 'c', 'h', 'a', '.', 'c', 'o', 'm', '\0',
   /* "fretworksec.com", true */ 'f', 'r', 'e', 't', 'w', 'o', 'r', 'k', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "frezbo.com", true */ 'f', 'r', 'e', 'z', 'b', 'o', '.', 'c', 'o', 'm', '\0',
   /* "frickelboxx.de", true */ 'f', 'r', 'i', 'c', 'k', 'e', 'l', 'b', 'o', 'x', 'x', '.', 'd', 'e', '\0',
   /* "frickenate.com", true */ 'f', 'r', 'i', 'c', 'k', 'e', 'n', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fridolinka.cz", true */ 'f', 'r', 'i', 'd', 'o', 'l', 'i', 'n', 'k', 'a', '.', 'c', 'z', '\0',
   /* "friedhelm-wolf.de", true */ 'f', 'r', 'i', 'e', 'd', 'h', 'e', 'l', 'm', '-', 'w', 'o', 'l', 'f', '.', 'd', 'e', '\0',
   /* "friendlysiberia.com", true */ 'f', 'r', 'i', 'e', 'n', 'd', 'l', 'y', 's', 'i', 'b', 'e', 'r', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "friends-of-naz.com", true */ 'f', 'r', 'i', 'e', 'n', 'd', 's', '-', 'o', 'f', '-', 'n', 'a', 'z', '.', 'c', 'o', 'm', '\0',
@@ -6023,17 +6019,16 @@ static const char kSTSHostTable[] = {
   /* "funstempel.de", true */ 'f', 'u', 'n', 's', 't', 'e', 'm', 'p', 'e', 'l', '.', 'd', 'e', '\0',
   /* "funtime.kiev.ua", false */ 'f', 'u', 'n', 't', 'i', 'm', 'e', '.', 'k', 'i', 'e', 'v', '.', 'u', 'a', '\0',
   /* "furgo.love", true */ 'f', 'u', 'r', 'g', 'o', '.', 'l', 'o', 'v', 'e', '\0',
   /* "furkancaliskan.com", true */ 'f', 'u', 'r', 'k', 'a', 'n', 'c', 'a', 'l', 'i', 's', 'k', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "furnfurs.com", true */ 'f', 'u', 'r', 'n', 'f', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "furnitureconcept.co.uk", true */ 'f', 'u', 'r', 'n', 'i', 't', 'u', 'r', 'e', 'c', 'o', 'n', 'c', 'e', 'p', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "furry.dk", true */ 'f', 'u', 'r', 'r', 'y', '.', 'd', 'k', '\0',
   /* "fuseos.net", true */ 'f', 'u', 's', 'e', 'o', 's', '.', 'n', 'e', 't', '\0',
-  /* "fushee.com", true */ 'f', 'u', 's', 'h', 'e', 'e', '.', 'c', 'o', 'm', '\0',
   /* "futos.de", true */ 'f', 'u', 't', 'o', 's', '.', 'd', 'e', '\0',
   /* "futurefundapp.com", true */ 'f', 'u', 't', 'u', 'r', 'e', 'f', 'u', 'n', 'd', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "futureoceans.org", true */ 'f', 'u', 't', 'u', 'r', 'e', 'o', 'c', 'e', 'a', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "futuresonline.com", true */ 'f', 'u', 't', 'u', 'r', 'e', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "futurestarsusa.org", true */ 'f', 'u', 't', 'u', 'r', 'e', 's', 't', 'a', 'r', 's', 'u', 's', 'a', '.', 'o', 'r', 'g', '\0',
   /* "fuvpn.com", true */ 'f', 'u', 'v', 'p', 'n', '.', 'c', 'o', 'm', '\0',
   /* "fuwafuwa.moe", true */ 'f', 'u', 'w', 'a', 'f', 'u', 'w', 'a', '.', 'm', 'o', 'e', '\0',
   /* "fuyu.moe", true */ 'f', 'u', 'y', 'u', '.', 'm', 'o', 'e', '\0',
@@ -6076,17 +6071,16 @@ static const char kSTSHostTable[] = {
   /* "gadgethacks.com", true */ 'g', 'a', 'd', 'g', 'e', 't', 'h', 'a', 'c', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "gaestehaus-monika.com", true */ 'g', 'a', 'e', 's', 't', 'e', 'h', 'a', 'u', 's', '-', 'm', 'o', 'n', 'i', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "gagniard.org", true */ 'g', 'a', 'g', 'n', 'i', 'a', 'r', 'd', '.', 'o', 'r', 'g', '\0',
   /* "gagor.pl", true */ 'g', 'a', 'g', 'o', 'r', '.', 'p', 'l', '\0',
   /* "gagstempel.de", true */ 'g', 'a', 'g', 's', 't', 'e', 'm', 'p', 'e', 'l', '.', 'd', 'e', '\0',
   /* "gaichanh.com", true */ 'g', 'a', 'i', 'c', 'h', 'a', 'n', 'h', '.', 'c', 'o', 'm', '\0',
   /* "gaichon.com", true */ 'g', 'a', 'i', 'c', 'h', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "gaireg.de", true */ 'g', 'a', 'i', 'r', 'e', 'g', '.', 'd', 'e', '\0',
-  /* "gaiserik.com", true */ 'g', 'a', 'i', 's', 'e', 'r', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "gaite.me", true */ 'g', 'a', 'i', 't', 'e', '.', 'm', 'e', '\0',
   /* "gakkainavi-epsilon.jp", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '-', 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'j', 'p', '\0',
   /* "gakkainavi-epsilon.net", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '-', 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "gakkainavi.net", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '.', 'n', 'e', 't', '\0',
   /* "gakkainavi4.jp", true */ 'g', 'a', 'k', 'k', 'a', 'i', 'n', 'a', 'v', 'i', '4', '.', 'j', 'p', '\0',
   /* "galactic-crew.org", true */ 'g', 'a', 'l', 'a', 'c', 't', 'i', 'c', '-', 'c', 'r', 'e', 'w', '.', 'o', 'r', 'g', '\0',
   /* "galena.io", true */ 'g', 'a', 'l', 'e', 'n', 'a', '.', 'i', 'o', '\0',
   /* "galgoafegao.com.br", true */ 'g', 'a', 'l', 'g', 'o', 'a', 'f', 'e', 'g', 'a', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
@@ -6590,16 +6584,17 @@ static const char kSTSHostTable[] = {
   /* "gregorywiest.com", true */ 'g', 'r', 'e', 'g', 'o', 'r', 'y', 'w', 'i', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "greiners.net", true */ 'g', 'r', 'e', 'i', 'n', 'e', 'r', 's', '.', 'n', 'e', 't', '\0',
   /* "grekland.guide", true */ 'g', 'r', 'e', 'k', 'l', 'a', 'n', 'd', '.', 'g', 'u', 'i', 'd', 'e', '\0',
   /* "grepmaste.rs", true */ 'g', 'r', 'e', 'p', 'm', 'a', 's', 't', 'e', '.', 'r', 's', '\0',
   /* "grepular.com", true */ 'g', 'r', 'e', 'p', 'u', 'l', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "gresak.io", true */ 'g', 'r', 'e', 's', 'a', 'k', '.', 'i', 'o', '\0',
   /* "gretchelizartistry.com", true */ 'g', 'r', 'e', 't', 'c', 'h', 'e', 'l', 'i', 'z', 'a', 'r', 't', 'i', 's', 't', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "grey.house", true */ 'g', 'r', 'e', 'y', '.', 'h', 'o', 'u', 's', 'e', '\0',
+  /* "greyline.se", true */ 'g', 'r', 'e', 'y', 'l', 'i', 'n', 'e', '.', 's', 'e', '\0',
   /* "greysky.me", true */ 'g', 'r', 'e', 'y', 's', 'k', 'y', '.', 'm', 'e', '\0',
   /* "greyskymedia.com", true */ 'g', 'r', 'e', 'y', 's', 'k', 'y', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "greysolutions.it", true */ 'g', 'r', 'e', 'y', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'i', 't', '\0',
   /* "greywizard.com", true */ 'g', 'r', 'e', 'y', 'w', 'i', 'z', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "grh.am", true */ 'g', 'r', 'h', '.', 'a', 'm', '\0',
   /* "grian-bam.at", true */ 'g', 'r', 'i', 'a', 'n', '-', 'b', 'a', 'm', '.', 'a', 't', '\0',
   /* "grid2osm.org", true */ 'g', 'r', 'i', 'd', '2', 'o', 's', 'm', '.', 'o', 'r', 'g', '\0',
   /* "gridle.io", true */ 'g', 'r', 'i', 'd', 'l', 'e', '.', 'i', 'o', '\0',
@@ -6674,17 +6669,16 @@ static const char kSTSHostTable[] = {
   /* "guenthereder.at", true */ 'g', 'u', 'e', 'n', 't', 'h', 'e', 'r', 'e', 'd', 'e', 'r', '.', 'a', 't', '\0',
   /* "guentherhouse.com", true */ 'g', 'u', 'e', 'n', 't', 'h', 'e', 'r', 'h', 'o', 'u', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "guenthernoack.de", true */ 'g', 'u', 'e', 'n', 't', 'h', 'e', 'r', 'n', 'o', 'a', 'c', 'k', '.', 'd', 'e', '\0',
   /* "guerrilla.technology", true */ 'g', 'u', 'e', 'r', 'r', 'i', 'l', 'l', 'a', '.', 't', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', 'y', '\0',
   /* "guevener.de", true */ 'g', 'u', 'e', 'v', 'e', 'n', 'e', 'r', '.', 'd', 'e', '\0',
   /* "guffr.it", true */ 'g', 'u', 'f', 'f', 'r', '.', 'i', 't', '\0',
   /* "guffrits.com", true */ 'g', 'u', 'f', 'f', 'r', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "gugaltika-ipb.org", false */ 'g', 'u', 'g', 'a', 'l', 't', 'i', 'k', 'a', '-', 'i', 'p', 'b', '.', 'o', 'r', 'g', '\0',
-  /* "guge.gq", true */ 'g', 'u', 'g', 'e', '.', 'g', 'q', '\0',
   /* "guguke.net", true */ 'g', 'u', 'g', 'u', 'k', 'e', '.', 'n', 'e', 't', '\0',
   /* "guhenry3.tk", true */ 'g', 'u', 'h', 'e', 'n', 'r', 'y', '3', '.', 't', 'k', '\0',
   /* "guideo.ch", true */ 'g', 'u', 'i', 'd', 'e', 'o', '.', 'c', 'h', '\0',
   /* "guidetoiceland.is", false */ 'g', 'u', 'i', 'd', 'e', 't', 'o', 'i', 'c', 'e', 'l', 'a', 'n', 'd', '.', 'i', 's', '\0',
   /* "guildgearscore.cf", true */ 'g', 'u', 'i', 'l', 'd', 'g', 'e', 'a', 'r', 's', 'c', 'o', 'r', 'e', '.', 'c', 'f', '\0',
   /* "guillaume-leduc.fr", true */ 'g', 'u', 'i', 'l', 'l', 'a', 'u', 'm', 'e', '-', 'l', 'e', 'd', 'u', 'c', '.', 'f', 'r', '\0',
   /* "guillaumeperrin.io", true */ 'g', 'u', 'i', 'l', 'l', 'a', 'u', 'm', 'e', 'p', 'e', 'r', 'r', 'i', 'n', '.', 'i', 'o', '\0',
   /* "guiltypleasuresroleplaying.com", true */ 'g', 'u', 'i', 'l', 't', 'y', 'p', 'l', 'e', 'a', 's', 'u', 'r', 'e', 's', 'r', 'o', 'l', 'e', 'p', 'l', 'a', 'y', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
@@ -6703,19 +6697,17 @@ static const char kSTSHostTable[] = {
   /* "gurkan.in", true */ 'g', 'u', 'r', 'k', 'a', 'n', '.', 'i', 'n', '\0',
   /* "gurmel.ru", true */ 'g', 'u', 'r', 'm', 'e', 'l', '.', 'r', 'u', '\0',
   /* "gurochan.ch", true */ 'g', 'u', 'r', 'o', 'c', 'h', 'a', 'n', '.', 'c', 'h', '\0',
   /* "guru-naradi.cz", true */ 'g', 'u', 'r', 'u', '-', 'n', 'a', 'r', 'a', 'd', 'i', '.', 'c', 'z', '\0',
   /* "gurueffect.com", true */ 'g', 'u', 'r', 'u', 'e', 'f', 'f', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "gus.host", true */ 'g', 'u', 's', '.', 'h', 'o', 's', 't', '\0',
   /* "gus.moe", true */ 'g', 'u', 's', '.', 'm', 'o', 'e', '\0',
   /* "guscaplan.me", true */ 'g', 'u', 's', 'c', 'a', 'p', 'l', 'a', 'n', '.', 'm', 'e', '\0',
-  /* "guso.ml", true */ 'g', 'u', 's', 'o', '.', 'm', 'l', '\0',
   /* "guso.site", true */ 'g', 'u', 's', 'o', '.', 's', 'i', 't', 'e', '\0',
-  /* "guso.tech", true */ 'g', 'u', 's', 'o', '.', 't', 'e', 'c', 'h', '\0',
   /* "guthabenkarten-billiger.de", true */ 'g', 'u', 't', 'h', 'a', 'b', 'e', 'n', 'k', 'a', 'r', 't', 'e', 'n', '-', 'b', 'i', 'l', 'l', 'i', 'g', 'e', 'r', '.', 'd', 'e', '\0',
   /* "guts.me", true */ 'g', 'u', 't', 's', '.', 'm', 'e', '\0',
   /* "gutscheingeiz.de", true */ 'g', 'u', 't', 's', 'c', 'h', 'e', 'i', 'n', 'g', 'e', 'i', 'z', '.', 'd', 'e', '\0',
   /* "gutuia.blue", true */ 'g', 'u', 't', 'u', 'i', 'a', '.', 'b', 'l', 'u', 'e', '\0',
   /* "guus-thijssen.nl", true */ 'g', 'u', 'u', 's', '-', 't', 'h', 'i', 'j', 's', 's', 'e', 'n', '.', 'n', 'l', '\0',
   /* "guvernalternativa.ro", true */ 'g', 'u', 'v', 'e', 'r', 'n', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', 'a', '.', 'r', 'o', '\0',
   /* "guyot-tech.com", true */ 'g', 'u', 'y', 'o', 't', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "gv-neumann.de", true */ 'g', 'v', '-', 'n', 'e', 'u', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
@@ -6753,16 +6745,17 @@ static const char kSTSHostTable[] = {
   /* "hachre.de", false */ 'h', 'a', 'c', 'h', 'r', 'e', '.', 'd', 'e', '\0',
   /* "hackbubble.me", true */ 'h', 'a', 'c', 'k', 'b', 'u', 'b', 'b', 'l', 'e', '.', 'm', 'e', '\0',
   /* "hackcraft.net", true */ 'h', 'a', 'c', 'k', 'c', 'r', 'a', 'f', 't', '.', 'n', 'e', 't', '\0',
   /* "hackenkunjeleren.nl", true */ 'h', 'a', 'c', 'k', 'e', 'n', 'k', 'u', 'n', 'j', 'e', 'l', 'e', 'r', 'e', 'n', '.', 'n', 'l', '\0',
   /* "hackenturet.dk", true */ 'h', 'a', 'c', 'k', 'e', 'n', 't', 'u', 'r', 'e', 't', '.', 'd', 'k', '\0',
   /* "hacker.one", true */ 'h', 'a', 'c', 'k', 'e', 'r', '.', 'o', 'n', 'e', '\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',
   /* "hackerone.net", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '.', 'n', 'e', 't', '\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',
   /* "hackmd.io", true */ 'h', 'a', 'c', 'k', 'm', 'd', '.', 'i', 'o', '\0',
@@ -7224,17 +7217,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "hostma.ma", true */ 'h', 'o', 's', 't', 'm', 'a', '.', 'm', 'a', '\0',
   /* "hostmijnpagina.nl", true */ 'h', 'o', 's', 't', 'm', 'i', 'j', 'n', 'p', 'a', 'g', 'i', 'n', 'a', '.', 'n', 'l', '\0',
   /* "hosts.cf", true */ 'h', 'o', 's', 't', 's', '.', 'c', 'f', '\0',
   /* "hosyaku.gr.jp", true */ 'h', 'o', 's', 'y', 'a', 'k', 'u', '.', 'g', 'r', '.', 'j', 'p', '\0',
-  /* "hotartup.com", true */ 'h', 'o', 't', 'a', 'r', 't', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "hotchillibox.co.za", true */ 'h', 'o', 't', 'c', 'h', 'i', 'l', 'l', 'i', 'b', 'o', 'x', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "hotel-huberhof.at", true */ 'h', 'o', 't', 'e', 'l', '-', 'h', 'u', 'b', 'e', 'r', 'h', 'o', 'f', '.', 'a', 't', '\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-rosner.at", true */ 'h', 'o', 't', 'e', 'l', '-', 'r', 'o', 's', 'n', 'e', 'r', '.', 'a', 't', '\0',
   /* "hotel-tongruben.de", true */ 'h', 'o', 't', 'e', 'l', '-', 't', 'o', 'n', 'g', 'r', 'u', 'b', 'e', 'n', '.', 'd', 'e', '\0',
   /* "hotelaustria-wien.at", true */ 'h', 'o', 't', 'e', 'l', 'a', 'u', 's', 't', 'r', 'i', 'a', '-', 'w', 'i', 'e', 'n', '.', 'a', 't', '\0',
   /* "hotelflow.com.br", true */ 'h', 'o', 't', 'e', 'l', 'f', 'l', 'o', 'w', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
@@ -7283,17 +7275,16 @@ static const char kSTSHostTable[] = {
   /* "hs-group.net", true */ 'h', 's', '-', 'g', 'r', 'o', 'u', 'p', '.', 'n', 'e', 't', '\0',
   /* "hscorp.de", true */ 'h', 's', 'c', 'o', 'r', 'p', '.', 'd', 'e', '\0',
   /* "hsivonen.com", true */ 'h', 's', 'i', 'v', 'o', 'n', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "hsivonen.fi", true */ 'h', 's', 'i', 'v', 'o', 'n', 'e', 'n', '.', 'f', 'i', '\0',
   /* "hsivonen.iki.fi", true */ 'h', 's', 'i', 'v', 'o', 'n', 'e', 'n', '.', 'i', 'k', 'i', '.', 'f', 'i', '\0',
   /* "hsmr.cc", true */ 'h', 's', 'm', 'r', '.', 'c', 'c', '\0',
   /* "hsr.gov", false */ 'h', 's', 'r', '.', 'g', 'o', 'v', '\0',
   /* "hsts-preload-test.xyz", true */ 'h', 's', 't', 's', '-', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '-', 't', 'e', 's', 't', '.', 'x', 'y', 'z', '\0',
-  /* "hsts.com.br", true */ 'h', 's', 't', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "hsts.eu", true */ 'h', 's', 't', 's', '.', 'e', 'u', '\0',
   /* "hstsfail.appspot.com", true */ 'h', 's', 't', 's', 'f', 'a', 'i', 'l', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "hstspreload.appspot.com", true */ 'h', 's', 't', 's', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "hstspreload.com", true */ 'h', 's', 't', 's', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "hstspreload.org", true */ 'h', 's', 't', 's', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '.', 'o', 'r', 'g', '\0',
   /* "hszemi.de", true */ 'h', 's', 'z', 'e', 'm', 'i', '.', 'd', 'e', '\0',
   /* "hszhyy120.com", true */ 'h', 's', 'z', 'h', 'y', 'y', '1', '2', '0', '.', 'c', 'o', 'm', '\0',
   /* "htaccessbook.com", true */ 'h', 't', 'a', 'c', 'c', 'e', 's', 's', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
@@ -7334,17 +7325,16 @@ static const char kSTSHostTable[] = {
   /* "huiser.nl", true */ 'h', 'u', 'i', 's', 'e', 'r', '.', 'n', 'l', '\0',
   /* "humankode.com", true */ 'h', 'u', 'm', 'a', 'n', 'k', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hump.dk", true */ 'h', 'u', 'm', 'p', '.', 'd', 'k', '\0',
   /* "hund.io", true */ 'h', 'u', 'n', 'd', '.', 'i', 'o', '\0',
   /* "hundeformel.de", true */ 'h', 'u', 'n', 'd', 'e', 'f', 'o', 'r', 'm', 'e', 'l', '.', 'd', 'e', '\0',
   /* "hunger.im", true */ 'h', 'u', 'n', 'g', 'e', 'r', '.', 'i', 'm', '\0',
   /* "hunter.io", true */ 'h', 'u', 'n', 't', 'e', 'r', '.', 'i', 'o', '\0',
   /* "huodongweb.com", true */ 'h', 'u', 'o', 'd', 'o', 'n', 'g', 'w', 'e', 'b', '.', 'c', 'o', 'm', '\0',
-  /* "hup.blue", true */ 'h', 'u', 'p', '.', 'b', 'l', 'u', 'e', '\0',
   /* "hupp.se", true */ 'h', 'u', 'p', 'p', '.', 's', 'e', '\0',
   /* "hurd.is", true */ 'h', 'u', 'r', 'd', '.', 'i', 's', '\0',
   /* "huren.nl", true */ 'h', 'u', 'r', 'e', 'n', '.', 'n', 'l', '\0',
   /* "huroji.com", true */ 'h', 'u', 'r', 'o', 'j', 'i', '.', 'c', 'o', 'm', '\0',
   /* "husakbau.at", true */ 'h', 'u', 's', 'a', 'k', 'b', 'a', 'u', '.', 'a', 't', '\0',
   /* "hushfile.it", true */ 'h', 'u', 's', 'h', 'f', 'i', 'l', 'e', '.', 'i', 't', '\0',
   /* "husic.net", true */ 'h', 'u', 's', 'i', 'c', '.', 'n', 'e', 't', '\0',
   /* "husky.xyz", true */ 'h', 'u', 's', 'k', 'y', '.', 'x', 'y', 'z', '\0',
@@ -7593,17 +7583,16 @@ static const char kSTSHostTable[] = {
   /* "immunicity.host", true */ 'i', 'm', 'm', 'u', 'n', 'i', 'c', 'i', 't', 'y', '.', 'h', 'o', 's', 't', '\0',
   /* "immunicity.online", true */ 'i', 'm', 'm', 'u', 'n', 'i', 'c', 'i', 't', 'y', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "immunicity.rocks", true */ 'i', 'm', 'm', 'u', 'n', 'i', 'c', 'i', 't', 'y', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "immunicity.win", true */ 'i', 'm', 'm', 'u', 'n', 'i', 'c', 'i', 't', 'y', '.', 'w', 'i', 'n', '\0',
   /* "imokuri123.com", true */ 'i', 'm', 'o', 'k', 'u', 'r', 'i', '1', '2', '3', '.', 'c', 'o', 'm', '\0',
   /* "imoner.ga", true */ 'i', 'm', 'o', 'n', 'e', 'r', '.', 'g', 'a', '\0',
   /* "imoni-blog.net", true */ 'i', 'm', 'o', 'n', 'i', '-', 'b', 'l', 'o', 'g', '.', 'n', 'e', 't', '\0',
   /* "imoto.me", true */ 'i', 'm', 'o', 't', 'o', '.', 'm', 'e', '\0',
-  /* "imouyang.com", true */ 'i', 'm', 'o', 'u', 'y', 'a', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "impact.health.nz", true */ 'i', 'm', 'p', 'a', 'c', 't', '.', 'h', 'e', 'a', 'l', 't', 'h', '.', 'n', 'z', '\0',
   /* "impex.com.bd", true */ 'i', 'm', 'p', 'e', 'x', '.', 'c', 'o', 'm', '.', 'b', 'd', '\0',
   /* "impotsimple.ca", true */ 'i', 'm', 'p', 'o', 't', 's', 'i', 'm', 'p', 'l', 'e', '.', 'c', 'a', '\0',
   /* "imppac.de", true */ 'i', 'm', 'p', 'p', 'a', 'c', '.', 'd', 'e', '\0',
   /* "impyus.com", true */ 'i', 'm', 'p', 'y', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "imququ.com", true */ 'i', 'm', 'q', 'u', 'q', 'u', '.', 'c', 'o', 'm', '\0',
   /* "imreh.net", true */ 'i', 'm', 'r', 'e', 'h', '.', 'n', 'e', 't', '\0',
   /* "imrejonk.nl", true */ 'i', 'm', 'r', 'e', 'j', 'o', 'n', 'k', '.', 'n', 'l', '\0',
@@ -7700,32 +7689,32 @@ static const char kSTSHostTable[] = {
   /* "innermostparts.org", true */ 'i', 'n', 'n', 'e', 'r', 'm', 'o', 's', 't', 'p', 'a', 'r', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "innoloop.com", true */ 'i', 'n', 'n', 'o', 'l', 'o', 'o', 'p', '.', 'c', 'o', 'm', '\0',
   /* "innophate-security.com", true */ 'i', 'n', 'n', 'o', 'p', 'h', 'a', 't', 'e', '-', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "innovaptor.at", true */ 'i', 'n', 'n', 'o', 'v', 'a', 'p', 't', 'o', 'r', '.', 'a', 't', '\0',
   /* "innovaptor.com", true */ 'i', 'n', 'n', 'o', 'v', 'a', 'p', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "inoa8.com", true */ 'i', 'n', 'o', 'a', '8', '.', 'c', 'o', 'm', '\0',
   /* "inovatec.com", true */ 'i', 'n', 'o', 'v', 'a', 't', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "inplacers.ru", true */ 'i', 'n', 'p', 'l', 'a', 'c', 'e', 'r', 's', '.', 'r', 'u', '\0',
+  /* "inquisitive.io", true */ 'i', 'n', 'q', 'u', 'i', 's', 'i', 't', 'i', 'v', 'e', '.', 'i', 'o', '\0',
   /* "inschrijfformulier.com", true */ 'i', 'n', 's', 'c', 'h', 'r', 'i', 'j', 'f', 'f', 'o', 'r', 'm', 'u', 'l', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "insertcoins.net", true */ 'i', 'n', 's', 'e', 'r', 't', 'c', 'o', 'i', 'n', 's', '.', 'n', 'e', 't', '\0',
   /* "insideaudit.com", true */ 'i', 'n', 's', 'i', 'd', 'e', 'a', 'u', 'd', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "insightera.co.th", true */ 'i', 'n', 's', 'i', 'g', 'h', 't', 'e', 'r', 'a', '.', 'c', 'o', '.', 't', 'h', '\0',
   /* "insighti.com", true */ 'i', 'n', 's', 'i', 'g', 'h', 't', 'i', '.', 'c', 'o', 'm', '\0',
   /* "insighti.eu", true */ 'i', 'n', 's', 'i', 'g', 'h', 't', 'i', '.', 'e', 'u', '\0',
   /* "insighti.org", true */ 'i', 'n', 's', 'i', 'g', 'h', 't', 'i', '.', 'o', 'r', 'g', '\0',
   /* "insighti.sk", true */ 'i', 'n', 's', 'i', 'g', 'h', 't', 'i', '.', 's', 'k', '\0',
   /* "insouciant.org", true */ 'i', 'n', 's', 'o', 'u', 'c', 'i', 'a', 'n', 't', '.', 'o', 'r', 'g', '\0',
   /* "insping.com", true */ 'i', 'n', 's', 'p', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "inspirationalquotesuk.co.uk", true */ 'i', 'n', 's', 'p', 'i', 'r', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'q', 'u', 'o', 't', 'e', 's', 'u', 'k', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "inspired-lua.org", true */ 'i', 'n', 's', 'p', 'i', 'r', 'e', 'd', '-', 'l', 'u', 'a', '.', 'o', 'r', 'g', '\0',
   /* "inspy.me", true */ 'i', 'n', 's', 'p', 'y', '.', 'm', 'e', '\0',
   /* "instagram-atom.appspot.com", true */ 'i', 'n', 's', 't', 'a', 'g', 'r', 'a', 'm', '-', 'a', 't', 'o', 'm', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "instagrammernews.com", true */ 'i', 'n', 's', 't', 'a', 'g', 'r', 'a', 'm', 'm', 'e', 'r', 'n', 'e', 'w', 's', '.', 'c', 'o', 'm', '\0',
-  /* "installgentoo.net", true */ 'i', 'n', 's', 't', 'a', 'l', 'l', 'g', 'e', 'n', 't', 'o', 'o', '.', 'n', 'e', 't', '\0',
   /* "instant-hack.com", true */ 'i', 'n', 's', 't', 'a', 'n', 't', '-', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "instant.io", true */ 'i', 'n', 's', 't', 'a', 'n', 't', '.', 'i', 'o', '\0',
   /* "instantkhabar.com", true */ 'i', 'n', 's', 't', 'a', 'n', 't', 'k', 'h', 'a', 'b', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "instantsubs.de", true */ 'i', 'n', 's', 't', 'a', 'n', 't', 's', 'u', 'b', 's', '.', 'd', 'e', '\0',
   /* "instasex.ch", true */ 'i', 'n', 's', 't', 'a', 's', 'e', 'x', '.', 'c', 'h', '\0',
   /* "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',
@@ -7761,17 +7750,16 @@ static const char kSTSHostTable[] = {
   /* "interfug.de", true */ 'i', 'n', 't', 'e', 'r', 'f', 'u', 'g', '.', 'd', 'e', '\0',
   /* "interhosts.co.za", true */ 'i', 'n', 't', 'e', 'r', 'h', 'o', 's', 't', 's', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "interim-cto.de", true */ 'i', 'n', 't', 'e', 'r', 'i', 'm', '-', 'c', 't', 'o', '.', 'd', 'e', '\0',
   /* "interisaudit.com", true */ 'i', 'n', 't', 'e', 'r', 'i', 's', 'a', 'u', 'd', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "interleucina.org", true */ 'i', 'n', 't', 'e', 'r', 'l', 'e', 'u', 'c', 'i', 'n', 'a', '.', 'o', 'r', 'g', '\0',
   /* "intermedinet.nl", true */ 'i', 'n', 't', 'e', 'r', 'm', 'e', 'd', 'i', 'n', 'e', 't', '.', 'n', 'l', '\0',
   /* "internaldh.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'd', 'h', '.', 'c', 'o', 'm', '\0',
   /* "internaut.co.za", true */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 'u', 't', '.', 'c', 'o', '.', 'z', 'a', '\0',
-  /* "internect.co.za", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 'c', 't', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "internet-pornografie.de", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', '-', 'p', 'o', 'r', 'n', 'o', 'g', 'r', 'a', 'f', 'i', 'e', '.', 'd', 'e', '\0',
   /* "internetbank.swedbank.se", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'b', 'a', 'n', 'k', '.', 's', 'w', 'e', 'd', 'b', 'a', 'n', 'k', '.', 's', 'e', '\0',
   /* "internetbugbounty.org", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'b', 'u', 'g', 'b', 'o', 'u', 'n', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "internetcom.jp", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'c', 'o', 'm', '.', 'j', 'p', '\0',
   /* "internetdentalalliance.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'd', 'e', 'n', 't', 'a', 'l', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "internethering.de", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'h', 'e', 'r', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "internetofdon.gs", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'o', 'f', 'd', 'o', 'n', '.', 'g', 's', '\0',
   /* "internetoffensive.fail", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'o', 'f', 'f', 'e', 'n', 's', 'i', 'v', 'e', '.', 'f', 'a', 'i', 'l', '\0',
@@ -7812,17 +7800,16 @@ static const char kSTSHostTable[] = {
   /* "invoiced.com", true */ 'i', 'n', 'v', 'o', 'i', 'c', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "invoicefinance.com", true */ 'i', 'n', 'v', 'o', 'i', 'c', 'e', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "invoicefinance.nl", true */ 'i', 'n', 'v', 'o', 'i', 'c', 'e', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'n', 'l', '\0',
   /* "inwestcorp.se", true */ 'i', 'n', 'w', 'e', 's', 't', 'c', 'o', 'r', 'p', '.', 's', 'e', '\0',
   /* "inzdr.com", true */ 'i', 'n', 'z', 'd', 'r', '.', 'c', 'o', 'm', '\0',
   /* "iocheck.com", false */ 'i', 'o', 'c', 'h', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "iodice.org", true */ 'i', 'o', 'd', 'i', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "iodu.re", true */ 'i', 'o', 'd', 'u', '.', 'r', 'e', '\0',
-  /* "ioiart.eu", true */ 'i', 'o', 'i', 'a', 'r', 't', '.', 'e', 'u', '\0',
   /* "iolife.dk", true */ 'i', 'o', 'l', 'i', 'f', 'e', '.', 'd', 'k', '\0',
   /* "iompost.com", true */ 'i', 'o', 'm', 'p', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "iomstamps.com", true */ 'i', 'o', 'm', 's', 't', 'a', 'm', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "ionas-law.ro", false */ 'i', 'o', 'n', 'a', 's', '-', 'l', 'a', 'w', '.', 'r', 'o', '\0',
   /* "ionc.ca", true */ 'i', 'o', 'n', 'c', '.', 'c', 'a', '\0',
   /* "ionlabs.kr", true */ 'i', 'o', 'n', 'l', 'a', 'b', 's', '.', 'k', 'r', '\0',
   /* "ioover.net", true */ 'i', 'o', 'o', 'v', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "iossifovlab.com", true */ 'i', 'o', 's', 's', 'i', 'f', 'o', 'v', 'l', 'a', 'b', '.', 'c', 'o', 'm', '\0',
@@ -7970,16 +7957,17 @@ static const char kSTSHostTable[] = {
   /* "iteli.eu", true */ 'i', 't', 'e', 'l', 'i', '.', 'e', 'u', '\0',
   /* "items.lv", true */ 'i', 't', 'e', 'm', 's', '.', 'l', 'v', '\0',
   /* "itemton.com", true */ 'i', 't', 'e', 'm', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "iterror.co", true */ 'i', 't', 'e', 'r', 'r', 'o', 'r', '.', 'c', 'o', '\0',
   /* "itfaq.nl", true */ 'i', 't', 'f', 'a', 'q', '.', 'n', 'l', '\0',
   /* "itfh.eu", true */ 'i', 't', 'f', 'h', '.', 'e', 'u', '\0',
   /* "itfix.cz", true */ 'i', 't', 'f', 'i', 'x', '.', 'c', 'z', '\0',
   /* "itforge.nl", true */ 'i', 't', 'f', 'o', 'r', 'g', 'e', '.', 'n', 'l', '\0',
+  /* "ithenrik.com", true */ 'i', 't', 'h', 'e', 'n', 'r', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "itilo.de", true */ 'i', 't', 'i', 'l', 'o', '.', 'd', 'e', '\0',
   /* "itinsight.hu", true */ 'i', 't', 'i', 'n', 's', 'i', 'g', 'h', 't', '.', 'h', 'u', '\0',
   /* "itis4u.ch", true */ 'i', 't', 'i', 's', '4', 'u', '.', 'c', 'h', '\0',
   /* "itludens.com", true */ 'i', 't', 'l', 'u', 'd', 'e', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "itneeds.tech", true */ 'i', 't', 'n', 'e', 'e', 'd', 's', '.', 't', 'e', 'c', 'h', '\0',
   /* "itnota.com", true */ 'i', 't', 'n', 'o', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "itochan.jp", true */ 'i', 't', 'o', 'c', 'h', 'a', 'n', '.', 'j', 'p', '\0',
   /* "itooky.com", true */ 'i', 't', 'o', 'o', 'k', 'y', '.', 'c', 'o', 'm', '\0',
@@ -8087,17 +8075,16 @@ static const char kSTSHostTable[] = {
   /* "jakubtopic.cz", true */ 'j', 'a', 'k', 'u', 'b', 't', 'o', 'p', 'i', 'c', '.', 'c', 'z', '\0',
   /* "jakubvrba.cz", true */ 'j', 'a', 'k', 'u', 'b', 'v', 'r', 'b', 'a', '.', 'c', 'z', '\0',
   /* "jamesbillingham.com", true */ 'j', 'a', 'm', 'e', 's', 'b', 'i', 'l', 'l', 'i', 'n', 'g', 'h', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "jamesbywater.co.uk", true */ 'j', 'a', 'm', 'e', 's', 'b', 'y', 'w', 'a', 't', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "jamesbywater.com", true */ 'j', 'a', 'm', 'e', 's', 'b', 'y', 'w', 'a', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "jamesbywater.uk", true */ 'j', 'a', 'm', 'e', 's', 'b', 'y', 'w', 'a', 't', 'e', 'r', '.', 'u', 'k', '\0',
   /* "jamesgreenfield.com", true */ 'j', 'a', 'm', 'e', 's', 'g', 'r', 'e', 'e', 'n', 'f', 'i', 'e', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "jameshale.me", true */ 'j', 'a', 'm', 'e', 's', 'h', 'a', 'l', 'e', '.', 'm', 'e', '\0',
-  /* "jamesheald.com", true */ 'j', 'a', 'm', 'e', 's', 'h', 'e', 'a', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "jameshost.net", true */ 'j', 'a', 'm', 'e', 's', 'h', 'o', 's', 't', '.', 'n', 'e', 't', '\0',
   /* "jameshunt.us", false */ 'j', 'a', 'm', 'e', 's', 'h', 'u', 'n', 't', '.', 'u', 's', '\0',
   /* "jamesj.me", true */ 'j', 'a', 'm', 'e', 's', 'j', '.', 'm', 'e', '\0',
   /* "jamesknd.uk", true */ 'j', 'a', 'm', 'e', 's', 'k', 'n', 'd', '.', 'u', 'k', '\0',
   /* "jamesmilazzo.com", true */ 'j', 'a', 'm', 'e', 's', 'm', 'i', 'l', 'a', 'z', 'z', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jamesrains.com", true */ 'j', 'a', 'm', 'e', 's', 'r', 'a', 'i', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "jamesrussellward.co.uk", true */ 'j', 'a', 'm', 'e', 's', 'r', 'u', 's', 's', 'e', 'l', 'l', 'w', 'a', 'r', 'd', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "jamessmith.me.uk", true */ 'j', 'a', 'm', 'e', 's', 's', 'm', 'i', 't', 'h', '.', 'm', 'e', '.', 'u', 'k', '\0',
@@ -8314,17 +8301,16 @@ static const char kSTSHostTable[] = {
   /* "johnnybet.com", true */ 'j', 'o', 'h', 'n', 'n', 'y', 'b', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "johnroach.io", true */ 'j', 'o', 'h', 'n', 'r', 'o', 'a', 'c', 'h', '.', 'i', 'o', '\0',
   /* "johnsegovia.com", true */ 'j', 'o', 'h', 'n', 's', 'e', 'g', 'o', 'v', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "johnvanhese.nl", true */ 'j', 'o', 'h', 'n', 'v', 'a', 'n', 'h', 'e', 's', 'e', '.', 'n', 'l', '\0',
   /* "johnverkerk.com", true */ 'j', 'o', 'h', 'n', 'v', 'e', 'r', 'k', 'e', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "jointoweb.com", true */ 'j', 'o', 'i', 'n', 't', 'o', 'w', 'e', 'b', '.', 'c', 'o', 'm', '\0',
   /* "jokescoff.com", true */ 'j', 'o', 'k', 'e', 's', 'c', 'o', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "jokewignand.nl", true */ 'j', 'o', 'k', 'e', 'w', 'i', 'g', 'n', 'a', 'n', 'd', '.', 'n', 'l', '\0',
-  /* "jollausers.de", true */ 'j', 'o', 'l', 'l', 'a', 'u', 's', 'e', 'r', 's', '.', 'd', 'e', '\0',
   /* "jomo.tv", true */ 'j', 'o', 'm', 'o', '.', 't', 'v', '\0',
   /* "jonarcher.info", true */ 'j', 'o', 'n', 'a', 'r', 'c', 'h', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "jonas-thelemann.de", true */ 'j', 'o', 'n', 'a', 's', '-', 't', 'h', 'e', 'l', 'e', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "jonaskjodt.com", true */ 'j', 'o', 'n', 'a', 's', 'k', 'j', 'o', 'd', 't', '.', 'c', 'o', 'm', '\0',
   /* "jonasmoeller.consulting", true */ 'j', 'o', 'n', 'a', 's', 'm', 'o', 'e', 'l', 'l', 'e', 'r', '.', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '\0',
   /* "jonasmoeller.de", true */ 'j', 'o', 'n', 'a', 's', 'm', 'o', 'e', 'l', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "jonaswitmer.ch", true */ 'j', 'o', 'n', 'a', 's', 'w', 'i', 't', 'm', 'e', 'r', '.', 'c', 'h', '\0',
   /* "jonathan-apps.com", true */ 'j', 'o', 'n', 'a', 't', 'h', 'a', 'n', '-', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
@@ -8351,16 +8337,17 @@ static const char kSTSHostTable[] = {
   /* "jooto.com", true */ 'j', 'o', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jopsens.de", true */ 'j', 'o', 'p', 's', 'e', 'n', 's', '.', 'd', 'e', '\0',
   /* "joran.org", true */ 'j', 'o', 'r', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "jordans.co.uk", true */ 'j', 'o', 'r', 'd', 'a', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "jorgemesa.me", true */ 'j', 'o', 'r', 'g', 'e', 'm', 'e', 's', 'a', '.', 'm', 'e', '\0',
   /* "jornadasciberdefensa2016.es", true */ 'j', 'o', 'r', 'n', 'a', 'd', 'a', 's', 'c', 'i', 'b', 'e', 'r', 'd', 'e', 'f', 'e', 'n', 's', 'a', '2', '0', '1', '6', '.', 'e', 's', '\0',
   /* "jornane.me", true */ 'j', 'o', 'r', 'n', 'a', 'n', 'e', '.', 'm', 'e', '\0',
   /* "jornane.nl", true */ 'j', 'o', 'r', 'n', 'a', 'n', 'e', '.', 'n', 'l', '\0',
+  /* "jornane.no", true */ 'j', 'o', 'r', 'n', 'a', 'n', 'e', '.', 'n', 'o', '\0',
   /* "jorrit.info", true */ 'j', 'o', 'r', 'r', 'i', 't', '.', 'i', 'n', 'f', 'o', '\0',
   /* "joscares.com", true */ 'j', 'o', 's', 'c', 'a', 'r', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "josecage.com", true */ 'j', 'o', 's', 'e', 'c', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "joseetesser.nl", true */ 'j', 'o', 's', 'e', 'e', 't', 'e', 's', 's', 'e', 'r', '.', 'n', 'l', '\0',
   /* "josef-lotz.de", true */ 'j', 'o', 's', 'e', 'f', '-', 'l', 'o', 't', 'z', '.', 'd', 'e', '\0',
   /* "josefjanosec.com", true */ 'j', 'o', 's', 'e', 'f', 'j', 'a', 'n', 'o', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "josephrees.uk", true */ 'j', 'o', 's', 'e', 'p', 'h', 'r', 'e', 'e', 's', '.', 'u', 'k', '\0',
   /* "josericaurte.com", true */ 'j', 'o', 's', 'e', 'r', 'i', 'c', 'a', 'u', 'r', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -8473,16 +8460,17 @@ static const char kSTSHostTable[] = {
   /* "k-wallet.com", true */ 'k', '-', 'w', 'a', 'l', 'l', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "k2mts.org", true */ 'k', '2', 'm', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "k9swx.com", true */ 'k', '9', 's', 'w', 'x', '.', 'c', 'o', 'm', '\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',
   /* "kaffeekrone.de", true */ 'k', 'a', 'f', 'f', 'e', 'e', 'k', 'r', 'o', 'n', 'e', '.', 'd', 'e', '\0',
   /* "kafoom.de", true */ 'k', 'a', 'f', 'o', 'o', 'm', '.', 'd', 'e', '\0',
   /* "kaheim.de", false */ 'k', 'a', 'h', 'e', 'i', 'm', '.', 'd', 'e', '\0',
   /* "kaika-facilitymanagement.de", true */ 'k', 'a', 'i', 'k', 'a', '-', 'f', 'a', 'c', 'i', 'l', 'i', 't', 'y', 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', '.', 'd', 'e', '\0',
   /* "kaika-hms.de", true */ 'k', 'a', 'i', 'k', 'a', '-', 'h', 'm', 's', '.', 'd', 'e', '\0',
@@ -8976,16 +8964,17 @@ static const char kSTSHostTable[] = {
   /* "krestanskydarek.cz", true */ 'k', 'r', 'e', 's', 't', 'a', 'n', 's', 'k', 'y', 'd', 'a', 'r', 'e', 'k', '.', 'c', 'z', '\0',
   /* "kretschmann.consulting", true */ 'k', 'r', 'e', 't', 's', 'c', 'h', 'm', 'a', 'n', 'n', '.', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '\0',
   /* "kreuzpfadfinder.de", true */ 'k', 'r', 'e', 'u', 'z', 'p', 'f', 'a', 'd', 'f', 'i', 'n', 'd', 'e', 'r', '.', 'd', 'e', '\0',
   /* "kriechel.de", true */ 'k', 'r', 'i', 'e', 'c', 'h', 'e', 'l', '.', 'd', 'e', '\0',
   /* "kriegskindernothilfe.de", true */ 'k', 'r', 'i', 'e', 'g', 's', 'k', 'i', 'n', 'd', 'e', 'r', 'n', 'o', 't', 'h', 'i', 'l', 'f', 'e', '.', 'd', 'e', '\0',
   /* "kriptosec.com", true */ 'k', 'r', 'i', 'p', 't', 'o', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "krislamoureux.com", true */ 'k', 'r', 'i', 's', 'l', 'a', 'm', 'o', 'u', 'r', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "krisstarkey.co.uk", true */ 'k', 'r', 'i', 's', 's', 't', 'a', 'r', 'k', 'e', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "kristikala.nl", true */ 'k', 'r', 'i', 's', 't', 'i', 'k', 'a', 'l', 'a', '.', 'n', 'l', '\0',
   /* "kristinbailey.com", true */ 'k', 'r', 'i', 's', 't', 'i', 'n', 'b', 'a', 'i', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "kristjanrang.eu", true */ 'k', 'r', 'i', 's', 't', 'j', 'a', 'n', 'r', 'a', 'n', 'g', '.', 'e', 'u', '\0',
   /* "kristofferkoch.com", true */ 'k', 'r', 'i', 's', 't', 'o', 'f', 'f', 'e', 'r', 'k', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "krizek.cc", true */ 'k', 'r', 'i', 'z', 'e', 'k', '.', 'c', 'c', '\0',
   /* "krizevackapajdasija.hr", true */ 'k', 'r', 'i', 'z', 'e', 'v', 'a', 'c', 'k', 'a', 'p', 'a', 'j', 'd', 'a', 's', 'i', 'j', 'a', '.', 'h', 'r', '\0',
   /* "krk-media.pl", false */ 'k', 'r', 'k', '-', 'm', 'e', 'd', 'i', 'a', '.', 'p', 'l', '\0',
   /* "krmela.com", true */ 'k', 'r', 'm', 'e', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "krmeni.cz", true */ 'k', 'r', 'm', 'e', 'n', 'i', '.', 'c', 'z', '\0',
@@ -9081,16 +9070,17 @@ static const char kSTSHostTable[] = {
   /* "l-lab.org", true */ 'l', '-', 'l', 'a', 'b', '.', 'o', 'r', 'g', '\0',
   /* "l-rickroll-i.pw", true */ 'l', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'i', '.', 'p', 'w', '\0',
   /* "l18.io", true */ 'l', '1', '8', '.', 'i', 'o', '\0',
   /* "l4n-clan.de", true */ 'l', '4', 'n', '-', 'c', 'l', 'a', 'n', '.', 'd', 'e', '\0',
   /* "la-cave-a-nodo.fr", true */ 'l', 'a', '-', 'c', 'a', 'v', 'e', '-', 'a', '-', 'n', 'o', 'd', 'o', '.', 'f', 'r', '\0',
   /* "la-flora-negra.de", true */ 'l', 'a', '-', 'f', 'l', 'o', 'r', 'a', '-', 'n', 'e', 'g', 'r', 'a', '.', 'd', 'e', '\0',
   /* "la-grande-jaugue.fr", true */ 'l', 'a', '-', 'g', 'r', 'a', 'n', 'd', 'e', '-', 'j', 'a', 'u', 'g', 'u', 'e', '.', 'f', 'r', '\0',
   /* "la-retraite-info.com", true */ 'l', 'a', '-', 'r', 'e', 't', 'r', 'a', 'i', 't', 'e', '-', 'i', 'n', 'f', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "labfox.de", true */ 'l', 'a', 'b', 'f', 'o', 'x', '.', 'd', 'e', '\0',
   /* "labourreedevergheas.fr", true */ 'l', 'a', 'b', 'o', 'u', 'r', 'r', 'e', 'e', 'd', 'e', 'v', 'e', 'r', 'g', 'h', 'e', 'a', 's', '.', 'f', 'r', '\0',
   /* "laboutiquemarocaineduconvoyeur.com", true */ 'l', 'a', 'b', 'o', 'u', 't', 'i', 'q', 'u', 'e', 'm', 'a', 'r', 'o', 'c', 'a', 'i', 'n', 'e', 'd', 'u', 'c', 'o', 'n', 'v', 'o', 'y', 'e', 'u', 'r', '.', 'c', 'o', 'm', '\0',
   /* "laboutiquemarocaineduconvoyeur.ma", true */ 'l', 'a', 'b', 'o', 'u', 't', 'i', 'q', 'u', 'e', 'm', 'a', 'r', 'o', 'c', 'a', 'i', 'n', 'e', 'd', 'u', 'c', 'o', 'n', 'v', 'o', 'y', 'e', 'u', 'r', '.', 'm', 'a', '\0',
   /* "laboxfaitsoncinema.com", true */ 'l', 'a', 'b', 'o', 'x', 'f', 'a', 'i', 't', 's', 'o', 'n', 'c', 'i', 'n', 'e', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "labradorpuppiesforsalebyregisteredlabradorbreeders.com", true */ 'l', 'a', 'b', 'r', 'a', 'd', 'o', 'r', 'p', 'u', 'p', 'p', 'i', 'e', 's', 'f', 'o', 'r', 's', 'a', 'l', 'e', 'b', 'y', 'r', 'e', 'g', 'i', 's', 't', 'e', 'r', 'e', 'd', 'l', 'a', 'b', 'r', 'a', 'd', 'o', 'r', 'b', 'r', 'e', 'e', 'd', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "labrat.mobi", true */ 'l', 'a', 'b', 'r', 'a', 't', '.', 'm', 'o', 'b', 'i', '\0',
   /* "lacasa.fr", true */ 'l', 'a', 'c', 'a', 's', 'a', '.', 'f', 'r', '\0',
   /* "lacasabelucci.com", true */ 'l', 'a', 'c', 'a', 's', 'a', 'b', 'e', 'l', 'u', 'c', 'c', 'i', '.', 'c', 'o', 'm', '\0',
@@ -9261,17 +9251,16 @@ static const char kSTSHostTable[] = {
   /* "leanplando.com", true */ 'l', 'e', 'a', 'n', 'p', 'l', 'a', 'n', 'd', 'o', '.', 'c', 'o', 'm', '\0',
   /* "leaodarodesia.com.br", true */ 'l', 'e', 'a', 'o', 'd', 'a', 'r', 'o', 'd', 'e', 's', 'i', 'a', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "learnedhacker.com", true */ 'l', 'e', 'a', 'r', 'n', 'e', 'd', 'h', 'a', 'c', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "learnedovo.com", true */ 'l', 'e', 'a', 'r', 'n', 'e', 'd', 'o', 'v', 'o', '.', 'c', 'o', 'm', '\0',
   /* "learnflakes.net", true */ 'l', 'e', 'a', 'r', 'n', 'f', 'l', 'a', 'k', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "learntube.cz", true */ 'l', 'e', 'a', 'r', 'n', 't', 'u', 'b', 'e', '.', 'c', 'z', '\0',
   /* "leatherfurnitureexpo.com", true */ 'l', 'e', 'a', 't', 'h', 'e', 'r', 'f', 'u', 'r', 'n', 'i', 't', 'u', 'r', 'e', 'e', 'x', 'p', 'o', '.', 'c', 'o', 'm', '\0',
   /* "leaversmith.com", true */ 'l', 'e', 'a', 'v', 'e', 'r', 's', 'm', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0',
-  /* "lebal.se", true */ 'l', 'e', 'b', 'a', 'l', '.', 's', 'e', '\0',
   /* "lebanesearmy.gov.lb", true */ 'l', 'e', 'b', 'a', 'n', 'e', 's', 'e', 'a', 'r', 'm', 'y', '.', 'g', 'o', 'v', '.', 'l', 'b', '\0',
   /* "lebarmy.gov.lb", true */ 'l', 'e', 'b', 'a', 'r', 'm', 'y', '.', 'g', 'o', 'v', '.', 'l', 'b', '\0',
   /* "lebens-fluss.at", true */ 'l', 'e', 'b', 'e', 'n', 's', '-', 'f', 'l', 'u', 's', 's', '.', 'a', 't', '\0',
   /* "lebihan.pl", true */ 'l', 'e', 'b', 'i', 'h', 'a', 'n', '.', 'p', 'l', '\0',
   /* "leblanc.io", true */ 'l', 'e', 'b', 'l', 'a', 'n', 'c', '.', 'i', 'o', '\0',
   /* "lecourtier.fr", true */ 'l', 'e', 'c', 'o', 'u', 'r', 't', 'i', 'e', 'r', '.', 'f', 'r', '\0',
   /* "leddruckalarm.de", true */ 'l', 'e', 'd', 'd', 'r', 'u', 'c', 'k', 'a', 'l', 'a', 'r', 'm', '.', 'd', 'e', '\0',
   /* "ledhouse.sk", true */ 'l', 'e', 'd', 'h', 'o', 'u', 's', 'e', '.', 's', 'k', '\0',
@@ -9387,16 +9376,17 @@ static const char kSTSHostTable[] = {
   /* "lez-cuties.com", true */ 'l', 'e', 'z', '-', 'c', 'u', 't', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "lezdomsm.com", true */ 'l', 'e', 'z', 'd', 'o', 'm', 's', 'm', '.', 'c', 'o', 'm', '\0',
   /* "lfgss.com", true */ 'l', 'f', 'g', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "lghfinancialstrategy.ch", true */ 'l', 'g', 'h', 'f', 'i', 'n', 'a', 'n', 'c', 'i', 'a', 'l', 's', 't', 'r', 'a', 't', 'e', 'g', 'y', '.', 'c', 'h', '\0',
   /* "lhasaapso.com.br", true */ 'l', 'h', 'a', 's', 'a', 'a', 'p', 's', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "li-ke.co.jp", true */ 'l', 'i', '-', 'k', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "liangji.com.tw", false */ 'l', 'i', 'a', 'n', 'g', 'j', 'i', '.', 'c', 'o', 'm', '.', 't', 'w', '\0',
   /* "liaronce.win", true */ 'l', 'i', 'a', 'r', 'o', 'n', 'c', 'e', '.', 'w', 'i', 'n', '\0',
+  /* "libbitcoin.org", true */ 'l', 'i', 'b', 'b', 'i', 't', 'c', 'o', 'i', 'n', '.', 'o', 'r', 'g', '\0',
   /* "libble.eu", true */ 'l', 'i', 'b', 'b', 'l', 'e', '.', 'e', 'u', '\0',
   /* "libertas-tech.com", true */ 'l', 'i', 'b', 'e', 'r', 't', 'a', 's', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "libfte.org", true */ 'l', 'i', 'b', 'f', 't', 'e', '.', 'o', 'r', 'g', '\0',
   /* "libnull.com", true */ 'l', 'i', 'b', 'n', 'u', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "library-quest.com", true */ 'l', 'i', 'b', 'r', 'a', 'r', 'y', '-', 'q', 'u', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "libraryextension.com", true */ 'l', 'i', 'b', 'r', 'a', 'r', 'y', 'e', 'x', 't', 'e', 'n', 's', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "libraryfreedomproject.org", false */ 'l', 'i', 'b', 'r', 'a', 'r', 'y', 'f', 'r', 'e', 'e', 'd', 'o', 'm', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "libreboot.org", true */ 'l', 'i', 'b', 'r', 'e', 'b', 'o', 'o', 't', '.', 'o', 'r', 'g', '\0',
@@ -9514,16 +9504,17 @@ static const char kSTSHostTable[] = {
   /* "lirion.de", true */ 'l', 'i', 'r', 'i', 'o', 'n', '.', 'd', 'e', '\0',
   /* "liris-beautywelt.de", true */ 'l', 'i', 'r', 'i', 's', '-', 'b', 'e', 'a', 'u', 't', 'y', 'w', 'e', 'l', 't', '.', 'd', 'e', '\0',
   /* "lirnberger.com", true */ 'l', 'i', 'r', 'n', 'b', 'e', 'r', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "lisaco.de", true */ 'l', 'i', 's', 'a', 'c', 'o', '.', 'd', 'e', '\0',
   /* "lisamortimore.com", true */ 'l', 'i', 's', 'a', 'm', 'o', 'r', 't', 'i', 'm', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "lisbongold.com", true */ 'l', 'i', 's', 'b', 'o', 'n', 'g', 'o', 'l', 'd', '.', 'c', 'o', 'm', '\0',
   /* "lisieuxarquitetura.com.br", true */ 'l', 'i', 's', 'i', 'e', 'u', 'x', 'a', 'r', 'q', 'u', 'i', 't', 'e', 't', 'u', 'r', 'a', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "lislan.org.uk", true */ 'l', 'i', 's', 'l', 'a', 'n', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
+  /* "lisonfan.com", true */ 'l', 'i', 's', 'o', 'n', 'f', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "listahu.org", true */ 'l', 'i', 's', 't', 'a', 'h', 'u', '.', 'o', 'r', 'g', '\0',
   /* "lister-kirchweg.de", true */ 'l', 'i', 's', 't', 'e', 'r', '-', 'k', 'i', 'r', 'c', 'h', 'w', 'e', 'g', '.', 'd', 'e', '\0',
   /* "listminut.be", true */ 'l', 'i', 's', 't', 'm', 'i', 'n', 'u', 't', '.', 'b', 'e', '\0',
   /* "lists.fedoraproject.org", true */ 'l', 'i', 's', 't', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "lists.mayfirst.org", false */ 'l', 'i', 's', 't', 's', '.', 'm', 'a', 'y', 'f', 'i', 'r', 's', 't', '.', 'o', 'r', 'g', '\0',
   /* "lists.stg.fedoraproject.org", true */ 'l', 'i', 's', 't', 's', '.', 's', 't', 'g', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "litchidova.nl", true */ 'l', 'i', 't', 'c', 'h', 'i', 'd', 'o', 'v', 'a', '.', 'n', 'l', '\0',
   /* "litebits.com", true */ 'l', 'i', 't', 'e', 'b', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
@@ -9548,16 +9539,18 @@ static const char kSTSHostTable[] = {
   /* "livekaarten.nl", true */ 'l', 'i', 'v', 'e', 'k', 'a', 'a', 'r', 't', 'e', 'n', '.', 'n', 'l', '\0',
   /* "livekort.dk", true */ 'l', 'i', 'v', 'e', 'k', 'o', 'r', 't', '.', 'd', 'k', '\0',
   /* "livekort.se", true */ 'l', 'i', 'v', 'e', 'k', 'o', 'r', 't', '.', 's', 'e', '\0',
   /* "liveregistratie.nl", true */ 'l', 'i', 'v', 'e', 'r', 'e', 'g', 'i', 's', 't', 'r', 'a', 't', 'i', 'e', '.', 'n', 'l', '\0',
   /* "liverewrite.com", true */ 'l', 'i', 'v', 'e', 'r', 'e', 'w', 'r', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "liverpoolmutualhomes.org", false */ 'l', 'i', 'v', 'e', 'r', 'p', 'o', 'o', 'l', 'm', 'u', 't', 'u', 'a', 'l', 'h', 'o', 'm', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "living-space.co.nz", true */ 'l', 'i', 'v', 'i', 'n', 'g', '-', 's', 'p', 'a', 'c', 'e', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "livingworduk.org", true */ 'l', 'i', 'v', 'i', 'n', 'g', 'w', 'o', 'r', 'd', 'u', 'k', '.', 'o', 'r', 'g', '\0',
+  /* "livnev.me", true */ 'l', 'i', 'v', 'n', 'e', 'v', '.', 'm', 'e', '\0',
+  /* "livnev.xyz", true */ 'l', 'i', 'v', 'n', 'e', 'v', '.', 'x', 'y', 'z', '\0',
   /* "livolett.de", true */ 'l', 'i', 'v', 'o', 'l', 'e', 't', 't', '.', 'd', 'e', '\0',
   /* "lixingcong.com", false */ 'l', 'i', 'x', 'i', 'n', 'g', 'c', 'o', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "lizardsystems.com", true */ 'l', 'i', 'z', 'a', 'r', 'd', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "lizhi.io", true */ 'l', 'i', 'z', 'h', 'i', '.', 'i', 'o', '\0',
   /* "ljs.io", true */ 'l', 'j', 's', '.', 'i', 'o', '\0',
   /* "lknw.de", true */ 'l', 'k', 'n', 'w', '.', 'd', 'e', '\0',
   /* "lkummer.cz", true */ 'l', 'k', 'u', 'm', 'm', 'e', 'r', '.', 'c', 'z', '\0',
   /* "llamacuba.com", true */ 'l', 'l', 'a', 'm', 'a', 'c', 'u', 'b', 'a', '.', 'c', 'o', 'm', '\0',
@@ -9739,17 +9732,16 @@ static const char kSTSHostTable[] = {
   /* "lucidframeworks.com", true */ 'l', 'u', 'c', 'i', 'd', 'f', 'r', 'a', 'm', 'e', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "lucidlight.de", true */ 'l', 'u', 'c', 'i', 'd', 'l', 'i', 'g', 'h', 't', '.', 'd', 'e', '\0',
   /* "lucidlogs.com", true */ 'l', 'u', 'c', 'i', 'd', 'l', 'o', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "lucielavickova.com", true */ 'l', 'u', 'c', 'i', 'e', 'l', 'a', 'v', 'i', 'c', 'k', 'o', 'v', 'a', '.', 'c', 'o', 'm', '\0',
   /* "lucyparsonslabs.com", true */ 'l', 'u', 'c', 'y', 'p', 'a', 'r', 's', 'o', 'n', 's', 'l', 'a', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "lucysan.net", true */ 'l', 'u', 'c', 'y', 's', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "ludikovsky.name", true */ 'l', 'u', 'd', 'i', 'k', 'o', 'v', 's', 'k', 'y', '.', 'n', 'a', 'm', 'e', '\0',
   /* "ludwig.im", true */ 'l', 'u', 'd', 'w', 'i', 'g', '.', 'i', 'm', '\0',
-  /* "ludwiggrill.de", true */ 'l', 'u', 'd', 'w', 'i', 'g', 'g', 'r', 'i', 'l', 'l', '.', 'd', 'e', '\0',
   /* "luehne.de", true */ 'l', 'u', 'e', 'h', 'n', 'e', '.', 'd', 'e', '\0',
   /* "luelistan.net", true */ 'l', 'u', 'e', 'l', 'i', 's', 't', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "luftbild-siegerland.de", true */ 'l', 'u', 'f', 't', 'b', 'i', 'l', 'd', '-', 's', 'i', 'e', 'g', 'e', 'r', 'l', 'a', 'n', 'd', '.', 'd', 'e', '\0',
   /* "lugbb.org", true */ 'l', 'u', 'g', 'b', 'b', '.', 'o', 'r', 'g', '\0',
   /* "lukas-oppermann.de", true */ 'l', 'u', 'k', 'a', 's', '-', 'o', 'p', 'p', 'e', 'r', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "lukas-schauer.de", true */ 'l', 'u', 'k', 'a', 's', '-', 's', 'c', 'h', 'a', 'u', 'e', 'r', '.', 'd', 'e', '\0',
   /* "lukas.im", true */ 'l', 'u', 'k', 'a', 's', '.', 'i', 'm', '\0',
   /* "lukas2511.de", true */ 'l', 'u', 'k', 'a', 's', '2', '5', '1', '1', '.', 'd', 'e', '\0',
@@ -9956,16 +9948,17 @@ static const char kSTSHostTable[] = {
   /* "manageall.de", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'a', 'l', 'l', '.', 'd', 'e', '\0',
   /* "manageforall.com", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'f', 'o', 'r', 'a', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "manageforall.de", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'f', 'o', 'r', 'a', 'l', 'l', '.', 'd', 'e', '\0',
   /* "management-companie.ro", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', '-', 'c', 'o', 'm', 'p', 'a', 'n', 'i', 'e', '.', 'r', 'o', '\0',
   /* "management-ethics.com", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', '-', 'e', 't', 'h', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "managementboek.nl", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', 'b', 'o', 'e', 'k', '.', 'n', 'l', '\0',
   /* "manageprojects.com", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'p', 'r', 'o', 'j', 'e', 'c', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "manager.linode.com", false */ 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'l', 'i', 'n', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "managewp.org", true */ 'm', 'a', 'n', 'a', 'g', 'e', 'w', 'p', '.', 'o', 'r', 'g', '\0',
   /* "manantial.mx", true */ 'm', 'a', 'n', 'a', 'n', 't', 'i', 'a', 'l', '.', 'm', 'x', '\0',
   /* "mandala-ausmalbilder.de", true */ 'm', 'a', 'n', 'd', 'a', 'l', 'a', '-', 'a', 'u', 's', 'm', 'a', 'l', 'b', 'i', 'l', 'd', 'e', 'r', '.', 'd', 'e', '\0',
   /* "manesht.ir", true */ 'm', 'a', 'n', 'e', 's', 'h', 't', '.', 'i', 'r', '\0',
   /* "manfredimatteo.com", true */ 'm', 'a', 'n', 'f', 'r', 'e', 'd', 'i', 'm', 'a', 't', 't', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "mangaristica.com", true */ 'm', 'a', 'n', 'g', 'a', 'r', 'i', 's', 't', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "mangazuki.co", true */ 'm', 'a', 'n', 'g', 'a', 'z', 'u', 'k', 'i', '.', 'c', 'o', '\0',
   /* "manhattanchoralensemble.org", true */ 'm', 'a', 'n', 'h', 'a', 't', 't', 'a', 'n', 'c', 'h', 'o', 'r', 'a', 'l', 'e', 'n', 's', 'e', 'm', 'b', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "manicode.com", true */ 'm', 'a', 'n', 'i', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
@@ -9999,32 +9992,29 @@ static const char kSTSHostTable[] = {
   /* "marc-schlagenhauf.de", true */ 'm', 'a', 'r', 'c', '-', 's', 'c', 'h', 'l', 'a', 'g', 'e', 'n', 'h', 'a', 'u', 'f', '.', 'd', 'e', '\0',
   /* "marcdorka.de", true */ 'm', 'a', 'r', 'c', 'd', 'o', 'r', 'k', 'a', '.', 'd', 'e', '\0',
   /* "marcel-preuss.de", true */ 'm', 'a', 'r', 'c', 'e', 'l', '-', 'p', 'r', 'e', 'u', 's', 's', '.', 'd', 'e', '\0',
   /* "marcelmarnitz.com", true */ 'm', 'a', 'r', 'c', 'e', 'l', 'm', 'a', 'r', 'n', 'i', 't', 'z', '.', 'c', 'o', 'm', '\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',
   /* "marcgoertz.de", true */ 'm', 'a', 'r', 'c', 'g', 'o', 'e', 'r', 't', 'z', '.', 'd', 'e', '\0',
   /* "marco-polo-reisen.com", true */ 'm', 'a', 'r', 'c', 'o', '-', 'p', 'o', 'l', 'o', '-', 'r', 'e', 'i', 's', 'e', 'n', '.', 'c', 'o', 'm', '\0',
-  /* "marcoececilia.it", true */ 'm', 'a', 'r', 'c', 'o', 'e', 'c', 'e', 'c', 'i', 'l', 'i', 'a', '.', 'i', 't', '\0',
   /* "marcohager.de", true */ 'm', 'a', 'r', 'c', 'o', 'h', 'a', 'g', 'e', 'r', '.', 'd', 'e', '\0',
   /* "marcoherten.com", true */ 'm', 'a', 'r', 'c', 'o', 'h', 'e', 'r', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "marcoslater.com", true */ 'm', 'a', 'r', 'c', 'o', 's', 'l', 'a', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "marcosteixeira.tk", true */ 'm', 'a', 'r', 'c', 'o', 's', 't', 'e', 'i', 'x', 'e', 'i', 'r', 'a', '.', 't', 'k', '\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',
   /* "mardelcupon.com", true */ 'm', 'a', 'r', 'd', 'e', 'l', 'c', 'u', 'p', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "mareklecian.cz", true */ 'm', 'a', 'r', 'e', 'k', 'l', 'e', 'c', 'i', 'a', 'n', '.', 'c', 'z', '\0',
   /* "margagriesser.de", true */ 'm', 'a', 'r', 'g', 'a', 'g', 'r', 'i', 'e', 's', 's', 'e', 'r', '.', 'd', 'e', '\0',
   /* "margecommunication.com", true */ 'm', 'a', 'r', 'g', 'e', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 'c', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "marialempke.com", true */ 'm', 'a', 'r', 'i', 'a', 'l', 'e', 'm', 'p', 'k', 'e', '.', 'c', 'o', 'm', '\0',
   /* "marianatherapy.com", true */ 'm', 'a', 'r', 'i', 'a', 'n', 'a', 't', 'h', 'e', 'r', 'a', 'p', 'y', '.', 'c', 'o', 'm', '\0',
   /* "mariannenan.nl", true */ 'm', 'a', 'r', 'i', 'a', 'n', 'n', 'e', 'n', 'a', 'n', '.', 'n', 'l', '\0',
   /* "mariaolesen.dk", true */ 'm', 'a', 'r', 'i', 'a', 'o', 'l', 'e', 's', 'e', 'n', '.', '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',
   /* "marikafranke.de", true */ 'm', 'a', 'r', 'i', 'k', 'a', 'f', 'r', 'a', 'n', 'k', 'e', '.', 'd', 'e', '\0',
   /* "marilsnijders.nl", true */ 'm', 'a', 'r', 'i', 'l', 's', 'n', 'i', 'j', 'd', 'e', 'r', 's', '.', 'n', 'l', '\0',
   /* "marilynstreats.com", true */ 'm', 'a', 'r', 'i', 'l', 'y', 'n', 's', 't', 'r', 'e', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "marinazarza.es", true */ 'm', 'a', 'r', 'i', 'n', 'a', 'z', 'a', 'r', 'z', 'a', '.', 'e', 's', '\0',
   /* "marine.gov", true */ 'm', 'a', 'r', 'i', 'n', 'e', '.', 'g', 'o', 'v', '\0',
   /* "marinela.com.mx", true */ 'm', 'a', 'r', 'i', 'n', 'e', 'l', 'a', '.', 'c', 'o', 'm', '.', 'm', 'x', '\0',
@@ -11033,17 +11023,16 @@ static const char kSTSHostTable[] = {
   /* "mystic-welten.de", true */ 'm', 'y', 's', 't', 'i', 'c', '-', 'w', 'e', 'l', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "mystickphysick.com", true */ 'm', 'y', 's', 't', 'i', 'c', 'k', 'p', 'h', 'y', 's', 'i', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "mysticplumes.com", true */ 'm', 'y', 's', 't', 'i', 'c', 'p', 'l', 'u', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "mystown.org", true */ 'm', 'y', 's', 't', 'o', 'w', 'n', '.', 'o', 'r', 'g', '\0',
   /* "mystudy.me", true */ 'm', 'y', 's', 't', 'u', 'd', 'y', '.', 'm', 'e', '\0',
   /* "mytc.fr", true */ 'm', 'y', 't', 'c', '.', 'f', 'r', '\0',
   /* "mythengay.ch", true */ 'm', 'y', 't', 'h', 'e', 'n', 'g', 'a', 'y', '.', 'c', 'h', '\0',
   /* "mythlogic.com", true */ 'm', 'y', 't', 'h', 'l', 'o', 'g', 'i', 'c', '.', 'c', 'o', 'm', '\0',
-  /* "mythslegendscollection.com", true */ 'm', 'y', 't', 'h', 's', 'l', 'e', 'g', 'e', 'n', 'd', 's', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "mytraiteurs.com", true */ 'm', 'y', 't', 'r', 'a', 'i', 't', 'e', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "mytripcar.co.uk", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "mytripcar.com", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "mytripcar.de", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'd', 'e', '\0',
   /* "mytripcar.es", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'e', 's', '\0',
   /* "mytripcar.fr", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'f', 'r', '\0',
   /* "mytty.net", true */ 'm', 'y', 't', 't', 'y', '.', 'n', 'e', 't', '\0',
   /* "myulog.net", true */ 'm', 'y', 'u', 'l', 'o', 'g', '.', 'n', 'e', 't', '\0',
@@ -11199,16 +11188,17 @@ static const char kSTSHostTable[] = {
   /* "neer.io", true */ 'n', 'e', 'e', 'r', '.', 'i', 'o', '\0',
   /* "nefertitis.cz", true */ 'n', 'e', 'f', 'e', 'r', 't', 'i', 't', 'i', 's', '.', 'c', 'z', '\0',
   /* "neftebitum-kngk.ru", true */ 'n', 'e', 'f', 't', 'e', 'b', 'i', 't', 'u', 'm', '-', 'k', 'n', 'g', 'k', '.', 'r', 'u', '\0',
   /* "neg9.org", false */ 'n', 'e', 'g', '9', '.', 'o', 'r', 'g', '\0',
   /* "negai.moe", true */ 'n', 'e', 'g', 'a', 'i', '.', 'm', 'o', 'e', '\0',
   /* "negativecurvature.net", true */ 'n', 'e', 'g', 'a', 't', 'i', 'v', 'e', 'c', 'u', 'r', 'v', 'a', 't', 'u', 'r', 'e', '.', 'n', 'e', 't', '\0',
   /* "neglecteddiseases.gov", true */ 'n', 'e', 'g', 'l', 'e', 'c', 't', 'e', 'd', 'd', 'i', 's', 'e', 'a', 's', 'e', 's', '.', 'g', 'o', 'v', '\0',
   /* "neillans.co.uk", true */ 'n', 'e', 'i', 'l', 'l', 'a', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "neillans.com", true */ 'n', 'e', 'i', 'l', 'l', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "neilwynne.com", true */ 'n', 'e', 'i', 'l', 'w', 'y', 'n', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "neko-nyan.org", true */ 'n', 'e', 'k', 'o', '-', 'n', 'y', 'a', 'n', '.', 'o', 'r', 'g', '\0',
   /* "neko.li", true */ 'n', 'e', 'k', 'o', '.', 'l', 'i', '\0',
   /* "nekomimi.pl", true */ 'n', 'e', 'k', 'o', 'm', 'i', 'm', 'i', '.', 'p', 'l', '\0',
   /* "nekosc.com", true */ 'n', 'e', 'k', 'o', 's', 'c', '.', 'c', 'o', 'm', '\0',
   /* "nelhage.com", true */ 'n', 'e', 'l', 'h', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "nella-project.org", true */ 'n', 'e', 'l', 'l', 'a', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "nellacms.com", true */ 'n', 'e', 'l', 'l', 'a', 'c', 'm', 's', '.', 'c', 'o', 'm', '\0',
@@ -11293,17 +11283,16 @@ static const char kSTSHostTable[] = {
   /* "netwerkmanager.nl", true */ 'n', 'e', 't', 'w', 'e', 'r', 'k', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'n', 'l', '\0',
   /* "network-notes.com", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', '-', 'n', 'o', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "network23.nl", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', '2', '3', '.', 'n', 'l', '\0',
   /* "networkalarmcorp.com", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'a', 'l', 'a', 'r', 'm', 'c', 'o', 'r', 'p', '.', 'c', 'o', 'm', '\0',
   /* "networking4all.com", false */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'i', 'n', 'g', '4', 'a', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "networkingnexus.net", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'i', 'n', 'g', 'n', 'e', 'x', 'u', 's', '.', 'n', 'e', 't', '\0',
   /* "networkingphoenix.com", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'i', 'n', 'g', 'p', 'h', 'o', 'e', 'n', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "networkmarketingpro.com", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'm', 'a', 'r', 'k', 'e', 't', 'i', 'n', 'g', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "networth.at", true */ 'n', 'e', 't', 'w', 'o', 'r', 't', 'h', '.', 'a', 't', '\0',
   /* "netzfrauen.org", true */ 'n', 'e', 't', 'z', 'f', 'r', 'a', 'u', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "netzspielplatz.de", true */ 'n', 'e', 't', 'z', 's', 'p', 'i', 'e', 'l', 'p', 'l', 'a', 't', 'z', '.', 'd', 'e', '\0',
   /* "netzvieh.de", true */ 'n', 'e', 't', 'z', 'v', 'i', 'e', 'h', '.', 'd', 'e', '\0',
   /* "netzwerkwerk.de", true */ 'n', 'e', 't', 'z', 'w', 'e', 'r', 'k', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "netzzwerg4u.de", true */ 'n', 'e', 't', 'z', 'z', 'w', 'e', 'r', 'g', '4', 'u', '.', 'd', 'e', '\0',
   /* "neuflizeobc.net", true */ 'n', 'e', 'u', 'f', 'l', 'i', 'z', 'e', 'o', 'b', 'c', '.', 'n', 'e', 't', '\0',
   /* "neuhaus-city.de", true */ 'n', 'e', 'u', 'h', 'a', 'u', 's', '-', 'c', 'i', 't', 'y', '.', 'd', 'e', '\0',
   /* "neuro-plus-100.com", true */ 'n', 'e', 'u', 'r', 'o', '-', 'p', 'l', 'u', 's', '-', '1', '0', '0', '.', 'c', 'o', 'm', '\0',
@@ -11316,17 +11305,16 @@ static const char kSTSHostTable[] = {
   /* "nevadafiber.net", true */ 'n', 'e', 'v', 'a', 'd', 'a', 'f', 'i', 'b', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "nevoxo.com", true */ 'n', 'e', 'v', 'o', 'x', 'o', '.', 'c', 'o', 'm', '\0',
   /* "new-black-order.com", true */ 'n', 'e', 'w', '-', 'b', 'l', 'a', 'c', 'k', '-', 'o', 'r', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "new-ms.com", true */ 'n', 'e', 'w', '-', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "new-process.ch", true */ 'n', 'e', 'w', '-', 'p', 'r', 'o', 'c', 'e', 's', 's', '.', 'c', 'h', '\0',
   /* "new-process.com", true */ 'n', 'e', 'w', '-', 'p', 'r', 'o', 'c', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "new-process.de", true */ 'n', 'e', 'w', '-', 'p', 'r', 'o', 'c', 'e', 's', 's', '.', 'd', 'e', '\0',
   /* "new-process.eu", true */ 'n', 'e', 'w', '-', 'p', 'r', 'o', 'c', 'e', 's', 's', '.', 'e', 'u', '\0',
-  /* "new.travel.pl", true */ 'n', 'e', 'w', '.', 't', 'r', 'a', 'v', 'e', 'l', '.', 'p', 'l', '\0',
   /* "newantiagingcreams.com", true */ 'n', 'e', 'w', 'a', 'n', 't', 'i', 'a', 'g', 'i', 'n', 'g', 'c', 'r', 'e', 'a', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "newbieboss.com", true */ 'n', 'e', 'w', 'b', 'i', 'e', 'b', 'o', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "newbietech.cn", true */ 'n', 'e', 'w', 'b', 'i', 'e', 't', 'e', 'c', 'h', '.', 'c', 'n', '\0',
   /* "newcityinfo.ch", true */ 'n', 'e', 'w', 'c', 'i', 't', 'y', 'i', 'n', 'f', 'o', '.', 'c', 'h', '\0',
   /* "newcityinfo.info", true */ 'n', 'e', 'w', 'c', 'i', 't', 'y', 'i', 'n', 'f', 'o', '.', 'i', 'n', 'f', 'o', '\0',
   /* "newcitystudio.ch", true */ 'n', 'e', 'w', 'c', 'i', 't', 'y', 's', 't', 'u', 'd', 'i', 'o', '.', 'c', 'h', '\0',
   /* "newday.host", true */ 'n', 'e', 'w', 'd', 'a', 'y', '.', 'h', 'o', 's', 't', '\0',
   /* "newedivideo.it", true */ 'n', 'e', 'w', 'e', 'd', 'i', 'v', 'i', 'd', 'e', 'o', '.', 'i', 't', '\0',
@@ -11396,17 +11384,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "nicolaszambetti.ch", true */ 'n', 'i', 'c', 'o', 'l', 'a', 's', 'z', 'a', 'm', 'b', 'e', 't', 't', 'i', '.', 'c', 'h', '\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',
   /* "nidsuber.ch", true */ 'n', 'i', 'd', 's', 'u', 'b', 'e', 'r', '.', 'c', 'h', '\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',
   /* "niehage.name", true */ 'n', 'i', 'e', 'h', 'a', 'g', 'e', '.', 'n', 'a', 'm', 'e', '\0',
   /* "nien.cf", true */ 'n', 'i', 'e', 'n', '.', 'c', 'f', '\0',
   /* "nien.co", true */ 'n', 'i', 'e', 'n', '.', 'c', 'o', '\0',
   /* "nien.com", true */ 'n', 'i', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "nien.com.tw", true */ 'n', 'i', 'e', 'n', '.', 'c', 'o', 'm', '.', 't', 'w', '\0',
   /* "nien.eu.org", true */ 'n', 'i', 'e', 'n', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
@@ -11429,16 +11416,17 @@ static const char kSTSHostTable[] = {
   /* "nightsnack.cf", true */ 'n', 'i', 'g', 'h', 't', 's', 'n', 'a', 'c', 'k', '.', 'c', 'f', '\0',
   /* "nihseniorhealth.gov", true */ 'n', 'i', 'h', 's', 'e', 'n', 'i', 'o', 'r', 'h', 'e', 'a', 'l', 't', 'h', '.', 'g', 'o', 'v', '\0',
   /* "nijiero-ch.com", false */ 'n', 'i', 'j', 'i', 'e', 'r', 'o', '-', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "nijm.nl", true */ 'n', 'i', 'j', 'm', '.', 'n', 'l', '\0',
   /* "nikandcara.com", true */ 'n', 'i', 'k', 'a', 'n', 'd', 'c', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "nikao-tech.com", true */ 'n', 'i', 'k', 'a', 'o', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "nikklassen.ca", true */ 'n', 'i', 'k', 'k', 'l', 'a', 's', 's', 'e', 'n', '.', 'c', 'a', '\0',
   /* "nikksno.io", true */ 'n', 'i', 'k', 'k', 's', 'n', 'o', '.', 'i', 'o', '\0',
+  /* "niklas.pw", true */ 'n', 'i', 'k', 'l', 'a', 's', '.', 'p', 'w', '\0',
   /* "nikobradshaw.com", true */ 'n', 'i', 'k', 'o', 'b', 'r', 'a', 'd', 's', 'h', 'a', 'w', '.', 'c', 'o', 'm', '\0',
   /* "nikolaichik.photo", true */ 'n', 'i', 'k', 'o', 'l', 'a', 'i', 'c', 'h', 'i', 'k', '.', 'p', 'h', 'o', 't', 'o', '\0',
   /* "nikolasbradshaw.com", true */ 'n', 'i', 'k', 'o', 'l', 'a', 's', 'b', 'r', 'a', 'd', 's', 'h', 'a', 'w', '.', 'c', 'o', 'm', '\0',
   /* "nikolasgrottendieck.com", true */ 'n', 'i', 'k', 'o', 'l', 'a', 's', 'g', 'r', 'o', 't', 't', 'e', 'n', 'd', 'i', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "nil.gs", true */ 'n', 'i', 'l', '.', 'g', 's', '\0',
   /* "niloxy.com", true */ 'n', 'i', 'l', 'o', 'x', 'y', '.', 'c', 'o', 'm', '\0',
   /* "nilrem.org", true */ 'n', 'i', 'l', 'r', 'e', 'm', '.', 'o', 'r', 'g', '\0',
   /* "nimeshjm.com", true */ 'n', 'i', 'm', 'e', 's', 'h', 'j', 'm', '.', 'c', 'o', 'm', '\0',
@@ -11561,16 +11549,17 @@ static const char kSTSHostTable[] = {
   /* "notypiesni.sk", false */ 'n', 'o', 't', 'y', 'p', 'i', 'e', 's', 'n', 'i', '.', 's', 'k', '\0',
   /* "nou.si", true */ 'n', 'o', 'u', '.', 's', 'i', '\0',
   /* "nourishorganicwholefoods.com.au", false */ 'n', 'o', 'u', 'r', 'i', 's', 'h', 'o', 'r', 'g', 'a', 'n', 'i', 'c', 'w', 'h', 'o', 'l', 'e', 'f', 'o', 'o', 'd', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "nova-dess.ch", true */ 'n', 'o', 'v', 'a', '-', 'd', 'e', 's', 's', '.', 'c', 'h', '\0',
   /* "nova-elearning.com", true */ 'n', 'o', 'v', 'a', '-', 'e', 'l', 'e', 'a', 'r', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "novabench.com", true */ 'n', 'o', 'v', 'a', 'b', 'e', 'n', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "novaco.in", true */ 'n', 'o', 'v', 'a', 'c', 'o', '.', 'i', 'n', '\0',
   /* "novafreixo.pt", true */ 'n', 'o', 'v', 'a', 'f', 'r', 'e', 'i', 'x', 'o', '.', 'p', 't', '\0',
+  /* "novascan.net", true */ 'n', 'o', 'v', 'a', 's', 'c', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "novavoidhowl.com", true */ 'n', 'o', 'v', 'a', 'v', 'o', 'i', 'd', 'h', 'o', 'w', 'l', '.', 'c', 'o', 'm', '\0',
   /* "novelfeed.com", true */ 'n', 'o', 'v', 'e', 'l', 'f', 'e', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "novelshouse.com", true */ 'n', 'o', 'v', 'e', 'l', 's', 'h', 'o', 'u', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "novoresume.com", false */ 'n', 'o', 'v', 'o', 'r', 'e', 's', 'u', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "novurania.com", true */ 'n', 'o', 'v', 'u', 'r', 'a', 'n', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "nowhere.dk", true */ 'n', 'o', 'w', 'h', 'e', 'r', 'e', '.', 'd', 'k', '\0',
   /* "nowlas.org", true */ 'n', 'o', 'w', 'l', 'a', 's', '.', 'o', 'r', 'g', '\0',
   /* "noxlogic.nl", true */ 'n', 'o', 'x', 'l', 'o', 'g', 'i', 'c', '.', 'n', 'l', '\0',
@@ -11802,17 +11791,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "onetech.it", true */ 'o', 'n', 'e', 't', 'e', 'c', 'h', '.', 'i', 't', '\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',
-  /* "onewpst.com", true */ 'o', 'n', 'e', 'w', 'p', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "onfarma.it", true */ 'o', 'n', 'f', 'a', 'r', 'm', 'a', '.', 'i', 't', '\0',
   /* "onguardonline.gov", true */ 'o', 'n', 'g', 'u', 'a', 'r', 'd', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'g', 'o', 'v', '\0',
   /* "onhub1.com", true */ 'o', 'n', 'h', 'u', 'b', '1', '.', 'c', 'o', 'm', '\0',
   /* "onioncloud.org", true */ 'o', 'n', 'i', 'o', 'n', 'c', 'l', 'o', 'u', 'd', '.', 'o', 'r', 'g', '\0',
   /* "onionsburg.com", true */ 'o', 'n', 'i', 'o', 'n', 's', 'b', 'u', 'r', 'g', '.', 'c', 'o', 'm', '\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',
   /* "online-eikaiwa-guide.com", true */ 'o', 'n', 'l', 'i', 'n', 'e', '-', 'e', 'i', 'k', 'a', 'i', 'w', 'a', '-', 'g', 'u', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0',
@@ -11946,17 +11934,16 @@ static const char kSTSHostTable[] = {
   /* "osborneinn.com", true */ 'o', 's', 'b', 'o', 'r', 'n', 'e', 'i', 'n', 'n', '.', 'c', 'o', 'm', '\0',
   /* "osburn.com", true */ 'o', 's', 'b', 'u', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "oscarvk.ch", true */ 'o', 's', 'c', 'a', 'r', 'v', 'k', '.', 'c', 'h', '\0',
   /* "oscreen.me", true */ 'o', 's', 'c', 'r', 'e', 'e', 'n', '.', 'm', 'e', '\0',
   /* "oscsdp.cz", true */ 'o', 's', 'c', 's', 'd', 'p', '.', 'c', 'z', '\0',
   /* "oses.mobi", true */ 'o', 's', 'e', 's', '.', 'm', 'o', 'b', 'i', '\0',
   /* "oshayr.com", true */ 'o', 's', 'h', 'a', 'y', 'r', '.', 'c', 'o', 'm', '\0',
   /* "oshell.me", true */ 'o', 's', 'h', 'e', 'l', 'l', '.', 'm', 'e', '\0',
-  /* "oskuro.net", true */ 'o', 's', 'k', 'u', 'r', 'o', '.', 'n', 'e', 't', '\0',
   /* "osm.is", true */ 'o', 's', 'm', '.', 'i', 's', '\0',
   /* "osmanlitorunu.com", true */ 'o', 's', 'm', 'a', 'n', 'l', 'i', 't', 'o', 'r', 'u', 'n', 'u', '.', 'c', 'o', 'm', '\0',
   /* "osmosis.org", true */ 'o', 's', 'm', 'o', 's', 'i', 's', '.', 'o', 'r', 'g', '\0',
   /* "osquery.io", true */ 'o', 's', 'q', 'u', 'e', 'r', 'y', '.', 'i', 'o', '\0',
   /* "ostan-collections.net", true */ 'o', 's', 't', 'a', 'n', '-', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'i', 'o', 'n', 's', '.', 'n', 'e', 't', '\0',
   /* "ostendorf.com", true */ 'o', 's', 't', 'e', 'n', 'd', 'o', 'r', 'f', '.', 'c', 'o', 'm', '\0',
   /* "osterkraenzchen.de", true */ 'o', 's', 't', 'e', 'r', 'k', 'r', 'a', 'e', 'n', 'z', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0',
   /* "ostr.io", true */ 'o', 's', 't', 'r', '.', 'i', 'o', '\0',
@@ -12002,17 +11989,16 @@ static const char kSTSHostTable[] = {
   /* "ovpn.to", true */ 'o', 'v', 'p', 'n', '.', 't', 'o', '\0',
   /* "owensmith.website", true */ 'o', 'w', 'e', 'n', 's', 'm', 'i', 't', 'h', '.', 'w', 'e', 'b', 's', 'i', 't', 'e', '\0',
   /* "own3d.ch", true */ 'o', 'w', 'n', '3', 'd', '.', 'c', 'h', '\0',
   /* "ownit.se", false */ 'o', 'w', 'n', 'i', 't', '.', 's', 'e', '\0',
   /* "ownspec.com", true */ 'o', 'w', 'n', 's', 'p', 'e', 'c', '.', 'c', 'o', 'm', '\0',
   /* "oxanababy.com", true */ 'o', 'x', 'a', 'n', 'a', 'b', 'a', 'b', 'y', '.', 'c', 'o', 'm', '\0',
   /* "oxygaming.com", true */ 'o', 'x', 'y', 'g', 'a', 'm', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "oxymc.com", true */ 'o', 'x', 'y', 'm', 'c', '.', 'c', 'o', 'm', '\0',
-  /* "oxynux.xyz", true */ 'o', 'x', 'y', 'n', 'u', 'x', '.', 'x', 'y', 'z', '\0',
   /* "oxytocin.org", true */ 'o', 'x', 'y', 't', 'o', 'c', 'i', 'n', '.', 'o', 'r', 'g', '\0',
   /* "oyste.in", true */ 'o', 'y', 's', 't', 'e', '.', 'i', 'n', '\0',
   /* "oznamovacipovinnost.cz", true */ 'o', 'z', 'n', 'a', 'm', 'o', 'v', 'a', 'c', 'i', 'p', 'o', 'v', 'i', 'n', 'n', 'o', 's', 't', '.', 'c', 'z', '\0',
   /* "ozvolvo.org", true */ 'o', 'z', 'v', 'o', 'l', 'v', 'o', '.', 'o', 'r', 'g', '\0',
   /* "p-rickroll-o.pw", true */ 'p', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'o', '.', 'p', 'w', '\0',
   /* "p-s-b.com", true */ 'p', '-', 's', '-', 'b', '.', 'c', 'o', 'm', '\0',
   /* "p1984.nl", false */ 'p', '1', '9', '8', '4', '.', 'n', 'l', '\0',
   /* "p1c.pw", true */ 'p', '1', 'c', '.', 'p', 'w', '\0',
@@ -12351,17 +12337,16 @@ static const char kSTSHostTable[] = {
   /* "petmall.bg", true */ 'p', 'e', 't', 'm', 'a', 'l', 'l', '.', 'b', 'g', '\0',
   /* "petplus.com", true */ 'p', 'e', 't', 'p', 'l', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "petpost.co.nz", true */ 'p', 'e', 't', 'p', 'o', 's', 't', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "petrasestakova.cz", true */ 'p', 'e', 't', 'r', 'a', 's', 'e', 's', 't', 'a', 'k', 'o', 'v', 'a', '.', 'c', 'z', '\0',
   /* "petruzz.net", true */ 'p', 'e', 't', 'r', 'u', 'z', 'z', '.', 'n', 'e', 't', '\0',
   /* "pettitcoat.com", true */ 'p', 'e', 't', 't', 'i', 't', 'c', 'o', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "pex.digital", true */ 'p', 'e', 'x', '.', 'd', 'i', 'g', 'i', 't', 'a', 'l', '\0',
   /* "peyote.com", true */ 'p', 'e', 'y', 'o', 't', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "peytonfarrar.com", false */ 'p', 'e', 'y', 't', 'o', 'n', 'f', 'a', 'r', 'r', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "pfa.or.jp", true */ 'p', 'f', 'a', '.', 'o', 'r', '.', 'j', 'p', '\0',
   /* "pfadfinder-aurich.de", true */ 'p', 'f', 'a', 'd', 'f', 'i', 'n', 'd', 'e', 'r', '-', 'a', 'u', 'r', 'i', 'c', 'h', '.', 'd', 'e', '\0',
   /* "pfarchimedes-pensioen123.nl", true */ 'p', 'f', 'a', 'r', 'c', 'h', 'i', 'm', 'e', 'd', 'e', 's', '-', 'p', 'e', 'n', 's', 'i', 'o', 'e', 'n', '1', '2', '3', '.', 'n', 'l', '\0',
   /* "pfd-nz.com", false */ 'p', 'f', 'd', '-', 'n', 'z', '.', 'c', 'o', 'm', '\0',
   /* "pfeuffer-elektro.de", true */ 'p', 'f', 'e', 'u', 'f', 'f', 'e', 'r', '-', 'e', 'l', 'e', 'k', 't', 'r', 'o', '.', 'd', 'e', '\0',
   /* "pfo.io", true */ 'p', 'f', 'o', '.', 'i', 'o', '\0',
   /* "pfolta.net", true */ 'p', 'f', 'o', 'l', 't', 'a', '.', 'n', 'e', 't', '\0',
   /* "pfudor.tk", true */ 'p', 'f', 'u', 'd', 'o', 'r', '.', 't', 'k', '\0',
@@ -12480,16 +12465,17 @@ static const char kSTSHostTable[] = {
   /* "pieterjangeeroms.me", true */ 'p', 'i', 'e', 't', 'e', 'r', 'j', 'a', 'n', 'g', 'e', 'e', 'r', 'o', 'm', 's', '.', 'm', 'e', '\0',
   /* "pietz.uk", true */ 'p', 'i', 'e', 't', 'z', '.', 'u', 'k', '\0',
   /* "pijuice.com", true */ 'p', 'i', 'j', 'u', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pikeitservices.com.au", true */ 'p', 'i', 'k', 'e', 'i', 't', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "pileofgarbage.net", true */ 'p', 'i', 'l', 'e', 'o', 'f', 'g', 'a', 'r', 'b', 'a', 'g', 'e', '.', 'n', 'e', 't', '\0',
   /* "piliszek.net", true */ 'p', 'i', 'l', 'i', 's', 'z', 'e', 'k', '.', 'n', 'e', 't', '\0',
   /* "pimhaarsma.nl", true */ 'p', 'i', 'm', 'h', 'a', 'a', 'r', 's', 'm', 'a', '.', 'n', 'l', '\0',
   /* "pimhaarsmamedia.nl", true */ 'p', 'i', 'm', 'h', 'a', 'a', 'r', 's', 'm', 'a', 'm', 'e', 'd', 'i', 'a', '.', 'n', 'l', '\0',
+  /* "pimpmymac.ru", true */ 'p', 'i', 'm', 'p', 'm', 'y', 'm', 'a', 'c', '.', 'r', 'u', '\0',
   /* "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',
   /* "pindanutjes.be", false */ 'p', 'i', 'n', 'd', 'a', 'n', 'u', 't', 'j', 'e', 's', '.', 'b', 'e', '\0',
   /* "pinesandneedles.com", true */ 'p', 'i', 'n', 'e', 's', 'a', 'n', 'd', 'n', 'e', 'e', 'd', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "pinkbike.com", true */ 'p', 'i', 'n', 'k', 'b', 'i', 'k', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pinkcasino.co.uk", true */ 'p', 'i', 'n', 'k', 'c', 'a', 's', 'i', 'n', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -12563,17 +12549,16 @@ static const char kSTSHostTable[] = {
   /* "plasti-pac.ch", true */ 'p', 'l', 'a', 's', 't', 'i', '-', 'p', 'a', 'c', '.', 'c', 'h', '\0',
   /* "platomania.eu", true */ 'p', 'l', 'a', 't', 'o', 'm', 'a', 'n', 'i', 'a', '.', 'e', 'u', '\0',
   /* "platomania.nl", true */ 'p', 'l', 'a', 't', 'o', 'm', 'a', 'n', 'i', 'a', '.', 'n', 'l', '\0',
   /* "platten-nach-mass.de", true */ 'p', 'l', 'a', 't', 't', 'e', 'n', '-', 'n', 'a', 'c', 'h', '-', 'm', 'a', 's', 's', '.', 'd', 'e', '\0',
   /* "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',
   /* "playhappywheelsunblocked.com", true */ 'p', 'l', 'a', 'y', 'h', 'a', 'p', 'p', 'y', 'w', 'h', 'e', 'e', 'l', 's', 'u', 'n', 'b', 'l', 'o', 'c', 'k', 'e', 'd', '.', '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',
   /* "playsoundevents.be", true */ 'p', 'l', 'a', 'y', 's', 'o', 'u', 'n', 'd', 'e', 'v', 'e', 'n', 't', 's', '.', 'b', 'e', '\0',
   /* "playsprout.industries", false */ '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',
   /* "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',
@@ -12611,17 +12596,16 @@ static const char kSTSHostTable[] = {
   /* "pmg-purchase.com", true */ 'p', 'm', 'g', '-', 'p', 'u', 'r', 'c', 'h', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pmg-purchase.net", true */ 'p', 'm', 'g', '-', 'p', 'u', 'r', 'c', 'h', 'a', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "pmklaassen.com", true */ 'p', 'm', 'k', 'l', 'a', 'a', 's', 's', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "pmoreau.org", true */ 'p', 'm', 'o', 'r', 'e', 'a', 'u', '.', 'o', 'r', 'g', '\0',
   /* "pmp-art.com", true */ 'p', 'm', 'p', '-', 'a', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "pmponline.de", true */ 'p', 'm', 'p', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "pmsf.eu", true */ 'p', 'm', 's', 'f', '.', 'e', 'u', '\0',
   /* "pmt-documenten.nl", true */ 'p', 'm', 't', '-', 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'e', 'n', '.', 'n', 'l', '\0',
-  /* "pnona.cz", true */ 'p', 'n', 'o', 'n', 'a', '.', 'c', 'z', '\0',
   /* "pnut.io", false */ 'p', 'n', 'u', 't', '.', 'i', 'o', '\0',
   /* "pnyxnet.com", true */ 'p', 'n', 'y', 'x', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "pocketfullofapps.com", true */ 'p', 'o', 'c', 'k', 'e', 't', 'f', 'u', 'l', 'l', 'o', 'f', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "podemos.info", true */ 'p', 'o', 'd', 'e', 'm', 'o', 's', '.', 'i', 'n', 'f', 'o', '\0',
   /* "podshrink.de", true */ 'p', 'o', 'd', 's', 'h', 'r', 'i', 'n', 'k', '.', 'd', 'e', '\0',
   /* "poed.com.au", true */ 'p', 'o', 'e', 'd', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "poed.net.au", true */ 'p', 'o', 'e', 'd', '.', 'n', 'e', 't', '.', 'a', 'u', '\0',
   /* "poedgirl.com", true */ 'p', 'o', 'e', 'd', 'g', 'i', 'r', 'l', '.', 'c', 'o', 'm', '\0',
@@ -12694,26 +12678,25 @@ static const char kSTSHostTable[] = {
   /* "positivesobrietyinstitute.com", true */ 'p', 'o', 's', 'i', 't', 'i', 'v', 'e', 's', 'o', 'b', 'r', 'i', 'e', 't', 'y', 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "posobota.cz", true */ 'p', 'o', 's', 'o', 'b', 'o', 't', 'a', '.', 'c', 'z', '\0',
   /* "post4me.at", true */ 'p', 'o', 's', 't', '4', 'm', 'e', '.', 'a', 't', '\0',
   /* "postal.dk", true */ 'p', 'o', 's', 't', 'a', 'l', '.', 'd', 'k', '\0',
   /* "postblue.info", true */ 'p', 'o', 's', 't', 'b', 'l', 'u', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "postbox.life", true */ 'p', 'o', 's', 't', 'b', 'o', 'x', '.', 'l', 'i', 'f', 'e', '\0',
   /* "postcodegarant.nl", true */ 'p', 'o', 's', 't', 'c', 'o', 'd', 'e', 'g', 'a', 'r', 'a', 'n', 't', '.', 'n', 'l', '\0',
   /* "posteo.de", false */ 'p', 'o', 's', 't', 'e', 'o', '.', 'd', 'e', '\0',
+  /* "posterspy.com", true */ 'p', 'o', 's', 't', 'e', 'r', 's', 'p', 'y', '.', 'c', 'o', 'm', '\0',
   /* "postfinance.ch", true */ 'p', 'o', 's', 't', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'c', 'h', '\0',
   /* "postmatescode.com", true */ 'p', 'o', 's', 't', 'm', 'a', 't', 'e', 's', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "postn.eu", true */ 'p', 'o', 's', 't', 'n', '.', 'e', 'u', '\0',
   /* "posttigo.com", true */ 'p', 'o', 's', 't', 't', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "potatofrom.space", false */ 'p', 'o', 't', 'a', 't', 'o', 'f', 'r', 'o', 'm', '.', 's', 'p', 'a', 'c', 'e', '\0',
-  /* "potbar.com", true */ 'p', 'o', 't', 'b', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "potbox.com", true */ 'p', 'o', 't', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "pothe.com", true */ 'p', 'o', 't', 'h', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pothe.de", true */ 'p', 'o', 't', 'h', 'e', '.', 'd', 'e', '\0',
-  /* "potlytics.com", true */ 'p', 'o', 't', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "potpourrifestival.de", true */ 'p', 'o', 't', 'p', 'o', 'u', 'r', 'r', 'i', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0',
   /* "potsky.com", true */ 'p', 'o', 't', 's', 'k', 'y', '.', 'c', 'o', 'm', '\0',
   /* "potterscraftcider.com", true */ 'p', 'o', 't', 't', 'e', 'r', 's', 'c', 'r', 'a', 'f', 't', 'c', 'i', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "pottshome.co.uk", true */ 'p', 'o', 't', 't', 's', 'h', 'o', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "poupatempo.org", true */ 'p', 'o', 'u', 'p', 'a', 't', 'e', 'm', 'p', 'o', '.', 'o', 'r', 'g', '\0',
   /* "pourlesenfants.info", true */ 'p', 'o', 'u', 'r', 'l', 'e', 's', 'e', 'n', 'f', 'a', 'n', 't', 's', '.', 'i', 'n', 'f', 'o', '\0',
   /* "povareschka.ru", true */ 'p', 'o', 'v', 'a', 'r', 'e', 's', 'c', 'h', 'k', 'a', '.', 'r', 'u', '\0',
   /* "power-coonies.de", true */ 'p', 'o', 'w', 'e', 'r', '-', 'c', 'o', 'o', 'n', 'i', 'e', 's', '.', 'd', 'e', '\0',
@@ -13206,17 +13189,16 @@ static const char kSTSHostTable[] = {
   /* "rautermods.net", true */ 'r', 'a', 'u', 't', 'e', 'r', 'm', 'o', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "ravage.fm", true */ 'r', 'a', 'v', 'a', 'g', 'e', '.', 'f', 'm', '\0',
   /* "ravchat.com", true */ 'r', 'a', 'v', 'c', 'h', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "ravengergaming.ga", true */ 'r', 'a', 'v', 'e', 'n', 'g', 'e', 'r', 'g', 'a', 'm', 'i', 'n', 'g', '.', 'g', 'a', '\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',
   /* "ravkr.duckdns.org", true */ 'r', 'a', 'v', 'k', 'r', '.', 'd', 'u', 'c', 'k', 'd', 'n', 's', '.', 'o', 'r', 'g', '\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',
   /* "rayiris.com", true */ 'r', 'a', 'y', 'i', 'r', 'i', 's', '.', 'c', 'o', 'm', '\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',
   /* "raymondelooff.nl", true */ 'r', 'a', 'y', 'm', 'o', 'n', 'd', 'e', 'l', 'o', 'o', 'f', 'f', '.', 'n', 'l', '\0',
   /* "raymondjcox.com", true */ 'r', 'a', 'y', 'm', 'o', 'n', 'd', 'j', 'c', 'o', 'x', '.', 'c', 'o', 'm', '\0',
@@ -13270,16 +13252,17 @@ static const char kSTSHostTable[] = {
   /* "recapp.ch", true */ 'r', 'e', 'c', 'a', 'p', 'p', '.', 'c', 'h', '\0',
   /* "receitas-de-bolos.pt", true */ 'r', 'e', 'c', 'e', 'i', 't', 'a', 's', '-', 'd', 'e', '-', 'b', 'o', 'l', 'o', 's', '.', 'p', 't', '\0',
   /* "receitasdebacalhau.pt", true */ 'r', 'e', 'c', 'e', 'i', 't', 'a', 's', 'd', 'e', 'b', 'a', 'c', 'a', 'l', 'h', 'a', 'u', '.', 'p', 't', '\0',
   /* "recepty.eu", true */ 'r', 'e', 'c', 'e', 'p', 't', 'y', '.', 'e', 'u', '\0',
   /* "rechenknaecht.de", true */ 'r', 'e', 'c', 'h', 'e', 'n', 'k', 'n', 'a', 'e', 'c', 'h', 't', '.', 'd', 'e', '\0',
   /* "rechenwerk.net", true */ 'r', 'e', 'c', 'h', 'e', 'n', 'w', 'e', 'r', 'k', '.', 'n', 'e', 't', '\0',
   /* "recht-freundlich.de", true */ 'r', 'e', 'c', 'h', 't', '-', 'f', 'r', 'e', 'u', 'n', 'd', 'l', 'i', 'c', 'h', '.', 'd', 'e', '\0',
   /* "rechtsanwalt-koeppen-feucht.de", true */ 'r', 'e', 'c', 'h', 't', 's', 'a', 'n', 'w', 'a', 'l', 't', '-', 'k', 'o', 'e', 'p', 'p', 'e', 'n', '-', 'f', 'e', 'u', 'c', 'h', 't', '.', 'd', 'e', '\0',
+  /* "recolic.net", true */ 'r', 'e', 'c', 'o', 'l', 'i', 'c', '.', 'n', 'e', 't', '\0',
   /* "recompiled.org", true */ 'r', 'e', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'd', '.', 'o', 'r', 'g', '\0',
   /* "recon-networks.com", true */ 'r', 'e', 'c', 'o', 'n', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "recordeuropa.com", false */ 'r', 'e', 'c', 'o', 'r', 'd', 'e', 'u', 'r', 'o', 'p', 'a', '.', 'c', 'o', 'm', '\0',
   /* "recreation.gov", true */ 'r', 'e', 'c', 'r', 'e', 'a', 't', 'i', 'o', 'n', '.', 'g', 'o', 'v', '\0',
   /* "recreoviral.com", true */ 'r', 'e', 'c', 'r', 'e', 'o', 'v', 'i', 'r', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "recurly.com", true */ 'r', 'e', 'c', 'u', 'r', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "recyclingpromotions.us", true */ 'r', 'e', 'c', 'y', 'c', 'l', 'i', 'n', 'g', 'p', 'r', 'o', 'm', 'o', 't', 'i', 'o', 'n', 's', '.', 'u', 's', '\0',
   /* "red-t-shirt.ru", true */ 'r', 'e', 'd', '-', 't', '-', 's', 'h', 'i', 'r', 't', '.', 'r', 'u', '\0',
@@ -13338,17 +13321,16 @@ static const char kSTSHostTable[] = {
   /* "regiovertrieb.de", false */ 'r', 'e', 'g', 'i', 'o', 'v', 'e', 'r', 't', 'r', 'i', 'e', 'b', '.', 'd', 'e', '\0',
   /* "register.gov.uk", true */ 'r', 'e', 'g', 'i', 's', 't', 'e', 'r', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0',
   /* "regmyr.se", true */ 'r', 'e', 'g', 'm', 'y', 'r', '.', 's', 'e', '\0',
   /* "regolithmedia.com", true */ 'r', 'e', 'g', 'o', 'l', 'i', 't', 'h', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "reha-honpo.jp", true */ 'r', 'e', 'h', 'a', '-', 'h', 'o', 'n', 'p', 'o', '.', 'j', 'p', '\0',
   /* "rehabili-shigoto.com", true */ 'r', 'e', 'h', 'a', 'b', 'i', 'l', 'i', '-', 's', 'h', 'i', 'g', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "rehabthailand.com", true */ 'r', 'e', 'h', 'a', 'b', 't', 'h', 'a', 'i', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "rehabthailand.nl", true */ 'r', 'e', 'h', 'a', 'b', 't', 'h', 'a', 'i', 'l', 'a', 'n', 'd', '.', 'n', 'l', '\0',
-  /* "rei.ki", true */ 'r', 'e', 'i', '.', 'k', 'i', '\0',
   /* "reichelt-cloud.de", true */ 'r', 'e', 'i', 'c', 'h', 'e', 'l', 't', '-', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0',
   /* "reichl-online.net", true */ 'r', 'e', 'i', 'c', 'h', 'l', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'n', 'e', 't', '\0',
   /* "reiki-coaching.nl", true */ 'r', 'e', 'i', 'k', 'i', '-', 'c', 'o', 'a', 'c', 'h', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "reikiqueen.uk", true */ 'r', 'e', 'i', 'k', 'i', 'q', 'u', 'e', 'e', 'n', '.', 'u', 'k', '\0',
   /* "reilly.io", true */ 'r', 'e', 'i', 'l', 'l', 'y', '.', 'i', 'o', '\0',
   /* "reimers.de", true */ 'r', 'e', 'i', 'm', 'e', 'r', 's', '.', 'd', 'e', '\0',
   /* "reinaertvandecruys.me", true */ 'r', 'e', 'i', 'n', 'a', 'e', 'r', 't', 'v', 'a', 'n', 'd', 'e', 'c', 'r', 'u', 'y', 's', '.', 'm', 'e', '\0',
   /* "reinaldudras.ee", true */ 'r', 'e', 'i', 'n', 'a', 'l', 'd', 'u', 'd', 'r', 'a', 's', '.', 'e', 'e', '\0',
@@ -13822,17 +13804,16 @@ static const char kSTSHostTable[] = {
   /* "safeme.ga", true */ 's', 'a', 'f', 'e', 'm', 'e', '.', 'g', 'a', '\0',
   /* "safer-networking.org", true */ 's', 'a', 'f', 'e', 'r', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', 'i', 'n', 'g', '.', 'o', 'r', 'g', '\0',
   /* "saferchildren.eu", true */ 's', 'a', 'f', 'e', 'r', 'c', 'h', 'i', 'l', 'd', 'r', 'e', 'n', '.', 'e', 'u', '\0',
   /* "saferedirectlink.com", true */ 's', 'a', 'f', 'e', 'r', 'e', 'd', 'i', 'r', 'e', 'c', 't', 'l', 'i', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "saferpost.com", true */ 's', 'a', 'f', 'e', 'r', 'p', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "safersurfing.eu", true */ 's', 'a', 'f', 'e', 'r', 's', 'u', 'r', 'f', 'i', 'n', 'g', '.', 'e', 'u', '\0',
   /* "safescan.com", true */ 's', 'a', 'f', 'e', 's', 'c', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "safetext.me", true */ 's', 'a', 'f', 'e', 't', 'e', 'x', 't', '.', 'm', 'e', '\0',
-  /* "safetyrisk.net", true */ 's', 'a', 'f', 'e', 't', 'y', 'r', 'i', 's', 'k', '.', 'n', 'e', 't', '\0',
   /* "safing.me", true */ 's', 'a', 'f', 'i', 'n', 'g', '.', 'm', 'e', '\0',
   /* "safire.ac.za", true */ 's', 'a', 'f', 'i', 'r', 'e', '.', 'a', 'c', '.', 'z', 'a', '\0',
   /* "sagedocumentmanager.com", true */ 's', 'a', 'g', 'e', 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sagemontchurch.org", true */ 's', 'a', 'g', 'e', 'm', 'o', 'n', 't', 'c', 'h', 'u', 'r', 'c', 'h', '.', 'o', 'r', 'g', '\0',
   /* "sagerus.com", true */ 's', 'a', 'g', 'e', 'r', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "sagsmarseille.com", true */ 's', 'a', 'g', 's', 'm', 'a', 'r', 's', 'e', 'i', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sahar.io", true */ 's', 'a', 'h', 'a', 'r', '.', 'i', 'o', '\0',
   /* "saharalondon.com", false */ 's', 'a', 'h', 'a', 'r', 'a', 'l', 'o', 'n', 'd', 'o', 'n', '.', 'c', 'o', 'm', '\0',
@@ -14190,16 +14171,17 @@ static const char kSTSHostTable[] = {
   /* "securitywatch.co.nz", true */ 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'w', 'a', 't', 'c', 'h', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "securitywithnick.com", true */ 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'w', 'i', 't', 'h', 'n', 'i', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "securitywithoutborders.org", true */ 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'w', 'i', 't', 'h', 'o', 'u', 't', 'b', 'o', 'r', 'd', 'e', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "secuvera.de", true */ 's', 'e', 'c', 'u', 'v', 'e', 'r', 'a', '.', 'd', 'e', '\0',
   /* "secwall.me", true */ 's', 'e', 'c', 'w', 'a', 'l', 'l', '.', 'm', 'e', '\0',
   /* "sedoexpert.nl", true */ 's', 'e', 'd', 'o', 'e', 'x', 'p', 'e', 'r', 't', '.', 'n', 'l', '\0',
   /* "sedoexperts.nl", true */ 's', 'e', 'd', 'o', 'e', 'x', 'p', 'e', 'r', 't', 's', '.', 'n', 'l', '\0',
   /* "sedussa.ro", true */ 's', 'e', 'd', 'u', 's', 's', 'a', '.', 'r', 'o', '\0',
+  /* "sedziapilkarski.pl", true */ 's', 'e', 'd', 'z', 'i', 'a', 'p', 'i', 'l', 'k', 'a', 'r', 's', 'k', 'i', '.', 'p', 'l', '\0',
   /* "seeclop.ch", true */ 's', 'e', 'e', 'c', 'l', 'o', 'p', '.', 'c', 'h', '\0',
   /* "seedalpha.com", true */ 's', 'e', 'e', 'd', 'a', 'l', 'p', 'h', 'a', '.', 'c', 'o', 'm', '\0',
   /* "seedbox.fr", true */ 's', 'e', 'e', 'd', 'b', 'o', 'x', '.', 'f', 'r', '\0',
   /* "seefunk.net", true */ 's', 'e', 'e', 'f', 'u', 'n', 'k', '.', 'n', 'e', 't', '\0',
   /* "seeks.ru", true */ 's', 'e', 'e', 'k', 's', '.', 'r', 'u', '\0',
   /* "seemeagain.com", true */ 's', 'e', 'e', 'm', 'e', 'a', 'g', 'a', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "seen.life", true */ 's', 'e', 'e', 'n', '.', 'l', 'i', 'f', 'e', '\0',
   /* "seesuite.com", true */ 's', 'e', 'e', 's', 'u', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -14368,17 +14350,17 @@ static const char kSTSHostTable[] = {
   /* "shannoneichorn.com", true */ 's', 'h', 'a', 'n', 'n', 'o', 'n', 'e', 'i', 'c', 'h', 'o', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "shansing.cn", true */ 's', 'h', 'a', 'n', 's', 'i', 'n', 'g', '.', 'c', 'n', '\0',
   /* "shansing.com", true */ 's', 'h', 'a', 'n', 's', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "shansing.net", true */ 's', 'h', 'a', 'n', 's', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0',
   /* "shansing.space", true */ 's', 'h', 'a', 'n', 's', 'i', 'n', 'g', '.', 's', 'p', 'a', 'c', 'e', '\0',
   /* "shaobin.wang", true */ 's', 'h', 'a', 'o', 'b', 'i', 'n', '.', 'w', 'a', 'n', 'g', '\0',
   /* "shapesedinburgh.co.uk", true */ 's', 'h', 'a', 'p', 'e', 's', 'e', 'd', 'i', 'n', 'b', 'u', 'r', 'g', 'h', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "shardsoft.com", true */ 's', 'h', 'a', 'r', 'd', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '\0',
-  /* "shareeri.com", true */ 's', 'h', 'a', 'r', 'e', 'e', 'r', 'i', '.', 'c', 'o', 'm', '\0',
+  /* "shareeri.com", false */ 's', 'h', 'a', 'r', 'e', 'e', 'r', 'i', '.', 'c', 'o', 'm', '\0',
   /* "shareoffice.ch", true */ 's', 'h', 'a', 'r', 'e', 'o', 'f', 'f', 'i', 'c', 'e', '.', 'c', 'h', '\0',
   /* "shareoine.com", true */ 's', 'h', 'a', 'r', 'e', 'o', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sharepic.xyz", true */ 's', 'h', 'a', 'r', 'e', 'p', 'i', 'c', '.', 'x', 'y', 'z', '\0',
   /* "sharepointdrive.com", true */ 's', 'h', 'a', 'r', 'e', 'p', 'o', 'i', 'n', 't', 'd', 'r', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sharescope.co.uk", false */ 's', 'h', 'a', 'r', 'e', 's', 'c', 'o', 'p', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "sharesplitter.com", true */ 's', 'h', 'a', 'r', 'e', 's', 'p', 'l', 'i', 't', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sharewbb.com", true */ 's', 'h', 'a', 'r', 'e', 'w', 'b', 'b', '.', 'c', 'o', 'm', '\0',
   /* "shareworx.net", true */ 's', 'h', 'a', 'r', 'e', 'w', 'o', 'r', 'x', '.', 'n', 'e', 't', '\0',
@@ -14448,16 +14430,17 @@ static const char kSTSHostTable[] = {
   /* "shopherbal.co.za", true */ 's', 'h', 'o', 'p', 'h', 'e', 'r', 'b', 'a', 'l', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "shoplandia.co", true */ 's', 'h', 'o', 'p', 'l', 'a', 'n', 'd', 'i', 'a', '.', 'c', 'o', '\0',
   /* "shoppeno5.com", true */ 's', 'h', 'o', 'p', 'p', 'e', 'n', 'o', '5', '.', 'c', 'o', 'm', '\0',
   /* "shopping24.de", true */ 's', 'h', 'o', 'p', 'p', 'i', 'n', 'g', '2', '4', '.', 'd', 'e', '\0',
   /* "shorebreaksecurity.com", true */ 's', 'h', 'o', 'r', 'e', 'b', 'r', 'e', 'a', 'k', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "short-biography.com", true */ 's', 'h', 'o', 'r', 't', '-', 'b', 'i', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '\0',
   /* "shortdiary.me", true */ 's', 'h', 'o', 'r', 't', 'd', 'i', 'a', 'r', 'y', '.', 'm', 'e', '\0',
   /* "shorten.ninja", true */ 's', 'h', 'o', 'r', 't', 'e', 'n', '.', 'n', 'i', 'n', 'j', 'a', '\0',
+  /* "shortpath.com", true */ 's', 'h', 'o', 'r', 't', 'p', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "shota.party", true */ 's', 'h', 'o', 't', 'a', '.', 'p', 'a', 'r', 't', 'y', '\0',
   /* "shotbow.net", true */ 's', 'h', 'o', 't', 'b', 'o', 'w', '.', 'n', 'e', 't', '\0',
   /* "show-saratov.ru", true */ 's', 'h', 'o', 'w', '-', 's', 'a', 'r', 'a', 't', 'o', 'v', '.', 'r', 'u', '\0',
   /* "shower.im", true */ 's', 'h', 'o', 'w', 'e', 'r', '.', 'i', 'm', '\0',
   /* "showsonar.com", true */ 's', 'h', 'o', 'w', 's', 'o', 'n', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "shrike.me", true */ 's', 'h', 'r', 'i', 'k', 'e', '.', 'm', 'e', '\0',
   /* "shrinkhub.com", true */ 's', 'h', 'r', 'i', 'n', 'k', 'h', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "shrub.ca", true */ 's', 'h', 'r', 'u', 'b', '.', 'c', 'a', '\0',
@@ -14553,16 +14536,17 @@ static const char kSTSHostTable[] = {
   /* "simple.com", false */ 's', 'i', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "simplecontacts.com", true */ 's', 'i', 'm', 'p', 'l', 'e', 'c', 'o', 'n', 't', 'a', 'c', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "simplednscrypt.org", false */ 's', 'i', 'm', 'p', 'l', 'e', 'd', 'n', 's', 'c', 'r', 'y', 'p', 't', '.', 'o', 'r', 'g', '\0',
   /* "simplerses.com", true */ 's', 'i', 'm', 'p', 'l', 'e', 'r', 's', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "simpletax.ca", true */ 's', 'i', 'm', 'p', 'l', 'e', 't', 'a', 'x', '.', 'c', 'a', '\0',
   /* "simplexsupport.com", false */ 's', 'i', 'm', 'p', 'l', 'e', 'x', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "simplia.cz", true */ 's', 'i', 'm', 'p', 'l', 'i', 'a', '.', 'c', 'z', '\0',
   /* "simplicitypvp.net", true */ 's', 'i', 'm', 'p', 'l', 'i', 'c', 'i', 't', 'y', 'p', 'v', 'p', '.', 'n', 'e', 't', '\0',
+  /* "simplixos.org", true */ 's', 'i', 'm', 'p', 'l', 'i', 'x', 'o', 's', '.', 'o', 'r', 'g', '\0',
   /* "simplycharlottemason.com", true */ 's', 'i', 'm', 'p', 'l', 'y', 'c', 'h', 'a', 'r', 'l', 'o', 't', 't', 'e', 'm', 'a', 's', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "simplycloud.de", true */ 's', 'i', 'm', 'p', 'l', 'y', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0',
   /* "simplyenak.com", true */ 's', 'i', 'm', 'p', 'l', 'y', 'e', 'n', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "simplyfixit.co.uk", true */ 's', 'i', 'm', 'p', 'l', 'y', 'f', 'i', 'x', 'i', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "simplyhelen.de", true */ 's', 'i', 'm', 'p', 'l', 'y', 'h', 'e', 'l', 'e', 'n', '.', 'd', 'e', '\0',
   /* "simplymozzo.se", true */ 's', 'i', 'm', 'p', 'l', 'y', 'm', 'o', 'z', 'z', 'o', '.', 's', 'e', '\0',
   /* "simplystudio.com", true */ 's', 'i', 'm', 'p', 'l', 'y', 's', 't', 'u', 'd', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "simpte.com", true */ 's', 'i', 'm', 'p', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -14582,16 +14566,17 @@ static const char kSTSHostTable[] = {
   /* "sinnovate.de", true */ 's', 'i', 'n', 'n', 'o', 'v', 'a', 't', 'e', '.', 'd', 'e', '\0',
   /* "sinonimos.com.br", true */ 's', 'i', 'n', 'o', 'n', 'i', 'm', 'o', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "sinonimosonline.com", true */ 's', 'i', 'n', 'o', 'n', 'i', 'm', 'o', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sinonimosonline.com.br", true */ 's', 'i', 'n', 'o', 'n', 'i', 'm', 'o', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "sinoscandinavia.se", true */ 's', 'i', 'n', 'o', 's', 'c', 'a', 'n', 'd', 'i', 'n', 'a', 'v', 'i', 'a', '.', 's', 'e', '\0',
   /* "sinquin.eu", true */ 's', 'i', 'n', 'q', 'u', 'i', 'n', '.', 'e', 'u', '\0',
   /* "sint-joris.nl", true */ 's', 'i', 'n', 't', '-', 'j', 'o', 'r', 'i', 's', '.', 'n', 'l', '\0',
   /* "siqi.wang", true */ 's', 'i', 'q', 'i', '.', 'w', 'a', 'n', 'g', '\0',
+  /* "siraweb.org", false */ 's', 'i', 'r', 'a', 'w', 'e', 'b', '.', 'o', 'r', 'g', '\0',
   /* "sirenslove.com", true */ 's', 'i', 'r', 'e', 'n', 's', 'l', 'o', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "siriuspup.com", true */ 's', 'i', 'r', 'i', 'u', 's', 'p', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "siroop.ch", true */ 's', 'i', 'r', 'o', 'o', 'p', '.', 'c', 'h', '\0',
   /* "sirtaptap.com", true */ 's', 'i', 'r', 't', 'a', 'p', 't', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "sistem-maklumat.com", true */ 's', 'i', 's', 't', 'e', 'm', '-', 'm', 'a', 'k', 'l', 'u', 'm', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "sistem-maklumat.com.my", true */ 's', 'i', 's', 't', 'e', 'm', '-', 'm', 'a', 'k', 'l', 'u', 'm', 'a', 't', '.', 'c', 'o', 'm', '.', 'm', 'y', '\0',
   /* "sistemy48.ru", true */ 's', 'i', 's', 't', 'e', 'm', 'y', '4', '8', '.', 'r', 'u', '\0',
   /* "sistersurprise.de", true */ 's', 'i', 's', 't', 'e', 'r', 's', 'u', 'r', 'p', 'r', 'i', 's', 'e', '.', 'd', 'e', '\0',
@@ -14669,17 +14654,16 @@ static const char kSTSHostTable[] = {
   /* "slainvet.net", true */ 's', 'l', 'a', 'i', 'n', 'v', 'e', 't', '.', 'n', 'e', 't', '\0',
   /* "slamdjapan.com", true */ 's', 'l', 'a', 'm', 'd', 'j', 'a', 'p', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "slamix.nl", true */ 's', 'l', 'a', 'm', 'i', 'x', '.', 'n', 'l', '\0',
   /* "slangbellor.com", true */ 's', 'l', 'a', 'n', 'g', 'b', 'e', 'l', 'l', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "slanterns.net", true */ 's', 'l', 'a', 'n', 't', 'e', 'r', 'n', 's', '.', 'n', 'e', 't', '\0',
   /* "slapen17.nl", true */ 's', 'l', 'a', 'p', 'e', 'n', '1', '7', '.', 'n', 'l', '\0',
   /* "slaps.be", true */ 's', 'l', 'a', 'p', 's', '.', 'b', 'e', '\0',
   /* "slashdesign.it", true */ 's', 'l', 'a', 's', 'h', 'd', 'e', 's', 'i', 'g', 'n', '.', 'i', 't', '\0',
-  /* "slauber.de", true */ 's', 'l', 'a', 'u', 'b', 'e', 'r', '.', 'd', 'e', '\0',
   /* "slaughterhouse.fr", true */ 's', 'l', 'a', 'u', 'g', 'h', 't', 'e', 'r', 'h', 'o', 'u', 's', 'e', '.', 'f', 'r', '\0',
   /* "slaws.io", true */ 's', 'l', 'a', 'w', 's', '.', 'i', 'o', '\0',
   /* "sleeplessbeastie.eu", true */ 's', 'l', 'e', 'e', 'p', 'l', 'e', 's', 's', 'b', 'e', 'a', 's', 't', 'i', 'e', '.', 'e', 'u', '\0',
   /* "sleepstar.co.uk", true */ 's', 'l', 'e', 'e', 'p', 's', 't', 'a', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "sleepstar.com.mt", true */ 's', 'l', 'e', 'e', 'p', 's', 't', 'a', 'r', '.', 'c', 'o', 'm', '.', 'm', 't', '\0',
   /* "sleepstar.de", true */ 's', 'l', 'e', 'e', 'p', 's', 't', 'a', 'r', '.', 'd', 'e', '\0',
   /* "sleio.com", true */ 's', 'l', 'e', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "slever.cz", true */ 's', 'l', 'e', 'v', 'e', 'r', '.', 'c', 'z', '\0',
@@ -14696,23 +14680,23 @@ static const char kSTSHostTable[] = {
   /* "slneighbors.org", true */ 's', 'l', 'n', 'e', 'i', 'g', 'h', 'b', 'o', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "slo-tech.com", true */ 's', 'l', 'o', '-', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "sloancom.com", true */ 's', 'l', 'o', 'a', 'n', 'c', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "slotboss.co.uk", true */ 's', 'l', 'o', 't', 'b', 'o', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "slotcar.com", false */ 's', 'l', 'o', 't', 'c', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "slovoice.org", true */ 's', 'l', 'o', 'v', 'o', 'i', 'c', 'e', '.', 'o', 'r', 'g', '\0',
   /* "slow.zone", true */ 's', 'l', 'o', 'w', '.', 'z', 'o', 'n', 'e', '\0',
   /* "slowb.ro", true */ 's', 'l', 'o', 'w', 'b', '.', 'r', 'o', '\0',
-  /* "slowfood.es", true */ 's', 'l', 'o', 'w', 'f', 'o', 'o', 'd', '.', 'e', 's', '\0',
   /* "slse.ca", true */ 's', 'l', 's', 'e', '.', 'c', 'a', '\0',
   /* "slxh.eu", true */ 's', 'l', 'x', 'h', '.', 'e', 'u', '\0',
   /* "slxh.nl", true */ 's', 'l', 'x', 'h', '.', 'n', 'l', '\0',
   /* "sm.ms", true */ 's', 'm', '.', 'm', 's', '\0',
   /* "smablo.com", true */ 's', 'm', 'a', 'b', 'l', 'o', '.', 'c', 'o', 'm', '\0',
   /* "smallcdn.rocks", true */ 's', 'm', 'a', 'l', 'l', 'c', 'd', 'n', '.', 'r', 'o', 'c', 'k', 's', '\0',
+  /* "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',
   /* "smart-cp.jp", true */ 's', 'm', 'a', 'r', 't', '-', 'c', 'p', '.', 'j', 'p', '\0',
@@ -14783,17 +14767,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "snekchat.moe", true */ 's', 'n', 'e', 'k', 'c', 'h', 'a', 't', '.', 'm', 'o', 'e', '\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',
   /* "snippet.host", true */ 's', 'n', 'i', 'p', 'p', 'e', 't', '.', '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',
   /* "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',
   /* "snow.dog", true */ 's', 'n', 'o', 'w', '.', 'd', 'o', 'g', '\0',
@@ -14907,16 +14890,17 @@ static const char kSTSHostTable[] = {
   /* "soruly.com", true */ 's', 'o', 'r', 'u', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "sorz.org", true */ 's', 'o', 'r', 'z', '.', 'o', 'r', 'g', '\0',
   /* "sos.sk", false */ 's', 'o', 's', '.', 's', 'k', '\0',
   /* "sosaka.ml", true */ 's', 'o', 's', 'a', 'k', 'a', '.', 'm', 'l', '\0',
   /* "sosecu.red", true */ 's', 'o', 's', 'e', 'c', 'u', '.', 'r', 'e', 'd', '\0',
   /* "sostacancun.com", true */ 's', 'o', 's', 't', 'a', 'c', 'a', 'n', 'c', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "sotar.us", true */ 's', 'o', 't', 'a', 'r', '.', 'u', 's', '\0',
   /* "sotavasara.net", true */ 's', 'o', 't', 'a', 'v', 'a', 's', 'a', 'r', 'a', '.', 'n', 'e', 't', '\0',
+  /* "sotiran.com", true */ 's', 'o', 't', 'i', 'r', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "sotoasobi.net", true */ 's', 'o', 't', 'o', 'a', 's', 'o', 'b', 'i', '.', 'n', 'e', 't', '\0',
   /* "sou-co.jp", true */ 's', 'o', 'u', '-', 'c', 'o', '.', 'j', 'p', '\0',
   /* "soucorneteiro.com.br", true */ 's', 'o', 'u', 'c', 'o', 'r', 'n', 'e', 't', 'e', 'i', 'r', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "souki.cz", true */ 's', 'o', 'u', 'k', 'i', '.', 'c', 'z', '\0',
   /* "soul-source.co.uk", true */ 's', 'o', 'u', 'l', '-', 's', 'o', 'u', 'r', 'c', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "soulboy.io", false */ 's', 'o', 'u', 'l', 'b', 'o', 'y', '.', 'i', 'o', '\0',
   /* "soulmate.dating", true */ 's', 'o', 'u', 'l', 'm', 'a', 't', 'e', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "soulogic.com", false */ 's', 'o', 'u', 'l', 'o', 'g', 'i', 'c', '.', 'c', 'o', 'm', '\0',
@@ -15102,17 +15086,16 @@ static const char kSTSHostTable[] = {
   /* "ssldecoder.org", true */ 's', 's', 'l', 'd', 'e', 'c', 'o', 'd', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "ssldev.net", true */ 's', 's', 'l', 'd', 'e', 'v', '.', 'n', 'e', 't', '\0',
   /* "sslmate.com", true */ 's', 's', 'l', 'm', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sslpoint.com", true */ 's', 's', 'l', 'p', 'o', 'i', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "ssls.cz", true */ 's', 's', 'l', 's', '.', 'c', 'z', '\0',
   /* "sslsurvey.de", true */ 's', 's', 'l', 's', 'u', 'r', 'v', 'e', 'y', '.', 'd', 'e', '\0',
   /* "sslzilla.de", true */ 's', 's', 'l', 'z', 'i', 'l', 'l', 'a', '.', 'd', 'e', '\0',
   /* "sspanda.com", true */ 's', 's', 'p', 'a', 'n', 'd', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "sstewartgallus.com", true */ 's', 's', 't', 'e', 'w', 'a', 'r', 't', 'g', 'a', 'l', 'l', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "st-kilian-markt-erlbach.de", true */ 's', 't', '-', 'k', 'i', 'l', 'i', 'a', 'n', '-', 'm', 'a', 'r', 'k', 't', '-', 'e', 'r', 'l', 'b', 'a', 'c', 'h', '.', 'd', 'e', '\0',
   /* "st-news.de", true */ 's', 't', '-', 'n', 'e', 'w', 's', '.', 'd', 'e', '\0',
   /* "staack.com", false */ 's', 't', 'a', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "staatschutz.at", true */ 's', 't', 'a', 'a', 't', 's', 'c', 'h', 'u', 't', 'z', '.', 'a', 't', '\0',
   /* "staatsschutz.at", true */ 's', 't', 'a', 'a', 't', 's', 's', 'c', 'h', 'u', 't', 'z', '.', 'a', 't', '\0',
   /* "staatsschutzgesetz.at", true */ 's', 't', 'a', 'a', 't', 's', 's', 'c', 'h', 'u', 't', 'z', 'g', 'e', 's', 'e', 't', 'z', '.', 'a', 't', '\0',
   /* "stablelib.com", true */ 's', 't', 'a', 'b', 'l', 'e', 'l', 'i', 'b', '.', 'c', 'o', 'm', '\0',
   /* "stackptr.com", true */ 's', 't', 'a', 'c', 'k', 'p', 't', 'r', '.', 'c', 'o', 'm', '\0',
@@ -15163,17 +15146,16 @@ static const char kSTSHostTable[] = {
   /* "starstreak.net", true */ 's', 't', 'a', 'r', 's', 't', 'r', 'e', 'a', 'k', '.', 'n', 'e', 't', '\0',
   /* "startpage.com", true */ 's', 't', 'a', 'r', 't', 'p', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "startpage.info", true */ 's', 't', 'a', 'r', 't', 'p', 'a', 'g', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "startrek.in", true */ 's', 't', 'a', 'r', 't', 'r', 'e', 'k', '.', 'i', 'n', '\0',
   /* "starttraffic.uk", true */ 's', 't', 'a', 'r', 't', 't', 'r', 'a', 'f', 'f', 'i', 'c', '.', 'u', 'k', '\0',
   /* "startupsort.com", true */ 's', 't', 'a', 'r', 't', 'u', 'p', 's', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "startupum.ru", true */ 's', 't', 'a', 'r', 't', 'u', 'p', 'u', 'm', '.', 'r', 'u', '\0',
   /* "starwatches.eu", true */ 's', 't', 'a', 'r', 'w', 'a', 't', 'c', 'h', 'e', 's', '.', 'e', 'u', '\0',
-  /* "stash.ai", true */ 's', 't', 'a', 's', 'h', '.', 'a', 'i', '\0',
   /* "stassi.ch", true */ 's', 't', 'a', 's', 's', 'i', '.', 'c', 'h', '\0',
   /* "stat.ink", true */ 's', 't', 'a', 't', '.', 'i', 'n', 'k', '\0',
   /* "statgram.me", true */ 's', 't', 'a', 't', 'g', 'r', 'a', 'm', '.', 'm', 'e', '\0',
   /* "static-myfxee-808795.c.cdn77.org", true */ 's', 't', 'a', 't', 'i', 'c', '-', 'm', 'y', 'f', 'x', 'e', 'e', '-', '8', '0', '8', '7', '9', '5', '.', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0',
   /* "static-myfxoau-808795.c.cdn77.org", true */ 's', 't', 'a', 't', 'i', 'c', '-', 'm', 'y', 'f', 'x', 'o', 'a', 'u', '-', '8', '0', '8', '7', '9', '5', '.', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0',
   /* "static-myfxouk-808795.c.cdn77.org", true */ 's', 't', 'a', 't', 'i', 'c', '-', 'm', 'y', 'f', 'x', 'o', 'u', 'k', '-', '8', '0', '8', '7', '9', '5', '.', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0',
   /* "static.hosting", true */ 's', 't', 'a', 't', 'i', 'c', '.', 'h', 'o', 's', 't', 'i', 'n', 'g', '\0',
   /* "static.wepay.com", false */ 's', 't', 'a', 't', 'i', 'c', '.', 'w', 'e', 'p', 'a', 'y', '.', 'c', 'o', 'm', '\0',
@@ -15257,17 +15239,16 @@ static const char kSTSHostTable[] = {
   /* "stockrow.com", true */ 's', 't', 'o', 'c', 'k', 'r', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "stockseyeserum.com", true */ 's', 't', 'o', 'c', 'k', 's', 'e', 'y', 'e', 's', 'e', 'r', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "stocktrader.com", true */ 's', 't', 'o', 'c', 'k', 't', 'r', 'a', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "stoffelen.nl", true */ 's', 't', 'o', 'f', 'f', 'e', 'l', 'e', 'n', '.', 'n', 'l', '\0',
   /* "stoianlawfirm.com", true */ 's', 't', 'o', 'i', 'a', 'n', 'l', 'a', 'w', 'f', 'i', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "stoick.me", true */ 's', 't', 'o', 'i', 'c', 'k', '.', 'm', 'e', '\0',
   /* "stolina.de", true */ 's', 't', 'o', 'l', 'i', 'n', 'a', '.', 'd', 'e', '\0',
   /* "stolkschepen.nl", true */ 's', 't', 'o', 'l', 'k', 's', 'c', 'h', 'e', 'p', 'e', 'n', '.', 'n', 'l', '\0',
-  /* "stomt.com", true */ 's', 't', 'o', 'm', 't', '.', 'c', 'o', 'm', '\0',
   /* "stonecutterscommunity.com", true */ 's', 't', 'o', 'n', 'e', 'c', 'u', 't', 't', 'e', 'r', 's', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "stonefusion.org.uk", true */ 's', 't', 'o', 'n', 'e', 'f', 'u', 's', 'i', 'o', 'n', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "stonemain.eu", true */ 's', 't', 'o', 'n', 'e', 'm', 'a', 'i', 'n', '.', 'e', 'u', '\0',
   /* "stonystratford.org", true */ 's', 't', 'o', 'n', 'y', 's', 't', 'r', 'a', 't', 'f', 'o', 'r', 'd', '.', 'o', 'r', 'g', '\0',
   /* "stopakwardhandshakes.org", true */ 's', 't', 'o', 'p', 'a', 'k', 'w', 'a', 'r', 'd', 'h', 'a', 'n', 'd', 's', 'h', 'a', 'k', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "stopbullying.gov", true */ 's', 't', 'o', 'p', 'b', 'u', 'l', 'l', 'y', 'i', 'n', 'g', '.', 'g', 'o', 'v', '\0',
   /* "stopfraud.gov", true */ 's', 't', 'o', 'p', 'f', 'r', 'a', 'u', 'd', '.', 'g', 'o', 'v', '\0',
   /* "stopthethyroidmadness.com", true */ 's', 't', 'o', 'p', 't', 'h', 'e', 't', 'h', 'y', 'r', 'o', 'i', 'd', 'm', 'a', 'd', 'n', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
@@ -15335,29 +15316,29 @@ static const char kSTSHostTable[] = {
   /* "studiostudio.net", true */ 's', 't', 'u', 'd', 'i', 'o', 's', 't', 'u', 'd', 'i', 'o', '.', 'n', 'e', 't', '\0',
   /* "studium.cz", true */ 's', 't', 'u', 'd', 'i', 'u', 'm', '.', 'c', 'z', '\0',
   /* "studlan.no", true */ 's', 't', 'u', 'd', 'l', 'a', 'n', '.', 'n', 'o', '\0',
   /* "stuermer.me", true */ 's', 't', 'u', 'e', 'r', 'm', 'e', 'r', '.', 'm', 'e', '\0',
   /* "stuetzredli.ch", true */ 's', 't', 'u', 'e', 't', 'z', 'r', 'e', 'd', 'l', 'i', '.', 'c', 'h', '\0',
   /* "stuff-fibre.co.nz", true */ 's', 't', 'u', 'f', 'f', '-', 'f', 'i', 'b', 'r', 'e', '.', 'c', 'o', '.', 'n', 'z', '\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',
   /* "sturbi.de", true */ 's', 't', 'u', 'r', 'b', 'i', '.', 'd', 'e', '\0',
   /* "sturbock.me", true */ 's', 't', 'u', 'r', 'b', 'o', 'c', 'k', '.', 'm', 'e', '\0',
   /* "stutelage.com", true */ 's', 't', 'u', 't', 'e', 'l', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "stuur.nl", false */ 's', 't', 'u', 'u', 'r', '.', 'n', 'l', '\0',
   /* "stygium.net", false */ 's', 't', 'y', 'g', 'i', 'u', 'm', '.', 'n', 'e', 't', '\0',
   /* "styleci.io", true */ 's', 't', 'y', 'l', 'e', 'c', 'i', '.', 'i', 'o', '\0',
   /* "stylefast.com.au", true */ 's', 't', 'y', 'l', 'e', 'f', 'a', 's', 't', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "stylle.me", true */ 's', 't', 'y', 'l', 'l', 'e', '.', 'm', 'e', '\0',
   /* "su1ph3r.io", true */ 's', 'u', '1', 'p', 'h', '3', 'r', '.', 'i', 'o', '\0',
   /* "suave.io", true */ 's', 'u', 'a', 'v', 'e', '.', 'i', 'o', '\0',
   /* "subdev.org", true */ 's', 'u', 'b', 'd', 'e', 'v', '.', 'o', 'r', 'g', '\0',
-  /* "subeesu.com", true */ 's', 'u', 'b', 'e', 'e', 's', 'u', '.', 'c', 'o', 'm', '\0',
   /* "subhacker.net", true */ 's', 'u', 'b', 'h', 'a', 'c', 'k', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "sublevel.net", false */ 's', 'u', 'b', 'l', 'e', 'v', 'e', 'l', '.', 'n', 'e', 't', '\0',
   /* "sublimebits.com", true */ 's', 'u', 'b', 'l', 'i', 'm', 'e', 'b', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "submedia.tv", true */ 's', 'u', 'b', 'm', 'e', 'd', 'i', 'a', '.', 't', 'v', '\0',
   /* "subohm.com", true */ 's', 'u', 'b', 'o', 'h', 'm', '.', 'c', 'o', 'm', '\0',
   /* "suborbital.io", true */ 's', 'u', 'b', 'o', 'r', 'b', 'i', 't', 'a', 'l', '.', 'i', 'o', '\0',
   /* "subseq.net", false */ 's', 'u', 'b', 's', 'e', 'q', '.', 'n', 'e', 't', '\0',
   /* "suburban-landscape.net", true */ 's', 'u', 'b', 'u', 'r', 'b', 'a', 'n', '-', 'l', 'a', 'n', 'd', 's', 'c', 'a', 'p', 'e', '.', 'n', 'e', 't', '\0',
@@ -15374,17 +15355,17 @@ static const char kSTSHostTable[] = {
   /* "suempresa.cloud", true */ 's', 'u', 'e', 'm', 'p', 'r', 'e', 's', 'a', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "suevia-ka.de", true */ 's', 'u', 'e', 'v', 'i', 'a', '-', 'k', 'a', '.', 'd', 'e', '\0',
   /* "sufix.cz", true */ 's', 'u', 'f', 'i', 'x', '.', 'c', 'z', '\0',
   /* "sugarshin.net", true */ 's', 'u', 'g', 'a', 'r', 's', 'h', 'i', 'n', '.', 'n', 'e', 't', '\0',
   /* "suggestim.ch", true */ 's', 'u', 'g', 'g', 'e', 's', 't', 'i', 'm', '.', 'c', 'h', '\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',
-  /* "summa.eu", true */ 's', 'u', 'm', 'm', 'a', '.', 'e', 'u', '\0',
+  /* "summa.eu", false */ 's', 'u', 'm', 'm', 'a', '.', 'e', 'u', '\0',
   /* "summitbankofkc.com", true */ 's', 'u', 'm', 'm', 'i', 't', 'b', 'a', 'n', 'k', 'o', 'f', 'k', 'c', '.', 'c', 'o', 'm', '\0',
   /* "sumthing.com", true */ 's', 'u', 'm', 't', 'h', 'i', 'n', 'g', '.', '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',
   /* "sunfox.cz", true */ 's', 'u', 'n', 'f', 'o', 'x', '.', 'c', 'z', '\0',
   /* "sunfulong.me", true */ 's', 'u', 'n', 'f', 'u', 'l', 'o', 'n', 'g', '.', 'm', 'e', '\0',
   /* "sunjaydhama.com", true */ 's', 'u', 'n', 'j', 'a', 'y', 'd', 'h', 'a', 'm', 'a', '.', 'c', 'o', 'm', '\0',
@@ -15513,17 +15494,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "synotna.eu", true */ 's', 'y', 'n', 'o', 't', 'n', 'a', '.', 'e', 'u', '\0',
   /* "syntaxnightmare.com", true */ 's', 'y', 'n', 't', 'a', 'x', 'n', 'i', 'g', 'h', 't', 'm', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sys.tf", true */ 's', 'y', 's', '.', 't', 'f', '\0',
-  /* "sysadmin.pm", true */ 's', 'y', 's', 'a', 'd', 'm', 'i', 'n', '.', 'p', 'm', '\0',
   /* "sysadmins.ro", true */ 's', 'y', 's', 'a', 'd', 'm', 'i', 'n', 's', '.', 'r', 'o', '\0',
   /* "sysadminstory.com", true */ 's', 'y', 's', 'a', 'd', 'm', 'i', 'n', 's', 't', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\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',
   /* "sysgeek.cn", true */ 's', 'y', 's', 'g', 'e', 'e', 'k', '.', 'c', 'n', '\0',
   /* "sysmike.de", true */ 's', 'y', 's', 'm', 'i', 'k', 'e', '.', 'd', 'e', '\0',
   /* "sysmike.net", true */ 's', 'y', 's', 'm', 'i', 'k', 'e', '.', 'n', 'e', 't', '\0',
@@ -15869,17 +15849,16 @@ static const char kSTSHostTable[] = {
   /* "the-delta.net.eu.org", true */ 't', 'h', 'e', '-', 'd', 'e', 'l', 't', 'a', '.', 'n', 'e', 't', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "the-earth-yui.net", false */ 't', 'h', 'e', '-', 'e', 'a', 'r', 't', 'h', '-', 'y', 'u', 'i', '.', 'n', 'e', 't', '\0',
   /* "the-gist.io", true */ 't', 'h', 'e', '-', 'g', 'i', 's', 't', '.', 'i', 'o', '\0',
   /* "the-hemingway-code.de", true */ 't', 'h', 'e', '-', 'h', 'e', 'm', 'i', 'n', 'g', 'w', 'a', 'y', '-', 'c', 'o', 'd', 'e', '.', 'd', 'e', '\0',
   /* "the-mystery.org", true */ 't', 'h', 'e', '-', 'm', 'y', 's', 't', 'e', 'r', 'y', '.', 'o', 'r', 'g', '\0',
   /* "the-paddies.de", true */ 't', 'h', 'e', '-', 'p', 'a', 'd', 'd', 'i', 'e', 's', '.', 'd', 'e', '\0',
   /* "theamp.com", true */ 't', 'h', 'e', 'a', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "thebigdatacompany.com", true */ 't', 'h', 'e', 'b', 'i', 'g', 'd', 'a', 't', 'a', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '.', 'c', 'o', 'm', '\0',
-  /* "thebigwave.de", true */ 't', 'h', 'e', 'b', 'i', 'g', 'w', 'a', 'v', 'e', '.', 'd', 'e', '\0',
   /* "thebikeinsurer.co.uk", true */ 't', 'h', 'e', 'b', 'i', 'k', 'e', 'i', 'n', 's', 'u', 'r', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "thebimhub.com", true */ 't', 'h', 'e', 'b', 'i', 'm', 'h', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "thebreakroom.org", true */ 't', 'h', 'e', 'b', 'r', 'e', 'a', 'k', 'r', 'o', 'o', 'm', '.', 'o', 'r', 'g', '\0',
   /* "thebrightons.co.uk", true */ 't', 'h', 'e', 'b', 'r', 'i', 'g', 'h', 't', 'o', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "thebuffalotavern.com", true */ 't', 'h', 'e', 'b', 'u', 'f', 'f', 'a', 'l', 'o', 't', 'a', 'v', 'e', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "thecandidforum.com", true */ 't', 'h', 'e', 'c', 'a', 'n', 'd', 'i', 'd', 'f', 'o', 'r', 'u', 'm', '.', 'c', 'o', 'm', '\0',
   /* "thechunk.net", true */ 't', 'h', 'e', 'c', 'h', 'u', 'n', 'k', '.', 'n', 'e', 't', '\0',
   /* "theciderlink.com.au", true */ 't', 'h', 'e', 'c', 'i', 'd', 'e', 'r', 'l', 'i', 'n', 'k', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
@@ -15895,17 +15874,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "thedronechart.com", true */ 't', 'h', 'e', 'd', 'r', 'o', 'n', 'e', 'c', 'h', 'a', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "thedrop.pw", true */ 't', 'h', 'e', 'd', 'r', 'o', 'p', '.', 'p', 'w', '\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',
   /* "thedystance.com", true */ 't', 'h', 'e', 'd', 'y', 's', 't', 'a', 'n', 'c', 'e', '.', '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',
   /* "theflyingbear.net", true */ 't', 'h', 'e', 'f', 'l', 'y', 'i', 'n', 'g', 'b', 'e', 'a', 'r', '.', 'n', 'e', 't', '\0',
   /* "thefox.co", true */ 't', 'h', 'e', 'f', 'o', 'x', '.', 'c', 'o', '\0',
   /* "thefox.com.fr", true */ 't', 'h', 'e', 'f', 'o', 'x', '.', 'c', 'o', 'm', '.', 'f', 'r', '\0',
   /* "thefreebirds.in", true */ 't', 'h', 'e', 'f', 'r', 'e', 'e', 'b', 'i', 'r', 'd', 's', '.', 'i', 'n', '\0',
   /* "thegamerscamp.com", true */ 't', 'h', 'e', 'g', 'a', 'm', 'e', 'r', 's', 'c', 'a', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "thegasshop.co.uk", true */ 't', 'h', 'e', 'g', 'a', 's', 's', 'h', 'o', 'p', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "thegoldregister.co.uk", true */ 't', 'h', 'e', 'g', 'o', 'l', 'd', 'r', 'e', 'g', 'i', 's', 't', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -16078,17 +16056,16 @@ static const char kSTSHostTable[] = {
   /* "tianya.tv", true */ 't', 'i', 'a', 'n', 'y', 'a', '.', 't', 'v', '\0',
   /* "tibbitshall.ca", true */ 't', 'i', 'b', 'b', 'i', 't', 's', 'h', 'a', 'l', 'l', '.', 'c', 'a', '\0',
   /* "ticfleet.com", true */ 't', 'i', 'c', 'f', 'l', 'e', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "ticketmates.com.au", true */ 't', 'i', 'c', 'k', 'e', 't', 'm', 'a', 't', 'e', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "ticketoplichting.nl", true */ 't', 'i', 'c', 'k', 'e', 't', 'o', 'p', 'l', 'i', 'c', 'h', 't', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "ticketsourcebeta.co.uk", true */ 't', 'i', 'c', 'k', 'e', 't', 's', 'o', 'u', 'r', 'c', 'e', 'b', 'e', 't', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "tid.jp", true */ 't', 'i', 'd', '.', 'j', 'p', '\0',
   /* "tidycustoms.net", true */ 't', 'i', 'd', 'y', 'c', 'u', 's', 't', 'o', 'm', 's', '.', 'n', 'e', 't', '\0',
-  /* "tie-online.org", true */ 't', 'i', 'e', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "tiendavertigo.com", true */ 't', 'i', 'e', 'n', 'd', 'a', 'v', 'e', 'r', 't', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "tiendschuurstraat.nl", true */ 't', 'i', 'e', 'n', 'd', 's', 'c', 'h', 'u', 'u', 'r', 's', 't', 'r', 'a', 'a', 't', '.', 'n', 'l', '\0',
   /* "tiens-ib.cz", true */ 't', 'i', 'e', 'n', 's', '-', 'i', 'b', '.', 'c', 'z', '\0',
   /* "tierarztpraxis-bogenhausen.de", true */ 't', 'i', 'e', 'r', 'a', 'r', 'z', 't', 'p', 'r', 'a', 'x', 'i', 's', '-', 'b', 'o', 'g', 'e', 'n', 'h', 'a', 'u', 's', 'e', 'n', '.', 'd', 'e', '\0',
   /* "tiernanx.com", true */ 't', 'i', 'e', 'r', 'n', 'a', 'n', 'x', '.', 'c', 'o', 'm', '\0',
   /* "tifan.net", true */ 't', 'i', 'f', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "tiffnix.com", true */ 't', 'i', 'f', 'f', 'n', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "tigerchef.com", true */ 't', 'i', 'g', 'e', 'r', 'c', 'h', 'e', 'f', '.', 'c', 'o', 'm', '\0',
@@ -16115,17 +16092,16 @@ static const char kSTSHostTable[] = {
   /* "timmy.ws", true */ 't', 'i', 'm', 'm', 'y', '.', 'w', 's', '\0',
   /* "timroes.de", true */ 't', 'i', 'm', 'r', 'o', 'e', 's', '.', 'd', 'e', '\0',
   /* "timstoffel.net", false */ 't', 'i', 'm', 's', 't', 'o', 'f', 'f', 'e', 'l', '.', 'n', 'e', 't', '\0',
   /* "timtaubert.de", true */ 't', 'i', 'm', 't', 'a', 'u', 'b', 'e', 'r', 't', '.', 'd', 'e', '\0',
   /* "timtj.ca", true */ 't', 'i', 'm', 't', 'j', '.', 'c', 'a', '\0',
   /* "timvandekamp.nl", true */ 't', 'i', 'm', 'v', 'a', 'n', 'd', 'e', 'k', 'a', 'm', 'p', '.', 'n', 'l', '\0',
   /* "timvivian.ca", true */ 't', 'i', 'm', 'v', 'i', 'v', 'i', 'a', 'n', '.', 'c', 'a', '\0',
   /* "timweb.ca", true */ 't', 'i', 'm', 'w', 'e', 'b', '.', 'c', 'a', '\0',
-  /* "timysewyn.be", true */ 't', 'i', 'm', 'y', 's', 'e', 'w', 'y', 'n', '.', 'b', 'e', '\0',
   /* "tinastahlschmidt.de", true */ 't', 'i', 'n', 'a', 's', 't', 'a', 'h', 'l', 's', 'c', 'h', 'm', 'i', 'd', 't', '.', 'd', 'e', '\0',
   /* "tinchbear.xyz", true */ 't', 'i', 'n', 'c', 'h', 'b', 'e', 'a', 'r', '.', 'x', 'y', 'z', '\0',
   /* "tindewen.net", true */ 't', 'i', 'n', 'd', 'e', 'w', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "tinfoilsecurity.com", false */ 't', 'i', 'n', 'f', 'o', 'i', 'l', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tinker.career", true */ 't', 'i', 'n', 'k', 'e', 'r', '.', 'c', 'a', 'r', 'e', 'e', 'r', '\0',
   /* "tinkertry.com", true */ 't', 'i', 'n', 'k', 'e', 'r', 't', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "tinte24.de", true */ 't', 'i', 'n', 't', 'e', '2', '4', '.', 'd', 'e', '\0',
   /* "tintencenter.com", true */ 't', 'i', 'n', 't', 'e', 'n', 'c', 'e', 'n', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -16181,17 +16157,16 @@ static const char kSTSHostTable[] = {
   /* "tmpsantos.com.br", true */ 't', 'm', 'p', 's', 'a', 'n', 't', 'o', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "tmtopup.com", true */ 't', 'm', 't', 'o', 'p', 'u', 'p', '.', 'c', 'o', 'm', '\0',
   /* "tmtradingmorocco.ma", true */ 't', 'm', 't', 'r', 'a', 'd', 'i', 'n', 'g', 'm', 'o', 'r', 'o', 'c', 'c', 'o', '.', 'm', 'a', '\0',
   /* "tn0.club", true */ 't', 'n', '0', '.', 'c', 'l', 'u', 'b', '\0',
   /* "tnb-plattform.de", true */ 't', 'n', 'b', '-', 'p', 'l', 'a', 't', 't', 'f', 'o', 'r', 'm', '.', 'd', 'e', '\0',
   /* "tnes.dk", true */ 't', 'n', 'e', 's', '.', 'd', 'k', '\0',
   /* "tno.io", true */ 't', 'n', 'o', '.', 'i', 'o', '\0',
   /* "tny.link", true */ 't', 'n', 'y', '.', 'l', 'i', 'n', 'k', '\0',
-  /* "toast.al", true */ 't', 'o', 'a', 's', 't', '.', 'a', 'l', '\0',
   /* "tobacco.gov", true */ 't', 'o', 'b', 'a', 'c', 'c', 'o', '.', 'g', 'o', 'v', '\0',
   /* "tobi-mayer.de", true */ 't', 'o', 'b', 'i', '-', 'm', 'a', 'y', 'e', 'r', '.', 'd', 'e', '\0',
   /* "tobias-haenel.de", true */ 't', 'o', 'b', 'i', 'a', 's', '-', 'h', 'a', 'e', 'n', 'e', 'l', '.', 'd', 'e', '\0',
   /* "tobias-kluge.de", true */ 't', 'o', 'b', 'i', 'a', 's', '-', 'k', 'l', 'u', 'g', 'e', '.', 'd', 'e', '\0',
   /* "tobias-picha.de", true */ 't', 'o', 'b', 'i', 'a', 's', '-', 'p', 'i', 'c', 'h', 'a', '.', 'd', 'e', '\0',
   /* "tobias-weidhase.de", true */ 't', 'o', 'b', 'i', 'a', 's', '-', 'w', 'e', 'i', 'd', 'h', 'a', 's', 'e', '.', 'd', 'e', '\0',
   /* "tobiasconradi.com", true */ 't', 'o', 'b', 'i', 'a', 's', 'c', 'o', 'n', 'r', 'a', 'd', 'i', '.', 'c', 'o', 'm', '\0',
   /* "tobiashorvath.com", true */ 't', 'o', 'b', 'i', 'a', 's', 'h', 'o', 'r', 'v', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
@@ -16658,17 +16633,16 @@ static const char kSTSHostTable[] = {
   /* "u03.fr", true */ 'u', '0', '3', '.', 'f', 'r', '\0',
   /* "u5b.de", true */ 'u', '5', 'b', '.', 'd', 'e', '\0',
   /* "uae-company-service.com", true */ 'u', 'a', 'e', '-', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "uangteman.com", true */ 'u', 'a', 'n', 'g', 't', 'e', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "uasmi.com", true */ 'u', 'a', 's', 'm', 'i', '.', 'c', 'o', 'm', '\0',
   /* "uat-activesg.com", true */ 'u', 'a', 't', '-', 'a', 'c', 't', 'i', 'v', 'e', 's', 'g', '.', 'c', 'o', 'm', '\0',
   /* "ub3rk1tten.com", false */ 'u', 'b', '3', 'r', 'k', '1', 't', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "ubalert.com", true */ 'u', 'b', 'a', 'l', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0',
-  /* "ubanquity.com", true */ 'u', 'b', 'a', 'n', 'q', 'u', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "uber.com.au", true */ 'u', 'b', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "uberboxen.net", true */ 'u', 'b', 'e', 'r', 'b', 'o', 'x', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "ubertt.org", true */ 'u', 'b', 'e', 'r', 't', 't', '.', 'o', 'r', 'g', '\0',
   /* "uberwald.de", true */ 'u', 'b', 'e', 'r', 'w', 'a', 'l', 'd', '.', 'd', 'e', '\0',
   /* "uberwald.ws", true */ 'u', 'b', 'e', 'r', 'w', 'a', 'l', 'd', '.', 'w', 's', '\0',
   /* "ubi.gg", true */ 'u', 'b', 'i', '.', 'g', 'g', '\0',
   /* "ublaboo.org", true */ 'u', 'b', 'l', 'a', 'b', 'o', 'o', '.', 'o', 'r', 'g', '\0',
   /* "uborcare.com", true */ 'u', 'b', 'o', 'r', 'c', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
@@ -16833,16 +16807,17 @@ static const char kSTSHostTable[] = {
   /* "urbackups.com", true */ 'u', 'r', 'b', 'a', 'c', 'k', 'u', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "urbalex.ch", true */ 'u', 'r', 'b', 'a', 'l', 'e', 'x', '.', 'c', 'h', '\0',
   /* "urban-culture.fr", true */ 'u', 'r', 'b', 'a', 'n', '-', 'c', 'u', 'l', 't', 'u', 'r', 'e', '.', 'f', 'r', '\0',
   /* "urban-garden.lt", true */ 'u', 'r', 'b', 'a', 'n', '-', 'g', 'a', 'r', 'd', 'e', 'n', '.', 'l', 't', '\0',
   /* "urban-garden.lv", true */ 'u', 'r', 'b', 'a', 'n', '-', 'g', 'a', 'r', 'd', 'e', 'n', '.', 'l', 'v', '\0',
   /* "urban.melbourne", true */ 'u', 'r', 'b', 'a', 'n', '.', 'm', 'e', 'l', 'b', 'o', 'u', 'r', 'n', 'e', '\0',
   /* "urbanesecurity.com", true */ 'u', 'r', 'b', 'a', 'n', 'e', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "urbanmelbourne.info", true */ 'u', 'r', 'b', 'a', 'n', 'm', 'e', 'l', 'b', 'o', 'u', 'r', 'n', 'e', '.', 'i', 'n', 'f', 'o', '\0',
+  /* "urbanstylestaging.com", true */ 'u', 'r', 'b', 'a', 'n', 's', 't', 'y', 'l', 'e', 's', 't', 'a', 'g', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "urbpic.com", true */ 'u', 'r', 'b', 'p', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "ureka.org", true */ 'u', 'r', 'e', 'k', 'a', '.', 'o', 'r', 'g', '\0',
   /* "uripura.de", true */ 'u', 'r', 'i', 'p', 'u', 'r', 'a', '.', 'd', 'e', '\0',
   /* "url.cab", true */ 'u', 'r', 'l', '.', 'c', 'a', 'b', '\0',
   /* "url.rw", false */ 'u', 'r', 'l', '.', 'r', 'w', '\0',
   /* "urlchomp.com", true */ 'u', 'r', 'l', 'c', 'h', 'o', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "urlscan.io", true */ 'u', 'r', 'l', 's', 'c', 'a', 'n', '.', 'i', 'o', '\0',
   /* "urown.net", true */ 'u', 'r', 'o', 'w', 'n', '.', 'n', 'e', 't', '\0',
@@ -17028,17 +17003,16 @@ static const char kSTSHostTable[] = {
   /* "verifyos.com", true */ 'v', 'e', 'r', 'i', 'f', 'y', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "veriny.tf", true */ 'v', 'e', 'r', 'i', 'n', 'y', '.', 't', 'f', '\0',
   /* "verizonguidelines.com", true */ 'v', 'e', 'r', 'i', 'z', 'o', 'n', 'g', 'u', 'i', 'd', 'e', 'l', 'i', 'n', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "verliefde-jongens.nl", true */ 'v', 'e', 'r', 'l', 'i', 'e', 'f', 'd', 'e', '-', 'j', 'o', 'n', 'g', 'e', 'n', 's', '.', 'n', 'l', '\0',
   /* "vermogeninkaart.nl", true */ 'v', 'e', 'r', 'm', 'o', 'g', 'e', 'n', 'i', 'n', 'k', 'a', 'a', 'r', 't', '.', 'n', 'l', '\0',
   /* "veronique-schmitz.de", true */ 'v', 'e', 'r', 'o', 'n', 'i', 'q', 'u', 'e', '-', 's', 'c', 'h', 'm', 'i', 't', 'z', '.', 'd', 'e', '\0',
   /* "versbeton.nl", true */ 'v', 'e', 'r', 's', 'b', 'e', 't', 'o', 'n', '.', 'n', 'l', '\0',
   /* "versicherungskontor.net", true */ 'v', 'e', 'r', 's', 'i', 'c', 'h', 'e', 'r', 'u', 'n', 'g', 's', 'k', 'o', 'n', 't', 'o', 'r', '.', 'n', 'e', 't', '\0',
-  /* "verspai.de", true */ 'v', 'e', 'r', 's', 'p', 'a', 'i', '.', 'd', 'e', '\0',
   /* "vertner.net", true */ 'v', 'e', 'r', 't', 'n', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "veryapt.com", true */ 'v', 'e', 'r', 'y', 'a', 'p', 't', '.', 'c', 'o', 'm', '\0',
   /* "veryyounglesbians.com", true */ 'v', 'e', 'r', 'y', 'y', 'o', 'u', 'n', 'g', 'l', 'e', 's', 'b', 'i', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "ves.vn.ua", true */ 'v', 'e', 's', '.', 'v', 'n', '.', 'u', 'a', '\0',
   /* "vespacascadia.com", true */ 'v', 'e', 's', 'p', 'a', 'c', 'a', 's', 'c', 'a', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "vestacp.top", true */ 'v', 'e', 's', 't', 'a', 'c', 'p', '.', 't', 'o', 'p', '\0',
   /* "vetdnacenter.com", false */ 'v', 'e', 't', 'd', 'n', 'a', 'c', 'e', 'n', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "veterinaire-cazeres-foucault.fr", true */ 'v', 'e', 't', 'e', 'r', 'i', 'n', 'a', 'i', 'r', 'e', '-', 'c', 'a', 'z', 'e', 'r', 'e', 's', '-', 'f', 'o', 'u', 'c', 'a', 'u', 'l', 't', '.', 'f', 'r', '\0',
@@ -17094,16 +17068,17 @@ static const char kSTSHostTable[] = {
   /* "villasenor.online", true */ 'v', 'i', 'l', 'l', 'a', 's', 'e', 'n', 'o', 'r', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "villasforsale-bali.com", true */ 'v', 'i', 'l', 'l', 'a', 's', 'f', 'o', 'r', 's', 'a', 'l', 'e', '-', 'b', 'a', 'l', 'i', '.', 'c', 'o', 'm', '\0',
   /* "villenavedornon.fr", true */ 'v', 'i', 'l', 'l', 'e', 'n', 'a', 'v', 'e', 'd', 'o', 'r', 'n', 'o', 'n', '.', 'f', 'r', '\0',
   /* "villenvinkit.com", true */ 'v', 'i', 'l', 'l', 'e', 'n', 'v', 'i', 'n', 'k', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "vimeo.com", true */ 'v', 'i', 'm', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "vimeosucks.nyc", true */ 'v', 'i', 'm', 'e', 'o', 's', 'u', 'c', 'k', 's', '.', 'n', 'y', 'c', '\0',
   /* "vinagro.sk", true */ 'v', 'i', 'n', 'a', 'g', 'r', 'o', '.', 's', 'k', '\0',
   /* "vinarstvimodryhrozen.cz", true */ 'v', 'i', 'n', 'a', 'r', 's', 't', 'v', 'i', 'm', 'o', 'd', 'r', 'y', 'h', 'r', 'o', 'z', 'e', 'n', '.', 'c', 'z', '\0',
+  /* "vinasec.se", true */ 'v', 'i', 'n', 'a', 's', 'e', 'c', '.', 's', 'e', '\0',
   /* "vincentcox.com", false */ 'v', 'i', 'n', 'c', 'e', 'n', 't', 'c', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "vinciconps4.it", true */ 'v', 'i', 'n', 'c', 'i', 'c', 'o', 'n', 'p', 's', '4', '.', 'i', 't', '\0',
   /* "vincitraining.com", true */ 'v', 'i', 'n', 'c', 'i', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "vineright.com", true */ 'v', 'i', 'n', 'e', 'r', 'i', 'g', 'h', 't', '.', 'c', 'o', 'm', '\0',
   /* "vinesauce.info", true */ 'v', 'i', 'n', 'e', 's', 'a', 'u', 'c', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "vinicius.sl", true */ 'v', 'i', 'n', 'i', 'c', 'i', 'u', 's', '.', 's', 'l', '\0',
   /* "vinilosdecorativos.net", true */ 'v', 'i', 'n', 'i', 'l', 'o', 's', 'd', 'e', 'c', 'o', 'r', 'a', 't', 'i', 'v', 'o', 's', '.', 'n', 'e', 't', '\0',
   /* "vinner.com.au", true */ 'v', 'i', 'n', 'n', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
@@ -17629,16 +17604,17 @@ static const char kSTSHostTable[] = {
   /* "willemsjort.be", true */ 'w', 'i', 'l', 'l', 'e', 'm', 's', 'j', 'o', 'r', 't', '.', 'b', 'e', '\0',
   /* "willfarrell.ca", true */ 'w', 'i', 'l', 'l', 'f', 'a', 'r', 'r', 'e', 'l', 'l', '.', 'c', 'a', '\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',
   /* "williamsonshore.com", true */ 'w', 'i', 'l', 'l', 'i', 'a', 'm', 's', 'o', 'n', 's', 'h', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "willnorris.com", true */ 'w', 'i', 'l', 'l', 'n', 'o', 'r', 'r', 'i', 's', '.', 'c', 'o', 'm', '\0',
+  /* "willow.technology", true */ 'w', 'i', 'l', 'l', 'o', 'w', '.', 't', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', 'y', '\0',
   /* "wills.co.tt", true */ 'w', 'i', 'l', 'l', 's', '.', 'c', 'o', '.', 't', 't', '\0',
   /* "willstamper.name", true */ 'w', 'i', 'l', 'l', 's', 't', 'a', 'm', 'p', 'e', 'r', '.', 'n', 'a', 'm', 'e', '\0',
   /* "wilsonovi.com", true */ 'w', 'i', 'l', 's', 'o', 'n', 'o', 'v', 'i', '.', 'c', 'o', 'm', '\0',
   /* "wimbo.nl", true */ 'w', 'i', 'm', 'b', 'o', '.', 'n', 'l', '\0',
   /* "winbuzzer.com", true */ 'w', 'i', 'n', 'b', 'u', 'z', 'z', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "wind.moe", true */ 'w', 'i', 'n', 'd', '.', 'm', 'o', 'e', '\0',
   /* "windhaven.nl", true */ 'w', 'i', 'n', 'd', 'h', 'a', 'v', 'e', 'n', '.', 'n', 'l', '\0',
   /* "windholz.us", true */ 'w', 'i', 'n', 'd', 'h', 'o', 'l', 'z', '.', 'u', 's', '\0',
@@ -17732,16 +17708,17 @@ static const char kSTSHostTable[] = {
   /* "wondermags.com", true */ 'w', 'o', 'n', 'd', 'e', 'r', 'm', 'a', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "wondy.com", true */ 'w', 'o', 'n', 'd', 'y', '.', 'c', 'o', 'm', '\0',
   /* "woodbury.io", true */ 'w', 'o', 'o', 'd', 'b', 'u', 'r', 'y', '.', 'i', 'o', '\0',
   /* "woodlandschurch.net", true */ 'w', 'o', 'o', 'd', 'l', 'a', 'n', 'd', 's', 'c', 'h', 'u', 'r', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "woodlandsmetro.church", true */ 'w', 'o', 'o', 'd', 'l', 'a', 'n', 'd', 's', 'm', 'e', 't', 'r', 'o', '.', 'c', 'h', 'u', 'r', 'c', 'h', '\0',
   /* "woodomat.com", true */ 'w', 'o', 'o', 'd', 'o', 'm', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "woodsidepottery.ca", true */ 'w', 'o', 'o', 'd', 's', 'i', 'd', 'e', 'p', 'o', 't', 't', 'e', 'r', 'y', '.', 'c', 'a', '\0',
   /* "woohooyeah.nl", true */ 'w', 'o', 'o', 'h', 'o', 'o', 'y', 'e', 'a', 'h', '.', 'n', 'l', '\0',
+  /* "woontegelwinkel.nl", true */ 'w', 'o', 'o', 'n', 't', 'e', 'g', 'e', 'l', 'w', 'i', 'n', 'k', 'e', 'l', '.', 'n', 'l', '\0',
   /* "wooviet.com", true */ 'w', 'o', 'o', 'v', 'i', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "worcesterfestival.co.uk", true */ 'w', 'o', 'r', 'c', 'e', 's', 't', 'e', 'r', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "word-grabber.com", true */ 'w', 'o', 'r', 'd', '-', 'g', 'r', 'a', 'b', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "wordpress.com", false */ 'w', 'o', 'r', 'd', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "wordsmart.it", true */ 'w', 'o', 'r', 'd', 's', 'm', 'a', 'r', 't', '.', 'i', 't', '\0',
   /* "wordxtra.net", true */ 'w', 'o', 'r', 'd', 'x', 't', 'r', 'a', '.', 'n', 'e', 't', '\0',
   /* "work-and-jockel.de", true */ 'w', 'o', 'r', 'k', '-', 'a', 'n', 'd', '-', 'j', 'o', 'c', 'k', 'e', 'l', '.', 'd', 'e', '\0',
   /* "workingclassmedia.com", true */ 'w', 'o', 'r', 'k', 'i', 'n', 'g', 'c', 'l', 'a', 's', 's', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
@@ -17806,16 +17783,17 @@ static const char kSTSHostTable[] = {
   /* "wselektro.de", true */ 'w', 's', 'e', 'l', 'e', 'k', 't', 'r', 'o', '.', 'd', 'e', '\0',
   /* "wsgvet.com", true */ 'w', 's', 'g', 'v', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "wss.com.ve", true */ 'w', 's', 's', '.', 'c', 'o', 'm', '.', 'v', 'e', '\0',
   /* "wsv-grafenau.de", true */ 'w', 's', 'v', '-', 'g', 'r', 'a', 'f', 'e', 'n', 'a', 'u', '.', 'd', 'e', '\0',
   /* "wsyy.info", true */ 'w', 's', 'y', 'y', '.', 'i', 'n', 'f', 'o', '\0',
   /* "wt-server3.de", true */ 'w', 't', '-', 's', 'e', 'r', 'v', 'e', 'r', '3', '.', 'd', 'e', '\0',
   /* "wtf.ninja", true */ 'w', 't', 'f', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "wtfismyip.com", true */ 'w', 't', 'f', 'i', 's', 'm', 'y', 'i', 'p', '.', 'c', 'o', 'm', '\0',
+  /* "wth.in", true */ 'w', 't', 'h', '.', 'i', 'n', '\0',
   /* "wtpmj.com", true */ 'w', 't', 'p', 'm', 'j', '.', 'c', 'o', 'm', '\0',
   /* "wubocong.com", true */ 'w', 'u', 'b', 'o', 'c', 'o', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "wubthecaptain.eu", true */ 'w', 'u', 'b', 't', 'h', 'e', 'c', 'a', 'p', 't', 'a', 'i', 'n', '.', 'e', 'u', '\0',
   /* "wuetix.de", true */ 'w', 'u', 'e', 't', 'i', 'x', '.', 'd', 'e', '\0',
   /* "wuji.cz", true */ 'w', 'u', 'j', 'i', '.', 'c', 'z', '\0',
   /* "wukongmusic.us", true */ 'w', 'u', 'k', 'o', 'n', 'g', 'm', 'u', 's', 'i', 'c', '.', 'u', 's', '\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',
@@ -17956,17 +17934,16 @@ static const char kSTSHostTable[] = {
   /* "xichuangke.com", true */ 'x', 'i', 'c', 'h', 'u', 'a', 'n', 'g', 'k', 'e', '.', 'c', 'o', 'm', '\0',
   /* "xicreative.net", true */ 'x', 'i', 'c', 'r', 'e', 'a', 't', 'i', 'v', 'e', '.', 'n', 'e', 't', '\0',
   /* "xight.org", true */ 'x', 'i', 'g', 'h', 't', '.', 'o', 'r', 'g', '\0',
   /* "xilef.org", true */ 'x', 'i', 'l', 'e', 'f', '.', 'o', 'r', 'g', '\0',
   /* "xilkoi.net", true */ 'x', 'i', 'l', 'k', 'o', 'i', '.', 'n', 'e', 't', '\0',
   /* "ximage.me", false */ 'x', 'i', 'm', 'a', 'g', 'e', '.', 'm', 'e', '\0',
   /* "ximbo.net", true */ 'x', 'i', 'm', 'b', 'o', '.', 'n', 'e', 't', '\0',
   /* "xinbiji.cn", true */ 'x', 'i', 'n', 'b', 'i', 'j', 'i', '.', 'c', 'n', '\0',
-  /* "xing.ml", true */ 'x', 'i', 'n', 'g', '.', 'm', 'l', '\0',
   /* "xiqi.us", true */ 'x', 'i', 'q', 'i', '.', 'u', 's', '\0',
   /* "xivpn.com", true */ 'x', 'i', 'v', 'p', 'n', '.', 'c', 'o', 'm', '\0',
   /* "xjoin.de", true */ 'x', 'j', 'o', 'i', 'n', '.', 'd', 'e', '\0',
   /* "xkbcommon.org", false */ 'x', 'k', 'b', 'c', 'o', 'm', 'm', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "xkcd.pw", true */ 'x', 'k', 'c', 'd', '.', 'p', 'w', '\0',
   /* "xkviz.net", true */ 'x', 'k', 'v', 'i', 'z', '.', 'n', 'e', 't', '\0',
   /* "xlange.com", true */ 'x', 'l', 'a', 'n', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "xliu.cf", true */ 'x', 'l', 'i', 'u', '.', 'c', 'f', '\0',
@@ -17995,22 +17972,22 @@ static const char kSTSHostTable[] = {
   /* "xn--allgu-biker-o8a.de", true */ 'x', 'n', '-', '-', 'a', 'l', 'l', 'g', 'u', '-', 'b', 'i', 'k', 'e', 'r', '-', 'o', '8', 'a', '.', 'd', 'e', '\0',
   /* "xn--aviao-dra1a.pt", true */ 'x', 'n', '-', '-', 'a', 'v', 'i', 'a', 'o', '-', 'd', 'r', 'a', '1', 'a', '.', 'p', 't', '\0',
   /* "xn--berwachungspaket-izb.at", true */ 'x', 'n', '-', '-', 'b', 'e', 'r', 'w', 'a', 'c', 'h', 'u', 'n', 'g', 's', 'p', 'a', 'k', 'e', 't', '-', 'i', 'z', 'b', '.', 'a', 't', '\0',
   /* "xn--brneruhr-0za.ch", true */ 'x', 'n', '-', '-', 'b', 'r', 'n', 'e', 'r', 'u', 'h', 'r', '-', '0', 'z', 'a', '.', 'c', 'h', '\0',
   /* "xn--cck4ax91r.com", true */ 'x', 'n', '-', '-', 'c', 'c', 'k', '4', 'a', 'x', '9', '1', 'r', '.', 'c', 'o', 'm', '\0',
   /* "xn--d1acj9c.xn--90ais", true */ 'x', 'n', '-', '-', 'd', '1', 'a', 'c', 'j', '9', 'c', '.', 'x', 'n', '-', '-', '9', '0', 'a', 'i', 's', '\0',
   /* "xn--detrkl13b9sbv53j.com", true */ 'x', 'n', '-', '-', 'd', 'e', 't', 'r', 'k', 'l', '1', '3', 'b', '9', 's', 'b', 'v', '5', '3', 'j', '.', 'c', 'o', 'm', '\0',
   /* "xn--detrkl13b9sbv53j.org", true */ 'x', 'n', '-', '-', 'd', 'e', 't', 'r', 'k', 'l', '1', '3', 'b', '9', 's', 'b', 'v', '5', '3', 'j', '.', 'o', 'r', 'g', '\0',
+  /* "xn--fischereiverein-mnsterhausen-i7c.de", true */ 'x', 'n', '-', '-', 'f', 'i', 's', 'c', 'h', 'e', 'r', 'e', 'i', 'v', 'e', 'r', 'e', 'i', 'n', '-', 'm', 'n', 's', 't', 'e', 'r', 'h', 'a', 'u', 's', 'e', 'n', '-', 'i', '7', 'c', '.', 'd', 'e', '\0',
   /* "xn--hfk-allgu-schwaben-stb.de", true */ 'x', 'n', '-', '-', 'h', 'f', 'k', '-', 'a', 'l', 'l', 'g', 'u', '-', 's', 'c', 'h', 'w', 'a', 'b', 'e', 'n', '-', 's', 't', 'b', '.', 'd', 'e', '\0',
   /* "xn--jda.tk", true */ 'x', 'n', '-', '-', 'j', 'd', 'a', '.', 't', 'k', '\0',
   /* "xn--jobbrse-d1a.de", true */ 'x', 'n', '-', '-', 'j', 'o', 'b', 'b', 'r', 's', 'e', '-', 'd', '1', 'a', '.', 'd', 'e', '\0',
   /* "xn--jp-6l5cs1yf3ivjsglphyv.net", true */ 'x', 'n', '-', '-', 'j', 'p', '-', '6', 'l', '5', 'c', 's', '1', 'y', 'f', '3', 'i', 'v', 'j', 's', 'g', 'l', 'p', 'h', 'y', 'v', '.', 'n', 'e', 't', '\0',
   /* "xn--kda.tk", true */ 'x', 'n', '-', '-', 'k', 'd', 'a', '.', 't', 'k', '\0',
-  /* "xn--knstler-n2a.tips", false */ 'x', 'n', '-', '-', 'k', 'n', 's', 't', 'l', 'e', 'r', '-', 'n', '2', 'a', '.', 't', 'i', 'p', 's', '\0',
   /* "xn--lsaupp-iua.se", true */ 'x', 'n', '-', '-', 'l', 's', 'a', 'u', 'p', 'p', '-', 'i', 'u', 'a', '.', 's', 'e', '\0',
   /* "xn--lsupp-mra.net", true */ 'x', 'n', '-', '-', 'l', 's', 'u', 'p', 'p', '-', 'm', 'r', 'a', '.', 'n', 'e', 't', '\0',
   /* "xn--maraa-rta.org", true */ 'x', 'n', '-', '-', 'm', 'a', 'r', 'a', 'a', '-', 'r', 't', 'a', '.', 'o', 'r', 'g', '\0',
   /* "xn--mentaltraining-fr-musiker-uwc.ch", true */ 'x', 'n', '-', '-', 'm', 'e', 'n', 't', 'a', 'l', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '-', 'f', 'r', '-', 'm', 'u', 's', 'i', 'k', 'e', 'r', '-', 'u', 'w', 'c', '.', 'c', 'h', '\0',
   /* "xn--o3cea3afbwl1da3wf0i.com", true */ 'x', 'n', '-', '-', 'o', '3', 'c', 'e', 'a', '3', 'a', 'f', 'b', 'w', 'l', '1', 'd', 'a', '3', 'w', 'f', '0', 'i', '.', 'c', 'o', 'm', '\0',
   /* "xn--pbt947am3ab71g.com", true */ 'x', 'n', '-', '-', 'p', 'b', 't', '9', '4', '7', 'a', 'm', '3', 'a', 'b', '7', '1', 'g', '.', 'c', 'o', 'm', '\0',
   /* "xn--pq1a637b.xn--6qq986b3xl", true */ 'x', 'n', '-', '-', 'p', 'q', '1', 'a', '6', '3', '7', 'b', '.', 'x', 'n', '-', '-', '6', 'q', 'q', '9', '8', '6', 'b', '3', 'x', 'l', '\0',
   /* "xn--qckss0j.tk", true */ 'x', 'n', '-', '-', 'q', 'c', 'k', 's', 's', '0', 'j', '.', 't', 'k', '\0',
@@ -18208,17 +18185,16 @@ static const char kSTSHostTable[] = {
   /* "yukiminami.net", true */ 'y', 'u', 'k', 'i', 'm', 'i', 'n', 'a', 'm', 'i', '.', 'n', 'e', 't', '\0',
   /* "yukonconnector.com", true */ 'y', 'u', 'k', 'o', 'n', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "yukonlip.com", true */ 'y', 'u', 'k', 'o', 'n', 'l', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "yukonrefugees.com", true */ 'y', 'u', 'k', 'o', 'n', 'r', 'e', 'f', 'u', 'g', 'e', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "yukontec.com", true */ 'y', 'u', 'k', 'o', 'n', 't', 'e', 'c', '.', 'c', 'o', 'm', '\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',
   /* "yuricarlenzoli.it", true */ 'y', 'u', 'r', 'i', 'c', 'a', 'r', 'l', 'e', 'n', 'z', 'o', 'l', 'i', '.', 'i', 't', '\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',
   /* "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',
   /* "yuwei.org", true */ 'y', 'u', 'w', 'e', 'i', '.', 'o', 'r', 'g', '\0',
   /* "yux.fr", true */ 'y', 'u', 'x', '.', 'f', 'r', '\0',
   /* "yuxingxin.com", true */ 'y', 'u', 'x', 'i', 'n', 'g', 'x', 'i', 'n', '.', 'c', 'o', 'm', '\0',
@@ -18260,16 +18236,17 @@ static const char kSTSHostTable[] = {
   /* "zapier.com", true */ 'z', 'a', 'p', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "zappbuildapps.com", true */ 'z', 'a', 'p', 'p', 'b', 'u', 'i', 'l', 'd', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "zary.me", true */ 'z', 'a', 'r', 'y', '.', 'm', 'e', '\0',
   /* "zaufanatrzeciastrona.pl", true */ 'z', 'a', 'u', 'f', 'a', 'n', 'a', 't', 'r', 'z', 'e', 'c', 'i', 'a', 's', 't', 'r', 'o', 'n', 'a', '.', 'p', 'l', '\0',
   /* "zavca.com", true */ 'z', 'a', 'v', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "zawo-electric.de", true */ 'z', 'a', 'w', 'o', '-', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'd', 'e', '\0',
   /* "zbasenem.pl", true */ 'z', 'b', 'a', 's', 'e', 'n', 'e', 'm', '.', 'p', 'l', '\0',
   /* "zbchen.com", true */ 'z', 'b', 'c', 'h', 'e', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "zberger.com", true */ 'z', 'b', 'e', 'r', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "zbetcheck.in", true */ 'z', 'b', 'e', 't', 'c', 'h', 'e', 'c', 'k', '.', 'i', 'n', '\0',
   /* "zbp.at", false */ 'z', 'b', 'p', '.', 'a', 't', '\0',
   /* "zbrane-doplnky.cz", true */ 'z', 'b', 'r', 'a', 'n', 'e', '-', 'd', 'o', 'p', 'l', 'n', 'k', 'y', '.', 'c', 'z', '\0',
   /* "zbyga.cz", true */ 'z', 'b', 'y', 'g', 'a', '.', 'c', 'z', '\0',
   /* "zcarot.com", true */ 'z', 'c', 'a', 'r', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "zcarrot.com", true */ 'z', 'c', 'a', 'r', 'r', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "zcon.nl", true */ 'z', 'c', 'o', 'n', '.', 'n', 'l', '\0',
   /* "zcr.ca", true */ 'z', 'c', 'r', '.', 'c', 'a', '\0',
@@ -18384,26 +18361,26 @@ static const char kSTSHostTable[] = {
   /* "zoom.earth", true */ 'z', 'o', 'o', 'm', '.', 'e', 'a', 'r', 't', 'h', '\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',
   /* "zootime.net", true */ 'z', 'o', 'o', 't', 'i', 'm', 'e', '.', 'n', 'e', 't', '\0',
   /* "zootime.org", true */ 'z', 'o', 'o', 't', 'i', 'm', 'e', '.', 'o', 'r', 'g', '\0',
   /* "zoowiki.us", true */ 'z', 'o', 'o', 'w', 'i', 'k', 'i', '.', 'u', 's', '\0',
   /* "zopyx.com", true */ 'z', 'o', 'p', 'y', 'x', '.', 'c', 'o', 'm', '\0',
   /* "zor.com", true */ 'z', 'o', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "zorgclustertool.nl", true */ 'z', 'o', 'r', 'g', 'c', 'l', 'u', 's', 't', 'e', 'r', 't', 'o', 'o', 'l', '.', 'n', 'l', '\0',
   /* "zorium.org", true */ 'z', 'o', 'r', 'i', 'u', 'm', '.', 'o', 'r', 'g', '\0',
   /* "zorntt.fr", true */ 'z', 'o', 'r', 'n', 't', 't', '.', 'f', 'r', '\0',
   /* "zorz.info", true */ 'z', 'o', 'r', 'z', '.', 'i', 'n', 'f', 'o', '\0',
   /* "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',
   /* "zrn.in", false */ 'z', 'r', 'n', '.', 'i', 'n', '\0',
   /* "zrt.io", true */ 'z', 'r', 't', '.', 'i', 'o', '\0',
   /* "zscales.com", true */ 'z', 's', 'c', 'a', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
+  /* "zten.org", true */ 'z', 't', 'e', 'n', '.', 'o', 'r', 'g', '\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',
   /* "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',
   /* "zunftmarke.de", true */ 'z', 'u', 'n', 'f', 't', 'm', 'a', 'r', 'k', 'e', '.', 'd', 'e', '\0',
   /* "zuolan.me", true */ 'z', 'u', 'o', 'l', 'a', 'n', '.', 'm', 'e', '\0',
@@ -18463,170 +18440,171 @@ static const nsSTSPreload kSTSPreloadLis
   { 213, true },
   { 222, true },
   { 231, true },
   { 240, true },
   { 249, true },
   { 264, true },
   { 272, true },
   { 280, true },
-  { 290, true },
-  { 300, true },
-  { 309, true },
+  { 288, true },
+  { 298, true },
+  { 308, true },
   { 317, true },
-  { 330, true },
+  { 325, true },
   { 338, true },
   { 346, true },
-  { 353, true },
-  { 363, true },
-  { 377, true },
-  { 392, true },
-  { 402, false },
-  { 425, true },
-  { 445, true },
-  { 457, true },
-  { 473, true },
-  { 485, true },
-  { 497, true },
-  { 522, true },
+  { 354, true },
+  { 361, true },
+  { 371, true },
+  { 385, true },
+  { 400, true },
+  { 410, false },
+  { 433, true },
+  { 453, true },
+  { 465, true },
+  { 481, true },
+  { 493, true },
+  { 505, true },
   { 530, true },
   { 538, true },
-  { 548, true },
-  { 559, true },
-  { 580, true },
-  { 587, true },
-  { 602, true },
-  { 616, true },
-  { 628, true },
-  { 639, true },
-  { 650, true },
-  { 661, true },
-  { 671, true },
-  { 681, true },
-  { 706, true },
-  { 731, true },
+  { 546, true },
+  { 556, true },
+  { 567, true },
+  { 588, true },
+  { 595, true },
+  { 610, true },
+  { 624, true },
+  { 636, true },
+  { 647, true },
+  { 658, true },
+  { 669, true },
+  { 679, true },
+  { 689, true },
+  { 714, true },
   { 739, true },
-  { 749, true },
+  { 747, true },
   { 757, true },
-  { 775, true },
-  { 786, true },
-  { 811, true },
-  { 822, true },
-  { 833, false },
-  { 849, true },
-  { 860, true },
-  { 881, true },
-  { 897, true },
-  { 905, false },
-  { 917, true },
-  { 942, true },
-  { 964, true },
-  { 981, true },
-  { 1004, true },
-  { 1014, true },
-  { 1025, true },
-  { 1038, true },
-  { 1052, true },
-  { 1059, true },
-  { 1081, true },
-  { 1093, true },
-  { 1100, true },
-  { 1111, true },
-  { 1118, true },
-  { 1129, true },
-  { 1140, false },
-  { 1146, true },
-  { 1159, true },
-  { 1169, true },
-  { 1176, true },
-  { 1183, true },
-  { 1194, true },
-  { 1201, true },
-  { 1213, true },
-  { 1230, true },
-  { 1248, true },
-  { 1262, true },
-  { 1274, true },
-  { 1285, true },
-  { 1295, true },
-  { 1304, true },
-  { 1310, true },
-  { 1324, true },
-  { 1339, true },
+  { 765, true },
+  { 783, true },
+  { 794, true },
+  { 819, true },
+  { 830, true },
+  { 841, false },
+  { 857, true },
+  { 868, true },
+  { 889, true },
+  { 905, true },
+  { 913, false },
+  { 925, true },
+  { 950, true },
+  { 972, true },
+  { 989, true },
+  { 1012, true },
+  { 1022, true },
+  { 1033, true },
+  { 1046, true },
+  { 1060, true },
+  { 1067, true },
+  { 1089, true },
+  { 1101, true },
+  { 1108, true },
+  { 1119, true },
+  { 1126, true },
+  { 1137, true },
+  { 1148, false },
+  { 1154, true },
+  { 1167, true },
+  { 1177, true },
+  { 1184, true },
+  { 1191, true },
+  { 1202, true },
+  { 1209, true },
+  { 1221, true },
+  { 1238, true },
+  { 1256, true },
+  { 1270, true },
+  { 1282, true },
+  { 1293, true },
+  { 1303, true },
+  { 1312, true },
+  { 1318, true },
+  { 1332, true },
   { 1347, true },
-  { 1356, true },
+  { 1355, true },
   { 1364, true },
-  { 1375, true },
-  { 1385, true },
-  { 1403, true },
-  { 1421, true },
-  { 1430, true },
-  { 1438, true },
-  { 1446, false },
-  { 1457, true },
-  { 1475, true },
-  { 1486, true },
-  { 1498, true },
-  { 1512, true },
-  { 1520, true },
-  { 1533, true },
-  { 1543, false },
-  { 1556, true },
-  { 1565, true },
-  { 1579, true },
-  { 1588, true },
-  { 1609, true },
-  { 1618, true },
+  { 1372, true },
+  { 1383, true },
+  { 1393, true },
+  { 1411, true },
+  { 1420, true },
+  { 1428, true },
+  { 1436, false },
+  { 1447, true },
+  { 1465, true },
+  { 1476, true },
+  { 1488, true },
+  { 1502, true },
+  { 1510, true },
+  { 1523, true },
+  { 1533, false },
+  { 1546, true },
+  { 1555, true },
+  { 1569, true },
+  { 1578, true },
+  { 1599, true },
+  { 1608, true },
+  { 1620, true },
   { 1630, true },
-  { 1640, true },
-  { 1655, true },
-  { 1663, true },
-  { 1676, true },
-  { 1693, false },
-  { 1705, true },
-  { 1713, true },
-  { 1724, true },
-  { 1731, true },
-  { 1740, true },
-  { 1749, true },
-  { 1762, true },
-  { 1771, true },
-  { 1790, true },
-  { 1801, true },
-  { 1820, true },
-  { 1839, true },
-  { 1851, true },
-  { 1865, true },
-  { 1877, false },
-  { 1888, true },
-  { 1897, false },
-  { 1908, true },
-  { 1923, true },
-  { 1936, true },
-  { 1944, true },
-  { 1958, true },
-  { 1973, true },
-  { 1985, true },
-  { 1998, true },
-  { 2013, true },
+  { 1645, true },
+  { 1653, true },
+  { 1666, true },
+  { 1683, false },
+  { 1695, true },
+  { 1703, true },
+  { 1714, true },
+  { 1721, true },
+  { 1730, true },
+  { 1739, true },
+  { 1752, true },
+  { 1761, true },
+  { 1780, true },
+  { 1791, true },
+  { 1810, true },
+  { 1829, true },
+  { 1841, true },
+  { 1855, true },
+  { 1867, false },
+  { 1878, true },
+  { 1887, false },
+  { 1898, true },
+  { 1913, true },
+  { 1926, true },
+  { 1934, true },
+  { 1948, true },
+  { 1963, true },
+  { 1975, true },
+  { 1988, true },
+  { 2003, true },
+  { 2012, true },
   { 2022, true },
-  { 2032, true },
-  { 2046, true },
-  { 2060, true },
-  { 2069, true },
-  { 2083, true },
-  { 2091, true },
-  { 2098, true },
-  { 2110, true },
-  { 2121, true },
-  { 2134, true },
-  { 2143, true },
-  { 2155, true },
-  { 2172, true },
-  { 2183, true },
+  { 2036, true },
+  { 2050, true },
+  { 2059, true },
+  { 2073, true },
+  { 2081, true },
+  { 2088, true },
+  { 2100, true },
+  { 2111, true },
+  { 2124, true },
+  { 2133, true },
+  { 2145, true },
+  { 2162, true },
+  { 2173, true },
+  { 2184, true },
   { 2194, true },
   { 2205, true },
   { 2216, true },
   { 2229, true },
   { 2237, true },
   { 2248, false },
   { 2261, true },
   { 2269, true },
@@ -18946,887 +18924,886 @@ static const nsSTSPreload kSTSPreloadLis
   { 6685, true },
   { 6693, true },
   { 6707, false },
   { 6721, true },
   { 6733, true },
   { 6743, false },
   { 6756, true },
   { 6768, true },
-  { 6780, true },
-  { 6794, true },
+  { 6782, true },
+  { 6795, true },
   { 6807, true },
-  { 6819, true },
-  { 6835, true },
-  { 6845, false },
-  { 6855, true },
-  { 6863, true },
-  { 6873, true },
-  { 6887, true },
-  { 6900, true },
+  { 6823, true },
+  { 6833, false },
+  { 6843, true },
+  { 6851, true },
+  { 6861, true },
+  { 6875, true },
+  { 6888, true },
+  { 6896, true },
   { 6908, true },
   { 6920, true },
-  { 6932, true },
-  { 6956, true },
-  { 6975, true },
-  { 6994, false },
-  { 7003, true },
-  { 7017, true },
-  { 7027, true },
-  { 7060, true },
-  { 7070, true },
-  { 7084, true },
+  { 6944, true },
+  { 6963, true },
+  { 6982, false },
+  { 6991, true },
+  { 7005, true },
+  { 7015, true },
+  { 7048, true },
+  { 7058, true },
+  { 7072, true },
+  { 7079, true },
   { 7091, true },
-  { 7103, true },
-  { 7116, true },
-  { 7127, true },
-  { 7144, true },
-  { 7155, true },
-  { 7171, true },
-  { 7180, true },
-  { 7187, true },
-  { 7201, true },
-  { 7209, true },
-  { 7220, true },
-  { 7238, true },
-  { 7253, true },
-  { 7268, true },
-  { 7285, true },
-  { 7298, true },
-  { 7308, true },
-  { 7319, true },
-  { 7334, true },
-  { 7357, true },
+  { 7104, true },
+  { 7115, true },
+  { 7132, true },
+  { 7143, true },
+  { 7159, true },
+  { 7168, true },
+  { 7175, true },
+  { 7189, true },
+  { 7197, true },
+  { 7208, true },
+  { 7226, true },
+  { 7241, true },
+  { 7256, true },
+  { 7273, true },
+  { 7286, true },
+  { 7296, true },
+  { 7307, true },
+  { 7322, true },
+  { 7345, true },
+  { 7356, true },
   { 7368, true },
-  { 7380, true },
-  { 7391, true },
-  { 7411, true },
-  { 7422, true },
-  { 7433, true },
-  { 7444, true },
-  { 7455, true },
-  { 7466, true },
-  { 7479, true },
+  { 7379, true },
+  { 7399, true },
+  { 7410, true },
+  { 7421, true },
+  { 7432, true },
+  { 7443, true },
+  { 7454, true },
+  { 7467, true },
+  { 7485, true },
   { 7497, true },
-  { 7509, true },
-  { 7526, true },
-  { 7535, true },
-  { 7549, true },
-  { 7560, true },
-  { 7571, true },
-  { 7588, true },
-  { 7604, true },
-  { 7615, true },
-  { 7623, false },
-  { 7649, false },
-  { 7660, true },
-  { 7678, false },
-  { 7695, true },
-  { 7705, true },
-  { 7716, true },
+  { 7514, true },
+  { 7523, true },
+  { 7537, true },
+  { 7548, true },
+  { 7559, true },
+  { 7576, true },
+  { 7592, true },
+  { 7603, true },
+  { 7611, false },
+  { 7637, false },
+  { 7648, true },
+  { 7666, false },
+  { 7683, true },
+  { 7693, true },
+  { 7704, true },
+  { 7717, true },
   { 7729, true },
-  { 7741, true },
-  { 7750, true },
-  { 7767, true },
-  { 7774, true },
-  { 7798, true },
-  { 7814, true },
-  { 7834, true },
-  { 7859, true },
-  { 7884, true },
-  { 7909, true },
+  { 7738, true },
+  { 7755, true },
+  { 7762, true },
+  { 7786, true },
+  { 7802, true },
+  { 7822, true },
+  { 7847, true },
+  { 7872, true },
+  { 7897, true },
+  { 7907, true },
   { 7919, true },
-  { 7931, true },
+  { 7928, true },
   { 7940, true },
-  { 7952, true },
-  { 7979, true },
-  { 8007, true },
-  { 8020, false },
-  { 8029, true },
-  { 8045, true },
+  { 7967, true },
+  { 7995, true },
+  { 8008, false },
+  { 8017, true },
+  { 8033, true },
+  { 8049, true },
   { 8061, true },
-  { 8073, true },
-  { 8087, true },
-  { 8107, true },
-  { 8122, true },
-  { 8143, true },
-  { 8154, true },
-  { 8164, true },
+  { 8075, true },
+  { 8095, true },
+  { 8110, true },
+  { 8131, true },
+  { 8142, true },
+  { 8152, true },
+  { 8163, true },
   { 8175, true },
   { 8187, true },
-  { 8199, true },
+  { 8196, true },
   { 8208, true },
-  { 8220, true },
-  { 8239, true },
-  { 8252, true },
-  { 8263, true },
-  { 8272, true },
-  { 8290, true },
-  { 8304, true },
-  { 8318, true },
-  { 8334, true },
-  { 8350, true },
-  { 8370, true },
-  { 8391, true },
-  { 8405, true },
-  { 8418, true },
-  { 8433, true },
-  { 8443, true },
-  { 8461, true },
-  { 8476, true },
-  { 8494, true },
-  { 8504, true },
-  { 8519, true },
-  { 8537, true },
-  { 8551, true },
-  { 8565, true },
+  { 8227, true },
+  { 8240, true },
+  { 8251, true },
+  { 8260, true },
+  { 8278, true },
+  { 8292, true },
+  { 8306, true },
+  { 8322, true },
+  { 8338, true },
+  { 8358, true },
+  { 8379, true },
+  { 8393, true },
+  { 8406, true },
+  { 8421, true },
+  { 8431, true },
+  { 8449, true },
+  { 8464, true },
+  { 8482, true },
+  { 8492, true },
+  { 8507, true },
+  { 8525, true },
+  { 8539, true },
+  { 8553, true },
+  { 8567, true },
   { 8579, true },
-  { 8591, true },
-  { 8606, true },
-  { 8620, true },
-  { 8635, true },
-  { 8645, true },
-  { 8659, true },
-  { 8668, true },
-  { 8683, true },
-  { 8697, true },
-  { 8713, true },
-  { 8725, true },
-  { 8738, false },
-  { 8753, true },
-  { 8780, true },
-  { 8792, true },
-  { 8806, true },
-  { 8816, true },
-  { 8831, true },
-  { 8845, true },
-  { 8859, true },
-  { 8881, true },
-  { 8893, true },
-  { 8916, true },
-  { 8937, true },
-  { 8949, true },
-  { 8961, true },
-  { 8974, true },
-  { 8985, true },
-  { 9000, true },
-  { 9011, false },
-  { 9027, true },
-  { 9045, true },
-  { 9056, true },
-  { 9068, true },
-  { 9081, true },
-  { 9101, true },
-  { 9114, true },
-  { 9127, true },
-  { 9151, true },
-  { 9169, true },
-  { 9186, true },
-  { 9210, true },
-  { 9234, true },
-  { 9253, true },
-  { 9269, true },
-  { 9283, true },
-  { 9292, true },
-  { 9305, true },
-  { 9322, true },
-  { 9343, true },
-  { 9359, true },
-  { 9380, true },
-  { 9396, true },
-  { 9415, true },
-  { 9428, true },
-  { 9449, true },
-  { 9469, true },
-  { 9489, true },
-  { 9505, true },
-  { 9518, false },
-  { 9531, true },
-  { 9543, true },
-  { 9553, true },
-  { 9566, true },
-  { 9580, true },
-  { 9596, true },
-  { 9610, true },
-  { 9626, true },
-  { 9638, true },
-  { 9652, true },
-  { 9669, true },
-  { 9680, true },
-  { 9699, true },
-  { 9712, true },
-  { 9726, true },
-  { 9734, true },
-  { 9747, true },
-  { 9760, true },
-  { 9775, true },
-  { 9789, true },
-  { 9806, true },
-  { 9825, true },
-  { 9837, true },
-  { 9851, true },
-  { 9873, true },
-  { 9887, true },
-  { 9899, true },
-  { 9911, true },
-  { 9925, true },
-  { 9953, true },
-  { 9968, true },
-  { 9980, true },
-  { 9991, true },
-  { 10002, true },
-  { 10016, true },
-  { 10028, true },
-  { 10036, true },
-  { 10047, true },
-  { 10055, true },
-  { 10063, true },
-  { 10071, true },
-  { 10079, true },
-  { 10092, true },
-  { 10099, true },
-  { 10109, true },
-  { 10122, true },
-  { 10134, true },
-  { 10147, true },
-  { 10167, true },
-  { 10179, true },
-  { 10191, true },
-  { 10209, true },
-  { 10224, true },
-  { 10237, true },
-  { 10246, true },
-  { 10259, true },
-  { 10271, true },
-  { 10285, true },
-  { 10298, true },
-  { 10309, true },
-  { 10319, true },
-  { 10330, true },
-  { 10340, true },
-  { 10351, true },
-  { 10360, true },
-  { 10376, true },
-  { 10392, true },
-  { 10420, true },
-  { 10439, true },
-  { 10454, true },
-  { 10474, true },
-  { 10486, true },
-  { 10498, true },
-  { 10511, true },
-  { 10520, true },
-  { 10529, true },
-  { 10539, true },
-  { 10558, true },
-  { 10569, true },
-  { 10584, true },
-  { 10604, true },
-  { 10622, true },
-  { 10632, true },
-  { 10659, true },
-  { 10676, true },
-  { 10687, true },
-  { 10697, true },
-  { 10711, true },
-  { 10728, true },
-  { 10737, true },
-  { 10748, true },
-  { 10768, true },
-  { 10787, true },
-  { 10798, true },
-  { 10809, true },
-  { 10827, true },
-  { 10853, false },
-  { 10864, true },
-  { 10883, true },
-  { 10901, true },
-  { 10919, true },
-  { 10941, true },
-  { 10963, true },
-  { 10977, true },
-  { 10992, true },
-  { 11006, true },
-  { 11020, true },
-  { 11035, true },
-  { 11056, true },
-  { 11066, true },
-  { 11081, true },
-  { 11092, true },
-  { 11113, true },
-  { 11131, true },
-  { 11142, true },
-  { 11160, true },
-  { 11173, true },
-  { 11181, true },
-  { 11198, true },
-  { 11211, true },
-  { 11226, true },
-  { 11238, true },
-  { 11252, true },
-  { 11271, true },
-  { 11289, true },
-  { 11311, true },
-  { 11326, true },
-  { 11343, true },
-  { 11365, true },
-  { 11380, true },
-  { 11397, true },
-  { 11418, true },
-  { 11434, true },
-  { 11461, true },
-  { 11477, true },
-  { 11494, true },
-  { 11511, true },
-  { 11526, true },
-  { 11541, true },
-  { 11555, true },
-  { 11572, true },
-  { 11589, true },
-  { 11601, true },
-  { 11619, true },
-  { 11636, true },
-  { 11650, true },
-  { 11667, true },
-  { 11685, true },
-  { 11700, true },
-  { 11712, true },
+  { 8594, true },
+  { 8608, true },
+  { 8623, true },
+  { 8633, true },
+  { 8647, true },
+  { 8656, true },
+  { 8671, true },
+  { 8685, true },
+  { 8699, true },
+  { 8715, true },
+  { 8727, true },
+  { 8740, false },
+  { 8755, true },
+  { 8782, true },
+  { 8794, true },
+  { 8808, true },
+  { 8818, true },
+  { 8833, true },
+  { 8847, true },
+  { 8861, true },
+  { 8883, true },
+  { 8895, true },
+  { 8918, true },
+  { 8939, true },
+  { 8951, true },
+  { 8963, true },
+  { 8976, true },
+  { 8987, true },
+  { 9002, true },
+  { 9013, false },
+  { 9029, true },
+  { 9047, true },
+  { 9058, true },
+  { 9070, true },
+  { 9083, true },
+  { 9103, true },
+  { 9116, true },
+  { 9129, true },
+  { 9153, true },
+  { 9171, true },
+  { 9188, true },
+  { 9212, true },
+  { 9236, true },
+  { 9255, true },
+  { 9271, true },
+  { 9285, true },
+  { 9294, true },
+  { 9307, true },
+  { 9324, true },
+  { 9345, true },
+  { 9361, true },
+  { 9382, true },
+  { 9398, true },
+  { 9417, true },
+  { 9430, true },
+  { 9451, true },
+  { 9471, true },
+  { 9491, true },
+  { 9507, true },
+  { 9520, false },
+  { 9533, true },
+  { 9545, true },
+  { 9555, true },
+  { 9568, true },
+  { 9582, true },
+  { 9598, true },
+  { 9612, true },
+  { 9628, true },
+  { 9640, true },
+  { 9654, true },
+  { 9671, true },
+  { 9682, true },
+  { 9701, true },
+  { 9714, true },
+  { 9728, true },
+  { 9736, true },
+  { 9749, true },
+  { 9762, true },
+  { 9777, true },
+  { 9791, true },
+  { 9808, true },
+  { 9827, true },
+  { 9839, true },
+  { 9853, true },
+  { 9875, true },
+  { 9889, true },
+  { 9901, true },
+  { 9913, true },
+  { 9927, true },
+  { 9955, true },
+  { 9970, true },
+  { 9982, true },
+  { 9993, true },
+  { 10004, true },
+  { 10018, true },
+  { 10030, true },
+  { 10038, true },
+  { 10049, true },
+  { 10057, true },
+  { 10065, true },
+  { 10073, true },
+  { 10081, true },
+  { 10094, true },
+  { 10101, true },
+  { 10111, true },
+  { 10124, true },
+  { 10136, true },
+  { 10149, true },
+  { 10169, true },
+  { 10181, true },
+  { 10193, true },
+  { 10211, true },
+  { 10226, true },
+  { 10239, true },
+  { 10248, true },
+  { 10261, true },
+  { 10273, true },
+  { 10287, true },
+  { 10300, true },
+  { 10311, true },
+  { 10321, true },
+  { 10332, true },
+  { 10342, true },
+  { 10353, true },
+  { 10362, true },
+  { 10378, true },
+  { 10394, true },
+  { 10422, true },
+  { 10441, true },
+  { 10456, true },
+  { 10476, true },
+  { 10488, true },
+  { 10500, true },
+  { 10513, true },
+  { 10522, true },
+  { 10531, true },
+  { 10541, true },
+  { 10560, true },
+  { 10571, true },
+  { 10586, true },
+  { 10606, true },
+  { 10624, true },
+  { 10634, true },
+  { 10661, true },
+  { 10678, true },
+  { 10689, true },
+  { 10699, true },
+  { 10713, true },
+  { 10730, true },
+  { 10739, true },
+  { 10750, true },
+  { 10770, true },
+  { 10789, true },
+  { 10800, true },
+  { 10811, true },
+  { 10829, true },
+  { 10855, false },
+  { 10866, true },
+  { 10885, true },
+  { 10903, true },
+  { 10921, true },
+  { 10943, true },
+  { 10965, true },
+  { 10979, true },
+  { 10994, true },
+  { 11008, true },
+  { 11022, true },
+  { 11037, true },
+  { 11058, true },
+  { 11068, true },
+  { 11083, true },
+  { 11094, true },
+  { 11115, true },
+  { 11133, true },
+  { 11144, true },
+  { 11162, true },
+  { 11175, true },
+  { 11183, true },
+  { 11200, true },
+  { 11213, true },
+  { 11228, true },
+  { 11240, true },
+  { 11254, true },
+  { 11273, true },
+  { 11291, true },
+  { 11313, true },
+  { 11328, true },
+  { 11345, true },
+  { 11367, true },
+  { 11382, true },
+  { 11399, true },
+  { 11420, true },
+  { 11436, true },
+  { 11463, true },
+  { 11479, true },
+  { 11496, true },
+  { 11513, true },
+  { 11528, true },
+  { 11543, true },
+  { 11557, true },
+  { 11571, true },
+  { 11588, true },
+  { 11605, true },
+  { 11617, true },
+  { 11635, true },
+  { 11652, true },
+  { 11666, true },
+  { 11683, true },
+  { 11701, true },
+  { 11716, true },
   { 11728, true },
-  { 11742, true },
-  { 11755, true },
-  { 11772, true },
-  { 11792, true },
-  { 11812, true },
-  { 11827, true },
-  { 11838, true },
-  { 11849, true },
-  { 11860, true },
+  { 11744, true },
+  { 11758, true },
+  { 11771, true },
+  { 11788, true },
+  { 11808, true },
+  { 11828, true },
+  { 11843, true },
+  { 11854, true },
+  { 11865, true },
   { 11876, true },
-  { 11891, true },
-  { 11902, true },
-  { 11919, true },
+  { 11892, true },
+  { 11907, true },
+  { 11918, true },
   { 11935, true },
-  { 11946, true },
-  { 11957, true },
-  { 11969, true },
-  { 11982, true },
-  { 12001, true },
-  { 12012, true },
-  { 12025, true },
-  { 12039, true },
-  { 12057, false },
-  { 12070, true },
-  { 12092, true },
-  { 12109, true },
-  { 12126, true },
-  { 12146, true },
-  { 12157, true },
-  { 12168, true },
-  { 12186, true },
-  { 12218, true },
-  { 12245, true },
-  { 12257, true },
-  { 12267, true },
-  { 12285, true },
-  { 12300, true },
-  { 12312, true },
-  { 12324, true },
-  { 12344, true },