Merge m-c to inbound, a=merge
authorWes Kocher <wkocher@mozilla.com>
Fri, 02 Jun 2017 17:31:31 -0700
changeset 412656 bb37ef22d35ca7d9c5c77805a1aceb62e15773b1
parent 412655 dfd55929e842de5a2cc71adf58e5d2fe45be1a7f (current diff)
parent 412566 43039280fe464869428f03b047bb7c762784f44b (diff)
child 412657 43af422173e3bdfddc18c02d7f7c430d6ec9cdfe
push id1490
push usermtabara@mozilla.com
push dateMon, 31 Jul 2017 14:08:16 +0000
treeherdermozilla-release@70e32e6bf15e [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: 9wTctDOsPpO
dom/vr/test/VRSimulationDriver.js
dom/vr/test/WebVRHelpers.js
dom/vr/test/mochitest.ini
dom/vr/test/requestPresent.js
dom/vr/test/runVRTest.js
dom/vr/test/test_vrDisplay_canvas2d.html
dom/vr/test/test_vrDisplay_exitPresent.html
dom/vr/test/test_vrDisplay_getFrameData.html
dom/vr/test/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
dom/vr/test/test_vrDisplay_requestPresent.html
security/manager/ssl/StaticHPKPins.h
security/manager/ssl/nsSTSPreloadList.errors
security/manager/ssl/nsSTSPreloadList.inc
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -108,17 +108,18 @@ panelview {
   transition: transform var(--panelui-subview-transition-duration);
 }
 
 panelview:not([mainview]):not([current]) {
   transition: visibility 0s linear var(--panelui-subview-transition-duration);
   visibility: collapse;
 }
 
-panelview[mainview] > .panel-header {
+panelview[mainview] > .panel-header,
+panelview:not([title]) > .panel-header {
   display: none;
 }
 
 tabbrowser {
   -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser");
 }
 
 .tabbrowser-tabs {
--- a/browser/components/preferences/in-content-new/findInPage.js
+++ b/browser/components/preferences/in-content-new/findInPage.js
@@ -187,24 +187,17 @@ var gSearchResultsPane = {
    * Shows or hides content according to search input
    *
    * @param String event
    *    to search for filted query in
    */
   searchFunction(event) {
     let query = event.target.value.trim().toLowerCase();
     this.findSelection.removeAllRanges();
-
-    // Remove all search tooltips that were created
-    let searchTooltips = Array.from(document.querySelectorAll(".search-tooltip"));
-    for (let searchTooltip of searchTooltips) {
-      searchTooltip.parentElement.classList.remove("search-tooltip-parent");
-      searchTooltip.remove();
-    }
-    this.listSearchTooltips = [];
+    this.removeAllSearchTooltips();
 
     let srHeader = document.getElementById("header-searchResults");
 
     if (query) {
       // Showing the Search Results Tag
       gotoPref("paneSearchResults");
 
       this.searchResultsCategory.hidden = false;
@@ -365,10 +358,22 @@ var gSearchResultsPane = {
     let tooltipRect = searchTooltip.getBoundingClientRect();
     let parentRect = currentNode.parentElement.getBoundingClientRect();
 
     let offSet = (anchorRect.width / 2) - (tooltipRect.width / 2);
     let relativeOffset = anchorRect.left - parentRect.left;
     offSet += relativeOffset > 0 ? relativeOffset : 0;
 
     searchTooltip.style.setProperty("left", `${offSet}px`);
+  },
+
+  /**
+   * Remove all search tooltips that were created.
+   */
+  removeAllSearchTooltips() {
+    let searchTooltips = Array.from(document.querySelectorAll(".search-tooltip"));
+    for (let searchTooltip of searchTooltips) {
+      searchTooltip.parentElement.classList.remove("search-tooltip-parent");
+      searchTooltip.remove();
+    }
+    this.listSearchTooltips = [];
   }
 }
--- a/browser/components/preferences/in-content-new/preferences.js
+++ b/browser/components/preferences/in-content-new/preferences.js
@@ -161,16 +161,17 @@ function gotoPref(aCategory) {
   if (subcategory) {
     category = category.substring(0, breakIndex);
   }
   category = friendlyPrefCategoryNameToInternalName(category);
   if (category != "paneSearchResults") {
     gSearchResultsPane.searchInput.value = "";
     gSearchResultsPane.searchResultsCategory.hidden = true;
     gSearchResultsPane.findSelection.removeAllRanges();
+    gSearchResultsPane.removeAllSearchTooltips();
   }
 
   // Updating the hash (below) or changing the selected category
   // will re-enter gotoPref.
   if (gLastHash == category && !subcategory)
     return;
   let item = categories.querySelector(".category[value=" + category + "]");
   if (!item) {
--- a/browser/themes/shared/autocomplete.inc.css
+++ b/browser/themes/shared/autocomplete.inc.css
@@ -26,20 +26,22 @@
   padding: 0;
 }
 
 
 /* Login form autocompletion */
 #PopupAutoComplete > richlistbox > richlistitem[originaltype="login"] > .ac-site-icon {
   display: initial;
   list-style-image: url(chrome://browser/skin/notification-icons.svg#login);
+  -moz-context-properties: fill;
+  fill: GrayText;
 }
 
 #PopupAutoComplete > richlistbox > richlistitem[originaltype="login"] > .ac-site-icon[selected] {
-  list-style-image: url(chrome://browser/skin/notification-icons.svg#login-highlighted);
+  fill: HighlightText;
 }
 
 
 /* Insecure field warning */
 #PopupAutoComplete > richlistbox > richlistitem[originaltype="insecureWarning"] {
   background-color: var(--arrowpanel-dimmed);
   border-bottom: 1px solid var(--panel-separator-color);
   padding-bottom: 4px;
--- a/browser/themes/shared/compacttheme.inc.css
+++ b/browser/themes/shared/compacttheme.inc.css
@@ -240,16 +240,18 @@ toolbar:-moz-lwtheme-darktext {
   color: inherit !important;
   border: 1px solid var(--chrome-nav-bar-controls-border-color) !important;
   box-shadow: none !important;
 }
 
 #identity-icon:-moz-lwtheme-brighttext,
 #tracking-protection-icon:-moz-lwtheme-brighttext,
 #connection-icon:-moz-lwtheme-brighttext,
+.notification-anchor-icon:-moz-lwtheme-brighttext,
+#blocked-permissions-container > .blocked-permission-icon:-moz-lwtheme-brighttext,
 #extension-icon:-moz-lwtheme-brighttext {
   fill: rgba(255,255,255,.7);
 }
 
 %ifndef MOZ_PHOTON_THEME
 #urlbar {
   border-inline-start: none !important;
   opacity: 1 !important;
--- a/browser/themes/shared/controlcenter/panel.inc.css
+++ b/browser/themes/shared/controlcenter/panel.inc.css
@@ -378,16 +378,18 @@ description#identity-popup-content-verif
 }
 
 .identity-popup-permission-icon {
   width: 16px;
   height: 16px;
 }
 
 .identity-popup-permission-icon.in-use {
+  -moz-context-properties: fill;
+  fill: rgb(224, 41, 29);
   animation: 1.5s ease in-use-blink infinite;
 }
 
 @keyframes in-use-blink {
   50% { opacity: 0; }
 }
 
 .identity-popup-permission-label,
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -54,33 +54,39 @@
   /* when not hovered anymore, trigger a new non-delayed transition to react to the forward button hiding */
   padding-inline-start: calc(var(--backbutton-urlbar-overlap) + 5.01px);
 }
 %endif
 
 #identity-icon,
 #tracking-protection-icon,
 #connection-icon,
+.notification-anchor-icon,
+#blocked-permissions-container > .blocked-permission-icon,
 #extension-icon {
   width: 16px;
   height: 16px;
+  margin-inline-start: 2px;
   -moz-context-properties: fill;
   fill: GrayText;
 }
 
 #identity-icon:-moz-lwtheme,
 #tracking-protection-icon:-moz-lwtheme,
 #connection-icon:-moz-lwtheme,
+.notification-anchor-icon:-moz-lwtheme,
+#blocked-permissions-container > .blocked-permission-icon:-moz-lwtheme,
 #extension-icon:-moz-lwtheme {
   fill: rgba(0,0,0,.6);
 }
 
 /* MAIN IDENTITY ICON */
 
 #identity-icon {
+  margin-inline-start: 0;
   list-style-image: url(chrome://browser/skin/identity-icon.svg);
 }
 
 #identity-box:hover > #identity-icon:not(.no-hover),
 #identity-box[open=true] > #identity-icon {
   list-style-image: url(chrome://browser/skin/identity-icon-hover.svg);
 }
 
@@ -111,16 +117,18 @@
 
 /* SHARING ICON */
 
 #sharing-icon {
   width: 16px;
   height: 16px;
   margin-inline-start: -16px;
   position: relative;
+  -moz-context-properties: fill;
+  fill: rgb(224, 41, 29);
   display: none;
 }
 
 #identity-box[sharing="camera"] > #sharing-icon {
   list-style-image: url("chrome://browser/skin/notification-icons.svg#camera-sharing");
 }
 
 #identity-box[sharing="microphone"] > #sharing-icon {
@@ -150,17 +158,16 @@
     opacity: 1;
   }
 }
 
 /* TRACKING PROTECTION ICON */
 
 #tracking-protection-icon {
   list-style-image: url(chrome://browser/skin/tracking-protection-16.svg#enabled);
-  margin-inline-start: 2px;
   margin-inline-end: 0;
 }
 
 #tracking-protection-icon[state="loaded-tracking-content"] {
   list-style-image: url(chrome://browser/skin/tracking-protection-16.svg#disabled);
 }
 
 #tracking-protection-icon[animate] {
@@ -179,17 +186,16 @@
 #urlbar[pageproxystate="invalid"] > #identity-box > #tracking-protection-icon {
   visibility: collapse;
 }
 
 /* CONNECTION ICON, EXTENSION ICON */
 
 #connection-icon,
 #extension-icon {
-  margin-inline-start: 2px;
   visibility: collapse;
 }
 
 #urlbar[pageproxystate="valid"] > #identity-box.verifiedDomain > #connection-icon,
 #urlbar[pageproxystate="valid"] > #identity-box.verifiedIdentity > #connection-icon,
 #urlbar[pageproxystate="valid"] > #identity-box.mixedActiveBlocked > #connection-icon {
   list-style-image: url(chrome://browser/skin/connection-secure.svg);
   visibility: visible;
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -61,17 +61,17 @@
   skin/classic/browser/connection-mixed-active-loaded.svg      (../shared/identity-block/connection-mixed-active-loaded.svg)
   skin/classic/browser/identity-icon.svg                       (../shared/identity-block/identity-icon.svg)
   skin/classic/browser/identity-icon-hover.svg                 (../shared/identity-block/identity-icon-hover.svg)
   skin/classic/browser/identity-icon-notice.svg                (../shared/identity-block/identity-icon-notice.svg)
   skin/classic/browser/identity-icon-notice-hover.svg          (../shared/identity-block/identity-icon-notice-hover.svg)
   skin/classic/browser/info.svg                                (../shared/info.svg)
 * skin/classic/browser/menuPanel.svg                           (../shared/menuPanel.svg)
 * skin/classic/browser/menuPanel-small.svg                     (../shared/menuPanel-small.svg)
-* skin/classic/browser/notification-icons.svg                  (../shared/notification-icons.svg)
+  skin/classic/browser/notification-icons.svg                  (../shared/notification-icons.svg)
   skin/classic/browser/tracking-protection-16.svg              (../shared/identity-block/tracking-protection-16.svg)
   skin/classic/browser/newtab/close.png                        (../shared/newtab/close.png)
   skin/classic/browser/newtab/controls.svg                     (../shared/newtab/controls.svg)
   skin/classic/browser/panel-icon-arrow-left.svg               (../shared/panel-icon-arrow-left.svg)
   skin/classic/browser/panel-icon-arrow-right.svg              (../shared/panel-icon-arrow-right.svg)
   skin/classic/browser/panel-icon-cancel.svg                   (../shared/panel-icon-cancel.svg)
 #ifndef XP_MACOSX
   skin/classic/browser/panel-icon-folder.svg                   (../shared/panel-icon-folder.svg)
--- a/browser/themes/shared/notification-icons.inc.css
+++ b/browser/themes/shared/notification-icons.inc.css
@@ -1,41 +1,34 @@
 %if 0
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 %endif
 
+.popup-notification-icon,
+.identity-popup-permission-icon {
+  -moz-context-properties: fill;
+  fill: GrayText;
+}
+
 #notification-popup-box {
   padding: 5px 0px;
   margin: -5px 0px;
   margin-inline-end: -5px;
   padding-inline-end: 5px;
 }
 
-.notification-anchor-icon,
-#blocked-permissions-container > .blocked-permission-icon {
-  width: 16px;
-  height: 16px;
-  margin-inline-start: 2px;
-}
-
 /* This class can be used alone or in combination with the class defining the
    type of icon displayed. This rule must be defined before the others in order
    for its list-style-image to be overridden. */
 .notification-anchor-icon {
   list-style-image: url(chrome://browser/skin/notification-icons.svg#default-info);
 }
 
-.notification-anchor-icon:not(.plugin-blocked):-moz-lwtheme,
-#blocked-permissions-container > .blocked-permission-icon:-moz-lwtheme {
-  filter: url(chrome://global/skin/filters.svg#fill);
-  fill: currentColor;
-}
-
 /* INDIVIDUAL NOTIFICATIONS */
 
 .focus-tab-by-prompt-icon {
   list-style-image: url(chrome://browser/skin/notification-icons.svg#focus-tab-by-prompt);
 }
 
 .popup-notification-icon[popupid="persistent-storage"],
 .persistent-storage-icon {
@@ -247,16 +240,17 @@ html|*#webRTC-previewVideo {
 /* PLUGINS */
 
 .plugin-icon {
   list-style-image: url(chrome://browser/skin/notification-icons.svg#plugin);
 }
 
 .plugin-icon.plugin-blocked {
   list-style-image: url(chrome://browser/skin/notification-icons.svg#plugin-blocked);
+  fill: #d92215 !important;
 }
 
 #notification-popup-box[hidden] {
   /* Override display:none to make the pluginBlockedNotification animation work
      when showing the notification repeatedly. */
   display: -moz-box;
   visibility: collapse;
 }
--- a/browser/themes/shared/notification-icons.svg
+++ b/browser/themes/shared/notification-icons.svg
@@ -1,55 +1,26 @@
-<?xml version="1.0"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<svg xmlns="http://www.w3.org/2000/svg"
-     xmlns:xlink="http://www.w3.org/1999/xlink"
-     class="fieldtext"
+<svg fill="context-fill" xmlns="http://www.w3.org/2000/svg"
      width="32" height="32" viewBox="0 0 32 32">
-#include icon-colors.inc.svg
   <style>
     :root > use:not(:target),
     :root > g:not(:target),
     #strikeout {
       display: none;
     }
     .blocked:target ~ #strikeout {
       display: block;
     }
     .blocked {
       clip-path: url(#blocked-clipPath);
     }
 
-    #login-highlighted {
-      fill: HighlightText;
-      fill-opacity: 1;
-    }
-
-    #plugin-blocked,
-    #plugin-blocked:target ~ #strikeout {
-      fill: #d92215;
-      fill-opacity: 1;
-    }
-
-    #camera-sharing,
-    #microphone-sharing,
-    #screen-sharing {
-      fill: rgb(224, 41, 29);
-      fill-opacity: 1;
-    }
-
-    #camera-indicator,
-    #microphone-indicator,
-    #screen-indicator {
-      fill: white;
-      fill-opacity: 1;
-    }
-
     #update-icon {
       stroke: #fff;
       stroke-width: 3px;
       stroke-linecap: round;
     }
   </style>
 
   <defs>
@@ -82,46 +53,45 @@
       <rect fill="black" x="14" y="14" width="4" height="10" rx="2" ry="2"/>
     </mask>
   </defs>
 
   <g id="default-info">
     <circle cx="16" cy="16" r="14" mask="url(#i-mask)"/>
   </g>
 
-  <use id="camera" xlink:href="#camera-icon" />
-  <use id="camera-sharing" xlink:href="#camera-icon"/>
-  <use id="camera-indicator" xlink:href="#camera-icon" />
-  <use id="camera-blocked" class="blocked" xlink:href="#camera-icon" />
-  <use id="desktop-notification" xlink:href="#desktop-notification-icon" />
-  <use id="desktop-notification-blocked" class="blocked" xlink:href="#desktop-notification-icon" />
-  <use id="focus-tab-by-prompt" xlink:href="#focus-tab-by-prompt-icon" />
-  <use id="geo-osx" xlink:href="#geo-osx-icon" />
-  <use id="geo-osx-blocked" class="blocked" xlink:href="#geo-osx-icon" />
-  <use id="geo-linux" xlink:href="#geo-linux-icon" />
-  <use id="geo-linux-blocked" class="blocked" xlink:href="#geo-linux-icon" />
-  <use id="geo-linux-detailed" xlink:href="#geo-linux-detailed-icon" />
-  <use id="geo-windows" xlink:href="#geo-windows-icon" />
-  <use id="geo-windows-blocked" class="blocked" xlink:href="#geo-windows-icon" />
-  <use id="geo-windows-detailed" xlink:href="#geo-windows-detailed-icon" />
-  <use id="indexedDB" xlink:href="#indexedDB-icon" />
-  <use id="indexedDB-blocked" class="blocked" xlink:href="#indexedDB-icon" />
-  <use id="login" xlink:href="#login-icon" />
-  <use id="login-highlighted" class="highlighted" xlink:href="#login-icon" />
-  <use id="login-detailed" xlink:href="#login-detailed-icon" />
-  <use id="microphone" xlink:href="#microphone-icon" />
-  <use id="microphone-sharing" xlink:href="#microphone-icon"/>
-  <use id="microphone-indicator" xlink:href="#microphone-icon"/>
-  <use id="microphone-blocked" class="blocked" xlink:href="#microphone-icon" />
-  <use id="microphone-detailed" xlink:href="#microphone-detailed-icon" />
-  <use id="persistent-storage" xlink:href="#persistent-storage-icon" />
-  <use id="persistent-storage-blocked" class="blocked" xlink:href="#persistent-storage-icon" />
-  <use id="plugin" xlink:href="#plugin-icon" />
-  <use id="plugin-blocked" class="blocked" xlink:href="#plugin-icon" />
-  <use id="popup" xlink:href="#popup-icon" />
-  <use id="screen" xlink:href="#screen-icon" />
-  <use id="screen-sharing" xlink:href="#screen-icon"/>
-  <use id="screen-indicator" xlink:href="#screen-icon"/>
-  <use id="screen-blocked" class="blocked" xlink:href="#screen-icon" />
-  <use id="update" xlink:href="#update-icon" />
+  <use id="camera" href="#camera-icon" />
+  <use id="camera-sharing" href="#camera-icon"/>
+  <use id="camera-indicator" href="#camera-icon" />
+  <use id="camera-blocked" class="blocked" href="#camera-icon" />
+  <use id="desktop-notification" href="#desktop-notification-icon" />
+  <use id="desktop-notification-blocked" class="blocked" href="#desktop-notification-icon" />
+  <use id="focus-tab-by-prompt" href="#focus-tab-by-prompt-icon" />
+  <use id="geo-osx" href="#geo-osx-icon" />
+  <use id="geo-osx-blocked" class="blocked" href="#geo-osx-icon" />
+  <use id="geo-linux" href="#geo-linux-icon" />
+  <use id="geo-linux-blocked" class="blocked" href="#geo-linux-icon" />
+  <use id="geo-linux-detailed" href="#geo-linux-detailed-icon" />
+  <use id="geo-windows" href="#geo-windows-icon" />
+  <use id="geo-windows-blocked" class="blocked" href="#geo-windows-icon" />
+  <use id="geo-windows-detailed" href="#geo-windows-detailed-icon" />
+  <use id="indexedDB" href="#indexedDB-icon" />
+  <use id="indexedDB-blocked" class="blocked" href="#indexedDB-icon" />
+  <use id="login" href="#login-icon" />
+  <use id="login-detailed" href="#login-detailed-icon" />
+  <use id="microphone" href="#microphone-icon" />
+  <use id="microphone-sharing" href="#microphone-icon"/>
+  <use id="microphone-indicator" href="#microphone-icon"/>
+  <use id="microphone-blocked" class="blocked" href="#microphone-icon" />
+  <use id="microphone-detailed" href="#microphone-detailed-icon" />
+  <use id="persistent-storage" href="#persistent-storage-icon" />
+  <use id="persistent-storage-blocked" class="blocked" href="#persistent-storage-icon" />
+  <use id="plugin" href="#plugin-icon" />
+  <use id="plugin-blocked" class="blocked" href="#plugin-icon" />
+  <use id="popup" href="#popup-icon" />
+  <use id="screen" href="#screen-icon" />
+  <use id="screen-sharing" href="#screen-icon"/>
+  <use id="screen-indicator" href="#screen-icon"/>
+  <use id="screen-blocked" class="blocked" href="#screen-icon" />
+  <use id="update" href="#update-icon" />
 
   <path id="strikeout" d="m 2,28 2,2 26,-26 -2,-2 z"/>
 </svg>
--- a/browser/themes/shared/tabs.inc.css
+++ b/browser/themes/shared/tabs.inc.css
@@ -107,16 +107,18 @@
 .tab-icon-image[sharing]:not([selected]) {
   animation-delay: -1.5s;
 }
 
 .tab-sharing-icon-overlay {
   /* 16px of the icon + 6px of margin-inline-end of .tab-icon-image */
   margin-inline-start: -22px;
   position: relative;
+  -moz-context-properties: fill;
+  fill: rgb(224, 41, 29);
 }
 
 .tab-sharing-icon-overlay[sharing="camera"] {
   list-style-image: url("chrome://browser/skin/notification-icons.svg#camera-sharing");
 }
 
 .tab-sharing-icon-overlay[sharing="microphone"] {
   list-style-image: url("chrome://browser/skin/notification-icons.svg#microphone-sharing");
--- a/browser/themes/shared/webRTC-indicator.css
+++ b/browser/themes/shared/webRTC-indicator.css
@@ -10,16 +10,22 @@ window {
 #screenShareButton,
 #firefoxButton {
   height: 29px;
   margin: 0;
   -moz-appearance: none;
   border-style: none;
 }
 
+#audioVideoButton,
+#screenShareButton {
+  -moz-context-properties: fill;
+  fill: white;
+}
+
 #firefoxButton {
   background-image: url("chrome://branding/content/icon48.png");
   background-repeat: no-repeat;
   background-size: 22px;
   background-position: center center;
   min-width: 29px;
   background-color: white;
 }
--- a/build/subconfigure.py
+++ b/build/subconfigure.py
@@ -12,35 +12,16 @@ import os
 import re
 import subprocess
 import sys
 import pickle
 
 import mozpack.path as mozpath
 
 
-class Pool(object):
-    def __new__(cls, size):
-        try:
-            import multiprocessing
-            size = min(size, multiprocessing.cpu_count())
-            return multiprocessing.Pool(size)
-        except:
-            return super(Pool, cls).__new__(cls)
-
-    def imap_unordered(self, fn, iterable):
-        return itertools.imap(fn, iterable)
-
-    def close(self):
-        pass
-
-    def join(self):
-        pass
-
-
 class File(object):
     def __init__(self, path):
         self._path = path
         self._content = open(path, 'rb').read()
         stat = os.stat(path)
         self._times = (stat.st_atime, stat.st_mtime)
 
     @property
@@ -253,19 +234,32 @@ def prepare(srcdir, objdir, shell, args)
     with open(data_file, 'wb') as f:
         pickle.dump(data, f)
 
 
 def prefix_lines(text, prefix):
     return ''.join('%s> %s' % (prefix, line) for line in text.splitlines(True))
 
 
+def execute_and_prefix(*args, **kwargs):
+    prefix = kwargs['prefix']
+    del kwargs['prefix']
+    proc = subprocess.Popen(*args, stdout=subprocess.PIPE,
+                            stderr=subprocess.STDOUT, **kwargs)
+    while True:
+        line = proc.stdout.readline()
+        if not line:
+            break
+        print prefix_lines(line.rstrip(), prefix)
+        sys.stdout.flush()
+    return proc.wait()
+
+
 def run(objdir):
     ret = 0
-    output = ''
 
     with open(os.path.join(objdir, CONFIGURE_DATA), 'rb') as f:
         data = pickle.load(f)
 
     data['objdir'] = objdir
 
     cache_file = data['cache-file']
     cleared_cache = True
@@ -331,21 +325,20 @@ def run(objdir):
 
         # Pass --no-create to configure so that it doesn't run config.status.
         # We're going to run it ourselves.
         command += ['--no-create']
 
         print prefix_lines('configuring', relobjdir)
         print prefix_lines('running %s' % ' '.join(command[:-1]), relobjdir)
         sys.stdout.flush()
-        try:
-            output += subprocess.check_output(command,
-                stderr=subprocess.STDOUT, cwd=objdir, env=data['env'])
-        except subprocess.CalledProcessError as e:
-            return relobjdir, e.returncode, e.output
+        returncode = execute_and_prefix(command, cwd=objdir, env=data['env'],
+                                        prefix=relobjdir)
+        if returncode:
+            return returncode
 
         # Leave config.status with a new timestamp if configure is newer than
         # its original mtime.
         if config_status and os.path.getmtime(configure) <= config_status.mtime:
             config_status.update_time()
 
     # Only run config.status if one of the following is true:
     # - config.status changed or did not exist
@@ -365,28 +358,23 @@ def run(objdir):
             if not os.path.exists(t) or \
                     os.path.getmtime(f) < os.path.getmtime(t):
                 skip_config_status = False
 
     if not skip_config_status:
         if skip_configure:
             print prefix_lines('running config.status', relobjdir)
             sys.stdout.flush()
-        try:
-            output += subprocess.check_output([data['shell'], '-c',
-                './config.status'], stderr=subprocess.STDOUT, cwd=objdir,
-                env=data['env'])
-        except subprocess.CalledProcessError as e:
-            ret = e.returncode
-            output += e.output
+        ret = execute_and_prefix([data['shell'], '-c', './config.status'],
+                                 cwd=objdir, env=data['env'], prefix=relobjdir)
 
         for f in contents:
             f.update_time()
 
-    return relobjdir, ret, output
+    return ret
 
 
 def subconfigure(args):
     parser = argparse.ArgumentParser()
     parser.add_argument('--list', type=str,
         help='File containing a list of subconfigures to run')
     parser.add_argument('--skip', type=str,
         help='File containing a list of Subconfigures to skip')
@@ -399,29 +387,21 @@ def subconfigure(args):
     if args.skip:
         skips = set(open(args.skip, 'rb').read().splitlines())
         subconfigures = [s for s in subconfigures if s not in skips]
 
     if not subconfigures:
         return 0
 
     ret = 0
-    # One would think using a ThreadPool would be faster, considering
-    # everything happens in subprocesses anyways, but no, it's actually
-    # slower on Windows. (20s difference overall!)
-    pool = Pool(len(subconfigures))
-    for relobjdir, returncode, output in \
-            pool.imap_unordered(run, subconfigures):
-        print prefix_lines(output, relobjdir)
-        sys.stdout.flush()
+    for subconfigure in subconfigures:
+        returncode = run(subconfigure)
         ret = max(returncode, ret)
         if ret:
             break
-    pool.close()
-    pool.join()
     return ret
 
 
 def main(args):
     if args[0] != '--prepare':
         return subconfigure(args)
 
     topsrcdir = os.path.abspath(args[1])
--- a/devtools/client/framework/source-map-url-service.js
+++ b/devtools/client/framework/source-map-url-service.js
@@ -6,29 +6,39 @@
 /**
  * A simple service to track source actors and keep a mapping between
  * original URLs and objects holding the source actor's ID (which is
  * used as a cookie by the devtools-source-map service) and the source
  * map URL.
  *
  * @param {object} target
  *        The object the toolbox is debugging.
+ * @param {object} threadClient
+ *        The toolbox's thread client
  * @param {SourceMapService} sourceMapService
  *        The devtools-source-map functions
  */
-function SourceMapURLService(target, sourceMapService) {
+function SourceMapURLService(target, threadClient, sourceMapService) {
   this._target = target;
   this._sourceMapService = sourceMapService;
   this._urls = new Map();
 
   this._onSourceUpdated = this._onSourceUpdated.bind(this);
   this.reset = this.reset.bind(this);
 
   target.on("source-updated", this._onSourceUpdated);
   target.on("will-navigate", this.reset);
+
+  // Start fetching the sources now.
+  this._loadingPromise = new Promise(resolve => {
+    threadClient.getSources(({sources}) => {
+      // Just ignore errors.
+      resolve(sources);
+    });
+  });
 }
 
 /**
  * Reset the service.  This flushes the internal cache.
  */
 SourceMapURLService.prototype.reset = function () {
   this._sourceMapService.clearSourceMaps();
   this._urls.clear();
@@ -70,16 +80,24 @@ SourceMapURLService.prototype._onSourceU
  * @param {number} line
  *        The line number to map.
  * @param {number} column
  *        The column number to map.
  * @return Promise
  *        A promise resolving either to the original location, or null.
  */
 SourceMapURLService.prototype.originalPositionFor = async function (url, line, column) {
+  // Ensure the sources are loaded before replying.
+  await this._loadingPromise;
+
+  // Maybe we were shut down while waiting.
+  if (!this._urls) {
+    return null;
+  }
+
   const urlInfo = this._urls.get(url);
   if (!urlInfo) {
     return null;
   }
   // Call getOriginalURLs to make sure the source map has been
   // fetched.  We don't actually need the result of this though.
   await this._sourceMapService.getOriginalURLs(urlInfo);
   const location = { sourceId: urlInfo.id, line, column, sourceUrl: url };
--- a/devtools/client/framework/test/browser.ini
+++ b/devtools/client/framework/test/browser.ini
@@ -8,23 +8,26 @@ support-files =
   browser_toolbox_sidebar_tool.xul
   browser_toolbox_window_title_changes_page.html
   browser_toolbox_window_title_frame_select_page.html
   code_binary_search.coffee
   code_binary_search.js
   code_binary_search.map
   code_binary_search_absolute.js
   code_binary_search_absolute.map
+  code_bundle_no_race.js
+  code_bundle_no_race.js.map
   code_bundle_reload_1.js
   code_bundle_reload_1.js.map
   code_bundle_reload_2.js
   code_bundle_reload_2.js.map
   code_inline_bundle.js
   code_inline_original.js
   code_math.js
+  code_no_race.js
   code_reload_1.js
   code_reload_2.js
   doc_empty-tab-01.html
   doc_reload.html
   head.js
   shared-head.js
   shared-redux-head.js
   helper_disable_cache.js
@@ -47,16 +50,17 @@ support-files =
 [browser_keybindings_01.js]
 [browser_keybindings_02.js]
 [browser_keybindings_03.js]
 [browser_menu_api.js]
 [browser_new_activation_workflow.js]
 [browser_source_map-01.js]
 [browser_source_map-absolute.js]
 [browser_source_map-inline.js]
+[browser_source_map-no-race.js]
 [browser_source_map-reload.js]
 [browser_target_from_url.js]
 [browser_target_events.js]
 [browser_target_remote.js]
 [browser_target_support.js]
 [browser_toolbox_custom_host.js]
 [browser_toolbox_dynamic_registration.js]
 [browser_toolbox_getpanelwhenready.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/browser_source_map-no-race.js
@@ -0,0 +1,41 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Test that the source map service doesn't race against source
+// reporting.
+
+"use strict";
+
+const JS_URL = URL_ROOT + "code_bundle_no_race.js";
+
+const PAGE_URL = `data:text/html,
+<!doctype html>
+
+<html>
+  <script src="${JS_URL}"></script>
+  <head>
+    <meta charset="utf-8"/>
+    <title>Empty test page to test race case</title>
+  </head>
+
+  <body>
+  </body>
+
+</html>`;
+
+const ORIGINAL_URL = "webpack:///code_no_race.js";
+
+const GENERATED_LINE = 84;
+const ORIGINAL_LINE = 11;
+
+add_task(function* () {
+  // Start with the empty page, then navigate, so that we can properly
+  // listen for new sources arriving.
+  const toolbox = yield openNewTabAndToolbox(PAGE_URL, "webconsole");
+  const service = toolbox.sourceMapURLService;
+
+  info(`checking original location for ${JS_URL}:${GENERATED_LINE}`);
+  let newLoc = yield service.originalPositionFor(JS_URL, GENERATED_LINE);
+  is(newLoc.sourceUrl, ORIGINAL_URL, "check mapped URL");
+  is(newLoc.line, ORIGINAL_LINE, "check mapped line number");
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/code_bundle_no_race.js
@@ -0,0 +1,92 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// identity function for calling harmony imports with the correct context
+/******/ 	__webpack_require__.i = function(value) { return value; };
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, {
+/******/ 				configurable: false,
+/******/ 				enumerable: true,
+/******/ 				get: getter
+/******/ 			});
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Original source code for the inline source map test.
+// The generated file was made with
+//    webpack --devtool source-map code_no_race.js code_bundle_no_race.js
+
+
+
+function f() {
+  console.log("anything will do");
+}
+
+f();
+
+
+/***/ })
+/******/ ]);
+//# sourceMappingURL=code_bundle_no_race.js.map
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/code_bundle_no_race.js.map
@@ -0,0 +1,1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap 40c4319d19d88c63024f","webpack:///./code_no_race.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;AChEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA","file":"code_bundle_no_race.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40c4319d19d88c63024f","/* Any copyright is dedicated to the Public Domain.\n http://creativecommons.org/publicdomain/zero/1.0/ */\n\n// Original source code for the inline source map test.\n// The generated file was made with\n//    webpack --devtool source-map code_no_race.js code_bundle_no_race.js\n\n\"use strict\";\n\nfunction f() {\n  console.log(\"anything will do\");\n}\n\nf();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./code_no_race.js\n// module id = 0\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/code_no_race.js
@@ -0,0 +1,14 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Original source code for the inline source map test.
+// The generated file was made with
+//    webpack --devtool source-map code_no_race.js code_bundle_no_race.js
+
+"use strict";
+
+function f() {
+  console.log("anything will do");
+}
+
+f();
--- a/devtools/client/framework/toolbox.js
+++ b/devtools/client/framework/toolbox.js
@@ -555,17 +555,18 @@ Toolbox.prototype = {
   get sourceMapURLService() {
     if (this._sourceMapURLService) {
       return this._sourceMapURLService;
     }
     let sourceMaps = this.sourceMapService;
     if (!sourceMaps) {
       return null;
     }
-    this._sourceMapURLService = new SourceMapURLService(this._target, sourceMaps);
+    this._sourceMapURLService = new SourceMapURLService(this._target, this.threadClient,
+                                                        sourceMaps);
     return this._sourceMapURLService;
   },
 
   // Return HostType id for telemetry
   _getTelemetryHostId: function () {
     switch (this.hostType) {
       case Toolbox.HostType.BOTTOM: return 0;
       case Toolbox.HostType.SIDE: return 1;
--- a/devtools/client/webconsole/new-console-output/reducers/messages.js
+++ b/devtools/client/webconsole/new-console-output/reducers/messages.js
@@ -390,17 +390,17 @@ function matchNetworkFilters(message, fi
 function matchCssFilters(message, filters) {
   return (
     message.source != MESSAGE_SOURCE.CSS
     || filters.get("css") === true
   );
 }
 
 function matchSearchFilters(message, filters) {
-  let text = filters.text || "";
+  let text = (filters.text || "").trim();
   return (
     text === ""
     // Look for a match in parameters.
     || isTextInParameters(text, message.parameters)
     // Look for a match in location.
     || isTextInFrame(text, message.frame)
     // Look for a match in net events.
     || isTextInNetEvent(text, message.request)
--- a/devtools/client/webconsole/new-console-output/test/store/filters.test.js
+++ b/devtools/client/webconsole/new-console-output/test/store/filters.test.js
@@ -95,20 +95,30 @@ describe("Filtering", () => {
 
       store.dispatch(actions.filterToggle("net"));
       messages = getVisibleMessages(store.getState());
       expect(messages.length).toEqual(numMessages + 1);
     });
   });
 
   describe("Text filter", () => {
+    it("set the expected property on the store", () => {
+      store.dispatch(actions.filterTextSet("danger"));
+      expect(getAllFilters(store.getState()).text).toEqual("danger");
+    });
+
     it("matches on value grips", () => {
       store.dispatch(actions.filterTextSet("danger"));
       let messages = getVisibleMessages(store.getState());
       expect(messages.length - numUnfilterableMessages).toEqual(1);
+
+      // Checks that trimming works.
+      store.dispatch(actions.filterTextSet("    danger    "));
+      messages = getVisibleMessages(store.getState());
+      expect(messages.length - numUnfilterableMessages).toEqual(1);
     });
 
     it("matches unicode values", () => {
       store.dispatch(actions.filterTextSet("ιΌ¬"));
 
       let messages = getVisibleMessages(store.getState());
       expect(messages.length - numUnfilterableMessages).toEqual(1);
     });
--- a/dom/canvas/WebGLContext.cpp
+++ b/dom/canvas/WebGLContext.cpp
@@ -2347,17 +2347,17 @@ WebGLContext::GetVRFrame()
 
     RefPtr<SharedSurfaceTextureClient> sharedSurface = screen->Front();
     if (!sharedSurface) {
         return nullptr;
     }
 
     if (sharedSurface && sharedSurface->GetAllocator() != vrmc) {
         RefPtr<SharedSurfaceTextureClient> dest =
-        screen->Factory()->NewTexClient(sharedSurface->GetSize());
+        screen->Factory()->NewTexClient(sharedSurface->GetSize(), vrmc);
         if (!dest) {
             return nullptr;
         }
         gl::SharedSurface* destSurf = dest->Surf();
         destSurf->ProducerAcquire();
         SharedSurface::ProdCopy(sharedSurface->Surf(), dest->Surf(),
                                 screen->Factory());
         destSurf->ProducerRelease();
--- a/dom/ipc/ContentChild.cpp
+++ b/dom/ipc/ContentChild.cpp
@@ -123,16 +123,17 @@
 #include "nsThreadManager.h"
 #include "nsAnonymousTemporaryFile.h"
 #include "nsISpellChecker.h"
 #include "nsClipboardProxy.h"
 #include "nsDirectoryService.h"
 #include "nsDirectoryServiceUtils.h"
 #include "nsDirectoryServiceDefs.h"
 #include "nsContentPermissionHelper.h"
+#include "nsPluginHost.h"
 #ifdef NS_PRINTING
 #include "nsPrintingProxy.h"
 #endif
 
 #include "IHistory.h"
 #include "nsNetUtil.h"
 
 #include "base/message_loop.h"
@@ -3369,10 +3370,20 @@ ContentChild::RecvRefreshScreens(nsTArra
 }
 
 already_AddRefed<nsIEventTarget>
 ContentChild::GetEventTargetFor(TabChild* aTabChild)
 {
   return IToplevelProtocol::GetActorEventTarget(aTabChild);
 }
 
+mozilla::ipc::IPCResult
+ContentChild::RecvSetPluginList(const uint32_t& aPluginEpoch,
+                                nsTArray<plugins::PluginTag>&& aPluginTags,
+                                nsTArray<plugins::FakePluginTag>&& aFakePluginTags)
+{
+  RefPtr<nsPluginHost> host = nsPluginHost::GetInst();
+  host->SetPluginsInContent(aPluginEpoch, aPluginTags, aFakePluginTags);
+  return IPC_OK();
+}
+
 } // namespace dom
 } // namespace mozilla
--- a/dom/ipc/ContentChild.h
+++ b/dom/ipc/ContentChild.h
@@ -656,16 +656,19 @@ public:
                       const Optional<int64_t>& aLastModified,
                       bool aExistenceCheck, bool aIsFromNsIFile);
 
   typedef std::function<void(PRFileDesc*)> AnonymousTemporaryFileCallback;
   nsresult AsyncOpenAnonymousTemporaryFile(const AnonymousTemporaryFileCallback& aCallback);
 
   virtual already_AddRefed<nsIEventTarget> GetEventTargetFor(TabChild* aTabChild) override;
 
+  mozilla::ipc::IPCResult
+  RecvSetPluginList(const uint32_t& aPluginEpoch, nsTArray<PluginTag>&& aPluginTags, nsTArray<FakePluginTag>&& aFakePluginTags) override;
+
 private:
   static void ForceKillTimerCallback(nsITimer* aTimer, void* aClosure);
   void StartForceKillTimer();
 
   virtual void ActorDestroy(ActorDestroyReason why) override;
 
   virtual void ProcessingError(Result aCode, const char* aReason) override;
 
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -1157,27 +1157,16 @@ ContentParent::RecvGetBlocklistState(con
   }
 
   if (NS_FAILED(tag->GetBlocklistState(aState))) {
     return IPC_FAIL_NO_REASON(this);
   }
   return IPC_OK();
 }
 
-mozilla::ipc::IPCResult
-ContentParent::RecvFindPlugins(const uint32_t& aPluginEpoch,
-                               nsresult* aRv,
-                               nsTArray<PluginTag>* aPlugins,
-                               nsTArray<FakePluginTag>* aFakePlugins,
-                               uint32_t* aNewPluginEpoch)
-{
-  *aRv = mozilla::plugins::FindPluginsForContent(aPluginEpoch, aPlugins, aFakePlugins, aNewPluginEpoch);
-  return IPC_OK();
-}
-
 /*static*/ TabParent*
 ContentParent::CreateBrowser(const TabContext& aContext,
                              Element* aFrameElement,
                              ContentParent* aOpenerContentParent,
                              TabParent* aSameTabGroupAs,
                              uint64_t aNextTabParentId)
 {
   PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
@@ -2443,16 +2432,21 @@ ContentParent::InitInternal(ProcessPrior
 
   {
     nsTArray<BlobURLRegistrationData> registrations;
     if (nsHostObjectProtocolHandler::GetAllBlobURLEntries(registrations,
                                                           this)) {
       Unused << SendInitBlobURLs(registrations);
     }
   }
+
+  // Start up nsPluginHost and run FindPlugins to cache the plugin list.
+  // If this isn't our first content process, just send over cached list.
+  RefPtr<nsPluginHost> pluginHost = nsPluginHost::GetInst();
+  pluginHost->SendPluginsToContent();
 }
 
 bool
 ContentParent::IsAlive() const
 {
   return mIsAlive;
 }
 
@@ -5292,8 +5286,16 @@ ContentParent::CanCommunicateWith(Conten
   if (!cpm->GetParentProcessId(ChildID(), &parentId)) {
     return false;
   }
   if (IsForJSPlugin()) {
     return parentId == ContentParentId(0);
   }
   return parentId == aOtherProcess;
 }
+
+mozilla::ipc::IPCResult
+ContentParent::RecvMaybeReloadPlugins()
+{
+  RefPtr<nsPluginHost> pluginHost = nsPluginHost::GetInst();
+  pluginHost->ReloadPlugins();
+  return IPC_OK();
+}
--- a/dom/ipc/ContentParent.h
+++ b/dom/ipc/ContentParent.h
@@ -293,29 +293,25 @@ public:
                                                            Endpoint<PContentBridgeParent>* aEndpoint) override;
 
   virtual mozilla::ipc::IPCResult RecvCreateGMPService() override;
 
   virtual mozilla::ipc::IPCResult RecvLoadPlugin(const uint32_t& aPluginId, nsresult* aRv,
                                                  uint32_t* aRunID,
                                                  Endpoint<PPluginModuleParent>* aEndpoint) override;
 
+  virtual mozilla::ipc::IPCResult RecvMaybeReloadPlugins() override;
+
   virtual mozilla::ipc::IPCResult RecvConnectPluginBridge(const uint32_t& aPluginId,
                                                           nsresult* aRv,
                                                           Endpoint<PPluginModuleParent>* aEndpoint) override;
 
   virtual mozilla::ipc::IPCResult RecvGetBlocklistState(const uint32_t& aPluginId,
                                                         uint32_t* aIsBlocklisted) override;
 
-  virtual mozilla::ipc::IPCResult RecvFindPlugins(const uint32_t& aPluginEpoch,
-                                                  nsresult* aRv,
-                                                  nsTArray<PluginTag>* aPlugins,
-                                                  nsTArray<FakePluginTag>* aFakePlugins,
-                                                  uint32_t* aNewPluginEpoch) override;
-
   virtual mozilla::ipc::IPCResult RecvUngrabPointer(const uint32_t& aTime) override;
 
   virtual mozilla::ipc::IPCResult RecvRemovePermission(const IPC::Principal& aPrincipal,
                                                        const nsCString& aPermissionType,
                                                        nsresult* aRv) override;
 
   NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(ContentParent, nsIObserver)
 
--- a/dom/ipc/PContent.ipdl
+++ b/dom/ipc/PContent.ipdl
@@ -606,16 +606,27 @@ child:
     async ProvideAnonymousTemporaryFile(uint64_t aID, FileDescOrError aFD);
 
     async SetPermissionsWithKey(nsCString aPermissionKey, Permission[] aPermissions);
 
     async RefreshScreens(ScreenDetails[] aScreens);
 
     async PIPCBlobInputStream(nsID aID, uint64_t aSize);
 
+    /**
+     * This call takes the set of plugins loaded in the chrome process, and
+     * sends them to the content process. However, in many cases this set will
+     * not have changed since the last SetPluginList message. To keep track of
+     * this, the chrome process increments an epoch number every time the set of
+     * plugins changes. The chrome process sends up the last epoch it observed.
+     * If the epoch last seen by the content process is the same, the content
+     * process ignores the update. Otherwise the content process updates its
+     * list and reloads its plugins.
+     **/
+    async SetPluginList(uint32_t pluginEpoch, PluginTag[] plugins, FakePluginTag[] fakePlugins);
 parent:
     async InitBackground(Endpoint<PBackgroundParent> aEndpoint);
 
     sync CreateChildProcess(IPCTabContext context,
                             ProcessPriority priority,
                             TabId openerTabId,
                             TabId tabId)
         returns (ContentParentId cpId, bool isForBrowser);
@@ -641,30 +652,16 @@ parent:
     sync ConnectPluginBridge(uint32_t aPluginId)
         returns (nsresult rv, Endpoint<PPluginModuleParent> aEndpoint);
 
     /**
      * Return the current blocklist state for a particular plugin.
      */
     sync GetBlocklistState(uint32_t aPluginId) returns (uint32_t aState);
 
-    /**
-     * This call returns the set of plugins loaded in the chrome
-     * process. However, in many cases this set will not have changed since the
-     * last FindPlugins message. Consequently, the chrome process increments an
-     * epoch number every time the set of plugins changes. The content process
-     * sends up the last epoch it observed. If the epochs are the same, the
-     * chrome process returns no plugins. Otherwise it returns a complete list.
-     *
-     * |pluginEpoch| is the epoch last observed by the content
-     * process. |newPluginEpoch| is the current epoch in the chrome process. If
-     * |pluginEpoch == newPluginEpoch|, then |plugins| will be left empty.
-     */
-    sync FindPlugins(uint32_t pluginEpoch) returns (nsresult aResult, PluginTag[] plugins, FakePluginTag[] fakePlugins, uint32_t newPluginEpoch);
-
     async PJavaScript();
 
     async PRemoteSpellcheckEngine();
 
     async InitCrashReporter(Shmem shmem, NativeThreadId tid);
 
     /**
      * Is this token compatible with the provided version?
@@ -1089,16 +1086,17 @@ parent:
 
     sync GetA11yContentId() returns (uint32_t aContentId);
     async A11yHandlerControl(uint32_t aPid,
                              IHandlerControlHolder aHandlerControl);
 
     async AddMemoryReport(MemoryReport aReport);
     async FinishMemoryReport(uint32_t aGeneration);
 
+    async MaybeReloadPlugins();
 both:
      async AsyncMessage(nsString aMessage, CpowEntry[] aCpows,
                         Principal aPrincipal, ClonedMessageData aData);
 
     /**
      * Notify `push-subscription-modified` observers in the parent and child.
      */
     async NotifyPushSubscriptionModifiedObservers(nsCString scope,
--- a/dom/locales/en-US/chrome/dom/dom.properties
+++ b/dom/locales/en-US/chrome/dom/dom.properties
@@ -325,17 +325,17 @@ LargeAllocationNonGetRequest=A Large-All
 # LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate `window.opener`.
 LargeAllocationNotOnlyToplevelInTabGroup=A Large-Allocation header was ignored due to the presence of windows which have a reference to this browsing context through the frame hierarchy or window.opener.
 # LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
 LargeAllocationNonE10S=A Large-Allocation header was ignored due to the document not being loaded out of process.
 GeolocationInsecureRequestIsForbidden=A Geolocation request can only be fulfilled in a secure context.
 # LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name.
 LargeAllocationNonWin32=This page would be loaded in a new process due to a Large-Allocation header, however Large-Allocation process creation is disabled on non-Win32 platforms.
 # LOCALIZATION NOTE: Do not translate URL.createObjectURL(MediaStream).
-URLCreateObjectURL_MediaStream=URL.createObjectURL(MediaStream) is deprecated and will be removed soon.
+URLCreateObjectURL_MediaStreamWarning=URL.createObjectURL(MediaStream) is deprecated and will be removed soon.
 # LOCALIZATION NOTE: Do not translate MozAutoGainControl or autoGainControl.
 MozAutoGainControlWarning=mozAutoGainControl is deprecated. Use autoGainControl instead.
 # LOCALIZATION NOTE: Do not translate mozNoiseSuppression or noiseSuppression.
 MozNoiseSuppressionWarning=mozNoiseSuppression is deprecated. Use noiseSuppression instead.
 # LOCALIZATION NOTE: Do not translate xml:base.
 XMLBaseAttributeWarning=Use of xml:base attribute is deprecated and will be removed soon. Please remove any use of it.
 # LOCALIZATION NOTE: %S is the tag name of the element that starts the loop
 SVGReferenceLoopWarning=There is an SVG <%S> reference loop in this document, which will prevent the document rendering correctly.
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -4028,20 +4028,17 @@ MediaStreamGraph::ApplyAudioContextOpera
   graphImpl->AppendMessage(
     MakeUnique<AudioContextOperationControlMessage>(aDestinationStream, aStreams,
                                                     aOperation, aPromise));
 }
 
 bool
 MediaStreamGraph::IsNonRealtime() const
 {
-  const MediaStreamGraphImpl* impl = static_cast<const MediaStreamGraphImpl*>(this);
-  MediaStreamGraphImpl* graph;
-
-  return !gGraphs.Get(uint32_t(impl->AudioChannel()), &graph) || graph != impl;
+  return !static_cast<const MediaStreamGraphImpl*>(this)->mRealtime;
 }
 
 void
 MediaStreamGraph::StartNonRealtimeProcessing(uint32_t aTicksToProcess)
 {
   NS_ASSERTION(NS_IsMainThread(), "main thread only");
 
   MediaStreamGraphImpl* graph = static_cast<MediaStreamGraphImpl*>(this);
new file mode 100644
--- /dev/null
+++ b/dom/media/tests/crashtests/1367930_1.html
@@ -0,0 +1,39 @@
+<html>
+<body>
+  <script>
+var offer= "v=0\r\no=- 6276735615230473072 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video\r\na=msid-semantic:WMS *\r\na=ice-ufrag:XoEUdw==\r\na=ice-pwd:hfNjAs9TU4NNuumB50mGfJwkqIEN8A==\r\na=ice-lite\r\na=setup:actpass\r\na=fingerprint:sha-256 0D:54:F2:D9:F3:10:00:2D:CD:14:C6:AC:CB:5D:E7:34:5E:6F:A8:BF:25:96:48:40:0B:C7:F9:18:6A:A6:73:3F\r\nm=video 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=mid:video\r\na=recvonly\r\na=rtcp-rsize\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=rid:hi recv\r\na=rid:mid recv\r\na=rid:lo recv\r\na=simulcast: recv rid=hi,mid,lo\r\na=candidate:1796272311 1 UDP 2130706431 192.168.10.146 55984 typ host\r\na=end-of-candidates\r\n"
+
+var data = {};
+data.sdp = offer;
+data.type = "offer";
+
+console.log('OFFER', JSON.stringify(data.sdp));
+
+var pc = new RTCPeerConnection();
+
+navigator.mediaDevices.getUserMedia({video: true, fake: true})
+  .then((stream) => {
+    return pc.addStream(stream);
+  })
+  .then(() => {
+    return pc.setRemoteDescription(new RTCSessionDescription(data));
+  })
+  .then(function() {
+      var sender = pc.getSenders()[0];
+      console.log('setting parameters');
+      return sender.setParameters({encodings: [
+          {rid: "hi", maxBitrate: 800000},
+          {rid: "mid", maxBitrate: 400000, scaleDownResolutionBy: 2},
+          {rid: "lo", maxBitrate: 150000, scaleDownResolutionBy: 4}
+      ]});
+  })
+  .then(function() {
+      return pc.createAnswer();
+  })
+  .then(function(answer) {
+      console.log('answer', JSON.stringify(answer.sdp));
+      return pc.setLocalDescription(answer);
+  });
+  </script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/dom/media/tests/crashtests/1367930_2.html
@@ -0,0 +1,25 @@
+<html>
+  <body>
+    <script>
+const sdp = {"type":"offer","sdp":"v=0\r\no=- 6276735615230473072 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video\r\na=msid-semantic:WMS *\r\na=ice-ufrag:XpXW4g==\r\na=ice-pwd:hjagMNwFF/kMOmWoULEFptwuQXkMVQ==\r\na=ice-lite\r\na=setup:actpass\r\na=fingerprint:sha-256 DC:FC:25:56:2B:88:77:2F:E4:FA:97:4E:2E:F1:D6:34:A6:A0:11:E2:E4:38:B3:98:08:D2:F7:9D:F5:E2:C1:15\r\nm=video 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=mid:video\r\na=recvonly\r\na=rtcp-rsize\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=rid:hi recv\r\na=rid:mid recv\r\na=rid:lo recv\r\na=simulcast: recv rid=hi;mid;lo\r\na=candidate:1796272311 1 UDP 2130706431 127.0.0.1 33584 typ host\r\na=end-of-candidates\r\n"};
+
+var pc = new RTCPeerConnection();
+
+navigator.mediaDevices.getUserMedia({video: true, fake: true})
+.then(stream => pc.addStream(stream))
+.then(() => {
+            console.log('hum');
+            pc.setRemoteDescription(sdp)
+            .then(function() {
+                return pc.createAnswer();
+            })
+            .then(function(answer) {
+                console.log(answer.sdp);
+                return pc.setLocalDescription(answer);
+            })
+            .then(console.log('yay'))
+            .catch(e => console.error(e));
+})
+    </script>
+  </body>
+</html>
--- a/dom/media/tests/crashtests/crashtests.list
+++ b/dom/media/tests/crashtests/crashtests.list
@@ -10,8 +10,10 @@ load 812785.html
 load 834100.html
 load 836349.html
 load 837324.html
 load 855796.html
 load 860143.html
 load 861958.html
 load 863929.html
 load 1348381.html
+load 1367930_1.html
+load 1367930_2.html
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -46,16 +46,17 @@
 #include "nsIScriptChannel.h"
 #include "nsIBlocklistService.h"
 #include "nsVersionComparator.h"
 #include "nsIObjectLoadingContent.h"
 #include "nsIWritablePropertyBag2.h"
 #include "nsICategoryManager.h"
 #include "nsPluginStreamListenerPeer.h"
 #include "mozilla/dom/ContentChild.h"
+#include "mozilla/dom/ContentParent.h"
 #include "mozilla/dom/FakePluginTagInitBinding.h"
 #include "mozilla/LoadInfo.h"
 #include "mozilla/plugins/PluginAsyncSurrogate.h"
 #include "mozilla/plugins/PluginBridge.h"
 #include "mozilla/plugins/PluginTypes.h"
 #include "mozilla/Preferences.h"
 #include "mozilla/ipc/URIUtils.h"
 
@@ -262,24 +263,16 @@ static bool UnloadPluginsASAP()
 }
 
 nsPluginHost::nsPluginHost()
   : mPluginsLoaded(false)
   , mOverrideInternalTypes(false)
   , mPluginsDisabled(false)
   , mPluginEpoch(0)
 {
-  // Bump the pluginchanged epoch on startup. This insures content gets a
-  // good plugin list the first time it requests it. Normally we'd just
-  // init this to 1, but due to the unique nature of our ctor we need to do
-  // this manually.
-  if (XRE_IsParentProcess()) {
-    IncrementChromeEpoch();
-  }
-
   // check to see if pref is set at startup to let plugins take over in
   // full page mode for certain image mime types that we handle internally
   mOverrideInternalTypes =
     Preferences::GetBool("plugin.override_internal_types", false);
 
   mPluginsDisabled = Preferences::GetBool("plugin.disable", false);
 
   Preferences::AddStrongObserver(this, "plugin.disable");
@@ -298,16 +291,23 @@ nsPluginHost::nsPluginHost()
 #ifdef PLUGIN_LOGGING
   MOZ_LOG(nsPluginLogging::gNPNLog, PLUGIN_LOG_ALWAYS,("NPN Logging Active!\n"));
   MOZ_LOG(nsPluginLogging::gPluginLog, PLUGIN_LOG_ALWAYS,("General Plugin Logging Active! (nsPluginHost::ctor)\n"));
   MOZ_LOG(nsPluginLogging::gNPPLog, PLUGIN_LOG_ALWAYS,("NPP Logging Active!\n"));
 
   PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("nsPluginHost::ctor\n"));
   PR_LogFlush();
 #endif
+
+  // Load plugins on creation, as there's a good chance we'll need to send them
+  // to content processes directly after creation.
+  if (XRE_IsParentProcess())
+  {
+    LoadPlugins();
+  }
 }
 
 nsPluginHost::~nsPluginHost()
 {
   PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("nsPluginHost::dtor\n"));
 
   UnloadPlugins();
   sInst = nullptr;
@@ -355,18 +355,30 @@ bool nsPluginHost::IsRunningPlugin(nsPlu
   return false;
 }
 
 nsresult nsPluginHost::ReloadPlugins()
 {
   PLUGIN_LOG(PLUGIN_LOG_NORMAL,
   ("nsPluginHost::ReloadPlugins Begin\n"));
 
-  nsresult rv = NS_OK;
-
+  // If we're calling this from a content process, forward the reload request to
+  // the parent process. If plugins actually changed, it will notify us
+  // asynchronously later.
+  if (XRE_IsContentProcess())
+  {
+    Unused << mozilla::dom::ContentChild::GetSingleton()->SendMaybeReloadPlugins();
+    // In content processes, always signal that plugins have not changed. We
+    // will never know if they changed here unless we make slow synchronous
+    // calls. This information will hopefully only be wrong once, as if there
+    // has been a plugin update, we expect to have gotten notification from the
+    // parent process and everything should be updated by the next time this is
+    // called. See Bug 1337058 for more info.
+    return NS_ERROR_PLUGINS_PLUGINSNOTCHANGED;
+  }
   // this will create the initial plugin list out of cache
   // if it was not created yet
   if (!mPluginsLoaded)
     return LoadPlugins();
 
   // we are re-scanning plugins. New plugins may have been added, also some
   // plugins may have been removed, so we should probably shut everything down
   // but don't touch running (active and not stopped) plugins
@@ -377,16 +389,24 @@ nsresult nsPluginHost::ReloadPlugins()
   // look for possible changes
   bool pluginschanged = true;
   FindPlugins(false, &pluginschanged);
 
   // if no changed detected, return an appropriate error code
   if (!pluginschanged)
     return NS_ERROR_PLUGINS_PLUGINSNOTCHANGED;
 
+  return ActuallyReloadPlugins();
+}
+
+nsresult
+nsPluginHost::ActuallyReloadPlugins()
+{
+  nsresult rv = NS_OK;
+
   // shutdown plugins and kill the list if there are no running plugins
   RefPtr<nsPluginTag> prev;
   RefPtr<nsPluginTag> next;
 
   for (RefPtr<nsPluginTag> p = mPlugins; p != nullptr;) {
     next = p->mNext;
 
     // only remove our plugin from the list if it's not running.
@@ -410,16 +430,23 @@ nsresult nsPluginHost::ReloadPlugins()
   }
 
   // set flags
   mPluginsLoaded = false;
 
   // load them again
   rv = LoadPlugins();
 
+  if (XRE_IsParentProcess())
+  {
+    // If the plugin list changed, update content. If the plugin list changed
+    // for the content process, it will also reload plugins.
+    SendPluginsToContent();
+  }
+
   PLUGIN_LOG(PLUGIN_LOG_NORMAL,
   ("nsPluginHost::ReloadPlugins End\n"));
 
   return rv;
 }
 
 #define NS_RETURN_UASTRING_SIZE 128
 
@@ -2271,21 +2298,21 @@ WatchRegKey(uint32_t aRoot, nsCOMPtr<nsI
     return;
   }
   aKey->StartWatching(true);
 }
 #endif
 
 nsresult nsPluginHost::LoadPlugins()
 {
-#ifdef ANDROID
+  // This should only be run in the parent process. On plugin list change, we'll
+  // update observers in the content process as part of SetPluginsInContent
   if (XRE_IsContentProcess()) {
     return NS_OK;
   }
-#endif
   // do not do anything if it is already done
   // use ReloadPlugins() to enforce loading
   if (mPluginsLoaded)
     return NS_OK;
 
   if (mPluginsDisabled)
     return NS_OK;
 
@@ -2310,42 +2337,34 @@ nsresult nsPluginHost::LoadPlugins()
     if (obsService)
       obsService->NotifyObservers(nullptr, "plugins-list-updated", nullptr);
   }
 
   return NS_OK;
 }
 
 nsresult
-nsPluginHost::FindPluginsInContent(bool aCreatePluginList, bool* aPluginsChanged)
+nsPluginHost::SetPluginsInContent(uint32_t aPluginEpoch,
+                                  nsTArray<mozilla::plugins::PluginTag>& aPlugins,
+                                  nsTArray<mozilla::plugins::FakePluginTag>& aFakePlugins)
 {
   MOZ_ASSERT(XRE_IsContentProcess());
 
-  dom::ContentChild* cp = dom::ContentChild::GetSingleton();
-  nsresult rv;
   nsTArray<PluginTag> plugins;
+
   nsTArray<FakePluginTag> fakePlugins;
-  uint32_t parentEpoch;
-  if (!cp->SendFindPlugins(ChromeEpochForContent(), &rv, &plugins, &fakePlugins, &parentEpoch) ||
-      NS_FAILED(rv)) {
-    return NS_ERROR_NOT_AVAILABLE;
-  }
-
-  if (parentEpoch != ChromeEpochForContent()) {
-    *aPluginsChanged = true;
-    if (!aCreatePluginList) {
-      return NS_OK;
-    }
-
-    // Don't do this if aCreatePluginList is false. Otherwise, when we actually
-    // want to create the list, we'll come back here and do nothing.
-    SetChromeEpochForContent(parentEpoch);
-
-    for (size_t i = 0; i < plugins.Length(); i++) {
-      PluginTag& tag = plugins[i];
+
+  if (aPluginEpoch != ChromeEpochForContent()) {
+    // Since we know we're going to be repopulating the lists anyways, trigger a
+    // reload now to clear out all old entries.
+    ActuallyReloadPlugins();
+
+    SetChromeEpochForContent(aPluginEpoch);
+
+    for (auto tag : aPlugins) {
 
       // Don't add the same plugin again.
       if (nsPluginTag* existing = PluginWithId(tag.id())) {
         UpdateInMemoryPluginInfo(existing);
         continue;
       }
 
       nsPluginTag *pluginTag = new nsPluginTag(tag.id(),
@@ -2362,17 +2381,17 @@ nsPluginHost::FindPluginsInContent(bool 
                                                tag.supportsAsyncInit(),
                                                tag.supportsAsyncRender(),
                                                tag.lastModifiedTime(),
                                                tag.isFromExtension(),
                                                tag.sandboxLevel());
       AddPluginTag(pluginTag);
     }
 
-    for (const auto& tag : fakePlugins) {
+    for (const auto& tag : aFakePlugins) {
       // Don't add the same plugin again.
       for (const auto& existingTag : mFakePlugins) {
         if (existingTag->Id() == tag.id()) {
           continue;
         }
       }
 
       RefPtr<nsFakePluginTag> pluginTag =
@@ -2389,16 +2408,22 @@ nsPluginHost::FindPluginsInContent(bool 
         Preferences::GetCString(kPrefDisableFullPage);
       for (uint32_t i = 0; i < pluginTag->MimeTypes().Length(); i++) {
         if (!IsTypeInList(pluginTag->MimeTypes()[i], disableFullPage)) {
           RegisterWithCategoryManager(pluginTag->MimeTypes()[i],
                                       ePluginRegister);
         }
       }
     }
+
+    nsCOMPtr<nsIObserverService> obsService =
+      mozilla::services::GetObserverService();
+    if (obsService) {
+      obsService->NotifyObservers(nullptr, "plugins-list-updated", nullptr);
+    }
   }
 
   mPluginsLoaded = true;
   return NS_OK;
 }
 
 // if aCreatePluginList is false we will just scan for plugins
 // and see if any changes have been made to the plugins.
@@ -2406,18 +2431,20 @@ nsPluginHost::FindPluginsInContent(bool 
 nsresult nsPluginHost::FindPlugins(bool aCreatePluginList, bool * aPluginsChanged)
 {
   Telemetry::AutoTimer<Telemetry::FIND_PLUGINS> telemetry;
 
   NS_ENSURE_ARG_POINTER(aPluginsChanged);
 
   *aPluginsChanged = false;
 
+  // If plugins are found or change, the content process will be notified by the
+  // parent process. Bail out early if this is called from the content process.
   if (XRE_IsContentProcess()) {
-    return FindPluginsInContent(aCreatePluginList, aPluginsChanged);
+    return NS_OK;
   }
 
   nsresult rv;
 
   // Read cached plugins info. If the profile isn't yet available then don't
   // scan for plugins
   if (ReadPluginInfo() == NS_ERROR_NOT_AVAILABLE)
     return NS_OK;
@@ -2536,90 +2563,80 @@ nsresult nsPluginHost::FindPlugins(bool 
   // No more need for cached plugins. Clear it up.
   NS_ITERATIVE_UNREF_LIST(RefPtr<nsPluginTag>, mCachedPlugins, mNext);
   NS_ITERATIVE_UNREF_LIST(RefPtr<nsInvalidPluginTag>, mInvalidPlugins, mNext);
 
   return NS_OK;
 }
 
 nsresult
-mozilla::plugins::FindPluginsForContent(uint32_t aPluginEpoch,
-                                        nsTArray<PluginTag>* aPlugins,
-                                        nsTArray<FakePluginTag>* aFakePlugins,
-                                        uint32_t* aNewPluginEpoch)
+nsPluginHost::SendPluginsToContent()
 {
   MOZ_ASSERT(XRE_IsParentProcess());
 
-  RefPtr<nsPluginHost> host = nsPluginHost::GetInst();
-  return host->FindPluginsForContent(aPluginEpoch, aPlugins, aFakePlugins, aNewPluginEpoch);
-}
-
-nsresult
-nsPluginHost::FindPluginsForContent(uint32_t aPluginEpoch,
-                                    nsTArray<PluginTag>* aPlugins,
-                                    nsTArray<FakePluginTag>* aFakePlugins,
-                                    uint32_t* aNewPluginEpoch)
-{
-  MOZ_ASSERT(XRE_IsParentProcess());
-
+  nsTArray<PluginTag> pluginTags;
+  nsTArray<FakePluginTag> fakePluginTags;
   // Load plugins so that the epoch is correct.
   nsresult rv = LoadPlugins();
   if (NS_FAILED(rv)) {
     return rv;
   }
 
-  *aNewPluginEpoch = ChromeEpoch();
-  if (aPluginEpoch == ChromeEpoch()) {
-    return NS_OK;
-  }
+  uint32_t newPluginEpoch = ChromeEpoch();
 
   nsTArray<nsCOMPtr<nsIInternalPluginTag>> plugins;
   GetPlugins(plugins, true);
 
   for (size_t i = 0; i < plugins.Length(); i++) {
     nsCOMPtr<nsIInternalPluginTag> basetag = plugins[i];
 
     nsCOMPtr<nsIFakePluginTag> faketag = do_QueryInterface(basetag);
     if (faketag) {
       /// FIXME-jsplugins - We need to add a nsIInternalPluginTag->AsNative() to
       /// avoid this hacky static cast
       nsFakePluginTag* tag = static_cast<nsFakePluginTag*>(basetag.get());
       mozilla::ipc::URIParams handlerURI;
       SerializeURI(tag->HandlerURI(), handlerURI);
-      aFakePlugins->AppendElement(FakePluginTag(tag->Id(),
-                                                handlerURI,
-                                                tag->Name(),
-                                                tag->Description(),
-                                                tag->MimeTypes(),
-                                                tag->MimeDescriptions(),
-                                                tag->Extensions(),
-                                                tag->GetNiceFileName(),
-                                                tag->SandboxScript()));
+      fakePluginTags.AppendElement(FakePluginTag(tag->Id(),
+                                                 handlerURI,
+                                                 tag->Name(),
+                                                 tag->Description(),
+                                                 tag->MimeTypes(),
+                                                 tag->MimeDescriptions(),
+                                                 tag->Extensions(),
+                                                 tag->GetNiceFileName(),
+                                                 tag->SandboxScript()));
       continue;
     }
 
     /// FIXME-jsplugins - We need to cleanup the various plugintag classes
     /// to be more sane and avoid this dance
     nsPluginTag *tag = static_cast<nsPluginTag *>(basetag.get());
 
-    aPlugins->AppendElement(PluginTag(tag->mId,
-                                      tag->Name(),
-                                      tag->Description(),
-                                      tag->MimeTypes(),
-                                      tag->MimeDescriptions(),
-                                      tag->Extensions(),
-                                      tag->mIsJavaPlugin,
-                                      tag->mIsFlashPlugin,
-                                      tag->mSupportsAsyncInit,
-                                      tag->mSupportsAsyncRender,
-                                      tag->FileName(),
-                                      tag->Version(),
-                                      tag->mLastModifiedTime,
-                                      tag->IsFromExtension(),
-                                      tag->mSandboxLevel));
+    pluginTags.AppendElement(PluginTag(tag->mId,
+                                       tag->Name(),
+                                       tag->Description(),
+                                       tag->MimeTypes(),
+                                       tag->MimeDescriptions(),
+                                       tag->Extensions(),
+                                       tag->mIsJavaPlugin,
+                                       tag->mIsFlashPlugin,
+                                       tag->mSupportsAsyncInit,
+                                       tag->mSupportsAsyncRender,
+                                       tag->FileName(),
+                                       tag->Version(),
+                                       tag->mLastModifiedTime,
+                                       tag->IsFromExtension(),
+                                       tag->mSandboxLevel));
+  }
+  nsTArray<dom::ContentParent*> parents;
+  dom::ContentParent::GetAll(parents);
+  for (auto p : parents)
+  {
+    Unused << p->SendSetPluginList(newPluginEpoch, pluginTags, fakePluginTags);
   }
   return NS_OK;
 }
 
 void
 nsPluginHost::UpdateInMemoryPluginInfo(nsPluginTag* aPluginTag)
 {
   NS_ITERATIVE_UNREF_LIST(RefPtr<nsPluginTag>, mCachedPlugins, mNext);
--- a/dom/plugins/base/nsPluginHost.h
+++ b/dom/plugins/base/nsPluginHost.h
@@ -247,16 +247,20 @@ public:
 
   void CreateWidget(nsPluginInstanceOwner* aOwner);
 
   nsresult EnumerateSiteData(const nsACString& domain,
                              const InfallibleTArray<nsCString>& sites,
                              InfallibleTArray<nsCString>& result,
                              bool firstMatchOnly);
 
+  nsresult SendPluginsToContent();
+  nsresult SetPluginsInContent(uint32_t aPluginEpoch,
+                               nsTArray<mozilla::plugins::PluginTag>& aPlugins,
+                               nsTArray<mozilla::plugins::FakePluginTag>& aFakePlugins);
 private:
   friend class nsPluginUnloadRunnable;
 
   void DestroyRunningInstances(nsPluginTag* aPluginTag);
 
   // Writes updated plugins settings to disk and unloads the plugin
   // if it is now disabled. Should only be called by the plugin tag in question
   void UpdatePluginInfo(nsPluginTag* aPluginTag);
@@ -296,18 +300,16 @@ private:
   // be filled in with the MIME type the plugin is registered for.
   nsPluginTag* FindNativePluginForExtension(const nsACString & aExtension,
                                             /* out */ nsACString & aMimeType,
                                             bool aCheckEnabled);
 
   nsresult
   FindStoppedPluginForURL(nsIURI* aURL, nsIPluginInstanceOwner *aOwner);
 
-  nsresult FindPluginsInContent(bool aCreatePluginList, bool * aPluginsChanged);
-
   nsresult
   FindPlugins(bool aCreatePluginList, bool * aPluginsChanged);
 
   // FIXME revisit, no ns prefix
   // Registers or unregisters the given mime type with the category manager
   enum nsRegisterType { ePluginRegister,
                         ePluginUnregister,
                         // Checks if this type should still be registered first
@@ -363,16 +365,18 @@ private:
 
   // To be used by the content process to get/set the last observed epoch value
   // from the chrome process.
   uint32_t ChromeEpochForContent();
   void SetChromeEpochForContent(uint32_t aEpoch);
 
   void UpdateInMemoryPluginInfo(nsPluginTag* aPluginTag);
 
+  nsresult ActuallyReloadPlugins();
+
   RefPtr<nsPluginTag> mPlugins;
   RefPtr<nsPluginTag> mCachedPlugins;
   RefPtr<nsInvalidPluginTag> mInvalidPlugins;
 
   nsTArray< RefPtr<nsFakePluginTag> > mFakePlugins;
 
   bool mPluginsLoaded;
 
--- a/dom/vr/moz.build
+++ b/dom/vr/moz.build
@@ -1,16 +1,16 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 with Files("**"):
-    BUG_COMPONENT = ("Core", "DOM")
+    BUG_COMPONENT = ("Core", "WebVR")
 
 EXPORTS.mozilla.dom += [
     'VRDisplay.h',
     'VRDisplayEvent.h',
     'VREventObserver.h',
     'VRServiceTest.h'
     ]
 
@@ -23,9 +23,10 @@ UNIFIED_SOURCES = [
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base'
 ]
 
-MOCHITEST_MANIFESTS += ['test/mochitest.ini']
\ No newline at end of file
+MOCHITEST_MANIFESTS += ['test/mochitest/mochitest.ini']
+REFTEST_MANIFESTS += ['test/reftest/reftest.list']
\ No newline at end of file
rename from dom/vr/test/VRSimulationDriver.js
rename to dom/vr/test/mochitest/VRSimulationDriver.js
rename from dom/vr/test/WebVRHelpers.js
rename to dom/vr/test/mochitest/WebVRHelpers.js
rename from dom/vr/test/mochitest.ini
rename to dom/vr/test/mochitest/mochitest.ini
rename from dom/vr/test/requestPresent.js
rename to dom/vr/test/mochitest/requestPresent.js
rename from dom/vr/test/runVRTest.js
rename to dom/vr/test/mochitest/runVRTest.js
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/mochitest/test_vrDisplay_canvas2d.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>VRDisplay Canvas2D</title>
+    <meta name="timeout" content="long"/>
+    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="runVRTest.js"></script>
+  </head>
+  <body>
+    <script>
+      "use strict";
+      var vrDisplay;
+
+      function requestPresentTest() {
+        async_test(function (test) {
+          vrDisplay.requestAnimationFrame(callback);
+
+          function callback() {
+            vrDisplay.resetPose();
+            vrDisplay.getLayers();
+            vrDisplay.submitFrame();
+            vrDisplay.getEyeParameters("right");
+            test.done();
+          }
+        }, "Finish WebVR Canvas2D requestPresentTest.");
+      }
+
+      function startTest() {
+        promise_test((test) => {
+          var canvas = document.createElement('canvas');
+          (document.body || document.documentElement).appendChild(canvas);
+          var context = canvas.getContext('2d');
+          var img = document.createElement('img');
+          img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACw=";
+
+          return navigator.getVRDisplays().then((displays) => {
+            assert_equals(displays.length, 1, "displays.length must be one after attach.");
+            vrDisplay = displays[0];
+            var frameData = new VRFrameData();
+            return vrDisplay.requestPresent([{source: canvas}]).then(() => {
+              requestPresentTest();
+            });
+          });
+        }, "Finish running WebVR Canvas2D test.");
+      }
+
+      runVRTest(startTest);
+    </script>
+  </body>
+</html>
\ No newline at end of file
rename from dom/vr/test/test_vrDisplay_exitPresent.html
rename to dom/vr/test/mochitest/test_vrDisplay_exitPresent.html
rename from dom/vr/test/test_vrDisplay_getFrameData.html
rename to dom/vr/test/mochitest/test_vrDisplay_getFrameData.html
rename from dom/vr/test/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
rename to dom/vr/test/mochitest/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
rename from dom/vr/test/test_vrDisplay_requestPresent.html
rename to dom/vr/test/mochitest/test_vrDisplay_requestPresent.html
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/reftest/VRSimulationDriver.js
@@ -0,0 +1,56 @@
+
+var VRServiceTest;
+var vrMockDisplay;
+
+var VRSimulationDriver = (function() {
+"use strict";
+
+var AttachWebVRDisplay = function() {
+  var promise = VRServiceTest.attachVRDisplay("VRDisplayTest");
+  promise.then(function (display) {
+    vrMockDisplay = display;
+  });
+
+  return promise;
+};
+
+var SetVRDisplayPose = function(position,
+                                linearVelocity, linearAcceleration,
+                                orientation, angularVelocity,
+                                angularAcceleration) {
+  vrMockDisplay.setPose(position, linearVelocity, linearAcceleration,
+                        orientation, angularVelocity, angularAcceleration);
+};
+
+var SetEyeResolution = function(width, height) {
+  vrMockDisplay.setEyeResolution(width, height);
+}
+
+var SetEyeParameter = function(eye, offsetX, offsetY, offsetZ,
+                               upDegree, rightDegree, downDegree, leftDegree) {
+  vrMockDisplay.setEyeParameter(eye, offsetX, offsetY, offsetZ, upDegree, rightDegree,
+                                downDegree, leftDegree);
+}
+
+var SetMountState = function(isMounted) {
+  vrMockDisplay.setMountState(isMounted);
+}
+
+var UpdateVRDisplay = function() {
+  vrMockDisplay.update();
+}
+
+var API = {
+  AttachWebVRDisplay: AttachWebVRDisplay,
+  SetVRDisplayPose: SetVRDisplayPose,
+  SetEyeResolution: SetEyeResolution,
+  SetEyeParameter: SetEyeParameter,
+  SetMountState: SetMountState,
+  UpdateVRDisplay: UpdateVRDisplay,
+
+  none: false
+};
+
+return API;
+
+}());
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/reftest/draw_rect.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<meta charset='UTF-8'>
+<!-- Draw rect in WebGL and submit it to the VR device as a base64 image.
+If this fails, something is seriously wrong. -->
+<html class="reftest-wait">
+<head>
+  <script type='text/javascript' src='webgl-util.js'></script>
+  <script type='text/javascript' src="VRSimulationDriver.js"></script>
+  <script id="vs" type="x-shader/x-vertex">
+    attribute vec2 aVertCoord;
+
+    void main(void) {
+      gl_Position = vec4(aVertCoord, 0.0, 1.0);
+    }
+  </script>
+  <script id="fs" type="x-shader/x-fragment">
+    precision mediump float;
+
+    void main(void) {
+      gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+    }
+  </script>
+  <script type='text/javascript'>
+    'use strict';
+
+    var submitResult = null;
+    var vrDisplay = null;
+    var webglCanvas = null;
+    var gl = null;
+    var prog = null;
+    var img = null;
+
+    function setStatus(text) {
+      var elem = document.getElementById('status');
+      elem.innerHTML = text;
+    }
+
+    function initVRMock() {
+      VRServiceTest = navigator.requestVRServiceTest();
+      if (!VRServiceTest) {
+        setStatus('VRServiceTest get failed.');
+        return;
+      }
+
+      VRSimulationDriver.AttachWebVRDisplay().then(() => {
+        // Looking for VR displays
+        if (navigator.getVRDisplays) {
+          submitResult = new VRSubmitFrameResult();
+          navigator.getVRDisplays().then(function (displays) {
+            if (displays.length > 0) {
+              vrDisplay = displays[0];
+              vrDisplay.requestPresent([{ source: webglCanvas }]);
+              vrDisplay.requestAnimationFrame(onAnimationFrame);
+            }
+          });
+        }
+      });
+    }
+
+    function onAnimationFrame() {
+      if (!vrDisplay.isPresenting) {
+        return;
+      }
+
+      vrDisplay.requestAnimationFrame(onAnimationFrame);
+      gl.clearColor(0.0, 1.0, 0.0, 1.0);
+      gl.clear(gl.COLOR_BUFFER_BIT);
+
+      // Presenting render a stereo view.
+      gl.viewport(0, 0, webglCanvas.width * 0.5, webglCanvas.height);
+      gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
+
+      gl.viewport(webglCanvas.width * 0.5, 0, webglCanvas.width * 0.5, webglCanvas.height);
+      gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
+
+      // Indicate VRDisplay we're done rendering.
+      vrDisplay.submitFrame();
+      if (vrDisplay.getSubmitFrameResult(submitResult)) {
+        if (!img) {
+          img = document.createElement("img");
+          img.onload = function(){
+            webglCanvas.style.display = 'none';
+            vrDisplay.exitPresent();
+            setTimeout(testComplete, 0);
+          };
+          img.src = submitResult.base64Image;
+          document.body.appendChild(img);
+        } else {
+          img.src = submitResult.base64Image;
+        }
+      }
+    }
+
+    function runTest() {
+      webglCanvas = document.getElementById('canvas');
+      gl = WebGLUtil.getWebGL('canvas');
+      if (!gl) {
+        setStatus('WebGL context creation failed.');
+        return;
+      }
+      gl.disable(gl.DEPTH_TEST);
+      prog = WebGLUtil.createProgramByIds(gl, 'vs', 'fs');
+      if (!prog) {
+        setStatus('Program linking failed.');
+        return;
+      }
+      prog.aVertCoord = gl.getAttribLocation(prog, "aVertCoord");
+
+      var vertCoordArr = new Float32Array([
+        -0.5, -0.5,
+        0.5, -0.5,
+        -0.5, 0.5,
+        0.5, 0.5,
+      ]);
+      var vertCoordBuff = gl.createBuffer();
+      gl.bindBuffer(gl.ARRAY_BUFFER, vertCoordBuff);
+      gl.bufferData(gl.ARRAY_BUFFER, vertCoordArr, gl.STATIC_DRAW);
+      gl.useProgram(prog);
+      gl.enableVertexAttribArray(prog.aVertCoord);
+      gl.vertexAttribPointer(prog.aVertCoord, 2, gl.FLOAT, false, 0, 0);
+
+      initVRMock();
+    }
+
+    function testComplete() {
+      document.documentElement.removeAttribute("class");
+    }
+  </script>
+</head>
+
+<body onload='runTest();'>
+  <canvas id='canvas' width='256' height='256'></canvas>
+  <div id='status'></div>
+</body>
+
+</html>
\ No newline at end of file
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0f4d24a0d19ea26224adb3d90dab146f5a4c7a95
GIT binary patch
literal 1747
zc%17D@N?(olHy`uVBq!ia0y~yU}OMc4mKbaQ?w$Dfq`w7r;B4q#hkYnH}WzV@EqRo
z=YL5x8#{MPnextR&$N$>o-%d{orl>~3V$@H@X1d&@{oCwMU8_{JHN-H55q&!oxfuH
zU8~x9+2!mn*k4?G`TMnnt%JS8cE9`a$6qr3V%$~w>z|b${{{XFYcGGlURc#o*N``N
z-~PVK%wL#GUVr&pI!A7S{DSD^@7F*6!tj@2)TmLTMvWRZie^R)e2GaH$wWJisj`nh
THge7eR#pt2u6{1-oD!M<+goFD
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/reftest/reftest.list
@@ -0,0 +1,7 @@
+# WebVR Reftests
+default-preferences pref(dom.vr.puppet.enabled,true) pref(dom.vr.test.enabled,true) pref(dom.vr.require-gesture,false) pref(dom.vr.puppet.submitframe,1)
+
+# VR SubmitFrame is only implemented for D3D11 now.
+# We need to continue to investigate why these reftests can be run well in local,
+# but will be suspended until terminating on reftest debug build.
+skip-if(!winWidget||!layersGPUAccelerated||isDebugBuild) == draw_rect.html wrapper.html?draw_rect.png
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/reftest/webgl-util.js
@@ -0,0 +1,170 @@
+WebGLUtil = (function() {
+  // ---------------------------------------------------------------------------
+  // Error handling (for obvious failures, such as invalid element ids)
+
+  function defaultErrorFunc(str) {
+    console.log('Error: ' + str);
+  }
+
+  var gErrorFunc = defaultErrorFunc;
+  function setErrorFunc(func) {
+    gErrorFunc = func;
+  }
+
+  function error(str) {
+    gErrorFunc(str);
+  }
+
+  // ---------------------------------------------------------------------------
+  // Warning handling (for failures that may be intentional)
+
+  function defaultWarningFunc(str) {
+    console.log('Warning: ' + str);
+  }
+
+  var gWarningFunc = defaultWarningFunc;
+  function setWarningFunc(func) {
+    gWarningFunc = func;
+  }
+
+  function warning(str) {
+    gWarningFunc(str);
+  }
+
+  // ---------------------------------------------------------------------------
+  // WebGL helpers
+
+  function getWebGL(canvasId, requireConformant, attributes) {
+    // `requireConformant` will default to falsey if it is not supplied.
+
+    var canvas = document.getElementById(canvasId);
+
+    var gl = null;
+    try {
+      gl = canvas.getContext('webgl', attributes);
+    } catch(e) {}
+
+    if (!gl && !requireConformant) {
+      try {
+        gl = canvas.getContext('experimental-webgl', attributes);
+      } catch(e) {}
+    }
+
+    if (!gl) {
+      error('WebGL context could not be retrieved from \'' + canvasId + '\'.');
+      return null;
+    }
+
+    return gl;
+  }
+
+  function withWebGL2(canvasId, callback, onFinished) {
+    var run = function() {
+      var canvas = document.getElementById(canvasId);
+
+      var gl = null;
+      try {
+        gl = canvas.getContext('webgl2');
+      } catch(e) {}
+
+      if (!gl) {
+        todo(false, 'WebGL2 is not supported');
+        onFinished();
+        return;
+      }
+
+      function errorFunc(str) {
+        ok(false, 'Error: ' + str);
+      }
+      setErrorFunc(errorFunc);
+      setWarningFunc(errorFunc);
+
+      callback(gl);
+      onFinished();
+    };
+
+    try {
+      var prefArrArr = [
+        ['webgl.force-enabled', true],
+        ['webgl.enable-webgl2', true],
+      ];
+      var prefEnv = {'set': prefArrArr};
+      SpecialPowers.pushPrefEnv(prefEnv, run);
+    } catch (e) {
+      warning('No SpecialPowers, but trying WebGL2 anyway...');
+      run();
+    }
+  }
+
+  function getContentFromElem(elem) {
+    var str = "";
+    var k = elem.firstChild;
+    while (k) {
+      if (k.nodeType == 3)
+        str += k.textContent;
+
+      k = k.nextSibling;
+    }
+
+    return str;
+  }
+
+  // Returns a valid shader, or null on errors.
+  function createShaderById(gl, id) {
+    var elem = document.getElementById(id);
+    if (!elem) {
+      error('Failed to create shader from non-existent id \'' + id + '\'.');
+      return null;
+    }
+
+    var src = getContentFromElem(elem);
+
+    var shader;
+    if (elem.type == "x-shader/x-fragment") {
+      shader = gl.createShader(gl.FRAGMENT_SHADER);
+    } else if (elem.type == "x-shader/x-vertex") {
+      shader = gl.createShader(gl.VERTEX_SHADER);
+    } else {
+      error('Bad MIME type for shader \'' + id + '\': ' + elem.type + '.');
+      return null;
+    }
+
+    gl.shaderSource(shader, src);
+    gl.compileShader(shader);
+
+    return shader;
+  }
+
+  function createProgramByIds(gl, vsId, fsId) {
+    var vs = createShaderById(gl, vsId);
+    var fs = createShaderById(gl, fsId);
+    if (!vs || !fs)
+      return null;
+
+    var prog = gl.createProgram();
+    gl.attachShader(prog, vs);
+    gl.attachShader(prog, fs);
+    gl.linkProgram(prog);
+
+    if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) {
+      var str = "Shader program linking failed:";
+      str += "\nShader program info log:\n" + gl.getProgramInfoLog(prog);
+      str += "\n\nVert shader log:\n" + gl.getShaderInfoLog(vs);
+      str += "\n\nFrag shader log:\n" + gl.getShaderInfoLog(fs);
+      warning(str);
+      return null;
+    }
+
+    return prog;
+  }
+
+  return {
+    setErrorFunc: setErrorFunc,
+    setWarningFunc: setWarningFunc,
+
+    getWebGL: getWebGL,
+    withWebGL2: withWebGL2,
+    createShaderById: createShaderById,
+    createProgramByIds: createProgramByIds,
+  };
+})();
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/reftest/wrapper.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+  #image1 { background-color: rgb(10, 100, 250); }
+</style>
+<script>
+  // The image is loaded async after the page loads
+  // wait for it to finish loading
+  function onImageLoad() {
+    document.documentElement.removeAttribute("class");
+  };
+</script>
+</head>
+<body>
+<img id="image1">
+<script>
+  // Use as "wrapper.html?image.png"
+  var imgURL = document.location.search.substr(1);
+  document.images[0].onload = onImageLoad;
+  document.images[0].onerror = onImageLoad;
+  document.images[0].src = imgURL;
+</script>
+</body>
+</html>
+
deleted file mode 100644
--- a/dom/vr/test/test_vrDisplay_canvas2d.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>VRDisplay Canvas2D</title>
-    <meta name="timeout" content="long"/>
-    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
-    <script src="runVRTest.js"></script>
-  </head>
-  <body>
-    <script>
-      var vrDisplay;
-
-      function requestPresentTest() {
-        async_test(function (test) {
-          vrDisplay.requestAnimationFrame(callback);
-
-          function callback() {
-            vrDisplay.resetPose();
-            vrDisplay.getLayers();
-            vrDisplay.submitFrame();
-            vrDisplay.getEyeParameters("right");
-            test.done();
-          }
-        }, "Finish WebVR Canvas2D requestPresentTest.");
-      }
-
-      function startTest() {
-        promise_test((test) => {
-          var canvas = document.createElement('canvas');
-          (document.body || document.documentElement).appendChild(canvas);
-          var context = canvas.getContext('2d');
-          var img = document.createElement('img');
-          img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACw=";
-
-          return navigator.getVRDisplays().then((displays) => {
-            assert_equals(displays.length, 1, "displays.length must be one after attach.");
-            vrDisplay = displays[0];
-            var frameData = new VRFrameData();
-            return vrDisplay.requestPresent([{source: canvas}]).then(() => {
-              requestPresentTest();
-            });
-          });
-        }, "Finish running WebVR Canvas2D test.");
-      }
-
-      runVRTest(startTest);
-    </script>
-  </body>
-</html>
\ No newline at end of file
--- a/editor/libeditor/CreateElementTransaction.cpp
+++ b/editor/libeditor/CreateElementTransaction.cpp
@@ -94,17 +94,17 @@ CreateElementTransaction::DoTransaction(
   if (!mEditorBase->GetShouldTxnSetSelection()) {
     // Do nothing - DOM range gravity will adjust selection
     return NS_OK;
   }
 
   RefPtr<Selection> selection = mEditorBase->GetSelection();
   NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
 
-  rv = selection->CollapseNative(mParent, mParent->IndexOf(mNewNode) + 1);
+  rv = selection->Collapse(mParent, mParent->IndexOf(mNewNode) + 1);
   NS_ASSERTION(!rv.Failed(),
                "selection could not be collapsed after insert");
   return NS_OK;
 }
 
 NS_IMETHODIMP
 CreateElementTransaction::UndoTransaction()
 {
--- a/editor/libeditor/EditorBase.cpp
+++ b/editor/libeditor/EditorBase.cpp
@@ -1065,32 +1065,32 @@ EditorBase::BeginningOfDocument()
   // get the root element
   dom::Element* rootElement = GetRoot();
   NS_ENSURE_TRUE(rootElement, NS_ERROR_NULL_POINTER);
 
   // find first editable thingy
   nsCOMPtr<nsINode> firstNode = GetFirstEditableNode(rootElement);
   if (!firstNode) {
     // just the root node, set selection to inside the root
-    return selection->CollapseNative(rootElement, 0);
+    return selection->Collapse(rootElement, 0);
   }
 
   if (firstNode->NodeType() == nsIDOMNode::TEXT_NODE) {
     // If firstNode is text, set selection to beginning of the text node.
-    return selection->CollapseNative(firstNode, 0);
+    return selection->Collapse(firstNode, 0);
   }
 
   // Otherwise, it's a leaf node and we set the selection just in front of it.
   nsCOMPtr<nsIContent> parent = firstNode->GetParent();
   if (!parent) {
     return NS_ERROR_NULL_POINTER;
   }
 
   int32_t offsetInParent = parent->IndexOf(firstNode);
-  return selection->CollapseNative(parent, offsetInParent);
+  return selection->Collapse(parent, offsetInParent);
 }
 
 NS_IMETHODIMP
 EditorBase::EndOfDocument()
 {
   NS_ENSURE_TRUE(mDocWeak, NS_ERROR_NOT_INITIALIZED);
 
   // get selection
@@ -1103,17 +1103,17 @@ EditorBase::EndOfDocument()
   nsINode* child = node->GetLastChild();
 
   while (child && IsContainer(child->AsDOMNode())) {
     node = child;
     child = node->GetLastChild();
   }
 
   uint32_t length = node->Length();
-  return selection->CollapseNative(node, int32_t(length));
+  return selection->Collapse(node, int32_t(length));
 }
 
 NS_IMETHODIMP
 EditorBase::GetDocumentModified(bool* outDocModified)
 {
   NS_ENSURE_TRUE(outDocModified, NS_ERROR_NULL_POINTER);
 
   int32_t  modCount = 0;
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -3375,22 +3375,22 @@ SetSelectionAroundHeadChildren(Selection
   // Set selection around <head> node
   nsCOMPtr<nsIDocument> doc = do_QueryReferent(aDocWeak);
   NS_ENSURE_TRUE(doc, NS_ERROR_NOT_INITIALIZED);
 
   dom::Element* headNode = doc->GetHeadElement();
   NS_ENSURE_STATE(headNode);
 
   // Collapse selection to before first child of the head,
-  nsresult rv = aSelection->CollapseNative(headNode, 0);
+  nsresult rv = aSelection->Collapse(headNode, 0);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Then extend it to just after.
   uint32_t childCount = headNode->GetChildCount();
-  return aSelection->ExtendNative(headNode, childCount + 1);
+  return aSelection->Extend(headNode, childCount + 1);
 }
 
 NS_IMETHODIMP
 HTMLEditor::GetHeadContentsAsHTML(nsAString& aOutputString)
 {
   RefPtr<Selection> selection = GetSelection();
   NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER);
 
@@ -3712,17 +3712,17 @@ HTMLEditor::SetCaretInTableCell(nsIDOMEl
   while (node->HasChildren()) {
     node = node->GetFirstChild();
   }
 
   // Set selection at beginning of the found node
   RefPtr<Selection> selection = GetSelection();
   NS_ENSURE_TRUE(selection, false);
 
-  return NS_SUCCEEDED(selection->CollapseNative(node, 0));
+  return NS_SUCCEEDED(selection->Collapse(node, 0));
 }
 
 /**
  * GetEnclosingTable() finds ancestor who is a table, if any.
  */
 Element*
 HTMLEditor::GetEnclosingTable(nsINode* aNode)
 {
@@ -3815,17 +3815,17 @@ HTMLEditor::CollapseAdjacentTextNodes(ns
 }
 
 nsresult
 HTMLEditor::SetSelectionAtDocumentStart(Selection* aSelection)
 {
   dom::Element* rootElement = GetRoot();
   NS_ENSURE_TRUE(rootElement, NS_ERROR_NULL_POINTER);
 
-  return aSelection->CollapseNative(rootElement, 0);
+  return aSelection->Collapse(rootElement, 0);
 }
 
 /**
  * Remove aNode, reparenting any children into the parent of aNode.  In
  * addition, insert any br's needed to preserve identity of removed block.
  */
 nsresult
 HTMLEditor::RemoveBlockContainer(nsIContent& aNode)
--- a/editor/libeditor/TextEditRules.cpp
+++ b/editor/libeditor/TextEditRules.cpp
@@ -1354,17 +1354,17 @@ TextEditRules::CreateBogusNodeIfNeeded(S
   newContent->SetAttr(kNameSpaceID_None, kMOZEditorBogusNodeAttrAtom,
                       kMOZEditorBogusNodeValue, false);
 
   // Put the node in the document.
   nsresult rv = mTextEditor->InsertNode(*mBogusNode, *body, 0);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Set selection.
-  aSelection->CollapseNative(body, 0);
+  aSelection->Collapse(body, 0);
   return NS_OK;
 }
 
 
 nsresult
 TextEditRules::TruncateInsertionIfNeeded(Selection* aSelection,
                                          const nsAString* aInString,
                                          nsAString* aOutString,
--- a/gfx/gl/SharedSurface.cpp
+++ b/gfx/gl/SharedSurface.cpp
@@ -12,16 +12,17 @@
 #include "GLScreenBuffer.h"
 #include "nsThreadUtils.h"
 #include "ScopedGLHelpers.h"
 #include "SharedSurfaceGL.h"
 #include "mozilla/layers/CompositorTypes.h"
 #include "mozilla/layers/TextureClientSharedSurface.h"
 #include "mozilla/layers/TextureForwarder.h"
 #include "mozilla/Unused.h"
+#include "VRManagerChild.h"
 
 namespace mozilla {
 namespace gl {
 
 /*static*/ void
 SharedSurface::ProdCopy(SharedSurface* src, SharedSurface* dest,
                         SurfaceFactory* factory)
 {
@@ -312,25 +313,32 @@ SurfaceFactory::~SurfaceFactory()
     MOZ_RELEASE_ASSERT(mRecycleTotalPool.empty(),"GFX: Surface recycle pool not empty.");
 
     // If we mRecycleFreePool.clear() before StopRecycling(), we may try to recycle it,
     // fail, call StopRecycling(), then return here and call it again.
     mRecycleFreePool.clear();
 }
 
 already_AddRefed<layers::SharedSurfaceTextureClient>
-SurfaceFactory::NewTexClient(const gfx::IntSize& size)
+SurfaceFactory::NewTexClient(const gfx::IntSize& size, const layers::LayersIPCChannel* aLayersChannel)
 {
     while (!mRecycleFreePool.empty()) {
         RefPtr<layers::SharedSurfaceTextureClient> cur = mRecycleFreePool.front();
         mRecycleFreePool.pop();
 
-        if (cur->Surf()->mSize == size) {
-            cur->Surf()->WaitForBufferOwnership();
-            return cur.forget();
+        if (cur->Surf()->mSize == size){
+            // In the general case, textureClients transit textures through
+            // CompositorForwarder. But, the textureClient created by VRManagerChild
+            // has a different LayerIPCChannel, PVRManager. Therefore, textureClients
+            // need to be separated into different cases.
+            if ((aLayersChannel && aLayersChannel == cur->GetAllocator()) ||
+                (cur->GetAllocator() != gfx::VRManagerChild::Get())) {
+                cur->Surf()->WaitForBufferOwnership();
+                return cur.forget();
+            }
         }
 
         StopRecycling(cur);
     }
 
     UniquePtr<SharedSurface> surf = Move(CreateShared(size));
     if (!surf)
         return nullptr;
--- a/gfx/gl/SharedSurface.h
+++ b/gfx/gl/SharedSurface.h
@@ -301,17 +301,18 @@ protected:
 
     void StartRecycling(layers::SharedSurfaceTextureClient* tc);
     void SetRecycleCallback(layers::SharedSurfaceTextureClient* tc);
     void StopRecycling(layers::SharedSurfaceTextureClient* tc);
 
 public:
     UniquePtr<SharedSurface> NewSharedSurface(const gfx::IntSize& size);
     //already_AddRefed<ShSurfHandle> NewShSurfHandle(const gfx::IntSize& size);
-    already_AddRefed<layers::SharedSurfaceTextureClient> NewTexClient(const gfx::IntSize& size);
+    already_AddRefed<layers::SharedSurfaceTextureClient> NewTexClient(const gfx::IntSize& size,
+                                                                      const layers::LayersIPCChannel* aLayersChannel = nullptr);
 
     static void RecycleCallback(layers::TextureClient* tc, void* /*closure*/);
 
     // Auto-deletes surfs of the wrong type.
     bool Recycle(layers::SharedSurfaceTextureClient* texClient);
 };
 
 class ScopedReadbackFB
--- a/gfx/webrender/src/renderer.rs
+++ b/gfx/webrender/src/renderer.rs
@@ -1053,17 +1053,17 @@ impl Renderer {
         let default_font_render_mode = match (options.enable_aa, options.enable_subpixel_aa) {
             (true, true) => FontRenderMode::Subpixel,
             (true, false) => FontRenderMode::Alpha,
             (false, _) => FontRenderMode::Mono,
         };
 
         let config = FrameBuilderConfig {
             enable_scrollbars: options.enable_scrollbars,
-            default_font_render_mode,
+            default_font_render_mode: default_font_render_mode,
             debug: options.debug,
             cache_expiry_frames: options.cache_expiry_frames,
         };
 
         let device_pixel_ratio = options.device_pixel_ratio;
         let render_target_debug = options.render_target_debug;
         let payload_tx_for_backend = payload_tx.clone();
         let recorder = options.recorder;
--- a/ipc/ipdl/sync-messages.ini
+++ b/ipc/ipdl/sync-messages.ini
@@ -860,18 +860,16 @@ description =
 [PContent::BridgeToChildProcess]
 description =
 [PContent::LoadPlugin]
 description =
 [PContent::ConnectPluginBridge]
 description =
 [PContent::GetBlocklistState]
 description =
-[PContent::FindPlugins]
-description =
 [PContent::NSSU2FTokenIsCompatibleVersion]
 description =
 [PContent::NSSU2FTokenIsRegistered]
 description =
 [PContent::NSSU2FTokenRegister]
 description =
 [PContent::NSSU2FTokenSign]
 description =
--- a/js/src/builtin/embedjs.py
+++ b/js/src/builtin/embedjs.py
@@ -73,19 +73,19 @@ namespace %(namespace)s {
 
     uint32_t GetRawScriptsSize() {
         return %(raw_total_length)i;
     }
 } // selfhosted
 } // js
 """
 
-def embed(cxx, preprocessorOption, msgs, sources, c_out, js_out, namespace, env):
+def embed(cxx, preprocessorOption, cppflags, msgs, sources, c_out, js_out, namespace, env):
   combinedSources = '\n'.join([msgs] + ['#include "%(s)s"' % { 's': source } for source in sources])
-  args = ['-D%(k)s=%(v)s' % { 'k': k, 'v': env[k] } for k in env]
+  args = cppflags + ['-D%(k)s=%(v)s' % { 'k': k, 'v': env[k] } for k in env]
   preprocessed = preprocess(cxx, preprocessorOption, combinedSources, args)
   processed = '\n'.join([line for line in preprocessed.splitlines() if \
                          (line.strip() and not line.startswith('#'))])
 
   js_out.write(processed)
   import zlib
   compressed = zlib.compress(processed)
   data = ToCArray(compressed)
@@ -138,22 +138,24 @@ def get_config_defines(buildconfig):
     env[define] = 1
   return env
 
 def process_inputs(namespace, c_out, msg_file, inputs):
   deps = [path for path in inputs if path.endswith(".h") or path.endswith(".h.js")]
   sources = [path for path in inputs if path.endswith(".js") and not path.endswith(".h.js")]
   assert len(deps) + len(sources) == len(inputs)
   cxx = shlex.split(buildconfig.substs['CXX'])
-  cxx_option = buildconfig.substs['PREPROCESS_OPTION']
+  pp_option = buildconfig.substs['PREPROCESS_OPTION']
+  cppflags = shlex.split(buildconfig.substs['OS_CPPFLAGS'])
+  cppflags += shlex.split(buildconfig.substs['WARNINGS_AS_ERRORS'])
   env = get_config_defines(buildconfig)
   js_path = re.sub(r"\.out\.h$", "", c_out.name) + ".js"
   msgs = messages(msg_file)
   with open(js_path, 'w') as js_out:
-    embed(cxx, cxx_option, msgs, sources, c_out, js_out, namespace, env)
+    embed(cxx, pp_option, cppflags, msgs, sources, c_out, js_out, namespace, env)
 
 def generate_selfhosted(c_out, msg_file, *inputs):
   # Called from moz.build to embed selfhosted JS.
   process_inputs('selfhosted', c_out, msg_file, inputs)
 
 def generate_shellmoduleloader(c_out, msg_file, *inputs):
   # Called from moz.build to embed shell module loader JS.
   process_inputs('moduleloader', c_out, msg_file, inputs)
--- a/js/src/jit-test/jit_test.py
+++ b/js/src/jit-test/jit_test.py
@@ -230,19 +230,34 @@ 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)
+    # Exclude tests when code coverage is enabled.
+    # This part is equivalent to:
+    # skip-if = coverage
     if os.getenv('GCOV_PREFIX') is not None:
-        options.exclude += ['asm.js/testSIMD.js']
+        # GCOV errors.
+        options.exclude += ['asm.js/testSIMD.js']               # Bug 1347245
+
+        # JSVM errors.
+        options.exclude += ['basic/functionnames.js']           # Bug 1369783
+        options.exclude += ['debug/Debugger-findScripts-23.js']
+        options.exclude += ['debug/bug1160182.js']
+        options.exclude += ['xdr/incremental-encoder.js']
+        options.exclude += ['xdr/bug1186973.js']                # Bug 1369785
+        options.exclude += ['basic/werror.js']
+
+        # Prevent code coverage test that expects coverage
+        # to be off when it starts.
+        options.exclude += ['debug/Script-getOffsetsCoverage-02.js']
 
     if options.exclude_from:
         with open(options.exclude_from) as fh:
             for line in fh:
                 line = line.strip()
                 if not line.startswith("#") and len(line):
                     options.exclude.append(line)
 
--- a/js/src/old-configure.in
+++ b/js/src/old-configure.in
@@ -140,18 +140,17 @@ case "$target" in
     if test "$GCC" != "yes"; then
         # Check to see if we are really running in a msvc environemnt
         _WIN32_MSVC=1
 
         # Make sure compilers are valid
         CFLAGS="$CFLAGS -TC -nologo"
         CXXFLAGS="$CXXFLAGS -TP -nologo"
         if test -z "$CLANG_CL"; then
-            CFLAGS="$CFLAGS -utf-8"
-            CXXFLAGS="$CXXFLAGS -utf-8"
+            CPPFLAGS="$CPPFLAGS -utf-8"
         fi
         # MSVC warning C4800 warns when a value is implicitly cast to bool,
         # because this also forces narrowing to a single byte, which can be a
         # perf hit.  But this matters so little in practice (and often we want
         # that behavior) that it's better to turn it off.
         # _CRT_SECURE_NO_WARNINGS disables warnings about using MSVC-specific
         # secure CRT functions.
         # MSVC warning C4595 warns non-member operator new or delete functions
--- a/layout/painting/FrameLayerBuilder.cpp
+++ b/layout/painting/FrameLayerBuilder.cpp
@@ -3930,16 +3930,23 @@ ContainerState::SetupMaskLayerForCSSMask
   maskLayer->SetContainer(imgContainer);
 
   if (isPaintFinished) {
     *oldUserData = Move(newUserData);
   }
   aLayer->SetMaskLayer(maskLayer);
 }
 
+static bool
+IsScrollThumbLayer(nsDisplayItem* aItem)
+{
+  return aItem->GetType() == nsDisplayItem::TYPE_OWN_LAYER &&
+         static_cast<nsDisplayOwnLayer*>(aItem)->IsScrollThumbLayer();
+}
+
 /*
  * Iterate through the non-clip items in aList and its descendants.
  * For each item we compute the effective clip rect. Each item is assigned
  * to a layer. We invalidate the areas in PaintedLayers where an item
  * has moved from one PaintedLayer to another. Also,
  * aState->mInvalidPaintedContent is invalidated in every PaintedLayer.
  * We set the clip rect for items that generated their own layer, and
  * create a mask layer to do any rounded rect clipping.
@@ -4199,18 +4206,19 @@ ContainerState::ProcessDisplayItems(nsDi
         // the whole clip chain is always just one fused clip.
         // Bug 1336516 aims to change that and to remove this workaround.
         AnimatedGeometryRoot* clipAGR = item->AnimatedGeometryRootForScrollMetadata();
         nsIntRect scrolledClipRect =
           ScaleToNearestPixels(itemClip.GetClipRect()) + mParameters.mOffset;
         mPaintedLayerDataTree.AddingOwnLayer(clipAGR,
                                              &scrolledClipRect,
                                              uniformColorPtr);
-      } else if (*animatedGeometryRoot == item->Frame() &&
-                 *animatedGeometryRoot != mBuilder->RootReferenceFrame()) {
+      } else if ((*animatedGeometryRoot == item->Frame() &&
+                  *animatedGeometryRoot != mBuilder->RootReferenceFrame()) ||
+                 (IsScrollThumbLayer(item) && mManager->IsWidgetLayerManager())) {
         // This is the case for scrollbar thumbs, for example. In that case the
         // clip we care about is the overflow:hidden clip on the scrollbar.
         mPaintedLayerDataTree.AddingOwnLayer(animatedGeometryRoot->mParentAGR,
                                              clipPtr,
                                              uniformColorPtr);
       } else if (prerenderedTransform) {
         mPaintedLayerDataTree.AddingOwnLayer(animatedGeometryRoot,
                                              clipPtr,
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -6105,16 +6105,24 @@ nsDisplayOwnLayer::nsDisplayOwnLayer(nsD
                                      bool aForceActive)
     : nsDisplayWrapList(aBuilder, aFrame, aList, aActiveScrolledRoot)
     , mFlags(aFlags)
     , mScrollTarget(aScrollTarget)
     , mThumbData(aThumbData)
     , mForceActive(aForceActive)
 {
   MOZ_COUNT_CTOR(nsDisplayOwnLayer);
+
+  // For scroll thumb layers, override the AGR to be the thumb's AGR rather
+  // than the AGR for mFrame (which is the slider frame).
+  if (IsScrollThumbLayer()) {
+    if (nsIFrame* thumbFrame = nsBox::GetChildXULBox(mFrame)) {
+      mAnimatedGeometryRoot = aBuilder->FindAnimatedGeometryRootFor(thumbFrame);
+    }
+  }
 }
 
 #ifdef NS_BUILD_REFCNT_LOGGING
 nsDisplayOwnLayer::~nsDisplayOwnLayer() {
   MOZ_COUNT_DTOR(nsDisplayOwnLayer);
 }
 #endif
 
@@ -6125,16 +6133,30 @@ nsDisplayOwnLayer::GetLayerState(nsDispl
 {
   if (mForceActive) {
     return mozilla::LAYER_ACTIVE_FORCE;
   }
 
   return RequiredLayerStateForChildren(aBuilder, aManager, aParameters, mList, mAnimatedGeometryRoot);
 }
 
+bool
+nsDisplayOwnLayer::IsScrollThumbLayer() const
+{
+  return (mFlags & VERTICAL_SCROLLBAR) || (mFlags & HORIZONTAL_SCROLLBAR);
+}
+
+bool
+nsDisplayOwnLayer::ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder)
+{
+  // Render scroll thumb layers even if they are invisible, because async
+  // scrolling might bring them into view.
+  return IsScrollThumbLayer();
+}
+
 // nsDisplayOpacity uses layers for rendering
 already_AddRefed<Layer>
 nsDisplayOwnLayer::BuildLayer(nsDisplayListBuilder* aBuilder,
                               LayerManager* aManager,
                               const ContainerLayerParameters& aContainerParameters)
 {
   RefPtr<ContainerLayer> layer = aManager->GetLayerBuilder()->
     BuildContainerLayerFor(aBuilder, aManager, mFrame, this, &mList,
--- a/layout/painting/nsDisplayList.h
+++ b/layout/painting/nsDisplayList.h
@@ -1423,16 +1423,17 @@ private:
   nsIFrame* FindAnimatedGeometryRootFrameFor(nsIFrame* aFrame);
 
   friend class nsDisplayCanvasBackgroundImage;
   friend class nsDisplayBackgroundImage;
   friend class nsDisplayFixedPosition;
   AnimatedGeometryRoot* FindAnimatedGeometryRootFor(nsDisplayItem* aItem);
 
   friend class nsDisplayItem;
+  friend class nsDisplayOwnLayer;
   AnimatedGeometryRoot* FindAnimatedGeometryRootFor(nsIFrame* aFrame);
 
   AnimatedGeometryRoot* WrapAGRForFrame(nsIFrame* aAnimatedGeometryRoot,
                                         AnimatedGeometryRoot* aParent = nullptr);
 
   nsDataHashtable<nsPtrHashKey<nsIFrame>, AnimatedGeometryRoot*> mFrameToAnimatedGeometryRootMap;
 
   /**
@@ -4074,32 +4075,33 @@ public:
                     const ActiveScrolledRoot* aActiveScrolledRoot,
                     uint32_t aFlags = 0,
                     ViewID aScrollTarget = mozilla::layers::FrameMetrics::NULL_SCROLL_ID,
                     const ScrollThumbData& aThumbData = ScrollThumbData{},
                     bool aForceActive = true);
 #ifdef NS_BUILD_REFCNT_LOGGING
   virtual ~nsDisplayOwnLayer();
 #endif
-
+  virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) override;
   virtual already_AddRefed<Layer> BuildLayer(nsDisplayListBuilder* aBuilder,
                                              LayerManager* aManager,
                                              const ContainerLayerParameters& aContainerParameters) override;
   virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder,
                                    LayerManager* aManager,
                                    const ContainerLayerParameters& aParameters) override;
   virtual bool TryMerge(nsDisplayItem* aItem) override
   {
     // Don't allow merging, each sublist must have its own layer
     return false;
   }
   virtual bool ShouldFlattenAway(nsDisplayListBuilder* aBuilder) override {
     return false;
   }
   uint32_t GetFlags() { return mFlags; }
+  bool IsScrollThumbLayer() const;
   NS_DISPLAY_DECL_NAME("OwnLayer", TYPE_OWN_LAYER)
 protected:
   uint32_t mFlags;
   ViewID mScrollTarget;
   // If this nsDisplayOwnLayer represents a scroll thumb layer, mThumbData
   // stores information about the scroll thumb. Otherwise, mThumbData will be
   // default-constructed (in particular with mDirection == ScrollDirection::NONE)
   // and can be ignored.
--- a/layout/reftests/native-theme/reftest.list
+++ b/layout/reftests/native-theme/reftest.list
@@ -34,17 +34,17 @@ skip-if(!winWidget) != 403458-winmenu-lt
 
 == 470711-1.xul 470711-1-ref.xul
 
 == 482955-1.xul 482955-1-ref.xul
 
 == 492155-1.html about:blank
 == 492155-2.html about:blank
 == 492155-3.html about:blank
-fails-if(Android&&!asyncPan) != 492155-4.html about:blank
+fails-if(Android&&!asyncPan) fuzzy-if(styloVsGecko,0-1,0-1) != 492155-4.html about:blank
 
 != box-shadow-input.html box-shadow-input-ref.html
 != box-shadow-button.html box-shadow-button-ref.html
 != box-shadow-listbox.html box-shadow-listbox-ref.html
 != box-shadow-combobox.html box-shadow-combobox-ref.html
 
 # RTL mirroring tests
 == checkbox-not-mirrored-when-rtl.html checkbox-not-mirrored-when-rtl-ref.html
--- a/layout/reftests/reftest.list
+++ b/layout/reftests/reftest.list
@@ -371,16 +371,19 @@ include transform-3d/reftest.list
 # unicode/ (verify that we don't do expend effort doing unicode-aware case checks)
 include unicode/reftest.list
 
 # usercss
 include usercss/reftest.list
 
 include view-source/reftest.list
 
+# vr
+include ../../dom/vr/test/reftest/reftest.list
+
 # web-animations
 include web-animations/reftest.list
 
 # webcomponents/
 include webcomponents/reftest.list
 
 # widget/
 include ../../widget/reftests/reftest.list
--- a/layout/reftests/w3c-css/submitted/text-decor-3/reftest.list
+++ b/layout/reftests/w3c-css/submitted/text-decor-3/reftest.list
@@ -123,9 +123,9 @@ fuzzy-if(gtkWidget,3,4) == text-emphasis
 == text-emphasis-line-height-003b.html text-emphasis-line-height-003-ref.html
 == text-emphasis-line-height-003c.html text-emphasis-line-height-003-ref.html
 == text-emphasis-line-height-003d.html text-emphasis-line-height-003-ref.html
 == text-emphasis-line-height-004a.html text-emphasis-line-height-004-ref.html
 == text-emphasis-line-height-004b.html text-emphasis-line-height-004-ref.html
 == text-emphasis-line-height-004c.html text-emphasis-line-height-004-ref.html
 == text-emphasis-line-height-004d.html text-emphasis-line-height-004-ref.html
 # END tests from support/generate-text-emphasis-line-height-tests.py
-fuzzy-if(gtkWidget,3,4) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),43,1) fails-if(styloVsGecko||stylo) == text-emphasis-line-height-001z.html text-emphasis-line-height-001-ref.html
+fuzzy-if(gtkWidget,3,4) fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu),43,1) == text-emphasis-line-height-001z.html text-emphasis-line-height-001-ref.html
--- a/layout/tools/reftest/reftest-preferences.js
+++ b/layout/tools/reftest/reftest-preferences.js
@@ -17,16 +17,18 @@ user_pref("hangmonitor.timeout", 0);
 // Ensure autoplay is enabled for all platforms.
 user_pref("media.autoplay.enabled", true);
 // Disable updates
 user_pref("app.update.enabled", false);
 user_pref("app.update.staging.enabled", false);
 user_pref("app.update.url.android", "");
 // Ensure we can load the reftest extension
 user_pref("extensions.allow-non-mpc-extensions", true);
+user_pref("extensions.legacy.enabled", true);
+user_pref("security.turn_off_all_security_so_that_viruses_can_take_over_this_computer", true);
 // Disable addon updates and prefetching so we don't leak them
 user_pref("extensions.update.enabled", false);
 user_pref("extensions.systemAddon.update.url", "http://localhost/dummy-system-addons.xml");
 user_pref("extensions.getAddons.cache.enabled", false);
 // Disable blocklist updates so we don't have them reported as leaks
 user_pref("extensions.blocklist.enabled", false);
 // Make url-classifier updates so rare that they won't affect tests
 user_pref("urlclassifier.updateinterval", 172800);
--- a/layout/tools/reftest/runreftest.py
+++ b/layout/tools/reftest/runreftest.py
@@ -320,20 +320,16 @@ class RefTest(object):
 
         addons = []
         if not self.use_marionette:
             addons.append(options.reftestExtensionPath)
 
         if options.specialPowersExtensionPath is not None:
             if not self.use_marionette:
                 addons.append(options.specialPowersExtensionPath)
-            # SpecialPowers requires insecure automation-only features that we
-            # put behind a pref.
-            prefs['security.turn_off_all_security_so_that_viruses'
-                  '_can_take_over_this_computer'] = True
 
         for pref in prefs:
             prefs[pref] = mozprofile.Preferences.cast(prefs[pref])
 
         # Install distributed extensions, if application has any.
         distExtDir = os.path.join(options.app[:options.app.rfind(os.sep)],
                                   "distribution", "extensions")
         if os.path.isdir(distExtDir):
--- a/layout/xul/nsSliderFrame.cpp
+++ b/layout/xul/nsSliderFrame.cpp
@@ -416,34 +416,51 @@ nsSliderFrame::BuildDisplayListForChildr
       gfxSize scale = nsLayoutUtils::GetTransformToAncestorScale(thumb);
       if (scale.width != 0 && scale.height != 0) {
         refSize.width /= scale.width;
         refSize.height /= scale.height;
       }
       nsRect dirty = aDirtyRect.Intersect(thumbRect);
       dirty = nsLayoutUtils::ComputePartialPrerenderArea(aDirtyRect, overflow, refSize);
 
+      // Clip the thumb layer to the slider track. This is necessary to ensure
+      // FrameLayerBuilder is able to merge content before and after the
+      // scrollframe into the same layer (otherwise it thinks the thumb could
+      // potentially move anywhere within the existing clip).
+      DisplayListClipState::AutoSaveRestore thumbClipState(aBuilder);
+      aBuilder->GetCurrentReferenceFrame();
+      thumbClipState.ClipContainingBlockDescendants(
+          GetRectRelativeToSelf() + aBuilder->ToReferenceFrame(this));
+
+      // Have the thumb's container layer capture the current clip, so
+      // it doesn't apply to the thumb's contents. This allows the contents
+      // to be fully rendered even if they're partially or fully offscreen,
+      // so async scrolling can still bring it into view.
+      DisplayListClipState::AutoSaveRestore thumbContentsClipState(aBuilder);
+      thumbContentsClipState.Clear();
+
       nsDisplayListBuilder::AutoContainerASRTracker contASRTracker(aBuilder);
       nsDisplayListCollection tempLists;
       nsBoxFrame::BuildDisplayListForChildren(aBuilder, dirty, tempLists);
 
       // This is a bit of a hack. Collect up all descendant display items
       // and merge them into a single Content() list.
       nsDisplayList masterList;
       masterList.AppendToTop(tempLists.BorderBackground());
       masterList.AppendToTop(tempLists.BlockBorderBackgrounds());
       masterList.AppendToTop(tempLists.Floats());
       masterList.AppendToTop(tempLists.Content());
       masterList.AppendToTop(tempLists.PositionedDescendants());
       masterList.AppendToTop(tempLists.Outlines());
 
+      // Restore the saved clip so it applies to the thumb container layer.
+      thumbContentsClipState.Restore();
+
       // Wrap the list to make it its own layer.
       const ActiveScrolledRoot* ownLayerASR = contASRTracker.GetContainerASR();
-      DisplayListClipState::AutoSaveRestore ownLayerClipState(aBuilder);
-      ownLayerClipState.ClearUpToASR(ownLayerASR);
       aLists.Content()->AppendNewToTop(new (aBuilder)
         nsDisplayOwnLayer(aBuilder, this, &masterList, ownLayerASR,
                           flags, scrollTargetId,
                           ScrollThumbData{scrollDirection,
                                           GetThumbRatio(),
                                           thumbStart,
                                           thumbLength,
                                           isAsyncDraggable,
--- a/media/webrtc/signaling/gtest/jsep_track_unittest.cpp
+++ b/media/webrtc/signaling/gtest/jsep_track_unittest.cpp
@@ -72,17 +72,18 @@ class JsepTrackTest : public ::testing::
             );
         results.push_back(ulpfec);
       }
 
       results.push_back(
           new JsepApplicationCodecDescription(
             "webrtc-datachannel",
             256,
-            5999
+            5999,
+            499
             ));
 
       // if we're doing something with red, it needs
       // to update the redundant encodings list
       if (red) {
         red->UpdateRedundantEncodings(results);
       }
 
@@ -1103,44 +1104,55 @@ TEST_F(JsepTrackTest, DataChannelDraft05
   OfferAnswer();
   CheckOffEncodingCount(1);
   CheckAnsEncodingCount(1);
 
   ASSERT_NE(std::string::npos,
             mOffer->ToString().find("a=sctpmap:5999 webrtc-datachannel 256"));
   ASSERT_NE(std::string::npos,
             mAnswer->ToString().find("a=sctpmap:5999 webrtc-datachannel 256"));
+  // Note: this is testing for a workaround, see bug 1335262 for details
+  ASSERT_NE(std::string::npos,
+            mOffer->ToString().find("a=max-message-size:499"));
+  ASSERT_NE(std::string::npos,
+            mAnswer->ToString().find("a=max-message-size:499"));
   ASSERT_EQ(std::string::npos, mOffer->ToString().find("a=sctp-port"));
   ASSERT_EQ(std::string::npos, mAnswer->ToString().find("a=sctp-port"));
 }
 
 TEST_F(JsepTrackTest, DataChannelDraft05AnswerWithDifferentPort)
 {
   mOffCodecs.values = MakeCodecs(false, false, false);
   mAnsCodecs.values = MakeCodecs(false, false, false);
 
   mOffCodecs.values.pop_back();
   mOffCodecs.values.push_back(
           new JsepApplicationCodecDescription(
             "webrtc-datachannel",
             256,
-            4555
+            4555,
+            10544
             ));
 
   InitTracks(SdpMediaSection::kApplication);
   InitSdp(SdpMediaSection::kApplication);
   OfferAnswer();
 
   CheckOffEncodingCount(1);
   CheckAnsEncodingCount(1);
 
   ASSERT_NE(std::string::npos,
             mOffer->ToString().find("a=sctpmap:4555 webrtc-datachannel 256"));
   ASSERT_NE(std::string::npos,
             mAnswer->ToString().find("a=sctpmap:5999 webrtc-datachannel 256"));
+  // Note: this is testing for a workaround, see bug 1335262 for details
+  ASSERT_NE(std::string::npos,
+            mOffer->ToString().find("a=max-message-size:10544"));
+  ASSERT_NE(std::string::npos,
+            mAnswer->ToString().find("a=max-message-size:499"));
   ASSERT_EQ(std::string::npos, mOffer->ToString().find("a=sctp-port"));
   ASSERT_EQ(std::string::npos, mAnswer->ToString().find("a=sctp-port"));
 }
 
 TEST_F(JsepTrackTest, DataChannelDraft21)
 {
   mOffCodecs.values = MakeCodecs(false, false, false);
   mAnsCodecs.values = MakeCodecs(false, false, false);
@@ -1164,16 +1176,18 @@ TEST_F(JsepTrackTest, DataChannelDraft21
       "0.0.0.0");
 
   OfferAnswer();
   CheckOffEncodingCount(1);
   CheckAnsEncodingCount(1);
 
   ASSERT_NE(std::string::npos, mOffer->ToString().find("a=sctp-port:5999"));
   ASSERT_NE(std::string::npos, mAnswer->ToString().find("a=sctp-port:5999"));
+  ASSERT_NE(std::string::npos, mOffer->ToString().find("a=max-message-size:499"));
+  ASSERT_NE(std::string::npos, mAnswer->ToString().find("a=max-message-size:499"));
   ASSERT_EQ(std::string::npos, mOffer->ToString().find("a=sctpmap"));
   ASSERT_EQ(std::string::npos, mAnswer->ToString().find("a=sctpmap"));
 }
 
 static JsepTrack::JsConstraints
 MakeConstraints(const std::string& rid, uint32_t maxBitrate)
 {
   JsepTrack::JsConstraints constraints;
--- a/media/webrtc/signaling/src/jsep/JsepCodecDescription.h
+++ b/media/webrtc/signaling/src/jsep/JsepCodecDescription.h
@@ -4,16 +4,17 @@
 
 #ifndef _JSEPCODECDESCRIPTION_H_
 #define _JSEPCODECDESCRIPTION_H_
 
 #include <string>
 #include "signaling/src/sdp/SdpMediaSection.h"
 #include "signaling/src/sdp/SdpHelper.h"
 #include "nsCRT.h"
+#include "mozilla/net/DataChannelProtocol.h"
 
 namespace mozilla {
 
 #define JSEP_CODEC_CLONE(T)                                                    \
   virtual JsepCodecDescription* Clone() const override                         \
   {                                                                            \
     return new T(*this);                                                       \
   }
@@ -750,21 +751,24 @@ class JsepVideoCodecDescription : public
 };
 
 class JsepApplicationCodecDescription : public JsepCodecDescription {
   // This is the new draft-21 implementation
  public:
   JsepApplicationCodecDescription(const std::string& name,
                                   uint16_t channels,
                                   uint16_t localPort,
+                                  uint32_t localMaxMessageSize,
                                   bool enabled = true)
       : JsepCodecDescription(mozilla::SdpMediaSection::kApplication, "",
                              name, 0, channels, enabled),
         mLocalPort(localPort),
-        mRemotePort(0)
+        mLocalMaxMessageSize(localMaxMessageSize),
+        mRemotePort(0),
+        mRemoteMaxMessageSize(0)
   {
   }
 
   JSEP_CODEC_CLONE(JsepApplicationCodecDescription)
 
   // Override, uses sctpport or sctpmap instead of rtpmap
   virtual bool
   Matches(const std::string& fmt,
@@ -792,44 +796,55 @@ class JsepApplicationCodecDescription : 
     return false;
   }
 
   virtual void
   AddToMediaSection(SdpMediaSection& msection) const override
   {
     if (mEnabled && msection.GetMediaType() == mType) {
       if (msection.GetFormats().empty()) {
-        msection.AddDataChannel(mName, mLocalPort, mChannels);
+        msection.AddDataChannel(mName, mLocalPort, mChannels,
+                                mLocalMaxMessageSize);
       }
 
       AddParametersToMSection(msection);
     }
   }
 
   bool
   Negotiate(const std::string& pt, const SdpMediaSection& remoteMsection) override
   {
     JsepCodecDescription::Negotiate(pt, remoteMsection);
 
+    uint32_t message_size = remoteMsection.GetMaxMessageSize();
+    if (message_size) {
+      mRemoteMaxMessageSize = message_size;
+    }
+
     int sctp_port = remoteMsection.GetSctpPort();
     if (sctp_port) {
       mRemotePort = sctp_port;
+      if (!message_size) {
+        mRemoteMaxMessageSize = WEBRTC_DATACHANELL_MAX_MESSAGE_SIZE_DEFAULT;
+      }
       return true;
     }
 
     const SdpSctpmapAttributeList::Sctpmap* sctp_map(
         remoteMsection.GetSctpmap());
     if (sctp_map) {
       mRemotePort = std::stoi(sctp_map->pt);
       return true;
     }
 
     return false;
   }
 
 
   uint16_t mLocalPort;
+  uint32_t mLocalMaxMessageSize;
   uint16_t mRemotePort;
+  uint32_t mRemoteMaxMessageSize;
 };
 
 } // namespace mozilla
 
 #endif
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
@@ -2363,17 +2363,18 @@ JsepSessionImpl::SetupDefaultCodecs()
       "ulpfec", // codec name
       90000     // clock rate (match other video codecs)
       );
   mSupportedCodecs.values.push_back(ulpfec);
 
   mSupportedCodecs.values.push_back(new JsepApplicationCodecDescription(
       "webrtc-datachannel",
       WEBRTC_DATACHANNEL_STREAMS_DEFAULT,
-      5000
+      WEBRTC_DATACHANNEL_PORT_DEFAULT,
+      WEBRTC_DATACHANELL_MAX_MESSAGE_SIZE_DEFAULT
       ));
 
   // Update the redundant encodings for the RED codec with the supported
   // codecs.  Note: only uses the video codecs.
   red->UpdateRedundantEncodings(mSupportedCodecs.values);
 }
 
 void
--- a/media/webrtc/signaling/src/jsep/JsepTrack.cpp
+++ b/media/webrtc/signaling/src/jsep/JsepTrack.cpp
@@ -270,19 +270,29 @@ JsepTrack::CreateEncodings(
   GetRids(remote, sdp::kRecv, &rids); // Get rids we will send
   NegotiateRids(rids, &mJsEncodeConstraints);
   if (rids.empty()) {
     // Add dummy value with an empty id to make sure we get a single unicast
     // stream.
     rids.push_back(SdpRidAttributeList::Rid());
   }
 
-  // For each rid in the remote, make sure we have an encoding, and configure
+  size_t max_streams = 1;
+
+  if (mJsEncodeConstraints.size()) {
+    max_streams = std::min(rids.size(), mJsEncodeConstraints.size());
+  }
+  // Drop SSRCs if less RIDs were offered than we have encoding constraints
+  if (mSsrcs.size() > max_streams) {
+    mSsrcs.resize(max_streams);
+  }
+
+  // For each stream make sure we have an encoding, and configure
   // that encoding appropriately.
-  for (size_t i = 0; i < rids.size(); ++i) {
+  for (size_t i = 0; i < max_streams; ++i) {
     if (i == negotiatedDetails->mEncodings.values.size()) {
       negotiatedDetails->mEncodings.values.push_back(new JsepTrackEncoding);
     }
 
     JsepTrackEncoding* encoding = negotiatedDetails->mEncodings.values[i];
 
     for (const JsepCodecDescription* codec : negotiatedCodecs) {
       if (rids[i].HasFormat(codec->mDefaultPt)) {
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
@@ -1079,42 +1079,45 @@ PeerConnectionImpl::ConfigureJsepSession
   mJsepSession->SortCodecs(comparator);
   return NS_OK;
 }
 
 // Data channels won't work without a window, so in order for the C++ unit
 // tests to work (it doesn't have a window available) we ifdef the following
 // two implementations.
 NS_IMETHODIMP
-PeerConnectionImpl::EnsureDataConnection(uint16_t aNumstreams)
+PeerConnectionImpl::EnsureDataConnection(uint16_t aLocalPort,
+                                         uint16_t aNumstreams,
+                                         uint32_t aMaxMessageSize)
 {
   PC_AUTO_ENTER_API_CALL(false);
 
   if (mDataConnection) {
     CSFLogDebug(logTag,"%s DataConnection already connected",__FUNCTION__);
     // Ignore the request to connect when already connected.  This entire
     // implementation is temporary.  Ignore aNumstreams as it's merely advisory
     // and we increase the number of streams dynamically as needed.
     return NS_OK;
   }
   mDataConnection = new DataChannelConnection(this);
-  if (!mDataConnection->Init(5000, aNumstreams, true)) {
+  if (!mDataConnection->Init(aLocalPort, aNumstreams, true)) {
     CSFLogError(logTag,"%s DataConnection Init Failed",__FUNCTION__);
     return NS_ERROR_FAILURE;
   }
   CSFLogDebug(logTag,"%s DataChannelConnection %p attached to %s",
               __FUNCTION__, (void*) mDataConnection.get(), mHandle.c_str());
   return NS_OK;
 }
 
 nsresult
 PeerConnectionImpl::GetDatachannelParameters(
     uint32_t* channels,
     uint16_t* localport,
     uint16_t* remoteport,
+    uint32_t* remotemaxmessagesize,
     uint16_t* level) const {
 
   auto trackPairs = mJsepSession->GetNegotiatedTrackPairs();
   for (auto& trackPair : trackPairs) {
     bool sendDataChannel =
       trackPair.mSending &&
       trackPair.mSending->GetMediaType() == SdpMediaSection::kApplication;
     bool recvDataChannel =
@@ -1157,29 +1160,32 @@ PeerConnectionImpl::GetDatachannelParame
           *channels = codec->mChannels;
         } else {
           *channels = WEBRTC_DATACHANNEL_STREAMS_DEFAULT;
         }
         *localport =
           static_cast<const JsepApplicationCodecDescription*>(codec)->mLocalPort;
         *remoteport =
           static_cast<const JsepApplicationCodecDescription*>(codec)->mRemotePort;
+        *remotemaxmessagesize = static_cast<const JsepApplicationCodecDescription*>
+          (codec)->mRemoteMaxMessageSize;
         if (trackPair.HasBundleLevel()) {
           *level = static_cast<uint16_t>(trackPair.BundleLevel());
         } else {
           *level = static_cast<uint16_t>(trackPair.mLevel);
         }
         return NS_OK;
       }
     }
   }
 
   *channels = 0;
   *localport = 0;
   *remoteport = 0;
+  *remotemaxmessagesize = 0;
   *level = 0;
   return NS_ERROR_FAILURE;
 }
 
 /* static */
 void
 PeerConnectionImpl::DeferredAddTrackToJsepSession(
     const std::string& pcHandle,
@@ -1229,29 +1235,31 @@ nsresult
 PeerConnectionImpl::InitializeDataChannel()
 {
   PC_AUTO_ENTER_API_CALL(false);
   CSFLogDebug(logTag, "%s", __FUNCTION__);
 
   uint32_t channels = 0;
   uint16_t localport = 0;
   uint16_t remoteport = 0;
+  uint32_t remotemaxmessagesize = 0;
   uint16_t level = 0;
-  nsresult rv = GetDatachannelParameters(&channels, &localport, &remoteport, &level);
+  nsresult rv = GetDatachannelParameters(&channels, &localport, &remoteport,
+                                         &remotemaxmessagesize, &level);
 
   if (NS_FAILED(rv)) {
     CSFLogDebug(logTag, "%s: We did not negotiate datachannel", __FUNCTION__);
     return NS_OK;
   }
 
   if (channels > MAX_NUM_STREAMS) {
     channels = MAX_NUM_STREAMS;
   }
 
-  rv = EnsureDataConnection(channels);
+  rv = EnsureDataConnection(localport, channels, remotemaxmessagesize);
   if (NS_SUCCEEDED(rv)) {
     // use the specified TransportFlow
     RefPtr<TransportFlow> flow = mMedia->GetTransportFlow(level, false).get();
     CSFLogDebug(logTag, "Transportflow[%u] = %p",
                         static_cast<unsigned>(level), flow.get());
     if (flow) {
       if (mDataConnection->ConnectViaTransportFlow(flow,
                                                    localport,
@@ -1297,17 +1305,19 @@ PeerConnectionImpl::CreateDataChannel(co
 {
   PC_AUTO_ENTER_API_CALL(false);
   MOZ_ASSERT(aRetval);
 
   RefPtr<DataChannel> dataChannel;
   DataChannelConnection::Type theType =
     static_cast<DataChannelConnection::Type>(aType);
 
-  nsresult rv = EnsureDataConnection(WEBRTC_DATACHANNEL_STREAMS_DEFAULT);
+  nsresult rv = EnsureDataConnection(WEBRTC_DATACHANNEL_PORT_DEFAULT,
+                                     WEBRTC_DATACHANNEL_STREAMS_DEFAULT,
+                                     WEBRTC_DATACHANELL_MAX_MESSAGE_SIZE_DEFAULT);
   if (NS_FAILED(rv)) {
     return rv;
   }
   dataChannel = mDataConnection->Open(
     NS_ConvertUTF16toUTF8(aLabel), NS_ConvertUTF16toUTF8(aProtocol), theType,
     ordered,
     aType == DataChannelConnection::PARTIAL_RELIABLE_REXMIT ? aMaxNum :
     (aType == DataChannelConnection::PARTIAL_RELIABLE_TIMED ? aMaxTime : 0),
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.h
@@ -641,17 +641,18 @@ public:
 private:
   virtual ~PeerConnectionImpl();
   PeerConnectionImpl(const PeerConnectionImpl&rhs);
   PeerConnectionImpl& operator=(PeerConnectionImpl);
   nsresult CalculateFingerprint(const std::string& algorithm,
                                 std::vector<uint8_t>* fingerprint) const;
   nsresult ConfigureJsepSessionCodecs();
 
-  NS_IMETHODIMP EnsureDataConnection(uint16_t aNumstreams);
+  NS_IMETHODIMP EnsureDataConnection(uint16_t aLocalPort, uint16_t aNumstreams,
+                                     uint32_t aMaxMessageSize);
 
   nsresult CloseInt();
   nsresult CheckApiState(bool assert_ice_ready) const;
   void CheckThread() const {
     MOZ_ASSERT(CheckThreadInt(), "Wrong thread");
   }
   bool CheckThreadInt() const {
     bool on;
@@ -674,16 +675,17 @@ private:
   void SendLocalIceCandidateToContent(uint16_t level,
                                       const std::string& mid,
                                       const std::string& candidate);
 
   nsresult GetDatachannelParameters(
       uint32_t* channels,
       uint16_t* localport,
       uint16_t* remoteport,
+      uint32_t* maxmessagesize,
       uint16_t* level) const;
 
   static void DeferredAddTrackToJsepSession(const std::string& pcHandle,
                                             SdpMediaSection::MediaType type,
                                             const std::string& streamId,
                                             const std::string& trackId);
 
   nsresult AddTrackToJsepSession(SdpMediaSection::MediaType type,
--- a/media/webrtc/signaling/src/sdp/SdpAttributeList.h
+++ b/media/webrtc/signaling/src/sdp/SdpAttributeList.h
@@ -59,17 +59,18 @@ public:
   virtual const SdpImageattrAttributeList& GetImageattr() const = 0;
   virtual const SdpSimulcastAttribute& GetSimulcast() const = 0;
   virtual const SdpMsidAttributeList& GetMsid() const = 0;
   virtual const SdpMsidSemanticAttributeList& GetMsidSemantic() const = 0;
   virtual const SdpRidAttributeList& GetRid() const = 0;
   virtual const SdpRtcpFbAttributeList& GetRtcpFb() const = 0;
   virtual const SdpRtpmapAttributeList& GetRtpmap() const = 0;
   virtual const SdpSctpmapAttributeList& GetSctpmap() const = 0;
-  virtual unsigned int GetSctpPort() const = 0;
+  virtual uint32_t GetSctpPort() const = 0;
+  virtual uint32_t GetMaxMessageSize() const = 0;
   virtual const SdpSsrcAttributeList& GetSsrc() const = 0;
   virtual const SdpSsrcGroupAttributeList& GetSsrcGroup() const = 0;
 
   // These attributes are effectively simple types, so we'll make life
   // easy by just returning their value.
   virtual const std::string& GetIcePwd() const = 0;
   virtual const std::string& GetIceUfrag() const = 0;
   virtual const std::string& GetIdentity() const = 0;
--- a/media/webrtc/signaling/src/sdp/SdpHelper.cpp
+++ b/media/webrtc/signaling/src/sdp/SdpHelper.cpp
@@ -163,17 +163,17 @@ SdpHelper::DisableMsection(Sdp* sdp, Sdp
   switch (mediaType) {
     case SdpMediaSection::kAudio:
       msection->AddCodec("0", "PCMU", 8000, 1);
       break;
     case SdpMediaSection::kVideo:
       msection->AddCodec("120", "VP8", 90000, 1);
       break;
     case SdpMediaSection::kApplication:
-      msection->AddDataChannel("rejected", 0, 0);
+      msection->AddDataChannel("rejected", 0, 0, 0);
       break;
     default:
       // We need to have something here to fit the grammar, this seems safe
       // and 19 is a reserved payload type which should not be used by anyone.
       msection->AddCodec("19", "reserved", 8000, 1);
   }
 }
 
--- a/media/webrtc/signaling/src/sdp/SdpMediaSection.cpp
+++ b/media/webrtc/signaling/src/sdp/SdpMediaSection.cpp
@@ -94,26 +94,36 @@ SdpMediaSection::GetSctpmap() const
   const SdpSctpmapAttributeList& sctpmap = attrs.GetSctpmap();
   if (!sctpmap.mSctpmaps.size()) {
     return nullptr;
   }
 
   return &sctpmap.GetFirstEntry();
 }
 
-int
+uint32_t
 SdpMediaSection::GetSctpPort() const
 {
   auto& attrs = GetAttributeList();
   if (!attrs.HasAttribute(SdpAttribute::kSctpPortAttribute)) {
     return 0;
   }
 
-  uint32_t val = attrs.GetSctpPort();
-  return val;
+  return attrs.GetSctpPort();
+}
+
+uint32_t
+SdpMediaSection::GetMaxMessageSize() const
+{
+  auto& attrs = GetAttributeList();
+  if (!attrs.HasAttribute(SdpAttribute::kMaxMessageSizeAttribute)) {
+    return 0;
+  }
+
+  return attrs.GetMaxMessageSize();
 }
 
 bool
 SdpMediaSection::HasRtcpFb(const std::string& pt,
                            SdpRtcpFbAttributeList::Type type,
                            const std::string& subType) const
 {
   const SdpAttributeList& attrs(GetAttributeList());
--- a/media/webrtc/signaling/src/sdp/SdpMediaSection.h
+++ b/media/webrtc/signaling/src/sdp/SdpMediaSection.h
@@ -91,18 +91,18 @@ public:
   virtual SdpDirectionAttribute GetDirectionAttribute() const = 0;
 
   virtual void Serialize(std::ostream&) const = 0;
 
   virtual void AddCodec(const std::string& pt, const std::string& name,
                         uint32_t clockrate, uint16_t channels) = 0;
   virtual void ClearCodecs() = 0;
 
-  virtual void AddDataChannel(const std::string& name,
-                              uint16_t port, uint16_t streams) = 0;
+  virtual void AddDataChannel(const std::string& name, uint16_t port,
+                              uint16_t streams, uint32_t message_size) = 0;
 
   size_t
   GetLevel() const
   {
     return mLevel;
   }
 
   inline bool
@@ -152,17 +152,18 @@ public:
     GetAttributeList().SetAttribute(new SdpDirectionAttribute(direction));
   }
 
   const SdpFmtpAttributeList::Parameters* FindFmtp(const std::string& pt) const;
   void SetFmtp(const SdpFmtpAttributeList::Fmtp& fmtp);
   void RemoveFmtp(const std::string& pt);
   const SdpRtpmapAttributeList::Rtpmap* FindRtpmap(const std::string& pt) const;
   const SdpSctpmapAttributeList::Sctpmap* GetSctpmap() const;
-  int GetSctpPort() const;
+  uint32_t GetSctpPort() const;
+  uint32_t GetMaxMessageSize() const;
   bool HasRtcpFb(const std::string& pt,
                  SdpRtcpFbAttributeList::Type type,
                  const std::string& subType) const;
   SdpRtcpFbAttributeList GetRtcpFbs() const;
   void SetRtcpFbs(const SdpRtcpFbAttributeList& rtcpfbs);
   bool HasFormat(const std::string& format) const
   {
     return std::find(GetFormats().begin(), GetFormats().end(), format) !=
--- a/media/webrtc/signaling/src/sdp/SipccSdpAttributeList.cpp
+++ b/media/webrtc/signaling/src/sdp/SipccSdpAttributeList.cpp
@@ -1382,16 +1382,27 @@ SipccSdpAttributeList::GetSctpPort() con
   if (!HasAttribute(SdpAttribute::kSctpPortAttribute)) {
     MOZ_CRASH();
   }
 
   const SdpAttribute* attr = GetAttribute(SdpAttribute::kSctpPortAttribute);
   return static_cast<const SdpNumberAttribute*>(attr)->mValue;
 }
 
+uint32_t
+SipccSdpAttributeList::GetMaxMessageSize() const
+{
+  if (!HasAttribute(SdpAttribute::kMaxMessageSizeAttribute)) {
+    MOZ_CRASH();
+  }
+
+  const SdpAttribute* attr = GetAttribute(SdpAttribute::kMaxMessageSizeAttribute);
+  return static_cast<const SdpNumberAttribute*>(attr)->mValue;
+}
+
 const SdpSetupAttribute&
 SipccSdpAttributeList::GetSetup() const
 {
   if (!HasAttribute(SdpAttribute::kSetupAttribute)) {
     MOZ_CRASH();
   }
   const SdpAttribute* attr = GetAttribute(SdpAttribute::kSetupAttribute);
   return *static_cast<const SdpSetupAttribute*>(attr);
--- a/media/webrtc/signaling/src/sdp/SipccSdpAttributeList.h
+++ b/media/webrtc/signaling/src/sdp/SipccSdpAttributeList.h
@@ -60,17 +60,18 @@ public:
   const SdpSimulcastAttribute& GetSimulcast() const override;
   virtual const SdpMsidAttributeList& GetMsid() const override;
   virtual const SdpMsidSemanticAttributeList& GetMsidSemantic()
     const override;
   const SdpRidAttributeList& GetRid() const override;
   virtual const SdpRtcpFbAttributeList& GetRtcpFb() const override;
   virtual const SdpRtpmapAttributeList& GetRtpmap() const override;
   virtual const SdpSctpmapAttributeList& GetSctpmap() const override;
-  virtual unsigned int GetSctpPort() const override;
+  virtual uint32_t GetSctpPort() const override;
+  virtual uint32_t GetMaxMessageSize() const override;
 
   // These attributes are effectively simple types, so we'll make life
   // easy by just returning their value.
   virtual const std::string& GetIcePwd() const override;
   virtual const std::string& GetIceUfrag() const override;
   virtual const std::string& GetIdentity() const override;
   virtual const std::string& GetLabel() const override;
   virtual unsigned int GetMaxptime() const override;
--- a/media/webrtc/signaling/src/sdp/SipccSdpMediaSection.cpp
+++ b/media/webrtc/signaling/src/sdp/SipccSdpMediaSection.cpp
@@ -393,34 +393,43 @@ SipccSdpMediaSection::ClearCodecs()
   mAttributeList.RemoveAttribute(SdpAttribute::kRtpmapAttribute);
   mAttributeList.RemoveAttribute(SdpAttribute::kFmtpAttribute);
   mAttributeList.RemoveAttribute(SdpAttribute::kSctpmapAttribute);
   mAttributeList.RemoveAttribute(SdpAttribute::kRtcpFbAttribute);
 }
 
 void
 SipccSdpMediaSection::AddDataChannel(const std::string& name, uint16_t port,
-                                     uint16_t streams)
+                                     uint16_t streams, uint32_t message_size)
 {
   // Only one allowed, for now. This may change as the specs (and deployments)
   // evolve.
   mFormats.clear();
   if ((mProtocol == kUdpDtlsSctp) ||
       (mProtocol == kTcpDtlsSctp)) {
     // new data channel format according to draft 21
     mFormats.push_back(name);
     mAttributeList.SetAttribute(new SdpNumberAttribute(
           SdpAttribute::kSctpPortAttribute, port));
+    if (message_size) {
+      mAttributeList.SetAttribute(new SdpNumberAttribute(
+            SdpAttribute::kMaxMessageSizeAttribute, message_size));
+    }
   } else {
     // old data channels format according to draft 05
     std::string port_str = std::to_string(port);
     mFormats.push_back(port_str);
     SdpSctpmapAttributeList* sctpmap = new SdpSctpmapAttributeList();
     sctpmap->PushEntry(port_str, name, streams);
     mAttributeList.SetAttribute(sctpmap);
+    if (message_size) {
+      // This is a workaround to allow detecting Firefox's w/o EOR support
+      mAttributeList.SetAttribute(new SdpNumberAttribute(
+            SdpAttribute::kMaxMessageSizeAttribute, message_size));
+    }
   }
 }
 
 void
 SipccSdpMediaSection::Serialize(std::ostream& os) const
 {
   os << "m=" << mMediaType << " " << mPort;
   if (mPortCount) {
--- a/media/webrtc/signaling/src/sdp/SipccSdpMediaSection.h
+++ b/media/webrtc/signaling/src/sdp/SipccSdpMediaSection.h
@@ -56,18 +56,18 @@ public:
   virtual const SdpAttributeList& GetAttributeList() const override;
   virtual SdpAttributeList& GetAttributeList() override;
   virtual SdpDirectionAttribute GetDirectionAttribute() const override;
 
   virtual void AddCodec(const std::string& pt, const std::string& name,
                         uint32_t clockrate, uint16_t channels) override;
   virtual void ClearCodecs() override;
 
-  virtual void AddDataChannel(const std::string& name,
-                              uint16_t port, uint16_t streams) override;
+  virtual void AddDataChannel(const std::string& name, uint16_t port,
+                              uint16_t streams, uint32_t message_size) override;
 
   virtual void Serialize(std::ostream&) const override;
 
 private:
   SipccSdpMediaSection(size_t level, const SipccSdpAttributeList* sessionLevel)
       : SdpMediaSection(level), mAttributeList(sessionLevel)
   {
   }
--- a/netwerk/sctp/datachannel/DataChannelProtocol.h
+++ b/netwerk/sctp/datachannel/DataChannelProtocol.h
@@ -11,18 +11,19 @@
 #define SCTP_PACKED __attribute__((packed))
 #elif defined(_MSC_VER)
 #pragma pack (push, 1)
 #define SCTP_PACKED
 #else
 #error "Unsupported compiler"
 #endif
 
-// Duplicated in fsm.def
-#define WEBRTC_DATACHANNEL_STREAMS_DEFAULT 256
+#define WEBRTC_DATACHANNEL_STREAMS_DEFAULT          256
+#define WEBRTC_DATACHANNEL_PORT_DEFAULT             5000
+#define WEBRTC_DATACHANELL_MAX_MESSAGE_SIZE_DEFAULT 65536
 
 #define DATA_CHANNEL_PPID_CONTROL        50
 #define DATA_CHANNEL_PPID_BINARY         52
 #define DATA_CHANNEL_PPID_BINARY_LAST    53
 #define DATA_CHANNEL_PPID_DOMSTRING      54
 #define DATA_CHANNEL_PPID_DOMSTRING_LAST 51
 
 #define DATA_CHANNEL_MAX_BINARY_FRAGMENT 0x4000
--- a/old-configure.in
+++ b/old-configure.in
@@ -937,17 +937,17 @@ case "$target" in
 
         WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
         WIN32_GUI_EXE_LDFLAGS=-mwindows
 
         # GCC/binutils can't link to a function if we try to include dllexport function
         # in the same library as dllimport caller. To work around it, we build NSPR
         # and NSS with -mnop-fun-dllimport flag. The drawback of this solution is that
         # function thunks need to be generated for cross-DLL calls.
-        MOZ_FOLD_LIBS_FLAGS=-mnop-fun-dllimport
+        MOZ_FOLD_LIBS_FLAGS="-mnop-fun-dllimport"
     else
         TARGET_COMPILER_ABI=msvc
         if test "$AS_BIN"; then
             AS="$(basename "$AS_BIN")"
         fi
         AR='lib'
         AR_FLAGS='-NOLOGO -OUT:$@'
         AR_EXTRACT=
@@ -968,18 +968,17 @@ case "$target" in
         WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
         DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
         _USE_CPP_INCLUDE_FLAG=1
         _DEFINES_CFLAGS='-FI $(topobjdir)/mozilla-config.h -DMOZILLA_CLIENT'
         _DEFINES_CXXFLAGS='-FI $(topobjdir)/mozilla-config.h -DMOZILLA_CLIENT'
         CFLAGS="$CFLAGS -W3 -Gy -Zc:inline"
         CXXFLAGS="$CXXFLAGS -W3 -Gy -Zc:inline"
         if test -z "$CLANG_CL"; then
-            CFLAGS="$CFLAGS -utf-8"
-            CXXFLAGS="$CXXFLAGS -utf-8"
+            CPPFLAGS="$CPPFLAGS -utf-8"
         fi
         if test "$CPU_ARCH" = "x86"; then
             dnl VS2012+ defaults to -arch:SSE2. We want to target nothing
             dnl more recent, so set that explicitly here unless another
             dnl target arch has already been set.
             changequote(,)
             if test -z `echo $CFLAGS | grep -i [-/]arch:`; then
               CFLAGS="$CFLAGS -arch:SSE2"
@@ -5346,17 +5345,17 @@ AC_SUBST(MOZ_CODE_COVERAGE)
 AC_SUBST(LIBJPEG_TURBO_USE_YASM)
 AC_SUBST_LIST(LIBJPEG_TURBO_ASFLAGS)
 AC_SUBST(MOZ_LIBAV_FFT)
 AC_SUBST_LIST(LIBAV_FFT_ASFLAGS)
 AC_SUBST(MOZ_DEVTOOLS)
 
 AC_SUBST(MOZ_PACKAGE_JSSHELL)
 AC_SUBST(MOZ_FOLD_LIBS)
-AC_SUBST(MOZ_FOLD_LIBS_FLAGS)
+AC_SUBST_LIST(MOZ_FOLD_LIBS_FLAGS)
 AC_SUBST(SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE)
 
 AC_SUBST(DMG_TOOL)
 
 dnl Host JavaScript runtime, if any, to use during cross compiles.
 AC_SUBST(JS_BINARY)
 
 AC_SUBST(NSS_EXTRA_SYMBOLS_FILE)
--- a/python/mozbuild/mozbuild/mach_commands.py
+++ b/python/mozbuild/mozbuild/mach_commands.py
@@ -139,17 +139,17 @@ class BuildProgressFooter(object):
         # terminal is a blessings.Terminal.
         self._t = terminal
         self._fh = sys.stdout
         self.tiers = monitor.tiers.tier_status.viewitems()
 
     def clear(self):
         """Removes the footer from the current terminal."""
         self._fh.write(self._t.move_x(0))
-        self._fh.write(self._t.clear_eos())
+        self._fh.write(self._t.clear_eol())
 
     def draw(self):
         """Draws this footer in the terminal."""
 
         if not self.tiers:
             return
 
         # The drawn terminal looks something like:
@@ -1743,30 +1743,27 @@ class PackageFrontend(MachCommandBase):
                         for task in tasks
                     }
 
             toolchains = tasks('toolchain')
 
             for b in from_build:
                 user_value = b
 
-                if '/' not in b:
-                    b = '{}/opt'.format(b)
-
                 if not b.startswith('toolchain-'):
                     b = 'toolchain-{}'.format(b)
 
                 task = toolchains.get(b)
                 if not task:
                     self.log(logging.ERROR, 'artifact', {'build': user_value},
                              'Could not find a toolchain build named `{build}`')
                     return 1
 
-                optimized, task_id = optimize_task(task, {})
-                if not optimized:
+                task_id = optimize_task(task, {})
+                if task_id in (True, False):
                     self.log(logging.ERROR, 'artifact', {'build': user_value},
                              'Could not find artifacts for a toolchain build '
                              'named `{build}`')
                     return 1
 
                 for artifact in list_artifacts(task_id):
                     name = artifact['name']
                     if not name.startswith('public/'):
--- a/python/mozbuild/mozbuild/vendor_rust.py
+++ b/python/mozbuild/mozbuild/vendor_rust.py
@@ -81,20 +81,20 @@ Please commit or stash these changes bef
         test_paths = ['/usr/include', '/usr/local/include']
         if any([os.path.exists(os.path.join(path, 'openssl/ssl.h')) for path in test_paths]):
             # Assume we can use one of these system headers.
             return None
 
         if os.path.exists('/usr/local/opt/openssl/include/openssl/ssl.h'):
             # Found a likely homebrew install.
             self.log(logging.INFO, 'openssl', {},
-                    'Using OpenSSL in /usr/local/opt/openssl')
+                     'Using OpenSSL in /usr/local/opt/openssl')
             return {
-                 'OPENSSL_INCLUDE_DIR': '/usr/local/opt/openssl/include',
-                 'DEP_OPENSSL_INCLUDE': '/usr/local/opt/openssl/include',
+                'OPENSSL_INCLUDE_DIR': '/usr/local/opt/openssl/include',
+                'OPENSSL_LIB_DIR': '/usr/local/opt/openssl/lib',
             }
 
         self.log(logging.ERROR, 'openssl', {}, "OpenSSL not found!")
         return None
 
     def _ensure_cargo(self):
         '''
         Ensures all the necessary cargo bits are installed.
--- a/security/generate_mapfile.py
+++ b/security/generate_mapfile.py
@@ -7,43 +7,49 @@
 # This script processes NSS .def files according to the rules defined in
 # a comment at the top of each one. The files are used to define the
 # exports from NSS shared libraries, with -DEFFILE on Windows, a linker
 # script on Linux, or with -exported_symbols_list on OS X.
 #
 # The NSS build system processes them using a series of sed replacements,
 # but the Mozilla build system is already running a Python script to generate
 # the file so it's simpler to just do the replacement in Python.
+#
+# One difference between the NSS build system and Mozilla's is that
+# Mozilla's supports building on Linux for Windows using MinGW. MinGW
+# expects all lines containing ;+ removed and all ;- tokens removed.
 
 import buildconfig
 
 
 def main(output, input):
     is_darwin = buildconfig.substs['OS_ARCH'] == 'Darwin'
+    is_mingw = "WINNT" == buildconfig.substs['OS_ARCH'] and buildconfig.substs['GCC_USE_GNU_LD']
 
     with open(input, 'rb') as f:
         for line in f:
             line = line.rstrip()
-            # Remove all lines containing ';-'
-            if ';-' in line:
+            # On everything except MinGW, remove all lines containing ';-'
+            if not is_mingw and ';-' in line:
                 continue
             # On OS X, remove all lines containing ';+'
             if is_darwin and ';+' in line:
                 continue
             # Remove the string ' DATA '.
             line = line.replace(' DATA ', '')
             # Remove the string ';+'
-            line = line.replace(';+', '')
+            if not is_mingw:
+                line = line.replace(';+', '')
             # Remove the string ';;'
             line = line.replace(';;', '')
             # If a ';' is present, remove everything after it,
             # and on OS X, remove it as well.
             i = line.find(';')
             if i != -1:
-                if is_darwin:
+                if is_darwin or is_mingw:
                     line = line[:i]
                 else:
                     line = line[:i+1]
             # On OS X, symbols get an underscore in front.
             if line and is_darwin:
                 output.write('_')
             output.write(line)
             output.write('\n')
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1156,9 +1156,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 = 480;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1504797564903000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1504884031179000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -23,17 +23,17 @@ 10tacle.io: could not connect to host
 123test.de: did not receive HSTS header
 126ium.moe: could not connect to host
 127011-networks.ch: could not connect to host
 12vpnchina.com: could not connect to host
 163pwd.com: could not connect to host
 16packets.com: could not connect to host
 188betwarriors.co.uk: could not connect to host
 188trafalgar.ca: did not receive HSTS header
-195gm.com: could not connect to host
+1981612088.rsc.cdn77.org: did not receive HSTS header
 1a-jva.de: could not connect to host
 1cover.com: could not connect to host
 1k8b.com: could not connect to host
 1password.com: did not receive HSTS header
 1s.tn: did not receive HSTS header
 1stcapital.com.sg: did not receive HSTS header
 1xcess.com: did not receive HSTS header
 1years.cc: could not connect to host
@@ -59,21 +59,21 @@ 360gradus.com: did not receive HSTS head
 365.or.jp: could not connect to host
 368mibn.com: could not connect to host
 38sihu.com: could not connect to host
 39sihu.com: could not connect to host
 3chit.cf: could not connect to host
 3click-loan.com: could not connect to host
 3delivered.com: could not connect to host
 3dproteinimaging.com: did not receive HSTS header
+3phase.pw: 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
 404404.info: could not connect to host
-404forest.com: could not connect to host
 420dongstorm.com: could not connect to host
 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
 4azino777.ru: did not receive HSTS header
 4cclothing.com: could not connect to host
 4elements.com: did not receive HSTS header
@@ -107,26 +107,25 @@ aaeblog.org: did not receive HSTS header
 aaoo.net: could not connect to host
 aapp.space: could not connect to host
 aaron-gustafson.com: did not receive HSTS header
 aaronkimmig.de: could not connect to host
 aati.info: did not receive HSTS header
 abareplace.com: did not receive HSTS header
 abearofsoap.com: could not connect to host
 abecodes.net: did not receive HSTS header
-aberdeenalmeras.com: could not connect to host
-aberdeenjudo.co.uk: could not connect to host
 abilitylist.org: did not receive HSTS header
 abioniere.de: could not connect to host
 ablogagency.net: could not connect to host
 abnarnro.com: could not connect to host
 about.ge: did not receive HSTS header
 aboutmyip.info: did not receive HSTS header
 aboutyou-deals.de: did not receive HSTS header
 abt.de: did not receive HSTS header
+abthorpe.org: could not connect to host
 abtom.de: did not receive HSTS header
 abury.fr: did not receive HSTS header
 abury.me: did not receive HSTS header
 academicenterprise.org: could not connect to host
 academytv.com.au: did not receive HSTS header
 accelerole.com: did not receive HSTS header
 accelight.co.jp: did not receive HSTS header
 accessacademies.org: max-age too low: 0
@@ -194,17 +193,16 @@ agentseeker.ca: did not receive HSTS hea
 agevio.com: could not connect to host
 agrimap.com: did not receive HSTS header
 agrios.de: did not receive HSTS header
 agro-id.gov.ua: did not receive HSTS header
 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
-aids.gov: could not connect to host
 airbnb.com: did not receive HSTS header
 aircomms.com: did not receive HSTS header
 airlea.com: could not connect to host
 airproto.com: could not connect to host
 aishnair.com: could not connect to host
 aiticon.de: did not receive HSTS header
 aiw-thkoeln.online: could not connect to host
 ajmahal.com: could not connect to host
@@ -378,17 +376,16 @@ ariacreations.net: did not receive HSTS 
 aristilabs.com: did not receive HSTS header
 arlen.se: could not connect to host
 armor.com: did not receive HSTS header
 armory.consulting: could not connect to host
 armory.supplies: could not connect to host
 armsday.com: could not connect to host
 armytricka.cz: did not receive HSTS header
 arocloud.de: did not receive HSTS header
-arod.tk: did not receive HSTS header
 arpa.ph: did not receive HSTS header
 arpr.co: did not receive HSTS header
 arrayify.com: could not connect to host
 arrow-cloud.nl: could not connect to host
 arrowfunction.com: could not connect to host
 ars-design.net: could not connect to host
 ars.toscana.it: max-age too low: 0
 artiming.com: could not connect to host
@@ -410,21 +407,22 @@ ask.pe: could not connect to host
 askfit.cz: did not receive HSTS header
 asm-x.com: could not connect to host
 asmui.ga: could not connect to host
 asmui.ml: could not connect to host
 asr.cloud: could not connect to host
 asr.li: could not connect to host
 asr.rocks: could not connect to host
 asr.solar: could not connect to host
-asrob.eu: did not receive HSTS header
+asrob.eu: could not connect to host
 ass.org.au: did not receive HSTS header
 assekuranzjobs.de: could not connect to host
 asset-alive.com: did not receive HSTS header
 asset-alive.net: did not receive HSTS header
+asspinter.me: could not connect to host
 astrath.net: did not receive HSTS header
 astrolpost.com: could not connect to host
 astromelody.com: did not receive HSTS header
 asuhe.cc: did not receive HSTS header
 asuhe.win: did not receive HSTS header
 atavio.at: could not connect to host
 atavio.ch: could not connect to host
 atavio.de: did not receive HSTS header
@@ -438,17 +436,16 @@ atomik.pro: could not connect to host
 atop.io: could not connect to host
 attic118.com: could not connect to host
 attimidesigns.com: did not receive HSTS header
 au.search.yahoo.com: max-age too low: 172800
 aubiosales.com: could not connect to host
 aucubin.moe: could not connect to host
 audiovisualdevices.com.au: did not receive HSTS header
 aujapan.ru: could not connect to host
-aur.rocks: could not connect to host
 aurainfosec.com: did not receive HSTS header
 aurainfosec.com.au: could not connect to host
 auraredeye.com: did not receive HSTS header
 auraredshield.com: did not receive HSTS header
 auroratownshipfd.org: could not connect to host
 ausnah.me: could not connect to host
 ausoptic.com.au: max-age too low: 2592000
 aussiecable.org: did not receive HSTS header
@@ -472,21 +469,21 @@ avantmfg.com: did not receive HSTS heade
 avec-ou-sans-ordonnance.fr: could not connect to host
 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
 awanderlustadventure.com: did not receive HSTS header
-awei.pub: could not connect to host
 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
+ayothemes.com: could not connect to host
 ayuru.info: could not connect to host
 az.search.yahoo.com: did not receive HSTS header
 azino777.ru: did not receive HSTS header
 azort.com: did not receive HSTS header
 azprep.us: did not receive HSTS header
 b-landia.net: could not connect to host
 b303.me: did not receive HSTS header
 b3orion.com: max-age too low: 0
@@ -518,16 +515,17 @@ balonmano.co: could not connect to host
 bananabandy.com: could not connect to host
 banbanchs.com: could not connect to host
 bandb.xyz: could not connect to host
 bandrcrafts.com: could not connect to host
 bannisbierblog.de: could not connect to host
 banqingdiao.com: could not connect to host
 barbaros.info: could not connect to host
 barely.sexy: did not receive HSTS header
+bariller.fr: could not connect to host
 barrelhead.org: could not connect to host
 barss.io: could not connect to host
 barunisystems.com: could not connect to host
 bashc.at: could not connect to host
 bashcode.ninja: could not connect to host
 basicsolutionsus.com: did not receive HSTS header
 basilisk.io: could not connect to host
 bassh.net: could not connect to host
@@ -562,22 +560,24 @@ beastowner.com: did not receive HSTS hea
 beautyconcept.co: did not receive HSTS header
 beavers.io: could not connect to host
 bebeefy.uk: could not connect to host
 bebesurdoue.com: could not connect to host
 bedabox.com: max-age too low: 0
 bedeta.de: could not connect to host
 bedreid.dk: did not receive HSTS header
 bedrijvenadministratie.nl: did not receive HSTS header
+beeksnetwork.nl: could not connect to host
 behere.be: could not connect to host
 beholdthehurricane.com: could not connect to host
 beier.io: did not receive HSTS header
 belairsewvac.com: could not connect to host
 belics.com: did not receive HSTS header
 belltower.io: could not connect to host
+belwederczykow.eu: could not connect to host
 bemyvictim.com: max-age too low: 2678400
 beneffy.com: did not receive HSTS header
 benjakesjohnson.com: could not connect to host
 benk.press: could not connect to host
 benny003.de: did not receive HSTS header
 benohead.com: did not receive HSTS header
 benzkosmetik.de: did not receive HSTS header
 beourvictim.com: max-age too low: 2678400
@@ -595,26 +595,26 @@ bestlashesandbrows.com: did not receive 
 betcafearena.ro: could not connect to host
 bethditto.com: did not receive HSTS header
 betnet.fr: could not connect to host
 betplanning.it: did not receive HSTS header
 bets.de: did not receive HSTS header
 bettween.com: could not connect to host
 betz.ro: did not receive HSTS header
 bevapehappy.com: did not receive HSTS header
+bevinco2020.com: did not receive HSTS header
 beyond-edge.com: could not connect to host
 beyuna.co.uk: did not receive HSTS header
 beyuna.eu: did not receive HSTS header
 beyuna.nl: did not receive HSTS header
 bezorg.ninja: could not connect to host
 bf.am: max-age too low: 0
 bfelob.gov: max-age too low: 86400
 bffm.biz: max-age too low: 0
 bgcparkstad.nl: did not receive HSTS header
-bgeo.io: could not connect to host
 bgmn.net: could not connect to host
 bhatia.at: [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]
 bi.search.yahoo.com: did not receive HSTS header
 biblerhymes.com: did not receive HSTS header
 bidon.ca: did not receive HSTS header
 bieberium.de: could not connect to host
 bienenblog.cc: could not connect to host
 big-black.de: did not receive HSTS header
@@ -666,17 +666,16 @@ blackburn.link: could not connect to hos
 blacklane.com: did not receive HSTS header
 blackly.uk: max-age too low: 0
 blackpayment.ru: could not connect to host
 blackunicorn.wtf: could not connect to host
 blakerandall.xyz: could not connect to host
 blendle.nl: did not receive HSTS header
 blendlecdn.com: could not connect to host
 blenheimchalcot.com: did not receive HSTS header
-blessedearth.com.au: did not receive HSTS header
 blessnet.jp: did not receive HSTS header
 blha303.com.au: could not connect to host
 blindsexdate.nl: could not connect to host
 blitzprog.org: could not connect to host
 blocksatz-medien.de: did not receive HSTS header
 blog-ritaline.com: could not connect to host
 blog.cyveillance.com: did not receive HSTS header
 blog.torproject.org: did not receive HSTS header
@@ -705,27 +704,27 @@ boltdata.io: could not connect to host
 bonapp.restaurant: could not connect to host
 bonfi.net: did not receive HSTS header
 bonitabrazilian.co.nz: did not receive HSTS header
 bonobo.cz: could not connect to host
 bonop.com: did not receive HSTS header
 bonta.one: could not connect to host
 bookcelerator.com: did not receive HSTS header
 booked.holiday: could not connect to host
+bookingapp.nl: did not receive HSTS header
 bookofraonlinecasinos.com: did not receive HSTS header
 bookourdjs.com: max-age too low: 0
 boomerang.com: did not receive HSTS header
 boosterlearnpro.com: did not receive HSTS header
 bootjp.me: did not receive HSTS header
 borderlinegroup.com: max-age too low: 0
 boringsecurity.net: could not connect to host
 boris.one: did not receive HSTS header
 borscheid-wenig.com: did not receive HSTS header
 botox.bz: did not receive HSTS header
-bouncecoffee.com: did not receive HSTS header
 bouwbedrijfpurmerend.nl: did not receive HSTS header
 bowling.com: did not receive HSTS header
 bowlroll.net: max-age too low: 0
 boxcryptor.com: did not receive HSTS header
 boxintense.com: did not receive HSTS header
 bqtoolbox.com: could not connect to host
 br3in.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 118"  data: no]
 bragasoft.com.br: did not receive HSTS header
@@ -805,16 +804,17 @@ by4cqb.cn: could not connect to host
 bydisk.com: could not connect to host
 bypassed.press: could not connect to host
 bypassed.today: did not receive HSTS header
 bypassed.works: did not receive HSTS header
 bypassed.world: did not receive HSTS header
 bypro.xyz: could not connect to host
 bysymphony.com: max-age too low: 0
 byte.wtf: did not receive HSTS header
+bytejail.com: could not connect to host
 bytema.re: could not connect to host
 bytepark.de: did not receive HSTS header
 bytesund.biz: could not connect to host
 c0rn3j.com: did not receive HSTS header
 c1yd3i.me: could not connect to host
 c3b.info: could not connect to host
 cabarave.com: could not connect to host
 cabsites.com: could not connect to host
@@ -824,17 +824,17 @@ cadao.me: did not receive HSTS header
 cadoth.net: did not receive HSTS header
 caesreon.com: could not connect to host
 cafe-murr.de: could not connect to host
 cafe-scientifique.org.ec: could not connect to host
 caim.cz: did not receive HSTS header
 cainhosting.com: did not receive HSTS header
 caizx.com: could not connect to host
 cajapopcorn.com: did not receive HSTS header
-cake.care: did not receive HSTS header
+cake.care: could not connect to host
 calcularpagerank.com.br: did not receive HSTS header
 calendarr.com: did not receive HSTS header
 calgaryconstructionjobs.com: did not receive HSTS header
 calix.com: max-age too low: 0
 callaction.co: max-age too low: 2628000
 calltrackingreports.com: could not connect to host
 caltonnutrition.com: did not receive HSTS header
 calvin.me: max-age too low: 2592000
@@ -896,17 +896,16 @@ cbengineeringinc.com: could not connect 
 cbhq.net: could not connect to host
 ccblog.de: did not receive HSTS header
 cctech.ph: did not receive HSTS header
 cd.search.yahoo.com: did not receive HSTS header
 cd0.us: could not connect to host
 cdnb.co: could not connect to host
 cdndepo.com: could not connect to host
 cdreporting.co.uk: did not receive HSTS header
-cecilwalker.com.au: did not receive HSTS header
 celeirorural.com.br: did not receive HSTS header
 celina-reads.de: did not receive HSTS header
 cellsites.nz: could not connect to host
 centillien.com: did not receive HSTS header
 centralpoint.be: did not receive HSTS header
 centralpoint.nl: did not receive HSTS header
 centralvacsunlimited.net: could not connect to host
 centrepoint-community.com: could not connect to host
@@ -957,19 +956,21 @@ cherekerry.com: could not connect to hos
 cherysunzhang.com: did not receive HSTS header
 chicisimo.com: did not receive HSTS header
 chicolawfirm.com: did not receive HSTS header
 chihiro.xyz: did not receive HSTS header
 chijiokeindustries.co.uk: could not connect to host
 childcaresolutionscny.org: did not receive HSTS header
 chinawhale.com: did not receive HSTS header
 chirgui.eu: could not connect to host
+chloe.re: did not receive HSTS header
 chlouis.net: could not connect to host
 chm.vn: did not receive HSTS header
 chontalpa.pw: could not connect to host
+chopperforums.com: could not connect to host
 choruscrowd.com: could not connect to host
 chotu.net: could not connect to host
 chris-web.info: could not connect to host
 chrisandsarahinasia.com: did not receive HSTS header
 chrisfaber.com: could not connect to host
 chriskyrouac.com: could not connect to host
 chrisopperwall.com: did not receive HSTS header
 christiaandruif.nl: could not connect to host
@@ -981,17 +982,16 @@ christophheich.me: could not connect to 
 chrisupjohn.com: could not connect to host
 chrome-devtools-frontend.appspot.com: did not receive HSTS header (error ignored - included regardless)
 chrome.google.com: did not receive HSTS header (error ignored - included regardless)
 chua.cf: could not connect to host
 chulado.com: did not receive HSTS header
 cidr.ml: could not connect to host
 cigarblogs.net: could not connect to host
 cigi.site: could not connect to host
-ciicutini.ro: did not receive HSTS header
 cim2b.de: could not connect to host
 cimalando.eu: could not connect to host
 cintdirect.com: could not connect to host
 ciplanutrition.com: did not receive HSTS header
 ciscommerce.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 118"  data: no]
 citiagent.cz: could not connect to host
 cityoflaurel.org: did not receive HSTS header
 ciuciucadou.ro: could not connect to host
@@ -1036,30 +1036,28 @@ cloudspotterapp.com: did not receive HST
 cloudstoragemaus.com: could not connect to host
 cloudstorm.me: could not connect to host
 cloudstrike.co: could not connect to host
 cloudwalk.io: did not receive HSTS header
 cloverleaf.net: max-age too low: 0
 cloxy.com: did not receive HSTS header
 clubmix.co.kr: could not connect to host
 cluster.id: could not connect to host
-clusterfuck.nz: could not connect to host
 clustermaze.net: could not connect to host
 clvrwebdesign.com: did not receive HSTS header
 clywedogmaths.co.uk: could not connect to host
 cmc-versand.de: did not receive HSTS header
 cmci.dk: did not receive HSTS header
 cmsbattle.com: could not connect to host
 cmscafe.ru: did not receive HSTS header
 cmso-cal.com: could not connect to host
 cn.search.yahoo.com: did not receive HSTS header
 cncn.us: did not receive HSTS header
 cni-certing.it: max-age too low: 0
 cnwage.com: could not connect to host
-co50.com: did not receive HSTS header
 coach-sportif.paris: could not connect to host
 cobrasystems.nl: did not receive HSTS header
 cocktailfuture.fr: could not connect to host
 cocolovesdaddy.com: could not connect to host
 codabix.com: did not receive HSTS header
 codabix.de: could not connect to host
 codabix.net: could not connect to host
 code-35.com: did not receive HSTS header
@@ -1071,21 +1069,20 @@ codeforce.io: could not connect to host
 codeforhakodate.org: could not connect to host
 codelayer.ca: could not connect to host
 codelitmus.com: did not receive HSTS header
 codemonkeyrawks.net: did not receive HSTS header
 codepoet.de: could not connect to host
 codepult.com: could not connect to host
 codepx.com: did not receive HSTS header
 codiva.io: max-age too low: 2592000
-codymoniz.com: could not connect to host
 coffeeetc.co.uk: did not receive HSTS header
 coffeestrategies.com: max-age too low: 0
+coiffeurschnittstelle.ch: did not receive HSTS header
 coindam.com: could not connect to host
-coldfff.com: could not connect to host
 coldlostsick.net: could not connect to host
 collegepulse.org: did not receive HSTS header
 collies.eu: max-age too low: 3
 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
@@ -1100,22 +1097,22 @@ compareinsurance.com.au: did not receive
 comparejewelleryprices.co.uk: could not connect to host
 comparetravelinsurance.com.au: did not receive HSTS header
 compiledworks.com: could not connect to host
 completeid.com: max-age too low: 86400
 completionist.audio: could not connect to host
 complymd.com: did not receive HSTS header
 compraneta.com: could not connect to host
 compucorner.com.mx: could not connect to host
-compucorner.mx: could not connect to host
 computeremergency.com.au: did not receive HSTS header
 computersystems.guru: did not receive HSTS header
 concord-group.co.jp: did not receive HSTS header
 confirm365.com: could not connect to host
 conformal.com: could not connect to host
+conjugacao.com.br: did not receive HSTS header
 connect.ua: did not receive HSTS header
 connected-verhuurservice.nl: did not receive HSTS header
 connectfss.com: could not connect to host
 consciousandglamorous.com: could not connect to host
 console.python.org: did not receive HSTS header
 console.support: did not receive HSTS header
 constructionjobs.com: did not receive HSTS header
 contactbig.com: did not receive HSTS header
@@ -1227,18 +1224,20 @@ cumshots-video.ru: could not connect to 
 cuntflaps.me: could not connect to host
 cuongquach.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
 cuteys.de: max-age too low: 86400
 cutorrent.com: could not connect to host
+cuvva.eu: did not receive HSTS header
 cuvva.insure: did not receive HSTS header
 cuvva.io: did not receive HSTS header
+cuvva.org: did not receive HSTS header
 cyanogenmod.xxx: could not connect to host
 cyberdos.de: did not receive HSTS header
 cyberpunk.ca: could not connect to host
 cybershambles.com: could not connect to host
 cybersmart.co.uk: did not receive HSTS header
 cyberxpert.nl: could not connect to host
 cycleluxembourg.lu: did not receive HSTS header
 cydia-search.io: could not connect to host
@@ -1247,16 +1246,17 @@ cyphertite.com: could not connect to hos
 cytadel.fr: did not receive HSTS header
 czlx.co: could not connect to host
 dad256.tk: could not connect to host
 dadtheimpaler.com: could not connect to host
 dah5.com: did not receive HSTS header
 dailybits.be: did not receive HSTS header
 dailystormerpodcasts.com: could not connect to host
 daimadi.com: could not connect to host
+dakerealestate.com: could not connect to host
 dakrib.net: could not connect to host
 daku.gdn: could not connect to host
 dalfiume.it: max-age too low: 1000
 dalingk.co: could not connect to host
 damedrogy.cz: could not connect to host
 damianuv-blog.cz: did not receive HSTS header
 dancerdates.net: could not connect to host
 daniel-steuer.de: could not connect to host
@@ -1281,27 +1281,29 @@ 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
 daryl.moe: 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
+datacalle.com: could not connect to host
 datahove.no: 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
 datenreiter.ml: could not connect to host
 datenreiter.tk: could not connect to host
+datortipsen.se: could not connect to host
 davidandkailey.com: could not connect to host
 davidglidden.eu: did not receive HSTS header
 davidhunter.scot: did not receive HSTS header
 davidnoren.com: did not receive HSTS header
 davidreinhardt.de: could not connect to host
 daylightcompany.com: did not receive HSTS header
 daytonaseaside.com: did not receive HSTS header
 db.gy: could not connect to host
@@ -1357,16 +1359,17 @@ desiccantpackets.com: did not receive HS
 designandmore.it: did not receive HSTS header
 designgears.com: did not receive HSTS header
 designthinking.or.jp: did not receive HSTS header
 desserteagleselvenar.tk: could not connect to host
 destinationbijoux.fr: could not connect to host
 destom.be: could not connect to host
 detector.exposed: could not connect to host
 detest.org: could not connect to host
+deusu.org: did not receive HSTS header
 deux.solutions: could not connect to host
 deuxsol.co: could not connect to host
 deuxsol.com: could not connect to host
 deuxsolutions.com: could not connect to host
 deuxvia.com: could not connect to host
 devafterdark.com: could not connect to host
 devcu.com: could not connect to host
 devcu.net: could not connect to host
@@ -1378,16 +1381,17 @@ devnull.team: could not connect to host
 devopps.me: did not receive HSTS header
 devtub.com: did not receive HSTS header
 devuan.org: did not receive HSTS header
 dfviana.com.br: did not receive HSTS header
 dhome.at: did not receive HSTS header
 dhpcs.com: did not receive HSTS header
 dhpiggott.net: did not receive HSTS header
 diablotine.rocks: could not connect to host
+dianlujitao.com: did not receive HSTS header
 diarbag.us: max-age too low: 0
 dicando.com: max-age too low: 2592000
 dicionariofinanceiro.com: did not receive HSTS header
 diedrich.co: could not connect to host
 dienstplan.one: could not connect to host
 dierenkruiden.nl: could not connect to host
 dietrich-spielwaren.de: max-age too low: 86400
 diewebstube.de: could not connect to host
@@ -1395,16 +1399,17 @@ diezel.com: could not connect to host
 diferenca.com: 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
 digitalero.rip: did not receive HSTS header
 digitalriver.tk: could not connect to host
 digitalskillswap.com: could not connect to host
 dim.lighting: could not connect to host
+dimonb.com: could not connect to host
 dinamoelektrik.com: could not connect to host
 dineachook.com.au: did not receive HSTS header
 dingcc.me: could not connect to host
 dinkum.online: could not connect to host
 directhskincream.com: could not connect to host
 directorinegocis.cat: could not connect to host
 discovery.lookout.com: did not receive HSTS header
 dise-online.de: did not receive HSTS header
@@ -1453,33 +1458,32 @@ doked.io: could not connect to host
 dokuboard.com: could not connect to host
 dolevik.com: could not connect to host
 dollarstore24.com: could not connect to host
 dollywiki.co.uk: could not connect to host
 dolphin-cloud.com: could not connect to host
 dolphincorp.co.uk: could not connect to host
 domaine-aigoual-cevennes.com: did not receive HSTS header
 domaris.de: did not receive HSTS header
-domesticwatermeters.com.au: did not receive HSTS header
 dominicpratt.de: did not receive HSTS header
 dominioanimal.com: could not connect to host
 dominique-mueller.de: did not receive HSTS header
 donmez.uk: could not connect to host
 donmez.ws: could not connect to host
 donttrustrobots.nl: could not connect to host
 donzelot.co.uk: max-age too low: 3600
 dooku.cz: could not connect to host
 doomleika.com: could not connect to host
 doooonoooob.com: could not connect to host
 doridian.com: could not connect to host
 doridian.de: could not connect to host
 doridian.net: did not receive HSTS header
 doridian.org: could not connect to host
 dot42.no: could not connect to host
-dotacni-parazit.cz: could not connect to host
+dotacni-parazit.cz: did not receive HSTS header
 dotadata.me: could not connect to host
 dotspaperie.com: did not receive HSTS header
 dougferris.id.au: could not connect to host
 dovecotadmin.org: could not connect to host
 dovetailnow.com: could not connect to host
 download.jitsi.org: did not receive HSTS header
 downsouthweddings.com.au: did not receive HSTS header
 doyoucheck.com: did not receive HSTS header
@@ -1514,16 +1518,17 @@ dtub.co: did not receive HSTS header
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
 duerls.de: could not connect to host
 duesee.org: could not connect to host
 dullsir.com: did not receive HSTS header
 dungi.org: could not connect to host
 dutchrank.com: did not receive HSTS header
 duuu.ch: could not connect to host
+dworzak.ch: could not connect to host
 dycontrol.de: could not connect to host
 dyktig.as: did not receive HSTS header
 dylanscott.com.au: did not receive HSTS header
 dynamic-innovations.net: could not connect to host
 dynamize.solutions: did not receive HSTS header
 dyrkar.com: did not receive HSTS header
 dzimejl.sk: did not receive HSTS header
 dzlibs.io: could not connect to host
@@ -1631,27 +1636,25 @@ empty-r.com: could not connect to host
 enaah.de: could not connect to host
 enargia.jp: max-age too low: 0
 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
-endlesshorizon.net: could not connect to host
 endlesstone.com: did not receive HSTS header
 enefan.jp: could not connect to host
 engelwerbung.com: did not receive HSTS header
 enginsight.com: did not receive HSTS header
 englishyamal.ru: 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
 enjoymayfield.com: max-age too low: 0
-enlightenment.org: did not receive HSTS header
 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
 enterdev.co: did not receive HSTS header
 enterprise-threat-monitor.com: max-age too low: 0
 enterprisecarclub.co.uk: did not receive HSTS header
@@ -1701,16 +1704,17 @@ estebanborges.com: did not receive HSTS 
 estilosapeca.com: could not connect to host
 et-buchholz.de: could not connect to host
 et180.com: could not connect to host
 etdonline.co.uk: could not connect to host
 eternitylove.us: could not connect to host
 eth9.net: could not connect to host
 ethicalexploiting.com: could not connect to host
 ethil-faer.fr: did not receive HSTS header
+ethlan.fr: could not connect to host
 etmirror.top: could not connect to host
 etmirror.xyz: could not connect to host
 etproxy.tech: could not connect to host
 etrker.com: did not receive HSTS header
 ets2mp.de: did not receive HSTS header
 etsysecure.com: could not connect to host
 ettebiz.com: did not receive HSTS header
 etula.ga: could not connect to host
@@ -1723,17 +1727,16 @@ euren.se: could not connect to host
 eurocamping.se: could not connect to host
 euroshop24.net: could not connect to host
 evafojtova.cz: did not receive HSTS header
 evdenevenakliyatankara.pw: did not receive HSTS header
 events12.com: 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
-evilsay.com: 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
 evossd.tk: could not connect to host
 evowl.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
@@ -1778,17 +1781,17 @@ faizan.xyz: could not connect to host
 fakeletters.org: did not receive HSTS header
 faktura.pl: did not receive HSTS header
 falconfrag.com: could not connect to host
 falkp.no: did not receive HSTS header
 fallenangelspirits.uk: could not connect to host
 familie-sprink.de: could not connect to host
 familie-zimmermann.at: could not connect to host
 famio.cn: could not connect to host
-fantasyfootballpundit.com: could not connect to host
+fantasyfootballpundit.com: max-age too low: 300
 fanyl.cn: could not connect to host
 farhadexchange.com: did not receive HSTS header
 fashioncare.cz: did not receive HSTS header
 fasset.jp: could not connect to host
 fastdigitizing.com: max-age too low: 300
 fastograph.com: could not connect to host
 fastopen.ml: could not connect to host
 fatgeekflix.net: could not connect to host
@@ -1806,20 +1809,22 @@ feastr.de: did not receive HSTS header
 fed51.com: could not connect to host
 fedo.moe: could not connect to host
 feezmodo.com: did not receive HSTS header
 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
 felixrr.pro: could not connect to host
 feminists.co: could not connect to host
+fenno.net: could not connect to host
 fenteo.com: could not connect to host
 feriahuamantla.com: max-age too low: 0
 fernseher-kauf.de: could not connect to host
 ferrolatino.com: could not connect to host
+ferrugem.org: did not receive HSTS header
 festember.com: did not receive HSTS header
 festrip.com: could not connect to host
 fettbrot.tk: did not receive HSTS header
 fexmen.com: could not connect to host
 ffmradio.de: did not receive HSTS header
 fics-twosigma.com: could not connect to host
 fiftyshadesofluca.ml: could not connect to host
 fig.co: did not receive HSTS header
@@ -1837,41 +1842,40 @@ finfev.de: could not connect to host
 finiteheap.com: did not receive HSTS header
 finpt.com: could not connect to host
 firebaseio-demo.com: could not connect to host
 firebaseio.com: could not connect to host (error ignored - included regardless)
 firebird.io: could not connect to host
 firefall.rocks: could not connect to host
 firemail.io: could not connect to host
 fireorbit.de: did not receive HSTS header
-firesofheaven.org: did not receive HSTS header
 firmenverzeichnis.nu: could not connect to host
 firstdogonthemoon.com.au: did not receive HSTS header
 firstforex.co.uk: did not receive HSTS header
 firstlook.org: did not receive HSTS header
 fish2.me: did not receive HSTS header
 fishlinemedia.com: max-age too low: 0
 fit4medien.de: did not receive HSTS header
 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
 fivezerocreative.com: did not receive HSTS header
+fixate.ru: could not connect to host
 fixatom.com: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
 fixtectools.co.za: could not connect to host
 fj.search.yahoo.com: did not receive HSTS header
 fjruiz.es: did not receive HSTS header
 fkcovering.be: could not connect to host
 flags.ninja: could not connect to host
 flamewall.net: could not connect to host
 flareon.net: could not connect to host
 flawcheck.com: did not receive HSTS header
-fletchto99.com: could not connect to host
 fleurette.me: could not connect to host
 fliexer.com: could not connect to host
 flirchi.com: did not receive HSTS header
 floless.co.uk: did not receive HSTS header
 florafiora.com.br: did not receive HSTS header
 florent-tatard.fr: could not connect to host
 florian-lillpopp.de: max-age too low: 10
 florianlillpopp.de: max-age too low: 10
@@ -1941,34 +1945,33 @@ freelanced.co.za: could not connect to h
 freematthale.net: did not receive HSTS header
 freenetproject.org: did not receive HSTS header
 freesoftwaredriver.com: did not receive HSTS header
 freethought.org.au: could not connect to host
 freeutopia.org: did not receive HSTS header
 frenzel.dk: could not connect to host
 freqlabs.com: did not receive HSTS header
 freshfind.xyz: could not connect to host
-freshlymind.com: did not receive HSTS header
 frforms.com: did not receive HSTS header
 friendica.ch: could not connect to host
 friendlyfiregameshow.com: could not connect to host
 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
 fruitusers.com: could not connect to host
-frusky.de: did not receive HSTS header
 frusky.net: did not receive HSTS header
 fspphoto.com: could not connect to host
 fstfy.de: could not connect to host
 ftctele.com: did not receive HSTS header
 fuchsy.com: could not connect to host
 fuckgfw233.org: could not connect to host
 fukushima-web.com: did not receive HSTS header
 fulilingyu.info: could not connect to host
+fullyint.com: could not connect to host
 fullytrained.co.uk: did not receive HSTS header
 fumo.se: max-age too low: 0
 fun-stamps.de: max-age too low: 86400
 fun-stempel.de: max-age too low: 86400
 fundacionhijosdelsol.org: could not connect to host
 funi4u.com: could not connect to host
 funideas.org: could not connect to host
 funkyweddingideas.com.au: could not connect to host
@@ -1980,17 +1983,16 @@ funstempel.de: max-age too low: 86400
 furiffic.com: did not receive HSTS header
 furnation.com: could not connect to host
 furry.be: did not receive HSTS header
 fusedrops.com: could not connect to host
 fusionmate.com: could not connect to host
 futbol11.com: did not receive HSTS header
 futuretechnologi.es: could not connect to host
 futureyouhealth.com: did not receive HSTS header
-fuvpn.com: could not connect to host
 fws.gov: did not receive HSTS header
 fx-rk.com: did not receive HSTS header
 fysiohaenraets.nl: did not receive HSTS header
 fzn.io: could not connect to host
 fzslm.me: could not connect to host
 g01.in.ua: could not connect to host
 g2a.co: did not receive HSTS header
 g2g.com: did not receive HSTS header
@@ -2023,47 +2025,44 @@ gameofpwnz.com: did not receive HSTS hea
 gamepad.vg: could not connect to host
 gameparade.de: could not connect to host
 gamepiece.com: could not connect to host
 gamers-life.fr: could not connect to host
 gamerslair.org: did not receive HSTS header
 gamerz-point.de: could not connect to host
 gamesdepartment.co.uk: did not receive HSTS header
 gameserver-sponsor.de: could not connect to host
-gamingmedia.eu: did not receive HSTS header
+gamingmedia.eu: could not connect to host
 gampenhof.de: did not receive HSTS header
 gaptek.id: did not receive HSTS header
 garageon.net: did not receive HSTS header
 garciamartin.me: could not connect to host
 garden.trade: max-age too low: 0
 gatapro.net: could not connect to host
 gatorsa.es: did not receive HSTS header
 gdegem.org: did not receive HSTS header
 gdpventure.com: max-age too low: 0
-gdz.tv: did not receive HSTS header
 gedankenbude.info: could not connect to host
 geekcast.co.uk: did not receive HSTS header
 geeky.software: could not connect to host
 geemo.top: could not connect to host
 geeq.ch: could not connect to host
 geli-graphics.com: did not receive HSTS header
-genetargetsolutions.com.au: did not receive HSTS header
-genossen.ru: could not connect to host
 genuu.com: could not connect to host
 genuxation.com: could not connect to host
 genyaa.com: could not connect to host
 genyhitch.com: did not receive HSTS header
 geofox.org: did not receive HSTS header
 georgesonarthurs.com.au: did not receive HSTS header
 gerencianet.com.br: did not receive HSTS header
 gersting.net: could not connect to host
 gesiwista.net: could not connect to host
 gesunde-smoothies.de: did not receive HSTS header
 get-cctv.com: could not connect to host
-get.zenpayroll.com: could not connect to host
+get.zenpayroll.com: did not receive HSTS header
 getable.com: did not receive HSTS header
 getblys.com.au: did not receive HSTS header
 getbooks.co.il: did not receive HSTS header
 getcarefirst.com: did not receive HSTS header
 getcarina.com: could not connect to host
 getcolor.com: did not receive HSTS header
 getfestify.com: could not connect to host
 getfirepress.com: could not connect to host
@@ -2081,17 +2080,17 @@ getlifti.com: could not connect to host
 getlittleapps.com: did not receive HSTS header
 getlolaccount.com: could not connect to host
 getmassage.com.ng: could not connect to host
 getpake.com: could not connect to host
 getremembrall.com: could not connect to host
 getsello.com: could not connect to host
 getspire.com: could not connect to host
 getwashdaddy.com: could not connect to host
-gfelot.xyz: did not receive HSTS header
+gfelot.xyz: could not connect to host
 gfm.tech: could not connect to host
 gfwsb.ml: could not connect to host
 ggss.ml: could not connect to host
 gheorghesarcov.ga: could not connect to host
 gheorghesarcov.tk: could not connect to host
 giantmicrobes.de: max-age too low: 86400
 gibraltar.at: could not connect to host
 gietvloergarant.nl: did not receive HSTS header
@@ -2142,16 +2141,17 @@ gogenenglish.com: could not connect to h
 gogetssl.com: did not receive HSTS header
 goggs.eu: did not receive HSTS header
 gogold-g.com: could not connect to host
 gokhankesici.com: did not receive HSTS header
 gold24.in: did not receive HSTS header
 goldegg-training.com: did not receive HSTS header
 goldendata.io: could not connect to host
 goldminer.ga: could not connect to host
+goldpros.com: did not receive HSTS header
 golocal-media.de: could not connect to host
 gonzalosanchez.mx: did not receive HSTS header
 goodenough.nz: did not receive HSTS header
 goodtech.com.br: could not connect to host
 goodwin43.ru: could not connect to host
 google: could not connect to host (error ignored - included regardless)
 googlemail.com: did not receive HSTS header (error ignored - included regardless)
 googleplex.com: did not receive HSTS header (error ignored - included regardless)
@@ -2193,17 +2193,16 @@ greatnet.de: did not receive HSTS header
 greatsong.net: 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: could not connect to host
 gremots.com: could not connect to host
 greplin.com: could not connect to host
 gresb.com: did not receive HSTS header
-greybit.net: could not connect to host
 greyline.se: could not connect to host
 gribani.com: could not connect to host
 grid2osm.org: could not connect to host
 grigalanzsoftware.com: could not connect to host
 gripopgriep.net: could not connect to host
 groenemeijer.frl: max-age too low: 2628000
 groetzner.net: did not receive HSTS header
 grossell.ru: could not connect to host
@@ -2268,17 +2267,16 @@ hac30.com: could not connect to host
 hack.li: could not connect to host
 hackbubble.me: did not receive HSTS header
 hackercat.ninja: did not receive HSTS header
 hackerforever.com: did not receive HSTS header
 hackerone-ext-adroll.com: could not connect to host
 hackerspace-ntnu.no: did not receive HSTS header
 hackest.org: did not receive HSTS header
 hackit.im: could not connect to host
-hadouk.in: could not connect to host
 hadzic.co: could not connect to host
 haeckdesign.com: did not receive HSTS header
 haeckl.eu: did not receive HSTS header
 haf.gr: could not connect to host
 hahayidu.org: could not connect to host
 haitschi.com: could not connect to host
 haitschi.de: did not receive HSTS header
 haitschi.net: could not connect to host
@@ -2387,16 +2385,17 @@ hittipps.com: did not receive HSTS heade
 hjw-kunstwerk.de: could not connect to host
 hlyue.com: did not receive HSTS header
 hmm.nyc: could not connect to host
 hn.search.yahoo.com: did not receive HSTS header
 hodne.io: could not connect to host
 hoerbuecher-und-hoerspiele.de: could not connect to host
 hofiprojekt.cz: did not receive HSTS header
 hogar123.es: could not connect to host
+hoiku-map.tokyo: could not connect to host
 holifestival-freyung.de: could not connect to host
 holymoly.lu: could not connect to host
 homa.website: could not connect to host
 homeclouding.de: could not connect to host
 homedna.com: did not receive HSTS header
 hometownmall.com: did not receive HSTS header
 hongzhaxiaofendui.com: could not connect to host
 honoo.com: could not connect to host
@@ -2439,19 +2438,21 @@ humankode.com: did not receive HSTS head
 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
 hup.blue: could not connect to host
 hurricanelabs.com: did not receive HSTS header
 husky.xyz: could not connect to host
 huskybutt.dog: could not connect to host
+hvh.no: 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
+hydra.zone: 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
 hydronium.ml: could not connect to host
 hydronium.tk: could not connect to host
 hypa.net.au: did not receive HSTS header
 hyper69.com: did not receive HSTS header
 hysg.me: could not connect to host
@@ -2483,16 +2484,17 @@ idacmedia.com: max-age too low: 5184000
 ideal-envelopes.co.uk: did not receive HSTS header
 idealmykonos.com: did not receive HSTS header
 ideasmeetingpoint.com: could not connect to host
 ideation-inc.co.jp: could not connect to host
 idecode.net: could not connect to host
 idedr.com: could not connect to host
 identitylabs.uk: could not connect to host
 idgsupply.com: could not connect to host
+idinby.dk: did not receive HSTS header
 idlekernel.com: could not connect to host
 idontexist.me: did not receive HSTS header
 ie.search.yahoo.com: did not receive HSTS header
 iec.pe: could not connect to host
 ierna.com: did not receive HSTS header
 ies-italia.it: did not receive HSTS header
 ies.id.lv: could not connect to host
 ifad.org: did not receive HSTS header
@@ -2574,36 +2576,37 @@ inleaked.com: could not connect to host
 inmyarea.com: max-age too low: 0
 innophate-security.nl: could not connect to host
 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: could not connect to host
 inspire-av.com: did not receive HSTS header
 inspiroinc.com: could not connect to host
+inspy.me: max-age too low: 0
 instacart.com: did not receive HSTS header
 instantdev.io: could not connect to host
 instinctiveads.com: did not receive HSTS header
 institutoflordelavida.com: could not connect to host
 instruktor.io: could not connect to host
 intel.li: did not receive HSTS header
 intelevo.com: max-age too low: 0
 interference.io: could not connect to host
 interhosts.co.za: could not connect to host
 interim-cto.de: could not connect to host
 interleucina.org: did not receive HSTS header
 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
-internetcom.jp: did not receive HSTS header
 interserved.com: did not receive HSTS header
 intervisteperstrada.com: could not connect to host
 intex.es: max-age too low: 0
 intim-uslugi-kazan.net: could not connect to host
+intimateperrierjouet.com: could not connect to host
 intimtoy.com.ua: could not connect to host
 intranetsec.fr: could not connect to host
 intrp.net: did not receive HSTS header
 inventionsteps.com.au: did not receive HSTS header
 inverselink-user-content.com: could not connect to host
 inverselink.com: could not connect to host
 invite24.pro: could not connect to host
 iolife.dk: could not connect to host
@@ -2630,16 +2633,17 @@ ipuservicedesign.com: could not connect 
 ipv6cloud.club: could not connect to host
 ipv6only.network: could not connect to host
 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
+iready.ro: could not connect to host
 irelandesign.com: did not receive HSTS header
 irmtrudjurke.de: did not receive HSTS header
 irukandjilabs.com: could not connect to host
 is-a-furry.org: did not receive HSTS header
 isabellehogarth.co.uk: could not connect to host
 ischool.co.jp: did not receive HSTS header
 isdf.me: could not connect to host
 iseek.biz: max-age too low: 0
@@ -2674,16 +2678,17 @@ 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
 j15t98j.co.uk: could not connect to host
 ja-publications.com: did not receive HSTS header
 jabbari.io: did not receive HSTS header
+jabbas.eu: could not connect to host
 jackalworks.com: could not connect to host
 jacobparry.ca: did not receive HSTS header
 jadefalcons.de: could not connect to host
 jagido.de: did not receive HSTS header
 jahliveradio.com: could not connect to host
 jaksel.id: could not connect to host
 james.je: could not connect to host
 jamesandpame.la: could not connect to host
@@ -2737,16 +2742,17 @@ jdcdirectsales.com.ph: did not receive H
 jebengotai.com: did not receive HSTS header
 jeff393.com: could not connect to host
 jellybeanbooks.com.au: did not receive HSTS header
 jenjoit.de: could not connect to host
 jensenbanden.no: could not connect to host
 jeremye77.com: did not receive HSTS header
 jesorsenville.com: did not receive HSTS header
 jessicabenedictus.nl: could not connect to host
+jessicah.org: did not receive HSTS header
 jesuisformidable.nl: could not connect to host
 jet-code.com: could not connect to host
 jetaprices.com: could not connect to host
 jetmirshatri.com: did not receive HSTS header
 jetsetcharge.com: could not connect to host
 jetsetpay.com: could not connect to host
 jettshome.org: could not connect to host
 jeugdkans.nl: did not receive HSTS header
@@ -2799,33 +2805,32 @@ jottit.com: could not connect to host
 jpaglier.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
 jrvar.com: did not receive HSTS header
 jsanders.us: did not receive HSTS header
 jsg-technologies.de: did not receive HSTS header
-jslay.net: could not connect to host
 jualautoclave.com: did not receive HSTS header
 jualssh.com: could not connect to host
 julian-kipka.de: could not connect to host
 julido.de: did not receive HSTS header
 jumbox.xyz: could not connect to host
 junaos.xyz: did not receive HSTS header
 junge-selbsthilfe.info: could not connect to host
 junjung.me: max-age too low: 0
 junqtion.com: could not connect to host
 jupp0r.de: did not receive HSTS header
 justanothercompany.name: could not connect to host
 justinlemay.com: did not receive HSTS header
 justlikethat.hosting: did not receive HSTS header
 justnaw.co.uk: could not connect to host
 justudin.com: did not receive HSTS header
-jutella.de: could not connect to host
+jutella.de: did not receive HSTS header
 juwairen.cn: did not receive HSTS header
 juxstempel.de: max-age too low: 86400
 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
@@ -2846,17 +2851,16 @@ kanehusky.com: could not connect to host
 kaneo-gmbh.de: did not receive HSTS header
 kaniklani.co.za: could not connect to host
 kaohub.com: could not connect to host
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
 kaputt.com: could not connect to host
 karaoketonight.com: could not connect to host
 karlis-kavacis.id.lv: did not receive HSTS header
-karmaflux.com: did not receive HSTS header
 karpanhellas.com: did not receive HSTS header
 kasilag.me: did not receive HSTS header
 katiaetdavid.fr: could not connect to host
 katproxy.online: could not connect to host
 katproxy.site: could not connect to host
 katproxy.tech: could not connect to host
 katproxy.top: could not connect to host
 kaufkraftkiel.de: could not connect to host
@@ -2864,32 +2868,32 @@ kausch.at: did not receive HSTS header
 kavinvin.me: could not connect to host
 kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
 kaylyn.ink: could not connect to host
 kcolford.com: did not receive HSTS header
 kd-plus.pp.ua: could not connect to host
 kdata.it: did not receive HSTS header
 kdm-online.de: did not receive HSTS header
-kearney.io: could not connect to host
 keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: could not connect to host
 keepassa.co: could not connect to host
 keepclean.me: could not connect to host
 kennethlim.me: could not connect to host
 kerangalam.com: could not connect to host
 kerksanders.nl: did not receive HSTS header
 kermadec.net: could not connect to host
 kernl.us: did not receive HSTS header
 kevinbowers.me: did not receive HSTS header
 keymaster.lookout.com: did not receive HSTS header
 kfbrussels.be: could not connect to host
 kg-rating.com: could not connect to host
 kgxtech.com: max-age too low: 2592000
+khaganat.net: could not connect to host
 ki-on.net: did not receive HSTS header
 kialo.com: did not receive HSTS header
 kickass.al: could not connect to host
 kid-dachau.de: did not receive HSTS header
 kiel-media.de: did not receive HSTS header
 killerit.in: could not connect to host
 kimberg.co.uk: could not connect to host
 kimpost.org: could not connect to host
@@ -2919,16 +2923,17 @@ kitchen-profi.ru: max-age too low: 25920
 kitchenchaos.de: could not connect to host
 kitchenpunx.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]
 kitk.at: could not connect to host
 kitsostech.com: could not connect to host
 kitsta.com: could not connect to host
 kiwiirc.com: max-age too low: 5256000
 kizil.net: could not connect to host
 kjaermaxi.me: did not receive HSTS header
+kksg.com: could not connect to host
 klausbrinch.dk: could not connect to host
 klauwd.com: did not receive HSTS header
 klaxn.org: could not connect to host
 kleertjesvoordelig.nl: did not receive HSTS header
 kleinblogje.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]
 kleppe.co: could not connect to host
 kletterkater.com: did not receive HSTS header
 klicktojob.de: could not connect to host
@@ -2952,16 +2957,17 @@ kolaykaydet.com: did not receive HSTS he
 kolozsvaricsuhe.hu: did not receive HSTS header
 komikito.com: could not connect to host
 kompetenzwerft.de: did not receive HSTS header
 kontaxis.network: could not connect to host
 kontorhaus-schlachte.de: could not connect to host
 koopjesnel.nl: did not receive HSTS header
 koordinate.net: could not connect to host
 kopfsalat.eu: could not connect to host
+kori.ml: could not connect to host
 korni22.org: did not receive HSTS header
 korsanparti.org: could not connect to host
 kostuumstore.nl: could not connect to host
 kotois.com: could not connect to host
 kotonehoko.net: could not connect to host
 kotovstyle.ru: could not connect to host
 koukni.cz: could not connect to host
 kourpe.online: could not connect to host
@@ -2971,21 +2977,23 @@ kraftfleisch.de: did not receive HSTS he
 kralik.xyz: could not connect to host
 krasovsky.me: could not connect to host
 krayx.com: did not receive HSTS header
 kreavis.com: did not receive HSTS header
 kreb.io: could not connect to host
 kredite.sale: could not connect to host
 krestanskydarek.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]
 kriegt.es: did not receive HSTS header
+kristikala.nl: could not connect to host
 kristofferkoch.com: could not connect to host
 krizevackapajdasija.hr: could not connect to host
 krizevci.info: did not receive HSTS header
 kroetenfuchs.de: could not connect to host
 kroodle.nl: did not receive HSTS header
+kroon.email: could not connect to host
 krunut.com: did not receive HSTS header
 krypteia.org: could not connect to host
 kryptomech.com: could not connect to host
 ksfh-mail.de: could not connect to host
 kstan.me: could not connect to host
 kswriter.com: could not connect to host
 kucom.it: did not receive HSTS header
 kueulangtahunanak.net: could not connect to host
@@ -3067,16 +3075,18 @@ leadership9.com: could not connect to ho
 leardev.de: did not receive HSTS header
 learnfrenchfluently.com: did not receive HSTS header
 learningorder.com: could not connect to host
 ledgerscope.net: could not connect to host
 leen.io: did not receive HSTS header
 leermotorrijden.nl: max-age too low: 300
 lefebvristes.com: could not connect to host
 lefebvristes.fr: could not connect to host
+lega-dental.com: could not connect to host
+lega3.dk: could not connect to host
 legarage.org: did not receive HSTS header
 leinir.dk: did not receive HSTS header
 leitner.com.au: did not receive HSTS header
 leiyun.me: did not receive HSTS header
 lellyboi.ml: could not connect to host
 lelongbank.com: did not receive HSTS header
 lemp.io: did not receive HSTS header
 lenovogaming.com: did not receive HSTS header
@@ -3096,16 +3106,17 @@ lesperlesdunet.fr: could not connect to 
 lesquerda.cat: did not receive HSTS header
 letras.mus.br: did not receive HSTS header
 letsmultiplayerplay.com: did not receive HSTS header
 letustravel.tk: could not connect to host
 level-10.net: did not receive HSTS header
 levelum.com: did not receive HSTS header
 levert.ch: could not connect to host
 levindesalpes.fr: did not receive HSTS header
+lexpierce.social: could not connect to host
 lfullerdesign.com: did not receive HSTS header
 lg21.co: could not connect to host
 lgiswa.com.au: did not receive HSTS header
 lgrs.com.au: did not receive HSTS header
 lgts.se: could not connect to host
 lhalbert.xyz: could not connect to host
 li.search.yahoo.com: did not receive HSTS header
 liaillustr.at: did not receive HSTS header
@@ -3117,16 +3128,17 @@ 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
 libertyrp.org: could not connect to host
+library-quest.com: could not connect to host
 library.linode.com: did not receive HSTS header
 libreboot.org: did not receive HSTS header
 librechan.net: could not connect to host
 libreduca.com: could not connect to host
 lidl-selection.at: could not connect to host
 lidlovajogurteka.si: could not connect to host
 lifecoach.tw: did not receive HSTS header
 lifecoachproviders.com: did not receive HSTS header
@@ -3183,17 +3195,16 @@ loafbox.com: could not connect to host
 loansonline.today: could not connect to host
 localchum.com: could not connect to host
 localdrive.me: did not receive HSTS header
 locktheirphone.com: could not connect to host
 locomotive.ca: did not receive HSTS header
 loftboard.eu: could not connect to host
 logario.com.br: could not connect to host
 logcat.info: could not connect to host
-logfile.ch: could not connect to host
 logicaladvertising.com: could not connect to host
 login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless)
 login.persona.org: could not connect to host
 loginseite.com: could not connect to host
 lognot.net: could not connect to host
 loli.bz: could not connect to host
 lolicore.ch: could not connect to host
 lolidunno.com: could not connect to host
@@ -3258,21 +3269,19 @@ luoe.ml: could not connect to host
 luoxiao.im: could not connect to host
 luripump.se: could not connect to host
 lusis.fr: did not receive HSTS header
 lusis.net: did not receive HSTS header
 lustrumxi.nl: did not receive HSTS header
 luther.fi: did not receive HSTS header
 luxus-russen.de: did not receive HSTS header
 luxwatch.com: could not connect to host
-luzat.com: could not connect to host
 lv.search.yahoo.com: did not receive HSTS header
 lydiagorstein.com: could not connect to host
 lylares.com: did not receive HSTS header
-lzahq.tech: did not receive HSTS header
 lzkill.com: did not receive HSTS header
 m-ali.xyz: could not connect to host
 m.gparent.org: could not connect to host
 m.nu: did not receive HSTS header
 m0wef.uk: could not connect to host
 m2tc.fr: could not connect to host
 m3-gmbh.de: did not receive HSTS header
 m82labs.com: did not receive HSTS header
@@ -3290,16 +3299,17 @@ madars.org: did not receive HSTS header
 maddin.ga: could not connect to host
 madebymagnitude.com: did not receive HSTS header
 maderwin.com: did not receive HSTS header
 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
 magia360.com: did not receive HSTS header
+magilio.com: could not connect to host
 magneticattraction.com.au: did not receive HSTS header
 mahamed91.pw: could not connect to host
 mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
 mail.google.com: did not receive HSTS header (error ignored - included regardless)
 maildragon.com: could not connect to host
 mailhost.it: could not connect to host
 maintainerheaven.ch: could not connect to host
 majesnix.org: did not receive HSTS header
@@ -3315,25 +3325,26 @@ malmstroms-co.se: could not connect to h
 maltes.website: could not connect to host
 malwaretips.com: did not receive HSTS header
 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
-manage.zenpayroll.com: could not connect to host
+manage.zenpayroll.com: 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
 manitasicily.com: did not receive HSTS header
 manningbrothers.com: 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
+marbogardenlidkoping.se: could not connect to host
 marchagen.nl: did not receive HSTS header
 marcofinke.de: could not connect to host
 marcontrol.com: did not receive HSTS header
 marcosteixeira.tk: could not connect to host
 marcus-scheffler.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
@@ -3374,17 +3385,16 @@ matrix.ac: could not connect to host
 matrixcheats.net: could not connect to host
 matsuz.com: could not connect to host
 mattandreko.com: did not receive HSTS header
 mattberryman.com: max-age too low: 0
 matterconcern.com: could not connect to host
 mattfin.ch: could not connect to host
 matthewprenger.com: could not connect to host
 matthiassteen.be: max-age too low: 0
-mattia98.org: could not connect to host
 mattressinsider.com: max-age too low: 3153600
 mattsvensson.com: max-age too low: 0
 matty.digital: max-age too low: 3600
 maultrom.ml: could not connect to host
 maupiknik.com: did not receive HSTS header
 maur.cz: did not receive HSTS header
 mavisang.cf: could not connect to host
 mawe.red: could not connect to host
@@ -3463,22 +3473,23 @@ mhealthdemocamp.com: could not connect t
 mhertel.com: did not receive HSTS header
 mhict.nl: could not connect to host
 mht-travel.com: could not connect to host
 mhx.pw: could not connect to host
 mia.to: could not connect to host
 michaeldemuth.com: could not connect to host
 michaelfitzpatrickruth.com: did not receive HSTS header
 michaelmorpurgo.com: did not receive HSTS header
+michaelscrivo.com: did not receive HSTS header
 michaelwaite.org: could not connect to host
 michal-kral.cz: could not connect to host
 michalborka.cz: could not connect to host
 michelchouinard.ca: could not connect to host
 michelledonelan.co.uk: did not receive HSTS header
-miconware.de: did not receive HSTS header
+miconware.de: could not connect to host
 micro-dv.ru: could not connect to host
 micro-rain-systems.com: did not receive HSTS header
 microme.ga: could not connect to host
 micropple.net: could not connect to host
 microtalk.org: could not connect to host
 midirs.org: did not receive HSTS header
 midonet.org: did not receive HSTS header
 midwestwomenworkers.org: could not connect to host
@@ -3566,17 +3577,17 @@ mogry.net: could not connect to host
 moho.kr: could not connect to host
 moitur.com: did not receive HSTS header
 mokhtarmial.com: max-age too low: 2592000
 mols.me: could not connect to host
 momoka.moe: could not connect to host
 mona.lu: did not receive HSTS header
 monarca.systems: could not connect to host
 monasterialis.eu: could not connect to host
-mondar.io: could not connect to host
+mondar.io: did not receive HSTS header
 mondopoint.com: did not receive HSTS header
 mondwandler.de: could not connect to host
 moneromerchant.com: could not connect to host
 moneychangersoftware.com: did not receive HSTS header
 moneycrownmedia.com: could not connect to host
 moneytoday.com: max-age too low: 0
 monika-sokol.de: did not receive HSTS header
 monitman.com: did not receive HSTS header
@@ -3618,17 +3629,16 @@ mpintaamalabanna.it: could not connect t
 mqas.net: could not connect to host
 mrawe.com: could not connect to host
 mrdani.net: could not connect to host
 mrettich.org: did not receive HSTS header
 mrning.com: did not receive HSTS header
 mrnonz.com: max-age too low: 0
 mrpopat.in: did not receive HSTS header
 mrs-shop.com: did not receive HSTS header
-mrsk.me: could not connect to host
 msc-seereisen.net: could not connect to host
 mshemailmarketer.com.au: did not receive HSTS header
 msno.no: did not receive HSTS header
 mszaki.com: did not receive HSTS header
 mt.me.uk: could not connect to host
 mt.search.yahoo.com: did not receive HSTS header
 mtcgf.com: did not receive HSTS header
 mtg-esport.de: did not receive HSTS header
@@ -3641,24 +3651,24 @@ munkiepus.com: did not receive HSTS head
 munuc.org: did not receive HSTS header
 munzee.com: did not receive HSTS header
 muriburi.land: could not connect to host
 muriburiland.com: could not connect to host
 murodese.org: could not connect to host
 murrayrun.com: could not connect to host
 museminder2.com: did not receive HSTS header
 mushroomandfern.com: could not connect to host
+musi.cx: could not connect to host
 musikkfondene.no: did not receive HSTS header
 mustika.cf: could not connect to host
 mutamatic.com: could not connect to host
 muzykaprzeszladoplay.pl: did not receive HSTS header
 mvanmarketing.nl: did not receive HSTS header
 mvsecurity.nl: could not connect to host
 mw.search.yahoo.com: did not receive HSTS header
-mxawei.cn: could not connect to host
 my-owncloud.com: could not connect to host
 my.alfresco.com: did not receive HSTS header
 my.swedbank.se: did not receive HSTS header
 myairshop.gr: could not connect to host
 myandroidtools.cc: could not connect to host
 mybudget.xyz: could not connect to host
 mybusiness.cm: did not receive HSTS header
 mychocolateweightloss.com: did not receive HSTS header
@@ -3678,20 +3688,22 @@ mykeepsake.xyz: could not connect to hos
 mykolab.com: did not receive HSTS header
 mykreuzfahrt.de: could not connect to host
 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
+myrig.com: could not connect to host
+myrig.io: could not connect to host
+myrig.net: could not connect to host
 mysecretrewards.com: did not receive HSTS header
 mystery-science-theater-3000.de: did not receive HSTS header
 mythlogic.com: did not receive HSTS header
-mythslegendscollection.com: did not receive HSTS header
 myweb360.de: did not receive HSTS header
 myzone.com: did not receive HSTS header
 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
 nabytko.cz: did not receive HSTS header
 nadia.pt: could not connect to host
@@ -3759,16 +3771,17 @@ nestedquotes.ca: could not connect to ho
 net-navi.cc: max-age too low: 0
 netbox.cc: could not connect to host
 netherwind.eu: could not connect to host
 netlilo.com: could not connect to host
 netloanusa.com: could not connect to host
 netmagik.com: did not receive HSTS header
 netresourcedesign.com: did not receive HSTS header
 nettefoundation.com: could not connect to host
+networking4all.com: did not receive HSTS header
 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
 netzvieh.de: could not connect to host
 netzzwerg4u.de: could not connect to host
 neueonlinecasino2016.com: could not connect to host
 neuralgic.net: could not connect to host
@@ -3808,21 +3821,19 @@ 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
 niho.jp: did not receive HSTS header
-nikcub.com: did not receive HSTS header
-nikklassen.ca: could not connect to host
+nikcub.com: could not connect to host
 nikksno.io: did not receive HSTS header
 niklaslindblad.se: did not receive HSTS header
-nikobradshaw.com: did not receive HSTS header
 nikomo.fi: did not receive HSTS header
 ninchisho-online.com: did not receive HSTS header
 ninhs.org: could not connect to host
 nippler.org: did not receive HSTS header
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
 nitrix.me: could not connect to host
 niva.synology.me: could not connect to host
@@ -3848,21 +3859,21 @@ nomorebytes.de: could not connect to hos
 nope.website: could not connect to host
 nopex.no: could not connect to host
 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
-nothing.net.nz: could not connect to host
+nothing.net.nz: max-age too low: 7776000
 notinprod.com: did not receive HSTS header
 nottheonion.net: did not receive HSTS header
 nouvelle-vague-saint-cast.fr: did not receive HSTS header
-novaco.in: could not connect to host
+novaco.in: max-age too low: 3600
 novacoast.com: did not receive HSTS header
 novatrucking.de: could not connect to host
 nowak.ninja: did not receive HSTS header
 noworrywp.com: could not connect to host
 nozoe.jp: could not connect to host
 np.search.yahoo.com: did not receive HSTS header
 npol.de: could not connect to host
 nqesh.com: could not connect to host
@@ -3897,33 +3908,33 @@ nutsandboltsmedia.com: did not receive H
 nuttyveg.com: could not connect to host
 nwa.xyz: could not connect to host
 nweb.co.nz: could not connect to host
 nwerc.party: could not connect to host
 nwgh.org: could not connect to host
 nwork.media: could not connect to host
 nyantec.com: did not receive HSTS header
 nycroth.com: did not receive HSTS header
-nymphetomania.net: did not receive HSTS header
 nys-hk.com: could not connect to host
 nysepho.pw: could not connect to host
 nysifclaimcentral.com: did not receive HSTS header
 nystart.no: did not receive HSTS header
 nz.search.yahoo.com: max-age too low: 172800
 nzb.cat: did not receive HSTS header
 nzbs.io: could not connect to host
 nzquakes.maori.nz: did not receive HSTS header
 o0o.one: could not connect to host
 oasis.mobi: did not receive HSTS header
 obermeiers.eu: could not connect to host
 oblast45.ru: did not receive HSTS header
 obsydian.org: could not connect to host
 occentus.net: did not receive HSTS header
+occupymedia.org: did not receive HSTS header
 ochaken.cf: could not connect to host
-octocat.ninja: did not receive HSTS header
+octocat.ninja: could not connect to host
 odin.xxx: could not connect to host
 odinoffice.no: did not receive HSTS header
 odysseyandco.com: could not connect to host
 oe8.bet: could not connect to host
 ofcourselanguages.com: could not connect to host
 offenedialoge.de: max-age too low: 2592000
 officeclub.com.mx: did not receive HSTS header
 offshore-firma.org: could not connect to host
@@ -3931,17 +3942,17 @@ ogogoshop.com: could not connect to host
 ohsocool.org: could not connect to host
 oishioffice.com: did not receive HSTS header
 okane.love: could not connect to host
 okok-rent.com: could not connect to host
 okok.rent: could not connect to host
 okutama.in.th: could not connect to host
 olanderflorist.com: could not connect to host
 olcso-vps-szerver.hu: could not connect to host
-oldchaphome.nl: did not receive HSTS header
+oldchaphome.nl: could not connect to host
 oldoakflorist.com: could not connect to host
 oliveraiedelabastideblanche.fr: could not connect to host
 oliverdunk.com: did not receive HSTS header
 ollehbizev.co.kr: could not connect to host
 olswangtrainees.com: could not connect to host
 omacostudio.com: could not connect to host
 omgaanmetidealen.com: could not connect to host
 ominto.com: max-age too low: 0
@@ -4021,16 +4032,18 @@ organiplan.com: could not connect to hos
 orhideous.name: 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
 orionrebellion.com: could not connect to host
 orleika.ml: could not connect to host
 orthodoxy.lt: did not receive HSTS header
 osaiyuwu.com: could not connect to host
+oscloud.com: could not connect to host
+oscloud.com.ua: could not connect to host
 oscsdp.cz: could not connect to host
 oslfoundation.org: could not connect to host
 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
 osterkraenzchen.de: could not connect to host
 osticketawesome.com: did not receive HSTS header
@@ -4090,17 +4103,16 @@ panzer72.ru: 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
 paperhaven.com.au: did not receive HSTS header
 papierniak.net: could not connect to host
 papygeek.com: could not connect to host
 parabhairavayoga.com: did not receive HSTS header
 paradiselost.com: max-age too low: 0
-parchcraftaustralia.com: did not receive HSTS header
 parent5446.us: could not connect to host
 parentmail.co.uk: did not receive HSTS header
 parithy.net: could not connect to host
 parkingplus.co.il: could not connect to host
 parkrocker.com: did not receive HSTS header
 parpaing-paillette.net: could not connect to host
 particonpsplus.it: did not receive HSTS header
 partijtjevoordevrijheid.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 118"  data: no]
@@ -4135,42 +4147,40 @@ paxwinkel.nl: did not receive HSTS heade
 pay.gigahost.dk: did not receive HSTS header
 payfreez.com: could not connect to host
 payments-reference.org: could not connect to host
 payments.google.com: did not receive HSTS header (error ignored - included regardless)
 payroll.ch: could not connect to host
 pbapp.net: did not receive HSTS header
 pbbr.com: did not receive HSTS header
 pbprint.ru: max-age too low: 0
-pbytes.com: could not connect to host
 pc-nf.de: did not receive HSTS header
 pcfun.net: could not connect to host
 pchax.net: could not connect to host
 pchospital.cc: did not receive HSTS header
 pdamsidoarjo.co.id: could not connect to host
 pdevio.com: could not connect to host
 pdf.yt: could not connect to host
 peakapp.nl: could not connect to host
 peerherrmann.de: could not connect to host
 peetah.com: max-age too low: 0
-peissen.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]
+peissen.com: could not connect to host
 pekkapikkarainen.fi: did not receive HSTS header
 pekkarik.ru: could not connect to host
 pengi.me: could not connect to host
 pengui.uk: could not connect to host
 penguinclientsystem.com: did not receive HSTS header
 pentano.net: could not connect to host
 peperiot.com: did not receive HSTS header
 pepperhead.com: did not receive HSTS header
 pepperworldhotshop.de: did not receive HSTS header
-perd.re: could not connect to host
 perfect-radiant-wrinkles.com: could not connect to host
 perfectionis.me: could not connect to host
 performous.org: could not connect to host
-perfumista.vn: did not receive HSTS header
+perfumista.vn: could not connect to host
 perlwork.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]
 perplex.nl: did not receive HSTS header
 perroud.pro: could not connect to host
 personaldatabasen.no: could not connect to host
 personalinjurylist.com: did not receive HSTS header
 personalizedtouch.co: could not connect to host
 perthdevicelab.com: did not receive HSTS header
 pesmyclub.com: did not receive HSTS header
@@ -4189,34 +4199,32 @@ pexieapp.com: did not receive HSTS heade
 peytonfarrar.com: did not receive HSTS header
 pgpm.io: could not connect to host
 phalconist.com: did not receive HSTS header
 pharmgkb.org: could not connect to host
 phillipgoldfarb.com: could not connect to host
 phillprice.com: could not connect to host
 philpropertygroup.com: could not connect to host
 phoebe.co.nz: did not receive HSTS header
-phoenixlogan.com: could not connect to host
 phonenumberinfo.co.uk: could not connect to host
 phongmay24h.com: could not connect to host
 photoancestry.com: did not receive HSTS header
 photoblogverona.com: could not connect to host
 php-bach.org: could not connect to host
 phus.lu: did not receive HSTS header
 picardiascr.com: did not receive HSTS header
 pickr.co: could not connect to host
 picotronic.biz: could not connect to host
 picscare.co.uk: did not receive HSTS header
 pieterjangeeroms.me: 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
-pinemountainnursery.com.au: did not receive HSTS header
 pippen.io: could not connect to host
 piratebit.tech: could not connect to host
 piratedb.com: could not connect to host
 piratedot.com: could not connect to host
 piratelist.online: could not connect to host
 piratenlogin.de: could not connect to host
 pirateproxy.pe: could not connect to host
 pirateproxy.sx: could not connect to host
@@ -4240,16 +4248,17 @@ placollection.org: could not connect to 
 plaettliaktion.ch: did not receive HSTS header
 planpharmacy.com: could not connect to host
 plass.hamburg: could not connect to host
 platform.lookout.com: could not connect to host
 platomania.eu: did not receive HSTS header
 play.google.com: did not receive HSTS header (error ignored - included regardless)
 playflick.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
 playsharp.com: could not connect to host
 pleier-it.de: did not receive HSTS header
 pleier.it: did not receive HSTS header
 plfgr.eu.org: 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
@@ -4288,16 +4297,17 @@ pontualcomp.com: could not connect to ho
 pony.today: could not connect to host
 poolsandstuff.com: did not receive HSTS header
 poon.tech: could not connect to host
 porno-gif.ru: did not receive HSTS header
 pornstars.me: did not receive HSTS header
 portalplatform.net: could not connect to host
 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
 potsky.com: did not receive HSTS header
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
@@ -4340,24 +4350,22 @@ profivps.com: could not connect to host
 profundr.com: could not connect to host
 profusion.io: could not connect to host
 progblog.net: could not connect to host
 progress-technologies.com: could not connect to host
 prohostonline.fi: could not connect to host
 proitconsulting.com.au: could not connect to host
 project-sparks.eu: did not receive HSTS header
 projectmercury.space: could not connect to host
-prok.pw: could not connect to host
 promecon-gmbh.de: did not receive HSTS header
 prontocleaners.co.uk: could not connect to host
 prontolight.com: did not receive HSTS header
 prontomovers.co.uk: could not connect to host
 propactrading.com: could not connect to host
 property-catalogue.eu: did not receive HSTS header
-proposalonline.com: did not receive HSTS header
 prosocialmachines.com: could not connect to host
 prosoft.sk: did not receive HSTS header
 prosperident.com: did not receive HSTS header
 protoyou.de: did not receive HSTS header
 prowhisky.de: did not receive HSTS header
 proximato.com: could not connect to host
 proxybay.al: could not connect to host
 proxybay.club: could not connect to host
@@ -4365,33 +4373,32 @@ proxybay.info: did not receive HSTS head
 proxybay.top: did not receive HSTS header
 proxyowl.pw: could not connect to host
 proxyportal.org: did not receive HSTS header
 pruikshop.nl: could not connect to host
 prxio.date: could not connect to host
 prxio.site: could not connect to host
 prytkov.com: did not receive HSTS header
 pshostpk.com: did not receive HSTS header
+pstrozniak.com: could not connect to host
 psw.academy: did not receive HSTS header
 psw.consulting: did not receive HSTS header
-psychoco.net: could not connect to host
 ptn.moscow: could not connect to host
 pubkey.is: could not connect to host
 pugliese.fr: could not connect to host
 puiterwijk.org: could not connect to host
 pumpgames.net: could not connect to host
 punchr-kamikazee.rhcloud.com: did not receive HSTS header
 puppydns.com: did not receive HSTS header
 purewebmasters.com: could not connect to host
 purplemoon.mobi: did not receive HSTS header
 purplestar.mobi: did not receive HSTS header
 push.world: did not receive HSTS header
 pushapp.org: did not receive HSTS header
 pwd.ovh: could not connect to host
-pwnies.dk: could not connect to host
 pwnsdx.pw: could not connect to host
 py.search.yahoo.com: did not receive HSTS header
 pyol.org: could not connect to host
 pypi-status.org: could not connect to host
 pyplo.org: did not receive HSTS header
 pypt.lt: did not receive HSTS header
 pzme.me: could not connect to host
 q2.si: did not receive HSTS header
@@ -4521,27 +4528,27 @@ reinaldudras.ee: did not receive HSTS he
 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
 relaxhavefun.com: did not receive HSTS header
 relayawards.com: could not connect to host
 reliable-mail.de: did not receive HSTS header
 relisten.nl: did not receive HSTS header
-relvan.com: did not receive HSTS header
 rem.pe: could not connect to host
 remedioskaseros.com: did not receive HSTS header
 remitatm.com: did not receive HSTS header
 remodela.com.ve: could not connect to host
 remonttitekniikka.fi: could not connect to host
 rene-schwarz.com: could not connect to host
 renideo.fr: could not connect to host
 renlong.org: did not receive HSTS header
 renrenss.com: did not receive HSTS header
 rentacarcluj.xyz: could not connect to host
+rentbrowser.com: could not connect to host
 rentbrowsertrain.me: could not connect to host
 rentcarassist.com: could not connect to host
 renteater.com: could not connect to host
 replacemychina.com: could not connect to host
 reprolife.co.uk: could not connect to host
 res-rheingau.de: did not receive HSTS header
 res42.com: could not connect to host
 resama.eu: did not receive HSTS header
@@ -4573,17 +4580,16 @@ rideworks.com: did not receive HSTS head
 ridwan.co: did not receive HSTS header
 riesenmikrobe.de: max-age too low: 86400
 riesenmikroben.at: max-age too low: 86400
 riesenmikroben.de: max-age too low: 86400
 riesenviren.de: max-age too low: 86400
 riesenweber.id.au: did not receive HSTS header
 right2.org: could not connect to host
 righttoknow.ie: did not receive HSTS header
-rigolitch.fr: did not receive HSTS header
 rijndael.xyz: could not connect to host
 rika.me: could not connect to host
 ring0.xyz: did not receive HSTS header
 ringh.am: could not connect to host
 rippleunion.com: could not connect to host
 riskmgt.com.au: could not connect to host
 rivlo.com: could not connect to host
 rix.ninja: could not connect to host
@@ -4598,16 +4604,17 @@ roadfeast.com: could not connect to host
 roan24.pl: did not receive HSTS header
 robertglastra.com: could not connect to host
 robigalia.org: did not receive HSTS header
 robin.co.kr: did not receive HSTS header
 robteix.com: did not receive HSTS header
 robtex.net: did not receive HSTS header
 robtex.org: did not receive HSTS header
 rochman.id: could not connect to host
+rockeyscrivo.com: did not receive HSTS header
 rocksberg.net: could not connect to host
 rockstarloan.com: could not connect to host
 rockz.io: could not connect to host
 roddis.net: did not receive HSTS header
 rodney.id.au: did not receive HSTS header
 rodosto.com: could not connect to host
 roeper.party: could not connect to host
 roesemann.email: could not connect to host
@@ -4642,28 +4649,26 @@ rprimas.duckdns.org: could not connect t
 rpy.xyz: could not connect to host
 rr.in.th: could not connect to host
 rrke.cc: did not receive HSTS header
 rro.rs: could not connect to host
 rsajeey.info: could not connect to host
 rsampaio.info: could not connect to host
 rsf.io: could not connect to host
 rsmaps.org: could not connect to host
-rtho.me: could not connect to host
 rubbereggs.ca: could not connect to host
 rubberfurs.org: did not receive HSTS header
 rubecodeberg.com: could not connect to host
 rubenschulz.nl: did not receive HSTS header
 rubi-ka.net: could not connect to host
 ruborr.se: did not receive HSTS header
 rubysecurity.org: did not receive HSTS header
 rubyshop.nl: max-age too low: 604800
 rudeotter.com: did not receive HSTS header
 rugirlfriend.com: could not connect to host
-ruht.ro: could not connect to host
 ruiming.me: did not receive HSTS header
 runawebinar.nl: could not connect to host
 runementors.com: could not connect to host
 runtondev.com: did not receive HSTS header
 ruqu.nl: could not connect to host
 rusadmin.biz: did not receive HSTS header
 rushpoppershop.co.uk: did not receive HSTS header
 ruska-modra.cz: did not receive HSTS header
@@ -4672,17 +4677,17 @@ rusl.me: could not connect to host
 russmarshall.com: could not connect to host
 ruxit.com: did not receive HSTS header
 rw.search.yahoo.com: did not receive HSTS header
 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
 rylin.net: did not receive HSTS header
-rzegroup.com: did not receive HSTS header
+rzegroup.com: could not connect to host
 s.how: did not receive HSTS header
 safelist.eu: 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
 safewings-nh.nl: did not receive HSTS header
 sageth.com: max-age too low: 0
 sah3.net: could not connect to host
@@ -4730,43 +4735,44 @@ sawamura-rental.com: did not receive HST
 sazima.ru: did not receive HSTS header
 sbox-archives.com: could not connect to host
 sby.de: did not receive HSTS header
 sc4le.com: could not connect to host
 scannabi.com: could not connect to host
 schadegarant.net: could not connect to host
 schauer.so: could not connect to host
 scherzstempel.de: max-age too low: 86400
-schippers-it.nl: did not receive HSTS header
 schnell-gold.com: could not connect to host
 schooltrends.co.uk: did not receive HSTS header
 schreiber-netzwerk.eu: did not receive HSTS header
 schrodinger.io: could not connect to host
 schulterglatzen-altenwalde.de: could not connect to host
 schultzflorists.com: could not connect to host
 schwarzkopfforyou.de: did not receive HSTS header
 schweizerbolzonello.net: could not connect to host
 scicasts.com: max-age too low: 7776000
 scienceathome.org: did not receive HSTS header
+sciencemonster.co.uk: could not connect to host
 scivillage.com: did not receive HSTS header
+sclgroup.cc: did not receive HSTS header
 scooshonline.co.uk: did not receive HSTS header
 scotbirchfield.com: did not receive HSTS header
 scottdial.com: did not receive HSTS header
 scottferguson.com.au: did not receive HSTS header
 scottgthomas.com: could not connect to host
 scottynordstrom.org: did not receive HSTS header
 scourt.info: did not receive HSTS header
 scourt.org.ua: did not receive HSTS header
 scrambl.is: could not connect to host
 scrambler.in: could not connect to host
 scrapings.net: could not connect to host
 screencaster.io: did not receive HSTS header
 screenresolution.space: could not connect to host
 screensaversplanet.com: did not receive HSTS header
-scribbleserver.com: did not receive HSTS header
+scribbleserver.com: could not connect to host
 scribe.systems: could not connect to host
 scrion.com: could not connect to host
 script.google.com: did not receive HSTS header (error ignored - included regardless)
 scriptenforcer.net: could not connect to host
 scriptict.nl: could not connect to host
 sdmoscow.ru: could not connect to host
 sdrobs.com: did not receive HSTS header
 sdsl-speedtest.de: could not connect to host
@@ -4833,17 +4839,16 @@ serenitycreams.com: did not receive HSTS
 serfdom.io: did not receive HSTS header
 serized.pw: could not connect to host
 servercode.ca: did not receive HSTS header
 serverdensity.io: did not receive HSTS header
 servergno.me: did not receive HSTS header
 servermonkey.nl: could not connect to host
 seryo.moe: could not connect to host
 seryo.net: could not connect to host
-sesha.co.za: could not connect to host
 sethcaplan.com: could not connect to host
 setphaserstostun.org: could not connect to host
 setuid.de: could not connect to host
 setuid.io: did not receive HSTS header
 sevsey.ru: could not connect to host
 seyahatsagliksigortalari.com: could not connect to host
 sfsltd.com: did not receive HSTS header
 shadoom.com: did not receive HSTS header
@@ -4854,17 +4859,16 @@ shanekoster.net: did not receive HSTS he
 shanesage.com: could not connect to host
 shang-yu.cn: did not receive HSTS header
 shapesedinburgh.co.uk: did not receive HSTS header
 shareimg.xyz: could not connect to host
 sharepass.pw: could not connect to host
 sharevari.com: did not receive HSTS header
 shauncrowley.co.uk: could not connect to host
 shaunwheelhou.se: could not connect to host
-shav.it: could not connect to host
 shellj.me: max-age too low: 86400
 shellsec.pw: did not receive HSTS header
 shereallyheals.com: could not connect to host
 shibe.club: could not connect to host
 shiftins.com: did not receive HSTS header
 shiftplanning.com: did not receive HSTS header
 shiinko.com: could not connect to host
 shindorei.fr: did not receive HSTS header
@@ -4891,17 +4895,16 @@ siammedia.co: could not connect to host
 siamsnus.com: did not receive HSTS header
 sichere-kartenakzeptanz.de: did not receive HSTS header
 siciliadigitale.pro: could not connect to host
 siddhant.me: max-age too low: 0
 siebens.net: could not connect to host
 sifls.com: could not connect to host
 sig6.org: could not connect to host
 sijimi.cn: did not receive HSTS header
-sikayetvar.com: did not receive HSTS header
 silaslova-ekb.ru: could not connect to host
 silentcircle.com: did not receive HSTS header
 silentcircle.org: could not connect to host
 silentexplosion.de: could not connect to host
 silentlink.io: could not connect to host
 silicagelpackets.ca: did not receive HSTS header
 silkebaekken.no: did not receive HSTS header
 silver-drachenkrieger.de: did not receive HSTS header
@@ -4982,46 +4985,49 @@ snailing.org: could not connect to host
 snakehosting.dk: 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: could not connect to host
 sng.my: could not connect to host
 sniderman.eu.org: could not connect to host
 snip.host: could not connect to host
+snippet.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
 sobinski.pl: did not receive HSTS header
 sobotkama.eu: did not receive HSTS header
 soccergif.com: could not connect to host
 soci.ml: did not receive HSTS header
 socialbillboard.com: could not connect to host
 socialhead.io: could not connect to host
 socialprize.com: could not connect to host
 socialspirit.com.br: did not receive HSTS header
 sockeye.cc: could not connect to host
 socomponents.co.uk: did not receive HSTS header
 sodacore.com: could not connect to host
+soe-server.com: could not connect to host
 software.rocks: could not connect to host
 sogeek.me: did not receive HSTS header
 sokolka.tv: did not receive HSTS header
 sol-3.de: did not receive HSTS header
 solidfuelappliancespares.co.uk: did not receive HSTS header
 solidus.systems: could not connect to host
 soll-i.ch: did not receive HSTS header
 solsystems.ru: could not connect to host
 somali-derp.com: could not connect to host
 someshit.xyz: could not connect to host
 somethingnew.xyz: could not connect to host
 songzhuolun.com: could not connect to host
 sonic.network: did not receive HSTS header
 sonicrainboom.rocks: did not receive HSTS header
 soobi.org: did not receive HSTS header
 soondy.com: did not receive HSTS header
+soph.us: could not connect to host
 sosaka.ml: could not connect to host
 sotor.de: did not receive HSTS header
 soucorneteiro.com.br: could not connect to host
 soulema.com: could not connect to host
 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
@@ -5053,17 +5059,18 @@ spherenix.org: could not connect to host
 spiegels.nl: could not connect to host
 spielcasinos.com: did not receive HSTS header
 spiet.nl: could not connect to host
 spikeykc.me: did not receive HSTS header
 spillmaker.no: did not receive HSTS header
 spilsbury.io: could not connect to host
 spirit-dev.net: max-age too low: 0
 spititout.it: could not connect to host
-spittersberger.recipes: could not connect to host
+spittersberger.recipes: did not receive HSTS header
+spodelime.com: did not receive HSTS header
 sponsortobias.com: could not connect to host
 sportchirp-internal.azurewebsites.net: did not receive HSTS header
 sporthit.ru: did not receive HSTS header
 sportwette.eu: did not receive HSTS header
 spot-events.com: could not connect to host
 spotifyripper.tk: could not connect to host
 spotlightsrule.ddns.net: could not connect to host
 spr.id.au: did not receive HSTS header
@@ -5089,16 +5096,17 @@ staack.com: could not connect to host
 stabletoken.com: could not connect to host
 stadjerspasonline.nl: could not connect to host
 stadtbauwerk.at: did not receive HSTS header
 staffjoy.com: did not receive HSTS header
 staffjoystaging.com: did not receive HSTS header
 stahl.xyz: could not connect to host
 stalkerhispano.com: max-age too low: 0
 stalschermer.nl: could not connect to host
+stamonicatourandtravel.com: could not connect to host
 standardssuck.org: did not receive HSTS header
 standingmist.com: did not receive HSTS header
 starandshield.com: did not receive HSTS header
 stargatepartners.com: did not receive HSTS header
 starmusic.ga: did not receive HSTS header
 starttraffic.com: did not receive HSTS header
 startuponcloud.com: max-age too low: 2678400
 startuppeople.co.uk: could not connect to host
@@ -5150,52 +5158,50 @@ strasweb.fr: did not receive HSTS header
 strbt.de: could not connect to host
 strchr.com: did not receive HSTS header
 stream.pub: did not receive HSTS header
 streamingeverywhere.com: could not connect to host
 streamingmagazin.de: could not connect to host
 streampanel.net: did not receive HSTS header
 streams.dyndns.org: could not connect to host
 strictlysudo.com: could not connect to host
-strife.tk: could not connect to host
 strivephysmed.com: did not receive HSTS header
 stroeercrm.de: could not connect to host
 strongest-privacy.com: could not connect to host
 stuartbaxter.co: could not connect to host
 student-scientist.org: did not receive HSTS header
-student.andover.edu: did not receive HSTS header
+student.andover.edu: could not connect to host
 studentresearcher.org: did not receive HSTS header
 studentskydenik.cz: could not connect to host
 studenttravel.cz: did not receive HSTS header
 studinf.xyz: could not connect to host
 studio-panic.com: 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
-stuka-art.de: could not connect to host
 sturbock.me: did not receive HSTS header
 stylenda.com: could not connect to host
 subbing.work: could not connect to host
 subdimension.org: did not receive HSTS header
 subeesu.com: could not connect to host
 subhacker.net: did not receive HSTS header
 subrosa.io: could not connect to host
 subsys.no: did not receive HSTS header
 subtitle.rip: could not connect to host
-suche.org: 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
-suki.moe: could not connect to host
 suksit.com: could not connect to host
+summitbankofkc.com: did not receive HSTS header
 sumoatm.com: did not receive HSTS header
 sumoscout.de: did not receive HSTS header
 suncountrymarine.com: did not receive HSTS header
+sunflyer.cn: did not receive HSTS header
 sunfulong.me: could not connect to host
 sunnyfruit.ru: did not receive HSTS header
 sunshinepress.org: could not connect to host
 sunyanzi.tk: could not connect to host
 suos.io: could not connect to host
 supcro.com: could not connect to host
 super-erotica.ru: did not receive HSTS header
 super-garciniaslim.com: could not connect to host
@@ -5241,16 +5247,17 @@ syncclinicalstudy.com: could not connect
 syncer.jp: 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
 sys.tf: could not connect to host
+sysert.tv: could not connect to host
 sysgeek.cn: could not connect to host
 syso.name: could not connect to host
 syspen.space: did not receive HSTS header
 systemd.me: could not connect to host
 szaszm.tk: max-age too low: 0
 t-complex.space: could not connect to host
 t-ken.xyz: could not connect to host
 t-shirts4less.nl: did not receive HSTS header
@@ -5309,17 +5316,16 @@ teachforcanada.ca: did not receive HSTS 
 team-teasers.com: could not connect to host
 teamblueridge.org: could not connect to host
 teamsocial.co: did not receive HSTS header
 teamzeus.cz: could not connect to host
 tech-finder.fr: could not connect to host
 tech55i.com: could not connect to host
 techandtux.de: could not connect to host
 techassist.io: did not receive HSTS header
-techcentric.com: could not connect to host
 techelements.co: could not connect to host
 techhipster.net: could not connect to host
 techhub.ml: could not connect to host
 techllage.com: could not connect to host
 techloaner.com: could not connect to host
 techmatehq.com: could not connect to host
 technogroup.cz: did not receive HSTS header
 technosavvyport.com: did not receive HSTS header
@@ -5342,18 +5348,18 @@ temehu.com: did not receive HSTS header
 tempcraft.net: could not connect to host
 tempus-aquilae.de: could not connect to host
 tendertool.nl: could not connect to host
 tengroup.com: did not receive HSTS header
 tenni.xyz: could not connect to host
 tensei-slime.com: did not receive HSTS header
 tensionup.com: could not connect to host
 tenthousandcoffees.com: did not receive HSTS header
+tentins.com: could not connect to host
 teos.online: could not connect to host
-tequilazor.com: could not connect to host
 teriiphotography.com: could not connect to host
 terra.by: did not receive HSTS header
 terrax.berlin: could not connect to host
 terrax.info: could not connect to host
 terry.pub: did not receive HSTS header
 testandroid.xyz: could not connect to host
 testnode.xyz: could not connect to host
 teulon.eu: could not connect to host
@@ -5372,16 +5378,17 @@ thaihostcool.com: did not receive HSTS h
 thailandpropertylistings.com: did not receive HSTS header
 the-construct.com: could not connect to host
 the-delta.net.eu.org: 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: could not connect to host
 thebigfail.net: could not connect to host
+thebrightons.co.uk: did not receive HSTS header
 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
 theelitebuzz.com: did not receive HSTS header
 theendofzion.com: did not receive HSTS header
@@ -5430,29 +5437,32 @@ thierfreund.de: could not connect to hos
 thinkcoding.de: could not connect to host
 thinkcoding.org: could not connect to host
 thinlyveiledcontempt.com: could not connect to host
 thirdpartytrade.com: did not receive HSTS header
 thirty5.net: did not receive HSTS header
 thisisacompletetest.ga: could not connect to host
 thisisforager.com: could not connect to host
 thiswebhost.com: did not receive HSTS header
+thomascloud.ddns.net: could not connect to host
 thomaskliszowski.fr: did not receive HSTS header
 thomasschweizer.net: could not connect to host
 thorncreek.net: did not receive HSTS header
 thriveapproach.co.uk: did not receive HSTS header
 thumbtack.com: did not receive HSTS header
 thusoy.com: did not receive HSTS header
 ti.blog.br: could not connect to host
+tibbitshall.ca: 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
 tiendschuurstraat.nl: could not connect to host
 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
 tiliaze.be: could not connect to host
 tiliaze.eu: did not receive HSTS header
 tilkah.com.au: could not connect to host
@@ -5529,16 +5539,17 @@ torlock.download: could not connect to h
 torrentdownloads.bid: could not connect to host
 torrentz.website: could not connect to host
 torsten-schmitz.net: could not connect to host
 tortugalife.de: could not connect to host
 torv.rocks: did not receive HSTS header
 tosecure.link: could not connect to host
 toshnix.com: could not connect to host
 toshub.com: could not connect to host
+totallylegitimatehosting.ru: could not connect to host
 totem-eshop.cz: could not connect to host
 toucedo.de: could not connect to host
 touchbasemail.com: did not receive HSTS header
 touchscreen-handy.de: did not receive HSTS header
 tourpeer.com: did not receive HSTS header
 toxme.se: did not receive HSTS header
 toyotamotala.se: could not connect to host
 tpbcdn.com: could not connect to host
@@ -5559,23 +5570,23 @@ translate.googleapis.com: did not receiv
 transportal.sk: did not receive HSTS header
 travality.ru: did not receive HSTS header
 travel-kuban.ru: did not receive HSTS header
 travelinsurance.co.nz: did not receive HSTS header
 treasuredinheritanceministry.com: did not receive HSTS header
 treatprostatewithhifu.com: could not connect to host
 treeby.net: could not connect to host
 trell.co.in: did not receive HSTS header
-tremoureux.fr: did not receive HSTS header
 trendberry.ru: could not connect to host
 trinityaffirmations.com: max-age too low: 0
 trinitycore.org: max-age too low: 2592000
 tripdelta.com: did not receive HSTS header
 tripinsider.club: did not receive HSTS header
 trixies-wish.nz: could not connect to host
+troedel-trolle.de: did not receive HSTS header
 troi.de: did not receive HSTS header
 trollme.me: could not connect to host
 true.ink: did not receive HSTS header
 truebred-labradors.com: could not connect to host
 trunkjunk.co: did not receive HSTS header
 trusteecar.com: did not receive HSTS header
 trustmeimfancy.com: could not connect to host
 trybind.com: could not connect to host
@@ -5631,16 +5642,17 @@ u-blox.com: max-age too low: 0
 ua.search.yahoo.com: did not receive HSTS header
 uadp.pw: could not connect to host
 uber.com.au: did not receive HSTS header
 uberfunction.com: did not receive HSTS header
 ubi.gg: could not connect to host
 ubicloud.de: could not connect to host
 ublox.com: did not receive HSTS header
 ubuntuhot.com: did not receive HSTS header
+uefeng.com: did not receive HSTS header
 uega.net: did not receive HSTS header
 ueu.me: could not connect to host
 ufgaming.com: did not receive HSTS header
 ufotable.uk: could not connect to host
 ui8.net: max-age too low: 86400
 ukas.com: did not receive HSTS header
 ukdropshipment.co.uk: did not receive HSTS header
 ukdropshipment.com: did not receive HSTS header
@@ -5674,16 +5686,17 @@ unblockmy.tech: could not connect to hos
 unblockmy.xyz: could not connect to host
 unblockmyproxy.site: could not connect to host
 unblockthe.site: could not connect to host
 unblockthe.top: could not connect to host
 unccdesign.club: could not connect to host
 unclegen.xyz: could not connect to host
 under30stravelinsurance.com.au: did not receive HSTS header
 unfiltered.nyc: did not receive HSTS header
+unhu.fr: could not connect to host
 uni-games.com: could not connect to host
 unicooo.com: could not connect to host
 unikitty-on-tour.com: could not connect to host
 unison.com: did not receive HSTS header
 unisyssecurity.com: did not receive HSTS header
 unitlabs.net: could not connect to host
 university4industry.com: did not receive HSTS header
 univz.com: could not connect to host
@@ -5743,17 +5756,16 @@ valleyridgepta.org: could not connect to
 vallis.net: did not receive HSTS header
 valmagus.com: could not connect to host
 valopv.be: could not connect to host
 vampirism.eu: could not connect to host
 vanacht.co.za: did not receive HSTS header
 vanderkley.it: could not connect to host
 vanestack.com: could not connect to host
 vanetv.com: could not connect to host
-vanhove.biz: could not connect to host
 vanitas.xyz: could not connect to host
 vanitynailworkz.com: could not connect to host
 vansieleghem.com: could not connect to host
 vasanth.org: did not receive HSTS header
 vbulletin-russia.com: could not connect to host
 vbulletinrussia.com: could not connect to host
 vcdove.com: did not receive HSTS header
 vcr.re: could not connect to host
@@ -5869,17 +5881,16 @@ wapt.fr: could not connect to host
 warandpeace.xyz: could not connect to host
 warehost.de: did not receive HSTS header
 warezaddict.com: did not receive HSTS header
 warhaggis.com: could not connect to host
 warhistoryonline.com: max-age too low: 0
 warped.com: did not receive HSTS header
 warsentech.com: could not connect to host
 washingtonviews.com: did not receive HSTS header
-wassim.is: 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
 we-bb.com: could not connect to host
 wear2work.nl: did not receive HSTS header
 weaverhairextensions.nl: could not connect to host
@@ -5888,16 +5899,17 @@ web-insider.net: did not receive HSTS he
 web-torrent.com: max-age too low: 0
 web-vision.de: did not receive HSTS header
 web4all.fr: did not receive HSTS header
 web4pro.fr: could not connect to host
 webandwords.com.au: could not connect to host
 webapps.directory: could not connect to host
 webassadors.com: could not connect to host
 webchat.domains: did not receive HSTS header
+webdeflect.com: could not connect to host
 webdesign-kronberg.de: did not receive HSTS header
 webdev.mobi: could not connect to host
 webeconomia.it: did not receive HSTS header
 webelement.sk: did not receive HSTS header
 webhosting4.net: did not receive HSTS header
 webm.to: could not connect to host
 webmail.mayfirst.org: did not receive HSTS header
 webmaniabr.com: did not receive HSTS header
@@ -5917,17 +5929,17 @@ webtiles.co.uk: could not connect to hos
 webtobesocial.de: could not connect to host
 webuni.hu: did not receive HSTS header
 webwork.pw: could not connect to host
 wecanfindit.co.za: could not connect to host
 weddingenvelopes.co.uk: did not receive HSTS header
 weddingibiza.nl: could not connect to host
 weekly.fyi: could not connect to host
 wegenaer.nl: could not connect to host
-wekibe.de: could not connect to host
+welkers.org: could not connect to host
 wellastore.ru: did not receive HSTS header
 weltmeisterschaft.net: could not connect to host
 weltverschwoerung.de: did not receive HSTS header
 weme.eu: could not connect to host
 wendalyncheng.com: did not receive HSTS header
 werdeeintimo.de: did not receive HSTS header
 werkenbijkfc.nl: did not receive HSTS header
 werkplaatsoost.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]
@@ -6011,16 +6023,17 @@ woording.com: could not connect to host
 wootton95.com: could not connect to host
 word-grabber.com: did not receive HSTS header
 woresite.jp: did not receive HSTS header
 work-and-jockel.de: 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
+worldwhisperer.net: did not receive HSTS header
 worshapp.com: did not receive HSTS header
 wowapi.org: could not connect to host
 wpblog.com.tw: did not receive HSTS header
 wpcarer.pro: did not receive HSTS header
 wpdublin.com: could not connect to host
 wpfortify.com: did not receive HSTS header
 wphostingspot.com: did not receive HSTS header
 wpmetadatastandardsproject.org: did not receive HSTS header
@@ -6086,16 +6099,17 @@ ximens.me: could not connect to host
 xinbiji.cn: did not receive HSTS header
 xisa.it: could not connect to host
 xiyu.moe: could not connect to host
 xjoin.de: could not connect to host
 xmerak.com: could not connect to host
 xmonk.org: could not connect to host
 xmppwocky.net: could not connect to host
 xmr.my: could not connect to host
+xn--0kqx72g4gftob.com: could not connect to host
 xn--3lqt7ir4md4tzwa.cn: did not receive HSTS header
 xn--3lqt7ir4md4tzwa.xn--fiqs8s: did not receive HSTS header
 xn--3px.jp: could not connect to host
 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
@@ -6166,16 +6180,17 @@ yingyj.com: could not connect to host
 yippie.nl: could not connect to host
 yjsoft.me: did not receive HSTS header
 ynode.co: did not receive HSTS header
 ynsn.nl: did not receive HSTS header
 yokeepo.com: max-age too low: 0
 yoloboatrentals.com: did not receive HSTS header
 yoloprod.fr: could not connect to host
 yoloseo.com: could not connect to host
+yomepre.com: could not connect to host
 yoru.me: did not receive HSTS header
 youcontrol.ru: could not connect to host
 youngandunited.nl: did not receive HSTS header
 youon.tokyo: could not connect to host
 yourbapp.ch: could not connect to host
 yourcomputer.expert: did not receive HSTS header
 yourdaddy.dk: did not receive HSTS header
 yoursecondphone.co: could not connect to host
@@ -6213,17 +6228,16 @@ zbigniewgalucki.eu: did not receive HSTS
 zcon.nl: could not connect to host
 zdravotnickasluzba.eu: could not connect to host
 zebrababy.cn: did not receive HSTS header
 zeedroom.be: 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
 zelfstandigemakelaars.net: could not connect to host
-zellari.ru: could not connect to host
 zenghx.tk: could not connect to host
 zenpayroll.com: did not receive HSTS header
 zentraler-kreditausschuss.de: did not receive HSTS header
 zentralwolke.de: did not receive HSTS header
 zera.com.au: could not connect to host
 zeroday.sk: did not receive HSTS header
 zerolab.org: could not connect to host
 zerudi.com: did not receive HSTS header
@@ -6244,17 +6258,17 @@ zirtue.io: did not receive HSTS header
 zittingskalender.be: could not connect to host
 zizoo.com: did not receive HSTS header
 zjubtv.com: could not connect to host
 zjutv.com: could not connect to host
 zk.gd: did not receive HSTS header
 zkillboard.com: did not receive HSTS header
 zking.ga: could not connect to host
 zmsastro.co.za: could not connect to host
-zmy.im: could not connect to host
+zmy.im: did not receive HSTS header
 zocken.com: did not receive HSTS header
 zoe.vc: could not connect to host
 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
--- 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(1507216752180000);
+const PRTime gPreloadListExpirationTime = INT64_C(1507303218909000);
 
 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',
   /* "00f.net", true */ '0', '0', 'f', '.', 'n', 'e', 't', '\0',
   /* "00wbf.com", true */ '0', '0', 'w', 'b', 'f', '.', 'c', 'o', 'm', '\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',
@@ -40,17 +40,17 @@ static const char kSTSHostTable[] = {
   /* "0knowledge.de", true */ '0', 'k', 'n', 'o', 'w', 'l', 'e', 'd', 'g', 'e', '.', 'd', 'e', '\0',
   /* "0paste.com", true */ '0', 'p', 'a', 's', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "0w0.vc", true */ '0', 'w', '0', '.', 'v', 'c', '\0',
   /* "0x.cx", true */ '0', 'x', '.', 'c', 'x', '\0',
   /* "0x.sk", true */ '0', 'x', '.', 's', 'k', '\0',
   /* "0x00ff00ff.com", true */ '0', 'x', '0', '0', 'f', 'f', '0', '0', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "0x17.de", true */ '0', 'x', '1', '7', '.', 'd', 'e', '\0',
   /* "0x4b0c131e.pub", true */ '0', 'x', '4', 'b', '0', 'c', '1', '3', '1', 'e', '.', 'p', 'u', 'b', '\0',
-  /* "0x52.net", true */ '0', 'x', '5', '2', '.', 'n', 'e', 't', '\0',
+  /* "0x52.net", false */ '0', 'x', '5', '2', '.', 'n', 'e', 't', '\0',
   /* "0x52.org", true */ '0', 'x', '5', '2', '.', 'o', 'r', 'g', '\0',
   /* "0x539.be", true */ '0', 'x', '5', '3', '9', '.', 'b', 'e', '\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.in", true */ '0', 'x', '9', '0', '.', 'i', 'n', '\0',
   /* "0x90.io", true */ '0', 'x', '9', '0', '.', 'i', 'o', '\0',
   /* "0xabe.io", true */ '0', 'x', 'a', 'b', 'e', '.', 'i', 'o', '\0',
   /* "0xacab.org", true */ '0', 'x', 'a', 'c', 'a', 'b', '.', 'o', 'r', 'g', '\0',
@@ -110,18 +110,18 @@ static const char kSTSHostTable[] = {
   /* "166166.com", true */ '1', '6', '6', '1', '6', '6', '.', 'c', 'o', 'm', '\0',
   /* "16deza.com", true */ '1', '6', 'd', 'e', 'z', 'a', '.', 'c', 'o', 'm', '\0',
   /* "173vpn.cn", true */ '1', '7', '3', 'v', 'p', 'n', '.', 'c', 'n', '\0',
   /* "174.net.nz", true */ '1', '7', '4', '.', 'n', 'e', 't', '.', 'n', 'z', '\0',
   /* "1750studios.com", false */ '1', '7', '5', '0', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "17hats.com", true */ '1', '7', 'h', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "18f.gov", true */ '1', '8', 'f', '.', 'g', 'o', 'v', '\0',
   /* "18f.gsa.gov", false */ '1', '8', 'f', '.', 'g', 's', 'a', '.', 'g', 'o', 'v', '\0',
+  /* "195gm.com", true */ '1', '9', '5', 'g', 'm', '.', 'c', 'o', 'm', '\0',
   /* "1972969867.rsc.cdn77.org", true */ '1', '9', '7', '2', '9', '6', '9', '8', '6', '7', '.', 'r', 's', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0',
-  /* "1981612088.rsc.cdn77.org", true */ '1', '9', '8', '1', '6', '1', '2', '0', '8', '8', '.', 'r', 's', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0',
   /* "1a-diamantscheiben.de", true */ '1', 'a', '-', 'd', 'i', 'a', 'm', 'a', 'n', 't', 's', 'c', 'h', 'e', 'i', 'b', 'e', 'n', '.', 'd', 'e', '\0',
   /* "1a-vermessung.at", true */ '1', 'a', '-', 'v', 'e', 'r', 'm', 'e', 's', 's', 'u', 'n', 'g', '.', 'a', 't', '\0',
   /* "1a-werkstattgeraete.de", true */ '1', 'a', '-', 'w', 'e', 'r', 'k', 's', 't', 'a', 't', 't', 'g', 'e', 'r', 'a', 'e', 't', 'e', '.', 'd', 'e', '\0',
   /* "1atic.com", true */ '1', 'a', 't', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "1co-jp.net", true */ '1', 'c', 'o', '-', 'j', 'p', '.', 'n', 'e', 't', '\0',
   /* "1cover.co.nz", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "1cover.com.au", true */ '1', 'c', 'o', 'v', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "1e9.nl", true */ '1', 'e', '9', '.', 'n', 'l', '\0',
@@ -234,26 +234,26 @@ static const char kSTSHostTable[] = {
   /* "3dcart.com", true */ '3', 'd', 'c', 'a', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "3dmedium.de", true */ '3', 'd', 'm', 'e', 'd', 'i', 'u', 'm', '.', 'd', 'e', '\0',
   /* "3do3dont.com", true */ '3', 'd', 'o', '3', 'd', 'o', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "3dprintsondemand.eu", true */ '3', 'd', 'p', 'r', 'i', 'n', 't', 's', 'o', 'n', 'd', 'e', 'm', 'a', 'n', 'd', '.', 'e', 'u', '\0',
   /* "3drenaline.com", true */ '3', 'd', 'r', 'e', 'n', 'a', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "3haeuserprojekt.org", true */ '3', 'h', 'a', 'e', 'u', 's', 'e', 'r', 'p', 'r', 'o', 'j', 'e', 'k', 't', '.', 'o', 'r', 'g', '\0',
   /* "3haueserprojekt.org", true */ '3', 'h', 'a', 'u', 'e', 's', 'e', 'r', 'p', 'r', 'o', 'j', 'e', 'k', 't', '.', 'o', 'r', 'g', '\0',
   /* "3hl0.net", true */ '3', 'h', 'l', '0', '.', 'n', 'e', 't', '\0',
-  /* "3phase.pw", true */ '3', 'p', 'h', 'a', 's', 'e', '.', 'p', 'w', '\0',
   /* "3r.org.uk", true */ '3', 'r', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "3s-hosting.de", true */ '3', 's', '-', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "3timegear.com", true */ '3', 't', 'i', 'm', 'e', 'g', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "3trees.tk", true */ '3', 't', 'r', 'e', 'e', 's', '.', 't', 'k', '\0',
   /* "3v4l.org", true */ '3', 'v', '4', 'l', '.', 'o', 'r', 'g', '\0',
   /* "3weekdietworks.com", true */ '3', 'w', 'e', 'e', 'k', 'd', 'i', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "4-1-where.com", true */ '4', '-', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "4-it.de", true */ '4', '-', 'i', 't', '.', 'd', 'e', '\0',
   /* "403.ch", true */ '4', '0', '3', '.', 'c', 'h', '\0',
+  /* "404forest.com", true */ '4', '0', '4', 'f', 'o', 'r', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "404notfound.com.br", true */ '4', '0', '4', 'n', 'o', 't', 'f', 'o', 'u', 'n', 'd', '.', 'c', 'o', 'm', '.', 'b', 'r', '\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',
   /* "42day.info", true */ '4', '2', 'd', 'a', 'y', '.', 'i', 'n', 'f', 'o', '\0',
   /* "42entrepreneurs.fr", true */ '4', '2', 'e', 'n', 't', 'r', 'e', 'p', 'r', 'e', 'n', 'e', 'u', 'r', 's', '.', 'f', 'r', '\0',
   /* "439191.com", true */ '4', '3', '9', '1', '9', '1', '.', 'c', 'o', 'm', '\0',
@@ -382,16 +382,18 @@ static const char kSTSHostTable[] = {
   /* "abc.li", true */ 'a', 'b', 'c', '.', 'l', 'i', '\0',
   /* "abcheck.se", true */ 'a', 'b', 'c', 'h', 'e', 'c', 'k', '.', 's', 'e', '\0',
   /* "abdullah.pw", true */ 'a', 'b', 'd', 'u', 'l', 'l', 'a', 'h', '.', 'p', 'w', '\0',
   /* "abe-elektro.de", true */ 'a', 'b', 'e', '-', 'e', 'l', 'e', 'k', 't', 'r', 'o', '.', 'd', 'e', '\0',
   /* "abe.cloud", false */ 'a', 'b', 'e', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "abeestrada.com", false */ 'a', 'b', 'e', 'e', 's', 't', 'r', 'a', 'd', 'a', '.', 'c', 'o', 'm', '\0',
   /* "abenteuer-ahnenforschung.de", true */ 'a', 'b', 'e', 'n', 't', 'e', 'u', 'e', 'r', '-', 'a', 'h', 'n', 'e', 'n', 'f', 'o', 'r', 's', 'c', 'h', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "abeontech.com", true */ 'a', 'b', 'e', 'o', 'n', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0',
+  /* "aberdeenalmeras.com", true */ 'a', 'b', 'e', 'r', 'd', 'e', 'e', 'n', 'a', 'l', 'm', 'e', 'r', 'a', 's', '.', 'c', 'o', 'm', '\0',
+  /* "aberdeenjudo.co.uk", true */ 'a', 'b', 'e', 'r', 'd', 'e', 'e', 'n', 'j', 'u', 'd', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "abeus.com", true */ 'a', 'b', 'e', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "abhisharma.me", true */ 'a', 'b', 'h', 'i', 's', 'h', 'a', 'r', 'm', 'a', '.', 'm', 'e', '\0',
   /* "abi-fvs.de", true */ 'a', 'b', 'i', '-', 'f', 'v', 's', '.', 'd', 'e', '\0',
   /* "abiapp.net", true */ 'a', 'b', 'i', 'a', 'p', 'p', '.', 'n', 'e', 't', '\0',
   /* "abigisp.com", true */ 'a', 'b', 'i', 'g', 'i', 's', 'p', '.', 'c', 'o', 'm', '\0',
   /* "abilitynet.org.uk", true */ 'a', 'b', 'i', 'l', 'i', 't', 'y', 'n', 'e', 't', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "abilma.com", true */ 'a', 'b', 'i', 'l', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "abilymp06.net", true */ 'a', 'b', 'i', 'l', 'y', 'm', 'p', '0', '6', '.', 'n', 'e', 't', '\0',
@@ -437,17 +439,16 @@ static const char kSTSHostTable[] = {
   /* "abrilect.com", true */ 'a', 'b', 'r', 'i', 'l', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "abseits.org", true */ 'a', 'b', 's', 'e', 'i', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "absinthium.ch", true */ 'a', 'b', 's', 'i', 'n', 't', 'h', 'i', 'u', 'm', '.', 'c', 'h', '\0',
   /* "absolem.cc", true */ 'a', 'b', 's', 'o', 'l', 'e', 'm', '.', 'c', 'c', '\0',
   /* "absoluterush.net", true */ 'a', 'b', 's', 'o', 'l', 'u', 't', 'e', 'r', 'u', 's', 'h', '.', 'n', 'e', 't', '\0',
   /* "absolutewaterproofingsolutions.com", true */ 'a', 'b', 's', 'o', 'l', 'u', 't', 'e', 'w', 'a', 't', 'e', 'r', 'p', 'r', 'o', 'o', 'f', 'i', 'n', 'g', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "abstraction21.com", true */ 'a', 'b', 's', 't', 'r', 'a', 'c', 't', 'i', 'o', 'n', '2', '1', '.', 'c', 'o', 'm', '\0',
   /* "absynthe-inquisition.fr", true */ 'a', 'b', 's', 'y', 'n', 't', 'h', 'e', '-', 'i', 'n', 'q', 'u', 'i', 's', 'i', 't', 'i', 'o', 'n', '.', 'f', 'r', '\0',
-  /* "abthorpe.org", true */ 'a', 'b', 't', 'h', 'o', 'r', 'p', 'e', '.', 'o', 'r', 'g', '\0',
   /* "abulanov.com", true */ 'a', 'b', 'u', 'l', 'a', 'n', 'o', 'v', '.', 'c', 'o', 'm', '\0',
   /* "abundent.com", true */ 'a', 'b', 'u', 'n', 'd', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "abuse.io", true */ 'a', 'b', 'u', 's', 'e', '.', 'i', 'o', '\0',
   /* "abyssproject.net", true */ 'a', 'b', 'y', 's', 's', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'n', 'e', 't', '\0',
   /* "ac-admin.pl", true */ 'a', 'c', '-', 'a', 'd', 'm', 'i', 'n', '.', 'p', 'l', '\0',
   /* "ac-epmservices.com", true */ 'a', 'c', '-', 'e', 'p', 'm', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "ac-town.com", true */ 'a', 'c', '-', 't', 'o', 'w', 'n', '.', 'c', 'o', 'm', '\0',
   /* "acabadosboston.com", true */ 'a', 'c', 'a', 'b', 'a', 'd', 'o', 's', 'b', 'o', 's', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0',
@@ -716,16 +717,17 @@ static const char kSTSHostTable[] = {
   /* "aibenzi.com", true */ 'a', 'i', 'b', 'e', 'n', 'z', 'i', '.', 'c', 'o', 'm', '\0',
   /* "aicial.co.uk", true */ 'a', 'i', 'c', 'i', 'a', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "aicial.com", true */ 'a', 'i', 'c', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "aicial.com.au", true */ 'a', 'i', 'c', 'i', 'a', 'l', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "aidanmontare.net", true */ 'a', 'i', 'd', 'a', 'n', 'm', 'o', 'n', 't', 'a', 'r', 'e', '.', 'n', 'e', 't', '\0',
   /* "aiden.link", true */ 'a', 'i', 'd', 'e', 'n', '.', 'l', 'i', 'n', 'k', '\0',
   /* "aidhan.net", true */ 'a', 'i', 'd', 'h', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "aidikofflaw.com", true */ 'a', 'i', 'd', 'i', 'k', 'o', 'f', 'f', 'l', 'a', 'w', '.', 'c', 'o', 'm', '\0',
+  /* "aids.gov", true */ 'a', 'i', 'd', 's', '.', 'g', 'o', 'v', '\0',
   /* "aie.de", true */ 'a', 'i', 'e', '.', 'd', 'e', '\0',
   /* "aiesecarad.ro", true */ 'a', 'i', 'e', 's', 'e', 'c', 'a', 'r', 'a', 'd', '.', 'r', 'o', '\0',
   /* "aify.eu", true */ 'a', 'i', 'f', 'y', '.', 'e', 'u', '\0',
   /* "aigcev.org", true */ 'a', 'i', 'g', 'c', 'e', 'v', '.', 'o', 'r', 'g', '\0',
   /* "aikenorganics.com", true */ 'a', 'i', 'k', 'e', 'n', 'o', 'r', 'g', 'a', 'n', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "aikido-club-limburg.de", true */ 'a', 'i', 'k', 'i', 'd', 'o', '-', 'c', 'l', 'u', 'b', '-', 'l', 'i', 'm', 'b', 'u', 'r', 'g', '.', 'd', 'e', '\0',
   /* "aikido-linz.at", true */ 'a', 'i', 'k', 'i', 'd', 'o', '-', 'l', 'i', 'n', 'z', '.', 'a', 't', '\0',
   /* "aikido-wels.at", true */ 'a', 'i', 'k', 'i', 'd', 'o', '-', 'w', 'e', 'l', 's', '.', 'a', 't', '\0',
@@ -1412,16 +1414,17 @@ static const char kSTSHostTable[] = {
   /* "army24.cz", true */ 'a', 'r', 'm', 'y', '2', '4', '.', 'c', 'z', '\0',
   /* "armyprodej.cz", true */ 'a', 'r', 'm', 'y', 'p', 'r', 'o', 'd', 'e', 'j', '.', 'c', 'z', '\0',
   /* "arnaudb.net", true */ 'a', 'r', 'n', 'a', 'u', 'd', 'b', '.', 'n', 'e', 't', '\0',
   /* "arnaudfeld.de", true */ 'a', 'r', 'n', 'a', 'u', 'd', 'f', 'e', 'l', 'd', '.', 'd', 'e', '\0',
   /* "arne-petersen.net", true */ 'a', 'r', 'n', 'e', '-', 'p', 'e', 't', 'e', 'r', 's', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "arnesolutions.com", true */ 'a', 'r', 'n', 'e', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "arnetdigital.eu", false */ 'a', 'r', 'n', 'e', 't', 'd', 'i', 'g', 'i', 't', 'a', 'l', '.', 'e', 'u', '\0',
   /* "arnor.org", true */ 'a', 'r', 'n', 'o', 'r', '.', 'o', 'r', 'g', '\0',
+  /* "arod.tk", true */ 'a', 'r', 'o', 'd', '.', 't', 'k', '\0',
   /* "arokha.com", true */ 'a', 'r', 'o', 'k', 'h', 'a', '.', 'c', 'o', 'm', '\0',
   /* "aromaclub.nl", true */ 'a', 'r', 'o', 'm', 'a', 'c', 'l', 'u', 'b', '.', 'n', 'l', '\0',
   /* "aroonchande.com", true */ 'a', 'r', 'o', 'o', 'n', 'c', 'h', 'a', 'n', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "aroundme.org", true */ 'a', 'r', 'o', 'u', 'n', 'd', 'm', 'e', '.', 'o', 'r', 'g', '\0',
   /* "arqueo-ecuatoriana.ec", true */ 'a', 'r', 'q', 'u', 'e', 'o', '-', 'e', 'c', 'u', 'a', 't', 'o', 'r', 'i', 'a', 'n', 'a', '.', 'e', 'c', '\0',
   /* "arquitetura.pt", true */ 'a', 'r', 'q', 'u', 'i', 't', 'e', 't', 'u', 'r', 'a', '.', 'p', 't', '\0',
   /* "arrakis.se", true */ 'a', 'r', 'r', 'a', 'k', 'i', 's', '.', 's', 'e', '\0',
   /* "arrive.by", true */ 'a', 'r', 'r', 'i', 'v', 'e', '.', 'b', 'y', '\0',
@@ -1521,17 +1524,16 @@ static const char kSTSHostTable[] = {
   /* "aspiescentral.com", true */ 'a', 's', 'p', 'i', 'e', 's', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "aspires.co.jp", true */ 'a', 's', 'p', 'i', 'r', 'e', 's', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "aspisdata.com", true */ 'a', 's', 'p', 'i', 's', 'd', 'a', 't', 'a', '.', 'c', 'o', 'm', '\0',
   /* "assdecoeur.org", true */ 'a', 's', 's', 'd', 'e', 'c', 'o', 'e', 'u', 'r', '.', 'o', 'r', 'g', '\0',
   /* "asseenfromthesidecar.org", true */ 'a', 's', 's', 'e', 'e', 'n', 'f', 'r', 'o', 'm', 't', 'h', 'e', 's', 'i', 'd', 'e', 'c', 'a', 'r', '.', 'o', 'r', 'g', '\0',
   /* "assemble-together.org", true */ 'a', 's', 's', 'e', 'm', 'b', 'l', 'e', '-', 't', 'o', 'g', 'e', 't', 'h', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "assguidesporrentruy.ch", true */ 'a', 's', 's', 'g', 'u', 'i', 'd', 'e', 's', 'p', 'o', 'r', 'r', 'e', 'n', 't', 'r', 'u', 'y', '.', 'c', 'h', '\0',
   /* "assindia.nl", true */ 'a', 's', 's', 'i', 'n', 'd', 'i', 'a', '.', 'n', 'l', '\0',
-  /* "asspinter.me", true */ 'a', 's', 's', 'p', 'i', 'n', 't', 'e', 'r', '.', 'm', 'e', '\0',
   /* "assurancesmons.be", true */ 'a', 's', 's', 'u', 'r', 'a', 'n', 'c', 'e', 's', 'm', 'o', 'n', 's', '.', 'b', 'e', '\0',
   /* "asta-bar.de", false */ 'a', 's', 't', 'a', '-', 'b', 'a', 'r', '.', 'd', 'e', '\0',
   /* "astec-informatica.com", true */ 'a', 's', 't', 'e', 'c', '-', 'i', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "astengox.com", true */ 'a', 's', 't', 'e', 'n', 'g', 'o', 'x', '.', 'c', 'o', 'm', '\0',
   /* "astenretail.com", true */ 'a', 's', 't', 'e', 'n', 'r', 'e', 't', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "astraalivankila.net", true */ 'a', 's', 't', 'r', 'a', 'a', 'l', 'i', 'v', 'a', 'n', 'k', 'i', 'l', 'a', '.', 'n', 'e', 't', '\0',
   /* "astrea-voetbal-groningen.nl", true */ 'a', 's', 't', 'r', 'e', 'a', '-', 'v', 'o', 'e', 't', 'b', 'a', 'l', '-', 'g', 'r', 'o', 'n', 'i', 'n', 'g', 'e', 'n', '.', 'n', 'l', '\0',
   /* "astronomie-fulda.de", true */ 'a', 's', 't', 'r', 'o', 'n', 'o', 'm', 'i', 'e', '-', 'f', 'u', 'l', 'd', 'a', '.', 'd', 'e', '\0',
@@ -1634,16 +1636,17 @@ static const char kSTSHostTable[] = {
   /* "augmentable.de", true */ 'a', 'u', 'g', 'm', 'e', 'n', 't', 'a', 'b', 'l', 'e', '.', 'd', 'e', '\0',
   /* "augustian-life.cz", true */ 'a', 'u', 'g', 'u', 's', 't', 'i', 'a', 'n', '-', 'l', 'i', 'f', 'e', '.', 'c', 'z', '\0',
   /* "augustiner-kantorei-erfurt.de", true */ 'a', 'u', 'g', 'u', 's', 't', 'i', 'n', 'e', 'r', '-', 'k', 'a', 'n', 't', 'o', 'r', 'e', 'i', '-', 'e', 'r', 'f', 'u', 'r', 't', '.', 'd', 'e', '\0',
   /* "augustiner-kantorei.de", true */ 'a', 'u', 'g', 'u', 's', 't', 'i', 'n', 'e', 'r', '-', 'k', 'a', 'n', 't', 'o', 'r', 'e', 'i', '.', 'd', 'e', '\0',
   /* "aukaraoke.su", true */ 'a', 'u', 'k', 'a', 'r', 'a', 'o', 'k', 'e', '.', 's', 'u', '\0',
   /* "aulo.in", false */ 'a', 'u', 'l', 'o', '.', 'i', 'n', '\0',
   /* "aunali1.com", true */ 'a', 'u', 'n', 'a', 'l', 'i', '1', '.', 'c', 'o', 'm', '\0',
   /* "auplidespages.fr", true */ 'a', 'u', 'p', 'l', 'i', 'd', 'e', 's', 'p', 'a', 'g', 'e', 's', '.', 'f', 'r', '\0',
+  /* "aur.rocks", true */ 'a', 'u', 'r', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "aureus.pw", true */ 'a', 'u', 'r', 'e', 'u', 's', '.', 'p', 'w', '\0',
   /* "auri.ga", true */ 'a', 'u', 'r', 'i', '.', 'g', 'a', '\0',
   /* "auricblue.com", true */ 'a', 'u', 'r', 'i', 'c', 'b', 'l', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "auriko-games.de", true */ 'a', 'u', 'r', 'i', 'k', 'o', '-', 'g', 'a', 'm', 'e', 's', '.', 'd', 'e', '\0',
   /* "aurora-terraria.org", true */ 'a', 'u', 'r', 'o', 'r', 'a', '-', 't', 'e', 'r', 'r', 'a', 'r', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "aurorarecordings.com", true */ 'a', 'u', 'r', 'o', 'r', 'a', 'r', 'e', 'c', 'o', 'r', 'd', 'i', 'n', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "aurugs.com", true */ 'a', 'u', 'r', 'u', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "aus-ryugaku.info", true */ 'a', 'u', 's', '-', 'r', 'y', 'u', 'g', 'a', 'k', 'u', '.', 'i', 'n', 'f', 'o', '\0',
@@ -1715,16 +1718,17 @@ static const char kSTSHostTable[] = {
   /* "avtoforex.ru", true */ 'a', 'v', 't', 'o', 'f', 'o', 'r', 'e', 'x', '.', 'r', 'u', '\0',
   /* "avtosept.by", true */ 'a', 'v', 't', 'o', 's', 'e', 'p', 't', '.', 'b', 'y', '\0',
   /* "avtovokzaly.ru", true */ 'a', 'v', 't', 'o', 'v', 'o', 'k', 'z', 'a', 'l', 'y', '.', 'r', 'u', '\0',
   /* "avxo.pw", true */ 'a', 'v', 'x', 'o', '.', 'p', 'w', '\0',
   /* "awan.tech", true */ 'a', 'w', 'a', 'n', '.', 't', 'e', 'c', 'h', '\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',
+  /* "awei.pub", true */ 'a', 'w', 'e', 'i', '.', 'p', 'u', 'b', '\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',
   /* "awningsaboveus.com", true */ 'a', 'w', 'n', 'i', 'n', 'g', 's', 'a', 'b', 'o', 'v', 'e', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "aww.moe", true */ 'a', 'w', 'w', '.', 'm', 'o', 'e', '\0',
   /* "axem.co.jp", true */ 'a', 'x', 'e', 'm', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "axg.io", true */ 'a', 'x', 'g', '.', 'i', 'o', '\0',
   /* "axialsports.com", true */ 'a', 'x', 'i', 'a', 'l', 's', 'p', 'o', 'r', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "axiomer.com", true */ 'a', 'x', 'i', 'o', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -1739,17 +1743,16 @@ static const char kSTSHostTable[] = {
   /* "axrec.de", true */ 'a', 'x', 'r', 'e', 'c', '.', 'd', 'e', '\0',
   /* "axtux.tk", true */ 'a', 'x', 't', 'u', 'x', '.', 't', 'k', '\0',
   /* "ayahuascaadvisor.com", true */ 'a', 'y', 'a', 'h', 'u', 'a', 's', 'c', 'a', 'a', 'd', 'v', 'i', 's', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "ayesh.me", true */ 'a', 'y', 'e', 's', 'h', '.', 'm', 'e', '\0',
   /* "aykutcevik.com", true */ 'a', 'y', 'k', 'u', 't', 'c', 'e', 'v', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "aylak.com", true */ 'a', 'y', 'l', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "aymerick.fr", true */ 'a', 'y', 'm', 'e', 'r', 'i', 'c', 'k', '.', 'f', 'r', '\0',
   /* "aymericlagier.com", true */ 'a', 'y', 'm', 'e', 'r', 'i', 'c', 'l', 'a', 'g', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "ayothemes.com", true */ 'a', 'y', 'o', 't', 'h', 'e', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "ayurveda-mantry.com", true */ 'a', 'y', 'u', 'r', 'v', 'e', 'd', 'a', '-', 'm', 'a', 'n', 't', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "ayurveda101.com", false */ 'a', 'y', 'u', 'r', 'v', 'e', 'd', 'a', '1', '0', '1', '.', 'c', 'o', 'm', '\0',
   /* "azabani.com", true */ 'a', 'z', 'a', 'b', 'a', 'n', 'i', '.', 'c', 'o', 'm', '\0',
   /* "azamra.com", true */ 'a', 'z', 'a', 'm', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "azazy.net", true */ 'a', 'z', 'a', 'z', 'y', '.', 'n', 'e', 't', '\0',
   /* "azbuki.by", true */ 'a', 'z', 'b', 'u', 'k', 'i', '.', 'b', 'y', '\0',
   /* "azia.info", true */ 'a', 'z', 'i', 'a', '.', 'i', 'n', 'f', 'o', '\0',
   /* "azimut.fr", true */ 'a', 'z', 'i', 'm', 'u', 't', '.', 'f', 'r', '\0',
@@ -1881,17 +1884,16 @@ static const char kSTSHostTable[] = {
   /* "barbu.family", true */ 'b', 'a', 'r', 'b', 'u', '.', 'f', 'a', 'm', 'i', 'l', 'y', '\0',
   /* "barburas.com", true */ 'b', 'a', 'r', 'b', 'u', 'r', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "barcel.com.mx", true */ 'b', 'a', 'r', 'c', 'e', 'l', '.', 'c', 'o', 'm', '.', 'm', 'x', '\0',
   /* "barclays.net", true */ 'b', 'a', 'r', 'c', 'l', 'a', 'y', 's', '.', 'n', 'e', 't', '\0',
   /* "barcodeberlin.com", true */ 'b', 'a', 'r', 'c', 'o', 'd', 'e', 'b', 'e', 'r', 'l', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "barcoderealty.com", true */ 'b', 'a', 'r', 'c', 'o', 'd', 'e', 'r', 'e', 'a', 'l', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "bardiharborow.com", true */ 'b', 'a', 'r', 'd', 'i', 'h', 'a', 'r', 'b', 'o', 'r', 'o', 'w', '.', 'c', 'o', 'm', '\0',
   /* "bardiharborow.tk", true */ 'b', 'a', 'r', 'd', 'i', 'h', 'a', 'r', 'b', 'o', 'r', 'o', 'w', '.', 't', 'k', '\0',
-  /* "bariller.fr", true */ 'b', 'a', 'r', 'i', 'l', 'l', 'e', 'r', '.', 'f', 'r', '\0',
   /* "baripedia.org", true */ 'b', 'a', 'r', 'i', 'p', 'e', 'd', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "barisi.me", true */ 'b', 'a', 'r', 'i', 's', 'i', '.', 'm', 'e', '\0',
   /* "barkerjr.xyz", true */ 'b', 'a', 'r', 'k', 'e', 'r', 'j', 'r', '.', 'x', 'y', 'z', '\0',
   /* "barnabycolby.io", true */ 'b', 'a', 'r', 'n', 'a', 'b', 'y', 'c', 'o', 'l', 'b', 'y', '.', 'i', 'o', '\0',
   /* "baropkamp.be", true */ 'b', 'a', 'r', 'o', 'p', 'k', 'a', 'm', 'p', '.', 'b', 'e', '\0',
   /* "barqo.co", true */ 'b', 'a', 'r', 'q', 'o', '.', 'c', 'o', '\0',
   /* "barracuda.blog", true */ 'b', 'a', 'r', 'r', 'a', 'c', 'u', 'd', 'a', '.', 'b', 'l', 'o', 'g', '\0',
   /* "barracuda.com.tr", true */ 'b', 'a', 'r', 'r', 'a', 'c', 'u', 'd', 'a', '.', 'c', 'o', 'm', '.', 't', 'r', '\0',
@@ -2018,17 +2020,16 @@ static const char kSTSHostTable[] = {
   /* "beehive42.nl", true */ 'b', 'e', 'e', 'h', 'i', 'v', 'e', '4', '2', '.', 'n', 'l', '\0',
   /* "beehive42.org", true */ 'b', 'e', 'e', 'h', 'i', 'v', 'e', '4', '2', '.', 'o', 'r', 'g', '\0',
   /* "beehosting.pro", true */ 'b', 'e', 'e', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'p', 'r', 'o', '\0',
   /* "beekbier.nl", true */ 'b', 'e', 'e', 'k', 'b', 'i', 'e', 'r', '.', 'n', 'l', '\0',
   /* "beekeeper.supply", true */ 'b', 'e', 'e', 'k', 'e', 'e', 'p', 'e', 'r', '.', 's', 'u', 'p', 'p', 'l', 'y', '\0',
   /* "beekeeper.tools", true */ 'b', 'e', 'e', 'k', 'e', 'e', 'p', 'e', 'r', '.', 't', 'o', 'o', 'l', 's', '\0',
   /* "beekeeping.clothing", true */ 'b', 'e', 'e', 'k', 'e', 'e', 'p', 'i', 'n', 'g', '.', 'c', 'l', 'o', 't', 'h', 'i', 'n', 'g', '\0',
   /* "beekeeping.tools", true */ 'b', 'e', 'e', 'k', 'e', 'e', 'p', 'i', 'n', 'g', '.', 't', 'o', 'o', 'l', 's', '\0',
-  /* "beeksnetwork.nl", true */ 'b', 'e', 'e', 'k', 's', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'l', '\0',
   /* "beelen.fr", true */ 'b', 'e', 'e', 'l', 'e', 'n', '.', 'f', 'r', '\0',
   /* "beepan.com", false */ 'b', 'e', 'e', 'p', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "beercandle.com", true */ 'b', 'e', 'e', 'r', 'c', 'a', 'n', 'd', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "beergazetteer.com", true */ 'b', 'e', 'e', 'r', 'g', 'a', 'z', 'e', 't', 't', 'e', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "beerians.com", true */ 'b', 'e', 'e', 'r', 'i', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "beerradar.no", true */ 'b', 'e', 'e', 'r', 'r', 'a', 'd', 'a', 'r', '.', 'n', 'o', '\0',
   /* "beerradar.party", true */ 'b', 'e', 'e', 'r', 'r', 'a', 'd', 'a', 'r', '.', 'p', 'a', 'r', 't', 'y', '\0',
   /* "beersandco.ch", true */ 'b', 'e', 'e', 'r', 's', 'a', 'n', 'd', 'c', 'o', '.', 'c', 'h', '\0',
@@ -2070,17 +2071,16 @@ static const char kSTSHostTable[] = {
   /* "believablebook.com", false */ 'b', 'e', 'l', 'i', 'e', 'v', 'a', 'b', 'l', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "belize-firmengruendung.com", true */ 'b', 'e', 'l', 'i', 'z', 'e', '-', 'f', 'i', 'r', 'm', 'e', 'n', 'g', 'r', 'u', 'e', 'n', 'd', 'u', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "belliash.eu.org", true */ 'b', 'e', 'l', 'l', 'i', 'a', 's', 'h', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "belly-button-piercings.com", true */ 'b', 'e', 'l', 'l', 'y', '-', 'b', 'u', 't', 't', 'o', 'n', '-', 'p', 'i', 'e', 'r', 'c', 'i', 'n', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "belmontgoessolar.org", true */ 'b', 'e', 'l', 'm', 'o', 'n', 't', 'g', 'o', 'e', 's', 's', 'o', 'l', 'a', 'r', '.', 'o', 'r', 'g', '\0',
   /* "belmontprom.com", true */ 'b', 'e', 'l', 'm', 'o', 'n', 't', 'p', 'r', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "belt.black", true */ 'b', 'e', 'l', 't', '.', 'b', 'l', 'a', 'c', 'k', '\0',
   /* "belua.com", true */ 'b', 'e', 'l', 'u', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "belwederczykow.eu", true */ 'b', 'e', 'l', 'w', 'e', 'd', 'e', 'r', 'c', 'z', 'y', 'k', 'o', 'w', '.', 'e', 'u', '\0',
   /* "bely-mishka.by", true */ 'b', 'e', 'l', 'y', '-', 'm', 'i', 's', 'h', 'k', 'a', '.', 'b', 'y', '\0',
   /* "bemsoft.pl", true */ 'b', 'e', 'm', 's', 'o', 'f', 't', '.', 'p', 'l', '\0',
   /* "ben-energy.com", false */ 'b', 'e', 'n', '-', 'e', 'n', 'e', 'r', 'g', 'y', '.', 'c', 'o', 'm', '\0',
   /* "ben.ninja", true */ 'b', 'e', 'n', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "benabrams.it", true */ 'b', 'e', 'n', 'a', 'b', 'r', 'a', 'm', 's', '.', 'i', 't', '\0',
   /* "benary.org", true */ 'b', 'e', 'n', 'a', 'r', 'y', '.', 'o', 'r', 'g', '\0',
   /* "benbozsa.ca", true */ 'b', 'e', 'n', 'b', 'o', 'z', 's', 'a', '.', 'c', 'a', '\0',
   /* "benchcast.com", true */ 'b', 'e', 'n', 'c', 'h', 'c', 'a', 's', 't', '.', 'c', 'o', 'm', '\0',
@@ -2196,17 +2196,16 @@ static const char kSTSHostTable[] = {
   /* "bettrlifeapp.com", true */ 'b', 'e', 't', 't', 'r', 'l', 'i', 'f', 'e', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "betulashop.ch", true */ 'b', 'e', 't', 'u', 'l', 'a', 's', 'h', 'o', 'p', '.', 'c', 'h', '\0',
   /* "betwalker.com", true */ 'b', 'e', 't', 'w', 'a', 'l', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "beulahtabernacle.com", true */ 'b', 'e', 'u', 'l', 'a', 'h', 't', 'a', 'b', 'e', 'r', 'n', 'a', 'c', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "beulen.email", true */ 'b', 'e', 'u', 'l', 'e', 'n', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "beulen.pro", true */ 'b', 'e', 'u', 'l', 'e', 'n', '.', 'p', 'r', 'o', '\0',
   /* "bevedo.cz", true */ 'b', 'e', 'v', 'e', 'd', 'o', '.', 'c', 'z', '\0',
   /* "beveiligingscamerawestland.nl", true */ 'b', 'e', 'v', 'e', 'i', 'l', 'i', 'g', 'i', 'n', 'g', 's', 'c', 'a', 'm', 'e', 'r', 'a', 'w', 'e', 's', 't', 'l', 'a', 'n', 'd', '.', 'n', 'l', '\0',
-  /* "bevinco2020.com", true */ 'b', 'e', 'v', 'i', 'n', 'c', 'o', '2', '0', '2', '0', '.', 'c', 'o', 'm', '\0',
   /* "bevinsco.org", true */ 'b', 'e', 'v', 'i', 'n', 's', 'c', 'o', '.', 'o', 'r', 'g', '\0',
   /* "bewerbungsfibel.de", true */ 'b', 'e', 'w', 'e', 'r', 'b', 'u', 'n', 'g', 's', 'f', 'i', 'b', 'e', 'l', '.', 'd', 'e', '\0',
   /* "bexit-hosting.nl", true */ 'b', 'e', 'x', 'i', 't', '-', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "bexit-security.eu", true */ 'b', 'e', 'x', 'i', 't', '-', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'e', 'u', '\0',
   /* "bexit-security.nl", true */ 'b', 'e', 'x', 'i', 't', '-', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'n', 'l', '\0',
   /* "bexit.nl", true */ 'b', 'e', 'x', 'i', 't', '.', 'n', 'l', '\0',
   /* "bexithosting.nl", true */ 'b', 'e', 'x', 'i', 't', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "bey.io", true */ 'b', 'e', 'y', '.', 'i', 'o', '\0',
@@ -2223,16 +2222,17 @@ static const char kSTSHostTable[] = {
   /* "bfd.vodka", true */ 'b', 'f', 'd', '.', 'v', 'o', 'd', 'k', 'a', '\0',
   /* "bfear.com", true */ 'b', 'f', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bfi.wien", false */ 'b', 'f', 'i', '.', 'w', 'i', 'e', 'n', '\0',
   /* "bftbradio.com", true */ 'b', 'f', 't', 'b', 'r', 'a', 'd', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "bfw-online.de", true */ 'b', 'f', 'w', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0',
   /* "bg-sexologia.com", true */ 'b', 'g', '-', 's', 'e', 'x', 'o', 'l', 'o', 'g', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "bgdaddy.com", true */ 'b', 'g', 'd', 'a', 'd', 'd', 'y', '.', 'c', 'o', 'm', '\0',
   /* "bgenlisted.com", true */ 'b', 'g', 'e', 'n', 'l', 'i', 's', 't', 'e', 'd', '.', 'c', 'o', 'm', '\0',
+  /* "bgeo.io", true */ 'b', 'g', 'e', 'o', '.', 'i', 'o', '\0',
   /* "bgkoleda.bg", true */ 'b', 'g', 'k', 'o', 'l', 'e', 'd', 'a', '.', 'b', 'g', '\0',
   /* "bglsingles.de", true */ 'b', 'g', 'l', 's', 'i', 'n', 'g', 'l', 'e', 's', '.', 'd', 'e', '\0',
   /* "bgneuesheim.de", true */ 'b', 'g', 'n', 'e', 'u', 'e', 's', 'h', 'e', 'i', 'm', '.', 'd', 'e', '\0',
   /* "bharath-g.in", true */ 'b', 'h', 'a', 'r', 'a', 't', 'h', '-', 'g', '.', 'i', 'n', '\0',
   /* "bhodisoft.com", true */ 'b', 'h', 'o', 'd', 'i', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '\0',
   /* "bhtelecom.ba", true */ 'b', 'h', 't', 'e', 'l', 'e', 'c', 'o', 'm', '.', 'b', 'a', '\0',
   /* "bhuntr.com", true */ 'b', 'h', 'u', 'n', 't', 'r', '.', 'c', 'o', 'm', '\0',
   /* "bia.gov", true */ 'b', 'i', 'a', '.', 'g', 'o', 'v', '\0',
@@ -2499,16 +2499,17 @@ static const char kSTSHostTable[] = {
   /* "blazeit.io", true */ 'b', 'l', 'a', 'z', 'e', 'i', 't', '.', 'i', 'o', '\0',
   /* "blazor.nl", true */ 'b', 'l', 'a', 'z', 'o', 'r', '.', 'n', 'l', '\0',
   /* "bleche-onlineshop.de", true */ 'b', 'l', 'e', 'c', 'h', 'e', '-', 'o', 'n', 'l', 'i', 'n', 'e', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "blechinger.io", true */ 'b', 'l', 'e', 'c', 'h', 'i', 'n', 'g', 'e', 'r', '.', 'i', 'o', '\0',
   /* "blechpirat.name", true */ 'b', 'l', 'e', 'c', 'h', 'p', 'i', 'r', 'a', 't', '.', 'n', 'a', 'm', 'e', '\0',
   /* "blechschmidt.saarland", true */ 'b', 'l', 'e', 'c', 'h', 's', 'c', 'h', 'm', 'i', 'd', 't', '.', 's', 'a', 'a', 'r', 'l', 'a', 'n', 'd', '\0',
   /* "blendle.com", true */ 'b', 'l', 'e', 'n', 'd', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "blendr.com", true */ 'b', 'l', 'e', 'n', 'd', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "blessedearth.com.au", true */ 'b', 'l', 'e', 's', 's', 'e', 'd', 'e', 'a', 'r', 't', 'h', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "blessedguy.com", true */ 'b', 'l', 'e', 's', 's', 'e', 'd', 'g', 'u', 'y', '.', 'c', 'o', 'm', '\0',
   /* "blessedguy.net", true */ 'b', 'l', 'e', 's', 's', 'e', 'd', 'g', 'u', 'y', '.', 'n', 'e', 't', '\0',
   /* "blewebprojects.com", true */ 'b', 'l', 'e', 'w', 'e', 'b', 'p', 'r', 'o', 'j', 'e', 'c', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "blichmann.eu", true */ 'b', 'l', 'i', 'c', 'h', 'm', 'a', 'n', 'n', '.', 'e', 'u', '\0',
   /* "blieque.co.uk", true */ 'b', 'l', 'i', 'e', 'q', 'u', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "blingsparkleshine.com", true */ 'b', 'l', 'i', 'n', 'g', 's', 'p', 'a', 'r', 'k', 'l', 'e', 's', 'h', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "blink-security.com", true */ 'b', 'l', 'i', 'n', 'k', '-', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "blinkenlight.co.uk", true */ 'b', 'l', 'i', 'n', 'k', 'e', 'n', 'l', 'i', 'g', 'h', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
@@ -2638,17 +2639,16 @@ static const char kSTSHostTable[] = {
   /* "bonnyprints.ch", true */ 'b', 'o', 'n', 'n', 'y', 'p', 'r', 'i', 'n', 't', 's', '.', 'c', 'h', '\0',
   /* "bonnyprints.es", true */ 'b', 'o', 'n', 'n', 'y', 'p', 'r', 'i', 'n', 't', 's', '.', 'e', 's', '\0',
   /* "bonnyprints.fr", true */ 'b', 'o', 'n', 'n', 'y', 'p', 'r', 'i', 'n', 't', 's', '.', 'f', 'r', '\0',
   /* "bonqoeur.ca", true */ 'b', 'o', 'n', 'q', 'o', 'e', 'u', 'r', '.', 'c', 'a', '\0',
   /* "bonus-flexi.com", true */ 'b', 'o', 'n', 'u', 's', '-', 'f', 'l', 'e', 'x', 'i', '.', 'c', 'o', 'm', '\0',
   /* "boof.com", false */ 'b', 'o', 'o', 'f', '.', 'c', 'o', 'm', '\0',
   /* "book-in-hotel.com", true */ 'b', 'o', 'o', 'k', '-', 'i', 'n', '-', 'h', 'o', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "book-of-ra.de", true */ 'b', 'o', 'o', 'k', '-', 'o', 'f', '-', 'r', 'a', '.', 'd', 'e', '\0',
-  /* "bookingapp.nl", true */ 'b', 'o', 'o', 'k', 'i', 'n', 'g', 'a', 'p', 'p', '.', 'n', 'l', '\0',
   /* "bookluk.com", true */ 'b', 'o', 'o', 'k', 'l', 'u', 'k', '.', 'c', 'o', 'm', '\0',
   /* "bookmein.in", true */ 'b', 'o', 'o', 'k', 'm', 'e', 'i', 'n', '.', 'i', 'n', '\0',
   /* "bookshopofindia.com", true */ 'b', 'o', 'o', 'k', 's', 'h', 'o', 'p', 'o', 'f', 'i', 'n', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "bookwitty.social", true */ 'b', 'o', 'o', 'k', 'w', 'i', 't', 't', 'y', '.', 's', 'o', 'c', 'i', 'a', 'l', '\0',
   /* "bool.be", true */ 'b', 'o', 'o', 'l', '.', 'b', 'e', '\0',
   /* "boomersurf.com", true */ 'b', 'o', 'o', 'm', 'e', 'r', 's', 'u', 'r', 'f', '.', 'c', 'o', 'm', '\0',
   /* "boomshelf.com", true */ 'b', 'o', 'o', 'm', 's', 'h', 'e', 'l', 'f', '.', 'c', 'o', 'm', '\0',
   /* "boomshelf.org", true */ 'b', 'o', 'o', 'm', 's', 'h', 'e', 'l', 'f', '.', 'o', 'r', 'g', '\0',
@@ -2679,16 +2679,17 @@ static const char kSTSHostTable[] = {
   /* "bottaerisposta.net", true */ 'b', 'o', 't', 't', 'a', 'e', 'r', 'i', 's', 'p', 'o', 's', 't', 'a', '.', 'n', 'e', 't', '\0',
   /* "bottineauneighborhood.org", true */ 'b', 'o', 't', 't', 'i', 'n', 'e', 'a', 'u', 'n', 'e', 'i', 'g', 'h', 'b', 'o', 'r', 'h', 'o', 'o', 'd', '.', 'o', 'r', 'g', '\0',
   /* "bottke.berlin", true */ 'b', 'o', 't', 't', 'k', 'e', '.', 'b', 'e', 'r', 'l', 'i', 'n', '\0',
   /* "bouah.net", true */ 'b', 'o', 'u', 'a', 'h', '.', 'n', 'e', 't', '\0',
   /* "bouchard-mathieux.com", true */ 'b', 'o', 'u', 'c', 'h', 'a', 'r', 'd', '-', 'm', 'a', 't', 'h', 'i', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "boudah.pl", true */ 'b', 'o', 'u', 'd', 'a', 'h', '.', 'p', 'l', '\0',
   /* "bougeret.fr", true */ 'b', 'o', 'u', 'g', 'e', 'r', 'e', 't', '.', 'f', 'r', '\0',
   /* "bounceboxspc.com", true */ 'b', 'o', 'u', 'n', 'c', 'e', 'b', 'o', 'x', 's', 'p', 'c', '.', 'c', 'o', 'm', '\0',
+  /* "bouncecoffee.com", true */ 'b', 'o', 'u', 'n', 'c', 'e', 'c', 'o', 'f', 'f', 'e', 'e', '.', 'c', 'o', 'm', '\0',
   /* "bouncourseplanner.net", true */ 'b', 'o', 'u', 'n', 'c', 'o', 'u', 'r', 's', 'e', 'p', 'l', 'a', 'n', 'n', 'e', 'r', '.', 'n', 'e', 't', '\0',
   /* "bouncyball.eu", false */ 'b', 'o', 'u', 'n', 'c', 'y', 'b', 'a', 'l', 'l', '.', 'e', 'u', '\0',
   /* "bouncyballs.org", true */ 'b', 'o', 'u', 'n', 'c', 'y', 'b', 'a', 'l', 'l', 's', '.', 'o', 'r', 'g', '\0',
   /* "bountyfactory.io", true */ 'b', 'o', 'u', 'n', 't', 'y', 'f', 'a', 'c', 't', 'o', 'r', 'y', '.', 'i', 'o', '\0',
   /* "bourasse.fr", true */ 'b', 'o', 'u', 'r', 'a', 's', 's', 'e', '.', 'f', 'r', '\0',
   /* "bourdon.fr.eu.org", true */ 'b', 'o', 'u', 'r', 'd', 'o', 'n', '.', 'f', 'r', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "bourse-aux-jouets.org", false */ 'b', 'o', 'u', 'r', 's', 'e', '-', 'a', 'u', 'x', '-', 'j', 'o', 'u', 'e', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "bourse-aux-vetements.org", false */ 'b', 'o', 'u', 'r', 's', 'e', '-', 'a', 'u', 'x', '-', 'v', 'e', 't', 'e', 'm', 'e', 'n', 't', 's', '.', 'o', 'r', 'g', '\0',
@@ -3037,17 +3038,16 @@ static const char kSTSHostTable[] = {
   /* "byrko.sk", true */ 'b', 'y', 'r', 'k', 'o', '.', 's', 'k', '\0',
   /* "byronr.com", true */ 'b', 'y', 'r', 'o', 'n', 'r', '.', 'c', 'o', 'm', '\0',
   /* "byronwade.com", true */ 'b', 'y', 'r', 'o', 'n', 'w', 'a', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "byrtz.de", true */ 'b', 'y', 'r', 't', 'z', '.', 'd', 'e', '\0',
   /* "byte-time.com", true */ 'b', 'y', 't', 'e', '-', 't', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "byte.chat", true */ 'b', 'y', 't', 'e', '.', 'c', 'h', 'a', 't', '\0',
   /* "bytearts.net", true */ 'b', 'y', 't', 'e', 'a', 'r', 't', 's', '.', 'n', 'e', 't', '\0',
   /* "bytebucket.org", true */ 'b', 'y', 't', 'e', 'b', 'u', 'c', 'k', 'e', 't', '.', 'o', 'r', 'g', '\0',
-  /* "bytejail.com", true */ 'b', 'y', 't', 'e', 'j', 'a', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "bytema.cz", true */ 'b', 'y', 't', 'e', 'm', 'a', '.', 'c', 'z', '\0',
   /* "byteowls.com", true */ 'b', 'y', 't', 'e', 'o', 'w', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "bytes.fyi", true */ 'b', 'y', 't', 'e', 's', '.', 'f', 'y', 'i', '\0',
   /* "bytesatwork.de", true */ 'b', 'y', 't', 'e', 's', 'a', 't', 'w', 'o', 'r', 'k', '.', 'd', 'e', '\0',
   /* "bytesatwork.eu", true */ 'b', 'y', 't', 'e', 's', 'a', 't', 'w', 'o', 'r', 'k', '.', 'e', 'u', '\0',
   /* "byteshark.org", true */ 'b', 'y', 't', 'e', 's', 'h', 'a', 'r', 'k', '.', 'o', 'r', 'g', '\0',
   /* "byteshift.ca", true */ 'b', 'y', 't', 'e', 's', 'h', 'i', 'f', 't', '.', 'c', 'a', '\0',
   /* "bytesizedalex.com", true */ 'b', 'y', 't', 'e', 's', 'i', 'z', 'e', 'd', 'a', 'l', 'e', 'x', '.', 'c', 'o', 'm', '\0',
@@ -3362,16 +3362,17 @@ static const char kSTSHostTable[] = {
   /* "cdmon.tech", true */ 'c', 'd', 'm', 'o', 'n', '.', 't', 'e', 'c', 'h', '\0',
   /* "cdn6.de", true */ 'c', 'd', 'n', '6', '.', 'd', 'e', '\0',
   /* "cdnjs.com", true */ 'c', 'd', 'n', 'j', 's', '.', 'c', 'o', 'm', '\0',
   /* "cdt.org", true */ 'c', 'd', 't', '.', 'o', 'r', 'g', '\0',
   /* "ce-agentur.de", true */ 'c', 'e', '-', 'a', 'g', 'e', 'n', 't', 'u', 'r', '.', 'd', 'e', '\0',
   /* "ce-pimkie.fr", true */ 'c', 'e', '-', 'p', 'i', 'm', 'k', 'i', 'e', '.', 'f', 'r', '\0',
   /* "cebz.org", true */ 'c', 'e', 'b', 'z', '.', 'o', 'r', 'g', '\0',
   /* "ceciliacolombara.com", true */ 'c', 'e', 'c', 'i', 'l', 'i', 'a', 'c', 'o', 'l', 'o', 'm', 'b', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0',
+  /* "cecilwalker.com.au", true */ 'c', 'e', 'c', 'i', 'l', 'w', 'a', 'l', 'k', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "cecipu.gob.cl", true */ 'c', 'e', 'c', 'i', 'p', 'u', '.', 'g', 'o', 'b', '.', 'c', 'l', '\0',
   /* "ced-services.nl", true */ 'c', 'e', 'd', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'n', 'l', '\0',
   /* "cedriccassimo.ch", true */ 'c', 'e', 'd', 'r', 'i', 'c', 'c', 'a', 's', 's', 'i', 'm', 'o', '.', 'c', 'h', '\0',
   /* "cedriccassimo.com", true */ 'c', 'e', 'd', 'r', 'i', 'c', 'c', 'a', 's', 's', 'i', 'm', 'o', '.', 'c', 'o', 'm', '\0',
   /* "cee.io", true */ 'c', 'e', 'e', '.', 'i', 'o', '\0',
   /* "ceebee.com", true */ 'c', 'e', 'e', 'b', 'e', 'e', '.', 'c', 'o', 'm', '\0',
   /* "cefak.org.br", true */ 'c', 'e', 'f', 'a', 'k', '.', 'o', 'r', 'g', '.', 'b', 'r', '\0',
   /* "cegfw.com", true */ 'c', 'e', 'g', 'f', 'w', '.', 'c', 'o', 'm', '\0',
@@ -3605,30 +3606,28 @@ static const char kSTSHostTable[] = {
   /* "chiralsoftware.com", true */ 'c', 'h', 'i', 'r', 'a', 'l', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "chireiden.net", true */ 'c', 'h', 'i', 'r', 'e', 'i', 'd', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "chiropracticwpb.com", true */ 'c', 'h', 'i', 'r', 'o', 'p', 'r', 'a', 'c', 't', 'i', 'c', 'w', 'p', 'b', '.', 'c', 'o', 'm', '\0',
   /* "chirpstory.com", true */ 'c', 'h', 'i', 'r', 'p', 's', 't', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "chiru.no", true */ 'c', 'h', 'i', 'r', 'u', '.', 'n', 'o', '\0',
   /* "chiryotaisaku.com", true */ 'c', 'h', 'i', 'r', 'y', 'o', 't', 'a', 'i', 's', 'a', 'k', 'u', '.', 'c', 'o', 'm', '\0',
   /* "chisago-isantidfl.com", true */ 'c', 'h', 'i', 's', 'a', 'g', 'o', '-', 'i', 's', 'a', 'n', 't', 'i', 'd', 'f', 'l', '.', 'c', 'o', 'm', '\0',
   /* "chit.search.yahoo.com", false */ 'c', 'h', 'i', 't', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "chloe.re", true */ 'c', 'h', 'l', 'o', 'e', '.', 'r', 'e', '\0',
   /* "chloeallison.co.uk", true */ 'c', 'h', 'l', 'o', 'e', 'a', 'l', 'l', 'i', 's', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "chloehorler.com", true */ 'c', 'h', 'l', 'o', 'e', 'h', 'o', 'r', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "chmsoft.com.ua", true */ 'c', 'h', 'm', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '.', 'u', 'a', '\0',
   /* "chocolah.com.au", false */ 'c', 'h', 'o', 'c', 'o', 'l', 'a', 'h', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "chocolatesandhealth.com", true */ 'c', 'h', 'o', 'c', 'o', 'l', 'a', 't', 'e', 's', 'a', 'n', 'd', 'h', 'e', 'a', 'l', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "chocotough.nl", false */ 'c', 'h', 'o', 'c', 'o', 't', 'o', 'u', 'g', 'h', '.', 'n', 'l', '\0',
   /* "chodobien.com", true */ 'c', 'h', 'o', 'd', 'o', 'b', 'i', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "choiralberta.ca", true */ 'c', 'h', 'o', 'i', 'r', 'a', 'l', 'b', 'e', 'r', 't', 'a', '.', 'c', 'a', '\0',
   /* "chokladfantasi.net", true */ 'c', 'h', 'o', 'k', 'l', 'a', 'd', 'f', 'a', 'n', 't', 'a', 's', 'i', '.', 'n', 'e', 't', '\0',
   /* "chonghe.org", true */ 'c', 'h', 'o', 'n', 'g', 'h', 'e', '.', 'o', 'r', 'g', '\0',
   /* "chook.as", true */ 'c', 'h', 'o', 'o', 'k', '.', 'a', 's', '\0',
   /* "choosemypc.net", true */ 'c', 'h', 'o', 'o', 's', 'e', 'm', 'y', 'p', 'c', '.', 'n', 'e', 't', '\0',
-  /* "chopperforums.com", true */ 'c', 'h', 'o', 'p', 'p', 'e', 'r', 'f', 'o', 'r', 'u', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "chorkley.co.uk", true */ 'c', 'h', 'o', 'r', 'k', 'l', 'e', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "chorkley.com", true */ 'c', 'h', 'o', 'r', 'k', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "chorkley.me", true */ 'c', 'h', 'o', 'r', 'k', 'l', 'e', 'y', '.', 'm', 'e', '\0',
   /* "chorkley.uk", true */ 'c', 'h', 'o', 'r', 'k', 'l', 'e', 'y', '.', 'u', 'k', '\0',
   /* "chorpinkpoemps.de", true */ 'c', 'h', 'o', 'r', 'p', 'i', 'n', 'k', 'p', 'o', 'e', 'm', 'p', 's', '.', 'd', 'e', '\0',
   /* "chosenplaintext.org", true */ 'c', 'h', 'o', 's', 'e', 'n', 'p', 'l', 'a', 'i', 'n', 't', 'e', 'x', 't', '.', 'o', 'r', 'g', '\0',
   /* "chourishi-shigoto.com", true */ 'c', 'h', 'o', 'u', 'r', 'i', 's', 'h', 'i', '-', 's', 'h', 'i', 'g', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0',
   /* "chris-edwards.net", true */ 'c', 'h', 'r', 'i', 's', '-', 'e', 'd', 'w', 'a', 'r', 'd', 's', '.', 'n', 'e', 't', '\0',
@@ -3709,16 +3708,17 @@ static const char kSTSHostTable[] = {
   /* "cidbot.com", true */ 'c', 'i', 'd', 'b', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "ciderclub.com", true */ 'c', 'i', 'd', 'e', 'r', 'c', 'l', 'u', 'b', '.', 'c', 'o', 'm', '\0',
   /* "cienbeaute-lidl.fr", true */ 'c', 'i', 'e', 'n', 'b', 'e', 'a', 'u', 't', 'e', '-', 'l', 'i', 'd', 'l', '.', 'f', 'r', '\0',
   /* "cieslar.io", true */ 'c', 'i', 'e', 's', 'l', 'a', 'r', '.', 'i', 'o', '\0',
   /* "cig-dem.com", true */ 'c', 'i', 'g', '-', 'd', 'e', 'm', '.', 'c', 'o', 'm', '\0',
   /* "cigar-cartel.com", true */ 'c', 'i', 'g', 'a', 'r', '-', 'c', 'a', 'r', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "cigarterminal.com", false */ 'c', 'i', 'g', 'a', 'r', 't', 'e', 'r', 'm', 'i', 'n', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "cigoteket.se", true */ 'c', 'i', 'g', 'o', 't', 'e', 'k', 'e', 't', '.', 's', 'e', '\0',
+  /* "ciicutini.ro", true */ 'c', 'i', 'i', 'c', 'u', 't', 'i', 'n', 'i', '.', 'r', 'o', '\0',
   /* "cima-idf.fr", true */ 'c', 'i', 'm', 'a', '-', 'i', 'd', 'f', '.', 'f', 'r', '\0',
   /* "cimballa.com", true */ 'c', 'i', 'm', 'b', 'a', 'l', 'l', 'a', '.', 'c', 'o', 'm', '\0',
   /* "cimfax.com", true */ 'c', 'i', 'm', 'f', 'a', 'x', '.', 'c', 'o', 'm', '\0',
   /* "cinartelorgu.com", true */ 'c', 'i', 'n', 'a', 'r', 't', 'e', 'l', 'o', 'r', 'g', 'u', '.', 'c', 'o', 'm', '\0',
   /* "cine-music.de", true */ 'c', 'i', 'n', 'e', '-', 'm', 'u', 's', 'i', 'c', '.', 'd', 'e', '\0',
   /* "cinefilzonen.se", true */ 'c', 'i', 'n', 'e', 'f', 'i', 'l', 'z', 'o', 'n', 'e', 'n', '.', 's', 'e', '\0',
   /* "cinema5.ru", true */ 'c', 'i', 'n', 'e', 'm', 'a', '5', '.', 'r', 'u', '\0',
   /* "cinemaclub.co", true */ 'c', 'i', 'n', 'e', 'm', 'a', 'c', 'l', 'u', 'b', '.', 'c', 'o', '\0',
@@ -3735,17 +3735,17 @@ static const char kSTSHostTable[] = {
   /* "cipherli.st", true */ 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'i', '.', 's', 't', '\0',
   /* "ciphrex.com", true */ 'c', 'i', 'p', 'h', 'r', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "cira.email", true */ 'c', 'i', 'r', 'a', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "circ-logic.com", true */ 'c', 'i', 'r', 'c', '-', 'l', 'o', 'g', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "circara.com", true */ 'c', 'i', 'r', 'c', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "circu.ml", true */ 'c', 'i', 'r', 'c', 'u', '.', 'm', 'l', '\0',
   /* "cirfi.com", true */ 'c', 'i', 'r', 'f', 'i', '.', 'c', 'o', 'm', '\0',
   /* "cirope.com", true */ 'c', 'i', 'r', 'o', 'p', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "cirrohost.com", false */ 'c', 'i', 'r', 'r', 'o', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
+  /* "cirrohost.com", true */ 'c', 'i', 'r', 'r', 'o', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "cirrus0.de", true */ 'c', 'i', 'r', 'r', 'u', 's', '0', '.', 'd', 'e', '\0',
   /* "ciscodude.net", true */ 'c', 'i', 's', 'c', 'o', 'd', 'u', 'd', 'e', '.', 'n', 'e', 't', '\0',
   /* "ciscohomeanalytics.com", true */ 'c', 'i', 's', 'c', 'o', 'h', 'o', 'm', 'e', 'a', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "cisy.me", true */ 'c', 'i', 's', 'y', '.', 'm', 'e', '\0',
   /* "citationgurus.com", true */ 'c', 'i', 't', 'a', 't', 'i', 'o', 'n', 'g', 'u', 'r', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "citizen-cam.de", true */ 'c', 'i', 't', 'i', 'z', 'e', 'n', '-', 'c', 'a', 'm', '.', 'd', 'e', '\0',
   /* "citizensbankal.com", true */ 'c', 'i', 't', 'i', 'z', 'e', 'n', 's', 'b', 'a', 'n', 'k', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "citizenscience.gov", true */ 'c', 'i', 't', 'i', 'z', 'e', 'n', 's', 'c', 'i', 'e', 'n', 'c', 'e', '.', 'g', 'o', 'v', '\0',
@@ -3880,16 +3880,17 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "clubdeslecteurs.net", true */ 'c', 'l', 'u', 'b', 'd', 'e', 's', 'l', 'e', 'c', 't', 'e', 'u', 'r', 's', '.', 'n', 'e', 't', '\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',
   /* "clubmate.rocks", true */ 'c', 'l', 'u', 'b', 'm', 'a', 't', 'e', '.', 'r', 'o', 'c', 'k', 's', '\0',
   /* "clubmini.jp", true */ 'c', 'l', 'u', 'b', 'm', 'i', 'n', 'i', '.', 'j', 'p', '\0',
   /* "clubon.space", true */ 'c', 'l', 'u', 'b', 'o', 'n', '.', 's', 'p', 'a', 'c', 'e', '\0',
+  /* "clusterfuck.nz", true */ 'c', 'l', 'u', 's', 't', 'e', 'r', 'f', 'u', 'c', 'k', '.', 'n', 'z', '\0',
   /* "clvs7.com", true */ 'c', 'l', 'v', 's', '7', '.', 'c', 'o', 'm', '\0',
   /* "clycat.ru", true */ 'c', 'l', 'y', 'c', 'a', 't', '.', 'r', 'u', '\0',
   /* "cmacacias.ch", true */ 'c', 'm', 'a', 'c', 'a', 'c', 'i', 'a', 's', '.', 'c', 'h', '\0',
   /* "cmahy.be", true */ 'c', 'm', 'a', 'h', 'y', '.', 'b', 'e', '\0',
   /* "cmcressy.ch", true */ 'c', 'm', 'c', 'r', 'e', 's', 's', 'y', '.', 'c', 'h', '\0',
   /* "cmdline.org", true */ 'c', 'm', 'd', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "cmlachapelle.ch", true */ 'c', 'm', 'l', 'a', 'c', 'h', 'a', 'p', 'e', 'l', 'l', 'e', '.', 'c', 'h', '\0',
   /* "cmlancy.ch", true */ 'c', 'm', 'l', 'a', 'n', 'c', 'y', '.', 'c', 'h', '\0',
@@ -3907,16 +3908,17 @@ static const char kSTSHostTable[] = {
   /* "cncfraises.fr", true */ 'c', 'n', 'c', 'f', 'r', 'a', 'i', 's', 'e', 's', '.', 'f', 'r', '\0',
   /* "cnetw.xyz", true */ 'c', 'n', 'e', 't', 'w', '.', 'x', 'y', 'z', '\0',
   /* "cnlic.com", true */ 'c', 'n', 'l', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "cnwarn.com", true */ 'c', 'n', 'w', 'a', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "co-driversphoto.se", true */ 'c', 'o', '-', 'd', 'r', 'i', 'v', 'e', 'r', 's', 'p', 'h', 'o', 't', 'o', '.', 's', 'e', '\0',
   /* "co-factor.ro", true */ 'c', 'o', '-', 'f', 'a', 'c', 't', 'o', 'r', '.', 'r', 'o', '\0',
   /* "co-yutaka.com", true */ 'c', 'o', '-', 'y', 'u', 't', 'a', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "co.search.yahoo.com", false */ 'c', 'o', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "co50.com", true */ 'c', 'o', '5', '0', '.', 'c', 'o', 'm', '\0',
   /* "coaching-impulse.ch", true */ 'c', 'o', 'a', 'c', 'h', 'i', 'n', 'g', '-', 'i', 'm', 'p', 'u', 'l', 's', 'e', '.', 'c', 'h', '\0',
   /* "coachingconsultancy.com", true */ 'c', 'o', 'a', 'c', 'h', 'i', 'n', 'g', 'c', 'o', 'n', 's', 'u', 'l', 't', 'a', 'n', 'c', 'y', '.', 'c', 'o', 'm', '\0',
   /* "coalitionministries.org", true */ 'c', 'o', 'a', 'l', 'i', 't', 'i', 'o', 'n', 'm', 'i', 'n', 'i', 's', 't', 'r', 'i', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "coalpointcottage.com", true */ 'c', 'o', 'a', 'l', 'p', 'o', 'i', 'n', 't', 'c', 'o', 't', 't', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "coam.co", true */ 'c', 'o', 'a', 'm', '.', 'c', 'o', '\0',
   /* "coatl-industries.com", true */ 'c', 'o', 'a', 't', 'l', '-', 'i', 'n', 'd', 'u', 's', 't', 'r', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "cobalt.io", true */ 'c', 'o', 'b', 'a', 'l', 't', '.', 'i', 'o', '\0',
   /* "cobrax.net", true */ 'c', 'o', 'b', 'r', 'a', 'x', '.', 'n', 'e', 't', '\0',
@@ -3971,27 +3973,27 @@ static const char kSTSHostTable[] = {
   /* "codewiz.xyz", true */ 'c', 'o', 'd', 'e', 'w', 'i', 'z', '.', 'x', 'y', 'z', '\0',
   /* "codeyellow.nl", true */ 'c', 'o', 'd', 'e', 'y', 'e', 'l', 'l', 'o', 'w', '.', 'n', 'l', '\0',
   /* "codigosddd.com.br", true */ 'c', 'o', 'd', 'i', 'g', 'o', 's', 'd', 'd', 'd', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "coding.lv", true */ 'c', 'o', 'd', 'i', 'n', 'g', '.', 'l', 'v', '\0',
   /* "coding.net", true */ 'c', 'o', 'd', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0',
   /* "codingforspeed.com", true */ 'c', 'o', 'd', 'i', 'n', 'g', 'f', 'o', 'r', 's', 'p', 'e', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "codingrobots.com", true */ 'c', 'o', 'd', 'i', 'n', 'g', 'r', 'o', 'b', 'o', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "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',
   /* "cogilog.com", true */ 'c', 'o', 'g', 'i', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "cogitoltd.com", true */ 'c', 'o', 'g', 'i', 't', 'o', 'l', 't', 'd', '.', 'c', 'o', 'm', '\0',
   /* "cogniflex.com", true */ 'c', 'o', 'g', 'n', 'i', 'f', 'l', 'e', 'x', '.', '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',
-  /* "coiffeurschnittstelle.ch", true */ 'c', 'o', 'i', 'f', 'f', 'e', 'u', 'r', 's', 'c', 'h', 'n', 'i', 't', 't', 's', 't', 'e', 'l', 'l', 'e', '.', 'c', 'h', '\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',
   /* "coinbit.trade", true */ 'c', 'o', 'i', 'n', 'b', 'i', 't', '.', 't', 'r', 'a', 'd', 'e', '\0',
   /* "coincoin.eu.org", true */ 'c', 'o', 'i', 'n', 'c', 'o', 'i', 'n', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "coindatabase.net", true */ 'c', 'o', 'i', 'n', 'd', 'a', 't', 'a', 'b', 'a', 's', 'e', '.', 'n', 'e', 't', '\0',
   /* "coinessa.com", true */ 'c', 'o', 'i', 'n', 'e', 's', 's', 'a', '.', 'c', 'o', 'm', '\0',
@@ -4000,16 +4002,17 @@ static const char kSTSHostTable[] = {
   /* "coinmewallet.com", true */ 'c', 'o', 'i', 'n', 'm', 'e', 'w', 'a', 'l', 'l', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "coinpit.io", true */ 'c', 'o', 'i', 'n', 'p', 'i', 't', '.', 'i', 'o', '\0',
   /* "coisasdemulher.org", true */ 'c', 'o', 'i', 's', 'a', 's', 'd', 'e', 'm', 'u', 'l', 'h', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "cojo.eu", true */ 'c', 'o', 'j', 'o', '.', 'e', 'u', '\0',
   /* "col.la", true */ 'c', 'o', 'l', '.', 'l', 'a', '\0',
   /* "colaborativa.tv", true */ 'c', 'o', 'l', 'a', 'b', 'o', 'r', 'a', 't', 'i', 'v', 'a', '.', 't', 'v', '\0',
   /* "colapsys.net", true */ 'c', 'o', 'l', 'a', 'p', 's', 'y', 's', '.', 'n', 'e', 't', '\0',
   /* "coldawn.com", true */ 'c', 'o', 'l', 'd', 'a', 'w', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "coldfff.com", false */ 'c', 'o', 'l', 'd', 'f', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "coldhak.ca", true */ 'c', 'o', 'l', 'd', 'h', 'a', 'k', '.', 'c', 'a', '\0',
   /* "coldwatericecream.com", true */ 'c', 'o', 'l', 'd', 'w', 'a', 't', 'e', 'r', 'i', 'c', 'e', 'c', 'r', 'e', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "colearnr.com", true */ 'c', 'o', 'l', 'e', 'a', 'r', 'n', 'r', '.', 'c', 'o', 'm', '\0',
   /* "colegiocierp.com.br", true */ 'c', 'o', 'l', 'e', 'g', 'i', 'o', 'c', 'i', 'e', 'r', 'p', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "colemak.com", true */ 'c', 'o', 'l', 'e', 'm', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "colengo.com", true */ 'c', 'o', 'l', 'e', 'n', 'g', 'o', '.', 'c', 'o', 'm', '\0',
   /* "colibris.xyz", true */ 'c', 'o', 'l', 'i', 'b', 'r', 'i', 's', '.', 'x', 'y', 'z', '\0',
   /* "colincampbell.me", true */ 'c', 'o', 'l', 'i', 'n', 'c', 'a', 'm', 'p', 'b', 'e', 'l', 'l', '.', 'm', 'e', '\0',
@@ -4106,16 +4109,17 @@ static const char kSTSHostTable[] = {
   /* "completesecurityessex.com", true */ 'c', 'o', 'm', 'p', 'l', 'e', 't', 'e', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'e', 's', 's', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "completesportperformance.com", true */ 'c', 'o', 'm', 'p', 'l', 'e', 't', 'e', 's', 'p', 'o', 'r', 't', 'p', 'e', 'r', 'f', 'o', 'r', 'm', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "completionist.me", true */ 'c', 'o', 'm', 'p', 'l', 'e', 't', 'i', 'o', 'n', 'i', 's', 't', '.', 'm', 'e', '\0',
   /* "complexart.ro", true */ 'c', 'o', 'm', 'p', 'l', 'e', 'x', 'a', 'r', 't', '.', 'r', 'o', '\0',
   /* "compliance-systeme.de", true */ 'c', 'o', 'm', 'p', 'l', 'i', 'a', 'n', 'c', 'e', '-', 's', 'y', 's', 't', 'e', 'm', 'e', '.', 'd', 'e', '\0',
   /* "compliancedictionary.com", true */ 'c', 'o', 'm', 'p', 'l', 'i', 'a', 'n', 'c', 'e', 'd', 'i', 'c', 't', 'i', 'o', 'n', 'a', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "complt.xyz", true */ 'c', 'o', 'm', 'p', 'l', 't', '.', 'x', 'y', 'z', '\0',
   /* "compsmag.com", true */ 'c', 'o', 'm', 'p', 's', 'm', 'a', 'g', '.', 'c', 'o', 'm', '\0',
+  /* "compucorner.mx", true */ 'c', 'o', 'm', 'p', 'u', 'c', 'o', 'r', 'n', 'e', 'r', '.', 'm', 'x', '\0',
   /* "computer-acquisti.com", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', '-', 'a', 'c', 'q', 'u', 'i', 's', 't', 'i', '.', 'c', 'o', 'm', '\0',
   /* "computerassistance.co.uk", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'a', 's', 's', 'i', 's', 't', 'a', 'n', 'c', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "computerbase.de", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'b', 'a', 's', 'e', '.', 'd', 'e', '\0',
   /* "computerhilfe-feucht.de", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'h', 'i', 'l', 'f', 'e', '-', 'f', 'e', 'u', 'c', 'h', 't', '.', 'd', 'e', '\0',
   /* "computerslotopschool.nl", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 's', 'l', 'o', 't', 'o', 'p', 's', 'c', 'h', 'o', 'o', 'l', '.', 'n', 'l', '\0',
   /* "computertal.de", true */ 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 't', 'a', 'l', '.', 'd', 'e', '\0',
   /* "comssa.org.au", true */ 'c', 'o', 'm', 's', 's', 'a', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0',
   /* "concentrade.de", true */ 'c', 'o', 'n', 'c', 'e', 'n', 't', 'r', 'a', 'd', 'e', '.', 'd', 'e', '\0',
@@ -4131,17 +4135,16 @@ static const char kSTSHostTable[] = {
   /* "config.schokokeks.org", false */ 'c', 'o', 'n', 'f', 'i', 'g', '.', 's', 'c', 'h', 'o', 'k', 'o', 'k', 'e', 'k', 's', '.', 'o', 'r', 'g', '\0',
   /* "confiwall.de", true */ 'c', 'o', 'n', 'f', 'i', 'w', 'a', 'l', 'l', '.', 'd', 'e', '\0',
   /* "conflux.tw", true */ 'c', 'o', 'n', 'f', 'l', 'u', 'x', '.', 't', 'w', '\0',
   /* "confucio.cl", true */ 'c', 'o', 'n', 'f', 'u', 'c', 'i', 'o', '.', 'c', 'l', '\0',
   /* "confuddledpenguin.com", true */ 'c', 'o', 'n', 'f', 'u', 'd', 'd', 'l', 'e', 'd', 'p', 'e', 'n', 'g', 'u', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "cong5.net", true */ 'c', 'o', 'n', 'g', '5', '.', 'n', 'e', 't', '\0',
   /* "congineer.com", true */ 'c', 'o', 'n', 'g', 'i', 'n', 'e', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "congz.me", true */ 'c', 'o', 'n', 'g', 'z', '.', 'm', 'e', '\0',
-  /* "conjugacao.com.br", true */ 'c', 'o', 'n', 'j', 'u', 'g', 'a', 'c', 'a', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "conkret.mobi", true */ 'c', 'o', 'n', 'k', 'r', 'e', 't', '.', 'm', 'o', 'b', 'i', '\0',
   /* "connect-ed.network", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', '-', 'e', 'd', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0',
   /* "connect.dating", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "connectingconcepts.com", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'n', 'g', 'c', 'o', 'n', 'c', 'e', 'p', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "connectum.eu", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', 'u', 'm', '.', 'e', 'u', '\0',
   /* "connext.de", true */ 'c', 'o', 'n', 'n', 'e', 'x', 't', '.', 'd', 'e', '\0',
   /* "connyduck.at", true */ 'c', 'o', 'n', 'n', 'y', 'd', 'u', 'c', 'k', '.', 'a', 't', '\0',
   /* "conpins.nl", true */ 'c', 'o', 'n', 'p', 'i', 'n', 's', '.', 'n', 'l', '\0',
@@ -4530,21 +4533,19 @@ static const char kSTSHostTable[] = {
   /* "customerbox.ir", true */ 'c', 'u', 's', 't', 'o', 'm', 'e', 'r', 'b', 'o', 'x', '.', 'i', 'r', '\0',
   /* "customfilmworks.com", true */ 'c', 'u', 's', 't', 'o', 'm', 'f', 'i', 'l', 'm', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "customshort.link", true */ 'c', 'u', 's', 't', 'o', 'm', 's', 'h', 'o', 'r', 't', '.', 'l', 'i', 'n', 'k', '\0',
   /* "customwritings.com", true */ 'c', 'u', 's', 't', 'o', 'm', 'w', 'r', 'i', 't', 'i', 'n', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "cutimbo.ovh", true */ 'c', 'u', 't', 'i', 'm', 'b', 'o', '.', 'o', 'v', 'h', '\0',
   /* "cuvva.co", true */ 'c', 'u', 'v', 'v', 'a', '.', 'c', 'o', '\0',
   /* "cuvva.co.uk", true */ 'c', 'u', 'v', 'v', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "cuvva.com", true */ 'c', 'u', 'v', 'v', 'a', '.', 'c', 'o', 'm', '\0',
-  /* "cuvva.eu", true */ 'c', 'u', 'v', 'v', 'a', '.', 'e', 'u', '\0',
   /* "cuvva.it", true */ 'c', 'u', 'v', 'v', 'a', '.', 'i', 't', '\0',
   /* "cuvva.me", true */ 'c', 'u', 'v', 'v', 'a', '.', 'm', 'e', '\0',
   /* "cuvva.net", true */ 'c', 'u', 'v', 'v', 'a', '.', 'n', 'e', 't', '\0',
-  /* "cuvva.org", true */ 'c', 'u', 'v', 'v', 'a', '.', 'o', 'r', 'g', '\0',
   /* "cuvva.uk", true */ 'c', 'u', 'v', 'v', 'a', '.', 'u', 'k', '\0',
   /* "cuvva.us", true */ 'c', 'u', 'v', 'v', 'a', '.', 'u', 's', '\0',
   /* "cve-le-carrousel.ch", true */ 'c', 'v', 'e', '-', 'l', 'e', '-', 'c', 'a', 'r', 'r', 'o', 'u', 's', 'e', 'l', '.', 'c', 'h', '\0',
   /* "cviip.ca", true */ 'c', 'v', 'i', 'i', 'p', '.', 'c', 'a', '\0',
   /* "cviip.com", true */ 'c', 'v', 'i', 'i', 'p', '.', 'c', 'o', 'm', '\0',
   /* "cvjm-memmingen.de", true */ 'c', 'v', 'j', 'm', '-', 'm', 'e', 'm', 'm', 'i', 'n', 'g', 'e', 'n', '.', 'd', 'e', '\0',
   /* "cvlibrary.co.uk", true */ 'c', 'v', 'l', 'i', 'b', 'r', 'a', 'r', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "cvmu.jp", true */ 'c', 'v', 'm', 'u', '.', 'j', 'p', '\0',
@@ -4651,17 +4652,16 @@ static const char kSTSHostTable[] = {
   /* "dailyenglishchallenge.com", true */ 'd', 'a', 'i', 'l', 'y', 'e', 'n', 'g', 'l', 'i', 's', 'h', 'c', 'h', 'a', 'l', 'l', 'e', 'n', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dailyhealthguard.com", true */ 'd', 'a', 'i', 'l', 'y', 'h', 'e', 'a', 'l', 't', 'h', 'g', 'u', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "dailylifefinancial.com", false */ 'd', 'a', 'i', 'l', 'y', 'l', 'i', 'f', 'e', 'f', 'i', 'n', 'a', 'n', 'c', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "dailytopix.com", true */ 'd', 'a', 'i', 'l', 'y', 't', 'o', 'p', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "dairyshrine.org", true */ 'd', 'a', 'i', 'r', 'y', 's', 'h', 'r', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "daiwai.de", false */ 'd', 'a', 'i', 'w', 'a', 'i', '.', 'd', 'e', '\0',
   /* "daiweihu.com", true */ 'd', 'a', 'i', 'w', 'e', 'i', 'h', 'u', '.', 'c', 'o', 'm', '\0',
   /* "daiyuu.jp", true */ 'd', 'a', 'i', 'y', 'u', 'u', '.', 'j', 'p', '\0',
-  /* "dakerealestate.com", true */ 'd', 'a', 'k', 'e', 'r', 'e', 'a', 'l', 'e', 's', 't', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dakl-shop.de", true */ 'd', 'a', 'k', 'l', '-', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "daknob.net", true */ 'd', 'a', 'k', 'n', 'o', 'b', '.', 'n', 'e', 't', '\0',
   /* "daladubbeln.se", true */ 'd', 'a', 'l', 'a', 'd', 'u', 'b', 'b', 'e', 'l', 'n', '.', 's', 'e', '\0',
   /* "dale-electric.com", true */ 'd', 'a', 'l', 'e', '-', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "dalek.co.nz", true */ 'd', 'a', 'l', 'e', 'k', '.', 'c', 'o', '.', 'n', 'z', '\0',
   /* "dalfsennet.nl", true */ 'd', 'a', 'l', 'f', 's', 'e', 'n', 'n', 'e', 't', '.', 'n', 'l', '\0',
   /* "dalingk.com", true */ 'd', 'a', 'l', 'i', 'n', 'g', 'k', '.', 'c', 'o', 'm', '\0',
   /* "dallinbryce.com", true */ 'd', 'a', 'l', 'l', 'i', 'n', 'b', 'r', 'y', 'c', 'e', '.', 'c', 'o', 'm', '\0',
@@ -4771,17 +4771,16 @@ static const char kSTSHostTable[] = {
   /* "dashboard.yt", true */ 'd', 'a', 's', 'h', 'b', 'o', 'a', 'r', 'd', '.', 'y', 't', '\0',
   /* "data.gov", true */ 'd', 'a', 't', 'a', '.', 'g', 'o', 'v', '\0',
   /* "data.haus", true */ 'd', 'a', 't', 'a', '.', 'h', 'a', 'u', 's', '\0',
   /* "data.qld.gov.au", false */ 'd', 'a', 't', 'a', '.', 'q', 'l', 'd', '.', 'g', 'o', 'v', '.', 'a', 'u', '\0',
   /* "databeam.de", true */ 'd', 'a', 't', 'a', 'b', 'e', 'a', 'm', '.', 'd', 'e', '\0',
   /* "databionix.com", true */ 'd', 'a', 't', 'a', 'b', 'i', 'o', 'n', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "databutlr.com", true */ 'd', 'a', 't', 'a', 'b', 'u', 't', 'l', 'r', '.', 'c', 'o', 'm', '\0',
   /* "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',
   /* "datalysis.ch", true */ 'd', 'a', 't', 'a', 'l', 'y', 's', 'i', 's', '.', 'c', 'h', '\0',
@@ -4801,17 +4800,16 @@ static const char kSTSHostTable[] = {
   /* "datememe.com", true */ 'd', 'a', 't', 'e', 'm', 'e', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "datenlast.de", true */ 'd', 'a', 't', 'e', 'n', 'l', 'a', 's', 't', '.', 'd', 'e', '\0',
   /* "datenreiter.org", true */ 'd', 'a', 't', 'e', 'n', 'r', 'e', 'i', 't', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "datenschutz-individuell.de", true */ 'd', 'a', 't', 'e', 'n', 's', 'c', 'h', 'u', 't', 'z', '-', 'i', 'n', 'd', 'i', 'v', 'i', 'd', 'u', 'e', 'l', 'l', '.', 'd', 'e', '\0',
   /* "datenschutztag.org", true */ 'd', 'a', 't', 'e', 'n', 's', 'c', 'h', 'u', 't', 'z', 't', 'a', 'g', '.', 'o', 'r', 'g', '\0',
   /* "datenwerkstatt.net", true */ 'd', 'a', 't', 'e', 'n', 'w', 'e', 'r', 'k', 's', 't', 'a', 't', 't', '.', 'n', 'e', 't', '\0',
   /* "datewon.net", false */ 'd', 'a', 't', 'e', 'w', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "datorb.com", true */ 'd', 'a', 't', 'o', 'r', 'b', '.', 'c', 'o', 'm', '\0',
-  /* "datortipsen.se", true */ 'd', 'a', 't', 'o', 'r', 't', 'i', 'p', 's', 'e', 'n', '.', 's', 'e', '\0',
   /* "datovyaudit.cz", true */ 'd', 'a', 't', 'o', 'v', 'y', 'a', 'u', 'd', 'i', 't', '.', 'c', 'z', '\0',
   /* "datsound.ru", true */ 'd', 'a', 't', 's', 'o', 'u', 'n', 'd', '.', 'r', 'u', '\0',
   /* "dave-pearce.com", true */ 'd', 'a', 'v', 'e', '-', 'p', 'e', 'a', 'r', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "daveaglick.com", true */ 'd', 'a', 'v', 'e', 'a', 'g', 'l', 'i', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "davecardwell.com", true */ 'd', 'a', 'v', 'e', 'c', 'a', 'r', 'd', 'w', 'e', 'l', 'l', '.', 'c', 'o', 'm', '\0',
   /* "daveoc64.co.uk", true */ 'd', 'a', 'v', 'e', 'o', 'c', '6', '4', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "davepage.me.uk", true */ 'd', 'a', 'v', 'e', 'p', 'a', 'g', 'e', '.', 'm', 'e', '.', 'u', 'k', '\0',
   /* "davepearce.com", true */ 'd', 'a', 'v', 'e', 'p', 'e', 'a', 'r', 'c', 'e', '.', 'c', 'o', 'm', '\0',
@@ -5095,17 +5093,16 @@ static const char kSTSHostTable[] = {
   /* "detoxsinutritie.ro", true */ 'd', 'e', 't', 'o', 'x', 's', 'i', 'n', 'u', 't', 'r', 'i', 't', 'i', 'e', '.', 'r', 'o', '\0',
   /* "detroit-english.de", true */ 'd', 'e', 't', 'r', 'o', 'i', 't', '-', 'e', 'n', 'g', 'l', 'i', 's', 'h', '.', 'd', 'e', '\0',
   /* "detroitstylepizza.com", true */ 'd', 'e', 't', 'r', 'o', 'i', 't', 's', 't', 'y', 'l', 'e', 'p', 'i', 'z', 'z', 'a', '.', 'c', 'o', 'm', '\0',
   /* "detskysad.com", true */ 'd', 'e', 't', 's', 'k', 'y', 's', 'a', 'd', '.', 'c', 'o', 'm', '\0',
   /* "detteflies.com", true */ 'd', 'e', 't', 't', 'e', 'f', 'l', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "detutorial.com", false */ 'd', 'e', 't', 'u', 't', 'o', 'r', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "deurenfabriek.nl", true */ 'd', 'e', 'u', 'r', 'e', 'n', 'f', 'a', 'b', 'r', 'i', 'e', 'k', '.', 'n', 'l', '\0',
   /* "deusu.de", true */ 'd', 'e', 'u', 's', 'u', '.', 'd', 'e', '\0',
-  /* "deusu.org", true */ 'd', 'e', 'u', 's', 'u', '.', 'o', 'r', 'g', '\0',
   /* "deutsch-vietnamesisch-dolmetscher.com", true */ 'd', 'e', 'u', 't', 's', 'c', 'h', '-', 'v', 'i', 'e', 't', 'n', 'a', 'm', 'e', 's', 'i', 's', 'c', 'h', '-', 'd', 'o', 'l', 'm', 'e', 't', 's', 'c', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "dev-aegon.azurewebsites.net", true */ 'd', 'e', 'v', '-', 'a', 'e', 'g', 'o', 'n', '.', 'a', 'z', 'u', 'r', 'e', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "dev-tek.de", true */ 'd', 'e', 'v', '-', 't', 'e', 'k', '.', 'd', 'e', '\0',
   /* "devb.nl", true */ 'd', 'e', 'v', 'b', '.', 'n', 'l', '\0',
   /* "devct.cz", true */ 'd', 'e', 'v', 'c', 't', '.', 'c', 'z', '\0',
   /* "devdesco.com", true */ 'd', 'e', 'v', 'd', 'e', 's', 'c', 'o', '.', 'c', 'o', 'm', '\0',
   /* "devdom.io", true */ 'd', 'e', 'v', 'd', 'o', 'm', '.', 'i', 'o', '\0',
   /* "devdoodle.net", true */ 'd', 'e', 'v', 'd', 'o', 'o', 'd', 'l', 'e', '.', 'n', 'e', 't', '\0',
@@ -5170,17 +5167,16 @@ static const char kSTSHostTable[] = {
   /* "dhlinux.org", true */ 'd', 'h', 'l', 'i', 'n', 'u', 'x', '.', 'o', 'r', 'g', '\0',
   /* "dhuy.net", true */ 'd', 'h', 'u', 'y', '.', 'n', 'e', 't', '\0',
   /* "diablofan.hopto.org", true */ 'd', 'i', 'a', 'b', 'l', 'o', 'f', 'a', 'n', '.', 'h', 'o', 'p', 't', 'o', '.', 'o', 'r', 'g', '\0',
   /* "diagnosia.com", true */ 'd', 'i', 'a', 'g', 'n', 'o', 's', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "diagnostix.org", true */ 'd', 'i', 'a', 'g', 'n', 'o', 's', 't', 'i', 'x', '.', 'o', 'r', 'g', '\0',
   /* "diamante.ro", true */ 'd', 'i', 'a', 'm', 'a', 'n', 't', 'e', '.', 'r', 'o', '\0',
   /* "diamorphine.com", true */ 'd', 'i', 'a', 'm', 'o', 'r', 'p', 'h', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "dianefriedli.ch", true */ 'd', 'i', 'a', 'n', 'e', 'f', 'r', 'i', 'e', 'd', 'l', 'i', '.', 'c', 'h', '\0',
-  /* "dianlujitao.com", true */ 'd', 'i', 'a', 'n', 'l', 'u', 'j', 'i', 't', 'a', 'o', '.', 'c', 'o', 'm', '\0',
   /* "diannaobos.com", true */ 'd', 'i', 'a', 'n', 'n', 'a', 'o', 'b', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "diare-na-miru.cz", true */ 'd', 'i', 'a', 'r', 'e', '-', 'n', 'a', '-', 'm', 'i', 'r', 'u', '.', 'c', 'z', '\0',
   /* "diasdasemana.com", true */ 'd', 'i', 'a', 's', 'd', 'a', 's', 'e', 'm', 'a', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "diasp.cz", true */ 'd', 'i', 'a', 's', 'p', '.', 'c', 'z', '\0',
   /* "diasp.org", true */ 'd', 'i', 'a', 's', 'p', '.', 'o', 'r', 'g', '\0',
   /* "diasporadialogues.com", true */ 'd', 'i', 'a', 's', 'p', 'o', 'r', 'a', 'd', 'i', 'a', 'l', 'o', 'g', 'u', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "diavo.de", true */ 'd', 'i', 'a', 'v', 'o', '.', 'd', 'e', '\0',
   /* "dibiphp.com", true */ 'd', 'i', 'b', 'i', 'p', 'h', 'p', '.', 'c', 'o', 'm', '\0',
@@ -5268,17 +5264,16 @@ static const char kSTSHostTable[] = {
   /* "diju.ch", true */ 'd', 'i', 'j', 'u', '.', 'c', 'h', '\0',
   /* "dilichen.fr", true */ 'd', 'i', 'l', 'i', 'c', 'h', 'e', 'n', '.', 'f', 'r', '\0',
   /* "dillewijnzwapak.nl", true */ 'd', 'i', 'l', 'l', 'e', 'w', 'i', 'j', 'n', 'z', 'w', 'a', 'p', 'a', 'k', '.', 'n', 'l', '\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',
   /* "dimez.ru", true */ 'd', 'i', 'm', 'e', 'z', '.', 'r', 'u', '\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',
   /* "dino.li", true */ 'd', 'i', 'n', 'o', '.', 'l', 'i', '\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',
@@ -5459,16 +5454,17 @@ static const char kSTSHostTable[] = {
   /* "domainexpress.de", false */ 'd', 'o', 'm', 'a', 'i', 'n', 'e', 'x', 'p', 'r', 'e', 's', 's', '.', 'd', 'e', '\0',
   /* "domainkauf.de", true */ 'd', 'o', 'm', 'a', 'i', 'n', 'k', 'a', 'u', 'f', '.', 'd', 'e', '\0',
   /* "domains.google.com", true */ 'd', 'o', 'm', 'a', 'i', 'n', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "domainstaff.com", true */ 'd', 'o', 'm', 'a', 'i', 'n', 's', 't', 'a', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "domaxpoker.com", true */ 'd', 'o', 'm', 'a', 'x', 'p', 'o', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "domenic.me", true */ 'd', 'o', 'm', 'e', 'n', 'i', 'c', '.', 'm', 'e', '\0',
   /* "domenicocatelli.com", true */ 'd', 'o', 'm', 'e', 'n', 'i', 'c', 'o', 'c', 'a', 't', 'e', 'l', 'l', 'i', '.', 'c', 'o', 'm', '\0',
   /* "domesticcleaners.co.uk", true */ 'd', 'o', 'm', 'e', 's', 't', 'i', 'c', 'c', 'l', 'e', 'a', 'n', 'e', 'r', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "domesticwatermeters.com.au", true */ 'd', 'o', 'm', 'e', 's', 't', 'i', 'c', 'w', 'a', 't', 'e', 'r', 'm', 'e', 't', 'e', 'r', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "domfee.com", true */ 'd', 'o', 'm', 'f', 'e', 'e', '.', 'c', 'o', 'm', '\0',
   /* "domhaase.me", true */ 'd', 'o', 'm', 'h', 'a', 'a', 's', 'e', '.', 'm', 'e', '\0',
   /* "dominationgame.co.uk", true */ 'd', 'o', 'm', 'i', 'n', 'a', 't', 'i', 'o', 'n', 'g', 'a', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "dominikkulaga.pl", true */ 'd', 'o', 'm', 'i', 'n', 'i', 'k', 'k', 'u', 'l', 'a', 'g', 'a', '.', 'p', 'l', '\0',
   /* "dominioanimal.com.br", true */ 'd', 'o', 'm', 'i', 'n', 'i', 'o', 'a', 'n', 'i', 'm', 'a', 'l', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "dominoknihy.cz", true */ 'd', 'o', 'm', 'i', 'n', 'o', 'k', 'n', 'i', 'h', 'y', '.', 'c', 'z', '\0',
   /* "dominomatrix.com", true */ 'd', 'o', 'm', 'i', 'n', 'o', 'm', 'a', 't', 'r', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "domodeco.fr", true */ 'd', 'o', 'm', 'o', 'd', 'e', 'c', 'o', '.', 'f', 'r', '\0',
@@ -5720,17 +5716,16 @@ static const char kSTSHostTable[] = {
   /* "dvbris.co.uk", true */ 'd', 'v', 'b', 'r', 'i', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "dvbris.com", true */ 'd', 'v', 'b', 'r', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "dvorupotocnych.sk", true */ 'd', 'v', 'o', 'r', 'u', 'p', 'o', 't', 'o', 'c', 'n', 'y', 'c', 'h', '.', 's', 'k', '\0',
   /* "dvotx.org", true */ 'd', 'v', 'o', 't', 'x', '.', 'o', 'r', 'g', '\0',
   /* "dvwc.org", true */ 'd', 'v', 'w', 'c', '.', 'o', 'r', 'g', '\0',
   /* "dvx.cloud", true */ 'd', 'v', 'x', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "dwhd.org", true */ 'd', 'w', 'h', 'd', '.', 'o', 'r', 'g', '\0',
   /* "dwnld.me", true */ 'd', 'w', 'n', 'l', 'd', '.', 'm', 'e', '\0',
-  /* "dworzak.ch", true */ 'd', 'w', 'o', 'r', 'z', 'a', 'k', '.', 'c', 'h', '\0',
   /* "dwtm.ch", true */ 'd', 'w', 't', 'm', '.', 'c', 'h', '\0',
   /* "dwworld.co.uk", true */ 'd', 'w', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "dxa.io", false */ 'd', 'x', 'a', '.', 'i', 'o', '\0',
   /* "dxgl.info", true */ 'd', 'x', 'g', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "dxm.no-ip.biz", true */ 'd', 'x', 'm', '.', 'n', 'o', '-', 'i', 'p', '.', 'b', 'i', 'z', '\0',
   /* "dycem-ns.com", true */ 'd', 'y', 'c', 'e', 'm', '-', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "dyeager.org", true */ 'd', 'y', 'e', 'a', 'g', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "dylankatz.com", true */ 'd', 'y', 'l', 'a', 'n', 'k', 'a', 't', 'z', '.', 'c', 'o', 'm', '\0',
@@ -6165,16 +6160,17 @@ static const char kSTSHostTable[] = {
   /* "encredible.org", false */ 'e', 'n', 'c', 'r', 'e', 'd', 'i', 'b', 'l', 'e', '.', 'o', 'r', 'g', '\0',
   /* "encryptallthethings.net", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'a', 'l', 'l', 't', 'h', 'e', 't', 'h', 'i', 'n', 'g', 's', '.', 'n', 'e', 't', '\0',
   /* "encrypted.google.com", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'e', 'd', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "encryptedaudience.com", true */ 'e', 'n', 'c', 'r', 'y', 'p', 't', 'e', 'd', 'a', 'u', 'd', 'i', 'e', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "endeal.nl", true */ 'e', 'n', 'd', 'e', 'a', 'l', '.', 'n', 'l', '\0',
   /* "ender.co.at", true */ 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', '.', 'a', 't', '\0',
   /* "endingthedocumentgame.gov", true */ 'e', 'n', 'd', 'i', 'n', 'g', 't', 'h', 'e', 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 'g', 'a', 'm', 'e', '.', 'g', 'o', 'v', '\0',
   /* "endlessdiy.ca", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'd', 'i', 'y', '.', 'c', 'a', '\0',
+  /* "endlesshorizon.net", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'h', 'o', 'r', 'i', 'z', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "endlessvideo.com", true */ 'e', 'n', 'd', 'l', 'e', 's', 's', 'v', 'i', 'd', 'e', 'o', '.', 'c', 'o', 'm', '\0',
   /* "endofnet.org", true */ 'e', 'n', 'd', 'o', 'f', 'n', 'e', 't', '.', 'o', 'r', 'g', '\0',
   /* "endoftennancycleaning.co.uk", true */ 'e', 'n', 'd', 'o', 'f', 't', 'e', 'n', 'n', 'a', 'n', 'c', 'y', 'c', 'l', 'e', 'a', 'n', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "endohaus.ca", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'a', '\0',
   /* "endohaus.com", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "endohaus.eu", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'e', 'u', '\0',
   /* "endohaus.us", true */ 'e', 'n', 'd', 'o', 'h', 'a', 'u', 's', '.', 'u', 's', '\0',
   /* "endzeit-architekten.com", false */ 'e', 'n', 'd', 'z', 'e', 'i', 't', '-', 'a', 'r', 'c', 'h', 'i', 't', 'e', 'k', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0',
@@ -6206,16 +6202,17 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "enjoystudio.ro", true */ 'e', 'n', 'j', 'o', 'y', 's', 't', 'u', 'd', 'i', 'o', '.', 'r', 'o', '\0',
   /* "enlatte.com", true */ 'e', 'n', 'l', 'a', 't', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "enlightened.si", true */ 'e', 'n', 'l', 'i', 'g', 'h', 't', 'e', 'n', 'e', 'd', '.', 's', 'i', '\0',
   /* "enlightenedhr.com", true */ 'e', 'n', 'l', 'i', 'g', 'h', 't', 'e', 'n', 'e', 'd', 'h', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "enlightenment.org", true */ 'e', 'n', 'l', 'i', 'g', 'h', 't', 'e', 'n', 'm', 'e', 'n', 't', '.', 'o', 'r', 'g', '\0',
   /* "enloestatebank.com", true */ 'e', 'n', 'l', 'o', 'e', 's', 't', 'a', 't', 'e', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "ennori.jp", true */ 'e', 'n', 'n', 'o', 'r', 'i', '.', 'j', 'p', '\0',
   /* "enorekcah.com", true */ 'e', 'n', 'o', 'r', 'e', 'k', 'c', 'a', 'h', '.', 'c', 'o', 'm', '\0',
   /* "enot32.ru", true */ 'e', 'n', 'o', 't', '3', '2', '.', 'r', 'u', '\0',
   /* "enquos.com", true */ 'e', 'n', 'q', 'u', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "enriquepiraces.com", true */ 'e', 'n', 'r', 'i', 'q', 'u', 'e', 'p', 'i', 'r', 'a', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "ensage.io", true */ 'e', 'n', 's', 'a', 'g', 'e', '.', 'i', 'o', '\0',
   /* "enscosupply.com", true */ 'e', 'n', 's', 'c', 'o', 's', 'u', 'p', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
@@ -6408,17 +6405,16 @@ static const char kSTSHostTable[] = {
   /* "ethercalc.org", true */ 'e', 't', 'h', 'e', 'r', 'c', 'a', 'l', 'c', '.', 'o', 'r', 'g', '\0',
   /* "etheria-software.tk", true */ 'e', 't', 'h', 'e', 'r', 'i', 'a', '-', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 't', 'k', '\0',
   /* "etherpad.fr", true */ 'e', 't', 'h', 'e', 'r', 'p', 'a', 'd', '.', 'f', 'r', '\0',
   /* "etherpad.nl", true */ 'e', 't', 'h', 'e', 'r', 'p', 'a', 'd', '.', 'n', 'l', '\0',
   /* "ethicaldata.co.uk", true */ 'e', 't', 'h', 'i', 'c', 'a', 'l', 'd', 'a', 't', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "ethicall.org.uk", true */ 'e', 't', 'h', 'i', 'c', 'a', 'l', 'l', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0',
   /* "ethiopian.dating", true */ 'e', 't', 'h', 'i', 'o', 'p', 'i', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "ethitter.com", true */ 'e', 't', 'h', 'i', 't', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "ethlan.fr", true */ 'e', 't', 'h', 'l', 'a', 'n', '.', 'f', 'r', '\0',
   /* "ethosinfo.com", true */ 'e', 't', 'h', 'o', 's', 'i', 'n', 'f', 'o', '.', 'c', 'o', 'm', '\0',
   /* "etidni.help", true */ 'e', 't', 'i', 'd', 'n', 'i', '.', 'h', 'e', 'l', 'p', '\0',
   /* "etk2000.com", true */ 'e', 't', 'k', '2', '0', '0', '0', '.', 'c', 'o', 'm', '\0',
   /* "etkaddict.com", true */ 'e', 't', 'k', 'a', 'd', 'd', 'i', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "etv.cx", true */ 'e', 't', 'v', '.', 'c', 'x', '\0',
   /* "etyd.org", true */ 'e', 't', 'y', 'd', '.', 'o', 'r', 'g', '\0',
   /* "etys.no", true */ 'e', 't', 'y', 's', '.', 'n', 'o', '\0',
   /* "etzi.myds.me", true */ 'e', 't', 'z', 'i', '.', 'm', 'y', 'd', 's', '.', 'm', 'e', '\0',
@@ -6515,16 +6511,17 @@ static const char kSTSHostTable[] = {
   /* "everywhere.cloud", true */ 'e', 'v', 'e', 'r', 'y', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "eveseat.net", true */ 'e', 'v', 'e', 's', 'e', 'a', 't', '.', 'n', 'e', 't', '\0',
   /* "eveshaiwu.com", true */ 'e', 'v', 'e', 's', 'h', 'a', 'i', 'w', 'u', '.', 'c', 'o', 'm', '\0',
   /* "eveshamglass.co.uk", true */ 'e', 'v', 'e', 's', 'h', 'a', 'm', 'g', 'l', 'a', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "evexia.xyz", true */ 'e', 'v', 'e', 'x', 'i', 'a', '.', 'x', 'y', 'z', '\0',
   /* "evi.be", true */ 'e', 'v', 'i', '.', 'b', 'e', '\0',
   /* "evilized.de", true */ 'e', 'v', 'i', 'l', 'i', 'z', 'e', 'd', '.', 'd', 'e', '\0',
   /* "evilnerd.de", true */ 'e', 'v', 'i', 'l', 'n', 'e', 'r', 'd', '.', 'd', 'e', '\0',
+  /* "evilsay.com", true */ 'e', 'v', 'i', 'l', 's', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "evion.nl", true */ 'e', 'v', 'i', 'o', 'n', '.', 'n', 'l', '\0',
   /* "evlear.com", true */ 'e', 'v', 'l', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "evodation.com", true */ 'e', 'v', 'o', 'd', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "evok.com.co", true */ 'e', 'v', 'o', 'k', '.', 'c', 'o', 'm', '.', 'c', 'o', '\0',
   /* "evoludis.net", true */ 'e', 'v', 'o', 'l', 'u', 'd', 'i', 's', '.', 'n', 'e', 't', '\0',
   /* "evolutionexpeditions.com", true */ 'e', 'v', 'o', 'l', 'u', 't', 'i', 'o', 'n', 'e', 'x', 'p', 'e', 'd', 'i', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "evolutionlending.co.uk", true */ 'e', 'v', 'o', 'l', 'u', 't', 'i', 'o', 'n', 'l', 'e', 'n', 'd', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "evosyn.com", true */ 'e', 'v', 'o', 's', 'y', 'n', '.', 'c', 'o', 'm', '\0',
@@ -6825,30 +6822,28 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "femtomind.com", true */ 'f', 'e', 'm', 't', 'o', 'm', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "fence-stlouis.com", true */ 'f', 'e', 'n', 'c', 'e', '-', 's', 't', 'l', 'o', 'u', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "feng.si", true */ 'f', 'e', 'n', 'g', '.', 's', 'i', '\0',
-  /* "fenno.net", true */ 'f', 'e', 'n', 'n', 'o', '.', 'n', 'e', 't', '\0',
   /* "fenster-bank.at", true */ 'f', 'e', 'n', 's', 't', 'e', 'r', '-', 'b', 'a', 'n', 'k', '.', 'a', 't', '\0',
   /* "fenster-bank.de", true */ 'f', 'e', 'n', 's', 't', 'e', 'r', '-', 'b', 'a', 'n', 'k', '.', 'd', 'e', '\0',
   /* "feragon.net", true */ 'f', 'e', 'r', 'a', 'g', 'o', 'n', '.', 'n', 'e', 't', '\0',
   /* "feras-alhajjaji.com", true */ 'f', 'e', 'r', 'a', 's', '-', 'a', 'l', 'h', 'a', 'j', 'j', 'a', 'j', 'i', '.', 'c', 'o', 'm', '\0',
   /* "ferdies.co.za", true */ 'f', 'e', 'r', 'd', 'i', 'e', 's', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "ferien-netzwerk.de", true */ 'f', 'e', 'r', 'i', 'e', 'n', '-', 'n', 'e', 't', 'z', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "ferienhaus-polchow-ruegen.de", false */ 'f', 'e', 'r', 'i', 'e', 'n', 'h', 'a', 'u', 's', '-', 'p', 'o', 'l', 'c', 'h', 'o', 'w', '-', 'r', 'u', 'e', 'g', 'e', 'n', '.', 'd', 'e', '\0',
   /* "fernandes.org", true */ 'f', 'e', 'r', 'n', 'a', 'n', 'd', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "fernandob.com", false */ 'f', 'e', 'r', 'n', 'a', 'n', 'd', 'o', 'b', '.', 'c', 'o', 'm', '\0',
   /* "fernandobarata.pt", true */ 'f', 'e', 'r', 'n', 'a', 'n', 'd', 'o', 'b', 'a', 'r', 'a', 't', 'a', '.', 'p', 't', '\0',
   /* "fernandobarillas.com", false */ 'f', 'e', 'r', 'n', 'a', 'n', 'd', 'o', 'b', 'a', 'r', 'i', 'l', 'l', 'a', 's', '.', 'c', 'o', 'm', '\0',
   /* "ferrolatino.ch", true */ 'f', 'e', 'r', 'r', 'o', 'l', 'a', 't', 'i', 'n', 'o', '.', 'c', 'h', '\0',
-  /* "ferrugem.org", true */ 'f', 'e', 'r', 'r', 'u', 'g', 'e', 'm', '.', 'o', 'r', 'g', '\0',
   /* "ferticare.pt", true */ 'f', 'e', 'r', 't', 'i', 'c', 'a', 'r', 'e', '.', 'p', 't', '\0',
   /* "fertila.de", true */ 'f', 'e', 'r', 't', 'i', 'l', 'a', '.', 'd', 'e', '\0',
   /* "feschiyan.com", true */ 'f', 'e', 's', 'c', 'h', 'i', 'y', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "festivaljapon.com", true */ 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', 'j', 'a', 'p', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "festivalxdentro.com", true */ 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', 'x', 'd', 'e', 'n', 't', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "fetch.co.uk", true */ 'f', 'e', 't', 'c', 'h', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "feudalisten.de", true */ 'f', 'e', 'u', 'd', 'a', 'l', 'i', 's', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "feuerwehr-illmensee.de", true */ 'f', 'e', 'u', 'e', 'r', 'w', 'e', 'h', 'r', '-', 'i', 'l', 'l', 'm', 'e', 'n', 's', 'e', 'e', '.', 'd', 'e', '\0',
@@ -6955,16 +6950,17 @@ static const char kSTSHostTable[] = {
   /* "firebugmusic.com", true */ 'f', 'i', 'r', 'e', 'b', 'u', 'g', 'm', 'u', 's', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "firecore.com", true */ 'f', 'i', 'r', 'e', 'c', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "firefart.at", true */ 'f', 'i', 'r', 'e', 'f', 'a', 'r', 't', '.', 'a', 't', '\0',
   /* "firefighters.dating", true */ 'f', 'i', 'r', 'e', 'f', 'i', 'g', 'h', 't', 'e', 'r', 's', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "firegoby.jp", true */ 'f', 'i', 'r', 'e', 'g', 'o', 'b', 'y', '.', 'j', 'p', '\0',
   /* "firehost.com", true */ 'f', 'i', 'r', 'e', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "firenza.org", true */ 'f', 'i', 'r', 'e', 'n', 'z', 'a', '.', 'o', 'r', 'g', '\0',
   /* "fireportal.cz", true */ 'f', 'i', 'r', 'e', 'p', 'o', 'r', 't', 'a', 'l', '.', 'c', 'z', '\0',
+  /* "firesofheaven.org", true */ 'f', 'i', 'r', 'e', 's', 'o', 'f', 'h', 'e', 'a', 'v', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "firevap.org", true */ 'f', 'i', 'r', 'e', 'v', 'a', 'p', '.', 'o', 'r', 'g', '\0',
   /* "firewallconsultants.com", true */ 'f', 'i', 'r', 'e', 'w', 'a', 'l', 'l', 'c', 'o', 'n', 's', 'u', 'l', 't', 'a', 'n', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "firexarxa.de", true */ 'f', 'i', 'r', 'e', 'x', 'a', 'r', 'x', 'a', '.', 'd', 'e', '\0',
   /* "firma-offshore.com", true */ 'f', 'i', 'r', 'm', 'a', '-', 'o', 'f', 'f', 's', 'h', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "firmale.com", true */ 'f', 'i', 'r', 'm', 'a', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "firmapi.com", true */ 'f', 'i', 'r', 'm', 'a', 'p', 'i', '.', 'c', 'o', 'm', '\0',
   /* "first-house.no", true */ 'f', 'i', 'r', 's', 't', '-', 'h', 'o', 'u', 's', 'e', '.', 'n', 'o', '\0',
   /* "first-time-offender.com", true */ 'f', 'i', 'r', 's', 't', '-', 't', 'i', 'm', 'e', '-', 'o', 'f', 'f', 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -6992,17 +6988,16 @@ static const char kSTSHostTable[] = {
   /* "fitsw.com", true */ 'f', 'i', 't', 's', 'w', '.', 'c', 'o', 'm', '\0',
   /* "fittelo.cz", true */ 'f', 'i', 't', 't', 'e', 'l', 'o', '.', 'c', 'z', '\0',
   /* "fitzsim.org", true */ 'f', 'i', 't', 'z', 's', 'i', 'm', '.', 'o', 'r', 'g', '\0',
   /* "fiuxy.co", true */ 'f', 'i', 'u', 'x', 'y', '.', 'c', 'o', '\0',
   /* "fivestepfunnels.com", true */ 'f', 'i', 'v', 'e', 's', 't', 'e', 'p', 'f', 'u', 'n', 'n', 'e', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "fiws.net", true */ 'f', 'i', 'w', 's', '.', 'n', 'e', 't', '\0',
   /* "fix-the-timeline.com", true */ 'f', 'i', 'x', '-', 't', 'h', 'e', '-', 't', 'i', 'm', 'e', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fix-the-timeline.org", true */ 'f', 'i', 'x', '-', 't', 'h', 'e', '-', 't', 'i', 'm', 'e', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
-  /* "fixate.ru", true */ 'f', 'i', 'x', 'a', 't', 'e', '.', 'r', 'u', '\0',
   /* "fixel.express", true */ 'f', 'i', 'x', 'e', 'l', '.', 'e', 'x', 'p', 'r', 'e', 's', 's', '\0',
   /* "fixforce.nl", true */ 'f', 'i', 'x', 'f', 'o', 'r', 'c', 'e', '.', 'n', 'l', '\0',
   /* "fixhotsauce.com", true */ 'f', 'i', 'x', 'h', 'o', 't', 's', 'a', 'u', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fixmyalarmpanel.co.uk", true */ 'f', 'i', 'x', 'm', 'y', 'a', 'l', 'a', 'r', 'm', 'p', 'a', 'n', 'e', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "fixmycomputerdude.com", true */ 'f', 'i', 'x', 'm', 'y', 'c', 'o', 'm', 'p', 'u', 't', 'e', 'r', 'd', 'u', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fixthetimeline.com", true */ 'f', 'i', 'x', 't', 'h', 'e', 't', 'i', 'm', 'e', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fixthetimeline.org", true */ 'f', 'i', 'x', 't', 'h', 'e', 't', 'i', 'm', 'e', 'l', 'i', 'n', 'e', '.', 'o', 'r', 'g', '\0',
   /* "fixvoltage.ru", true */ 'f', 'i', 'x', 'v', 'o', 'l', 't', 'a', 'g', 'e', '.', 'r', 'u', '\0',
@@ -7031,16 +7026,17 @@ static const char kSTSHostTable[] = {
   /* "flatpackmates.co.uk", true */ 'f', 'l', 'a', 't', 'p', 'a', 'c', 'k', 'm', 'a', 't', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "flauschig.net", true */ 'f', 'l', 'a', 'u', 's', 'c', 'h', 'i', 'g', '.', 'n', 'e', 't', '\0',
   /* "flavr.be", true */ 'f', 'l', 'a', 'v', 'r', '.', 'b', 'e', '\0',
   /* "flawlesscowboy.xyz", true */ 'f', 'l', 'a', 'w', 'l', 'e', 's', 's', 'c', 'o', 'w', 'b', 'o', 'y', '.', 'x', 'y', 'z', '\0',
   /* "flazznetworks.com", false */ 'f', 'l', 'a', 'z', 'z', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "fleep.io", true */ 'f', 'l', 'e', 'e', 'p', '.', 'i', 'o', '\0',
   /* "fleetssl.com", true */ 'f', 'l', 'e', 'e', 't', 's', 's', 'l', '.', 'c', 'o', 'm', '\0',
   /* "fleisch.club", true */ 'f', 'l', 'e', 'i', 's', 'c', 'h', '.', 'c', 'l', 'u', 'b', '\0',
+  /* "fletchto99.com", true */ 'f', 'l', 'e', 't', 'c', 'h', 't', 'o', '9', '9', '.', 'c', 'o', 'm', '\0',
   /* "flexapplications.se", true */ 'f', 'l', 'e', 'x', 'a', 'p', 'p', 'l', 'i', 'c', 'a', 't', 'i', 'o', 'n', 's', '.', 's', 'e', '\0',
   /* "fleximus.org", false */ 'f', 'l', 'e', 'x', 'i', 'm', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "flexinvesting.fi", true */ 'f', 'l', 'e', 'x', 'i', 'n', 'v', 'e', 's', 't', 'i', 'n', 'g', '.', 'f', 'i', '\0',
   /* "flexport.com", true */ 'f', 'l', 'e', 'x', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "flexstart.me", true */ 'f', 'l', 'e', 'x', 's', 't', 'a', 'r', 't', '.', 'm', 'e', '\0',
   /* "flightdeckfriend.com", true */ 'f', 'l', 'i', 'g', 'h', 't', 'd', 'e', 'c', 'k', 'f', 'r', 'i', 'e', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "flightschoolbooking.com", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'b', 'o', 'o', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "flightschoolcandidates.gov", true */ 'f', 'l', 'i', 'g', 'h', 't', 's', 'c', 'h', 'o', 'o', 'l', 'c', 'a', 'n', 'd', 'i', 'd', 'a', 't', 'e', 's', '.', 'g', 'o', 'v', '\0',
@@ -7337,16 +7333,17 @@ static const char kSTSHostTable[] = {
   /* "frequencebanane.ch", true */ 'f', 'r', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 'b', 'a', 'n', 'a', 'n', 'e', '.', 'c', 'h', '\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',
   /* "freshdesigns.de", true */ 'f', 'r', 'e', 's', 'h', 'd', 'e', 's', 'i', 'g', 'n', 's', '.', 'd', 'e', '\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',
+  /* "freshlymind.com", true */ 'f', 'r', 'e', 's', 'h', 'l', 'y', 'm', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0',
   /* "freshmaza.com", true */ 'f', 'r', 'e', 's', 'h', 'm', 'a', 'z', 'a', '.', 'c', 'o', 'm', '\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',
@@ -7392,16 +7389,17 @@ static const char kSTSHostTable[] = {
   /* "frtn.com", true */ 'f', 'r', 't', 'n', '.', 'c', 'o', 'm', '\0',
   /* "frtr.gov", true */ 'f', 'r', 't', 'r', '.', 'g', 'o', 'v', '\0',
   /* "fruchthof24.de", true */ 'f', 'r', 'u', 'c', 'h', 't', 'h', 'o', 'f', '2', '4', '.', 'd', 'e', '\0',
   /* "fruchtikus.net", true */ 'f', 'r', 'u', 'c', 'h', 't', 'i', 'k', 'u', 's', '.', 'n', 'e', 't', '\0',
   /* "frugalmechanic.com", true */ 'f', 'r', 'u', 'g', 'a', 'l', 'm', 'e', 'c', 'h', 'a', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "frugro.be", true */ 'f', 'r', 'u', 'g', 'r', 'o', '.', 'b', 'e', '\0',
   /* "fruition.co.jp", true */ 'f', 'r', 'u', 'i', 't', 'i', 'o', 'n', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "frumious.fyi", true */ 'f', 'r', 'u', 'm', 'i', 'o', 'u', 's', '.', 'f', 'y', 'i', '\0',
+  /* "frusky.de", true */ 'f', 'r', 'u', 's', 'k', 'y', '.', 'd', 'e', '\0',
   /* "fs-gamenet.de", true */ 'f', 's', '-', 'g', 'a', 'm', 'e', 'n', 'e', 't', '.', 'd', 'e', '\0',
   /* "fsapubs.gov", true */ 'f', 's', 'a', 'p', 'u', 'b', 's', '.', 'g', 'o', 'v', '\0',
   /* "fsbnh.bank", true */ 'f', 's', 'b', 'n', 'h', '.', 'b', 'a', 'n', 'k', '\0',
   /* "fsbpaintrock.com", true */ 'f', 's', 'b', 'p', 'a', 'i', 'n', 't', 'r', 'o', 'c', 'k', '.', 'c', 'o', 'm', '\0',
   /* "fsbturton.com", true */ 'f', 's', 'b', 't', 'u', 'r', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "fsckd.com", true */ 'f', 's', 'c', 'k', 'd', '.', 'c', 'o', 'm', '\0',
   /* "fsf.moe", true */ 'f', 's', 'f', '.', 'm', 'o', 'e', '\0',
   /* "fsfi.is", true */ 'f', 's', 'f', 'i', '.', 'i', 's', '\0',
@@ -7428,17 +7426,16 @@ static const char kSTSHostTable[] = {
   /* "fuitedeau.ch", true */ 'f', 'u', 'i', 't', 'e', 'd', 'e', 'a', 'u', '.', 'c', 'h', '\0',
   /* "fuites.ch", true */ 'f', 'u', 'i', 't', 'e', 's', '.', 'c', 'h', '\0',
   /* "fukuko.biz", true */ 'f', 'u', 'k', 'u', 'k', 'o', '.', 'b', 'i', 'z', '\0',
   /* "fukuko.xyz", true */ 'f', 'u', 'k', 'u', 'k', 'o', '.', 'x', 'y', 'z', '\0',
   /* "fukuoka-cityliner.jp", true */ 'f', 'u', 'k', 'u', 'o', 'k', 'a', '-', 'c', 'i', 't', 'y', 'l', 'i', 'n', 'e', 'r', '.', 'j', 'p', '\0',
   /* "fuliwang.info", true */ 'f', 'u', 'l', 'i', 'w', 'a', 'n', 'g', '.', 'i', 'n', 'f', 'o', '\0',
   /* "fullbundle.com", true */ 'f', 'u', 'l', 'l', 'b', 'u', 'n', 'd', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fullmatch.net", true */ 'f', 'u', 'l', 'l', 'm', 'a', 't', 'c', 'h', '.', 'n', 'e', 't', '\0',
-  /* "fullyint.com", true */ 'f', 'u', 'l', 'l', 'y', 'i', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "fumblers.ca", true */ 'f', 'u', 'm', 'b', 'l', 'e', 'r', 's', '.', 'c', 'a', '\0',
   /* "fumiware.com", true */ 'f', 'u', 'm', 'i', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "funandnatural.shop", true */ 'f', 'u', 'n', 'a', 'n', 'd', 'n', 'a', 't', 'u', 'r', 'a', 'l', '.', 's', 'h', 'o', 'p', '\0',
   /* "funatic.nl", true */ 'f', 'u', 'n', 'a', 't', 'i', 'c', '.', 'n', 'l', '\0',
   /* "funchestra.at", false */ 'f', 'u', 'n', 'c', 'h', 'e', 's', 't', 'r', 'a', '.', 'a', 't', '\0',
   /* "functions-online.com", true */ 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', 's', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fundays.nl", true */ 'f', 'u', 'n', 'd', 'a', 'y', 's', '.', 'n', 'l', '\0',
   /* "fundeego.com", true */ 'f', 'u', 'n', 'd', 'e', 'e', 'g', 'o', '.', 'c', 'o', 'm', '\0',
@@ -7473,16 +7470,17 @@ static const char kSTSHostTable[] = {
   /* "futbolvivo.tv", true */ 'f', 'u', 't', 'b', 'o', 'l', 'v', 'i', 'v', 'o', '.', 't', 'v', '\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',
   /* "futurenda.com", true */ 'f', 'u', 't', 'u', 'r', 'e', 'n', 'd', 'a', '.', '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',
   /* "futurope.com", true */ 'f', 'u', 't', 'u', 'r', 'o', 'p', 'e', '.', 'c', 'o', 'm', '\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',
   /* "fuxwerk.de", true */ 'f', 'u', 'x', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "fuyu.moe", true */ 'f', 'u', 'y', 'u', '.', 'm', 'o', 'e', '\0',
   /* "fuzoku-sodan.com", true */ 'f', 'u', 'z', 'o', 'k', 'u', '-', 's', 'o', 'd', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "fuzzing-project.org", true */ 'f', 'u', 'z', 'z', 'i', 'n', 'g', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0',
   /* "fveevaete.com", true */ 'f', 'v', 'e', 'e', 'v', 'a', 'e', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "fwei.tk", true */ 'f', 'w', 'e', 'i', '.', 't', 'k', '\0',
   /* "fwest.ovh", true */ 'f', 'w', 'e', 's', 't', '.', 'o', 'v', 'h', '\0',
@@ -7641,16 +7639,17 @@ static const char kSTSHostTable[] = {
   /* "gcsepod.com", true */ 'g', 'c', 's', 'e', 'p', 'o', 'd', '.', 'c', 'o', 'm', '\0',
   /* "gdax.com", true */ 'g', 'd', 'a', 'x', '.', 'c', 'o', 'm', '\0',
   /* "gdevpenze.ru", true */ 'g', 'd', 'e', 'v', 'p', 'e', 'n', 'z', 'e', '.', 'r', 'u', '\0',
   /* "gdoce.es", true */ 'g', 'd', 'o', 'c', 'e', '.', 'e', 's', '\0',
   /* "gdutnic.com", true */ 'g', 'd', 'u', 't', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "gdv.me", true */ 'g', 'd', 'v', '.', 'm', 'e', '\0',
   /* "gdz-otvety.com", true */ 'g', 'd', 'z', '-', 'o', 't', 'v', 'e', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "gdz-spishy.com", true */ 'g', 'd', 'z', '-', 's', 'p', 'i', 's', 'h', 'y', '.', 'c', 'o', 'm', '\0',
+  /* "gdz.tv", true */ 'g', 'd', 'z', '.', 't', 'v', '\0',
   /* "ge1.me", false */ 'g', 'e', '1', '.', 'm', 'e', '\0',
   /* "ge3k.net", false */ 'g', 'e', '3', 'k', '.', 'n', 'e', 't', '\0',
   /* "gear-acquisition-syndrome.community", true */ 'g', 'e', 'a', 'r', '-', 'a', 'c', 'q', 'u', 'i', 's', 'i', 't', 'i', 'o', 'n', '-', 's', 'y', 'n', 'd', 'r', 'o', 'm', 'e', '.', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '\0',
   /* "gearev.net", true */ 'g', 'e', 'a', 'r', 'e', 'v', '.', 'n', 'e', 't', '\0',
   /* "gearset.com", true */ 'g', 'e', 'a', 'r', 's', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "geblitzt.de", true */ 'g', 'e', 'b', 'l', 'i', 't', 'z', 't', '.', 'd', 'e', '\0',
   /* "gebn.co.uk", true */ 'g', 'e', 'b', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "geboortestoeltje.com", true */ 'g', 'e', 'b', 'o', 'o', 'r', 't', 'e', 's', 't', 'o', 'e', 'l', 't', 'j', 'e', '.', 'c', 'o', 'm', '\0',
@@ -7703,22 +7702,24 @@ static const char kSTSHostTable[] = {
   /* "general-anaesthetics.com", true */ 'g', 'e', 'n', 'e', 'r', 'a', 'l', '-', 'a', 'n', 'a', 'e', 's', 't', 'h', 'e', 't', 'i', 'c', 's', '.', 'c', 'o', 'm', '\0',
   /* "general-anesthesia.com", true */ 'g', 'e', 'n', 'e', 'r', 'a', 'l', '-', 'a', 'n', 'e', 's', 't', 'h', 'e', 's', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "generali-worldwide.com", true */ 'g', 'e', 'n', 'e', 'r', 'a', 'l', 'i', '-', 'w', 'o', 'r', 'l', 'd', 'w', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "generationgoat.com", true */ 'g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'o', 'n', 'g', 'o', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "generationnext.pl", true */ 'g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'o', 'n', 'n', 'e', 'x', 't', '.', 'p', 'l', '\0',
   /* "generic.cx", true */ 'g', 'e', 'n', 'e', 'r', 'i', 'c', '.', 'c', 'x', '\0',
   /* "genesischangelog.com", true */ 'g', 'e', 'n', 'e', 's', 'i', 's', 'c', 'h', 'a', 'n', 'g', 'e', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "genesiseureka.com", true */ 'g', 'e', 'n', 'e', 's', 'i', 's', 'e', 'u', 'r', 'e', 'k', 'a', '.', 'c', 'o', 'm', '\0',
+  /* "genetargetsolutions.com.au", true */ 'g', 'e', 'n', 'e', 't', 'a', 'r', 'g', 'e', 't', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "genetidyne.com", true */ 'g', 'e', 'n', 'e', 't', 'i', 'd', 'y', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "geneve.guide", true */ 'g', 'e', 'n', 'e', 'v', 'e', '.', 'g', 'u', 'i', 'd', 'e', '\0',
   /* "genie-seiner-generation.de", true */ 'g', 'e', 'n', 'i', 'e', '-', 's', 'e', 'i', 'n', 'e', 'r', '-', 'g', 'e', 'n', 'e', 'r', 'a', 't', 'i', 'o', 'n', '.', 'd', 'e', '\0',
   /* "genomequestlive.com", true */ 'g', 'e', 'n', 'o', 'm', 'e', 'q', 'u', 'e', 's', 't', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "genoog.com", true */ 'g', 'e', 'n', 'o', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "genosse-einhorn.de", true */ 'g', 'e', 'n', 'o', 's', 's', 'e', '-', 'e', 'i', 'n', 'h', 'o', 'r', 'n', '.', 'd', 'e', '\0',
+  /* "genossen.ru", true */ 'g', 'e', 'n', 'o', 's', 's', 'e', 'n', '.', 'r', 'u', '\0',
   /* "genshiken-itb.org", true */ 'g', 'e', 'n', 's', 'h', 'i', 'k', 'e', 'n', '-', 'i', 't', 'b', '.', 'o', 'r', 'g', '\0',
   /* "genshiken.org", true */ 'g', 'e', 'n', 's', 'h', 'i', 'k', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "genslerapps.com", true */ 'g', 'e', 'n', 's', 'l', 'e', 'r', 'a', 'p', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "genslerwisp.com", true */ 'g', 'e', 'n', 's', 'l', 'e', 'r', 'w', 'i', 's', 'p', '.', 'c', 'o', 'm', '\0',
   /* "gensonline.eu", true */ 'g', 'e', 'n', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'e', 'u', '\0',
   /* "genuxtsg.com", true */ 'g', 'e', 'n', 'u', 'x', 't', 's', 'g', '.', 'c', 'o', 'm', '\0',
   /* "genxbeats.com", true */ 'g', 'e', 'n', 'x', 'b', 'e', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "genxnotes.com", true */ 'g', 'e', 'n', 'x', 'n', 'o', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
@@ -7981,17 +7982,16 @@ static const char kSTSHostTable[] = {
   /* "goingreen.com.au", true */ 'g', 'o', 'i', 'n', 'g', 'r', 'e', 'e', 'n', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "gokmenguresci.com", true */ 'g', 'o', 'k', 'm', 'e', 'n', 'g', 'u', 'r', 'e', 's', 'c', 'i', '.', 'c', 'o', 'm', '\0',
   /* "gold24.ru", true */ 'g', 'o', 'l', 'd', '2', '4', '.', 'r', 'u', '\0',
   /* "goldendawnapersonalaffair.com", true */ 'g', 'o', 'l', 'd', 'e', 'n', 'd', 'a', 'w', 'n', 'a', 'p', 'e', 'r', 's', 'o', 'n', 'a', 'l', 'a', 'f', 'f', 'a', 'i', 'r', '.', 'c', 'o', 'm', '\0',
   /* "goldenhillsoftware.com", true */ 'g', 'o', 'l', 'd', 'e', 'n', 'h', 'i', 'l', 'l', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "goldenhost.ca", true */ 'g', 'o', 'l', 'd', 'e', 'n', 'h', 'o', 's', 't', '.', 'c', 'a', '\0',
   /* "goldmark.com.au", true */ 'g', 'o', 'l', 'd', 'm', 'a', 'r', 'k', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "goldpreisfinder.at", true */ 'g', 'o', 'l', 'd', 'p', 'r', 'e', 'i', 's', 'f', 'i', 'n', 'd', 'e', 'r', '.', 'a', 't', '\0',
-  /* "goldpros.com", true */ 'g', 'o', 'l', 'd', 'p', 'r', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "goldsecurity.com", true */ 'g', 'o', 'l', 'd', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "golf18network.com", true */ 'g', 'o', 'l', 'f', '1', '8', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "golfburn.com", false */ 'g', 'o', 'l', 'f', 'b', 'u', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "golfhausmallorca.com", true */ 'g', 'o', 'l', 'f', 'h', 'a', 'u', 's', 'm', 'a', 'l', 'l', 'o', 'r', 'c', 'a', '.', 'c', 'o', 'm', '\0',
   /* "golfscape.com", true */ 'g', 'o', 'l', 'f', 's', 'c', 'a', 'p', 'e', '.', 'c', 'o', 'm', '\0',
   /* "golik.net.pl", true */ 'g', 'o', 'l', 'i', 'k', '.', 'n', 'e', 't', '.', 'p', 'l', '\0',
   /* "gomiblog.com", true */ 'g', 'o', 'm', 'i', 'b', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "gondawa.com", true */ 'g', 'o', 'n', 'd', 'a', 'w', 'a', '.', 'c', 'o', 'm', '\0',
@@ -8152,16 +8152,17 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "grettogeek.com", true */ 'g', 'r', 'e', 't', 't', 'o', 'g', 'e', 'e', 'k', '.', 'c', 'o', 'm', '\0',
   /* "grevesgarten.de", true */ 'g', 'r', 'e', 'v', 'e', 's', 'g', 'a', 'r', 't', 'e', 'n', '.', 'd', 'e', '\0',
   /* "grey.house", true */ 'g', 'r', 'e', 'y', '.', 'h', 'o', 'u', 's', 'e', '\0',
+  /* "greybit.net", true */ 'g', 'r', 'e', 'y', 'b', 'i', 't', '.', 'n', 'e', 't', '\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',
   /* "gridle.io", true */ 'g', 'r', 'i', 'd', 'l', 'e', '.', 'i', 'o', '\0',
   /* "grieg-gaarden.no", true */ 'g', 'r', 'i', 'e', 'g', '-', 'g', 'a', 'a', 'r', 'd', 'e', 'n', '.', 'n', 'o', '\0',
@@ -8354,16 +8355,17 @@ static const char kSTSHostTable[] = {
   /* "hackmd.io", true */ 'h', 'a', 'c', 'k', 'm', 'd', '.', 'i', 'o', '\0',
   /* "hackroyale.xyz", true */ 'h', 'a', 'c', 'k', 'r', 'o', 'y', 'a', 'l', 'e', '.', 'x', 'y', 'z', '\0',
   /* "hacksnack.io", true */ 'h', 'a', 'c', 'k', 's', 'n', 'a', 'c', 'k', '.', 'i', 'o', '\0',
   /* "hackthissite.org", true */ 'h', 'a', 'c', 'k', 't', 'h', 'i', 's', 's', 'i', 't', 'e', '.', 'o', 'r', 'g', '\0',
   /* "hacktivis.me", true */ 'h', 'a', 'c', 'k', 't', 'i', 'v', 'i', 's', '.', 'm', 'e', '\0',
   /* "hackyourfaceoff.com", true */ 'h', 'a', 'c', 'k', 'y', 'o', 'u', 'r', 'f', 'a', 'c', 'e', 'o', 'f', 'f', '.', 'c', 'o', 'm', '\0',
   /* "hadaf.pro", true */ 'h', 'a', 'd', 'a', 'f', '.', 'p', 'r', 'o', '\0',
   /* "hadleighswimmingclub.co.uk", true */ 'h', 'a', 'd', 'l', 'e', 'i', 'g', 'h', 's', 'w', 'i', 'm', 'm', 'i', 'n', 'g', 'c', 'l', 'u', 'b', '.', 'c', 'o', '.', 'u', 'k', '\0',
+  /* "hadouk.in", true */ 'h', 'a', 'd', 'o', 'u', 'k', '.', 'i', 'n', '\0',
   /* "hadrons.org", true */ 'h', 'a', 'd', 'r', 'o', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "haefligermedia.ch", true */ 'h', 'a', 'e', 'f', 'l', 'i', 'g', 'e', 'r', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'h', '\0',
   /* "haehnlein.at", true */ 'h', 'a', 'e', 'h', 'n', 'l', 'e', 'i', 'n', '.', 'a', 't', '\0',
   /* "haens.li", true */ 'h', 'a', 'e', 'n', 's', '.', 'l', 'i', '\0',
   /* "hafniatimes.com", true */ 'h', 'a', 'f', 'n', 'i', 'a', 't', 'i', 'm', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "haiboxu.com", true */ 'h', 'a', 'i', 'b', 'o', 'x', 'u', '.', 'c', 'o', 'm', '\0',
   /* "hail2u.net", true */ 'h', 'a', 'i', 'l', '2', 'u', '.', 'n', 'e', 't', '\0',
   /* "hailer.com", true */ 'h', 'a', 'i', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0',
@@ -8812,17 +8814,16 @@ static const char kSTSHostTable[] = {
   /* "hoekwoningverkopen.nl", true */ 'h', 'o', 'e', 'k', 'w', 'o', 'n', 'i', 'n', 'g', 'v', 'e', 'r', 'k', 'o', 'p', 'e', 'n', '.', 'n', 'l', '\0',
   /* "hoelty.network", true */ 'h', 'o', 'e', 'l', 't', 'y', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0',
   /* "hoesnelwasik.nl", true */ 'h', 'o', 'e', 's', 'n', 'e', 'l', 'w', 'a', 's', 'i', 'k', '.', 'n', 'l', '\0',
   /* "hoewler.ch", true */ 'h', 'o', 'e', 'w', 'l', 'e', 'r', '.', 'c', 'h', '\0',
   /* "hoffens.se", true */ 'h', 'o', 'f', 'f', 'e', 'n', 's', '.', 's', 'e', '\0',
   /* "hogl.dk", true */ 'h', 'o', 'g', 'l', '.', 'd', 'k', '\0',
   /* "hohm.in", true */ 'h', 'o', 'h', 'm', '.', 'i', 'n', '\0',
   /* "hohnet.com", true */ 'h', 'o', 'h', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0',
-  /* "hoiku-map.tokyo", true */ 'h', 'o', 'i', 'k', 'u', '-', 'm', 'a', 'p', '.', 't', 'o', 'k', 'y', 'o', '\0',
   /* "hoken-wakaru.jp", true */ 'h', 'o', 'k', 'e', 'n', '-', 'w', 'a', 'k', 'a', 'r', 'u', '.', 'j', 'p', '\0',
   /* "hokieprivacy.org", true */ 'h', 'o', 'k', 'i', 'e', 'p', 'r', 'i', 'v', 'a', 'c', 'y', '.', 'o', 'r', 'g', '\0',
   /* "holboxwhalesharktours.com", true */ 'h', 'o', 'l', 'b', 'o', 'x', 'w', 'h', 'a', 'l', 'e', 's', 'h', 'a', 'r', 'k', 't', 'o', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "holebedeljek.hu", true */ 'h', 'o', 'l', 'e', 'b', 'e', 'd', 'e', 'l', 'j', 'e', 'k', '.', 'h', 'u', '\0',
   /* "holisticon.de", true */ 'h', 'o', 'l', 'i', 's', 't', 'i', 'c', 'o', 'n', '.', 'd', 'e', '\0',
   /* "hollermann.eu", true */ 'h', 'o', 'l', 'l', 'e', 'r', 'm', 'a', 'n', 'n', '.', 'e', 'u', '\0',
   /* "hollowrap.com", true */ 'h', 'o', 'l', 'l', 'o', 'w', 'r', 'a', 'p', '.', 'c', 'o', 'm', '\0',
   /* "hollyforrest.ca", true */ 'h', 'o', 'l', 'l', 'y', 'f', 'o', 'r', 'r', 'e', 's', 't', '.', 'c', 'a', '\0',
@@ -9078,30 +9079,28 @@ static const char kSTSHostTable[] = {
   /* "husic.net", true */ 'h', 'u', 's', 'i', 'c', '.', 'n', 'e', 't', '\0',
   /* "huskyinc.us", true */ 'h', 'u', 's', 'k', 'y', 'i', 'n', 'c', '.', 'u', 's', '\0',
   /* "hussam.eu.org", true */ 'h', 'u', 's', 's', 'a', 'm', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0',
   /* "huutonauru.net", true */ 'h', 'u', 'u', 't', 'o', 'n', 'a', 'u', 'r', 'u', '.', 'n', 'e', 't', '\0',
   /* "huwcbjones.co.uk", true */ 'h', 'u', 'w', 'c', 'b', 'j', 'o', 'n', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "huwcbjones.uk", true */ 'h', 'u', 'w', 'c', 'b', 'j', 'o', 'n', 'e', 's', '.', 'u', 'k', '\0',
   /* "huwjones.me", true */ 'h', 'u', 'w', 'j', 'o', 'n', 'e', 's', '.', 'm', 'e', '\0',
   /* "huxley.net", true */ 'h', 'u', 'x', 'l', 'e', 'y', '.', 'n', 'e', 't', '\0',
-  /* "hvh.no", true */ 'h', 'v', 'h', '.', 'n', 'o', '\0',
   /* "hvtuananh.com", true */ 'h', 'v', 't', 'u', 'a', 'n', 'a', 'n', 'h', '.', 'c', 'o', 'm', '\0',
   /* "hwag-pb.de", true */ 'h', 'w', 'a', 'g', '-', 'p', 'b', '.', 'd', 'e', '\0',
   /* "hwcine.com", true */ 'h', 'w', 'c', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "hwinfo.com", true */ 'h', 'w', 'i', 'n', 'f', 'o', '.', 'c', 'o', 'm', '\0',
   /* "hwpkasse.de", true */ 'h', 'w', 'p', 'k', 'a', 's', 's', 'e', '.', 'd', 'e', '\0',
   /* "hx53.de", true */ 'h', 'x', '5', '3', '.', 'd', 'e', '\0',
   /* "hybridworx.com", true */ 'h', 'y', 'b', 'r', 'i', 'd', 'w', 'o', 'r', 'x', '.', 'c', 'o', 'm', '\0',
   /* "hybridworx.de", true */ 'h', 'y', 'b', 'r', 'i', 'd', 'w', 'o', 'r', 'x', '.', 'd', 'e', '\0',
   /* "hybridworx.eu", true */ 'h', 'y', 'b', 'r', 'i', 'd', 'w', 'o', 'r', 'x', '.', 'e', 'u', '\0',
   /* "hybridworx.net", true */ 'h', 'y', 'b', 'r', 'i', 'd', 'w', 'o', 'r', 'x', '.', 'n', 'e', 't', '\0',
   /* "hybridworx.org", true */ 'h', 'y', 'b', 'r', 'i', 'd', 'w', 'o', 'r', 'x', '.', 'o', 'r', 'g', '\0',
   /* "hydaelyn.com", true */ 'h', 'y', 'd', 'a', 'e', 'l', 'y', 'n', '.', 'c', 'o', 'm', '\0',
-  /* "hydra.zone", true */ 'h', 'y', 'd', 'r', 'a', '.', 'z', 'o', 'n', 'e', '\0',
   /* "hydrante.ch", true */ 'h', 'y', 'd', 'r', 'a', 'n', 't', 'e', '.', 'c', 'h', '\0',
   /* "hydrocloud.net", true */ 'h', 'y', 'd', 'r', 'o', 'c', 'l', 'o', 'u', 'd', '.', 'n', 'e', 't', '\0',
   /* "hydroturbine.info", true */ 'h', 'y', 'd', 'r', 'o', 't', 'u', 'r', 'b', 'i', 'n', 'e', '.', 'i', 'n', 'f', 'o', '\0',
   /* "hydrozone.fr", true */ 'h', 'y', 'd', 'r', 'o', 'z', 'o', 'n', 'e', '.', 'f', 'r', '\0',
   /* "hyk.me", true */ 'h', 'y', 'k', '.', 'm', 'e', '\0',
   /* "hylians.com", true */ 'h', 'y', 'l', 'i', 'a', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "hymerscollege.co.uk", true */ 'h', 'y', 'm', 'e', 'r', 's', 'c', 'o', 'l', 'l', 'e', 'g', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "hynek.me", true */ 'h', 'y', 'n', 'e', 'k', '.', 'm', 'e', '\0',
@@ -9207,17 +9206,16 @@ static const char kSTSHostTable[] = {
   /* "idensys.nl", true */ 'i', 'd', 'e', 'n', 's', 'y', 's', '.', 'n', 'l', '\0',
   /* "identifyme.net", true */ 'i', 'd', 'e', 'n', 't', 'i', 'f', 'y', 'm', 'e', '.', 'n', 'e', 't', '\0',
   /* "identity-hash.online", true */ 'i', 'd', 'e', 'n', 't', 'i', 't', 'y', '-', 'h', 'a', 's', 'h', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
   /* "identitytheft.gov", true */ 'i', 'd', 'e', 'n', 't', 'i', 't', 'y', 't', 'h', 'e', 'f', 't', '.', 'g', 'o', 'v', '\0',
   /* "idexxpublicationportal.com", true */ 'i', 'd', 'e', 'x', 'x', 'p', 'u', 'b', 'l', 'i', 'c', 'a', 't', 'i', 'o', 'n', 'p', 'o', 'r', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "idgard.de", true */ 'i', 'd', 'g', 'a', 'r', 'd', '.', 'd', 'e', '\0',
   /* "idhosts.co.id", true */ 'i', 'd', 'h', 'o', 's', 't', 's', '.', 'c', 'o', '.', 'i', 'd', '\0',
   /* "idid.tk", true */ 'i', 'd', 'i', 'd', '.', 't', 'k', '\0',
-  /* "idinby.dk", true */ 'i', 'd', 'i', 'n', 'b', 'y', '.', 'd', 'k', '\0',
   /* "idiopolis.org", true */ 'i', 'd', 'i', 'o', 'p', 'o', 'l', 'i', 's', '.', 'o', 'r', 'g', '\0',
   /* "idisplay.es", true */ 'i', 'd', 'i', 's', 'p', 'l', 'a', 'y', '.', 'e', 's', '\0',
   /* "idmanagement.gov", true */ 'i', 'd', 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', '.', 'g', 'o', 'v', '\0',
   /* "idmobile.co.uk", true */ 'i', 'd', 'm', 'o', 'b', 'i', 'l', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "idndx.com", true */ 'i', 'd', 'n', 'd', 'x', '.', 'c', 'o', 'm', '\0',
   /* "idoc24.com", true */ 'i', 'd', 'o', 'c', '2', '4', '.', 'c', 'o', 'm', '\0',
   /* "idol-bikes.ru", true */ 'i', 'd', 'o', 'l', '-', 'b', 'i', 'k', 'e', 's', '.', 'r', 'u', '\0',
   /* "idolf.dk", true */ 'i', 'd', 'o', 'l', 'f', '.', 'd', 'k', '\0',
@@ -9516,17 +9514,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "inst.mobi", true */ 'i', 'n', 's', 't', '.', 'm', 'o', 'b', 'i', '\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',
@@ -9573,16 +9570,17 @@ static const char kSTSHostTable[] = {
   /* "internaldh.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 'l', 'd', 'h', '.', 'c', 'o', 'm', '\0',
   /* "international-arbitration-attorney.com", false */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 't', 'i', 'o', 'n', 'a', 'l', '-', 'a', 'r', 'b', 'i', 't', 'r', 'a', 't', 'i', 'o', 'n', '-', 'a', 't', 't', 'o', 'r', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "internationalfashionjobs.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'f', 'a', 's', 'h', 'i', 'o', 'n', 'j', 'o', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "internaut.co.za", true */ 'i', 'n', 't', 'e', 'r', 'n', 'a', 'u', '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',
   /* "internetaanbieders.eu", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'a', 'a', 'n', 'b', 'i', 'e', 'd', 'e', 'r', 's', '.', 'e', 'u', '\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',
   /* "internethealthreport.org", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'h', 'e', 'a', 'l', 't', 'h', 'r', 'e', 'p', 'o', 'r', 't', '.', 'o', 'r', 'g', '\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',
   /* "internetovehazardnihry.cz", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'o', 'v', 'e', 'h', 'a', 'z', 'a', 'r', 'd', 'n', 'i', 'h', 'r', 'y', '.', 'c', 'z', '\0',
   /* "internetpro.me", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 'p', 'r', 'o', '.', 'm', 'e', '\0',
   /* "internetstaff.com", true */ 'i', 'n', 't', 'e', 'r', 'n', 'e', 't', 's', 't', 'a', 'f', 'f', '.', 'c', 'o', 'm', '\0',
@@ -9593,17 +9591,16 @@ static const char kSTSHostTable[] = {
   /* "interracial.dating", true */ 'i', 'n', 't', 'e', 'r', 'r', 'a', 'c', 'i', 'a', 'l', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "intersectraven.net", true */ 'i', 'n', 't', 'e', 'r', 's', 'e', 'c', 't', 'r', 'a', 'v', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "interseller.io", true */ 'i', 'n', 't', 'e', 'r', 's', 'e', 'l', 'l', 'e', 'r', '.', 'i', 'o', '\0',
   /* "interviewpipeline.co.uk", true */ 'i', 'n', 't', 'e', 'r', 'v', 'i', 'e', 'w', 'p', 'i', 'p', 'e', 'l', 'i', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "interways.de", true */ 'i', 'n', 't', 'e', 'r', 'w', 'a', 'y', 's', '.', 'd', 'e', '\0',
   /* "intheater.de", true */ 'i', 'n', 't', 'h', 'e', 'a', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "inthepicture.com", true */ 'i', 'n', 't', 'h', 'e', 'p', 'i', 'c', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "inthouse.cloud", true */ 'i', 'n', 't', 'h', 'o', 'u', 's', 'e', '.', 'c', 'l', 'o', 'u', 'd', '\0',
-  /* "intimateperrierjouet.com", true */ 'i', 'n', 't', 'i', 'm', 'a', 't', 'e', 'p', 'e', 'r', 'r', 'i', 'e', 'r', 'j', 'o', 'u', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "intl-webs.com", true */ 'i', 'n', 't', 'l', '-', 'w', 'e', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "intmissioncenter.org", true */ 'i', 'n', 't', 'm', 'i', 's', 's', 'i', 'o', 'n', 'c', 'e', 'n', 't', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "intocities.de", false */ 'i', 'n', 't', 'o', 'c', 'i', 't', 'i', 'e', 's', '.', 'd', 'e', '\0',
   /* "inton.biz", true */ 'i', 'n', 't', 'o', 'n', '.', 'b', 'i', 'z', '\0',
   /* "intoparking.com", false */ 'i', 'n', 't', 'o', 'p', 'a', 'r', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "intracom.com", true */ 'i', 'n', 't', 'r', 'a', 'c', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "intramanager.co.uk", true */ 'i', 'n', 't', 'r', 'a', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "intramanager.dk", true */ 'i', 'n', 't', 'r', 'a', 'm', 'a', 'n', 'a', 'g', 'e', 'r', '.', 'd', 'k', '\0',
@@ -9684,17 +9681,16 @@ static const char kSTSHostTable[] = {
   /* "ipv6vpn.net", true */ 'i', 'p', 'v', '6', 'v', 'p', 'n', '.', 'n', 'e', 't', '\0',
   /* "ipvsec.nl", true */ 'i', 'p', 'v', 's', 'e', 'c', '.', 'n', 'l', '\0',
   /* "iqboxy.com", true */ 'i', 'q', 'b', 'o', 'x', 'y', '.', 'c', 'o', 'm', '\0',
   /* "iqsmn.org", true */ 'i', 'q', 's', 'm', 'n', '.', 'o', 'r', 'g', '\0',
   /* "ir-saitama.com", true */ 'i', 'r', '-', 's', 'a', 'i', 't', 'a', 'm', 'a', '.', 'c', 'o', 'm', '\0',
   /* "iranianholiday.com", true */ 'i', 'r', 'a', 'n', 'i', 'a', 'n', 'h', 'o', 'l', 'i', 'd', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "irc-results.com", true */ 'i', 'r', 'c', '-', 'r', 'e', 's', 'u', 'l', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "ircmett.de", true */ 'i', 'r', 'c', 'm', 'e', 't', 't', '.', 'd', 'e', '\0',
-  /* "iready.ro", true */ 'i', 'r', 'e', 'a', 'd', 'y', '.', 'r', 'o', '\0',
   /* "ireef.tv", true */ 'i', 'r', 'e', 'e', 'f', '.', 't', 'v', '\0',
   /* "irenekauer.com", true */ 'i', 'r', 'e', 'n', 'e', 'k', 'a', 'u', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "irf2.pl", true */ 'i', 'r', 'f', '2', '.', 'p', 'l', '\0',
   /* "irgit.pl", true */ 'i', 'r', 'g', 'i', 't', '.', 'p', 'l', '\0',
   /* "iridiumbrowser.de", true */ 'i', 'r', 'i', 'd', 'i', 'u', 'm', 'b', 'r', 'o', 'w', 's', 'e', 'r', '.', 'd', 'e', '\0',
   /* "iridiumflare.de", true */ 'i', 'r', 'i', 'd', 'i', 'u', 'm', 'f', 'l', 'a', 'r', 'e', '.', 'd', 'e', '\0',
   /* "irinkeby.nu", true */ 'i', 'r', 'i', 'n', 'k', 'e', 'b', 'y', '.', 'n', 'u', '\0',
   /* "iriomote.com", true */ 'i', 'r', 'i', 'o', 'm', 'o', 't', 'e', '.', 'c', 'o', 'm', '\0',
@@ -9906,17 +9902,16 @@ static const char kSTSHostTable[] = {
   /* "j8y.de", true */ 'j', '8', 'y', '.', 'd', 'e', '\0',
   /* "ja-dyck.de", true */ 'j', 'a', '-', 'd', 'y', 'c', 'k', '.', 'd', 'e', '\0',
   /* "ja.md", true */ 'j', 'a', '.', 'm', 'd', '\0',
   /* "jaakkohannikainen.fi", true */ 'j', 'a', 'a', 'k', 'k', 'o', 'h', 'a', 'n', 'n', 'i', 'k', 'a', 'i', 'n', 'e', 'n', '.', 'f', 'i', '\0',
   /* "jaalits.com", true */ 'j', 'a', 'a', 'l', 'i', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "jaan.su", true */ 'j', 'a', 'a', 'n', '.', 's', 'u', '\0',
   /* "jaaxypro.com", true */ 'j', 'a', 'a', 'x', 'y', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "jaba.hosting", true */ 'j', 'a', 'b', 'a', '.', 'h', 'o', 's', 't', 'i', 'n', 'g', '\0',
-  /* "jabbas.eu", true */ 'j', 'a', 'b', 'b', 'a', 's', '.', 'e', 'u', '\0',
   /* "jabber.at", true */ 'j', 'a', 'b', 'b', 'e', 'r', '.', 'a', 't', '\0',
   /* "jabberfr.org", true */ 'j', 'a', 'b', 'b', 'e', 'r', 'f', 'r', '.', 'o', 'r', 'g', '\0',
   /* "jabberzac.org", true */ 'j', 'a', 'b', 'b', 'e', 'r', 'z', 'a', 'c', '.', 'o', 'r', 'g', '\0',
   /* "jability.ovh", true */ 'j', 'a', 'b', 'i', 'l', 'i', 't', 'y', '.', 'o', 'v', 'h', '\0',
   /* "jacekowski.org", true */ 'j', 'a', 'c', 'e', 'k', 'o', 'w', 's', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "jackdelik.de", true */ 'j', 'a', 'c', 'k', 'd', 'e', 'l', 'i', 'k', '.', 'd', 'e', '\0',
   /* "jackdoan.com", true */ 'j', 'a', 'c', 'k', 'd', 'o', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "jackf.me", true */ 'j', 'a', 'c', 'k', 'f', '.', 'm', 'e', '\0',
@@ -10119,17 +10114,16 @@ static const char kSTSHostTable[] = {
   /* "jeroenseegers.com", true */ 'j', 'e', 'r', 'o', 'e', 'n', 's', 'e', 'e', 'g', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "jeroenvanderwal.nl", true */ 'j', 'e', 'r', 'o', 'e', 'n', 'v', 'a', 'n', 'd', 'e', 'r', 'w', 'a', 'l', '.', 'n', 'l', '\0',
   /* "jerrypau.ca", true */ 'j', 'e', 'r', 'r', 'y', 'p', 'a', 'u', '.', 'c', 'a', '\0',
   /* "jerryyu.ca", true */ 'j', 'e', 'r', 'r', 'y', 'y', 'u', '.', 'c', 'a', '\0',
   /* "jesseerbach.com", true */ 'j', 'e', 's', 's', 'e', 'e', 'r', 'b', 'a', 'c', 'h', '.', 'c', 'o', 'm', '\0',
   /* "jessekaufman.com", true */ 'j', 'e', 's', 's', 'e', 'k', 'a', 'u', 'f', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "jessevictors.com", true */ 'j', 'e', 's', 's', 'e', 'v', 'i', 'c', 't', 'o', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "jessgranger.com", true */ 'j', 'e', 's', 's', 'g', 'r', 'a', 'n', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
-  /* "jessicah.org", true */ 'j', 'e', 's', 's', 'i', 'c', 'a', 'h', '.', 'o', 'r', 'g', '\0',
   /* "jesters-court.net", true */ 'j', 'e', 's', 't', 'e', 'r', 's', '-', 'c', 'o', 'u', 'r', 't', '.', 'n', 'e', 't', '\0',
   /* "jesuisadmin.fr", true */ 'j', 'e', 's', 'u', 'i', 's', 'a', 'd', 'm', 'i', 'n', '.', 'f', 'r', '\0',
   /* "jetbbs.com", true */ 'j', 'e', 't', 'b', 'b', 's', '.', 'c', 'o', 'm', '\0',
   /* "jetkittens.co.uk", true */ 'j', 'e', 't', 'k', 'i', 't', 't', 'e', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "jetlagphotography.com", true */ 'j', 'e', 't', 'l', 'a', 'g', 'p', 'h', 'o', 't', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '\0',
   /* "jetsieswerda.nl", true */ 'j', 'e', 't', 's', 'i', 'e', 's', 'w', 'e', 'r', 'd', 'a', '.', 'n', 'l', '\0',
   /* "jettlarue.com", true */ 'j', 'e', 't', 't', 'l', 'a', 'r', 'u', 'e', '.', 'c', 'o', 'm', '\0',
   /* "jetwhiz.com", true */ 'j', 'e', 't', 'w', 'h', 'i', 'z', '.', 'c', 'o', 'm', '\0',
@@ -10338,16 +10332,17 @@ static const char kSTSHostTable[] = {
   /* "jr5devdouglas.xyz", true */ 'j', 'r', '5', 'd', 'e', 'v', 'd', 'o', 'u', 'g', 'l', 'a', 's', '.', 'x', 'y', 'z', '\0',
   /* "jr5proxdoug.xyz", true */ 'j', 'r', '5', 'p', 'r', 'o', 'x', 'd', 'o', 'u', 'g', '.', 'x', 'y', 'z', '\0',
   /* "jreb.nl", true */ 'j', 'r', 'e', 'b', '.', 'n', 'l', '\0',
   /* "jreinert.com", true */ 'j', 'r', 'e', 'i', 'n', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "jrtapsell.co.uk", true */ 'j', 'r', 't', 'a', 'p', 's', 'e', 'l', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "js-online.net", true */ 'j', 's', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'n', 'e', 't', '\0',
   /* "jschumacher.info", true */ 'j', 's', 'c', 'h', 'u', 'm', 'a', 'c', 'h', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "jskier.com", false */ 'j', 's', 'k', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "jslay.net", true */ 'j', 's', 'l', 'a', 'y', '.', 'n', 'e', 't', '\0',
   /* "jslidong.top", true */ 'j', 's', 'l', 'i', 'd', 'o', 'n', 'g', '.', 't', 'o', 'p', '\0',
   /* "json-viewer.com", true */ 'j', 's', 'o', 'n', '-', 'v', 'i', 'e', 'w', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "jsteward.moe", true */ 'j', 's', 't', 'e', 'w', 'a', 'r', 'd', '.', 'm', 'o', 'e', '\0',
   /* "jstore.ch", true */ 'j', 's', 't', 'o', 'r', 'e', '.', 'c', 'h', '\0',
   /* "jthackery.com", false */ 'j', 't', 'h', 'a', 'c', 'k', 'e', 'r', 'y', '.', 'c', 'o', 'm', '\0',
   /* "jtslay.com", true */ 'j', 't', 's', 'l', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "juan23.edu.uy", true */ 'j', 'u', 'a', 'n', '2', '3', '.', 'e', 'd', 'u', '.', 'u', 'y', '\0',
   /* "juanmaguitar.com", true */ 'j', 'u', 'a', 'n', 'm', 'a', 'g', 'u', 'i', 't', 'a', 'r', '.', 'c', 'o', 'm', '\0',
@@ -10523,16 +10518,17 @@ static const char kSTSHostTable[] = {
   /* "karhukamera.com", true */ 'k', 'a', 'r', 'h', 'u', 'k', 'a', 'm', 'e', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "karit.nz", true */ 'k', 'a', 'r', 'i', 't', '.', 'n', 'z', '\0',
   /* "karjala-ski.ru", true */ 'k', 'a', 'r', 'j', 'a', 'l', 'a', '-', 's', 'k', 'i', '.', 'r', 'u', '\0',
   /* "karlbowden.com", true */ 'k', 'a', 'r', 'l', 'b', 'o', 'w', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0',
   /* "karloskontana.tk", true */ 'k', 'a', 'r', 'l', 'o', 's', 'k', 'o', 'n', 't', 'a', 'n', 'a', '.', 't', 'k', '\0',
   /* "karlstabo.se", true */ 'k', 'a', 'r', 'l', 's', 't', 'a', 'b', 'o', '.', 's', 'e', '\0',
   /* "karmaassurance.ca", true */ 'k', 'a', 'r', 'm', 'a', 'a', 's', 's', 'u', 'r', 'a', 'n', 'c', 'e', '.', 'c', 'a', '\0',
   /* "karmabaker.com", true */ 'k', 'a', 'r', 'm', 'a', 'b', 'a', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
+  /* "karmaflux.com", true */ 'k', 'a', 'r', 'm', 'a', 'f', 'l', 'u', 'x', '.', 'c', 'o', 'm', '\0',
   /* "karmainsurance.ca", true */ 'k', 'a', 'r', 'm', 'a', 'i', 'n', 's', 'u', 'r', 'a', 'n', 'c', 'e', '.', 'c', 'a', '\0',
   /* "karmaplatform.com", true */ 'k', 'a', 'r', 'm', 'a', 'p', 'l', 'a', 't', 'f', 'o', 'r', 'm', '.', 'c', 'o', 'm', '\0',
   /* "karmaspa.se", true */ 'k', 'a', 'r', 'm', 'a', 's', 'p', 'a', '.', 's', 'e', '\0',
   /* "karmic.com", true */ 'k', 'a', 'r', 'm', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "karn.nu", true */ 'k', 'a', 'r', 'n', '.', 'n', 'u', '\0',
   /* "karneid.info", true */ 'k', 'a', 'r', 'n', 'e', 'i', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "karsofsystems.com", true */ 'k', 'a', 'r', 's', 'o', 'f', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "kartec.com", true */ 'k', 'a', 'r', 't', 'e', 'c', '.', 'c', 'o', 'm', '\0',
@@ -10596,16 +10592,17 @@ static const char kSTSHostTable[] = {
   /* "kc5mpk.com", true */ 'k', 'c', '5', 'm', 'p', 'k', '.', 'c', 'o', 'm', '\0',
   /* "kcluster.io", true */ 'k', 'c', 'l', 'u', 's', 't', 'e', 'r', '.', 'i', 'o', '\0',
   /* "kcptun.com", true */ 'k', 'c', 'p', 't', 'u', 'n', '.', 'c', 'o', 'm', '\0',
   /* "kcsordparticipation.org", true */ 'k', 'c', 's', 'o', 'r', 'd', 'p', 'a', 'r', 't', 'i', 'c', 'i', 'p', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '\0',
   /* "kdex.de", true */ 'k', 'd', 'e', 'x', '.', 'd', 'e', '\0',
   /* "kdyby.org", true */ 'k', 'd', 'y', 'b', 'y', '.', 'o', 'r', 'g', '\0',
   /* "ke7tlf.us", true */ 'k', 'e', '7', 't', 'l', 'f', '.', 'u', 's', '\0',
   /* "keaneokelley.com", true */ 'k', 'e', 'a', 'n', 'e', 'o', 'k', 'e', 'l', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0',
+  /* "kearney.io", true */ 'k', 'e', 'a', 'r', 'n', 'e', 'y', '.', 'i', 'o', '\0',
   /* "keartanddesign.com", true */ 'k', 'e', 'a', 'r', 't', 'a', 'n', 'd', 'd', 'e', 's', 'i', 'g', 'n', '.', 'c', 'o', 'm', '\0',
   /* "keaysmillwork.com", true */ 'k', 'e', 'a', 'y', 's', 'm', 'i', 'l', 'l', 'w', 'o', 'r', 'k', '.', 'c', 'o', 'm', '\0',
   /* "kedarastudios.com", true */ 'k', 'e', 'd', 'a', 'r', 'a', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "keeleysam.com", true */ 'k', 'e', 'e', 'l', 'e', 'y', 's', 'a', 'm', '.', 'c', 'o', 'm', '\0',
   /* "keepa.com", true */ 'k', 'e', 'e', 'p', 'a', '.', 'c', 'o', 'm', '\0',
   /* "keepcoalintheground.org", true */ 'k', 'e', 'e', 'p', 'c', 'o', 'a', 'l', 'i', 'n', 't', 'h', 'e', 'g', 'r', 'o', 'u', 'n', 'd', '.', 'o', 'r', 'g', '\0',
   /* "keeperapp.com", true */ 'k', 'e', 'e', 'p', 'e', 'r', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
   /* "keeperklan.com", false */ 'k', 'e', 'e', 'p', 'e', 'r', 'k', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
@@ -10692,17 +10689,16 @@ static const char kSTSHostTable[] = {
   /* "keyserver.sexy", true */ 'k', 'e', 'y', 's', 'e', 'r', 'v', 'e', 'r', '.', 's', 'e', 'x', 'y', '\0',
   /* "keystoneok.com", true */ 'k', 'e', 'y', 's', 't', 'o', 'n', 'e', 'o', 'k', '.', 'c', 'o', 'm', '\0',
   /* "keysupport.org", true */ 'k', 'e', 'y', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'o', 'r', 'g', '\0',
   /* "kf7joz.com", true */ 'k', 'f', '7', 'j', 'o', 'z', '.', 'c', 'o', 'm', '\0',
   /* "kfv-kiel.de", true */ 'k', 'f', 'v', '-', 'k', 'i', 'e', 'l', '.', 'd', 'e', '\0',
   /* "kfz-hantschel.de", true */ 'k', 'f', 'z', '-', 'h', 'a', 'n', 't', 's', 'c', 'h', 'e', 'l', '.', 'd', 'e', '\0',
   /* "kgm-irm.be", true */ 'k', 'g', 'm', '-', 'i', 'r', 'm', '.', 'b', 'e', '\0',
   /* "kgnk.ru", true */ 'k', 'g', 'n', 'k', '.', 'r', 'u', '\0',
-  /* "khaganat.net", true */ 'k', 'h', 'a', 'g', 'a', 'n', 'a', 't', '.', 'n', 'e', 't', '\0',
   /* "khanovaskola.cz", true */ 'k', 'h', 'a', 'n', 'o', 'v', 'a', 's', 'k', 'o', 'l', 'a', '.', 'c', 'z', '\0',
   /* "kheshtar.pl", true */ 'k', 'h', 'e', 's', 'h', 't', 'a', 'r', '.', 'p', 'l', '\0',
   /* "khetzal.info", true */ 'k', 'h', 'e', 't', 'z', 'a', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "khipu.com", true */ 'k', 'h', 'i', 'p', 'u', '.', 'c', 'o', 'm', '\0',
   /* "khmath.com", true */ 'k', 'h', 'm', 'a', 't', 'h', '.', 'c', 'o', 'm', '\0',
   /* "khmb.ru", true */ 'k', 'h', 'm', 'b', '.', 'r', 'u', '\0',
   /* "kiadoapartman.hu", true */ 'k', 'i', 'a', 'd', 'o', 'a', 'p', 'a', 'r', 't', 'm', 'a', 'n', '.', 'h', 'u', '\0',
   /* "kiahoriane.com", true */ 'k', 'i', 'a', 'h', 'o', 'r', 'i', 'a', 'n', 'e', '.', 'c', 'o', 'm', '\0',
@@ -10821,17 +10817,16 @@ static const char kSTSHostTable[] = {
   /* "kjellvn.net", true */ 'k', 'j', 'e', 'l', 'l', 'v', 'n', '.', 'n', 'e', 't', '\0',
   /* "kjg-bachrain.de", true */ 'k', 'j', 'g', '-', 'b', 'a', 'c', 'h', 'r', 'a', 'i', 'n', '.', 'd', 'e', '\0',
   /* "kjoglum.me", true */ 'k', 'j', 'o', 'g', 'l', 'u', 'm', '.', 'm', 'e', '\0',
   /* "kk-neudorf-duissern.de", false */ 'k', 'k', '-', 'n', 'e', 'u', 'd', 'o', 'r', 'f', '-', 'd', 'u', 'i', 's', 's', 'e', 'r', 'n', '.', 'd', 'e', '\0',
   /* "kkaefer.com", true */ 'k', 'k', 'a', 'e', 'f', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kkaufmann.de", false */ 'k', 'k', 'a', 'u', 'f', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0',
   /* "kki.org", true */ 'k', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "kkovacs.eu", true */ 'k', 'k', 'o', 'v', 'a', 'c', 's', '.', 'e', 'u', '\0',
-  /* "kksg.com", true */ 'k', 'k', 's', 'g', '.', 'c', 'o', 'm', '\0',
   /* "kkyy.me", true */ 'k', 'k', 'y', 'y', '.', 'm', 'e', '\0',
   /* "kkzxak47.com", true */ 'k', 'k', 'z', 'x', 'a', 'k', '4', '7', '.', 'c', 'o', 'm', '\0',
   /* "klamathrestoration.gov", true */ 'k', 'l', 'a', 'm', 'a', 't', 'h', 'r', 'e', 's', 't', 'o', 'r', 'a', 't', 'i', 'o', 'n', '.', 'g', 'o', 'v', '\0',
   /* "klanggut.at", true */ 'k', 'l', 'a', 'n', 'g', 'g', 'u', 't', '.', 'a', 't', '\0',
   /* "klangnok.de", false */ 'k', 'l', 'a', 'n', 'g', 'n', 'o', 'k', '.', 'd', 'e', '\0',
   /* "klares-licht.de", true */ 'k', 'l', 'a', 'r', 'e', 's', '-', 'l', 'i', 'c', 'h', 't', '.', 'd', 'e', '\0',
   /* "klarika.com", true */ 'k', 'l', 'a', 'r', 'i', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "klarmobil-empfehlen.de", true */ 'k', 'l', 'a', 'r', 'm', 'o', 'b', 'i', 'l', '-', 'e', 'm', 'p', 'f', 'e', 'h', 'l', 'e', 'n', '.', 'd', 'e', '\0',
@@ -10961,17 +10956,16 @@ static const char kSTSHostTable[] = {
   /* "koop-bremen.de", true */ 'k', 'o', 'o', 'p', '-', 'b', 'r', 'e', 'm', 'e', 'n', '.', 'd', 'e', '\0',
   /* "kooponline.eu", true */ 'k', 'o', 'o', 'p', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'e', 'u', '\0',
   /* "koot.nl", true */ 'k', 'o', 'o', 't', '.', 'n', 'l', '\0',
   /* "kopfkrieg.org", true */ 'k', 'o', 'p', 'f', 'k', 'r', 'i', 'e', 'g', '.', 'o', 'r', 'g', '\0',
   /* "kopular.com", true */ 'k', 'o', 'p', 'u', 'l', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "kopykatz.org", false */ 'k', 'o', 'p', 'y', 'k', 'a', 't', 'z', '.', 'o', 'r', 'g', '\0',
   /* "korea.dating", true */ 'k', 'o', 'r', 'e', 'a', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "koretech.nl", true */ 'k', 'o', 'r', 'e', 't', 'e', 'c', 'h', '.', 'n', 'l', '\0',
-  /* "kori.ml", true */ 'k', 'o', 'r', 'i', '.', 'm', 'l', '\0',
   /* "korinar.com", true */ 'k', 'o', 'r', 'i', 'n', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "koriyoukai.net", true */ 'k', 'o', 'r', 'i', 'y', 'o', 'u', 'k', 'a', 'i', '.', 'n', 'e', 't', '\0',
   /* "kornersafe.com", true */ 'k', 'o', 'r', 'n', 'e', 'r', 's', 'a', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "korobi.io", true */ 'k', 'o', 'r', 'o', 'b', 'i', '.', 'i', 'o', '\0',
   /* "korobkovsky.ru", true */ 'k', 'o', 'r', 'o', 'b', 'k', 'o', 'v', 's', 'k', 'y', '.', 'r', 'u', '\0',
   /* "korono.de", true */ 'k', 'o', 'r', 'o', 'n', 'o', '.', 'd', 'e', '\0',
   /* "korrelzout.nl", true */ 'k', 'o', 'r', 'r', 'e', 'l', 'z', 'o', 'u', 't', '.', 'n', 'l', '\0',
   /* "kortgebyr.dk", true */ 'k', 'o', 'r', 't', 'g', 'e', 'b', 'y', 'r', '.', 'd', 'k', '\0',
@@ -11027,27 +11021,25 @@ static const char kSTSHostTable[] = {
   /* "kreuzpfadfinder.de", true */ 'k', 'r', 'e', 'u', 'z', 'p', 'f', 'a', 'd', 'f', 'i', 'n', 'd', 'e', 'r', '.', 'd', 'e', '\0',
   /* "kreza.de", true */ 'k', 'r', 'e', 'z', 'a', '.', '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',
   /* "krinetzki.de", true */ 'k', 'r', 'i', 'n', 'e', 't', 'z', 'k', 'i', '.', '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',
   /* "krizek.cc", true */ 'k', 'r', 'i', 'z', 'e', 'k', '.', 'c', 'c', '\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',
   /* "kromonos.net", true */ 'k', 'r', 'o', 'm', 'o', 'n', 'o', 's', '.', 'n', 'e', 't', '\0',
   /* "kronaw.it", true */ 'k', 'r', 'o', 'n', 'a', 'w', '.', 'i', 't', '\0',
   /* "krony.de", true */ 'k', 'r', 'o', 'n', 'y', '.', 'd', 'e', '\0',
-  /* "kroon.email", true */ 'k', 'r', 'o', 'o', 'n', '.', 'e', 'm', 'a', 'i', 'l', '\0',
   /* "kropkait.pl", true */ 'k', 'r', 'o', 'p', 'k', 'a', 'i', 't', '.', 'p', 'l', '\0',
   /* "krouzkyliduska.cz", true */ 'k', 'r', 'o', 'u', 'z', 'k', 'y', 'l', 'i', 'd', 'u', 's', 'k', 'a', '.', 'c', 'z', '\0',
   /* "kruin.net", true */ 'k', 'r', 'u', 'i', 'n', '.', 'n', 'e', 't', '\0',
   /* "krupa.net.pl", false */ 'k', 'r', 'u', 'p', 'a', '.', 'n', 'e', 't', '.', 'p', 'l', '\0',
   /* "krutka.cz", true */ 'k', 'r', 'u', 't', 'k', 'a', '.', 'c', 'z', '\0',
   /* "kruu.de", true */ 'k', 'r', 'u', 'u', '.', 'd', 'e', '\0',
   /* "kryglik.com", true */ 'k', 'r', 'y', 'g', 'l', 'i', 'k', '.', 'c', 'o', 'm', '\0',
   /* "krypsys.com", true */ 'k', 'r', 'y', 'p', 's', 'y', 's', '.', 'c', 'o', 'm', '\0',
@@ -11395,18 +11387,16 @@ static const char kSTSHostTable[] = {
   /* "leesilvey.com", true */ 'l', 'e', 'e', 's', 'i', 'l', 'v', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "leet2.com", true */ 'l', 'e', 'e', 't', '2', '.', 'c', 'o', 'm', '\0',
   /* "leetgamers.asia", true */ 'l', 'e', 'e', 't', 'g', 'a', 'm', 'e', 'r', 's', '.', 'a', 's', 'i', 'a', '\0',
   /* "leetsaber.com", true */ 'l', 'e', 'e', 't', 's', 'a', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "leflibustier.ru", true */ 'l', 'e', 'f', 'l', 'i', 'b', 'u', 's', 't', 'i', 'e', 'r', '.', 'r', 'u', '\0',
   /* "lefonddeloeil.com", true */ 'l', 'e', 'f', 'o', 'n', 'd', 'd', 'e', 'l', 'o', 'e', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "leftclick.cloud", true */ 'l', 'e', 'f', 't', 'c', 'l', 'i', 'c', 'k', '.', 'c', 'l', 'o', 'u', 'd', '\0',
   /* "leftclick.eu", true */ 'l', 'e', 'f', 't', 'c', 'l', 'i', 'c', 'k', '.', 'e', 'u', '\0',
-  /* "lega-dental.com", true */ 'l', 'e', 'g', 'a', '-', 'd', 'e', 'n', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
-  /* "lega3.dk", true */ 'l', 'e', 'g', 'a', '3', '.', 'd', 'k', '\0',
   /* "legadental.com", true */ 'l', 'e', 'g', 'a', 'd', 'e', 'n', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "legalcontrol.info", true */ 'l', 'e', 'g', 'a', 'l', 'c', 'o', 'n', 't', 'r', 'o', 'l', '.', 'i', 'n', 'f', 'o', '\0',
   /* "legalrobot-uat.com", true */ 'l', 'e', 'g', 'a', 'l', 'r', 'o', 'b', 'o', 't', '-', 'u', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "legalrobot.com", true */ 'l', 'e', 'g', 'a', 'l', 'r', 'o', 'b', 'o', 't', '.', 'c', 'o', 'm', '\0',
   /* "legaltip.eu", true */ 'l', 'e', 'g', 'a', 'l', 't', 'i', 'p', '.', 'e', 'u', '\0',
   /* "legendary.camera", true */ 'l', 'e', 'g', 'e', 'n', 'd', 'a', 'r', 'y', '.', 'c', 'a', 'm', 'e', 'r', 'a', '\0',
   /* "legendofkrystal.com", false */ 'l', 'e', 'g', 'e', 'n', 'd', 'o', 'f', 'k', 'r', 'y', 's', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "legends-game.ru", false */ 'l', 'e', 'g', 'e', 'n', 'd', 's', '-', 'g', 'a', 'm', 'e', '.', 'r', 'u', '\0',
@@ -11516,17 +11506,16 @@ static const char kSTSHostTable[] = {
   /* "levinus.de", true */ 'l', 'e', 'v', 'i', 'n', 'u', 's', '.', 'd', 'e', '\0',
   /* "lew.im", true */ 'l', 'e', 'w', '.', 'i', 'm', '\0',
   /* "lewis.li", true */ 'l', 'e', 'w', 'i', 's', '.', 'l', 'i', '\0',
   /* "lewisjuggins.co.uk", true */ 'l', 'e', 'w', 'i', 's', 'j', 'u', 'g', 'g', 'i', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "lewislaw.com", true */ 'l', 'e', 'w', 'i', 's', 'l', 'a', 'w', '.', 'c', 'o', 'm', '\0',
   /* "lewisllewellyn.me", true */ 'l', 'e', 'w', 'i', 's', 'l', 'l', 'e', 'w', 'e', 'l', 'l', 'y', 'n', '.', 'm', 'e', '\0',
   /* "lexico.pt", true */ 'l', 'e', 'x', 'i', 'c', 'o', '.', 'p', 't', '\0',
   /* "lexicography.online", true */ 'l', 'e', 'x', 'i', 'c', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0',
-  /* "lexpierce.social", true */ 'l', 'e', 'x', 'p', 'i', 'e', 'r', 'c', 'e', '.', 's', 'o', 'c', 'i', 'a', 'l', '\0',
   /* "lexway.pk", true */ 'l', 'e', 'x', 'w', 'a', 'y', '.', 'p', 'k', '\0',
   /* "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',
   /* "lfaz.org", true */ 'l', 'f', 'a', 'z', '.', 'o', 'r', 'g', '\0',
   /* "lfgss.com", true */ 'l', 'f', 'g', 's', 's', '.', 'c', 'o', 'm', '\0',
   /* "lgbt.io", true */ 'l', 'g', 'b', 't', '.', 'i', 'o', '\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',
   /* "lgsg.us", true */ 'l', 'g', 's', 'g', '.', 'u', 's', '\0',
@@ -11534,17 +11523,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "libre.university", true */ 'l', 'i', 'b', 'r', 'e', '.', 'u', 'n', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y', '\0',
   /* "librelamp.com", true */ 'l', 'i', 'b', 'r', 'e', 'l', 'a', 'm', 'p', '.', 'c', 'o', 'm', '\0',
   /* "libremail.nl", true */ 'l', 'i', 'b', 'r', 'e', 'm', 'a', 'i', 'l', '.', 'n', 'l', '\0',
   /* "librends.org", true */ 'l', 'i', 'b', 'r', 'e', 'n', 'd', 's', '.', 'o', 'r', 'g', '\0',
   /* "libreoffice-from-collabora.com", true */ 'l', 'i', 'b', 'r', 'e', 'o', 'f', 'f', 'i', 'c', 'e', '-', 'f', 'r', 'o', 'm', '-', 'c', 'o', 'l', 'l', 'a', 'b', 'o', 'r', 'a', '.', 'c', 'o', 'm', '\0',
   /* "libreofficefromcollabora.com", true */ 'l', 'i', 'b', 'r', 'e', 'o', 'f', 'f', 'i', 'c', 'e', 'f', 'r', 'o', 'm', 'c', 'o', 'l', 'l', 'a', 'b', 'o', 'r', 'a', '.', 'c', 'o', 'm', '\0',
@@ -11778,16 +11766,17 @@ static const char kSTSHostTable[] = {
   /* "log.my", true */ 'l', 'o', 'g', '.', 'm', 'y', '\0',
   /* "log2n.uk", true */ 'l', 'o', 'g', '2', 'n', '.', 'u', 'k', '\0',
   /* "logaldeveloper.com", true */ 'l', 'o', 'g', 'a', 'l', 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "loganmarchione.com", true */ 'l', 'o', 'g', 'a', 'n', 'm', 'a', 'r', 'c', 'h', 'i', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "loganparkneighborhood.org", true */ 'l', 'o', 'g', 'a', 'n', 'p', 'a', 'r', 'k', 'n', 'e', 'i', 'g', 'h', 'b', 'o', 'r', 'h', 'o', 'o', 'd', '.', 'o', 'r', 'g', '\0',
   /* "logement-saisonnier.com", true */ 'l', 'o', 'g', 'e', 'm', 'e', 'n', 't', '-', 's', 'a', 'i', 's', 'o', 'n', 'n', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "logentries.com", false */ 'l', 'o', 'g', 'e', 'n', 't', 'r', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "logfile.at", true */ 'l', 'o', 'g', 'f', 'i', 'l', 'e', '.', 'a', 't', '\0',
+  /* "logfile.ch", true */ 'l', 'o', 'g', 'f', 'i', 'l', 'e', '.', 'c', 'h', '\0',
   /* "logic8.ml", true */ 'l', 'o', 'g', 'i', 'c', '8', '.', 'm', 'l', '\0',
   /* "logicio.ch", false */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'c', 'h', '\0',
   /* "logicio.de", false */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'd', 'e', '\0',
   /* "logicio.net", false */ 'l', 'o', 'g', 'i', 'c', 'i', 'o', '.', 'n', 'e', 't', '\0',
   /* "logicsale.com", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'c', 'o', 'm', '\0',
   /* "logicsale.de", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'd', 'e', '\0',
   /* "logicsale.fr", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'f', 'r', '\0',
   /* "logicsale.it", true */ 'l', 'o', 'g', 'i', 'c', 's', 'a', 'l', 'e', '.', 'i', 't', '\0',
@@ -11978,16 +11967,17 @@ static const char kSTSHostTable[] = {
   /* "luuppi.fi", true */ 'l', 'u', 'u', 'p', 'p', 'i', '.', 'f', 'i', '\0',
   /* "luxe-it.co.uk", true */ 'l', 'u', 'x', 'e', '-', 'i', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "luxinmo.com", true */ 'l', 'u', 'x', 'i', 'n', 'm', 'o', '.', 'c', 'o', 'm', '\0',
   /* "luxsci.com", true */ 'l', 'u', 'x', 's', 'c', 'i', '.', 'c', 'o', 'm', '\0',
   /* "luxuryweddingsindonesia.com", true */ 'l', 'u', 'x', 'u', 'r', 'y', 'w', 'e', 'd', 'd', 'i', 'n', 'g', 's', 'i', 'n', 'd', 'o', 'n', 'e', 's', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "luxusnivoucher.cz", true */ 'l', 'u', 'x', 'u', 's', 'n', 'i', 'v', 'o', 'u', 'c', 'h', 'e', 'r', '.', 'c', 'z', '\0',
   /* "luxusnyvoucher.sk", true */ 'l', 'u', 'x', 'u', 's', 'n', 'y', 'v', 'o', 'u', 'c', 'h', 'e', 'r', '.', 's', 'k', '\0',
   /* "luxvacuos.net", true */ 'l', 'u', 'x', 'v', 'a', 'c', 'u', 'o', 's', '.', 'n', 'e', 't', '\0',
+  /* "luzat.com", true */ 'l', 'u', 'z', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "luzfaltex.com", true */ 'l', 'u', 'z', 'f', 'a', 'l', 't', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "lv0.it", true */ 'l', 'v', '0', '.', 'i', 't', '\0',
   /* "lvmoo.com", true */ 'l', 'v', 'm', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "lvrsystems.com", true */ 'l', 'v', 'r', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "lwl-foej-bewerbung.de", true */ 'l', 'w', 'l', '-', 'f', 'o', 'e', 'j', '-', 'b', 'e', 'w', 'e', 'r', 'b', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "lwl.moe", true */ 'l', 'w', 'l', '.', 'm', 'o', 'e', '\0',
   /* "lwl12.com", true */ 'l', 'w', 'l', '1', '2', '.', 'c', 'o', 'm', '\0',
   /* "lydia-und-simon.de", true */ 'l', 'y', 'd', 'i', 'a', '-', 'u', 'n', 'd', '-', 's', 'i', 'm', 'o', 'n', '.', 'd', 'e', '\0',
@@ -12001,16 +11991,17 @@ static const char kSTSHostTable[] = {
   /* "lynx.nl", true */ 'l', 'y', 'n', 'x', '.', 'n', 'l', '\0',
   /* "lynxbroker.de", true */ 'l', 'y', 'n', 'x', 'b', 'r', 'o', 'k', 'e', 'r', '.', 'd', 'e', '\0',
   /* "lyonl.com", true */ 'l', 'y', 'o', 'n', 'l', '.', 'c', 'o', 'm', '\0',
   /* "lyricfm.ie", true */ 'l', 'y', 'r', 'i', 'c', 'f', 'm', '.', 'i', 'e', '\0',
   /* "lys.ch", true */ 'l', 'y', 's', '.', 'c', 'h', '\0',
   /* "lyst.co.uk", true */ 'l', 'y', 's', 't', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "lyuba.fr", true */ 'l', 'y', 'u', 'b', 'a', '.', 'f', 'r', '\0',
   /* "lyx.dk", true */ 'l', 'y', 'x', '.', 'd', 'k', '\0',
+  /* "lzahq.tech", true */ 'l', 'z', 'a', 'h', 'q', '.', 't', 'e', 'c', 'h', '\0',
   /* "lzzr.me", true */ 'l', 'z', 'z', 'r', '.', 'm', 'e', '\0',
   /* "m-22.com", true */ 'm', '-', '2', '2', '.', 'c', 'o', 'm', '\0',
   /* "m-edmondson.co.uk", true */ 'm', '-', 'e', 'd', 'm', 'o', 'n', 'd', 's', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "m-generator.com", true */ 'm', '-', 'g', 'e', 'n', 'e', 'r', 'a', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "m-idea.jp", true */ 'm', '-', 'i', 'd', 'e', 'a', '.', 'j', 'p', '\0',
   /* "m-kleinert.de", true */ 'm', '-', 'k', 'l', 'e', 'i', 'n', 'e', 'r', 't', '.', 'd', 'e', '\0',
   /* "m-plan.com", true */ 'm', '-', 'p', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "m-rickroll-v.pw", true */ 'm', '-', 'r', 'i', 'c', 'k', 'r', 'o', 'l', 'l', '-', 'v', '.', 'p', 'w', '\0',
@@ -12082,17 +12073,16 @@ static const char kSTSHostTable[] = {
   /* "magenbrot.net", true */ 'm', 'a', 'g', 'e', 'n', 'b', 'r', 'o', 't', '.', 'n', 'e', 't', '\0',
   /* "magenda.sk", true */ 'm', 'a', 'g', 'e', 'n', 'd', 'a', '.', 's', 'k', '\0',
   /* "magi.systems", true */ 'm', 'a', 'g', 'i', '.', 's', 'y', 's', 't', 'e', 'm', 's', '\0',
   /* "magicball.co", true */ 'm', 'a', 'g', 'i', 'c', 'b', 'a', 'l', 'l', '.', 'c', 'o', '\0',
   /* "magicbroccoli.de", true */ 'm', 'a', 'g', 'i', 'c', 'b', 'r', 'o', 'c', 'c', 'o', 'l', 'i', '.', 'd', 'e', '\0',
   /* "magiclen.org", true */ 'm', 'a', 'g', 'i', 'c', 'l', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "magicspaceninjapirates.de", true */ 'm', 'a', 'g', 'i', 'c', 's', 'p', 'a', 'c', 'e', 'n', 'i', 'n', 'j', 'a', 'p', 'i', 'r', 'a', 't', 'e', 's', '.', 'd', 'e', '\0',
   /* "magictable.com", true */ 'm', 'a', 'g', 'i', 'c', 't', 'a', 'b', 'l', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "magilio.com", true */ 'm', 'a', 'g', 'i', 'l', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "magnacumlaude.co", true */ 'm', 'a', 'g', 'n', 'a', 'c', 'u', 'm', 'l', 'a', 'u', 'd', 'e', '.', 'c', 'o', '\0',
   /* "magneticanvil.com", true */ 'm', 'a', 'g', 'n', 'e', 't', 'i', 'c', 'a', 'n', 'v', 'i', 'l', '.', 'c', 'o', 'm', '\0',
   /* "magnets.jp", true */ 'm', 'a', 'g', 'n', 'e', 't', 's', '.', 'j', 'p', '\0',
   /* "magnettracker.com", true */ 'm', 'a', 'g', 'n', 'e', 't', 't', 'r', 'a', 'c', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "magnoliasib.ru", false */ 'm', 'a', 'g', 'n', 'o', 'l', 'i', 'a', 's', 'i', 'b', '.', 'r', 'u', '\0',
   /* "magwin.co.uk", true */ 'm', 'a', 'g', 'w', 'i', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "mahefa.co.uk", true */ 'm', 'a', 'h', 'e', 'f', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "mahfouzadedimeji.com", true */ 'm', 'a', 'h', 'f', 'o', 'u', 'z', 'a', 'd', 'e', 'd', 'i', 'm', 'e', 'j', 'i', '.', 'c', 'o', 'm', '\0',
@@ -12232,17 +12222,16 @@ static const char kSTSHostTable[] = {
   /* "map4jena.de", true */ 'm', 'a', 'p', '4', 'j', 'e', 'n', 'a', '.', 'd', 'e', '\0',
   /* "mapblender.com", true */ 'm', 'a', 'p', 'b', 'l', 'e', 'n', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "maplanetebeaute.fr", true */ 'm', 'a', 'p', 'l', 'a', 'n', 'e', 't', 'e', 'b', 'e', 'a', 'u', 't', 'e', '.', 'f', 'r', '\0',
   /* "mapletime.com", true */ 'm', 'a', 'p', 'l', 'e', 't', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mapresidentielle.fr", true */ 'm', 'a', 'p', 'r', 'e', 's', 'i', 'd', 'e', 'n', 't', 'i', 'e', 'l', 'l', 'e', '.', 'f', 'r', '\0',
   /* "maquinariaspesadas.org", true */ 'm', 'a', 'q', 'u', 'i', 'n', 'a', 'r', 'i', 'a', 's', 'p', 'e', 's', 'a', 'd', 'a', 's', '.', 'o', 'r', 'g', '\0',
   /* "marbinvest.com", true */ 'm', 'a', 'r', 'b', 'i', 'n', 'v', 'e', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "marble.com", true */ 'm', 'a', 'r', 'b', 'l', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "marbogardenlidkoping.se", true */ 'm', 'a', 'r', 'b', 'o', 'g', 'a', 'r', 'd', 'e', 'n', 'l', 'i', 'd', 'k', 'o', 'p', 'i', 'n', 'g', '.', 's', 'e', '\0',
   /* "marc-schlagenhauf.de", true */ 'm', 'a', 'r', 'c', '-', 's', 'c', 'h', 'l', 'a', 'g', 'e', 'n', 'h', 'a', 'u', 'f', '.', 'd', 'e', '\0',
   /* "marcbuehlmann.com", true */ 'm', 'a', 'r', 'c', 'b', 'u', 'e', 'h', 'l', 'm', 'a', 'n', 'n', '.', 'c', 'o', 'm', '\0',
   /* "marcdorka.de", true */ 'm', 'a', 'r', 'c', 'd', 'o', 'r', 'k', 'a', '.', 'd', 'e', '\0',
   /* "marceau.ovh", true */ 'm', 'a', 'r', 'c', 'e', 'a', 'u', '.', 'o', 'v', 'h', '\0',
   /* "marcel-preuss.de", true */ 'm', 'a', 'r', 'c', 'e', 'l', '-', 'p', 'r', 'e', 'u', 's', 's', '.', 'd', 'e', '\0',
   /* "marcelinofranchini.com", true */ 'm', 'a', 'r', 'c', 'e', 'l', 'i', 'n', 'o', 'f', 'r', 'a', 'n', 'c', 'h', 'i', 'n', 'i', '.', 'c', 'o', 'm', '\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',
@@ -12423,16 +12412,17 @@ static const char kSTSHostTable[] = {
   /* "matthewkenny.co.uk", true */ 'm', 'a', 't', 't', 'h', 'e', 'w', 'k', 'e', 'n', 'n', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "matthewohare.com", true */ 'm', 'a', 't', 't', 'h', 'e', 'w', 'o', 'h', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "matthey.nl", true */ 'm', 'a', 't', 't', 'h', 'e', 'y', '.', 'n', 'l', '\0',
   /* "matthi.coffee", true */ 'm', 'a', 't', 't', 'h', 'i', '.', 'c', 'o', 'f', 'f', 'e', 'e', '\0',
   /* "matthias-muenzner.de", true */ 'm', 'a', 't', 't', 'h', 'i', 'a', 's', '-', 'm', 'u', 'e', 'n', 'z', 'n', 'e', 'r', '.', 'd', 'e', '\0',
   /* "matthiasadler.info", true */ 'm', 'a', 't', 't', 'h', 'i', 'a', 's', 'a', 'd', 'l', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "matthiasschwab.de", true */ 'm', 'a', 't', 't', 'h', 'i', 'a', 's', 's', 'c', 'h', 'w', 'a', 'b', '.', 'd', 'e', '\0',
   /* "matthiasweiler.de", true */ 'm', 'a', 't', 't', 'h', 'i', 'a', 's', 'w', 'e', 'i', 'l', 'e', 'r', '.', 'd', 'e', '\0',
+  /* "mattia98.org", true */ 'm', 'a', 't', 't', 'i', 'a', '9', '8', '.', 'o', 'r', 'g', '\0',
   /* "mattli.us", true */ 'm', 'a', 't', 't', 'l', 'i', '.', 'u', 's', '\0',
   /* "mattmccutchen.net", true */ 'm', 'a', 't', 't', 'm', 'c', 'c', 'u', 't', 'c', 'h', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "mattonline.me", true */ 'm', 'a', 't', 't', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'm', 'e', '\0',
   /* "mattwb65.com", true */ 'm', 'a', 't', 't', 'w', 'b', '6', '5', '.', 'c', 'o', 'm', '\0',
   /* "mattwservices.co.uk", true */ 'm', 'a', 't', 't', 'w', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "matze.co", true */ 'm', 'a', 't', 'z', 'e', '.', 'c', 'o', '\0',
   /* "matze.org", true */ 'm', 'a', 't', 'z', 'e', '.', 'o', 'r', 'g', '\0',
   /* "mauldincookfence.com", true */ 'm', 'a', 'u', 'l', 'd', 'i', 'n', 'c', 'o', 'o', 'k', 'f', 'e', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
@@ -12779,17 +12769,16 @@ static const char kSTSHostTable[] = {
   /* "michael-rigart.be", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', '-', 'r', 'i', 'g', 'a', 'r', 't', '.', 'b', 'e', '\0',
   /* "michael-steinhauer.eu", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', '-', 's', 't', 'e', 'i', 'n', 'h', 'a', 'u', 'e', 'r', '.', 'e', 'u', '\0',
   /* "michaelcullen.name", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'c', 'u', 'l', 'l', 'e', 'n', '.', 'n', 'a', 'm', 'e', '\0',
   /* "michaeleichorn.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'e', 'i', 'c', 'h', 'o', 'r', 'n', '.', 'c', 'o', 'm', '\0',
   /* "michaelkuchta.me", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'k', 'u', 'c', 'h', 't', 'a', '.', 'm', 'e', '\0',
   /* "michaelleibundgut.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'l', 'e', 'i', 'b', 'u', 'n', 'd', 'g', 'u', 't', '.', 'c', 'o', 'm', '\0',
   /* "michaelpfrommer.de", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'p', 'f', 'r', 'o', 'm', 'm', 'e', 'r', '.', 'd', 'e', '\0',
   /* "michaelrigart.be", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'r', 'i', 'g', 'a', 'r', 't', '.', 'b', 'e', '\0',
-  /* "michaelscrivo.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 's', 'c', 'r', 'i', 'v', 'o', '.', 'c', 'o', 'm', '\0',
   /* "michaelsulzer.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 's', 'u', 'l', 'z', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "michaelsulzer.eu", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 's', 'u', 'l', 'z', 'e', 'r', '.', 'e', 'u', '\0',
   /* "michaeltroger.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 't', 'r', 'o', 'g', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "michaeltruskowski.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 't', 'r', 'u', 's', 'k', 'o', 'w', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0',
   /* "michaelzomer.com", true */ 'm', 'i', 'c', 'h', 'a', 'e', 'l', 'z', 'o', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "michal-spacek.com", true */ 'm', 'i', 'c', 'h', 'a', 'l', '-', 's', 'p', 'a', 'c', 'e', 'k', '.', 'c', 'o', 'm', '\0',
   /* "michal-spacek.cz", true */ 'm', 'i', 'c', 'h', 'a', 'l', '-', 's', 'p', 'a', 'c', 'e', 'k', '.', 'c', 'z', '\0',
   /* "michalkral.tk", true */ 'm', 'i', 'c', 'h', 'a', 'l', 'k', 'r', 'a', 'l', '.', 't', 'k', '\0',
@@ -13288,16 +13277,17 @@ static const char kSTSHostTable[] = {
   /* "mremallin.ca", true */ 'm', 'r', 'e', 'm', 'a', 'l', 'l', 'i', 'n', '.', 'c', 'a', '\0',
   /* "mrhack.cz", true */ 'm', 'r', 'h', 'a', 'c', 'k', '.', 'c', 'z', '\0',
   /* "mrhee.com", true */ 'm', 'r', 'h', 'e', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mrinalpurohit.in", true */ 'm', 'r', 'i', 'n', 'a', 'l', 'p', 'u', 'r', 'o', 'h', 'i', 't', '.', 'i', 'n', '\0',
   /* "mrizzio.com", true */ 'm', 'r', 'i', 'z', 'z', 'i', 'o', '.', 'c', 'o', 'm', '\0',
   /* "mrmoregame.de", true */ 'm', 'r', 'm', 'o', 'r', 'e', 'g', 'a', 'm', 'e', '.', 'd', 'e', '\0',
   /* "mrsbairds.com", true */ 'm', 'r', 's', 'b', 'a', 'i', 'r', 'd', 's', '.', 'c', 'o', 'm', '\0',
   /* "mrserge.lv", true */ 'm', 'r', 's', 'e', 'r', 'g', 'e', '.', 'l', 'v', '\0',
+  /* "mrsk.me", true */ 'm', 'r', 's', 'k', '.', 'm', 'e', '\0',
   /* "mrx.one", true */ 'm', 'r', 'x', '.', 'o', 'n', 'e', '\0',
   /* "ms-alternativ.de", true */ 'm', 's', '-', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', '.', 'd', 'e', '\0',
   /* "msa-aesch.ch", true */ 'm', 's', 'a', '-', 'a', 'e', 's', 'c', 'h', '.', 'c', 'h', '\0',
   /* "mscc.org", true */ 'm', 's', 'c', 'c', '.', 'o', 'r', 'g', '\0',
   /* "mscenter.cf", true */ 'm', 's', 'c', 'e', 'n', 't', 'e', 'r', '.', 'c', 'f', '\0',
   /* "msebera.cz", true */ 'm', 's', 'e', 'b', 'e', 'r', 'a', '.', 'c', 'z', '\0',
   /* "msh100.uk", true */ 'm', 's', 'h', '1', '0', '0', '.', 'u', 'k', '\0',
   /* "msiegmund.com", true */ 'm', 's', 'i', 'e', 'g', 'm', 'u', 'n', 'd', '.', 'c', 'o', 'm', '\0',
@@ -13376,17 +13366,16 @@ static const char kSTSHostTable[] = {
   /* "murz.tv", true */ 'm', 'u', 'r', 'z', '.', 't', 'v', '\0',
   /* "muscleangels.com", true */ 'm', 'u', 's', 'c', 'l', 'e', 'a', 'n', 'g', 'e', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "muscolinomusic.com", true */ 'm', 'u', 's', 'c', 'o', 'l', 'i', 'n', 'o', 'm', 'u', 's', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "musehelix.com", true */ 'm', 'u', 's', 'e', 'h', 'e', 'l', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "muses-success.info", true */ 'm', 'u', 's', 'e', 's', '-', 's', 'u', 'c', 'c', 'e', 's', 's', '.', 'i', 'n', 'f', 'o', '\0',
   /* "musewearflipflops.com", true */ 'm', 'u', 's', 'e', 'w', 'e', 'a', 'r', 'f', 'l', 'i', 'p', 'f', 'l', 'o', 'p', 's', '.', 'c', 'o', 'm', '\0',
   /* "mush-room.co.jp", true */ 'm', 'u', 's', 'h', '-', 'r', 'o', 'o', 'm', '.', 'c', 'o', '.', 'j', 'p', '\0',
   /* "mushikabu.net", true */ 'm', 'u', 's', 'h', 'i', 'k', 'a', 'b', 'u', '.', 'n', 'e', 't', '\0',
-  /* "musi.cx", true */ 'm', 'u', 's', 'i', '.', 'c', 'x', '\0',
   /* "music-project.eu", true */ 'm', 'u', 's', 'i', 'c', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'e', 'u', '\0',
   /* "music.amazon.com", true */ 'm', 'u', 's', 'i', 'c', '.', 'a', 'm', 'a', 'z', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "musicalive.nl", true */ 'm', 'u', 's', 'i', 'c', 'a', 'l', 'i', 'v', 'e', '.', 'n', 'l', '\0',
   /* "musicchris.de", true */ 'm', 'u', 's', 'i', 'c', 'c', 'h', 'r', 'i', 's', '.', 'd', 'e', '\0',
   /* "musicgamegalaxy.de", true */ 'm', 'u', 's', 'i', 'c', 'g', 'a', 'm', 'e', 'g', 'a', 'l', 'a', 'x', 'y', '.', 'd', 'e', '\0',
   /* "musician.dating", true */ 'm', 'u', 's', 'i', 'c', 'i', 'a', 'n', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0',
   /* "musickhouseleveling.com", true */ 'm', 'u', 's', 'i', 'c', 'k', 'h', 'o', 'u', 's', 'e', 'l', 'e', 'v', 'e', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "musicschoolonline.com", true */ 'm', 'u', 's', 'i', 'c', 's', 'c', 'h', 'o', 'o', 'l', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
@@ -13416,16 +13405,17 @@ static const char kSTSHostTable[] = {
   /* "mvp-stars.com", true */ 'm', 'v', 'p', '-', 's', 't', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "mware-staging.azurewebsites.net", true */ 'm', 'w', 'a', 'r', 'e', '-', 's', 't', 'a', 'g', 'i', 'n', 'g', '.', 'a', 'z', 'u', 'r', 'e', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'n', 'e', 't', '\0',
   /* "mwavuli.co.ke", true */ 'm', 'w', 'a', 'v', 'u', 'l', 'i', '.', 'c', 'o', '.', 'k', 'e', '\0',
   /* "mwba.org", true */ 'm', 'w', 'b', 'a', '.', 'o', 'r', 'g', '\0',
   /* "mwe.st", true */ 'm', 'w', 'e', '.', 's', 't', '\0',
   /* "mwohlfarth.de", true */ 'm', 'w', 'o', 'h', 'l', 'f', 'a', 'r', 't', 'h', '.', 'd', 'e', '\0',
   /* "mx.org.ua", false */ 'm', 'x', '.', 'o', 'r', 'g', '.', 'u', 'a', '\0',
   /* "mx.search.yahoo.com", false */ 'm', 'x', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
+  /* "mxawei.cn", true */ 'm', 'x', 'a', 'w', 'e', 'i', '.', 'c', 'n', '\0',
   /* "mxihan.xyz", true */ 'm', 'x', 'i', 'h', 'a', 'n', '.', 'x', 'y', 'z', '\0',
   /* "mxp.tw", true */ 'm', 'x', 'p', '.', 't', 'w', '\0',
   /* "my-cdn.de", true */ 'm', 'y', '-', 'c', 'd', 'n', '.', 'd', 'e', '\0',
   /* "my-demo.co", true */ 'm', 'y', '-', 'd', 'e', 'm', 'o', '.', 'c', 'o', '\0',
   /* "my-dick.ru", true */ 'm', 'y', '-', 'd', 'i', 'c', 'k', '.', 'r', 'u', '\0',
   /* "my-dns.co.il", true */ 'm', 'y', '-', 'd', 'n', 's', '.', 'c', 'o', '.', 'i', 'l', '\0',
   /* "my-floor.com", true */ 'm', 'y', '-', 'f', 'l', 'o', 'o', 'r', '.', 'c', 'o', 'm', '\0',
   /* "my-hps.de", true */ 'm', 'y', '-', 'h', 'p', 's', '.', 'd', 'e', '\0',
@@ -13525,19 +13515,16 @@ static const char kSTSHostTable[] = {
   /* "mypillcard.com", true */ 'm', 'y', 'p', 'i', 'l', 'l', 'c', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
   /* "myplaceonline.com", true */ 'm', 'y', 'p', 'l', 'a', 'c', 'e', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "myprintcard.de", true */ 'm', 'y', 'p', 'r', 'i', 'n', 't', 'c', 'a', 'r', 'd', '.', 'd', 'e', '\0',
   /* "myptsite.com", true */ 'm', 'y', 'p', 't', 's', 'i', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "myraytech.net", false */ 'm', 'y', 'r', 'a', 'y', 't', 'e', 'c', 'h', '.', 'n', 'e', 't', '\0',
   /* "myrealestatemate.com.au", true */ 'm', 'y', 'r', 'e', 'a', 'l', 'e', 's', 't', 'a', 't', 'e', 'm', 'a', 't', 'e', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "myrepublic.co.id", true */ 'm', 'y', 'r', 'e', 'p', 'u', 'b', 'l', 'i', 'c', '.', 'c', 'o', '.', 'i', 'd', '\0',
   /* "myresearchapp.com", true */ 'm', 'y', 'r', 'e', 's', 'e', 'a', 'r', 'c', 'h', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0',
-  /* "myrig.com", true */ 'm', 'y', 'r', 'i', 'g', '.', 'c', 'o', 'm', '\0',
-  /* "myrig.io", true */ 'm', 'y', 'r', 'i', 'g', '.', 'i', 'o', '\0',
-  /* "myrig.net", true */ 'm', 'y', 'r', 'i', 'g', '.', 'n', 'e', 't', '\0',
   /* "myrsa.in", true */ 'm', 'y', 'r', 's', 'a', '.', 'i', 'n', '\0',
   /* "myruststats.com", true */ 'm', 'y', 'r', 'u', 's', 't', 's', 't', 'a', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "myschoolphoto.org", true */ 'm', 'y', 's', 'c', 'h', 'o', 'o', 'l', 'p', 'h', 'o', 't', 'o', '.', 'o', 'r', 'g', '\0',
   /* "mysecretcase.com", true */ 'm', 'y', 's', 'e', 'c', 'r', 'e', 't', 'c', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0',
   /* "myshirtsize.com", true */ 'm', 'y', 's', 'h', 'i', 'r', 't', 's', 'i', 'z', 'e', '.', 'c', 'o', 'm', '\0',
   /* "mysignal.com", true */ 'm', 'y', 's', 'i', 'g', 'n', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "mysmelly.com", true */ 'm', 'y', 's', 'm', 'e', 'l', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "mysocialporn.com", true */ 'm', 'y', 's', 'o', 'c', 'i', 'a', 'l', 'p', 'o', 'r', 'n', '.', 'c', 'o', 'm', '\0',
@@ -13550,16 +13537,17 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "myswissmailaddress.com", true */ 'm', 'y', 's', 'w', 'i', 's', 's', 'm', 'a', 'i', 'l', 'a', 'd', 'd', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\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',
   /* "mythicdelirium.com", true */ 'm', 'y', 't', 'h', 'i', 'c', 'd', 'e', 'l', 'i', 'r', 'i', 'u', 'm', '.', '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',
   /* "mytweeps.com", true */ 'm', 'y', 't', 'w', 'e', 'e', 'p', 's', '.', 'c', 'o', 'm', '\0',
@@ -13859,17 +13847,16 @@ static const char kSTSHostTable[] = {
   /* "netvizura.co.uk", true */ 'n', 'e', 't', 'v', 'i', 'z', 'u', 'r', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "netwarc.eu", true */ 'n', 'e', 't', 'w', 'a', 'r', 'c', '.', 'e', 'u', '\0',
   /* "netwarc.nl", true */ 'n', 'e', 't', 'w', 'a', 'r', 'c', '.', 'n', 'l', '\0',
   /* "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',
   /* "networkersdiary.com", true */ 'n', 'e', 't', 'w', 'o', 'r', 'k', 'e', 'r', 's', 'd', 'i', 'a', 'r', 'y', '.', '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',
   /* "netzwerkwerk.de", true */ 'n', 'e', 't', 'z', 'w', 'e', 'r', 'k', 'w', 'e', 'r', 'k', '.', 'd', 'e', '\0',
   /* "neuflizeobc.net", true */ 'n', 'e', 'u', 'f', 'l', 'i', 'z', 'e', 'o', 'b', 'c', '.', 'n', 'e', 't', '\0',
@@ -14012,17 +13999,19 @@ static const char kSTSHostTable[] = {
   /* "nightfirec.at", true */ 'n', 'i', 'g', 'h', 't', 'f', 'i', 'r', 'e', 'c', '.', 'a', 't', '\0',
   /* "nightfirecat.com", true */ 'n', 'i', 'g', 'h', 't', 'f', 'i', 'r', 'e', 'c', 'a', 't', '.', 'c', 'o', 'm', '\0',
   /* "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',
   /* "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',
   /* "ninaundandre.de", true */ 'n', 'i', 'n', 'a', 'u', 'n', 'd', 'a', 'n', 'd', 'r', 'e', '.', 'd', 'e', '\0',
@@ -14287,16 +14276,17 @@ static const char kSTSHostTable[] = {
   /* "nyanpasu.tv", true */ 'n', 'y', 'a', 'n', 'p', 'a', 's', 'u', '.', 't', 'v', '\0',
   /* "nyazeeland.guide", true */ 'n', 'y', 'a', 'z', 'e', 'e', 'l', 'a', 'n', 'd', '.', 'g', 'u', 'i', 'd', 'e', '\0',
   /* "nyffo.com", true */ 'n', 'y', 'f', 'f', 'o', '.', 'c', 'o', 'm', '\0',
   /* "nyiad.edu", true */ 'n', 'y', 'i', 'a', 'd', '.', 'e', 'd', 'u', '\0',
   /* "nyip.co.uk", true */ 'n', 'y', 'i', 'p', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "nyip.edu", true */ 'n', 'y', 'i', 'p', '.', 'e', 'd', 'u', '\0',
   /* "nyloc.de", true */ 'n', 'y', 'l', 'o', 'c', '.', 'd', 'e', '\0',
   /* "nylonfeetporn.com", true */ 'n', 'y', 'l', 'o', 'n', 'f', 'e', 'e', 't', 'p', 'o', 'r', 'n', '.', 'c', 'o', 'm', '\0',
+  /* "nymphetomania.net", true */ 'n', 'y', 'm', 'p', 'h', 'e', 't', 'o', 'm', 'a', 'n', 'i', 'a', '.', 'n', 'e', 't', '\0',
   /* "nynex.net", true */ 'n', 'y', 'n', 'e', 'x', '.', 'n', 'e', 't', '\0',
   /* "nyored.com", true */ 'n', 'y', 'o', 'r', 'e', 'd', '.', 'c', 'o', 'm', '\0',
   /* "nyphox.net", true */ 'n', 'y', 'p', 'h', 'o', 'x', '.', 'n', 'e', 't', '\0',
   /* "nyronet.de", false */ 'n', 'y', 'r', 'o', 'n', 'e', 't', '.', 'd', 'e', '\0',
   /* "nyxi.eu", true */ 'n', 'y', 'x', 'i', '.', 'e', 'u', '\0',
   /* "nyyu.tk", true */ 'n', 'y', 'y', 'u', '.', 't', 'k', '\0',
   /* "nzmk.cz", true */ 'n', 'z', 'm', 'k', '.', 'c', 'z', '\0',
   /* "nzstudy.ac.nz", true */ 'n', 'z', 's', 't', 'u', 'd', 'y', '.', 'a', 'c', '.', 'n', 'z', '\0',
@@ -14327,17 +14317,16 @@ static const char kSTSHostTable[] = {
   /* "obsidianirc.net", true */ 'o', 'b', 's', 'i', 'd', 'i', 'a', 'n', 'i', 'r', 'c', '.', 'n', 'e', 't', '\0',
   /* "obsproject.com", true */ 'o', 'b', 's', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'c', 'o', 'm', '\0',
   /* "obtima.org", true */ 'o', 'b', 't', 'i', 'm', 'a', '.', 'o', 'r', 'g', '\0',
   /* "obyvateleceska.cz", true */ 'o', 'b', 'y', 'v', 'a', 't', 'e', 'l', 'e', 'c', 'e', 's', 'k', 'a', '.', 'c', 'z', '\0',
   /* "oc-minecraft.com", true */ 'o', 'c', '-', 'm', 'i', 'n', 'e', 'c', 'r', 'a', 'f', 't', '.', 'c', 'o', 'm', '\0',
   /* "ocad.com.au", true */ 'o', 'c', 'a', 'd', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "ocapic.com", true */ 'o', 'c', 'a', 'p', 'i', 'c', '.', 'c', 'o', 'm', '\0',
   /* "occasion-impro.com", true */ 'o', 'c', 'c', 'a', 's', 'i', 'o', 'n', '-', 'i', 'm', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
-  /* "occupymedia.org", true */ 'o', 'c', 'c', 'u', 'p', 'y', 'm', 'e', 'd', 'i', 'a', '.', 'o', 'r', 'g', '\0',
   /* "ocd2016.com", true */ 'o', 'c', 'd', '2', '0', '1', '6', '.', 'c', 'o', 'm', '\0',
   /* "oceandns.eu", true */ 'o', 'c', 'e', 'a', 'n', 'd', 'n', 's', '.', 'e', 'u', '\0',
   /* "oceandns.net", true */ 'o', 'c', 'e', 'a', 'n', 'd', 'n', 's', '.', 'n', 'e', 't', '\0',
   /* "oceandns.nl", true */ 'o', 'c', 'e', 'a', 'n', 'd', 'n', 's', '.', 'n', 'l', '\0',
   /* "oceanvisuals.com", true */ 'o', 'c', 'e', 'a', 'n', 'v', 'i', 's', 'u', 'a', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "ocelot.help", true */ 'o', 'c', 'e', 'l', 'o', 't', '.', 'h', 'e', 'l', 'p', '\0',
   /* "ocf.io", true */ 'o', 'c', 'f', '.', 'i', 'o', '\0',
   /* "ocg-card.com", true */ 'o', 'c', 'g', '-', 'c', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0',
@@ -14665,18 +14654,16 @@ static const char kSTSHostTable[] = {
   /* "os-chrome.ru", true */ 'o', 's', '-', 'c', 'h', 'r', 'o', 'm', 'e', '.', 'r', 'u', '\0',
   /* "os-s.net", true */ 'o', 's', '-', 's', '.', 'n', 'e', 't', '\0',
   /* "osacrypt.studio", true */ 'o', 's', 'a', 'c', 'r', 'y', 'p', 't', '.', 's', 't', 'u', 'd', 'i', 'o', '\0',
   /* "osao.org", true */ 'o', 's', 'a', 'o', '.', 'o', 'r', 'g', '\0',
   /* "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',
   /* "oscamp.eu", true */ 'o', 's', 'c', 'a', 'm', 'p', '.', 'e', 'u', '\0',
   /* "oscarvk.ch", true */ 'o', 's', 'c', 'a', 'r', 'v', 'k', '.', 'c', 'h', '\0',
-  /* "oscloud.com", true */ 'o', 's', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0',
-  /* "oscloud.com.ua", true */ 'o', 's', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '.', 'u', 'a', '\0',
   /* "oscreen.me", true */ 'o', 's', 'c', 'r', 'e', 'e', 'n', '.', 'm', 'e', '\0',
   /* "oscreen.org", true */ 'o', 's', 'c', 'r', 'e', 'e', 'n', '.', 'o', 'r', 'g', '\0',
   /* "osereso.tn", true */ 'o', 's', 'e', 'r', 'e', 's', 'o', '.', 't', 'n', '\0',
   /* "oses.mobi", true */ 'o', 's', 'e', 's', '.', 'm', 'o', 'b', 'i', '\0',
   /* "osha-kimi.com", true */ 'o', 's', 'h', 'a', '-', 'k', 'i', 'm', 'i', '.', 'c', 'o', 'm', '\0',
   /* "oshanko.de", true */ 'o', 's', 'h', 'a', 'n', 'k', 'o', '.', 'd', 'e', '\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',
@@ -14852,16 +14839,17 @@ static const char kSTSHostTable[] = {
   /* "paragon.edu", true */ 'p', 'a', 'r', 'a', 'g', 'o', 'n', '.', 'e', 'd', 'u', '\0',
   /* "paragonie.com", false */ 'p', 'a', 'r', 'a', 'g', 'o', 'n', 'i', 'e', '.', 'c', 'o', 'm', '\0',
   /* "paragreen.net", true */ 'p', 'a', 'r', 'a', 'g', 'r', 'e', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "parakranov.ru", true */ 'p', 'a', 'r', 'a', 'k', 'r', 'a', 'n', 'o', 'v', '.', 'r', 'u', '\0',
   /* "paranoxer.hu", true */ 'p', 'a', 'r', 'a', 'n', 'o', 'x', 'e', 'r', '.', 'h', 'u', '\0',
   /* "parasitologyclub.org", true */ 'p', 'a', 'r', 'a', 's', 'i', 't', 'o', 'l', 'o', 'g', 'y', 'c', 'l', 'u', 'b', '.', 'o', 'r', 'g', '\0',
   /* "paratlan.hu", true */ 'p', 'a', 'r', 'a', 't', 'l', 'a', 'n', '.', 'h', 'u', '\0',
   /* "paratxt.org", true */ 'p', 'a', 'r', 'a', 't', 'x', 't', '.', 'o', 'r', 'g', '\0',
+  /* "parchcraftaustralia.com", true */ 'p', 'a', 'r', 'c', 'h', 'c', 'r', 'a', 'f', 't', 'a', 'u', 's', 't', 'r', 'a', 'l', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "parckwart.de", true */ 'p', 'a', 'r', 'c', 'k', 'w', 'a', 'r', 't', '.', 'd', 'e', '\0',
   /* "parcon.it", true */ 'p', 'a', 'r', 'c', 'o', 'n', '.', 'i', 't', '\0',
   /* "parentinterview.com", true */ 'p', 'a', 'r', 'e', 'n', 't', 'i', 'n', 't', 'e', 'r', 'v', 'i', 'e', 'w', '.', 'c', 'o', 'm', '\0',
   /* "parentsintouch.co.uk", true */ 'p', 'a', 'r', 'e', 'n', 't', 's', 'i', 'n', 't', 'o', 'u', 'c', 'h', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "pariga.co.uk", true */ 'p', 'a', 'r', 'i', 'g', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "parisfranceparking.com", true */ 'p', 'a', 'r', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'e', 'p', 'a', 'r', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "parisfranceparking.de", true */ 'p', 'a', 'r', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'e', 'p', 'a', 'r', 'k', 'i', 'n', 'g', '.', 'd', 'e', '\0',
   /* "parisfranceparking.fr", true */ 'p', 'a', 'r', 'i', 's', 'f', 'r', 'a', 'n', 'c', 'e', 'p', 'a', 'r', 'k', 'i', 'n', 'g', '.', 'f', 'r', '\0',
@@ -14998,16 +14986,17 @@ static const char kSTSHostTable[] = {
   /* "paytwopay.com", true */ 'p', 'a', 'y', 't', 'w', 'o', 'p', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "payupay.ru", true */ 'p', 'a', 'y', 'u', 'p', 'a', 'y', '.', 'r', 'u', '\0',
   /* "payzang.com", true */ 'p', 'a', 'y', 'z', 'a', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "pback.se", true */ 'p', 'b', 'a', 'c', 'k', '.', 's', 'e', '\0',
   /* "pbcknd.ml", true */ 'p', 'b', 'c', 'k', 'n', 'd', '.', 'm', 'l', '\0',
   /* "pbraunschdash.com", true */ 'p', 'b', 'r', 'a', 'u', 'n', 's', 'c', 'h', 'd', 'a', 's', 'h', '.', 'c', 'o', 'm', '\0',
   /* "pbscreens.com", true */ 'p', 'b', 's', 'c', 'r', 'e', 'e', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "pbxapi.com", true */ 'p', 'b', 'x', 'a', 'p', 'i', '.', 'c', 'o', 'm', '\0',
+  /* "pbytes.com", true */ 'p', 'b', 'y', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "pc-rescue.me", true */ 'p', 'c', '-', 'r', 'e', 's', 'c', 'u', 'e', '.', 'm', 'e', '\0',
   /* "pcat.io", true */ 'p', 'c', 'a', 't', '.', 'i', 'o', '\0',
   /* "pccentral.nl", true */ 'p', 'c', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'n', 'l', '\0',
   /* "pcel.com", true */ 'p', 'c', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "pcfeuerwehr.de", true */ 'p', 'c', 'f', 'e', 'u', 'e', 'r', 'w', 'e', 'h', 'r', '.', 'd', 'e', '\0',
   /* "pcforum.sk", true */ 'p', 'c', 'f', 'o', 'r', 'u', 'm', '.', 's', 'k', '\0',
   /* "pcgamingfreaks.at", true */ 'p', 'c', 'g', 'a', 'm', 'i', 'n', 'g', 'f', 'r', 'e', 'a', 'k', 's', '.', 'a', 't', '\0',
   /* "pciconcursos.com.br", true */ 'p', 'c', 'i', 'c', 'o', 'n', 'c', 'u', 'r', 's', 'o', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
@@ -15095,16 +15084,17 @@ static const char kSTSHostTable[] = {
   /* "pepchid.com", false */ 'p', 'e', 'p', 'c', 'h', 'i', 'd', '.', 'c', 'o', 'm', '\0',
   /* "peplog.nl", true */ 'p', 'e', 'p', 'l', 'o', 'g', '.', 'n', 'l', '\0',
   /* "pepsicoemployeepreferencesurvey.com", true */ 'p', 'e', 'p', 's', 'i', 'c', 'o', 'e', 'm', 'p', 'l', 'o', 'y', 'e', 'e', 'p', 'r', 'e', 'f', 'e', 'r', 'e', 'n', 'c', 'e', 's', 'u', 'r', 'v', 'e', 'y', '.', 'c', 'o', 'm', '\0',
   /* "pepwaterproofing.com", true */ 'p', 'e', 'p', 'w', 'a', 't', 'e', 'r', 'p', 'r', 'o', 'o', 'f', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "per-pedes.at", true */ 'p', 'e', 'r', '-', 'p', 'e', 'd', 'e', 's', '.', 'a', 't', '\0',
   /* "percolate.com", true */ 'p', 'e', 'r', 'c', 'o', 'l', 'a', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "percraft.com", true */ 'p', 'e', 'r', 'c', 'r', 'a', 'f', 't', '.', 'c', 'o', 'm', '\0',
   /* "percy.io", true */ 'p', 'e', 'r', 'c', 'y', '.', 'i', 'o', '\0',
+  /* "perd.re", true */ 'p', 'e', 'r', 'd', '.', 'r', 'e', '\0',
   /* "perdel.cn", false */ 'p', 'e', 'r', 'd', 'e', 'l', '.', 'c', 'n', '\0',
   /* "perecraft.com", true */ 'p', 'e', 'r', 'e', 'c', 'r', 'a', 'f', 't', '.', 'c', 'o', 'm', '\0',
   /* "pereuda.com", true */ 'p', 'e', 'r', 'e', 'u', 'd', 'a', '.', 'c', 'o', 'm', '\0',
   /* "perezdecastro.org", true */ 'p', 'e', 'r', 'e', 'z', 'd', 'e', 'c', 'a', 's', 't', 'r', 'o', '.', 'o', 'r', 'g', '\0',
   /* "perfect.in.th", true */ 'p', 'e', 'r', 'f', 'e', 'c', 't', '.', 'i', 'n', '.', 't', 'h', '\0',
   /* "perfectseourl.com", true */ 'p', 'e', 'r', 'f', 'e', 'c', 't', 's', 'e', 'o', 'u', 'r', 'l', '.', 'c', 'o', 'm', '\0',
   /* "perfektesgewicht.com", true */ 'p', 'e', 'r', 'f', 'e', 'k', 't', 'e', 's', 'g', 'e', 'w', 'i', 'c', 'h', 't', '.', 'c', 'o', 'm', '\0',
   /* "perfektesgewicht.de", true */ 'p', 'e', 'r', 'f', 'e', 'k', 't', 'e', 's', 'g', 'e', 'w', 'i', 'c', 'h', 't', '.', 'd', 'e', '\0',
@@ -15216,16 +15206,17 @@ static const char kSTSHostTable[] = {
   /* "philosopherswool.com", true */ 'p', 'h', 'i', 'l', 'o', 's', 'o', 'p', 'h', 'e', 'r', 's', 'w', 'o', 'o', 'l', '.', 'c', 'o', 'm', '\0',
   /* "philosophyguides.org", true */ 'p', 'h', 'i', 'l', 'o', 's', 'o', 'p', 'h', 'y', 'g', 'u', 'i', 'd', 'e', 's', '.', 'o', 'r', 'g', '\0',
   /* "philphonic.de", true */ 'p', 'h', 'i', 'l', 'p', 'h', 'o', 'n', 'i', 'c', '.', 'd', 'e', '\0',
   /* "philsturgeon.uk", true */ 'p', 'h', 'i', 'l', 's', 't', 'u', 'r', 'g', 'e', 'o', 'n', '.', 'u', 'k', '\0',
   /* "philux.ch", true */ 'p', 'h', 'i', 'l', 'u', 'x', '.', 'c', 'h', '\0',
   /* "phishingusertraining.com", true */ 'p', 'h', 'i', 's', 'h', 'i', 'n', 'g', 'u', 's', 'e', 'r', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "phocean.net", true */ 'p', 'h', 'o', 'c', 'e', 'a', 'n', '.', 'n', 'e', 't', '\0',
   /* "phoenix.dj", true */ 'p', 'h', 'o', 'e', 'n', 'i', 'x', '.', 'd', 'j', '\0',
+  /* "phoenixlogan.com", true */ 'p', 'h', 'o', 'e', 'n', 'i', 'x', 'l', 'o', 'g', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "phone-service-center.de", true */ 'p', 'h', 'o', 'n', 'e', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '-', 'c', 'e', 'n', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "phood.be", true */ 'p', 'h', 'o', 'o', 'd', '.', 'b', 'e', '\0',
   /* "phormance.com", true */ 'p', 'h', 'o', 'r', 'm', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
   /* "phosagro.biz", true */ 'p', 'h', 'o', 's', 'a', 'g', 'r', 'o', '.', 'b', 'i', 'z', '\0',
   /* "phosagro.com", true */ 'p', 'h', 'o', 's', 'a', 'g', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "phosagro.ru", true */ 'p', 'h', 'o', 's', 'a', 'g', 'r', 'o', '.', 'r', 'u', '\0',
   /* "photo.org.il", true */ 'p', 'h', 'o', 't', 'o', '.', 'o', 'r', 'g', '.', 'i', 'l', '\0',
   /* "photoartelle.com", true */ 'p', 'h', 'o', 't', 'o', 'a', 'r', 't', 'e', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0',
@@ -15315,16 +15306,17 @@ static const char kSTSHostTable[] = {
   /* "pimhaarsmamedia.nl", true */ 'p', 'i', 'm', 'h', 'a', 'a', 'r', 's', 'm', 'a', 'm', 'e', 'd', 'i', 'a', '.', 'n', 'l', '\0',
   /* "pimpmyperf.fr", true */ 'p', 'i', 'm', 'p', 'm', 'y', 'p', 'e', 'r', 'f', '.', 'f', 'r', '\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',
   /* "pincodeit.com", true */ 'p', 'i', 'n', 'c', 'o', 'd', 'e', 'i', 't', '.', 'c', 'o', 'm', '\0',
   /* "pindanutjes.be", false */ 'p', 'i', 'n', 'd', 'a', 'n', 'u', 't', 'j', 'e', 's', '.', 'b', 'e', '\0',
+  /* "pinemountainnursery.com.au", true */ 'p', 'i', 'n', 'e', 'm', 'o', 'u', 'n', 't', 'a', 'i', 'n', 'n', 'u', 'r', 's', 'e', 'r', 'y', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "pinemountbaptistchurch.org", true */ 'p', 'i', 'n', 'e', 'm', 'o', 'u', 'n', 't', 'b', 'a', 'p', 't', 'i', 's', 't', 'c', 'h', 'u', 'r', 'c', 'h', '.', 'o', 'r', 'g', '\0',
   /* "pinesandneedles.com", true */ 'p', 'i', 'n', 'e', 's', 'a', 'n', 'd', 'n', 'e', 'e', 'd', 'l', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "pinimg.com", true */ 'p', 'i', 'n', 'i', 'm', 'g', '.', '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',
   /* "pinkfis.ch", true */ 'p', 'i', 'n', 'k', 'f', 'i', 's', '.', 'c', 'h', '\0',
   /* "pinkhq.com", true */ 'p', 'i', 'n', 'k', 'h', 'q', '.', 'c', 'o', 'm', '\0',
   /* "pinkinked.com", true */ 'p', 'i', 'n', 'k', 'i', 'n', 'k', 'e', 'd', '.', 'c', 'o', 'm', '\0',
@@ -15417,17 +15409,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "playdreamcraft.com.br", true */ 'p', 'l', 'a', 'y', 'd', 'r', 'e', 'a', 'm', 'c', 'r', 'a', 'f', 't', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "playerhunter.com", true */ 'p', 'l', 'a', 'y', 'e', 'r', 'h', 'u', 'n', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "playform.cloud", true */ 'p', 'l', 'a', 'y', 'f', 'o', 'r', 'm', '.', 'c', 'l', 'o', 'u', 'd', '\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',
   /* "playkh.com", true */ 'p', 'l', 'a', 'y', 'k', 'h', '.', 'c', 'o', 'm', '\0',
   /* "playmfe.com", true */ 'p', 'l', 'a', 'y', 'm', 'f', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "playmyplay.com", true */ 'p', 'l', 'a', 'y', 'm', 'y', 'p', 'l', 'a', 'y', '.', 'c', 'o', 'm', '\0',
   /* "playpirates.com", true */ 'p', 'l', 'a', 'y', 'p', 'i', 'r', 'a', 't', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "playsnake.org", true */ 'p', 'l', 'a', 'y', 's', 'n', 'a', 'k', 'e', '.', 'o', 'r', 'g', '\0',
   /* "playsoundevents.be", true */ 'p', 'l', 'a', 'y', 's', 'o', 'u', 'n', 'd', 'e', 'v', 'e', 'n', 't', 's', '.', 'b', 'e', '\0',
   /* "playsource.co", true */ 'p', 'l', 'a', 'y', 's', 'o', 'u', 'r', 'c', 'e', '.', 'c', 'o', '\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',
   /* "playtictactoe.org", true */ 'p', 'l', 'a', 'y', 't', 'i', 'c', 't', 'a', 'c', 't', 'o', 'e', '.', 'o', 'r', 'g', '\0',
   /* "pldx.org", true */ 'p', 'l', 'd', 'x', '.', 'o', 'r', 'g', '\0',
   /* "please-deny.me", true */ 'p', 'l', 'e', 'a', 's', 'e', '-', 'd', 'e', 'n', 'y', '.', 'm', 'e', '\0',
@@ -15596,17 +15587,16 @@ static const char kSTSHostTable[] = {
   /* "postback.io", true */ 'p', 'o', 's', 't', 'b', 'a', 'c', 'k', '.', 'i', 'o', '\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',
   /* "postcardpayment.com", true */ 'p', 'o', 's', 't', 'c', 'a', 'r', 'd', 'p', 'a', 'y', 'm', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0',
   /* "postcodegarant.nl", true */ 'p', 'o', 's', 't', 'c', 'o', 'd', 'e', 'g', 'a', 'r', 'a', 'n', 't', '.', 'n', 'l', '\0',
   /* "postdarwinian.com", true */ 'p', 'o', 's', 't', 'd', 'a', 'r', 'w', 'i', 'n', 'i', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "postdarwinism.com", true */ 'p', 'o', 's', 't', 'd', 'a', 'r', 'w', 'i', 'n', 'i', 's', 'm', '.', 'c', 'o', 'm', '\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',
   /* "potatiz.com", true */ 'p', 'o', 't', 'a', 't', 'i', 'z', '.', 'c', 'o', 'm', '\0',
   /* "potatofrom.space", true */ 'p', 'o', 't', 'a', 't', 'o', 'f', 'r', 'o', 'm', '.', 's', 'p', 'a', 'c', 'e', '\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',
@@ -15791,16 +15781,17 @@ static const char kSTSHostTable[] = {
   /* "projectdp.net", true */ 'p', 'r', 'o', 'j', 'e', 'c', 't', 'd', 'p', '.', 'n', 'e', 't', '\0',
   /* "projectnom.com", true */ 'p', 'r', 'o', 'j', 'e', 'c', 't', 'n', 'o', 'm', '.', 'c', 'o', 'm', '\0',
   /* "projectsecretidentity.com", true */ 'p', 'r', 'o', 'j', 'e', 'c', 't', 's', 'e', 'c', 'r', 'e', 't', 'i', 'd', 'e', 'n', 't', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "projectsecretidentity.org", true */ 'p', 'r', 'o', 'j', 'e', 'c', 't', 's', 'e', 'c', 'r', 'e', 't', 'i', 'd', 'e', 'n', 't', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0',
   /* "projectte.ch", true */ 'p', 'r', 'o', 'j', 'e', 'c', 't', 't', 'e', '.', 'c', 'h', '\0',
   /* "projekt-umbriel.de", true */ 'p', 'r', 'o', 'j', 'e', 'k', 't', '-', 'u', 'm', 'b', 'r', 'i', 'e', 'l', '.', 'd', 'e', '\0',
   /* "projektik.cz", true */ 'p', 'r', 'o', 'j', 'e', 'k', 't', 'i', 'k', '.', 'c', 'z', '\0',
   /* "projektzentrisch.de", true */ 'p', 'r', 'o', 'j', 'e', 'k', 't', 'z', 'e', 'n', 't', 'r', 'i', 's', 'c', 'h', '.', 'd', 'e', '\0',
+  /* "prok.pw", true */ 'p', 'r', 'o', 'k', '.', 'p', 'w', '\0',
   /* "prokop.ovh", true */ 'p', 'r', 'o', 'k', 'o', 'p', '.', 'o', 'v', 'h', '\0',
   /* "prolan.pw", true */ 'p', 'r', 'o', 'l', 'a', 'n', '.', 'p', 'w', '\0',
   /* "promedicalapplications.com", true */ 'p', 'r', 'o', 'm', 'e', 'd', 'i', 'c', 'a', 'l', 'a', 'p', 'p', 'l', 'i', 'c', 'a', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0',
   /* "prometheanfire.net", true */ 'p', 'r', 'o', 'm', 'e', 't', 'h', 'e', 'a', 'n', 'f', 'i', 'r', 'e', '.', 'n', 'e', 't', '\0',
   /* "prometheanfire.org", true */ 'p', 'r', 'o', 'm', 'e', 't', 'h', 'e', 'a', 'n', 'f', 'i', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "promhadan.com", true */ 'p', 'r', 'o', 'm', 'h', 'a', 'd', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "promisesaplus.com", true */ 'p', 'r', 'o', 'm', 'i', 's', 'e', 's', 'a', 'p', 'l', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "promocao.email", true */ 'p', 'r', 'o', 'm', 'o', 'c', 'a', 'o', '.', 'e', 'm', 'a', 'i', 'l', '\0',
@@ -15810,16 +15801,17 @@ static const char kSTSHostTable[] = {
   /* "proofwiki.org", true */ 'p', 'r', 'o', 'o', 'f', 'w', 'i', 'k', 'i', '.', 'o', 'r', 'g', '\0',
   /* "proos.nl", true */ 'p', 'r', 'o', 'o', 's', '.', 'n', 'l', '\0',
   /* "propagandism.org", true */ 'p', 'r', 'o', 'p', 'a', 'g', 'a', 'n', 'd', 'i', 's', 'm', '.', 'o', 'r', 'g', '\0',
   /* "propagationtools.com", true */ 'p', 'r', 'o', 'p', 'a', 'g', 'a', 't', 'i', 'o', 'n', 't', 'o', 'o', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "propershave.com", true */ 'p', 'r', 'o', 'p', 'e', 'r', 's', 'h', 'a', 'v', 'e', '.', 'c', 'o', 'm', '\0',
   /* "propertygroup.pl", true */ 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'g', 'r', 'o', 'u', 'p', '.', 'p', 'l', '\0',
   /* "propertyone.mk", true */ 'p', 'r', 'o', 'p', 'e', 'r', 't', 'y', 'o', 'n', 'e', '.', 'm', 'k', '\0',
   /* "propipesystem.com", true */ 'p', 'r', 'o', 'p', 'i', 'p', 'e', 's', 'y', 's', 't', 'e', 'm', '.', 'c', 'o', 'm', '\0',
+  /* "proposalonline.com", true */ 'p', 'r', 'o', 'p', 'o', 's', 'a', 'l', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "propr.no", true */ 'p', 'r', 'o', 'p', 'r', '.', 'n', 'o', '\0',
   /* "proslimdiets.com", true */ 'p', 'r', 'o', 's', 'l', 'i', 'm', 'd', 'i', 'e', 't', 's', '.', 'c', 'o', 'm', '\0',
   /* "prospanek.cz", true */ 'p', 'r', 'o', 's', 'p', 'a', 'n', 'e', 'k', '.', 'c', 'z', '\0',
   /* "prospo.co", true */ 'p', 'r', 'o', 's', 'p', 'o', '.', 'c', 'o', '\0',
   /* "prostohobby.ru", true */ 'p', 'r', 'o', 's', 't', 'o', 'h', 'o', 'b', 'b', 'y', '.', 'r', 'u', '\0',
   /* "prostye-recepty.com", true */ 'p', 'r', 'o', 's', 't', 'y', 'e', '-', 'r', 'e', 'c', 'e', 'p', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "prot.ch", true */ 'p', 'r', 'o', 't', '.', 'c', 'h', '\0',
   /* "proteapower.co.za", true */ 'p', 'r', 'o', 't', 'e', 'a', 'p', 'o', 'w', 'e', 'r', '.', 'c', 'o', '.', 'z', 'a', '\0',
@@ -15876,26 +15868,26 @@ static const char kSTSHostTable[] = {
   /* "psncardplus.be", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 'b', 'e', '\0',
   /* "psncardplus.com", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 'c', 'o', 'm', '\0',
   /* "psncardplus.dk", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 'd', 'k', '\0',
   /* "psncardplus.nl", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 'n', 'l', '\0',
   /* "psncardplus.se", true */ 'p', 's', 'n', 'c', 'a', 'r', 'd', 'p', 'l', 'u', 's', '.', 's', 'e', '\0',
   /* "pson.ninja", true */ 'p', 's', 'o', 'n', '.', 'n', 'i', 'n', 'j', 'a', '\0',
   /* "psono.pw", true */ 'p', 's', 'o', 'n', 'o', '.', 'p', 'w', '\0',
   /* "pste.pw", true */ 'p', 's', 't', 'e', '.', 'p', 'w', '\0',
-  /* "pstrozniak.com", true */ 'p', 's', 't', 'r', 'o', 'z', 'n', 'i', 'a', 'k', '.', 'c', 'o', 'm', '\0',
   /* "pstudio.me", true */ 'p', 's', 't', 'u', 'd', 'i', 'o', '.', 'm', 'e', '\0',
   /* "psw-group.de", true */ 'p', 's', 'w', '-', 'g', 'r', 'o', 'u', 'p', '.', 'd', 'e', '\0',
   /* "psw.net", true */ 'p', 's', 'w', '.', 'n', 'e', 't', '\0',
   /* "psxtr.com", true */ 'p', 's', 'x', 't', 'r', '.', 'c', 'o', 'm', '\0',
   /* "psychedelia.com", true */ 'p', 's', 'y', 'c', 'h', 'e', 'd', 'e', 'l', 'i', 'a', '.', 'c', 'o', 'm', '\0',
   /* "psychedelics.org", true */ 'p', 's', 'y', 'c', 'h', 'e', 'd', 'e', 'l', 'i', 'c', 's', '.', 'o', 'r', 'g', '\0',
   /* "psychiatrie-betreuung.ch", true */ 'p', 's', 'y', 'c', 'h', 'i', 'a', 't', 'r', 'i', 'e', '-', 'b', 'e', 't', 'r', 'e', 'u', 'u', 'n', 'g', '.', 'c', 'h', '\0',
   /* "psychintervention.com", true */ 'p', 's', 'y', 'c', 'h', 'i', 'n', 't', 'e', 'r', 'v', 'e', 'n', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "psychoactive.com", true */ 'p', 's', 'y', 'c', 'h', 'o', 'a', 'c', 't', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "psychoco.net", true */ 'p', 's', 'y', 'c', 'h', 'o', 'c', 'o', '.', 'n', 'e', 't', '\0',
   /* "psychotherapie-kp.de", true */ 'p', 's', 'y', 'c', 'h', 'o', 't', 'h', 'e', 'r', 'a', 'p', 'i', 'e', '-', 'k', 'p', '.', 'd', 'e', '\0',
   /* "psyk.yt", true */ 'p', 's', 'y', 'k', '.', 'y', 't', '\0',
   /* "psylab.cc", true */ 'p', 's', 'y', 'l', 'a', 'b', '.', 'c', 'c', '\0',
   /* "psylab.re", true */ 'p', 's', 'y', 'l', 'a', 'b', '.', 'r', 'e', '\0',
   /* "psylab.vip", true */ 'p', 's', 'y', 'l', 'a', 'b', '.', 'v', 'i', 'p', '\0',
   /* "pt-server.de", true */ 'p', 't', '-', 's', 'e', 'r', 'v', 'e', 'r', '.', 'd', 'e', '\0',
   /* "ptbi.org.pl", true */ 'p', 't', 'b', 'i', '.', 'o', 'r', 'g', '.', 'p', 'l', '\0',
   /* "ptbx.co", true */ 'p', 't', 'b', 'x', '.', 'c', 'o', '\0',
@@ -15955,16 +15947,17 @@ static const char kSTSHostTable[] = {
   /* "puzzle-welt.ch", true */ 'p', 'u', 'z', 'z', 'l', 'e', '-', 'w', 'e', 'l', 't', '.', 'c', 'h', '\0',
   /* "pvcvoordeel.nl", false */ 'p', 'v', 'c', 'v', 'o', 'o', 'r', 'd', 'e', 'e', 'l', '.', 'n', 'l', '\0',
   /* "pvpcraft.ca", true */ 'p', 'v', 'p', 'c', 'r', 'a', 'f', 't', '.', 'c', 'a', '\0',
   /* "pvtschlag.com", true */ 'p', 'v', 't', 's', 'c', 'h', 'l', 'a', 'g', '.', 'c', 'o', 'm', '\0',
   /* "pwdgen.net", false */ 'p', 'w', 'd', 'g', 'e', 'n', '.', 'n', 'e', 't', '\0',
   /* "pwdsafe.com", true */ 'p', 'w', 'd', 's', 'a', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pwe.vision", true */ 'p', 'w', 'e', '.', 'v', 'i', 's', 'i', 'o', 'n', '\0',
   /* "pwfrance.com", true */ 'p', 'w', 'f', 'r', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0',
+  /* "pwnies.dk", true */ 'p', 'w', 'n', 'i', 'e', 's', '.', 'd', 'k', '\0',
   /* "pwntr.com", true */ 'p', 'w', 'n', 't', 'r', '.', 'c', 'o', 'm', '\0',
   /* "pwolk.com", true */ 'p', 'w', 'o', 'l', 'k', '.', 'c', 'o', 'm', '\0',
   /* "pxx.io", true */ 'p', 'x', 'x', '.', 'i', 'o', '\0',
   /* "pycrypto.org", true */ 'p', 'y', 'c', 'r', 'y', 'p', 't', 'o', '.', 'o', 'r', 'g', '\0',
   /* "pygarage.com", true */ 'p', 'y', 'g', 'a', 'r', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0',
   /* "pyopenssl.org", true */ 'p', 'y', 'o', 'p', 'e', 'n', 's', 's', 'l', '.', 'o', 'r', 'g', '\0',
   /* "pypa.io", true */ 'p', 'y', 'p', 'a', '.', 'i', 'o', '\0',
   /* "pypi-mirrors.org", true */ 'p', 'y', 'p', 'i', '-', 'm', 'i', 'r', 'r', 'o', 'r', 's', '.', 'o', 'r', 'g', '\0',
@@ -16389,16 +16382,17 @@ static const char kSTSHostTable[] = {
   /* "relax.hn", true */ 'r', 'e', 'l', 'a', 'x', '.', 'h', 'n', '\0',
   /* "relaxdom.net", true */ 'r', 'e', 'l', 'a', 'x', 'd', 'o', 'm', '.', 'n', 'e', 't', '\0',
   /* "relaxpointhyncice.cz", true */ 'r', 'e', 'l', 'a', 'x', 'p', 'o', 'i', 'n', 't', 'h', 'y', 'n', 'c', 'i', 'c', 'e', '.', 'c', 'z', '\0',
   /* "relaybox.io", true */ 'r', 'e', 'l', 'a', 'y', 'b', 'o', 'x', '.', 'i', 'o', '\0',
   /* "release-monitoring.org", true */ 'r', 'e', 'l', 'e', 'a', 's', 'e', '-', 'm', 'o', 'n', 'i', 't', 'o', 'r', 'i', 'n', 'g', '.', 'o', 'r', 'g', '\0',
   /* "reliancebank.bank", true */ 'r', 'e', 'l', 'i', 'a', 'n', 'c', 'e', 'b', 'a', 'n', 'k', '.', 'b', 'a', 'n', 'k', '\0',
   /* "religiousforums.com", true */ 'r', 'e', 'l', 'i', 'g', 'i', 'o', 'u', 's', 'f', 'o', 'r', 'u', 'm', 's', '.', 'c', 'o', 'm', '\0',
   /* "relsak.cz", true */ 'r', 'e', 'l', 's', 'a', 'k', '.', 'c', 'z', '\0',
+  /* "relvan.com", true */ 'r', 'e', 'l', 'v', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "rem0te.net", true */ 'r', 'e', 'm', '0', 't', 'e', '.', 'n', 'e', 't', '\0',
   /* "rema.site", true */ 'r', 'e', 'm', 'a', '.', 's', 'i', 't', 'e', '\0',
   /* "remaimodern.org", true */ 'r', 'e', 'm', 'a', 'i', 'm', 'o', 'd', 'e', 'r', 'n', '.', 'o', 'r', 'g', '\0',
   /* "remambo.jp", true */ 'r', 'e', 'm', 'a', 'm', 'b', 'o', '.', 'j', 'p', '\0',
   /* "remedica.fr", true */ 'r', 'e', 'm', 'e', 'd', 'i', 'c', 'a', '.', 'f', 'r', '\0',
   /* "remedium.de", true */ 'r', 'e', 'm', 'e', 'd', 'i', 'u', 'm', '.', 'd', 'e', '\0',
   /* "rememberthemilk.com", false */ 'r', 'e', 'm', 'e', 'm', 'b', 'e', 'r', 't', 'h', 'e', 'm', 'i', 'l', 'k', '.', 'c', 'o', 'm', '\0',
   /* "rememberthis.co.za", true */ 'r', 'e', 'm', 'e', 'm', 'b', 'e', 'r', 't', 'h', 'i', 's', '.', 'c', 'o', '.', 'z', 'a', '\0',
@@ -16419,17 +16413,16 @@ static const char kSTSHostTable[] = {
   /* "rengarenkblog.com", true */ 'r', 'e', 'n', 'g', 'a', 'r', 'e', 'n', 'k', 'b', 'l', 'o', 'g', '.', 'c', 'o', 'm', '\0',
   /* "renkenlaw.com", true */ 'r', 'e', 'n', 'k', 'e', 'n', 'l', 'a', 'w', '.', 'c', 'o', 'm', '\0',
   /* "renkhosting.com", true */ 'r', 'e', 'n', 'k', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0',
   /* "rennfire.org", true */ 'r', 'e', 'n', 'n', 'f', 'i', 'r', 'e', '.', 'o', 'r', 'g', '\0',
   /* "renrenche.com", false */ 'r', 'e', 'n', 'r', 'e', 'n', 'c', 'h', 'e', '.', 'c', 'o', 'm', '\0',
   /* "rens.nu", true */ 'r', 'e', 'n', 's', '.', 'n', 'u', '\0',
   /* "rent-a-coder.de", true */ 'r', 'e', 'n', 't', '-', 'a', '-', 'c', 'o', 'd', 'e', 'r', '.', 'd', 'e', '\0',
   /* "rentasweb.gob.ar", true */ 'r', 'e', 'n', 't', 'a', 's', 'w', 'e', 'b', '.', 'g', 'o', 'b', '.', 'a', 'r', '\0',
-  /* "rentbrowser.com", true */ 'r', 'e', 'n', 't', 'b', 'r', 'o', 'w', 's', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "rentex.com", true */ 'r', 'e', 'n', 't', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "rentinsingapore.com.sg", true */ 'r', 'e', 'n', 't', 'i', 'n', 's', 'i', 'n', 'g', 'a', 'p', 'o', 'r', 'e', '.', 'c', 'o', 'm', '.', 's', 'g', '\0',
   /* "renuo.ch", true */ 'r', 'e', 'n', 'u', 'o', '.', 'c', 'h', '\0',
   /* "reox.at", false */ 'r', 'e', 'o', 'x', '.', 'a', 't', '\0',
   /* "repair.by", true */ 'r', 'e', 'p', 'a', 'i', 'r', '.', 'b', 'y', '\0',
   /* "repaper.org", true */ 'r', 'e', 'p', 'a', 'p', 'e', 'r', '.', 'o', 'r', 'g', '\0',
   /* "repaxan.com", true */ 'r', 'e', 'p', 'a', 'x', 'a', 'n', '.', 'c', 'o', 'm', '\0',
   /* "replicagunsswords.com", false */ 'r', 'e', 'p', 'l', 'i', 'c', 'a', 'g', 'u', 'n', 's', 's', 'w', 'o', 'r', 'd', 's', '.', 'c', 'o', 'm', '\0',
@@ -16578,16 +16571,17 @@ static const char kSTSHostTable[] = {
   /* "rigartmichael.be", true */ 'r', 'i', 'g', 'a', 'r', 't', 'm', 'i', 'c', 'h', 'a', 'e', 'l', '.', 'b', 'e', '\0',
   /* "righettod.eu", true */ 'r', 'i', 'g', 'h', 'e', 't', 't', 'o', 'd', '.', 'e', 'u', '\0',
   /* "righini.ch", true */ 'r', 'i', 'g', 'h', 'i', 'n', 'i', '.', 'c', 'h', '\0',
   /* "right-to-love.name", true */ 'r', 'i', 'g', 'h', 't', '-', 't', 'o', '-', 'l', 'o', 'v', 'e', '.', 'n', 'a', 'm', 'e', '\0',
   /* "rightbrain.training", true */ 'r', 'i', 'g', 'h', 't', 'b', 'r', 'a', 'i', 'n', '.', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '\0',
   /* "rightcapital.com", true */ 'r', 'i', 'g', 'h', 't', 'c', 'a', 'p', 'i', 't', 'a', 'l', '.', 'c', 'o', 'm', '\0',
   /* "rightstuff.link", true */ 'r', 'i', 'g', 'h', 't', 's', 't', 'u', 'f', 'f', '.', 'l', 'i', 'n', 'k', '\0',
   /* "righttobuy.gov.uk", true */ 'r', 'i', 'g', 'h', 't', 't', 'o', 'b', 'u', 'y', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0',
+  /* "rigolitch.fr", true */ 'r', 'i', 'g', 'o', 'l', 'i', 't', 'c', 'h', '.', 'f', 'r', '\0',
   /* "riiconnect24.net", true */ 'r', 'i', 'i', 'c', 'o', 'n', 'n', 'e', 'c', 't', '2', '4', '.', 'n', 'e', 't', '\0',
   /* "rijk-catering.nl", false */ 'r', 'i', 'j', 'k', '-', 'c', 'a', 't', 'e', 'r', 'i', 'n', 'g', '.', 'n', 'l', '\0',
   /* "rijnmondeg.nl", true */ 'r', 'i', 'j', 'n', 'm', 'o', 'n', 'd', 'e', 'g', '.', 'n', 'l', '\0',
   /* "rijschoolgevonden.nl", false */ 'r', 'i', 'j', 's', 'c', 'h', 'o', 'o', 'l', 'g', 'e', 'v', 'o', 'n', 'd', 'e', 'n', '.', 'n', 'l', '\0',
   /* "rile5.com", true */ 'r', 'i', 'l', 'e', '5', '.', 'c', 'o', 'm', '\0',
   /* "rileyevans.co.uk", true */ 'r', 'i', 'l', 'e', 'y', 'e', 'v', 'a', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "rimcountrymuseum.org", true */ 'r', 'i', 'm', 'c', 'o', 'u', 'n', 't', 'r', 'y', 'm', 'u', 's', 'e', 'u', 'm', '.', 'o', 'r', 'g', '\0',
   /* "rimo.site", true */ 'r', 'i', 'm', 'o', '.', 's', 'i', 't', 'e', '\0',
@@ -16665,17 +16659,16 @@ static const char kSTSHostTable[] = {
   /* "robtex.com", true */ 'r', 'o', 'b', 't', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "robu.in", true */ 'r', 'o', 'b', 'u', '.', 'i', 'n', '\0',
   /* "robud.info", true */ 'r', 'o', 'b', 'u', 'd', '.', 'i', 'n', 'f', 'o', '\0',
   /* "robust.ga", true */ 'r', 'o', 'b', 'u', 's', 't', '.', 'g', 'a', '\0',
   /* "rockbankland.com.au", true */ 'r', 'o', 'c', 'k', 'b', 'a', 'n', 'k', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0',
   /* "rockcanyonbank.com", true */ 'r', 'o', 'c', 'k', 'c', 'a', 'n', 'y', 'o', 'n', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '\0',
   /* "rocketnet.ml", true */ 'r', 'o', 'c', 'k', 'e', 't', 'n', 'e', 't', '.', 'm', 'l', '\0',
   /* "rocketr.net", true */ 'r', 'o', 'c', 'k', 'e', 't', 'r', '.', 'n', 'e', 't', '\0',
-  /* "rockeyscrivo.com", true */ 'r', 'o', 'c', 'k', 'e', 'y', 's', 'c', 'r', 'i', 'v', 'o', '.', 'c', 'o', 'm', '\0',
   /* "rockfax.com", true */ 'r', 'o', 'c', 'k', 'f', 'a', 'x', '.', 'c', 'o', 'm', '\0',
   /* "rockpesado.com.br", true */ 'r', 'o', 'c', 'k', 'p', 'e', 's', 'a', 'd', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "rocssti.net", true */ 'r', 'o', 'c', 's', 's', 't', 'i', '.', 'n', 'e', 't', '\0',
   /* "rodehutskors.net", true */ 'r', 'o', 'd', 'e', 'h', 'u', 't', 's', 'k', 'o', 'r', 's', '.', 'n', 'e', 't', '\0',
   /* "rodevlaggen.nl", true */ 'r', 'o', 'd', 'e', 'v', 'l', 'a', 'g', 'g', 'e', 'n', '.', 'n', 'l', '\0',
   /* "rodichi.net", true */ 'r', 'o', 'd', 'i', 'c', 'h', 'i', '.', 'n', 'e', 't', '\0',
   /* "rodneybrooksjr.com", true */ 'r', 'o', 'd', 'n', 'e', 'y', 'b', 'r', 'o', 'o', 'k', 's', 'j', 'r', '.', 'c', 'o', 'm', '\0',
   /* "rodolfo.gs", true */ 'r', 'o', 'd', 'o', 'l', 'f', 'o', '.', 'g', 's', '\0',
@@ -16825,16 +16818,17 @@ static const char kSTSHostTable[] = {
   /* "rte2fm.ie", true */ 'r', 't', 'e', '2', 'f', 'm', '.', 'i', 'e', '\0',
   /* "rteaertel.ie", true */ 'r', 't', 'e', 'a', 'e', 'r', 't', 'e', 'l', '.', 'i', 'e', '\0',
   /* "rtechservices.io", true */ 'r', 't', 'e', 'c', 'h', 's', 'e', 'r', 'v', 'i', 'c', 'e', 's', '.', 'i', 'o', '\0',
   /* "rteinternational.ie", true */ 'r', 't', 'e', 'i', 'n', 't', 'e', 'r', 'n', 'a', 't', 'i', 'o', 'n', 'a', 'l', '.', 'i', 'e', '\0',
   /* "rtejr.ie", true */ 'r', 't', 'e', 'j', 'r', '.', 'i', 'e', '\0',
   /* "rtek.se", true */ 'r', 't', 'e', 'k', '.', 's', 'e', '\0',
   /* "rteone.ie", true */ 'r', 't', 'e', 'o', 'n', 'e', '.', 'i', 'e', '\0',
   /* "rtfpessoa.xyz", true */ 'r', 't', 'f', 'p', 'e', 's', 's', 'o', 'a', '.', 'x', 'y', 'z', '\0',
+  /* "rtho.me", true */ 'r', 't', 'h', 'o', '.', 'm', 'e', '\0',
   /* "ru-sprachstudio.ch", true */ 'r', 'u', '-', 's', 'p', 'r', 'a', 'c', 'h', 's', 't', 'u', 'd', 'i', 'o', '.', 'c', 'h', '\0',
   /* "ru.search.yahoo.com", false */ 'r', 'u', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0',
   /* "ruanmi.de", true */ 'r', 'u', 'a', 'n', 'm', 'i', '.', 'd', 'e', '\0',
   /* "rubbermaidoutlet.com", true */ 'r', 'u', 'b', 'b', 'e', 'r', 'm', 'a', 'i', 'd', 'o', 'u', 't', 'l', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "ruben.am", true */ 'r', 'u', 'b', 'e', 'n', '.', 'a', 'm', '\0',
   /* "rubendv.be", true */ 'r', 'u', 'b', 'e', 'n', 'd', 'v', '.', 'b', 'e', '\0',
   /* "rublacklist.net", true */ 'r', 'u', 'b', 'l', 'a', 'c', 'k', 'l', 'i', 's', 't', '.', 'n', 'e', 't', '\0',
   /* "rubyist.today", true */ 'r', 'u', 'b', 'y', 'i', 's', 't', '.', 't', 'o', 'd', 'a', 'y', '\0',
@@ -16851,16 +16845,17 @@ static const char kSTSHostTable[] = {
   /* "ruffbeatz.com", true */ 'r', 'u', 'f', 'f', 'b', 'e', 'a', 't', 'z', '.', 'c', 'o', 'm', '\0',
   /* "rugby.video", true */ 'r', 'u', 'g', 'b', 'y', '.', 'v', 'i', 'd', 'e', 'o', '\0',
   /* "rugk.dedyn.io", true */ 'r', 'u', 'g', 'k', '.', 'd', 'e', 'd', 'y', 'n', '.', 'i', 'o', '\0',
   /* "rugs.ca", true */ 'r', 'u', 'g', 's', '.', 'c', 'a', '\0',
   /* "rugstorene.co.uk", true */ 'r', 'u', 'g', 's', 't', 'o', 'r', 'e', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "ruh-veit.de", true */ 'r', 'u', 'h', '-', 'v', 'e', 'i', 't', '.', 'd', 'e', '\0',
   /* "ruhrmobil-e.de", true */ 'r', 'u', 'h', 'r', 'm', 'o', 'b', 'i', 'l', '-', 'e', '.', 'd', 'e', '\0',
   /* "ruhrnalist.de", true */ 'r', 'u', 'h', 'r', 'n', 'a', 'l', 'i', 's', 't', '.', 'd', 'e', '\0',
+  /* "ruht.ro", true */ 'r', 'u', 'h', 't', '.', 'r', 'o', '\0',
   /* "ruig.jp", true */ 'r', 'u', 'i', 'g', '.', 'j', 'p', '\0',
   /* "ruja.dk", true */ 'r', 'u', 'j', 'a', '.', 'd', 'k', '\0',
   /* "ruk.ca", true */ 'r', 'u', 'k', '.', 'c', 'a', '\0',
   /* "rullzer.com", true */ 'r', 'u', 'l', 'l', 'z', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "rulu.co", true */ 'r', 'u', 'l', 'u', '.', 'c', 'o', '\0',
   /* "rulu.tv", true */ 'r', 'u', 'l', 'u', '.', 't', 'v', '\0',
   /* "rumtaste.com", true */ 'r', 'u', 'm', 't', 'a', 's', 't', 'e', '.', 'c', 'o', 'm', '\0',
   /* "rumtaste.de", true */ 'r', 'u', 'm', 't', 'a', 's', 't', 'e', '.', 'd', 'e', '\0',
@@ -17181,16 +17176,17 @@ static const char kSTSHostTable[] = {
   /* "scheidtweiler.de", true */ 's', 'c', 'h', 'e', 'i', 'd', 't', 'w', 'e', 'i', 'l', 'e', 'r', '.', 'd', 'e', '\0',
   /* "scheinlichter.de", true */ 's', 'c', 'h', 'e', 'i', 'n', 'l', 'i', 'c', 'h', 't', 'e', 'r', '.', 'd', 'e', '\0',
   /* "schelberts.de", true */ 's', 'c', 'h', 'e', 'l', 'b', 'e', 'r', 't', 's', '.', 'd', 'e', '\0',
   /* "schenkes.de", true */ 's', 'c', 'h', 'e', 'n', 'k', 'e', 's', '.', 'd', 'e', '\0',
   /* "scherfke.de", true */ 's', 'c', 'h', 'e', 'r', 'f', 'k', 'e', '.', 'd', 'e', '\0',
   /* "schermreparatierotterdam.nl", true */ 's', 'c', 'h', 'e', 'r', 'm', 'r', 'e', 'p', 'a', 'r', 'a', 't', 'i', 'e', 'r', 'o', 't', 't', 'e', 'r', 'd', 'a', 'm', '.', 'n', 'l', '\0',
   /* "schier.info", true */ 's', 'c', 'h', 'i', 'e', 'r', '.', 'i', 'n', 'f', 'o', '\0',
   /* "schildbach.de", true */ 's', 'c', 'h', 'i', 'l', 'd', 'b', 'a', 'c', 'h', '.', 'd', 'e', '\0',
+  /* "schippers-it.nl", true */ 's', 'c', 'h', 'i', 'p', 'p', 'e', 'r', 's', '-', 'i', 't', '.', 'n', 'l', '\0',
   /* "schizoids.net", true */ 's', 'c', 'h', 'i', 'z', 'o', 'i', 'd', 's', '.', 'n', 'e', 't', '\0',
   /* "schlabbi.com", false */ 's', 'c', 'h', 'l', 'a', 'b', 'b', 'i', '.', 'c', 'o', 'm', '\0',
   /* "schlachter.ca", true */ 's', 'c', 'h', 'l', 'a', 'c', 'h', 't', 'e', 'r', '.', 'c', 'a', '\0',
   /* "schlagenhauf.info", true */ 's', 'c', 'h', 'l', 'a', 'g', 'e', 'n', 'h', 'a', 'u', 'f', '.', 'i', 'n', 'f', 'o', '\0',
   /* "schlagma.de", true */ 's', 'c', 'h', 'l', 'a', 'g', 'm', 'a', '.', 'd', 'e', '\0',
   /* "schlarp.com", true */ 's', 'c', 'h', 'l', 'a', 'r', 'p', '.', 'c', 'o', 'm', '\0',
   /* "schlechtewitze.com", true */ 's', 'c', 'h', 'l', 'e', 'c', 'h', 't', 'e', 'w', 'i', 't', 'z', 'e', '.', 'c', 'o', 'm', '\0',
   /* "schlossereieder.at", true */ 's', 'c', 'h', 'l', 'o', 's', 's', 'e', 'r', 'e', 'i', 'e', 'd', 'e', 'r', '.', 'a', 't', '\0',
@@ -17258,24 +17254,22 @@ static const char kSTSHostTable[] = {
   /* "schwetz.net", true */ 's', 'c', 'h', 'w', 'e', 't', 'z', '.', 'n', 'e', 't', '\0',
   /* "schwinabart.com", true */ 's', 'c', 'h', 'w', 'i', 'n', 'a', 'b', 'a', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "schwinger.me", true */ 's', 'c', 'h', 'w', 'i', 'n', 'g', 'e', 'r', '.', 'm', 'e', '\0',
   /* "schwuppengrillen.de", true */ 's', 'c', 'h', 'w', 'u', 'p', 'p', 'e', 'n', 'g', 'r', 'i', 'l', 'l', 'e', 'n', '.', 'd', 'e', '\0',
   /* "science-questions.org", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', '-', 'q', 'u', 'e', 's', 't', 'i', 'o', 'n', 's', '.', 'o', 'r', 'g', '\0',
   /* "science-texts.de", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', '-', 't', 'e', 'x', 't', 's', '.', 'd', 'e', '\0',
   /* "science360.gov", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', '3', '6', '0', '.', 'g', 'o', 'v', '\0',
   /* "sciencebase.gov", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', 'b', 'a', 's', 'e', '.', 'g', 'o', 'v', '\0',
-  /* "sciencemonster.co.uk", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', 'm', 'o', 'n', 's', 't', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0',
   /* "sciencesolutions.eu", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'e', 'u', '\0',
   /* "sciencex.com", true */ 's', 'c', 'i', 'e', 'n', 'c', 'e', 'x', '.', 'c', 'o', 'm', '\0',
   /* "scintilla.nl", true */ 's', 'c', 'i', 'n', 't', 'i', 'l', 'l', 'a', '.', 'n', 'l', '\0',
   /* "scintillating.stream", true */ 's', 'c', 'i', 'n', 't', 'i', 'l', 'l', 'a', 't', 'i', 'n', 'g', '.', 's', 't', 'r', 'e', 'a', 'm', '\0',
   /* "scionasset.com", true */ 's', 'c', 'i', 'o', 'n', 'a', 's', 's', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "scitopia.me", true */ 's', 'c', 'i', 't', 'o', 'p', 'i', 'a', '.', 'm', 'e', '\0',
-  /* "sclgroup.cc", true */ 's', 'c', 'l', 'g', 'r', 'o', 'u', 'p', '.', 'c', 'c', '\0',
   /* "scoolcode.com", true */ 's', 'c', 'o', 'o', 'l', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0',
   /* "scooterservis.com", true */ 's', 'c', 'o', 'o', 't', 'e', 'r', 's', 'e', 'r', 'v', 'i', 's', '.', 'c', 'o', 'm', '\0',
   /* "scootfleet.com", true */ 's', 'c', 'o', 'o', 't', 'f', 'l', 'e', 'e', 't', '.', 'c', 'o', 'm', '\0',
   /* "score-savers.com", true */ 's', 'c', 'o', 'r', 'e', '-', 's', 'a', 'v', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0',
   /* "scores4schools.com", true */ 's', 'c', 'o', 'r', 'e', 's', '4', 's', 'c', 'h', 'o', 'o', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "scorocode.ru", true */ 's', 'c', 'o', 'r', 'o', 'c', 'o', 'd', 'e', '.', 'r', 'u', '\0',
   /* "scottainslie.me.uk", true */ 's', 'c', 'o', 't', 't', 'a', 'i', 'n', 's', 'l', 'i', 'e', '.', 'm', 'e', '.', 'u', 'k', '\0',
   /* "scottgruber.me", true */ 's', 'c', 'o', 't', 't', 'g', 'r', 'u', 'b', 'e', 'r', '.', 'm', 'e', '\0',
@@ -17557,16 +17551,17 @@ static const char kSTSHostTable[] = {
   /* "servethecity-karlsruhe.de", false */ 's', 'e', 'r', 'v', 'e', 't', 'h', 'e', 'c', 'i', 't', 'y', '-', 'k', 'a', 'r', 'l', 's', 'r', 'u', 'h', 'e', '.', 'd', 'e', '\0',
   /* "servgate.jp", true */ 's', 'e', 'r', 'v', 'g', 'a', 't', 'e', '.', 'j', 'p', '\0',
   /* "service.gov.uk", true */ 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0',
   /* "serviettenhaus.de", true */ 's', 'e', 'r', 'v', 'i', 'e', 't', 't', 'e', 'n', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0',
   /* "servious.org", true */ 's', 'e', 'r', 'v', 'i', 'o', 'u', 's', '.', 'o', 'r', 'g', '\0',
   /* "servu.de", true */ 's', 'e', 'r', 'v', 'u', '.', 'd', 'e', '\0',
   /* "seryovpn.com", true */ 's', 'e', 'r', 'y', 'o', 'v', 'p', 'n', '.', 'c', 'o', 'm', '\0',
   /* "seryox.com", true */ 's', 'e', 'r', 'y', 'o', 'x', '.', 'c', 'o', 'm', '\0',
+  /* "sesha.co.za", true */ 's', 'e', 's', 'h', 'a', '.', 'c', 'o', '.', 'z', 'a', '\0',
   /* "sessionslogning.dk", true */ 's', 'e', 's', 's', 'i', 'o', 'n', 's', 'l', 'o', 'g', 'n', 'i', 'n', 'g', '.', 'd', 'k', '\0',
   /* "sesslerimmo.ch", true */ 's', 'e', 's', 's', 'l', 'e', 'r', 'i', 'm', 'm', 'o', '.', 'c', 'h', '\0',
   /* "setfix.de", true */ 's', 'e', 't', 'f', 'i', 'x', '.', 'd', 'e', '\0',
   /* "seti-germany.de", true */ 's', 'e', 't', 'i', '-', 'g', 'e', 'r', 'm', 'a', 'n', 'y', '.', 'd', 'e', '\0',
   /* "settberg.de", true */ 's', 'e', 't', 't', 'b', 'e', 'r', 'g', '.', 'd', 'e', '\0',
   /* "setterirlandes.com.br", true */ 's', 'e', 't', 't', 'e', 'r', 'i', 'r', 'l', 'a', 'n', 'd', 'e', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0',
   /* "settleapp.co", true */ 's', 'e', 't', 't', 'l', 'e', 'a', 'p', 'p', '.', 'c', 'o', '\0',
   /* "setuid0.kr", false */ 's', 'e', 't', 'u', 'i', 'd', '0', '.', 'k', 'r', '\0',
@@ -17655,16 +17650,17 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "sharu.me", true */ 's', 'h', 'a', 'r', 'u', '.', 'm', 'e', '\0',
   /* "sharvey.ca", true */ 's', 'h', 'a', 'r', 'v', 'e', 'y', '.', 'c', 'a', '\0',
   /* "shasso.com", true */ 's', 'h', 'a', 's', 's', 'o', '.', 'c', 'o', 'm', '\0',
   /* "shatorin.com", true */ 's', 'h', 'a', 't', 'o', 'r', 'i', 'n', '.', 'c', 'o', 'm', '\0',
   /* "shaun.net", true */ 's', 'h', 'a', 'u', 'n', '.', 'n', 'e', 't', '\0',
   /* "shaundanielz.com", true */ 's', 'h', 'a', 'u', 'n', 'd', 'a', 'n', 'i', 'e', 'l', 'z', '.', 'c', 'o', 'm', '\0',
+  /* "shav.it", true */ 's', 'h', 'a', 'v', '.', 'i', 't', '\0',
   /* "shavingks.com", true */ 's', 'h', 'a', 'v', 'i', 'n', 'g', 'k', 's', '.', 'c', 'o', 'm', '\0',
   /* "shawcentral.ca", false */ 's', 'h', 'a', 'w', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'c', 'a', '\0',
   /* "shawnh.net", true */ 's', 'h', 'a', 'w', 'n', 'h', '.', 'n', 'e', 't', '\0',
   /* "shazbots.org", true */ 's', 'h', 'a', 'z', 'b', 'o', 't', 's', '.', 'o', 'r', 'g', '\0',
   /* "shazzlemd.com", true */ 's', 'h', 'a', 'z', 'z', 'l', 'e', 'm', 'd', '.', 'c', 'o', 'm', '\0',
   /* "shazzlepro.com", true */ 's', 'h', 'a', 'z', 'z', 'l', 'e', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0',
   /* "sheaf.site", true */ 's', 'h', 'e', 'a', 'f', '.', 's', 'i', 't', 'e', '\0',
   /* "sheehyinfinitioftysonsparts.com", true */ 's', 'h', 'e', 'e', 'h', 'y', 'i', 'n', 'f', 'i', 'n', 'i', 't', 'i', 'o', 'f', 't', 'y', 's', 'o', 'n', 's', 'p', 'a', 'r', 't', 's', '.', 'c', 'o', 'm', '\0',
@@ -17799,16 +17795,17 @@ static const char kSTSHostTable[] = {
   /* "signslabelstapesandmore.com", false */ 's', 'i', 'g', 'n', 's', 'l', 'a', 'b', 'e', 'l', 's', 't', 'a', 'p', 'e', 's', 'a', 'n', 'd', 'm', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0',
   /* "signtul.com", false */ 's', 'i', 'g', 'n', 't', 'u', 'l', '.', 'c', 'o', 'm', '\0',
   /* "sigsegv.run", true */ 's', 'i', 'g', 's', 'e', 'g', 'v', '.', 'r', 'u', 'n', '\0',
   /* "sigterm.no", true */ 's', 'i', 'g', 't', 'e', 'r', 'm', '.', 'n', 'o', '\0',
   /* "sigterm.sh", true */ 's', 'i', 'g', 't', 'e', 'r', 'm', '.', 's', 'h', '\0',
   /* "siirtutkusu.com", true */ 's', 'i', 'i', 'r', 't', 'u', 't', 'k', 'u', 's', 'u', '.', 'c', 'o', 'm', '\0',
   /* "sijmenschoon.nl", true */ 's', 'i', 'j', 'm', 'e', 'n', 's', 'c', 'h', 'o', 'o', 'n', '.', 'n', 'l', '\0',
   /* "sikatehtaat.fi", true */ 's', 'i', 'k', 'a', 't', 'e', 'h', 't', 'a', 'a', 't', '.', 'f', 'i', '\0',
+  /* "sikayetvar.com", true */ 's', 'i', 'k', 'a', 'y', 'e', 't', 'v', 'a', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sikevux.se", true */ 's', 'i', 'k', 'e', 'v', 'u', 'x', '.', 's', 'e', '\0',
   /* "siku-shop.ch", true */ 's', 'i', 'k', 'u', '-', 's', 'h', 'o', 'p', '.', 'c', 'h', '\0',
   /* "silashes.com", true */ 's', 'i', 'l', 'a', 's', 'h', 'e', 's', '.', 'c', 'o', 'm', '\0',
   /* "silent.live", true */ 's', 'i', 'l', 'e', 'n', 't', '.', 'l', 'i', 'v', 'e', '\0',
   /* "silentkernel.fr", true */ 's', 'i', 'l', 'e', 'n', 't', 'k', 'e', 'r', 'n', 'e', 'l', '.', 'f', 'r', '\0',
   /* "silentundo.org", true */ 's', 'i', 'l', 'e', 'n', 't', 'u', 'n', 'd', 'o', '.', 'o', 'r', 'g', '\0',
   /* "siliconchip.me", true */ 's', 'i', 'l', 'i', 'c', 'o', 'n', 'c', 'h', 'i', 'p', '.', 'm', 'e', '\0',
   /* "sillisalaatti.fi", true */ 's', 'i', 'l', 'l', 'i', 's', 'a', 'l', 'a', 'a', 't', 't', 'i', '.', 'f', 'i', '\0',
@@ -18171,17 +18168,16 @@ static const char kSTSHostTable[] = {
   /* "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',
   /* "sniep.net", true */ 's', 'n', 'i', 'e', 'p', '.', 'n', 'e', 't', '\0',
   /* "snight.co", true */ 's', 'n', 'i', 'g', 'h', 't', '.', 'c', 'o', '\0',
   /* "snille.com", true */ 's', 'n', 'i', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0',
-  /* "snippet.host", true */ 's', 'n', 'i', 'p', 'p', 'e', 't', '.', 'h', 'o', 's', 't', '\0',
   /* "snl.no", false */ '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',
   /* "snowalerts.eu", true */ 's', 'n', 'o', 'w', 'a', 'l', 'e', 'r', 't', 's', '.', 'e', 'u', '\0',
   /* "snowalerts.nl", true */ 's', 'n', 'o', 'w', 'a', 'l', 'e', 'r', 't', 's', '.', 'n', 'l', '\0',
@@ -18219,17 +18215,16 @@ static const char kSTSHostTable[] = {
   /* "socioambiental.org", true */ 's', 'o', 'c', 'i', 'o', 'a', 'm', 'b', 'i', 'e', 'n', 't', 'a', 'l', '.', 'o', 'r', 'g', '\0',
   /* "sociobiology.com", true */ 's', 'o', 'c', 'i', 'o', 'b', 'i', 'o', 'l', 'o', 'g', 'y', '.', 'c', 'o', 'm', '\0',
   /* "sociopathy.org", true */ 's', 'o', 'c', 'i', 'o', 'p', 'a', 't', 'h', 'y', '.', 'o', 'r', 'g', '\0',
   /* "socketize.com", true */ 's', 'o', 'c', 'k', 'e', 't', 'i', 'z', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sockeye.io", false */ 's', 'o', 'c', 'k', 'e', 'y', 'e', '.', 'i', 'o', '\0',
   /* "sockscap64.com", true */ 's', 'o', 'c', 'k', 's', 'c', 'a', 'p', '6', '4', '.', 'c', 'o', 'm', '\0',
   /* "sodi.nl", true */ 's', 'o', 'd', 'i', '.', 'n', 'l', '\0',
   /* "sodiao.cc", true */ 's', 'o', 'd', 'i', 'a', 'o', '.', 'c', 'c', '\0',
-  /* "soe-server.com", true */ 's', 'o', 'e', '-', 's', 'e', 'r', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0',
   /* "sofa-rockers.org", true */ 's', 'o', 'f', 'a', '-', 'r', 'o', 'c', 'k', 'e', 'r', 's', '.', 'o', 'r', 'g', '\0',
   /* "sofabedshop.de", true */ 's', 'o', 'f', 'a', 'b', 'e', 'd', 's', 'h', 'o', 'p', '.', 'd', 'e', '\0',
   /* "sofort.com", true */ 's', 'o', 'f', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0',
   /* "sofortueberweisung.de", true */ 's', 'o', 'f', 'o', 'r', 't', 'u', 'e', 'b', 'e', 'r', 'w', 'e', 'i', 's', 'u', 'n', 'g', '.', 'd', 'e', '\0',
   /* "softanka.com", true */ 's', 'o', 'f', 't', 'a', 'n', 'k', 'a', '.', 'c', 'o', 'm', '\0',
   /* "softballsavings.com", true */ 's', 'o', 'f', 't', 'b', 'a', 'l', 'l', 's', 'a', 'v', 'i', 'n', 'g', 's', '.', 'c', 'o', 'm', '\0',
   /* "softprayog.in", true */ 's', 'o', 'f', 't', 'p', 'r', 'a', 'y', 'o', 'g', '.', 'i', 'n', '\0',
   /* "softwarebetrieb.de", true */ 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', 'b', 'e', 't', 'r', 'i', 'e', 'b', '.', 'd', 'e', '\0',
@@ -18290,17 +18285,16 @@ static const char kSTSHostTable[] = {
   /* "sonarqube.com", false */ 's', 'o', 'n', 'a', 'r', 'q', 'u', 'b', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sondergaard.de", true */ 's', 'o', 'n', 'd', 'e', 'r', 'g', 'a', 'a', 'r', 'd', '.', 'd', 'e', '\0',
   /* "sonerezh.bzh", true */ 's', 'o', 'n', 'e', 'r', 'e', 'z', 'h', '.', 'b', 'z', 'h', '\0',
   /* "songsthatsavedyourlife.com", true */ 's', 'o', 'n', 'g', 's', 't', 'h', 'a', 't', 's', 'a', 'v', 'e', 'd', 'y', 'o', 'u', 'r', 'l', 'i', 'f', 'e', '.', 'c', 'o', 'm', '\0',
   /* "sonic.sk", false */ 's', 'o', 'n', 'i', 'c', '.', 's', 'k', '\0',
   /* "sonja-daniels.com", true */ 's', 'o', 'n', 'j', 'a', '-', 'd', 'a', 'n', 'i', 'e', 'l', 's', '.', 'c', 'o', 'm', '\0',
   /* "sonja-kowa.de", true */ 's', 'o', 'n', 'j', 'a', '-', 'k', 'o', 'w', 'a', '.', 'd', 'e', '\0',
   /* "sonyunlock.nu", true */ 's', 'o', 'n', 'y', 'u', 'n', 'l', 'o', 'c', 'k', '.', 'n', 'u', '\0',
-  /* "soph.us", true */ 's', 'o', 'p', 'h', '.', 'u', 's', '\0',
   /* "sopheos.com", false */ 's', 'o', 'p', 'h', 'e', 'o', 's', '.', 'c', 'o', 'm', '\0',
   /* "sopher.io", true */ 's', 'o', 'p', 'h', 'e', 'r', '.', 'i', 'o', '\0',
   /* "sophiakligys.com", true */ 's', 'o', 'p', 'h', 'i', 'a', 'k', 'l', 'i', 'g', 'y', 's', '.', 'c', 'o', 'm', '\0',
   /* "soply.com", true */ 's', 'o', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0',
   /* "soporte.cc", true */ 's', 'o', 'p', 'o', 'r', 't', 'e', '.', 'c', 'c', '\0',
   /* "sor.so", true */ 's', 'o', 'r', '.', 's', 'o', '\0',
   /* "sorcix.com", true */ 's', 'o', 'r', 'c', 'i', 'x', '.', 'c', 'o', 'm', '\0',
   /* "sorensen-online.com", true */ 's', 'o', 'r', 'e', 'n', 's', 'e', 'n', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
@@ -18435,17 +18429,16 @@ static const char kSTSHostTable[] = {
   /* "spisbilligt.dk", true */ 's', 'p', 'i', 's', 'b', 'i', 'l', 'l', 'i', 'g', 't', '.', 'd', 'k', '\0',
   /* "spitefultowel.com", true */ 's', 'p', 'i', 't', 'e', 'f', 'u', 'l', 't', 'o', 'w', 'e', 'l', '.', 'c', 'o', 'm', '\0',
   /* "spitfireuav.com", true */ 's', 'p', 'i', 't', 'f', 'i', 'r', 'e', 'u', 'a', 'v', '.', 'c', 'o', 'm', '\0',
   /* "splikity.com", true */ 's', 'p', 'l', 'i', 'k', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0',
   /* "split.is", true */ 's', 'p', 'l', 'i', 't', '.', 'i', 's', '\0',
   /* "splitdna.com", true */ 's', 'p', 'l', 'i', 't', 'd', 'n', 'a', '.', 'c', 'o', 'm', '\0',
   /* "splitreflection.com", true */ 's', 'p', 'l', 'i', 't', 'r', 'e', 'f', 'l', 'e', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0',
   /* "splunk.net", true */ 's', 'p', 'l', 'u', 'n', 'k', '.', 'n', 'e', 't', '\0',
-  /* "spodelime.com", true */ 's', 'p', 'o', 'd', 'e', 'l', 'i', 'm', 'e', '.', 'c', 'o', 'm', '\0',
   /* "spoketwist.com", true */ 's', 'p', 'o', 'k', 'e', 't', 'w', 'i', 's', 't', '.', 'c', 'o', 'm', '\0',
   /* "spokonline.com", true */ 's', 'p', 'o', 'k', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0',
   /* "spom.net", true */ 's', 'p', 'o', 'm', '.', 'n', 'e', 't', '\0',
   /* "sponc.de", true */ 's', 'p', 'o', 'n', 'c', '.', 'd', 'e', '\0',
   /* "spongepowered.org", true */ 's', 'p', 'o', 'n', 'g', 'e', 'p', 'o', 'w', 'e', 'r', 'e', 'd', '.', 'o', 'r', 'g', '\0',
   /* "sponsor.network", true */ 's', 'p', 'o', 'n', 's', 'o', 'r', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0',
   /* "sponsorowani.pl", true */ 's', 'p', 'o', 'n', 's', 'o', 'r', 'o', 'w', 'a', 'n', 'i', '.', 'p', 'l', '\0',
   /* "spoofhaus.com", true */ 's', 'p', 'o', 'o', 'f', 'h', 'a', 'u', 's', '.', 'c', 'o', 'm', '\0',
@@ -18579,17 +18572