Ultimate Anti-Adblock Killer & Anti-Paywall

The definitive tool: Aggressive neutralization, Anti-Adblock Killer, Stealth Mode, Zapper Mode, Paywall protection/Anti-PayWall, Guardian Mode.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Ultimate Anti-Adblock Killer & Anti-Paywall
// @namespace    https://tampermonkey.net/
// @version      6.5
// @description  The definitive tool: Aggressive neutralization, Anti-Adblock Killer, Stealth Mode, Zapper Mode, Paywall protection/Anti-PayWall, Guardian Mode.
// @author       Tauã B. Kloch Leite
// @icon         https://img.icons8.com/fluency/64/shield.png
// @homepageURL  https://greasyfork.org/scripts/556237-ultimate-anti-adblock-killer
// @supportURL   https://greasyfork.org/scripts/556237-ultimate-anti-adblock-killer/feedback
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        unsafeWindow
// @license      GPL-3.0
// @run-at       document-start
// ==/UserScript==

(function() {

    'use strict';

    // =============================================
    // 0. CLOUDFLARE CHECK & STEALTH MODE
    // =============================================

    function isCloudflare() {
        try {
            const title = document.title;
            if (title === 'Just a moment...' || title.includes('Attention Required!')) return true;
            if (document.getElementById('challenge-form') || document.getElementById('cf-wrapper')) return true;
        } catch(e) {}
        return false;
    }

    if (isCloudflare()) return;

    function injectBait() {
        const baitVars = ['adsbygoogle', 'adblock', 'google_ad_client', 'showAds', 'adBlockDetected', 'hasAdBlocker'];
        const win = typeof unsafeWindow !== 'undefined' ? unsafeWindow : window;
        baitVars.forEach(varName => {
            if (!win[varName]) {
                Object.defineProperty(win, varName, {
                    get: function() { return varName === 'adsbygoogle' ? [] : true; },
                    set: function() {},
                    configurable: true
                });
            }
        });
    }
    injectBait();

    // =============================================
    // 1. CONFIGURATION & STATE
    // =============================================

    let exceptions = JSON.parse(localStorage.getItem('antiAdblockExceptions') || '[]');
    let userFilters = JSON.parse(localStorage.getItem('antiAdblockUserFilters') || '{}');
    let blockedCount = 0;
    let isZapperActive = false;
    let isAggressiveMode = false;

    function isCurrentSiteException() {
        const hostname = window.location.hostname;
        return exceptions.some(exception => hostname.includes(exception));
    }

    function showNotification(message, duration = 3000) {
        if (!document.body) return;
        const existing = document.querySelectorAll('.anti-adblock-notification');
        existing.forEach(el => el.remove());
        const n = document.createElement('div');
        n.className = 'anti-adblock-notification';
        n.style.cssText = 'position:fixed;top:20px;right:20px;background:#2d3748;color:white;padding:15px 20px;border-radius:8px;z-index:2147483647;font-family:Arial,sans-serif;font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,0.3);border-left:4px solid #4299e1;max-width:350px;white-space:pre-line;pointer-events:none;';
        n.textContent = message;
        document.body.appendChild(n);
        setTimeout(() => n.remove(), duration);
    }

    function addException() {
        const h = window.location.hostname;
        if (!exceptions.includes(h)) {
            exceptions.push(h);
            localStorage.setItem('antiAdblockExceptions', JSON.stringify(exceptions));
            showNotification(`✅ ${h} added to exceptions`);
            setTimeout(() => location.reload(), 1000);
        }
    }

    function removeException() {
        const h = window.location.hostname;
        const len = exceptions.length;
        exceptions = exceptions.filter(site => site !== h && !h.includes(site));
        if (exceptions.length < len) {
            localStorage.setItem('antiAdblockExceptions', JSON.stringify(exceptions));
            showNotification(`❌ ${h} removed from exceptions\nReloading...`);
            setTimeout(() => location.reload(), 1000);
        } else {
            showNotification(`ℹ️ ${h} was not in exceptions`);
        }
    }

    function removeAllDomainExceptions() {
        const h = window.location.hostname;
        exceptions = exceptions.filter(site => !site.includes(h));
        localStorage.setItem('antiAdblockExceptions', JSON.stringify(exceptions));
        if (userFilters[h]) {
            delete userFilters[h];
            localStorage.setItem('antiAdblockUserFilters', JSON.stringify(userFilters));
        }
        showNotification(`🗑️ Full Reset for ${h}\nReloading...`);
        setTimeout(() => location.reload(), 1000);
    }

    function undoManualZaps() {
        const h = window.location.hostname;
        if (userFilters[h]) {
            delete userFilters[h];
            localStorage.setItem('antiAdblockUserFilters', JSON.stringify(userFilters));
            showNotification(`↩️ Manual Blocks cleared for ${h}\nReloading...`);
            setTimeout(() => location.reload(), 1000);
        } else {
            showNotification(`ℹ️ No manual blocks found for ${h}`);
        }
    }

    function showHelp() {
        const helpText = `
🛡️ Ultimate Anti-Adblock Killer (v6.5)

• Ctrl+Shift+E → Add/Remove exception
• Ctrl+Shift+X → Reset ALL (Exceptions + Zaps)
• Ctrl+Shift+Z → ⚡ Zapper Mode (Manual Block)
• Ctrl+Shift+H → Help & Stats

Threats Neutralized: ${blockedCount}
Mode: ${isAggressiveMode ? '🔥 AGGRESSIVE (NYT Detected)' : '🛡️ STANDARD'}
Site: ${window.location.hostname}
Status: ${isCurrentSiteException() ? '⛔ PAUSED' : '✅ ACTIVE'}
        `.trim();
        showNotification(helpText, 5000);
    }

    GM_registerMenuCommand('➕ Add to exceptions', addException);
    GM_registerMenuCommand('➖ Remove from exceptions', removeException);
    GM_registerMenuCommand('↩️ Undo Manual Zaps', undoManualZaps);
    GM_registerMenuCommand('🗑️ Full Reset (Domain)', removeAllDomainExceptions);
    GM_registerMenuCommand('⚡ Toggle Zapper Mode', toggleZapper);
    GM_registerMenuCommand('❓ Help / Stats', showHelp);

    window.addEventListener('keydown', function(e) {
        if (e.ctrlKey && e.shiftKey && !e.altKey && !e.metaKey) {
            switch(e.key.toLowerCase()) {
                case 'e': e.preventDefault(); e.stopImmediatePropagation(); isCurrentSiteException() ? removeException() : addException(); break;
                case 'x': e.preventDefault(); e.stopImmediatePropagation(); removeAllDomainExceptions(); break;
                case 'h': e.preventDefault(); e.stopImmediatePropagation(); showHelp(); break;
                case 'z': e.preventDefault(); e.stopImmediatePropagation(); toggleZapper(); break;
            }
        }
    }, true);

    if (isCurrentSiteException()) {
        console.log('UAAK: Site exception active.');
        return;
    }

    function enableRightClick() {
        if (typeof jQuery !== 'undefined') {
            jQuery(function($) {
                $('img').removeAttr('onmousedown').removeAttr('onselectstart').removeAttr('ondragstart');
                $(document).off('contextmenu selectstart dragstart');
                $(document.body).off('contextmenu selectstart dragstart');
            });
        } else {
            const images = document.querySelectorAll('img');
            images.forEach(img => {
                img.removeAttribute('onmousedown');
                img.removeAttribute('onselectstart');
                img.removeAttribute('ondragstart');
            });
        }
        document.oncontextmenu = null;
        document.onmousedown = null;
        document.body.oncontextmenu = null;
        document.body.onselectstart = null;
        document.body.ondragstart = null;
    }

    // =============================================
    // 2. ZAPPER MODE
    // =============================================

    function getCssPath(el) {
        if (!(el instanceof Element)) return;
        var path = [];
        while (el.nodeType === Node.ELEMENT_NODE) {
            var selector = el.nodeName.toLowerCase();
            if (el.id) { selector += '#' + el.id; path.unshift(selector); break; }
            else {
                var sib = el, nth = 1;
                while (sib = sib.previousElementSibling) { if (sib.nodeName.toLowerCase() == selector) nth++; }
                if (nth != 1) selector += ":nth-of-type("+nth+")";
            }
            path.unshift(selector);
            el = el.parentNode;
        }
        return path.join(" > ");
    }

    function saveUserBlock(element) {
        const selector = getCssPath(element);
        const host = window.location.hostname;
        if (!userFilters[host]) userFilters[host] = [];
        if (!userFilters[host].includes(selector)) {
            userFilters[host].push(selector);
            localStorage.setItem('antiAdblockUserFilters', JSON.stringify(userFilters));
        }
    }

    function applyUserBlocks() {
        const host = window.location.hostname;
        if (!userFilters[host]) return;
        userFilters[host].forEach(selector => {
            try { document.querySelectorAll(selector).forEach(el => { hideElementRobustly(el); blockedCount++; }); } catch(e) {}
        });
    }

    function toggleZapper() {
        isZapperActive = !isZapperActive;
        if (isZapperActive) {
            showNotification("⚡ Zapper Mode ON\nClick to remove. ESC to cancel.", 5000);
            addStyle(`.uaak-zapper-hover { outline: 4px solid #ff0000 !important; cursor: crosshair !important; opacity: 0.8 !important; }`);
            document.addEventListener('mouseover', zapperHover);
            document.addEventListener('mouseout', zapperUnhover);
            document.addEventListener('click', zapperClick, true);
            document.addEventListener('keydown', zapperKey);
        } else {
            showNotification("Zapper Mode OFF");
            document.removeEventListener('mouseover', zapperHover);
            document.removeEventListener('mouseout', zapperUnhover);
            document.removeEventListener('click', zapperClick, true);
            document.removeEventListener('keydown', zapperKey);
            document.querySelectorAll('.uaak-zapper-hover').forEach(el => el.classList.remove('uaak-zapper-hover'));
        }
    }

    function zapperHover(e) { e.target.classList.add('uaak-zapper-hover'); }
    function zapperUnhover(e) { e.target.classList.remove('uaak-zapper-hover'); }
    function zapperClick(e) {
        if (!isZapperActive) return;
        e.preventDefault(); e.stopImmediatePropagation();
        saveUserBlock(e.target);
        hideElementRobustly(e.target);
        blockedCount++;
        showNotification("💥 Element Zapped & Saved!");
        toggleZapper();
        forceJailbreak();
    }
    function zapperKey(e) { if (e.key === 'Escape') toggleZapper(); }

    // =============================================
    // 3. CORE ENGINE
    // =============================================

    var enable_debug = false;

    var adblock_pattern = /ad-block|adblock|ad block|blocking ads|bloqueur|bloqueador|Werbeblocker|&#1570;&#1583;&#1576;&#1604;&#1608;&#1603; &#1576;&#1604;&#1587;|блокировщиком/i;
    var disable_pattern = /kapat|disabl|désactiv|desactiv|desativ|deaktiv|detect|enabled|turned off|turn off|&#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|рекламе|verhindert|advert|kapatınız/i;
    var premium_pattern = /premium|upgrade|subscription|subscribe|assine|assinatura|s'abonner|suscribirse|member access|read the full|paywall|register free|create a free account|log in|great deal|limited time offer|support us|keep reading|this is not a paywall|unlock this article/i;
    var tagNames_pattern = /b|center|div|font|i|iframe|s|span|section|u/i;

    var is_core_protected = false;
    var classes = [];

    function debug( msg, val ) {
        if ( !enable_debug ) return;
        console.log( '%c ANTI-ADBLOCKER \n','color: white; background-color: red', msg );
    }

    function addStyle(str) {
        var style = document.createElement('style');
        style.innerHTML = str;
        (document.body || document.head || document.documentElement).appendChild( style );
    }

    function randomInt( min, max ) {
        if ( max === undefined ) { max = min; min = 0; }
        return Math.floor(min + Math.random() * (max - min + 1));
    }

    function getRandomName( size ) {
        var charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        var name = '';
        for (var i = 0; i < (size||randomInt(10,20)); ++i) {
            name += charset.charAt( Math.floor( Math.random() * charset.length) );
        }
        return name;
    }

    function addRandomClass( el ) {
        let name = getRandomName();
        el.classList.add( name );
        return name;
    }

    function isElementFixed( el ) {
        if (el instanceof Element) {
          return window.getComputedStyle(el).getPropertyValue('position') == 'fixed';
        }
    }

    function isNotHidden( el ) {
        if (el instanceof Element) {
          return window.getComputedStyle(el).getPropertyValue('display') != 'none';
        }
    }

    function isBlackoutModal( el ) {
        if (el instanceof Element) {
          var style = window.getComputedStyle( el );
          if (style.position !== 'fixed') return false;
          var top = parseInt( style.top ) || 0;
          var left = parseInt( style.left ) || 0;
          var right = parseInt( style.right ) || 0;
          var bottom = parseInt( style.bottom ) || 0;
          var coversHeight = el.offsetHeight >= window.innerHeight * 0.9;
          var coversWidth = el.offsetWidth >= window.innerWidth * 0.9;
          var anchored = (top <= 5 && left <= 5) || (right <= 5 && bottom <= 5) || (top <= 5 && right <= 5);
          return coversHeight && coversWidth && anchored;
        }
        return false;
    }

    function isAntiAdblockText( value ) {
        if (adblock_pattern.test( value ) && disable_pattern.test( value )) return true;
        if (premium_pattern.test(value) && (value.toLowerCase().includes('ads') || value.toLowerCase().includes('account') || value.toLowerCase().includes('continue') || value.toLowerCase().includes('offer') || value.toLowerCase().includes('access') || value.toLowerCase().includes('subscri'))) return true;
        return false;
    }

    function isModalWindows( el ) {
        return isElementFixed ( el ) && ( isAntiAdblockText( el.textContent ) || isBlackoutModal( el ) );
    }

    function isSafetyHeader( el ) {
        if (!el || !el.getBoundingClientRect) return false;
        if (el.tagName === 'HEADER' || el.tagName === 'NAV' || el.tagName === 'ASIDE') return true;
        if (el.closest('[data-elementor-type="header"]')) return true;

        const rect = el.getBoundingClientRect();
        // Top Header
        if (rect.top <= 5 && rect.height < 300 && rect.width > window.innerWidth * 0.8) {
             if (el.querySelector('nav') || el.querySelector('[role="navigation"]') || el.querySelector('.menu')) return true;
        }
        // Sidebar
        if (rect.width < 400 && rect.height > window.innerHeight * 0.5) {
            if (!isAntiAdblockText(el.innerText)) return true;
        }

        return false;
    }

    function isSafetyContent(el) {
        if (!el) return false;
        const idClass = (el.id + " " + el.className).toLowerCase();

        // AGGRESSIVE MODE (NYT/Fides Detected)
        if (isAggressiveMode) {
            if (idClass.includes('fides') ||
                idClass.includes('privacy') ||
                idClass.includes('consent') ||
                idClass.includes('gateway') ||
                idClass.includes('modal') ||
                idClass.includes('paywall')) {
                return false;
            }
        }

        if (isElementFixed(el) && premium_pattern.test(el.innerText)) return false;

        if (el.tagName === 'ARTICLE' || el.tagName === 'MAIN') return true;
        if (el.innerText && el.innerText.length > 600) return true;
        if (el.querySelectorAll('p').length > 5) return true;
        return false;
    }

    function forceContentRestore(el) {
        el.classList.add('uaak-force-visible');
        el.style.setProperty('filter', 'none', 'important');
        el.style.setProperty('opacity', '1', 'important');
        el.style.setProperty('visibility', 'visible', 'important');
        el.style.setProperty('max-height', 'none', 'important');

        // Only force display if in Aggressive Mode
        if (isAggressiveMode) {
            el.style.setProperty('display', 'block', 'important');
            el.style.setProperty('z-index', '9999', 'important');
        }
    }

    function protectCore() {
        if ( is_core_protected ) return;
        if (typeof unsafeWindow === 'undefined') {
          const unsafeWindow = window;
        }

        const $_removeChild = unsafeWindow.Node.prototype.removeChild;
        unsafeWindow.Node.prototype.removeChild = function( node ) {
            if (isCloudflare()) {
                return $_removeChild.apply( this, arguments );
            }

            if ( node.nodeName == 'HEAD' || node.nodeName == 'BODY' ){
                return debug( 'Blocked delete ' + node.nodeName, node );
            }
            if (node.nodeType === 1 && isSafetyContent(node)) {
                return node;
            }
            $_removeChild.apply( this, arguments );
        };

        const $_innerHTML = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML');
        if ($_innerHTML && $_innerHTML.set) {
            Object.defineProperty(Element.prototype, 'innerHTML', {
                set: function (value) {
                    if (isCloudflare()) return $_innerHTML.set.call(this, value);

                    if ( this.nodeName == 'BODY' || isAntiAdblockText( value ) ) return debug( 'Blocked innerHTML change', value );

                    return $_innerHTML.set.call(this, value);
                },
                get: function() { return $_innerHTML.get.call(this); },
                configurable: true
            });
        }
        is_core_protected = true;
    }

    function forceJailbreak() {
        if (isCloudflare()) return;

        [document.documentElement, document.body].forEach(el => {
            if(!el) return;
            el.classList.add('uaak-force-scroll');
            el.style.setProperty('overflow', 'visible', 'important');
            el.style.setProperty('overflow-y', 'auto', 'important');
            if (window.getComputedStyle(el).position === 'fixed') {
                 el.style.setProperty('position', 'static', 'important');
            }
        });
        if (document.body) {
            const badClasses = ['modal-open', 'no-scroll', 'stop-scrolling', 'adblock-blur', 'fides-overlay-modal-link-shown', 'nyt-hide-scroll'];
            document.body.classList.forEach(cls => {
                if (badClasses.some(bc => cls.includes(bc))) document.body.classList.remove(cls);
            });
        }
    }

    // SHADOW KILLER
    function removeShadows() {
        document.querySelectorAll('div, section').forEach(el => {
            const style = window.getComputedStyle(el);
            if ((style.position === 'fixed' || style.position === 'absolute') &&
                parseInt(style.height) > window.innerHeight * 0.9 &&
                parseInt(style.width) > window.innerWidth * 0.9) {
                const bgColor = style.backgroundColor;
                if (bgColor.includes('rgba') || bgColor.includes('0, 0, 0')) {
                     if (!isSafetyHeader(el) && !isSafetyContent(el)) {
                         hideElementRobustly(el);
                     }
                }
            }
        });
    }

    function cleanBackgroundWrappers() {
        // Detect Aggressive Mode Trigger
        if (document.querySelector('.vi-gateway-container, #gateway-content, #fides-overlay, #fides-overlay-wrapper')) {
            isAggressiveMode = true;
        }

        if (isAggressiveMode) {
            const nytSelectors = [
                '.vi-gateway-container',
                '#gateway-content',
                '.css-1bd8bfl',
                '.css-1k28tcn-formStyles-formStyles-EnterEmailSsoBottom',
                '[data-testid="onsite-messaging-unit-gateway"]',
                '.fides-overlay', '#fides-overlay', '#fides-overlay-wrapper', '#fides-modal', '.fides-modal-container'
            ];
            document.querySelectorAll(nytSelectors.join(', ')).forEach(el => hideElementRobustly(el));

            document.querySelectorAll('#app, #site-content, #main, .main-content, #story, article').forEach(el => {
                forceContentRestore(el);
            });
        }

        document.querySelectorAll('.background, .backdrop, .modal-paywall-overlay').forEach(el => {
            const style = window.getComputedStyle(el);
            if (style.position === 'fixed' && parseInt(style.height) > window.innerHeight * 0.9) {
                if (!isSafetyContent(el)) {
                    hideElementRobustly(el);
                }
            }
        });

        removeShadows();
    }

    function removeBackStuff() {
        document.querySelectorAll( 'b,center,div,font,i,iframe,s,span,section,u' ).forEach( ( el ) => {
            if (isSafetyContent(el)) forceContentRestore(el);
            else if ( isBlackoutModal( el ) && !isSafetyHeader(el) ) hideElementRobustly(el);
            else if ( (/blur/i).test( window.getComputedStyle(el).filter ) ) forceContentRestore(el);
        });
        cleanBackgroundWrappers();
        setTimeout( forceJailbreak, 50);
    }

    function hideElementRobustly(el) {
        if(!el) return;
        el.removeAttribute('id');
        el.removeAttribute('class');
        var class_name = addRandomClass( el );
        classes.push( class_name );
        el.setAttribute('style', (el.getAttribute('style')||'') + ';display: none !important;');
        addStyle( '.' + class_name + '{ display: none !important; }' );
    }

    function checkModals() {
        if (isCloudflare()) return;

        var modalFound = false;
        document.querySelectorAll( 'b,center,div,font,i,iframe,s,span,section,u' ).forEach( ( el ) => {
            if ( isModalWindows( el ) && isNotHidden( el ) ) {
                modalFound = true;
                removeModal( el );
            }
        });
        if ( modalFound ) setTimeout( removeBackStuff, 150);
    }

    function removeModal( el, isNew ) {
        if ( (new RegExp(classes.join('|'))).test( el.classList ) ) return;
        if (isSafetyHeader(el)) return;

        if (isAntiAdblockText(el.textContent)) {
             hideElementRobustly(el);
             blockedCount++;
             try {
                var p = el.parentElement;
                if (p && window.getComputedStyle(p).position === 'fixed') hideElementRobustly(p);
             } catch(e){}

             if (isNew) setTimeout( removeBackStuff, 150);
             forceJailbreak();
             return;
        }

        if (isSafetyContent(el)) {
            forceContentRestore(el);
            return;
        }

        hideElementRobustly(el);
        blockedCount++;

        try {
            var parent = el.parentElement;
            if (parent && parent.tagName !== 'BODY' && parent.tagName !== 'HTML') {
                var parentStyle = window.getComputedStyle(parent);
                if (parentStyle.position === 'fixed' || parentStyle.position === 'absolute') {
                    if (!isSafetyHeader(parent) && !isSafetyContent(parent)) {
                        hideElementRobustly(parent);
                        blockedCount++;
                    } else {
                        parent.style.setProperty('position', 'static', 'important');
                    }
                }
            }
        } catch(e) {}

        if ( isNew ) setTimeout( removeBackStuff, 150);
        forceJailbreak();
    }

    window.addEventListener('DOMContentLoaded', (event) => {
        if (isCloudflare()) return;

        classes.push( getRandomName() );
        applyUserBlocks();

        var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
        var observer = new MutationObserver( (mutations) => {
            mutations.forEach( (mutation) => {
                if ( mutation.addedNodes.length ) {
                    Array.prototype.forEach.call( mutation.addedNodes, ( el ) => {
                        if ( !tagNames_pattern.test ( el.tagName ) ) return;
                        if ( isModalWindows( el ) && isNotHidden( el ) ) {
                            removeModal( el, true );
                        }
                    });
                }
            });
        });

        if (document.body) {
            observer.observe(document.body, { childList : true, subtree : true });
            setTimeout(() => showNotification('🛡️ Ultimate Anti-Adblock Killer Active'), 1000);
        }

        setTimeout( function() { checkModals(); }, 150 );

        addStyle(`
            body { user-select: auto !important; }
            .uaak-force-scroll, body.scroll_on, html.scroll_on { overflow: visible !important; overflow-y: auto !important; }
            .hide_modal { display: none !important; }
            .un_blur, .uaak-force-visible {
                filter: none !important;
                -webkit-filter: none !important;
                opacity: 1 !important;
                visibility: visible !important;
                max-height: none !important;
            }
            /* CSS for NYT Overlay Fix */
            #fides-overlay, #fides-modal-overlay, #fides-overlay-wrapper {
                display: none !important;
                pointer-events: none !important;
                width: 0 !important;
                height: 0 !important;
                opacity: 0 !important;
                background: transparent !important;
            }
        `);

        setTimeout(function(){ document.querySelectorAll('iframe[id^="google_ads_iframe"]').forEach(el => el.style.display='none'); }, 2000);

        let checkCount = 0;
        let checkInterval = setInterval(() => {
            checkModals();
            removeBackStuff();
            cleanBackgroundWrappers();
            checkCount++;
            if(checkCount > 20) clearInterval(checkInterval);
        }, 1500);
    });

    window.addEventListener('load', (event) => {
        if (isCloudflare()) return;

        setTimeout( function() {
            enableRightClick();
            checkModals();
            forceJailbreak();
        }, 1500 );
    });

    protectCore();
})();