merge mozilla-central to mozilla-inbound on a CLOSED TREE. r=merge a=merge on a CLOSED TREE
authorSebastian Hengst <archaeopteryx@coole-files.de>
Sun, 08 Oct 2017 21:01:29 +0200
changeset 427652 3601e6be6dee11df543931e60bec3cab2417845c
parent 427650 f0eb4f3117c3ea6a3fd1ee65757686321d8e4baf (current diff)
parent 427651 5eba13f5b3a6ad80decdd8c7b30bff5fa477844f (diff)
child 427653 53adf7a30387df96644ee58b87f665e6a7dc12f2
push id97
push userfmarier@mozilla.com
push dateSat, 14 Oct 2017 01:12:59 +0000
reviewersmerge, merge
milestone58.0a1
merge mozilla-central to mozilla-inbound on a CLOSED TREE. r=merge a=merge on a CLOSED TREE
browser/base/content/abouthome/mozilla.svg
devtools/client/jsonview/test/browser_jsonview_utf8.js
dom/base/test/iframe_webSocket_sandbox.html
dom/base/test/test_webSocket_sandbox.html
toolkit/components/places/tests/unifiedcomplete/test_autocomplete_on_value_removed_479089.js
toolkit/themes/osx/global/icons/autocomplete-dropmarker.png
--- a/browser/base/content/abouthome/aboutHome.css
+++ b/browser/base/content/abouthome/aboutHome.css
@@ -2,18 +2,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 %endif
 
 html {
   font: message-box;
   font-size: 100%;
-  background-color: hsl(0,0%,95%);
-  color: #000;
+  background-color: #F9F9FA;
+  color: #0C0C0D;
   height: 100%;
 }
 
 body {
   margin: 0;
   display: -moz-box;
   -moz-box-orient: vertical;
   width: 100%;
@@ -32,137 +32,101 @@ a {
 }
 
 .spacer {
   -moz-box-flex: 1;
 }
 
 #topSection {
   text-align: center;
+  margin-top: -90px;
+  position: relative;
 }
 
 #brandLogo {
   height: 192px;
   width: 192px;
-  margin: 22px auto 31px;
+  margin: 0 auto 20px;
   background-image: url("chrome://branding/content/about-logo.png");
   background-size: 192px auto;
   background-position: center center;
   background-repeat: no-repeat;
 }
 
-#searchIconAndTextContainer,
+#searchWrapper,
 #snippets {
   width: 470px;
 }
 
-#searchIconAndTextContainer {
-  display: -moz-box;
-  height: 36px;
+#searchWrapper {
+  cursor: default;
+  display: flex;
   position: relative;
-}
-
-#searchIcon {
-  border: 1px transparent;
-  padding: 0;
-  margin: 0;
-  width: 36px;
+  margin: 0 auto;
   height: 36px;
-  background: url("chrome://browser/skin/search-indicator-magnifying-glass.svg") center center no-repeat;
-  position: absolute;
 }
 
 #searchText {
-  margin-left: 0;
-  -moz-box-flex: 1;
-  padding-top: 6px;
-  padding-bottom: 6px;
-  padding-inline-start: 34px;
-  padding-inline-end: 8px;
-  background: hsla(0,0%,100%,.9) padding-box;
-  border: 1px solid;
-  border-radius: 2px 0 0 2px;
-  border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2);
-  box-shadow: 0 1px 0 hsla(210,65%,9%,.02) inset,
-              0 0 2px hsla(210,65%,9%,.1) inset,
-              0 1px 0 hsla(0,0%,100%,.2);
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  border-radius: 3px;
+  box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1);
   color: inherit;
-  unicode-bidi: plaintext;
+  padding: 0;
+  padding-inline-end: 36px;
+  padding-inline-start: 35px;
+  width: 100%;
+  font-size: 15px;
 }
 
-#searchText:dir(rtl) {
-  border-radius: 0 2px 2px 0;
-}
-
-#searchText[aria-expanded="true"] {
-  border-radius: 2px 0 0 0;
+#searchText:active,
+#searchText:focus {
+  border-color: #0A84FF;
+  box-shadow: 0 0 0 2px #0A84FF;
 }
 
-#searchText[aria-expanded="true"]:dir(rtl) {
-  border-radius: 0 2px 0 0;
-}
-
-#searchText[keepfocus],
-#searchText:focus,
-#searchText[autofocus] {
-  border-color: hsla(206,100%,60%,.6) hsla(206,76%,52%,.6) hsla(204,100%,40%,.6);
+#searchIcon {
+  background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
+  fill: rgba(12, 12, 13, 0.4);
+  -moz-context-properties: fill;
+  position: absolute;
+  offset-inline-start: 0;
+  height: 35px;
+  width: 35px;
 }
 
 #searchSubmit {
-  margin-inline-start: -1px;
-  color: transparent;
-  background: url("chrome://browser/skin/search-arrow-go.svg") center center no-repeat, linear-gradient(hsla(0,0%,100%,.8), hsla(0,0%,100%,.1)) padding-box;
+  background: url("chrome://browser/skin/forward.svg") no-repeat center center;
+  border-radius: 0 3px 3px 0;
+  border: 0;
+  width: 36px;
+  fill: rgba(12, 12, 13, 0.4);
   -moz-context-properties: fill;
-  fill: #616366;
-  padding: 0;
-  border: 1px solid;
-  border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2) transparent;
-  border-radius: 0 2px 2px 0;
-  box-shadow: 0 0 2px hsla(0,0%,100%,.5) inset,
-              0 1px 0 hsla(0,0%,100%,.2);
+  background-size: 16px 16px;
+  height: 100%;
+  offset-inline-end: 0;
+  position: absolute;
+  color: transparent;
+}
+
+#searchSubmit:focus, #searchSubmit:hover {
+  background-color: rgba(12, 12, 13, 0.1);
   cursor: pointer;
-  transition-property: background-color, border-color, box-shadow;
-  transition-duration: 150ms;
-  width: 50px;
+}
+
+#searchSubmit:active {
+  background-color: rgba(12, 12, 13, 0.15);
 }
 
 #searchSubmit:dir(rtl) {
   transform: scaleX(-1);
 }
 
-#searchText:focus + #searchSubmit,
-#searchText[keepfocus] + #searchSubmit,
-#searchText + #searchSubmit:hover,
-#searchText[autofocus] + #searchSubmit {
-  border-color: #59b5fc #45a3e7 #3294d5;
-}
-
-#searchText:focus + #searchSubmit,
-#searchText[keepfocus] + #searchSubmit,
-#searchText[autofocus] + #searchSubmit {
-  background-image: url("chrome://browser/skin/search-arrow-go.svg"), linear-gradient(#4cb1ff, #1793e5);
-  fill: white;
-  box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset,
-              0 0 0 1px hsla(0,0%,100%,.1) inset,
-              0 1px 0 hsla(210,54%,20%,.03);
-}
-
-#searchText + #searchSubmit:hover {
-  background-image: url("chrome://browser/skin/search-arrow-go.svg"), linear-gradient(#66bdff, #0d9eff);
-  fill: white;
-  box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset,
-              0 0 0 1px hsla(0,0%,100%,.1) inset,
-              0 1px 0 hsla(210,54%,20%,.03),
-              0 0 4px hsla(206,100%,20%,.2);
-}
-
-#searchText + #searchSubmit:hover:active {
-  box-shadow: 0 1px 1px hsla(211,79%,6%,.1) inset,
-              0 0 1px hsla(211,79%,6%,.2) inset;
-  transition-duration: 0ms;
+.contentSearchSuggestionTable {
+  border: 0;
+  transform: translateY(2px);
 }
 
 #defaultSnippet1,
 #defaultSnippet2,
 #rightsSnippet {
   display: block;
   min-height: 38px;
   background: 0 center no-repeat;
@@ -198,29 +162,29 @@ a {
      with Segoe UI on a default Windows 7 setup. The 15/12 multiplier approximately
      converts em from units of font-size to units of line-height. The goal is to
      preset the height of a three-line snippet to avoid visual moving/flickering as
      the snippets load. */
   min-height: calc(15/12 * 3em);
 }
 
 #launcher {
-  display: -moz-box;
+  display: none;
   -moz-box-align: center;
   -moz-box-pack: center;
   width: 100%;
   background-color: hsla(0,0%,0%,.03);
   border-top: 1px solid hsla(0,0%,0%,.03);
   box-shadow: 0 1px 2px hsla(0,0%,0%,.02) inset,
               0 -1px 0 hsla(0,0%,100%,.25);
 }
 
 #launcher:not([session]),
 body[narrow] #launcher[session] {
-  display: block; /* display separator and restore button on separate lines */
+  display: none; /* display separator and restore button on separate lines */
   text-align: center;
   white-space: nowrap; /* prevent navigational buttons from wrapping */
 }
 
 .launchButton {
   display: -moz-box;
   -moz-box-orient: vertical;
   margin: 16px 1px;
@@ -341,38 +305,16 @@ body[narrow] #restorePreviousSession {
 }
 
 body[narrow] #restorePreviousSession::before {
   content: url("chrome://browser/content/abouthome/restore.png");
   height: 32px;
   width: 32px;
 }
 
-#aboutMozilla {
-  display: block;
-  position: relative; /* pin wordmark to edge of document, not of viewport */
-  -moz-box-ordinal-group: 0;
-  opacity: .2;
-  transition: opacity 150ms;
-}
-
-#aboutMozilla:hover {
-  opacity: .6;
-}
-
-#aboutMozilla::before {
-  content: url("chrome://browser/content/abouthome/mozilla.svg");
-  display: block;
-  position: absolute;
-  top: 12px;
-  offset-inline-end: 12px;
-  width: 67px;
-  height: 19px;
-}
-
 /* [HiDPI]
  * At resolutions above 1dppx, prefer downscaling the 2x Retina graphics
  * rather than upscaling the original-size ones (bug 818940).
  */
 @media not all and (max-resolution: 1dppx) {
   #brandLogo {
     background-image: url("chrome://branding/content/about-logo@2x.png");
   }
@@ -432,8 +374,57 @@ body[narrow] #restorePreviousSession::be
     content: url("chrome://browser/content/abouthome/restore@2x.png");
   }
 
   #restorePreviousSession:dir(rtl)::before {
     transform: scale(-0.5, 0.5) translateX(24px);
     transform-origin: top center;
   }
 }
+
+/* Overrides for onboarding
+   These overrides hide the Firefox logo (since about:home has a
+   large logo already) and make the helper icon larger */
+
+#about-home #onboarding-notification-body,
+#about-home #onboarding-notification-tour-title {
+  color: #0C0C0D;
+}
+
+#about-home #onboarding-notification-body {
+  padding-inline-start: 46px;
+}
+
+#about-home #onboarding-notification-tour-message {
+  margin-bottom: 0;
+}
+
+#about-home #onboarding-notification-tour-icon {
+  display: none;
+}
+
+#about-home #onboarding-notification-tour-title::before {
+  display: block;
+  position: absolute;
+  top: 0;
+  offset-inline-start: 0;
+  height: 100%;
+  width: 42px;
+  background-size: 42px;
+  background-position: center;
+  -moz-context-properties: fill;
+  fill: #4A4A4F;
+}
+
+#about-home #onboarding-notification-bar {
+  z-index: 100;
+}
+
+/* Overrides for snippets
+   These changes make it so that snippets do not affect the height of the
+   main element, so that elements don't move around on page load. */
+#snippetContainer {
+  position: absolute;
+  left: 50%;
+  top: 100%;
+  margin-left: -235px;
+  width: 470px;
+}
--- a/browser/base/content/abouthome/aboutHome.js
+++ b/browser/base/content/abouthome/aboutHome.js
@@ -42,17 +42,16 @@ var gObserver = new MutationObserver(fun
     }
   }
 });
 
 window.addEventListener("pageshow", function() {
   // Delay search engine setup, cause browser.js::BrowserOnAboutPageLoad runs
   // later and may use asynchronous getters.
   window.gObserver.observe(document.documentElement, { attributes: true });
-  window.gObserver.observe(document.getElementById("launcher"), { attributes: true });
   fitToWidth();
   setupSearch();
   window.addEventListener("resize", fitToWidth);
 
   // Ask chrome to update snippets.
   var event = new CustomEvent("AboutHomeLoad", {bubbles: true});
   document.dispatchEvent(event);
 });
--- a/browser/base/content/abouthome/aboutHome.xhtml
+++ b/browser/base/content/abouthome/aboutHome.xhtml
@@ -29,22 +29,22 @@
           href="chrome://browser/content/abouthome/aboutHome.css"/>
 
     <script type="text/javascript"
             src="chrome://browser/content/abouthome/aboutHome.js"/>
     <script type="text/javascript"
             src="chrome://browser/content/contentSearchUI.js"/>
   </head>
 
-  <body dir="&locale.dir;">
+  <body id="about-home" dir="&locale.dir;">
     <div class="spacer"/>
     <div id="topSection">
       <div id="brandLogo"></div>
 
-      <div id="searchIconAndTextContainer">
+      <div id="searchWrapper">
         <div id="searchIcon"/>
         <input type="text" name="q" value="" id="searchText" maxlength="256"
                placeholder="&searchInput.placeholder;"
                aria-label="&contentSearchInput.label;" autofocus="autofocus"/>
         <input id="searchSubmit" type="button" onclick="onSearchSubmit(event)"
                title="&contentSearchSubmit.tooltip;"/>
       </div>
 
@@ -68,13 +68,10 @@
 #ifdef XP_WIN
       <button class="launchButton" id="settings">&abouthome.preferencesButtonWin.label;</button>
 #else
       <button class="launchButton" id="settings">&abouthome.preferencesButtonUnix.label;</button>
 #endif
       <div id="restorePreviousSessionSeparator"/>
       <button class="launchButton" id="restorePreviousSession">&historyRestoreLastSession.label;</button>
     </div>
-
-    <a id="aboutMozilla" href="https://www.mozilla.org/about/?utm_source=about-home&amp;utm_medium=Referral"
-       aria-label="&abouthome.aboutMozilla.label;"/>
   </body>
 </html>
deleted file mode 100644
--- a/browser/base/content/abouthome/mozilla.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 38">
-<path d="M54.2,21.8c0,3.2-1.6,5.2-4.1,5.2s-3.9-2.2-3.9-5.1,1.5-4.9,3.9-4.9S54.2,18.4,54.2,21.8Zm61.1,3.5a1.7,1.7,0,0,0,2,1.9c1.7,0,3.5-1.2,3.6-4l-2.4-.2C116.8,23,115.3,23.4,115.3,25.3ZM134,0V38H0V0ZM39.2,26.6H37V19a5.4,5.4,0,0,0-5.7-5.8,5.6,5.6,0,0,0-5.4,3.6,5.4,5.4,0,0,0-5.4-3.6,5.5,5.5,0,0,0-5.1,2.8V13.6h-7v3.6h2.2v9.4H8.4v3.6H18.6V26.6H15.4V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7V26.6H26.2V20.8c0-2.3.9-3.9,3.2-3.9s2.8,1.1,2.8,4v9.4h7Zm19.9-4.7c0-4.6-2.9-8.7-8.9-8.7s-8.9,4-8.9,8.9,3.5,8.4,8.7,8.4S59.1,27.2,59.1,21.9Zm18.7,2.5L74,24l-.8,2.6H67.9l9.2-10.5-.4-2.5H62.1l-.6,5.8,3.4.4.7-2.6h5.2L61.8,27.7l.5,2.5H76.8Zm8.5-.1h-5v6h5Zm0-10.7h-5v6h5ZM94,30.2l7.2-25.4H96.6L89.4,30.2Zm9.7,0,7.2-25.4h-4.7L99,30.2Zm23.8-.4V27.3h-.7c-.8,0-1.1-.3-1.1-1.3V18.9c0-3.8-3-5.6-6.6-5.6a16,16,0,0,0-7.1,1.5l-.6,3.8,3.8.4.5-1.9a5.2,5.2,0,0,1,2.5-.5c2.7,0,2.7,2,2.7,3.7v.6h-2.7c-3.8,0-7.7,1-7.7,5.1s2.7,4.8,5.1,4.8a6,6,0,0,0,5.3-3.3,3.4,3.4,0,0,0,3.6,3.3A6.4,6.4,0,0,0,127.5,29.8Z"/>
-</svg>
--- a/browser/base/content/test/about/browser_aboutHome_input.js
+++ b/browser/base/content/test/about/browser_aboutHome_input.js
@@ -10,16 +10,19 @@ ignoreAllUncaughtExceptions();
 add_task(async function setup() {
   // The following prefs would affect tests so make sure to disable them
   // before any tests start.
   await SpecialPowers.pushPrefEnv({set: [
     ["browser.newtabpage.activity-stream.aboutHome.enabled", false],
   ]});
 });
 
+// The following two tests need to be skipped for the time being, since we're
+// no longer showing the launcher options on about:home. When we remove about:home
+// and all of it's code, we can delete these tests
 add_task(async function() {
   info("Pressing Space while the Addons button is focused should activate it");
 
   // Skip this test on Mac, because Space doesn't activate the button there.
   if (AppConstants.platform == "macosx") {
     return;
   }
 
@@ -32,17 +35,17 @@ add_task(async function() {
       addOnsButton.focus();
     });
     await BrowserTestUtils.synthesizeKey(" ", {}, browser);
 
     await promiseTabLoaded;
     is(browser.currentURI.spec, "about:addons",
       "Should have seen the about:addons tab");
   });
-});
+}).skip();
 
 add_task(async function() {
   info("Sync button should open about:preferences#sync");
 
   await BrowserTestUtils.withNewTab({ gBrowser, url: "about:home" }, async function(browser) {
     let oldOpenPrefs = window.openPreferences;
     let openPrefsPromise = new Promise(resolve => {
       window.openPreferences = function(pane, params) {
@@ -54,17 +57,17 @@ add_task(async function() {
 
     let result = await openPrefsPromise;
     window.openPreferences = oldOpenPrefs;
 
     is(result.pane, "paneSync", "openPreferences should be called with paneSync");
     is(result.params.urlParams.entrypoint, "abouthome",
       "openPreferences should be called with abouthome entrypoint");
   });
-});
+}).skip();
 
 add_task(async function() {
   info("Pressing any key should focus the search box in the page, and send the key to it");
 
   await BrowserTestUtils.withNewTab({ gBrowser, url: "about:home" }, async function(browser) {
     await BrowserTestUtils.synthesizeMouseAtCenter("#brandLogo", {}, browser);
 
     await ContentTask.spawn(browser, null, async function() {
--- a/browser/base/content/test/urlbar/browser.ini
+++ b/browser/base/content/test/urlbar/browser.ini
@@ -108,16 +108,17 @@ subsuite = clipboard
 [browser_urlbar_autoFill_backspaced.js]
 [browser_urlbar_canonize_on_autofill.js]
 [browser_urlbar_blanking.js]
 support-files =
   file_blank_but_not_blank.html
 [browser_urlbar_locationchange_urlbar_edit_dos.js]
 support-files =
   file_urlbar_edit_dos.html
+[browser_urlbar_remove_match.js]
 [browser_urlbar_searchsettings.js]
 [browser_urlbar_search_speculative_connect.js]
 [browser_urlbar_search_speculative_connect_engine.js]
 support-files =
   searchSuggestionEngine2.xml
   searchSuggestionEngine.sjs
 [browser_urlbar_search_speculative_connect_mousedown.js]
 [browser_urlbar_search_no_speculative_connect_with_client_cert.js]
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/urlbar/browser_urlbar_remove_match.js
@@ -0,0 +1,28 @@
+/* eslint-disable mozilla/no-arbitrary-setTimeout */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+add_task(async function test_remove_history() {
+  const TEST_URL = "http://remove.me/from_urlbar/";
+  await PlacesTestUtils.addVisits(TEST_URL);
+
+  registerCleanupFunction(async function() {
+    await PlacesUtils.history.clear();
+  });
+
+  let promiseVisitRemoved = PlacesTestUtils.waitForNotification(
+    "onDeleteURI", uri => uri.spec == TEST_URL, "history");
+  await promiseAutocompleteResultPopup("remove.me/from_urlbar");
+  await BrowserTestUtils.waitForCondition(
+    () => gURLBar.popup.richlistbox.children.length > 1 &&
+          gURLBar.popup.richlistbox.children[1].getAttribute("ac-value") == TEST_URL,
+    "Waiting for the result to appear");
+  EventUtils.synthesizeKey("VK_DOWN", {});
+  Assert.equal(gURLBar.popup.richlistbox.selectedIndex, 1);
+  let options = AppConstants.platform == "macosx" ? { shiftKey: true } : {};
+  EventUtils.synthesizeKey("VK_DELETE", options);
+  await promiseVisitRemoved;
+  await BrowserTestUtils.waitForCondition(
+    () => !gURLBar.popup.richlistbox.children.some(c => !c.collapsed && c.getAttribute("ac-value") == TEST_URL),
+    "Waiting for the result to disappear");
+});
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -22,17 +22,16 @@ browser.jar:
         content/browser/abouthome/downloads.png       (content/abouthome/downloads.png)
         content/browser/abouthome/bookmarks.png       (content/abouthome/bookmarks.png)
         content/browser/abouthome/history.png         (content/abouthome/history.png)
         content/browser/abouthome/addons.png          (content/abouthome/addons.png)
         content/browser/abouthome/sync.png            (content/abouthome/sync.png)
         content/browser/abouthome/settings.png        (content/abouthome/settings.png)
         content/browser/abouthome/restore.png         (content/abouthome/restore.png)
         content/browser/abouthome/restore-large.png   (content/abouthome/restore-large.png)
-        content/browser/abouthome/mozilla.svg         (content/abouthome/mozilla.svg)
         content/browser/abouthome/snippet1@2x.png      (content/abouthome/snippet1@2x.png)
         content/browser/abouthome/snippet2@2x.png      (content/abouthome/snippet2@2x.png)
         content/browser/abouthome/downloads@2x.png     (content/abouthome/downloads@2x.png)
         content/browser/abouthome/bookmarks@2x.png     (content/abouthome/bookmarks@2x.png)
         content/browser/abouthome/history@2x.png       (content/abouthome/history@2x.png)
         content/browser/abouthome/addons@2x.png        (content/abouthome/addons@2x.png)
         content/browser/abouthome/sync@2x.png          (content/abouthome/sync@2x.png)
         content/browser/abouthome/settings@2x.png      (content/abouthome/settings@2x.png)
--- a/browser/themes/osx/browser.css
+++ b/browser/themes/osx/browser.css
@@ -330,16 +330,24 @@
 
 %include ../shared/urlbarSearchSuggestionsNotification.inc.css
 
 /* ----- AUTOCOMPLETE ----- */
 
 %include ../shared/autocomplete.inc.css
 %include ../shared/urlbar-autocomplete.inc.css
 
+/* Give an extra margin top to align the top of the awesomebar with the
+ * bottom of the nav bar, OSX calculates the panel position with an missing
+ * 1px - https://bugzilla.mozilla.org/show_bug.cgi?id=1406353
+ */
+#PopupAutoCompleteRichResult {
+  margin-top: 1px;
+}
+
 #PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] {
   border-top: 1px solid #C7C7C7;
 }
 
 .ac-title {
   font-size: 14px;
 }
 
--- a/browser/themes/shared/places/tree-icons.inc.css
+++ b/browser/themes/shared/places/tree-icons.inc.css
@@ -6,18 +6,19 @@ treechildren::-moz-tree-image(title) {
   list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.svg");
   padding-inline-end: 2px;
   margin: 0 2px;
   width: 16px;
   height: 16px;
 }
 
 treechildren:-moz-tree-image {
-  -moz-context-properties: fill;
+  -moz-context-properties: fill, fill-opacity;
   fill: -moz-FieldText;
+  fill-opacity: 0.7;
 }
 
 treechildren::-moz-tree-image(title, livemarkItem) {
   list-style-image: url("chrome://browser/skin/places/livemark-item.png");
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
 
 treechildren::-moz-tree-image(title, livemarkItem, visited) {
--- a/devtools/client/jsonview/converter-child.js
+++ b/devtools/client/jsonview/converter-child.js
@@ -1,30 +1,36 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
-const {Cc, Ci, Cu} = require("chrome");
+const {Cc, Ci, Cu, CC} = require("chrome");
 const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
 const Services = require("Services");
 
 loader.lazyRequireGetter(this, "NetworkHelper",
                                "devtools/shared/webconsole/network-helper");
 loader.lazyGetter(this, "debug", function () {
   let {AppConstants} = require("resource://gre/modules/AppConstants.jsm");
   return !!(AppConstants.DEBUG || AppConstants.DEBUG_JS_MODULES);
 });
 
 const childProcessMessageManager =
   Cc["@mozilla.org/childprocessmessagemanager;1"]
     .getService(Ci.nsISyncMessageSender);
+const BinaryInput = CC("@mozilla.org/binaryinputstream;1",
+                       "nsIBinaryInputStream", "setInputStream");
+const BufferStream = CC("@mozilla.org/io/arraybuffer-input-stream;1",
+                       "nsIArrayBufferInputStream", "setData");
+const encodingLength = 2;
+const encoder = new TextEncoder();
 
 // Localization
 loader.lazyGetter(this, "jsonViewStrings", () => {
   return Services.strings.createBundle(
     "chrome://devtools/locale/jsonview.properties");
 });
 
 /**
@@ -47,72 +53,151 @@ Converter.prototype = {
     return this;
   },
 
   /**
    * This component works as such:
    * 1. asyncConvertData captures the listener
    * 2. onStartRequest fires, initializes stuff, modifies the listener
    *    to match our output type
-   * 3. onDataAvailable spits it back to the listener
-   * 4. onStopRequest spits it back to the listener
+   * 3. onDataAvailable converts to UTF-8 and spits back to the listener
+   * 4. onStopRequest flushes data and spits back to the listener
    * 5. convert does nothing, it's just the synchronous version
    *    of asyncConvertData
    */
   convert: function (fromStream, fromType, toType, ctx) {
     return fromStream;
   },
 
   asyncConvertData: function (fromType, toType, listener, ctx) {
     this.listener = listener;
   },
 
   onDataAvailable: function (request, context, inputStream, offset, count) {
-    this.listener.onDataAvailable(...arguments);
+    // If the encoding is not known, store data in an array until we have enough bytes.
+    if (this.encodingArray) {
+      let desired = encodingLength - this.encodingArray.length;
+      let n = Math.min(desired, count);
+      let bytes = new BinaryInput(inputStream).readByteArray(n);
+      offset += n;
+      count -= n;
+      this.encodingArray.push(...bytes);
+      if (n < desired) {
+        // Wait until there is more data.
+        return;
+      }
+      this.determineEncoding(request, context);
+    }
+
+    // Spit back the data if the encoding is UTF-8, otherwise convert it first.
+    if (!this.decoder) {
+      this.listener.onDataAvailable(request, context, inputStream, offset, count);
+    } else {
+      let buffer = new ArrayBuffer(count);
+      new BinaryInput(inputStream).readArrayBuffer(count, buffer);
+      this.convertAndSendBuffer(request, context, buffer);
+    }
   },
 
   onStartRequest: function (request, context) {
     // Set the content type to HTML in order to parse the doctype, styles
     // and scripts, but later a <plaintext> element will switch the tokenizer
     // to the plaintext state in order to parse the JSON.
     request.QueryInterface(Ci.nsIChannel);
     request.contentType = "text/html";
 
-    // JSON enforces UTF-8 charset (see bug 741776).
+    // Don't honor the charset parameter and use UTF-8 (see bug 741776).
     request.contentCharset = "UTF-8";
 
     // Changing the content type breaks saving functionality. Fix it.
     fixSave(request);
 
     // Because content might still have a reference to this window,
     // force setting it to a null principal to avoid it being same-
     // origin with (other) content.
     request.loadInfo.resetPrincipalToInheritToNullPrincipal();
 
     // Start the request.
     this.listener.onStartRequest(request, context);
 
     // Initialize stuff.
     let win = NetworkHelper.getWindowForRequest(request);
-    exportData(win, request);
+    this.data = exportData(win, request);
     win.addEventListener("DOMContentLoaded", event => {
       win.addEventListener("contentMessage", onContentMessage, false, true);
     }, {once: true});
 
-    // Insert the initial HTML code.
-    let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
-                      .createInstance(Ci.nsIScriptableUnicodeConverter);
-    converter.charset = "UTF-8";
-    let stream = converter.convertToInputStream(initialHTML(win.document));
-    this.listener.onDataAvailable(request, context, stream, 0, stream.available());
+    // Send the initial HTML code.
+    let bytes = encoder.encode(initialHTML(win.document));
+    this.convertAndSendBuffer(request, context, bytes.buffer);
+
+    // Create an array to store data until the encoding is determined.
+    this.encodingArray = [];
   },
 
   onStopRequest: function (request, context, statusCode) {
+    // Flush data.
+    if (this.encodingArray) {
+      this.determineEncoding(request, context, true);
+    } else {
+      this.convertAndSendBuffer(request, context, new ArrayBuffer(0), true);
+    }
+
+    // Stop the request.
     this.listener.onStopRequest(request, context, statusCode);
     this.listener = null;
+    this.decoder = null;
+    this.data = null;
+  },
+
+  // Determines the encoding of the response.
+  determineEncoding: function (request, context, flush = false) {
+    // Determine the encoding using the bytes in encodingArray, defaulting to UTF-8.
+    // An initial byte order mark character (U+FEFF) does the trick.
+    // If there is no BOM, since the first character of valid JSON will be ASCII,
+    // the pattern of nulls in the first two bytes can be used instead.
+    //  - UTF-16BE:  00 xx  or  FE FF
+    //  - UTF-16LE:  xx 00  or  FF FE
+    //  - UTF-8:  anything else.
+    let encoding = "UTF-8";
+    let bytes = this.encodingArray;
+    if (bytes.length >= 2) {
+      if (!bytes[0] && bytes[1] || bytes[0] == 0xFE && bytes[1] == 0xFF) {
+        encoding = "UTF-16BE";
+      } else if (bytes[0] && !bytes[1] || bytes[0] == 0xFF && bytes[1] == 0xFE) {
+        encoding = "UTF-16LE";
+      }
+    }
+
+    // Create a decoder unless the data is already in UTF-8.
+    if (encoding !== "UTF-8") {
+      this.decoder = new TextDecoder(encoding, {ignoreBOM: true});
+    }
+
+    this.data.encoding = encoding;
+
+    // Send the bytes in encodingArray, and remove it.
+    let buffer = new Uint8Array(bytes).buffer;
+    this.convertAndSendBuffer(request, context, buffer, flush);
+    this.encodingArray = null;
+  },
+
+  // Converts an ArrayBuffer to UTF-8 and sends it.
+  convertAndSendBuffer: function (request, context, buffer, flush = false) {
+    // If the encoding is not UTF-8, decode the buffer and encode into UTF-8.
+    if (this.decoder) {
+      let data = this.decoder.decode(buffer, {stream: !flush});
+      buffer = encoder.encode(data).buffer;
+    }
+
+    // Create an input stream that contains the bytes in the buffer.
+    let stream = new BufferStream(buffer, 0, buffer.byteLength);
+
+    // Send the input stream.
+    this.listener.onDataAvailable(request, context, stream, 0, stream.available());
   }
 };
 
 // Lets "save as" save the original JSON, not the viewer.
 // To save with the proper extension we need the original content type,
 // which has been replaced by application/vnd.mozilla.json.view
 function fixSave(request) {
   let originalType;
@@ -172,16 +257,18 @@ function exportData(win, request) {
     });
     request.visitRequestHeaders({
       visitHeader: function (name, value) {
         headers.request.push({name: name, value: value});
       }
     });
   }
   data.headers = Cu.cloneInto(headers, win);
+
+  return data;
 }
 
 // Serializes a qualifiedName and an optional set of attributes into an HTML
 // start tag. Be aware qualifiedName and attribute names are not validated.
 // Attribute values are escaped with escapingString algorithm in attribute mode
 // (https://html.spec.whatwg.org/multipage/syntax.html#escapingString).
 function startTag(qualifiedName, attributes = {}) {
   return Object.entries(attributes).reduce(function (prev, [attr, value]) {
--- a/devtools/client/jsonview/test/browser.ini
+++ b/devtools/client/jsonview/test/browser.ini
@@ -16,32 +16,33 @@ support-files =
   simple_json.json^headers^
   valid_json.json
   valid_json.json^headers^
   !/devtools/client/commandline/test/head.js
   !/devtools/client/framework/test/head.js
   !/devtools/client/framework/test/shared-head.js
 
 [browser_jsonview_bug_1380828.js]
+[browser_jsonview_ignore_charset.js]
 [browser_jsonview_copy_headers.js]
 subsuite = clipboard
 skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_jsonview_copy_json.js]
 subsuite = clipboard
 skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_jsonview_copy_rawdata.js]
 subsuite = clipboard
 skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_jsonview_csp_json.js]
 [browser_jsonview_empty_object.js]
+[browser_jsonview_encoding.js]
 [browser_jsonview_filter.js]
 [browser_jsonview_invalid_json.js]
 [browser_jsonview_manifest.js]
 [browser_jsonview_nojs.js]
 [browser_jsonview_nul.js]
 [browser_jsonview_object-type.js]
 [browser_jsonview_save_json.js]
 support-files =
   !/toolkit/content/tests/browser/common/mockTransfer.js
 [browser_jsonview_slash.js]
-[browser_jsonview_utf8.js]
 [browser_jsonview_valid_json.js]
 [browser_json_refresh.js]
rename from devtools/client/jsonview/test/browser_jsonview_utf8.js
rename to devtools/client/jsonview/test/browser_jsonview_encoding.js
--- a/devtools/client/jsonview/test/browser_jsonview_utf8.js
+++ b/devtools/client/jsonview/test/browser_jsonview_encoding.js
@@ -1,39 +1,70 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// In UTF-8 this is a heavy black heart.
-const encodedChar = "%E2%9D%A4";
+add_task(function* () {
+  info("Test JSON encoding started");
 
-add_task(function* () {
-  info("Test UTF-8 JSON started");
+  const text = Symbol("text");
 
-  info("Test 1: UTF-8 is used by default");
-  yield testUrl("data:application/json,[\"" + encodedChar + "\"]");
+  const tests = [
+    {
+      "UTF-8 with BOM": "",
+      "UTF-16BE with BOM": "",
+      "UTF-16LE with BOM": "",
+      [text]: ""
+    }, {
+      "UTF-8": "%30",
+      "UTF-16BE": "%00%30",
+      "UTF-16LE": "%30%00",
+      [text]: "0"
+    }, {
+      "UTF-8": "%30%FF",
+      "UTF-16BE": "%00%30%00",
+      "UTF-16LE": "%30%00%00",
+      [text]: "0\uFFFD" // 0�
+    }, {
+      "UTF-8": "%C3%A0",
+      "UTF-16BE": "%00%E0",
+      "UTF-16LE": "%E0%00",
+      [text]: "\u00E0" // à
+    }, {
+      "UTF-8 with BOM": "%E2%9D%A4",
+      "UTF-16BE with BOM": "%27%64",
+      "UTF-16LE with BOM": "%64%27",
+      [text]: "\u2764" // ❤
+    }, {
+      "UTF-8": "%30%F0%9F%9A%80",
+      "UTF-16BE": "%00%30%D8%3D%DE%80",
+      "UTF-16LE": "%30%00%3D%D8%80%DE",
+      [text]: "0\uD83D\uDE80" // 0🚀
+    }
+  ];
 
-  info("Test 2: The charset parameter is ignored");
-  yield testUrl("data:application/json;charset=ANSI,[\"" + encodedChar + "\"]");
+  const bom = {
+    "UTF-8": "%EF%BB%BF",
+    "UTF-16BE": "%FE%FF",
+    "UTF-16LE": "%FF%FE"
+  };
+
+  for (let test of tests) {
+    let result = test[text];
+    for (let [encoding, data] of Object.entries(test)) {
+      info("Testing " + JSON.stringify(result) + " encoded in " + encoding + ".");
 
-  info("Test 3: The UTF-8 BOM is tolerated.");
-  const bom = "%EF%BB%BF";
-  yield testUrl("data:application/json," + bom + "[\"" + encodedChar + "\"]");
+      if (encoding.endsWith("BOM")) {
+        data = bom[encoding.split(" ")[0]] + data;
+      }
+
+      yield addJsonViewTab("data:application/json," + data);
+      yield selectJsonViewContentTab("rawdata");
+
+      // Check displayed data.
+      let output = yield getElementText(".textPanelBox .data");
+      is(output, result, "The right data has been received.");
+    }
+  }
 });
-
-function* testUrl(TEST_JSON_URL) {
-  yield addJsonViewTab(TEST_JSON_URL);
-
-  let countBefore = yield getElementCount(".jsonPanelBox .treeTable .treeRow");
-  is(countBefore, 1, "There must be one row.");
-
-  let objectCellCount = yield getElementCount(
-    ".jsonPanelBox .treeTable .stringCell");
-  is(objectCellCount, 1, "There must be one string cell.");
-
-  let objectCellText = yield getElementText(
-    ".jsonPanelBox .treeTable .stringCell");
-  is(objectCellText, JSON.stringify(decodeURIComponent(encodedChar)),
-     "The source has been parsed as UTF-8, ignoring the charset parameter.");
-}
new file mode 100644
--- /dev/null
+++ b/devtools/client/jsonview/test/browser_jsonview_ignore_charset.js
@@ -0,0 +1,20 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(function* () {
+  info("Test ignored charset parameter started");
+
+  const encodedChar = "%E2%9D%A4"; // In UTF-8 this is a heavy black heart
+  const result = "\u2764"; // ❤
+  const TEST_JSON_URL = "data:application/json;charset=ANSI," + encodedChar;
+
+  yield addJsonViewTab(TEST_JSON_URL);
+  yield selectJsonViewContentTab("rawdata");
+
+  let text = yield getElementText(".textPanelBox .data");
+  is(text, result, "The charset parameter is ignored and UTF-8 is used.");
+});
--- a/dom/animation/KeyframeEffectReadOnly.cpp
+++ b/dom/animation/KeyframeEffectReadOnly.cpp
@@ -551,17 +551,16 @@ KeyframeEffectReadOnly::EnsureBaseStyle(
   if (!hasAdditiveValues) {
     return;
   }
 
   if (!aBaseStyleContext) {
     aBaseStyleContext =
       aPresContext->StyleSet()->AsServo()->GetBaseContextForElement(
           mTarget->mElement,
-          nullptr,
           aPresContext,
           nullptr,
           aPseudoType,
           aComputedStyle);
   }
   RefPtr<RawServoAnimationValue> baseValue =
     Servo_ComputedValues_ExtractAnimationValue(aBaseStyleContext,
                                                aProperty.mProperty).Consume();
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -440,65 +440,42 @@ nsIContent::GetBaseURI(bool aTryUseXHRDo
       }
     }
   }
 
   return base.forget();
 }
 
 nsIURI*
-nsIContent::GetBaseURIWithoutXMLBase() const
+nsIContent::GetBaseURIForStyleAttr() const
 {
   if (IsInAnonymousSubtree() && IsAnonymousContentInSVGUseSubtree()) {
     nsIContent* bindingParent = GetBindingParent();
     MOZ_ASSERT(bindingParent);
     SVGUseElement* useElement = static_cast<SVGUseElement*>(bindingParent);
     if (URLExtraData* data = useElement->GetContentURLData()) {
       return data->BaseURI();
     }
   }
   // This also ignores the case that SVG inside XBL binding.
   // But it is probably fine.
   return OwnerDoc()->GetDocBaseURI();
 }
 
-already_AddRefed<nsIURI>
-nsIContent::GetBaseURIForStyleAttr() const
-{
-  nsIDocument* doc = OwnerDoc();
-  nsIURI* baseWithoutXMLBase = GetBaseURIWithoutXMLBase();
-  nsCOMPtr<nsIURI> base = GetBaseURI();
-  // If eXMLBaseAttribute is not triggered in GetBaseURI() call above,
-  // we don't need to count eXMLBaseAttributeForStyleAttr either.
-  if (doc->HasWarnedAbout(nsIDocument::eXMLBaseAttribute) &&
-      !doc->HasWarnedAbout(nsIDocument::eXMLBaseAttributeForStyleAttr)) {
-    bool isEqual = false;
-    base->Equals(baseWithoutXMLBase, &isEqual);
-    if (!isEqual) {
-      doc->WarnOnceAbout(nsIDocument::eXMLBaseAttributeForStyleAttr);
-    }
-  }
-  return nsLayoutUtils::StyleAttrWithXMLBaseDisabled()
-    ? do_AddRef(baseWithoutXMLBase) : base.forget();
-}
-
 URLExtraData*
 nsIContent::GetURLDataForStyleAttr() const
 {
   if (IsInAnonymousSubtree() && IsAnonymousContentInSVGUseSubtree()) {
     nsIContent* bindingParent = GetBindingParent();
     MOZ_ASSERT(bindingParent);
     SVGUseElement* useElement = static_cast<SVGUseElement*>(bindingParent);
     if (URLExtraData* data = useElement->GetContentURLData()) {
       return data;
     }
   }
-  // We are not going to support xml:base for stylo, but we want to
-  // ensure we unship that support before we enabling stylo.
-  MOZ_ASSERT(nsLayoutUtils::StyleAttrWithXMLBaseDisabled());
   // This also ignores the case that SVG inside XBL binding.
   // But it is probably fine.
   return OwnerDoc()->DefaultStyleAttrURLData();
 }
 
 //----------------------------------------------------------------------
 
 static inline JSObject*
--- a/dom/base/WebSocket.cpp
+++ b/dom/base/WebSocket.cpp
@@ -1661,27 +1661,28 @@ WebSocketImpl::Init(JSContext* aCx,
       nsCOMPtr<nsIGlobalObject> globalObject(GetEntryGlobal());
       if (globalObject) {
         principal = globalObject->PrincipalOrNull();
       }
 
       nsCOMPtr<nsPIDOMWindowInner> innerWindow;
 
       while (true) {
-        if (principal && !principal->GetIsNullPrincipal()) {
-          break;
+        if (principal) {
+          bool isNullPrincipal = true;
+          isNullPrincipal = principal->GetIsNullPrincipal();
+          if (isNullPrincipal || nsContentUtils::IsSystemPrincipal(principal)) {
+            break;
+          }
         }
 
         if (!innerWindow) {
           innerWindow = do_QueryInterface(globalObject);
-          if (!innerWindow) {
-            // If we are in a XPConnect sandbox or in a JS component,
-            // innerWindow will be null. There is nothing on top of this to be
-            // considered.
-            break;
+          if (NS_WARN_IF(!innerWindow)) {
+            return NS_ERROR_DOM_SECURITY_ERR;
           }
         }
 
         nsCOMPtr<nsPIDOMWindowOuter> parentWindow =
           innerWindow->GetScriptableParent();
         if (NS_WARN_IF(!parentWindow)) {
           return NS_ERROR_DOM_SECURITY_ERR;
         }
--- a/dom/base/nsDeprecatedOperationList.h
+++ b/dom/base/nsDeprecatedOperationList.h
@@ -44,10 +44,9 @@ DEPRECATED_OPERATION(RTCPeerConnectionGe
 DEPRECATED_OPERATION(AppCache)
 DEPRECATED_OPERATION(PrefixedImageSmoothingEnabled)
 DEPRECATED_OPERATION(PrefixedFullscreenAPI)
 DEPRECATED_OPERATION(LenientSetter)
 DEPRECATED_OPERATION(FileLastModifiedDate)
 DEPRECATED_OPERATION(ImageBitmapRenderingContext_TransferImageBitmap)
 DEPRECATED_OPERATION(URLCreateObjectURL_MediaStream)
 DEPRECATED_OPERATION(XMLBaseAttribute)
-DEPRECATED_OPERATION(XMLBaseAttributeForStyleAttr)
 DEPRECATED_OPERATION(WindowContentUntrusted)
--- a/dom/base/nsIContent.h
+++ b/dom/base/nsIContent.h
@@ -960,17 +960,17 @@ public:
                               nsGkAtoms::resizer,
                               nsGkAtoms::scrollcorner);
   }
 
   // Overloaded from nsINode
   virtual already_AddRefed<nsIURI> GetBaseURI(bool aTryUseXHRDocBaseURI = false) const override;
 
   // Returns base URI for style attribute.
-  already_AddRefed<nsIURI> GetBaseURIForStyleAttr() const;
+  nsIURI* GetBaseURIForStyleAttr() const;
 
   // Returns the URL data for style attribute.
   mozilla::URLExtraData* GetURLDataForStyleAttr() const;
 
   virtual nsresult GetEventTargetParent(
                      mozilla::EventChainPreVisitor& aVisitor) override;
 
   virtual bool IsPurple() = 0;
@@ -985,19 +985,16 @@ public:
 
 protected:
   /**
    * Hook for implementing GetID.  This is guaranteed to only be
    * called if HasID() is true.
    */
   nsIAtom* DoGetID() const;
 
-  // Returns base URI without considering xml:base.
-  inline nsIURI* GetBaseURIWithoutXMLBase() const;
-
 public:
 #ifdef DEBUG
   /**
    * List the content (and anything it contains) out to the given
    * file stream. Use aIndent as the base indent during formatting.
    */
   virtual void List(FILE* out = stdout, int32_t aIndent = 0) const = 0;
 
deleted file mode 100644
--- a/dom/base/test/iframe_webSocket_sandbox.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<html><body>
-<iframe id="frame" sandbox="allow-scripts allow-popups"></iframe>
-<script type="application/javascript;version=1.8">
-onmessage = function(e) {
-  parent.postMessage(e.data, '*');
-}
-
-var ifr = document.getElementById('frame');
-
-if (location.search == '?nested') {
-  var url = new URL(location);
-  url.search = "";
-  ifr.src = url.href;
-} else if (location.search == '?popup') {
-  var url = new URL(location);
-  url.search = "?opener";
-
-  ifr.srcdoc = "<html><script>" +
-    "window.open('" + url.href + "', 'foobar');" +
-    "onmessage = function(e) { " +
-    "  parent.postMessage(e.data, '*'); " +
-    "}" +
-  "</scr" + "ipt></html>";
-} else if (location.search == '?opener') {
-  try{
-    var socket = new WebSocket('ws://mochi.test:8888/tests/dom/base/test/file_websocket_basic');
-    socket.onerror = function(e) {
-      opener.postMessage('WS onerror', '*');
-    };
-    socket.onopen = function(event) {
-      opener.postMessage('WS onopen', '*');
-    };
-  } catch(e) {
-    if (e.name == 'SecurityError') {
-      opener.postMessage('WS Throws!', '*');
-    } else {
-      opener.postMessage('WS Throws something else!', '*');
-    }
-  }
-} else {
-  ifr.srcdoc = `
-  <html><script>
-  try{
-    var socket = new WebSocket('ws://mochi.test:8888/tests/dom/base/test/file_websocket_basic');
-    socket.onerror = function(e) {
-      parent.postMessage('WS onerror', '*');
-    };
-    socket.onopen = function(event) {
-      parent.postMessage('WS onopen', '*');
-    };
-  } catch(e) {
-    if (e.name == 'SecurityError') {
-      parent.postMessage('WS Throws!', '*');
-    } else {
-      parent.postMessage('WS Throws something else!', '*');
-    }
-  }
-  </scr`+`ipt>
-  </html>`;
-}
-</script>
-</body></html>
--- a/dom/base/test/mochitest.ini
+++ b/dom/base/test/mochitest.ini
@@ -800,19 +800,16 @@ tags = audiochannel
 [test_webaudioNotificationStopOnNavigation.html]
 tags = audiochannel
 [test_websocket_basic.html]
 skip-if = toolkit == 'android'
 [test_websocket_hello.html]
 skip-if = toolkit == 'android'
 [test_websocket_permessage_deflate.html]
 skip-if = toolkit == 'android'
-[test_webSocket_sandbox.html]
-skip-if = toolkit == 'android'
-support-files = iframe_webSocket_sandbox.html
 [test_websocket1.html]
 skip-if = toolkit == 'android'
 [test_websocket2.html]
 skip-if = toolkit == 'android'
 [test_websocket3.html]
 skip-if = toolkit == 'android'
 [test_websocket4.html]
 skip-if = toolkit == 'android'
deleted file mode 100644
--- a/dom/base/test/test_webSocket_sandbox.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Bug 1252751</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<div id="container"></div>
-<iframe id="frame"></iframe>
-<script type="application/javascript;version=1.8">
-var urls = [ "https://example.com/tests/dom/base/test/iframe_webSocket_sandbox.html",
-             "https://example.com/tests/dom/base/test/iframe_webSocket_sandbox.html?nested",
-             "https://example.com/tests/dom/base/test/iframe_webSocket_sandbox.html?popup" ];
-
-onmessage = function(e) {
-  is(e.data, "WS Throws!", "ws://URI cannot be used by a https iframe");
-  runTest();
-}
-
-function runTest() {
-  if (!urls.length) {
-    SimpleTest.finish();
-    return;
-  }
-
-  document.getElementById("frame").src = urls.shift();
-}
-
-SimpleTest.waitForExplicitFinish();
-runTest();
-</script>
-</body>
-</html>
--- a/gfx/layers/wr/WebRenderCommandBuilder.cpp
+++ b/gfx/layers/wr/WebRenderCommandBuilder.cpp
@@ -121,24 +121,16 @@ WebRenderCommandBuilder::CreateWebRender
       i = peek;
     }
 
     if (mergedItems.Length() > 1) {
       item = aDisplayListBuilder->MergeItems(mergedItems);
       MOZ_ASSERT(item && itemType == item->GetType());
     }
 
-    nsDisplayList* childItems = item->GetSameCoordinateSystemChildren();
-    if (item->ShouldFlattenAway(aDisplayListBuilder)) {
-      MOZ_ASSERT(childItems);
-      CreateWebRenderCommandsFromDisplayList(childItems, aDisplayListBuilder, aSc,
-                                             aBuilder, aResources);
-      continue;
-    }
-
     bool forceNewLayerData = false;
     size_t layerCountBeforeRecursing = mLayerScrollData.size();
     if (apzEnabled) {
       // For some types of display items we want to force a new
       // WebRenderLayerScrollData object, to ensure we preserve the APZ-relevant
       // data that is in the display item.
       forceNewLayerData = item->UpdateScrollData(nullptr, nullptr);
 
@@ -193,38 +185,57 @@ WebRenderCommandBuilder::CreateWebRender
       // If we're going to create a new layer data for this item, stash the
       // ASR so that if we recurse into a sublist they will know where to stop
       // walking up their ASR chain when building scroll metadata.
       if (forceNewLayerData) {
         mAsrStack.push_back(asr);
       }
     }
 
-    { // scope the ScrollingLayersHelper
+    nsDisplayList* childItems = item->GetSameCoordinateSystemChildren();
+    if (item->ShouldFlattenAway(aDisplayListBuilder)) {
+      MOZ_ASSERT(childItems);
+      CreateWebRenderCommandsFromDisplayList(childItems, aDisplayListBuilder, aSc,
+                                             aBuilder, aResources);
+    } else {
+      // ensure the scope of ScrollingLayersHelper is maintained
       ScrollingLayersHelper clip(item, aBuilder, aSc, mClipIdCache, apzEnabled);
 
       // Note: this call to CreateWebRenderCommands can recurse back into
       // this function if the |item| is a wrapper for a sublist.
       if (!item->CreateWebRenderCommands(aBuilder, aResources, aSc, mManager,
                                          aDisplayListBuilder)) {
         PushItemAsImage(item, aBuilder, aResources, aSc, aDisplayListBuilder);
       }
     }
 
-    if (apzEnabled && forceNewLayerData) {
-      // Pop the thing we pushed before the recursion, so the topmost item on
-      // the stack is enclosing display item's ASR (or the stack is empty)
-      mAsrStack.pop_back();
-      const ActiveScrolledRoot* stopAtAsr =
-          mAsrStack.empty() ? nullptr : mAsrStack.back();
+    if (apzEnabled) {
+      if (forceNewLayerData) {
+        // Pop the thing we pushed before the recursion, so the topmost item on
+        // the stack is enclosing display item's ASR (or the stack is empty)
+        mAsrStack.pop_back();
+        const ActiveScrolledRoot* stopAtAsr =
+            mAsrStack.empty() ? nullptr : mAsrStack.back();
+
+        int32_t descendants = mLayerScrollData.size() - layerCountBeforeRecursing;
 
-      int32_t descendants = mLayerScrollData.size() - layerCountBeforeRecursing;
-
-      mLayerScrollData.emplace_back();
-      mLayerScrollData.back().Initialize(mManager->GetScrollData(), item, descendants, stopAtAsr);
+        mLayerScrollData.emplace_back();
+        mLayerScrollData.back().Initialize(mManager->GetScrollData(), item, descendants, stopAtAsr);
+      } else if (mLayerScrollData.size() != layerCountBeforeRecursing &&
+                 !eventRegions.IsEmpty()) {
+        // We are not forcing a new layer for |item|, but we did create some
+        // layers while recursing. In this case, we need to make sure any
+        // event regions that we were carrying end up on the right layer. So we
+        // do an event region "flush" but retroactively; i.e. the event regions
+        // end up on the layer that was mLayerScrollData.back() prior to the
+        // recursion.
+        MOZ_ASSERT(layerCountBeforeRecursing > 0);
+        mLayerScrollData[layerCountBeforeRecursing - 1].AddEventRegions(eventRegions);
+        eventRegions.SetEmpty();
+      }
     }
   }
 
   // If we have any event region info left over we need to flush it before we
   // return. Again, at this point the layer data list must be non-empty, and
   // the most recently created layer data will have been created by an item
   // with matching ASRs.
   if (!eventRegions.IsEmpty()) {
--- a/gfx/thebes/gfxPrefs.h
+++ b/gfx/thebes/gfxPrefs.h
@@ -659,16 +659,17 @@ private:
   DECL_GFX_PREF(Live, "layout.css.scroll-behavior.enabled",    ScrollBehaviorEnabled, bool, true);
   DECL_GFX_PREF(Live, "layout.css.scroll-behavior.spring-constant", ScrollBehaviorSpringConstant, float, 250.0f);
   DECL_GFX_PREF(Live, "layout.css.scroll-snap.prediction-max-velocity", ScrollSnapPredictionMaxVelocity, int32_t, 2000);
   DECL_GFX_PREF(Live, "layout.css.scroll-snap.prediction-sensitivity", ScrollSnapPredictionSensitivity, float, 0.750f);
   DECL_GFX_PREF(Live, "layout.css.scroll-snap.proximity-threshold", ScrollSnapProximityThreshold, int32_t, 200);
   DECL_GFX_PREF(Live, "layout.css.touch_action.enabled",       TouchActionEnabled, bool, false);
   DECL_GFX_PREF(Live, "layout.display-list.dump",              LayoutDumpDisplayList, bool, false);
   DECL_GFX_PREF(Live, "layout.display-list.dump-content",      LayoutDumpDisplayListContent, bool, false);
+  DECL_GFX_PREF(Live, "layout.display-list.dump-parent",       LayoutDumpDisplayListParent, bool, false);
   DECL_GFX_PREF(Live, "layout.event-regions.enabled",          LayoutEventRegionsEnabledDoNotUseDirectly, bool, false);
   DECL_GFX_PREF(Once, "layout.frame_rate",                     LayoutFrameRate, int32_t, -1);
   DECL_GFX_PREF(Live, "layout.min-active-layer-size",          LayoutMinActiveLayerSize, int, 64);
   DECL_GFX_PREF(Once, "layout.paint_rects_separately",         LayoutPaintRectsSeparately, bool, true);
 
   // This and code dependent on it should be removed once containerless scrolling looks stable.
   DECL_GFX_PREF(Once, "layout.scroll.root-frame-containers",   LayoutUseContainersForRootFrames, bool, true);
   // This pref is to be set by test code only.
--- a/gfx/thebes/gfxUtils.cpp
+++ b/gfx/thebes/gfxUtils.cpp
@@ -1478,16 +1478,17 @@ gfxUtils::ThreadSafeGetFeatureStatus(con
   }
 
   return gfxInfo->GetFeatureStatus(feature, failureId, status);
 }
 
 /* static */ bool
 gfxUtils::DumpDisplayList() {
   return gfxPrefs::LayoutDumpDisplayList() ||
+         (gfxPrefs::LayoutDumpDisplayListParent() && XRE_IsParentProcess()) ||
          (gfxPrefs::LayoutDumpDisplayListContent() && XRE_IsContentProcess());
 }
 
 FILE *gfxUtils::sDumpPaintFile = stderr;
 
 namespace mozilla {
 namespace gfx {
 
--- a/layout/base/moz.build
+++ b/layout/base/moz.build
@@ -89,16 +89,17 @@ EXPORTS.mozilla += [
 UNIFIED_SOURCES += [
     'AccessibleCaret.cpp',
     'AccessibleCaretEventHub.cpp',
     'AccessibleCaretManager.cpp',
     'GeckoRestyleManager.cpp',
     'GeometryUtils.cpp',
     'LayoutLogging.cpp',
     'MobileViewportManager.cpp',
+    'nsBidi.cpp',
     'nsBidiPresUtils.cpp',
     'nsCaret.cpp',
     'nsCounterManager.cpp',
     'nsCSSColorUtils.cpp',
     'nsCSSFrameConstructor.cpp',
     'nsDocumentViewer.cpp',
     'nsFrameManager.cpp',
     'nsFrameTraversal.cpp',
new file mode 100644
--- /dev/null
+++ b/layout/base/nsBidi.cpp
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsBidi.h"
+
+nsresult
+nsBidi::CountRuns(int32_t* aRunCount)
+{
+  UErrorCode errorCode = U_ZERO_ERROR;
+  *aRunCount = ubidi_countRuns(mBiDi, &errorCode);
+  if (U_SUCCESS(errorCode)) {
+    mLength = ubidi_getProcessedLength(mBiDi);
+    mLevels = mLength > 0 ? ubidi_getLevels(mBiDi, &errorCode) : nullptr;
+  }
+  return ICUUtils::UErrorToNsResult(errorCode);
+}
+
+void
+nsBidi::GetLogicalRun(int32_t aLogicalStart,
+                      int32_t* aLogicalLimit, nsBidiLevel* aLevel)
+{
+  MOZ_ASSERT(mLevels, "CountRuns hasn't been run?");
+  MOZ_RELEASE_ASSERT(aLogicalStart < mLength, "Out of bound");
+  // This function implements an alternative approach to get logical
+  // run that is based on levels of characters, which would avoid O(n^2)
+  // performance issue when used in a loop over runs.
+  // Per comment in ubidi_getLogicalRun, that function doesn't use this
+  // approach because levels have special interpretation when reordering
+  // mode is UBIDI_REORDER_RUNS_ONLY. Since we don't use this mode in
+  // Gecko, it should be safe to just use levels for this function.
+  MOZ_ASSERT(ubidi_getReorderingMode(mBiDi) != UBIDI_REORDER_RUNS_ONLY,
+             "Don't support UBIDI_REORDER_RUNS_ONLY mode");
+
+  nsBidiLevel level = mLevels[aLogicalStart];
+  int32_t limit;
+  for (limit = aLogicalStart + 1; limit < mLength; limit++) {
+    if (mLevels[limit] != level) {
+      break;
+    }
+  }
+  *aLogicalLimit = limit;
+  *aLevel = level;
+}
--- a/layout/base/nsBidi.h
+++ b/layout/base/nsBidi.h
@@ -93,52 +93,44 @@ public:
     return ubidi_getParaLevel(mBiDi);
   }
 
   /**
    * Get a logical run.
    * This function returns information about a run and is used
    * to retrieve runs in logical order.<p>
    * This is especially useful for line-breaking on a paragraph.
+   * <code>CountRuns</code> should be called before this.
+   * before the runs are retrieved.
    *
    * @param aLogicalStart is the first character of the run.
    *
    * @param aLogicalLimit will receive the limit of the run.
    *      The l-value that you point to here may be the
    *      same expression (variable) as the one for
    *      <code>aLogicalStart</code>.
-   *      This pointer can be <code>nullptr</code> if this
-   *      value is not necessary.
+   *      This pointer cannot be <code>nullptr</code>.
    *
    * @param aLevel will receive the level of the run.
-   *      This pointer can be <code>nullptr</code> if this
-   *      value is not necessary.
+   *      This pointer cannot be <code>nullptr</code>.
    */
-  void GetLogicalRun(int32_t aLogicalStart, int32_t* aLogicalLimit,
-                     nsBidiLevel* aLevel)
-  {
-    ubidi_getLogicalRun(mBiDi, aLogicalStart, aLogicalLimit, aLevel);
-  }
+  void GetLogicalRun(int32_t aLogicalStart,
+                     int32_t* aLogicalLimit, nsBidiLevel* aLevel);
 
   /**
    * Get the number of runs.
    * This function may invoke the actual reordering on the
    * <code>nsBidi</code> object, after <code>SetPara</code>
    * may have resolved only the levels of the text. Therefore,
    * <code>CountRuns</code> may have to allocate memory,
    * and may fail doing so.
    *
    * @param aRunCount will receive the number of runs.
    */
-  nsresult CountRuns(int32_t* aRunCount)
-  {
-    UErrorCode errorCode = U_ZERO_ERROR;
-    *aRunCount = ubidi_countRuns(mBiDi, &errorCode);
-    return ICUUtils::UErrorToNsResult(errorCode);
-  }
+  nsresult CountRuns(int32_t* aRunCount);
 
   /**
    * Get one run's logical start, length, and directionality,
    * which can be 0 for LTR or 1 for RTL.
    * In an RTL run, the character at the logical start is
    * visually on the right of the displayed run.
    * The length is the number of characters in the run.<p>
    * <code>CountRuns</code> should be called
@@ -216,11 +208,14 @@ public:
     ubidi_reorderVisual(aLevels, aLength, aIndexMap);
   }
 
 private:
   nsBidi(const nsBidi&) = delete;
   void operator=(const nsBidi&) = delete;
 
   UBiDi* mBiDi;
+  // The two fields below are updated when CountRuns is called.
+  const nsBidiLevel* mLevels = nullptr;
+  int32_t mLength = 0;
 };
 
 #endif // _nsBidi_h_
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -188,17 +188,16 @@ typedef nsStyleTransformMatrix::Transfor
 /* static */ uint32_t nsLayoutUtils::sZoomMinPercent;
 /* static */ bool nsLayoutUtils::sInvalidationDebuggingIsEnabled;
 /* static */ bool nsLayoutUtils::sInterruptibleReflowEnabled;
 /* static */ bool nsLayoutUtils::sSVGTransformBoxEnabled;
 /* static */ bool nsLayoutUtils::sTextCombineUprightDigitsEnabled;
 #ifdef MOZ_STYLO
 /* static */ bool nsLayoutUtils::sStyloEnabled;
 #endif
-/* static */ bool nsLayoutUtils::sStyleAttrWithXMLBaseDisabled;
 /* static */ uint32_t nsLayoutUtils::sIdlePeriodDeadlineLimit;
 /* static */ uint32_t nsLayoutUtils::sQuiescentFramesBeforeIdlePeriod;
 
 static ViewID sScrollIdCounter = FrameMetrics::START_SCROLL_ID;
 
 typedef nsDataHashtable<nsUint64HashKey, nsIContent*> ContentMap;
 static ContentMap* sContentMap = nullptr;
 static ContentMap& GetContentMap() {
@@ -7968,18 +7967,16 @@ nsLayoutUtils::Initialize()
     sStyloEnabled = true;
   } else if (PR_GetEnv("STYLO_FORCE_DISABLED")) {
     sStyloEnabled = false;
   } else {
     Preferences::AddBoolVarCache(&sStyloEnabled,
                                  "layout.css.servo.enabled");
   }
 #endif
-  Preferences::AddBoolVarCache(&sStyleAttrWithXMLBaseDisabled,
-                               "layout.css.style-attr-with-xml-base.disabled");
   Preferences::AddUintVarCache(&sIdlePeriodDeadlineLimit,
                                "layout.idle_period.time_limit",
                                DEFAULT_IDLE_PERIOD_TIME_LIMIT);
   Preferences::AddUintVarCache(&sQuiescentFramesBeforeIdlePeriod,
                                "layout.idle_period.required_quiescent_frames",
                                DEFAULT_QUIESCENT_FRAMES);
 
   for (auto& callback : kPrefCallbacks) {
--- a/layout/base/nsLayoutUtils.h
+++ b/layout/base/nsLayoutUtils.h
@@ -2525,20 +2525,16 @@ public:
 
   // Whether Stylo should be allowed to be enabled in this process.  This
   // returns true for content processes and the non-e10s parent process.
   static bool StyloSupportedInCurrentProcess() {
      return XRE_IsContentProcess() ||
             (XRE_IsParentProcess() && !XRE_IsE10sParentProcess());
   }
 
-  static bool StyleAttrWithXMLBaseDisabled() {
-    return sStyleAttrWithXMLBaseDisabled;
-  }
-
   static uint32_t IdlePeriodDeadlineLimit() {
     return sIdlePeriodDeadlineLimit;
   }
 
   static uint32_t QuiescentFramesBeforeIdlePeriod() {
     return sQuiescentFramesBeforeIdlePeriod;
   }
 
@@ -3025,17 +3021,16 @@ private:
   static uint32_t sZoomMinPercent;
   static bool sInvalidationDebuggingIsEnabled;
   static bool sInterruptibleReflowEnabled;
   static bool sSVGTransformBoxEnabled;
   static bool sTextCombineUprightDigitsEnabled;
 #ifdef MOZ_STYLO
   static bool sStyloEnabled;
 #endif
-  static bool sStyleAttrWithXMLBaseDisabled;
   static uint32_t sIdlePeriodDeadlineLimit;
   static uint32_t sQuiescentFramesBeforeIdlePeriod;
 
   /**
    * Helper function for LogTestDataForPaint().
    */
   static void DoLogTestDataForPaint(mozilla::layers::LayerManager* aManager,
                                     ViewID aScrollId,
new file mode 100644
--- /dev/null
+++ b/layout/reftests/bugs/1404057-noref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<style>
+  div {
+    height: 2em;
+  }
+</style>
+<body>
+  <div lang="ja">令</div>
+  <div lang="ja">令</div>
+  <div lang="ja">令</div>
+</body>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/bugs/1404057-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<style>
+  div {
+    height: 2em;
+  }
+</style>
+<body>
+  <div lang="zh-CN">令</div>
+  <div lang="ja">令</div>
+  <div lang="ja">令</div>
+</body>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/bugs/1404057.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<style>
+  div {
+    height: 2em;
+  }
+</style>
+<body lang="zh-CN">
+  <div>令</div>
+  <div lang="ja">令</div>
+  <div><div lang="ja" style="all: inherit">令</div></div>
+</body>
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -2037,8 +2037,10 @@ needs-focus != 1377447-1.html 1377447-2.
 == 1380224-1.html 1380224-1-ref.html
 == 1384065.html 1384065-ref.html
 == 1384275-1.html 1384275-1-ref.html
 == 1381821.html 1381821-ref.html
 == 1395650-1.html 1395650-1-ref.html
 == 1398500-1.html 1398500-1-ref.html
 == 1401317.html 1401317-ref.html
 == 1401992.html 1401992-ref.html
+== 1404057.html 1404057-ref.html
+!= 1404057.html 1404057-noref.html
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -70,16 +70,20 @@
 #include "mozilla/dom/HTMLBodyElement.h"
 #include "mozilla/LookAndFeel.h"
 #include "mozilla/URLExtraData.h"
 
 #if defined(MOZ_MEMORY)
 # include "mozmemory.h"
 #endif
 
+#ifdef MOZ_CRASHREPORTER
+#include "nsICrashReporter.h"
+#endif
+
 using namespace mozilla;
 using namespace mozilla::css;
 using namespace mozilla::dom;
 
 #define SERVO_ARC_TYPE(name_, type_) \
   already_AddRefed<type_>            \
   type_##Strong::Consume() {         \
     RefPtr<type_> result;            \
@@ -2801,8 +2805,19 @@ Gecko_ReportUnexpectedCSSError(ErrorRepo
   }
 
   if (suffix) {
     reporter->ReportUnexpected(suffix);
   }
   nsDependentCSubstring sourceValue(source, sourceLen);
   reporter->OutputError(lineNumber, colNumber, sourceValue);
 }
+
+void
+Gecko_AddBufferToCrashReport(const void* addr, size_t len)
+{
+  MOZ_ASSERT(NS_IsMainThread());
+#ifdef MOZ_CRASHREPORTER
+  nsCOMPtr<nsICrashReporter> cr = do_GetService("@mozilla.org/toolkit/crash-reporter;1");
+  NS_ENSURE_TRUE_VOID(cr);
+  cr->RegisterAppMemory((uint64_t) addr, len);
+#endif
+}
--- a/layout/style/ServoBindings.h
+++ b/layout/style/ServoBindings.h
@@ -670,16 +670,18 @@ void Gecko_UnregisterProfilerThread();
 
 bool Gecko_DocumentRule_UseForPresentation(RawGeckoPresContextBorrowed,
                                            const nsACString* aPattern,
                                            mozilla::css::URLMatchingFunction aURLMatchingFunction);
 
 // Allocator hinting.
 void Gecko_SetJemallocThreadLocalArena(bool enabled);
 
+void Gecko_AddBufferToCrashReport(const void* addr, size_t len);
+
 // Pseudo-element flags.
 #define CSS_PSEUDO_ELEMENT(name_, value_, flags_) \
   const uint32_t SERVO_CSS_PSEUDO_ELEMENT_FLAGS_##name_ = flags_;
 #include "nsCSSPseudoElementList.h"
 #undef CSS_PSEUDO_ELEMENT
 
 #define SERVO_BINDING_FUNC(name_, return_, ...) return_ name_(__VA_ARGS__);
 #include "mozilla/ServoBindingList.h"
--- a/layout/style/ServoStyleSet.cpp
+++ b/layout/style/ServoStyleSet.cpp
@@ -339,17 +339,17 @@ already_AddRefed<ServoStyleContext>
 ServoStyleSet::ResolveStyleFor(Element* aElement,
                                ServoStyleContext* aParentContext,
                                LazyComputeBehavior aMayCompute)
 {
   RefPtr<ServoStyleContext> computedValues;
   if (aMayCompute == LazyComputeBehavior::Allow) {
     PreTraverseSync();
     return ResolveStyleLazilyInternal(
-        aElement, CSSPseudoElementType::NotPseudo, nullptr, aParentContext);
+        aElement, CSSPseudoElementType::NotPseudo, nullptr);
   }
 
   return ResolveServoStyle(aElement);
 }
 
 /**
  * Clears any stale Servo element data that might existing in the specified
  * element's document.  Upon destruction, asserts that the element and all
@@ -618,17 +618,17 @@ ServoStyleSet::ResolveStyleLazily(Elemen
   // undisplayed element with the caller's style set's rules, but inherit from
   // values that were computed with the style set from the target element's
   // hidden-by-the-bfcache-entry pres shell.
   bool ignoreExistingStyles = aElement->OwnerDoc()->GetBFCacheEntry();
 
   AutoClearStaleData guard(aElement);
   PreTraverseSync();
   return ResolveStyleLazilyInternal(aElement, aPseudoType, aPseudoTag,
-                                    nullptr, aRuleInclusion,
+                                    aRuleInclusion,
                                     ignoreExistingStyles);
 }
 
 already_AddRefed<ServoStyleContext>
 ServoStyleSet::ResolveInheritingAnonymousBoxStyle(nsIAtom* aPseudoTag,
                                                   ServoStyleContext* aParentContext)
 {
   MOZ_ASSERT(nsCSSAnonBoxes::IsAnonBox(aPseudoTag) &&
@@ -1215,17 +1215,16 @@ ServoStyleSet::GetAnimationValues(
                            aStyleContext,
                            mRawSet.get(),
                            &aAnimationValues);
 }
 
 already_AddRefed<ServoStyleContext>
 ServoStyleSet::GetBaseContextForElement(
   Element* aElement,
-  ServoStyleContext* aParentContext,
   nsPresContext* aPresContext,
   nsIAtom* aPseudoTag,
   CSSPseudoElementType aPseudoType,
   const ServoStyleContext* aStyle)
 {
   // Servo_StyleSet_GetBaseComputedValuesForElement below won't handle ignoring
   // existing element data for bfcached documents. (See comment in
   // ResolveStyleLazily about these bfcache issues.)
@@ -1332,17 +1331,16 @@ ServoStyleSet::ClearNonInheritingStyleCo
     ptr = nullptr;
   }
 }
 
 already_AddRefed<ServoStyleContext>
 ServoStyleSet::ResolveStyleLazilyInternal(Element* aElement,
                                           CSSPseudoElementType aPseudoType,
                                           nsIAtom* aPseudoTag,
-                                          const ServoStyleContext* aParentContext,
                                           StyleRuleInclusion aRuleInclusion,
                                           bool aIgnoreExistingStyles)
 {
   mPresContext->EffectCompositor()->PreTraverse(aElement, aPseudoType);
   MOZ_ASSERT(!StylistNeedsUpdate());
 
   AutoSetInServoTraversal guard(this);
 
--- a/layout/style/ServoStyleSet.h
+++ b/layout/style/ServoStyleSet.h
@@ -384,17 +384,16 @@ public:
 
   nsCSSCounterStyleRule* CounterStyleRuleForName(nsIAtom* aName);
 
   // Get all the currently-active font feature values set.
   already_AddRefed<gfxFontFeatureValueSet> BuildFontFeatureValueSet();
 
   already_AddRefed<ServoStyleContext>
   GetBaseContextForElement(dom::Element* aElement,
-                           ServoStyleContext* aParentContext,
                            nsPresContext* aPresContext,
                            nsIAtom* aPseudoTag,
                            CSSPseudoElementType aPseudoType,
                            const ServoStyleContext* aStyle);
 
   /**
    * Resolve style for a given declaration block with/without the parent style.
    * If the parent style is not specified, the document default computed values
@@ -555,17 +554,16 @@ private:
    * This should only be called if StylistNeedsUpdate returns true.
    */
   void UpdateStylist();
 
   already_AddRefed<ServoStyleContext>
     ResolveStyleLazilyInternal(dom::Element* aElement,
                                CSSPseudoElementType aPseudoType,
                                nsIAtom* aPseudoTag,
-                               const ServoStyleContext* aParentContext,
                                StyleRuleInclusion aRules =
                                  StyleRuleInclusion::All,
                                bool aIgnoreExistingStyles = false);
 
   void RunPostTraversalTasks();
 
   void PrependSheetOfType(SheetType aType,
                           ServoStyleSheet* aSheet);
new file mode 100644
--- /dev/null
+++ b/layout/style/crashtests/1404057.html
@@ -0,0 +1,6 @@
+<html>
+  <title>Testcase, bug 143862</title>
+  <head>
+<svg><text><t style='all:initial'>aaa</t></text></svg>
+  </head>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/layout/style/crashtests/1406222-1.html
@@ -0,0 +1,25 @@
+<script>
+window.addEventListener("load", function(event) {
+  setTimeout(window.close, 1000);
+});
+</script>
+<!-- a -->
+<style id="s1">
+:not(video) { position: fixed; }
+a::first-line {}
+*, .class3 { columns: 0px; }
+</style>
+<script>
+function jsfuzzer() {
+try { s1.appendChild(htmlvar00009); } catch(e) { }
+try { htmlvar00001.scrollIntoView(true); } catch(e) { }
+try { htmlvar00003.href = undefined; } catch(e) { }
+try { document.createEvent("1"); } catch(e) { }
+}
+</script>
+<body onload=jsfuzzer()>
+<shadow id="htmlvar00001">
+<a id="htmlvar00003">
+</a>
+<a id="htmlvar00009">
+<!-- a -->
new file mode 100644
--- /dev/null
+++ b/layout/style/crashtests/1406222-2.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<style>
+a { display: block; }
+a { columns: 0px; }
+a::first-line {}
+</style>
+<script>
+onload = function() {
+  document.body.offsetWidth;
+  document.body.style.color = "green";
+  document.body.offsetWidth;
+  document.querySelector("a").href = "Something";
+}
+</script>
+<a>Some text</a>
--- a/layout/style/crashtests/crashtests.list
+++ b/layout/style/crashtests/crashtests.list
@@ -236,11 +236,12 @@ load 1402472.html
 load 1403028.html
 load 1403433.html
 load 1403465.html
 load 1403592.html
 load 1403615.html
 load 1403712.html
 load 1404180-1.html
 load 1404316.html
+load 1406222-1.html
+load 1406222-2.html
 load 1404324-1.html
-load 1404324-2.html
-load 1404324-3.html
+load 1404057.html
--- a/layout/style/nsCSSParser.cpp
+++ b/layout/style/nsCSSParser.cpp
@@ -3497,16 +3497,21 @@ CSSParserImpl::ParseMediaQueryExpression
 
   nsMediaExpression *expr = aQuery->NewExpression();
 
   // case insensitive from CSS - must be lower cased
   nsContentUtils::ASCIIToLower(mToken.mIdent);
   nsDependentString featureString(mToken.mIdent, 0);
   uint8_t satisfiedReqFlags = 0;
 
+  if (EnabledState() & (CSSEnabledState::eInUASheets |
+                        CSSEnabledState::eInChrome)) {
+    satisfiedReqFlags |= nsMediaFeature::eUserAgentAndChromeOnly;
+  }
+
   // Strip off "-webkit-" prefix from featureString:
   if (StylePrefs::sWebkitPrefixedAliasesEnabled &&
       StringBeginsWith(featureString, NS_LITERAL_STRING("-webkit-"))) {
     satisfiedReqFlags |= nsMediaFeature::eHasWebkitPrefix;
     featureString.Rebind(featureString, 8);
   }
   if (StylePrefs::sWebkitDevicePixelRatioEnabled) {
     satisfiedReqFlags |= nsMediaFeature::eWebkitDevicePixelRatioPrefEnabled;
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -709,17 +709,17 @@ nsComputedDOMStyle::DoGetStyleContextNoF
           MOZ_ASSERT(presContext, "Should have a prescontext if we have a frame");
           if (presContext && presContext->StyleSet()->IsGecko()) {
             nsStyleSet* styleSet = presContext->StyleSet()->AsGecko();
             return styleSet->ResolveStyleByRemovingAnimation(
                      aElement, result->AsGecko(),
                      eRestyle_AllHintsWithAnimations);
           } else {
             return presContext->StyleSet()->AsServo()->
-              GetBaseContextForElement(aElement, nullptr, presContext,
+              GetBaseContextForElement(aElement, presContext,
                                        aPseudo, pseudoType, result->AsServo());
           }
         }
 
         // this function returns an addrefed style context
         RefPtr<nsStyleContext> ret = result;
         return ret.forget();
       }
@@ -742,17 +742,17 @@ nsComputedDOMStyle::DoGetStyleContextNoF
                                ? StyleRuleInclusion::DefaultOnly
                                : StyleRuleInclusion::All;
     RefPtr<ServoStyleContext> result =
        servoSet->ResolveStyleLazily(aElement, pseudoType, aPseudo, rules);
     if (aAnimationFlag == eWithAnimation) {
       return result.forget();
     }
 
-    return servoSet->GetBaseContextForElement(aElement, nullptr, presContext,
+    return servoSet->GetBaseContextForElement(aElement, presContext,
                                               aPseudo, pseudoType, result);
   }
 
   RefPtr<GeckoStyleContext> parentContext;
   nsIContent* parent = aPseudo ? aElement : aElement->GetParent();
   // Don't resolve parent context for document fragments.
   if (parent && parent->IsElement()) {
     RefPtr<nsStyleContext> p =
--- a/layout/style/nsMediaFeatures.h
+++ b/layout/style/nsMediaFeatures.h
@@ -52,17 +52,19 @@ struct nsMediaFeature
     // media feature to be active.
     eNoRequirements = 0,
     eHasWebkitPrefix = 1 << 0, // Feature name must start w/ "-webkit-", even
                                // before any "min-"/"max-" qualifier.
 
     // Feature is only supported if the pref
     // "layout.css.prefixes.device-pixel-ratio-webkit" is enabled.
     // (Should only be used for -webkit-device-pixel-ratio.)
-    eWebkitDevicePixelRatioPrefEnabled = 1 << 1
+    eWebkitDevicePixelRatioPrefEnabled = 1 << 1,
+    // Feature is only usable from UA sheets and chrome:// urls.
+    eUserAgentAndChromeOnly = 1 << 2,
   };
   uint8_t mReqFlags;
 
   union {
     // In static arrays, it's the first member that's initialized.  We
     // need that to be void* so we can initialize both other types.
     // This member should never be accessed by name.
     const void* mInitializer_;
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -3095,19 +3095,16 @@ pref("layout.css.font-loading-api.enable
 pref("layout.css.control-characters.visible", false);
 #else
 pref("layout.css.control-characters.visible", true);
 #endif
 
 // Is support for column-span enabled?
 pref("layout.css.column-span.enabled", false);
 
-// Is effect of xml:base disabled for style attribute?
-pref("layout.css.style-attr-with-xml-base.disabled", true);
-
 // Are inter-character ruby annotations enabled?
 pref("layout.css.ruby.intercharacter.enabled", false);
 
 // pref for which side vertical scrollbars should be on
 // 0 = end-side in UI direction
 // 1 = end-side in document/content direction
 // 2 = right
 // 3 = left
@@ -3124,16 +3121,17 @@ pref("layout.interruptible-reflow.enable
 // pref to control browser frame rate, in Hz. A value <= 0 means choose
 // automatically based on knowledge of the platform (or 60Hz if no platform-
 // specific information is available).
 pref("layout.frame_rate", -1);
 
 // pref to dump the display list to the log. Useful for debugging drawing.
 pref("layout.display-list.dump", false);
 pref("layout.display-list.dump-content", false);
+pref("layout.display-list.dump-parent", false);
 
 // pref to control whether layout warnings that are hit quite often are enabled
 pref("layout.spammy_warnings.enabled", false);
 
 // Should we fragment floats inside CSS column layout?
 pref("layout.float-fragments-inside-column.enabled", true);
 
 // The number of frames times the frame rate is the time required to
new file mode 100644
--- /dev/null
+++ b/netwerk/base/MozURL.cpp
@@ -0,0 +1,173 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "MozURL.h"
+
+namespace mozilla {
+namespace net {
+
+NS_IMPL_ADDREF(MozURL)
+NS_IMPL_RELEASE(MozURL)
+
+/* static */ nsresult
+MozURL::Init(const nsACString& aSpec, MozURL** aURL)
+{
+  rusturl* ptr = rusturl_new(&aSpec);
+  if (!ptr) {
+    return NS_ERROR_FAILURE;
+  }
+  RefPtr<MozURL> url = new MozURL(ptr);
+  url.forget(aURL);
+  return NS_OK;
+}
+
+nsresult
+MozURL::GetScheme(nsACString& aScheme)
+{
+  return rusturl_get_scheme(mURL.get(), &aScheme);
+}
+
+nsresult
+MozURL::GetSpec(nsACString& aSpec)
+{
+  return rusturl_get_spec(mURL.get(), &aSpec);
+}
+
+nsresult
+MozURL::GetUsername(nsACString& aUser)
+{
+  return rusturl_get_username(mURL.get(), &aUser);
+}
+
+nsresult
+MozURL::GetPassword(nsACString& aPassword)
+{
+  return rusturl_get_password(mURL.get(), &aPassword);
+}
+
+nsresult
+MozURL::GetHostname(nsACString& aHost)
+{
+  return rusturl_get_host(mURL.get(), &aHost);
+}
+
+nsresult
+MozURL::GetPort(int32_t* aPort)
+{
+  return rusturl_get_port(mURL.get(), aPort);
+}
+
+nsresult
+MozURL::GetFilePath(nsACString& aPath)
+{
+  return rusturl_get_filepath(mURL.get(), &aPath);
+}
+
+nsresult
+MozURL::GetQuery(nsACString& aQuery)
+{
+  return rusturl_get_query(mURL.get(), &aQuery);
+}
+
+nsresult
+MozURL::GetRef(nsACString& aRef)
+{
+  return rusturl_get_fragment(mURL.get(), &aRef);
+}
+
+// MozURL::Mutator
+
+// This macro ensures that the mutator is still valid, meaning it hasn't been
+// finalized, and none of the setters have returned an error code.
+#define ENSURE_VALID()                          \
+  PR_BEGIN_MACRO                                \
+    if (mFinalized) {                           \
+      mStatus = NS_ERROR_NOT_AVAILABLE;         \
+    }                                           \
+    if (NS_FAILED(mStatus)) {                   \
+      return *this;                             \
+    }                                           \
+  PR_END_MACRO
+
+nsresult
+MozURL::Mutator::Finalize(MozURL** aURL)
+{
+  if (mFinalized) {
+    return NS_ERROR_NOT_AVAILABLE;
+  }
+  mFinalized = true;
+  if (NS_FAILED(mStatus)) {
+    return mStatus;
+  }
+  RefPtr<MozURL> result = new MozURL(mURL.release());
+  result.forget(aURL);
+  return NS_OK;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetScheme(const nsACString& aScheme)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_scheme(mURL.get(), &aScheme);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetUsername(const nsACString& aUser)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_username(mURL.get(), &aUser);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetPassword(const nsACString& aPassword)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_password(mURL.get(), &aPassword);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetHostname(const nsACString& aHost)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_host(mURL.get(), &aHost);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetFilePath(const nsACString& aPath)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_path(mURL.get(), &aPath);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetQuery(const nsACString& aQuery)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_query(mURL.get(), &aQuery);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetRef(const nsACString& aRef)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_fragment(mURL.get(), &aRef);
+  return *this;
+}
+
+MozURL::Mutator&
+MozURL::Mutator::SetPort(int32_t aPort)
+{
+  ENSURE_VALID();
+  mStatus = rusturl_set_port_no(mURL.get(), aPort);
+  return *this;
+}
+
+} // namespace net
+} // namespace mozilla
new file mode 100644
--- /dev/null
+++ b/netwerk/base/MozURL.h
@@ -0,0 +1,134 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozURL_h__
+#define mozURL_h__
+
+#include "rust-url-capi/src/rust-url-capi.h"
+#include "mozilla/UniquePtr.h"
+
+namespace mozilla {
+namespace net {
+
+// This class provides a thread-safe, immutable URL parser.
+// As long as there is RefPtr to the object, you may use it on any thread.
+// The constructor is private. One can instantiate the object by
+// calling the Init() method as such:
+//
+// RefPtr<MozURL> url;
+// nsAutoCString href("http://example.com/path?query#ref");
+// nsresult rv = MozURL::Init(href, getter_AddRefs(url));
+// if (NS_SUCCEEDED(rv)) { /* use url */ }
+//
+// When changing the URL is needed, you need to call the Mutate() method.
+// This gives you a Mutator object, on which you can perform setter operations.
+// Calling Finalize() on the Mutator will result in a new MozURL and a status
+// code. If any of the setter operations failed, it will be reflected in the
+// status code, and a null MozURL.
+//
+// Note: In the case of a domain name containing non-ascii characters,
+// GetSpec and GetHostname will return the IDNA(punycode) version of the host.
+// Also note that for now, MozURL only supports the UTF-8 charset.
+class MozURL final
+{
+public:
+  static nsresult Init(const nsACString& aSpec, MozURL** aURL);
+
+  nsresult GetScheme(nsACString& aScheme);
+  nsresult GetSpec(nsACString& aSpec);
+  nsresult GetUsername(nsACString& aUser);
+  nsresult GetPassword(nsACString& aPassword);
+  // Will return the hostname of URL. If the hostname is an IPv6 address,
+  // it will be enclosed in square brackets, such as `[::1]`
+  nsresult GetHostname(nsACString& aHost);
+  // Will return the port number, if specified, or -1
+  nsresult GetPort(int32_t* aPort);
+  nsresult GetFilePath(nsACString& aPath);
+  nsresult GetQuery(nsACString& aQuery);
+  nsresult GetRef(nsACString& aRef);
+
+private:
+  explicit MozURL(rusturl* rawPtr)
+    : mURL(rawPtr)
+  {
+  }
+  virtual ~MozURL() {}
+  struct FreeRustURL
+  {
+    void operator()(rusturl* aPtr) { rusturl_free(aPtr); }
+  };
+  mozilla::UniquePtr<rusturl, FreeRustURL> mURL;
+
+public:
+  class MOZ_STACK_CLASS Mutator
+  {
+  public:
+    // Calling this method will result in the creation of a new MozURL that
+    // adopts the mutator's mURL.
+    // If any of the setters failed with an error code, that error code will be
+    // returned here. It will also return an error code if Finalize is called
+    // more than once on the Mutator.
+    nsresult Finalize(MozURL** aURL);
+
+    // These setter methods will return a reference to `this` so that you may
+    // chain setter operations as such:
+    //
+    // RefPtr<MozURL> url2;
+    // nsresult rv = url->Mutate().SetHostname(NS_LITERAL_CSTRING("newhost"))
+    //                            .SetFilePath(NS_LITERAL_CSTRING("new/file/path"))
+    //                            .Finalize(getter_AddRefs(url2));
+    // if (NS_SUCCEEDED(rv)) { /* use url2 */ }
+    Mutator& SetScheme(const nsACString& aScheme);
+    Mutator& SetUsername(const nsACString& aUser);
+    Mutator& SetPassword(const nsACString& aPassword);
+    Mutator& SetHostname(const nsACString& aHost);
+    Mutator& SetFilePath(const nsACString& aPath);
+    Mutator& SetQuery(const nsACString& aQuery);
+    Mutator& SetRef(const nsACString& aRef);
+    Mutator& SetPort(int32_t aPort);
+
+    // This method returns the status code of the setter operations.
+    // If any of the setters failed, it will return the code of the first error
+    // that occured. If none of the setters failed, it will return NS_OK.
+    // This method is useful to avoid doing expensive operations when the result
+    // would not be used because an error occurred. For example:
+    //
+    // RefPtr<MozURL> url2;
+    // MozURL::Mutator mut = url->Mutate();
+    // mut.SetScheme("!@#$"); // this would fail
+    // if (NS_SUCCEDED(mut.GetStatus())) {
+    //   nsAutoCString host(ExpensiveComputing());
+    //   rv = mut.SetHostname(host).Finalize(getter_AddRefs(url2));
+    // }
+    // if (NS_SUCCEEDED(rv)) { /* use url2 */ }
+    nsresult GetStatus() { return mStatus; }
+  private:
+    explicit Mutator(MozURL* url)
+      : mURL(rusturl_clone(url->mURL.get()))
+      , mFinalized(false)
+      , mStatus(NS_OK)
+    {
+    }
+    mozilla::UniquePtr<rusturl, FreeRustURL> mURL;
+    bool mFinalized;
+    nsresult mStatus;
+    friend class MozURL;
+  };
+
+  Mutator Mutate() { return Mutator(this); }
+
+// These are used to avoid inheriting from nsISupports
+public:
+  NS_IMETHOD_(MozExternalRefCountType) AddRef(void);
+  NS_IMETHOD_(MozExternalRefCountType) Release(void);
+  typedef mozilla::TrueType HasThreadSafeRefCnt;
+protected:
+  ::mozilla::ThreadSafeAutoRefCnt mRefCnt;
+  NS_DECL_OWNINGTHREAD
+};
+
+} // namespace net
+} // namespace mozilla
+
+#endif // mozURL_h__
--- a/netwerk/base/moz.build
+++ b/netwerk/base/moz.build
@@ -169,16 +169,17 @@ EXPORTS.mozilla += [
 
 EXPORTS.mozilla.net += [
     'CaptivePortalService.h',
     'ChannelDiverterChild.h',
     'ChannelDiverterParent.h',
     'Dashboard.h',
     'DashboardTypes.h',
     'MemoryDownloader.h',
+    'MozURL.h',
     'PartiallySeekableInputStream.h',
     'Predictor.h',
     'ReferrerPolicy.h',
     'SimpleChannelParent.h',
     'TCPFastOpen.h',
 ]
 
 UNIFIED_SOURCES += [
@@ -187,16 +188,17 @@ UNIFIED_SOURCES += [
     'CaptivePortalService.cpp',
     'ChannelDiverterChild.cpp',
     'ChannelDiverterParent.cpp',
     'Dashboard.cpp',
     'EventTokenBucket.cpp',
     'LoadContextInfo.cpp',
     'LoadInfo.cpp',
     'MemoryDownloader.cpp',
+    'MozURL.cpp',
     'NetworkActivityMonitor.cpp',
     'nsAsyncRedirectVerifyHelper.cpp',
     'nsAsyncStreamCopier.cpp',
     'nsAuthInformationHolder.cpp',
     'nsBase64Encoder.cpp',
     'nsBaseChannel.cpp',
     'nsBaseContentStream.cpp',
     'nsBufferedStreams.cpp',
--- a/netwerk/base/rust-url-capi/src/lib.rs
+++ b/netwerk/base/rust-url-capi/src/lib.rs
@@ -48,16 +48,27 @@ pub extern "C" fn rusturl_new(spec: &nsA
 
   match parser().parse(url_spec) {
     Ok(url) => Box::into_raw(Box::new(url)),
     Err(_) => return ptr::null_mut(),
   }
 }
 
 #[no_mangle]
+pub extern "C" fn rusturl_clone(urlptr: Option<&Url>) -> *mut Url {
+  let url = if let Some(url) = urlptr {
+    url
+  } else {
+    return ptr::null_mut();
+  };
+
+  return Box::into_raw(Box::new(url.clone()));
+}
+
+#[no_mangle]
 pub unsafe extern "C" fn rusturl_free(urlptr: *mut Url) {
   if urlptr.is_null() {
     return;
   }
   Box::from_raw(urlptr);
 }
 
 #[no_mangle]
@@ -140,16 +151,32 @@ pub extern "C" fn rusturl_get_port(urlpt
       // NOTE: Gecko uses -1 to represent the default port
       *port = -1;
     }
   }
   NS_OK
 }
 
 #[no_mangle]
+pub extern "C" fn rusturl_get_filepath(urlptr: Option<&Url>, cont: &mut nsACString) -> nsresult {
+  let url = if let Some(url) = urlptr {
+    url
+  } else {
+    return NS_ERROR_INVALID_ARG;
+  };
+
+  if url.cannot_be_a_base() {
+      cont.assign("");
+  } else {
+      cont.assign(&url[Position::BeforePath..Position::AfterPath]);
+  }
+  NS_OK
+}
+
+#[no_mangle]
 pub extern "C" fn rusturl_get_path(urlptr: Option<&Url>, cont: &mut nsACString) -> nsresult {
   let url = if let Some(url) = urlptr {
     url
   } else {
     return NS_ERROR_INVALID_ARG;
   };
 
   if url.cannot_be_a_base() {
@@ -224,17 +251,17 @@ pub extern "C" fn rusturl_set_username(u
     return NS_ERROR_INVALID_ARG;
   };
 
   let username_ = match str::from_utf8(username) {
     Ok(p) => p,
     Err(_) => return NS_ERROR_MALFORMED_URI, // utf-8 failed
   };
 
-  match quirks::set_protocol(url, username_) {
+  match quirks::set_username(url, username_) {
     Ok(()) => NS_OK,
     Err(()) => NS_ERROR_MALFORMED_URI,
   }
 }
 
 #[no_mangle]
 pub extern "C" fn rusturl_set_password(urlptr: Option<&mut Url>, password: &nsACString) -> nsresult {
   let url = if let Some(url) = urlptr {
--- a/netwerk/base/rust-url-capi/src/rust-url-capi.h
+++ b/netwerk/base/rust-url-capi/src/rust-url-capi.h
@@ -15,24 +15,26 @@ extern "C" {
 //   be non-null.
 // * All rusturl* pointers must refer to pointers which are returned
 //   by rusturl_new, and must be freed with rusturl_free.
 
 // The `rusturl` opaque type is equivalent to the rust type `::url::Url`
 struct rusturl;
 
 rusturl* rusturl_new(const nsACString* spec);
+rusturl* rusturl_clone(const rusturl* url);
 /* unsafe */ void rusturl_free(rusturl* url);
 
 nsresult rusturl_get_spec(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_scheme(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_username(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_password(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_host(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_port(const rusturl* url, int32_t* port);
+nsresult rusturl_get_filepath(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_path(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_query(const rusturl* url, nsACString* cont);
 nsresult rusturl_get_fragment(const rusturl* url, nsACString* cont);
 nsresult rusturl_has_fragment(const rusturl* url, bool* has_fragment);
 
 nsresult rusturl_set_scheme(rusturl* url, const nsACString* scheme);
 nsresult rusturl_set_username(rusturl* url, const nsACString* user);
 nsresult rusturl_set_password(rusturl* url, const nsACString* password);
new file mode 100644
--- /dev/null
+++ b/netwerk/test/gtest/TestMozURL.cpp
@@ -0,0 +1,103 @@
+#include "gtest/gtest.h"
+#include "gtest/MozGTestBench.h" // For MOZ_GTEST_BENCH
+
+#include "nsCOMPtr.h"
+#include "../../base/MozURL.h"
+
+using namespace mozilla::net;
+
+TEST(TestMozURL, Getters)
+{
+  nsAutoCString href("http://user:pass@example.com/path?query#ref");
+  RefPtr<MozURL> url;
+  ASSERT_EQ(MozURL::Init(href, getter_AddRefs(url)), NS_OK);
+
+  nsAutoCString out;
+
+  ASSERT_EQ(url->GetScheme(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("http"));
+
+  ASSERT_EQ(url->GetSpec(out), NS_OK);
+  ASSERT_TRUE(out == href);
+
+  ASSERT_EQ(url->GetUsername(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("user"));
+
+  ASSERT_EQ(url->GetPassword(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("pass"));
+
+  ASSERT_EQ(url->GetHostname(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("example.com"));
+
+  ASSERT_EQ(url->GetFilePath(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("/path"));
+
+  ASSERT_EQ(url->GetQuery(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("query"));
+
+  ASSERT_EQ(url->GetRef(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("ref"));
+
+  url = nullptr;
+  ASSERT_EQ(MozURL::Init(NS_LITERAL_CSTRING(""), getter_AddRefs(url)),
+            NS_ERROR_FAILURE);
+  ASSERT_EQ(url, nullptr);
+}
+
+TEST(TestMozURL, MutatorChain)
+{
+  nsAutoCString href("http://user:pass@example.com/path?query#ref");
+  RefPtr<MozURL> url;
+  ASSERT_EQ(MozURL::Init(href, getter_AddRefs(url)), NS_OK);
+  nsAutoCString out;
+
+  RefPtr<MozURL> url2;
+  ASSERT_EQ(url->Mutate().SetScheme(NS_LITERAL_CSTRING("https"))
+                         .SetUsername(NS_LITERAL_CSTRING("newuser"))
+                         .SetPassword(NS_LITERAL_CSTRING("newpass"))
+                         .SetHostname(NS_LITERAL_CSTRING("test"))
+                         .SetFilePath(NS_LITERAL_CSTRING("new/file/path"))
+                         .SetQuery(NS_LITERAL_CSTRING("bla"))
+                         .SetRef(NS_LITERAL_CSTRING("huh"))
+                         .Finalize(getter_AddRefs(url2)), NS_OK);
+
+  ASSERT_EQ(url2->GetSpec(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("https://newuser:newpass@test/new/file/path?bla#huh"));
+}
+
+TEST(TestMozURL, MutatorFinalizeTwice)
+{
+  nsAutoCString href("http://user:pass@example.com/path?query#ref");
+  RefPtr<MozURL> url;
+  ASSERT_EQ(MozURL::Init(href, getter_AddRefs(url)), NS_OK);
+  nsAutoCString out;
+
+  RefPtr<MozURL> url2;
+  MozURL::Mutator mut = url->Mutate();
+  mut.SetScheme(NS_LITERAL_CSTRING("https")); // Change the scheme to https
+  ASSERT_EQ(mut.Finalize(getter_AddRefs(url2)), NS_OK);
+  ASSERT_EQ(url2->GetSpec(out), NS_OK);
+  ASSERT_TRUE(out.EqualsLiteral("https://user:pass@example.com/path?query#ref"));
+
+  // Test that a second call to Finalize will result in an error code
+  url2 = nullptr;
+  ASSERT_EQ(mut.Finalize(getter_AddRefs(url2)), NS_ERROR_NOT_AVAILABLE);
+  ASSERT_EQ(url2, nullptr);
+}
+
+TEST(TestMozURL, MutatorErrorStatus)
+{
+  nsAutoCString href("http://user:pass@example.com/path?query#ref");
+  RefPtr<MozURL> url;
+  ASSERT_EQ(MozURL::Init(href, getter_AddRefs(url)), NS_OK);
+  nsAutoCString out;
+
+  // Test that trying to set the scheme to a bad value will get you an error
+  MozURL::Mutator mut = url->Mutate();
+  mut.SetScheme(NS_LITERAL_CSTRING("!@#$%^&*("));
+  ASSERT_EQ(mut.GetStatus(), NS_ERROR_MALFORMED_URI);
+
+  // Test that the mutator will not work after one faulty operation
+  mut.SetScheme(NS_LITERAL_CSTRING("test"));
+  ASSERT_EQ(mut.GetStatus(), NS_ERROR_MALFORMED_URI);
+}
--- a/netwerk/test/gtest/moz.build
+++ b/netwerk/test/gtest/moz.build
@@ -2,16 +2,17 @@
 # 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/.
 
 UNIFIED_SOURCES += [
     'TestHeaders.cpp',
     'TestHttpAuthUtils.cpp',
+    'TestMozURL.cpp',
     'TestPartiallySeekableInputStream.cpp',
     'TestProtocolProxyService.cpp',
     'TestStandardURL.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul-gtest'
--- a/parser/html/nsHtml5StreamParser.cpp
+++ b/parser/html/nsHtml5StreamParser.cpp
@@ -884,18 +884,18 @@ public:
   }
 
   nsCOMPtr<nsIDocShell> mDocShell;
 };
 
 nsresult
 nsHtml5StreamParser::OnStartRequest(nsIRequest* aRequest, nsISupports* aContext)
 {
-  NS_PRECONDITION(STREAM_NOT_STARTED == mStreamState,
-                  "Got OnStartRequest when the stream had already started.");
+  MOZ_RELEASE_ASSERT(STREAM_NOT_STARTED == mStreamState,
+                     "Got OnStartRequest when the stream had already started.");
   NS_PRECONDITION(
     !mExecutor->HasStarted(),
     "Got OnStartRequest at the wrong stage in the executor life cycle.");
   NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
   if (mObserver) {
     mObserver->OnStartRequest(aRequest, aContext);
   }
   mRequest = aRequest;
@@ -1049,18 +1049,18 @@ nsHtml5StreamParser::CheckListenerChain(
   }
   return rv;
 }
 
 void
 nsHtml5StreamParser::DoStopRequest()
 {
   NS_ASSERTION(IsParserThread(), "Wrong thread!");
-  NS_PRECONDITION(STREAM_BEING_READ == mStreamState,
-                  "Stream ended without being open.");
+  MOZ_RELEASE_ASSERT(STREAM_BEING_READ == mStreamState,
+                     "Stream ended without being open.");
   mTokenizerMutex.AssertCurrentThreadOwns();
 
   if (IsTerminated()) {
     return;
   }
 
   mStreamState = STREAM_ENDED;
 
@@ -1153,18 +1153,18 @@ nsHtml5StreamParser::OnStopRequest(nsIRe
   }
   return NS_OK;
 }
 
 void
 nsHtml5StreamParser::DoDataAvailable(const uint8_t* aBuffer, uint32_t aLength)
 {
   NS_ASSERTION(IsParserThread(), "Wrong thread!");
-  NS_PRECONDITION(STREAM_BEING_READ == mStreamState,
-                  "DoDataAvailable called when stream not open.");
+  MOZ_RELEASE_ASSERT(STREAM_BEING_READ == mStreamState,
+                     "DoDataAvailable called when stream not open.");
   mTokenizerMutex.AssertCurrentThreadOwns();
 
   if (IsTerminated()) {
     return;
   }
 
   uint32_t writeCount;
   nsresult rv;
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1135,9 +1135,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 = 479;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1515606006612000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1515909924308000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -1,269 +1,361 @@
 0day.su: could not connect to host
-0x65.net: could not connect to host
+10og.de: could not connect to host
 174.net.nz: could not connect to host
+27728522.com: could not connect to host
+360live.fr: could not connect to host
+47tech.com: could not connect to host
 4loc.us: could not connect to host
 4x4.lk: could not connect to host
 724go.com: could not connect to host
+8560.be: could not connect to host
 8887999.com: could not connect to host
 91-freedom.com: could not connect to host
+aamwa.com: could not connect to host
 abcdef.be: could not connect to host
 abolition.co: could not connect to host
 acrossgw.com: could not connect to host
-advanced-online.eu: could not connect to host
+addeekt.com: could not connect to host
 aevpn.org: could not connect to host
-aljammaz.holdings: could not connect to host
+aivd.lol: could not connect to host
+akul.co.in: could not connect to host
+altestore.com: could not connect to host
 amua.fr: could not connect to host
-appchive.net: could not connect to host
 arent.kz: could not connect to host
-arlet.click: could not connect to host
+arnetdigital.eu: could not connect to host
+arocloud.de: could not connect to host
 assdecoeur.org: could not connect to host
 astral.gq: could not connect to host
+avi9526.pp.ua: could not connect to host
 azabani.com: could not connect to host
+backschues.com: could not connect to host
+backschues.net: could not connect to host
 balonmano.co: could not connect to host
+bbb1991.me: could not connect to host
 bbdos.ru: could not connect to host
+beamitapp.com: could not connect to host
 berna.fr: could not connect to host
+bianinapiccanovias.com: could not connect to host
+biathloncup.ru: could not connect to host
 bigerbio.com: could not connect to host
+binsp.net: could not connect to host
 bip.gov.sa: could not connect to host
+black-khat.com: could not connect to host
+blumen-garage.de: could not connect to host
+bouncourseplanner.net: could not connect to host
 bowlsheet.com: could not connect to host
-bragaweb.com.br: could not connect to host
-branw.xyz: could not connect to host
-btxiaobai.com: could not connect to host
+brettabel.com: could not connect to host
+brooke-fan.com: could not connect to host
 buyshoe.org: could not connect to host
 by1898.com: could not connect to host
 cake-time.co.uk: could not connect to host
+capellidipremoli.com: could not connect to host
 carloshmm.stream: could not connect to host
+caroli.net: could not connect to host
+casperpanel.com: could not connect to host
 cbdev.de: could not connect to host
+chez-janine.de: could not connect to host
 chloehorler.com: could not connect to host
+chmurakotori.ml: could not connect to host
 chonghe.org: could not connect to host
 cielly.com: could not connect to host
 cirfi.com: could not connect to host
 clearviewwealthprojector.com.au: could not connect to host
+cloudbleed.info: could not connect to host
 cnlic.com: could not connect to host
-cogitoltd.com: could not connect to host
 cpaneltips.com: could not connect to host
+csgo77.com: could not connect to host
 cyberxpert.nl: could not connect to host
 cypherpunk.ws: could not connect to host
 czlx.co: could not connect to host
-danielthompson.info: could not connect to host
+dahlberg.cologne: could not connect to host
+datorb.com: could not connect to host
+dcc.moe: could not connect to host
 de-servers.de: could not connect to host
 decoyrouting.com: could not connect to host
+derivativeshub.pro: could not connect to host
 dev-talk.eu: could not connect to host
 digioccumss.ddns.net: could not connect to host
 dijks.com: could not connect to host
+dingcc.xyz: could not connect to host
 disco-crazy-world.de: could not connect to host
+dkravchenko.su: could not connect to host
+donotspellitgav.in: could not connect to host
+dopply.com: could not connect to host
 dreizwosechs.de: could not connect to host
+drkmtrx.xyz: could not connect to host
 duo.money: could not connect to host
-dylanknoll.ca: could not connect to host
+dyeager.org: could not connect to host
+dyyn.de: could not connect to host
 ectora.com: could not connect to host
 edit.yahoo.com: could not connect to host
-eductf.org: could not connect to host
+educatoys.com.br: could not connect to host
 ehuber.info: could not connect to host
-elars.de: could not connect to host
-envygeeks.io: could not connect to host
+elhall.pro: could not connect to host
+endlessdiy.ca: could not connect to host
 estan.cn: could not connect to host
 eurostrategy.vn.ua: could not connect to host
-exceltobarcode.com: could not connect to host
 faxite.com: could not connect to host
-fed51.com: could not connect to host
+ficklenote.net: could not connect to host
 filhomes.ph: could not connect to host
 firebaseio.com: could not connect to host
+firexarxa.de: could not connect to host
 fixate.ru: could not connect to host
-flyspace.ga: could not connect to host
+fixmyglitch.com: could not connect to host
+forex.ee: could not connect to host
+forexee.com: could not connect to host
 fossewayflowers.co.uk: could not connect to host
 fossewayflowers.com: could not connect to host
 foxmay.co.uk: could not connect to host
-front-end.dog: could not connect to host
 fuckav.ru: could not connect to host
+fukuoka-cityliner.jp: could not connect to host
 fuliydys.com: could not connect to host
 funfunmstdn.tokyo: could not connect to host
 funideas.org: could not connect to host
+funksteckdosen24.de: could not connect to host
 fyol.pw: could not connect to host
 g4w.co: could not connect to host
 gam3rs.de: could not connect to host
+gbcsummercamps.com: could not connect to host
 getcolq.com: could not connect to host
 getwarden.net: could not connect to host
+gevaulug.fr: could not connect to host
 gfoss.gr: could not connect to host
+globalgivingtime.com: could not connect to host
+gmantra.org: could not connect to host
 gongjuhao.com: could not connect to host
 google: could not connect to host
+gottfridsberg.org: could not connect to host
 grandlinecsk.ru: could not connect to host
 gritte.net: could not connect to host
 gvt2.com: could not connect to host
 gvt3.com: could not connect to host
-haucke.xyz: could not connect to host
-hekeki.com: could not connect to host
+hallelujahsoftware.com: could not connect to host
+heijblok.com: could not connect to host
 here.ml: could not connect to host
-hetmer.com: could not connect to host
-hetmer.cz: could not connect to host
-hetmer.net: could not connect to host
 hg718.com: could not connect to host
 hg881.com: could not connect to host
+hiwiki.tk: could not connect to host
 hoodoo.io: could not connect to host
 hoodoo.tech: could not connect to host
 hopesb.org: could not connect to host
-ideaman924.com: could not connect to host
+hostam.link: could not connect to host
 ifxnet.com: could not connect to host
+iltec-prom.ru: could not connect to host
+iltec.ru: could not connect to host
+inexpensivecomputers.net: could not connect to host
+injust.me: could not connect to host
 ipv6.watch: could not connect to host
 iskai.net: could not connect to host
-ixio.cz: could not connect to host
+isoroc-nidzica.pl: could not connect to host
 javascriptlab.fr: could not connect to host
 jeffreymagee.com: could not connect to host
+jena.space: could not connect to host
 jhburton.co.uk: could not connect to host
 jie.dance: could not connect to host
+jimmynelson.com: could not connect to host
 just-pools.co.za: could not connect to host
+justmy.website: could not connect to host
+kamikaichimaru.com: could not connect to host
 kapo.info: could not connect to host
-kedibizworx.com: could not connect to host
 kenrogers.co: could not connect to host
+kevinmeijer.nl: could not connect to host
 kieranweightman.me: could not connect to host
-knapp.noip.me: could not connect to host
+knep.me: could not connect to host
 kostya.net: could not connect to host
+kousaku.jp: could not connect to host
 kozmik.co: could not connect to host
 kteen.info: could not connect to host
 lacasa.fr: could not connect to host
-ladylucks.co.uk: could not connect to host
-lakewoodcomputerservices.com: could not connect to host
-lastharo.com: could not connect to host
+lathamlabs.com: could not connect to host
+lathamlabs.net: could not connect to host
+lathamlabs.org: could not connect to host
 legitaxi.com: could not connect to host
 leninalbertop.com.ve: could not connect to host
 lezdomsm.com: could not connect to host
 lheinrich.org: could not connect to host
+libscode.com: could not connect to host
 linksanitizer.com: could not connect to host
 littleservice.cn: could not connect to host
 livnev.me: could not connect to host
 logcat.info: could not connect to host
 logimagine.com: could not connect to host
 luav.org: could not connect to host
 lukas-oppermann.de: could not connect to host
 lukasoppermann.com: could not connect to host
 lukasoppermann.de: could not connect to host
+lunix.io: could not connect to host
+maartenterpstra.xyz: could not connect to host
 macedopesca.com.br: could not connect to host
-machon.biz: could not connect to host
-mallach.net: could not connect to host
+madreacqua.org: could not connect to host
+markprof.ru: could not connect to host
+martin-mattel.com: could not connect to host
 martinrogalla.com: could not connect to host
-matillat.ovh: could not connect to host
-maxhoechtl.at: could not connect to host
 mc-team.org: could not connect to host
+mcdanieldevelopmentservices.com: could not connect to host
 mcea-hld.jp: could not connect to host
 metachris.com: could not connect to host
-milktea.info: could not connect to host
+minakov.pro: could not connect to host
 mingy.ddns.net: could not connect to host
+mmstick.tk: could not connect to host
+modded-minecraft-server-list.com: could not connect to host
 moderntld.net: could not connect to host
-mygalgame.com: could not connect to host
-mzlog.win: could not connect to host
+mosaique-lachenaie.fr: could not connect to host
+muahahahaha.co.uk: could not connect to host
+muj-svet.cz: could not connect to host
+myday.eu.com: could not connect to host
+mzorn.photography: could not connect to host
 navdeep.ca: could not connect to host
 nba2k.cn: could not connect to host
 nba2k.com.cn: could not connect to host
 nbalive.cn: could not connect to host
 ncdesigns-studio.com: could not connect to host
 necesitodinero.org: could not connect to host
 negai.moe: could not connect to host
-nex.sx: could not connect to host
+nevolution.me: could not connect to host
 nginxyii.tk: could not connect to host
 nikolasbradshaw.com: could not connect to host
-notablog.xyz: could not connect to host
-notarobot.fr: could not connect to host
+nostraspace.com: could not connect to host
 nqesh.com: could not connect to host
 nsbfalconacademy.org: could not connect to host
-nstd.net: could not connect to host
+nup.pw: could not connect to host
+oblikdom.pro: could not connect to host
 oliverspringer.eu: could not connect to host
 onewebdev.info: could not connect to host
 onstud.com: could not connect to host
 opengg.me: could not connect to host
+optimist.bg: could not connect to host
+oranges.tokyo: could not connect to host
 oscsdp.cz: could not connect to host
-oskuro.net: could not connect to host
 osterkraenzchen.de: could not connect to host
 oxygaming.com: could not connect to host
 oxymc.com: could not connect to host
-parolu.io: could not connect to host
+pandymic.com: could not connect to host
 pascalchristen.ch: could not connect to host
 pe-bank.co.jp: could not connect to host
 pengisatelier.net: could not connect to host
 perkbrian.com: could not connect to host
+persjrp.ca: could not connect to host
 persoform.ch: could not connect to host
-phus.lu: could not connect to host
 picallo.es: could not connect to host
+pkov.cz: could not connect to host
 plaasprodukte.com: could not connect to host
 plus1s.tk: could not connect to host
 polit.im: could not connect to host
 poolinstallers.co.za: could not connect to host
-postpot.co.kr: could not connect to host
+pouets.ovh: could not connect to host
 projectunity.io: could not connect to host
 proxydesk.eu: could not connect to host
 qnatek.org: could not connect to host
 qto.net: could not connect to host
+quantumfurball.net: could not connect to host
 rainbin.com: could not connect to host
 real-compare.com: could not connect to host
 reignsphere.net: could not connect to host
-rfeif.org: could not connect to host
-rorymcdaniel.com: could not connect to host
-ruanmi.de: could not connect to host
+reinaertvandecruys.me: could not connect to host
+revivingtheredeemed.org: could not connect to host
+rezexpert.com: could not connect to host
+rolodato.com: could not connect to host
+sallysubs.com: could not connect to host
+sanatrans.com: could not connect to host
+santojuken.co.jp: could not connect to host
 sarndipity.com: could not connect to host
-scottainslie.me.uk: could not connect to host
+security201.co.uk: could not connect to host
+securitymap.wiki: could not connect to host
 self-signed.com: could not connect to host
 semantheme.fr: could not connect to host
 shadowplus.net: could not connect to host
 shadowrocket.net: could not connect to host
+shag-shag.ru: could not connect to host
 sharevari.com: could not connect to host
-sharperedge.pw: could not connect to host
-sharperedgecomputers.com: could not connect to host
 shavingks.com: could not connect to host
 shirakaba-cc.com: could not connect to host
+simbolo.co.uk: could not connect to host
 simonkjellberg.com: could not connect to host
-sitc.sk: could not connect to host
+simphony.cz: could not connect to host
 slaughterhouse.fr: could not connect to host
+snille.com: could not connect to host
+socialworkout.com: could not connect to host
+socialworkout.net: could not connect to host
+socialworkout.org: could not connect to host
+socialworkout.tv: could not connect to host
 somali-derp.com: could not connect to host
-sorincocorada.ro: could not connect to host
+sotiran.com: could not connect to host
 soubriquet.org: could not connect to host
 soulema.com: could not connect to host
+spicywombat.com: could not connect to host
 sputnik1net.org: could not connect to host
+sss3s.com: could not connect to host
+stairfallgames.com: could not connect to host
+stitthappens.com: could not connect to host
+stytt.com: could not connect to host
 surdam.casa: could not connect to host
 sviz.pro: could not connect to host
+swedishhost.com: could not connect to host
+swedishhost.se: could not connect to host
+taberu-fujitsubo.com: could not connect to host
+taidu.news: could not connect to host
 taskotron.stg.fedoraproject.org: could not connect to host
+tcpweb.net: could not connect to host
 tebieer.com: could not connect to host
 tech-blog.fr: could not connect to host
 tenispopular.com: could not connect to host
+tepitus.de: could not connect to host
+terminalvelocity.co.nz: could not connect to host
+theprivacysolution.com: could not connect to host
 thesehighsandlows.com: could not connect to host
-thompsonfamily.cloud: could not connect to host
+thinkcash.nl: could not connect to host
 tiliaze.info: could not connect to host
 tiliaze.net: could not connect to host
+totch.de: could not connect to host
 totot.net: could not connect to host
-traderjoe-cloud.de: could not connect to host
-trajano.net: could not connect to host
+tradiz.org: could not connect to host
 transcendmotor.sg: could not connect to host
-tstrubberstamp.com: could not connect to host
+trekfriend.com: could not connect to host
 turn-sticks.com: could not connect to host
-vcelin-na-doliku.cz: could not connect to host
+tvoru.com.ua: could not connect to host
+underskatten.tk: could not connect to host
+unicorncloud.org: could not connect to host
+uptownlocators.com: could not connect to host
 vea.re: could not connect to host
 venmos.com: could not connect to host
+viditut.com: could not connect to host
 vilog.me: could not connect to host
-viralpop.it: could not connect to host
+visionless.me: could not connect to host
 vitapingu.de: could not connect to host
 vmgirls.com: could not connect to host
 waffle.at: could not connect to host
+warlions.info: could not connect to host
 watchweasel.com: could not connect to host
+weareincognito.org: could not connect to host
+web-wave.jp: could not connect to host
 webart-factory.de: could not connect to host
 webduck.nl: could not connect to host
+websitesdallas.com: could not connect to host
+weed.ren: could not connect to host
 weicn.org: could not connect to host
 welby.cat: could not connect to host
-wer-kommt-her.de: could not connect to host
 werhatunsverraten.eu: could not connect to host
-wheeler.kiwi.nz: could not connect to host
+whilsttraveling.com: could not connect to host
+wm-talk.net: could not connect to host
 wnnc.co.uk: could not connect to host
 wordpresspro.cl: could not connect to host
 www-8887999.com: could not connect to host
+www.simbolo.co.uk: could not connect to host
 xa1.uk: could not connect to host
 xecureit.com: could not connect to host
+xs2a.no: could not connect to host
 xtremenutrition.com.br: could not connect to host
 xyfun.net: could not connect to host
-zbetcheck.in: could not connect to host
 zenfusion.fr: could not connect to host
 zenghx.tk: could not connect to host
 zmk.fr: could not connect to host
 zulu7.com: could not connect to host
+zuviel.space: could not connect to host
 zzw.ca: could not connect to host
 0-1.party: did not receive HSTS header
 0005.com: could not connect to host
 0005aa.com: could not connect to host
 007sascha.de: did not receive HSTS header
 020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 0222aa.com: did not receive HSTS header
 048.ag: could not connect to host
@@ -319,30 +411,30 @@ 1cover.com: could not connect to host
 1k8b.com: could not connect to host
 1password.com: did not receive HSTS header
 1s.tn: could not connect to host
 1stcapital.com.sg: did not receive HSTS header
 1xcess.com: did not receive HSTS header
 1years.cc: could not connect to host
 206rc.net: max-age too low: 2592000
 20hs.cn: did not receive HSTS header
-21.co.uk: did not receive HSTS header
 21lg.co: could not connect to host
 22228522.com: could not connect to host
 247quickbooks.com: did not receive HSTS header
 24hourpaint.com: could not connect to host
 24sihu.com: could not connect to host
 25daysof.io: could not connect to host
 2859cc.com: could not connect to host
 2acbi-asso.fr: did not receive HSTS header
 2bizi.ru: could not connect to host
 2brokegirls.org: could not connect to host
 2carpros.com: did not receive HSTS header
 2intermediate.co.uk: did not receive HSTS header
 2or3.tk: could not connect to host
+2smart4food.com: did not receive HSTS header
 2ss.jp: could not connect to host
 300651.ru: did not receive HSTS header
 300m.com: did not receive HSTS header
 300mbmovies4u.cc: could not connect to host
 301.website: could not connect to host
 302.nyc: could not connect to host
 314166.com: did not receive HSTS header
 32ph.com: could not connect to host
@@ -364,31 +456,31 @@ 3d-bastler.de: could not connect to host
 3dcart.com: did not receive HSTS header
 3delivered.com: could not connect to host
 3dproteinimaging.com: did not receive HSTS header
 3sreporting.com: did not receive HSTS header
 404.sh: could not connect to host
 404404.info: could not connect to host
 420dongstorm.com: could not connect to host
 42ms.org: could not connect to host
-441jj.com: could not connect to host
 44448522.com: could not connect to host
 4448522.com: could not connect to host
 4455software.com: did not receive HSTS header
 44957.com: could not connect to host
 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
 4eyes.ch: did not receive HSTS header
 4miners.net: could not connect to host
 4ourty2.org: did not receive HSTS header
 4sqsu.eu: could not connect to host
 4w-performers.link: could not connect to host
 50millionablaze.org: could not connect to host
+513vpn.net: did not receive HSTS header
 517vpn.cn: could not connect to host
 540.co: did not receive HSTS header
 54bf.com: could not connect to host
 55558522.com: could not connect to host
 56ct.com: could not connect to host
 5piecesofadvice.com: could not connect to host
 5w5.la: could not connect to host
 60ych.net: did not receive HSTS header
@@ -440,29 +532,29 @@ 9118b.com: could not connect to host
 911911.pw: could not connect to host
 922.be: could not connect to host
 960news.ca: could not connect to host
 9651678.ru: could not connect to host
 98laba.com: could not connect to host
 98laba.net: could not connect to host
 99511.fi: did not receive HSTS header
 99998522.com: could not connect to host
+9jadirect.com: did not receive HSTS header
 9point6.com: could not connect to host
-9ss6.com: did not receive HSTS header
 9tolife.be: did not receive HSTS header
 a-intel.com: could not connect to host
 a-plus.space: could not connect to host
 a-rickroll-n.pw: could not connect to host
 a-theme.com: could not connect to host
 a.ai: did not receive HSTS header
 a1-autopartsglasgow.com: did not receive HSTS header
 a3workshop.swiss: could not connect to host
 a9c.co: could not connect to host
 aa7733.com: could not connect to host
-aaeblog.com: did not receive HSTS header
+aaeblog.com: could not connect to host
 aaeblog.net: did not receive HSTS header
 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
@@ -482,30 +574,30 @@ aboutict.nl: max-age too low: 0
 aboutlegal.nl: max-age too low: 0
 aboutmedia.nl: max-age too low: 0
 aboutmyip.info: did not receive HSTS header
 aboutspice.com: did not receive HSTS header
 aboutyou-deals.de: could not connect to host
 absinthium.ch: could not connect to host
 abt.de: did not receive HSTS header
 abtom.de: did not receive HSTS header
-abury.fr: could not connect to host
-abury.me: could not connect to host
+abury.fr: did not receive HSTS header
+abury.me: did not receive HSTS header
 acabadosboston.com: could not connect to host
 academialowcost.com.br: did not receive HSTS header
 academicenterprise.org: could not connect to host
 acbc.ie: max-age too low: 0
 accelerole.com: did not receive HSTS header
 accelight.co.jp: did not receive HSTS header
 accelight.jp: did not receive HSTS header
 access-sofia.org: did not receive HSTS header
 accommodation-berry.com.au: max-age too low: 300
 accountradar.com: could not connect to host
 accounts-p.com: could not connect to host
-acgmoon.org: could not connect to host
+acgmoon.org: did not receive HSTS header
 acheirj.com.br: did not receive HSTS header
 acheritage.co.uk: could not connect to host
 acisonline.net: did not receive HSTS header
 acoffeeshops.com: could not connect to host
 acorns.com: did not receive HSTS header
 acr.im: could not connect to host
 acrepairdrippingsprings.com: could not connect to host
 acritelli.com: did not receive HSTS header
@@ -589,17 +681,17 @@ aids.gov: did not receive HSTS header
 aifreeze.ru: could not connect to host
 aify.eu: could not connect to host
 ainrb.com: did not receive HSTS header
 aip-marine.com: could not connect to host
 aiponne.com: did not receive HSTS header
 aircomms.com: did not receive HSTS header
 airlea.com: could not connect to host
 airlinecheckins.com: did not receive HSTS header
-airproto.com: could not connect to host
+airproto.com: did not receive HSTS header
 aishnair.com: could not connect to host
 aisle3.space: 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
 ajouin.com: could not connect to host
 aka.my: did not receive HSTS header
 akboy.pw: could not connect to host
@@ -635,17 +727,17 @@ alexandre.sh: did not receive HSTS heade
 alexbaker.org: did not receive HSTS header
 alexdodge.ca: could not connect to host
 alexvetter.de: could not connect to host
 alfa24.pro: could not connect to host
 alfredxing.com: did not receive HSTS header
 alilialili.ga: could not connect to host
 alittlebitcheeky.com: did not receive HSTS header
 aljmz.com: could not connect to host
-alkami.com: did not receive HSTS header
+alkami.com: could not connect to host
 all-subtitles.com: could not connect to host
 all.tf: could not connect to host
 alldaymonitoring.com: could not connect to host
 allemobieleproviders.nl: did not receive HSTS header
 allinnote.com: could not connect to host
 allmbw.com: could not connect to host
 allmystery.de: did not receive HSTS header
 allo-symo.fr: did not receive HSTS header
@@ -689,31 +781,30 @@ american-truck-simulator.de: could not c
 american-truck-simulator.net: could not connect to host
 americanworkwear.nl: did not receive HSTS header
 amigogeek.net: could not connect to host
 amilx.com: could not connect to host
 amilx.org: could not connect to host
 amimoto-ami.com: max-age too low: 3153600
 amishsecurity.com: could not connect to host
 amitse.com: did not receive HSTS header
-amitube.com: did not receive HSTS header
+amitube.com: could not connect to host
 amlvfs.net: could not connect to host
 ammoulianiapartments.com: did not receive HSTS header
 amo-entreprise-et-commerce.fr: could not connect to host
 amoory.com: could not connect to host
 amoozesh98.com: did not receive HSTS header
 amoozesh98.ir: did not receive HSTS header
 amorimendes.com.br: did not receive HSTS header
 amri.nl: did not receive HSTS header
 anabol.nl: could not connect to host
 anadoluefessporkulubu.org: could not connect to host
 anagra.ms: could not connect to host
 analytic-s.ml: did not receive HSTS header
 analyticsinmotion.net: could not connect to host
-anarchistischegroepnijmegen.nl: did not receive HSTS header
 ancient-gates.de: could not connect to host
 ancientkarma.com: could not connect to host
 andere-gedanken.net: max-age too low: 10
 anderslind.dk: could not connect to host
 andre-ballensiefen.de: did not receive HSTS header
 andreasbreitenlohner.de: max-age too low: 600000
 andreasfritz-fotografie.de: could not connect to host
 andreastoneman.com: could not connect to host
@@ -744,17 +835,17 @@ animesfusion.com.br: could not connect t
 animesharp.com: could not connect to host
 animurecs.com: did not receive HSTS header
 aniplus.cf: could not connect to host
 aniplus.gq: could not connect to host
 aniplus.ml: could not connect to host
 anitklib.ml: could not connect to host
 ankakaak.com: could not connect to host
 ankaraprofesyonelnakliyat.com: did not receive HSTS header
-ankaraprofesyonelnakliyat.com.tr: could not connect to host
+ankaraprofesyonelnakliyat.com.tr: did not receive HSTS header
 ankarayilmaznakliyat.com: did not receive HSTS header
 ankarayucelnakliyat.com: did not receive HSTS header
 annabellaw.com: did not receive HSTS header
 anomaly.ws: did not receive HSTS header
 anongoth.pl: could not connect to host
 anonymo.co.uk: could not connect to host
 anonymo.uk: could not connect to host
 anonymousstatecollegelulzsec.com: could not connect to host
@@ -780,26 +871,25 @@ anttitenhunen.com: could not connect to 
 anycoin.me: could not connect to host
 anymetrix.io: did not receive HSTS header
 aocast.info: could not connect to host
 aojf.fr: could not connect to host
 aov.io: could not connect to host
 aozora.moe: could not connect to host
 apachelounge.com: did not receive HSTS header
 apaginastore.com.br: did not receive HSTS header
-aparaatti.org: could not connect to host
 apeasternpower.com: could not connect to host
 api.mega.co.nz: could not connect to host
 apibot.de: could not connect to host
 apis.google.com: did not receive HSTS header (error ignored - included regardless)
 apis.world: could not connect to host
 apm.com.tw: did not receive HSTS header
 apmg-certified.com: did not receive HSTS header
 apmg-cyber.com: did not receive HSTS header
-apnakliyat.com: could not connect to host
+apnakliyat.com: did not receive HSTS header
 apolloyl.com: could not connect to host
 aponkral.net: max-age too low: 0
 aponkral.site: could not connect to host
 aponkralsunucu.com: could not connect to host
 aponow.de: did not receive HSTS header
 app: could not connect to host
 app-arena.com: did not receive HSTS header
 app.lookout.com: did not receive HSTS header
@@ -938,17 +1028,17 @@ autokovrik-diskont.ru: did not receive H
 automobiles5.com: could not connect to host
 autotsum.com: could not connect to host
 autumnwindsagility.com: could not connect to host
 auverbox.ovh: could not connect to host
 aux-arts-de-la-table.com: did not receive HSTS header
 auxetek.se: could not connect to host
 auxiliumincrementum.co.uk: could not connect to host
 av.de: did not receive HSTS header
-avadatravel.com: could not connect to host
+avadatravel.com: did not receive HSTS header
 avantmfg.com: did not receive HSTS header
 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
 aviodeals.com: could not connect to host
 avonlearningcampus.com: could not connect to host
 avqueen.cn: did not receive HSTS header
@@ -982,17 +1072,17 @@ babymasaze.cz: did not receive HSTS head
 babysaying.me: could not connect to host
 bacchanallia.com: could not connect to host
 back-bone.nl: did not receive HSTS header
 bad.show: could not connect to host
 badcronjob.com: could not connect to host
 badenhard.eu: could not connect to host
 badkamergigant.com: could not connect to host
 badlink.org: could not connect to host
-baff.lu: did not receive HSTS header
+baff.lu: could not connect to host
 bagiobella.com: max-age too low: 0
 baiduaccount.com: could not connect to host
 bailbondsaffordable.com: did not receive HSTS header
 bair.io: could not connect to host
 bakhansen.com: did not receive HSTS header
 bakingstone.com: could not connect to host
 bakkerdesignandbuild.com: did not receive HSTS header
 balcan-underground.net: could not connect to host
@@ -1055,27 +1145,25 @@ beastlog.tk: could not connect to host
 beastowner.com: did not receive HSTS header
 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
-beekeeper.supplies: did not receive HSTS header
-beelen.fr: could not connect to host
+bedrijvenadministratie.nl: could not connect to host
 beerboutique.com.br: did not receive HSTS header
 beetleroadstories.com: could not connect to host
 befundup.com: could not connect to host
 behere.be: could not connect to host
 behoerden-online-dienste.de: did not receive HSTS header
 beholdthehurricane.com: could not connect to host
 beichtgenerator.de: did not receive HSTS header
-beier.io: did not receive HSTS header
+beier.io: could not connect to host
 beikeil.de: did not receive HSTS header
 belairsewvac.com: could not connect to host
 belewpictures.com: did not receive HSTS header
 belize-firmengruendung.com: could not connect to host
 belliash.eu.org: did not receive HSTS header
 belltower.io: could not connect to host
 belmontprom.com: could not connect to host
 bemyvictim.com: max-age too low: 2678400
@@ -1095,17 +1183,16 @@ berger.work: could not connect to host
 bergland-seefeld.at: did not receive HSTS header
 berlatih.com: did not receive HSTS header
 berlinleaks.com: could not connect to host
 bernieware.de: could not connect to host
 berrymark.be: max-age too low: 0
 besixdouze.world: could not connect to host
 besnik.de: could not connect to host
 besola.de: did not receive HSTS header
-best-wallpaper.net: could not connect to host
 bestbeards.ca: could not connect to host
 bestbridal.top: could not connect to host
 bestcellular.com: did not receive HSTS header
 besthost.cz: did not receive HSTS header
 bestmodels.su: did not receive HSTS header
 bestof1001.de: did not receive HSTS header
 bestorangeseo.com: could not connect to host
 bestschools.top: could not connect to host
@@ -1135,17 +1222,16 @@ bf.am: max-age too low: 0
 bfd.vodka: did not receive HSTS header
 bfear.com: could not connect to host
 bfelob.gov: max-age too low: 86400
 bffm.biz: could not connect to host
 bgcparkstad.nl: did not receive HSTS header
 bgmn.net: max-age too low: 0
 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 119"  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
 biego.cn: did not receive HSTS header
 bielsa.me: could not connect to host
 bienenblog.cc: could not connect to host
 bierbringer.at: could not connect to host
 big-black.de: did not receive HSTS header
 bigbbqbrush.bid: could not connect to host
@@ -1182,17 +1268,17 @@ bitcoinworld.me: could not connect to ho
 bitconcepts.co.uk: could not connect to host
 biteoftech.com: did not receive HSTS header
 bitf.ly: could not connect to host
 bitfactory.ws: could not connect to host
 bitfarm-archiv.com: did not receive HSTS header
 bitfarm-archiv.de: did not receive HSTS header
 bitheus.com: could not connect to host
 bithosting.io: did not receive HSTS header
-bitlish.com: max-age too low: 86400
+bitlish.com: did not receive HSTS header
 bitnet.io: did not receive HSTS header
 bitrage.de: could not connect to host
 bitraum.io: could not connect to host
 bitsafe.systems: could not connect to host
 bitvigor.com: could not connect to host
 bitwrought.net: could not connect to host
 bivsi.com: could not connect to host
 bizcms.com: did not receive HSTS header
@@ -1269,16 +1355,17 @@ booth.in.th: could not connect to host
 bootjp.me: did not receive HSTS header
 borderlinegroup.com: could not connect to host
 boringsecurity.net: could not connect to host
 boris.one: did not receive HSTS header
 boris64.net: did not receive HSTS header
 borscheid-wenig.com: did not receive HSTS header
 boschee.net: could not connect to host
 botox.bz: did not receive HSTS header
+bounceboxspc.com: did not receive HSTS header
 bouncecoffee.com: did not receive HSTS header
 bouwbedrijfpurmerend.nl: could not connect to host
 bowlroll.net: max-age too low: 0
 boxcryptor.com: did not receive HSTS header
 boxintense.com: did not receive HSTS header
 bp-wahl.at: did not receive HSTS header
 bqtoolbox.com: could not connect to host
 bragasoft.com.br: did not receive HSTS header
@@ -1596,17 +1683,16 @@ chrisandsarahinasia.com: did not receive
 chrisbrakebill.com: could not connect to host
 chrisbrown.id.au: could not connect to host
 chrisfaber.com: could not connect to host
 chriskirchner.de: did not receive HSTS header
 chriskyrouac.com: could not connect to host
 chrisopperwall.com: did not receive HSTS header
 christiaandruif.nl: could not connect to host
 christianbro.gq: could not connect to host
-christiangaetano.com: did not receive HSTS header
 christophercolumbusfoundation.gov: could not connect to host
 christophersole.com: could not connect to host
 christophheich.me: could not connect to host
 chrisupjohn.com: could not connect to host
 chrisvicmall.com: did not receive HSTS header
 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)
 chrst.ph: could not connect to host
@@ -1628,16 +1714,17 @@ cirrohost.com: did not receive HSTS head
 ciscohomeanalytics.com: could not connect to host
 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 119"  data: no]
 citiagent.cz: did not receive HSTS header
 cityoflaurel.org: did not receive HSTS header
 ciuciucadou.ro: could not connect to host
 cium.ru: could not connect to host
 cjcaron.org: could not connect to host
 claimit.ml: could not connect to host
+clan-ww.com: did not receive HSTS header
 clara-baumert.de: could not connect to host
 claralabs.com: did not receive HSTS header
 classicday.nl: could not connect to host
 classicsandexotics.com: did not receive HSTS header
 classicshop.ua: did not receive HSTS header
 classicspublishing.com: could not connect to host
 classifiedssa.co.za: could not connect to host
 claudio4.com: did not receive HSTS header
@@ -1658,26 +1745,26 @@ cliftons.com: did not receive HSTS heade
 clintonbloodworth.com: could not connect to host
 clintonbloodworth.io: could not connect to host
 clintwilson.technology: max-age too low: 2592000
 clip.ovh: could not connect to host
 clipped4u.com: could not connect to host
 cloud-project.com: could not connect to host
 cloud.wtf: could not connect to host
 cloudapi.vc: could not connect to host
-cloudbleed.info: could not connect to host
 cloudcert.org: did not receive HSTS header
 cloudcy.net: could not connect to host
 clouddesktop.co.nz: could not connect to host
 cloudey.net: did not receive HSTS header
 cloudflare.com: did not receive HSTS header
 cloudfren.com: did not receive HSTS header
 cloudimag.es: could not connect to host
 cloudlink.club: could not connect to host
 cloudns.com.au: could not connect to host
+cloudopt.net: max-age too low: 2592000
 clouds.webcam: could not connect to host
 cloudspotterapp.com: did not receive HSTS header
 cloudstoragemaus.com: could not connect to host
 cloudstorm.me: could not connect to host
 cloudstrike.co: could not connect to host
 cloudwalk.io: did not receive HSTS header
 clounix.online: could not connect to host
 clovissantos.com: could not connect to host
@@ -1716,42 +1803,44 @@ codelayer.ca: could not connect to host
 codelitmus.com: did not receive HSTS header
 codelove.de: did not receive HSTS header
 codemonkeyrawks.net: could not connect to host
 codepoet.de: could not connect to host
 codepx.com: did not receive HSTS header
 codercross.com: could not connect to host
 codes.pk: did not receive HSTS header
 codewiththepros.org: could not connect to host
+codigosddd.com.br: did not receive HSTS header
 codymoniz.com: did not receive HSTS header
 coerthas.com: max-age too low: 0
 coffeeetc.co.uk: max-age too low: 7776000
 coffeestrategies.com: max-age too low: 5184000
 cogniflex.com: did not receive HSTS header
 cohesive.io: did not receive HSTS header
 coinbit.trade: did not receive HSTS header
 coindam.com: could not connect to host
-coldhak.ca: could not connect to host
 coldlostsick.net: could not connect to host
 colearnr.com: could not connect to host
 collabra.email: did not receive HSTS header
 collard.tk: did not receive HSTS header
 collegepulse.org: could not connect to host
 collies.eu: max-age too low: 3
 collins.kg: did not receive HSTS header
 collins.press: did not receive HSTS header
 collision.fyi: could not connect to host
 colmexpro.com: did not receive HSTS header
 colognegaming.net: could not connect to host
 coloradocomputernetworking.net: could not connect to host
 colorlib.com: did not receive HSTS header
+comfortdom.ua: did not receive HSTS header
 comfortticket.de: did not receive HSTS header
 comfy.cafe: did not receive HSTS header
 comfy.moe: did not receive HSTS header
 comicspines.com: could not connect to host
+comicspornos.com: max-age too low: 2592000
 comitesaustria.at: could not connect to host
 comiteshopping.com: could not connect to host
 commercialplanet.eu: could not connect to host
 commune-preuilly.fr: did not receive HSTS header
 comotalk.com: could not connect to host
 compalytics.com: could not connect to host
 comparamejor.com: did not receive HSTS header
 compareinsurance.com.au: did not receive HSTS header
@@ -1798,16 +1887,17 @@ coolaj86.com: did not receive HSTS heade
 coolchevy.org.ua: did not receive HSTS header
 coole-meister.de: could not connect to host
 coolrc.me: could not connect to host
 cooxa.com: did not receive HSTS header
 copshop.com.br: did not receive HSTS header
 cor-ser.es: could not connect to host
 coralproject.net: did not receive HSTS header
 coralrosado.com.br: did not receive HSTS header
+coramcdaniel.com: did not receive HSTS header
 corderoscleaning.com: did not receive HSTS header
 cordial-restaurant.com: did not receive HSTS header
 core.mx: could not connect to host
 core4system.de: could not connect to host
 corenetworking.de: could not connect to host
 corgicloud.com: could not connect to host
 corkyoga.site: could not connect to host
 cormactagging.ie: could not connect to host
@@ -1845,16 +1935,17 @@ crazycraftland.de: did not receive HSTS 
 crazycraftland.net: could not connect to host
 crazyhotseeds.com: did not receive HSTS header
 crbug.com: did not receive HSTS header (error ignored - included regardless)
 creaescola.com: did not receive HSTS header
 create-test-publish.co.uk: could not connect to host
 creativephysics.ml: could not connect to host
 creativeplayuk.com: did not receive HSTS header
 crecket.me: could not connect to host
+creditstar.es: max-age too low: 0
 creditstar.lt: max-age too low: 0
 crendontech.com: could not connect to host
 crestoncottage.com: could not connect to host
 crimewatch.net.za: could not connect to host
 crisissurvivalspecialists.com: could not connect to host
 cristiandeluxe.com: did not receive HSTS header
 crizk.com: could not connect to host
 crmdemo.website: did not receive HSTS header
@@ -1958,17 +2049,17 @@ dai-rin.co.jp: could not connect to host
 dailybits.be: did not receive HSTS header
 dailystormerpodcasts.com: could not connect to host
 daimadi.com: could not connect to host
 daisuki.pw: could not connect to host
 dakerealestate.com: did not receive HSTS header
 dakrib.net: could not connect to host
 daku.gdn: could not connect to host
 dalingk.co: could not connect to host
-daltonedwards.me: did not receive HSTS header
+daltonedwards.me: could not connect to host
 damianuv-blog.cz: did not receive HSTS header
 danbarrett.com.au: did not receive HSTS header
 dancerdates.net: could not connect to host
 dane-bre.net: did not receive HSTS header
 daniel-du.com: could not connect to host
 daniel-mosquera.com: could not connect to host
 daniel-steuer.de: could not connect to host
 danielcowie.me: could not connect to host
@@ -2044,33 +2135,31 @@ debian-vhost.de: did not receive HSTS he
 debiton.dk: could not connect to host
 debtkit.co.uk: did not receive HSTS header
 debtprotectionreporting.com: did not receive HSTS header
 decafu.co: could not connect to host
 decesus.com: could not connect to host
 decibelios.li: could not connect to host
 decloverly.com: did not receive HSTS header
 deco.me: could not connect to host
-decomplify.com: could not connect to host
 dedicatutiempo.es: could not connect to host
 deepcovelabs.net: could not connect to host
 deepearth.uk: could not connect to host
 deeprecce.link: could not connect to host
 deeprecce.tech: could not connect to host
 deepvalley.tech: could not connect to host
 deetz.nl: did not receive HSTS header
 deetzen.de: did not receive HSTS header
 defcon.org: did not receive HSTS header
 defiler.tk: could not connect to host
 degroetenvanrosaline.nl: did not receive HSTS header
 deight.co: could not connect to host
 deinserverhost.de: did not receive HSTS header
 dekasan.ru: could not connect to host
 delayrefunds.co.uk: could not connect to host
-delbrouck.ch: did not receive HSTS header
 deliverance.co.uk: could not connect to host
 deltaconcepts.de: did not receive HSTS header
 delvj.org: could not connect to host
 demdis.org: could not connect to host
 demilitarized.ninja: could not connect to host
 demo-server.us: could not connect to host
 demo.swedbank.se: did not receive HSTS header
 demomanca.com: did not receive HSTS header
@@ -2144,16 +2233,17 @@ diewebstube.de: could not connect to hos
 diezel.com: could not connect to host
 diferenca.com: did not receive HSTS header
 digired.xyz: 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
 digitaljungle.net: could not connect to host
 digitalnonplus.com: could not connect to host
+digitalquery.com: 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
 dinamoelektrik.com: could not connect to host
 dingcc.me: could not connect to host
 dinkum.online: could not connect to host
 dipconsultants.com: could not connect to host
 directhskincream.com: could not connect to host
@@ -2201,16 +2291,17 @@ docket.news: could not connect to host
 doclot.io: did not receive HSTS header
 docset.io: could not connect to host
 docufiel.com: could not connect to host
 docxtemplater.com: did not receive HSTS header
 doesmycodehavebugs.today: could not connect to host
 doeswindowssuckforeveryoneorjustme.com: could not connect to host
 dogbox.se: did not receive HSTS header
 dogespeed.ga: could not connect to host
+dogfi.sh: did not receive HSTS header
 doggieholic.net: could not connect to host
 dognlife.com: did not receive HSTS header
 dogoodbehappyllc.com: could not connect to host
 dohosting.ru: could not connect to host
 dojin.nagoya: could not connect to host
 dokan.online: could not connect to host
 doked.io: could not connect to host
 dolevik.com: could not connect to host
@@ -2243,16 +2334,17 @@ doridian.org: could not connect to host
 doriginal.es: did not receive HSTS header
 dorkfarm.com: did not receive HSTS header
 dosenbierrepublik.com: did not receive HSTS header
 dot42.no: could not connect to host
 dotadata.me: could not connect to host
 dotspaperie.com: could not connect to host
 dougferris.id.au: could not connect to host
 doujin.nagoya: could not connect to host
+dovecomputers.com: did not receive HSTS header
 dovecotadmin.org: could not connect to host
 doveholesband.co.uk: did not receive HSTS header
 dovetailnow.com: could not connect to host
 download.jitsi.org: did not receive HSTS header
 downsouthweddings.com.au: could not connect to host
 doxcelerate.com: max-age too low: 69
 doyoucheck.com: did not receive HSTS header
 drach.xyz: did not receive HSTS header
@@ -2303,16 +2395,17 @@ dualias.xyz: could not connect to host
 dubik.su: did not receive HSTS header
 duelysthub.com: could not connect to host
 duerls.de: did not receive HSTS header
 dukec.me: could not connect to host
 dullsir.com: could not connect to host
 dungi.org: could not connect to host
 duongpho.com: did not receive HSTS header
 duskopy.top: could not connect to host
+dutchessuganda.com: did not receive HSTS header
 dutchrank.com: did not receive HSTS header
 duuu.ch: could not connect to host
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
 dynamic-innovations.net: could not connect to host
 dynamize.solutions: could not connect to host
 dyrkar.com: did not receive HSTS header
 dzimejl.sk: did not receive HSTS header
@@ -2324,17 +2417,17 @@ e-hon.link: could not connect to host
 e-isfa.eu: did not receive HSTS header
 e-newshub.com: could not connect to host
 e-pokupki.eu: did not receive HSTS header
 e-rickroll-r.pw: could not connect to host
 e-sa.com: did not receive HSTS header
 e-verify.gov: could not connect to host
 e30gruppe.com: did not receive HSTS header
 e3amn2l.com: could not connect to host
-eagle-yard.de: did not receive HSTS header
+eam-gmbh.com: max-age too low: 604800
 earga.sm: could not connect to host
 earlybirdsnacks.com: could not connect to host
 earthrise16.com: could not connect to host
 earthsystemprediction.gov: could not connect to host
 easez.net: did not receive HSTS header
 easychiller.org: could not connect to host
 easyocm.hu: did not receive HSTS header
 easyplane.it: did not receive HSTS header
@@ -2376,21 +2469,20 @@ eden-mobility.co.uk: did not receive HST
 eden-noel.at: could not connect to host
 edenaya.com: could not connect to host
 edgereinvent.com: did not receive HSTS header
 ediscomp.sk: did not receive HSTS header
 edissecurity.sk: did not receive HSTS header
 edix.ru: could not connect to host
 edk.com.tr: did not receive HSTS header
 edmodo.com: did not receive HSTS header
-edpubs.gov: did not receive HSTS header
+edpubs.gov: could not connect to host
 eduardnikolenko.ru: could not connect to host
 educatio.tech: could not connect to host
 educourse.ga: could not connect to host
-eduroam.no: did not receive HSTS header
 eduvance.in: did not receive HSTS header
 eengezinswoning-in-alphen-aan-den-rijn-kopen.nl: could not connect to host
 eengezinswoning-in-de-friese-meren-kopen.nl: could not connect to host
 eengezinswoning-in-friesland-kopen.nl: could not connect to host
 eengezinswoning-in-leeuwarden-kopen.nl: could not connect to host
 eengezinswoning-in-pekela-kopen.nl: could not connect to host
 eengezinswoning-in-rijnwaarden-kopen.nl: could not connect to host
 eengezinswoning-in-sudwest-fryslan-kopen.nl: could not connect to host
@@ -2445,25 +2537,24 @@ elitefishtank.com: could not connect to 
 elmar-kraamzorg.nl: did not receive HSTS header
 elnutricionista.es: did not receive HSTS header
 elohna.ch: did not receive HSTS header
 elpay.kz: did not receive HSTS header
 elpo.xyz: could not connect to host
 elsamakhin.com: could not connect to host
 elsemanario.com: did not receive HSTS header
 elsitar.com: could not connect to host
-elsword.moe: max-age too low: 2592000
 email.lookout.com: could not connect to host
 email2rss.net: could not connect to host
 emanatepixels.com: could not connect to host
 emanga.su: did not receive HSTS header
 embroidered-stuff.com: could not connect to host
 emeldi-commerce.com: max-age too low: 0
 emiele.com.br: did not receive HSTS header
-emilyhorsman.com: could not connect to host
+emilyhorsman.com: did not receive HSTS header
 eminovic.me: could not connect to host
 emjainteractive.com: did not receive HSTS header
 emjimadhu.com: could not connect to host
 emmable.com: could not connect to host
 emmaliddell.com: could not connect to host
 emnitech.com: could not connect to host
 empleosentorreon.mx: could not connect to host
 empleostampico.com: did not receive HSTS header
@@ -2478,16 +2569,17 @@ 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: could not connect to host
 endohaus.ca: could not connect to host
 endohaus.com: could not connect to host
 endohaus.eu: could not connect to host
 enefan.jp: could not connect to host
+enfield-kitchens.co.uk: did not receive HSTS header
 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
 enjen.net: did not receive HSTS header
 enjoymayfield.com: max-age too low: 0
 enskat.de: could not connect to host
@@ -2534,16 +2626,17 @@ ernesto.at: could not connect to host
 eromixx.com: did not receive HSTS header
 erotalia.es: could not connect to host
 eroticen.com: did not receive HSTS header
 erotische-aanbiedingen.nl: could not connect to host
 errolz.com: could not connect to host
 errors.zenpayroll.com: could not connect to host
 ersindemirtas.com: did not receive HSTS header
 eru.me: did not receive HSTS header
+erwinvanlonden.net: did not receive HSTS header
 escalate.eu: could not connect to host
 escotour.com: could not connect to host
 esec.rs: did not receive HSTS header
 esko.bar: could not connect to host
 esln.org: did not receive HSTS header
 esn-ypci.com: could not connect to host
 esocweb.com: could not connect to host
 esp8285.store: could not connect to host
@@ -2573,17 +2666,16 @@ etk2000.com: did not receive HSTS header
 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
 etula.ga: could not connect to host
 etula.me: could not connect to host
-etzi.myds.me: could not connect to host
 euanbaines.com: did not receive HSTS header
 eucl3d.com: did not receive HSTS header
 euclideanpostulates.xyz: could not connect to host
 eucollegetours.com: could not connect to host
 eulerpi.io: could not connect to host
 euph.eu: could not connect to host
 eupho.me: could not connect to host
 euren.se: could not connect to host
@@ -2610,17 +2702,16 @@ evowl.com: could not connect to host
 ewallet-optimizer.com: did not receive HSTS header
 ewex.org: could not connect to host
 excelgum.ca: did not receive HSTS header
 exceptionalservers.com: could not connect to host
 exfiles.cz: did not receive HSTS header
 exgravitus.com: could not connect to host
 exno.co: could not connect to host
 exousiakaidunamis.xyz: could not connect to host
-expatads.com: could not connect to host
 expertmile.com: did not receive HSTS header
 expo-designers.com: did not receive HSTS header
 expoundite.net: could not connect to host
 express-vpn.com: did not receive HSTS header
 expressfinance.co.za: did not receive HSTS header
 expressvpn.com: did not receive HSTS header
 extrathemeshowcase.net: could not connect to host
 extratorrentlive.xyz: could not connect to host
@@ -2628,16 +2719,17 @@ extratorrents.tech: could not connect to
 extreemhost.nl: did not receive HSTS header
 extremenetworking.net: could not connect to host
 exy.pw: could not connect to host
 exyplis.com: did not receive HSTS header
 eyasc.nl: could not connect to host
 eye-carat.com: did not receive HSTS header
 eyedarts.com: did not receive HSTS header
 eyeglassuniverse.com: did not receive HSTS header
+eyesoccer-didikh.rhcloud.com: did not receive HSTS header
 ez.fi: could not connect to host
 ezimoeko.net: could not connect to host
 ezmod.org: could not connect to host
 ezrefurb.co.uk: did not receive HSTS header
 eztv.ch: did not receive HSTS header
 f-rickroll-g.pw: could not connect to host
 f-s-u.co.uk: could not connect to host
 f00.ca: did not receive HSTS header
@@ -2738,16 +2830,17 @@ fingent.com: did not receive HSTS header
 finiteheap.com: did not receive HSTS header
 finpt.com: could not connect to host
 fintechnics.com: did not receive HSTS header
 fiodental.com.br: did not receive HSTS header
 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
+fireinthedeep.com: did not receive HSTS header
 firemail.io: could not connect to host
 firenza.org: did not receive HSTS header
 fireorbit.de: 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
 fit4medien.de: did not receive HSTS header
@@ -2765,16 +2858,17 @@ fixingdns.com: could not connect to host
 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
 flairbros.at: could not connect to host
 flamewall.net: could not connect to host
 flamingkeys.com.au: could not connect to host
+flanga.io: did not receive HSTS header
 flareon.net: could not connect to host
 flatbellyreview.com: max-age too low: 2592000
 flawcheck.com: could not connect to host
 fliexer.com: could not connect to host
 flipkey.com: did not receive HSTS header
 flirchi.com: did not receive HSTS header
 flixtor.net: could not connect to host
 floless.co.uk: did not receive HSTS header
@@ -2792,16 +2886,17 @@ flowlo.me: could not connect to host
 fluidojobs.com: could not connect to host
 flukethoughts.com: could not connect to host
 flurrybridge.com: did not receive HSTS header
 flushstudios.com: did not receive HSTS header
 flyaces.com: could not connect to host
 fm83.nl: could not connect to host
 fmi.gov: did not receive HSTS header
 fnvsecurity.com: could not connect to host
+fobc-usa.org: did not receive HSTS header
 fojtova.cz: did not receive HSTS header
 fojtovi.cz: did not receive HSTS header
 fonetiq.io: could not connect to host
 foo: could not connect to host
 food4health.guide: could not connect to host
 foodbuddy.ch: could not connect to host
 foodiebox.no: did not receive HSTS header
 foodies.my: did not receive HSTS header
@@ -2836,16 +2931,17 @@ foxley-seeds.co.uk: did not receive HSTS
 foxleyseeds.co.uk: could not connect to host
 foxtrot.pw: could not connect to host
 fr33d0m.link: could not connect to host
 fragilesolar.cf: could not connect to host
 fralef.me: did not receive HSTS header
 francevpn.xyz: could not connect to host
 francois-vidit.com: did not receive HSTS header
 frangor.info: did not receive HSTS header
+frankierprofi.de: did not receive HSTS header
 frankwei.xyz: could not connect to host
 franta.biz: did not receive HSTS header
 franta.email: did not receive HSTS header
 franzt.de: could not connect to host
 frasesdeamizade.pt: could not connect to host
 frasys.io: could not connect to host
 frau-inge.de: could not connect to host
 fraudempire.com: could not connect to host
@@ -2872,17 +2968,17 @@ frontisme.nl: did not receive HSTS heade
 frontmin.com: did not receive HSTS header
 frost-ci.xyz: could not connect to host
 froxlor.support: max-age too low: 0
 frsis2017.com: could not connect to host
 frugro.be: did not receive HSTS header
 fruitusers.com: could not connect to host
 frumious.fyi: could not connect to host
 frusky.net: did not receive HSTS header
-fsapubs.gov: did not receive HSTS header
+fsapubs.gov: could not connect to host
 fsinf.at: did not receive HSTS header
 fspphoto.com: could not connect to host
 fstfy.de: could not connect to host
 ftctele.com: could not connect to host
 ftpi.ml: could not connect to host
 fuckbilibili.com: could not connect to host
 fuckgfw233.org: could not connect to host
 fukushima-web.com: did not receive HSTS header
@@ -2896,17 +2992,16 @@ funnyang.com: could not connect to host
 funrun.com: did not receive HSTS header
 fuorifuocogenova.it: could not connect to host
 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
-futbolvivo.tv: could not connect to host
 futurestarsusa.org: did not receive HSTS header
 futuretechnologi.es: could not connect to host
 futureyouhealth.com: did not receive HSTS header
 fuvpn.com: did not receive HSTS header
 fwest.ovh: did not receive HSTS header
 fwest98.ovh: did not receive HSTS header
 fws.gov: did not receive HSTS header
 fx-rk.com: did not receive HSTS header
@@ -2941,30 +3036,30 @@ galoisvpn.xyz: could not connect to host
 gambitcloud.net: could not connect to host
 game-files.net: did not receive HSTS header
 game.yt: could not connect to host
 gamecave.de: could not connect to host
 gamechasm.com: could not connect to host
 gamefund.me: did not receive HSTS header
 gamehacks.me: could not connect to host
 gameink.net: max-age too low: 0
-gamek.es: did not receive HSTS header
+gamek.es: could not connect to host
 gamenected.com: could not connect to host
 gamenected.de: could not connect to host
 gamepad.vg: could not connect to host
 gamepader.com: 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
 gamesurferapp.com: could not connect to host
-gamingmedia.eu: could not connect to host
+gamingmedia.eu: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
 gaptek.id: did not receive HSTS header
 gar-nich.net: could not connect to host
 garageon.net: did not receive HSTS header
 garciamartin.me: could not connect to host
 garcinia--cambogia.com: could not connect to host
 garden.trade: could not connect to host
 gardencarezone.com: could not connect to host
@@ -2995,16 +3090,17 @@ genyhitch.com: did not receive HSTS head
 geoffdev.com: could not connect to host
 geopals.net: did not receive HSTS header
 george-brighton.co.uk: could not connect to host
 georgebrighton.co.uk: could not connect to host
 georgesonarthurs.com.au: did not receive HSTS header
 gereja.ga: did not receive HSTS header
 gerencianet.com.br: did not receive HSTS header
 gereon.ch: could not connect to host
+gerum.dynv6.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: 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
@@ -3219,17 +3315,16 @@ guge.gq: could not connect to host
 gugga.dk: could not connect to host
 guguke.net: did not receive HSTS header
 guilde-vindicta.fr: could not connect to host
 guillaumematheron.fr: did not receive HSTS header
 guineafruitcorp.com: could not connect to host
 gulch.in.ua: did not receive HSTS header
 gulenet.com: could not connect to host
 gulfcoast-sandbox.com: could not connect to host
-gulshankumar.net: did not receive HSTS header
 gunnarhafdal.com: did not receive HSTS header
 gunnaro.com: could not connect to host
 guntbert.net: could not connect to host
 guoqiang.info: did not receive HSTS header
 gurom.lv: could not connect to host
 gurusupe.com: could not connect to host
 guso.gq: could not connect to host
 guso.ml: did not receive HSTS header
@@ -3256,17 +3351,17 @@ h2check.org: could not connect to host
 haarkliniek.com: did not receive HSTS header
 habbo.life: did not receive HSTS header
 habbotalk.nl: could not connect to host
 hablemosdetecnologia.com.ve: could not connect to host
 hac30.com: could not connect to host
 hack.cz: could not connect to host
 hack.li: could not connect to host
 hackbarth.guru: did not receive HSTS header
-hacker8.cn: could not connect to host
+hacker8.cn: 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
 hackerpoints.com: did not receive HSTS header
 hackerspace-ntnu.no: did not receive HSTS header
 hackest.org: did not receive HSTS header
 hackit.im: could not connect to host
 hackroyale.xyz: could not connect to host
@@ -3378,20 +3473,23 @@ hemlockhillscabinrentals.com: did not re
 hencagon.com: could not connect to host
 henriknoerr.com: could not connect to host
 hepteract.us: could not connect to host
 herbertmouwen.nl: could not connect to host
 heritagedentistry.ca: did not receive HSTS header
 herpaderp.net: could not connect to host
 herrenfahrt.com: did not receive HSTS header
 herzbotschaft.de: did not receive HSTS header
+hetmer.com: did not receive HSTS header
+hetmer.cz: did not receive HSTS header
+hetmer.net: did not receive HSTS header
 heutger.net: did not receive HSTS header
+hex2013.com: did not receive HSTS header
 heyguevara.com: could not connect to host
 heywoodtown.co.uk: did not receive HSTS header
-hfi.me: did not receive HSTS header
 hibilog.com: could not connect to host
 hicn.gq: could not connect to host
 hiddendepth.ie: max-age too low: 0
 hiddenmail.xyz: could not connect to host
 hiddenrefuge.eu.org: could not connect to host
 hideftv.deals: could not connect to host
 hiexmerida-mailing.com: did not receive HSTS header
 highgrove.org.uk: could not connect to host
@@ -3437,17 +3535,16 @@ holgerlehner.com: could not connect to h
 holifestival-freyung.de: could not connect to host
 holymoly.lu: could not connect to host
 homa.website: could not connect to host
 homads.com: did not receive HSTS header
 homeandyarddetailing.com: could not connect to host
 homeclouding.de: could not connect to host
 homedna.com: did not receive HSTS header
 homeexx.com: did not receive HSTS header
-homeownersassociationmanagementla.com: did not receive HSTS header
 homeseller.co.uk: could not connect to host
 hometownmall.com: did not receive HSTS header
 homeyantra.com: max-age too low: 86400
 hongyd.online: could not connect to host
 hongzhaxiaofendui.com: could not connect to host
 honoo.com: could not connect to host
 hookandloom.com: did not receive HSTS header
 hoopsacademyusa.com: could not connect to host
@@ -3508,16 +3605,17 @@ humblefinances.com: did not receive HSTS
 humeurs.net: could not connect to host
 humortuga.pt: could not connect to host
 humpi.at: could not connect to host
 humpteedumptee.in: did not receive HSTS header
 hunger.im: could not connect to host
 huodongweb.com: could not connect to host
 hup.blue: could not connect to host
 huskybutt.dog: could not connect to host
+hyatt.com: did not receive HSTS header
 hydaelyn.com: max-age too low: 0
 hydra.ws: could not connect to host
 hydrodipcenter.nl: did not receive HSTS header
 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
@@ -3529,17 +3627,17 @@ hysg.me: could not connect to host
 i-jp.net: could not connect to host
 i-partners.sk: did not receive HSTS header
 i-rickroll-n.pw: could not connect to host
 i10z.com: could not connect to host
 iamjoshellis.com: could not connect to host
 iamokay.nl: did not receive HSTS header
 iamreubin.co.uk: did not receive HSTS header
 iamveto.com: could not connect to host
-iapws.com: could not connect to host
+iapws.com: did not receive HSTS header
 iban.is: could not connect to host
 ibarf.nl: did not receive HSTS header
 ibnuwebhost.com: could not connect to host
 icabanken.se: did not receive HSTS header
 icaforsakring.se: did not receive HSTS header
 ice.yt: could not connect to host
 icepink.com.br: did not receive HSTS header
 icfl.com.br: could not connect to host
@@ -3553,24 +3651,24 @@ icntorrent.download: could not connect t
 icq-project.net: could not connect to host
 icreative.nl: did not receive HSTS header
 id-co.in: could not connect to host
 id-conf.com: did not receive HSTS header
 idcrane.com: could not connect to host
 ideal-envelopes.co.uk: did not receive HSTS header
 idealmoto.com: did not receive HSTS header
 idealmykonos.com: did not receive HSTS header
+ideaman924.com: did not receive HSTS header
 ideaplus.me: could not connect to host
 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: did not receive HSTS header
-idinby.dk: did not receive HSTS header
 idisplay.es: 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
 ierna.com: did not receive HSTS header
 ies-italia.it: did not receive HSTS header
 ies.id.lv: could not connect to host
 ievgenialehner.com: did not receive HSTS header
@@ -3598,17 +3696,16 @@ ilikerainbows.co: could not connect to h
 ilikerainbows.co.uk: could not connect to host
 ilikfreshweedstores.com: did not receive HSTS header
 ilmconpm.de: did not receive HSTS header
 ilona.graphics: did not receive HSTS header
 iluvscotland.co.uk: max-age too low: 7776000
 imakepoems.net: could not connect to host
 imanolbarba.net: could not connect to host
 ime.moe: could not connect to host
-imguoguo.com: did not receive HSTS header
 imim.pw: could not connect to host
 imjiangtao.com: could not connect to host
 immoprotect.ca: did not receive HSTS header
 immoralgamingco.com: could not connect to host
 immoralgods.com: could not connect to host
 immortals-co.com: did not receive HSTS header
 immoverkauf24.at: did not receive HSTS header
 immoverkauf24.de: did not receive HSTS header
@@ -3665,32 +3762,30 @@ infura.co.th: could not connect to host
 ingeeibach.de: could not connect to host
 ingesol.fr: did not receive HSTS header
 inhelix.com: could not connect to host
 injertoshorticolas.com: did not receive HSTS header
 injigo.com: did not receive HSTS header
 injust.cf: could not connect to host
 injust.ga: could not connect to host
 injust.gq: could not connect to host
-injust.me: could not connect to host
 injust.ml: could not connect to host
 injust.tk: could not connect to host
 inked-guy.de: could not connect to host
 inkedguy.de: could not connect to host
 inkstory.gr: did not receive HSTS header
 inksupply.com: did not receive HSTS header
 inleaked.com: could not connect to host
 inme.ga: could not connect to host
 inmyarea.com: max-age too low: 0
 innophate-security.nl: could not connect to host
 innovativeideaz.org: did not receive HSTS header
 inquisitive.io: did not receive HSTS header
 insane-bullets.com: could not connect to host
 insane.zone: could not connect to host
-insho.fashion: did not receive HSTS header
 insite-feedback.com: did not receive HSTS header
 inspire-av.com: did not receive HSTS header
 inspiroinc.com: could not connect to host
 instacart.com: did not receive HSTS header
 instant-hack.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
@@ -3705,32 +3800,31 @@ interlocal.co.uk: could not connect to h
 interlun.com: could not connect to host
 internaldh.com: could not connect to host
 internect.co.za: did not receive HSTS header
 internet-pornografie.de: did not receive HSTS header
 internetcasinos.de: could not connect to host
 internetcensus.org: could not connect to host
 internetdentalalliance.com: did not receive HSTS header
 interserved.com: did not receive HSTS header
-intervisteperstrada.com: did not receive HSTS header
+intervisteperstrada.com: could not connect to host
 intexplore.org: could not connect to host
 intim-uslugi-kazan.net: could not connect to host
 intimateperrierjouet.com: could not connect to host
 intimici.com.br: 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
 inverselink-user-content.com: could not connect to host
 inverselink.com: could not connect to host
 invictusmc.uk: could not connect to host
 invite24.pro: could not connect to host
 iolife.dk: could not connect to host
 ionas-law.ro: did not receive HSTS header
 ionx.co.uk: did not receive HSTS header
-ioover.net: could not connect to host
 iop.intuit.com: max-age too low: 86400
 iora.fr: could not connect to host
 iosmods.com: did not receive HSTS header
 iostips.ru: could not connect to host
 ip6.im: did not receive HSTS header
 ipbill.org.uk: could not connect to host
 iplife.cn: could not connect to host
 ipmimagazine.com: did not receive HSTS header
@@ -3771,27 +3865,29 @@ ishadowsocks.ltd: could not connect to h
 ishangirdhar.com: could not connect to host
 ishillaryclintoninprisonyet.com: could not connect to host
 isitamor.pm: could not connect to host
 iskaz.rs: did not receive HSTS header
 ismetroonfiretoday.com: could not connect to host
 isogen5.com: could not connect to host
 isogram.nl: could not connect to host
 israkurort.com: did not receive HSTS header
+istanbul.systems: did not receive HSTS header
 istanbultravelguide.info: could not connect to host
 istaspirtslietas.lv: did not receive HSTS header
 it-cave.com: could not connect to host
 it-go.net: did not receive HSTS header
 it-schwerin.de: could not connect to host
 itechgeek.com: max-age too low: 0
 items.lv: did not receive HSTS header
 itemton.com: could not connect to host
 ithakama.com: did not receive HSTS header
 ithakama.cz: did not receive HSTS header
 ithenrik.com: did not receive HSTS header
+itilo.de: did not receive HSTS header
 itinsight.hu: did not receive HSTS header
 itos.asia: did not receive HSTS header
 itos.pl: did not receive HSTS header
 itpros.ru: max-age too low: 0
 itriskltd.com: did not receive HSTS header
 itsadog.co.uk: did not receive HSTS header
 itsagadget.com: did not receive HSTS header
 itsamurai.ru: max-age too low: 2592000
@@ -3800,38 +3896,37 @@ itsg-faq.de: could not connect to host
 itshost.ru: could not connect to host
 itu2015.de: could not connect to host
 ius.io: did not receive HSTS header
 iuscommunity.org: did not receive HSTS header
 ivi-co.com: max-age too low: 0
 ivi-fertility.com: max-age too low: 0
 ivi.es: max-age too low: 0
 ivk.website: could not connect to host
-ivklombard.ru: could not connect to host
+ivklombard.ru: did not receive HSTS header
 ivo.co.za: could not connect to host
 iwannarefill.com: could not connect to host
 iwilcox.me.uk: could not connect to host
-iwpbk.com: could not connect to host
+iwpbk.com: did not receive HSTS header
 ixec2.tk: could not connect to host
 izdiwho.com: could not connect to host
 izolight.ch: could not connect to host
 izoox.com: did not receive HSTS header
 izzzorgconcerten.nl: could not connect to host
 j-lsolutions.com: could not connect to host
 j-rickroll-a.pw: could not connect to host
 ja-publications.com: did not receive HSTS header
 jaan.su: could not connect to host
 jabbari.io: did not receive HSTS header
 jackalworks.com: could not connect to host
 jackdoan.com: did not receive HSTS header
 jackfahnestock.com: could not connect to host
 jacobparry.ca: did not receive HSTS header
 jagido.de: did not receive HSTS header
 jahliveradio.com: could not connect to host
-jakerullman.com: did not receive HSTS header
 jaksi.io: could not connect to host
 jamanji.com.ng: could not connect to host
 james-parker.com: did not receive HSTS header
 james.je: could not connect to host
 jamesachambers.com: could not connect to host
 jamesandpame.la: could not connect to host
 jamesburton.london: could not connect to host
 jamesbywater.co.uk: could not connect to host
@@ -3842,17 +3937,16 @@ jamesbywater.uk: could not connect to ho
 jamesconroyfinn.com: did not receive HSTS header
 jamesdoell.com: could not connect to host
 jamesdoylephoto.com: did not receive HSTS header
 jamesf.xyz: could not connect to host
 jamesgreenfield.com: could not connect to host
 jameshale.me: did not receive HSTS header
 jamesmaurer.com: did not receive HSTS header
 jamourtney.com: could not connect to host
-jan-bucher.ch: could not connect to host
 jan-daniels.de: did not receive HSTS header
 jan-roenspies.de: could not connect to host
 jan27.org: did not receive HSTS header
 janario.me: could not connect to host
 janbrodda.de: max-age too low: 2592000
 jangho.me: could not connect to host
 janking.de: did not receive HSTS header
 jannyrijneveld.nl: did not receive HSTS header
@@ -4031,24 +4125,23 @@ kaela.design: could not connect to host
 kahopoon.net: could not connect to host
 kaisers.de: did not receive HSTS header
 kaiyuewu.com: could not connect to host
 kalami.nl: could not connect to host
 kaleidomarketing.com: did not receive HSTS header
 kamcvicit.sk: could not connect to host
 kamikano.com: could not connect to host
 kamikatse.net: could not connect to host
-kaneo-gmbh.de: did not receive HSTS header
+kaneo-gmbh.de: could not connect to host
 kaniklani.co.za: could not connect to host
 kanscooking.org: did not receive HSTS header
 kany.me: did not receive HSTS header
 kanzlei-wirtschaftsrecht.berlin: did not receive HSTS header
 kaohub.com: could not connect to host
 kaplatz.is: could not connect to host
-kapseli.net: 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
 karloskontana.tk: could not connect to host
 karpanhellas.com: did not receive HSTS header
 karting34.com: did not receive HSTS header
 kashdash.ca: could not connect to host
 katiaetdavid.fr: could not connect to host
@@ -4061,17 +4154,17 @@ katproxy.top: did not receive HSTS heade
 katyl.info: could not connect to host
 kaufkraftkiel.de: could not connect to host
 kausch.at: could not connect to host
 kavinvin.me: could not connect to host
 kcluster.io: 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
-kdbx.online: did not receive HSTS header
+kdbx.online: could not connect to host
 kdm-online.de: did not receive HSTS header
 keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: could not connect to host
 keepassa.co: could not connect to host
 keepclean.me: could not connect to host
 keepcoalintheground.org: could not connect to host
 kefaloniatoday.com: did not receive HSTS header
@@ -4092,16 +4185,17 @@ khaganat.net: did not receive HSTS heade
 ki-on.net: did not receive HSTS header
 kialo.com: did not receive HSTS header
 kickass-proxies.org: could not connect to host
 kickass.al: could not connect to host
 kickasstorrents.gq: could not connect to host
 kid-dachau.de: did not receive HSTS header
 kidkat.cn: could not connect to host
 kiel-media.de: did not receive HSTS header
+kieranjones.uk: did not receive HSTS header
 killerit.in: could not connect to host
 kimana.pe: did not receive HSTS header
 kimberg.co.uk: could not connect to host
 kimpost.org: could not connect to host
 kinderly.co.uk: did not receive HSTS header
 kinderwagen-test24.de: could not connect to host
 kindlyfire.com: could not connect to host
 kindof.ninja: could not connect to host
@@ -4123,62 +4217,64 @@ kisalt.im: did not receive HSTS header
 kiss-register.org: did not receive HSTS header
 kissart.net: could not connect to host
 kisstyle.ru: did not receive HSTS header
 kitabgaul.com: did not receive HSTS header
 kitakemon.com: could not connect to host
 kitashop.com.br: did not receive HSTS header
 kitatec.com.br: could not connect to host
 kitchenchaos.de: could not connect to host
-kitchenpunx.com: did not receive HSTS header
 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
 kiyo.space: could not connect to host
 kizil.net: could not connect to host
 kj1397.com: did not receive HSTS header
 kjaermaxi.me: did not receive HSTS header
 kjg-bachrain.de: could not connect to host
+klausbrinch.dk: did not receive HSTS header
 klauwd.com: could not connect to host
 klaxn.org: could not connect to host
 klean-ritekc.com: did not receive HSTS header
 kleertjesvoordelig.nl: could not connect to host
 kleinerarchitekturfuehrer.de: could not connect to host
 kleppe.co: could not connect to host
 kletterkater.com: did not receive HSTS header
 klicktojob.de: could not connect to host
+klssn.com: did not receive HSTS header
 klunkergarten.org: could not connect to host
-km-net.pl: did not receive HSTS header
 knapen.io: max-age too low: 604800
 knccloud.com: could not connect to host
 kngk-transavto.ru: could not connect to host
+knigadel.com: did not receive HSTS header
 knight-industries.org: could not connect to host
 knightsbridgegroup.org: could not connect to host
 knowdebt.org: did not receive HSTS header
 knowledgesnap.com: could not connect to host
 knowledgesnapsites.com: could not connect to host
 koddsson.com: did not receive HSTS header
-kode-it.de: did not receive HSTS header
+kode-it.de: could not connect to host
 kodexplorer.ml: could not connect to host
 kodiaklabs.org: could not connect to host
 kodokushi.fr: could not connect to host
 koen.io: did not receive HSTS header
 koenrouwhorst.nl: did not receive HSTS header
 koenvdheuvel.me: did not receive HSTS header
 koerperimpuls.ch: did not receive HSTS header
 koik.io: could not connect to host
 kojima-life.co.jp: max-age too low: 0
 kokenmetaanbiedingen.nl: did not receive HSTS header
 kola-entertainments.de: did not receive HSTS header
 kolaykaydet.com: did not receive HSTS header
 kolozsvaricsuhe.hu: did not receive HSTS header
 komikito.com: could not connect to host
 kompetenzwerft.de: did not receive HSTS header
 konata.us: could not connect to host
+konjin.cn: did not receive HSTS header
 kontaxis.network: could not connect to host
 kontorhaus-schlachte.de: could not connect to host
 koopjesnel.nl: could not connect to host
 koordinate.net: could not connect to host
 kori.ml: did not receive HSTS header
 koriyoukai.net: did not receive HSTS header
 kornersafe.com: did not receive HSTS header
 korni22.org: did not receive HSTS header
@@ -4204,24 +4300,25 @@ krestanskydarek.cz: [Exception... "Compo
 kriegt.es: did not receive HSTS header
 kristjanrang.eu: did not receive HSTS header
 kristofferkoch.com: could not connect to host
 krizevackapajdasija.hr: could not connect to host
 krizevci.info: did not receive HSTS header
 krmela.com: did not receive HSTS header
 kroetenfuchs.de: could not connect to host
 kroodle.nl: did not receive HSTS header
+kruegerrand-wert.de: did not receive HSTS header
 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
-kuechenplan.online: did not receive HSTS header
+kuechenplan.online: could not connect to host
 kueulangtahunanak.net: could not connect to host
 kum.com: could not connect to host
 kummerlaender.eu: did not receive HSTS header
 kupelne-ptacek.sk: did not receive HSTS header
 kuppingercole.com: did not receive HSTS header
 kura.io: could not connect to host
 kurehun.org: could not connect to host
 kuro346.moe: could not connect to host
@@ -4249,25 +4346,26 @@ labordata.io: could not connect to host
 laborie.io: could not connect to host
 labs.directory: could not connect to host
 labs.moscow: did not receive HSTS header
 lacaverne.nl: could not connect to host
 lacentral.com: did not receive HSTS header
 lachlankidson.net: did not receive HSTS header
 lacledeslan.ninja: could not connect to host
 lacocinadelila.com: did not receive HSTS header
+ladylucks.co.uk: did not receive HSTS header
 laemen.com: did not receive HSTS header
 laemen.nl: could not connect to host
 laf.in.net: could not connect to host
 lafr4nc3.xyz: could not connect to host
 lagalerievirtuelle.fr: did not receive HSTS header
 lagier.xyz: could not connect to host
 lagoza.name: could not connect to host
 lainchan.org: did not receive HSTS header
-laisashop.com.br: did not receive HSTS header
+laisashop.com.br: could not connect to host
 lakhesis.net: could not connect to host
 lamaland.ru: did not receive HSTS header
 lambda-complex.org: could not connect to host
 lambdafive.co.uk: could not connect to host
 lampl.info: could not connect to host
 lana.swedbank.se: did not receive HSTS header
 lanauzedesigns.com: did not receive HSTS header
 lanboll.com: could not connect to host
@@ -4276,33 +4374,36 @@ lancehoteis.com.br: did not receive HSTS
 land-links.org: did not receive HSTS header
 landgoedverkopen.nl: could not connect to host
 landhuisverkopen.nl: could not connect to host
 landscape.canonical.com: max-age too low: 2592000
 landscapingmedic.com: did not receive HSTS header
 langenbach.rocks: could not connect to host
 langendries.eu: could not connect to host
 langhun.me: did not receive HSTS header
+laniakean.com: did not receive HSTS header
 lanzainc.xyz: could not connect to host
 laobox.fr: could not connect to host
 laospage.com: max-age too low: 2592000
 laplaceduvillage.net: could not connect to host
+laplanetebleue.com: did not receive HSTS header
 laquack.com: could not connect to host
 laredsemanario.com: could not connect to host
 lasercloud.ml: could not connect to host
 laserfuchs.de: did not receive HSTS header
 lashstuff.com: did not receive HSTS header
 lastpass.com: did not receive HSTS header
 latelierdekathy.com: could not connect to host
 latemodern.com: could not connect to host
 latinred.com: could not connect to host
 latus.xyz: could not connect to host
 launchkey.com: did not receive HSTS header
 laurakashiwase.com: could not connect to host
 laurel4th.org: did not receive HSTS header
+laureltv.org: did not receive HSTS header
 lausitzer-widerstand.de: did not receive HSTS header
 laventainnhotel-mailing.com: did not receive HSTS header
 lavine.ch: did not receive HSTS header
 lavito.cz: did not receive HSTS header
 lavoieducoeur.be: max-age too low: 0
 lavoiepharmd.com: could not connect to host
 lawly.org: could not connect to host
 laxatus.com: could not connect to host
@@ -4330,19 +4431,18 @@ leitner.com.au: did not receive HSTS hea
 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
 lenagroben.de: could not connect to host
 lenders.direct: could not connect to host
 lennarth.com: could not connect to host
 lennartheinrich.de: could not connect to host
-lenovogaming.com: did not receive HSTS header
+lenovogaming.com: could not connect to host
 lentri.com: did not receive HSTS header
-lenyip.works: did not receive HSTS header
 leob.in: did not receive HSTS header
 leon-jaekel.com: could not connect to host
 leonhooijer.nl: could not connect to host
 leopold.email: could not connect to host
 leopotamgroup.com: could not connect to host
 lepont.pl: could not connect to host
 lerasenglish.com: max-age too low: 0
 lerner.moscow: did not receive HSTS header
@@ -4380,17 +4480,17 @@ libanco.com: could not connect to host
 libertyrp.org: did not receive HSTS header
 library.linode.com: did not receive HSTS header
 librechan.net: could not connect to host
 libreduca.com: could not connect to host
 lichess4545.com: did not receive HSTS header
 lichess4545.tv: did not receive HSTS header
 lidlovajogurteka.si: could not connect to host
 liebach.me: did not receive HSTS header
-liemen.net: did not receive HSTS header
+liemen.net: could not connect to host
 lifecoach.tw: did not receive HSTS header
 lifecoachproviders.com: did not receive HSTS header
 lifeguard.aecom.com: did not receive HSTS header
 lifeinitsownway.com: could not connect to host
 lifeskillsdirect.com: did not receive HSTS header
 lifetimemoneymachine.com: did not receive HSTS header
 lightarmory.com: could not connect to host
 lightning-ashe.com: did not receive HSTS header
@@ -4422,17 +4522,17 @@ linorman1997.me: could not connect to ho
 linux-mint.cz: could not connect to host
 linuxandstuff.de: could not connect to host
 linuxeyecandy.com: could not connect to host
 linuxfixed.it: could not connect to host
 linuxforyou.com: could not connect to host
 linuxgeek.ro: could not connect to host
 linuxmint.cz: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
-liquid.solutions: could not connect to host
+liquid.solutions: did not receive HSTS header
 liquorsanthe.in: could not connect to host
 lisaco.de: could not connect to host
 lisbongold.com: did not receive HSTS header
 lisgade.dk: did not receive HSTS header
 listafirmelor.com: could not connect to host
 listage.ovh: did not receive HSTS header
 litespeed.io: could not connect to host
 little.pw: did not receive HSTS header
@@ -4492,19 +4592,20 @@ lostg.com: did not receive HSTS header
 lostinsecurity.com: could not connect to host
 lostinweb.eu: could not connect to host
 lothai.re: did not receive HSTS header
 lothuytinhsi.com: could not connect to host
 lotsencafe.de: did not receive HSTS header
 lotuscloud.de: could not connect to host
 lotuscloud.org: could not connect to host
 louiewatch.com: could not connect to host
+loune.net: did not receive HSTS header
 loveable.de: could not connect to host
+loveandadoreboutique.com: did not receive HSTS header
 lovelifelovelive.com: could not connect to host
-lovelive.us: could not connect to host
 lovelyblogacademy.com: did not receive HSTS header
 lovelycorral.com: did not receive HSTS header
 loveto.at: could not connect to host
 lovingearth.net: max-age too low: 0
 lowhangingfruitgrabber.com: could not connect to host
 loxis.be: did not receive HSTS header
 lpak.nl: could not connect to host
 lpgram.ga: could not connect to host
@@ -4560,17 +4661,16 @@ m-ali.xyz: could not connect to host
 m-rickroll-v.pw: 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
 maarten.nyc: could not connect to host
-maartenterpstra.xyz: could not connect to host
 mac-torrents.me: did not receive HSTS header
 macbolo.com: could not connect to host
 macchaberrycream.com: could not connect to host
 macchedil.com: did not receive HSTS header
 macdj.tk: could not connect to host
 macgeneral.de: did not receive HSTS header
 machbach.net: could not connect to host
 macsandcheesedreams.com: could not connect to host
@@ -4641,17 +4741,16 @@ marchagen.nl: did not receive HSTS heade
 marco01809.net: could not connect to host
 marcoececilia.it: 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
 marcschlagenhauf.de: could not connect to host
 marcus-scheffler.com: did not receive HSTS header
 marcush.de: could not connect to host
-mare92.cz: could not connect to host
 margaretrosefashions.co.uk: could not connect to host
 marialempke.com: could not connect to host
 mariannematthew.com: could not connect to host
 marie-curie.fr: could not connect to host
 marie-elisabeth.dk: did not receive HSTS header
 marie-en-provence.com: did not receive HSTS header
 marienschule-sundern.de: did not receive HSTS header
 markaconnor.com: did not receive HSTS header
@@ -4696,16 +4795,17 @@ mastodon.engineering: could not connect 
 mastodon.pl: could not connect to host
 mastodones.club: could not connect to host
 masty.nl: did not receive HSTS header
 matatall.com: could not connect to host
 matchneedle.com: could not connect to host
 maternalsafety.org: did not receive HSTS header
 mateusmeyer.com.br: could not connect to host
 mathers.ovh: did not receive HSTS header
+matillat.ovh: did not receive HSTS header
 matomeplus.co: could not connect to host
 matrict.com: could not connect to host
 matrip.de: could not connect to host
 matrix.ac: could not connect to host
 matrixcheats.net: could not connect to host
 matsuz.com: could not connect to host
 matt.tf: did not receive HSTS header
 mattandreko.com: did not receive HSTS header
@@ -4862,17 +4962,16 @@ mikadesign.se: did not receive HSTS head
 mikaelemilsson.net: did not receive HSTS header
 mikeburns.com: could not connect to host
 mikeg.de: did not receive HSTS header
 mikeology.org: could not connect to host
 mikepair.net: could not connect to host
 mikeybot.com: could not connect to host
 mikii.club: could not connect to host
 mikk.cz: could not connect to host
-mikonmaa.fi: could not connect to host
 miku.be: could not connect to host
 miku.hatsune.my: max-age too low: 5184000
 mikusinec.com: could not connect to host
 milang.xyz: could not connect to host
 milatrans.pl: did not receive HSTS header
 milcoresonline.com: could not connect to host
 milesgeek.com: did not receive HSTS header
 military-portal.cz: did not receive HSTS header
@@ -4890,16 +4989,17 @@ minecraft-forums.ga: could not connect t
 minecraft-forums.gq: could not connect to host
 minecraftforum.ch: could not connect to host
 minecraftforums.cf: could not connect to host
 minecraftforums.gq: could not connect to host
 minecraftforums.ml: could not connect to host
 minecraftserverz.com: could not connect to host
 minecraftvoter.com: could not connect to host
 mineover.es: could not connect to host
+mingo.nl: did not receive HSTS header
 minh.at: could not connect to host
 mini-piraten.de: did not receive HSTS header
 minikneet.nl: could not connect to host
 minimoo.se: could not connect to host
 minnesotadata.com: could not connect to host
 minora.io: could not connect to host
 minoris.se: could not connect to host
 miragrow.com: could not connect to host
@@ -4953,16 +5053,17 @@ moddedark.com: could not connect to host
 mode-marine.com: could not connect to host
 model9.io: did not receive HSTS header
 modemagazines.co.uk: could not connect to host
 moderatortv.de: did not receive HSTS header
 modx.by: max-age too low: 31536
 modydev.club: could not connect to host
 moe4sale.in: did not receive HSTS header
 moebel-nagel.de: did not receive HSTS header
+moefi.xyz: did not receive HSTS header
 moellers.it: could not connect to host
 moelord.org: could not connect to host
 moen.io: did not receive HSTS header
 mogry.net: could not connect to host
 moho.kr: could not connect to host
 mohs.es: did not receive HSTS header
 moitur.com: could not connect to host
 mokhtarmial.com: did not receive HSTS header
@@ -4984,17 +5085,16 @@ moneycrownmedia.com: could not connect t
 monika-sokol.de: did not receive HSTS header
 monitaure.io: could not connect to host
 monitman.com: did not receive HSTS header
 monsieurbureau.com: did not receive HSTS header
 montanacures.org: could not connect to host
 montanwerk.de: could not connect to host
 montenero.pl: could not connect to host
 montonicms.com: could not connect to host
-moobo.xyz: could not connect to host
 moon.lc: could not connect to host
 moonless.net: could not connect to host
 moonloupe.com: could not connect to host
 moonrhythm.info: did not receive HSTS header
 moonrhythm.io: did not receive HSTS header
 moosemanstudios.com: could not connect to host
 moov.is: could not connect to host
 moparisthebest.biz: could not connect to host
@@ -5048,17 +5148,16 @@ mt.search.yahoo.com: did not receive HST
 mtamaki.com: could not connect to host
 mtdn.jp: could not connect to host
 mtg-esport.de: did not receive HSTS header
 mu.search.yahoo.com: did not receive HSTS header
 mudcrab.us: did not receive HSTS header
 mujadin.se: did not receive HSTS header
 mundodapoesia.com: did not receive HSTS header
 munich-rage.de: could not connect to host
-munirajiwa.com: could not connect to host
 munkiepus.com: did not receive HSTS header
 munuc.org: did not receive HSTS header
 munzee.com: did not receive HSTS header
 muonium.ch: could not connect to host
 muriburi.land: could not connect to host
 muriburiland.com: could not connect to host
 murodese.org: could not connect to host
 murrayrun.com: did not receive HSTS header
@@ -5078,17 +5177,17 @@ muzykaprzeszladoplay.pl: could not conne
 mvanmarketing.nl: did not receive HSTS header
 mvsecurity.nl: could not connect to host
 mw.search.yahoo.com: did not receive HSTS header
 mwohlfarth.de: did not receive HSTS header
 my-owncloud.com: could not connect to host
 my-pawnshop.com.ua: could not connect to host
 my-voice.nl: did not receive HSTS header
 my.alfresco.com: did not receive HSTS header
-my.swedbank.se: did not receive HSTS header
+my.swedbank.se: could not connect to host
 myairshop.gr: could not connect to host
 myandroid.tools: could not connect to host
 myandroidtools.cc: could not connect to host
 myandroidtools.pro: could not connect to host
 mybudget.xyz: could not connect to host
 mybuilderinlondon.co.uk: did not receive HSTS header
 mybusiness.cm: did not receive HSTS header
 mychocolateweightloss.com: did not receive HSTS header
@@ -5108,31 +5207,34 @@ mygooder.com: did not receive HSTS heade
 mygov.scot: did not receive HSTS header
 myiocc.org: could not connect to host
 myip.tech: max-age too low: 2592000
 mykolab.com: did not receive HSTS header
 mykreuzfahrt.de: could not connect to host
 mymp3singer.site: did not receive HSTS header
 mynetblog.com: did not receive HSTS header
 myni.io: could not connect to host
+mynigma.org: did not receive HSTS header
 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
 myraytech.net: did not receive HSTS header
 myrig.com: did not receive HSTS header
 myrig.net: could not connect to host
 myrsa.in: did not receive HSTS header
-mysecretrewards.com: did not receive HSTS header
+mysecretrewards.com: could not connect to host
 mystery-science-theater-3000.de: did not receive HSTS header
+mysteryblog.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
+mzlog.win: did not receive HSTS header
 n-rickroll-e.pw: could not connect to host
 n0psled.nl: could not connect to host
 n2x.in: could not connect to host
 n4l.pw: could not connect to host
 n8ch.net: could not connect to host
 nabru.co.uk: did not receive HSTS header
 nabytko.cz: could not connect to host
 nacktetatsachen.at: did not receive HSTS header
@@ -5157,16 +5259,17 @@ namorico.me: could not connect to host
 nan.zone: could not connect to host
 nandex.org: could not connect to host
 naniki.co.uk: did not receive HSTS header
 nanogeneinc.com: could not connect to host
 nanokamo.com: did not receive HSTS header
 nanrenba.net: could not connect to host
 nansay.cn: could not connect to host
 nanto.eu: could not connect to host
+narodniki.com: did not receive HSTS header
 nashira.cz: did not receive HSTS header
 nasralmabrooka.com: could not connect to host
 natalia-fadeeva.ru: could not connect to host
 natalia.io: could not connect to host
 natalieandjoshua.com: could not connect to host
 natalt.org: did not receive HSTS header
 nathanmfarrugia.com: did not receive HSTS header
 nationwidevehiclecontracts.co.uk: did not receive HSTS header
@@ -5187,16 +5290,17 @@ nctx.co.uk: did not receive HSTS header
 ndtmarket.place: could not connect to host
 near.st: did not receive HSTS header
 neavision.de: did not receive HSTS header
 nebra.io: could not connect to host
 nebulousenhanced.com: could not connect to host
 nedwave.com: could not connect to host
 nedzad.me: could not connect to host
 neftaly.com: did not receive HSTS header
+negativzinsen.info: did not receive HSTS header
 neilgreen.net: did not receive HSTS header
 neko-life.com: did not receive HSTS header
 neko-system.com: did not receive HSTS header
 nemno.de: could not connect to host
 nemovement.org: could not connect to host
 neoani.me: could not connect to host
 neofelhz.space: could not connect to host
 neonisi.com: could not connect to host
@@ -5268,28 +5372,28 @@ niconiconi.xyz: could not connect to hos
 niconode.com: could not connect to host
 nidux.com: did not receive HSTS header
 niduxcomercial.com: could not connect to host
 nien.chat: could not connect to host
 nightsnack.cf: could not connect to host
 nightwinds.tk: could not connect to host
 niho.jp: did not receive HSTS header
 nikcub.com: could not connect to host
-niklas.pw: did not receive HSTS header
 niklaslindblad.se: did not receive HSTS header
+nikobradshaw.com: did not receive HSTS header
+niloxy.com: did not receive HSTS header
 ninchisho-online.com: did not receive HSTS header
-ninespec.com: did not receive HSTS header
 ninhs.org: could not connect to host
 ninjaspiders.com: did not receive HSTS header
 nippler.org: did not receive HSTS header
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
 nitropanel.com: did not receive HSTS header
 nixien.fr: could not connect to host
-nixmag.net: did not receive HSTS header
+nixmag.net: could not connect to host
 nkb.in.th: could not connect to host
 nll.fi: could not connect to host
 nmadda.com: could not connect to host
 nmctest.net: could not connect to host
 nmueller.at: could not connect to host
 nnya.cat: could not connect to host
 no-ip.cz: did not receive HSTS header
 no17sifangjie.cc: could not connect to host
@@ -5303,29 +5407,32 @@ nodetemple.com: could not connect to hos
 nodi.at: did not receive HSTS header
 noexpect.org: could not connect to host
 noima.com: did not receive HSTS header
 noisebridge.social: could not connect to host
 nolberg.net: did not receive HSTS header
 nolimitsbook.de: did not receive HSTS header
 nolte.work: could not connect to host
 nomorebytes.de: could not connect to host
+noodlesandwich.com: did not receive HSTS header
+nootropicsource.com: did not receive HSTS header
 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
 nordlicht.photography: did not receive HSTS header
 northcutt.com: did not receive HSTS header
 nosecretshop.com: could not connect to host
 notadd.com: did not receive HSTS header
 notadd.io: could not connect to host
 notarankastojkovic.me: could not connect to host
 notenoughtime.de: could not connect to host
 nothing.net.nz: max-age too low: 7776000
+noticia.do: did not receive HSTS header
 notjustbitchy.com: did not receive HSTS header
 nottheonion.net: did not receive HSTS header
 nou.si: could not connect to host
 nouvelle-vague-saint-cast.fr: did not receive HSTS header
 nova-elearning.com: did not receive HSTS header
 novaco.in: max-age too low: 3600
 novacoast.com: did not receive HSTS header
 novacraft.me: did not receive HSTS header
@@ -5352,17 +5459,16 @@ nu3.co.uk: could not connect to host
 nu3.com: did not receive HSTS header
 nu3.de: did not receive HSTS header
 nu3.dk: did not receive HSTS header
 nu3.fi: did not receive HSTS header
 nu3.fr: did not receive HSTS header
 nu3.no: did not receive HSTS header
 nu3.se: did not receive HSTS header
 nube.ninja: did not receive HSTS header
-nucleuscore.org: did not receive HSTS header
 nufla.de: could not connect to host
 nuiguru.me: did not receive HSTS header
 nukenet.se: could not connect to host
 null-pointer.eu: did not receive HSTS header
 null-sec.ru: could not connect to host
 null.cat: did not receive HSTS header
 null.tips: could not connect to host
 nullpoint.at: did not receive HSTS header
@@ -5394,16 +5500,17 @@ o-rickroll-y.pw: could not connect to ho
 o0o.one: could not connect to host
 oasis.mobi: could not connect to host
 oblast45.ru: did not receive HSTS header
 obscuredfiles.com: could not connect to host
 obsydian.org: could not connect to host
 occentus.net: did not receive HSTS header
 ochaken.cf: could not connect to host
 octocat.ninja: could not connect to host
+oddmouse.com: did not receive HSTS header
 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
@@ -5418,16 +5525,17 @@ ohsocool.org: could not connect to host
 ohyooo.com: could not connect to host
 oiepoie.nl: could not connect to host
 oishioffice.com: did not receive HSTS header
 ojls.co: could not connect to host
 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
+olafnorge.de: did not receive HSTS header
 olanderflorist.com: could not connect to host
 olcso-vps-szerver.hu: could not connect to host
 oldchaphome.nl: did not receive HSTS header
 oldoakflorist.com: 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
@@ -5446,17 +5554,17 @@ onehourloan.com: could not connect to ho
 onehourloan.sg: did not receive HSTS header
 oneiros.cc: did not receive HSTS header
 oneminute.io: did not receive HSTS header
 oneminutefilm.tv: could not connect to host
 onepathnetwork.com: max-age too low: 7776000
 onepluscamps.com: could not connect to host
 onespiritinc.com: did not receive HSTS header
 onet.space: could not connect to host
-onetwentyseven001.com: could not connect to host
+onetwentyseven001.com: did not receive HSTS header
 onewpst.com: did not receive HSTS header
 oniichan.us: did not receive HSTS header
 onioncloud.org: could not connect to host
 onionsburg.com: could not connect to host
 online-casino.eu: did not receive HSTS header
 online-wetten.de: did not receive HSTS header
 online.swedbank.se: did not receive HSTS header
 onlinebiller.com: did not receive HSTS header
@@ -5566,20 +5674,19 @@ owennelson.me: could not connect to host
 owncloud.help: could not connect to host
 ownmovies.fr: could not connect to host
 oxygenabsorbers.com: did not receive HSTS header
 oxynux.fr: could not connect to host
 oyste.in: could not connect to host
 ozoz.cc: could not connect to host
 p-rickroll-o.pw: could not connect to host
 p.linode.com: could not connect to host
-p1984.nl: did not receive HSTS header
 p1c.pw: could not connect to host
 p3.marketing: did not receive HSTS header
-p3in.com: could not connect to host
+p3in.com: did not receive HSTS header
 p8r.de: could not connect to host
 pa.search.yahoo.com: did not receive HSTS header
 pablocamino.tk: could not connect to host
 packlane.com: did not receive HSTS header
 pactocore.org: could not connect to host
 paestbin.com: could not connect to host
 page: could not connect to host
 pagerate.io: did not receive HSTS header
@@ -5620,17 +5727,17 @@ parentmail.co.uk: did not receive HSTS h
 parisvox.info: 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
 parkwithark.com: could not connect to host
 parpaing-paillette.net: could not connect to host
 particonpsplus.it: did not receive HSTS header
 partirkyoto.jp: did not receive HSTS header
-partyhaus.ovh: did not receive HSTS header
+partyhaus.ovh: could not connect to host
 partyvan.eu: could not connect to host
 partyvan.it: could not connect to host
 partyvan.moe: could not connect to host
 partyvan.nl: could not connect to host
 partyvan.se: could not connect to host
 passumpsicbank.com: did not receive HSTS header
 passwd.io: could not connect to host
 passwordbox.com: did not receive HSTS header
@@ -5680,17 +5787,16 @@ peekops.com: did not receive HSTS header
 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 119"  data: no]
 pekkapikkarainen.fi: did not receive HSTS header
 pekkarik.ru: could not connect to host
 peliculasaudiolatinoonline.com: could not connect to host
 peliseries24.com: did not receive HSTS header
 pemberton.at: did not receive HSTS header
-pencillab.cn: did not receive HSTS header
 pengui.uk: could not connect to host
 penguinclientsystem.com: did not receive HSTS header
 pentagram.me: max-age too low: 2592000
 pentano.net: could not connect to host
 people-mozilla.org: 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
@@ -5728,22 +5834,23 @@ pettsy.com: could not connect to host
 pewboards.com: could not connect to host
 pexieapp.com: did not receive HSTS header
 peytonfarrar.com: did not receive HSTS header
 pfgshop.com.br: did not receive HSTS header
 pflegedienst-gratia.de: max-age too low: 300
 pgcpbc.com: could not connect to host
 pgpm.io: could not connect to host
 pgtb.be: did not receive HSTS header
-phalconist.com: did not receive HSTS header
+phalconist.com: could not connect to host
 pharmgkb.org: could not connect to host
 phdsupply.com: did not receive HSTS header
 phillipgoldfarb.com: did not receive HSTS header
 phillmoore.com: did not receive HSTS header
 phillprice.com: could not connect to host
+philphonic.de: did not receive HSTS header
 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
@@ -5793,29 +5900,29 @@ pixdigital.net: did not receive HSTS hea
 pixel.google.com: did not receive HSTS header (error ignored - included regardless)
 pixelcode.com.au: could not connect to host
 pixelhero.co.uk: did not receive HSTS header
 pixi.chat: could not connect to host
 pixi.me: did not receive HSTS header
 pizzadoc.ch: could not connect to host
 pjbet.mg: did not receive HSTS header
 pk.search.yahoo.com: did not receive HSTS header
-pkautodesign.com: did not receive HSTS header
 pkschat.com: could not connect to host
 placefade.com: could not connect to host
 placollection.org: could not connect to host
 plaettliaktion.ch: did not receive HSTS header
 planpharmacy.com: could not connect to host
 plant.ml: did not receive HSTS header
 plass.hamburg: could not connect to host
 plataformadeinformacion.es: max-age too low: 30000
 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)
 playerhunter.com: did not receive HSTS header
+playerscout.net: did not receive HSTS header
 playflick.com: did not receive HSTS header
 playmaker.io: could not connect to host
 playnation.io: could not connect to host
 pleasure.forsale: 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
@@ -5869,16 +5976,17 @@ porno-gif.ru: did not receive HSTS heade
 pornstars.me: did not receive HSTS header
 portalm.tk: could not connect to host
 portalplatform.net: could not connect to host
 portaluniversalista.org: did not receive HSTS header
 portofacil.com: did not receive HSTS header
 poshpak.com: max-age too low: 86400
 postback.io: could not connect to host
 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
@@ -5909,16 +6017,17 @@ prefontaine.name: could not connect to h
 prego-shop.de: did not receive HSTS header
 preissler.co.uk: could not connect to host
 prelist.org: did not receive HSTS header
 prepaid-voip.nl: did not receive HSTS header
 prepandgo-euro.com: could not connect to host
 prescriptiondrugs.com: could not connect to host
 presidentials2016.com: could not connect to host
 press-anime-nenkan.com: did not receive HSTS header
+pressenews.net: did not receive HSTS header
 pressfreedomfoundation.org: did not receive HSTS header
 prettygrouse.com: did not receive HSTS header
 pretzlaff.info: did not receive HSTS header
 preworkout.me: could not connect to host
 prezola.com: did not receive HSTS header
 prgslab.net: could not connect to host
 pridoc.se: did not receive HSTS header
 prielwurmjaeger.de: did not receive HSTS header
@@ -5952,17 +6061,17 @@ projectdp.net: could not connect to host
 projectmercury.space: could not connect to host
 projetoresecia.com: did not receive HSTS header
 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
 prosocialmachines.com: could not connect to host
-prosoft.sk: did not receive HSTS header
+prosoft.sk: could not connect to host
 prosperident.com: did not receive HSTS header
 protoyou.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 providerlijst.com: did not receive HSTS header
 providerlijst.nl: 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
@@ -5986,17 +6095,17 @@ psw.consulting: could not connect to hos
 psychoco.net: could not connect to host
 psylab.re: could not connect to host
 ptn.moscow: could not connect to host
 ptonet.com: could not connect to host
 pubkey.is: could not connect to host
 publications.qld.gov.au: did not receive HSTS header
 publicidadnovagrass.com.mx: did not receive HSTS header
 publicspeakingcamps.com: could not connect to host
-puentes.info: could not connect to host
+puentes.info: did not receive HSTS header
 pugliese.fr: could not connect to host
 puiterwijk.org: could not connect to host
 pulsar.guru: did not receive HSTS header
 pult.co: 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
@@ -6062,26 +6171,26 @@ quli.nl: did not receive HSTS header
 quotehex.com: could not connect to host
 quotemaster.co.za: could not connect to host
 quranserver.net: could not connect to host
 qvi.st: did not receive HSTS header
 qwaser.fr: could not connect to host
 qwilink.me: did not receive HSTS header
 r-core.ru: could not connect to host
 r-rickroll-u.pw: could not connect to host
-r0uzic.net: did not receive HSTS header
 r10n.com: did not receive HSTS header
 r15.me: did not receive HSTS header
 r3bl.me: did not receive HSTS header
 ra-schaal.de: could not connect to host
 raajheshkannaa.com: could not connect to host
 rabbit.wales: could not connect to host
 radicaleducation.net: could not connect to host
 radtke.bayern: could not connect to host
 rafaelcz.de: could not connect to host
+ragingserenity.com: did not receive HSTS header
 raidstone.com: could not connect to host
 raidstone.net: could not connect to host
 raidstone.rocks: could not connect to host
 rainbowbarracuda.com: could not connect to host
 ramarka.de: could not connect to host
 ramatola.uk: did not receive HSTS header
 ramon-c.nl: could not connect to host
 ramonj.nl: could not connect to host
@@ -6177,16 +6286,17 @@ reithguard-it.de: did not receive HSTS h
 rejo.in: could not connect to host
 rejuvemedspa.com: did not receive HSTS header
 relayawards.com: could not connect to host
 reldoc.com.mx: did not receive HSTS header
 reliable-mail.de: did not receive HSTS header
 relisten.nl: did not receive HSTS header
 rem.pe: could not connect to host
 rema.site: could not connect to host
+remaimodern.org: did not receive HSTS header
 remedica.fr: did not receive HSTS header
 remedium.de: did not receive HSTS header
 rememberthis.co.za: could not connect to host
 remitatm.com: did not receive HSTS header
 remodela.com.ve: could not connect to host
 remonttitekniikka.fi: could not connect to host
 remoteham.com: could not connect to host
 remotestance.com: did not receive HSTS header
@@ -6221,16 +6331,17 @@ revapost.ch: could not connect to host
 revealdata.com: did not receive HSTS header
 revelaciones.tv: could not connect to host
 revello.org: did not receive HSTS header
 reverie.pw: could not connect to host
 review.info: did not receive HSTS header
 reviewjust.com: did not receive HSTS header
 reviews.anime.my: max-age too low: 5184000
 revtut.net: did not receive HSTS header
+rewardingexcellence.com: did not receive HSTS header
 rewardstock.com: max-age too low: 0
 rewopit.net: did not receive HSTS header
 rhapsodhy.hu: could not connect to host
 rhdigital.pro: could not connect to host
 rhering.de: could not connect to host
 rhodosdreef.nl: could not connect to host
 riaucybersolution.net: did not receive HSTS header
 ribopierre.fr: could not connect to host
@@ -6289,39 +6400,39 @@ rodosto.com: did not receive HSTS header
 roeper.party: could not connect to host
 roesemann.email: could not connect to host
 roguelikecenter.fr: did not receive HSTS header
 rolandreed.cn: did not receive HSTS header
 rolemaster.net: could not connect to host
 roleplayhome.com: could not connect to host
 rolroer.co.za: could not connect to host
 romab.com: did not receive HSTS header
-romaimperator.com: could not connect to host
 romans-place.me.uk: could not connect to host
 romeoferraris.com: did not receive HSTS header
 romulusapp.com: could not connect to host
 ron2k.za.net: could not connect to host
 rondoniatec.com.br: did not receive HSTS header
 ronvandordt.info: could not connect to host
 ronwo.de: max-age too low: 1
 rootforum.org: did not receive HSTS header
 rootservice.org: did not receive HSTS header
 rootwpn.com: could not connect to host
 rop.io: could not connect to host
+rorymcdaniel.com: did not receive HSTS header
 rossen.be: did not receive HSTS header
 rosslug.org.uk: could not connect to host
 rotter-dam.nl: did not receive HSTS header
 rough.nu: could not connect to host
 roundtheme.com: did not receive HSTS header
 rous.se: could not connect to host
 rouvray.org: could not connect to host
 royal-forest.org: max-age too low: 0
 royalhop.co: could not connect to host
 royalpub.net: did not receive HSTS header
-royalsignaturecruise.com: could not connect to host
+royalsignaturecruise.com: did not receive HSTS header
 roychan.org: max-age too low: 0
 rozeapp.nl: could not connect to host
 rr.in.th: could not connect to host
 rrke.cc: did not receive HSTS header
 rsajeey.info: could not connect to host
 rsampaio.info: could not connect to host
 rsauget.fr: could not connect to host
 rsblake.net: could not connect to host
@@ -6359,48 +6470,47 @@ rxprep.com: did not receive HSTS header
 rxt.social: could not connect to host
 rxv.cc: could not connect to host
 ryanteck.uk: did not receive HSTS header
 rylin.net: did not receive HSTS header
 s-d-v.ch: could not connect to host
 s-rickroll-p.pw: could not connect to host
 s.how: could not connect to host
 saabwa.org: could not connect to host
-saamhorigheidsfonds.nl: 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
 safersurfing.eu: did not receive HSTS header
 safewings-nh.nl: could not connect to host
 sagarhandicraft.com: could not connect to host
 sageth.com: max-age too low: 0
 sah3.net: could not connect to host
 saharalondon.com: did not receive HSTS header
 saharmassachi.com: could not connect to host
 sail-nyc.com: did not receive HSTS header
 sairai.bid: did not receive HSTS header
 sakaki.anime.my: max-age too low: 5184000
-sakaserver.com: did not receive HSTS header
+sakaserver.com: could not connect to host
 sakib.ninja: did not receive HSTS header
 sakurabuff.com: could not connect to host
 salserocafe.com: did not receive HSTS header
 salserototal.com: could not connect to host
 saltedskies.com: could not connect to host
 saltra.online: did not receive HSTS header
 samegoal.org: did not receive HSTS header
 sametovymesic.cz: could not connect to host
 samfunnet.no: max-age too low: 0
 saml2.com: could not connect to host
 sampcup.com: could not connect to host
 sampoznay.ru: did not receive HSTS header
 samraskauskas.com: could not connect to host
 samsen.club: did not receive HSTS header
 samui-samui.de: did not receive HSTS header
 sanasalud.org: could not connect to host
-sanatfilan.com: did not receive HSTS header
+sanatfilan.com: could not connect to host
 sandviks.com: did not receive HSTS header
 sanex.ca: could not connect to host
 sanguoxiu.com: could not connect to host
 sanhei.ch: did not receive HSTS header
 sansage.com.br: did not receive HSTS header
 sansdev.com: could not connect to host
 sansemea.com: did not receive HSTS header
 santing.net: did not receive HSTS header
@@ -6443,17 +6553,16 @@ schmitt.ovh: could not connect to host
 schnell-abnehmen.tips: did not receive HSTS header
 schnell-gold.com: could not connect to host
 schooltrends.co.uk: did not receive HSTS header
 schorel.ovh: could not connect to host
 schorelweb.nl: did not receive HSTS header
 schreiber-netzwerk.eu: did not receive HSTS header
 schrodinger.io: could not connect to host
 schroettle.com: did not receive HSTS header
-schrolm.de: 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: did not receive HSTS header
 schwetz.net: could not connect to host
 scicasts.com: max-age too low: 7776000
 scienceathome.org: did not receive HSTS header
 scivillage.com: did not receive HSTS header
@@ -6500,17 +6609,16 @@ secondary-survivor.com: could not connec
 secondary-survivor.help: could not connect to host
 secondary-survivor.net: could not connect to host
 secondarysurvivor.help: could not connect to host
 secondarysurvivorportal.com: could not connect to host
 secondarysurvivorportal.help: could not connect to host
 secondbyte.nl: could not connect to host
 secondpay.nl: could not connect to host
 secondspace.ca: could not connect to host
-secretum.tech: did not receive HSTS header
 sectia22.ro: did not receive HSTS header
 section508.gov: did not receive HSTS header
 sectun.com: did not receive HSTS header
 secumail.nl: did not receive HSTS header
 secur3.us: did not receive HSTS header
 secure-games.us: could not connect to host
 secure.link: did not receive HSTS header
 securechat4.me: could not connect to host
@@ -6606,16 +6714,17 @@ shadowsocks.vc: did not receive HSTS hea
 shadowsocks.wiki: did not receive HSTS header
 shadowsoks.com: could not connect to host
 shakebox.de: could not connect to host
 shanekoster.net: could not connect to host
 shanesage.com: could not connect to host
 shaobin.wang: could not connect to host
 shapesedinburgh.co.uk: did not receive HSTS header
 shardsoft.com: could not connect to host
+shareeri.com: did not receive HSTS header
 shareimg.xyz: could not connect to host
 sharejoy.cn: did not receive HSTS header
 sharepass.pw: could not connect to host
 sharepic.xyz: could not connect to host
 sharezen.de: could not connect to host
 shauncrowley.co.uk: could not connect to host
 shaunwheelhou.se: could not connect to host
 shawnh.net: could not connect to host
@@ -6732,23 +6841,25 @@ skyoy.com: did not receive HSTS header
 skyrunners.ch: could not connect to host
 slanterns.net: could not connect to host
 slash-dev.de: did not receive HSTS header
 slashand.co: did not receive HSTS header
 slashdesign.it: did not receive HSTS header
 slashem.me: did not receive HSTS header
 slattery.co: could not connect to host
 slauber.de: did not receive HSTS header
+sleeklounge.com: did not receive HSTS header
 sleep10.com: could not connect to host
 slicketl.com: did not receive HSTS header
 slightfuture.click: could not connect to host
 slightfuture.com: did not receive HSTS header
 slix.io: could not connect to host
 slope.haus: could not connect to host
 slotboss.co.uk: did not receive HSTS header
+slovakiana.sk: did not receive HSTS header
 slycurity.de: did not receive HSTS header
 smablo.com: did not receive HSTS header
 smallcdn.rocks: could not connect to host
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
 smartbuyelectric.com: could not connect to host
 smartcleaningcenter.nl: did not receive HSTS header
 smartcoin.com.br: could not connect to host
@@ -6759,17 +6870,17 @@ smartofficesandsmarthomes.com: did not r
 smartphone.continental.com: could not connect to host
 smartrak.co.nz: did not receive HSTS header
 smdev.fr: could not connect to host
 smet.us: could not connect to host
 smexpt.com: did not receive HSTS header
 smimea.com: could not connect to host
 smirkingwhorefromhighgarden.pro: could not connect to host
 smittix.co.uk: did not receive HSTS header
-smkn1lengkong.sch.id: did not receive HSTS header
+smkn1lengkong.sch.id: could not connect to host
 smksi2.com: could not connect to host
 smksultanismail2.com: did not receive HSTS header
 smove.sg: did not receive HSTS header
 smplix.com: could not connect to host
 smusg.com: could not connect to host
 smzsq.com: did not receive HSTS header
 snailing.org: could not connect to host
 snakehosting.dk: did not receive HSTS header
@@ -6827,31 +6938,32 @@ sorensen-online.com: could not connect t
 sosaka.ml: could not connect to host
 sosiolog.com: did not receive HSTS header
 sotor.de: did not receive HSTS header
 soucorneteiro.com.br: could not connect to host
 sougi-review.top: could not connect to host
 soulfulglamour.uk: could not connect to host
 sourcelair.com: did not receive HSTS header
 southernjamusa.com: did not receive HSTS header
+southernutahinfluencers.com: did not receive HSTS header
 southgale.condos: could not connect to host
 southside-crew.club: could not connect to host
 southworcestershiregpservices.co.uk: could not connect to host
 souyar.de: could not connect to host
 souyar.net: could not connect to host
 souyar.us: could not connect to host
 sovereignshare.com: could not connect to host
 sown.dyndns.org: could not connect to host
 spacedust.xyz: could not connect to host
 spacefish.biz: could not connect to host
 spacehq.org: could not connect to host
 spacemo.com: did not receive HSTS header
 spaggel.nl: could not connect to host
 spamloco.net: did not receive HSTS header
-sparelib.com: could not connect to host
+sparelib.com: max-age too low: 3650
 spark.team: could not connect to host
 sparklingsparklers.com: did not receive HSTS header
 sparsa.army: could not connect to host
 sparta-trade.com: could not connect to host
 spauted.com: could not connect to host
 spdysync.com: could not connect to host
 specialedesigns.com: could not connect to host
 speculor.net: could not connect to host
@@ -6871,16 +6983,17 @@ spirit-dev.net: max-age too low: 0
 spisoggrin.dk: did not receive HSTS header
 spititout.it: could not connect to host
 spittersberger.recipes: did not receive HSTS header
 spokonline.com: could not connect to host
 sponsortobias.com: could not connect to host
 sportchirp-internal.azurewebsites.net: did not receive HSTS header
 sporthit.ru: did not receive HSTS header
 sportifik.com: did not receive HSTS header
+sportscollection.com.br: 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
 spreadsheets.google.com: did not receive HSTS header (error ignored - included regardless)
 spresso.me: did not receive HSTS header
 sprk.fitness: did not receive HSTS header
@@ -6912,17 +7025,16 @@ stackfiles.io: 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: could not connect to host
 stahl.xyz: could not connect to host
 stalkerhispano.com: max-age too low: 0
 stalkerteam.pl: did not receive HSTS header
 stalschermer.nl: could not connect to host
-stamonicatourandtravel.com: did not receive HSTS header
 standardssuck.org: did not receive HSTS header
 standingmist.com: did not receive HSTS header
 starandshield.com: did not receive HSTS header
 starapple.nl: did not receive HSTS header
 starfeeling.net: could not connect to host
 stargatepartners.com: did not receive HSTS header
 starmusic.ga: did not receive HSTS header
 starttraffic.com: did not receive HSTS header
@@ -6990,16 +7102,17 @@ streams.dyndns.org: could not connect to
 strictlysudo.com: could not connect to host
 strife.tk: could not connect to host
 strila.me: did not receive HSTS header
 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
 studentrdh.com: did not receive HSTS header
 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
@@ -7063,21 +7176,23 @@ susc.org.uk: did not receive HSTS header
 sussexwebdesigns.info: did not receive HSTS header
 suzukikenichi.com: did not receive HSTS header
 sv.search.yahoo.com: did not receive HSTS header
 svatba-frantovi.cz: could not connect to host
 svenluijten.com: did not receive HSTS header
 svenskacasino.com: did not receive HSTS header
 svenskaservern.se: did not receive HSTS header
 svetjakonadlani.cz: did not receive HSTS header
+swaleacademiestrust.org.uk: max-age too low: 2592000
 swdatlantico.pt: could not connect to host
 sweetair.com: did not receive HSTS header
 sweetstreats.ca: could not connect to host
 swfloshatraining.com: could not connect to host
 swimming.ca: did not receive HSTS header
+swissid.ch: max-age too low: 60
 swisstranslate.ch: did not receive HSTS header
 swisstranslate.fr: did not receive HSTS header
 swite.com: did not receive HSTS header
 swmd5c.org: could not connect to host
 swu.party: could not connect to host
 sxbk.pw: could not connect to host
 syam.cc: could not connect to host
 sydgrabber.tk: could not connect to host
@@ -7134,33 +7249,34 @@ tamex.xyz: could not connect to host
 tandarts-haarlem.nl: did not receive HSTS header
 tangel.me: could not connect to host
 tangibilizing.com: could not connect to host
 taniesianie.pl: did not receive HSTS header
 tankfreunde.de: did not receive HSTS header
 tannerfilip.org: could not connect to host
 tante-bugil.net: could not connect to host
 tanze-jetzt.de: could not connect to host
-taozj.org: could not connect to host
+taozj.org: did not receive HSTS header
 tapfinder.ca: could not connect to host
 tapka.cz: did not receive HSTS header
 tappublisher.com: did not receive HSTS header
 taranis.re: could not connect to host
 taravancil.com: did not receive HSTS header
 targaryen.house: could not connect to host
 tarhauskielto.fi: did not receive HSTS header
 tartaros.fi: could not connect to host
 taskstats.com: could not connect to host
 taskulu.ir: could not connect to host
 tasmansecurity.com: could not connect to host
 tassup.com: could not connect to host
 tastyyy.co: could not connect to host
 tatilbus.com: did not receive HSTS header
 tatt.io: could not connect to host
 tauchkater.de: could not connect to host
+tavoittaja.fi: did not receive HSTS header
 tavopica.lt: did not receive HSTS header
 taxbench.com: could not connect to host
 taxiindenbosch.nl: did not receive HSTS header
 taxsnaps.co.nz: did not receive HSTS header
 tazz.in: could not connect to host
 tbspace.de: did not receive HSTS header
 tc-bonito.de: did not receive HSTS header
 tcao.info: could not connect to host
@@ -7173,16 +7289,17 @@ tcwebvn.com: could not connect to host
 tdsb.ga: could not connect to host
 tdsb.gq: could not connect to host
 tdsb.ml: could not connect to host
 tdsbhack.cf: could not connect to host
 tdsbhack.ga: could not connect to host
 tdsbhack.gq: could not connect to host
 tdsbhack.ml: could not connect to host
 teachforcanada.ca: did not receive HSTS header
+tealdrones.com: did not receive HSTS header
 team-teasers.com: did not receive HSTS header
 teamblueridge.org: could not connect to host
 teamhood.io: did not receive HSTS header
 teampoint.cz: 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: did not receive HSTS header
@@ -7224,17 +7341,17 @@ teletra.ru: could not connect to host
 tellingua.com: did not receive HSTS header
 temehu.com: did not receive HSTS header
 tempcraft.net: could not connect to host
 tempo.co: did not receive HSTS header
 tempus-aquilae.de: could not connect to host
 tendertool.nl: could not connect to host
 tenerife-villas.com: did not receive HSTS header
 tengroup.com: did not receive HSTS header
-tenmm.com: did not receive HSTS header
+tenmm.com: max-age too low: 0
 tenni.xyz: could not connect to host
 tensei-slime.com: did not receive HSTS header
 tensionup.com: could not connect to host
 tentins.com: could not connect to host
 teos.online: 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
@@ -7375,17 +7492,17 @@ tierrarp.com: could not connect to host
 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.biz: could not connect to host
 tiliaze.eu: did not receive HSTS header
 tilient.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 tilikum.io: did not receive HSTS header
-tilkah.com.au: could not connect to host
+tilkah.com.au: did not receive HSTS header
 tillcraft.com: could not connect to host
 timbeilby.com: could not connect to host
 timbuktutimber.com: did not receive HSTS header
 timcamara.com: could not connect to host
 time-river.xyz: could not connect to host
 timesavingplugins.com: could not connect to host
 timesavingplugins.net: could not connect to host
 timeserver0.de: could not connect to host
@@ -7410,17 +7527,16 @@ tirex.media: did not receive HSTS header
 titanlab.de: could not connect to host
 titanleaf.com: could not connect to host
 titouan.co: did not receive HSTS header
 tittarpuls.se: could not connect to host
 titties.ml: could not connect to host
 tjc.host: did not receive HSTS header
 tjc.wiki: could not connect to host
 tjullrich.de: could not connect to host
-tkacz.pro: did not receive HSTS header
 tkappertjedemetamorfose.nl: could not connect to host
 tkonstantopoulos.tk: could not connect to host
 tlcdn.net: could not connect to host
 tlo.hosting: could not connect to host
 tlo.link: could not connect to host
 tlo.network: could not connect to host
 tls.li: could not connect to host
 tlsbv.nl: did not receive HSTS header
@@ -7451,24 +7567,24 @@ tokenloan.com: could not connect to host
 tokobungadijambi.com: did not receive HSTS header
 tokoone.com: did not receive HSTS header
 tokotamz.net: could not connect to host
 tokotimbangandigitalmurah.web.id: did not receive HSTS header
 tokoyo.biz: could not connect to host
 tollmanz.com: did not receive HSTS header
 tolud.com: could not connect to host
 tom.horse: did not receive HSTS header
-tomatenaufdenaugen.de: could not connect to host
 tomeara.net: could not connect to host
 tomevans.io: did not receive HSTS header
-tomharris.tech: could not connect to host
+tomharris.tech: did not receive HSTS header
 tomlankhorst.nl: did not receive HSTS header
 tomli.me: could not connect to host
 tommsy.com: did not receive HSTS header
 tommyads.com: could not connect to host
+tommyweber.de: did not receive HSTS header
 tomphill.co.uk: could not connect to host
 tongmu.me: did not receive HSTS header
 tonyfantjr.com: could not connect to host
 toomanypillows.com: could not connect to host
 tooolroc.org: could not connect to host
 top-stage.net: could not connect to host
 topdeskdev.net: could not connect to host
 topmarine.se: could not connect to host
@@ -7509,22 +7625,22 @@ trade.gov.uk: could not connect to host
 tradingcentre.com.au: did not receive HSTS header
 tradinghope.com: could not connect to host
 trafficquality.org: could not connect to host
 traindb.nl: did not receive HSTS header
 training4girls.ru: could not connect to host
 trainingproviderresults.gov: could not connect to host
 trainut.com: could not connect to host
 trakfusion.com: could not connect to host
-trance-heal.com: could not connect to host
-trance-heal.de: could not connect to host
-trance-heal.me: could not connect to host
-tranceheal.com: could not connect to host
+trance-heal.com: did not receive HSTS header
+trance-heal.de: did not receive HSTS header
+trance-heal.me: did not receive HSTS header
+tranceheal.com: did not receive HSTS header
 tranceheal.de: did not receive HSTS header
-tranceheal.me: could not connect to host
+tranceheal.me: did not receive HSTS header
 transdirect.com.au: did not receive HSTS header
 transformify.org: did not receive HSTS header
 transl8.eu: did not receive HSTS header
 translate.googleapis.com: did not receive HSTS header (error ignored - included regardless)
 transportal.sk: did not receive HSTS header
 travality.ru: could not connect to host
 travel-kuban.ru: did not receive HSTS header
 travelinsightswriter.com: could not connect to host
@@ -7619,16 +7735,17 @@ tx041cap.org: did not receive HSTS heade
 txclimbers.com: could not connect to host
 txf.pw: could not connect to host
 ty2u.com: did not receive HSTS header
 tylian.net: max-age too low: 0
 typeofweb.com: did not receive HSTS header
 typingrevolution.com: did not receive HSTS header
 tyrelius.com: did not receive HSTS header
 tyroproducts.eu: did not receive HSTS header
+tyroremotes.eu: did not receive HSTS header
 tyroremotes.no: did not receive HSTS header
 tzappa.net: could not connect to host
 u-blox.com: max-age too low: 0
 u.nu: could not connect to host
 ua.search.yahoo.com: did not receive HSTS header
 uadp.pw: did not receive HSTS header
 uber.com.au: did not receive HSTS header
 uberfunction.com: did not receive HSTS header
@@ -7743,17 +7860,17 @@ utilitronium-shockwave.com: could not co
 utleieplassen.no: could not connect to host
 utopiagalaxy.space: could not connect to host
 utopian-surgery.com: could not connect to host
 utopianhomespa.com: did not receive HSTS header
 utopianrealms.org: did not receive HSTS header
 uttnetgroup.fr: could not connect to host
 utumno.ch: did not receive HSTS header
 utvbloggen.se: max-age too low: 604800
-uvarov.pw: did not receive HSTS header
+uvarov.pw: could not connect to host
 uwstartups.com: could not connect to host
 uxux.pl: could not connect to host
 uy.search.yahoo.com: did not receive HSTS header
 uyym.com: could not connect to host
 uz.search.yahoo.com: did not receive HSTS header
 uzmandroid.com: did not receive HSTS header
 uzmandroid.net: could not connect to host
 uzmandroid.top: could not connect to host
@@ -7806,16 +7923,17 @@ vedatkamer.com: did not receive HSTS hea
 vega.dyndns.info: could not connect to host
 veganosonline.com: could not connect to host
 veggiefasting.com: could not connect to host
 veggiesbourg.fr: did not receive HSTS header
 vegis.ro: did not receive HSTS header
 vehent.org: did not receive HSTS header
 vehicleuplift.co.uk: did not receive HSTS header
 vemokin.net: could not connect to host
+vendigital.com: did not receive HSTS header
 venicecomputerrepair.com: did not receive HSTS header
 venixplays-stream.ml: could not connect to host
 vennet.fr: did not receive HSTS header
 venturepro.com: did not receive HSTS header
 ventzke.com: did not receive HSTS header
 venzocrm.com: did not receive HSTS header
 verifikatorindonesia.com: could not connect to host
 vermontcareergateway.org: could not connect to host
@@ -7894,16 +8012,17 @@ vogler.name: did not receive HSTS header
 voicesuk.co.uk: did not receive HSTS header
 voidserv.net: could not connect to host
 volcrado.com: did not receive HSTS header
 voliere-info.nl: did not receive HSTS header
 volkden.com: could not connect to host
 vonavy-cukor.sk: could not connect to host
 vonavycukor.sk: could not connect to host
 vooreenveiligthuis.nl: did not receive HSTS header
+voorjou.com: did not receive HSTS header
 vorangerie.com: could not connect to host
 vortexhobbies.com: did not receive HSTS header
 vosjesweb.nl: could not connect to host
 vox.vg: did not receive HSTS header
 vpip.net: could not connect to host
 vpn-byen.dk: did not receive HSTS header
 vpn.black: could not connect to host
 vpn.pics: did not receive HSTS header
@@ -7969,16 +8088,17 @@ warrencreative.com: did not receive HSTS
 warsentech.com: could not connect to host
 warsh.moe: did not receive HSTS header
 watchium.com: did not receive HSTS header
 waterforlife.net.au: did not receive HSTS header
 waterpoint.com.br: did not receive HSTS header
 watersb.org: could not connect to host
 watersportmarkt.net: did not receive HSTS header
 watsonhall.uk: could not connect to host
+wattechweb.com: did not receive HSTS header
 wave.is: could not connect to host
 wavefloatrooms.com: did not receive HSTS header
 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
 web-industry.fr: could not connect to host
 web-insider.net: could not connect to host
@@ -8023,34 +8143,36 @@ webwork.pw: could not connect to host
 webypass.xyz: 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
 weiji.ga: did not receive HSTS header
 welkers.org: could not connect to host
-wellastore.ru: did not receive HSTS header
+wellastore.ru: could not connect to host
 wellcomp.com.br: did not receive HSTS header
 wellies.com.au: max-age too low: 7776000
 wellness.so: could not connect to host
 welpy.com: could not connect to host
 weltentreff.com: could not connect to host
 weltmeisterschaft.net: could not connect to host
 wemakeonlinereviews.com: 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: did not receive HSTS header
 werkruimtebottendaal.nl: did not receive HSTS header
 wesleyharris.ca: did not receive HSTS header
 westendzone.com: max-age too low: 0
 westerhoud.nl: did not receive HSTS header
+westlinwinds.com: did not receive HSTS header
 westsussexconnecttosupport.org: could not connect to host
+wetoxic.com: did not receive HSTS header
 wettbuero.de: did not receive HSTS header
 wetten.eu: did not receive HSTS header
 wettertoertchen.com: could not connect to host
 wetttipps.com: did not receive HSTS header
 wetttipps.de: could not connect to host
 wevahoo.com: could not connect to host
 wevolver.com: did not receive HSTS header
 wewlad.me: could not connect to host
@@ -8070,17 +8192,16 @@ whoisapi.online: could not connect to ho
 wholebites.com: max-age too low: 7776000
 whoneedstobeprimaried.today: could not connect to host
 whoshotya.de: did not receive HSTS header
 whysuck.com: could not connect to host
 wienholding.at: max-age too low: 0
 wieninternational.at: did not receive HSTS header
 wificafehosting.com: did not receive HSTS header
 wifimapa.cz: could not connect to host
-wifree.lv: did not receive HSTS header
 wiire.me: could not connect to host
 wikiclash.info: could not connect to host
 wikipeter.nl: did not receive HSTS header
 wikisports.eu: could not connect to host
 wildbee.org: could not connect to host
 wilddog.com: did not receive HSTS header
 wilf1rst.com: could not connect to host
 wilfrid-calixte.fr: could not connect to host
@@ -8147,16 +8268,17 @@ wowinvasion.com: did not receive HSTS he
 wp-rescue.com.au: did not receive HSTS header
 wpblog.com.tw: could not connect to host
 wpcarer.pro: could not connect to host
 wpdublin.com: could not connect to host
 wpfortify.com: did not receive HSTS header
 wphome.org: could not connect to host
 wphostingspot.com: did not receive HSTS header
 wpmetadatastandardsproject.org: could not connect to host
+wpturnedup.com: did not receive HSTS header
 wpunpacked.com: could not connect to host
 wpyecom.es: did not receive HSTS header
 wpzhiku.com: did not receive HSTS header
 wql.zj.cn: did not receive HSTS header
 wrbunderwriting.com: did not receive HSTS header
 wrightdoumawedding.com: could not connect to host
 writeapp.me: did not receive HSTS header
 wrldevelopment.com: did not receive HSTS header
@@ -8180,17 +8302,17 @@ www-1117.com: could not connect to host
 www-39988.com: did not receive HSTS header
 www-507.net: did not receive HSTS header
 www-746.com: could not connect to host
 www-771122.com: did not receive HSTS header
 www-8003.com: did not receive HSTS header
 www-88599.com: did not receive HSTS header
 www-9995.com: did not receive HSTS header
 www-djbet.com: did not receive HSTS header
-www-jinshavip.com: could not connect to host
+www-jinshavip.com: did not receive HSTS header
 www.braintreepayments.com: did not receive HSTS header
 www.cueup.com: could not connect to host
 www.cyveillance.com: did not receive HSTS header
 www.developer.mydigipass.com: could not connect to host
 www.elanex.biz: did not receive HSTS header
 www.gamesdepartment.co.uk: did not receive HSTS header
 www.gmail.com: did not receive HSTS header (error ignored - included regardless)
 www.googlemail.com: did not receive HSTS header (error ignored - included regardless)
@@ -8219,17 +8341,17 @@ x509.pub: could not connect to host
 x509.pw: could not connect to host
 xa.search.yahoo.com: did not receive HSTS header
 xandocs.com: could not connect to host
 xat.re: could not connect to host
 xavierbarroso.com: could not connect to host
 xbind.io: could not connect to host
 xcoop.me: could not connect to host
 xdd.io: could not connect to host
-xecure.zone: did not receive HSTS header
+xecure.zone: could not connect to host
 xehoivn.vn: did not receive HSTS header
 xellos.ga: could not connect to host
 xellos.ml: could not connect to host
 xenesisziarovky.sk: could not connect to host
 xett.com: did not receive HSTS header
 xf-liam.com: did not receive HSTS header
 xfd3.de: did not receive HSTS header
 xfive.de: could not connect to host
@@ -8278,30 +8400,29 @@ xn--jp-6l5cs1yf3ivjsglphyv.net: could no
 xn--l8j9d2b.jp: could not connect to host
 xn--lgb3a8bcpn.cf: could not connect to host
 xn--lgb3a8bcpn.ga: could not connect to host
 xn--lgb3a8bcpn.gq: could not connect to host
 xn--lgb3a8bcpn.ml: could not connect to host
 xn--ls8hi7a.tk: could not connect to host
 xn--lsaupp-iua.se: did not receive HSTS header
 xn--mgbbh2a9fub.xn--ngbc5azd: could not connect to host
-xn--milchaufschumer-test-lzb.de: did not receive HSTS header
+xn--milchaufschumer-test-lzb.de: could not connect to host
 xn--neb-tma3u8u.xyz: could not connect to host
 xn--qckqc0nxbyc4cdb4527err7c.biz: did not receive HSTS header
 xn--xdtx3pfzbiw3ar8e7yedqrhui.com: could not connect to host
 xn--yoamomisuasbcn-ynb.com: could not connect to host
 xn--zck9a4b352yuua.jp: did not receive HSTS header
 xobox.me: could not connect to host
 xoffy.com: did not receive HSTS header
 xom.party: could not connect to host
 xor-a.net: could not connect to host
 xperiacodes.com: did not receive HSTS header
 xpi.fr: could not connect to host
 xpj.sx: could not connect to host
-xpressprint.com.br: could not connect to host
 xrp.pw: could not connect to host
 xsmobile.de: could not connect to host
 xtom.email: could not connect to host
 xtream-hosting.com: could not connect to host
 xtream-hosting.de: could not connect to host
 xtream-hosting.eu: could not connect to host
 xtreamhosting.eu: could not connect to host
 xtrim.ru: did not receive HSTS header
@@ -8398,16 +8519,17 @@ z3liff.net: could not connect to host
 za.search.yahoo.com: did not receive HSTS header
 zadieheimlich.com: did not receive HSTS header
 zahyantechnologies.com: could not connect to host
 zakoncontrol.com: did not receive HSTS header
 zamorano.edu: could not connect to host
 zamos.ru: max-age too low: 0
 zaneweb.org: could not connect to host
 zao.fi: did not receive HSTS header
+zaoshanghao-dajia.rhcloud.com: did not receive HSTS header
 zap.yt: did not receive HSTS header
 zarooba.com: could not connect to host
 zavca.com: did not receive HSTS header
 zbigniewgalucki.eu: did not receive HSTS header
 zcon.nl: could not connect to host
 zdravotnickasluzba.eu: could not connect to host
 zebrababy.cn: could not connect to host
 zebry.nl: could not connect to host
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.     */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1518025196357000);
+const PRTime gPreloadListExpirationTime = INT64_C(1518329115274000);
 %%
 0.me.uk, 1
 00001.am, 1
 00002.am, 1
 0005pay.com, 1
 0010100.net, 1
 00220022.net, 1
 007-preisvergleich.de, 1
@@ -168,16 +168,17 @@ 1ststop.co.uk, 1
 1three1.net, 1
 1whw.co.uk, 1
 1wirelog.de, 1
 2-cpu.de, 1
 2.wtf, 1
 2048-spiel.de, 1
 2048game.co.uk, 1
 208.es, 1
+21.co.uk, 1
 21stnc.com, 1
 21x9.org, 1
 22scc.com, 1
 2333.press, 1
 233abc.com, 1
 24-7.jp, 1
 246060.ru, 1
 247a.co.uk, 1
@@ -216,17 +217,16 @@ 2gen.com, 1
 2hypeenterprises.com, 1
 2kgwf.fi, 1
 2krueger.de, 1
 2mb.solutions, 1
 2nains.ch, 1
 2nerds1bit.com, 1
 2pay.fr, 1
 2programmers.net, 1
-2smart4food.com, 1
 2stv.net, 1
 2ulcceria.nl, 1
 300mbmovie24.com, 1
 3133780x.com, 1
 314chan.org, 1
 31klabs.com, 1
 31tv.ru, 1
 321live.nl, 1
@@ -286,16 +286,17 @@ 41199.com, 1
 411film.com, 1
 411movie.com, 1
 41844.de, 1
 41where.com, 1
 420java.com, 1
 42day.info, 1
 42entrepreneurs.fr, 1
 439191.com, 1
+441jj.com, 0
 44scc.com, 1
 4500.co.il, 1
 47tech.com, 1
 491mhz.net, 1
 49889.com, 1
 49948522.com, 1
 49dollaridahoregisteredagent.com, 1
 4baby.com.br, 1
@@ -320,17 +321,16 @@ 4vf.de, 1
 4web-hosting.com, 1
 4winds.pt, 1
 4x.fi, 1
 4x4.lk, 1
 4xlabs.co, 1
 500k.nl, 1
 500p.xyz, 1
 50plusnet.nl, 1
-513vpn.net, 1
 518maicai.com, 1
 525.info, 1
 52neptune.com, 1
 5432.cc, 1
 54below.com, 1
 5533445.com, 1
 555fl.com, 1
 555xl.com, 1
@@ -414,17 +414,17 @@ 92url.com, 1
 9449-27a1-22a1-e0d9-4237-dd99-e75e-ac85-2f47-9d34.de, 1
 987987.com, 1
 9906753.net, 1
 9933445.com, 1
 99599.fi, 1
 99599.net, 1
 99buffets.com, 1
 99rst.org, 1
-9jadirect.com, 1
+9ss6.com, 1
 9uelle.jp, 1
 9vx.org, 1
 9yw.me, 1
 a-1indianawaterproofing.com, 1
 a-allard.be, 1
 a-ix.net, 1
 a-little-linux-box.at, 1
 a200k.xyz, 1
@@ -1294,23 +1294,24 @@ analyticum.at, 1
 analyticum.com, 1
 analyticum.de, 1
 analyticum.eu, 1
 analyticum.net, 1
 analyzemyfriends.com, 1
 ananke.io, 1
 anankecosmetics.com, 1
 anantshri.info, 1
+anarchistischegroepnijmegen.nl, 0
 anarka.org, 1
 anassiriphotography.com, 0
 anastasia-shamara.ru, 1
 anastasiafond.com, 1
 anchev.net, 1
 anchorgrounds.com, 1
-anchovy.nz, 1
+anchovy.nz, 0
 ancientcraft.eu, 1
 ancolies-andre.com, 1
 and-stuff.nl, 1
 and.com, 1
 andarpersassi.it, 1
 andbraiz.com, 1
 andel.info, 1
 anders.hamburg, 1
@@ -1522,16 +1523,17 @@ aooobo.com, 1
 aopedeure.nl, 1
 aosc.io, 0
 aosus.org, 1
 aovcentrum.nl, 1
 ap-swiss.ch, 1
 apachehaus.de, 0
 apadrinaunolivo.org, 1
 apadvantage.com, 1
+aparaatti.org, 1
 apartmanicg.me, 1
 apartment-natik.fr, 1
 apartmentkroatien.at, 1
 apartmentregister.com.au, 1
 apbox.de, 1
 apcemporium.co.uk, 1
 apcube.com, 1
 apef.ch, 1
@@ -2521,21 +2523,23 @@ beehive42.com, 1
 beehive42.eu, 1
 beehive42.net, 1
 beehive42.nl, 1
 beehive42.org, 1
 beehosting.pro, 1
 beekbier.nl, 1
 beekeeper.blog, 1
 beekeeper.clothing, 1
+beekeeper.supplies, 1
 beekeeper.supply, 1
 beekeeper.tools, 1
 beekeeping.clothing, 1
 beekeeping.tools, 1
 beeksnetwork.nl, 1
+beelen.fr, 1
 beepan.com, 0
 beercandle.com, 1
 beergazetteer.com, 1
 beerians.com, 1
 beerradar.no, 1
 beerradar.party, 1
 beersandco.ch, 1
 beersconf.com, 1
@@ -2673,16 +2677,17 @@ bersotavocats.fr, 1
 berst.cz, 1
 berthabailey.com, 1
 berthelier.me, 1
 bertholdsson.com, 1
 bertoliniodontoiatria.it, 1
 bertrand.bio, 1
 beryl.net, 1
 bespokestraps.com, 1
+best-wallpaper.net, 1
 best-wedding-quotes.com, 1
 best10websitebuilders.com, 1
 bestbestbitcoin.com, 1
 bestbrakes.com, 1
 bestbyte.com.br, 1
 bestellipticalmachinereview.info, 1
 bestessaycheap.com, 1
 bestessayhelp.com, 1
@@ -2726,17 +2731,17 @@ bettolinokitchen.com, 1
 bettrlifeapp.com, 1
 betulashop.ch, 1
 betwalker.com, 1
 beulen.email, 1
 beulen.link, 1
 beulen.pro, 1
 bevedo.cz, 1
 beveiligingscamerawestland.nl, 1
-beverlyinternational.com, 1
+beverlyinternational.com, 0
 bevinco2020.com, 1
 bevinsco.org, 1
 bevnut.com, 1
 bewegungsfluss.com, 1
 bewonderen.com, 1
 bexit-hosting.nl, 1
 bexit-security.eu, 1
 bexit-security.nl, 1
@@ -2777,16 +2782,17 @@ bia.gov, 0
 biaggeo.com, 1
 bianinapiccanovias.com, 1
 biapinheiro.com.br, 1
 biasmath.es, 1
 biathloncup.ru, 1
 bible-maroc.com, 1
 bible.ru, 1
 bibleonline.ru, 1
+biblerhymes.com, 1
 bibliaon.com, 1
 biblio.wiki, 1
 biblioblog.fr, 1
 bibliomarkt.ch, 1
 biblionaut.net, 1
 bibliotekarien.se, 1
 biboumail.fr, 1
 bibuch.com, 1
@@ -3197,17 +3203,17 @@ bngsecure.com, 1
 bnin.org, 1
 bnty.net, 1
 boardgamegeeks.de, 1
 boatme.de, 1
 bobancoamigo.com, 1
 bobazar.com, 1
 bobcopeland.com, 1
 bobep.ru, 1
-bobiji.com, 0
+bobiji.com, 1
 bobisec.cz, 1
 bobkoetsier.nl, 1
 boboates.com, 1
 boboolo.com, 1
 bobstronomie.fr, 1
 bocamo.it, 1
 bochs.info, 1
 bockenauer.at, 1
@@ -3336,17 +3342,16 @@ bouah.net, 1
 bouchard-mathieux.com, 1
 bouchonville-knifemaker.com, 1
 bouckaert-usedcars.be, 1
 boudah.pl, 1
 boueki.jp, 1
 boueki.org, 1
 bougeret.fr, 1
 boukoubengo.com, 1
-bounceboxspc.com, 1
 bouncourseplanner.net, 1
 bouncyball.eu, 0
 bouncyballs.org, 1
 bountyfactory.io, 1
 bourasse.fr, 1
 bourdon.fr.eu.org, 1
 bourqu.in, 1
 bourse-aux-jouets.org, 0
@@ -3657,17 +3662,17 @@ buldogueingles.com.br, 1
 bulgarien.guide, 1
 bulkcandystore.com, 1
 bulkingtime.com, 1
 bulktrade.de, 1
 bulkwholesalesweets.co.uk, 1
 bullbits.com, 1
 bulldog-hosting.de, 1
 bulledair-savons.ch, 1
-bulletbabu.com, 1
+bulletbabu.com, 0
 bullettags.com, 1
 bullterrier.nu, 1
 bulmastife.com.br, 1
 bumshow.ru, 1
 bunadarbankinn.is, 1
 bunbun.be, 0
 bund-von-theramore.de, 1
 bundaberg.com, 1
@@ -4527,16 +4532,17 @@ chrisself.xyz, 1
 chrisshort.net, 0
 christadelphiananswers.org, 1
 christadelphians.eu, 1
 christensenplace.us, 1
 christiaanconover.com, 1
 christian-host.com, 1
 christianbargon.de, 0
 christianforums.com, 1
+christiangaetano.com, 1
 christiangehring.org, 1
 christianhoffmann.info, 1
 christianhospitaltank.org, 1
 christianliebel.com, 1
 christianpusch.de, 1
 christians.dating, 1
 christiansayswords.com, 1
 christianscholz.de, 1
@@ -4684,17 +4690,16 @@ ckliemann.net, 1
 ckostecki.de, 1
 cktennis.com, 1
 cl.search.yahoo.com, 0
 claimconnect.com, 1
 claimconnect.us, 1
 claimnote.com, 1
 clairegold.com, 1
 claireidrac.fr, 1
-clan-ww.com, 1
 clanrose.org.uk, 1
 clanthor.com, 1
 clapping-rhymes.com, 1
 clarkeaward.com, 1
 clashersrepublic.com, 1
 classdojo.com, 1
 classicalpilates.ca, 1
 classics.io, 1
@@ -4766,24 +4771,24 @@ cloud-surfer.net, 1
 cloud.bugatti, 1
 cloud.fail, 1
 cloud.google.com, 1
 cloud.gov, 1
 cloud2go.de, 1
 cloudapps.digital, 1
 cloudbased.info, 1
 cloudbasedsite.com, 1
+cloudbleed.info, 1
 cloudbolin.es, 1
 cloudcaprice.net, 1
 cloudflareonazure.com, 1
 cloudia.org, 1
 cloudily.com, 1
 cloudlight.biz, 1
 cloudmigrator365.com, 1
-cloudopt.net, 1
 cloudoptimizedsmb.com, 1
 cloudoptimus.com, 1
 cloudpagesforwork.com, 1
 cloudpebble.net, 1
 cloudpengu.in, 1
 cloudpipes.com, 1
 cloudsecurityalliance.org, 1
 cloudservice.io, 1
@@ -4924,17 +4929,16 @@ codestudies.net, 1
 codesyncro.com, 1
 codeux.com, 1
 codeux.info, 1
 codeux.net, 1
 codeversetech.com, 1
 codewild.de, 1
 codewiz.xyz, 1
 codeyellow.nl, 1
-codigosddd.com.br, 1
 coding.lv, 1
 coding.net, 1
 codingforspeed.com, 1
 codingfromhell.net, 1
 codingrobots.com, 1
 codyevanscomputer.com, 1
 coffee-mamenoki.jp, 1
 coffeetocode.me, 1
@@ -4966,16 +4970,17 @@ coisasdemulher.org, 1
 cojo.eu, 1
 col.la, 1
 colaborativa.tv, 1
 colapsys.net, 1
 colarelli.ch, 1
 colasjourdain.fr, 1
 coldawn.com, 1
 coldfff.com, 0
+coldhak.ca, 1
 coldwatericecream.com, 1
 colegiocierp.com.br, 1
 colemak.com, 1
 colengo.com, 1
 colibris.xyz, 1
 colincampbell.me, 1
 colinchartier.com, 1
 colinstark.ca, 1
@@ -5035,21 +5040,19 @@ comercialtrading.eu, 1
 comerford.net, 1
 comeseetv.com, 1
 comestoarra.com, 1
 cometcache.com, 1
 cometonovascotia.ca, 1
 comff.net, 1
 comfintouch.com, 1
 comflores.com.br, 1
-comfortdom.ua, 1
 comfypc.com, 1
 comhack.com, 1
 comico.info, 1
-comicspornos.com, 1
 comiq.io, 1
 comiteaintriathlon.fr, 1
 comm.cx, 1
 commania.co.kr, 1
 commencepayments.com, 1
 commerciallocker.com, 0
 commitsandrebases.com, 1
 common.io, 1
@@ -5221,17 +5224,16 @@ coopens.com, 1
 coore.jp, 1
 coorpacademy.com, 1
 copperhead.co, 1
 coptic-treasures.com, 1
 copycrafter.net, 1
 copypoison.com, 1
 copyright-watch.org, 1
 copytrack.com, 1
-coramcdaniel.com, 1
 corbax.com, 0
 corbinhesse.com, 1
 cordeydesign.ch, 1
 cordlessdog.com, 1
 core-concepts.de, 1
 core-networks.de, 1
 coreapm.com, 1
 coreapm.org, 1
@@ -5414,17 +5416,16 @@ creators-design.com, 1
 creators.co, 1
 credential.eu, 1
 credex.bg, 1
 creditclear.com.au, 1
 crediteo.pl, 1
 creditkarma.com, 1
 creditos-rapidos.com, 1
 creditproautos.com, 0
-creditstar.es, 0
 creeks-coworking.com, 1
 creep.im, 1
 creepycraft.nl, 1
 creepypastas.com, 1
 creerunsitepro.com, 1
 crefelder.com, 1
 crem.in, 1
 crena.ch, 1
@@ -6005,17 +6006,17 @@ davy-server.com, 1
 daw.nz, 1
 dawnbringer.eu, 1
 dawnbringer.net, 1
 dawnson.is, 0
 dawnsonb.com, 1
 dawson-floridavilla.co.uk, 1
 day-peak.com, 1
 daylightpirates.org, 1
-dayman.net, 1
+dayman.net, 0
 daysoftheyear.com, 1
 db-sanity.com, 1
 db-works.nl, 1
 dbapress.org, 1
 dbaron.org, 1
 dbas.cz, 1
 dbcom.ru, 1
 dbdc.us, 1
@@ -6099,16 +6100,17 @@ debtrecycling.com.au, 1
 debuemon.com, 1
 decalquai.ch, 1
 decidetreatment.org, 1
 decoboutique.com, 1
 decock-usedcars.be, 1
 decodeanddestroy.com, 1
 decoder.link, 1
 decofire.pl, 1
+decomplify.com, 1
 decor-d.com, 1
 decoraid.com, 1
 decoratrix.com, 1
 decorestilo.com.br, 1
 decorincasa.com.br, 1
 decormiernissanparts.com, 1
 decosoftware.com, 1
 decoyrouting.com, 1
@@ -6171,16 +6173,17 @@ deinballon.de, 1
 deinewebsite.de, 1
 deitti.net, 1
 dejan.media, 1
 dejandayoff.com, 1
 dejure.org, 1
 dejw.cz, 1
 delahrzolder.nl, 1
 delbecqvo.be, 1
+delbrouck.ch, 1
 deleidscheflesch.nl, 1
 delfic.org, 1
 delhionlinegifts.com, 1
 deliandiver.org, 1
 deliberatedigital.com, 1
 deliciisanatoase.ro, 1
 deliciousmedia.co.uk, 1
 deliver.moe, 1
@@ -6500,17 +6503,16 @@ digitaldeli.us, 1
 digitaldeliarchive.com, 1
 digitalehandtekeningen.nl, 1
 digitaleoverheid.nl, 1
 digitalewelten.de, 1
 digitalgov.gov, 1
 digitalhurricane.io, 1
 digitalimpostor.co.uk, 1
 digitallocker.com, 0
-digitalquery.com, 1
 digitalrights.center, 1
 digitalrights.fund, 1
 digitaltechnologies.ltd.uk, 1
 digitalunite.de, 1
 digitkon.com, 1
 digiworks.se, 1
 digminecraft.com, 1
 diguass.us, 1
@@ -6732,17 +6734,16 @@ doculus.io, 1
 docupet.com, 1
 doenjoylife.com, 1
 does.one, 1
 dofuspvp.com, 1
 dog-blum.com, 1
 dogan.ch, 0
 dogcratereview.info, 1
 dogear.ch, 1
-dogfi.sh, 1
 dogft.com, 1
 doggroomingcourse.com, 1
 dogmap.jp, 1
 dogoo.com, 1
 dogworld.com.br, 1
 dohanews.co, 1
 dojifish.space, 1
 dokelio-idf.fr, 1
@@ -6876,17 +6877,16 @@ doubleavineyards.com, 1
 doublefun.net, 1
 doublethink.online, 1
 doubleup.com.au, 1
 doubleyummy.uk, 1
 doucheba.gs, 1
 doujinshi.info, 1
 dounats.com, 1
 douzer.de, 1
-dovecomputers.com, 1
 dovenzorgmalawi.nl, 1
 dovro.de, 1
 downloadaja.com, 1
 downloadgamemods.com, 1
 downloadgram.com, 1
 downloadsoftwaregratisan.com, 1
 downtimerobot.com, 1
 downtimerobot.nl, 1
@@ -7098,17 +7098,16 @@ durexwinkel.nl, 1
 duria.de, 1
 duriaux-dentiste.ch, 1
 durys.be, 1
 dusmomente.com, 1
 dustri.org, 1
 dustygroove.com, 1
 dustyspokesbnb.ca, 1
 dutch1.nl, 1
-dutchessuganda.com, 1
 dutchrank.nl, 1
 dutchwanderers.nl, 1
 dutchweballiance.nl, 1
 dutyfreeonboard.com, 1
 duyao.de, 1
 dvbris.co.uk, 1
 dvbris.com, 1
 dvnatura.ch, 1
@@ -7185,24 +7184,24 @@ e11even.nl, 1
 e30.ee, 1
 e3kids.com, 1
 e3q.de, 1
 e5tv.hu, 1
 e7d.io, 1
 ea2drocks.com, 1
 ead-italia.it, 1
 eagle-aluminum.com, 1
+eagle-yard.de, 1
 eagleindustriesltd.com, 1
 eagleridgecampground.com, 1
 eaglesecurity.com, 1
 eagletechz.com.br, 1
 eagleyecs.com, 1
 eaimty.com, 1
 ealev.de, 1
-eam-gmbh.com, 1
 eames-clayton.us, 1
 eapestudioweb.com, 1
 earl.org.uk, 1
 earlyyearshub.com, 1
 earmarks.gov, 1
 earth-people.org, 1
 earticleblog.com, 1
 earvinkayonga.com, 1
@@ -7352,16 +7351,17 @@ educationunlimited.com, 1
 educator-one.com, 1
 educators.co.nz, 1
 educatoys.com.br, 1
 eductf.org, 1
 edudrugs.com, 1
 eduid.se, 1
 eduif.nl, 0
 edumundo.nl, 1
+eduroam.no, 1
 edusanjal.com, 1
 edusantorini.com, 1
 edv-lehrgang.de, 1
 edvmesstec.de, 1
 edwar.do, 1
 edwards.me.uk, 1
 edwardsnowden.com, 1
 edwardspeyer.com, 1
@@ -7576,16 +7576,17 @@ elodieclerc.ch, 1
 eloge.se, 1
 elonbase.com, 1
 elosrah.com, 1
 eloxt.com, 1
 elpado.de, 1
 elpo.net, 1
 elpoderdelespiritu.org, 1
 elsvanderlugt.nl, 1
+elsword.moe, 0
 eltagroup.co.uk, 1
 eltair.com, 1
 eltern-verein.ch, 1
 elternforum-birmensdorf.ch, 1
 elternverein-utzenstorf.ch, 1
 eltransportquevolem.org, 1
 eluhome.de, 1
 elvidence.com.au, 1
@@ -7698,17 +7699,16 @@ energy.eu, 1
 energyatlas.com, 1
 energyaupair.se, 1
 energydrinkblog.de, 1
 energyelephant.com, 1
 energyled.com.br, 1
 enersec.co.uk, 1
 enet-navigator.de, 1
 enfantsdelarue.ch, 1
-enfield-kitchens.co.uk, 1
 enfoqueseguro.com, 1
 enfu.se, 1
 engarde.net, 1
 engaugetools.com, 1
 engelundlicht.ch, 1
 engg.ca, 1
 engineowning.com, 1
 enginepit.com, 1
@@ -7793,17 +7793,17 @@ epicvistas.com, 1
 epicvistas.de, 1
 epicwalnutcreek.com, 1
 epiphyte.network, 1
 epistas.com, 1
 epistas.de, 1
 epizentrum.work, 1
 epizentrum.works, 1
 epmcentroitalia.it, 1
-epoch.com, 0
+epoch.com, 1
 epolitiker.com, 1
 epossystems.co.uk, 1
 epostplus.li, 1
 eprofitacademy.com, 1
 epsilon.dk, 1
 epsorting.cz, 1
 epublibre.org, 1
 eq-serve.com, 1
@@ -7872,17 +7872,16 @@ erudicia.it, 1
 erudicia.nl, 1
 erudicia.se, 1
 erudicia.uk, 1
 erudikum.cz, 1
 erverydown.ml, 1
 erwanlepape.com, 1
 erwin.saarland, 1
 erwinschmaeh.ch, 1
-erwinvanlonden.net, 1
 erwinwensveen.nl, 1
 erythroxylum-coca.com, 1
 es-geenen.de, 1
 es.search.yahoo.com, 0
 esaborit.ddns.net, 1
 esafar.cz, 1
 esagente.com, 1
 esample.info, 1
@@ -8009,16 +8008,17 @@ etoile-usedcars.com, 1
 etre-soi.ch, 1
 ettebiz.com, 1
 etudesbibliques.fr, 1
 etudesbibliques.net, 1
 etudesbibliques.org, 1
 etv.cx, 1
 etyd.org, 1
 etys.no, 1
+etzi.myds.me, 1
 euchre.us, 1
 eugenekay.com, 1
 eugenetech.org, 1
 eujuicers.bg, 1
 eujuicers.com, 1
 eujuicers.com.hr, 1
 eujuicers.com.tr, 1
 eujuicers.com.ua, 1
@@ -8177,16 +8177,17 @@ exmoe.com, 1
 exo.do, 1
 exon.io, 1
 exoscale.ch, 1
 exoticads.com, 1
 exousiakaidunamis.pw, 1
 exp.de, 1
 expancio.com, 1
 expandeco.com, 1
+expatads.com, 1
 expecting.com.br, 1
 experienceoz.com.au, 1
 expert-korovin.ru, 1
 expert.cz, 1
 experteasy.com.au, 1
 experticon.com, 1
 experts-en-gestion.fr, 1
 explodie.org, 1
@@ -8229,17 +8230,16 @@ exvs.org, 1
 eydesignguidelines.com, 1
 eyecandy.gr, 1
 eyeglasses.com, 0
 eyeonid.com, 1
 eyep.me, 1
 eyes-berg.ch, 1
 eyes-berg.com, 1
 eyes-of-universe.eu, 1
-eyesoccer-didikh.rhcloud.com, 1
 eyesonly.cc, 1
 eynio.com, 1
 eytosh.net, 1
 eyyit.com, 0
 ezakazivanje.rs, 1
 ezdog.press, 1
 ezequiel-garzon.net, 1
 ezgif.com, 1
@@ -8673,17 +8673,16 @@ firebounty.com, 1
 fireboxfood.com, 1
 firebugmusic.com, 1
 firecore.com, 1
 firecry.org, 1
 firefart.at, 1
 firefighters.dating, 1
 firegoby.jp, 1
 firehost.com, 1
-fireinthedeep.com, 1
 fireportal.cz, 1
 firesofheaven.org, 1
 firetotheprisons.org, 1
 firevap.org, 1
 firewallconsultants.com, 1
 firexarxa.de, 1
 firma-cerny.cz, 1
 firma-offshore.com, 1
@@ -8758,17 +8757,16 @@ flagspot.net, 1
 flair.co, 1
 flajshans.cz, 1
 flam.io, 1
 flamer-scene.com, 0
 flamingcow.tv, 1
 flamingkeys.com, 1
 flamme-von-anor.de, 1
 flana.com, 1
-flanga.io, 1
 flapoverspeed.com, 1
 flaretechnologies.io, 1
 flashback.org, 1
 flashgot.net, 1
 flat.io, 1
 flatpackmates.co.uk, 1
 flauschig.net, 1
 flavr.be, 1
@@ -8878,17 +8876,16 @@ fmodoux.biz, 1
 fnb-griffinonline.com, 1
 fndout.com, 1
 fniephaus.com, 1
 fnof.ch, 1
 fnordserver.eu, 1
 fnzc.co.nz, 1
 foairbus.fr, 1
 foairbussas.fr, 1
-fobc-usa.org, 1
 focalforest.com, 1
 focanamoda.com.br, 1
 focusmark.jp, 0
 focusministries1.org, 1
 foej-aktiv.de, 1
 foej.net, 1
 foerster-kunststoff.de, 1
 foia.gov, 1
@@ -9068,17 +9065,16 @@ francoiscarrier.com, 1
 francoislepage.com, 1
 francoz.me, 1
 frandor.co.uk, 1
 frank.fyi, 1
 franke-chemie.de, 1
 franken-lehrmittel.de, 1
 frankenlehrmittel.de, 1
 frankhaala.com, 1
-frankierprofi.de, 1
 frankl.in, 1
 franklinhua.com, 1
 franksiler.com, 1
 frankyan.com, 1
 fransallen.com, 1
 frantic1048.com, 1
 franzt.ovh, 1
 frappant.cc, 1
@@ -9328,16 +9324,17 @@ furnitureconcept.co.uk, 1
 furry.dk, 1
 furtivelook.com, 1
 fusa-miyamoto.jp, 1
 fuseos.net, 1
 fushee.com, 1
 fuskator.com, 1
 fussball-xxl.de, 1
 fussell.io, 1
+futbolvivo.tv, 1
 futos.de, 1
 futrou.com, 1
 futurefundapp.com, 1
 futurenda.com, 1
 futureoceans.org, 1
 futuresonline.com, 1
 futurezone.at, 1
 futuristarchitecture.com, 1
@@ -9509,17 +9506,17 @@ gavins.stream, 1
 gay-sissies.com, 1
 gaycc.cc, 1
 gayforgenji.com, 1
 gaygeeks.de, 1
 gaysfisting.com, 1
 gaytorrent.ru, 1
 gayxsite.com, 1
 gazee.net, 1
-gazellegames.net, 1
+gazellegames.net, 0
 gbc-radio.nl, 1
 gbcsummercamps.com, 1
 gbl.selfip.net, 1
 gc-mc.de, 1
 gc.gy, 1
 gchoic.com, 1
 gchp.ie, 1
 gchq.wtf, 1
@@ -9670,17 +9667,16 @@ gerardozamudio.mx, 1
 geri.be, 1
 germandarknes.net, 1
 germansoldiers.net, 1
 germanticz.de, 1
 gernert-server.de, 1
 gero.io, 1
 gerritcodereview.com, 1
 gers-authentique.com, 1
-gerum.dynv6.net, 1
 gerwinvanderkamp.nl, 1
 ges-bo.de, 1
 geschenkly.de, 1
 geschmacksache.online, 1
 geschwinder.net, 1
 gestormensajeria.com, 1
 get-asterisk.ru, 1
 get-erp.ru, 1
@@ -10298,16 +10294,17 @@ guillaumecote.me, 1
 guillaumeperrin.io, 1
 guillemaud.me, 1
 guiltypleasuresroleplaying.com, 1
 guim.co.uk, 1
 guinea-pig.co, 1
 guineapigmustach.es, 1
 gulenbase.no, 1
 gulleyperformancecenter.com, 1
+gulshankumar.net, 1
 gummibande.noip.me, 1
 gunhunter.com, 1
 guniram.com, 1
 gunwatch.co.uk, 1
 guphi.net, 0
 gurkan.in, 1
 gurmel.ru, 1
 gurochan.ch, 1
@@ -10788,39 +10785,36 @@ herr-webdesign.de, 1
 herrderzeit.de, 1
 herringsresidence.be, 1
 herrsmith.com, 1
 herzig.cc, 1
 hesaplama.net, 1
 hessen-liebe.de, 1
 hethely.ch, 1
 hetmeisjeachterpauw.nl, 1
-hetmer.com, 1
-hetmer.cz, 1
-hetmer.net, 1
 heute-kaufen.de, 1
 heverhagen.rocks, 1
 hex.bz, 1
-hex2013.com, 1
 hexacon.io, 1
 hexagon-e.com, 1
 hexapt.com, 1
 hexe.net, 1
 hexed.it, 1
 hexicurity.com, 1
 hexid.me, 1
 hexieshe.com, 1
 hexo.io, 1
 hexobind.com, 1
 hexony.com, 1
 hexr.org, 1
 hexxagon.com, 1
 heycms.com, 0
 heyfringe.com, 1
 hfbg.nl, 1
+hfi.me, 1
 hfu.io, 1
 hg.python.org, 1
 hg0088.vip, 1
 hg718.com, 1
 hg71801.com, 1
 hg71802.com, 1
 hg71803.com, 1
 hg71805.com, 1
@@ -11032,16 +11026,17 @@ homecareassociatespa.com, 1
 homecarpetcleaning.co.uk, 1
 homecoming.city, 1
 homefacialpro.com, 1
 homegardenresort.nl, 1
 homehuntertoronto.com, 1
 homehunting.pt, 1
 homeofjones.net, 1
 homeogenium.com, 1
+homeownersassociationmanagementla.com, 1
 homeprivate.de, 1
 homesandal.com, 1
 homeseller.com, 1
 homesfordinner.ca, 1
 homewatt.co.uk, 1
 homeyou.com, 1
 homezhi.com.tw, 1
 hommeatoutfaire.be, 1
@@ -11448,28 +11443,28 @@ idatha.de, 1
 idc-business.be, 1
 idconsult.nl, 1
 iddconnect.com, 1
 iddconnect.org, 1
 ideadozz.hu, 1
 idealtruss.com, 1
 idealtruss.com.tw, 1
 idealwhite.space, 1
-ideaman924.com, 1
 ideaweb.de, 0
 ideaweblab.com, 0
 idemo.in, 1
 idensys.nl, 1
 identifyme.net, 1
 identity-hash.online, 1
 identitytheft.gov, 1
 idexxpublicationportal.com, 1
 idgard.de, 1
 idhosts.co.id, 1
 idid.tk, 1
+idinby.dk, 1
 idiopolis.org, 1
 idiotentruppe.de, 1
 idmanagement.gov, 1
 idmobile.co.uk, 1
 idndx.com, 1
 idoc24.com, 1
 idol-bikes.ru, 1
 idolf.dk, 1
@@ -11620,16 +11615,17 @@ imeds.pl, 1
 imefuniversitario.org, 1
 imforza.com, 1
 img.ovh, 1
 imga.ch, 1
 imgaa.com, 1
 imgencrypt.com, 1
 imgg.es, 1
 imgul.net, 1
+imguoguo.com, 1
 imguploaden.nl, 1
 imi-rhapsody.eu, 1
 imirhil.fr, 1
 imitza.com, 1
 imjad.cn, 1
 imkerei-freilinger.de, 1
 imkerverein-moenchswald.de, 1
 imlonghao.com, 1
@@ -11788,16 +11784,17 @@ inhive.group, 1
 iniiter.com, 1
 inima.org, 1
 inios.fr, 0
 inishbofin.ie, 1
 initq.net, 1
 initramfs.io, 1
 initrd.net, 1
 injust.eu.org, 1
+injust.me, 1
 ink.horse, 1
 inkable.com.au, 1
 inkbunny.net, 0
 inkhor.se, 1
 inkontriamoci.com, 1
 inksay.com, 1
 inkthemes.com, 1
 inline-sport.cz, 1
@@ -11828,16 +11825,17 @@ inovatec.com, 1
 inoxio.de, 1
 inplacers.ru, 1
 ins1gn1a.com, 1
 insblauehinein.nl, 1
 inschrijfformulier.com, 1
 inscript.pl, 1
 insertcoins.net, 1
 inshapenutrition.com.br, 1
+insho.fashion, 1
 insideaudit.com, 1
 insidethefirewall.tk, 1
 insightera.co.th, 1
 insighti.com, 1
 insighti.eu, 1
 insighti.org, 1
 insighti.sk, 1
 insinuator.net, 1
@@ -11987,16 +11985,17 @@ iocheck.com, 0
 iodice.org, 1
 iodu.re, 1
 ioiart.eu, 1
 iojo.net, 1
 iompost.com, 1
 iomstamps.com, 1
 ionc.ca, 1
 ionlabs.kr, 1
+ioover.net, 1
 ioslo.net, 1
 iosnoops.com, 1
 iossifovlab.com, 1
 iostream.by, 1
 iotsms.io, 1
 ip-blacklist.net, 1
 ip-hahn.de, 1
 ip-life.net, 1
@@ -12142,17 +12141,16 @@ isqrl.de, 1
 israelbizreg.com, 1
 isreedyintheuk.com, 1
 issasfrissa.se, 1
 issforum.org, 1
 isslshop.com, 1
 issue.watch, 1
 issuesofconcern.in, 1
 ist-intim.de, 1
-istanbul.systems, 1
 istdieweltschonuntergegangen.de, 1
 isteinbaby.de, 1
 istgame.com, 1
 istheapplestoredown.com, 1
 istheapplestoredown.de, 1
 isthefieldcontrolsystemdown.com, 1
 istheinternetdown.com, 1
 istherrienstillcoach.com, 1
@@ -12198,17 +12196,16 @@ iteha.de, 1
 iteke.ml, 1
 iteke.tk, 1
 iteli.eu, 1
 iterror.co, 1
 itfaq.nl, 1
 itfh.eu, 1
 itfix.cz, 1
 itforge.nl, 1
-itilo.de, 1
 itiomassagem.com.br, 1
 itis.gov, 1
 itis4u.ch, 1
 itludens.com, 1
 itmanie.cz, 1
 itneeds.tech, 1
 itnews-bg.com, 1
 itnota.com, 1
@@ -12347,16 +12344,17 @@ jaitnetworking.com, 0
 jakarta.dating, 1
 jake.eu.org, 1
 jake.ml, 1
 jake.nom.za, 1
 jakecurtis.de, 1
 jakeguild.com, 1
 jakenbake.com, 1
 jakereynolds.co, 1
+jakerullman.com, 1
 jaketremper.com, 1
 jakewalker.xyz, 1
 jakincode.army, 1
 jakobejitblokaci.cz, 1
 jakobkrigovsky.com, 1
 jakobssystems.net, 1
 jaksch.biz, 1
 jaksel.id, 1
@@ -12393,16 +12391,17 @@ jamielinux.com, 1
 jamiemagee.co.uk, 1
 jamiemagee.dk, 1
 jamiepeters.nl, 1
 jammucake.com, 1
 jamon.ca, 1
 jamonsilva.com, 1
 jamyeprice.com, 1
 jan-and-maaret.de, 1
+jan-bucher.ch, 1
 jan-cermak.cz, 1
 jan-rieger.de, 1
 jan-von.de, 1
 janada.cz, 1
 janaundgeorgsagenja.eu, 1
 jani.media, 1
 janiat.com, 1
 janik.xyz, 1
@@ -13037,16 +13036,17 @@ kantanmt.com, 1
 kantorad.io, 1
 kantorosobisty.pl, 1
 kanuvu.de, 1
 kanzashi.com, 1
 kanzlei-sixt.de, 1
 kap-genial.de, 1
 kapo.info, 1
 kappit.dk, 1
+kapseli.net, 1
 kaptadata.com, 1
 kaptamedia.com, 1
 kapverde.guide, 1
 karabas.com, 1
 karabijnhaken.nl, 0
 karachi.dating, 1
 karamna.com, 1
 karamomo.net, 1
@@ -13306,17 +13306,16 @@ kiebel.de, 1
 kiedys.net, 1
 kiefer-networks.de, 1
 kiehls.pt, 1
 kiekin.org, 1
 kiekko.pro, 1
 kiel-kind.de, 1
 kielderweather.org.uk, 1
 kienlen.org, 1
-kieranjones.uk, 1
 kieranweightman.me, 1
 kiesuwkerstkaart.nl, 1
 kiffmarks.com, 1
 kigmbh.com, 1
 kikbb.com, 1
 kiku.pw, 1
 kikuzuki.org, 1
 kilerd.me, 1
@@ -13393,16 +13392,17 @@ kisskiss.ch, 1
 kisstube.tv, 1
 kisun.co.jp, 0
 kita.id, 1
 kitbag.com.au, 1
 kitchen-profi.by, 1
 kitchen-profi.com.ua, 1
 kitchen-profi.kz, 1
 kitchenaccessories.pro, 1
+kitchenpunx.com, 0
 kiteadventure.nl, 1
 kitegarage.eu, 1
 kiteschoolamsterdam.nl, 1
 kiteschooledam.nl, 1
 kiteschoolijmuiden.nl, 1
 kiteschoolschellinkhout.nl, 1
 kiteschoolwijkaanzee.nl, 1
 kiteschoolzandvoort.nl, 1
@@ -13436,17 +13436,16 @@ klaim.us, 1
 klamathrestoration.gov, 1
 klanggut.at, 1
 klares-licht.de, 1
 klarika.com, 1
 klarmobil-empfehlen.de, 1
 klas.or.id, 1
 klasfauseweh.de, 1
 klatschreime.de, 1
-klausbrinch.dk, 1
 klausimas.lt, 1
 klaver.it, 1
 klaw.xyz, 1
 kle.cz, 1
 kleaning.by, 1
 kleberstoff.xyz, 1
 klebetape.de, 1
 kledingrekken.nl, 1
@@ -13472,38 +13471,37 @@ klingeletest.de, 1
 klinikac.co.id, 0
 klinknetz.de, 1
 klocker-ausserlechner.com, 1
 kloentrup.de, 1
 kloia.com, 1
 klosko.net, 1
 klotz-labs.com, 1
 kls-agency.com.ua, 1
-klssn.com, 1
 kluck.me, 1
 klugemedia.de, 1
 klustekeningen.nl, 1
 klustermedia.com, 1
 klva.cz, 1
+km-net.pl, 1
 kmashworth.co.uk, 1
 kmkz.jp, 1
 kn007.net, 1
 knaake.net, 1
 knab-networks.com, 1
 knapp.noip.me, 1
 kncg.pw, 1
 kneblinghausen.de, 1
 knegten-agilis.com, 1
 knep.me, 1
 kngk-azs.ru, 1
 kngk-group.ru, 1
 kngk.org, 1
 kngkng.com, 1
 kniga.market, 1
-knigadel.com, 1
 knightsblog.de, 1
 knightsbridge.net, 1
 knightsweep.com, 1
 knip.ch, 1
 knot-store.com, 1
 knowledgehook.com, 1
 knowlevillagecc.co.uk, 1
 knthost.com, 1
@@ -13571,17 +13569,16 @@ kompetenzkurs.de, 1
 kon-sil.de, 1
 kondou-butsudan.com, 1
 kongar.org, 1
 konicaprinterdriver.com, 1
 koniecfica.sk, 1
 konijntjes.nl, 1
 konings.it, 1
 koningskwartiertje.nl, 1
-konjin.cn, 1
 konklone.com, 1
 konkurs.ba, 1
 konoe.studio, 1
 konosuke.jp, 1
 konsertoversikt.no, 1
 kontakthuman.hu, 1
 kontaxis.org, 1
 konventseliten.se, 1
@@ -13687,17 +13684,16 @@ krmeni.cz, 1
 kromamoveis.com.br, 1
 kromonos.net, 1
 kronaw.it, 1
 krony.de, 1
 kroon.email, 1
 kropkait.pl, 1
 krouzkyliduska.cz, 1
 krsn.de, 1
-kruegerrand-wert.de, 1
 krugermillions.org, 1
 kruin.net, 1
 kruk.co, 1
 krumberconsulting.com, 1
 krupa.net.pl, 0
 krutka.cz, 1
 kruu.de, 1
 kryglik.com, 1
@@ -13856,17 +13852,16 @@ lacigf.org, 1
 laclaque.ch, 1
 lacledelareussite.com, 1
 lacledeslan.com, 0
 lacledor.ch, 1
 laclefdor.ch, 1
 lacliniquefinanciere.com, 1
 lacyc3.eu, 1
 ladbroke.net, 1
-ladylucks.co.uk, 1
 laextra.mx, 1
 lafayette-rushford.com, 1
 lafeemam.fr, 1
 lafillepolyvalente.ca, 1
 lafillepolyvalente.com, 1
 lafka.org, 1
 lafkor.de, 1
 laflash.com, 1
@@ -13914,34 +13909,32 @@ landflair-magazin.de, 1
 landofelves.net, 1
 langatang.com, 1
 langbein.org, 1
 langguth.io, 1
 langkahteduh.com, 1
 langly.fr, 0
 languageterminal.com, 1
 langworth.com, 1
-laniakean.com, 1
 lanna.io, 1
 lannainnovation.com, 1
 lanre.org, 1
 lanroamer.de, 1
 lansechensilu.com, 1
 lansinoh.co.uk, 1
 lantian.pub, 1
 lanuovariviera.it, 1
 lanyang.tk, 1
 lanzamientovirtual.es, 1
 lanzarote-online.info, 1
 laos.dating, 1
 laozhu.me, 1
 lapassiondutrading.com, 1
 lapetition.be, 1
 lapidge.net, 1
-laplanetebleue.com, 1
 lapolla.com, 1
 laposte.net, 1
 lapotagere.ch, 1
 lapparente-aise.ch, 1
 laracode.eu, 1
 laraeph.com, 1
 laranara.se, 1
 laraveldirectory.com, 1
@@ -14006,17 +13999,16 @@ lauftrainer-ausbildung.com, 1
 lauftreff-himmelgeist.de, 1
 laughinggrapepublishing.com, 1
 laukstein.com, 1
 launchpad-app2.com, 1
 lauraandwill.wedding, 1
 laurasplacefamilysupport.org.au, 1
 laurelblack.com, 1
 laurelspaandlash.com, 1
-laureltv.org, 1
 laurenlobue.com, 1
 laurent-e-levy.com, 1
 lauriuc.sk, 1
 lausannedentiste.ch, 1
 lausannelovers.ch, 1
 laussat.de, 1
 lauzon-hitter.com, 1
 lavabit.no, 1
@@ -14185,16 +14177,17 @@ lenkunz.me, 1
 lenn1.de, 1
 lennier.info, 1
 lennyobez.be, 1
 lensdoctor.com, 1
 lenspirations.com, 1
 lensual.space, 1
 lenuagebauche.org, 1
 lenyip.com, 1
+lenyip.works, 1
 lenzw.de, 1
 leoandpeto.com, 1
 leola.cz, 1
 leola.sk, 1
 leolana.com, 1
 leominstercu.com, 0
 leonard.io, 0
 leonardcamacho.me, 1
@@ -14517,17 +14510,17 @@ litevault.net, 1
 litfin.name, 1
 lithan.com, 1
 lithesalar.se, 1
 lithianissaneugeneparts.com, 1
 litsovet.com, 1
 little-cake.com, 1
 littledisney.ro, 1
 littlefairy.no, 1
-littlenina.nz, 1
+littlenina.nz, 0
 littlepigcreek.com.au, 1
 littlepincha.fr, 1
 littleservice.cn, 1
 littleswitch.co.jp, 1
 littlewatcher.com, 1
 litvideoserver.de, 1
 litz.ca, 1
 litzenberger.ca, 1
@@ -14611,17 +14604,17 @@ localbandz.com, 1
 localbitcoins.com, 1
 localblock.co.za, 1
 localdecor.com.br, 1
 localspot.pl, 1
 locapos.com, 1
 locatorplus.gov, 1
 locauxrama.fr, 1
 locchat.com, 1
-locker.email, 1
+locker.email, 0
 locker3.com, 1
 lockify.com, 1
 lockpick.nl, 1
 lockpicks.se, 1
 lockr.io, 1
 locksport.org.nz, 1
 lockyourcomputer.pw, 1
 locomore.com, 1
@@ -14750,36 +14743,35 @@ lotos-ag.ch, 1
 lottosonline.com, 1
 lotw.de, 1
 lou.lt, 1
 louange-reconvilier.ch, 1
 loucanfixit.com, 1
 louduniverse.net, 1
 louisvillecarguys.com, 1
 louisvillevmug.info, 1
-loune.net, 1
 love-schna.jp, 1
 love4taylor.eu.org, 1
 love4taylor.me, 1
-loveandadoreboutique.com, 1
 loveandloyalty.se, 1
 loveislandgames.com, 1
 loveismore.de, 0
 loveismore.es, 0
 loveismore.eu, 0
 loveismore.fr, 0
 loveismore.it, 0
 loveismore.org, 0
 loveismore.pl, 0
 loveismore.ru, 0
 loveismore.sk, 0
 loveisourweapon.com, 1
 lovelens.ch, 1
 lovelens.li, 1
 lovelive-anime.tk, 1
+lovelive.us, 1
 lovelivewiki.com, 1
 lovelyfriends.org, 1
 lovelytimes.net, 1
 lovemomiji.com, 1
 lovemysafetynet.com, 1
 loveph.one, 1
 lover-bg.com, 1
 loverepublic.ru, 1
@@ -14961,32 +14953,32 @@ m2epro.com, 1
 m2os.com, 1
 m4570.xyz, 1
 m4rcus.de, 1
 ma-eir.nl, 1
 ma-plancha.ch, 1
 ma2t.com, 1
 maartenderaedemaeker.be, 1
 maartenprovo.be, 1
+maartenterpstra.xyz, 1
 maartenvandekamp.nl, 1
 mabulledu.net, 1
 mac-i-tea.ch, 1
 mac-world.pl, 1
 mac1.net, 1
 macandtonic.com, 1
 macaque.io, 0
 macaws.org, 1
 macedopesca.com.br, 1
 maceinturecuir.com, 1
 maces-net.de, 1
 mach-politik.ch, 1
 macha.cloud, 1
 machbach.com, 1
 machikka.com, 0
-machon.biz, 0
 macht-elektro.de, 1
 machtweb.de, 1
 macinyasha.net, 1
 macker.io, 1
 mackey7.net, 1
 maclemon.at, 1
 macleod.io, 1
 macleodnc.com, 1
@@ -15244,16 +15236,17 @@ marche-nordic-jorat.ch, 1
 marcianoandtopazio.com, 1
 marco-polo-reisen.com, 1
 marcohager.de, 1
 marcoherten.com, 1
 marcoslater.com, 1
 marcuskoh.com, 1
 marcusstafford.com, 1
 mardelcupon.com, 1
+mare92.cz, 1
 mareklecian.cz, 1
 margagriesser.de, 1
 margan.ch, 1
 margecommunication.com, 1
 margo-co.ch, 1
 margotlondon.co.uk, 1
 mariacristinadoces.com.br, 1
 mariage-photo.ch, 1
@@ -15421,17 +15414,16 @@ mathhire.org, 1
 mathiasbynens.be, 1
 mathiasgarbe.de, 1
 mathieuguimond.com, 1
 mathieui.net, 1
 mathijskingma.nl, 1
 maths.network, 1
 mathspace.co, 1
 matildajaneclothing.com, 1
-matillat.ovh, 1
 matjaz.it, 1
 matlabjo.ir, 1
 matlss.com, 1
 matomeathena.com, 1
 matrixmedia.ro, 1
 mattandyana.com, 1
 mattberryman.com, 1
 mattbsg.xyz, 1
@@ -15951,16 +15943,17 @@ miketabor.com, 1
 miketheuer.com, 1
 mikevesch.com, 1
 mikewest.org, 1
 mikewillia.ms, 1
 miki.it, 1
 mikkelvej.dk, 1
 miklcct.com, 1
 miknight.com, 1
+mikonmaa.fi, 1
 mikori.sk, 1
 mikro-inwestycje.co.uk, 1
 mikrom.cz, 1
 mikropixel.de, 1
 mikroskeem.eu, 1
 mil-spec.ch, 1
 mil0.com, 1
 milahendri.com, 1
@@ -16019,17 +16012,16 @@ minecraftforum.ovh, 1
 minecrell.net, 1
 minenash.com, 1
 minepay.net, 1
 minepic.org, 1
 minepod.fr, 1
 minesouls.fr, 1
 minez-nightswatch.com, 0
 minf3-games.de, 1
-mingo.nl, 1
 mingram.net, 1
 mingwah.ch, 1
 mingy.ddns.net, 1
 mingyueli.com, 1
 minhanossasenhora.com.br, 1
 mini2.fi, 1
 minigolf-reisinger.com, 1
 minikidz.es, 1
@@ -16247,17 +16239,16 @@ modistry.com, 1
 modistryusercontent.com, 1
 modmountain.com, 1
 module.market, 1
 modx.io, 1
 moe-max.jp, 1
 moe.pe, 1
 moechel.com, 1
 moefactory.com, 1
-moefi.xyz, 1
 moegirl.org, 1
 moehrke.cc, 1
 moellers.systems, 1
 moeloli.pw, 1
 moevenpick-cafe.com, 1
 moeyi.xyz, 0
 mofohome.dyndns.org, 1
 moha-swiss.com, 1
@@ -16334,16 +16325,17 @@ montarfotoaki.com, 1
 montas.io, 1
 montazer.net, 1
 monteurzimmerfrei.de, 1
 montpreveyres.ch, 1
 montsaintaignan.fr, 1
 montychristie.com, 1
 moo.la, 1
 moobo.co.jp, 1
+moobo.xyz, 1
 moodfoods.com, 1
 moodzshop.com, 1
 moojp.co.jp, 1
 moonagic.com, 1
 moondrop.org, 1
 moonmelo.com, 1
 moonraptor.co.uk, 1
 moonraptor.com, 1
@@ -16577,16 +16569,17 @@ munchcorp.com, 1
 mundoadulto.com.br, 1
 mundoalpha.com.br, 1
 mundoarabe.com.br, 1
 mundodasmensagens.com, 1
 mundokinderland.com.br, 1
 mundschenk.at, 1
 mundtec.com.br, 1
 munduch.cz, 1
+munirajiwa.com, 1
 munki.org, 1
 munkibuilds.org, 1
 munpanel.com, 1
 munrabi.com, 1
 murakami-sah.com, 1
 murdercube.com, 1
 murfy.nz, 1
 murgi.de, 1
@@ -16754,17 +16747,16 @@ mymotor.nl, 1
 mymp3singer.net, 1
 myms.eu, 1
 mymsr.de, 1
 mymx.lu, 1
 myna.go.jp, 1
 mynetworkingbuddy.com, 1
 mynewleaf.co, 1
 mynext.events, 1
-mynigma.org, 1
 mynook.info, 1
 mynortherngarden.com, 1
 myon.info, 1
 myonline.hu, 1
 myonlinedating.club, 1
 myoptumhealthcomplexmedical.com, 1
 myoptumhealthparentsteps.com, 1
 myoukochou.com, 1
@@ -16810,17 +16802,16 @@ mysmelly.com, 1
 mysocialporn.com, 1
 mysocrat.com, 1
 mysoundtalks.com, 1
 myspa.asia, 1
 myspicer.com, 1
 mysqldump-secure.org, 1
 myssl.com, 1
 mysteriouscode.io, 1
-mysteryblog.de, 1
 mysterymind.ch, 1
 mysterysear.ch, 1
 mystic-welten.de, 1
 mystickphysick.com, 1
 mysticplumes.com, 1
 mystorymonster.com, 1
 mystown.org, 1
 mystudy.me, 1
@@ -16849,17 +16840,16 @@ myvirtualserver.com, 1
 myvoipnews.com, 1
 myvpl.com, 1
 mywari.com, 1
 mywebinar.io, 1
 myworkinfo.com, 0
 myworth.com.au, 1
 myzina.cz, 0
 mziulu.me, 0
-mzlog.win, 1
 mzorn.photography, 1
 n-pix.com, 0
 n-soft.info, 1
 n-un.de, 1
 n0099.cf, 0
 n0paste.tk, 0
 n2servers.com, 1
 n3twork.net, 1
@@ -16935,17 +16925,16 @@ narada.com.ua, 1
 naralogics.com, 1
 narfation.org, 1
 nargele.eu, 1
 nargileh.nl, 1
 narindal.ch, 1
 narko.space, 1
 narmos.ch, 1
 naro.se, 1
-narodniki.com, 1
 narodsovety.ru, 1
 naroska.name, 1
 narrativasdigitais.pt, 1
 narthollis.net, 1
 nasarawanewsonline.com, 1
 nasbnation.com, 1
 nascher.org, 0
 nasmocopati.com, 1
@@ -17111,17 +17100,16 @@ neels.ch, 1
 neemzy.org, 1
 neer.io, 1
 neet-investor.biz, 1
 nefertitis.cz, 1
 neftebitum-kngk.ru, 1
 neg9.org, 0
 negai.moe, 1
 negativecurvature.net, 1
-negativzinsen.info, 1
 neglecteddiseases.gov, 1
 nehoupat.cz, 1
 neillans.co.uk, 1
 neillans.com, 1
 neilwynne.com, 1
 nejnamc.org, 1
 neko-nyan.org, 1
 neko.li, 1
@@ -17443,32 +17431,32 @@ nijikata.com, 1
 nijm.nl, 1
 nikandcara.com, 1
 nikao-tech.com, 1
 nikavandenbos.nl, 1
 nikimix.com, 1
 nikkila.me, 1
 nikklassen.ca, 1
 nikksno.io, 1
+niklas.pw, 1
 niklasbabel.com, 1
-nikobradshaw.com, 1
 nikolaichik.photo, 1
 nikolasbradshaw.com, 1
 nikolasgrottendieck.com, 1
 nikomo.fi, 0
 nikz.in, 1
 nil.gs, 1
-niloxy.com, 1
 nilrem.org, 1
 nimeshjm.com, 1
 ninarinaldi.com.br, 1
 ninaundandre.de, 1
 ninchat.com, 1
 nine-hells.net, 0
 ninebennink.com, 1
+ninespec.com, 1
 ninetaillabs.com, 1
 ninetaillabs.xyz, 1
 ning.so, 1
 ninja-galerie.de, 1
 ninjan.co, 1
 ninofink.com, 1
 ninthfloor.org, 1
 ninux.ch, 0
@@ -17565,24 +17553,22 @@ nomesbiblicos.com, 1
 nomial.co.uk, 1
 nomifensine.com, 1
 nomsy.net, 1
 noname-ev.de, 1
 noncombatant.org, 1
 noob-box.net, 1
 noobunbox.net, 1
 noodles.net.nz, 1
-noodlesandwich.com, 1
 noodplan.co.za, 1
 noodweer.be, 1
 noop.ch, 1
 noordsee.de, 1
 noorsolidarity.com, 1
 nootropic.com, 1
-nootropicsource.com, 1
 nopaste.xyz, 1
 nord-sud.be, 1
 nordakademie.de, 1
 nordic-survival.de, 1
 nordiccasinocommunity.com, 1
 nordinfo.fi, 1
 nordnetz-hamburg.de, 1
 nordor.homeip.net, 1
@@ -17637,17 +17623,16 @@ notarobot.fr, 1
 notarvysocina.cz, 1
 notbolaget.se, 1
 notboring.co.uk, 1
 notcompletelycorrect.com, 1
 note7forever.com, 1
 notesforpebble.com, 1
 notevencode.com, 1
 nothing.org.uk, 1
-noticia.do, 1
 noticiasdehumor.com, 1
 notificami.com, 1
 notify.moe, 1
 notinglife.com, 1
 notjustvacs.com, 1
 notnize.net, 1
 notnl.com, 1
 notoriousdev.com, 1
@@ -17715,16 +17700,17 @@ nu3tion.cz, 1
 nuacht.ie, 1
 nuamooreaindonesia.com, 1
 nubella.com.au, 1
 nubu.at, 1
 nuclear-crimes.com, 1
 nuclearcat.com, 1
 nuclearcrimes.com, 1
 nuclearcrimes1.com, 1
+nucleuscore.org, 1
 nudel.ninja, 1
 nudestpics.com, 1
 nuel.cl, 1
 nuevaimagenpublicidad.es, 1
 nukute.com, 1
 null-life.com, 1
 nullday.de, 1
 nullpointer.io, 1
@@ -17861,17 +17847,16 @@ octofox.de, 1
 octohedralpvp.tk, 1
 octolopagon.games, 1
 octopus-agents.com, 1
 octosniff.net, 1
 octosys.net, 1
 octosys.org, 1
 octosys.ru, 1
 octothorpe.club, 1
-oddmouse.com, 1
 oddnumber.ca, 1
 oddsandevens.ca, 1
 oddsandevensbookkeeping.ca, 1
 oddtime.net, 1
 odensc.me, 1
 odifi.com, 1
 odinkapital.no, 1
 odtu.lu, 1
@@ -17944,17 +17929,16 @@ okhrana.agency, 1
 oklahomamoversassociation.org, 1
 oklahomanotepro.com, 1
 okmx.de, 0
 okonetwork.org.uk, 1
 oktime.cz, 1
 oktoberfeststore.nl, 1
 oktomus.com, 1
 okusiassociates.com, 1
-olafnorge.de, 0
 olasouris.com, 1
 olback.net, 1
 oldandyounglesbians.us, 1
 oldenglishsheepdog.com.br, 1
 oldnews.news, 1
 oldtimer-trifft-flugplatz.de, 1
 olegon.ru, 1
 olegs.be, 1
@@ -18347,16 +18331,17 @@ ozonitron.com, 1
 ozonitron.de, 1
 ozonitron.eu, 1
 ozonytron.com, 1
 ozonytron.de, 1
 ozonytron.eu, 1
 ozvolvo.org, 1
 p-pc.de, 1
 p-s-b.com, 1
+p1984.nl, 0
 p3ter.fr, 1
 p4chivtac.com, 1
 pa-w.de, 1
 paarberatung-hn.de, 1
 paavolastudio.com, 1
 pabuzo.vn, 1
 pacco.com.br, 1
 pace.car, 1
@@ -18756,16 +18741,17 @@ pekoe.se, 1
 pelanucto.cz, 1
 pelletsprice.com, 1
 pelopogrund.com, 1
 pelopoplot.com, 1
 pemagrid.org, 1
 penablog.com, 1
 penaugustin.com, 1
 pencepay.com, 1
+pencillab.cn, 1
 penetrationstest.se, 1
 penfold.fr, 1
 pengi.me, 1
 pengisatelier.net, 1
 pennergold.net, 1
 pennyapp.io, 1
 pennylane.me.uk, 1
 pennyparkerpaper.com, 1
@@ -18931,17 +18917,16 @@ philippbirkholz.de, 1
 philipperoose.be, 1
 philippheenen.de, 1
 philippkeschl.at, 1
 phillippi.me, 1
 philonas.net, 1
 philosoftware.com.br, 1
 philosopherswool.com, 1
 philosophyguides.org, 1
-philphonic.de, 1
 philsturgeon.uk, 1
 philux.ch, 1
 phishingusertraining.com, 1
 phocean.net, 1
 phoenicis.com.ua, 1
 phoenix.dj, 1
 phone-service-center.de, 1
 phood.be, 1
@@ -19138,16 +19123,17 @@ pizzabottle.com, 1
 pizzacook.ch, 1
 pizzafest.ddns.net, 1
 pizzeria-mehrhoog.de, 1
 pizzeriacolore.com, 1
 pj539999.com, 1
 pj83.duckdns.org, 1
 pjili.com, 1
 pjuu.com, 0
+pkautodesign.com, 1
 pkgt.de, 0
 pkov.cz, 1
 pl-cours.ch, 1
 pl.search.yahoo.com, 0
 plaasprodukte.com, 1
 placasonline.com.br, 1
 placassinal.com.br, 1
 placehold.co, 1
@@ -19191,17 +19177,16 @@ platomania.nl, 1
 platschi.net, 1
 platten-nach-mass.de, 1
 platterlauncher.com, 1
 plattner.club, 1
 play.cash, 1
 play.google.com, 1
 playanka.com, 1
 playdreamcraft.com.br, 1
-playerscout.net, 1
 playform.cloud, 1
 playhappywheelsunblocked.com, 1
 playkh.com, 1
 playmaza.live, 1
 playmfe.com, 1
 playpirates.com, 1
 playsharp.com, 1
 playsnake.org, 1
@@ -19419,17 +19404,16 @@ postblue.info, 1
 postbox.life, 1
 postcardpayment.com, 1
 postcode.nl, 1
 postcodegarant.nl, 1
 postdarwinian.com, 1
 postdarwinism.com, 1
 postdeck.de, 1
 posteo.de, 0
-posterspy.com, 1
 postfinance.ch, 1
 postmatescode.com, 1
 postn.eu, 1
 postpot.co.kr, 1
 posttigo.com, 1
 potatiz.com, 1
 potatofrom.space, 0
 potatopro.com, 1
@@ -19493,17 +19477,16 @@ prayerrequest.com, 1
 prazeresdavida.com.br, 1
 prazynka.pl, 1
 prc.gov, 1
 precedecaritas.com.br, 1
 preciouslife.fr, 1
 preciscx.com, 1
 predoiu.ro, 1
 preexport.com, 1
-preferredathlete.com, 1
 prefix.eu, 1
 pregunteleakaren.gov, 1
 preigu.de, 1
 preisser-it.de, 1
 preisser.it, 1
 prekladysanca.cz, 1
 preloaded-hsts.badssl.com, 1
 prelogica.com.br, 1
@@ -19524,17 +19507,16 @@ preparetheword.com, 0
 presbee.com, 1
 prescotonline.co.uk, 1
 prescriptionrex.com, 1
 presentesdegrife.com.br, 1
 president.bg, 1
 prespanok.sk, 1
 press-presse.ca, 1
 presscenter.jp, 1
-pressenews.net, 1
 presses.ch, 1
 pressrush.com, 1
 pressureradio.com, 1
 prestburyscouts.org.uk, 1
 prestige-car-location.ch, 1
 prestigerepairs.com.au, 1
 prestigesigns.net, 1
 prestonandsons.com.au, 1
@@ -20029,16 +20011,17 @@ qweepi.de, 1
 qwerty.work, 1
 qwikdash.com, 1
 qxy.ch, 1
 r-ay.cn, 1
 r-core.org, 1
 r-cut.fr, 1
 r-rwebdesign.com, 1
 r0t.co, 1
+r0uzic.net, 1
 r2d2pc.com, 1
 r3nt3r.com, 1
 r3s1stanc3.me, 1
 r40.us, 1
 r6-team.ru, 1
 r7h.at, 1
 r811.de, 1
 ra-micro-koeln.de, 1
@@ -20086,17 +20069,16 @@ radreisetraumtreibstoff.de, 1
 radyn.com, 1
 rafaelmagalhaesweb.com, 1
 rafey.xyz, 1
 rafting-japan.com, 1
 rage-overload.ch, 1
 rage.rip, 1
 rage4.com, 1
 raghavdua.in, 1
-ragingserenity.com, 1
 ragnaroktop.com.br, 1
 rahamasin.eu, 1
 raiblockscommunity.net, 1
 raiffeisen-kosovo.com, 1
 railgun.ac, 1
 railgun.com.cn, 1
 railjob.cn, 1
 railyardurgentcare.com, 1
@@ -20270,17 +20252,17 @@ rebirthia.me, 1
 rebootmc.com, 1
 reboxetine.com, 1
 recantoshop.com, 1
 recantoshop.com.br, 1
 recapp.ch, 1
 receitas-de-bolos.pt, 1
 receitasdebacalhau.pt, 1
 receptionsbook.com, 1
-recepty.eu, 1
+recepty.eu, 0
 recetasfacilesdehacer.com, 1
 rechat.com, 1
 rechenknaecht.de, 1
 rechenwerk.net, 1
 recht-freundlich.de, 1
 rechtsanwaeltin-vollmer.de, 1
 rechtsanwalt-koeppen-feucht.de, 1
 rechtschreibpruefung24.de, 1
@@ -20425,17 +20407,16 @@ relaxhavefun.com, 1
 relaxpointhyncice.cz, 1
 relaybox.io, 1
 release-monitoring.org, 1
 reliancebank.bank, 1
 religiousforums.com, 1
 relsak.cz, 1
 relvan.com, 1
 rem0te.net, 1
-remaimodern.org, 1
 remambo.jp, 1
 remedioparaherpes.com, 1
 remedioscaserosparalacistitis.com, 1
 remedioskaseros.com, 0
 remedyrehab.com, 1
 rememberthemilk.com, 0
 remonti.info, 1
 remote.so, 1
@@ -20561,17 +20542,16 @@ reverencestudios.com, 1
 reverseaustralia.com, 1
 revisionnotes.xyz, 1
 revistapequenosolhares.com.br, 1
 revivalinhisword.com, 1
 revivingtheredeemed.org, 1
 revlect.com, 1
 revolt.tv, 1
 revthefox.co.uk, 1
-rewardingexcellence.com, 1
 rewrite3.com, 1
 rex.st, 1
 rex.tc, 1
 reykjavik.guide, 1
 rezept-planer.de, 1
 rezexpert.com, 1
 rezosup.net, 1
 rezosup.org, 1
@@ -20813,16 +20793,17 @@ rokki.ch, 1
 rokort.dk, 1
 rokudenashi.de, 1
 roland.io, 1
 rolandkolodziej.com, 1
 rolandslate.com, 1
 rolandszabo.com, 1
 rolliwelt.de, 1
 rolodato.com, 1
+romaimperator.com, 1
 romainmuller.xyz, 1
 roman-pavlik.cz, 1
 romanpavlodar.kz, 1
 romantic-quotes.co.uk, 1
 romanticschemer.com, 1
 romanticschemermovie.com, 1
 romanticvillas.com.au, 1
 romarin.es, 1
@@ -20857,17 +20838,16 @@ rootlair.com, 1
 rootrelativity.com, 1
 roots-example-project.com, 1
 roots.io, 1
 rootsbar.fr, 1
 rootscope.co.uk, 1
 rootswitch.com, 1
 rootusers.com, 1
 roquecenter.org, 1
-rorymcdaniel.com, 1
 roryneville.com, 1
 rosabellas.co.uk, 1
 rosbass.ru, 1
 rose-prism.org, 1
 rosehosting.reviews, 1
 roseitsolutions.co.uk, 1
 roseliere.ch, 1
 roseliere.com, 1
@@ -21094,16 +21074,17 @@ s3n.se, 1
 s4db.net, 1
 s4tips.com, 1
 s4ur0n.com, 1
 s8a.us, 1
 s95.de, 1
 sa-mp.ro, 1
 sa.net, 1
 saabpartsdistribution.com, 1
+saamhorigheidsfonds.nl, 0
 saba-piserver.info, 1
 sabahattin-gucukoglu.com, 1
 sabatek.pl, 1
 sacaentradas.com, 1
 saccani.net, 1
 sackers.com, 1
 sackmesser.ch, 1
 saco-ceso.com, 1
@@ -21478,16 +21459,17 @@ schreinerei-jahreis.de, 1
 schreinerei-wortmann.de, 1
 schrenkinzl.at, 1
 schrikdraad.net, 0
 schritt4fit.de, 1
 schrodingersscat.com, 1
 schrodingersscat.org, 1
 schroeder-immobilien-sundern.de, 1
 schroepfglas-versand.de, 1
+schrolm.de, 1
 schsrch.org, 1
 schsrch.xyz, 1
 schtiehve.duckdns.org, 1
 schubergphilis.com, 1
 schubertgmbh-ingelheim.de, 1
 schuhbeck.tk, 1
 schuhwerkstatt.at, 1
 schul-bar.de, 1
@@ -21640,16 +21622,17 @@ secnews.gr, 1
 secomo.org, 1
 seconfig.sytes.net, 1
 secpatrol.de, 1
 secretar.is, 1
 secretofanah.com, 1
 secretpanties.com, 1
 secretsanta.fr, 1
 secretserveronline.com, 1
+secretum.tech, 1
 sectelligence.nl, 1
 sectest.ml, 1
 sectio-aurea.org, 1
 section-31.org, 1
 section.io, 1
 sectionw2s.org, 1
 sector5.xyz, 1
 secundity.nl, 1
@@ -21970,17 +21953,16 @@ shanewadleigh.com, 1
 shang-yu.cn, 1
 shannoneichorn.com, 1
 shansing.cn, 1
 shansing.com, 1
 shansing.net, 1
 shansing.space, 1
 sharanyamunsi.net, 1
 sharedhost.de, 1
-shareeri.com, 1
 sharekey.com, 1
 shareoffice.ch, 1
 shareoine.com, 1
 sharepointdrive.com, 1
 sharescope.co.uk, 0
 shareselecttools.com, 1
 sharesplitter.com, 1
 sharevari.com, 1
@@ -22472,17 +22454,16 @@ slangbellor.com, 1
 slapen17.nl, 1
 slaps.be, 1
 slash64.co.uk, 1
 slash64.com, 1
 slash64.uk, 1
 slashbits.no, 1
 slaughterhouse.fr, 1
 slaws.io, 1
-sleeklounge.com, 1
 sleeplessbeastie.eu, 1
 sleepmap.de, 1
 sleepstar.co.uk, 1
 sleepstar.com.mt, 1
 sleepstar.de, 1
 sleio.com, 1
 slever.cz, 1
 slevermann.de, 1
@@ -22502,17 +22483,16 @@ slip-gaming.tk, 1
 slneighbors.org, 1
 slo-net.net, 1
 slo-tech.com, 1
 sloancom.com, 1
 slopeedge.com, 1
 slotcar.com, 0
 sloths.org, 1
 slotlist.info, 1
-slovakiana.sk, 1
 slovenskycestovatel.sk, 1
 slovoice.org, 1
 slow.zone, 1
 slowb.ro, 1
 slowfood.es, 1
 slowgames.xyz, 1
 slpower.com, 1
 slrd-isperih.com, 1
@@ -22850,17 +22830,16 @@ sourcitec.com, 1
 souris.ch, 1
 sous-surveillance.net, 1
 southafrican.dating, 1
 southamerican.dating, 1
 southbankregister.com.au, 1
 southcoastkitesurf.co.uk, 1
 southcoastswords.com, 1
 southernmost.us, 1
-southernutahinfluencers.com, 1
 southlakenissanparts.com, 1
 southmelbourne.apartments, 1
 southmorangtownhouses.com.au, 1
 southside-crew.com, 1
 southside-tuning-day.de, 1
 southwaymotors.com, 1
 southwestrda.org.uk, 1
 souvik.me, 1
@@ -22906,17 +22885,16 @@ spdf.net, 1
 spearfishingmx.com, 1
 speciesism.com, 1
 spectrosoftware.de, 1
 spedition-transport-umzug.de, 1
 spedplus.com.br, 0
 speech-balloon.com, 1
 speechndraw.com, 1
 speeddate.it, 0
-speedmann.de, 1
 speedracer.ca, 1
 speeds.vip, 1
 speedsportofhull.co.uk, 1
 speedtailors.com, 1
 speedtest-russia.com, 1
 speich.net, 1
 spek.tech, 1
 spellcheck24.net, 1
@@ -22979,17 +22957,16 @@ spornkuller.de, 1
 sport-in-sundern.de, 1
 sport-potreby.cz, 1
 sport-potreby.sk, 1
 sporter.com, 1
 sportflash.info, 1
 sportingoods.com.br, 1
 sportovnidum.cz, 1
 sports.dating, 1
-sportscollection.com.br, 1
 sportsmanadvisor.com, 1
 sportsmansblog.com, 1
 sportstraineradvisor.com, 1
 sporttrampen.de, 0
 sportugalia.ru, 1
 sportxt.ru, 1
 spotlightsrule.com, 1
 spotupload.com, 1
@@ -23119,16 +23096,17 @@ stairlin.com, 1
 stalder.work, 1
 stalker-shop.com, 1
 stalkr.net, 1
 stalkthe.net, 1
 stamboommuller.nl, 1
 stamboomvanderwal.nl, 1
 stamkassa.nl, 1
 stammtisch.domains, 1
+stamonicatourandtravel.com, 1
 stamparmakarije.me, 1
 stampederadon.com, 1
 stanandjerre.org, 1
 standagainstspying.org, 1
 standards.gov, 1
 standoutbooks.com, 1
 stannahtrapliften.nl, 1
 star-citizen.wiki, 1
@@ -23403,17 +23381,16 @@ strutta.me, 1
 struxureon.com, 1
 strydom.me.uk, 1
 stt.wiki, 1
 stuartbell.co.uk, 1
 stuco.co, 1
 studenckiemetody.pl, 1
 student-eshop.cz, 1
 student-eshop.sk, 1
-student.andover.edu, 1
 studentforums.biz, 1
 studentite.bg, 0
 studentloans.gov, 1
 studentrightsadvocate.org, 1
 studentshare.net, 1
 studenttenant.com, 1
 studer.su, 1
 studienportal.eu, 1
@@ -23614,17 +23591,16 @@ svetzitrka.cz, 0
 svijet-medija.hr, 1
 sviz.pro, 1
 svj-stochovska.cz, 1
 svjvn.cz, 1
 svm-basketball.de, 1
 svm-it.eu, 1
 sw-servers.net, 1
 swaggerdile.com, 1
-swaleacademiestrust.org.uk, 1
 swansdoor.org, 1
 swapadoodle.com, 1
 swarfarm.com, 1
 swarlys-server.de, 1
 swarmation.com, 1
 swat4stats.com, 1
 sway-cdn.com, 1
 sway.com, 1
@@ -23649,17 +23625,16 @@ swipetv.ie, 1
 swiss-connection.net, 1
 swiss-cyber-experts.ch, 1
 swisscannabis.club, 1
 swissdojo.ch, 1
 swisselement365.com, 1
 swissentreprises.ch, 1
 swissfreshaircan.ch, 1
 swissfreshaircan.com, 1
-swissid.ch, 1
 swisslinux.org, 1
 swisswebhelp.ch, 1
 swissxperts.ch, 1
 swordfeng.xyz, 1
 swuosa.org, 1
 swvaux.com, 1
 swyn.net, 1
 sx3.no, 1
@@ -23880,17 +23855,16 @@ tastystakes.com, 1
 tat2grl85.com, 1
 tatara.ne.jp, 1
 tateesq.com, 1
 tatiloley.com, 1
 tatort-fanpage.de, 1
 tatsidou.gr, 1
 tattoo.dating, 1
 tattvaayoga.com, 1
-tavoittaja.fi, 1
 tavolaquadrada.com.br, 1
 tavsys.net, 1
 taxaroo.com, 1
 taxi-24std.de, 1
 taxi-chamonix.fr, 1
 taxi-collectif.ch, 1
 taxicollectif.ch, 1
 taxis-collectifs.ch, 1
@@ -23936,17 +23910,16 @@ teacherpowered.org, 1
 teachingcopyright.com, 1
 teachingcopyright.net, 1
 teachingcopyright.org, 1
 teachmeplease.com, 1
 teachmeplease.ru, 1
 teachpeople.org, 1
 teachwithouttears.com, 1
 teahut.net, 1
-tealdrones.com, 1
 team-azerty.com, 1
 team-bbd.com, 1
 team-pancake.eu, 1
 team3482.com, 1
 teambakchod.com, 1
 teambeam.at, 1
 teambeam.ch, 1
 teambeam.com, 1
@@ -24676,16 +24649,17 @@ tittelbach.at, 0
 titusetcompagnies.net, 1
 tivido.nl, 1
 tjandpals.com, 1
 tjeckien.guide, 1
 tjenestetorvet.dk, 1
 tjl.rocks, 1
 tjp.ch, 1
 tjs.me, 1
+tkacz.pro, 1
 tkarstens.de, 0
 tkat.ch, 1
 tkgpm.com, 1
 tkjg.fi, 1
 tkn.tokyo, 1
 tkts.cl, 1
 tkusano.jp, 1
 tlach.cz, 1
@@ -24792,16 +24766,17 @@ tom-geiger.de, 1
 tom-kunze.de, 1
 tom-maxwell.com, 1
 tom.run, 1
 tomabrafix.de, 1
 tomandshirley.com, 1
 tomasjacik.cz, 1
 tomaskavalek.cz, 1
 tomaspialek.cz, 1
+tomatenaufdenaugen.de, 1
 tomatis-nantes.com, 1
 tomaw.net, 1
 tomaz.eu, 1
 tombaker.me, 1
 tomberek.info, 1
 tombrossman.com, 1
 tomcort.com, 1
 tomdudfield.com, 1
@@ -24813,17 +24788,16 @@ tomi.cc, 1
 tomica.me, 1
 tomiler.com, 1
 tomjonsson.se, 1
 tomkunze.de, 1
 tomli.blog, 1
 tomm.yt, 1
 tommic.eu, 1
 tommounsey.com, 1
-tommyweber.de, 1
 tomnatt.com, 1
 tomo.gr, 0
 tomrei.com, 1
 tomrichards.net, 1
 tomschlick.com, 1
 tomssl.com, 1
 tomticket.com, 1
 tomudding.com, 1
@@ -25406,17 +25380,16 @@ typeonejoe.com, 1
 typeonejoe.net, 1
 typeonejoe.org, 1
 typeria.net, 1
 typewolf.com, 1
 typing.com, 1
 typo3.com, 1
 tyroremotes.co.uk, 1
 tyroremotes.es, 1
-tyroremotes.eu, 1
 tyroremotes.fr, 1
 tyroremotes.nl, 1
 tyskland.guide, 1
 tysox.de, 1
 tysye.ca, 1
 tyuo-keibi.co.jp, 1
 tzifas.com, 1
 tzwe.com, 1
@@ -25440,17 +25413,17 @@ ubertt.org, 1
 uberwald.de, 1
 uberwald.ws, 1
 ubi.gg, 1
 ubicv.com, 1
 ubineering.de, 1
 ublaboo.org, 1
 ubtce.com, 1
 ubuntuhot.com, 1
-ucac.nz, 1
+ucac.nz, 0
 ucangiller.com, 1
 ucch.be, 1
 ucfirst.nl, 1
 uchargeapp.com, 1
 uclanmasterplan.co.uk, 1
 ucrdatatool.gov, 1
 uctarna.online, 1
 udbhav.me, 1
@@ -25931,17 +25904,16 @@ vehicleenquiry.service.gov.uk, 1
 vehicletax.service.gov.uk, 1
 veii.de, 1
 veil-framework.com, 1
 veilletechno-it.info, 1
 velasense.com, 1
 velen.io, 1
 velotyretz.fr, 1
 venalytics.com, 1
-vendigital.com, 1
 vendorconnect.nyc, 1
 venicerealdeal.com, 1
 venmos.com, 1
 venoom.eu, 1
 ventesprivees-fr.com, 1
 ventizo.com, 1
 vera.bg, 1
 veramagazine.jp, 1
@@ -26244,17 +26216,16 @@ volto.io, 1
 voltotc.com, 1
 vomitb.in, 1
 vonauw.com, 1
 vonborstelboerner.de, 1
 vonedelmann.de, 0
 vonniehudson.com, 1
 vonterra.us, 1
 voodoochile.at, 1
-voorjou.com, 1
 vop.li, 1
 vorderklier.de, 1
 vorkbaard.nl, 1
 vorlicek.de, 1
 vorlif.org, 1
 vorm2.com, 1
 vorodevops.com, 1
 vos-fleurs.ch, 1
@@ -26437,17 +26408,16 @@ watchface.watch, 1
 watchfreeonline.co.uk, 1
 watchinventory.com, 1
 watchstyle.com, 1
 watchweasel.com, 1
 waterfedpole.com, 1
 watermonitor.gov, 1
 watertrails.io, 1
 watsonwork.me, 1
-wattechweb.com, 1
 wave-ola.es, 1
 wavesboardshop.com, 1
 wavesoftime.com, 1
 wawak.pl, 1
 waxdramatic.com, 1
 waylaydesign.com, 1
 wayne.cloud, 0
 wayohoo.com, 1
@@ -26700,25 +26670,23 @@ wessner.org, 1
 west-wind.net, 1
 westcarrollton.org, 1
 westcentenaryscouts.org.au, 1
 westcountrystalking.com, 1
 westendwifi.net, 1
 westeros.hu, 1
 westhighlandwhiteterrier.com.br, 1
 westlights.net, 1
-westlinwinds.com, 1
 westmead.org, 1
 westmeadapartments.com.au, 1
 westsuburbanbank.com, 1
 westtulsa.com, 1
 wetherbymethodist.org.uk, 1
 wetherbyweather.org.uk, 1
 wetofu.top, 1
-wetoxic.com, 1
 wettbonus.info, 1
 wetthost.com, 1
 wevenues.com, 1
 wewillgo.com, 1
 wewillgo.org, 1
 weyland-yutani.org, 1
 wf-bigsky-master.appspot.com, 1
 wf-demo-eu.appspot.com, 1
@@ -26826,16 +26794,17 @@ wieckiewicz.org, 1
 wiedmeyer.de, 1
 wiedu.net, 1
 wiegedaten.de, 1
 wienergyjobs.com, 1
 wieobensounten.de, 1
 wifimask.com, 1
 wifipineapple.com, 1
 wifirst.net, 1
+wifree.lv, 1
 wigggle.it, 1
 wigle.net, 1
 wiiaam.com, 1
 wiimotion.de, 1
 wijnservices.nl, 0
 wiki.python.org, 1
 wikibooks.org, 1
 wikibulz.com, 1
@@ -27110,17 +27079,16 @@ wpostats.com, 1
 wprevs.com, 1
 wpruby.com, 1
 wpscans.com, 1
 wpserp.com, 1
 wpsharks.com, 1
 wpsnelheid.nl, 1
 wpsono.com, 1
 wptotal.com, 1
-wpturnedup.com, 1
 wpvulndb.com, 1
 wr.su, 1
 wrapitup.co.uk, 1
 wrara.org, 1
 wrc-results.com, 1
 wrdcfiles.ca, 1
 wrenwrites.com, 1
 wrfu.co.nz, 1
@@ -27216,16 +27184,17 @@ www.fastmail.com, 1
 www.getcloak.com, 0
 www.gmail.com, 0
 www.googlemail.com, 0
 www.gov.uk, 0
 www.gpo.gov, 0
 www.grc.com, 0
 www.healthcare.gov, 0
 www.heliosnet.com, 1
+www.hyatt.com, 0
 www.icann.org, 0
 www.intercom.io, 1
 www.irccloud.com, 0
 www.lastpass.com, 0
 www.linode.com, 0
 www.lookout.com, 0
 www.makeyourlaws.org, 1
 www.messenger.com, 1
@@ -27478,16 +27447,17 @@ xombra.com, 1
 xotika.tv, 1
 xp2.de, 1
 xpd.se, 1
 xpenology-fr.net, 1
 xperidia.com, 1
 xpj.bet, 1
 xpjcunkuan.com, 1
 xplore-dna.net, 1
+xpressprint.com.br, 1
 xps2pdf.co.uk, 1
 xqin.net, 1
 xr.cx, 1
 xrippedhd.com, 1
 xrockx.de, 1
 xroot.org, 1
 xs2a.no, 1
 xscancun.com, 1
@@ -27853,17 +27823,16 @@ zakmccrac.de, 1
 zakr.es, 1
 zalamea.ph, 1
 zalan.do, 1
 zamis.net, 1
 zamocosmeticos.com.br, 1
 zamow.co, 1
 zandcell.com, 1
 zanthra.com, 1
-zaoshanghao-dajia.rhcloud.com, 1
 zapier.com, 1
 zappbuildapps.com, 1
 zaratan.fr, 1
 zarmarket.org, 1
 zary.me, 1
 zaufanatrzeciastrona.pl, 1
 zavetaji.lv, 1
 zawo-electric.de, 1
new file mode 100644
--- /dev/null
+++ b/servo/components/hashglobe/src/diagnostic.rs
@@ -0,0 +1,210 @@
+use hash_map::HashMap;
+use std::borrow::Borrow;
+use std::hash::{BuildHasher, Hash};
+use table::SafeHash;
+
+use FailedAllocationError;
+
+#[cfg(target_pointer_width = "32")]
+const CANARY: usize = 0x42cafe99;
+#[cfg(target_pointer_width = "64")]
+const CANARY: usize = 0x42cafe9942cafe99;
+
+#[derive(Clone, Debug)]
+enum JournalEntry {
+    Insert(SafeHash),
+    GetOrInsertWith(SafeHash),
+    Remove(SafeHash),
+    DidClear(usize),
+}
+
+#[derive(Clone, Debug)]
+pub struct DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          S: BuildHasher
+{
+    map: HashMap<K, (usize, V), S>,
+    journal: Vec<JournalEntry>,
+    readonly: bool,
+}
+
+impl<K: Hash + Eq, V, S: BuildHasher> DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          S: BuildHasher
+{
+    #[inline(always)]
+    pub fn inner(&self) -> &HashMap<K, (usize, V), S> {
+        &self.map
+    }
+
+    #[inline(always)]
+    pub fn begin_mutation(&mut self) {
+        assert!(self.readonly);
+        self.readonly = false;
+    }
+
+    #[inline(always)]
+    pub fn end_mutation(&mut self) {
+        assert!(!self.readonly);
+        self.readonly = true;
+
+        let mut position = 0;
+        let mut bad_canary: Option<(usize, *const usize)> = None;
+        for (_,v) in self.map.iter() {
+            let canary_ref = &v.0;
+            if *canary_ref == CANARY {
+                position += 1;
+                continue;
+            }
+            bad_canary = Some((*canary_ref, canary_ref));
+        }
+        if let Some(c) = bad_canary {
+            self.report_corruption(c.0, c.1, position);
+        }
+    }
+
+    #[inline(always)]
+    pub fn with_hasher(hash_builder: S) -> Self {
+        Self {
+            map: HashMap::<K, (usize, V), S>::with_hasher(hash_builder),
+            journal: Vec::new(),
+            readonly: true,
+        }
+    }
+
+    #[inline(always)]
+    pub fn len(&self) -> usize {
+        self.map.len()
+    }
+
+    #[inline(always)]
+    pub fn is_empty(&self) -> bool {
+        self.map.is_empty()
+    }
+
+    #[inline(always)]
+    pub fn contains_key<Q: ?Sized>(&self, k: &Q) -> bool
+        where K: Borrow<Q>,
+              Q: Hash + Eq
+    {
+        self.map.contains_key(k)
+    }
+
+    #[inline(always)]
+    pub fn get<Q: ?Sized>(&self, k: &Q) -> Option<&V>
+        where K: Borrow<Q>,
+              Q: Hash + Eq
+    {
+        self.map.get(k).map(|v| &v.1)
+    }
+
+    #[inline(always)]
+    pub fn try_get_or_insert_with<F: FnOnce() -> V>(
+        &mut self,
+        key: K,
+        default: F
+    ) -> Result<&mut V, FailedAllocationError> {
+        assert!(!self.readonly);
+        self.journal.push(JournalEntry::GetOrInsertWith(self.map.make_hash(&key)));
+        let entry = self.map.try_entry(key)?;
+        Ok(&mut entry.or_insert_with(|| (CANARY, default())).1)
+    }
+
+    #[inline(always)]
+    pub fn try_insert(&mut self, k: K, v: V) -> Result<Option<V>, FailedAllocationError> {
+        assert!(!self.readonly);
+        self.journal.push(JournalEntry::Insert(self.map.make_hash(&k)));
+        let old = self.map.try_insert(k, (CANARY, v))?;
+        Ok(old.map(|x| x.1))
+    }
+
+    #[inline(always)]
+    pub fn remove<Q: ?Sized>(&mut self, k: &Q) -> Option<V>
+        where K: Borrow<Q>,
+              Q: Hash + Eq
+    {
+        assert!(!self.readonly);
+        self.journal.push(JournalEntry::Remove(self.map.make_hash(k)));
+        self.map.remove(k).map(|x| x.1)
+    }
+
+    #[inline(always)]
+    pub fn clear(&mut self) where K: 'static, V: 'static  {
+        // We handle scoped mutations for the caller here, since callsites that
+        // invoke clear() don't benefit from the coalescing we do around insertion.
+        self.begin_mutation();
+        self.journal.clear();
+        self.journal.push(JournalEntry::DidClear(self.map.raw_capacity()));
+        self.map.clear();
+        self.end_mutation();
+    }
+
+    #[inline(never)]
+    fn report_corruption(
+        &mut self,
+        canary: usize,
+        canary_addr: *const usize,
+        position: usize
+    ) {
+        unsafe {
+            Gecko_AddBufferToCrashReport(
+                self.journal.as_ptr() as *const _,
+                self.journal.len() * ::std::mem::size_of::<JournalEntry>(),
+            );
+        }
+        panic!(
+            "HashMap Corruption (sz={}, cap={}, pairsz={}, cnry={:#x}, pos={}, base_addr={:?}, cnry_addr={:?})",
+            self.map.len(),
+            self.map.raw_capacity(),
+            ::std::mem::size_of::<(K, (usize, V))>(),
+            canary,
+            position,
+            self.map.raw_buffer(),
+            canary_addr,
+        );
+    }
+}
+
+impl<K, V, S> PartialEq for DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          V: PartialEq,
+          S: BuildHasher
+{
+    fn eq(&self, other: &Self) -> bool {
+        self.map.eq(&other.map)
+    }
+}
+
+impl<K, V, S> Eq for DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          V: Eq,
+          S: BuildHasher
+{
+}
+
+impl<K, V, S> Default for DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          S: BuildHasher + Default
+{
+    fn default() -> Self {
+        Self {
+            map: HashMap::default(),
+            journal: Vec::new(),
+            readonly: true,
+        }
+    }
+}
+
+impl<K: Hash + Eq, V, S: BuildHasher> Drop for DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          S: BuildHasher
+{
+    fn drop(&mut self) {
+        debug_assert!(self.readonly, "Dropped while mutating");
+    }
+}
+
+extern "C" {
+    pub fn Gecko_AddBufferToCrashReport(addr: *const ::std::os::raw::c_void,
+                                        bytes: usize);
+}
--- a/servo/components/hashglobe/src/fake.rs
+++ b/servo/components/hashglobe/src/fake.rs
@@ -72,20 +72,34 @@ impl<K, V, S> HashMap<K, V, S>
     pub fn try_shrink_to_fit(&mut self) -> Result<(), FailedAllocationError> {
         Ok(self.shrink_to_fit())
     }
 
     pub fn try_entry(&mut self, key: K) -> Result<Entry<K, V>, FailedAllocationError> {
         Ok(self.entry(key))
     }
 
+    #[inline(always)]
+    pub fn try_get_or_insert_with<F: FnOnce() -> V>(
+        &mut self,
+        key: K,
+        default: F
+    ) -> Result<&mut V, FailedAllocationError> {
+        Ok(self.entry(key).or_insert_with(default))
+    }
+
     #[inline]
     pub fn try_insert(&mut self, k: K, v: V) -> Result<Option<V>, FailedAllocationError> {
         Ok(self.insert(k, v))
     }
+
+    #[inline(always)]
+    pub fn begin_mutation(&mut self) {}
+    #[inline(always)]
+    pub fn end_mutation(&mut self) {}
 }
 
 #[derive(Clone)]
 pub struct HashSet<T, S = RandomState>(StdSet<T, S>);
 
 
 impl<T, S> Deref for HashSet<T, S> {
     type Target = StdSet<T, S>;
--- a/servo/components/hashglobe/src/hash_map.rs
+++ b/servo/components/hashglobe/src/hash_map.rs
@@ -529,17 +529,17 @@ fn robin_hood<'a, K: 'a, V: 'a>(bucket: 
         }
     }
 }
 
 impl<K, V, S> HashMap<K, V, S>
     where K: Eq + Hash,
           S: BuildHasher
 {
-    fn make_hash<X: ?Sized>(&self, x: &X) -> SafeHash
+    pub fn make_hash<X: ?Sized>(&self, x: &X) -> SafeHash
         where X: Hash
     {
         table::make_hash(&self.hash_builder, x)
     }
 
     /// Search for a key, yielding the index if it's found in the hashtable.
     /// If you already have the hash for the key lying around, use
     /// search_hashed.
@@ -678,20 +678,27 @@ impl<K, V, S> HashMap<K, V, S>
     /// ```
     #[inline]
     pub fn capacity(&self) -> usize {
         self.resize_policy.capacity(self.raw_capacity())
     }
 
     /// Returns the hash map's raw capacity.
     #[inline]
-    fn raw_capacity(&self) -> usize {
+    pub fn raw_capacity(&self) -> usize {
         self.table.capacity()
     }
 
+    /// Returns a raw pointer to the table's buffer.
+    #[inline]
+    pub fn raw_buffer(&self) -> *const u8 {
+        assert!(self.len() != 0);
+        self.table.raw_buffer()
+    }
+
     /// Reserves capacity for at least `additional` more elements to be inserted
     /// in the `HashMap`. The collection may reserve more space to avoid
     /// frequent reallocations.
     ///
     /// # Panics
     ///
     /// Panics if the new allocation size overflows [`usize`].
     ///
--- a/servo/components/hashglobe/src/lib.rs
+++ b/servo/components/hashglobe/src/lib.rs
@@ -6,16 +6,17 @@
 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
 extern crate heapsize;
 
 pub mod alloc;
+pub mod diagnostic;
 pub mod hash_map;
 pub mod hash_set;
 mod shim;
 mod table;
 
 pub mod fake;
 
 use std::{error, fmt};
--- a/servo/components/hashglobe/src/table.rs
+++ b/servo/components/hashglobe/src/table.rs
@@ -177,17 +177,17 @@ pub enum BucketState<K, V, M> {
 // The second bucket is full.
 pub struct GapThenFull<K, V, M> {
     gap: EmptyBucket<K, V, ()>,
     full: FullBucket<K, V, M>,
 }
 
 /// A hash that is not zero, since we use a hash of zero to represent empty
 /// buckets.
-#[derive(PartialEq, Copy, Clone)]
+#[derive(PartialEq, Copy, Clone, Debug)]
 pub struct SafeHash {
     hash: HashUint,
 }
 
 impl SafeHash {
     /// Peek at the hash value, which is guaranteed to be non-zero.
     #[inline(always)]
     pub fn inspect(&self) -> HashUint {
@@ -811,16 +811,22 @@ impl<K, V> RawTable<K, V> {
                 hash_start: buffer as *mut HashUint,
                 pair_start: buffer.offset(pairs_offset as isize) as *const (K, V),
                 idx: index,
                 _marker: marker::PhantomData,
             }
         }
     }
 
+    /// Returns a raw pointer to the table's buffer.
+    #[inline]
+    pub fn raw_buffer(&self) -> *const u8 {
+        self.hashes.ptr() as *const u8
+    }
+
     /// Creates a new raw table from a given capacity. All buckets are
     /// initially empty.
     pub fn new(capacity: usize) -> Result<RawTable<K, V>, FailedAllocationError> {
         unsafe {
             let ret = RawTable::try_new_uninitialized(capacity)?;
             ptr::write_bytes(ret.hashes.ptr(), 0, capacity);
             Ok(ret)
         }
--- a/servo/components/malloc_size_of/lib.rs
+++ b/servo/components/malloc_size_of/lib.rs
@@ -334,16 +334,35 @@ impl<K, V, S> MallocSizeOf for hashglobe
         for (k, v) in self.iter() {
             n += k.size_of(ops);
             n += v.size_of(ops);
         }
         n
     }
 }
 
+impl<K, V, S> MallocShallowSizeOf for hashglobe::diagnostic::DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash,
+          S: BuildHasher
+{
+    fn shallow_size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
+        self.inner().shallow_size_of(ops)
+    }
+}
+
+impl<K, V, S> MallocSizeOf for hashglobe::diagnostic::DiagnosticHashMap<K, V, S>
+    where K: Eq + Hash + MallocSizeOf,
+          V: MallocSizeOf,
+          S: BuildHasher,
+{
+    fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
+        self.inner().size_of(ops)
+    }
+}
+
 // XXX: we don't want MallocSizeOf to be defined for Rc and Arc. If negative
 // trait bounds are ever allowed, this code should be uncommented.
 // (We do have a compile-fail test for this:
 // rc_arc_must_not_derive_malloc_size_of.rs)
 //impl<T> !MallocSizeOf for Arc<T> { }
 //impl<T> !MallocShallowSizeOf for Arc<T> { }
 
 impl<T> MallocUnconditionalShallowSizeOf for servo_arc::Arc<T> {
--- a/servo/components/selectors/context.rs
+++ b/servo/components/selectors/context.rs
@@ -89,48 +89,46 @@ pub struct MatchingContext<'a> {
     pub relevant_link_found: bool,
 
     quirks_mode: QuirksMode,
     classes_and_ids_case_sensitivity: CaseSensitivity,
 }
 
 impl<'a> MatchingContext<'a> {
     /// Constructs a new `MatchingContext`.
-    pub fn new(matching_mode: MatchingMode,
-               bloom_filter: Option<&'a BloomFilter>,
-               nth_index_cache: Option<&'a mut NthIndexCache>,
-               quirks_mode: QuirksMode)
-               -> Self
-    {
-        Self {
-            matching_mode: matching_mode,
-            bloom_filter: bloom_filter,
-            nth_index_cache: nth_index_cache,
-            visited_handling: VisitedHandlingMode::AllLinksUnvisited,
-            relevant_link_found: false,
-            quirks_mode: quirks_mode,
-            classes_and_ids_case_sensitivity: quirks_mode.classes_and_ids_case_sensitivity(),
-        }
+    pub fn new(
+        matching_mode: MatchingMode,
+        bloom_filter: Option<&'a BloomFilter>,
+        nth_index_cache: Option<&'a mut NthIndexCache>,
+        quirks_mode: QuirksMode,
+    ) -> Self {
+        Self::new_for_visited(
+            matching_mode,
+            bloom_filter,
+            nth_index_cache,
+            VisitedHandlingMode::AllLinksUnvisited,
+            quirks_mode
+        )
     }
 
     /// Constructs a new `MatchingContext` for use in visited matching.
-    pub fn new_for_visited(matching_mode: MatchingMode,
-                           bloom_filter: Option<&'a BloomFilter>,
-                           nth_index_cache: Option<&'a mut NthIndexCache>,
-                           visited_handling: VisitedHandlingMode,
-                           quirks_mode: QuirksMode)
-                           -> Self
-    {
+    pub fn new_for_visited(
+        matching_mode: MatchingMode,
+        bloom_filter: Option<&'a BloomFilter>,
+        nth_index_cache: Option<&'a mut NthIndexCache>,
+        visited_handling: VisitedHandlingMode,
+        quirks_mode: QuirksMode,
+    ) -> Self {
         Self {
-            matching_mode: matching_mode,
-            bloom_filter: bloom_filter,
-            visited_handling: visited_handling,
+            matching_mode,
+            bloom_filter,
+            visited_handling,
+            nth_index_cache,
+            quirks_mode,
             relevant_link_found: false,
-            nth_index_cache: nth_index_cache,
-            quirks_mode: quirks_mode,
             classes_and_ids_case_sensitivity: quirks_mode.classes_and_ids_case_sensitivity(),
         }
     }
 
     /// The quirks mode of the document.
     #[inline]
     pub fn quirks_mode(&self) -> QuirksMode {
         self.quirks_mode
--- a/servo/components/style/context.rs
+++ b/servo/components/style/context.rs
@@ -317,18 +317,16 @@ pub struct TraversalStatistics {
     pub styles_shared: u32,
     /// The number of styles reused via rule node comparison from the
     /// StyleSharingCache.
     pub styles_reused: u32,
     /// The number of selectors in the stylist.
     pub selectors: u32,
     /// The number of revalidation selectors.
     pub revalidation_selectors: u32,
-    /// The number of state/attr dependencies in the dependency set.
-    pub dependency_selectors: u32,
     /// The number of declarations in the stylist.
     pub declarations: u32,
     /// The number of times the stylist was rebuilt.
     pub stylist_rebuilds: u32,
     /// Time spent in the traversal, in milliseconds.
     pub traversal_time_ms: f64,
     /// Whether this was a parallel traversal.
     pub is_parallel: Option<bool>,
@@ -339,28 +337,26 @@ pub struct TraversalStatistics {
 /// Implementation of Add to aggregate statistics across different threads.
 impl<'a> ops::Add for &'a TraversalStatistics {
     type Output = TraversalStatistics;
     fn add(self, other: Self) -> TraversalStatistics {
         debug_assert!(self.traversal_time_ms == 0.0 && other.traversal_time_ms == 0.0,
                       "traversal_time_ms should be set at the end by the caller");
         debug_assert!(self.selectors == 0, "set at the end");
         debug_assert!(self.revalidation_selectors == 0, "set at the end");
-        debug_assert!(self.dependency_selectors == 0, "set at the end");
         debug_assert!(self.declarations == 0, "set at the end");
         debug_assert!(self.stylist_rebuilds == 0, "set at the end");
         TraversalStatistics {
             elements_traversed: self.elements_traversed + other.elements_traversed,
             elements_styled: self.elements_styled + other.elements_styled,
             elements_matched: self.elements_matched + other.elements_matched,
             styles_shared: self.styles_shared + other.styles_shared,
             styles_reused: self.styles_reused + other.styles_reused,
             selectors: 0,
             revalidation_selectors: 0,
-            dependency_selectors: 0,
             declarations: 0,
             stylist_rebuilds: 0,
             traversal_time_ms: 0.0,
             is_parallel: None,
             is_large: None,
         }
     }
 }
@@ -378,17 +374,16 @@ impl fmt::Display for TraversalStatistic
         })?;
         writeln!(f, "[PERF],elements_traversed,{}", self.elements_traversed)?;
         writeln!(f, "[PERF],elements_styled,{}", self.elements_styled)?;
         writeln!(f, "[PERF],elements_matched,{}", self.elements_matched)?;
         writeln!(f, "[PERF],styles_shared,{}", self.styles_shared)?;
         writeln!(f, "[PERF],styles_reused,{}", self.styles_reused)?;
         writeln!(f, "[PERF],selectors,{}", self.selectors)?;
         writeln!(f, "[PERF],revalidation_selectors,{}", self.revalidation_selectors)?;
-        writeln!(f, "[PERF],dependency_selectors,{}", self.dependency_selectors)?;
         writeln!(f, "[PERF],declarations,{}", self.declarations)?;
         writeln!(f, "[PERF],stylist_rebuilds,{}", self.stylist_rebuilds)?;
         writeln!(f, "[PERF],traversal_time_ms,{}", self.traversal_time_ms)?;
         writeln!(f, "[PERF] perf block end")
     }
 }
 
 impl TraversalStatistics {
@@ -400,17 +395,16 @@ impl TraversalStatistics {
         let threshold = traversal.shared_context().options.style_statistics_threshold;
         let stylist = traversal.shared_context().stylist;
 
         self.is_parallel = Some(parallel);
         self.is_large = Some(self.elements_traversed as usize >= threshold);
         self.traversal_time_ms = (time::precise_time_s() - start) * 1000.0;
         self.selectors = stylist.num_selectors() as u32;
         self.revalidation_selectors = stylist.num_revalidation_selectors() as u32;
-        self.dependency_selectors = stylist.num_invalidations() as u32;
         self.declarations = stylist.num_declarations() as u32;
         self.stylist_rebuilds = stylist.num_rebuilds() as u32;
     }
 
     /// Returns whether this traversal is 'large' in order to avoid console spam
     /// from lots of tiny traversals.
     pub fn is_large_traversal(&self) -> bool {
         self.is_large.unwrap()
--- a/servo/components/style/custom_properties.rs
+++ b/servo/components/style/custom_properties.rs
@@ -6,17 +6,17 @@
 //!
 //! [custom]: https://drafts.csswg.org/css-variables/
 
 use Atom;
 use cssparser::{Delimiter, Parser, ParserInput, SourcePosition, Token, TokenSerializationType};
 use parser::ParserContext;
 use precomputed_hash::PrecomputedHash;
 use properties::{CSSWideKeyword, DeclaredValue};
-use selector_map::{PrecomputedHashSet, PrecomputedHashMap};
+use selector_map::{PrecomputedHashSet, PrecomputedDiagnosticHashMap};
 use selectors::parser::SelectorParseError;
 use servo_arc::Arc;
 use std::ascii::AsciiExt;
 use std::borrow::{Borrow, Cow};
 use std::fmt;
 use std::hash::Hash;
 use style_traits::{ToCss, StyleParseError, ParseError};
 
@@ -100,37 +100,39 @@ pub type CustomPropertiesMap = OrderedMa
 #[derive(Clone, Debug, Eq, PartialEq)]
 pub struct OrderedMap<K, V>
 where
     K: PrecomputedHash + Hash + Eq + Clone,
 {
     /// Key index.
     index: Vec<K>,
     /// Key-value map.
-    values: PrecomputedHashMap<K, V>,
+    values: PrecomputedDiagnosticHashMap<K, V>,
 }
 
 impl<K, V> OrderedMap<K, V>
 where
     K: Eq + PrecomputedHash + Hash + Clone,
 {
     /// Creates a new ordered map.
     pub fn new() -> Self {
         OrderedMap {
             index: Vec::new(),
-            values: PrecomputedHashMap::default(),
+            values: PrecomputedDiagnosticHashMap::default(),
         }
     }
 
     /// Insert a new key-value pair.
     pub fn insert(&mut self, key: K, value: V) {
         if !self.values.contains_key(&key) {
             self.index.push(key.clone());
         }
-        self.values.insert(key, value);
+        self.values.begin_mutation();
+        self.values.try_insert(key, value).unwrap();
+        self.values.end_mutation();
     }
 
     /// Get a value given its key.
     pub fn get(&self, key: &K) -> Option<&V> {
         let value = self.values.get(key);
         debug_assert_eq!(value.is_some(), self.index.contains(key));
         value
     }
@@ -160,17 +162,20 @@ where
         K: Borrow<Q>,
         Q: PrecomputedHash + Hash + Eq,
     {
         let index = match self.index.iter().position(|k| k.borrow() == key) {
             Some(p) => p,
             None => return None,
         };
         self.index.remove(index);
-        self.values.remove(key)
+        self.values.begin_mutation();
+        let result = self.values.remove(key);
+        self.values.end_mutation();
+        result
     }
 }
 
 /// An iterator for OrderedMap.
 ///
 /// The iteration order is determined by the order that the values are
 /// added to the key-value map.
 pub struct OrderedMapIterator<'a, K, V>
@@ -191,17 +196,17 @@ where
 
     fn next(&mut self) -> Option<Self::Item> {
         let key = match self.inner.index.get(self.pos) {
             Some(k) => k,
             None => return None,
         };
 
         self.pos += 1;
-        let value = &self.inner.values[key];
+        let value = &self.inner.values.get(key).unwrap();
 
         Some((key, value))
     }
 }
 
 impl ComputedValue {
     fn empty() -> ComputedValue {
         ComputedValue {
--- a/servo/components/style/gecko/generated/structs.rs
+++ b/servo/components/style/gecko/generated/structs.rs
@@ -996,16 +996,18 @@ pub mod root {
         pub struct pair<_T1, _T2> {
             pub first: _T1,
             pub second: _T2,
             pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T1>>,
             pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T2>>,
         }
         pub type pair_first_type<_T1> = _T1;
         pub type pair_second_type<_T2> = _T2;
+        pub type pair__PCCP = u8;
+        pub type pair__PCCFP = u8;
         #[repr(C)]
         #[derive(Debug, Copy)]
         pub struct input_iterator_tag {
             pub _address: u8,
         }
         #[test]
         fn bindgen_test_layout_input_iterator_tag() {
             assert_eq!(::std::mem::size_of::<input_iterator_tag>() , 1usize ,
@@ -1122,22 +1124,22 @@ pub mod root {
             pub type nsTStringRepr_raw_type_type<U> = *mut U;
             #[repr(u16)]
             #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
             pub enum StringDataFlags {
                 TERMINATED = 1,
                 VOIDED = 2,
                 SHARED = 4,
                 OWNED = 8,
-                FIXED = 16,
+                INLINE = 16,
                 LITERAL = 32,
             }
             #[repr(u16)]
             #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum StringClassFlags { FIXED = 1, NULL_TERMINATED = 2, }
+            pub enum StringClassFlags { INLINE = 1, NULL_TERMINATED = 2, }
             /// LinkedList supports refcounted elements using this adapter class. Clients
             /// using LinkedList<RefPtr<T>> will get a data structure that holds a strong
             /// reference to T as long as T is in the list.
             #[repr(C)]
             #[derive(Debug, Copy, Clone)]
             pub struct LinkedListElementTraits {
                 pub _address: u8,
             }
@@ -1243,89 +1245,89 @@ pub mod root {
                 pub mURI: *mut root::nsIURI,
                 pub mInnerWindowID: u64,
                 pub mErrorLineNumber: u32,
                 pub mPrevErrorLineNumber: u32,
                 pub mErrorColNumber: u32,
             }
             #[test]
             fn bindgen_test_layout_ErrorReporter() {
-                assert_eq!(::std::mem::size_of::<ErrorReporter>() , 248usize ,
+                assert_eq!(::std::mem::size_of::<ErrorReporter>() , 240usize ,
                            concat ! (
                            "Size of: " , stringify ! ( ErrorReporter ) ));
                 assert_eq! (::std::mem::align_of::<ErrorReporter>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( ErrorReporter )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mError as
                             * const _ as usize } , 0usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mError )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) .
-                            mErrorLine as * const _ as usize } , 160usize ,
+                            mErrorLine as * const _ as usize } , 152usize ,
                             concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mErrorLine
                             ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mFileName
-                            as * const _ as usize } , 176usize , concat ! (
+                            as * const _ as usize } , 168usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mFileName )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mScanner
-                            as * const _ as usize } , 192usize , concat ! (
+                            as * const _ as usize } , 184usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mScanner )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mSheet as
-                            * const _ as usize } , 200usize , concat ! (
+                            * const _ as usize } , 192usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mSheet )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mLoader
-                            as * const _ as usize } , 208usize , concat ! (
+                            as * const _ as usize } , 200usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mLoader )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) . mURI as *
-                            const _ as usize } , 216usize , concat ! (
+                            const _ as usize } , 208usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! ( mURI ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) .
-                            mInnerWindowID as * const _ as usize } , 224usize
+                            mInnerWindowID as * const _ as usize } , 216usize
                             , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! (
                             mInnerWindowID ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) .
                             mErrorLineNumber as * const _ as usize } ,
-                            232usize , concat ! (
+                            224usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! (
                             mErrorLineNumber ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) .
                             mPrevErrorLineNumber as * const _ as usize } ,
-                            236usize , concat ! (
+                            228usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! (
                             mPrevErrorLineNumber ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ErrorReporter ) ) .
-                            mErrorColNumber as * const _ as usize } , 240usize
+                            mErrorColNumber as * const _ as usize } , 232usize
                             , concat ! (
                             "Alignment of field: " , stringify ! (
                             ErrorReporter ) , "::" , stringify ! (
                             mErrorColNumber ) ));
             }
             #[repr(u8)]
             /// Enum defining the mode in which a sheet is to be parsed.  This is
             /// usually, but not always, the same as the cascade level at which the
@@ -2309,17 +2311,17 @@ pub mod root {
                            ));
                 assert_eq! (::std::mem::align_of::<MediaList>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( MediaList ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct SRIMetadata {
-                pub mHashes: root::nsTArray<root::nsTString<::std::os::raw::c_char>>,
+                pub mHashes: root::nsTArray<root::nsCString>,
                 pub mIntegrityString: ::nsstring::nsStringRepr,
                 pub mAlgorithm: root::nsCString,
                 pub mAlgorithmType: i8,
                 pub mEmpty: bool,
             }
             pub const SRIMetadata_MAX_ALTERNATE_HASHES: u32 = 256;
             pub const SRIMetadata_UNKNOWN_ALGORITHM: i8 = -1;
             #[test]
@@ -2873,16 +2875,47 @@ pub mod root {
             pub mod constructors {
                 #[allow(unused_imports)]
                 use self::super::super::super::super::root;
             }
             pub mod namedpropertiesobjects {
                 #[allow(unused_imports)]
                 use self::super::super::super::super::root;
             }
+            /// StyleChildrenIterator traverses the children of the element from the
+            /// perspective of the style system, particularly the children we need to
+            /// traverse during restyle.
+            ///
+            /// At present, this is identical to AllChildrenIterator with
+            /// (eAllChildren | eSkipDocumentLevelNativeAnonymousContent). We used to have
+            /// detect and skip any native anonymous children that are used to implement some
+            /// special magic in here that went away, but we keep the separate class so
+            /// we can reintroduce special magic back if needed.
+            ///
+            /// Note: it assumes that no mutation of the DOM or frame tree takes place during
+            /// iteration, and will break horribly if that is not true.
+            ///
+            /// We require this to be memmovable since Rust code can create and move
+            /// StyleChildrenIterators.
+            #[repr(C)]
+            #[derive(Debug)]
+            pub struct StyleChildrenIterator {
+                pub _base: root::mozilla::dom::AllChildrenIterator,
+            }
+            #[test]
+            fn bindgen_test_layout_StyleChildrenIterator() {
+                assert_eq!(::std::mem::size_of::<StyleChildrenIterator>() ,
+                           72usize , concat ! (
+                           "Size of: " , stringify ! ( StyleChildrenIterator )
+                           ));
+                assert_eq! (::std::mem::align_of::<StyleChildrenIterator>() ,
+                            8usize , concat ! (
+                            "Alignment of " , stringify ! (
+                            StyleChildrenIterator ) ));
+            }
             #[repr(u8)]
             #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
             pub enum VisibilityState {
                 Hidden = 0,
                 Visible = 1,
                 Prerender = 2,
                 EndGuard_ = 3,
             }
@@ -3114,47 +3147,16 @@ pub mod root {
                             concat ! (
                             "Alignment of " , stringify ! ( URLParams ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLParams ) ) . mParams as *
                             const _ as usize } , 0usize , concat ! (
                             "Alignment of field: " , stringify ! ( URLParams )
                             , "::" , stringify ! ( mParams ) ));
             }
-            /// StyleChildrenIterator traverses the children of the element from the
-            /// perspective of the style system, particularly the children we need to
-            /// traverse during restyle.
-            ///
-            /// At present, this is identical to AllChildrenIterator with
-            /// (eAllChildren | eSkipDocumentLevelNativeAnonymousContent). We used to have
-            /// detect and skip any native anonymous children that are used to implement some
-            /// special magic in here that went away, but we keep the separate class so
-            /// we can reintroduce special magic back if needed.
-            ///
-            /// Note: it assumes that no mutation of the DOM or frame tree takes place during
-            /// iteration, and will break horribly if that is not true.
-            ///
-            /// We require this to be memmovable since Rust code can create and move
-            /// StyleChildrenIterators.
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct StyleChildrenIterator {
-                pub _base: root::mozilla::dom::AllChildrenIterator,
-            }
-            #[test]
-            fn bindgen_test_layout_StyleChildrenIterator() {
-                assert_eq!(::std::mem::size_of::<StyleChildrenIterator>() ,
-                           72usize , concat ! (
-                           "Size of: " , stringify ! ( StyleChildrenIterator )
-                           ));
-                assert_eq! (::std::mem::align_of::<StyleChildrenIterator>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            StyleChildrenIterator ) ));
-            }
             #[repr(u8)]
             #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
             pub enum CompositeOperation {
                 Replace = 0,
                 Add = 1,
                 Accumulate = 2,
                 EndGuard_ = 3,
             }
@@ -5748,16 +5750,17 @@ pub mod root {
         pub type Runnable_HasThreadSafeRefCnt = root::mozilla::TrueType;
         #[test]
         fn bindgen_test_layout_Runnable() {
             assert_eq!(::std::mem::size_of::<Runnable>() , 32usize , concat !
                        ( "Size of: " , stringify ! ( Runnable ) ));
             assert_eq! (::std::mem::align_of::<Runnable>() , 8usize , concat !
                         ( "Alignment of " , stringify ! ( Runnable ) ));
         }
+        pub type Preferences_PrefSetting = root::mozilla::dom::PrefSetting;
         #[repr(C)]
         #[derive(Debug)]
         pub struct CycleCollectedJSContext_RunInMetastableStateData {
             pub mRunnable: root::nsCOMPtr,
             pub mRecursionDepth: u32,
         }
         #[test]
         fn bindgen_test_layout_CycleCollectedJSContext_RunInMetastableStateData() {
@@ -5902,16 +5905,840 @@ pub mod root {
             eUseCounter_FileLastModifiedDate = 91,
             eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap = 92,
             eUseCounter_URLCreateObjectURL_MediaStream = 93,
             eUseCounter_XMLBaseAttribute = 94,
             eUseCounter_XMLBaseAttributeForStyleAttr = 95,
             eUseCounter_WindowContentUntrusted = 96,
             eUseCounter_Count = 97,
         }
+        /// This class holds all non-tree-structural state of an element that might be
+        /// used for selector matching eventually.
+        ///
+        /// This means the attributes, and the element state, such as :hover, :active,
+        /// etc...
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct ServoElementSnapshot {
+            pub mAttrs: root::nsTArray<root::mozilla::ServoAttrSnapshot>,
+            pub mClass: root::nsAttrValue,
+            pub mState: root::mozilla::ServoElementSnapshot_ServoStateType,
+            pub mContains: root::mozilla::ServoElementSnapshot_Flags,
+            pub _bitfield_1: u8,
+            pub __bindgen_padding_0: [u16; 3usize],
+        }
+        pub type ServoElementSnapshot_BorrowedAttrInfo =
+            root::mozilla::dom::BorrowedAttrInfo;
+        pub type ServoElementSnapshot_Element = root::mozilla::dom::Element;
+        pub type ServoElementSnapshot_ServoStateType =
+            root::mozilla::EventStates_ServoType;
+        pub use self::super::super::root::mozilla::ServoElementSnapshotFlags
+                as ServoElementSnapshot_Flags;
+        #[test]
+        fn bindgen_test_layout_ServoElementSnapshot() {
+            assert_eq!(::std::mem::size_of::<ServoElementSnapshot>() , 32usize
+                       , concat ! (
+                       "Size of: " , stringify ! ( ServoElementSnapshot ) ));
+            assert_eq! (::std::mem::align_of::<ServoElementSnapshot>() ,
+                        8usize , concat ! (
+                        "Alignment of " , stringify ! ( ServoElementSnapshot )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mAttrs
+                        as * const _ as usize } , 0usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        ServoElementSnapshot ) , "::" , stringify ! ( mAttrs )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mClass
+                        as * const _ as usize } , 8usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        ServoElementSnapshot ) , "::" , stringify ! ( mClass )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mState
+                        as * const _ as usize } , 16usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        ServoElementSnapshot ) , "::" , stringify ! ( mState )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ServoElementSnapshot ) ) .
+                        mContains as * const _ as usize } , 24usize , concat !
+                        (
+                        "Alignment of field: " , stringify ! (
+                        ServoElementSnapshot ) , "::" , stringify ! (
+                        mContains ) ));
+        }
+        impl ServoElementSnapshot {
+            #[inline]
+            pub fn mIsHTMLElementInHTMLDocument(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 1u64 as u8;
+                let val = (unit_field_val & mask) >> 0usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mIsHTMLElementInHTMLDocument(&mut self, val: bool) {
+                let mask = 1u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 0usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mIsInChromeDocument(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 2u64 as u8;
+                let val = (unit_field_val & mask) >> 1usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mIsInChromeDocument(&mut self, val: bool) {
+                let mask = 2u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 1usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mSupportsLangAttr(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 4u64 as u8;
+                let val = (unit_field_val & mask) >> 2usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mSupportsLangAttr(&mut self, val: bool) {
+                let mask = 4u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 2usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mIsTableBorderNonzero(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 8u64 as u8;
+                let val = (unit_field_val & mask) >> 3usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mIsTableBorderNonzero(&mut self, val: bool) {
+                let mask = 8u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 3usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mIsMozBrowserFrame(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 16u64 as u8;
+                let val = (unit_field_val & mask) >> 4usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mIsMozBrowserFrame(&mut self, val: bool) {
+                let mask = 16u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 4usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mClassAttributeChanged(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 32u64 as u8;
+                let val = (unit_field_val & mask) >> 5usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mClassAttributeChanged(&mut self, val: bool) {
+                let mask = 32u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 5usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mIdAttributeChanged(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 64u64 as u8;
+                let val = (unit_field_val & mask) >> 6usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mIdAttributeChanged(&mut self, val: bool) {
+                let mask = 64u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 6usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn mOtherAttributeChanged(&self) -> bool {
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                let mask = 128u64 as u8;
+                let val = (unit_field_val & mask) >> 7usize;
+                unsafe { ::std::mem::transmute(val as u8) }
+            }
+            #[inline]
+            pub fn set_mOtherAttributeChanged(&mut self, val: bool) {
+                let mask = 128u64 as u8;
+                let val = val as u8 as u8;
+                let mut unit_field_val: u8 =
+                    unsafe { ::std::mem::uninitialized() };
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
+                                                        *const _ as *const u8,
+                                                    &mut unit_field_val as
+                                                        *mut u8 as *mut u8,
+                                                    ::std::mem::size_of::<u8>())
+                };
+                unit_field_val &= !mask;
+                unit_field_val |= (val << 7usize) & mask;
+                unsafe {
+                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
+                                                        *const _ as *const u8,
+                                                    &mut self._bitfield_1 as
+                                                        *mut _ as *mut u8,
+                                                    ::std::mem::size_of::<u8>());
+                }
+            }
+            #[inline]
+            pub fn new_bitfield_1(mIsHTMLElementInHTMLDocument: bool,
+                                  mIsInChromeDocument: bool,
+                                  mSupportsLangAttr: bool,
+                                  mIsTableBorderNonzero: bool,
+                                  mIsMozBrowserFrame: bool,
+                                  mClassAttributeChanged: bool,
+                                  mIdAttributeChanged: bool,
+                                  mOtherAttributeChanged: bool) -> u8 {
+                ({
+                     ({
+                          ({
+                               ({
+                                    ({
+                                         ({
+                                              ({
+                                                   ({ 0 } |
+                                                        ((mIsHTMLElementInHTMLDocument
+                                                              as u8 as u8) <<
+                                                             0usize) &
+                                                            (1u64 as u8))
+                                               } |
+                                                   ((mIsInChromeDocument as u8
+                                                         as u8) << 1usize) &
+                                                       (2u64 as u8))
+                                          } |
+                                              ((mSupportsLangAttr as u8 as u8)
+                                                   << 2usize) & (4u64 as u8))
+                                     } |
+                                         ((mIsTableBorderNonzero as u8 as u8)
+                                              << 3usize) & (8u64 as u8))
+                                } |
+                                    ((mIsMozBrowserFrame as u8 as u8) <<
+                                         4usize) & (16u64 as u8))
+                           } |
+                               ((mClassAttributeChanged as u8 as u8) <<
+                                    5usize) & (32u64 as u8))
+                      } |
+                          ((mIdAttributeChanged as u8 as u8) << 6usize) &
+                              (64u64 as u8))
+                 } |
+                     ((mOtherAttributeChanged as u8 as u8) << 7usize) &
+                         (128u64 as u8))
+            }
+        }
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct StyleAnimation {
+            pub mTimingFunction: root::nsTimingFunction,
+            pub mDuration: f32,
+            pub mDelay: f32,
+            pub mName: ::nsstring::nsStringRepr,
+            pub mDirection: root::mozilla::dom::PlaybackDirection,
+            pub mFillMode: root::mozilla::dom::FillMode,
+            pub mPlayState: u8,
+            pub mIterationCount: f32,
+        }
+        #[test]
+        fn bindgen_test_layout_StyleAnimation() {
+            assert_eq!(::std::mem::size_of::<StyleAnimation>() , 56usize ,
+                       concat ! ( "Size of: " , stringify ! ( StyleAnimation )
+                       ));
+            assert_eq! (::std::mem::align_of::<StyleAnimation>() , 8usize ,
+                        concat ! (
+                        "Alignment of " , stringify ! ( StyleAnimation ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) .
+                        mTimingFunction as * const _ as usize } , 0usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mTimingFunction ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mDuration as
+                        * const _ as usize } , 20usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mDuration ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mDelay as *
+                        const _ as usize } , 24usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mDelay ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mName as *
+                        const _ as usize } , 32usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mName ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mDirection
+                        as * const _ as usize } , 48usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mDirection ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mFillMode as
+                        * const _ as usize } , 49usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mFillMode ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) . mPlayState
+                        as * const _ as usize } , 50usize , concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mPlayState ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const StyleAnimation ) ) .
+                        mIterationCount as * const _ as usize } , 52usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! ( StyleAnimation
+                        ) , "::" , stringify ! ( mIterationCount ) ));
+        }
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct AnimationPropertySegment {
+            pub mFromKey: f32,
+            pub mToKey: f32,
+            pub mFromValue: root::mozilla::AnimationValue,
+            pub mToValue: root::mozilla::AnimationValue,
+            pub mTimingFunction: [u64; 18usize],
+            pub mFromComposite: root::mozilla::dom::CompositeOperation,
+            pub mToComposite: root::mozilla::dom::CompositeOperation,
+        }
+        #[test]
+        fn bindgen_test_layout_AnimationPropertySegment() {
+            assert_eq!(::std::mem::size_of::<AnimationPropertySegment>() ,
+                       208usize , concat ! (
+                       "Size of: " , stringify ! ( AnimationPropertySegment )
+                       ));
+            assert_eq! (::std::mem::align_of::<AnimationPropertySegment>() ,
+                        8usize , concat ! (
+                        "Alignment of " , stringify ! (
+                        AnimationPropertySegment ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mFromKey as * const _ as usize } , 0usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mFromKey ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mToKey as * const _ as usize } , 4usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mToKey ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mFromValue as * const _ as usize } , 8usize , concat !
+                        (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mFromValue ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mToValue as * const _ as usize } , 32usize , concat !
+                        (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mToValue ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mTimingFunction as * const _ as usize } , 56usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mTimingFunction ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mFromComposite as * const _ as usize } , 200usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mFromComposite ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
+                        mToComposite as * const _ as usize } , 201usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! (
+                        AnimationPropertySegment ) , "::" , stringify ! (
+                        mToComposite ) ));
+        }
+        /// Stores the results of calculating the timing properties of an animation
+        /// at a given sample time.
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct ComputedTiming {
+            pub mActiveDuration: root::mozilla::StickyTimeDuration,
+            pub mActiveTime: root::mozilla::StickyTimeDuration,
+            pub mEndTime: root::mozilla::StickyTimeDuration,
+            pub mProgress: [u64; 2usize],
+            pub mCurrentIteration: u64,
+            pub mIterations: f64,
+            pub mIterationStart: f64,
+            pub mDuration: root::mozilla::StickyTimeDuration,
+            pub mFill: root::mozilla::dom::FillMode,
+            pub mPhase: root::mozilla::ComputedTiming_AnimationPhase,
+            pub mBeforeFlag: root::mozilla::ComputedTimingFunction_BeforeFlag,
+        }
+        #[repr(i32)]
+        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+        pub enum ComputedTiming_AnimationPhase {
+            Idle = 0,
+            Before = 1,
+            Active = 2,
+            After = 3,
+        }
+        #[test]
+        fn bindgen_test_layout_ComputedTiming() {
+            assert_eq!(::std::mem::size_of::<ComputedTiming>() , 88usize ,
+                       concat ! ( "Size of: " , stringify ! ( ComputedTiming )
+                       ));
+            assert_eq! (::std::mem::align_of::<ComputedTiming>() , 8usize ,
+                        concat ! (
+                        "Alignment of " , stringify ! ( ComputedTiming ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) .
+                        mActiveDuration as * const _ as usize } , 0usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mActiveDuration ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mActiveTime
+                        as * const _ as usize } , 8usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mActiveTime ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mEndTime as
+                        * const _ as usize } , 16usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mEndTime ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mProgress as
+                        * const _ as usize } , 24usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mProgress ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) .
+                        mCurrentIteration as * const _ as usize } , 40usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mCurrentIteration ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mIterations
+                        as * const _ as usize } , 48usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mIterations ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) .
+                        mIterationStart as * const _ as usize } , 56usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mIterationStart ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mDuration as
+                        * const _ as usize } , 64usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mDuration ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mFill as *
+                        const _ as usize } , 72usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mFill ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mPhase as *
+                        const _ as usize } , 76usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mPhase ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const ComputedTiming ) ) . mBeforeFlag
+                        as * const _ as usize } , 80usize , concat ! (
+                        "Alignment of field: " , stringify ! ( ComputedTiming
+                        ) , "::" , stringify ! ( mBeforeFlag ) ));
+        }
+        /// A single keyframe.
+        ///
+        /// This is the canonical form in which keyframe effects are stored and
+        /// corresponds closely to the type of objects returned via the getKeyframes()
+        /// API.
+        ///
+        /// Before computing an output animation value, however, we flatten these frames
+        /// down to a series of per-property value arrays where we also resolve any
+        /// overlapping shorthands/longhands, convert specified CSS values to computed
+        /// values, etc.
+        ///
+        /// When the target element or style context changes, however, we rebuild these
+        /// per-property arrays from the original list of keyframes objects. As a result,
+        /// these objects represent the master definition of the effect's values.
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct Keyframe {
+            pub mOffset: [u64; 2usize],
+            pub mComputedOffset: f64,
+            pub mTimingFunction: [u64; 18usize],
+            pub mComposite: [u8; 2usize],
+            pub mPropertyValues: root::nsTArray<root::mozilla::PropertyValuePair>,
+        }
+        pub const Keyframe_kComputedOffsetNotSet: f64 = -1.;
+        #[test]
+        fn bindgen_test_layout_Keyframe() {
+            assert_eq!(::std::mem::size_of::<Keyframe>() , 184usize , concat !
+                       ( "Size of: " , stringify ! ( Keyframe ) ));
+            assert_eq! (::std::mem::align_of::<Keyframe>() , 8usize , concat !
+                        ( "Alignment of " , stringify ! ( Keyframe ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const Keyframe ) ) . mOffset as * const
+                        _ as usize } , 0usize , concat ! (
+                        "Alignment of field: " , stringify ! ( Keyframe ) ,
+                        "::" , stringify ! ( mOffset ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const Keyframe ) ) . mComputedOffset as
+                        * const _ as usize } , 16usize , concat ! (
+                        "Alignment of field: " , stringify ! ( Keyframe ) ,
+                        "::" , stringify ! ( mComputedOffset ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const Keyframe ) ) . mTimingFunction as
+                        * const _ as usize } , 24usize , concat ! (
+                        "Alignment of field: " , stringify ! ( Keyframe ) ,
+                        "::" , stringify ! ( mTimingFunction ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const Keyframe ) ) . mComposite as *
+                        const _ as usize } , 168usize , concat ! (
+                        "Alignment of field: " , stringify ! ( Keyframe ) ,
+                        "::" , stringify ! ( mComposite ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const Keyframe ) ) . mPropertyValues as
+                        * const _ as usize } , 176usize , concat ! (
+                        "Alignment of field: " , stringify ! ( Keyframe ) ,
+                        "::" , stringify ! ( mPropertyValues ) ));
+        }
+        /// A property-value pair specified on a keyframe.
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct PropertyValuePair {
+            pub mProperty: root::nsCSSPropertyID,
+            pub mValue: root::nsCSSValue,
+            pub mServoDeclarationBlock: root::RefPtr<root::RawServoDeclarationBlock>,
+        }
+        #[test]
+        fn bindgen_test_layout_PropertyValuePair() {
+            assert_eq!(::std::mem::size_of::<PropertyValuePair>() , 32usize ,
+                       concat ! (
+                       "Size of: " , stringify ! ( PropertyValuePair ) ));
+            assert_eq! (::std::mem::align_of::<PropertyValuePair>() , 8usize ,
+                        concat ! (
+                        "Alignment of " , stringify ! ( PropertyValuePair )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const PropertyValuePair ) ) . mProperty
+                        as * const _ as usize } , 0usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        PropertyValuePair ) , "::" , stringify ! ( mProperty )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const PropertyValuePair ) ) . mValue as
+                        * const _ as usize } , 8usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        PropertyValuePair ) , "::" , stringify ! ( mValue )
+                        ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const PropertyValuePair ) ) .
+                        mServoDeclarationBlock as * const _ as usize } ,
+                        24usize , concat ! (
+                        "Alignment of field: " , stringify ! (
+                        PropertyValuePair ) , "::" , stringify ! (
+                        mServoDeclarationBlock ) ));
+        }
+        #[repr(C)]
+        #[derive(Debug)]
+        pub struct PropertyStyleAnimationValuePair {
+            pub mProperty: root::nsCSSPropertyID,
+            pub mValue: root::mozilla::AnimationValue,
+        }
+        #[test]
+        fn bindgen_test_layout_PropertyStyleAnimationValuePair() {
+            assert_eq!(::std::mem::size_of::<PropertyStyleAnimationValuePair>()
+                       , 32usize , concat ! (
+                       "Size of: " , stringify ! (
+                       PropertyStyleAnimationValuePair ) ));
+            assert_eq! (::std::mem::align_of::<PropertyStyleAnimationValuePair>()
+                        , 8usize , concat ! (
+                        "Alignment of " , stringify ! (
+                        PropertyStyleAnimationValuePair ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const PropertyStyleAnimationValuePair )
+                        ) . mProperty as * const _ as usize } , 0usize ,
+                        concat ! (
+                        "Alignment of field: " , stringify ! (
+                        PropertyStyleAnimationValuePair ) , "::" , stringify !
+                        ( mProperty ) ));
+            assert_eq! (unsafe {
+                        & ( * ( 0 as * const PropertyStyleAnimationValuePair )
+                        ) . mValue as * const _ as usize } , 8usize , concat !
+                        (
+                        "Alignment of field: " , stringify ! (
+                        PropertyStyleAnimationValuePair ) , "::" , stringify !
+                        ( mValue ) ));
+        }
+        pub const OriginFlags_UserAgent: root::mozilla::OriginFlags =
+            OriginFlags(1);
+        pub const OriginFlags_User: root::mozilla::OriginFlags =
+            OriginFlags(2);
+        pub const OriginFlags_Author: root::mozilla::OriginFlags =
+            OriginFlags(4);
+        pub const OriginFlags_All: root::mozilla::OriginFlags =
+            OriginFlags(7);
+        impl ::std::ops::BitOr<root::mozilla::OriginFlags> for
+         root::mozilla::OriginFlags {
+            type
+            Output
+            =
+            Self;
+            #[inline]
+            fn bitor(self, other: Self) -> Self {
+                OriginFlags(self.0 | other.0)
+            }
+        }
+        impl ::std::ops::BitOrAssign for root::mozilla::OriginFlags {
+            #[inline]
+            fn bitor_assign(&mut self, rhs: root::mozilla::OriginFlags) {
+                self.0 |= rhs.0;
+            }
+        }
+        impl ::std::ops::BitAnd<root::mozilla::OriginFlags> for
+         root::mozilla::OriginFlags {
+            type
+            Output
+            =
+            Self;
+            #[inline]
+            fn bitand(self, other: Self) -> Self {
+                OriginFlags(self.0 & other.0)
+            }
+        }
+        impl ::std::ops::BitAndAssign for root::mozilla::OriginFlags {
+            #[inline]
+            fn bitand_assign(&mut self, rhs: root::mozilla::OriginFlags) {
+                self.0 &= rhs.0;
+            }
+        }
+        #[repr(C)]
+        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+        pub struct OriginFlags(pub u8);
+        pub type ComputedKeyframeValues =
+            root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>;
+        #[test]
+        fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation() {
+            assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() ,
+                       1usize , concat ! (
+                       "Size of template specialization: " , stringify ! (
+                       root::mozilla::DefaultDelete ) ));
+            assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>()
+                       , 1usize , concat ! (
+                       "Alignment of template specialization: " , stringify !
+                       ( root::mozilla::DefaultDelete ) ));
+        }
+        #[test]
+        fn __bindgen_test_layout_DefaultDelete_open0_RawServoSelectorList_close0_instantiation() {
+            assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() ,
+                       1usize , concat ! (
+                       "Size of template specialization: " , stringify ! (
+                       root::mozilla::DefaultDelete ) ));
+            assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>()
+                       , 1usize , concat ! (
+                       "Alignment of template specialization: " , stringify !
+                       ( root::mozilla::DefaultDelete ) ));
+        }
         #[repr(C)]
         #[derive(Debug)]
         pub struct ScrollbarStyles {
             pub mHorizontal: u8,
             pub mVertical: u8,
             pub mScrollBehavior: u8,
             pub mScrollSnapTypeX: u8,
             pub mScrollSnapTypeY: u8,
@@ -6545,79 +7372,16 @@ pub mod root {
                         & ( * ( 0 as * const StyleTransition ) ) .
                         mUnknownProperty as * const _ as usize } , 32usize ,
                         concat ! (
                         "Alignment of field: " , stringify ! ( StyleTransition
                         ) , "::" , stringify ! ( mUnknownProperty ) ));
         }
         #[repr(C)]
         #[derive(Debug)]
-        pub struct StyleAnimation {
-            pub mTimingFunction: root::nsTimingFunction,
-            pub mDuration: f32,
-            pub mDelay: f32,
-            pub mName: ::nsstring::nsStringRepr,
-            pub mDirection: root::mozilla::dom::PlaybackDirection,
-            pub mFillMode: root::mozilla::dom::FillMode,
-            pub mPlayState: u8,
-            pub mIterationCount: f32,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleAnimation() {
-            assert_eq!(::std::mem::size_of::<StyleAnimation>() , 56usize ,
-                       concat ! ( "Size of: " , stringify ! ( StyleAnimation )
-                       ));
-            assert_eq! (::std::mem::align_of::<StyleAnimation>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleAnimation ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) .
-                        mTimingFunction as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mTimingFunction ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDuration as
-                        * const _ as usize } , 20usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDuration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDelay as *
-                        const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDelay ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mName as *
-                        const _ as usize } , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mName ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDirection
-                        as * const _ as usize } , 48usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDirection ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mFillMode as
-                        * const _ as usize } , 49usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mFillMode ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mPlayState
-                        as * const _ as usize } , 50usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mPlayState ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) .
-                        mIterationCount as * const _ as usize } , 52usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mIterationCount ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
         pub struct StyleBasicShape {
             pub mType: root::mozilla::StyleBasicShapeType,
             pub mFillRule: root::mozilla::StyleFillRule,
             pub mCoordinates: root::nsTArray<root::nsStyleCoord>,
             pub mPosition: root::mozilla::Position,
             pub mRadius: root::nsStyleCorners,
         }
         #[test]
@@ -7206,764 +7970,16 @@ pub mod root {
         pub const SERVO_PREF_ENABLED__webkit_mask_composite: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_image: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_origin: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_position: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_position_x: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_position_y: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_repeat: bool = true;
         pub const SERVO_PREF_ENABLED__webkit_mask_size: bool = true;
-        /// This class holds all non-tree-structural state of an element that might be
-        /// used for selector matching eventually.
-        ///
-        /// This means the attributes, and the element state, such as :hover, :active,
-        /// etc...
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ServoElementSnapshot {
-            pub mAttrs: root::nsTArray<root::mozilla::ServoAttrSnapshot>,
-            pub mClass: root::nsAttrValue,
-            pub mState: root::mozilla::ServoElementSnapshot_ServoStateType,
-            pub mContains: root::mozilla::ServoElementSnapshot_Flags,
-            pub _bitfield_1: u8,
-            pub __bindgen_padding_0: [u16; 3usize],
-        }
-        pub type ServoElementSnapshot_BorrowedAttrInfo =
-            root::mozilla::dom::BorrowedAttrInfo;
-        pub type ServoElementSnapshot_Element = root::mozilla::dom::Element;
-        pub type ServoElementSnapshot_ServoStateType =
-            root::mozilla::EventStates_ServoType;
-        pub use self::super::super::root::mozilla::ServoElementSnapshotFlags
-                as ServoElementSnapshot_Flags;
-        #[test]
-        fn bindgen_test_layout_ServoElementSnapshot() {
-            assert_eq!(::std::mem::size_of::<ServoElementSnapshot>() , 32usize
-                       , concat ! (
-                       "Size of: " , stringify ! ( ServoElementSnapshot ) ));
-            assert_eq! (::std::mem::align_of::<ServoElementSnapshot>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! ( ServoElementSnapshot )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mAttrs
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mAttrs )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mClass
-                        as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mClass )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mState
-                        as * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mState )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) .
-                        mContains as * const _ as usize } , 24usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! (
-                        mContains ) ));
-        }
-        impl ServoElementSnapshot {
-            #[inline]
-            pub fn mIsHTMLElementInHTMLDocument(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 1u64 as u8;
-                let val = (unit_field_val & mask) >> 0usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsHTMLElementInHTMLDocument(&mut self, val: bool) {
-                let mask = 1u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 0usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mIsInChromeDocument(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 2u64 as u8;
-                let val = (unit_field_val & mask) >> 1usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsInChromeDocument(&mut self, val: bool) {
-                let mask = 2u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 1usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mSupportsLangAttr(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 4u64 as u8;
-                let val = (unit_field_val & mask) >> 2usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mSupportsLangAttr(&mut self, val: bool) {
-                let mask = 4u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-