parlay 80 win 200
Miami at Detroit over 202
Sabalenka +1.5 sets fed cup sun
parlay 20 win 104
Rams -12
Sabalenka for win
Belarus 42 win 100 fed cup
parlay 108 win 200
Wisconsin -14 college basket sun 6:00 pm est
Kontinen/Peers atp doubles sun 4:00 am est
parlay 84 win 200
Chargers at Jacksonville
Copil atp challenger sun 10:00 am est
Redskins +1.5 (105 win 100)
<script>(function () { var pb_blacklist = ["adrunnr","successforyu.clickfunnels.com ","fmovies.se","in-365-tagen.info","5000-settimanale.com","shop.mazzugioielli.com ","maxigossip.com","lp.yazizim.com","bey ourxfriend.com","99tab.com","zzqrt.com", "canuck-method.net","bewomenly.com","playnow.gur u","datingforyou-48e1.kxcdn.com","trafficnetworkads24.com ","sistemadedinerogratis.com","canuckmet hodprofit.co","consumerresearchnetwork.c om","securemacfix.com","zz3d3.ru","zd1.q uebec-bin.com","hot-games4you.xyz","om.elvenar.com","superpc cleanup.com","gomediaz.com","judithi.xyz ","free.atozmanuals.com","yoursuccess.ra vpage.co.il","123hop.ir","quizcliente.pw ","aussiemethod.biz","hlpnowp-c.com","picbumper.com","shaneless.com"," anacondamonster.com","altrk1.com","healt h.todaydiets.com","download.weatherblink .com","happyluketh.com","go.ameinfo.com" ,"50kaweek.net","thepornsurvey.com","ofs iite.ru","fulltab.com","1000spins.com"," time2play-online.net","vintacars.com","welcome.pus sysaga.com","free-desktop-games.com","download.televisionfanatic.c om","theprofitsmaker.net","sgad.info","a lgocashmaster.net","sunmaker.com","topvi pdreams.com","watchmygirlfriend.gfpornvi deos.com","filesharefanatic.com","safedo wnloadhub.com","7awlalalam.blogspot.com" ,"tvplusnewtab.com","trendingpatrol.com" ,"moneymorning.com","ifileyou.com","clas sifiedcanada.ca","firefan.com","methode-binaire.com","letmetell.com","kenduktur. com","getafuk.com","yotraleplahnte.ru"," jackpot.88beto.com","pwwysydh.com","sear ch.queryrouter.com","v.lvztxy.com","puss ysaga.com","saffamethod.com","prezzonlin e.com","searchprivacy.website","3d281921 6eb4e1035879-7c248de0c99745406e9b749fc86ec3e4.ssl.cf1 .rackcdn.com","only2date.com","mysagagam e.com","themillionaireinpjs.net","wlt.kd 2244.com","quickprivacycheck.com","hotch atdate.com","autotraderbot.com","z1.zedo .com","youlucky2014.com","traffic.getmya ds.com","appcloudprotected.com","safense cure.com-allsites3.xyz","newpoptab.com","static.w illiamhill.com","myhealthyblog.co","grea testmobideals.com","sweetclarity.com","m gid.com","securepccure.com","autopengeby gger.com","am15.net","es.reimageplus.com ","o2.promos-info.com","it.reimageplus.com","westslut s.com","spinandwin.com-ser.pw","reimageplus.com","vodafone.prom os-info.com","vinnmatpengar.se","movie.ienj oyapps.com","love4single.com","origin.ge tprice.com.au","ohmydating.com","lp.want-to-win.com","yabuletchrome.ru","bamdad.net" ,"gotositenow.com","vcrypt.pw","newtabtv .com","mon.setsu.xyz","youforgottorenewy ourhosting.com","zone-telechargement.ws","land.pckeeper.softwa re","ad.adpop-1.com","advancedpctools.com","videos.ran dolphcountyheraldtribune.com","web-start.org","softreadynow.installupgraden owfreshandforyou.website","uplod.ws","po rnhubcasino.com","maxbet.ro","2016prizef eed.com","thevideo.me","wantubad.com","t avanero.com","xcusmy.club","daclips.in", "gaymenofporn.online","jackpotcitycasino .com","italian-method.com","getsearchincognito.com","yo ujustwonprize.com","finanz-nachrichten.me","quizcliente.site","da.r eimageplus.com","jkanime.net","britmoney method.com","uae.souq.com","ka.azzer.net ","safensecure.xyz","8t.hootingrhejkz.on line","www6.blinkx.com","wizzcaster.com" ,"comparaison-prix.com","vodlocker.lol","fr.reimageplu s.com","free.fromdoctopdf.com","usersclo ud.com","myprivatesearch.com","fanli90.c n","tutticodicisconto.it","mediadec.com" ,"gogamego.thewhizproducts.com","downloa d.weatherblink.com","free.videodownloadc onverter.com","we-are-gamers.com","sesso.communityadult.net"," lp.blpmovies.com","search.queryrouter.co m","bbb-johannesburg.localspecific.com","lp.blpm ovies.com","go.ppixelm.com","r0.ru","ses so.communityadult.net","bbb-johannesburg.localspecific.com","ppixelm .com","cyberguardianspe.info","we-are-gamers.com","loginfaster.com/new","www.alfacart.com","www.foresee.com ","mobile-win.com","www.plusnetwork.com","www.amic afarmacia.com","www.ienjoyapps.com","che apcheap.io","screenaddict.thewhizproduct s.com","nova.rambler.ru","free.gamingwon derland.com","p9328ujeiw1.ru","mobilecas inoclub.co.uk","pfhsystem.com","regtuneu p.com","theprofitsmaker.net","bodogpromo tions.eu","heroesreplay.org","financials ecrets.info","mymoneymakingapp.com","sun maker.com","888casino-promotions.com","vogliosesso.com","scien ceremix.com","allinonedocs.com","arabia. starzplay.com","allirishcasino.com","adv ancepctools.info","movie.ienjoyapps.com" ,"surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem .com","lpeva.com","ddsh8.com","theprofit smaker.net","b2.ijquery11.com","sporther o.thewhizmarketing.com","securefastmac.t ech","seen-on-screen.thewhizmarketing.com","1000spins. com","search.queryrouter.com","pfhsystem .com","reimageplus.com","offer.alibaba.c om","searchlistings.org","search.queryro uter.com","search.queryrouter.com","mybi naryoptionsrobot.com","duplicashapp.com" ,"search.queryrouter.com","bestgame.dire ctory","droidclub.net",".rivalo.com","yo ursuperprize.com","mediaexplained.com"," om.elvenar.com","shinar.club","revitolec zemacream.com","freelotto.com","screenad dict.thewhizproducts.com","download.brin gmesports.com/","allinonedocs.com","driver-fixer.com","arabydeal.com","cleanyourcom putertoday.com","arabydeal.com","music.m ixplugin.com","1se.info","survey12.com", "freesoftwaredlul.com","pldist01.com","a d.adpop-1.com","searchanonymous.net","abrst.pro" ,"muzikfury.thewhizmarketing.com","lp.mb trx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gfpornbox.co m","new.freelotto.com","desktoptrack.com ","search.queryrouter.com","offer.alibab a.com","1000spins.com","promotions.coral .co.uk","search.queryrouter.com","tbsia. com","tbsia.com","multtaepyo.com","searc h.queryrouter.com","czechmethod.com","co nsumerview.co","wayretail.com","72onbase .com","funsafetab.com","search.queryrout er.com","speedyfiledownload.com","driver-fixer.com","arabydeal.com","cleanyourcom putertoday.com","arabydeal.com","music.m ixplugin.com","1se.info","survey12.com", "freesoftwaredlul.com","pldist01.com","a d.adpop-1.com","searchanonymous.net","abrst.pro" ,"muzikfury.thewhizmarketing.com","lp.mb trx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gfpornbox.co m","new.freelotto.com","desktoptrack.com ","search.queryrouter.com","offer.alibab a.com","1000spins.com","promotions.coral .co.uk","search.queryrouter.com","tbsia. com","tbsia.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem .com","lpeva.com","ddsh8.com","theprofit smaker.net","quantomcoding.com","sporthe ro.thewhizmarketing.com","popads.net","o nclkds.com","consumerview.co","12kotov.r u","ruhotpair2.fingta.com","easytelevisi onaccessnow.com","ahwrd.com","lpeva.com" ,"ppgzf.com","zjstx.com","kituure.xyz"," join.pro-gaming-world.com","mackeeperapp.mackeeper.com", "tracknotify.com","2075.cdn.beyondhostin g.net","idollash.com","ds.moviegoat.com" ,"fulltab.com","rackcdn.com","prestoris. com","adsterra.com","swampssovuuhusp.top ","streesusa.info","freesoftwaredlul.com ","adreactor.com","a-static.com","codeonclick.com","heheme.co m","adf.ly","seen-on-screen.thewhizmarketing.com","openload.c o"]; var pb_whitelist = ["cdn.livetvcdn.net","livestream.sx","lin kedin.com","google","www.gmail.com","www .pinterest.com","www.youtube.com","www.f acebook.com","search.yahoo.com","chrome://newtab","www.food.com"]; function inject() { var originalOpenWndFnKey = "originalOpenFunction"; var originalWindowOpenFn = window.open; var originalCreateElementFn = document.createElement; var originalAppendChildFn = HTMLElement.prototype.appendChild; var originalCreateEventFn = document.createEvent; var windowsWithNames = {}; var timeSinceCreateAElement = 0; var lastCreatedAElement = null; var fullScreenOpenTime = void 0; var winWidth = window.innerWidth; var winHeight = window.innerHeight; var abd = false; var lastBlockTime = void 0; var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location; var parentRef = window.parent; //window[originalOpenWndFnKey] = window.open; // save the original open window as global param function getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; } if (/^(https? ?\/\//.test(baseURL)) {	      return baseURL;	    }	    baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : '') + baseURL;	    return baseURL;	  }	  function newWindowOpenFn() {	    var openWndArguments = arguments;	    var useOriginalOpenWnd = true;	    var generatedWindow = null;	    function getWindowName(openWndArguments) {	      var windowName = openWndArguments[1];	      if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) {	        return windowName;	      }	      return null;	    }	    function copyMissingProperties(src, dest) {	      var prop = void 0;	      for (prop in src) {	        try {	          if (dest[prop] === undefined && src[prop]) {	            dest[prop] = src[prop];	          }	        } catch (e) {}	      }	      return dest;	    }	    function isOverlayish(el) {	      var style = el && el.style;	      if (style && /fixed|absolute/.test(style.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) {	        return true;	      }	      return false;	    }	    var capturingElement = null; // the element who registered to the event	    var srcElement = null; // the clicked on element	    var closestParentLink = null;	    if (window.event != null) {	      capturingElement = window.event.currentTarget;	      srcElement = window.event.srcElement;	    }	    if (srcElement != null) {	      closestParentLink = srcElement.closest('a');	      if (closestParentLink && closestParentLink.href) {	        openWndArguments[3] = closestParentLink.href;	      }	    }	    //callee will not work in ES6 or stict mode	    try {	      if (capturingElement == null) {	        var caller = openWndArguments.callee;	        while (caller.arguments != null && caller.arguments.callee.caller != null) {	          caller = caller.arguments.callee.caller;	        }	        if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].currentTarget != null) {	          capturingElement = caller.arguments[0].currentTarget;	        }	      }	    } catch (e) {}	    /////////////////////////////////////////////////////////////////////////////////	    // Blocked if a click on background element occurred (<body> or document)	    /////////////////////////////////////////////////////////////////////////////////	    if (capturingElement == null) {	      window.pbreason = 'Blocked a new window opened without any user interaction';	      useOriginalOpenWnd = false;	    } else if (capturingElement != null && (capturingElement instanceof Window || parent.Window && capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null && capturingElement.body != null || capturingElement.nodeName != null && (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because it was triggered by the ' + capturingElement.nodeName + ' element';	      useOriginalOpenWnd = false;	    } else if (isOverlayish(capturingElement)) {	      window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';	      useOriginalOpenWnd = false;	    } else {	      useOriginalOpenWnd = true;	    }	    /////////////////////////////////////////////////////////////////////////////////	    /////////////////////////////////////////////////////////////////////////////////	    // Block if a full screen was just initiated while opening this url.	    /////////////////////////////////////////////////////////////////////////////////	    var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;	    if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this url.';	      /* JRA REMOVED	       if (window[script_params.fullScreenFnKey]) {	       window.clearTimeout(window[script_params.fullScreenFnKey]);	       }	       */	      if (document.exitFullscreen) {	        document.exitFullscreen();	      } else if (document.mozCancelFullScreen) {	        document.mozCancelFullScreen();	      } else if (document.webkitCancelFullScreen) {	        document.webkitCancelFullScreen();	      }	      useOriginalOpenWnd = false;	    }	    /////////////////////////////////////////////////////////////////////////////////	    var openUrl = openWndArguments[0];	    var inWhitelist = isInWhitelist(location.href);	    if (inWhitelist) {	      useOriginalOpenWnd = true;	    } else if (isInBlacklist(openUrl)) {	      useOriginalOpenWnd = false;	    }	    if (useOriginalOpenWnd == true) {	      generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);	      // save the window by name, for latter use.	      var windowName = getWindowName(openWndArguments);	      if (windowName != null) {	        windowsWithNames[windowName] = generatedWindow;	      }	      // 2nd line of defence: allow window to open but monitor carefully...	      /////////////////////////////////////////////////////////////////////////////////	      // Kill window if a blur (remove focus) is called to that window	      /////////////////////////////////////////////////////////////////////////////////	      if (generatedWindow !== window) {	        (function () {	          var openTime = new Date().getTime();	          var originalWndBlurFn = generatedWindow.blur;	          generatedWindow.blur = function () {	            if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) {	                window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a it was blured';	                generatedWindow.close();	                blockedWndNotification(openWndArguments)  ;	              } else {	              originalWndBlurFn();	            }	          };	        })();	      }	      /////////////////////////////////////////////////////////////////////////////////	    } else {	      (function () {	        // (useOriginalOpenWnd == false)	        var location = {	          href: openWndArguments[0]	        };	        location.replace = function (url) {	          location.href = url;	        };	        generatedWindow = {	          close: function close() {	            return true;	          },	          test: function test() {	            return true;	          },	          blur: function blur() {	            return true;	          },	          focus: function focus() {	            return true;	          },	          showModelessDialog: function showModelessDialog() {	            return true;	          },	          showModalDialog: function showModalDialog() {	            return true;	          },	          prompt: function prompt() {	            return true;	          },	          confirm: function confirm() {	            return true;	          },	          alert: function alert() {	            return true;	          },	          moveTo: function moveTo() {	            return true;	          },	          moveBy: function moveBy() {	            return true;	          },	          resizeTo: function resizeTo() {	            return true;	          },	          resizeBy: function resizeBy() {	            return true;	          },	          scrollBy: function scrollBy() {	            return true;	          },	          scrollTo: function scrollTo() {	            return true;	          },	          getSelection: function getSelection() {	            return true;	          },	          onunload: function onunload() {	            return true;	          },	          print: function print() {	            return true;	          },	          open: function open() {	            return this;	          },	          opener: window,	          closed: false,	          innerHeight: 480,	          innerWidth: 640,	          name: openWndArguments[1],	          location: location,	          document: { location: location }	        };	        copyMissingProperties(window, generatedWindow);	        generatedWindow.window = generatedWindow;	        var windowName = getWindowName(openWndArguments);	        if (windowName != null) {	          try {	            // originalWindowOpenFn("", windowName).close();	            windowsWithNames[windowName].close();	          } catch (err) {}	        }	        var fnGetUrl = function fnGetUrl() {	          var url = void 0;	          if (!(generatedWindow.location instanceof Object)) {	            url = generatedWindow.location;	          } else if (!(generatedWindow.document.location instanceof Object)) {	            url = generatedWindow.document.location;	          } else if (location.href != null) {	            url = location.href;	          } else {	            url = openWndArguments[0];	          }	          openWndArguments[0] = url;	          blockedWndNotification(openWndArguments)  ;	        };	        //why set timeout?  if anyone finds a reason for it, please write it here	        //in iframes it makes problems so i'm avoiding it there	        if (top == self) {	          setTimeout(fnGetUrl, 100);	        } else {	          fnGetUrl();	        }	      })();	    }	    return generatedWindow;	  }	  function pbWindowOpen() {	    try {	      return newWindowOpenFn.apply(this, arguments);	    } catch (err) {	      return null;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  // Replace the window open method with Poper Blocker's	  /////////////////////////////////////////////////////////////////////////////////	  window.open = pbWindowOpen;	  /////////////////////////////////////////////////////////////////////////////////	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  // Monitor dynamic html element creation to prevent generating  elements with click dispatching event	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  HTMLElement.prototype.appendChild = function () {	    var newElement = originalAppendChildFn.apply(this, arguments);	    if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) {	      try {	        var code = '(function () {\n          var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n          var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n          ' + inject.toString() + ';\n          inject();\n        })();';	        var s = document.createElement('script');s.text = code;	        newElement.contentWindow.document.body.a  ppendChild(s);	      } catch (e) {}	    }	    return newElement;	  };	  document.createElement = function () {	    var newElement = originalCreateElementFn.apply(document, arguments);	    if (arguments[0] == "a" || arguments[0] == "A") {	      (function () {	        timeSinceCreateAElement = new Date().getTime();	        var originalDispatchEventFn = newElement.dispatchEvent;	        newElement.dispatchEvent = function (event) {	          if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") {	            if (!isInWhitelist(newElement.href)) {	              window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";	              blockedWndNotification({ "0": newElement.href });	              return true;	            }	          }	          return originalDispatchEventFn.call(this, event);	        };	        lastCreatedAElement = newElement;	      })();	    }	    return newElement;	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Block artificial mouse click on frashly created  elements	  /////////////////////////////////////////////////////////////////////////////////	  document.createEvent = function () {	    try {	      if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) {	        //block if the origin is not same	        var isSelfDomain = false;	        try {	          var openUrlDomain = new URL(lastCreatedAElement.href).hostname;	          var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;	          var topDomain = new URL(topUrl).hostname;	          isSelfDomain = openUrlDomain == topDomain;	        } catch (e) {}	        if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) {	          //this makes too much false positive so we do not display the toast message	          window.pbreason = 'Blocked because \'a\' element was recently created and ' + arguments[0] + ' event was created shortly after';	          arguments[0] = lastCreatedAElement.href;	          blockedWndNotification({ "0": lastCreatedAElement.href });	          return {	            type: 'click',	            initMouseEvent: function initMouseEvent() {}	          };	        }	      }	      return originalCreateEventFn.apply(document, arguments);	    } catch (err) {}	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Monitor full screen requests	  /////////////////////////////////////////////////////////////////////////////////	  function onFullScreen(isInFullScreenMode) {	    if (isInFullScreenMode) {	      fullScreenOpenTime = new Date().getTime();	    } else {	      fullScreenOpenTime = NaN;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  function isDocumentInFullScreenMode() {	    // Note that the browser fullscreen (triggered by short keys) might	    // be considered different from content fullscreen when expecting a boolean	    return document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods	    document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods	  }	  function isInWhitelist(url) {	    return isInList(url, pb_whitelist);	  }	  function isInBlacklist(url) {	    return isInList(url, pb_blacklist);	  }	  function isInList(url, list) {	    if (list) {	      return list.some(function (li) {	        return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);	      });	    } else {	      return false;	    }	  }	  function blockedWndNotification(openWndArguments) {	    //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension	    if (!lastBlockTime || lastBlockTime < Date.now() - 1000) {	      openWndArguments["0"] = getAbsoluteURL(openWndArguments["0"]);	      openWndArguments["abd"] = abd;	      parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);	    }	    lastBlockTime = Date.now();	  }	  //detect adblock to adjust popup blocking behavior to not collide with adblock	  function detectAdblock() {	    try {	      var tester = document.createElement('div');	      tester.innerHTML = ' ';	      tester.className = 'adsbox';	      tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";	      document.body.appendChild(tester);	      window.setTimeout(function () {	        if (tester.offsetHeight === 0) {	          abd = true;	        }	        tester.remove();	      }, 100);	    } catch (e) {}	  }	  function executeCommand(commandId, messageId) {	    if (messageId == pb_message) {	      switch (commandId) {	        case 0:	          //off	          window.open = originalWindowOpenFn;	          document.createElement = originalCreateElementFn;	          document.createEvent = originalCreateEventFn;	          HTMLElement.prototype.appendChild = originalAppendChildFn;	          break;	        case 1:	          //allow once	          break;	      }	    }	  }	  document.addEventListener("fullscreencha  nge", function () {	    onFullScreen(document.fullscreen);	  }, false);	  document.addEventListener("mozfullscreen  change", function () {	    onFullScreen(document.mozFullScreen);	  }, false);	  document.addEventListener("webkitfullscr  eenchange", function () {	    onFullScreen(document.webkitIsFullScreen  );	  }, false);	  document.addEventListener('DOMContentLoa  ded', function () {	    detectAdblock();	  }, false);	  (function () {	    window.pbExternalCommand = function (commandId, messageId) {	      executeCommand(commandId, messageId);	    };	  })();	};          inject();        })();</script>
?\/\//.test(baseURL)) {	      return baseURL;	    }	    baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : '') + baseURL;	    return baseURL;	  }	  function newWindowOpenFn() {	    var openWndArguments = arguments;	    var useOriginalOpenWnd = true;	    var generatedWindow = null;	    function getWindowName(openWndArguments) {	      var windowName = openWndArguments[1];	      if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) {	        return windowName;	      }	      return null;	    }	    function copyMissingProperties(src, dest) {	      var prop = void 0;	      for (prop in src) {	        try {	          if (dest[prop] === undefined && src[prop]) {	            dest[prop] = src[prop];	          }	        } catch (e) {}	      }	      return dest;	    }	    function isOverlayish(el) {	      var style = el && el.style;	      if (style && /fixed|absolute/.test(style.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) {	        return true;	      }	      return false;	    }	    var capturingElement = null; // the element who registered to the event	    var srcElement = null; // the clicked on element	    var closestParentLink = null;	    if (window.event != null) {	      capturingElement = window.event.currentTarget;	      srcElement = window.event.srcElement;	    }	    if (srcElement != null) {	      closestParentLink = srcElement.closest('a');	      if (closestParentLink && closestParentLink.href) {	        openWndArguments[3] = closestParentLink.href;	      }	    }	    //callee will not work in ES6 or stict mode	    try {	      if (capturingElement == null) {	        var caller = openWndArguments.callee;	        while (caller.arguments != null && caller.arguments.callee.caller != null) {	          caller = caller.arguments.callee.caller;	        }	        if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].currentTarget != null) {	          capturingElement = caller.arguments[0].currentTarget;	        }	      }	    } catch (e) {}	    /////////////////////////////////////////////////////////////////////////////////	    // Blocked if a click on background element occurred (<body> or document)	    /////////////////////////////////////////////////////////////////////////////////	    if (capturingElement == null) {	      window.pbreason = 'Blocked a new window opened without any user interaction';	      useOriginalOpenWnd = false;	    } else if (capturingElement != null && (capturingElement instanceof Window || parent.Window && capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null && capturingElement.body != null || capturingElement.nodeName != null && (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because it was triggered by the ' + capturingElement.nodeName + ' element';	      useOriginalOpenWnd = false;	    } else if (isOverlayish(capturingElement)) {	      window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';	      useOriginalOpenWnd = false;	    } else {	      useOriginalOpenWnd = true;	    }	    /////////////////////////////////////////////////////////////////////////////////	    /////////////////////////////////////////////////////////////////////////////////	    // Block if a full screen was just initiated while opening this url.	    /////////////////////////////////////////////////////////////////////////////////	    var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;	    if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this url.';	      /* JRA REMOVED	       if (window[script_params.fullScreenFnKey]) {	       window.clearTimeout(window[script_params.fullScreenFnKey]);	       }	       */	      if (document.exitFullscreen) {	        document.exitFullscreen();	      } else if (document.mozCancelFullScreen) {	        document.mozCancelFullScreen();	      } else if (document.webkitCancelFullScreen) {	        document.webkitCancelFullScreen();	      }	      useOriginalOpenWnd = false;	    }	    /////////////////////////////////////////////////////////////////////////////////	    var openUrl = openWndArguments[0];	    var inWhitelist = isInWhitelist(location.href);	    if (inWhitelist) {	      useOriginalOpenWnd = true;	    } else if (isInBlacklist(openUrl)) {	      useOriginalOpenWnd = false;	    }	    if (useOriginalOpenWnd == true) {	      generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);	      // save the window by name, for latter use.	      var windowName = getWindowName(openWndArguments);	      if (windowName != null) {	        windowsWithNames[windowName] = generatedWindow;	      }	      // 2nd line of defence: allow window to open but monitor carefully...	      /////////////////////////////////////////////////////////////////////////////////	      // Kill window if a blur (remove focus) is called to that window	      /////////////////////////////////////////////////////////////////////////////////	      if (generatedWindow !== window) {	        (function () {	          var openTime = new Date().getTime();	          var originalWndBlurFn = generatedWindow.blur;	          generatedWindow.blur = function () {	            if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) {	                window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a it was blured';	                generatedWindow.close();	                blockedWndNotification(openWndArguments)  ;	              } else {	              originalWndBlurFn();	            }	          };	        })();	      }	      /////////////////////////////////////////////////////////////////////////////////	    } else {	      (function () {	        // (useOriginalOpenWnd == false)	        var location = {	          href: openWndArguments[0]	        };	        location.replace = function (url) {	          location.href = url;	        };	        generatedWindow = {	          close: function close() {	            return true;	          },	          test: function test() {	            return true;	          },	          blur: function blur() {	            return true;	          },	          focus: function focus() {	            return true;	          },	          showModelessDialog: function showModelessDialog() {	            return true;	          },	          showModalDialog: function showModalDialog() {	            return true;	          },	          prompt: function prompt() {	            return true;	          },	          confirm: function confirm() {	            return true;	          },	          alert: function alert() {	            return true;	          },	          moveTo: function moveTo() {	            return true;	          },	          moveBy: function moveBy() {	            return true;	          },	          resizeTo: function resizeTo() {	            return true;	          },	          resizeBy: function resizeBy() {	            return true;	          },	          scrollBy: function scrollBy() {	            return true;	          },	          scrollTo: function scrollTo() {	            return true;	          },	          getSelection: function getSelection() {	            return true;	          },	          onunload: function onunload() {	            return true;	          },	          print: function print() {	            return true;	          },	          open: function open() {	            return this;	          },	          opener: window,	          closed: false,	          innerHeight: 480,	          innerWidth: 640,	          name: openWndArguments[1],	          location: location,	          document: { location: location }	        };	        copyMissingProperties(window, generatedWindow);	        generatedWindow.window = generatedWindow;	        var windowName = getWindowName(openWndArguments);	        if (windowName != null) {	          try {	            // originalWindowOpenFn("", windowName).close();	            windowsWithNames[windowName].close();	          } catch (err) {}	        }	        var fnGetUrl = function fnGetUrl() {	          var url = void 0;	          if (!(generatedWindow.location instanceof Object)) {	            url = generatedWindow.location;	          } else if (!(generatedWindow.document.location instanceof Object)) {	            url = generatedWindow.document.location;	          } else if (location.href != null) {	            url = location.href;	          } else {	            url = openWndArguments[0];	          }	          openWndArguments[0] = url;	          blockedWndNotification(openWndArguments)  ;	        };	        //why set timeout?  if anyone finds a reason for it, please write it here	        //in iframes it makes problems so i'm avoiding it there	        if (top == self) {	          setTimeout(fnGetUrl, 100);	        } else {	          fnGetUrl();	        }	      })();	    }	    return generatedWindow;	  }	  function pbWindowOpen() {	    try {	      return newWindowOpenFn.apply(this, arguments);	    } catch (err) {	      return null;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  // Replace the window open method with Poper Blocker's	  /////////////////////////////////////////////////////////////////////////////////	  window.open = pbWindowOpen;	  /////////////////////////////////////////////////////////////////////////////////	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  // Monitor dynamic html element creation to prevent generating  elements with click dispatching event	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  HTMLElement.prototype.appendChild = function () {	    var newElement = originalAppendChildFn.apply(this, arguments);	    if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) {	      try {	        var code = '(function () {\n          var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n          var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n          ' + inject.toString() + ';\n          inject();\n        })();';	        var s = document.createElement('script');s.text = code;	        newElement.contentWindow.document.body.a  ppendChild(s);	      } catch (e) {}	    }	    return newElement;	  };	  document.createElement = function () {	    var newElement = originalCreateElementFn.apply(document, arguments);	    if (arguments[0] == "a" || arguments[0] == "A") {	      (function () {	        timeSinceCreateAElement = new Date().getTime();	        var originalDispatchEventFn = newElement.dispatchEvent;	        newElement.dispatchEvent = function (event) {	          if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") {	            if (!isInWhitelist(newElement.href)) {	              window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";	              blockedWndNotification({ "0": newElement.href });	              return true;	            }	          }	          return originalDispatchEventFn.call(this, event);	        };	        lastCreatedAElement = newElement;	      })();	    }	    return newElement;	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Block artificial mouse click on frashly created  elements	  /////////////////////////////////////////////////////////////////////////////////	  document.createEvent = function () {	    try {	      if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) {	        //block if the origin is not same	        var isSelfDomain = false;	        try {	          var openUrlDomain = new URL(lastCreatedAElement.href).hostname;	          var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;	          var topDomain = new URL(topUrl).hostname;	          isSelfDomain = openUrlDomain == topDomain;	        } catch (e) {}	        if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) {	          //this makes too much false positive so we do not display the toast message	          window.pbreason = 'Blocked because \'a\' element was recently created and ' + arguments[0] + ' event was created shortly after';	          arguments[0] = lastCreatedAElement.href;	          blockedWndNotification({ "0": lastCreatedAElement.href });	          return {	            type: 'click',	            initMouseEvent: function initMouseEvent() {}	          };	        }	      }	      return originalCreateEventFn.apply(document, arguments);	    } catch (err) {}	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Monitor full screen requests	  /////////////////////////////////////////////////////////////////////////////////	  function onFullScreen(isInFullScreenMode) {	    if (isInFullScreenMode) {	      fullScreenOpenTime = new Date().getTime();	    } else {	      fullScreenOpenTime = NaN;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  function isDocumentInFullScreenMode() {	    // Note that the browser fullscreen (triggered by short keys) might	    // be considered different from content fullscreen when expecting a boolean	    return document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods	    document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods	  }	  function isInWhitelist(url) {	    return isInList(url, pb_whitelist);	  }	  function isInBlacklist(url) {	    return isInList(url, pb_blacklist);	  }	  function isInList(url, list) {	    if (list) {	      return list.some(function (li) {	        return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);	      });	    } else {	      return false;	    }	  }	  function blockedWndNotification(openWndArguments) {	    //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension	    if (!lastBlockTime || lastBlockTime < Date.now() - 1000) {	      openWndArguments["0"] = getAbsoluteURL(openWndArguments["0"]);	      openWndArguments["abd"] = abd;	      parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);	    }	    lastBlockTime = Date.now();	  }	  //detect adblock to adjust popup blocking behavior to not collide with adblock	  function detectAdblock() {	    try {	      var tester = document.createElement('div');	      tester.innerHTML = ' ';	      tester.className = 'adsbox';	      tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";	      document.body.appendChild(tester);	      window.setTimeout(function () {	        if (tester.offsetHeight === 0) {	          abd = true;	        }	        tester.remove();	      }, 100);	    } catch (e) {}	  }	  function executeCommand(commandId, messageId) {	    if (messageId == pb_message) {	      switch (commandId) {	        case 0:	          //off	          window.open = originalWindowOpenFn;	          document.createElement = originalCreateElementFn;	          document.createEvent = originalCreateEventFn;	          HTMLElement.prototype.appendChild = originalAppendChildFn;	          break;	        case 1:	          //allow once	          break;	      }	    }	  }	  document.addEventListener("fullscreencha  nge", function () {	    onFullScreen(document.fullscreen);	  }, false);	  document.addEventListener("mozfullscreen  change", function () {	    onFullScreen(document.mozFullScreen);	  }, false);	  document.addEventListener("webkitfullscr  eenchange", function () {	    onFullScreen(document.webkitIsFullScreen  );	  }, false);	  document.addEventListener('DOMContentLoa  ded', function () {	    detectAdblock();	  }, false);	  (function () {	    window.pbExternalCommand = function (commandId, messageId) {	      executeCommand(commandId, messageId);	    };	  })();	};          inject();        })();</script>
							
						
					Miami at Detroit over 202
Sabalenka +1.5 sets fed cup sun
parlay 20 win 104
Rams -12
Sabalenka for win
Belarus 42 win 100 fed cup
parlay 108 win 200
Wisconsin -14 college basket sun 6:00 pm est
Kontinen/Peers atp doubles sun 4:00 am est
parlay 84 win 200
Chargers at Jacksonville
Copil atp challenger sun 10:00 am est
Redskins +1.5 (105 win 100)
<script>(function () { var pb_blacklist = ["adrunnr","successforyu.clickfunnels.com ","fmovies.se","in-365-tagen.info","5000-settimanale.com","shop.mazzugioielli.com ","maxigossip.com","lp.yazizim.com","bey ourxfriend.com","99tab.com","zzqrt.com", "canuck-method.net","bewomenly.com","playnow.gur u","datingforyou-48e1.kxcdn.com","trafficnetworkads24.com ","sistemadedinerogratis.com","canuckmet hodprofit.co","consumerresearchnetwork.c om","securemacfix.com","zz3d3.ru","zd1.q uebec-bin.com","hot-games4you.xyz","om.elvenar.com","superpc cleanup.com","gomediaz.com","judithi.xyz ","free.atozmanuals.com","yoursuccess.ra vpage.co.il","123hop.ir","quizcliente.pw ","aussiemethod.biz","hlpnowp-c.com","picbumper.com","shaneless.com"," anacondamonster.com","altrk1.com","healt h.todaydiets.com","download.weatherblink .com","happyluketh.com","go.ameinfo.com" ,"50kaweek.net","thepornsurvey.com","ofs iite.ru","fulltab.com","1000spins.com"," time2play-online.net","vintacars.com","welcome.pus sysaga.com","free-desktop-games.com","download.televisionfanatic.c om","theprofitsmaker.net","sgad.info","a lgocashmaster.net","sunmaker.com","topvi pdreams.com","watchmygirlfriend.gfpornvi deos.com","filesharefanatic.com","safedo wnloadhub.com","7awlalalam.blogspot.com" ,"tvplusnewtab.com","trendingpatrol.com" ,"moneymorning.com","ifileyou.com","clas sifiedcanada.ca","firefan.com","methode-binaire.com","letmetell.com","kenduktur. com","getafuk.com","yotraleplahnte.ru"," jackpot.88beto.com","pwwysydh.com","sear ch.queryrouter.com","v.lvztxy.com","puss ysaga.com","saffamethod.com","prezzonlin e.com","searchprivacy.website","3d281921 6eb4e1035879-7c248de0c99745406e9b749fc86ec3e4.ssl.cf1 .rackcdn.com","only2date.com","mysagagam e.com","themillionaireinpjs.net","wlt.kd 2244.com","quickprivacycheck.com","hotch atdate.com","autotraderbot.com","z1.zedo .com","youlucky2014.com","traffic.getmya ds.com","appcloudprotected.com","safense cure.com-allsites3.xyz","newpoptab.com","static.w illiamhill.com","myhealthyblog.co","grea testmobideals.com","sweetclarity.com","m gid.com","securepccure.com","autopengeby gger.com","am15.net","es.reimageplus.com ","o2.promos-info.com","it.reimageplus.com","westslut s.com","spinandwin.com-ser.pw","reimageplus.com","vodafone.prom os-info.com","vinnmatpengar.se","movie.ienj oyapps.com","love4single.com","origin.ge tprice.com.au","ohmydating.com","lp.want-to-win.com","yabuletchrome.ru","bamdad.net" ,"gotositenow.com","vcrypt.pw","newtabtv .com","mon.setsu.xyz","youforgottorenewy ourhosting.com","zone-telechargement.ws","land.pckeeper.softwa re","ad.adpop-1.com","advancedpctools.com","videos.ran dolphcountyheraldtribune.com","web-start.org","softreadynow.installupgraden owfreshandforyou.website","uplod.ws","po rnhubcasino.com","maxbet.ro","2016prizef eed.com","thevideo.me","wantubad.com","t avanero.com","xcusmy.club","daclips.in", "gaymenofporn.online","jackpotcitycasino .com","italian-method.com","getsearchincognito.com","yo ujustwonprize.com","finanz-nachrichten.me","quizcliente.site","da.r eimageplus.com","jkanime.net","britmoney method.com","uae.souq.com","ka.azzer.net ","safensecure.xyz","8t.hootingrhejkz.on line","www6.blinkx.com","wizzcaster.com" ,"comparaison-prix.com","vodlocker.lol","fr.reimageplu s.com","free.fromdoctopdf.com","usersclo ud.com","myprivatesearch.com","fanli90.c n","tutticodicisconto.it","mediadec.com" ,"gogamego.thewhizproducts.com","downloa d.weatherblink.com","free.videodownloadc onverter.com","we-are-gamers.com","sesso.communityadult.net"," lp.blpmovies.com","search.queryrouter.co m","bbb-johannesburg.localspecific.com","lp.blpm ovies.com","go.ppixelm.com","r0.ru","ses so.communityadult.net","bbb-johannesburg.localspecific.com","ppixelm .com","cyberguardianspe.info","we-are-gamers.com","loginfaster.com/new","www.alfacart.com","www.foresee.com ","mobile-win.com","www.plusnetwork.com","www.amic afarmacia.com","www.ienjoyapps.com","che apcheap.io","screenaddict.thewhizproduct s.com","nova.rambler.ru","free.gamingwon derland.com","p9328ujeiw1.ru","mobilecas inoclub.co.uk","pfhsystem.com","regtuneu p.com","theprofitsmaker.net","bodogpromo tions.eu","heroesreplay.org","financials ecrets.info","mymoneymakingapp.com","sun maker.com","888casino-promotions.com","vogliosesso.com","scien ceremix.com","allinonedocs.com","arabia. starzplay.com","allirishcasino.com","adv ancepctools.info","movie.ienjoyapps.com" ,"surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem .com","lpeva.com","ddsh8.com","theprofit smaker.net","b2.ijquery11.com","sporther o.thewhizmarketing.com","securefastmac.t ech","seen-on-screen.thewhizmarketing.com","1000spins. com","search.queryrouter.com","pfhsystem .com","reimageplus.com","offer.alibaba.c om","searchlistings.org","search.queryro uter.com","search.queryrouter.com","mybi naryoptionsrobot.com","duplicashapp.com" ,"search.queryrouter.com","bestgame.dire ctory","droidclub.net",".rivalo.com","yo ursuperprize.com","mediaexplained.com"," om.elvenar.com","shinar.club","revitolec zemacream.com","freelotto.com","screenad dict.thewhizproducts.com","download.brin gmesports.com/","allinonedocs.com","driver-fixer.com","arabydeal.com","cleanyourcom putertoday.com","arabydeal.com","music.m ixplugin.com","1se.info","survey12.com", "freesoftwaredlul.com","pldist01.com","a d.adpop-1.com","searchanonymous.net","abrst.pro" ,"muzikfury.thewhizmarketing.com","lp.mb trx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gfpornbox.co m","new.freelotto.com","desktoptrack.com ","search.queryrouter.com","offer.alibab a.com","1000spins.com","promotions.coral .co.uk","search.queryrouter.com","tbsia. com","tbsia.com","multtaepyo.com","searc h.queryrouter.com","czechmethod.com","co nsumerview.co","wayretail.com","72onbase .com","funsafetab.com","search.queryrout er.com","speedyfiledownload.com","driver-fixer.com","arabydeal.com","cleanyourcom putertoday.com","arabydeal.com","music.m ixplugin.com","1se.info","survey12.com", "freesoftwaredlul.com","pldist01.com","a d.adpop-1.com","searchanonymous.net","abrst.pro" ,"muzikfury.thewhizmarketing.com","lp.mb trx.com","th1.forfun.maxisize-pro.com","watchmygirlfriend.gfpornbox.co m","new.freelotto.com","desktoptrack.com ","search.queryrouter.com","offer.alibab a.com","1000spins.com","promotions.coral .co.uk","search.queryrouter.com","tbsia. com","tbsia.com","surveyform001.s3-website-us-east-1.amazonaws.com","mgs188.com","pfhsystem .com","lpeva.com","ddsh8.com","theprofit smaker.net","quantomcoding.com","sporthe ro.thewhizmarketing.com","popads.net","o nclkds.com","consumerview.co","12kotov.r u","ruhotpair2.fingta.com","easytelevisi onaccessnow.com","ahwrd.com","lpeva.com" ,"ppgzf.com","zjstx.com","kituure.xyz"," join.pro-gaming-world.com","mackeeperapp.mackeeper.com", "tracknotify.com","2075.cdn.beyondhostin g.net","idollash.com","ds.moviegoat.com" ,"fulltab.com","rackcdn.com","prestoris. com","adsterra.com","swampssovuuhusp.top ","streesusa.info","freesoftwaredlul.com ","adreactor.com","a-static.com","codeonclick.com","heheme.co m","adf.ly","seen-on-screen.thewhizmarketing.com","openload.c o"]; var pb_whitelist = ["cdn.livetvcdn.net","livestream.sx","lin kedin.com","google","www.gmail.com","www .pinterest.com","www.youtube.com","www.f acebook.com","search.yahoo.com","chrome://newtab","www.food.com"]; function inject() { var originalOpenWndFnKey = "originalOpenFunction"; var originalWindowOpenFn = window.open; var originalCreateElementFn = document.createElement; var originalAppendChildFn = HTMLElement.prototype.appendChild; var originalCreateEventFn = document.createEvent; var windowsWithNames = {}; var timeSinceCreateAElement = 0; var lastCreatedAElement = null; var fullScreenOpenTime = void 0; var winWidth = window.innerWidth; var winHeight = window.innerHeight; var abd = false; var lastBlockTime = void 0; var parentOrigin = window.location != window.parent.location ? document.referrer || window.parent.location || '*' : document.location; var parentRef = window.parent; //window[originalOpenWndFnKey] = window.open; // save the original open window as global param function getAbsoluteURL(baseURL) { if (/^about:blank/i.test(baseURL)) { return baseURL; } if (/^(https?
 ?\/\//.test(baseURL)) {	      return baseURL;	    }	    baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : '') + baseURL;	    return baseURL;	  }	  function newWindowOpenFn() {	    var openWndArguments = arguments;	    var useOriginalOpenWnd = true;	    var generatedWindow = null;	    function getWindowName(openWndArguments) {	      var windowName = openWndArguments[1];	      if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) {	        return windowName;	      }	      return null;	    }	    function copyMissingProperties(src, dest) {	      var prop = void 0;	      for (prop in src) {	        try {	          if (dest[prop] === undefined && src[prop]) {	            dest[prop] = src[prop];	          }	        } catch (e) {}	      }	      return dest;	    }	    function isOverlayish(el) {	      var style = el && el.style;	      if (style && /fixed|absolute/.test(style.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) {	        return true;	      }	      return false;	    }	    var capturingElement = null; // the element who registered to the event	    var srcElement = null; // the clicked on element	    var closestParentLink = null;	    if (window.event != null) {	      capturingElement = window.event.currentTarget;	      srcElement = window.event.srcElement;	    }	    if (srcElement != null) {	      closestParentLink = srcElement.closest('a');	      if (closestParentLink && closestParentLink.href) {	        openWndArguments[3] = closestParentLink.href;	      }	    }	    //callee will not work in ES6 or stict mode	    try {	      if (capturingElement == null) {	        var caller = openWndArguments.callee;	        while (caller.arguments != null && caller.arguments.callee.caller != null) {	          caller = caller.arguments.callee.caller;	        }	        if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].currentTarget != null) {	          capturingElement = caller.arguments[0].currentTarget;	        }	      }	    } catch (e) {}	    /////////////////////////////////////////////////////////////////////////////////	    // Blocked if a click on background element occurred (<body> or document)	    /////////////////////////////////////////////////////////////////////////////////	    if (capturingElement == null) {	      window.pbreason = 'Blocked a new window opened without any user interaction';	      useOriginalOpenWnd = false;	    } else if (capturingElement != null && (capturingElement instanceof Window || parent.Window && capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null && capturingElement.body != null || capturingElement.nodeName != null && (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because it was triggered by the ' + capturingElement.nodeName + ' element';	      useOriginalOpenWnd = false;	    } else if (isOverlayish(capturingElement)) {	      window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';	      useOriginalOpenWnd = false;	    } else {	      useOriginalOpenWnd = true;	    }	    /////////////////////////////////////////////////////////////////////////////////	    /////////////////////////////////////////////////////////////////////////////////	    // Block if a full screen was just initiated while opening this url.	    /////////////////////////////////////////////////////////////////////////////////	    var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;	    if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this url.';	      /* JRA REMOVED	       if (window[script_params.fullScreenFnKey]) {	       window.clearTimeout(window[script_params.fullScreenFnKey]);	       }	       */	      if (document.exitFullscreen) {	        document.exitFullscreen();	      } else if (document.mozCancelFullScreen) {	        document.mozCancelFullScreen();	      } else if (document.webkitCancelFullScreen) {	        document.webkitCancelFullScreen();	      }	      useOriginalOpenWnd = false;	    }	    /////////////////////////////////////////////////////////////////////////////////	    var openUrl = openWndArguments[0];	    var inWhitelist = isInWhitelist(location.href);	    if (inWhitelist) {	      useOriginalOpenWnd = true;	    } else if (isInBlacklist(openUrl)) {	      useOriginalOpenWnd = false;	    }	    if (useOriginalOpenWnd == true) {	      generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);	      // save the window by name, for latter use.	      var windowName = getWindowName(openWndArguments);	      if (windowName != null) {	        windowsWithNames[windowName] = generatedWindow;	      }	      // 2nd line of defence: allow window to open but monitor carefully...	      /////////////////////////////////////////////////////////////////////////////////	      // Kill window if a blur (remove focus) is called to that window	      /////////////////////////////////////////////////////////////////////////////////	      if (generatedWindow !== window) {	        (function () {	          var openTime = new Date().getTime();	          var originalWndBlurFn = generatedWindow.blur;	          generatedWindow.blur = function () {	            if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) {	                window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a it was blured';	                generatedWindow.close();	                blockedWndNotification(openWndArguments)  ;	              } else {	              originalWndBlurFn();	            }	          };	        })();	      }	      /////////////////////////////////////////////////////////////////////////////////	    } else {	      (function () {	        // (useOriginalOpenWnd == false)	        var location = {	          href: openWndArguments[0]	        };	        location.replace = function (url) {	          location.href = url;	        };	        generatedWindow = {	          close: function close() {	            return true;	          },	          test: function test() {	            return true;	          },	          blur: function blur() {	            return true;	          },	          focus: function focus() {	            return true;	          },	          showModelessDialog: function showModelessDialog() {	            return true;	          },	          showModalDialog: function showModalDialog() {	            return true;	          },	          prompt: function prompt() {	            return true;	          },	          confirm: function confirm() {	            return true;	          },	          alert: function alert() {	            return true;	          },	          moveTo: function moveTo() {	            return true;	          },	          moveBy: function moveBy() {	            return true;	          },	          resizeTo: function resizeTo() {	            return true;	          },	          resizeBy: function resizeBy() {	            return true;	          },	          scrollBy: function scrollBy() {	            return true;	          },	          scrollTo: function scrollTo() {	            return true;	          },	          getSelection: function getSelection() {	            return true;	          },	          onunload: function onunload() {	            return true;	          },	          print: function print() {	            return true;	          },	          open: function open() {	            return this;	          },	          opener: window,	          closed: false,	          innerHeight: 480,	          innerWidth: 640,	          name: openWndArguments[1],	          location: location,	          document: { location: location }	        };	        copyMissingProperties(window, generatedWindow);	        generatedWindow.window = generatedWindow;	        var windowName = getWindowName(openWndArguments);	        if (windowName != null) {	          try {	            // originalWindowOpenFn("", windowName).close();	            windowsWithNames[windowName].close();	          } catch (err) {}	        }	        var fnGetUrl = function fnGetUrl() {	          var url = void 0;	          if (!(generatedWindow.location instanceof Object)) {	            url = generatedWindow.location;	          } else if (!(generatedWindow.document.location instanceof Object)) {	            url = generatedWindow.document.location;	          } else if (location.href != null) {	            url = location.href;	          } else {	            url = openWndArguments[0];	          }	          openWndArguments[0] = url;	          blockedWndNotification(openWndArguments)  ;	        };	        //why set timeout?  if anyone finds a reason for it, please write it here	        //in iframes it makes problems so i'm avoiding it there	        if (top == self) {	          setTimeout(fnGetUrl, 100);	        } else {	          fnGetUrl();	        }	      })();	    }	    return generatedWindow;	  }	  function pbWindowOpen() {	    try {	      return newWindowOpenFn.apply(this, arguments);	    } catch (err) {	      return null;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  // Replace the window open method with Poper Blocker's	  /////////////////////////////////////////////////////////////////////////////////	  window.open = pbWindowOpen;	  /////////////////////////////////////////////////////////////////////////////////	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  // Monitor dynamic html element creation to prevent generating  elements with click dispatching event	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  HTMLElement.prototype.appendChild = function () {	    var newElement = originalAppendChildFn.apply(this, arguments);	    if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) {	      try {	        var code = '(function () {\n          var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n          var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n          ' + inject.toString() + ';\n          inject();\n        })();';	        var s = document.createElement('script');s.text = code;	        newElement.contentWindow.document.body.a  ppendChild(s);	      } catch (e) {}	    }	    return newElement;	  };	  document.createElement = function () {	    var newElement = originalCreateElementFn.apply(document, arguments);	    if (arguments[0] == "a" || arguments[0] == "A") {	      (function () {	        timeSinceCreateAElement = new Date().getTime();	        var originalDispatchEventFn = newElement.dispatchEvent;	        newElement.dispatchEvent = function (event) {	          if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") {	            if (!isInWhitelist(newElement.href)) {	              window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";	              blockedWndNotification({ "0": newElement.href });	              return true;	            }	          }	          return originalDispatchEventFn.call(this, event);	        };	        lastCreatedAElement = newElement;	      })();	    }	    return newElement;	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Block artificial mouse click on frashly created  elements	  /////////////////////////////////////////////////////////////////////////////////	  document.createEvent = function () {	    try {	      if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) {	        //block if the origin is not same	        var isSelfDomain = false;	        try {	          var openUrlDomain = new URL(lastCreatedAElement.href).hostname;	          var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;	          var topDomain = new URL(topUrl).hostname;	          isSelfDomain = openUrlDomain == topDomain;	        } catch (e) {}	        if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) {	          //this makes too much false positive so we do not display the toast message	          window.pbreason = 'Blocked because \'a\' element was recently created and ' + arguments[0] + ' event was created shortly after';	          arguments[0] = lastCreatedAElement.href;	          blockedWndNotification({ "0": lastCreatedAElement.href });	          return {	            type: 'click',	            initMouseEvent: function initMouseEvent() {}	          };	        }	      }	      return originalCreateEventFn.apply(document, arguments);	    } catch (err) {}	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Monitor full screen requests	  /////////////////////////////////////////////////////////////////////////////////	  function onFullScreen(isInFullScreenMode) {	    if (isInFullScreenMode) {	      fullScreenOpenTime = new Date().getTime();	    } else {	      fullScreenOpenTime = NaN;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  function isDocumentInFullScreenMode() {	    // Note that the browser fullscreen (triggered by short keys) might	    // be considered different from content fullscreen when expecting a boolean	    return document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods	    document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods	  }	  function isInWhitelist(url) {	    return isInList(url, pb_whitelist);	  }	  function isInBlacklist(url) {	    return isInList(url, pb_blacklist);	  }	  function isInList(url, list) {	    if (list) {	      return list.some(function (li) {	        return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);	      });	    } else {	      return false;	    }	  }	  function blockedWndNotification(openWndArguments) {	    //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension	    if (!lastBlockTime || lastBlockTime < Date.now() - 1000) {	      openWndArguments["0"] = getAbsoluteURL(openWndArguments["0"]);	      openWndArguments["abd"] = abd;	      parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);	    }	    lastBlockTime = Date.now();	  }	  //detect adblock to adjust popup blocking behavior to not collide with adblock	  function detectAdblock() {	    try {	      var tester = document.createElement('div');	      tester.innerHTML = ' ';	      tester.className = 'adsbox';	      tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";	      document.body.appendChild(tester);	      window.setTimeout(function () {	        if (tester.offsetHeight === 0) {	          abd = true;	        }	        tester.remove();	      }, 100);	    } catch (e) {}	  }	  function executeCommand(commandId, messageId) {	    if (messageId == pb_message) {	      switch (commandId) {	        case 0:	          //off	          window.open = originalWindowOpenFn;	          document.createElement = originalCreateElementFn;	          document.createEvent = originalCreateEventFn;	          HTMLElement.prototype.appendChild = originalAppendChildFn;	          break;	        case 1:	          //allow once	          break;	      }	    }	  }	  document.addEventListener("fullscreencha  nge", function () {	    onFullScreen(document.fullscreen);	  }, false);	  document.addEventListener("mozfullscreen  change", function () {	    onFullScreen(document.mozFullScreen);	  }, false);	  document.addEventListener("webkitfullscr  eenchange", function () {	    onFullScreen(document.webkitIsFullScreen  );	  }, false);	  document.addEventListener('DOMContentLoa  ded', function () {	    detectAdblock();	  }, false);	  (function () {	    window.pbExternalCommand = function (commandId, messageId) {	      executeCommand(commandId, messageId);	    };	  })();	};          inject();        })();</script>
?\/\//.test(baseURL)) {	      return baseURL;	    }	    baseURL = location.origin + (!/^\//.test(baseURL) ? '/' : '') + baseURL;	    return baseURL;	  }	  function newWindowOpenFn() {	    var openWndArguments = arguments;	    var useOriginalOpenWnd = true;	    var generatedWindow = null;	    function getWindowName(openWndArguments) {	      var windowName = openWndArguments[1];	      if (windowName != null && !["_blank", "_parent", "_self", "_top"].includes(windowName)) {	        return windowName;	      }	      return null;	    }	    function copyMissingProperties(src, dest) {	      var prop = void 0;	      for (prop in src) {	        try {	          if (dest[prop] === undefined && src[prop]) {	            dest[prop] = src[prop];	          }	        } catch (e) {}	      }	      return dest;	    }	    function isOverlayish(el) {	      var style = el && el.style;	      if (style && /fixed|absolute/.test(style.position) && el.offsetWidth >= winWidth * 0.6 && el.offsetHeight >= winHeight * 0.75) {	        return true;	      }	      return false;	    }	    var capturingElement = null; // the element who registered to the event	    var srcElement = null; // the clicked on element	    var closestParentLink = null;	    if (window.event != null) {	      capturingElement = window.event.currentTarget;	      srcElement = window.event.srcElement;	    }	    if (srcElement != null) {	      closestParentLink = srcElement.closest('a');	      if (closestParentLink && closestParentLink.href) {	        openWndArguments[3] = closestParentLink.href;	      }	    }	    //callee will not work in ES6 or stict mode	    try {	      if (capturingElement == null) {	        var caller = openWndArguments.callee;	        while (caller.arguments != null && caller.arguments.callee.caller != null) {	          caller = caller.arguments.callee.caller;	        }	        if (caller.arguments != null && caller.arguments.length > 0 && caller.arguments[0].currentTarget != null) {	          capturingElement = caller.arguments[0].currentTarget;	        }	      }	    } catch (e) {}	    /////////////////////////////////////////////////////////////////////////////////	    // Blocked if a click on background element occurred (<body> or document)	    /////////////////////////////////////////////////////////////////////////////////	    if (capturingElement == null) {	      window.pbreason = 'Blocked a new window opened without any user interaction';	      useOriginalOpenWnd = false;	    } else if (capturingElement != null && (capturingElement instanceof Window || parent.Window && capturingElement instanceof parent.Window || capturingElement === document || capturingElement.URL != null && capturingElement.body != null || capturingElement.nodeName != null && (capturingElement.nodeName.toLowerCase() == "body" || capturingElement.nodeName.toLowerCase() == "document"))) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because it was triggered by the ' + capturingElement.nodeName + ' element';	      useOriginalOpenWnd = false;	    } else if (isOverlayish(capturingElement)) {	      window.pbreason = 'Blocked a new window opened when clicking on an element that seems to be an overlay';	      useOriginalOpenWnd = false;	    } else {	      useOriginalOpenWnd = true;	    }	    /////////////////////////////////////////////////////////////////////////////////	    /////////////////////////////////////////////////////////////////////////////////	    // Block if a full screen was just initiated while opening this url.	    /////////////////////////////////////////////////////////////////////////////////	    var fullScreenElement = document.webkitFullscreenElement || document.mozFullscreenElement || document.fullscreenElement;	    if (new Date().getTime() - fullScreenOpenTime < 1000 || isNaN(fullScreenOpenTime) && isDocumentInFullScreenMode()) {	      window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a full screen was just initiated while opening this url.';	      /* JRA REMOVED	       if (window[script_params.fullScreenFnKey]) {	       window.clearTimeout(window[script_params.fullScreenFnKey]);	       }	       */	      if (document.exitFullscreen) {	        document.exitFullscreen();	      } else if (document.mozCancelFullScreen) {	        document.mozCancelFullScreen();	      } else if (document.webkitCancelFullScreen) {	        document.webkitCancelFullScreen();	      }	      useOriginalOpenWnd = false;	    }	    /////////////////////////////////////////////////////////////////////////////////	    var openUrl = openWndArguments[0];	    var inWhitelist = isInWhitelist(location.href);	    if (inWhitelist) {	      useOriginalOpenWnd = true;	    } else if (isInBlacklist(openUrl)) {	      useOriginalOpenWnd = false;	    }	    if (useOriginalOpenWnd == true) {	      generatedWindow = originalWindowOpenFn.apply(this, openWndArguments);	      // save the window by name, for latter use.	      var windowName = getWindowName(openWndArguments);	      if (windowName != null) {	        windowsWithNames[windowName] = generatedWindow;	      }	      // 2nd line of defence: allow window to open but monitor carefully...	      /////////////////////////////////////////////////////////////////////////////////	      // Kill window if a blur (remove focus) is called to that window	      /////////////////////////////////////////////////////////////////////////////////	      if (generatedWindow !== window) {	        (function () {	          var openTime = new Date().getTime();	          var originalWndBlurFn = generatedWindow.blur;	          generatedWindow.blur = function () {	            if (new Date().getTime() - openTime < 1000 && !inWhitelist /* one second */) {	                window.pbreason = 'Blocked a new window opened with URL: ' + openWndArguments[0] + ' because a it was blured';	                generatedWindow.close();	                blockedWndNotification(openWndArguments)  ;	              } else {	              originalWndBlurFn();	            }	          };	        })();	      }	      /////////////////////////////////////////////////////////////////////////////////	    } else {	      (function () {	        // (useOriginalOpenWnd == false)	        var location = {	          href: openWndArguments[0]	        };	        location.replace = function (url) {	          location.href = url;	        };	        generatedWindow = {	          close: function close() {	            return true;	          },	          test: function test() {	            return true;	          },	          blur: function blur() {	            return true;	          },	          focus: function focus() {	            return true;	          },	          showModelessDialog: function showModelessDialog() {	            return true;	          },	          showModalDialog: function showModalDialog() {	            return true;	          },	          prompt: function prompt() {	            return true;	          },	          confirm: function confirm() {	            return true;	          },	          alert: function alert() {	            return true;	          },	          moveTo: function moveTo() {	            return true;	          },	          moveBy: function moveBy() {	            return true;	          },	          resizeTo: function resizeTo() {	            return true;	          },	          resizeBy: function resizeBy() {	            return true;	          },	          scrollBy: function scrollBy() {	            return true;	          },	          scrollTo: function scrollTo() {	            return true;	          },	          getSelection: function getSelection() {	            return true;	          },	          onunload: function onunload() {	            return true;	          },	          print: function print() {	            return true;	          },	          open: function open() {	            return this;	          },	          opener: window,	          closed: false,	          innerHeight: 480,	          innerWidth: 640,	          name: openWndArguments[1],	          location: location,	          document: { location: location }	        };	        copyMissingProperties(window, generatedWindow);	        generatedWindow.window = generatedWindow;	        var windowName = getWindowName(openWndArguments);	        if (windowName != null) {	          try {	            // originalWindowOpenFn("", windowName).close();	            windowsWithNames[windowName].close();	          } catch (err) {}	        }	        var fnGetUrl = function fnGetUrl() {	          var url = void 0;	          if (!(generatedWindow.location instanceof Object)) {	            url = generatedWindow.location;	          } else if (!(generatedWindow.document.location instanceof Object)) {	            url = generatedWindow.document.location;	          } else if (location.href != null) {	            url = location.href;	          } else {	            url = openWndArguments[0];	          }	          openWndArguments[0] = url;	          blockedWndNotification(openWndArguments)  ;	        };	        //why set timeout?  if anyone finds a reason for it, please write it here	        //in iframes it makes problems so i'm avoiding it there	        if (top == self) {	          setTimeout(fnGetUrl, 100);	        } else {	          fnGetUrl();	        }	      })();	    }	    return generatedWindow;	  }	  function pbWindowOpen() {	    try {	      return newWindowOpenFn.apply(this, arguments);	    } catch (err) {	      return null;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  // Replace the window open method with Poper Blocker's	  /////////////////////////////////////////////////////////////////////////////////	  window.open = pbWindowOpen;	  /////////////////////////////////////////////////////////////////////////////////	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  // Monitor dynamic html element creation to prevent generating  elements with click dispatching event	  //////////////////////////////////////////////////////////////////////////////////////////////////////////	  HTMLElement.prototype.appendChild = function () {	    var newElement = originalAppendChildFn.apply(this, arguments);	    if (newElement.nodeName == 'IFRAME' && newElement.contentWindow) {	      try {	        var code = '(function () {\n          var pb_blacklist = ' + JSON.stringify(pb_blacklist) + ';\n          var pb_whitelist = ' + JSON.stringify(pb_whitelist) + ';\n          ' + inject.toString() + ';\n          inject();\n        })();';	        var s = document.createElement('script');s.text = code;	        newElement.contentWindow.document.body.a  ppendChild(s);	      } catch (e) {}	    }	    return newElement;	  };	  document.createElement = function () {	    var newElement = originalCreateElementFn.apply(document, arguments);	    if (arguments[0] == "a" || arguments[0] == "A") {	      (function () {	        timeSinceCreateAElement = new Date().getTime();	        var originalDispatchEventFn = newElement.dispatchEvent;	        newElement.dispatchEvent = function (event) {	          if (event.type != null && ('' + event.type).toLocaleLowerCase() == "click") {	            if (!isInWhitelist(newElement.href)) {	              window.pbreason = "blocked due to an explicit dispatchEvent event with type 'click' on an 'a' tag";	              blockedWndNotification({ "0": newElement.href });	              return true;	            }	          }	          return originalDispatchEventFn.call(this, event);	        };	        lastCreatedAElement = newElement;	      })();	    }	    return newElement;	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Block artificial mouse click on frashly created  elements	  /////////////////////////////////////////////////////////////////////////////////	  document.createEvent = function () {	    try {	      if (arguments[0].toLowerCase().includes("mouse") && new Date().getTime() - timeSinceCreateAElement <= 50) {	        //block if the origin is not same	        var isSelfDomain = false;	        try {	          var openUrlDomain = new URL(lastCreatedAElement.href).hostname;	          var topUrl = window.location != window.parent.location ? document.referrer : document.location.href;	          var topDomain = new URL(topUrl).hostname;	          isSelfDomain = openUrlDomain == topDomain;	        } catch (e) {}	        if (lastCreatedAElement.href.trim() && !isInWhitelist(lastCreatedAElement.href) && !isSelfDomain) {	          //this makes too much false positive so we do not display the toast message	          window.pbreason = 'Blocked because \'a\' element was recently created and ' + arguments[0] + ' event was created shortly after';	          arguments[0] = lastCreatedAElement.href;	          blockedWndNotification({ "0": lastCreatedAElement.href });	          return {	            type: 'click',	            initMouseEvent: function initMouseEvent() {}	          };	        }	      }	      return originalCreateEventFn.apply(document, arguments);	    } catch (err) {}	  };	  /////////////////////////////////////////////////////////////////////////////////	  /////////////////////////////////////////////////////////////////////////////////	  // Monitor full screen requests	  /////////////////////////////////////////////////////////////////////////////////	  function onFullScreen(isInFullScreenMode) {	    if (isInFullScreenMode) {	      fullScreenOpenTime = new Date().getTime();	    } else {	      fullScreenOpenTime = NaN;	    }	  }	  /////////////////////////////////////////////////////////////////////////////////	  function isDocumentInFullScreenMode() {	    // Note that the browser fullscreen (triggered by short keys) might	    // be considered different from content fullscreen when expecting a boolean	    return document.fullScreenElement && document.fullScreenElement !== null || // alternative standard methods	    document.mozFullscreenElement != null || document.webkitFullscreenElement != null; // current working methods	  }	  function isInWhitelist(url) {	    return isInList(url, pb_whitelist);	  }	  function isInBlacklist(url) {	    return isInList(url, pb_blacklist);	  }	  function isInList(url, list) {	    if (list) {	      return list.some(function (li) {	        return new RegExp("https?://(www\.|.*\.)?" + li + "+").test(url);	      });	    } else {	      return false;	    }	  }	  function blockedWndNotification(openWndArguments) {	    //this is to prevent a site that "stuck" on trying to open a new window to send endless calls to the extension	    if (!lastBlockTime || lastBlockTime < Date.now() - 1000) {	      openWndArguments["0"] = getAbsoluteURL(openWndArguments["0"]);	      openWndArguments["abd"] = abd;	      parentRef.postMessage({ type: "blockedWindow", args: JSON.stringify(openWndArguments) }, parentOrigin);	    }	    lastBlockTime = Date.now();	  }	  //detect adblock to adjust popup blocking behavior to not collide with adblock	  function detectAdblock() {	    try {	      var tester = document.createElement('div');	      tester.innerHTML = ' ';	      tester.className = 'adsbox';	      tester.style.cssText = "position:absolute;top-1000px;left:-1000px;";	      document.body.appendChild(tester);	      window.setTimeout(function () {	        if (tester.offsetHeight === 0) {	          abd = true;	        }	        tester.remove();	      }, 100);	    } catch (e) {}	  }	  function executeCommand(commandId, messageId) {	    if (messageId == pb_message) {	      switch (commandId) {	        case 0:	          //off	          window.open = originalWindowOpenFn;	          document.createElement = originalCreateElementFn;	          document.createEvent = originalCreateEventFn;	          HTMLElement.prototype.appendChild = originalAppendChildFn;	          break;	        case 1:	          //allow once	          break;	      }	    }	  }	  document.addEventListener("fullscreencha  nge", function () {	    onFullScreen(document.fullscreen);	  }, false);	  document.addEventListener("mozfullscreen  change", function () {	    onFullScreen(document.mozFullScreen);	  }, false);	  document.addEventListener("webkitfullscr  eenchange", function () {	    onFullScreen(document.webkitIsFullScreen  );	  }, false);	  document.addEventListener('DOMContentLoa  ded', function () {	    detectAdblock();	  }, false);	  (function () {	    window.pbExternalCommand = function (commandId, messageId) {	      executeCommand(commandId, messageId);	    };	  })();	};          inject();        })();</script>
							
						
