SnippetVamp

Because spending time searching snippets sucks.



AI 1 administration 1 android 1 cmd 3 linux 2 oculus 1 oneplus 1 opera 5 retropie 1 root 1 violentmonkey 5 wifi 1 windows 4

.

Derniers snippets

Welcome to my SnippetVamp space !

Connaître la capacité maximale de RAM supportée par votre PC

wmic memphysical get MaxCapacity, MemoryDevices

cmd windows

<iframe width="100%" height="200" src="http://cochi.se/code/index.php?embed=6826e8ff33929" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 16/05/2025

Prompt engineer

Tu es un expert en prompt engineering. Ta mission est de m'aider à créer le prompt parfait selon mon objectif. Pose-moi les bonnes questions pour affiner mon besoin puis génère le prompt final

AI

<iframe width="100%" height="200" src="http://cochi.se/code/index.php?embed=680a3292d46b8" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 24/04/2025

Stream Oculus quest sur le PC

*casque connecté en usb
adb devices
adb tcpip 5555

*deconnecter le casque
adb connect 192.168.0.109:5555 → L'adresse ip de votre casque
scrypy --crop 1008:1120:216:240

oculus linux

<iframe width="100%" height="308" src="http://cochi.se/code/index.php?embed=5ed920d189f1b" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 04/06/2020

Enlever le boot texte dans retropie

sudo nano /boot/cmdline.txt
Change console=tty1 to console=tty3
CTRL+X > Y > ENTER
sudo reboot

retropie

<iframe width="100%" height="272" src="http://cochi.se/code/index.php?embed=5d3c787f71b00" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 27/07/2019

Information sur les user dans un domain

net user /domain %username%

administration windows

<iframe width="100%" height="200" src="http://cochi.se/code/index.php?embed=5c07b7edde4a5" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 05/12/2018

Re-root Oneplus 5T après update système

1. Télécharger image sur le site Oneplus : http://downloads.oneplus.net/devices/oneplus-5t/ ou dumper son fichier boot.img
2. Extraire boot.img du fichier téléchargé
3. Patcher le fichier boot.img avec Magisk depuis le smartphone puis envoyer le fichier patched_boot.img obtenu sur le PC.
4. Redemarrer le smartphone en mode "bootloader"
5. Sur le PC en ligne de cmd :
fastboot devices
fastboot flash boot patched_boot.img
fastboot reboot

root oneplus android cmd

<iframe width="100%" height="344" src="http://cochi.se/code/index.php?embed=5a9a73605818b" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 03/03/2018

Afficher les wifi et code enregistré sous windows

@echo off
cd %USERPROFILE%\
mkdir wifi
cd wifi
netsh wlan export profile key=clear > profiles.txt
findstr -i "keymaterial" *.xml > keys.txt
del *.xml
del profiles.txt
notepad keys.txt
del keys.txt
cd ../
rmdir /S /Q wifi

windows wifi

<iframe width="100%" height="398" src="http://cochi.se/code/index.php?embed=58cbf9cc62ce3" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/03/2017

Copier une clé USB bootable

#In command prompt windows type :

diskpart
list disk
select disk 1 -> Where disk 1 is your blank usb
clean
create partition primary
select partition 1
active
format fs=ntfs quick
assign
exit

xcopy e:\*.* /s/e/f f:\ -> Where e: is the source and f: destination

windows cmd

<iframe width="100%" height="434" src="http://cochi.se/code/index.php?embed=570b62ec38a8b" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 11/04/2016

Anti-Adblock Killer

// ==UserScript==
// @name Anti-Adblock Killer | Reek
// @namespace https://userscripts.org/scripts/show/155840
// @description Anti-Adblock Killer is a userscript aiming to circumvent many protections used on some websites that force the user to disable AdBlockers.
// @author Reek | reeksite.com
// @version 8.4
// @encoding utf-8
// @license https://creativecommons.org/licenses/by-nc-sa/4.0/
// @icon https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png
// @homepage https://github.com/reek/anti-adblock-killer#anti-adblock-killer--reek
// @twitterURL https://twitter.com/antiadbkiller
// @supportURL https://github.com/reek/anti-adblock-killer/issues
// @contributionURL https://github.com/reek/anti-adblock-killer#donate
// @include http*://*
// @grant unsafeWindow
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @grant GM_registerMenuCommand
// @grant GM_deleteValue
// @grant GM_listValues
// @grant GM_getResourceText
// @grant GM_getResourceURL
// @grant GM_log
// @grant GM_openInTab
// @grant GM_setClipboard
// @grant GM_info
// @grant GM_getMetadata
// @run-at document-start
// ==/UserScript==
/*=====================================================
  Thanks
=======================================================

  Donors: M. Howard, Shunjou, Charmine, Kierek93, G. Barnard, H. Young, Seinhor9, ImGlodar, Ivanosevitch, HomeDipo, R. Martin, DrFiZ, Tippy, B. Rohner, P. Kozica, M. Patel, W4rell, Tscheckoff, AdBlock Polska, AVENIR INTERNET, coolNAO, Ben, J. Park, C. Young, J. Bou, M. Cano, J. Jung, A. Sonino, J. Litten, M. Schrumpf, G. Pepe, A. Trufanov, R. Palmer, J. Rautiainen, S. Blystone

  Collaborators: InfinityCoding, Couchy, Dindog, Floxflob, U Bless, Watilin, @prdonahue, Hoshie, 3lf3nLi3d, Alexo, Crits, Noname120, Crt32, JixunMoe, Athorcis, Killerbadger, SMed79, Alexander255, Anonsubmitter, RaporLoLpro, Maynak00, Robotex, Vinctux, Blahx, MajkiIT, F4z, Angelsl, Mikhaelk, Marek, Hamsterbacke

  Users: Thank you to all those who use Anti Adblock Killer, who report problems, who write the review, which add to their favorites, making donations, which support the project and help in its development or promote.

=======================================================
  Mirrors
=======================================================

  Github: http://tinyurl.com/mcra3dn
  Greasyfork: http://tinyurl.com/puyxrn4
  Openuserjs: http://tinyurl.com/nnqje32
  MonkeyGuts: http://tinyurl.com/ka5fcqm
  Userscripts: http://tinyurl.com/q8xcejl

=======================================================
  Documentation
=======================================================

  Greasemonkey: http://tinyurl.com/yeefnj5
  Scriptish: http://tinyurl.com/cnd9nkd
  Tampermonkey: http://tinyurl.com/pdytfde
  Violentmonkey: http://tinyurl.com/n34wn6j
  NinjaKit: http://tinyurl.com/pkkm9ug

=======================================================
  Script
======================================================*/

Aak = {
  name : 'Anti-Adblock Killer',
  version : '8.4',
  scriptid : 'gJWEp0vB',
  homeURL : 'https://github.com/reek/anti-adblock-killer#anti-adblock-killer--reek',
  changelogURL : 'https://github.com/reek/anti-adblock-killer#changelog',
  donateURL : 'https://github.com/reek/anti-adblock-killer#donate',
  featuresURL : 'https://github.com/reek/anti-adblock-killer#features',
  reportURL : 'https://github.com/reek/anti-adblock-killer/wiki/Report-Guide',
  twitterURL : 'https://twitter.com/antiadbkiller',
  downloadURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js',
  subscribeURL : 'abp:subscribe?location=https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt&title=Anti-Adblock%20Killer%20|%20Filters%20for%20Adblockers',
  listURL : "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt",
  iconURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png',
  excludes : ["360.cn", "amazon.", "apple.com", "ask.com", "baidu.com", "bing.com", "bufferapp.com", "chatango.com", "chromeactions.com", "easyinplay.net", "ebay.com", "facebook.com", "flattr.com", "flickr.com", "ghacks.net", "google.", "imdb.com", "imgbox.com", "imgur.com", "instagram.com", "jsbin.com", "jsfiddle.net", "linkedin.com", "live.com", "mail.ru", "microsoft.com", "msn.com", "paypal.com", "pinterest.com", "preloaders.net", "qq.com", "reddit.com", "reeksite.com", "stackoverflow.com", "tampermonkey.net", "tumblr.com", "twitter.com", "vimeo.com", "wikipedia.org", "w3schools.com", "yahoo.", "yandex.ru", "youtu.be", "youtube.com", "xemvtv.net", "vod.pl", "agar.io", "pandoon.info"],
  debug : {
    log : true,
    exclude : false,
    dump : false,
    inserted : false,
    removed : false
  },
  initialize : function () {
    // Debug
    if (Aak.debug.dump) {
      Aak.log(Aak);
      Aak.log(Aak.apiSupported());
      Aak.log(Aak.getScriptManager());
      Aak.log(Aak.getBrowser());
    }
    // Script Manager
    if (Aak.getScriptManager()) {
      Aak.registerCommands();
      Aak.update.automatic();
      Aak.listDetect();
      Aak.blockDetect();
    } else { // Native
      throw "Sorry! No Native support..";
    }
  },
  uw : unsafeWindow || window,
  $ : unsafeWindow.$ || unsafeWindow.jQuery || null,
  isTopWindow : !(window.top != window.self),
  ready : function (callback) {
    window.addEventListener('load', callback);
  },
  contains : function (string, search) {
    return string.indexOf(search) != -1;
  },
  log : function (data, method) {
    if (Aak.debug.log) {
      console = console || unsafeWindow.console;
      console[method || 'info']('Aak' + Aak.getVersion(), data);
    }
  },
  dumpDOM : function (delay) {
    setTimeout(function () {
      var array = [];
      var win = Aak.uw;
      for (var k in win) {
        var curr = win[k];
        if (typeof curr === 'object') {
          try {
            array.push(k + ': ' + JSON.stringify(curr));
          } catch (e) {
            console.log(k, typeof curr, curr);
          }
        }
      }
      document.body.innerHTML = '<textarea width="100%" height="500px">{' + array.join(',') + '}</textarea>';
    }, delay || 0);
  },
  apiSupported : function () {
    if (Aak.isTopWindow) {
      // GM API - http://tinyurl.com/yeefnj5
      return {
        GM_xmlhttpRequest : typeof GM_xmlhttpRequest != 'undefined',
        GM_setValue : typeof GM_setValue != 'undefined',
        GM_getValue : typeof GM_getValue != 'undefined',
        GM_addStyle : typeof GM_addStyle != 'undefined',
        GM_registerMenuCommand : typeof GM_registerMenuCommand != 'undefined',
        GM_info : typeof GM_info != 'undefined',
        GM_getMetadata : typeof GM_getMetadata != 'undefined',
        GM_deleteValue : typeof GM_deleteValue != 'undefined',
        GM_listValues : typeof GM_listValues != 'undefined',
        GM_getResourceText : typeof GM_getResourceText != 'undefined',
        GM_getResourceURL : typeof GM_getResourceURL != 'undefined',
        GM_log : typeof GM_log != 'undefined',
        GM_openInTab : typeof GM_openInTab != 'undefined',
        GM_setClipboard : typeof GM_setClipboard != 'undefined'
      }
    }
  },
  getBrowser : function () {
    var ua = navigator.userAgent;
    if (Aak.contains(ua, 'Firefox')) {
      return "Firefox";
    } else if (Aak.contains(ua, 'MSIE')) {
      return "IE";
    } else if (Aak.contains(ua, 'Opera')) {
      return "Opera";
    } else if (Aak.contains(ua, 'Chrome')) {
      return "Chrome";
    } else if (Aak.contains(ua, 'Safari')) {
      return "Safari";
    } else if (Aak.contains(ua, 'Konqueror')) {
      return "Konqueror";
    } else if (Aak.contains(ua, 'PaleMoon')) {
      return "PaleMoon"; // fork firefox
    } else if (Aak.contains(ua, 'Cyberfox')) {
      return "Cyberfox"; // fork firefox
    } else if (Aak.contains(ua, 'SeaMonkey')) {
      return "SeaMonkey"; // fork firefox
    } else if (Aak.contains(ua, 'Iceweasel')) {
      return "Iceweasel"; // fork firefox
    } else {
      return ua;
    }
  },
  getVersion : function () {
    return Number(Aak.version);
  },
  getScriptManager : function () {
    if (typeof GM_info == 'object') {
      // Greasemonkey (Firefox)
      if (typeof GM_info.uuid != 'undefined') {
        return 'Greasemonkey';
      } // Tampermonkey (Chrome/Opera)
      else if (typeof GM_info.scriptHandler != 'undefined') {
        return 'Tampermonkey';
      }
    } else {
      // Scriptish (Firefox)
      if (typeof GM_getMetadata == 'function') {
        return 'Scriptish';
      } // NinjaKit (Safari/Chrome)
      else if (typeof GM_setValue != 'undefined' &&
        typeof GM_getResourceText == 'undefined' &&
        typeof GM_getResourceURL == 'undefined' &&
        typeof GM_openInTab == 'undefined' &&
        typeof GM_setClipboard == 'undefined') {
        return 'NinjaKit';
      } else { // Native
        return false;
      }
    }
  },
  generateID : function (len) {
    var str = '';
    var len = len || 10;
    var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (var i = 0; i < len; ++i) {
      str += charset.charAt(Math.floor(Math.random() * charset.length));
    }
    return str;
  },
  generateUUID : function () {
    // Universally Unique IDentifier
    var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
      });
    return uuid;
  },
  getUUID : function () {
    var name = 'aak-uuid';
    if (Aak.getValue(name) == 'undefined') {
      Aak.setValue(name, Aak.generateUUID());
    }
    return Aak.getValue(name);
  },
  once : function (day, name, callback) {
    setTimeout(function () {
      var later = isNaN(Aak.getValue(name)) ? 1 : Number(Aak.getValue(name));
      var now = new Date().getTime();
      if (later < now) {
        Aak.setValue(name, (now + (day * 24 * 60 * 60 * 1000)).toString());
        callback();
      }
    }, 1e3);
  },
  go : function (url) {
    location.href = url;
  },
  refresh : function () {
    location.href = location.href;
  },
  reload : function () {
    location.reload(true);
  },
  registerCommands : function () {
    Aak.ready(function () {
      // Scriptish
      // note: No menu command is created when the user script is run in a iframe window.
      // doc: http://tinyurl.com/kvvv7yt
      if (Aak.isTopWindow && typeof GM_registerMenuCommand != 'undefined') {
        GM_registerMenuCommand(Aak.name + ' ' + Aak.getVersion() + ' Homepage', function () {
          location.href = Aak.homeURL;
        });
        GM_registerMenuCommand(Aak.name + ' ' + Aak.getVersion() + ' Update', Aak.update.manual);
      }
    });
  },
  notification : function (message, delay) {
    if (Aak.isTopWindow) {
      // css
      // tool: http://csscompressor.com/
      // animate: http://daneden.github.io/animate.css/
      // crimson: #DC143C
      Aak.addStyle('#aak-notice{font-family:arial;color:#000;font-variant:small-caps;font-size:14px;border:1px solid #999;border-radius:3px;box-shadow:1px 1px 12px #555;width:400px;max-width:400px;min-height:100px;top:0;left:0;line-height:1.2;z-index:999999;position:fixed;display:block;background-color:#fff;background-image:url(https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png);background-repeat:no-repeat;background-position:10px center;background-size:80px;margin:10px}#aak-notice-content{background-color:#fff;width:260px;min-height:70px;margin:20px 10px 10px 100px;text-align:left}.aak-notice-ok{float:right;bottom:10px;right:10px;position:absolute;font-size:12px;border:2px solid #DC143C;background-color:#DC143C;color:#FFF;padding:5px 10px;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.aak-notice-ok:hover{background-color:#FFF;color:#DC143C;text-decoration:none}#aak-notice-close{float:right;top:10px;right:10px;cursor:pointer;width:16px;height:16px;position:absolute}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{animation-name:bounceInLeft;animation-duration:1s;-webkit-animation-name:bounceInLeft;-webkit-animation-duration:1s}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{animation-name:bounceOutLeft;animation-duration:1s;-webkit-animation-name:bounceOutLeft;-webkit-animation-duration:1s}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;-webkit-animation-duration:3s;animation-name:fadeIn;animation-duration:3s}');
      // remove
      Aak.removeElement('#aak-notice');
      setTimeout(function () {
        Aak.createElement({
          tag : 'div',
          id : 'aak-notice',
          class : 'bounceInLeft',
          html : '<img  id="aak-notice-close" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAIVBMVEXcFDwAAADcFDzcFDzcFDzcFDzcFDzcFDzcFDzcFDzcFDxaSbB2AAAACnRSTlP9AASnuEmihYQNEux+bAAAAHpJREFUCNc9jjEKwkAURB8YQX4326jlsri1bJkqtZVYWu4NbK30CN7gQxTBU5olkKkGhuE9dHjFsL8IPYqUNmLnYwy9PTlDSbAmQzdAJRwBVhElgCKkk/lbrQzQSSxT6H9Txkj2drfK1awk9w/bGXFD9yrlr5qGNGn8AcsRF4P77o1SAAAAAElFTkSuQmCC"/><div id="aak-notice-content">' + message + '</div>',
          to : 'body'
        });
        var close = function () {
          Aak.getElement('#aak-notice').className = 'bounceOutLeft';
          setTimeout(function () {
            Aak.removeElement('#aak-notice');
          }, 1e3);
        };
        // close (manually)
        Aak.getElement('#aak-notice-close').onclick = function () {
          close();
        };
        // close (automatically)
        setTimeout(function () {
          close();
        }, delay);
      }, 50);
    }
  },
  listDetect : function () {
    if (Aak.isTopWindow) {
      Aak.ready(function () {
        Aak.once(30, 'aak-checklist', function () {
          var elem = document.createElement("div");
          elem.id = "k2Uw7isHrMm5JXP1Vwdxc567ZKc1aZ4I";
          elem.innerHTML = "<br>";
          document.body.appendChild(elem);
          setTimeout(function () {
            if (elem.clientHeight) {
              Aak.notification('<p>It seems that you have not subscribed to <b>AakList (Anti-Adblock Killer )</b>. <a class="aak-notice-ok" href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a></p>', 3e4);
              Aak.log("AakList not detected !" + elem.clientHeight, 'warn');
            } else {
              Aak.log("AakList detected !");
            }
          }, 5e3);
        });
      });
    }
  },
  openInTab : function (url) {
    if (typeof GM_openInTab != 'undefined') {
      GM_openInTab(url);
    } else {
      var newWindow = window.open(url, "_blank");
      newWindow.focus();
    }
  },
  request : function (settings) {
    // doc: http://tinyurl.com/2t7wbr
    settings.url = settings.url || '';
    settings.method = settings.method || 'GET';
    settings.headers = settings.headers || {};
    settings.timeout = settings.timeout || 2e4; // 20s

    if (typeof GM_xmlhttpRequest != 'undefined') {
      if (settings.data || settings.method == 'POST') {
        settings.method = 'POST';
        settings.data = Aak.serialize(settings.data || {});
        settings.headers = Aak.setProperty(settings.headers, {
            'X-Requested-With' : 'XMLHttpRequest',
            'Content-Type' : 'application/x-www-form-urlencoded'
          });
      }
      GM_xmlhttpRequest(settings);
    } else {
      throw "Sorry! No GM XMLHttpRequest support..";
    }
  },
  update : {
    manual : function () {
      if (Aak.isTopWindow) {
        Aak.notification('<p>Checking...</p>', 6e4);
        Aak.update.getRemote();
      }
    },
    automatic : function () {
      if (Aak.isTopWindow) {
        Aak.ready(function () {
          Aak.once(5, 'aak-checkupdate', function () {
            Aak.request({
              url : 'http://reeksite.com/php/get.php?checkupdate',
              data : {
                scriptid : Aak.scriptid,
                uuid : Aak.getUUID(),
                version : Aak.getVersion(),
                browser : Aak.getBrowser(),
                scriptmanager : Aak.getScriptManager()
              },
              onload : function (response) {
                try {
                  var res = response.responseText;
                  var json = JSON && JSON.parse(res);
                  if (json.update) {
                    Aak.downloadURL = json.url;
                    Aak.update.manual();
                  }
                } catch (e) {
                  Aak.log(response, 'error');
                }
              }
            });
          });
        });
      }
    },
    getRemote : function () {
      Aak.request({
        url : Aak.downloadURL,
        onload : function (response) {
          var html = '<p>Failed...</p>';
          var res = response.responseText;
          var status = response.status;
          if (status == 200) {
            var local = Aak.getVersion();
            var remote = Number(res.match(/@version\s+(\d+\.\d+)/)[1]);
            if (local < remote) {
              var html = '<p>Anti-Adblock Killer v' + remote + ' is available.</p><p class="aak-notice-center"><a class="aak-notice-ok" target="_blank" href="' + Aak.downloadURL + '">Install</a></p>';
            } else {
              var html = '<p>Anti-Adblock Killer is up to date.</p>';
            }
          }
          Aak.getElement('#aak-notice-content').innerHTML = html;
        }
      });
    }
  },
  autoReport : function (system, host, target) {
    var host = host || location.host;
    var target = target || '';
    if (Aak.getLocal(system) == "undefined") {
      Aak.setLocal(system, host); // save
      Aak.request({
        url : 'http://reeksite.com/php/get.php?autoreport',
        data : {
          system : system,
          host : host,
          target : target
        },
        onload : function (response) {
          var res = response.responseText;
          //Aak.log(res);
        }
      });
    }
    Aak.log(system);
  },
  setValue : function (name, value) {
    if (typeof GM_setValue !== "undefined") {
      GM_setValue(name, value);
    } else {
      throw "Sorry! No GM Storage support..";
    }
  },
  getValue : function (name) {
    if (typeof GM_getValue !== "undefined") {
      return GM_getValue(name) || 'undefined';
    } else {
      throw "Sorry! No GM Storage support..";
    }
  },
  setLocal : function (name, value) {
    // doc: http://tinyurl.com/8peqwvd
    if (typeof localStorage !== "undefined") {
      localStorage[name] = value;
    } else {
      throw "Sorry! No Web Storage support..";
    }
  },
  getLocal : function (name) {
    if (typeof localStorage !== "undefined") {
      return localStorage[name] || 'undefined';
    } else {
      throw "Sorry! No Web Storage support..";
    }
  },
  setSession : function (name, value) {
    // Doc: http://tinyurl.com/8peqwvd
    if (typeof sessionStorage !== "undefined") {
      sessionStorage[name] = value;
    } else {
      throw "Sorry! No Web Storage support..";
    }
  },
  getSession : function (name) {
    if (typeof sessionStorage !== "undefined") {
      return sessionStorage[name] || 'undefined';
    } else {
      throw "Sorry! No Web Storage support..";
    }
  },
  setCookie : function (name, value, time) {
    var time = (time) ? time : 365 * 24 * 60 * 60 * 1000; // 1 year
    var expires = new Date();
    expires.setTime(new Date().getTime() + time);
    document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + expires.toGMTString() + ";path=/";
  },
  getCookie : function (name) {
    var oRegex = new RegExp("(?:; )?" + name + "=([^;]*);?");
    if (oRegex.test(document.cookie)) {
      return decodeURIComponent(RegExp["$1"]);
    }
  },
  stopRedirect : function () {
    if ('watch' in window) {
      Aak.uw.watch("location", function () {});
      Aak.uw.location.watch("href", function () {});
    } else {
      Aak.uw.location = "#";
      throw 'Stop Redirect';
    }
  },
  confirmLeave : function () {
    window.onbeforeunload = function () {
      return '';
    };
  },
  confirmReport : function (elem) {
    elem.innerHTML = 'Report';
    elem.title = 'Report issue or anti-adblock';
    elem.onclick = function (e) {
      e.preventDefault();
      if (confirm("Do you want to report issue or anti-adblock ?")) { // Clic on OK
        location.href = Aak.reportURL;
      } else {
        location.href = elem.href;
      }
    }
  },
  unpackScript : function (code) {
    var code = code.trim();
    // pac+ked / pac+ker / mun+ged (concatenating strings for bypass greasefork malware filter.)
    return (/function[(][pm],[au],[cn],[kg],[e],[dr][)]/.test(code)) ? eval(code.replace('eval(', '(').replace(';return p}', ';return p;}')) : false; 
  },
  getScript : function (contains) {
    // by: Watilin
    return Array.prototype.filter.call(
      document.scripts,
      function ($script) {
      var source = $script.innerHTML;
      return source && source.indexOf(contains) != -1;
    })[0];
  },
  stopScript : function (e) {
    e.preventDefault();
    e.stopPropagation();
  },
  innerScript : function (e) {
    return e.target.innerHTML;
  },
  addScript : function (code) {
    var script = document.createElement('script');
    script.innerHTML = (typeof code === 'function') ? Aak.getFunctionCode(code) : code.toString();
    document.head.appendChild(script);
    document.head.removeChild(script);
  },
  addExternalScript : function (src) {
    var script = document.createElement('script');
    script.src = src;
    document.head.appendChild(script);
    document.head.removeChild(script);
  },
  getFunctionCode : function (fn) {
    var str = fn.toString();
    var first = str.indexOf("{") + 1;
    var last = str.lastIndexOf("}");
    return str.substr(first, last - first).trim();
  },
  onElement : function (element, callback, repeat) {
    var repeat = repeat || 10;
    var loop = setInterval(function () {
        var elem = Aak.getElement(element);
        if (elem) {
          callback();
          clearInterval(loop);
        }
        repeat = (repeat) ? repeat - 1 : clearInterval(loop);
      }, 1e3);
  },
  addElement : function (str) { // ex: div.ads or span#ads
    var split = str.replace('.', ':className:').replace('#', ':id:').split(':');
    Aak.addScript('document.documentElement.appendChild(document.createElement("' + split[0] + '")).' + split[1] + ' = "' + split[2] + '"; document.querySelector("' + str + '").innerHTML = "<br>";');
  },
  removeElement : function (elem) {
    if (elem instanceof HTMLElement) {
      return elem.parentNode.removeChild(elem);
    } else if (typeof elem === "string") {
      var elem = document.querySelectorAll(elem);
      for (var i = 0; i < elem.length; i++) {
        elem[i].parentNode.removeChild(elem[i]);
      }
    } else {
      Aak.log('Error ' + elem + ' not removed !');
    }
  },
  getElement : function (elem) {
    if (typeof elem == 'string') {
      return document.querySelector(elem) || false;
    } else if (elem instanceof HTMLElement) {
      return elem;
    } else {
      return false;
      //throw 'Not object or invalid selector';
    }
  },
  createElement : function (props) {
    var node = {};
    for (var name in props) {
      switch (name) {
      case "tag":
        var node = document.createElement(props[name]);
        break;
      case "text":
        var text = ('innerText' in document) ? 'innerText' : 'textContent';
        node[text] = props[name];
        break;
      case "html":
        node.innerHTML = props[name];
        break;
      case "class":
        node.className = props[name];
        break;
      case "to":
        var elem = Aak.getElement(props[name]);
        elem.appendChild(node);
        break;
      case "before":
        var elem = Aak.getElement(props[name]);
        elem.parentNode.insertBefore(node, elem);
        break;
      case "after":
        var elem = Aak.getElement(props[name]);
        elem.parentNode.insertBefore(node, elem.nextSibling);
        break;
      case "replace":
        var elem = Aak.getElement(props[name]);
        elem.parentNode.replaceChild(node, elem);
        break;
      default:
        node.setAttribute(name, props[name]);
      }
    }
  },
  replaceElement : function (oldNode, newNode) {
    oldNode.parentNode.replaceChild(newNode, oldNode);
  },
  setElement : function (selector, props) {
    var node = Aak.getElement(selector);
    if (node) {
      for (var name in props) {
        switch (name) {
        case "text":
          var text = ('innerText' in document) ? 'innerText' : 'textContent';
          node[text] = props[name];
          break;
        case "html":
          node.innerHTML = props[name];
          break;
        case "class":
          node.className = props[name];
          break;
        default:
          node[name] = props[name];
        }
      }
    }
  },
  addStyle : function (css) {
    var css = css.replace(/;/g, ' !important;');
    if (typeof GM_addStyle != 'undefined') {
      GM_addStyle(css);
    } else {
      document.head.appendChild(document.createElement('style')).innerHTML = css;
    }
  },
  getStyle : function (selector, prop) {
    var elem = Aak.getElement(selector);
    if (elem.currentStyle) {
      return elem.currentStyle[prop];
    } else if (window.getComputedStyle) {
      return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);
    }
  },
  decodeURI : function (str) {
    return decodeURIComponent(str);
  },
  encodeURI : function (str) {
    return encodeURIComponent(str);
  },
  encodeHTML : function (str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  },
  decodeHTML : function (str) {
    return String(str).replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"');
  },
  serialize : function (data) {
    if (typeof data == 'object') {
      var arr = [];
      for (var name in data) {
        arr.push(name + '=' + Aak.encodeURI(data[name]));
      }
      return arr.join('&');
    }
    return data;
  },
  unserialize : function (str) {
    var str = Aak.decodeHTML(str);
    var arr = str.split('&');
    var obj = {};
    arr.forEach(function (entry) {
      if (entry != '' && entry.split('=')) {
        var splits = entry.split('=');
        obj[splits[0]] = Aak.decodeURI(splits[1]);
      }
    });
    return obj;
  },
  delProperty : function (obj, props) {
    var props = (typeof props == 'string') ? props.split(',') : props;
    for (var i = 0; i < props.length; i++) {
      var prop = props[i];
      if (obj.hasOwnProperty(prop)) {
        delete obj[prop];
      }
    }
    return obj;
  },
  setProperty : function (obj1, obj2) {
    for (var prop in obj2) {
      obj1[prop] = obj2[prop];
    }
    return obj1;
  },
  editSWF : function (so, opts) {
    Aak.onElement(so, function () {
      var original = Aak.getElement(so);
      var clone = original.cloneNode(true);

      if (opts.setAttributes) {
        var obj = opts.setAttributes;
        for (var p in obj) {
          if (clone.querySelector('param[name="' + p + '"]')) {
            clone.querySelector('param[name="' + p + '"]').value = obj[p];
          } else if (clone.getAttribute(p)) {
            clone.setAttribute(p, obj[p]);
          }
        }
      }
      if (opts.delAttributes) {
        var obj = opts.delAttributes;
        for (var p in obj) {
          if (clone.querySelector('param[name="' + p + '"]')) {
            Aak.removeElement(clone.querySelector('param[name="' + p + '"]'));
          } else if (clone.getAttribute(p)) {
            delete obj[p];
          }
        }
      }

      if (opts.setFlashvars || opts.delFlashvars) {
        if (clone.querySelector('param[name="flashvars"]')) {
          var param = clone.querySelector('param[name="flashvars"]');
          var sFlashvars = param.value;
        } else if (clone.getAttribute('flashvars')) {
          var sFlashvars = clone.getAttribute('flashvars');
        } else if (clone.getAttribute('data') && clone.getAttribute('data').indexOf('?') >= 0) {
          var splits = clone.getAttribute('data').split('?', 2);
          var swf = splits[0];
          var sFlashvars = splits[1];
        }

        var oFlashvars = Aak.unserialize(sFlashvars);
        Aak.log(oFlashvars);
        if (opts.setFlashvars) {
          oFlashvars = Aak.setProperty(oFlashvars, opts.setFlashvars);
        }
        if (opts.delFlashvars) {
          oFlashvars = Aak.delProperty(oFlashvars, opts.delFlashvars);
        }
        var sFlashvars = Aak.serialize(oFlashvars);

        if (param) {
          param.value = sFlashvars;
        } else if (swf) {
          clone.setAttribute('data', swf + '?' + sFlashvars);
        } else {
          clone.setAttribute('flashvars', sFlashvars);
        }
      }
      // replace
      Aak.replaceElement(original, clone);
    });
  },
  player : { // http://tinyurl.com/pb6fthj
    in : {
      node : null,
      html : null,
      tag : null,
      parent : null
    },
    out : {
      node : null,
      html : null,
      tag : null,
      parent : null
    },
    nameplayer : 'custom',
    swfvars : null,
    options : {
      method : 'replace',
      output : 'embed'
    },
    flashvars : {
      str : null,
      obj : {}
    },
    attributes : {
      wmode : 'opaque',
      quality : 'high',
      bgcolor : '#000000',
      type : 'application/x-shockwave-flash',
      pluginspage : 'http://www.adobe.com/go/getflash',
      allowscriptaccess : 'always', // never / always
      allowfullscreen : true
    },
    get : function (element) {

      if (Aak.getElement(element)) {
        this.in.node = Aak.getElement(element);
      } else {
        throw 'Not object or embed player or invalid selector';
      }

      this.in.html = this.getHtml(this.in.node);
      this.in.parent = this.in.node.parentNode;
      this.in.tag = this.in.node.tagName;

      this.attributes.id = this.attributes.name = Aak.generateID();
      this.attributes.height = this.in.node.height || this.in.node.clientHeight || '100%';
      this.attributes.width = this.in.node.width || this.in.node.clientWidth || '100%';

      if (/^(object|embed)$/i.test(this.in.tag)) {
        this.attributes.src = this.in.node.src || this.in.node.data || false;
        this.flashvars.str = this.in.node.flashvars || this.in.node.querySelector('param[name="flashvars"]') && this.in.node.querySelector('param[name="flashvars"]').value || false;
        var swfvars = !this.flashvars.str && this.in.node.data && this.in.node.data.split('?', 2) || false;
        if (swfvars) {
          this.attributes.src = swfvars[0];
          this.flashvars.str = swfvars[1];
        }
        this.splitVars();
        this.joinVars();
      }
      //Aak.log(this);
    },
    log : function (a) {
      Aak.log('Aak.player ' + a || '' + '');
      Aak.log(this);
    },
    mergeObj : function (obj1, obj2) {
      for (var prop in obj2) {
        obj1[prop] = obj2[prop];
      }
    },
    setVars : function (flashvars) {
      if (typeof flashvars == 'string') {
        this.flashvars.str = flashvars;
        this.splitVars();
        this.joinVars();
      } else if (typeof flashvars == 'object') {
        this.mergeObj(this.flashvars.obj, flashvars);
        this.joinVars();
        this.splitVars();
      }
    },
    removeVars : function (str) {
      var obj = this.flashvars.obj;
      var splits = str.split(',');
      for (var i = 0; i < splits.length; i++) {
        var k = splits[i];
        if (k in obj)
          delete obj[k];
      }
      this.flashvars.obj = obj;
      this.joinVars();
    },
    splitVars : function () {
      var str = Aak.decodeHTML(this.flashvars.str);
      var arr = str.split('&');
      var obj = {};
      for (var i = 0; i < arr.length; i++) {
        var k = arr[i];
        if (k != '' && k.split('=')) {
          var s = k.split('=');
          obj[s[0]] = Aak.decodeURI(s[1]);
        }
      }
      this.flashvars.obj = obj;
    },
    joinVars : function () {
      var obj = this.flashvars.obj;
      var arr = [];
      for (var k in obj) {
        arr.push(k + '=' + Aak.encodeURI(obj[k])); // encodeURIComponent
      }
      this.flashvars.str = arr.join('&'); // &amp;
    },
    insert : function () {
      //
      this.swfvars = [this.attributes.src, this.flashvars.str].join('?');
      switch (this.options.output) {
      case 'iframe':
        this.out.node = document.createElement('iframe');
        this.out.node.setAttribute('src', this.swfvars);
        this.out.node.setAttribute('width', this.attributes.width + 10);
        this.out.node.setAttribute('height', this.attributes.height + 10);
        this.out.node.setAttribute('frameborder', 0);
        this.out.node.setAttribute('scrolling', 'no');
        this.out.node.setAttribute('allowfullscreen', true); // http://tinyurl.com/oyyehab
        // allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen
        break;
      case 'tab':
        return Aak.openInTab(this.swfvars);
        break;
      case 'html5':
        this.out.node = document.createElement('video');
        this.out.node.innerHTML = '<strong>Video not playing ? <a href="' + this.attributes.src + '" download>Download file</a> instead.</strong>';
        for (var name in this.attributes) {
          this.out.node.setAttribute(name, this.attributes[name]);
        }
        /*
        if (this.attributes.autoplay) { // fix bug duplicate playing on firefox/chrome
        this.out.node.onloadstart = function () {
        this.play();
        };
        }*/
        this.out.node.onerror = function () { // switch to plugin player
          setTimeout(function () {
            Aak.player.plugin(this, {
              file : Aak.player.attributes.src
            }, 3e3);
          });
        };
        break;
      default:
        this.out.node = document.createElement('embed');
        for (var name in this.attributes) {
          this.out.node.setAttribute(name, this.attributes[name]);
        }
        if (this.flashvars.str) {
          this.out.node.setAttribute('flashvars', this.flashvars.str);
        }
      }

      this.out.html = this.getHtml(this.out.node);
      this.out.tag = this.out.node.tagName;

      if (this.options.output == 'inner') {
        this.in.node.innerHTML = this.out.html;
      } else { // replace
        this.in.parent.replaceChild(this.out.node, this.in.node);
      }
      this.log('done');
    },
    getHtml : function (node) {
      var tmp = document.createElement('div');
      tmp.appendChild(node.cloneNode(true))
      return tmp.innerHTML;
    },
    getMime : function (file) {
      var mime = file.match(/\.(flv|mp4|webm|ogv|ogg|mp3|mpeg|mpg|mkv|avi|mov)$/);
      if (mime && mime.length == 2) {
        return 'video/' + mime[1];
      } else {
        return 'video/mp4';
      }
    },
    jwplayer5 : function (id, setup) {
      // Jwplayer 5 (flash)
      // support: http://tinyurl.com/mjavxdr
      // mp4, m4v, f4v, mov, flv, webm, aac, mp3, vorbis, hls, rtmp, youtube, aac, m4a, f4a, mp3, ogg, oga

      this.get(id);
      this.nameplayer = 'jwplayer5';
      // v5.9: http://player.longtailvideo.com/player5.9.swf
      this.attributes.src = setup.src || "http://player.longtailvideo.com/player.swf"; // v5.10
      this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
      this.attributes.width = setup.width || this.in.node.clientWidth || "100%";

      setup.abouttext = 'Anti-Adblock Killer';
      setup.aboutlink = 'https://github.com/reek/anti-adblock-killer';
      this.mergeObj(this.flashvars.obj, setup);
      this.flashvars.obj.controlbar = 'over';
      if (setup.skin) {
        this.flashvars.obj.skin = 'http://www.longtailvideo.com/files/skins/' + setup.skin + '/5/' + setup.skin + '.zip';
      }
      this.joinVars();
      this.options.output = 'embed';
      this.insert();
    },
    flowplayer : function (id, setup) {
      // Flowplayer (flash)
      // support: mp4, flv, f4v, m4v, mov
      // Config: http://tinyurl.com/na7vy7b

      this.get(id);
      this.nameplayer = 'flowplayer';
      this.attributes.src = "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf";
      this.attributes.height = setup.clip && setup.clip.height || this.in.node.clientHeight || "100%";
      this.attributes.width = setup.clip && setup.clip.width || this.in.node.clientWidth || "100%";

      setup.autoPlay = setup.clip && setup.clip.autostart;
      setup.url = setup.clip && setup.clip.file;

      this.flashvars.obj = {
        config : JSON.stringify(setup)
      };
      this.flashvars.str = 'config=' + JSON.stringify(setup);
      this.options.output = 'embed';
      this.insert();
    },
    videojs : function (id, setup) {
      //http://tinyurl.com/pcgx2ob
      //http://tinyurl.com/nscztmm
      //http://jsfiddle.net/N8Zs5/18/

      this.get(id);
      this.nameplayer = 'videoJs';

      setup.autostart = setup.autostart || false;
      setup.height = setup.height || this.attributes.height;
      setup.width = setup.width || this.attributes.width;
      setup.type = this.getMime(setup.file || setup.src);
      setup.id = setup.id || Aak.generateID();

      var html = '<html><head><link href="http://vjs.zencdn.net/4.8/video-js.css" rel="stylesheet"><script src="http://vjs.zencdn.net/4.8/video.js"></script></head><body><video id="' + setup.id + '" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="' + setup.width + '" height="' + setup.height + '"></video><script>videojs("' + setup.id + '",{techOrder:["flash","html5"],autoplay:' + setup.autostart + ',sources:[{type:"' + setup.type + '",src:"' + setup.file + '"}]})</script></body></html>';
      this.attributes.src = "data:text/html;charset=utf-8," + escape(html);
      this.options.output = 'iframe';
      this.insert();
    },
    jwplayer6 : function (id, setup) {
      // Jwplayer 6 (flash)
      // Config: http://tinyurl.com/lcygyu9
      // Iframe: http://tinyurl.com/86agg68

      this.get(id);
      this.nameplayer = 'jwplayer6';

      setup.primary = 'flash';
      setup.height = setup.height || this.attributes.height;
      setup.width = setup.width || this.attributes.width;

      var html = '<html><head><script src="http://jwpsrv.com/library/5V3tOP97EeK2SxIxOUCPzg.js"></script></head><body><div id="myElement"></div><script>jwplayer("myElement").setup(' + JSON.stringify(setup) + ');</script></body></html>';
      this.attributes.src = "data:text/html;charset=utf-8," + escape(html);
      this.options.output = 'iframe';
      this.insert();
    },
    external : function (nameplayer, id, setup) {

      this.get(id);
      this.nameplayer = 'external';

      setup.height = setup.height || this.attributes.height;
      setup.width = setup.width || this.attributes.width;

      var encoded = btoa(JSON.stringify(setup));
      this.attributes.src = 'http://reeksite.com/player/player.php?' + nameplayer + '=' + encoded;
      this.options.output = 'iframe';
      this.insert();
    },
    plugin : function (id, setup) {
      // Web Player (plugin)
      // VLC : http://tinyurl.com/omlzp39
      // WMP :
      // QT :

      this.get(id);
      this.nameplayer = 'plugin';
      this.attributes.autoplay = setup.autostart || setup.autoplay || false;
      this.attributes.src = setup.file || setup.src;
      this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
      this.attributes.width = setup.width || this.in.node.clientWidth || "100%";

      // Plugins
      var plugins = [];
      if (navigator.plugins && (navigator.plugins.length > 0)) {
        for (var i = 0; i < navigator.plugins.length; i++) {
          plugins.push(navigator.plugins[i].name);
        }
        var plugins = plugins.join('|');
        if (Aak.contains(plugins, 'Windows Media Player')) {
          this.attributes.type = "application/x-mplayer2";
          this.attributes.pluginspage = 'http://www.microsoft.com/Windows/MediaPlayer/';
        } else if (Aak.contains(plugins, 'VLC Web Plugin')) {
          this.attributes.type = "application/x-vlc-plugin";
          this.attributes.pluginspage = "http://www.videolan.org";
        } else if (Aak.contains(plugins, 'QuickTime Plug-in')) {
          this.attributes.type = "video/quicktime";
          this.attributes.pluginspage = "http://www.apple.com/quicktime/download/";
        } else {
          Aak.notification('<p>You need install VLC Web Plugin ! <a class="aak-notice-ok" href="http://www.videolan.org/vlc/" target="_blank">Install</a></p>', 30000);
          return false;
        }
      }
      this.options.output = 'embed';
      this.insert();
    },
    html5 : function (id, setup) {
      /* Video Tag (html5)
      note:
      https://html5rocks.com/en/tutorials/video/basics/
      http://www.w3schools.com/tags/tag_video.asp
      test:
      https://www.joomlacontenteditor.net/images/big_buck_bunny.flv
      http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
      http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm
      http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv
       */

      this.get(id);
      this.attributes = {};
      this.attributes.src = setup.file || setup.src;
      this.attributes.id = this.attributes.name = Aak.generateID();
      this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
      this.attributes.width = setup.width || this.in.node.clientWidth || "100%";
      this.attributes.type = this.getMime(this.attributes.src);
      this.attributes.controls = 'controls';
      //this.attributes.preload = 'none';
      if (setup.autostart || setup.autoplay) {
        //this.attributes.autoplay = 'autoplay'; bug duplicated playing
      }
      this.options.output = 'html5';
      this.insert();
    }
  },
  rules : {
    // --------------------------------------------------------------------------------------------
    // Specific
    // --------------------------------------------------------------------------------------------
    blogspot : { // No Country Redirect (NCR)
      // doc: http://tinyurl.com/odncet7
      // issue: https://github.com/reek/anti-adblock-killer/issues/490
      host : ['.blogspot.'],
      onStart : function () {
        var blog = location.host.replace('www.', '').split(".");
        if (blog[blog.length - 1] != "com") {
          Aak.go("http://" + blog[0] + ".blogspot.com/ncr" + location.pathname);
        }
      }
    },
    blogspot_knowlet3389 : {
      host : ['knowlet3389.blogspot.'],
      onStart : function () {
        // + abp rule solution
        Aak.addStyle("#gAds { height: 1px; width: 1px; }");
      }
    },
    uptobox_uptostream : {
      host : ['uptobox.com', 'uptostream.com'],
      onStart : function () {
        // Old solution [deprecated]
        var id = location.pathname.match(/[0-9a-z]{12}/);
        if (id != null) {
          Aak.addStyle("#" + id[0] + " { height: 12px; }");
        }
        // New 12.05.2014
        // + abp rule (alternative solution)
        Aak.addStyle("#adblocktrap { height: 12px; }");
      },
      onIdle : function () {
        // remove ads
        Aak.removeElement('*[src^="http://ads.uptobox.com/"],*[href^="http://ads.uptobox.com/"]');
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'window.location = "http://uptobox.com/?op=adblock";')) {
          Aak.stopScript(e);
        }
      }
    },
    notre_planete_info : {
      host : ['notre-planete.info'],
      onStart : function () {
        Aak.addStyle("#testpub { height: 51px; }");
        Aak.addStyle("#pub_meh { height: 51px; }");
      },
      onIdle : function () {
        /* + abp rule
        var pub --> pagead2.googlesyndication.com
         */
        //Aak.log(Aak.uw.pub, document.getElementById("pub_meh").clientHeight, Aak.uw.largeur)
      }
    },
    anisubsia_com : {
      host : ['anisubsia.com'],
      onStart : function () {
        // + abp rule #@#.adsantilok
        Aak.addStyle(".adsantilok { height: 5px; }");
      },
      onIdle : function () {
        Aak.uw.jAntiBlock = function () {};
        Aak.uw.CekBlok = function () {};
      }
    },
    elahmad_com : {
      host : ['elahmad.com'],
      onStart : function () {
        Aak.addStyle("#adblock { height: 1px; }");
      }
    },
    multiup_org : {
      host : ['multiup.org', 'streamupload.org'],
      onStart : function () {
        Aak.addStyle("#crazy { height: 3px; }");
      }
    },
    mrtzcmp3_net : {
      host : ['mrtzcmp3.net'],
      onStart : function () {
        Aak.addStyle(".rtm_ad { height: 1px; }");
      }
    },
    go4up_com : {
      host : ['go4up.com'],
      onStart : function () {
        Aak.addStyle(".myTestAd { height: 1px; }");
      }
    },
    bknime_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/291
      host : ['bknime.com'],
      onStart : function () {
        Aak.addStyle("#myTestAd { height: 1px; }");
      }
    },
    bg_gledai_tv : {
      host : ['bg-gledai.tv'],
      onStart : function () {
        Aak.addStyle(".myAd { height: 1px; }");
      }
    },
    thepcspy_com : { // http://thepcspy.com/read/how_to_block_adblock/
      host : ['thepcspy.com'],
      onStart : function () {
        Aak.addStyle(".myTestAd { height: 1px; }");
        Aak.addStyle(".blocked { display: none; }");
      },
      onIdle : function () {
        Aak.removeElement('.blocked');
      }
    },
    automobile_sportive_com : {
      host : ['automobile-sportive.com'],
      onStart : function () {
        Aak.addStyle(".myTestAd { height: 51px; display: none; }");
      }
    },
    snsw_us : {
      host : ['snsw.us'],
      onStart : function () {
        Aak.addStyle("#ad_1 { height: 1px; }");
      }
    },
    urlchecker_net : {
      host : ['urlchecker.net'],
      onStart : function () {
        Aak.addStyle("#adchecker { height: 20px; }");
      }
    },
    skiplimite_tv : {
      host : ['skiplimite.tv'],
      onStart : function () {
        Aak.addStyle("div.addthis_native_toolbox + div[id] { height: 12px; }");
      }
    },
    filecore_co_nz : {
      host : ['filecore.co.nz'],
      onStart : function () {
        Aak.addStyle(".adsense { height: 5px; }");
      }
    },
    interfans_org : {
      // test: http://www.interfans.org/forum/
      host : ['interfans.org'],
      onStart : function () {
        Aak.addStyle(".ad_global_header { height: 1px; display: none; }");
      }
    },
    maxdebrideur_com : {
      host : ['maxdebrideur.com'],
      onStart : function () {
        Aak.addStyle(".clear + div[id] { height: 12px; }");
      }
    },
    topzone_it : {
      host : ['topzone.lt'],
      onStart : function () {
        Aak.addStyle(".forumAd { height: 1px; display: none; }");
      }
    },
    nana10_co_il : {
      host : ['.nana10.'],
      onStart : function () {
        Aak.addStyle("#advert-tracker { height: 1px; }");
      }
    },
    plej_tv : {
      host : ['plej.tv'],
      onStart : function () {
        Aak.addStyle(".advert_box { height: 1px; }");
      }
    },
    eveskunk_com : {
      host : ['eveskunk.com'],
      onStart : function () {
        // Disable Antiblock 1
        //Aak.addElement('div.adsbygoogle'); // dont work
        // + abp rule eveskunk.com#@#.adsbygoogle
        Aak.addStyle(".adsbygoogle { height: 5px; }");
        // Disable Antiblock 2
        Aak.addStyle(".container .row .col-lg-12 div[id] { height: 35px; }");
      },
      onIdle : function () {
        // Disable Antiblock 1
        document.querySelector('.adsbygoogle').innerHTML = '<br>';
        // Disable Antiblock 2
        Aak.uw.trackAdBlocking = function () {};
      }
    },
    tweaktown_com : {
      host : ['tweaktown.com'],
      onStart : function () {
        Aak.addStyle("#div-gpt-ad-1378071706813-0, #div-gpt-ad-1378150878492-1 { height: 3px; display: none; }");
      }
    },
    debrideurstream_fr : {
      host : ['debrideurstream.fr'],
      onStart : function () {
        Aak.addStyle("#content div[id][align=center] { height: 12px; }");
      }
    },
    preemlinks_com : {
      host : ['preemlinks.com'],
      onStart : function () {
        Aak.addStyle("#divads { height: 1px; }");
      }
    },
    hentai_to : {
      host : ['hentai.to'],
      onStart : function () {
        Aak.addStyle("#hentaito123 { height: 11px; }");
      }
    },
    prototurk_com : {
      host : ['prototurk.com'],
      onStart : function () {
        Aak.addStyle("#reklam { height: 1px; }");
      }
    },
    mufa_de : {
      host : ['mufa.de'],
      onStart : function () {
        Aak.addStyle("#leaderboard { height: 5px; }");
        Aak.addStyle("#large-rectangle { height: 5px; }");
        Aak.addStyle("#ad-header-468x60 { height: 5px; }");
      }
    },
    watcharab_com : {
      host : ['watcharab.com'],
      onStart : function () {
        // + adp rule watcharab.com#@##adblock
        Aak.addStyle("#adblock { height: 5px; }");
      }
    },
    freedomip_com : {
      host : ['freedom-ip.com'],
      onStart : function () {
        Aak.addStyle(".pub_vertical ins, .pub_vertical div { height: 11px; }");
      }
    },
    wakanim_tv : {
      host : ['wakanim.tv'],
      onStart : function () {
        Aak.addStyle("#detector { display: none; }");
        Aak.addStyle("#nopub { display: block; }");
      }
    },
    tzetze_it : {
      host : ['tzetze.it'],
      onStart : function () {
        // + abp rule
        Aak.addStyle('#TzeTze_728x90 { height: 5px;}');
      }
    },
    simply_debrid_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/332
      host : ['simply-debrid.com'],
      onStart : function () {
        // + abp rule
        Aak.addStyle('#adsense { height: 5px;}');
      }
    },
    manga9_com : {
      host : ['manga9.com', 'mangabee.co'],
      onStart : function () {
        Aak.addStyle(".adblock { height: 31px; }");
      }
    },
    onemanga2_com : {
      host : ['onemanga2.com'],
      onStart : function () {
        Aak.addStyle(".afs_ads { height: 5px; }");
      }
    },
    mangabird_com : {
      host : ['mangabird.com'],
      onStart : function () {
        Aak.addStyle(".afs_ads { height: 5px; }");
      }
    },
    bait_adsbygoogle : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/547
      host : ['bitcoinaliens.com'],
      onStart : function () {
        Aak.addElement('ins.adsbygoogle');
      }
    },
    bait_tester : {
      host : ['osoarcade.com', 'd3brid4y0u.info', 'fileice.net', 'nosteam.ro', 'openrunner.com', 'easybillets.com', 'spox.fr', 'yovoyages.com', 'tv3.co.nz', 'freeallmusic.info', 'putlocker.com', 'sockshare.com', 'dramapassion.com', 'yooclick.com', 'online.ua'],
      onStart : function () {
        Aak.addElement('div#tester');
      }
    },
    bait_add : {
      host : ['filecom.net', 'upshare.org', 'skippyfile.com', 'mwfiles.net', 'up-flow.org'],
      onStart : function () {
        Aak.addElement('div#add');
      }
    },
    bait_adpbtest : {
      host : ['leaguesecretary.com', 'teknogods.com', 'hellsmedia.com'],
      onStart : function () {
        Aak.addElement('div#adpbtest');
      }
    },
    bait_adtester : {
      host : ['freesportsbet.com', 'sportsplays.com'],
      onStart : function () {
        Aak.addElement('div#ad-tester');
      }
    },
    tgo_tv_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/303
      host : ['tgo-tv.com'],
      onStart : function () {
        Aak.addStyle("#adb, #bannerad1, .load_stream { display: none; }");
        Aak.addElement('div#tester');
      },
      onEnd : function () {
        Aak.uw.threshold = 1000;
        Aak.removeElement('.chat_frame'); // bug reload iframe
      }
    },
    freegamehosting_nl : {
      host : ['freegamehosting.nl'],
      onStart : function () {
        Aak.addElement('div#adtest');
      }
    },
    theweatherspace_com : {
      host : ['theweatherspace.com'],
      onStart : function () {
        Aak.addElement('div#ab-bl-advertisement');
      }
    },
    stream4free_eu : {
      host : ['stream4free.eu'],
      onStart : function () {
        // +abp alt solution
        Aak.addElement('div#jpayday');
        Aak.uw.jpayday_alert = 1;
      }
    },
    _3dnews_ru : {
      // issue: https://greasyfork.org/ru/forum/discussion/5750
      host : ['3dnews.ru'],
      onStart : function () {
        Aak.setCookie('adblockwarn', 1);
        Aak.addStyle("#earAds { width: 401px; }");
        Aak.addElement('div#earAds');
        Aak.uw.__AT_detected = true;
      }
    },
    rmprepusb_com : {
      host : ['rmprepusb.com'],
      onStart : function () {
        Aak.setCookie('jot_viewer', 3);
      }
    },
    primeshare_tv : {
      host : ['primeshare.tv'],
      onStart : function () {
        Aak.addElement('div#adblock');
      }
    },
    jkanime_net : {
      host : ['jkanime.net'],
      // @@||jkanime.net/assets/js/advertisement2.js
      onStart : function () {
        Aak.addElement('div#reco');
      }
    },
    _720pmkv_com : {
      host : ['720pmkv.com'],
      onStart : function () {
        Aak.addElement('div#advert');
      }
    },
    paidverts_com : {
      host : ['paidverts.com'],
      onStart : function () {
        Aak.addElement('div.afs_ads');
      }
    },
    italiatv_org : {
      host : ['italiatv.org'],
      onStart : function () {
        Aak.addElement('div#fab13');
      }
    },    
    totaldebrid_org : {
      host : ['totaldebrid.org', 'referencemega.com'],
      onStart : function () {
        Aak.addElement('div.afs_ads');
      },
      onEnd : function () {
        Aak.removeElement('#dialog');
      }
    },
    chrissmoove_com : {
      host : ['chrissmoove.com'],
      onStart : function () {
        //Aak.addElement('div#adserver');
      }
    },
    eventhubs_com : {
      host : ['eventhubs.com'],
      onStart : function () {
        Aak.addElement('div#blahyblaci1');
      }
    },
    forum_pac_rom_com : {
      host : ['forum.pac-rom.com'],
      onStart : function () {
        Aak.addElement('div.banner_ads');
      }
    },
    antennesport_com : {
      host : ['antennesport.com', 'serverhd.eu'],
      onIdle : function () { // for antennesport
        // Remove Pub
        Aak.removeElement("#pub .pubclose");
        // Redirect to Player
        Aak.setElement('#pub .embed iframe', {
          src : '/embed/embed.php'
        });
      },
      onBeforeScript : function (e) { // for serverhd
        if (Aak.contains(Aak.innerScript(e), 'http://xaxa.juanantoniogonza.netdna-cdn.com/noadsblock.html')) {
          Aak.stopScript(e);
        }
      }
    },
    disableAlertbox : {
      host : ['drivearabia.com', 'putlocker.com', 'doatoolsita.altervista.org', 'sockshare.com', 'free-movie-home.com', 'pc.online143.com', 'kooora.com', 'str3amtv.co.nr', 'str3amtv.altervista.org', 'str3am.altervista.org', 'filecom.net', 'pipocas.tv', 'generatupremium.biz', 'mega-debrid.eu', 'premiumst0re.blogspot.com', 'dl-protect.com'],
      onAlways : function () {
        Aak.uw.alert = function () {};
      }
    },
    generatupremium_biz : {
      host : ['generatupremium.biz'],
      onStart : function () {
        // Disable Confirm Box
        //Aak.uw.confirm = function (){};
        Aak.setCookie('genera', false);
      }
    },
    tek_domains : {
      // by: Alexander255
      // issue: https://github.com/reek/anti-adblock-killer/issues/512
      host : ['tek.no', 'gamer.no', 'teknofil.no', 'insidetelecom.no', 'prisguide.no', 'diskusjon.no', 'teknojobb.no', 'akam.no', 'hardware.no', 'amobil.no'],
      onIdle : function () {
        var ad_frame = document.createElement("iframe");
        ad_frame.name = "_frame";
        document.body.appendChild(ad_frame);
        ad_frame.addEventListener("load", function () {
          ad_frame.contentWindow.wrappedJSObject.inFIF = true;
        });
      }
    },
    planetatvonlinehd_blogspot : {
      host : ['planetatvonlinehd.blogspot.'],
      onAlways : function () {
        Aak.uw.jQAntiAdsBlock = function () {
          return false
        };
      }
    },
    binbucks_com : {
      // by: Alexander255
      // issue: https://github.com/reek/anti-adblock-killer/issues/545
      host : ['binbucks.com'],
      onIdle : function () {
        Aak.uw.testJuicyPay = true;
        Aak.uw.testSensePay = true;
      }
    },    
    cwtv_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/340
      // code: http://pastebin.com/J7e73MpJ
      host : ['cwtv.com'],
      onAlways : function () {
        Aak.uw.CLAPI = undefined;
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'CLAPI.IsAdBlocking(function(isAdBlocking, hasAdBlocked)')) {
          Aak.stopScript(e);
        }
      }
    },
    pregen_net : {
      host : ['pregen.net'],
      onStart : function () {
        // skip page info
        Aak.setCookie('pgn', 1);
      }
    },
    onvasortir_com : {
      host : ['onvasortir.com'],
      onAlways : function () {
        // +abp rule alt solution
        Aak.uw.sas = {};
      }
    },
    ville_ideale_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/258
      // code: http://pastebin.com/16mnmeMc
      host : ['ville-ideale.com'],
      onAlways : function () {
        // +abp rule alt solution
        Aak.uw.exec_sp = function () {};
      }
    },
    notre_planete_info : {
      // issue:
      // code: http://pastebin.com/qrS6QGGE
      host : ['notre-planete.info'],
      onAlways : function () {
        // +abp rule alt solution
        Aak.uw.pubpop = function () {};
      }
    },
    apkmirror_com : {
      host : ['apkmirror.com'],
      onAlways : function () {
        Aak.uw.doCheck = function () {};
      }
    },
    anizm_com : {
      host : ['anizm.com'],
      onAlways : function () {
        Aak.uw.stopAdBlock = {};
      }
    },
    mangasproject_com : {
      // issue: http://tinyurl.com/ncezaan
      host : ['mangasproject.com'],
      onAlways : function () {
        Aak.uw.jLoader.Leitor.data.adBlock = false;
      }
    },
    pipocas_tv : {
      host : ['pipocas.tv'],
      onStart : function () {
        // Also added in disableAlertbox
        // No popup
        Aak.setCookie('popup_user_login', 'yes');
      }
    },
    linkbucks_com : {
      host : ['referencemega.com', 'fpabd.com', 'crackacc.com'],
      onStart : function () {
        // Skip visitScript when site use CloudFlare Rocket Script
        Aak.setCookie('_lbGatePassed', true);
      }
    },
    _15min_lt : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/432
      // code: http://pastebin.com/0cqV8LTY
      host : ['15min.lt'],
      onAlways : function () {
        Aak.uw.ado = {};
      }
    },
    vgunetwork_com : {
      host : ['vgunetwork.com'],
      onIdle : function () {
        Aak.setCookie('stopIt', 1);
        var close = Aak.getElement('#some_ad_block_key_close');
        if (close) {
          close.click();
        }
      }
    },
    seekingalpha_com : {
      host : ['seekingalpha.com'],
      onAlways : function () {
        Aak.uw.SA.Pages.Article.is_gnikcolbda = function () {
          return false;
        }
      }
    },
    anisearch_com : { // solved with abp rule
      host : ['anisearch.com'],
      onIdle : function () {
        //Aak.uw.is_loaded = true;
        //Aak.removeElement('.box-error');
      }
    },
    linkcrypt_ws : {
      host : ['linkcrypt.ws'],
      onIdle : function () {
        Aak.setElement('#ad_cont', {
          id : '',
          style : 'display:block;'
        });
        Aak.setElement('#container_check', {
          style : 'display:none;'
        });
      }
    },
    eventosppv_me : {
      host : ['eventosppv.me'],
      onIdle : function () {
        Aak.removeElement('#nf37');
      }
    },
    bolor_toli_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/552
      host : ['bolor-toli.com'],
      onEnd : function () {
        var ads = document.getElementsByClassName('banner');
        for (var i = 0; i < ads.length; i++) {
          var ad = ads[i];
          ad.innerHTML = '<br>';
          ad.style.height = '1px';
        }
      }
    },    
    vivo_sx : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/280
      host : ['vivo.sx'],
      onEnd : function () {
        var alert = Aak.getElement('#alert-throttle');
        if (alert) {
          Aak.removeElement(alert);
        }
        var button = Aak.getElement('button#access');
        if (button) {
          button.removeAttribute('id');
          button.removeAttribute('disabled');
          button.innerHTML = 'Continue to video';
        }
        setTimeout(function () {
          var input = Aak.getElement('input[name="throttle"]');
          if (input) {
            Aak.removeElement(input);
          }
        }, 1000);
      }
    },
    vvvvid_it : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/205
      // issue: https://github.com/reek/anti-adblock-killer/issues/205
      host : ['vvvvid.it'],
      onEnd : function () {
        Aak.uw.vvvvid.onAdBlock = function () {};
      }
    },
    luxyad_com : { // skip redirect myanimes.li
      host : ['luxyad.com'],
      onIdle : function () {
        if ('/Information.php' == location.pathname) {
          var href = location.href;
          location.href = href.substr(href.indexOf('url=') + 4, href.length);
        }
      }
    },
    userscripts_domains : { // Redirect to Github
      host : ['userscripts.org', 'userscripts.org:8080', 'userscripts-mirror.org'],
      onStart : function () {
        if (/155840$/.test(location.pathname)) {
          location.href = Aak.homeURL;
        }
      }
    },
    openuserjs_org : {
      host : ['openuserjs.org'],
      onIdle : function () {
        var element = Aak.getElement('a[href$="/issues"]');
        if (/Anti-Adblock_Killer_Reek/.test(location.pathname) && element) {
          Aak.confirmReport(element);
        }
      }
    },
    greasyfork_org : {
      host : ['greasyfork.org'],
      onIdle : function () {
        var element = Aak.getElement('a[href$="/feedback"]');
        if (/-anti-adblock-killer-reek/.test(location.pathname) && element) {
          Aak.confirmReport(element);
        }
      }
    },
    monkeyguts_com : {
      host : ['monkeyguts.com'],
      onIdle : function () {
        var element = Aak.getElement('a[href*="code.php?nav=forum"]');
        if (/monkeyguts.com\/code.php\?id=351/.test(location.href) && element) {
          Aak.confirmReport(element);
        }
      }
    },
    aidemu_fr : {
      host : ['aidemu.fr'],
      onStart : function () {
        Aak.setCookie('adblockPopup', true);
      }
    },
    eami_in : {
      host : ['eami.in'],
      onStart : function () {
        Aak.setCookie('ad_locked', 1);
      },
      onIdle : function () {
        Aak.setCookie('ad_locked', 1);
      }
    },
    bigdownloader_com : {
      host : ['bigdownloader.com'],
      onIdle : function () {
        Aak.removeElement('#anti_adblock');
      }
    },
    gametrailers_com : {
      host : ['gametrailers.com'],
      onIdle : function () {
        Aak.removeElement('#ad_blocking');
      }
    },
    ad_block_test : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/279
      host : ['scan-mx.com', 'onepiece-mx.net'],
      onAlways : function () {
        Aak.uw.ad_block_test = function () {};
      },
      onIdle : function () {
        Aak.setElement('#yop', {
          id : ''
        });
      }
    },
    // Bitcoins
    bitcoinker_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/230
      host : ['bitcoinker.com'],
      onIdle : function () {
        Aak.removeElement('#AdBlocked');
      }
    },
    moondoge_co_in : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/384
      // issue: https://github.com/reek/anti-adblock-killer/issues/232
      // issue: https://github.com/reek/anti-adblock-killer/issues/233
      // issue: https://github.com/reek/anti-adblock-killer/issues/236
      host : ['moondoge.co.in', 'moonliteco.in', 'moonbit.co.in', 'bitcoinzebra.com'],
      onIdle : function () {
        Aak.removeElement('#AB, #E442Dv, #eCC5h');
      }
    },
    bitcoiner_net : {
      // issue:
      host : ['bitcoiner.net', 'litecoiner.net'],
      onStart : function () {
        Aak.addElement('div#tester');
        Aak.addElement('div#ad-top');
      }
    },
    bitcoins_nx_tc : {
      host : ['freebitcoins.nx.tc', 'getbitcoins.nx.tc'],
      onAlways : function () {
        Aak.uw.ad_block_test = function () {
          return false
        };
      }
    },
    freecoins4_me : {
      host : ['freecoins4.me'],
      onAlways : function () {
        Aak.uw.check = function () {
          return false
        };
      }
    },
    torrent_tv_ru : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/537
      host : ['torrent-tv.ru'],
      onAlways : function () {
        Aak.uw.c_Oo_Advert_Shown = true;
      }
    },    
    inn_co_il : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/532
      host : ['inn.co.il'],
      onStart : function () {
        Aak.addScript(function () {
          TRC = {};
          TRC.blocker = {
            states : {
              ABP_DETECTION_DISABLED : -2,
              ABP_NOT_DETECTED : 0,
              ABP_DETECTED : 1
            },
            createBlockDetectionDiv : function (a) {
              var c = b.createElement("div");
              return c.className = '',
              c.appendChild(b.createTextNode(".")),
              b.documentElement.appendChild(c),
              c
            },
            isBlockDetectedOnDiv : function (a) {
              return 0;
            },
            isBlockDetectedOnClassNames : function (a) {
              return 0;
            },
            getBlockedState : function (a) {
              return 0;
            }
          }
        });
      }
    },
    turkanime_tv : {
      // issue: http://tinyurl.com/n6mzdxs
      host : ['turkanime.tv'],
      onAlways : function () {
        Aak.uw.BlokKontrol = {};
      }
    },
    turkanime_tv : {
      // issue: http://tinyurl.com/n6mzdxs
      host : ['turkanime.tv'],
      onAlways : function () {
        Aak.uw.adblockblock = function () {};
      }
    },
    wtfbit_ch : {
      // issue:
      host : ['wtfbit.ch'],
      onAlways : function () {
        Aak.uw.writeHTMLasJS = function () {};
      }
    },
    bitvisits_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/266
      host : ['bitvisits.com'],
      onAlways : function () {
        Aak.uw.blockAdblockUser = function () {};
      }
    },
    vipleague_domains : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/290
      // issue: https://github.com/reek/anti-adblock-killer/issues/297
      // issue: https://github.com/reek/anti-adblock-killer/issues/301
      // issue: https://github.com/reek/anti-adblock-killer/issues/273
      // issue: https://github.com/reek/anti-adblock-killer/issues/271
      // issue: https://github.com/reek/anti-adblock-killer/issues/322
      // issue: https://github.com/reek/anti-adblock-killer/issues/326
      // +abp rule alt solution
      host : ['vipleague.ws', 'vipleague.tv', 'vipleague.se', 'vipleague.me', 'vipleague.co', 'vipleague.sx', 'vipleague.ch', 'vipbox.tv', 'vipbox.co', 'vipbox.sx', 'vipboxsa.co', 'strikeout.co', 'homerun.re'],
      onStart : function () {
        // Solution 1
        Aak.uw.iExist = true;
        Aak.addStyle(".vip_052x003 { height: 250px; }");
        Aak.addStyle(".vip_09x827 { height: 26px; }");
      },
      onAlways : function () {
        // Solution 2
        Aak.uw.showmsgblock = function () {};
      }
    },
    vg_no : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/292
      // +abp rule
      host : ['vg.no', 'e24.no'],
      onAlways : function () {
        Aak.uw.__AB__ = function () {};
      }
    },
    canalplus_fr : {
      // issue:
      host : ['canalplus.fr'],
      onEnd : function () {}
    },
    dailybitcoins_org : {
      host : ['dailybitcoins.org'],
      onIdle : function () {
        Aak.removeElement('.ad-img');
      }
    },
    kozaczek_zeberka : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/414
      host : ['kozaczek.pl', 'zeberka.pl'],
      onStart : function () {
        Aak.setCookie('ablc', 1);
        Aak.setCookie('cookie_policy', 1);
      }
    },
    psarips_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/153
      host : ['psarips.com'],
      onStart : function () {
        Aak.addElement('div#advert');
      }
    },
    extratorrent_domains : {
      host : ['extratorrent.cc', 'extratorrent.com'],
      onStart : function () {
        // prevent popup
        // code are obfuscated in external js
        Aak.setCookie('ppu_delay', 1);
        Aak.setCookie('ppu_main', 1);
        Aak.setCookie('ppu_sub', 1);
        Aak.setCookie('ppu_show_on', 1);
      }
    },
    tny_cz : {
      host : ['tny.cz', 'pasted.co'],
      onStart : function () {
        // prevent popup
        Aak.setCookie('__.popunderCap', 1);
        Aak.setCookie('__.popunder', 1);
      }
    },
    clubedohardware_com_br : { // two antiadblock
      host : ['clubedohardware.com.br'],
      onStart : function () {
        if (Aak.contains(location.host, 'forum')) {
          // Solution 1
          Aak.addStyle("#banner, script { height: 51px; }");
          Aak.addElement('div#banner');
        } else { // Website
          // Solution 1
          Aak.addElement('div.banner_topo');
        }
      },
      onIdle : function () {
        if (Aak.contains(location.host, 'forum')) {
          // Solution 2
          Aak.uw.addBlocking.hide();
          Aak.uw.addBlocking.kill();
        } else { // Website
          // Solution 2
          document.body.id = '';
          Aak.removeElement('.adblock');
        }
      }
    },
    debrastagi_com : {
      host : ['debrastagi.com'],
      onIdle : function () {
        Aak.removeElement('#stp-main');
        Aak.removeElement('#stp-bg');
      }
    },
    ddlfrench_org : {
      host : ['ddlfrench.org'],
      onIdle : function () {
        // Fix bug display content
        Aak.setElement('#dle-content .d-content', {
          'class' : ''
        });
        Aak.setElement('#content', {
          'id' : ''
        });
      }
    },
    rapidebrideur_com : {
      host : ['rapidebrideur.com'],
      onStart : function () {
        Aak.addStyle("html body div.container-fluid div.row-fluid div.span9 div div[id] { height: 12px;  display: block ; }");
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'window.location = "../pages/adblock.html";')) {
          Aak.stopScript(e);
        }
      }
    },
    blockblockA : { // Solved by aaklist
      // http://sport-show.fr/js/advertisement-AdBlock.js
      // http://www.2site.me/advertisement-AdBlock.js
      host : ['sport-show.fr', 'vipflash.net', '2site.me'],
      onStart : function () {
        Aak.addStyle("#blockblockA {visibility:invisible!important;display:none!important;}#blockblockA td {visibility:invisible!important;display:none!important;}#blockblockA td p {visibility:invisible!important;display:none!important;}#blockblockB {visibility:visible!important;display:block!important;}");
      }
    },
    megadebrid_eu : {
      host : ['mega-debrid.eu'],
      onEnd : function () {
        // Activate button debrid
        Aak.setElement('.realbutton', {
          'onclick' : '',
          'type' : 'submit'
        });
      }
    },
    slideplayer_com : {
      // by: Alexander255
      // issue: https://github.com/reek/anti-adblock-killer/issues/515
      // issue: https://github.com/reek/anti-adblock-killer/issues/296
      host : ['slideplayer.fr', 'slideplayer.com', 'slideplayer.org'],
      onEnd : function () {
        // Disable anti-adblocker
        unsafeWindow.force_remove_ads = true;

        // Circumvent "share to download" rule
        var page_callback = function () {
          var slide_id = get_current_slide_id();
          var slide_srv = document.getElementById("player_frame").src.split("/")[3];
          var time = 86400 + Math.floor(Date.now() / 1000);
          var secret = encodeURIComponent(strtr(MD5.base64("secret_preved slideplayer never solved " + time + slide_id + ".ppt"), "+/", "- "));

          var url = "http://player.slideplayer.org/download/" + slide_srv + "/" + slide_id + "/" + secret + "/" + time + "/" + slide_id + ".ppt";
          var links = document.querySelectorAll("a.download_link");
          for (var i = 0; i < links.length; i++) {
            /* Remove original "share to download" popup event listener */
            var events = $._data(links[i]).events.click;
            events.splice(0, events.length);

            /* Set normal link href instead */
            links[i].href = url;
          };
        }
        window.location.href = "javascript:(" + page_callback.toString() + ")()";
      }
    },
    bokepspot_com : {
      host : ['bokepspot.com'],
      onStart : function () {
        // Hide Disclaimer
        Aak.setCookie('hideDialog', 'hide');
      },
      onIdle : function () {
        // Remove Disable AdBlock
        Aak.removeElement('#tupiklan');
      }
    },
    ad_defend_general : {
      // by: hamsterbacke
      // pull: https://github.com/reek/anti-adblock-killer/pull/467
      host : ['focus.de', 'stern.de', 'sat1.de', 'prosieben.de', 'kabeleins.de', 'sat1gold.de', 'sixx.de', 'prosiebenmaxx.de', 'fem.com', 'the-voice-of-germany.de', 'wetteronline.de', 'wetter.com', 'finanzen.net', 'tvspielfilm.de', 'gamestar.de', 'pcwelt.de', 'boerse-online.de', 'sportauto.de', 'auto-motor-und-sport.de', 'motor-klassik.de', '4wheelfun.de', 'autostrassenverkehr.de', 'lustich.de', 'itectale.de'],
      onBeforeScript : function (e) {
        // check all scripts before they are executed
        // addefend uses IIFE so the usual function killing isn't working
        var target = e.target || e.srcElement;
        if (/uab.*/i.test(target.innerHTML)) {
          // stop it
          e.stopPropagation();
          e.preventDefault();
        }
      }
    },
    gamestar_de : {
      // by: hamsterbacke
      // pull: https://github.com/reek/anti-adblock-killer/pull/467
      host : ['gamestar.de'],
      onIdle : function () {
        setTimeout(function () {
          Aak.removeElement('body > div.centeredDiv > div[style="display: inline-block;"]');
          window.stop();
        }, 2500);
      }
    },
    picload_com : {
      host : ['picload.org'],
      onStart : function () {
        Aak.setCookie('pl_adblocker', false);
      },
      onIdle : function () {
        Aak.uw.ads_loaded = true;
        Aak.uw.imageAds = false;
        Aak.removeElement('div[oncontextmenu="return false;"]');
      }
    },
    freezedownload_com : {
      host : ['freezedownload.com'],
      onIdle : function () {
        if (/freezedownload.com\/download\//.test(location.href)) {
          Aak.removeElement('body > div[id]');
        }
      }
    },
    rapid8_com : {
      host : ['rapid8.com'],
      onIdle : function () {
        Aak.removeElement('div.backk + #blcokMzg');
        Aak.removeElement('div.backk');
      }
    },
    turkdown_com : {
      host : ['turkdown.com'],
      onIdle : function () {
        // remove facebook box
        Aak.removeElement('#duyuru');
      }
    },
    filmovizija_domains : {
      host : ['filmovizija.me', 'filmovizija.com', 'filmovizija.in', 'filmovizija.net'],
      onIdle : function () {
        /*
        var d = new Date();
        var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
        var n = weekday[d.getDay()];
        Aak.setElement('#' + n, {
          html : ''
        });
        Aak.removeElement('#' + n);
        */
      }
    },
    tvdez_domains : {
      // (document.getElementById('pubfooter').clientHeight < 20)
      host : ['tvdez.com', 'casadossegredos.tv', 'estadiofutebol.com', 'televisaofutebol.com'],
      onStart : function () {
        Aak.addStyle("#pubfooter, #pub2 { height: 30px; display: block; }");
        Aak.setCookie("adblock", null, 0);
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), "location.href = 'adblock.php';")) {
          Aak.stopScript(e);
        }
      }
    },
    wowhq_domains : {
      host : ['livesoccerhq.com', 'lvshd.altervista.org', 'wowhq.ws', 'futeonline.altervista.org'],
      onIdle : function () {
        if ("http://wowhq.ws/" == location.href) {
          //location.href = 'http://futeonline.altervista.org/programacao2.php';
        } else {
          var matches = location.href.match(/link=([\w]+)/i);
          if (matches != null) {
            Aak.log(atob(matches[1]));
            location.href = atob(matches[1]);
          }
        }
      }
    },
    privateinsta_com : {
      host : ['privateinsta.com'],
      onIdle : function () {
        // + abp rule
        Aak.uw.dont_scroll = false;
        Aak.removeElement("#overlay_div");
        Aak.removeElement("#overlay_main_div");
      }
    },
    risikogesundheit_de : {
      host : ['risiko-gesundheit.de'],
      onIdle : function () {
        setTimeout(function () {
          window.stop();
        }, 5000);
      }
    },
    oneplaylist_eu_pn : {
      host : ['oneplaylist.eu.pn'],
      onIdle : function () {
        // kill popunder
        Aak.uw.makePopunder = false;
      }
    },
    turbodebrideur_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/526
      host : ['turbodebrideur.com'],
      onIdle : function () {
        var div = document.createElement("div");
        div.id = 'pubdirecte';
        div.innerHTML = '<img  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wUNCDsIxR/nKAAAAB10RVh0Q29tbWVudABDcmVhdGVkIHdpdGggVGhlIEdJTVDvZCVuAAAANklEQVRYw+3OMQEAIAwDsA41+FeDmyJjT6Igk+S2fVkybbPpZJmAgICAgICAgICAgICAwHrgA+mMBzm8q/ebAAAAAElFTkSuQmCCCiAJICAJIAo="/>';
        document.body.appendChild(div);
      }
    },
    _4shared_com : {
      host : ['4shared.com'],
      onIdle : function () {
        // Hide "Disable AdBlodk" messages
        document.querySelector('body').classList.remove("jsBlockDetect");
      }
    },
    pro_domains : {
      host : ['pro-zik.ws', 'pro-tect.ws', 'pro-ddl.ws', 'pro-sport.ws'],
      onStart : function () {
        Aak.setCookie('visitedf', true);
        Aak.setCookie('visitedh', true);
      }
    },
    comptoirhardware_com : {
      host : ['comptoir-hardware.com'],
      onAlways : function () {
        Aak.uw.adblock = 'non';
      }
    },
    lachainemeteo_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/245
      host : ['lachainemeteo.com'],
      onAlways : function () {
        // Solution 1
        // + abp rule
        //Aak.uw.showscript = function (){};

        // Solution 2
        Aak.uw.js_loaded = true;
      }
    },
    adscendmedia : {
      host : ['adscendmedia.com'],
      onStart : function () {
        // adscendmedia - https://www.adscendmedia.com/
        var ref = document.createElement('a');
        ref.href = document.referrer;
        var host = location.host;
        var path = location.pathname;
        if (Aak.contains(path, '/widget_adblock.php') && !Aak.contains(ref.host, host)) {
          // Auto report
          Aak.autoReport('Adscendmedia', ref.host, host);
          // Notification
          Aak.notification('<p>You must subscribe to <b>AakList (Anti-Adblock Killer )</b>.<a class="aak-notice-ok" href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a></p>', 2e4);
        }
      }
    },
    adworkmedia : {
      host : ['adworkmedia.com', 'loxtk.com', 'contentlockingnetworks.com'],
      onStart : function () {
        // AdWorkMedia - https://www.adworkmedia.com/
        var ref = document.createElement('a');
        ref.href = document.referrer;
        var host = location.host;
        var path = location.pathname;
        if (Aak.contains(path, '/help/removeAB.php') && !Aak.contains(ref.host, host)) {
          // Auto report
          Aak.autoReport('Adworkmedia', ref.host, host);
          // Notification
          Aak.notification('<p>You must subscribe to <b>AakList (Anti-Adblock Killer )</b>.<a class="aak-notice-ok" href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a></p>', 2e4);
        }
      }
    },
    adworkmediasurvey : { // experimental
      host : ['phone-track.net', 'netflixaccount.org', 'watchmovies.just4umedia.com', 'mol.cheatsplanet.net', 'vinestown.com', 'xtreme-downloads.com', 'freevps-hosting.com', 'oneplusoneinvite.blogspot.com', 'fullmovieshd.org', 'timepasss.com', 'miningbeast.com', 'broadcastpuma.co', 'thehyphy.com', 'download-site.org', 'mymobileappz.com', 'garena.cheatsplanet.net', 'full-software-downloads.info', 'amazing-web-host.com', 'watchtvserieonlinehd.blogspot.com', 'watch-latest-movies-online-daily.blogspot.com', 'thecompletewebs.info', 'xpango.com-cheat.in', 'yourepeat.net', 'fullsoftwaredownload.info', 'mypcgamesfreedownload.blogspot.com', 'b-books.info', 'freeudidregistration.com'],
      onIdle : function () {
        /*
        Dont work:
        debrideurgratuit.org, ndsroms.altervista.org, pickcrackpasswords.blogspot.com, codespsngratuits.com

        http://www.rushinformation.com/how-to-bypass-surveys-online/

        They allow survey bypass for all the major hosts like Sharecash,Fileice,Cleanfiles,cash-file,Adwork media,File fire,File flare,Dengee and uploadable
         */

        // Survey
        var iframes = document.querySelectorAll('iframe[src*="/gTemplate.php"]');
        //Aak.log(iframes.length,iframes);

        if (iframes.length) {

          // Neutralize Survey functions
          for (var i in Aak.uw) {
            var fn = Aak.uw[i];
            // Parse all no native functions
            if (typeof fn == 'function' &&
              !/native/.test(fn.toString())) {

              // Disable dynamic functions
              if (/_\d+$/.test(i)) {
                //Aak.log(i);
                Aak.uw[i] = function () {};
              }
              // Disable the functions that prevents the removal of the iframe
              else if (/location.reload/.test(fn.toString())) {
                //Aak.log(i);
                Aak.uw[i] = function () {};
              } // Disable static functions
              else if (/^(mscrollToTop|scrollToTop|gLoad_split_|gLoad|LockPage|noScrollIE|noScrollNS)$/.test(i)) {
                //Aak.log(i);
                Aak.uw[i] = function () {};
              }
            }
          }

          // Unlock page
          Aak.uw.onbeforeunload = "";
          document.body.scroll = "yes";
          document.body.style.overflow = 'scroll'

            // Remove Survey Elements
            for (var i = 0; i < iframes.length; i++) {
              var iframe = iframes[i];
              var container = iframe.parentNode;
              var overlay = container.previousSibling;
              //Aak.log(i, iframe, container, overlay);

              Aak.removeElement(overlay);
              Aak.removeElement(container);
            }
        }
      }
    },
    // --------------------------------------------------------------------------------------------
    // Players
    // --------------------------------------------------------------------------------------------
    kissanime_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/451
      // issue: https://github.com/reek/anti-adblock-killer/issues/381
      // issue: https://github.com/reek/anti-adblock-killer/issues/302
      // issue: https://github.com/reek/anti-adblock-killer/issues/257
      // issue: https://github.com/reek/anti-adblock-killer/issues/178
      // issue: https://github.com/reek/anti-adblock-killer/issues/196
      // issue: https://github.com/reek/anti-adblock-killer/issues/56
      host : ['kissanime.com'],
      onStart : function () {
        // Masking ads
        Aak.addStyle('iframe[id^="adsIfrme"], .divCloseBut { display:none; }');
        // Solution 1
        Aak.uw.DoDetect2 = null;
      },
      onIdle : function () {

        // Solution 1 abp rule
        // @@||kissanime.com^$elemhide

        var divContentVideo = document.querySelector('#divContentVideo');

        // Solution 2
        if (Aak.uw.DoDetect2) {
          Aak.uw.DoDetect2 = null;
          Aak.uw.CheckAdImage = null;
          Aak.log('Solution 2');
        } //Solution 3
        else if (divContentVideo) {

          var divDownload = document.querySelector('#divDownload').cloneNode(true);
          //Aak.log(divDownload,divContentVideo);

          setTimeout(function () {
            divContentVideo.innerHTML = '';
            Aak.uw.DoHideFake();
            divContentVideo.appendChild(divDownload);
            Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut');
            Aak.log('Solution 3');
          }, 5500);
        }
      }
    },
    Kisscartoon_me : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/488
      host : ['kisscartoon.me'],
      onAlways : function () {
        Aak.uw.xaZlE = function () {};
      },
      onIdle : function () {
        Aak.removeElement('iframe[id^="adsIfrme"]');
      }
    },
    youwatch_org : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/308
      // issue: https://github.com/reek/anti-adblock-killer/issues/529
      // issue: https://github.com/reek/anti-adblock-killer/issues/535
      host : ['youwatch.org', 'q41.twer.info', 'i93.whies.info', 'p40.trafe.info'],
      onStart : function () {
        // Hide player ads allowed by easylist
        Aak.addStyle('#player_img, #iframe2, #iframe3 { display:none; }');
        // Skip antiblock
        Aak.uw.jwplayer = function () {};
        // I tried to add jwlib, but without success.
        //Aak.addExternalScript('http://cdn.jsdelivr.net/jwplayer/5.10/jwplayer.js');
      },
      onEnd : function () {
        /* test
        http://youwatch.org/embed-drt18f1uehtc-640x360.html
        http://youwatch.org/drt18f1uehtc
        */
        // Add player
        var container = Aak.getElement('#player_code');
        if (container) {
          // Greasefork: "Exception 403008" concatenating strings for bypass malware filter.
          var script = Aak.getScript("eval(funct" + "ion(p,a,c," + "k,e,d)");
          if (script) {
            var content = Aak.unpackScript(script.innerHTML);
            // http://fs6.youwatch.org:8777/5lvp4ovjcgoax3ptxzkilxv263anyquxpwxptjvauqjeropfaaiaj6cojm/video.mp4
            var videoURL = content.match(/file:\s*"(http:\/\/fs[0-9]+.youwatch.org:[0-9]+\/[0-9a-z]+\/video.mp4)",/)[1];
            Aak.player.jwplayer5(container, {
              src : 'http://youwatch.org/player/player.swf',
              width : '640',
              height : '360',
              file : videoURL
            });
          }
        }
      }
    },    
    exashare_com : {
      // by: Watilin
      // pull: https://github.com/reek/anti-adblock-killer/pull/519
      // issue: https://github.com/reek/anti-adblock-killer/issues/486
      // issue: https://github.com/reek/anti-adblock-killer/issues/506
      host : ['exashare.com'],
      onEnd : function () {
        var jwplayer = Aak.uw.jwplayer;
        if (jwplayer) {
          var setupScript = Aak.getScript("setup");

          var match = setupScript.innerHTML.match(
              /\bjwplayer\s*\(\s*(["'])(.+?)\1\s*\)\s*\.\s*setup\s*\(\s*(\{(?:.|\s)+?\})\s*\)\s*;/);

          var id = match[2];
          var setupStr = match[3];

          /* We have to “eval” setupStr because JSON.parse doesn't work,
          and we have to do it from inside a content function to
          avoid exposing elevated API. */

          var contentFunction = (function () {
            // “passing” variables from elevated context (see calls to replace below)
            var setupObj = _setupStr_;
            var id = "_id_";

            // Delays execution to let the content script set its timer
            setTimeout(function () {
              // violently kills all timers
              var i = setTimeout(function () {}, 0);
              for (; i--; ) {
                clearTimeout(i);
                clearInterval(i);
              }

              // rearms the player
              var playerInstance = jwplayer(id).setup(setupObj);
            }, 500);
          }
            .toString()
            .replace("_setupStr_", setupStr)
            .replace("_id_", id));

          Aak.addScript("(" + contentFunction + "());");
        }
      }
    },
    an1me_se : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/190
      host : ['an1me.se'],
      onIdle : function () {
        setTimeout(function () {
          Aak.uw.isBlockAds2 = false;
        }, 10000);
      }
    },
    mangahost_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/558
      host : ['mangahost.com'],
      onStart : function () {
        Aak.uw.adsbygoogle = cloneInto([], Aak.uw);
        Aak.uw.adsbygoogle.loaded = true;
        Aak.addStyle('.ads { display:none; }');
      }
    },
    channel4_com : { // research solution
      // issue:
      host : ['channel4.com'],
      onIdle : function () {}
    },
    cbs_com : { // research solution
      // issue:
      host : ['cbs.com'],
      onStart : function () {
        // + abp rule
        //Aak.setCookie('ad-block-counter', 0);
      },
      onIdle : function () {
        /*
        setTimeout(function () {
        var player = document.querySelector("#rcpHolder");
        }, 3000);
         */
      }
    },
    tvcatchup_com : { // research solution
      // issue:
      host : ['tvcatchup.com'],
      onStart : function () {
        // + abp rule
        //Aak.setCookie('ad-block-counter', 0);
      },
      onIdle : function () {
        //Aak.setCookie('ad-block-counter', 0);
        /*
        var ch = {
        '1':'bbcone',
        '2':'bbctwo',
        '3':'itvone',
        '4':'chan4',
        '5':'five'
        }

        var number = location.pathname.split('/')[2];

        var setup = { // jwv6 rtmp
        file : "http://tvcatchup-live.hls.adaptive.level3.net/tvcatchup-201/smil:"+ch[number]+"_desk_wifi.smil/playlist.m3u8",
        autostart : true,
        live: true,
        primary : 'flash'
        };
         */

      }
    },
    hqq_tv : { // putlocker.is
      host : ['hqq.tv'],
      onIdle : function () {
        // + abp rule
        // http://hqq.tv/player/embed_player.php?vid=R3DGHG3GKXX7&autoplay=no
        if ('/player/embed_player.php' == location.pathname) {
          document.querySelector('form[id^="form-"]').submit();
        }
      }
    },
    // Poland
    wp_domains : {
      // https://github.com/reek/anti-adblock-killer/issues/300
      host : ['biztok.pl', 'wp.tv', 'wp.pl', 'sportowefakty.pl', 'kafeteria.tv', '.wrzuta.pl', 'pudelek.tv', 'komediowo.pl', 'sfora.pl', 'autokrata.pl', 'sportfan.pl', 'wawalove.pl', 'hotmoney.pl', 'aleseriale.pl', 'babol.pl', 'snobka.pl', 'nocoty.pl', 'money.pl'],
      onIdle : function () {
        //Aak.dumpDOM(3000);
        setTimeout(function () {

          var replacePlayerWP = function (mid, player) {
            /* Request
            http://get.wp.tv/?mid=1661056
            http://wp.tv/player/mid,1661056,embed.json
            http://get.wp.tv/?f=2896462.1426329056904.l.webm&rnd=1
             */
            Aak.request({
              url : 'http://wp.tv/player/mid,' + mid + ',embed.json',
              onload : function (result) {
                try {
                  var res = result.responseText;
                  var obj = JSON.parse(res);
                  Aak.player.html5(player, {
                    autostart : true,
                    file : obj.clip.url[0].url
                  });
                } catch (e) {
                  console.log('error', result, player);
                }
              }
            });
          }

          var replacePlayerWrzuta = function (key, channel, elem, autostart) {
            Aak.request({
              // http://www.wrzuta.pl/npp/embed/wolnapolska2/0I0HQ2mutJc
              url : 'http://www.wrzuta.pl/npp/embed/' + channel + '/' + key,
              onload : function (result) {
                try {
                  var res = result.responseText;
                  var obj = JSON.parse(res);
                  Aak.player.html5(elem, {
                    autostart : autostart,
                    file : obj.url[0].url
                  });
                } catch (e) {
                  console.log('error', result, player);
                }
              }
            });
          }

          var replacePlayerlivestream = function (lid, elem, autostart) {
            Aak.request({
              // http://wp.tv/player/lid,1354,ts,1432569945076,livestream.json
              url : 'http://wp.tv/player/lid,' + lid + ',ts,' + Date.now() + ',livestream.json',
              onload : function (result) {
                try {
                  var res = result.responseText;
                  var obj = JSON.parse(res);
                  Aak.player.html5(elem, {
                    autostart : autostart,
                    file : obj.clip.url[0].url[0]
                  });
                } catch (e) {
                  console.log(result, 'error', player);
                }
              }
            });
          }

          // Using an external flash player is impossible because protected by crossdomain.xml
          var players = document.querySelectorAll('.wp-player'); //  #Player0, #Player1, #mainPlayer
          if (players.length) {
            // fixbug gm_xhr loop request - http://tinyurl.com/pqa9htq
            for (var i = 0; i < players.length; i++) {
              var player = players[i];
              var parent = player.parentNode;
              var script = player.previousSibling;
              var titles = document.querySelectorAll('.wp-player .titleCont a.title');
              var embedvideos = document.querySelectorAll('script[src*="/embed_video.js"]');
              console.log(player, parent, script, titles)

              if (embedvideos.length) {
                // pudelek.wrzuta.pl: http://tinyurl.com/l8jo5v2
                // pudelek.tv: http://tinyurl.com/klyzh6r
                // pudelek.tv (triple): http://tinyurl.com/n9b27o2
                // film.wp.pl: http://tinyurl.com/q7k5bxp
                var script = embedvideos[i];
                var key = /key=(\w+)/.exec(script.src)[1];
                var channel = /login=(\w+)/.exec(script.src)[1];
                var autostart = /autoplay/.test(script.src);
                replacePlayerWrzuta(key, channel, player, autostart);
                Aak.log('embed_video.js')
              } else if (script && /lid=/.test(script.innerHTML)) {
                // wiadomosci.wp.pl: http://tinyurl.com/pdwx7na
                // http://wp.tv/player/lid,1354,ts,1432569945076,livestream.json
                // http://get.wp.tv/?lid=1354
                var lid = script.innerHTML.match(/lid[=,]([0-9]+)/);
                replacePlayerlivestream(lid, player, true);
                Aak.log('livestream lid');
              } else if (titles.length && /mid/.test(titles.href)) {
                // sportowefakty.pl: http://tinyurl.com/l6zabcx
                var mid = titles[i].href.match(/mid[=,]([0-9]+)/);
                Aak.log('title.href')
              } else if (parent.id) {
                if (parent.dataset.url) {
                  // wp.tv: http://tinyurl.com/pzde29t
                  var mid = parent.dataset.url.match(/mid[=,]([0-9]+)/);
                  Aak.log('parent.dataset.url')
                } else {
                  // kafeteria.tv: http://tinyurl.com/nofp58a
                  var mid = parent.innerHTML.match(/mid[=,]([0-9]+)/);
                  Aak.log('parent.innerHTML')
                }
              } else if (script && script.tagName == 'SCRIPT') {
                // film.wp.pl: http://tinyurl.com/mh9onfw
                // pudelek.tv (double): http://tinyurl.com/lefvwtx
                var mid = script.innerHTML.match(/mid[=,]([0-9]+)/);
                Aak.log('script.innerHTML')
              }
              if (mid != null && mid.length == 2) {
                replacePlayerWP(mid[1], player);
              }
            }
          }

        }, 5e3);
      }
    },
    bitzfree_com : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/314
      host : ['bitzfree.com'],
      onEnd : function () {
        /* fixed by rules
        setTimeout(function () {
        var elems = document.querySelectorAll('.btc_adresi');
        if (elems.length) {
        for (var i = 0; i < elems.length; i++) { // VU2RmhJMkRKSQ
        var elem = elems[i];
        Aak.createElement({
        tag : 'span',
        html : '<input type="submit" name="' + Aak.generateID(13) + '" value="Activate Double Mining!" class="btn btn-primary btn-block btn_bilgi">',
        replace : elem
        });
        }
        }
        }, 1e3);
         */
      }
    },
    tvn_pl : {
      // by: Marek
      // fix: http://tinyurl.com/ohbvz4r
      // issue. https://github.com/reek/anti-adblock-killer/issues/192
      // test: http://tinyurl.com/mcwtz27
      // proxy: http://www.proxy.xmc.pl
      host : ['tvn.pl', 'tvn24.pl', 'player.pl'],
      onEnd : function () {
        Aak.onElement('#detailEpisode', function () {
          /*
          var videoURL = 'http://n-2-4.dcs.redcdn.pl/dcs/o2/tvnplayer/vod/14_400_20029_0011/TV_MP4/4c407d87-5d77-4778-81e3-dbc560bbc19b/tv_mp4_2928000.mp4?salt=391F25D2E95781550E7A3BA1730AF412&token=8CC29AECB565397B692D4BDE4B37048742B3BD892212F8B9F1DE0D40D8662C775C82311B35074D38BC4EF8FFDCB15067610BB855955359B8F06C629C44485A42DBFEDAF17A812A67F2ECF4B7996A9B73C754E1089DB4A81BDBF798C23B5EBEEF1C6FA6668FB290EA77013C67FEB0DD5005F90D890ED6B76675487EDB7999CE3C9316D6237B009CC97819E798FE760A0B';
          Aak.player.html5('#detailEpisode', {
          autostart : true,
          file : videoURL
          });
           */

          var sp = document.location.href.split(/[.,]/);
          var id = sp[sp.length - 2];
          // http://player.pl/api/?platform=ConnectedTV&terminal=Samsung&format=json&v=2.0&authKey=ba786b315508f0920eca1c34d65534cd&type=episode&id=34555&sort=newest&m=getItem&deviceScreenHeight=1080&deviceScreenWidth=1920
          Aak.request({
            url : '/api/?platform=ConnectedTV&terminal=Samsung&format=json&v=2.0&authKey=ba786b315508f0920eca1c34d65534cd&type=episode&id=' + id + '&sort=newest&m=getItem&deviceScreenHeight=1080&deviceScreenWidth=1920',
            onload : function (result) {
              var res = result.responseText;
              var o = JSON.parse(res);
              console.log(o)
              var standardURL = o.item.videos.main.video_content[0].url;
              Aak.request({
                url : standardURL,
                onload : function (result) {
                  var videoURL = result.responseText;
                  Aak.player.html5('#detailEpisode', {
                    autostart : true,
                    file : videoURL
                  });
                }
              });
            }
          });
        });
      }
    },
    ipla_tv : {
      // by: Marek
      // fix: http://tinyurl.com/ptb4ybg
      // issue. https://github.com/reek/anti-adblock-killer/issues/522
      // test1: http://tinyurl.com/pcey4nz
      // test2: http://tinyurl.com/prsurdb
      host : ['ipla.tv'],
      onEnd : function () {
        Aak.onElement('#vod-player', function () {
          Aak.request({
            url : '/VOD/play-in-ipla/' + location.href.match(/\/vod-(\d+)/)[1],
            onload : function (result) {
              var res = result.responseText;
              var idn = res.match(/ipla:\/\/playvod-1\|([a-z0-9]+)/)[1];
              console.log(idn)
              Aak.request({
                url : 'http://getmedia.redefine.pl/vods/get_vod/?cpid=1&ua=mipla/23&media_id=' + idn,
                onload : function (result) {
                  var res = result.responseText;
                  var o = JSON.parse(res);
                  console.log(o)
                  if (o.vod.video_hd)
                    var videoURL = o.vod.video_hd;
                  else if (o.vod.video) {
                    var videoURL = o.vod.video;
                  } else {
                    var videoURL = o.vod.copies[0].url
                  }
                  Aak.player.html5('#vod-player', {
                    autostart : true,
                    file : videoURL
                  });
                }
              });
            }
          });
        });
      }
    },
    // France
    playtv_fr : { // research solution
      host : ['play.tv', 'playtv.fr'],
      onAlways : function () {},
      onEnd : function () {
        //Aak.DOMstringify(3000);
        //Aak.stopRedirect();
        //Aak.confirmLeave();

        // http://playtv.fr/television/tooltip/arte/
        /*
        http://playtv.fr/player/play/?channel=bfm-tv&language=fr&format=flash&bitrate=0
        rtmpe://37.187.254.104:80/origin01/?files=800|bfm-tv_800,300|bfm-tv_300&dar=ws&t=18ddf1b11ff0fbb24e3ecbecf4748ff821784cd760dd9e1a9ec2ae552e15361cae296b29d00d72a7f56df77544a62c51176a227b5c5c93f30d7050591e8c8271454ccaa94fd2156d0bb32ae87c5c6344d30d84e588a7e7b87cd1ed4c6c728eb9206e06b02187169ba4f07e8a7c14ad15823c0dd860dd286a


      ;(function(win, doc, app) {
        app.Data = app.Data || {};
        app.Data.Remote = app.Data.Remote || {};
        app.Data.Remote.channel = {"alias":"bfm-tv","id":17,"name":"BFM TV","images":{"mini":"\/\/static.playtv.fr\/img\/tv_channels\/17_mini.png","small":"\/\/static.playtv.fr\/img\/tv_channels\/17_small.png","medium":"\/\/static.playtv.fr\/img\/tv_channels\/17_medium.png","source":"\/\/static.playtv.fr\/img\/tv_channels\/17_source.png"},"has_programs":true,"is_adult":false,"has_social_tv":true,"streaming_source":"internal"};

        })(window, window.document, window.ptv || (window.ptv = {}));
         */
      }
    },
    rmcsportbfmtv_com : { // webradio
      host : ['rmcsport.bfmtv.com'],
      onIdle : function () {

        var flashvars = {
          urlRadio : "http://mp3lg4.tdf-cdn.com/10160/rmc.mp3",
          nom : "live",
          categorie : "live",
          urlSmart : "" // set empty to remove audio ad
        };
        var params = {
          wmode : "transparent"
        };

        Aak.uw.swfobject.embedSWF("/swf/RMCLIVE.swf", "liveplayer", "70", "90", "10.0.0", "", flashvars, params);
      }
    },
    eclypsia_com : {
      host : ['eclypsia.com'],
      onAlways : function () {
        // Solution 1
        // abp rules

        // Solution 2
        Aak.uw.isABActivated = function () {
          return false;
        }; // Kill antiadblock
        Aak.uw.refresh_iframe = function () {}; // Stop ads to be loaded
      },
      onEnd : function () {
        // Solution 3
        var element = document.querySelector('div[id^="webtv_iframe_"]');
        if (element != null) {
          var videoId = element.id.split('_')[2];
          setTimeout(function () {
            element.innerHTML = '<iframe frameborder="0" width="812" height="500" src="http://www.dailymotion.com/embed/video/' + videoId + '?logo=0&autoPlay=1&autoMute=0"></iframe>';
          }, 1000);
        }
      }
    },
    m6web_fr : {
      host : ['m6web.fr'],
      onEnd : function () {
        var player = document.querySelector('object[id$="_flash_api"]');
        var config = document.body.innerHTML.match(/M6.Player.config = ({.+});/);
        console.log(config);
        if (player != null && config != null) {
          var config = JSON.parse(config[1]);
          // Replace player
          Aak.player.html5(player, {
            autostart : true,
            file : config.sources[1].src
          });
        }
      }
    },
    gamingroom_tv : {
      host : ['gamingroom.tv'],
      onAlways : function () {
        Aak.uw.adblock_detect = function () {};
        Aak.uw.GR_adblock_hide_video = function () {};
        Aak.uw.adblock_video_msg_start = function () {};
        Aak.uw.adblock_video_msg_stop = function () {};
        Aak.uw.disable_chat = function () {};
      }
    },
    // Germany
    sat1_de : { // research solution
      host : ['sat1.de', 'sat1.ch'],
      onStart : function () {},
      onEnd : function () {
        /*

        Bad
        gp_adBlockStatus emptyAd
        abView 1
        abView_X empty
        noAbView empty
        noAbView_X empty

        OK
        No gp_adBlockStatus
        abView empty
        abView_X empty
        noAbView 1
        noAbView_X empty

        Sitemap: http://www.sat1.de/sitemaps/sitemap-videos.xml
        Disallow: /videos
        http://video.sevenoneintermedia.de/clips/mp4-840/2447000/2447529-840-148668.mp4
        http://www.sat1.de/dynamic/thumbnails/full/2447000/2447529-full-52_88-original.jpg
        http://www.sat1.de/tv/die-strengsten-eltern-der-welt/video/58-schlaege-und-make-up-clip


        Aak.log(Aak.uw);
         */
      }
    },
    now_domains : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/336
      // test: http://tinyurl.com/peeobou
      // test: http://jsbin.com/vucobejofo
      host : ['voxnow.de', 'rtl-now.rtl.de', 'rtl2now.rtl2.de', 'n-tvnow.de', 'superrtlnow.de', 'rtlnitronow.de', 'nowtv.de'],
      onIdle : function () {
        /*
        Aak.editSWF('#videoplayer', {
        delFlashvars : 'abcheck_enabled,adcall,adclasses,adconfig,admeta,adslog,agof,ama,angebot,as,asparts,breakad,connectioncheck,cslog,dev,dimmer,errorlog,feedback,fmsident,gtv,highlights,ivw,ivw_play,js,js_event_function,logo,logo_basewidth,logopos,nielsen,ord,osmf,svm,tile,videoplaza,videoplaza_base_url,videoplaza_share,videoplaza_tag,vpEnvironmentURL,xl'
        });
         */
      }
    },
    myspass_de : {
      host : ['myspass.de'],
      onIdle : function () {
        // test: http://tinyurl.com/lto9pyd
        var videoid = location.pathname.match(/\/(\d+)\/$/);

        if (videoid != null) {
          Aak.request({
            url : 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=' + videoid[1],
            onload : function (result) {
              var res = result.responseText;
              //Aak.log(res);

              // Get video
              var parser = new DOMParser();
              var dom = parser.parseFromString(res, "application/xml");
              var file = dom.getElementsByTagName("url_flv").item(0).textContent;

              // Remove elements
              Aak.removeElement('div.loadingGif');

              // Replace player
              Aak.player.html5('#player', {
                autostart : true,
                file : file
              });

              /*
              // Replace player
              Aak.player.flowplayer('#player', {
              clip : {
              autoPlay : true,
              url : file
              }
              });
               */

              /*
              // Replace player
              Aak.player.jwplayer6('#player', {
              autostart : true,
              file : file
              });
               */

              /*
              // Replace player
              Aak.player.plugin('#player', {
              autostart : true,
              file : file
              });
               */

              /*
              // Replace player
              Aak.player.videojs('#player', {
              autostart : true,
              file : file
              });
               */

              /*
              // Replace player
              Aak.player.external('#jwplayer6','player', {
              autostart : true,
              //  skin: 'lulu',
              file : file
              });
               */

            }
          });
        }
      }
    },
    // Nederland
    rtlxl_nl : {
      // test: http://tinyurl.com/l2zkv3d
      host : ['rtlxl.nl', 'rtlnieuws.nl'],
      onEnd : function () {
        Aak.editSWF('#_rtlosmf0', {
          setFlashvars : {
            adblock : false
          }
        });
      }
    },
    // Norway
    vgtv_no : {
      // issue: https://github.com/reek/anti-adblock-killer/issues/367
      // test: http://tinyurl.com/nwp85t
      host : ['vgtv.no'],
      onEnd : function () {
        var prevHash = location.hash;
        var regexHash = /#\!\/video\/(\d+)\//;
        setInterval(function () {
          if (location.hash != prevHash && regexHash.test(location.hash)) {
            var prevHash = location.hash;
            var id = prevHash.match(regexHash)[1];
            var player = Aak.getElement('object[id^="OoFlash"]');
            Aak.removeElement('div.loader-container');
            Aak.request({
              url : 'http://svp.vg.no/svp/api/v1/vgtv/assets/' + id + '?additional=settings|chapters|cuePoints|externalId|barrels|externalCategoryId|nextAsset&appName=vgtv-website',
              onload : function (result) {
                var res = result.responseText;
                var obj = JSON.parse(res);
                console.log(player, obj.streamUrls.mp4)
                Aak.player.html5(player, {
                  autostart : false,
                  file : obj.streamUrls.mp4
                });
              }
            });
          }
        }, 1e3);
      }
    },
    // Italy
    rai_tv : { // research solution
      host : ['rai.tv'],
      onStart : function () {},
      onIdle : function () {}
    },
    // TV Stream
    allmyvideos_net : {
      host : ['allmyvideos.net'],
      onAlways : function () {
        Aak.uw.adblocktest = {
          present : 0,
          sent : 1
        };
      }
    },
    ilive_domains : {
      host : ['ilive.to', 'streamlive.to'],
      onEnd : function () {
        if (/^\/embedplayer.php/i.test(location.pathname)) {
          setTimeout(function () {
            // Skip timer
            Aak.uw.removeOverlayHTML();
          }, 1000);
        }
      }
    },
    micast_tv : {
      host : ['micast.tv'],
      onEnd : function () {
        if (/^\/gen\d+.php/.test(location.pathname)) {
          setTimeout(function () {
            // Skip timer and close ads
            Aak.uw.removeOverlayHTML();
          }, 1000);
        }
      }
    },
    pxstream_tv : {
      host : ['pxstream.tv'],
      onEnd : function () {
        if (/^\/embedrouter.php/.test(location.pathname)) {
          setTimeout(function () {
            // Skip timer and close ads
            Aak.uw.closeAd();
          }, 1000);
        }
      }
    },
    sawlive_tv : {
      host : ['sawlive.tv'],
      onIdle : function () {
        if (/^\/embed\/watch\//i.test(location.pathname)) {
          // Skip timer and close ads
          Aak.uw.display = false;
          Aak.uw.closeMyAd();
        }
      }
    },
    goodcast_co : {
      host : ['goodcast.co'],
      onIdle : function () {
        if (/^\/stream.php/.test(location.pathname)) {
          // remove ads allowed by easylist
          Aak.uw.$(".advertisement").hide();
          Aak.uw.$('.adsky iframe').attr("src", "about:blank");
        }
      }
    },
    showsport_tv_com : {
      host : ['showsport-tv.com'],
      onIdle : function () {
        if (/^\/ch.php/.test(location.pathname)) {
          // remove ads allowed by easylist
          Aak.removeElement('#advertisement, .advertisement');
        }
      }
    },
    sharecast_to : {
      host : ['sharecast.to'],
      onIdle : function () {
        if (/^\/embed.php/.test(location.pathname)) {

          // Disable popunders
          var interval = setInterval(function () {
              Aak.setCookie('vid_main', true);
              Aak.setCookie('vid_sub', 2);
              Aak.setCookie('vid_delay', true);
            }, 100);

          setTimeout(function () {
            clearInterval(interval);
          }, 5000);

          // Remove transparent overlay
          Aak.removeElement('#table1');
        }
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'popundrOpenCloseWindow()')) {
          Aak.stopScript(e);
        }
      }
    },
    flowplayer_antiadblock : {
      host : ['videofun.me', 'videobug.net', 'video44.net', 'play44.net', 'byzoo.org', 'playbb.me', 'videowing.me', 'videozoo.me', 'easyvideo.me', 'playpanda.net'],
      onIdle : function () {
        /*
        http://www.animetoon.tv/black-lagoon-episode-1
        http://videowing.me/embed?w=718&h=438&video=ongoing/yu-gi-oh_arc-v_-_53.mp4
        http://playbb.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
        http://videozoo.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
        http://www.easyvideo.me/gogo/?w=718&h=438&file=yu-gi-oh_arc-v_-_53.mp4&sv=1
        http://playpanda.net/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
         */

        // allow fullscreen when abp is enabled and remove ad layer
        // ads blocked by abp rule
        if (/^\/(embed|gogo|gplus)/.test(location.pathname)) {
          Aak.editSWF('#flowplayer_api', {
            setAttributes : {
              allowfullscreen : true
            }
          });
        }
      }
    },
    str3amtv_domains : { // remove ads + popupwindow
      host : ['str3amtv.com', 'futstr3am.2fh.co'],
      onIdle : function () {
        Aak.removeElement('div[id^="floatLayer"]');
        var anchors = document.querySelectorAll('a[onclick^="window.open"]');
        for (var i in anchors) {
          var fn = anchors[i].onclick.toString();
          var re = new RegExp("http://" + location.host + "/[a-z0-9-]+\.php");
          var link = fn.match(re);
          var link = link && link[0] || null;
          //Aak.log(link);
          anchors[i].onclick = null;
          anchors[i].href = link;
          anchors[i].target = '_self';
        }
      }
    },
    // --------------------------------------------------------------------------------------------
    // Firefox
    // --------------------------------------------------------------------------------------------
    yellowbridge_com : {
      host : ['yellowbridge.com'],
      onAlways : function () {
        Aak.uw.finalizePage = function () {
          return;
        };
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'finalizePage()')) {
          Aak.stopScript(e);
        }
      }
    },
    gamespowerita_com : {
      host : ['gamespowerita.com'],
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), '(document.getElementById("test" + id_2).style.height < 1)') || Aak.contains(Aak.innerScript(e), 'if(typeof(window.google_jobrunner)=="undefined" || document.getElementById("test" + id_2).style.height < 1)') || Aak.contains(Aak.innerScript(e), 'if(typeof(window.google_jobrunner)=="undefined")')) {
          Aak.stopScript(e);
        }
      }
    },
    sporttvdireto_com : { // bug auto redirect loop
      host : ['sporttvdireto.com', 'tvdesporto.com'],
      onStart : function () {
        // this solution dont works
        // document.getElementById('ads1').clientHeight < 20
        Aak.addElement('div#ads1');
        Aak.addStyle("#ads1 { height: 30px; }");
      },
      onBeforeScript : function (e) {
        if (Aak.contains(Aak.innerScript(e), 'location.href = \'http://tvdesporto.com/chorar.php\';')) {
          Aak.stopScript(e);
        }
      }
    },
    altervista_zeb89 : {
      host : ['zeb89.altervista.org'],
      onBeforeScript : function (e) {
        // greasemonkey/addons4.js
        if (Aak.contains(Aak.innerScript(e), 'typeof GM_addonsStartup !== "undefined"')) {
          Aak.stopScript(e);
        }
      }
    },
    // --------------------------------------------------------------------------------------------
    // Generic
    // --------------------------------------------------------------------------------------------
    generic : {
      host : ['.*?'],
      onRemove : function (removedNode) {
        if (Aak.debug.removed) {
          if (removedNode.src ||
            removedNode.id ||
            removedNode.className &&
            !/^firebug/.test(removedNode.className)) {
            // Node removed
            Aak.log(removedNode);
          }
        }
      },
      onStart : function () {
      
        // FuckAdBlock & BlockAdBlock
        // site: http://www.sitexw.fr/fuckadblock/
        // repo: https://github.com/sitexw/FuckAdBlock
        // repo: https://github.com/sitexw/BlockAdBlock
        // note: when fuckadblock.js or blockadblock.js is blocked
        // note: added check and clearEvent because http://sh.st/vovHE use a custom version
        if (typeof(Aak.uw.fuckAdBlock) === 'undefined' && typeof(Aak.uw.blockAdBlock) === 'undefined') {
          Aak.addScript(function () {
            fuckAdBlock = blockAdBlock = {
              onDetected : function (fn) {
                this.on(true, fn);
                return this;
              },
              onNotDetected : function (fn) {
                this.on(false, fn);
                return this;
              },
              on : function (detected, fn) {
                if (!detected) {
                  fn();
                }
                return this;
              },
              check : function () {},
              clearEvent : function () {}
            };
          });
        }
        
      },
      onAlways : function () {},
      onIdle : function () {

        /* Alternative solution
        // AntiAdblock (Packer) only Zdxd
        if (typeof Aak.uw.k == 'function' &&
        typeof Aak.uw.h == 'function' &&
        typeof Aak.uw.ShowAdbblock == 'function' &&
        Aak.contains(Aak.uw.ShowAdbblock.toString(), 'warningMessage.innerHTML=text_detected()')) {

        // Disable
        Aak.uw.ShowAdbblock = function () {return;};
        Aak.uw.k = function () {return;};
        Aak.uw.h = function () {return;};
        Aak.autoReport('AntiAdblockPackerZdxd)');
        }
        */

        /*
        // Adunblock - http://adunblock.com/
        if (Aak.getCookie('adblock') == 1) {
        Aak.setCookie('adblock', 0);
        Aak.setCookie('bar_closed', 1);
        }
        */
        
        // Adblock Blocker
        // https://wordpress.org/plugins/addblockblocker/
        // http://tinyurl.com/nswn6fz
        var ads = document.getElementsByClassName('afs_ads');
        var ad = ads.length && ads[ads.length - 1];
        if (ad && ad.innerHTML.length == 0 || ad.clientHeight === 0) {
          Aak.addScript(function () {
            document._getElementsByClassName = document.getElementsByClassName;
            document.getElementsByClassName = function (byClass) {
              if (byClass == 'afs_ads') {
                return null;
              } else {
                return document._getElementsByClassName(byClass);
              }
            };
          });
        }
        
        // Adbuddy
        if (typeof Aak.uw.closeAdbuddy === 'function') {
          Aak.uw.closeAdbuddy();
          Aak.autoReport('Adbuddy');
        }
        
        // AdBlock Alerter (WP)
        // https://github.com/wp-plugins/adblock-alerter
        // 
        if (Aak.getElement('div.adb_overlay > div.adb_modal_img')) {
          // Remove Alert + Allow Scroll
          Aak.removeElement('div.adb_overlay');
          Aak.addStyle('html,body {height:auto; overflow: auto;}');
          Aak.autoReport('AdBlockAlerter');
        }

        // Unknow Anti AdBlock system
        if (Aak.getElement('#blockdiv') && Aak.contains(Aak.getElement('#blockdiv').innerHTML, 'disable ad blocking or use another browser without any adblocker when you visit')) {
          Aak.removeElement('#blockdiv');
        }
        
        // FuckAdBlock & BlockAdBlock
        // by: Angelsl
        // pull: https://github.com/reek/anti-adblock-killer/pull/479
        // site: http://www.sitexw.fr/fuckadblock/
        // repo: https://github.com/sitexw/FuckAdBlock
        // repo: https://github.com/sitexw/BlockAdBlock
        // when FuckAdBlock class exist
        if (typeof(Aak.uw.FuckAdBlock) !== 'undefined') {
          Aak.addScript(function () {
            window.FuckAdBlock.prototype._emitEvent = window.FuckAdBlock.prototype.emitEvent,
            window.FuckAdBlock.prototype.emitEvent = function () {
              this._emitEvent(!1)
            };
          });
        }
        if (typeof(Aak.uw.BlockAdBlock) !== 'undefined') {
          Aak.addScript(function () {
            window.BlockAdBlock.prototype._emitEvent = window.BlockAdBlock.prototype.emitEvent,
            window.BlockAdBlock.prototype.emitEvent = function () {
              this._emitEvent(!1)
            };
          });
        }
        
        // Antiblock - http://antiblock.org/
        var styles = document.querySelectorAll('style');
        for (var i = 0; i < styles.length; i++) {
          if (styles[i].innerHTML.length) {
            var css = styles[i].innerHTML.replace(/[\n\r\t\s]+/g, "");
            var id = /#([0-9a-z]{4,10})\{.*position:fixed\!important;.+document\.documentElement.scrollTop\?document\.documentElement\.scrollTop:document\.body\.scrollTop.+\}#/.exec(css);
            if (id != null && id.length == 2) {
              Aak.setLocal('AntiblockID', id[1]);
            }
          }
        }

        // Anti-Adblockers
        var systems = {
          // Plugins WordPress
          'NoAdblock' : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.js)',
          'BetterStopAdblock' : '(/plugins/better-stop-adblock/|bsa-script-doctype.js|bsa-script-no-doctype.js)',
          'WordPressAdBlockBlocker' : '/plugins/wordpress-adblock-blocker/',
          'AntiBlockBukssaAyman' : '/plugins/anti-block/',
          'BlockAlyzer' : '/plugins/blockalyzer-adblock-counter/',
          'AdBlockingDetector' : '/plugins/ad-blocking-detector/',
          // Plugins Website
          'Adworkmedia' : '(adworkmedia|loxtk|contentlockingnetworks).com/gLoader.php',
          'Adscendmedia' : 'adscendmedia.com/gwjs.php',
          'FuckAdBlock' : '(/fuckadblock.js|/blockadblock.js)',
          'jQueryAdblock' : '/jquery.adblock.js',
          'jQueryAdblockDetector' : '/jquery.adblock-detector.js',
          'AdvertisementJs' : '/advertisement.js',
          'AdvertisementJsMin' : '/advert.js',
          'AdvertisementJsSuffix' : '/advertisement([0-9]+|[\-._][a-z0-9]+)\.js',
          'AdframeJs' : '/adframe.js',
          'AntiAdBuster' : '/anti-ad-buster.js',
          'RTKAntiAdblock' : '/blockcake.js',
          'AdblockDetector' : '/AdblockDetector/handler.min.js',
          'jQueryAntiAdsBlock' : '/jquery.antiadsblock.js',
          'Adbuddy' : '/js/adbuddy.min.js',
          'AntiADsBlocker' : '/aadb/script.js'
        }
        var scripts = document.scripts;
        for (var i = 0; i < scripts.length; i++) {
          var script = scripts[i];
          if (script.src) {
            for (var key in systems) {
              if (new RegExp(systems[key], 'i').test(script.src)) {
                //Aak.log(key, location.host, script.src);
                Aak.autoReport(key, location.host, script.src);
                break;
              }
            }
          }
        }

      },
      onInsert : function (insertedNode) {

        // All Nodes
        if (Aak.debug.inserted) {
          if (insertedNode.src ||
            insertedNode.id ||
            insertedNode.className &&
            !/^firebug/.test(insertedNode.className)) {
            // Node inserted
            Aak.log(insertedNode);
          }
        }

        // No-Adblock - http://www.no-adblock.com/
        if (insertedNode.id &&
          insertedNode.id.length == 4 &&
          /^[a-z0-9]{4}$/.test(insertedNode.id) &&
          insertedNode.nodeName == 'DIV' &&
          insertedNode.firstChild &&
          insertedNode.firstChild.id &&
          insertedNode.firstChild.id == insertedNode.id &&
          Aak.contains(insertedNode.innerHTML, 'no-adblock.com')) {
          // Remove
          Aak.autoReport('No-Adblock', false, location.href);
          Aak.removeElement(insertedNode);
          //Aak.log(insertedNode);
        }

        // StopAdblock - http://stopadblock.org/downloads/
        if (insertedNode.id &&
          insertedNode.id.length == 7 &&
          /^a[a-z0-9]{6}$/.test(insertedNode.id) &&
          insertedNode.nodeName == 'DIV' &&
          insertedNode.parentNode &&
          insertedNode.parentNode.id &&
          insertedNode.parentNode.id == insertedNode.id + '2' &&
          Aak.contains(insertedNode.innerHTML, 'stopadblock.org')) {
          // Remove
          Aak.autoReport('StopAdBlock', false, location.href);
          Aak.removeElement(insertedNode);
          //Aak.log(insertedNode);
        }

        // AntiAdblock (Packer)
        var reIframeId = /^(zd|wd)$/;
        var reImgId = /^(xd|gd)$/;
        var reImgSrc = /\/ads\/banner.jpg/;
        var reIframeSrc = /(\/adhandler\/|\/adimages\/|ad.html)/;

        // Communs
        if (insertedNode.id &&
          reImgId.test(insertedNode.id) &&
          insertedNode.nodeName == 'IMG' &&
          reImgSrc.test(insertedNode.src) ||
          insertedNode.id &&
          reIframeId.test(insertedNode.id) &&
          insertedNode.nodeName == 'IFRAME' &&
          reIframeSrc.test(insertedNode.src)) {

          // Variant 1
          if (insertedNode.id == 'xd') {
            Aak.autoReport('AntiAdblockPackerZdxd', false, location.href);
          } // Variant 2
          else if (insertedNode.id == 'gd') {
            Aak.autoReport('AntiAdblockPackerWdgd', false, location.href);
          }
          // Remove
          //Aak.log(insertedNode);
          Aak.removeElement(insertedNode);
        }

        /* Do not still work
        // FuckAdBlock (v3.1.0) - http://github.com/sitexw/FuckAdBlock
        var reClass = /(pub_300x250|pub_300x250m|pub_728x90|text-ad|textAd|text_ad|text_ads|text-ads|text-ad-links)/;
        var reCss = /width: 1px/;
        if (insertedNode.nodeName == 'DIV' &&
        insertedNode.style.cssText &&
        reCss.test(insertedNode.style.cssText) &&
        insertedNode.className &&
        reClass.test(insertedNode.className)) {

        // Remove
        insertedNode.className='';
        Aak.autoReport('FuckAdBlock', false, location.href);
        Aak.removeElement(insertedNode);
        }
         */

        // Adunblock - http://adunblock.com/
        var reId = /^[a-z]{8}$/;
        var reClass = /^[a-z]{8} [a-z]{8}/;
        var reBg = /^[a-z]{8}-bg$/;
        var reStyle = /top: -?[\d]+px; opacity: [\d]; visibility: visible;/;
        var reMessage = /Il semblerait que vous utilisiez un bloqueur de publicité !/;

        // Communs
        if (typeof Aak.uw.vtfab != 'undefined' &&
          typeof Aak.uw.adblock_antib != 'undefined' &&
          insertedNode.parentNode &&
          insertedNode.parentNode.nodeName == 'BODY' &&
          insertedNode.id &&
          reId.test(insertedNode.id) &&
          insertedNode.nodeName == 'DIV' &&
          insertedNode.nextSibling &&
          insertedNode.nextSibling.className &&
          insertedNode.nextSibling.nodeName == 'DIV') {

          // Full Screen Message (Premium)
          // <div id="lfyhsvdq" class="tvwnoqdf svonexrk" style="top: 100px; opacity: 1; visibility: visible;">
          // <div class="tvwnoqdf-bg" style="display: block;"></div>
          if (insertedNode.className &&
            reClass.test(insertedNode.className) &&
            reBg.test(insertedNode.nextSibling.className) &&
            insertedNode.nextSibling.style &&
            insertedNode.nextSibling.style.display != 'none') {

            // Remove Message
            Aak.autoReport("AdUnBlockPremium");
            Aak.removeElement(insertedNode.nextSibling); // overlay
            Aak.removeElement(insertedNode); // box
          }
          // Top bar Message (Free)
          // <div id="vixmgrly">
          // <div id="mfnhaiyx" class="lkrnvbyt">
          else if (insertedNode.nextSibling.id &&
            reId.test(insertedNode.nextSibling.id) &&
            reMessage.test(insertedNode.innerHTML)) {

            // Remove Message
            Aak.autoReport("AdUnBlockFree");
            Aak.removeElement(insertedNode);
          }
        }

        // Antiblock - http://antiblock.org/
        var reId = /^[a-z0-9]{4,10}$/i;
        var reTag1 = /(div|span|b|i|font|strong|center)/i;
        var reTag2 = /[abisuqp]{1}/i;
        var reWords1 = /ad blocker|ad block|ad-block|adblocker|ad-blocker|adblock|bloqueur|bloqueador|Werbeblocker|adblockert|&#1570;&#1583;&#1576;&#1604;&#1608;&#1603; &#1576;&#1604;&#1587;|блокировщиком/i;
        var reWords2 = /kapat|disable|désactivez|désactiver|desactivez|desactiver|desative|desactivar|desactive|desactiva|deaktiviere|disabilitare|&#945;&#960;&#949;&#957;&#949;&#961;&#947;&#959;&#960;&#959;&#943;&#951;&#963;&#951;|&#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1072;&#1090;&#1100;|állítsd le|publicités|рекламе/i;

        // Communs
        if (insertedNode.parentNode &&
          insertedNode.id &&
          insertedNode.style &&
          insertedNode.firstChild &&
          !insertedNode.firstChild.id &&
          !insertedNode.firstChild.className &&
          reId.test(insertedNode.id) &&
          reTag1.test(insertedNode.nodeName) &&
          reTag2.test(insertedNode.firstChild.nodeName)) {
          //Aak.log(insertedNode);

          // Kill audio message
          var audio = insertedNode.querySelector("audio[loop]") || false;
          if (audio) {
            Aak.log('Antiblock(audio)');
            audio.pause();
            Aak.removeElement(audio);
          }

          // Antiblock.org v3 + Fork
          if (insertedNode.firstChild.firstChild &&
            insertedNode.firstChild.firstChild.nodeName == "IMG" &&
            typeof Aak.uw[insertedNode.id] == 'object' &&
            typeof Aak.uw[insertedNode.id].displayMessage == 'function') {

            // Better Stop Adblock
            // Demo: http://codeclan.altervista.org/
            if (typeof Aak.uw[insertedNode.id].toggle == 'function') {
              var childs = document.body.childNodes;
              for (var i = 0; i < childs.length; i++) {
                var child = childs[i];
                if (child.nodeType == 1 && child.style.display == 'none') {
                  child.style.display = ''; // show
                  //Aak.log(node);
                }
              }
              Aak.autoReport('BetterStopAdblock');
            }
            // Antiblock.org v3
            else {
              Aak.autoReport('Antiblock3');
            }
            // Disable
            //Aak.log(insertedNode, Aak.uw[insertedNode.id]);
            Aak.removeElement(insertedNode);
            Aak.uw[insertedNode.id] = false;
          }
          // Antiblock.org v3 + v2 (Alternative Solution)
          else if (localStorage.antiblockId != 'undefined' &&
            insertedNode.id == localStorage.antiblockId) {
            // V3
            if (typeof Aak.uw[insertedNode.id] == 'object') {
              Aak.uw[insertedNode.id] = false;
              Aak.autoReport("Antiblock3");
            } else { // V2
              Aak.autoReport("Antiblock2");
            }
            // Disable
            //Aak.log(insertedNode);
            Aak.removeElement(insertedNode);
          }
          // Antiblock.org v2
          else if (reWords1.test(insertedNode.innerHTML) &&
            reWords2.test(insertedNode.innerHTML)) {
            // Disable
            //Aak.log(insertedNode);
            Aak.autoReport("Antiblock2");
            Aak.removeElement(insertedNode);
          }
          //  Many false positive
          else {
            //Aak.removeElement(insertedNode);
          }
        }
      }
    }
  },
  blockDetect : function () {

    // Exclude domains
    var host = location.host;
    var excluded = false;
    Aak.excludes.forEach(function (entry) {
      if (host.indexOf(entry) != -1) {
        excluded = true;
        if (Aak.debug.exclude) {
          Aak.log(host + ' (' + entry + ') excluded !');
        }
      }
    });

    // Include domains
    if (!excluded) {

      // Detect & Kill
      for (var i in Aak.rules) {

        // Current
        var current = Aak.rules[i];

        // RegExp host
        var reHost = new RegExp(current.host.join('|'));
        // If domains is
        if (reHost.test(host)) {
          // On all statements
          if (current.onAlways) {
            current.onAlways(); // start
            window.addEventListener('DOMContentLoaded', current.onAlways); // idle
            window.addEventListener('load', current.onAlways); // end
          }
          // When
          if (current.onStart) {
            current.onStart();
          }
          // When Before Script Executed
          if (current.onBeforeScript) {
            if ('onbeforescriptexecute' in document) { // Mozilla Firefox
              window.addEventListener('beforescriptexecute', current.onBeforeScript);
            }
          } // When After Script Executed
          if (current.onAfterScript) {
            if ('onafterscriptexecute' in document) { // Mozilla Firefox
              window.addEventListener('afterscriptexecute', current.onAfterScript);
            }
          }
          // When Window Load
          if (current.onEnd) {
            window.addEventListener('load', current.onEnd);
          }
          // When DOM Load
          if (current.onIdle) {
            window.addEventListener('DOMContentLoaded', current.onIdle);
          }
          // When DOM AttrModified
          if (current.onAttrModified) {
            window.addEventListener('DOMAttrModified', current.onAttrModified, false);
          }
          // When DOM SubtreeModified
          if (current.onSubtreeModified) {
            window.addEventListener('DOMSubtreeModified', current.onSubtreeModified, false);
          }
          // When DOM Elements are Inserted in Document
          if (current.onInsert) {

            // Mutation Observer
            // doc: http://tinyurl.com/mxxzee4
            // support: http://tinyurl.com/nepn7vy
            if (typeof window.MutationObserver != 'undefined' ||
              typeof WebKitMutationObserver != 'undefined') {

              // Mutation Observer
              var MutationObserver = window.MutationObserver || WebKitMutationObserver;

              // Create an observer instance
              var obs = new MutationObserver(function (mutations) {
                  // We can safely use `forEach` because we already use mutation
                  // observers that are more recent than `forEach`. (source: MDN)
                  mutations.forEach(function (mutation) {
                    // we want only added nodes
                    if (mutation.addedNodes.length) {
                      //Aak.log(addedNodes);
                      Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
                        //Aak.log(addedNode);
                        current.onInsert(addedNode);
                      });
                    }
                  });
                });
              // Observer
              obs.observe(document, {
                childList : true,
                subtree : true
              });
            }
            // Mutation Events (Alternative Solution)
            // doc: http://tinyurl.com/op95rfy
            else {
              window.addEventListener("DOMNodeInserted", function (e) {
                current.onInsert(e.target);
              }, false);
            }
          }
          // When DOM Elements are Removed in Document
          if (current.onRemove) {

            // Mutation Observer
            // doc: http://tinyurl.com/mxxzee4
            // support: http://tinyurl.com/nepn7vy
            if (typeof window.MutationObserver != 'undefined' ||
              typeof WebKitMutationObserver != 'undefined') {

              // Mutation Observer
              var MutationObserver = window.MutationObserver || WebKitMutationObserver;

              // Create an observer instance
              var obs = new MutationObserver(function (mutations) {
                  // We can safely use `forEach` because we already use mutation
                  // observers that are more recent than `forEach`. (source: MDN)
                  mutations.forEach(function (mutation) {
                    // we want only removed nodes
                    if (mutation.removedNodes.length) {
                      //Aak.log(mutation.removedNodes);
                      Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) {
                        //Aak.log(removedNode);
                        current.onRemove(removedNode);
                      });
                    }
                  });
                });
              // Observer
              obs.observe(document, {
                childList : true,
                subtree : true
              });
            }
            // Mutation Events (Alternative Solution)
            // doc: http://tinyurl.com/op95rfy
            else {
              window.addEventListener("DOMNodeRemoved", function (e) {
                current.onRemove(e.target);
              }, false);
            }
          }
        }
      }
    }
  }
};

Aak.initialize();

opera violentmonkey

<iframe width="100%" height="69680" src="http://cochi.se/code/index.php?embed=564b03ce2cd18" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/11/2015

Add all trackers on magnet links

// ==UserScript==

// @name        Add all trackers on magnet links

// @namespace   Trackes

// @include     *

// @version     1

// @grant       none

// ==/UserScript==



var trackers = [

  "udp://tracker.openbittorrent.com:80/announce",

  "udp://tracker.publicbt.com:80/announce",

  "udp://open.demonii.com:1337/announce",

  "udp://tracker.istole.it:80/announce",

  "udp://tracker.prq.to/announce" 

];



var links = document.getElementsByTagName('a');

for (var i = 0, n = links.length; i < n; i++) {

  if (links[i].href.match(/^magnet:\?xt=/i) != null) {

    links[i].href = links[i].href+"&tr="+trackers.join("&tr=");

  }

}

opera violentmonkey

<iframe width="100%" height="956" src="http://cochi.se/code/index.php?embed=564b03b871f41" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/11/2015

Removes ?feature* parametes on Youtube

// ==UserScript==

// @name        Youtube Parameters Stripper

// @namespace   lehollandaisvolant.net

// @description Removes ?feature* parametes on Youtube

// @include     http://*.youtube.com/watch*

// @include     https://*.youtube.com/watch*

// @version     1

// ==/UserScript==



(function() {

        var sp = window.location.search.replace(/^\?/,'').split('&'), sk = [];



        for(var i =0; i < sp.length; i++) {

            if(!/^(?:feature|annotation_id|src_vid|NR)$/i.test(sp[i].split('=')[0])) {

                sk.push(sp[i]);

            }

        }



        var newurl = window.location.protocol + '//' + window.location.host

                            + window.location.pathname + (sk.length?'?'+sk.join('&'):'')

                            + window.location.hash;



        if(newurl != window.location.href) {

            (!!(window.history && window.history.pushState)

                ?window.history.pushState(null,null, newurl)

                :window.location.replace(newurl)

            );

        }

})();

opera violentmonkey

<iframe width="100%" height="1226" src="http://cochi.se/code/index.php?embed=564b039b999fd" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/11/2015

Allow resize textarea and activate spellcheck

// ==UserScript==
// @name        Textarea trick

// @namespace   Textarea trick

// @description Allow resize textarea and activate spellcheck
// ==/UserScript==
var txtarea = document.getElementsByTagName('textarea');

for (var i = 0, n = txtarea.length; i < n; i++) {

  if (txtarea[i].style.resize == 'none') {

    txtarea[i].style.resize = 'both';

  }

  if (txtarea[i].getAttribute('spellcheck') == false) {

    txtarea[i].setAttribute('spellcheck', true);

  }

}

opera violentmonkey

<iframe width="100%" height="614" src="http://cochi.se/code/index.php?embed=564b037281165" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/11/2015

Autocomplete set on

// ==UserScript==

// @name        Autocomplete set on

// @namespace   Autocomplet set on

// @description Make all forms to allow autocomplet

// @include     *

// @version     1

// @grant       none

// ==/UserScript==

var frm = document.getElementsByTagName('form');

for (var i = 0, n = frm.length; i < n; i++) {

  frm[i].setAttribute('autocomplete', 'on');

}

var inp = document.getElementsByTagName('input');

for (var i = 0, n = inp.length; i < n; i++) {

  if (inp[i].getAttribute('autocomplete') == 'off') {

    inp[i].setAttribute('autocomplete', 'on');

  }

}

opera violentmonkey

<iframe width="100%" height="812" src="http://cochi.se/code/index.php?embed=564b02c474193" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 17/11/2015

Désinstaller application

apt-get --purge remove <package>

linux

<iframe width="100%" height="200" src="http://cochi.se/code/index.php?embed=56016e0e7c2a9" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 22/09/2015

Flux RSS de cette page


SnippetVamp 1.84 par Bronco - Page générée en 0.011 s